From a61e3367fab29290db00f53d2b4eb114588ee192 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 15 Jul 2024 18:59:44 +0100 Subject: [PATCH 001/218] Work in progress towards better ACDC jacobian formulation --- .idea/workspace.xml | 201 +-- CONTRIBUTING.md | 3 - .../grids/Controllable_shunt_example.gridcal | Bin 0 -> 10807 bytes .../DataStructures/branch_data.py | 6 +- .../DataStructures/numerical_circuit.py | 4 +- .../LinearFactors/linear_analysis.py | 6 +- .../PowerFlow/NumericalMethods/ac_jacobian.py | 19 +- .../NumericalMethods/acdc_jacobian.py | 1275 +++++++++-------- .../PowerFlow/NumericalMethods/derivatives.py | 965 ------------- .../NumericalMethods/helm_power_flow.py | 31 +- .../levenberg_marquardt_acdc.py | 4 +- .../NumericalMethods/newton_raphson_acdc.py | 8 +- .../Simulations/derivatives/__init__.py | 0 .../derivatives/csc_derivatives.py | 1259 ++++++++++++++++ .../derivatives/csr_derivatives.py | 101 ++ .../derivatives/matpower_derivatives.py | 147 ++ src/GridCalEngine/Utils/Sparse/csc2.py | 467 +++++- .../grids/fubm_case_57_14_2MTDC_ctrls.gridcal | Bin 0 -> 40982 bytes src/tests/tests_derivatives.py | 289 ++++ 19 files changed, 3099 insertions(+), 1686 deletions(-) create mode 100644 Grids_and_profiles/grids/Controllable_shunt_example.gridcal delete mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/derivatives.py create mode 100644 src/GridCalEngine/Simulations/derivatives/__init__.py create mode 100644 src/GridCalEngine/Simulations/derivatives/csc_derivatives.py create mode 100644 src/GridCalEngine/Simulations/derivatives/csr_derivatives.py create mode 100644 src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py create mode 100644 src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.gridcal create mode 100644 src/tests/tests_derivatives.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8e9c509a9..2e2da3600 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,26 @@ - - - - - - - - + - - + - - - - + + + + + + + @@ -174,9 +173,9 @@ "Python tests.pytest in test_sparse2.py.executor": "Run", "Python tests.pytest in test_topology_processor.py.executor": "Run", "Python tests.pytest in tests.executor": "Run", - "Python tests.pytest in tests_derivatives.py.executor": "Run", + "Python tests.pytest in tests_derivatives.py.executor": "Debug", "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", + "Python.ExecuteGridCal.executor": "Debug", "Python.cgmes_rdfs_graph.executor": "Run", "Python.new_circuit_objects.executor": "Run", "Python.pymoo_example.executor": "Debug", @@ -188,7 +187,7 @@ "RunOnceActivity.ShowReadmeOnStart": "true", "WebServerToolWindowFactoryState": "false", "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", "node.js.detected.package.eslint": "true", "node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)", @@ -206,21 +205,21 @@ - + - + - + @@ -1442,11 +1441,7 @@ - - - - - + 1656059954202 @@ -1791,7 +1786,7 @@ - @@ -1837,6 +1832,7 @@ + @@ -1861,8 +1857,7 @@ - - @@ -2353,20 +2348,35 @@ 56 - + - + - + @@ -2389,23 +2399,23 @@ - + - + - - + + - + @@ -2428,18 +2438,18 @@ - - + + - - + + @@ -2467,9 +2477,9 @@ - - + + @@ -2533,8 +2543,8 @@ - + @@ -2545,8 +2555,8 @@ - + @@ -2620,7 +2630,7 @@ - + @@ -2740,13 +2750,13 @@ - + - + diff --git a/Grids_and_profiles/grids/fubm_case_57_14_2MTDC_ctrls.gridcal b/Grids_and_profiles/grids/fubm_case_57_14_2MTDC_ctrls.gridcal index d7ad5f4f3fe61bca843abc92f5409090aab26938..e1a57de6a55d7aeaa53402610c89196c9f81a2e8 100644 GIT binary patch literal 60276 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 pd.DataFrame: # compute admittances Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) - Ybus, Yf, Yt, tap = ycalc.compile_y_acdc( + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( Cf=self.Cf, Ct=self.Ct, C_bus_shunt=self.shunt_data.C_bus_elm.tocsc(), @@ -1649,16 +1649,17 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: J = fubm_jacobian( nbus=self.nbus, - nl=self.nbr, - k_pf_tau=self.k_pf_tau, - k_pf_dp=self.k_pf_dp, - k_qf_m=self.k_qf_m, - k_qt_m=self.k_qt_m, - k_vt_m=self.k_vt_m, - k_zero_beq=self.k_zero_beq, - k_vf_beq=self.k_vf_beq, - i_vf_beq=self.i_vf_beq, - i_vt_m=self.i_vt_m, + idx_dtheta=np.r_[self.pv, self.pq, self.p, self.pqv], + idx_dvm=np.r_[self.pq, self.p], + idx_dm=np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m], + idx_dtau=np.r_[self.k_pf_tau, self.k_pf_dp], + idx_dbeq=np.r_[self.k_zero_beq, self.k_vf_beq], + idx_dP=np.r_[self.pv, self.pq, self.p, self.pqv], + idx_dQ=np.r_[self.pq, self.pqv], + idx_dQf=np.r_[self.k_qf_m, self.k_zero_beq], + idx_dQt=self.k_qt_m, + idx_dPf=self.k_pf_tau, + idx_dPdp=self.k_pf_dp, F=self.F, T=self.T, Ys=Ys, @@ -1669,13 +1670,14 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: Beq=self.branch_data.Beq, Kdp=self.branch_data.Kdp, V=self.Vbus, - Ybus=Ybus.tocsc(), - Yf=Yf.tocsc(), - Yt=Yt.tocsc(), - Cf=self.Cf.tocsc(), - Ct=self.Ct.tocsc(), - pvpq=pvpq, - pq=self.pq, + Vm=np.abs(self.Vbus), + Ybus_x=self.Ybus.data, + Ybus_p=self.Ybus.indptr, + Ybus_i=self.Ybus.indices, + yff=self.admittances_.yff, + yft=self.admittances_.yft, + ytf=self.admittances_.ytf, + ytt=self.admittances_.ytt ) df = pd.DataFrame( diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py index 0e06b505f..54b176d74 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py @@ -891,7 +891,40 @@ def fubm_jacobian(nbus: int, yft: CxVec, ytf: CxVec, ytt: CxVec) -> CSC: + """ + :param nbus: + :param idx_dtheta: + :param idx_dvm: + :param idx_dm: + :param idx_dtau: + :param idx_dbeq: + :param idx_dP: + :param idx_dQ: + :param idx_dQf: + :param idx_dQt: + :param idx_dPf: + :param idx_dPdp: + :param F: + :param T: + :param Ys: + :param kconv: + :param complex_tap: + :param tap_modules: + :param Bc: + :param Beq: + :param Kdp: + :param V: + :param Vm: + :param Ybus_x: + :param Ybus_p: + :param Ybus_i: + :param yff: + :param yft: + :param ytf: + :param ytt: + :return: + """ # bus-bus derivatives (always needed) dS_dVm_x, dS_dVa_x = deriv.dSbus_dV_numba_sparse_csc(Ybus_x, Ybus_p, Ybus_i, V, Vm) @@ -915,12 +948,12 @@ def fubm_jacobian(nbus: int, dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) - dP_dbeq__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real - dQ_dbeq__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dQf_dbeq_ = deriv.dSf_dm_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag + dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real + dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag + dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) - dPf_dbeq_ = deriv.dSf_dm_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dPdp_dbeq = deriv.dSf_dm_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real + dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 86c259514..142648629 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -106,16 +106,16 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, k_pf_dp=nc.k_pf_dp) # ------------------------------------------------------------------------- # compute initial admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm, - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm, + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus, Yf(br, :) * V; For in-service Branches @@ -170,7 +170,8 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # evaluate Jacobian if update_jacobian: - H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, nc.k_vf_beq, + H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, + nc.k_vf_beq, nc.i_vf_beq, nc.i_vt_m, F, T, Ys, k2, tap, m, Bc, Beq, Kdp, V, Ybus, Yf, Yt, Cf, Ct, pvpq, pq) @@ -236,17 +237,17 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, nu *= 2.0 # compute initial admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, - Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm, - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, + Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm, + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus, Yf(br, :) * V; For in-service Branches diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index 7187bf7ee..630f761e6 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -73,17 +73,17 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, pv = pv_.copy() pqv = pqv_.copy() p = p_.copy() - blck1_idx = np.r_[pv, pq, p, pqv] - blck2_idx = np.r_[pq, p] - blck3_idx = np.r_[pq, pqv] - n_block1 = len(blck1_idx) + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dVm = np.r_[pq, p] + idx_dQ = np.r_[pq, pqv] + n_idx_dtheta = len(idx_dtheta) - if n_block1 > 0: + if n_idx_dtheta > 0: # evaluate F(x0) Sbus = cf.compute_zip_power(S0, I0, Y0, Vm) Scalc = cf.compute_power(Ybus, V) - f = cf.compute_fx(Scalc, Sbus, blck1_idx, blck3_idx) + f = cf.compute_fx(Scalc, Sbus, idx_dtheta, idx_dQ) norm_f = cf.compute_fx_error(f) converged = norm_f < tol @@ -97,7 +97,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, iteration += 1 # evaluate Jacobian - J = AC_jacobianVc(Ybus, V, blck1_idx, blck2_idx, blck3_idx) + J = AC_jacobianVc(Ybus, V, idx_dtheta, idx_dVm, idx_dQ) # compute update step try: @@ -135,8 +135,8 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, logger.add_debug('Va:\n', Va) # reassign the solution vector - dVa[blck1_idx] = dx[:n_block1] - dVm[blck2_idx] = dx[n_block1:] + dVa[idx_dtheta] = dx[:n_idx_dtheta] + dVm[idx_dVm] = dx[n_idx_dtheta:] # set the values and correct with an adaptive mu if needed mu = mu_0 # ideally 1.0 @@ -153,7 +153,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, # compute the mismatch function f(x_new) Sbus = cf.compute_zip_power(S0, I0, Y0, Vm2) Scalc = cf.compute_power(Ybus, V2) - f = cf.compute_fx(Scalc, Sbus, blck1_idx, blck3_idx) + f = cf.compute_fx(Scalc, Sbus, idx_dtheta, idx_dQ) norm_f_new = cf.compute_fx_error(f) # change mu for the next iteration @@ -201,14 +201,14 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, if len(changed) > 0: # adjust internal variables to the new pq|pv values - blck1_idx = np.r_[pv, pq, p, pqv] - blck2_idx = np.r_[pq, p] - blck3_idx = np.r_[pq, pqv] - n_block1 = len(blck1_idx) + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dVm = np.r_[pq, p] + idx_dQ = np.r_[pq, pqv] + n_idx_dtheta = len(idx_dtheta) # recompute the error based on the new Scalc and S0 Sbus = cf.compute_zip_power(S0, I0, Y0, Vm) - f = cf.compute_fx(Scalc, Sbus, blck1_idx, blck3_idx) + f = cf.compute_fx(Scalc, Sbus, idx_dtheta, idx_dQ) norm_f = np.linalg.norm(f, np.inf) # determine the convergence condition diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index fe5e78ad3..622e0b57b 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -29,7 +29,8 @@ compute_power, compute_zip_power) from GridCalEngine.basic_structures import CxVec from GridCalEngine.enumerations import ReactivePowerControlMode -import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp +# import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp +from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc def NR_LS_ACDC(nc: NumericalCircuit, @@ -89,13 +90,11 @@ def NR_LS_ACDC(nc: NumericalCircuit, T = nc.T Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) Bc = nc.branch_data.B - pq = nc.pq.copy().astype(int) - pvpq_orig = np.r_[nc.pv, pq].astype(int) - pvpq_orig.sort() # the elements of PQ that exist in the control indices Ivf and Ivt must be passed from the PQ to the PV list # otherwise those variables would be in two sets of equations i_ctrl_v = np.unique(np.r_[nc.i_vf_beq, nc.i_vt_m]) + pq = nc.pq.copy() for val in pq: if val in i_ctrl_v: pq = pq[pq != val] @@ -103,14 +102,26 @@ def NR_LS_ACDC(nc: NumericalCircuit, # compose the new pvpq indices à la NR pv = np.unique(np.r_[i_ctrl_v, nc.pv]).astype(int) pv.sort() - pvpq = np.r_[pv, pq].astype(int) - npv = len(pv) - npq = len(pq) + + pqv = nc.pqv.copy() + p = nc.p.copy() + + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dvm = np.r_[pq, p] + idx_dm = np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m] + idx_dtau = np.r_[nc.k_pf_tau, nc.k_pf_dp] + idx_dbeq = np.r_[nc.k_zero_beq, nc.k_vf_beq] + idx_dP = np.r_[pv, pq, p, pqv] + idx_dQ = np.r_[pq, pqv] + idx_dQf = np.r_[nc.k_qf_m, nc.k_zero_beq] + idx_dQt = nc.k_qt_m + idx_dPf = nc.k_pf_tau + idx_dPdp = nc.k_pf_dp # -------------------------------------------------------------------------- # variables dimensions in Jacobian - sol_slicer = AcDcSolSlicer(block1=pvpq, - block2=pq, + sol_slicer = AcDcSolSlicer(block1=idx_dtheta, + block2=idx_dvm, k_zero_beq=nc.k_zero_beq, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, @@ -121,16 +132,16 @@ def NR_LS_ACDC(nc: NumericalCircuit, # ------------------------------------------------------------------------- # compute initial admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus, Yf(br, :) * V; For in-service Branches @@ -158,8 +169,8 @@ def NR_LS_ACDC(nc: NumericalCircuit, Vmfset=Vmfset, Kdp=Kdp, F=F, - pvpq=pvpq, - pq=pq, + pvpq=idx_dP, + pq=idx_dQ, k_pf_tau=nc.k_pf_tau, k_qf_m=nc.k_qf_m, k_zero_beq=nc.k_zero_beq, @@ -176,12 +187,39 @@ def NR_LS_ACDC(nc: NumericalCircuit, while not converged and iterations < max_iter: # compute the Jacobian - J = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, nc.k_vf_beq, - nc.i_vf_beq, nc.i_vt_m, - F, T, Ys, k2, tap, m, Bc, Beq, Kdp, V, Ybus, Yf, Yt, Cf, Ct, pvpq, pq) + J = fubm_jacobian(nbus=nc.nbus, + idx_dtheta=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], + idx_dvm=np.r_[nc.pq, nc.p], + idx_dm=np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m], + idx_dtau=np.r_[nc.k_pf_tau, nc.k_pf_dp], + idx_dbeq=np.r_[nc.k_zero_beq, nc.k_vf_beq], + idx_dP=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], + idx_dQ=np.r_[nc.pq, nc.pqv], + idx_dQf=np.r_[nc.k_qf_m, nc.k_zero_beq], + idx_dQt=nc.k_qt_m, + idx_dPf=nc.k_pf_tau, + idx_dPdp=nc.k_pf_dp, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + complex_tap=tap, + tap_modules=nc.branch_data.tap_module, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + Kdp=nc.branch_data.Kdp, + V=V, + Vm=Vm, + Ybus_x=Ybus.data, + Ybus_p=Ybus.indptr, + Ybus_i=Ybus.indices, + yff=yff, + yft=yft, + ytf=ytf, + ytt=ytt) # solve the linear system - dx = gcsp.super_lu_linsolver(J, -fx) + dx = spsolve_csc(J, -fx) if not np.isnan(dx).any(): # check if the solution worked @@ -223,16 +261,16 @@ def NR_LS_ACDC(nc: NumericalCircuit, Sbus = compute_zip_power(S0=S0, I0=I0, Y0=Y0, Vm=Vm) # compute admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus @@ -260,8 +298,8 @@ def NR_LS_ACDC(nc: NumericalCircuit, Vmfset=Vmfset, Kdp=Kdp, F=F, - pvpq=pvpq, - pq=pq, + pvpq=idx_dP, + pq=idx_dQ, k_pf_tau=nc.k_pf_tau, k_qf_m=nc.k_qf_m, k_zero_beq=nc.k_zero_beq, @@ -319,7 +357,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and npv > 0: + if control_q != ReactivePowerControlMode.NoControl and (len(pv) + len(pqv)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, @@ -328,14 +366,14 @@ def NR_LS_ACDC(nc: NumericalCircuit, if len(changed) > 0: # adjust internal variables to the new pq|pv values - blck1_idx = np.r_[pv, pq, p, pqv] - blck2_idx = np.r_[pq, p] - blck3_idx = np.r_[pq, pqv] - n_block1 = len(blck1_idx) + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dvm = np.r_[pq, p] + idx_dP = np.r_[pv, pq, p, pqv] + idx_dQ = np.r_[pq, pqv] # re declare the slicer because the indices of pq and pv changed - sol_slicer = AcDcSolSlicer(block1=pvpq, - block2=pq, + sol_slicer = AcDcSolSlicer(block1=idx_dtheta, + block2=idx_dvm, k_zero_beq=nc.k_zero_beq, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, @@ -357,8 +395,8 @@ def NR_LS_ACDC(nc: NumericalCircuit, Vmfset=Vmfset, Kdp=Kdp, F=F, - pvpq=pvpq, - pq=pq, + pvpq=idx_dP, + pq=idx_dQ, k_pf_tau=nc.k_pf_tau, k_qf_m=nc.k_qf_m, k_zero_beq=nc.k_zero_beq, diff --git a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py index 28d07d8e1..aaf619e12 100644 --- a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py @@ -16,10 +16,9 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import numpy as np -from numba import njit, complex128, int32, float64 +from numba import njit, complex128, int32 from typing import Tuple -import scipy.sparse as sp -from scipy.sparse import lil_matrix, diags, csc_matrix, csr_matrix +from scipy.sparse import csc_matrix from GridCalEngine.basic_structures import CxVec, IntVec, Vec from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, make_lookup @@ -416,7 +415,7 @@ def dPfdp_dVm_csc(nbus, br_indices, bus_indices, yff, yft, kdp, V, F, T) -> CSC: # to side if t_idx >= 0: dSf_dvm = Vm_f * np.conj(yft[k]) * ea - Tx[nnz] = - dSf_dvm + Tx[nnz] = - dSf_dvm.real Ti[nnz] = k_counter Tj[nnz] = t_idx nnz += 1 @@ -609,7 +608,7 @@ def dSt_dVa_csc(nbus, br_indices, bus_indices, ytf, V, F, T) -> CxCSC: @njit() def derivatives_tau_csc_numba(nbus, nbr, iPxsh, F: IntVec, T: IntVec, - Ys: CxVec, k2, tap, V) -> Tuple[CxCSC, CxCSC, CxCSC]: + Ys: CxVec, kconv, tap, V) -> Tuple[CxCSC, CxCSC, CxCSC]: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -619,7 +618,7 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param k2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: @@ -651,8 +650,8 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, t = T[idx] # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[idx] / (-1j * k2[idx] * np.conj(tap[idx])) - ytf_dsh = -Ys[idx] / (1j * k2[idx] * tap[idx]) + yft_dsh = -Ys[idx] / (-1j * kconv[idx] * np.conj(tap[idx])) + ytf_dsh = -Ys[idx] / (1j * kconv[idx] * tap[idx]) # Partials of S w.r.t. Ɵ shift val_f = V[f] * np.conj(yft_dsh * V[t]) @@ -687,7 +686,7 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, @njit() def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, - k2: Vec, tap: CxVec, V: CxVec) -> CxCSC: + kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -699,7 +698,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param k2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: dSbus_dsh @@ -724,7 +723,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV # from side if f_idx >= 0: - yft_dsh = -Ys[k] / (-1j * k2[k] * np.conj(tap[k])) + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) Ti[nnz] = f_idx Tj[nnz] = k_counter @@ -732,7 +731,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV # to side if t_idx >= 0: - ytf_dsh = -Ys[k] / (1j * k2[k] * tap[k]) + ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) Ti[nnz] = t_idx Tj[nnz] = k_counter @@ -745,7 +744,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV @njit() -def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -756,7 +755,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param K2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: dSf_dsh @@ -777,7 +776,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V t = T[k] # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[k] / (-1j * K2[k] * np.conj(tap[k])) + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) @@ -792,7 +791,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V @njit() -def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -803,7 +802,7 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param K2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: dSf_dsh @@ -826,7 +825,7 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V t = T[k] # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - ytf_dsh = -Ys[k] / (1j * K2[k] * tap[k]) + ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) @@ -840,16 +839,16 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V return mat -@njit(cache=True) -def derivatives_ma_csc_numba(nb, nl, iXxma, F, T, Ys, kconv, tap, tap_module, Bc, Beq, V) -> Tuple[CxCSC, CxCSC, CxCSC]: +@njit() +def derivatives_ma_csc_numba(nbus, nbr, iXxma, F, T, Ys, kconv, tap, tap_module, Bc, Beq, V) -> Tuple[CxCSC, CxCSC, CxCSC]: """ Useful for the calculation of - dSbus_dQfma, dSf_dQfma, dSt_dQfma -> wih iXxma=iQfma - dSbus_dQtma, dSf_dQtma, dSt_dQtma -> wih iXxma=iQtma - dSbus_dVtma, dSf_dVtma, dSt_dVtma -> wih iXxma=iVtma - :param nb: Number of buses - :param nl: Number of Branches + :param nbus: Number of buses + :param nbr: Number of Branches :param iXxma: Array of indices {iQfma, iQtma, iVtma} :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices @@ -867,19 +866,19 @@ def derivatives_ma_csc_numba(nb, nl, iXxma, F, T, Ys, kconv, tap, tap_module, Bc ndev = len(iXxma) # dSbus_dma = lil_matrix((nb, ndev), dtype=complex) - dSbus_dma = CxCSC(nb, ndev, ndev * 2, False) + dSbus_dma = CxCSC(nbus, ndev, ndev * 2, False) # dSbus_dma_data = np.empty(ndev2, dtype=np.complex128) # dSbus_dma_indices = np.empty(ndev2, dtype=np.int32) # dSbus_dma_indptr = np.empty(ndev + 1, dtype=np.int32) # dSf_dma = lil_matrix((nl, ndev), dtype=complex) - dSf_dma = CxCSC(nl, ndev, ndev, False) + dSf_dma = CxCSC(nbr, ndev, ndev, False) # dSf_dma_data = np.empty(ndev, dtype=np.complex128) # dSf_dma_indices = np.empty(ndev, dtype=np.int32) # dSf_dma_indptr = np.empty(ndev + 1, dtype=np.int32) # dSt_dma = lil_matrix((nl, ndev), dtype=complex) - dSt_dma = CxCSC(nl, ndev, ndev, False) + dSt_dma = CxCSC(nbr, ndev, ndev, False) # dSt_dma_data = np.empty(ndev, dtype=np.complex128) # dSt_dma_indices = np.empty(ndev, dtype=np.int32) # dSt_dma_indptr = np.empty(ndev + 1, dtype=np.int32) @@ -1086,19 +1085,19 @@ def dSt_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Ve return mat -@njit(cache=True) -def derivatives_Beq_csc_numba(nb, nbr, iBeqx, F, V, ma, kconv): +@njit() +def derivatives_Beq_csc_numba(nbus, nbr, iBeqx, F, V, tap_module, kconv): """ Compute the derivatives of: - dSbus_dBeqz, dSf_dBeqz, dSt_dBeqz -> iBeqx=iBeqz - dSbus_dBeqv, dSf_dBeqv, dSt_dBeqv -> iBeqx=iBeqv - :param nb: Number of buses + :param nbus: Number of buses :param nbr: Number of Branches :param iBeqx: array of indices {iBeqz, iBeqv} :param F: Array of branch "from" bus indices :param V:Array of complex voltages - :param ma: Array of branch taps modules + :param tap_module: Array of branch taps modules :param kconv: Array of "k2" parameters :return: @@ -1108,7 +1107,7 @@ def derivatives_Beq_csc_numba(nb, nbr, iBeqx, F, V, ma, kconv): ndev = len(iBeqx) - dSbus_dBeq = CxCSC(nb, ndev, ndev, False) + dSbus_dBeq = CxCSC(nbus, ndev, ndev, False) dSf_dBeq = CxCSC(nbr, ndev, ndev, False) dSt_dBeq = CxCSC(nbr, ndev, 0, True) @@ -1119,7 +1118,7 @@ def derivatives_Beq_csc_numba(nb, nbr, iBeqx, F, V, ma, kconv): f = F[idx] # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq - dyff_dBeq = 1j / np.power(kconv[idx] * ma[idx], 2.0) + dyff_dBeq = 1j / np.power(kconv[idx] * tap_module[idx], 2.0) # Partials of S w.r.t.Beq val_f = V[f] * np.conj(dyff_dBeq * V[f]) diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index 3ba7eb119..b2b1df998 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -411,7 +411,7 @@ def compile_y_acdc(Cf: sp.csc_matrix, Beq: Vec, Gsw: Vec, virtual_tap_from: Vec, - virtual_tap_to: Vec) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec]: + virtual_tap_to: Vec) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec, CxVec, CxVec, CxVec, CxVec]: """ Compile the admittance matrices using the variable elements :param Cf: Connectivity branch-bus "from" with the branch states computed @@ -443,17 +443,17 @@ def compile_y_acdc(Cf: sp.csc_matrix, tap = tap_module * np.exp(1.0j * tap_angle) # compose the primitives - Yff = Gsw + (ys + bc2 + 1.0j * Beq + yshunt_f) / (tap_module * tap_module * virtual_tap_from * virtual_tap_from) - Yft = -ys / (np.conj(tap) * virtual_tap_from * virtual_tap_to) - Ytf = -ys / (tap * virtual_tap_from * virtual_tap_to) - Ytt = ys + bc2 + yshunt_t / (virtual_tap_to * virtual_tap_to) + yff = Gsw + (ys + bc2 + 1.0j * Beq + yshunt_f) / (tap_module * tap_module * virtual_tap_from * virtual_tap_from) + yft = -ys / (np.conj(tap) * virtual_tap_from * virtual_tap_to) + ytf = -ys / (tap * virtual_tap_from * virtual_tap_to) + ytt = ys + bc2 + yshunt_t / (virtual_tap_to * virtual_tap_to) # compose the matrices - Yf = sp.diags(Yff) * Cf + sp.diags(Yft) * Ct - Yt = sp.diags(Ytf) * Cf + sp.diags(Ytt) * Ct + Yf = sp.diags(yff) * Cf + sp.diags(yft) * Ct + Yt = sp.diags(ytf) * Cf + sp.diags(ytt) * Ct Ybus = sp.csc_matrix(Cf.T * Yf + Ct.T * Yt) - return Ybus, Yf.tocsc(), Yt.tocsc(), tap + return Ybus, Yf.tocsc(), Yt.tocsc(), tap, yff, yft, ytf, ytt class SeriesAdmittanceMatrices: diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 018ccb12c..e3a4c2c90 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -86,7 +86,7 @@ def fill_from_coo(self, Ti: IntVec, Tj: IntVec, Tx: CxVec, nnz: int): :param nnz: number of non-zeros """ self.nnz = nnz - self.data = np.empty(self.nnz, dtype=np.complex128) + self.data = np.empty(self.nnz, dtype=np.float64) self.indices = np.empty(self.nnz, dtype=np.int32) # self.indptr = np.empty(n_cols + 1, dtype=np.int32) @@ -604,7 +604,7 @@ def sp_slice_rows(mat: CSC, rows: np.ndarray) -> CSC: return sp_transpose(A) -@njit(cache=True) +@njit() def sp_slice(A: CSC, rows: IntVec, cols: IntVec): """ /* @@ -655,8 +655,8 @@ def sp_slice(A: CSC, rows: IntVec, cols: IntVec): return B -@njit(cache=True) -def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: +@njit() +def csc_stack_2d_ff(mats: List[CSC], n_rows: int = 1, n_cols: int = 1) -> CSC: """ Assemble matrix from a list of matrices representing a "super matrix" @@ -670,8 +670,8 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: m_cols = 3 :param mats: list of CSC matrices arranged in row-major order (i.e. [mat11, mat12, mat13, mat21, mat22, mat23] - :param m_rows: number of rows of the mats structure - :param m_cols: number of cols of the mats structure + :param n_rows: number of rows of the mats structure + :param n_cols: number of cols of the mats structure :return: Final assembled matrix in CSC format """ @@ -679,11 +679,11 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: nnz = 0 nrows = 0 ncols = 0 - for r in range(m_rows): - nrows += mats[r * m_cols].n_rows # equivalent to mats[r, 0] - for c in range(m_cols): - col = mats[c + r * m_cols].n_cols # equivalent to mats[r, c] - nnz += mats[c + r * m_cols].nnz + for r in range(n_rows): + nrows += mats[r * n_cols].n_rows # equivalent to mats[r, 0] + for c in range(n_cols): + col = mats[c + r * n_cols].n_cols # equivalent to mats[r, c] + nnz += mats[c + r * n_cols].nnz if r == 0: ncols += col @@ -692,7 +692,7 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: cnt = 0 res.indptr[0] = 0 offset_col = 0 - for c in range(m_cols): # for each column of the array of matrices + for c in range(n_cols): # for each column of the array of matrices # number of columns n = mats[c].n_cols # equivalent to mats[0, c] @@ -702,10 +702,10 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: offset_row = 0 - for r in range(m_rows): # for each row of the array of rows + for r in range(n_rows): # for each row of the array of rows # get the current sub-matrix - A: CSC = mats[r * m_cols + c] # equivalent to mats[r, c] + A: CSC = mats[r * n_cols + c] # equivalent to mats[r, c] if A.n_rows > 0: diff --git a/src/tests/tests_derivatives.py b/src/tests/tests_derivatives.py index c5d0658af..0ea218825 100644 --- a/src/tests/tests_derivatives.py +++ b/src/tests/tests_derivatives.py @@ -151,111 +151,211 @@ def test_branch_derivatives() -> None: check_dSt_dVa(dSt_dVa1, br_idx, bus_idx, nc) -def check_dSbus_dtau(dSbus_dsh1, br_idx, bus_idx, Ys, nc: NumericalCircuit): +def test_tau_derivatives() -> None: """ - :param dSbus_dsh1: - :param br_idx: - :param bus_idx: - :param Ys: - :param nc: :return: """ - dSbus_dsh2 = cscdiff.dSbus_dtau_csc(nbus=nc.nbus, - bus_indices=bus_idx, - tau_indices=br_idx, - F=nc.F, - T=nc.T, - Ys=Ys, - k2=nc.branch_data.k, - tap=nc.branch_data.tap, - V=nc.Vbus) + # fname = os.path.join("data", "grids", "fubm_case_57_14_2MTDC_ctrls.gridcal") + fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") + grid = gce.open_file(filename=fname) + nc = gce.compile_numerical_circuit_at(grid) - dSbus_dsh3 = mat_to_scipy(dSbus_dsh1)[np.ix_(bus_idx, br_idx)] + Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) - # print(f"dSbus_dsh1 (matpower):\n {dSbus_dsh1.real.toarray()}") - # print(f"dSbus_dsh3 (matpower):\n {dSbus_dsh3.real.toarray()}") - # print(f"dSbus_dsh2 (new):\n {dSbus_dsh2.real.toarray()}") + test_data = [ + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([10, 12, 14]), + "sf_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + }, + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([2, 3, 4]), + "sf_idx": np.array([2, 3, 4]), + }, + { + "bus_idx": np.arange(nc.nbus), + "br_idx": np.arange(nc.nbr), + "sf_idx": np.arange(nc.nbr), + }, + ] - assert np.allclose(dSbus_dsh3.toarray(), dSbus_dsh2.toarray()) + for dta in test_data: + tau_idx = dta["br_idx"] + bus_idx = dta["bus_idx"] + sf_idx = dta["sf_idx"] + dSbus_dtau1, dSf_dtau1, dSt_dtau1 = cscdiff.derivatives_tau_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iPxsh=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) -def check_dSf_dtau(dSf_dtau1, sf_indices, tau_indices, Ys, nc: NumericalCircuit): - """ + # check_dSbus_dtau(dSbus_dtau1, br_idx, bus_idx, Ys, nc) - :param dSf_dtau1: - :param sf_indices: - :param tau_indices: - :param Ys: - :param nc: - :return: - """ - dSf_dtau2 = cscdiff.dSf_dtau_csc(sf_indices=sf_indices, - tau_indices=tau_indices, - F=nc.F, - T=nc.T, - Ys=Ys, - K2=nc.branch_data.k, - tap=nc.branch_data.tap, - V=nc.Vbus) + dSbus_dsh2 = cscdiff.dSbus_dtau_csc(nbus=nc.nbus, + bus_indices=bus_idx, + tau_indices=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) + + dSbus_dsh3 = mat_to_scipy(dSbus_dtau1)[bus_idx, :] + + # print(f"dSbus_dsh1 (matpower):\n {dSbus_dsh1.real.toarray()}") + # print(f"dSbus_dsh3 (matpower):\n {dSbus_dsh3.real.toarray()}") + # print(f"dSbus_dsh2 (new):\n {dSbus_dsh2.real.toarray()}") + + assert np.allclose(dSbus_dsh3.toarray(), dSbus_dsh2.toarray()) + + # check_dSf_dtau(dSf_dtau1, sf_idx, br_idx, Ys, nc) + + dSf_dtau2 = cscdiff.dSf_dtau_csc(sf_indices=sf_idx, + tau_indices=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) + + dSf_dtau3 = mat_to_scipy(dSf_dtau1)[sf_idx, :] + + # print(f"dSf_dtau1 (matpower):\n {dSf_dtau1.real.toarray()}") + # print(f"dSf_dtau3 (matpower):\n {dSf_dtau3.real.toarray()}") + # print(f"dSf_dtau2 (new):\n {dSf_dtau2.real.toarray()}") - dSf_dtau3 = mat_to_scipy(dSf_dtau1)[np.ix_(sf_indices, tau_indices)] + assert np.allclose(dSf_dtau3.toarray(), dSf_dtau2.toarray()) - # print(f"dSf_dtau1 (matpower):\n {dSf_dtau1.real.toarray()}") - # print(f"dSf_dtau3 (matpower):\n {dSf_dtau3.real.toarray()}") - # print(f"dSf_dtau2 (new):\n {dSf_dtau2.real.toarray()}") + # check_dSt_dtau(dSt_dtau1, sf_idx, br_idx, Ys, nc) - assert np.allclose(dSf_dtau3.toarray(), dSf_dtau2.toarray()) + dSt_dtau2 = cscdiff.dSt_dtau_csc(sf_indices=sf_idx, + tau_indices=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) + dSt_dtau3 = mat_to_scipy(dSt_dtau1)[sf_idx, :] -def check_dSt_dtau(dSt_dtau1, sf_indices, tau_indices, Ys, nc: NumericalCircuit): + # print(f"dSt_dtau1 (matpower):\n {dSt_dtau1.real.toarray()}") + # print(f"dSt_dtau3 (matpower):\n {dSt_dtau3.real.toarray()}") + # print(f"dSt_dtau2 (new):\n {dSt_dtau2.real.toarray()}") + + assert np.allclose(dSt_dtau3.toarray(), dSt_dtau2.toarray()) + + +def test_m_derivatives() -> None: """ - :param dSt_dtau1: - :param sf_indices: - :param tau_indices: - :param Ys: - :param nc: :return: """ - dSt_dtau2 = cscdiff.dSt_dtau_csc(sf_indices=sf_indices, - tau_indices=tau_indices, + # fname = os.path.join("data", "grids", "fubm_case_57_14_2MTDC_ctrls.gridcal") + fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") + grid = gce.open_file(filename=fname) + nc = gce.compile_numerical_circuit_at(grid) + + Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) + + test_data = [ + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([10, 12, 14]), + "sf_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + }, + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([2, 3, 4]), + "sf_idx": np.array([2, 3, 4]), + }, + { + "bus_idx": np.arange(nc.nbus), + "br_idx": np.arange(nc.nbr), + "sf_idx": np.arange(nc.nbr), + }, + ] + + for dta in test_data: + m_idx = dta["br_idx"] + bus_idx = dta["bus_idx"] + sf_idx = dta["sf_idx"] + + dSbus_dm1, dSf_dm1, dSt_dm1 = cscdiff.derivatives_ma_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iXxma=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + V=nc.Vbus) + + dSbus_dm2 = cscdiff.dSbus_dm_csc(nbus=nc.nbus, + bus_indices=bus_idx, + m_indices=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSbus_dsh3 = mat_to_scipy(dSbus_dm1)[bus_idx, :] + assert np.allclose(dSbus_dsh3.toarray(), dSbus_dm2.toarray()) + + dSf_dm2 = cscdiff.dSf_dm_csc(sf_indices=sf_idx, + m_indices=m_idx, F=nc.F, T=nc.T, Ys=Ys, - K2=nc.branch_data.k, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + kconv=nc.branch_data.k, tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, V=nc.Vbus) + dSf_dtau3 = mat_to_scipy(dSf_dm1)[sf_idx, :] + assert np.allclose(dSf_dtau3.toarray(), dSf_dm2.toarray()) - dSt_dtau3 = mat_to_scipy(dSt_dtau1)[np.ix_(sf_indices, tau_indices)] - - # print(f"dSt_dtau1 (matpower):\n {dSt_dtau1.real.toarray()}") - # print(f"dSt_dtau3 (matpower):\n {dSt_dtau3.real.toarray()}") - # print(f"dSt_dtau2 (new):\n {dSt_dtau2.real.toarray()}") + dSt_dm2 = cscdiff.dSt_dm_csc(sf_indices=sf_idx, + m_indices=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSt_dm3 = mat_to_scipy(dSt_dm1)[sf_idx, :] + assert np.allclose(dSt_dm3.toarray(), dSt_dm2.toarray()) - assert np.allclose(dSt_dtau3.toarray(), dSt_dtau2.toarray()) +def test_beq_derivatives() -> None: + """ -def test_tau_derivatives() -> None: + :return: + """ # fname = os.path.join("data", "grids", "fubm_case_57_14_2MTDC_ctrls.gridcal") fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") grid = gce.open_file(filename=fname) nc = gce.compile_numerical_circuit_at(grid) Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) - bus_idx = np.arange(nc.nbus, dtype=np.int32) - br_idx = np.arange(nc.nbr, dtype=np.int32) - # br_idx = nc.k_pf_tau - - dSbus_dtau1, dSf_dtau1, dSt_dtau1 = cscdiff.derivatives_tau_csc_numba(nbus=nc.nbus, - nbr=nc.nbr, - iPxsh=br_idx, - F=nc.F, - T=nc.T, - Ys=Ys, - k2=nc.branch_data.k, - tap=nc.branch_data.tap, - V=nc.Vbus) test_data = [ { @@ -276,14 +376,42 @@ def test_tau_derivatives() -> None: ] for dta in test_data: - br_idx = dta["br_idx"] + m_idx = dta["br_idx"] bus_idx = dta["bus_idx"] sf_idx = dta["sf_idx"] - check_dSbus_dtau(dSbus_dtau1, br_idx, bus_idx, Ys, nc) - check_dSf_dtau(dSf_dtau1, sf_idx, br_idx, Ys, nc) - check_dSt_dtau(dSt_dtau1, sf_idx, br_idx, Ys, nc) + + dSbus_dbeq1, dSf_dbeq1, dSt_dbeq1 = cscdiff.derivatives_Beq_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iBeqx=m_idx, + F=nc.F, + kconv=nc.branch_data.k, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + + dSbus_dbeq2 = cscdiff.dSbus_dbeq_csc(nbus=nc.nbus, + bus_indices=bus_idx, + beq_indices=m_idx, + F=nc.F, + kconv=nc.branch_data.k, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSbus_dbeq3 = mat_to_scipy(dSbus_dbeq1)[bus_idx, :] + assert np.allclose(dSbus_dbeq3.toarray(), dSbus_dbeq2.toarray()) + + dSf_dbeq2 = cscdiff.dSf_dbeq_csc(sf_indices=sf_idx, + beq_indices=m_idx, + F=nc.F, + kconv=nc.branch_data.k, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSf_dbeq3 = mat_to_scipy(dSf_dbeq1)[sf_idx, :] + assert np.allclose(dSf_dbeq3.toarray(), dSf_dbeq2.toarray()) + + # dSt_dbeq is zero if __name__ == '__main__': # test_branch_derivatives() - test_tau_derivatives() + # test_tau_derivatives() + # test_m_derivatives() + test_beq_derivatives() From 1aa1e0169c8485cdf5c2e495ed7e2c4abf9ed067 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 15 Jul 2024 21:09:12 +0100 Subject: [PATCH 003/218] Improved acdc jacobian composition --- .../DataStructures/numerical_circuit.py | 69 ++++++++++--------- .../NumericalMethods/acdc_jacobian.py | 1 + src/GridCalEngine/Utils/Sparse/csc2.py | 2 +- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index aaf09b8c6..2fad1a8db 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1606,28 +1606,6 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian - pvpq = np.r_[self.pv, self.pq] - - cols = ['1) dVa {0}'.format(i) for i in pvpq] - cols += ['2) dVm {0}'.format(i) for i in self.pq] - cols += ['3) dPfsh {0}'.format(i) for i in self.k_pf_tau] - cols += ['4) dQfma {0}'.format(i) for i in self.k_qf_m] - cols += ['5) dBeqz {0}'.format(i) for i in self.k_zero_beq] - cols += ['6) dBeqv {0}'.format(i) for i in self.k_vf_beq] - cols += ['7) dVtma {0}'.format(i) for i in self.k_vt_m] - cols += ['8) dQtma {0}'.format(i) for i in self.k_qt_m] - cols += ['9) dPfdp {0}'.format(i) for i in self.k_pf_dp] - - rows = ['1) dP {0}'.format(i) for i in pvpq] - rows += ['2) dQ {0}'.format(i) for i in self.pq] - rows += ['3) dQ {0}'.format(i) for i in self.k_vf_beq] - rows += ['4) dQ {0}'.format(i) for i in self.k_vt_m] - rows += ['5) dPf {0}'.format(i) for i in self.k_pf_tau] - rows += ['6) dQf {0}'.format(i) for i in self.k_qf_m] - rows += ['7) dQf {0}'.format(i) for i in self.k_zero_beq] - rows += ['8) dQt {0}'.format(i) for i in self.k_qt_m] - rows += ['9) dPfdp {0}'.format(i) for i in self.k_pf_dp] - # compute admittances Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( @@ -1647,19 +1625,31 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: virtual_tap_to=self.branch_data.virtual_tap_t, ) + idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dvm = np.r_[self.pq, self.p] + idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m] + idx_dtau = np.r_[self.k_pf_tau, self.k_pf_dp] + idx_dbeq = np.r_[self.k_zero_beq, self.k_vf_beq] + idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dQ = np.r_[self.pq, self.pqv] + idx_dQf = np.r_[self.k_qf_m, self.k_zero_beq] + idx_dQt = self.k_qt_m + idx_dPf = self.k_pf_tau + idx_dPdp = self.k_pf_dp + J = fubm_jacobian( nbus=self.nbus, - idx_dtheta=np.r_[self.pv, self.pq, self.p, self.pqv], - idx_dvm=np.r_[self.pq, self.p], - idx_dm=np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m], - idx_dtau=np.r_[self.k_pf_tau, self.k_pf_dp], - idx_dbeq=np.r_[self.k_zero_beq, self.k_vf_beq], - idx_dP=np.r_[self.pv, self.pq, self.p, self.pqv], - idx_dQ=np.r_[self.pq, self.pqv], - idx_dQf=np.r_[self.k_qf_m, self.k_zero_beq], - idx_dQt=self.k_qt_m, - idx_dPf=self.k_pf_tau, - idx_dPdp=self.k_pf_dp, + idx_dtheta=idx_dtheta, + idx_dvm=idx_dvm, + idx_dm=idx_dm, + idx_dtau=idx_dtau, + idx_dbeq=idx_dbeq, + idx_dP=idx_dP, + idx_dQ=idx_dQ, + idx_dQf=idx_dQf, + idx_dQt=idx_dQt, + idx_dPf=idx_dPf, + idx_dPdp=idx_dPdp, F=self.F, T=self.T, Ys=Ys, @@ -1680,6 +1670,19 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: ytt=self.admittances_.ytt ) + cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] + cols += ['2) dVm {0}'.format(i) for i in idx_dvm] + cols += ['3) dm {0}'.format(i) for i in idx_dm] + cols += ['4) dtau {0}'.format(i) for i in idx_dtau] + cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] + + rows = ['1) dP {0}'.format(i) for i in idx_dP] + rows += ['2) dQ {0}'.format(i) for i in idx_dQ] + rows += ['3) dQf {0}'.format(i) for i in idx_dQf] + rows += ['4) dQt {0}'.format(i) for i in idx_dQt] + rows += ['5) dPf {0}'.format(i) for i in idx_dPf] + rows += ['9) dPfdp {0}'.format(i) for i in idx_dPdp] + df = pd.DataFrame( data=J.toarray(), columns=cols, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py index 54b176d74..63f0a8789 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py @@ -861,6 +861,7 @@ def fubm_jacobian_old(nb, nl, return J +# @nb.njit() def fubm_jacobian(nbus: int, idx_dtheta: IntVec, idx_dvm: IntVec, diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index e3a4c2c90..bb4ff1011 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -707,7 +707,7 @@ def csc_stack_2d_ff(mats: List[CSC], n_rows: int = 1, n_cols: int = 1) -> CSC: # get the current sub-matrix A: CSC = mats[r * n_cols + c] # equivalent to mats[r, c] - if A.n_rows > 0: + if A.n_rows > 0 and A.nnz > 0: for k in range(A.indptr[j], A.indptr[j + 1]): # for every entry in the column from A res.indices[cnt] = A.indices[k] + offset_row # row index From 12da1f6640bf0330c2ab0159b65a27b671c09cee Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 16 Jul 2024 18:04:57 +0100 Subject: [PATCH 004/218] Improved voltage collapse with remote control --- .idea/workspace.xml | 193 +++++++++--------- .../grids/Illinois 200 Bus.gridcal | Bin 1619399 -> 1619042 bytes .../continuation_power_flow.py | 186 ++++++++++------- .../continuation_power_flow_driver.py | 6 +- .../LinearFactors/linear_analysis.py | 2 +- .../PowerFlow/NumericalMethods/ac_jacobian.py | 46 ++--- .../NumericalMethods/acdc_jacobian.py | 3 + .../iwamoto_newton_raphson.py | 4 +- .../NumericalMethods/newton_raphson.py | 4 +- .../NumericalMethods/newton_raphson_acdc.py | 4 +- .../NumericalMethods/newton_raphson_ode.py | 3 +- .../Stochastic/reliability_driver.py | 6 +- src/GridCalEngine/Utils/Sparse/csc2.py | 18 +- src/tests/test_sparse2.py | 3 +- 14 files changed, 262 insertions(+), 216 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 79731b50e..c00e188b1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,18 +28,21 @@ - + - + + - - - + + + + + - - - + + + + + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for tests_derivatives.test_tau_derivatives.executor": "Run", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python tests.pytest in tests_derivatives.py.executor": "Debug", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Debug", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tests_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -489,7 +500,7 @@ @@ -1446,7 +1457,7 @@ - + 1656059954202 @@ -1791,7 +1802,7 @@ - @@ -1837,7 +1848,6 @@ - @@ -1862,7 +1872,8 @@ - @@ -2344,12 +2355,12 @@ @@ -2480,6 +2516,7 @@ + @@ -2490,6 +2527,7 @@ + @@ -2745,7 +2783,7 @@ - + diff --git a/src/GridCal/__version__.py b/src/GridCal/__version__.py index 93dc5ef42..1c8a40e3d 100644 --- a/src/GridCal/__version__.py +++ b/src/GridCal/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCal_VERSION__ = "5.1.20" +__GridCal_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 2fad1a8db..82cb1cdbe 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1604,7 +1604,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'Jacobian': - from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian + from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian # compute admittances Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) diff --git a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py index 04223786b..1555dcc13 100644 --- a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +++ b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py @@ -18,7 +18,7 @@ import numpy as np from GridCalEngine.enumerations import ReactivePowerControlMode, CpfParametrization, CpfStopAt -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobianVc +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_direct from GridCalEngine.Topology.simulation_indices import compile_types from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (polar_to_rect, compute_power) diff --git a/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py b/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py index 148cde02d..f8017b0ac 100644 --- a/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +++ b/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py @@ -26,7 +26,7 @@ from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.Devices.Aggregation.contingency_group import ContingencyGroup from GridCalEngine.Devices.Aggregation.contingency import Contingency -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Simulations.derivatives.csc_derivatives import dSf_dV_csc from GridCalEngine.Utils.Sparse.csc import dense_to_csc import GridCalEngine.Utils.Sparse.csc2 as csc diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py index 1f90f54a3..b362954c9 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py @@ -20,7 +20,7 @@ import numpy as np from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobianVc, CSC +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc, CSC import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.enumerations import ReactivePowerControlMode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py index 1258f5806..d024deea4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py @@ -20,7 +20,7 @@ import numpy as np import scipy.sparse as sp from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobianVc +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.enumerations import ReactivePowerControlMode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 142648629..73d3e3fb1 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -24,7 +24,7 @@ from GridCalEngine.Topology.admittance_matrices import compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian, AcDcSolSlicer +from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian, AcDcSolSlicer from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.basic_structures import CxVec diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index d3470cb23..d17d70dd8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -19,7 +19,7 @@ import scipy import numpy as np from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian, AC_jacobianVc +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.enumerations import ReactivePowerControlMode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 3727ef6ea..6ba64af2d 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -23,7 +23,7 @@ from GridCalEngine.Topology.admittance_matrices import compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian, AcDcSolSlicer +from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian, AcDcSolSlicer from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_acdc_fx, compute_converter_losses, compute_power, compute_zip_power) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py index 4a09eb0d9..7177a94a4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py @@ -20,17 +20,11 @@ import numpy as np from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit -from GridCalEngine.Topology.admittance_matrices import compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian, AcDcSolSlicer -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_acdc_fx, - compute_converter_losses, - compute_power, compute_zip_power) +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_power, compute_zip_power) from GridCalEngine.Utils.NumericalMethods.common import (ConvexMethodResult, ConvexFunctionResult) from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson from GridCalEngine.enumerations import ReactivePowerControlMode -import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp from scipy.sparse import csr_matrix, csc_matrix from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec, Logger diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py index 9b45c108c..6d892f4a4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py @@ -20,7 +20,7 @@ import numpy as np from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py similarity index 96% rename from src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py rename to src/GridCalEngine/Simulations/derivatives/ac_jacobian.py index afcb1f177..ea35018df 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py @@ -219,8 +219,8 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # Note: The row and column pointer of of dVm and dVa are the same as the one from Ybus - lookup_pvpq = make_lookup(nbus, pvpq) - lookup_pq = make_lookup(nbus, pq) + lookup_dP = make_lookup(nbus, pvpq) + lookup_dQ = make_lookup(nbus, pq) # get length of vectors npvpq = len(pvpq) @@ -228,6 +228,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # nonzeros in J nnz = 0 p = 0 + J.indptr[p] = nnz # J1 and J3 ----------------------------------------------------------------------------------------- for j in pvpq: # columns @@ -235,7 +236,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J1 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pvpq[i] + ii = lookup_dP[i] if pvpq[ii] == i: J.data[nnz] = dS_dVa_x[k].real @@ -245,7 +246,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J3 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pq[i] + ii = lookup_dQ[i] if pq[ii] == i: J.data[nnz] = dS_dVa_x[k].imag @@ -261,7 +262,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J2 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pvpq[i] + ii = lookup_dP[i] if pvpq[ii] == i: J.data[nnz] = dS_dVm_x[k].real @@ -271,7 +272,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J4 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pq[i] + ii = lookup_dQ[i] if pq[ii] == i: J.data[nnz] = dS_dVm_x[k].imag @@ -337,8 +338,8 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, J = CSC(nj, nj, nnz_estimate, False) # Note: The row and column pointer of of dVm and dVa are the same as the one from Ybus - lookup_block1 = make_lookup(nbus, idx_dtheta) - lookup_block3 = make_lookup(nbus, idx_dQ) + lookup_dP = make_lookup(nbus, idx_dtheta) + lookup_dQ = make_lookup(nbus, idx_dQ) # get length of vectors n_no_slack = len(idx_dtheta) @@ -346,6 +347,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # nonzeros in J nnz = 0 p = 0 + J.indptr[p] = nnz # J1 and J3 ----------------------------------------------------------------------------------------- for j in idx_dtheta: # columns @@ -353,7 +355,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # J1 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_block1[i] + ii = lookup_dP[i] if idx_dtheta[ii] == i: J.data[nnz] = dS_dVa_x[k].real @@ -363,7 +365,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # J3 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_block3[i] + ii = lookup_dQ[i] if idx_dQ[ii] == i: J.data[nnz] = dS_dVa_x[k].imag @@ -377,9 +379,9 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, for j in idx_dVm: # columns # J2 - for k in range(Yp[j], Yp[j + 1]): # rows - i = Yi[k] - ii = lookup_block1[i] + for k in range(Yp[j], Yp[j + 1]): + i = Yi[k] # row at Y + ii = lookup_dP[i] if idx_dtheta[ii] == i: J.data[nnz] = dS_dVm_x[k].real @@ -389,7 +391,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # J4 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_block3[i] + ii = lookup_dQ[i] if idx_dQ[ii] == i: J.data[nnz] = dS_dVm_x[k].imag diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py similarity index 100% rename from src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py rename to src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py diff --git a/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py b/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py index d4a8b6010..ac3fefcaf 100644 --- a/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py @@ -17,7 +17,7 @@ import numpy as np from typing import Tuple -from scipy.sparse import diags, csc_matrix +from scipy.sparse import diags, csc_matrix, vstack, hstack from GridCalEngine.basic_structures import CxVec, IntVec @@ -145,3 +145,32 @@ def dSt_dV_matpower(Yt, V, T, Ct, Vc, diagVc, diagE, diagV): dSt_dVm = diagVt * np.conj(Yt * diagE) + diagItc * CVnt return dSt_dVa.tocsc(), dSt_dVm.tocsc() + + +def Jacobian(Ybus, V: CxVec, idx_dP: IntVec, idx_dQ: IntVec, idx_dVa: IntVec, idx_dVm: IntVec) -> csc_matrix: + """ + Computes the system Jacobian matrix in polar coordinates + Args: + :param Ybus: Admittance matrix + :param V: Array of nodal voltages + :param idx_dVa: vector of indices of PV|PQ|PQV|P buses + :param idx_dVm: vector of indices of PQ|P buses + :param idx_dP: vector of indices of PV|PQ|PQV|P buses + :param idx_dQ: vector of indices of PQ|PQV buses + + Returns: + The system Jacobian matrix + """ + assert np.all(idx_dP == idx_dVa) + + dS_dVa, dS_dVm = dSbus_dV_matpower(Ybus, V) + + J11 = dS_dVa[np.ix_(idx_dP, idx_dVa)].real + J12 = dS_dVm[np.ix_(idx_dP, idx_dVm)].real + J21 = dS_dVa[np.ix_(idx_dQ, idx_dVa)].imag + J22 = dS_dVm[np.ix_(idx_dQ, idx_dVm)].imag + + J = vstack([hstack([J11, J12]), + hstack([J21, J22])], format="csc") + + return csc_matrix(J) diff --git a/src/GridCalEngine/__version__.py b/src/GridCalEngine/__version__.py index 3ae429528..e8fc85d17 100644 --- a/src/GridCalEngine/__version__.py +++ b/src/GridCalEngine/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCalEngine_VERSION__ = "5.1.20" +__GridCalEngine_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/GridCalServer/__version__.py b/src/GridCalServer/__version__.py index f50a07746..eb2ada850 100644 --- a/src/GridCalServer/__version__.py +++ b/src/GridCalServer/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCalServer_VERSION__ = "5.1.20" +__GridCalServer_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/tests/newton_equivalence_utils.py b/src/tests/newton_equivalence_utils.py index 85b46ee10..72f212f3e 100644 --- a/src/tests/newton_equivalence_utils.py +++ b/src/tests/newton_equivalence_utils.py @@ -5,7 +5,7 @@ import scipy.sparse as sp from typing import List from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian npa.findAndActivateLicense() diff --git a/src/tests/tests_derivatives.py b/src/tests/test_derivatives.py similarity index 94% rename from src/tests/tests_derivatives.py rename to src/tests/test_derivatives.py index 0ea218825..342c099a5 100644 --- a/src/tests/tests_derivatives.py +++ b/src/tests/test_derivatives.py @@ -1,6 +1,7 @@ import os import numpy as np import GridCalEngine.Simulations.derivatives.csc_derivatives as cscdiff +import GridCalEngine.Simulations.derivatives.ac_jacobian as cscjac import GridCalEngine.Simulations.derivatives.matpower_derivatives as mdiff from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Utils.Sparse.csc2 import mat_to_scipy @@ -410,8 +411,36 @@ def test_beq_derivatives() -> None: # dSt_dbeq is zero +def test_jacobian(): + fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") + grid = gce.open_file(filename=fname) + nc = gce.compile_numerical_circuit_at(grid) + + idx_dtheta = np.r_[nc.pv, nc.pq, nc.pqv, nc.p] + idx_dVm = np.r_[nc.pq, nc.p] + idx_dP = idx_dtheta + idx_dQ = np.r_[nc.pq, nc.pqv] + + J1 = mdiff.Jacobian(nc.Ybus, nc.Vbus, idx_dP, idx_dQ, idx_dtheta, idx_dVm) + + J3 = cscjac.AC_jacobian(nc.Ybus, nc.Vbus, idx_dtheta, idx_dVm) + + J2 = cscjac.AC_jacobianVc(nc.Ybus, nc.Vbus, idx_dtheta, idx_dVm, idx_dQ) + + ok1 = np.allclose(J1.toarray(), J2.toarray()) + ok2 = np.allclose(J1.toarray(), J3.toarray()) + ok = ok1 and ok2 + + if not ok: + print(f"J1:\n{J1.toarray()}\n") + print(f"J2:\n{J2.toarray()}\n") + print(f"ok {ok}") + assert ok + + if __name__ == '__main__': # test_branch_derivatives() # test_tau_derivatives() # test_m_derivatives() - test_beq_derivatives() + # test_beq_derivatives() + test_jacobian() diff --git a/src/trunk/acopf/jacobian.py b/src/trunk/acopf/jacobian.py index e917a0f48..dc943e6a3 100644 --- a/src/trunk/acopf/jacobian.py +++ b/src/trunk/acopf/jacobian.py @@ -2,7 +2,7 @@ import scipy.sparse as sp from math import sin, cos import GridCalEngine.api as gc -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_power diff --git a/src/trunk/pf/power_flow_research.py b/src/trunk/pf/power_flow_research.py index 643710390..2ef2cec25 100644 --- a/src/trunk/pf/power_flow_research.py +++ b/src/trunk/pf/power_flow_research.py @@ -16,7 +16,6 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Tuple import matplotlib.pyplot as plt -import numpy as np import sys sys.path.append('C:/Users/raiya/Documents/8. eRoots/thesis/code/GridCal/src') import GridCalEngine.api as gce @@ -24,21 +23,14 @@ import numba as nb from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian -from GridCalEngine.Utils.NumericalMethods.common import ConvexFunctionResult, ConvexMethodResult +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson -from GridCalEngine.Utils.NumericalMethods.powell import powell_dog_leg -from GridCalEngine.Utils.NumericalMethods.levenberg_marquadt import levenberg_marquardt from GridCalEngine.enumerations import SolverType -from sympy import symbols, diff, exp, re, im -import time import numpy as np -from typing import Callable, Any from GridCalEngine.basic_structures import Vec from GridCalEngine.Utils.NumericalMethods.common import (ConvexMethodResult, ConvexFunctionResult, check_function_and_args) from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_linear_solver -from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Branches import VSC, Transformer2W from scipy.sparse import csc_matrix from typing import Tuple, Union @@ -3041,7 +3033,6 @@ def run_pf_ver2(grid: gce.MultiCircuit, pf_options: gce.PowerFlowOptions, debug if __name__ == '__main__': - import os # grid_ = HelperFunctions.linn5bus_example() #converges true, and same as traditional powerflow # grid_ = HelperFunctions.linn5bus_example2() #converges true grid_ = HelperFunctions.ieee14_example() #converges true, and same as traditional powerflow diff --git a/src/trunk/pf/power_flow_research_hvdc.py b/src/trunk/pf/power_flow_research_hvdc.py index 67712fe39..2174ca529 100644 --- a/src/trunk/pf/power_flow_research_hvdc.py +++ b/src/trunk/pf/power_flow_research_hvdc.py @@ -22,7 +22,7 @@ from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec import GridCalEngine.Utils.NumericalMethods.autodiff as ad import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Utils.NumericalMethods.common import ConvexFunctionResult, ConvexMethodResult from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson from GridCalEngine.Utils.NumericalMethods.powell import powell_dog_leg diff --git a/src/trunk/pf/power_flow_research_sinj.py b/src/trunk/pf/power_flow_research_sinj.py index f52068037..3aae0fc3e 100644 --- a/src/trunk/pf/power_flow_research_sinj.py +++ b/src/trunk/pf/power_flow_research_sinj.py @@ -23,7 +23,7 @@ from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Utils.NumericalMethods.common import ConvexFunctionResult, ConvexMethodResult from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson from GridCalEngine.Utils.NumericalMethods.powell import powell_dog_leg From df3e8caf33914d0f6b30fca25d83cd88b2804cf6 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 16 Jul 2024 19:49:08 +0100 Subject: [PATCH 006/218] Some minor improvements and checks --- .idea/workspace.xml | 64 ++++++------------- .../DataStructures/numerical_circuit.py | 6 +- .../Simulations/derivatives/acdc_jacobian.py | 6 ++ src/GridCalEngine/Utils/Sparse/csc2.py | 6 +- 4 files changed, 35 insertions(+), 47 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ac85b4059..c779e71b3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,30 +28,11 @@ - + + + + - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -1438,7 +1465,8 @@ - + + 1656059954202 @@ -1783,7 +1811,7 @@ - @@ -1829,7 +1857,6 @@ - @@ -1854,7 +1881,8 @@ - @@ -2337,14 +2365,9 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py - 973 + 976 - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py - 221 - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py 342 @@ -2362,28 +2385,29 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py - 989 + 999 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py - 932 + 935 - + - + + - + @@ -2406,27 +2430,28 @@ - + - + - - + + - + + @@ -2445,18 +2470,18 @@ - - + + - - + + @@ -2485,8 +2510,8 @@ - + @@ -2502,8 +2527,8 @@ - + @@ -2552,8 +2577,8 @@ - + @@ -2564,8 +2589,8 @@ - + @@ -2740,13 +2765,14 @@ - + + @@ -2759,13 +2785,13 @@ - + - + diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py index cce2624ac..5cea97ee5 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py @@ -88,31 +88,31 @@ def compute_power(Ybus: csc_matrix, V: CxVec) -> CxVec: @nb.njit(cache=True, fastmath=True) -def compute_fx(Scalc: CxVec, Sbus: CxVec, pvpq: IntVec, pq: IntVec) -> Vec: +def compute_fx(Scalc: CxVec, Sbus: CxVec, idx_dP: IntVec, idx_dQ: IntVec) -> Vec: """ Compute the NR-like error function f = [∆P(pqpv), ∆Q(pq)] :param Scalc: Calculated power injections :param Sbus: Specified power injections - :param pvpq: Array pf pq and pv node indices - :param pq: Array of pq node indices + :param idx_dP: Array of node indices updated with dP (pvpq) + :param idx_dQ: Array of node indices updated with dQ (pq) :return: error """ # dS = Scalc - Sbus # compute the mismatch # return np.r_[dS[pvpq].real, dS[pq].imag] - n = len(pvpq) + len(pq) + n = len(idx_dP) + len(idx_dQ) fx = np.empty(n, dtype=float) k = 0 - for i in pvpq: + for i in idx_dP: # F1(x0) Power balance mismatch - Va # fx[k] = mis[i].real fx[k] = Scalc[i].real - Sbus[i].real k += 1 - for i in pq: + for i in idx_dQ: # F2(x0) Power balance mismatch - Vm # fx[k] = mis[i].imag fx[k] = Scalc[i].imag - Sbus[i].imag diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py index e8b333f88..1ade21602 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py @@ -150,8 +150,8 @@ def FDPF(Vbus, S0, I0, Y0, Ybus, B1, B2, pv_, pq_, pqv_, p_, Qmin, Qmax, tol=1e- converged=converged, norm_f=normF, Scalc=Scalc, - ma=None, - theta=None, + m=None, + tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py index 5fb5e6721..545699350 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py @@ -113,6 +113,6 @@ def gausspf(Ybus, S0, I0, Y0, V0, pv, pq, tol=1e-3, max_it=50, # return NumericPowerFlowResults(V, converged, normF, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py index 6f6eeba9d..6b9126c29 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py @@ -694,7 +694,7 @@ def helm_josep(Ybus, Yseries, V0, S0, Ysh0, pq, pv, sl, pqpv, tolerance=1e-6, ma if n < 2: # return NumericPowerFlowResults(V0, True, 0.0, S0, None, None, None, None, None, None, 0, 0.0) return NumericPowerFlowResults(V=V0, converged=True, norm_f=0.0, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=0, elapsed=0.0) @@ -737,6 +737,6 @@ def helm_josep(Ybus, Yseries, V0, S0, Ysh0, pq, pv, sl, pqpv, tolerance=1e-6, ma # return NumericPowerFlowResults(V, converged, norm_f, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py index b362954c9..960bb1535 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py @@ -141,7 +141,7 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= logger.add_error('NR Singular matrix @iter:'.format(iter_)) return NumericPowerFlowResults(V=V0, converged=converged, norm_f=norm_f, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) @@ -152,7 +152,7 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= end = time.time() elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) @@ -225,6 +225,6 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= # return NumericPowerFlowResults(V, converged, norm_f, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py index d024deea4..e0dd5f726 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py @@ -227,7 +227,7 @@ def levenberg_marquardt_pf(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 73d3e3fb1..8f497a556 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -314,6 +314,6 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # return NumericPowerFlowResults(V, converged, norm_f, Scalc, m, theta, Beq, Ybus, Yf, Yt, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=m, theta=tau, Beq=Beq, + Scalc=Scalc, m=m, tau=tau, Beq=Beq, Ybus=Ybus, Yf=Yf, Yt=Yt, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py index 50b3d221f..da55add87 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py @@ -94,7 +94,7 @@ def dcpf(Ybus: sp.csc_matrix, Bpqpv: sp.csc_matrix, Bref: sp.csc_matrix, Bf: sp. # return NumericPowerFlowResults(V, True, norm_f, Scalc, None, None, None, None, None, None, 1, elapsed) return NumericPowerFlowResults(V=V, converged=True, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=1, elapsed=elapsed) @@ -148,7 +148,7 @@ def lacpf(Ybus, Ys, S0: CxVec, I0: CxVec, V0: CxVec, pq: IntVec, pv: IntVec) -> V = V0 # Calculate the error and check the convergence Scalc = cf.compute_power(Ybus, V) - mismatch = cf.compute_fx(Scalc=Scalc, Sbus=S0, pvpq=pvpq, pq=pq) + mismatch = cf.compute_fx(Scalc=Scalc, Sbus=S0, idx_dP=pvpq, idx_dQ=pq) norm_f = cf.compute_fx_error(mismatch) # check for convergence @@ -157,7 +157,7 @@ def lacpf(Ybus, Ys, S0: CxVec, I0: CxVec, V0: CxVec, pq: IntVec, pv: IntVec) -> # return NumericPowerFlowResults(V, False, norm_f, Scalc, # None, None, None, None, None, None, 1, elapsed) return NumericPowerFlowResults(V=V, converged=False, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=1, elapsed=elapsed) @@ -189,7 +189,7 @@ def lacpf(Ybus, Ys, S0: CxVec, I0: CxVec, V0: CxVec, pq: IntVec, pv: IntVec) -> # return NumericPowerFlowResults(V, True, norm_f, Scalc, # None, None, None, None, None, None, 1, elapsed) return NumericPowerFlowResults(V=V, converged=True, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=1, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index d17d70dd8..9af73b0b6 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -110,7 +110,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, logger.add_error('NR Singular matrix @iter:'.format(iteration)) return NumericPowerFlowResults(V=V0, converged=converged, norm_f=norm_f, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) except RuntimeError: @@ -120,7 +120,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, logger.add_error('NR Singular matrix @iter:'.format(iteration)) return NumericPowerFlowResults(V=V0, converged=converged, norm_f=norm_f, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) @@ -184,7 +184,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, end = time.time() elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) @@ -223,6 +223,6 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 6ba64af2d..56dce5af7 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -188,17 +188,17 @@ def NR_LS_ACDC(nc: NumericalCircuit, # compute the Jacobian J = fubm_jacobian(nbus=nc.nbus, - idx_dtheta=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], - idx_dvm=np.r_[nc.pq, nc.p], - idx_dm=np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m], - idx_dtau=np.r_[nc.k_pf_tau, nc.k_pf_dp], - idx_dbeq=np.r_[nc.k_zero_beq, nc.k_vf_beq], - idx_dP=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], - idx_dQ=np.r_[nc.pq, nc.pqv], - idx_dQf=np.r_[nc.k_qf_m, nc.k_zero_beq], - idx_dQt=nc.k_qt_m, - idx_dPf=nc.k_pf_tau, - idx_dPdp=nc.k_pf_dp, + idx_dtheta=idx_dtheta, + idx_dvm=idx_dvm, + idx_dm=idx_dm, + idx_dtau=idx_dtau, + idx_dbeq=idx_dbeq, + idx_dP=idx_dP, + idx_dQ=idx_dQ, + idx_dQf=idx_dQf, + idx_dQt=idx_dQt, + idx_dPf=idx_dPf, + idx_dPdp=idx_dPdp, F=nc.F, T=nc.T, Ys=Ys, @@ -333,7 +333,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, # return NumericPowerFlowResults(V, converged, norm_f_new, prev_Scalc, # m, tau, Beq, Ybus, Yf, Yt, iterations, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=m, theta=tau, Beq=Beq, + Scalc=Scalc, m=m, tau=tau, Beq=Beq, Ybus=Ybus, Yf=Yf, Yt=Yt, iterations=iterations, elapsed=elapsed) else: @@ -430,6 +430,6 @@ def NR_LS_ACDC(nc: NumericalCircuit, # return NumericPowerFlowResults(V, converged, norm_f, Scalc, # m, tau, Beq, Ybus, Yf, Yt, iterations, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=m, theta=tau, Beq=Beq, + Scalc=Scalc, m=m, tau=tau, Beq=Beq, Ybus=Ybus, Yf=Yf, Yt=Yt, iterations=iterations, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py index e87e8b10d..194af79e8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py @@ -184,6 +184,6 @@ def NR_I_LS(Ybus, Sbus_sp, V0, Ibus_sp, pv, pq, tol, max_it=15, acceleration_par # return NumericPowerFlowResults(V, converged, normF, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py index 5513bb408..8c5bad907 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py @@ -196,7 +196,7 @@ def NRD_LS(Ybus, S0, V0, I0, Y0, pv, pq, tol, max_it=15, # return NumericPowerFlowResults(V, converged, norm_f, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py new file mode 100644 index 000000000..0d38c917c --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py @@ -0,0 +1,125 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +import time +import numpy as np +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate +from GridCalEngine.basic_structures import Logger + + +def newton_raphson_fx(problem: PfFormulationTemplate, + tol: float = 1e-6, + max_iter: int = 10, + trust: float = 1.0, + verbose: int = 0, + logger: Logger = Logger()) -> NumericPowerFlowResults: + """ + Newton-Raphson with Line search to solve: + + min: error(g(x)) + s.t. + g(x) = 0 + + :param problem: PfFormulationTemplate + :param tol: Error tolerance + :param max_iter: Maximum number of iterations + :param trust: trust amount in the derivative length correctness + :param verbose: Display console information + :param logger: Logger instance + :return: ConvexMethodResult + """ + start = time.time() + + # get the initial point + x = problem.var2x().copy() + + if len(x) == 0: + return problem.get_solution(elapsed=time.time() - start, iterations=0) + + # set the problem state + error, converged, _ = problem.update(x, update_controls=False) + + iteration = 0 + error_evolution = np.zeros(max_iter + 1) + trust0 = trust if trust <= 1.0 else 1.0 # trust radius in NR should not be greater than 1 + + # save the error evolution + error_evolution[iteration] = problem.error + + if verbose > 0: + print(f'It {iteration}, error {problem.error}, converged {problem.converged}, x {x}, dx not computed yet') + + if problem.converged: + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + else: + + while not converged and iteration < max_iter: + + # compute update step + try: + + # compute update step: J x Δx = Δg + dx, ok = problem.solve_step() + + if not ok: + logger.add_error(f"Newton-Raphson's Jacobian is singular @iter {iteration}:") + print("(newton_raphson.py) Singular Jacobian") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + except RuntimeError: + logger.add_error(f"Newton-Raphson's Jacobian is singular @iter {iteration}:") + print("(newton_raphson.py) Singular Jacobian") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + mu = trust0 + back_track_condition = True + l_iter = 0 + while back_track_condition and mu > tol: + + x2 = x - mu * dx + error2, converged2, _ = problem.update(x2, update_controls=False) + + # change mu for the next iteration + mu *= 0.5 # acceleration_parameter + + # keep back-tracking? + back_track_condition = error2 > error + l_iter += 1 + + if not back_track_condition: + # accept the solution + x = x2 + + if back_track_condition: + # this means that not even the backtracking was able to correct + # the solution, so terminate + logger.add_warning(f"Newton-Raphson's stagnated @iter {iteration}:") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + # set the problem state + error, converged, x = problem.update(x, update_controls=True) + + # update iteration counter + iteration += 1 + + # save the error evolution + error_evolution[iteration] = error + + if verbose > 0: + print(f'It {iteration}, error {error}, converged {converged}, x {x}, dx {dx}') + + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py index 6d892f4a4..32fd7cc60 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py @@ -195,6 +195,6 @@ def ContinuousNR(Ybus, Sbus, V0, Ibus, pv, pq, tol, max_it=15) -> NumericPowerFl # return NumericPowerFlowResults(V, converged, normF, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py new file mode 100644 index 000000000..86f90bb75 --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py @@ -0,0 +1,212 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import Tuple +import numpy as np +from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions +from GridCalEngine.enumerations import ReactivePowerControlMode +from GridCalEngine.Simulations.derivatives.ac_jacobian import create_J_vc_csc +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, + compute_fx, polar_to_rect) +from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc +from GridCalEngine.basic_structures import Vec, IntVec, CxVec +from GridCalEngine.Utils.Sparse.csc2 import CSC + + +class PfBasicFormulation(PfFormulationTemplate): + + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, + pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, + adm: AdmittanceMatrices, options: PowerFlowOptions): + """ + + :param V0: + :param S0: + :param I0: + :param Y0: + :param Qmin: + :param Qmax: + :param pq: + :param pv: + :param pqv: + :param p: + :param adm: + :param options: + """ + PfFormulationTemplate.__init__(self, V0=V0, pq=pq, pv=pv, pqv=pqv, p=p, options=options) + + self.adm: AdmittanceMatrices = adm + + self.S0: CxVec = S0 + self.I0: CxVec = I0 + self.Y0: CxVec = Y0 + + self.Qmin = Qmin + self.Qmax = Qmax + + def x2var(self, x: Vec): + """ + Convert X to decission variables + :param x: solution vector + """ + a = len(self.idx_dVa) + b = a + len(self.idx_dVm) + + # update the vectors + self.Va[self.idx_dVa] = x[0:a] + self.Vm[self.idx_dVm] = x[a:b] + + # compute the complex voltage + self.V = polar_to_rect(self.Vm, self.Va) + + def var2x(self) -> Vec: + """ + Convert the internal decission variables into the vector + :return: Vector + """ + return np.r_[ + self.Va[self.idx_dVa], + self.Vm[self.idx_dVm] + ] + + def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: + """ + + :param x: + :param update_controls: + :return: + """ + # set the problem state + self.x2var(x) + + # compute the function residual + self._f = self.fx() + + # compute the rror + self._error = compute_fx_error(self._f) + + # converged? + self._converged = self._error < self.options.tolerance + + # review reactive power limits + # it is only worth checking Q limits with a low error + # since with higher errors, the Q values may be far from realistic + # finally, the Q control only makes sense if there are pv nodes + if update_controls: + if (self.options.control_Q != ReactivePowerControlMode.NoControl and + self._error < 1e-2 + and (len(self.pv) + len(self.p)) > 0): + + # check and adjust the reactive power + # this function passes pv buses to pq when the limits are violated, + # but not pq to pv because that is unstable + changed, pv, pq, pqv, p = control_q_inside_method(self.Scalc, self.S0, + self.pv, self.pq, + self.pqv, self.p, + self.Qmin, + self.Qmax) + + if len(changed) > 0: + self.update_types(pq=pq, pv=pv, pqv=pqv, p=p) + + # recompute the error based on the new Scalc and S0 + self._f = self.fx() + + # compute the rror + self._error = compute_fx_error(self._f) + + # the composition of x changed, so recompute + x = self.var2x() + + return self._error, self._converged, x + + def fx(self) -> Vec: + """ + + :return: + """ + # Assumes the internal vars were updated already with self.x2var() + Sbus = compute_zip_power(self.S0, self.I0, self.Y0, self.Vm) + self.Scalc = compute_power(self.adm.Ybus, self.V) + self._f = compute_fx(self.Scalc, Sbus, self.idx_dP, self.idx_dQ) + return self._f + + def Jacobian(self) -> CSC: + """ + + :return: + """ + # Assumes the internal vars were updated already with self.x2var() + if self.adm.Ybus.format != 'csc': + self.adm.Ybus = self.adm.Ybus.tocsc() + + nbus = self.adm.Ybus.shape[0] + + # Create J in CSC order + J = create_J_vc_csc(nbus, self.adm.Ybus.data, self.adm.Ybus.indptr, self.adm.Ybus.indices, + self.V, self.idx_dVa, self.idx_dVm, self.idx_dQ) + + return J + + def solve_step_from_f(self, f: Vec) -> Tuple[Vec, bool]: + """ + + :param f: Function residual + :return: + """ + # Compute the Jacobian + J = self.Jacobian() # Assumes the internal vars were updated already with self.x2var() + + # Solve the sparse system + dx, ok = spsolve_csc(J, f) + + return dx, ok + + def solve_step(self) -> Tuple[Vec, bool]: + """ + + :return: + """ + + # Solve the sparse system + dx, ok = self.solve_step_from_f(self._f) + + return dx, ok + + def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: + """ + Get the problem solution + :param elapsed: Elapsed seconds + :param iterations: Iteration number + :return: NumericPowerFlowResults + """ + return NumericPowerFlowResults(V=self.V, + converged=self.converged, + norm_f=self.error, + Scalc=self.Scalc, + m=None, + tau=None, + Beq=None, + Ybus=self.adm.Ybus, + Yf=self.adm.Yf, + Yt=self.adm.Yt, + iterations=iterations, + elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py new file mode 100644 index 000000000..49f528110 --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -0,0 +1,205 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import Tuple +import numpy as np +from GridCalEngine.basic_structures import Vec, IntVec, CxVec +from GridCalEngine.Utils.Sparse.csc2 import CSC +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions + + +class PfFormulationTemplate: + """ + Base Power Flow Formulation class + """ + + def __init__(self, V0: CxVec, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, options: PowerFlowOptions): + """ + + :param V0: + :param pq: + :param pv: + :param pqv: + :param p: + :param options: + """ + self.V = V0 + + self._Vm = np.abs(V0) + self._Va = np.angle(V0) + + self.Scalc = np.zeros(len(V0), dtype=complex) + + self.options = options + + self.pq = pq + self.pv = pv + self.pqv = pqv + self.p = p + + self._idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] + self._idx_dVm = np.r_[self.pq, self.p] + self._idx_dP = self._idx_dVa + self._idx_dQ = np.r_[self.pq, self.pqv] + + self._f = np.zeros(0) + + self._error: float = 0.0 + + self._converged: bool = False + + def update_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec): + """ + + :param pq: + :param pv: + :param pqv: + :param p: + :return: + """ + self.pq = pq + self.pv = pv + self.pqv = pqv + self.p = p + + self._idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] + self._idx_dVm = np.r_[self.pq, self.p] + self._idx_dP = self._idx_dVa + self._idx_dQ = np.r_[self.pq, self.pqv] + + @property + def converged(self) -> bool: + """ + Converged? + :return: + """ + return self._converged + + @property + def error(self) -> float: + """ + Converged? + :return: + """ + return self._error + + @property + def f(self) -> Vec: + """ + Converged? + :return: + """ + return self._f + + @property + def idx_dVa(self) -> IntVec: + """ + Indices for the increments of Va + :return: + """ + return self._idx_dVa + + @property + def idx_dVm(self) -> IntVec: + """ + indices for the increment of Vm + :return: + """ + return self._idx_dVm + + @property + def idx_dP(self) -> IntVec: + """ + indices for the increment of P + :return: + """ + return self._idx_dP + + @property + def idx_dQ(self) -> IntVec: + """ + Indices for the increment of Q + :return: + """ + return self._idx_dQ + + @property + def Va(self) -> Vec: + """ + Voltage angles + :return: + """ + return self._Va + + @property + def Vm(self) -> Vec: + """ + Voltage modules + :return: + """ + return self._Vm + + def x2var(self, x: Vec): + """ + Convert X to decission variables + :param x: solution vector + """ + pass + + def var2x(self) -> Vec: + """ + Convert the internal decission variables into the vector + """ + pass + + def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: + """ + Update the problem + :param x: Solution vector + :param update_controls: Update controls + :return: error, converged, x + """ + return self.error, self.converged, np.zeros(len(self.V)) + + def fx(self) -> Vec: + """ + + :return: + """ + pass + + def Jacobian(self) -> CSC: + """ + + :return: + """ + pass + + def solve_step(self) -> Tuple[Vec, bool]: + """ + + :param x: + :return: + """ + pass + + def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: + """ + + :return: + """ + pass \ No newline at end of file diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py index 9a0183b10..74dfd97b2 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py @@ -104,8 +104,6 @@ def __init__(self, self.generate_report = generate_report - self.generalised_pf = generalised_pf # TODO: Remove this - self.register(key="solver_type", tpe=SolverType) self.register(key="retry_with_other_methods", tpe=bool) self.register(key="tolerance", tpe=float) @@ -124,4 +122,3 @@ def __init__(self, self.register(key="use_stored_guess", tpe=bool) self.register(key="override_branch_controls", tpe=bool) self.register(key="generate_report", tpe=bool) - self.register(key="generalised_pf", tpe=bool) diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py index 255f55e85..806432255 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py @@ -37,8 +37,8 @@ def __init__(self, converged: bool, norm_f: float, Scalc: CxVec, - ma: Union[Vec, None] = None, - theta: Union[Vec, None] = None, + m: Union[Vec, None] = None, + tau: Union[Vec, None] = None, Beq: Union[Vec, None] = None, Ybus: Union[CscMat, None] = None, Yf: Union[CscMat, None] = None, @@ -51,8 +51,8 @@ def __init__(self, :param converged: converged? :param norm_f: error :param Scalc: Calculated power vector - :param ma: Tap modules vector for all the Branches - :param theta: Tap angles vector for all the Branches + :param m: Tap modules vector for all the Branches + :param tau: Tap angles vector for all the Branches :param Beq: Equivalent susceptance vector for all the Branches :param Ybus: Admittance matrix :param Yf: Admittance matrix of the "from" buses @@ -64,8 +64,8 @@ def __init__(self, self.converged = converged self.norm_f = norm_f self.Scalc = Scalc - self.ma = ma - self.theta = theta + self.ma = m + self.tau = tau self.Beq = Beq self.Ybus = Ybus self.Yf = Yf diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index 25043f12f..559b0eb8f 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -24,11 +24,11 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_basic_formulation import PfBasicFormulation +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.newton_raphson_fx import newton_raphson_fx from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.DataStructures.numerical_circuit import ( - compile_numerical_circuit_at as compile_numerical_circuit_at_generalised_pf) from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.basic_structures import CxVec, Vec, IntVec, CscMat @@ -111,8 +111,8 @@ def solve(circuit: NumericalCircuit, converged=False, norm_f=1e200, Scalc=S0, - ma=tap_modules, - theta=circuit.branch_data.tap_angle, + m=tap_modules, + tau=circuit.branch_data.tap_angle, Beq=Beq, Ybus=circuit.Ybus, Yf=circuit.Yf, @@ -244,24 +244,44 @@ def solve(circuit: NumericalCircuit, control_q=options.control_Q) else: # Solve NR with the AC algorithm - solution = pflw.NR_LS(Ybus=circuit.Ybus, - S0=S0, - V0=final_solution.V, - I0=I0, - Y0=Y0, - pv_=pv, - pq_=pq, - pqv_=pqv, - p_=p, - Qmin=Qmin, - Qmax=Qmax, - tol=options.tolerance, - max_it=options.max_iter, - mu_0=options.trust_radius, - acceleration_parameter=options.backtracking_parameter, - control_q=options.control_Q, - verbose=options.verbose, - logger=logger) + problem = PfBasicFormulation(V0=final_solution.V, + S0=S0, + I0=I0, + Y0=Y0, + Qmin=Qmin, + Qmax=Qmax, + pv=pv, + pq=pq, + pqv=pqv, + p=p, + adm=circuit.admittances_, + options=options) + + solution = newton_raphson_fx(problem=problem, + tol=options.tolerance, + max_iter=options.max_iter, + trust=options.trust_radius, + verbose=options.verbose, + logger=logger) + + # solution = pflw.NR_LS(Ybus=circuit.Ybus, + # S0=S0, + # V0=final_solution.V, + # I0=I0, + # Y0=Y0, + # pv_=pv, + # pq_=pq, + # pqv_=pqv, + # p_=p, + # Qmin=Qmin, + # Qmax=Qmax, + # tol=options.tolerance, + # max_it=options.max_iter, + # mu_0=options.trust_radius, + # acceleration_parameter=options.backtracking_parameter, + # control_q=options.control_Q, + # verbose=options.verbose, + # logger=logger) # Newton-Raphson-Decpupled elif solver_type == SolverType.NRD: @@ -336,8 +356,8 @@ def solve(circuit: NumericalCircuit, if final_solution.ma is None: final_solution.ma = tap_modules - if final_solution.theta is None: - final_solution.theta = tap_angles + if final_solution.tau is None: + final_solution.tau = tap_angles if final_solution.Beq is None: final_solution.Beq = Beq @@ -396,8 +416,8 @@ def single_island_pf(circuit: NumericalCircuit, options: PowerFlowOptions, converged=False, norm_f=1e200, Scalc=S0, - ma=tap_modules, - theta=tap_angles, + m=tap_modules, + tau=tap_angles, Beq=Beq, Ybus=circuit.Ybus, Yf=circuit.Yf, @@ -488,7 +508,7 @@ def single_island_pf(circuit: NumericalCircuit, options: PowerFlowOptions, results.If = If # in p.u. results.It = It # in p.u. results.tap_module = solution.ma - results.tap_angle = solution.theta + results.tap_angle = solution.tau results.Beq = solution.Beq results.Vbranch = Vbranch results.loading = loading @@ -766,34 +786,17 @@ def multi_island_pf(multi_circuit: MultiCircuit, :return: PowerFlowResults instance """ - # Generalised PowerFlow - if options.generalised_pf: - nc = compile_numerical_circuit_at_generalised_pf( - circuit=multi_circuit, - t_idx=t, - apply_temperature=options.apply_temperature_correction, - branch_tolerance_mode=options.branch_impedance_tolerance_mode, - opf_results=opf_results, - use_stored_guess=options.use_stored_guess, - bus_dict=bus_dict, - areas_dict=areas_dict - ) - # print("Generalised PowerFlow") - - # Normal PowerFlow - else: - nc = compile_numerical_circuit_at( - circuit=multi_circuit, - t_idx=t, - apply_temperature=options.apply_temperature_correction, - branch_tolerance_mode=options.branch_impedance_tolerance_mode, - opf_results=opf_results, - use_stored_guess=options.use_stored_guess, - bus_dict=bus_dict, - areas_dict=areas_dict, - logger=logger, - ) - # print("Normal PowerFlow") + nc = compile_numerical_circuit_at( + circuit=multi_circuit, + t_idx=t, + apply_temperature=options.apply_temperature_correction, + branch_tolerance_mode=options.branch_impedance_tolerance_mode, + opf_results=opf_results, + use_stored_guess=options.use_stored_guess, + bus_dict=bus_dict, + areas_dict=areas_dict, + logger=logger, + ) res = multi_island_pf_nc(nc=nc, options=options, logger=logger) diff --git a/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py b/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py index c692a8d0a..ae472ab28 100644 --- a/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py +++ b/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py @@ -393,6 +393,6 @@ def solve_se_lm(Ybus, Yf, Yt, f, t, se_input, ref, pq, pv) -> NumericPowerFlowRe # return NumericPowerFlowResults(V, converged, err, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=err, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py index ea35018df..4fe82c700 100644 --- a/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py @@ -1,32 +1,19 @@ -# Copyright 1996-2015 PSERC. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# Copyright (c) 2016-2020 by University of Kassel and Fraunhofer Institute for for Energy Economics -# and Energy System Technology (IEE) Kassel and individual contributors (see AUTHORS file for details). -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are permitted -# provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of conditions -# and the following disclaimer. +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera # -# 2. Redistributions in binary form must reproduce the above copyright notice, this list of -# conditions and the following disclaimer in the documentation and/or other materials provided -# with the distribution. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # -# 3. Neither the name of the copyright holder nor the names of its contributors may be used to -# endorse or promote products derived from this software without specific prior written permission. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY -# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from numba import jit from numpy import float64, int32 import numpy as np diff --git a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py index c68316a6c..e931264f4 100644 --- a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py @@ -929,6 +929,9 @@ def fubm_jacobian(nbus: int, n_rows = len(idx_dP) + len(idx_dQ) + len(idx_dQf) + len(idx_dQt) + len(idx_dPf) + len(idx_dPdp) n_cols = len(idx_dtheta) + len(idx_dvm) + len(idx_dm) + len(idx_dtau) + len(idx_dbeq) + if not np.all(idx_dtau == idx_dPf): + raise ValueError("Pf indices must be equal to tau indices!") + if n_cols != n_rows: raise ValueError("Incorrect J indices!") @@ -944,47 +947,54 @@ def fubm_jacobian(nbus: int, dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dtheta) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dtheta) dQf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag - dQt_dVa_ = deriv.dSt_dVa_csc(nbus, idx_dQt, idx_dtheta, ytf, V, F, T).imag + # dQt_dVa_ = deriv.dSt_dVa_csc(nbus, idx_dQt, idx_dtheta, ytf, V, F, T).imag dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real - dPdp_dVa = deriv.dSf_dVa_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, V, F, T).real + # dPdp_dVa = deriv.dSf_dVa_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, V, F, T).real dP_dVm__ = sp_slice(dS_dVm.real, idx_dP, idx_dvm) dQ_dVm__ = sp_slice(dS_dVm.imag, idx_dQ, idx_dvm) dQf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag - dQt_dVm_ = deriv.dSt_dVm_csc(nbus, idx_dQt, idx_dtheta, ytt, ytf, V, F, T).imag + # dQt_dVm_ = deriv.dSt_dVm_csc(nbus, idx_dQt, idx_dtheta, ytt, ytf, V, F, T).imag dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real - dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) + # dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) + # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real + # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag - dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag + # dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real - dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real + # dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + # dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real - dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + # dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real # compose the Jacobian + # J = csc_stack_2d_ff(mats= + # [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, + # dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, + # dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, + # dQt_dVa_, dQt_dVm_, dQt_dbeq_, dQt_dm_, dQt_dtau_, + # dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_, + # dPdp_dVa, dPdp_dVm, dPdp_dbeq, dPdp_dm, dPdp_dtau], + # n_rows=6, n_cols=5) + J = csc_stack_2d_ff(mats= [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, - dQt_dVa_, dQt_dVm_, dQt_dbeq_, dQt_dm_, dQt_dtau_, - dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_, - dPdp_dVa, dPdp_dVm, dPdp_dbeq, dPdp_dm, dPdp_dtau], - n_rows=6, n_cols=5) + dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_], + n_rows=4, n_cols=5) if J.n_cols != J.n_rows: raise ValueError("J is not square!") diff --git a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py index aaf619e12..1cb2372db 100644 --- a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py @@ -751,7 +751,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp :param sf_indices: array of sf indices - :param tau_indices: array of branch indices with tau control + :param tau_indices: array of branch indices with tau control (must be equal to sf_indices) :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances @@ -769,20 +769,17 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv Tj = np.empty(max_nnz, dtype=np.int32) nnz = 0 for k_idx, k in enumerate(tau_indices): - for k2_idx, k2 in enumerate(sf_indices): - - if k2 == k: - f = F[k] - t = T[k] + f = F[k] + t = T[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) + # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) + Ti[nnz] = k_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 1e0d0f835..4debd63c1 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -213,6 +213,8 @@ def __init__(self, n_rows: int, n_cols: int, nnz: int, force_zeros: bool): self.indices = np.empty(nnz, dtype=np.int32) self.indptr = np.empty(n_cols + 1, dtype=np.int32) + self.indptr[0] = 0 # always + def set(self, indices: IntVec, indptr: IntVec, data: CxVec): """ Set the internal arrays @@ -239,7 +241,8 @@ def fill_from_coo(self, Ti: IntVec, Tj: IntVec, Tx: CxVec, nnz: int): self.nnz = nnz self.data = np.empty(self.nnz, dtype=np.complex128) self.indices = np.empty(self.nnz, dtype=np.int32) - # self.indptr = np.empty(n_cols + 1, dtype=np.int32) + self.indptr = np.empty(self.n_cols + 1, dtype=np.int32) + self.indptr[0] = 0 # always w = np.zeros(self.n_cols, dtype=np.int32) # get workspace diff --git a/src/tests/test_contingency.py b/src/tests/test_contingency.py index b4dcc7f04..7f896a580 100644 --- a/src/tests/test_contingency.py +++ b/src/tests/test_contingency.py @@ -31,10 +31,10 @@ def test_contingency() -> None: use_stored_guess=False, control_q=ReactivePowerControlMode.NoControl) - options = ContingencyAnalysisOptions(pf_options=pf_options, + options = ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=ContingencyMethod.PowerFlow) - - cont_analysis_driver = ContingencyAnalysisDriver(grid=main_circuit, + + cont_analysis_driver = ContingencyAnalysisDriver(grid=main_circuit, options=options, linear_multiple_contingencies=None) cont_analysis_driver.run() @@ -73,6 +73,7 @@ def test_linear_contingency(): cont_analysis_driver.run() print("") + # def test_lodf(): # fname = os.path.join('data', 'grids', 'IEEE14_contingency.gridcal') # main_circuit = FileOpen(fname).open() @@ -123,3 +124,6 @@ def test_linear_contingency(): # #res = linear_analysis.results.PTDF - ptdf_result # #print(res) # assert(np.isclose(linear_analysis.results.PTDF, ptdf_result).all()) + +if __name__ == '__main__': + test_contingency() diff --git a/src/tests/test_generator_q_control.py b/src/tests/test_generator_q_control.py index e333619ee..19537c7c8 100644 --- a/src/tests/test_generator_q_control.py +++ b/src/tests/test_generator_q_control.py @@ -2,7 +2,7 @@ from GridCalEngine.api import * -def test_q_control_true(): +def test_q_control_true() -> None: """ Test that when the Q control is enabled the Q limits are respected """ @@ -39,7 +39,6 @@ def test_q_control_false(): main_circuit = FileOpen(fname).open() for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: - options = PowerFlowOptions(solver_type, verbose=0, control_q=ReactivePowerControlMode.NoControl, @@ -58,3 +57,7 @@ def test_q_control_false(): ok = l_ok.all() and r_ok.all() assert not ok + + +if __name__ == '__main__': + test_q_control_true() From ed4db497a7844cac609a07558ad866c2ef753d5a Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 17 Jul 2024 17:43:18 +0100 Subject: [PATCH 008/218] Created PfAdvancedFormulation --- .idea/workspace.xml | 55 +-- src/GridCal/Gui/Main/MainWindow.ui | 249 ++++++------ .../NumericalMethods/discrete_controls.py | 4 +- .../NumericalMethods/newton_raphson_fx.py | 4 +- .../pf_advanced_formulation.py | 356 ++++++++++++++++++ .../NumericalMethods/pf_basic_formulation.py | 25 -- .../pf_formulation_template.py | 23 +- 7 files changed, 525 insertions(+), 191 deletions(-) create mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 15bc2d990..80b6f8b2f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,34 +28,13 @@ - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + @@ -684,19 +1008,19 @@ + + - - + + - - @@ -1446,7 +1770,9 @@ - + + + 1656059954202 @@ -1791,7 +2117,7 @@ - @@ -1837,7 +2163,6 @@ - @@ -1862,7 +2187,8 @@ - @@ -2373,6 +2699,21 @@ 935 @@ -2425,8 +2766,8 @@ - + @@ -2766,13 +3107,13 @@ - + - + diff --git a/src/GridCal/Gui/Main/ConsoleLog.py b/src/GridCal/Gui/Main/ConsoleLog.py index 3139c7b2c..e8cee90f8 100644 --- a/src/GridCal/Gui/Main/ConsoleLog.py +++ b/src/GridCal/Gui/Main/ConsoleLog.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'ConsoleLog.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.7.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -28,7 +28,7 @@ def setupUi(self, mainWindow): mainWindow.resize(516, 327) mainWindow.setBaseSize(QSize(0, 0)) icon = QIcon() - icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Normal, QIcon.Off) + icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) mainWindow.setWindowIcon(icon) mainWindow.setIconSize(QSize(24, 24)) mainWindow.setDocumentMode(False) @@ -37,7 +37,7 @@ def setupUi(self, mainWindow): self.actionSave = QAction(mainWindow) self.actionSave.setObjectName(u"actionSave") icon1 = QIcon() - icon1.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Normal, QIcon.Off) + icon1.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSave.setIcon(icon1) self.centralwidget = QWidget(mainWindow) self.centralwidget.setObjectName(u"centralwidget") diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index 7192b6d37..13569ad95 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'MainWindow.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.7.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -34,7 +34,7 @@ def setupUi(self, mainWindow): mainWindow.resize(1393, 915) mainWindow.setBaseSize(QSize(0, 0)) icon = QIcon() - icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Normal, QIcon.Off) + icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) mainWindow.setWindowIcon(icon) mainWindow.setAutoFillBackground(False) mainWindow.setIconSize(QSize(48, 48)) @@ -46,53 +46,53 @@ def setupUi(self, mainWindow): self.actionOpen_file = QAction(mainWindow) self.actionOpen_file.setObjectName(u"actionOpen_file") icon1 = QIcon() - icon1.addFile(u":/Icons/icons/loadc.svg", QSize(), QIcon.Normal, QIcon.Off) + icon1.addFile(u":/Icons/icons/loadc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOpen_file.setIcon(icon1) self.actionSave = QAction(mainWindow) self.actionSave.setObjectName(u"actionSave") icon2 = QIcon() - icon2.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Normal, QIcon.Off) + icon2.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSave.setIcon(icon2) self.actionTakePicture = QAction(mainWindow) self.actionTakePicture.setObjectName(u"actionTakePicture") icon3 = QIcon() - icon3.addFile(u":/Icons/icons/picture.svg", QSize(), QIcon.Normal, QIcon.Off) + icon3.addFile(u":/Icons/icons/picture.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionTakePicture.setIcon(icon3) self.actionNew_project = QAction(mainWindow) self.actionNew_project.setObjectName(u"actionNew_project") icon4 = QIcon() - icon4.addFile(u":/Icons/icons/new2c.svg", QSize(), QIcon.Normal, QIcon.Off) + icon4.addFile(u":/Icons/icons/new2c.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNew_project.setIcon(icon4) self.actionPower_flow = QAction(mainWindow) self.actionPower_flow.setObjectName(u"actionPower_flow") icon5 = QIcon() - icon5.addFile(u":/Icons/icons/pf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon5.addFile(u":/Icons/icons/pf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_flow.setIcon(icon5) self.actionPower_flow.setMenuRole(QAction.TextHeuristicRole) self.actionPower_Flow_Time_series = QAction(mainWindow) self.actionPower_Flow_Time_series.setObjectName(u"actionPower_Flow_Time_series") icon6 = QIcon() - icon6.addFile(u":/Icons/icons/pf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon6.addFile(u":/Icons/icons/pf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_Flow_Time_series.setIcon(icon6) self.actionBigger_nodes = QAction(mainWindow) self.actionBigger_nodes.setObjectName(u"actionBigger_nodes") icon7 = QIcon() - icon7.addFile(u":/Icons/icons/plus (gray).svg", QSize(), QIcon.Normal, QIcon.Off) + icon7.addFile(u":/Icons/icons/plus (gray).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionBigger_nodes.setIcon(icon7) self.actionSmaller_nodes = QAction(mainWindow) self.actionSmaller_nodes.setObjectName(u"actionSmaller_nodes") icon8 = QIcon() - icon8.addFile(u":/Icons/icons/minus (gray).svg", QSize(), QIcon.Normal, QIcon.Off) + icon8.addFile(u":/Icons/icons/minus (gray).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSmaller_nodes.setIcon(icon8) self.actionPower_flow_Stochastic = QAction(mainWindow) self.actionPower_flow_Stochastic.setObjectName(u"actionPower_flow_Stochastic") icon9 = QIcon() - icon9.addFile(u":/Icons/icons/stochastic_pf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon9.addFile(u":/Icons/icons/stochastic_pf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_flow_Stochastic.setIcon(icon9) self.actionVoltage_stability = QAction(mainWindow) self.actionVoltage_stability.setObjectName(u"actionVoltage_stability") icon10 = QIcon() - icon10.addFile(u":/Icons/icons/continuation_power_flow.svg", QSize(), QIcon.Normal, QIcon.Off) + icon10.addFile(u":/Icons/icons/continuation_power_flow.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionVoltage_stability.setIcon(icon10) self.actionAbout = QAction(mainWindow) self.actionAbout.setObjectName(u"actionAbout") @@ -100,69 +100,69 @@ def setupUi(self, mainWindow): self.actionCenter_view = QAction(mainWindow) self.actionCenter_view.setObjectName(u"actionCenter_view") icon11 = QIcon() - icon11.addFile(u":/Icons/icons/resize.svg", QSize(), QIcon.Normal, QIcon.Off) + icon11.addFile(u":/Icons/icons/resize.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionCenter_view.setIcon(icon11) self.actionShort_Circuit = QAction(mainWindow) self.actionShort_Circuit.setObjectName(u"actionShort_Circuit") icon12 = QIcon() - icon12.addFile(u":/Icons/icons/short_circuit.svg", QSize(), QIcon.Normal, QIcon.Off) + icon12.addFile(u":/Icons/icons/short_circuit.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionShort_Circuit.setIcon(icon12) self.actionAutoatic_layout = QAction(mainWindow) self.actionAutoatic_layout.setObjectName(u"actionAutoatic_layout") icon13 = QIcon() - icon13.addFile(u":/Icons/icons/automatic_layout.svg", QSize(), QIcon.Normal, QIcon.Off) + icon13.addFile(u":/Icons/icons/automatic_layout.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAutoatic_layout.setIcon(icon13) self.actionBlackout_cascade = QAction(mainWindow) self.actionBlackout_cascade.setObjectName(u"actionBlackout_cascade") self.actionBlackout_cascade.setCheckable(True) icon14 = QIcon() - icon14.addFile(u":/Icons/icons/blackout.svg", QSize(), QIcon.Normal, QIcon.Off) + icon14.addFile(u":/Icons/icons/blackout.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionBlackout_cascade.setIcon(icon14) self.actionOPF = QAction(mainWindow) self.actionOPF.setObjectName(u"actionOPF") icon15 = QIcon() - icon15.addFile(u":/Icons/icons/dcopf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon15.addFile(u":/Icons/icons/dcopf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOPF.setIcon(icon15) self.actionOPF_time_series = QAction(mainWindow) self.actionOPF_time_series.setObjectName(u"actionOPF_time_series") icon16 = QIcon() - icon16.addFile(u":/Icons/icons/dcopf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon16.addFile(u":/Icons/icons/dcopf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOPF_time_series.setIcon(icon16) self.actionDetect_transformers = QAction(mainWindow) self.actionDetect_transformers.setObjectName(u"actionDetect_transformers") icon17 = QIcon() - icon17.addFile(u":/Icons/icons/detect_tr.svg", QSize(), QIcon.Normal, QIcon.Off) + icon17.addFile(u":/Icons/icons/detect_tr.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDetect_transformers.setIcon(icon17) self.actionAuto_rate_branches = QAction(mainWindow) self.actionAuto_rate_branches.setObjectName(u"actionAuto_rate_branches") icon18 = QIcon() - icon18.addFile(u":/Icons/icons/rate_br.svg", QSize(), QIcon.Normal, QIcon.Off) + icon18.addFile(u":/Icons/icons/rate_br.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAuto_rate_branches.setIcon(icon18) self.actionExport_all_the_device_s_profiles = QAction(mainWindow) self.actionExport_all_the_device_s_profiles.setObjectName(u"actionExport_all_the_device_s_profiles") icon19 = QIcon() - icon19.addFile(u":/Icons/icons/save.svg", QSize(), QIcon.Normal, QIcon.Off) + icon19.addFile(u":/Icons/icons/save.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionExport_all_the_device_s_profiles.setIcon(icon19) self.actionStorage_location_suggestion = QAction(mainWindow) self.actionStorage_location_suggestion.setObjectName(u"actionStorage_location_suggestion") self.actionStorage_location_suggestion.setCheckable(True) icon20 = QIcon() - icon20.addFile(u":/Icons/icons/storage_loc.svg", QSize(), QIcon.Normal, QIcon.Off) + icon20.addFile(u":/Icons/icons/storage_loc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionStorage_location_suggestion.setIcon(icon20) self.actionLaunch_data_analysis_tool = QAction(mainWindow) self.actionLaunch_data_analysis_tool.setObjectName(u"actionLaunch_data_analysis_tool") icon21 = QIcon() - icon21.addFile(u":/Icons/icons/inputs_analysis 2.svg", QSize(), QIcon.Normal, QIcon.Off) + icon21.addFile(u":/Icons/icons/inputs_analysis 2.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionLaunch_data_analysis_tool.setIcon(icon21) self.actionOnline_documentation = QAction(mainWindow) self.actionOnline_documentation.setObjectName(u"actionOnline_documentation") icon22 = QIcon() - icon22.addFile(u":/Icons/icons/new.svg", QSize(), QIcon.Normal, QIcon.Off) + icon22.addFile(u":/Icons/icons/new.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOnline_documentation.setIcon(icon22) self.actionExport_all_results = QAction(mainWindow) self.actionExport_all_results.setObjectName(u"actionExport_all_results") icon23 = QIcon() - icon23.addFile(u":/Icons/icons/export_pickle.svg", QSize(), QIcon.Normal, QIcon.Off) + icon23.addFile(u":/Icons/icons/export_pickle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionExport_all_results.setIcon(icon23) self.actionSave_as = QAction(mainWindow) self.actionSave_as.setObjectName(u"actionSave_as") @@ -170,28 +170,28 @@ def setupUi(self, mainWindow): self.actionDelete_selected = QAction(mainWindow) self.actionDelete_selected.setObjectName(u"actionDelete_selected") icon24 = QIcon() - icon24.addFile(u":/Icons/icons/delete_db.svg", QSize(), QIcon.Normal, QIcon.Off) + icon24.addFile(u":/Icons/icons/delete_db.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_selected.setIcon(icon24) self.actionLinearAnalysis = QAction(mainWindow) self.actionLinearAnalysis.setObjectName(u"actionLinearAnalysis") icon25 = QIcon() - icon25.addFile(u":/Icons/icons/ptdf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon25.addFile(u":/Icons/icons/ptdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionLinearAnalysis.setIcon(icon25) self.actionReset_console = QAction(mainWindow) self.actionReset_console.setObjectName(u"actionReset_console") icon26 = QIcon() - icon26.addFile(u":/Icons/icons/undo.svg", QSize(), QIcon.Normal, QIcon.Off) + icon26.addFile(u":/Icons/icons/undo.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionReset_console.setIcon(icon26) self.actionOpf_to_Power_flow = QAction(mainWindow) self.actionOpf_to_Power_flow.setObjectName(u"actionOpf_to_Power_flow") self.actionOpf_to_Power_flow.setCheckable(True) icon27 = QIcon() - icon27.addFile(u":/Icons/icons/dcopf2ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon27.addFile(u":/Icons/icons/dcopf2ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOpf_to_Power_flow.setIcon(icon27) self.actionTry_to_fix_buses_location = QAction(mainWindow) self.actionTry_to_fix_buses_location.setObjectName(u"actionTry_to_fix_buses_location") icon28 = QIcon() - icon28.addFile(u":/Icons/icons/move_bus.svg", QSize(), QIcon.Normal, QIcon.Off) + icon28.addFile(u":/Icons/icons/move_bus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionTry_to_fix_buses_location.setIcon(icon28) self.actionSet_OPF_generation_to_profiles = QAction(mainWindow) self.actionSet_OPF_generation_to_profiles.setObjectName(u"actionSet_OPF_generation_to_profiles") @@ -199,44 +199,44 @@ def setupUi(self, mainWindow): self.actionPTDF_time_series = QAction(mainWindow) self.actionPTDF_time_series.setObjectName(u"actionPTDF_time_series") icon29 = QIcon() - icon29.addFile(u":/Icons/icons/ptdf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon29.addFile(u":/Icons/icons/ptdf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPTDF_time_series.setIcon(icon29) self.actionAdd_circuit = QAction(mainWindow) self.actionAdd_circuit.setObjectName(u"actionAdd_circuit") icon30 = QIcon() - icon30.addFile(u":/Icons/icons/load_add.svg", QSize(), QIcon.Normal, QIcon.Off) + icon30.addFile(u":/Icons/icons/load_add.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_circuit.setIcon(icon30) self.actionSync = QAction(mainWindow) self.actionSync.setObjectName(u"actionSync") self.actionSync.setCheckable(True) icon31 = QIcon() - icon31.addFile(u":/Icons/icons/sync.svg", QSize(), QIcon.Normal, QIcon.Off) + icon31.addFile(u":/Icons/icons/sync.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSync.setIcon(icon31) self.actionDrawSchematic = QAction(mainWindow) self.actionDrawSchematic.setObjectName(u"actionDrawSchematic") icon32 = QIcon() - icon32.addFile(u":/Icons/icons/grid_icon.svg", QSize(), QIcon.Normal, QIcon.Off) + icon32.addFile(u":/Icons/icons/grid_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDrawSchematic.setIcon(icon32) self.actionSigma_analysis = QAction(mainWindow) self.actionSigma_analysis.setObjectName(u"actionSigma_analysis") icon33 = QIcon() - icon33.addFile(u":/Icons/icons/sigma.svg", QSize(), QIcon.Normal, QIcon.Off) + icon33.addFile(u":/Icons/icons/sigma.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSigma_analysis.setIcon(icon33) self.actionClear_stuff_running_right_now = QAction(mainWindow) self.actionClear_stuff_running_right_now.setObjectName(u"actionClear_stuff_running_right_now") icon34 = QIcon() - icon34.addFile(u":/Icons/icons/clear_runs.svg", QSize(), QIcon.Normal, QIcon.Off) + icon34.addFile(u":/Icons/icons/clear_runs.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionClear_stuff_running_right_now.setIcon(icon34) self.actionAdd_default_catalogue = QAction(mainWindow) self.actionAdd_default_catalogue.setObjectName(u"actionAdd_default_catalogue") icon35 = QIcon() - icon35.addFile(u":/Icons/icons/CatalogueAdd.svg", QSize(), QIcon.Normal, QIcon.Off) + icon35.addFile(u":/Icons/icons/CatalogueAdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_default_catalogue.setIcon(icon35) self.actionFind_node_groups = QAction(mainWindow) self.actionFind_node_groups.setObjectName(u"actionFind_node_groups") self.actionFind_node_groups.setCheckable(True) icon36 = QIcon() - icon36.addFile(u":/Icons/icons/color_grid2.svg", QSize(), QIcon.Normal, QIcon.Off) + icon36.addFile(u":/Icons/icons/color_grid2.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFind_node_groups.setIcon(icon36) self.actiongrid_Generator = QAction(mainWindow) self.actiongrid_Generator.setObjectName(u"actiongrid_Generator") @@ -244,7 +244,7 @@ def setupUi(self, mainWindow): self.actionImportPlexosNodeLoad = QAction(mainWindow) self.actionImportPlexosNodeLoad.setObjectName(u"actionImportPlexosNodeLoad") icon37 = QIcon() - icon37.addFile(u":/Icons/icons/load.svg", QSize(), QIcon.Normal, QIcon.Off) + icon37.addFile(u":/Icons/icons/load.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionImportPlexosNodeLoad.setIcon(icon37) self.actionImportPlexosGeneratorGeneration = QAction(mainWindow) self.actionImportPlexosGeneratorGeneration.setObjectName(u"actionImportPlexosGeneratorGeneration") @@ -252,7 +252,7 @@ def setupUi(self, mainWindow): self.actionOTDF_time_series = QAction(mainWindow) self.actionOTDF_time_series.setObjectName(u"actionOTDF_time_series") icon38 = QIcon() - icon38.addFile(u":/Icons/icons/otdf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon38.addFile(u":/Icons/icons/otdf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOTDF_time_series.setIcon(icon38) self.actionImportPlexosBranchRates = QAction(mainWindow) self.actionImportPlexosBranchRates.setObjectName(u"actionImportPlexosBranchRates") @@ -266,7 +266,7 @@ def setupUi(self, mainWindow): self.actionSetSelectedBusCountry = QAction(mainWindow) self.actionSetSelectedBusCountry.setObjectName(u"actionSetSelectedBusCountry") icon39 = QIcon() - icon39.addFile(u":/Icons/icons/map.svg", QSize(), QIcon.Normal, QIcon.Off) + icon39.addFile(u":/Icons/icons/map.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSetSelectedBusCountry.setIcon(icon39) self.actionImport_bus_coordinates = QAction(mainWindow) self.actionImport_bus_coordinates.setObjectName(u"actionImport_bus_coordinates") @@ -274,22 +274,22 @@ def setupUi(self, mainWindow): self.actionATC = QAction(mainWindow) self.actionATC.setObjectName(u"actionATC") icon40 = QIcon() - icon40.addFile(u":/Icons/icons/atc.svg", QSize(), QIcon.Normal, QIcon.Off) + icon40.addFile(u":/Icons/icons/atc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionATC.setIcon(icon40) self.actionATC_Time_Series = QAction(mainWindow) self.actionATC_Time_Series.setObjectName(u"actionATC_Time_Series") icon41 = QIcon() - icon41.addFile(u":/Icons/icons/atc_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon41.addFile(u":/Icons/icons/atc_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionATC_Time_Series.setIcon(icon41) self.actionContingency_analysis = QAction(mainWindow) self.actionContingency_analysis.setObjectName(u"actionContingency_analysis") icon42 = QIcon() - icon42.addFile(u":/Icons/icons/otdf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon42.addFile(u":/Icons/icons/otdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionContingency_analysis.setIcon(icon42) self.actionOptimal_Net_Transfer_Capacity = QAction(mainWindow) self.actionOptimal_Net_Transfer_Capacity.setObjectName(u"actionOptimal_Net_Transfer_Capacity") icon43 = QIcon() - icon43.addFile(u":/Icons/icons/ntc_opf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon43.addFile(u":/Icons/icons/ntc_opf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOptimal_Net_Transfer_Capacity.setIcon(icon43) self.actionSet_schematic_positions_from_GPS_coordinates = QAction(mainWindow) self.actionSet_schematic_positions_from_GPS_coordinates.setObjectName(u"actionSet_schematic_positions_from_GPS_coordinates") @@ -297,32 +297,32 @@ def setupUi(self, mainWindow): self.actionInputs_analysis = QAction(mainWindow) self.actionInputs_analysis.setObjectName(u"actionInputs_analysis") icon44 = QIcon() - icon44.addFile(u":/Icons/icons/stats.svg", QSize(), QIcon.Normal, QIcon.Off) + icon44.addFile(u":/Icons/icons/stats.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInputs_analysis.setIcon(icon44) self.actionFuse_devices = QAction(mainWindow) self.actionFuse_devices.setObjectName(u"actionFuse_devices") icon45 = QIcon() - icon45.addFile(u":/Icons/icons/fusion.svg", QSize(), QIcon.Normal, QIcon.Off) + icon45.addFile(u":/Icons/icons/fusion.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFuse_devices.setIcon(icon45) self.actionDelete_inconsistencies = QAction(mainWindow) self.actionDelete_inconsistencies.setObjectName(u"actionDelete_inconsistencies") icon46 = QIcon() - icon46.addFile(u":/Icons/icons/delete.svg", QSize(), QIcon.Normal, QIcon.Off) + icon46.addFile(u":/Icons/icons/delete.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_inconsistencies.setIcon(icon46) self.actionOptimal_Net_Transfer_Capacity_Time_Series = QAction(mainWindow) self.actionOptimal_Net_Transfer_Capacity_Time_Series.setObjectName(u"actionOptimal_Net_Transfer_Capacity_Time_Series") icon47 = QIcon() - icon47.addFile(u":/Icons/icons/ntc_opf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon47.addFile(u":/Icons/icons/ntc_opf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOptimal_Net_Transfer_Capacity_Time_Series.setIcon(icon47) self.actionre_index_time = QAction(mainWindow) self.actionre_index_time.setObjectName(u"actionre_index_time") icon48 = QIcon() - icon48.addFile(u":/Icons/icons/data.svg", QSize(), QIcon.Normal, QIcon.Off) + icon48.addFile(u":/Icons/icons/data.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionre_index_time.setIcon(icon48) self.actionFix_generators_active_based_on_the_power = QAction(mainWindow) self.actionFix_generators_active_based_on_the_power.setObjectName(u"actionFix_generators_active_based_on_the_power") icon49 = QIcon() - icon49.addFile(u":/Icons/icons/gear.svg", QSize(), QIcon.Normal, QIcon.Off) + icon49.addFile(u":/Icons/icons/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFix_generators_active_based_on_the_power.setIcon(icon49) self.actionFix_loads_active_based_on_the_power = QAction(mainWindow) self.actionFix_loads_active_based_on_the_power.setObjectName(u"actionFix_loads_active_based_on_the_power") @@ -333,7 +333,7 @@ def setupUi(self, mainWindow): self.actionInitialize_contingencies = QAction(mainWindow) self.actionInitialize_contingencies.setObjectName(u"actionInitialize_contingencies") icon50 = QIcon() - icon50.addFile(u":/Icons/icons/contingency_wizzard.svg", QSize(), QIcon.Normal, QIcon.Off) + icon50.addFile(u":/Icons/icons/contingency_wizzard.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInitialize_contingencies.setIcon(icon50) self.actionExport_contingencies = QAction(mainWindow) self.actionExport_contingencies.setObjectName(u"actionExport_contingencies") @@ -341,44 +341,44 @@ def setupUi(self, mainWindow): self.actionAdd_selected_to_contingency = QAction(mainWindow) self.actionAdd_selected_to_contingency.setObjectName(u"actionAdd_selected_to_contingency") icon51 = QIcon() - icon51.addFile(u":/Icons/icons/add_contingency.svg", QSize(), QIcon.Normal, QIcon.Off) + icon51.addFile(u":/Icons/icons/add_contingency.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_selected_to_contingency.setIcon(icon51) self.actionAdd_selected_as_new_investment = QAction(mainWindow) self.actionAdd_selected_as_new_investment.setObjectName(u"actionAdd_selected_as_new_investment") icon52 = QIcon() - icon52.addFile(u":/Icons/icons/investment.svg", QSize(), QIcon.Normal, QIcon.Off) + icon52.addFile(u":/Icons/icons/investment.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_selected_as_new_investment.setIcon(icon52) self.actionZoom_in = QAction(mainWindow) self.actionZoom_in.setObjectName(u"actionZoom_in") icon53 = QIcon() - icon53.addFile(u":/Icons/icons/zoom_in.svg", QSize(), QIcon.Normal, QIcon.Off) + icon53.addFile(u":/Icons/icons/zoom_in.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionZoom_in.setIcon(icon53) self.actionZoom_out = QAction(mainWindow) self.actionZoom_out.setObjectName(u"actionZoom_out") icon54 = QIcon() - icon54.addFile(u":/Icons/icons/zoom_out.svg", QSize(), QIcon.Normal, QIcon.Off) + icon54.addFile(u":/Icons/icons/zoom_out.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionZoom_out.setIcon(icon54) self.actionClustering = QAction(mainWindow) self.actionClustering.setObjectName(u"actionClustering") icon55 = QIcon() - icon55.addFile(u":/Icons/icons/clustering.svg", QSize(), QIcon.Normal, QIcon.Off) + icon55.addFile(u":/Icons/icons/clustering.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionClustering.setIcon(icon55) self.actionClustering.setMenuRole(QAction.NoRole) self.actionUse_clustering = QAction(mainWindow) self.actionUse_clustering.setObjectName(u"actionUse_clustering") self.actionUse_clustering.setCheckable(True) icon56 = QIcon() - icon56.addFile(u":/Icons/icons/clustering_use.svg", QSize(), QIcon.Normal, QIcon.Off) + icon56.addFile(u":/Icons/icons/clustering_use.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionUse_clustering.setIcon(icon56) self.actionInvestments_evaluation = QAction(mainWindow) self.actionInvestments_evaluation.setObjectName(u"actionInvestments_evaluation") icon57 = QIcon() - icon57.addFile(u":/Icons/icons/expansion_planning.svg", QSize(), QIcon.Normal, QIcon.Off) + icon57.addFile(u":/Icons/icons/expansion_planning.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInvestments_evaluation.setIcon(icon57) self.actionNew_bus_branch_diagram_from_selection = QAction(mainWindow) self.actionNew_bus_branch_diagram_from_selection.setObjectName(u"actionNew_bus_branch_diagram_from_selection") icon58 = QIcon() - icon58.addFile(u":/Icons/icons/schematic.svg", QSize(), QIcon.Normal, QIcon.Off) + icon58.addFile(u":/Icons/icons/schematic.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNew_bus_branch_diagram_from_selection.setIcon(icon58) self.actionAdd_general_bus_branch_diagram = QAction(mainWindow) self.actionAdd_general_bus_branch_diagram.setObjectName(u"actionAdd_general_bus_branch_diagram") @@ -386,7 +386,7 @@ def setupUi(self, mainWindow): self.actionAdd_map = QAction(mainWindow) self.actionAdd_map.setObjectName(u"actionAdd_map") icon59 = QIcon() - icon59.addFile(u":/Icons/icons/map (add).svg", QSize(), QIcon.Normal, QIcon.Off) + icon59.addFile(u":/Icons/icons/map (add).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_map.setIcon(icon59) self.actionRemove_selected_diagram = QAction(mainWindow) self.actionRemove_selected_diagram.setObjectName(u"actionRemove_selected_diagram") @@ -394,12 +394,12 @@ def setupUi(self, mainWindow): self.actionReport_a_bug = QAction(mainWindow) self.actionReport_a_bug.setObjectName(u"actionReport_a_bug") icon60 = QIcon() - icon60.addFile(u":/Icons/icons/bug.svg", QSize(), QIcon.Normal, QIcon.Off) + icon60.addFile(u":/Icons/icons/bug.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionReport_a_bug.setIcon(icon60) self.actionSearchDiagram = QAction(mainWindow) self.actionSearchDiagram.setObjectName(u"actionSearchDiagram") icon61 = QIcon() - icon61.addFile(u":/Icons/icons/magnifying_glass.svg", QSize(), QIcon.Normal, QIcon.Off) + icon61.addFile(u":/Icons/icons/magnifying_glass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSearchDiagram.setIcon(icon61) self.actionProcess_topology = QAction(mainWindow) self.actionProcess_topology.setObjectName(u"actionProcess_topology") @@ -407,13 +407,13 @@ def setupUi(self, mainWindow): self.actionEdit_simulation_time_limits = QAction(mainWindow) self.actionEdit_simulation_time_limits.setObjectName(u"actionEdit_simulation_time_limits") icon62 = QIcon() - icon62.addFile(u":/Icons/icons/time_series span.svg", QSize(), QIcon.Normal, QIcon.Off) + icon62.addFile(u":/Icons/icons/time_series span.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEdit_simulation_time_limits.setIcon(icon62) self.actionactivate_time_series = QAction(mainWindow) self.actionactivate_time_series.setObjectName(u"actionactivate_time_series") self.actionactivate_time_series.setCheckable(True) icon63 = QIcon() - icon63.addFile(u":/Icons/icons/time_series set.svg", QSize(), QIcon.Normal, QIcon.Off) + icon63.addFile(u":/Icons/icons/time_series set.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionactivate_time_series.setIcon(icon63) self.actionClean_database = QAction(mainWindow) self.actionClean_database.setObjectName(u"actionClean_database") @@ -430,43 +430,43 @@ def setupUi(self, mainWindow): self.actionScale = QAction(mainWindow) self.actionScale.setObjectName(u"actionScale") icon64 = QIcon() - icon64.addFile(u":/Icons/icons/scale.svg", QSize(), QIcon.Normal, QIcon.Off) + icon64.addFile(u":/Icons/icons/scale.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionScale.setIcon(icon64) self.actionDisable_all_results_tags = QAction(mainWindow) self.actionDisable_all_results_tags.setObjectName(u"actionDisable_all_results_tags") icon65 = QIcon() - icon65.addFile(u":/Icons/icons/uncheck_all.svg", QSize(), QIcon.Normal, QIcon.Off) + icon65.addFile(u":/Icons/icons/uncheck_all.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDisable_all_results_tags.setIcon(icon65) self.actionEnable_all_results_tags = QAction(mainWindow) self.actionEnable_all_results_tags.setObjectName(u"actionEnable_all_results_tags") icon66 = QIcon() - icon66.addFile(u":/Icons/icons/check_all.svg", QSize(), QIcon.Normal, QIcon.Off) + icon66.addFile(u":/Icons/icons/check_all.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEnable_all_results_tags.setIcon(icon66) self.actionDetect_substations = QAction(mainWindow) self.actionDetect_substations.setObjectName(u"actionDetect_substations") icon67 = QIcon() - icon67.addFile(u":/Icons/icons/chip.svg", QSize(), QIcon.Normal, QIcon.Off) + icon67.addFile(u":/Icons/icons/chip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDetect_substations.setIcon(icon67) self.actionNodal_capacity = QAction(mainWindow) self.actionNodal_capacity.setObjectName(u"actionNodal_capacity") icon68 = QIcon() - icon68.addFile(u":/Icons/icons/nodal_capacity.svg", QSize(), QIcon.Normal, QIcon.Off) + icon68.addFile(u":/Icons/icons/nodal_capacity.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNodal_capacity.setIcon(icon68) self.actionEnable_server_mode = QAction(mainWindow) self.actionEnable_server_mode.setObjectName(u"actionEnable_server_mode") self.actionEnable_server_mode.setCheckable(True) icon69 = QIcon() - icon69.addFile(u":/Icons/icons/server.svg", QSize(), QIcon.Normal, QIcon.Off) + icon69.addFile(u":/Icons/icons/server.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEnable_server_mode.setIcon(icon69) self.actionDelete_from_the_diagram = QAction(mainWindow) self.actionDelete_from_the_diagram.setObjectName(u"actionDelete_from_the_diagram") icon70 = QIcon() - icon70.addFile(u":/Icons/icons/delete_schematic.svg", QSize(), QIcon.Normal, QIcon.Off) + icon70.addFile(u":/Icons/icons/delete_schematic.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_from_the_diagram.setIcon(icon70) self.actionRecord_video = QAction(mainWindow) self.actionRecord_video.setObjectName(u"actionRecord_video") icon71 = QIcon() - icon71.addFile(u":/Icons/icons/record.svg", QSize(), QIcon.Normal, QIcon.Off) + icon71.addFile(u":/Icons/icons/record.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionRecord_video.setIcon(icon71) self.actionExport_circuit_differential = QAction(mainWindow) self.actionExport_circuit_differential.setObjectName(u"actionExport_circuit_differential") @@ -604,7 +604,7 @@ def setupUi(self, mainWindow): self.colour_results_pushButton.setObjectName(u"colour_results_pushButton") self.colour_results_pushButton.setMaximumSize(QSize(32, 16777215)) icon72 = QIcon() - icon72.addFile(u":/Icons/icons/color_grid.svg", QSize(), QIcon.Normal, QIcon.Off) + icon72.addFile(u":/Icons/icons/color_grid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.colour_results_pushButton.setIcon(icon72) self.horizontalLayout_30.addWidget(self.colour_results_pushButton) @@ -628,7 +628,7 @@ def setupUi(self, mainWindow): self.verticalLayout_37.addWidget(self.diagram_step_slider) icon73 = QIcon() - icon73.addFile(u":/Icons/icons/show_color_controls.svg", QSize(), QIcon.Normal, QIcon.Off) + icon73.addFile(u":/Icons/icons/show_color_controls.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.tabWidget_6.addTab(self.tab_3, icon73, "") self.tab_4 = QWidget() self.tab_4.setObjectName(u"tab_4") @@ -1034,7 +1034,7 @@ def setupUi(self, mainWindow): self.structure_analysis_pushButton = QPushButton(self.frame_54) self.structure_analysis_pushButton.setObjectName(u"structure_analysis_pushButton") icon74 = QIcon() - icon74.addFile(u":/Icons/icons/histogram.svg", QSize(), QIcon.Normal, QIcon.Off) + icon74.addFile(u":/Icons/icons/histogram.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.structure_analysis_pushButton.setIcon(icon74) self.horizontalLayout_28.addWidget(self.structure_analysis_pushButton) @@ -1058,7 +1058,7 @@ def setupUi(self, mainWindow): self.set_profile_state_button = QPushButton(self.frame_9) self.set_profile_state_button.setObjectName(u"set_profile_state_button") icon75 = QIcon() - icon75.addFile(u":/Icons/icons/copy2left.svg", QSize(), QIcon.Normal, QIcon.Off) + icon75.addFile(u":/Icons/icons/copy2left.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.set_profile_state_button.setIcon(icon75) self.horizontalLayout_25.addWidget(self.set_profile_state_button) @@ -1084,7 +1084,7 @@ def setupUi(self, mainWindow): self.add_object_pushButton = QPushButton(self.frame_9) self.add_object_pushButton.setObjectName(u"add_object_pushButton") icon76 = QIcon() - icon76.addFile(u":/Icons/icons/plus.svg", QSize(), QIcon.Normal, QIcon.Off) + icon76.addFile(u":/Icons/icons/plus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.add_object_pushButton.setIcon(icon76) self.horizontalLayout_25.addWidget(self.add_object_pushButton) @@ -1092,7 +1092,7 @@ def setupUi(self, mainWindow): self.delete_selected_objects_pushButton = QPushButton(self.frame_9) self.delete_selected_objects_pushButton.setObjectName(u"delete_selected_objects_pushButton") icon77 = QIcon() - icon77.addFile(u":/Icons/icons/minus.svg", QSize(), QIcon.Normal, QIcon.Off) + icon77.addFile(u":/Icons/icons/minus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.delete_selected_objects_pushButton.setIcon(icon77) self.horizontalLayout_25.addWidget(self.delete_selected_objects_pushButton) @@ -1149,7 +1149,7 @@ def setupUi(self, mainWindow): self.verticalLayout_11.addWidget(self.frame_20) icon78 = QIcon() - icon78.addFile(u":/Icons/icons/area_transfer.svg", QSize(), QIcon.Normal, QIcon.Off) + icon78.addFile(u":/Icons/icons/area_transfer.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.tabWidget_5.addTab(self.tab_2, icon78, "") self.tab_16 = QWidget() self.tab_16.setObjectName(u"tab_16") @@ -1178,7 +1178,7 @@ def setupUi(self, mainWindow): self.delete_profiles_structure_pushButton = QPushButton(self.frame) self.delete_profiles_structure_pushButton.setObjectName(u"delete_profiles_structure_pushButton") icon79 = QIcon() - icon79.addFile(u":/Icons/icons/new (delete).svg", QSize(), QIcon.Normal, QIcon.Off) + icon79.addFile(u":/Icons/icons/new (delete).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.delete_profiles_structure_pushButton.setIcon(icon79) self.horizontalLayout.addWidget(self.delete_profiles_structure_pushButton) @@ -1186,7 +1186,7 @@ def setupUi(self, mainWindow): self.edit_profiles_pushButton = QPushButton(self.frame) self.edit_profiles_pushButton.setObjectName(u"edit_profiles_pushButton") icon80 = QIcon() - icon80.addFile(u":/Icons/icons/import_profiles.svg", QSize(), QIcon.Normal, QIcon.Off) + icon80.addFile(u":/Icons/icons/import_profiles.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.edit_profiles_pushButton.setIcon(icon80) self.edit_profiles_pushButton.setFlat(False) @@ -1195,7 +1195,7 @@ def setupUi(self, mainWindow): self.edit_profiles_from_models_pushButton = QPushButton(self.frame) self.edit_profiles_from_models_pushButton.setObjectName(u"edit_profiles_from_models_pushButton") icon81 = QIcon() - icon81.addFile(u":/Icons/icons/import_models.svg", QSize(), QIcon.Normal, QIcon.Off) + icon81.addFile(u":/Icons/icons/import_models.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.edit_profiles_from_models_pushButton.setIcon(icon81) self.edit_profiles_from_models_pushButton.setFlat(False) @@ -1208,7 +1208,7 @@ def setupUi(self, mainWindow): self.plot_time_series_pushButton = QPushButton(self.frame) self.plot_time_series_pushButton.setObjectName(u"plot_time_series_pushButton") icon82 = QIcon() - icon82.addFile(u":/Icons/icons/plot.svg", QSize(), QIcon.Normal, QIcon.Off) + icon82.addFile(u":/Icons/icons/plot.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.plot_time_series_pushButton.setIcon(icon82) self.horizontalLayout.addWidget(self.plot_time_series_pushButton) @@ -1235,7 +1235,7 @@ def setupUi(self, mainWindow): self.copy_profile_pushButton = QPushButton(self.frame_12) self.copy_profile_pushButton.setObjectName(u"copy_profile_pushButton") icon83 = QIcon() - icon83.addFile(u":/Icons/icons/copy.svg", QSize(), QIcon.Normal, QIcon.Off) + icon83.addFile(u":/Icons/icons/copy.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.copy_profile_pushButton.setIcon(icon83) self.horizontalLayout_4.addWidget(self.copy_profile_pushButton) @@ -1243,7 +1243,7 @@ def setupUi(self, mainWindow): self.paste_profiles_pushButton = QPushButton(self.frame_12) self.paste_profiles_pushButton.setObjectName(u"paste_profiles_pushButton") icon84 = QIcon() - icon84.addFile(u":/Icons/icons/paste.svg", QSize(), QIcon.Normal, QIcon.Off) + icon84.addFile(u":/Icons/icons/paste.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.paste_profiles_pushButton.setIcon(icon84) self.horizontalLayout_4.addWidget(self.paste_profiles_pushButton) @@ -1251,7 +1251,7 @@ def setupUi(self, mainWindow): self.set_linear_combination_profile_pushButton = QPushButton(self.frame_12) self.set_linear_combination_profile_pushButton.setObjectName(u"set_linear_combination_profile_pushButton") icon85 = QIcon() - icon85.addFile(u":/Icons/icons/copy2right.svg", QSize(), QIcon.Normal, QIcon.Off) + icon85.addFile(u":/Icons/icons/copy2right.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.set_linear_combination_profile_pushButton.setIcon(icon85) self.horizontalLayout_4.addWidget(self.set_linear_combination_profile_pushButton) @@ -1281,7 +1281,7 @@ def setupUi(self, mainWindow): self.profile_multiply_pushButton = QPushButton(self.frame_12) self.profile_multiply_pushButton.setObjectName(u"profile_multiply_pushButton") icon86 = QIcon() - icon86.addFile(u":/Icons/icons/multiply.svg", QSize(), QIcon.Normal, QIcon.Off) + icon86.addFile(u":/Icons/icons/multiply.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.profile_multiply_pushButton.setIcon(icon86) self.horizontalLayout_4.addWidget(self.profile_multiply_pushButton) @@ -1289,7 +1289,7 @@ def setupUi(self, mainWindow): self.profile_divide_pushButton = QPushButton(self.frame_12) self.profile_divide_pushButton.setObjectName(u"profile_divide_pushButton") icon87 = QIcon() - icon87.addFile(u":/Icons/icons/divide.svg", QSize(), QIcon.Normal, QIcon.Off) + icon87.addFile(u":/Icons/icons/divide.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.profile_divide_pushButton.setIcon(icon87) self.horizontalLayout_4.addWidget(self.profile_divide_pushButton) @@ -1297,7 +1297,7 @@ def setupUi(self, mainWindow): self.set_profile_value_pushButton = QPushButton(self.frame_12) self.set_profile_value_pushButton.setObjectName(u"set_profile_value_pushButton") icon88 = QIcon() - icon88.addFile(u":/Icons/icons/copy2up.svg", QSize(), QIcon.Normal, QIcon.Off) + icon88.addFile(u":/Icons/icons/copy2up.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.set_profile_value_pushButton.setIcon(icon88) self.horizontalLayout_4.addWidget(self.set_profile_value_pushButton) @@ -1314,7 +1314,7 @@ def setupUi(self, mainWindow): self.verticalLayout_42.addWidget(self.frame_12) icon89 = QIcon() - icon89.addFile(u":/Icons/icons/time_series.svg", QSize(), QIcon.Normal, QIcon.Off) + icon89.addFile(u":/Icons/icons/time_series.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.tabWidget_5.addTab(self.tab_16, icon89, "") self.verticalLayout_26.addWidget(self.tabWidget_5) @@ -1348,7 +1348,7 @@ def setupUi(self, mainWindow): self.compute_simulation_data_pushButton.setObjectName(u"compute_simulation_data_pushButton") self.compute_simulation_data_pushButton.setMaximumSize(QSize(32, 16777215)) icon90 = QIcon() - icon90.addFile(u":/Icons/icons/calculator.svg", QSize(), QIcon.Normal, QIcon.Off) + icon90.addFile(u":/Icons/icons/calculator.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.compute_simulation_data_pushButton.setIcon(icon90) self.gridLayout_19.addWidget(self.compute_simulation_data_pushButton, 0, 0, 1, 1) @@ -1390,7 +1390,7 @@ def setupUi(self, mainWindow): self.copyArraysToNumpyButton = QPushButton(self.frame_29) self.copyArraysToNumpyButton.setObjectName(u"copyArraysToNumpyButton") icon91 = QIcon() - icon91.addFile(u":/Icons/icons/array.svg", QSize(), QIcon.Normal, QIcon.Off) + icon91.addFile(u":/Icons/icons/array.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.copyArraysToNumpyButton.setIcon(icon91) self.gridLayout_23.addWidget(self.copyArraysToNumpyButton, 0, 1, 1, 1) @@ -1414,7 +1414,7 @@ def setupUi(self, mainWindow): self.horizontalLayout_7.addWidget(self.simulationDataSplitter) icon92 = QIcon() - icon92.addFile(u":/Icons/icons/spmat.svg", QSize(), QIcon.Normal, QIcon.Off) + icon92.addFile(u":/Icons/icons/spmat.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.tabWidget_3.addTab(self.compiledArraysTab, icon92, "") self.commentsTab = QWidget() self.commentsTab.setObjectName(u"commentsTab") @@ -1426,7 +1426,7 @@ def setupUi(self, mainWindow): self.verticalLayout_18.addWidget(self.comments_textEdit) icon93 = QIcon() - icon93.addFile(u":/Icons/icons/edit.svg", QSize(), QIcon.Normal, QIcon.Off) + icon93.addFile(u":/Icons/icons/edit.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.tabWidget_3.addTab(self.commentsTab, icon93, "") self.verticalLayout_9.addWidget(self.tabWidget_3) @@ -1607,7 +1607,7 @@ def setupUi(self, mainWindow): self.results_traspose_checkBox = QCheckBox(self.frame_8) self.results_traspose_checkBox.setObjectName(u"results_traspose_checkBox") icon94 = QIcon() - icon94.addFile(u":/Icons/icons/transpose.svg", QSize(), QIcon.Normal, QIcon.Off) + icon94.addFile(u":/Icons/icons/transpose.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.results_traspose_checkBox.setIcon(icon94) self.horizontalLayout_2.addWidget(self.results_traspose_checkBox) @@ -1615,7 +1615,7 @@ def setupUi(self, mainWindow): self.results_as_cdf_checkBox = QCheckBox(self.frame_8) self.results_as_cdf_checkBox.setObjectName(u"results_as_cdf_checkBox") icon95 = QIcon() - icon95.addFile(u":/Icons/icons/cdf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon95.addFile(u":/Icons/icons/cdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.results_as_cdf_checkBox.setIcon(icon95) self.horizontalLayout_2.addWidget(self.results_as_cdf_checkBox) @@ -1623,7 +1623,7 @@ def setupUi(self, mainWindow): self.results_as_abs_checkBox = QCheckBox(self.frame_8) self.results_as_abs_checkBox.setObjectName(u"results_as_abs_checkBox") icon96 = QIcon() - icon96.addFile(u":/Icons/icons/abs.svg", QSize(), QIcon.Normal, QIcon.Off) + icon96.addFile(u":/Icons/icons/abs.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.results_as_abs_checkBox.setIcon(icon96) self.horizontalLayout_2.addWidget(self.results_as_abs_checkBox) @@ -1759,7 +1759,7 @@ def setupUi(self, mainWindow): self.runSourceCodeButton = QPushButton(self.frame_55) self.runSourceCodeButton.setObjectName(u"runSourceCodeButton") icon97 = QIcon() - icon97.addFile(u":/Icons/icons/next.svg", QSize(), QIcon.Normal, QIcon.Off) + icon97.addFile(u":/Icons/icons/next.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.runSourceCodeButton.setIcon(icon97) self.horizontalLayout_3.addWidget(self.runSourceCodeButton) @@ -1796,7 +1796,7 @@ def setupUi(self, mainWindow): self.verticalLayout_33.setObjectName(u"verticalLayout_33") self.verticalLayout_33.setContentsMargins(0, 0, 0, 0) icon98 = QIcon() - icon98.addFile(u":/Icons/icons/console.svg", QSize(), QIcon.Normal, QIcon.Off) + icon98.addFile(u":/Icons/icons/console.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.tabWidget_2.addTab(self.pythonConsoleTab, icon98, "") self.sourceCodeTab = QWidget() self.sourceCodeTab.setObjectName(u"sourceCodeTab") @@ -1876,7 +1876,7 @@ def setupUi(self, mainWindow): self.line_5.setPalette(palette8) self.line_5.setFrameShadow(QFrame.Plain) self.line_5.setLineWidth(4) - self.line_5.setFrameShape(QFrame.HLine) + self.line_5.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_12.addWidget(self.line_5) @@ -2002,7 +2002,7 @@ def setupUi(self, mainWindow): self.line_14.setPalette(palette10) self.line_14.setFrameShadow(QFrame.Plain) self.line_14.setLineWidth(4) - self.line_14.setFrameShape(QFrame.HLine) + self.line_14.setFrameShape(QFrame.Shape.HLine) self.gridLayout_24.addWidget(self.line_14, 1, 0, 1, 4) @@ -2012,37 +2012,40 @@ def setupUi(self, mainWindow): self.frame_19.setFrameShadow(QFrame.Raised) self.gridLayout_22 = QGridLayout(self.frame_19) self.gridLayout_22.setObjectName(u"gridLayout_22") - self.auto_precision_checkBox = QCheckBox(self.frame_19) - self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") + self.label_5 = QLabel(self.frame_19) + self.label_5.setObjectName(u"label_5") - self.gridLayout_22.addWidget(self.auto_precision_checkBox, 6, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_5, 8, 0, 1, 1) - self.helm_retry_checkBox = QCheckBox(self.frame_19) - self.helm_retry_checkBox.setObjectName(u"helm_retry_checkBox") - self.helm_retry_checkBox.setChecked(True) + self.label_6 = QLabel(self.frame_19) + self.label_6.setObjectName(u"label_6") - self.gridLayout_22.addWidget(self.helm_retry_checkBox, 3, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_6, 10, 0, 1, 1) self.verbositySpinBox = QSpinBox(self.frame_19) self.verbositySpinBox.setObjectName(u"verbositySpinBox") self.verbositySpinBox.setMaximum(2) - self.gridLayout_22.addWidget(self.verbositySpinBox, 13, 1, 1, 1) + self.gridLayout_22.addWidget(self.verbositySpinBox, 11, 1, 1, 1) - self.label_5 = QLabel(self.frame_19) - self.label_5.setObjectName(u"label_5") + self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.gridLayout_22.addWidget(self.label_5, 10, 0, 1, 1) + self.gridLayout_22.addItem(self.verticalSpacer_10, 13, 0, 1, 1) - self.label_86 = QLabel(self.frame_19) - self.label_86.setObjectName(u"label_86") + self.muSpinBox = QDoubleSpinBox(self.frame_19) + self.muSpinBox.setObjectName(u"muSpinBox") + self.muSpinBox.setDecimals(4) + self.muSpinBox.setMinimum(0.000100000000000) + self.muSpinBox.setMaximum(1.000000000000000) + self.muSpinBox.setSingleStep(0.100000000000000) + self.muSpinBox.setValue(1.000000000000000) - self.gridLayout_22.addWidget(self.label_86, 2, 0, 1, 2) + self.gridLayout_22.addWidget(self.muSpinBox, 9, 1, 1, 1) - self.label_22 = QLabel(self.frame_19) - self.label_22.setObjectName(u"label_22") + self.label_23 = QLabel(self.frame_19) + self.label_23.setObjectName(u"label_23") - self.gridLayout_22.addWidget(self.label_22, 14, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_23, 11, 0, 1, 1) self.tolerance_spinBox = QSpinBox(self.frame_19) self.tolerance_spinBox.setObjectName(u"tolerance_spinBox") @@ -2050,26 +2053,12 @@ def setupUi(self, mainWindow): self.tolerance_spinBox.setMaximum(15) self.tolerance_spinBox.setValue(4) - self.gridLayout_22.addWidget(self.tolerance_spinBox, 10, 1, 1, 1) - - self.distributed_slack_checkBox = QCheckBox(self.frame_19) - self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") - - self.gridLayout_22.addWidget(self.distributed_slack_checkBox, 4, 0, 1, 2) - - self.label_2 = QLabel(self.frame_19) - self.label_2.setObjectName(u"label_2") - - self.gridLayout_22.addWidget(self.label_2, 0, 0, 1, 1) - - self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.gridLayout_22.addWidget(self.tolerance_spinBox, 8, 1, 1, 1) - self.gridLayout_22.addItem(self.verticalSpacer_10, 15, 0, 1, 1) - - self.label_11 = QLabel(self.frame_19) - self.label_11.setObjectName(u"label_11") + self.solver_comboBox = QComboBox(self.frame_19) + self.solver_comboBox.setObjectName(u"solver_comboBox") - self.gridLayout_22.addWidget(self.label_11, 11, 0, 1, 1) + self.gridLayout_22.addWidget(self.solver_comboBox, 1, 0, 1, 2) self.max_iterations_spinBox = QSpinBox(self.frame_19) self.max_iterations_spinBox.setObjectName(u"max_iterations_spinBox") @@ -2077,53 +2066,28 @@ def setupUi(self, mainWindow): self.max_iterations_spinBox.setMaximum(1000) self.max_iterations_spinBox.setValue(40) - self.gridLayout_22.addWidget(self.max_iterations_spinBox, 12, 1, 1, 1) - - self.label_6 = QLabel(self.frame_19) - self.label_6.setObjectName(u"label_6") - - self.gridLayout_22.addWidget(self.label_6, 12, 0, 1, 1) + self.gridLayout_22.addWidget(self.max_iterations_spinBox, 10, 1, 1, 1) - self.muSpinBox = QDoubleSpinBox(self.frame_19) - self.muSpinBox.setObjectName(u"muSpinBox") - self.muSpinBox.setDecimals(4) - self.muSpinBox.setMinimum(0.000100000000000) - self.muSpinBox.setMaximum(1.000000000000000) - self.muSpinBox.setSingleStep(0.100000000000000) - self.muSpinBox.setValue(1.000000000000000) - - self.gridLayout_22.addWidget(self.muSpinBox, 11, 1, 1, 1) - - self.use_voltage_guess_checkBox = QCheckBox(self.frame_19) - self.use_voltage_guess_checkBox.setObjectName(u"use_voltage_guess_checkBox") - - self.gridLayout_22.addWidget(self.use_voltage_guess_checkBox, 7, 0, 1, 2) - - self.label_87 = QLabel(self.frame_19) - self.label_87.setObjectName(u"label_87") - - self.gridLayout_22.addWidget(self.label_87, 9, 0, 1, 2) - - self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_19) - self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") - self.ignore_single_node_islands_checkBox.setChecked(True) + self.label_22 = QLabel(self.frame_19) + self.label_22.setObjectName(u"label_22") - self.gridLayout_22.addWidget(self.ignore_single_node_islands_checkBox, 5, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_22, 12, 0, 1, 2) - self.solver_comboBox = QComboBox(self.frame_19) - self.solver_comboBox.setObjectName(u"solver_comboBox") + self.label_2 = QLabel(self.frame_19) + self.label_2.setObjectName(u"label_2") - self.gridLayout_22.addWidget(self.solver_comboBox, 1, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_2, 0, 0, 1, 1) - self.label_23 = QLabel(self.frame_19) - self.label_23.setObjectName(u"label_23") + self.label_11 = QLabel(self.frame_19) + self.label_11.setObjectName(u"label_11") - self.gridLayout_22.addWidget(self.label_23, 13, 0, 1, 1) + self.gridLayout_22.addWidget(self.label_11, 9, 0, 1, 1) - self.addPowerFlowReportCheckBox = QCheckBox(self.frame_19) - self.addPowerFlowReportCheckBox.setObjectName(u"addPowerFlowReportCheckBox") + self.helm_retry_checkBox = QCheckBox(self.frame_19) + self.helm_retry_checkBox.setObjectName(u"helm_retry_checkBox") + self.helm_retry_checkBox.setChecked(True) - self.gridLayout_22.addWidget(self.addPowerFlowReportCheckBox, 8, 0, 1, 1) + self.gridLayout_22.addWidget(self.helm_retry_checkBox, 2, 0, 1, 2) self.gridLayout_24.addWidget(self.frame_19, 2, 0, 1, 3) @@ -2139,30 +2103,51 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.label_48) - self.reactive_power_control_mode_comboBox = QComboBox(self.frame_36) - self.reactive_power_control_mode_comboBox.setObjectName(u"reactive_power_control_mode_comboBox") + self.use_voltage_guess_checkBox = QCheckBox(self.frame_36) + self.use_voltage_guess_checkBox.setObjectName(u"use_voltage_guess_checkBox") + + self.verticalLayout_4.addWidget(self.use_voltage_guess_checkBox) + + self.auto_precision_checkBox = QCheckBox(self.frame_36) + self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") + + self.verticalLayout_4.addWidget(self.auto_precision_checkBox) - self.verticalLayout_4.addWidget(self.reactive_power_control_mode_comboBox) + self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_36) + self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") + self.ignore_single_node_islands_checkBox.setChecked(True) - self.label_641 = QLabel(self.frame_36) - self.label_641.setObjectName(u"label_641") + self.verticalLayout_4.addWidget(self.ignore_single_node_islands_checkBox) + + self.distributed_slack_checkBox = QCheckBox(self.frame_36) + self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") - self.verticalLayout_4.addWidget(self.label_641) + self.verticalLayout_4.addWidget(self.distributed_slack_checkBox) self.label_50 = QLabel(self.frame_36) self.label_50.setObjectName(u"label_50") self.verticalLayout_4.addWidget(self.label_50) - self.taps_control_mode_comboBox = QComboBox(self.frame_36) - self.taps_control_mode_comboBox.setObjectName(u"taps_control_mode_comboBox") + self.control_q_checkBox = QCheckBox(self.frame_36) + self.control_q_checkBox.setObjectName(u"control_q_checkBox") + + self.verticalLayout_4.addWidget(self.control_q_checkBox) + + self.control_tap_modules_checkBox = QCheckBox(self.frame_36) + self.control_tap_modules_checkBox.setObjectName(u"control_tap_modules_checkBox") + + self.verticalLayout_4.addWidget(self.control_tap_modules_checkBox) + + self.control_tap_phase_checkBox = QCheckBox(self.frame_36) + self.control_tap_phase_checkBox.setObjectName(u"control_tap_phase_checkBox") - self.verticalLayout_4.addWidget(self.taps_control_mode_comboBox) + self.verticalLayout_4.addWidget(self.control_tap_phase_checkBox) - self.label_65 = QLabel(self.frame_36) - self.label_65.setObjectName(u"label_65") + self.label_54 = QLabel(self.frame_36) + self.label_54.setObjectName(u"label_54") - self.verticalLayout_4.addWidget(self.label_65) + self.verticalLayout_4.addWidget(self.label_54) self.temperature_correction_checkBox = QCheckBox(self.frame_36) self.temperature_correction_checkBox.setObjectName(u"temperature_correction_checkBox") @@ -2174,10 +2159,15 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.apply_impedance_tolerances_checkBox) - self.override_branch_controls_checkBox = QCheckBox(self.frame_36) - self.override_branch_controls_checkBox.setObjectName(u"override_branch_controls_checkBox") + self.label_56 = QLabel(self.frame_36) + self.label_56.setObjectName(u"label_56") - self.verticalLayout_4.addWidget(self.override_branch_controls_checkBox) + self.verticalLayout_4.addWidget(self.label_56) + + self.addPowerFlowReportCheckBox = QCheckBox(self.frame_36) + self.addPowerFlowReportCheckBox.setObjectName(u"addPowerFlowReportCheckBox") + + self.verticalLayout_4.addWidget(self.addPowerFlowReportCheckBox) self.verticalSpacer_14 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) @@ -2220,7 +2210,7 @@ def setupUi(self, mainWindow): self.line_22.setPalette(palette12) self.line_22.setFrameShadow(QFrame.Plain) self.line_22.setLineWidth(4) - self.line_22.setFrameShape(QFrame.HLine) + self.line_22.setFrameShape(QFrame.Shape.HLine) self.gridLayout_24.addWidget(self.line_22, 1, 4, 1, 2) @@ -2348,7 +2338,7 @@ def setupUi(self, mainWindow): self.line_17.setPalette(palette13) self.line_17.setFrameShadow(QFrame.Plain) self.line_17.setLineWidth(4) - self.line_17.setFrameShape(QFrame.HLine) + self.line_17.setFrameShape(QFrame.Shape.HLine) self.gridLayout_2.addWidget(self.line_17, 1, 0, 1, 3) @@ -2642,7 +2632,7 @@ def setupUi(self, mainWindow): self.line_16.setPalette(palette16) self.line_16.setFrameShadow(QFrame.Plain) self.line_16.setLineWidth(4) - self.line_16.setFrameShape(QFrame.HLine) + self.line_16.setFrameShape(QFrame.Shape.HLine) self.gridLayout_10.addWidget(self.line_16, 2, 0, 1, 5) @@ -2726,7 +2716,7 @@ def setupUi(self, mainWindow): self.line_27.setPalette(palette17) self.line_27.setFrameShadow(QFrame.Plain) self.line_27.setLineWidth(4) - self.line_27.setFrameShape(QFrame.HLine) + self.line_27.setFrameShape(QFrame.Shape.HLine) self.gridLayout_13.addWidget(self.line_27, 1, 0, 1, 4) @@ -2942,7 +2932,7 @@ def setupUi(self, mainWindow): self.line_32.setPalette(palette20) self.line_32.setFrameShadow(QFrame.Plain) self.line_32.setLineWidth(4) - self.line_32.setFrameShape(QFrame.HLine) + self.line_32.setFrameShape(QFrame.Shape.HLine) self.gridLayout_16.addWidget(self.line_32, 1, 0, 1, 3) @@ -3014,7 +3004,7 @@ def setupUi(self, mainWindow): self.line_26.setPalette(palette21) self.line_26.setFrameShadow(QFrame.Plain) self.line_26.setLineWidth(4) - self.line_26.setFrameShape(QFrame.HLine) + self.line_26.setFrameShape(QFrame.Shape.HLine) self.gridLayout_4.addWidget(self.line_26, 1, 0, 1, 2) @@ -3262,7 +3252,7 @@ def setupUi(self, mainWindow): self.line_25.setPalette(palette24) self.line_25.setFrameShadow(QFrame.Plain) self.line_25.setLineWidth(4) - self.line_25.setFrameShape(QFrame.HLine) + self.line_25.setFrameShape(QFrame.Shape.HLine) self.gridLayout_28.addWidget(self.line_25, 2, 0, 1, 4) @@ -3316,7 +3306,7 @@ def setupUi(self, mainWindow): self.line_29.setPalette(palette26) self.line_29.setFrameShadow(QFrame.Plain) self.line_29.setLineWidth(4) - self.line_29.setFrameShape(QFrame.HLine) + self.line_29.setFrameShape(QFrame.Shape.HLine) self.gridLayout_21.addWidget(self.line_29, 9, 0, 1, 3) @@ -3356,7 +3346,7 @@ def setupUi(self, mainWindow): self.line_24.setPalette(palette27) self.line_24.setFrameShadow(QFrame.Plain) self.line_24.setLineWidth(4) - self.line_24.setFrameShape(QFrame.HLine) + self.line_24.setFrameShape(QFrame.Shape.HLine) self.gridLayout_21.addWidget(self.line_24, 14, 0, 1, 2) @@ -3369,7 +3359,7 @@ def setupUi(self, mainWindow): self.line_30.setPalette(palette28) self.line_30.setFrameShadow(QFrame.Plain) self.line_30.setLineWidth(4) - self.line_30.setFrameShape(QFrame.HLine) + self.line_30.setFrameShape(QFrame.Shape.HLine) self.gridLayout_21.addWidget(self.line_30, 19, 0, 1, 2) @@ -3542,7 +3532,7 @@ def setupUi(self, mainWindow): self.line_4.setPalette(palette33) self.line_4.setFrameShadow(QFrame.Plain) self.line_4.setLineWidth(4) - self.line_4.setFrameShape(QFrame.HLine) + self.line_4.setFrameShape(QFrame.Shape.HLine) self.gridLayout_6.addWidget(self.line_4, 1, 0, 1, 3) @@ -3560,7 +3550,7 @@ def setupUi(self, mainWindow): self.line_10.setPalette(palette34) self.line_10.setFrameShadow(QFrame.Plain) self.line_10.setLineWidth(4) - self.line_10.setFrameShape(QFrame.HLine) + self.line_10.setFrameShape(QFrame.Shape.HLine) self.gridLayout_6.addWidget(self.line_10, 9, 0, 1, 3) @@ -3665,7 +3655,7 @@ def setupUi(self, mainWindow): self.line_21.setPalette(palette36) self.line_21.setFrameShadow(QFrame.Plain) self.line_21.setLineWidth(4) - self.line_21.setFrameShape(QFrame.HLine) + self.line_21.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_36.addWidget(self.line_21) @@ -3697,7 +3687,7 @@ def setupUi(self, mainWindow): self.line_13.setPalette(palette37) self.line_13.setFrameShadow(QFrame.Plain) self.line_13.setLineWidth(4) - self.line_13.setFrameShape(QFrame.HLine) + self.line_13.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_36.addWidget(self.line_13) @@ -3778,7 +3768,7 @@ def setupUi(self, mainWindow): self.line_8.setPalette(palette39) self.line_8.setFrameShadow(QFrame.Plain) self.line_8.setLineWidth(4) - self.line_8.setFrameShape(QFrame.HLine) + self.line_8.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_25.addWidget(self.line_8) @@ -3867,7 +3857,7 @@ def setupUi(self, mainWindow): self.line_20.setPalette(palette41) self.line_20.setFrameShadow(QFrame.Plain) self.line_20.setLineWidth(4) - self.line_20.setFrameShape(QFrame.HLine) + self.line_20.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_21.addWidget(self.line_20) @@ -3952,7 +3942,7 @@ def setupUi(self, mainWindow): self.line_28.setPalette(palette43) self.line_28.setFrameShadow(QFrame.Plain) self.line_28.setLineWidth(4) - self.line_28.setFrameShape(QFrame.HLine) + self.line_28.setFrameShape(QFrame.Shape.HLine) self.gridLayout_11.addWidget(self.line_28, 1, 0, 1, 2) @@ -4047,7 +4037,7 @@ def setupUi(self, mainWindow): self.line_31.setPalette(palette45) self.line_31.setFrameShadow(QFrame.Plain) self.line_31.setLineWidth(4) - self.line_31.setFrameShape(QFrame.HLine) + self.line_31.setFrameShape(QFrame.Shape.HLine) self.gridLayout_5.addWidget(self.line_31, 1, 0, 1, 3) @@ -4176,7 +4166,7 @@ def setupUi(self, mainWindow): self.toolBar.setIconSize(QSize(26, 26)) self.toolBar.setToolButtonStyle(Qt.ToolButtonIconOnly) self.toolBar.setFloatable(False) - mainWindow.addToolBar(Qt.TopToolBarArea, self.toolBar) + mainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar) self.menuBar.addAction(self.menuProject.menuAction()) self.menuBar.addAction(self.menuActions.menuAction()) @@ -4939,58 +4929,58 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.label_63.setText("") self.label_17.setText(QCoreApplication.translate("mainWindow", u"Power flow", None)) + self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) + self.label_6.setText(QCoreApplication.translate("mainWindow", u"Max. iterations", None)) #if QT_CONFIG(tooltip) - self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) -#endif // QT_CONFIG(tooltip) - self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) -#if QT_CONFIG(tooltip) - self.helm_retry_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If the selected method does not converge, try a list of methods that may help

", None)) + self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) #endif // QT_CONFIG(tooltip) - self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) #if QT_CONFIG(tooltip) - self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) + self.muSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor that multiplies each increment solution.

In practice this is used to slow down troublesome solutions.

", None)) #endif // QT_CONFIG(tooltip) - self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) - self.label_86.setText("") - self.label_22.setText("") + self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) #if QT_CONFIG(tooltip) self.tolerance_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Error tolerance of the method

", None)) #endif // QT_CONFIG(tooltip) self.tolerance_spinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) #if QT_CONFIG(tooltip) - self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) + self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) #endif // QT_CONFIG(tooltip) - self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) + self.label_22.setText("") self.label_2.setText(QCoreApplication.translate("mainWindow", u"Solver", None)) self.label_11.setText(QCoreApplication.translate("mainWindow", u"Trust radius", None)) #if QT_CONFIG(tooltip) - self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) + self.helm_retry_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If the selected method does not converge, try a list of methods that may help

", None)) #endif // QT_CONFIG(tooltip) - self.label_6.setText(QCoreApplication.translate("mainWindow", u"Max. iterations", None)) + self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) + self.label_48.setText("") + self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) #if QT_CONFIG(tooltip) - self.muSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor that multiplies each increment solution.

In practice this is used to slow down troublesome solutions.

", None)) + self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) #endif // QT_CONFIG(tooltip) - self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) - self.label_87.setText("") + self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) #if QT_CONFIG(tooltip) self.ignore_single_node_islands_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the islands of a single node are ignored.", None)) #endif // QT_CONFIG(tooltip) self.ignore_single_node_islands_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ignore single node islands", None)) - self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) #if QT_CONFIG(tooltip) - self.addPowerFlowReportCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Add a results report in the logs", None)) + self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) #endif // QT_CONFIG(tooltip) - self.addPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None)) - self.label_48.setText(QCoreApplication.translate("mainWindow", u"Reactive power control mode", None)) - self.label_641.setText("") - self.label_50.setText(QCoreApplication.translate("mainWindow", u"Transformer taps control mode", None)) - self.label_65.setText("") + self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) + self.label_50.setText("") + self.control_q_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control generators Q", None)) + self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch taps", None)) + self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch phase", None)) + self.label_54.setText("") #if QT_CONFIG(tooltip) self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) #endif // QT_CONFIG(tooltip) self.temperature_correction_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply temperature correction", None)) self.apply_impedance_tolerances_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply impedance tolerances", None)) - self.override_branch_controls_checkBox.setText(QCoreApplication.translate("mainWindow", u"Override branch controls", None)) + self.label_56.setText("") +#if QT_CONFIG(tooltip) + self.addPowerFlowReportCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Add a results report in the logs", None)) +#endif // QT_CONFIG(tooltip) + self.addPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None)) self.label_70.setText("") self.label_71.setText(QCoreApplication.translate("mainWindow", u"PTDF / LODF", None)) self.ptdf_correct_nonsense_values_checkBox.setText(QCoreApplication.translate("mainWindow", u"Correct nonsense values", None)) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index 81527d232..a4b23f1f6 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -3898,13 +3898,6 @@ QProgressBar::chunk{ - - - - Override branch controls - - - diff --git a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py index 1fcecf793..9ba50c391 100644 --- a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py +++ b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py @@ -224,11 +224,11 @@ def get_config_structure(self) -> Dict[str, Dict[str, any]]: "acceleration": self.ui.muSpinBox, "max_iterations": self.ui.max_iterations_spinBox, "verbosity": self.ui.verbositySpinBox, - "reactive_power_control_mode": self.ui.reactive_power_control_mode_comboBox, - "transformer_taps_control_mode": self.ui.taps_control_mode_comboBox, + "reactive_power_control_mode": self.ui.control_q_checkBox, + "transformer_taps_module_control": self.ui.control_tap_modules_checkBox, + "transformer_taps_phase_control": self.ui.control_tap_phase_checkBox, "apply_temperature_correction": self.ui.temperature_correction_checkBox, "apply_impedance_tolerances": self.ui.apply_impedance_tolerances_checkBox, - "override_branch_controls": self.ui.override_branch_controls_checkBox, "add_pf_report": self.ui.addPowerFlowReportCheckBox, }, "optimal_power_flow": { diff --git a/src/GridCal/Gui/Main/SubClasses/simulations.py b/src/GridCal/Gui/Main/SubClasses/simulations.py index 7880845f9..4cc952a79 100644 --- a/src/GridCal/Gui/Main/SubClasses/simulations.py +++ b/src/GridCal/Gui/Main/SubClasses/simulations.py @@ -41,8 +41,7 @@ from GridCalEngine.IO.gridcal.remote import RemoteInstruction from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.types import DRIVER_OBJECTS -from GridCalEngine.enumerations import (DeviceType, AvailableTransferMode, SolverType, - ReactivePowerControlMode, TapsControlMode, MIPSolvers, TimeGrouping, +from GridCalEngine.enumerations import (DeviceType, AvailableTransferMode, SolverType, MIPSolvers, TimeGrouping, ZonalGrouping, ContingencyMethod, InvestmentEvaluationMethod, EngineType, BranchImpedanceMode, ResultTypes, SimulationTypes, NodalCapacityMethod, ContingencyFilteringMethods, InvestmentsEvaluationObjectives) @@ -77,20 +76,6 @@ def __init__(self, parent=None): self.ui.solver_comboBox.setModel(gf.get_list_model(list(self.solvers_dict.keys()))) self.ui.solver_comboBox.setCurrentIndex(0) - # reactive power controls - self.q_control_modes_dict = OrderedDict() - self.q_control_modes_dict['No control'] = ReactivePowerControlMode.NoControl - self.q_control_modes_dict['Direct'] = ReactivePowerControlMode.Direct - lst = list(self.q_control_modes_dict.keys()) - self.ui.reactive_power_control_mode_comboBox.setModel(gf.get_list_model(lst)) - - # taps controls (transformer voltage regulator) - self.taps_control_modes_dict = OrderedDict() - self.taps_control_modes_dict['No control'] = TapsControlMode.NoControl - self.taps_control_modes_dict['Direct'] = TapsControlMode.Direct - lst = list(self.taps_control_modes_dict.keys()) - self.ui.taps_control_mode_comboBox.setModel(gf.get_list_model(lst)) - # transfer modes self.transfer_modes_dict = OrderedDict() self.transfer_modes_dict['Area generation'] = AvailableTransferMode.Generation @@ -635,9 +620,11 @@ def get_selected_power_flow_options(self): """ solver_type = self.solvers_dict[self.ui.solver_comboBox.currentText()] - q_control_mode = self.q_control_modes_dict[self.ui.reactive_power_control_mode_comboBox.currentText()] + control_q = self.ui.control_q_checkBox.isChecked() - taps_control_mode = self.taps_control_modes_dict[self.ui.taps_control_mode_comboBox.currentText()] + control_taps_modules = self.ui.control_tap_modules_checkBox() + + control_taps_phase = self.ui.control_tap_phase_checkBox verbose = self.ui.verbositySpinBox.value() @@ -668,8 +655,6 @@ def get_selected_power_flow_options(self): use_stored_guess = self.ui.use_voltage_guess_checkBox.isChecked() - override_branch_controls = self.ui.override_branch_controls_checkBox.isChecked() - generate_report = self.ui.addPowerFlowReportCheckBox.isChecked() ops = sim.PowerFlowOptions(solver_type=solver_type, @@ -678,15 +663,15 @@ def get_selected_power_flow_options(self): tolerance=tolerance, max_iter=max_iter, max_outer_loop_iter=max_outer_iter, - control_q=q_control_mode, - control_taps=taps_control_mode, + control_q=control_q, + control_taps_phase=control_taps_phase, + control_taps_modules=control_taps_modules, apply_temperature_correction=temp_correction, branch_impedance_tolerance_mode=branch_impedance_tolerance_mode, distributed_slack=distributed_slack, ignore_single_node_islands=ignore_single_node_islands, trust_radius=mu, use_stored_guess=use_stored_guess, - override_branch_controls=override_branch_controls, generate_report=generate_report) return ops diff --git a/src/GridCal/Gui/Main/icons_rc.py b/src/GridCal/Gui/Main/icons_rc.py index 9e9f8f66b..9bc1ff4f6 100644 --- a/src/GridCal/Gui/Main/icons_rc.py +++ b/src/GridCal/Gui/Main/icons_rc.py @@ -1,1773 +1,1794 @@ # Resource object code (Python 3) # Created by: object code -# Created by: The Resource Compiler for Qt version 6.6.3 +# Created by: The Resource Compiler for Qt version 6.7.2 # WARNING! All changes made in this file will be lost! from PySide6 import QtCore qt_resource_data = b"\ -\x00\x00\x11\x82\ +\x00\x00\x11u\ \x00\ -\x00|\xeax\xda\xed]Yo\xe3\xd8\x95~\x0f\x90\xff\ -\xc0Q=\xa4\x0a#Rw_Tv\x05\x98n\xa4&\ -\xc0\x0c\x12$i\xe4q@K\x94\xcdiY\xd2P\xf4\ -\xd6\xbf~\xbeCm\x5c%Yv\x95\xe3\x82\xaa\xd1\xb0\ -y\xf7{\x96\xef,\xbc\xbc\xbe\xf8\xe3\xe3\xed4\xb8O\ -\xb2e:\x9f]\xf6x\xc4zA2\x1b\xcd\xc7\xe9\xec\ -\xfa\xb2\xf7\xcb?\xfe\x14\xba^\xb0\xcc\xe3\xd98\x9e\xce\ -g\xc9eo6\xef\xfd\xf1\xcb\xef\x7fw\xf1oa\x18\ -\xfc\x94%q\x9e\x8c\x83\x874\xbf\x09\xfe<\xfbu9\ -\x8a\x17I\xf0\xf1&\xcf\x17\xc3\xc1\xe0\xe1\xe1!J\xd7\ -\x85\xd1<\xbb\x1e|\x0a\xc2\x10]\xd1yy\x7f\xfd\xfb\ -\xdf\x05A\x80\xb9g\xcb\xe1xt\xd9[\xf7Y\xdce\ -\xd3\xa2\xedx4H\xa6\xc9m2\xcb\x97\x03\x1e\xf1A\ -\xaf\xd4~\xb4k?\xa2\x15\xa4\xf7\xc9h~{;\x9f\ --\x8b\xae\xb3\xe5\x87r\xebl<\xd96\xa7%=\xc8\ -\xa2\x15\xf7\xde\x0f\x98\x18\x08\x11\xa2E\xb8|\x9a\xe5\xf1\ -cX\xeb\x8bu\xb6\xf5\x15\x8c\xb1\x01\xeaJM\x8fl\ -6|\x9c\x82$\x9d\xeb)j+\x0b\x00#\x16\xf8\x7f\ -\xdbcS\x10-\xe7w\xd9(\x99\xa0k\x12\xcd\x92|\ -\xf0\xf3?~\xdeV\x86,\x1a\xe7\xe3\xf28\x1b>T\ -f\xae0g\x16\xdf&\xcbEy\x5c\xcc\xb3<\x9c\xa4\xd3d\xd5~\ -p3\xbfM\x06\xcbx\x96\xa7\x83\x9f\xe7\xa3;\x92\xb3\ -\xf9r\xf05\xcd\xff\xf3\xeej\xb0\x1em\xb0\xccF\xdb\ -\xdf\xbf\xde\xa5\x83\xff\x8e\xd3\xd9\xa02\xd5b\xd61\xd5\ -\xe3x\x01\x9ey\xd6^\xfb\xb4\xa9\xfdB\xd5\x17\xe3d\ -\xb2,\xda\xad(F\x8fjU\x85JHD\x12g_\ -\xb3x\x9cb\x91\xebf\xa5!G\xf3\xe94\x19\x81\x1f\ -\xf1\xf4!~Z\xf6\xb6-\x0aY\x1a\xded\x09\xc4\xff\ -Cu\x14\xc9\x8c\xdd5\xa49\x1b\xf5\xbc4\x10\x07\xcb\ -xd\xef(A\xbf\xedB\x9f\ -\x8d|@m>6\xe3\x13\xfeiC\xa4b)C\xec\ -B\x08\x83\xb8\x85\xd7\x09Z\xd0\xae\x9d\xa2\x9bR(c\ -\x92M\x814\xf9p+\x87\xe3\x18X\x9fe\xf1S\x85\ -K\xad\x91 \xd8\xb1(\x1b\xe6\xa0\x9c\xcd\x99A\xa7H\ -\xd5\x01\xb4\xa3e\xe9_\x1c\x8fF5\xaa\xedB\xb6\x19\ -\x96\x9e\xcf\xb3\x10\xa8~\x1f\xe7wYR\x8b\xd1\xd7\xc6\ -\x1f\x93*X\x8d\xb0F~\x02\xc4\x00|\x85YVJ\ -\xf69\x83\xbcskt0\x0a\xa0\x15\x81\x88\xb8G\x14\ -\xed\xfa\xa1\x825\xb2\x5c\xba\xa0\xa8\xe7J\x15EN1\ -\x14)\xd8|-\x85\xee\x87\xb0\x85\x96\xeb@F\x92;\ -\xe6l_k\x08;b\xd5\xc0F\x18E\xdaU\x89\x81\ -&\xa0\x8d y\xd7}\xf4\xe1x2\xd08o1*\ -4QKO]\x10z+\xc5\x8b\x22i\x11Gb9\ -p\x13\xb4\xf1\xc5DN`b\xc6\x1cT\xa9/5d\ -K\x1a\x89N\x12\x8a+\x0d\x95\x90:S\x1f\xc9=\x97\ -\xb2\xe8\xa3\x0c\xfa\x00B\x1cZ\x84\xc2\xd1\xaf\xd6\x04.\ -b\xd2\xe3\x97U\x91\xf7\x1c\x9d4\x83\x1fc\x8aN\xd8\ -\x0bzI\xe1\x8c\xe6}\x81q\xad\xb6\x98\x08-`\xbe\ -\xa9\xc0b\xb5\x222FZ\xa3\x8a\x1e\xc6\x04:R\xd6\ -\x0al\x18\x96@x+\x05\x1b\ -\xb5,\x08{\x80\xfemj\xc9\xb9G@`N\x0a\xd5\ -W\xe0B\x013\x97\xb6*\x9e\x12l\x85\xc3*}U\ -\xa8\x88\xceJ\xa3\xf1\x97\x8b\x1c\xbb\x98\x95c\xe8Mp\ -\x95\xcd\x89\xc04g=\xee.\xba\xa0\xbb\xae\xe52\xdb\ -\x16\xd1\xb9\x8cC,\xbc\x8f\xb34\x9e\xe5\x07\xd9\x9ag\ -I>\xba\xa9\x94\xad9\xf8\x87_\xfe\xf6\xcf\xe0\xeb<\ -\xbfIG\xc1\x7f\xfd\xe1s\xb8\x89\x01\xc3U\xc7E2\ -J'\xe9(\xce\xd3\xf9\xac\xde\xf6\x19\xdclp\xb0\xf7\ -e\xfd\xc2\xffbP\x10\xea\x0b~\x82\xdc\xcf\x05\x16\xc5\ -(N\x02XU\xf8,\x11\xf1hQ~\xc1\xfa\x0a\xb0\ -\x12\xea\xdea{s\x8c`o\xf0\xe7\x0c,\xaf\x0d,\ -\xc7\x01\xfb7\x00\x16k\x22\xe3\x84\xb35\x5c\xa1d\xbb\ -\x13\xf06\xdaq\x85\xde\x95\xbc\x08Y\xc2:\xb6\xb4\xac\ -\xa3s%\xef\x00Z\x8e\xe2\xe7s\xa1\xe5\xba\x91r-\ -\xfb\xadm\x09]\xe6\xb90J\xac\x13\xba\x9b\xa7\x10h\ -\x111x\xb7\xb6\x1fJi\x10\x82\x1b\xef?\xf5\xda\x13\ -\xce'!\xc3a!\xdc\xa3\xd5\xedi\xe4mB\xb8\xfa\ ->\xf1\xb4\xec\xf2k\xa2\xe0\xbe\x1d\xd4\xf6\xb0\xde\x05\xe7\ -\xa6\x96\x91l\xdf\x85\x811pR\xea~\x08\x8b\x10q\ -\xcb\xd8\xee\xfd@W*{o2{_:{_B\ -\xfb`J\xfbPR\xbba\x93\x1a\x0b\xeb\xe2\x88J\xd4\ -\xc87\xe2 o\x18\x16Y\xe3\xc8\xe4\xa4\xac\xf6)\x06\ -h\x13\x87U\x13\xd9m\xa9\xec\x93\x92\xd9\xcfLg\xd7\ -\x13\xdaa\x83\xf8\xe7\xa4\xf69\xa9}Njw'\xb5\ -\xbb\xd2\xda-6\xa03\xdd\xdd\x8aA\xdf9\xbb\xdd\x85\ -L\xbb\xf4vG\xd2\xbb\xf1\xb2\xf9e/\x94w6\xcc\ -0\x88\x04\x84\x0e\xec\x85tF\x1c\xa2jk\xaf\x8eW\ -o\xc8\xcb\x9eL\xc7k\xf7\x9d\xb7\xdf\xe2\x08\xe9\x93\x1c\ -!\x08\x1a\x16\xc5y\xe1(\x18\x070\x91\xba\xc3\x11\xda\ -\xf3\x96\xf5\xc3\x95\xe7#\xcfOw~\xf8A\x9f\xc7\xbc\ -\x9a\xcf\xf3\xcc\xcd\xb4,\xb1\xcd\xedx\xf6\x9b\xe9\xda4\ -\xdf\xd8d\xef}\xc7^u(\x0f\xb92\x07<\xa1n\ -'\xaa\xdb\xf5\xaazl\x87^\x8e\x1f`c7@\xb5\ -Q\xfc\xbb\xbf~;\xbfl?\xfb%g\xbf\xe4H\xbf\ -\xa4\xe6\xd7\xfb\x17\x9cy9.\x0c9\xf4r\xbcfx\ -%\x14`\x9f\xdd\x05%\xbcgBHU\x18\xde\xd2#\ -\x90\x0e\x8aF\xfb\xb6p\xae\x1c\x04\xc5\x97B\xdb:\xea\ -5G\xe6\x10?\xcc\xeeWg\xd5 \xd0`*w\x90\ -C\x00\x01\x94\xd9B\xaa\xc1+\xe0\xb0\xd7\xcdse4\ -:\x89qh\x8f8\x5cV\xfa\x82\xa7\x9c\xf4\x94P~\ -@\x91\x94\xea;\x9d\x99*\xadt\x05\x9b\x0c\x18\xe6\xa0\ -\x19}\x0e\x85f\xde2\xc8\xac'\xa5\x837\xe3\xa0!\ -LAd}$\x81l\x0e>\x8f\xe5$\xc2.2\xd2\ -iz\x86\x8c\x03\xf9\x84\x8d|\xa1\x18\xd0)\xa9\xa1\x18\ -\x02Rl\x09\xb0\x14i\x84\xf2A\x810\x86Q\x17\xef\ -\xad\xb3T@\xe0\xa4\xfb\x9a\x94\xdd\xa8@\xa8\x08\xb0\x81\ -AQ\x01\xbc\xc5,2\xe2\xd07z\x16@\x8f@\x00\ -9\xa1\x0a\xd4@@s\x02\xac\xd7iXyz\xf6\xc0\ -\xe1@@\x06\x00\x11\x86\x0a\xb8q\xf4\x0c\xad,\xa6\x00\ -0x\xa8\x12\xa0\xc18N\x0d\x00sL\x06\xdc\xd1\xc6\ -d\xd1\x80\xd3\xb3\x05\x88\xc0\xe4R\x03ze\x18pX\ -\x0c\x80~1\x87\xc5\x18T `\x7f\x8b!\x80X6\ -\xe0\xd0p\xc0\x1bM\xa2\x14\x142 \x13l\x15\x84\x88\ -Zp\xee\xc92y\xabV\xeb\xd6F\x15\x05\x1a\xf8^\ -\xb4P\xa8\x088\xb0I\x014\x8b\x16\xb0\xebT 1\ -\x9b-Z\x18\x81Yxd\x108\xacZ(\x80\x1b#\ -;\xbf\x22\x96a\x80rzi\xeca\xff\xa8\x81\xf1:\ -\xf0\x91\x07\x91tAL\xe0\x06\x9e\x01~\xc5\xa2\x98g\ -\x5c\x01\xc7a\x84\xb4Y\xb1\xc3\x93\xf9P\x90\xfd\x15\xb1\ -\xbd\x15\x80`g]1>\xc3\x0a\x09\x92\xa5\x84\xc9\xa0\ -\xf6\xf0\xac\x08\xa5\x10\xc8\x10\xff\xe9\xdc;\x9e$\xf6#\ -H>\x9c\xc2\x0e\x0d\xcd\x22mQo9\x07<\x19\xc9\ -\xb08E\xef*\x00\xb4\x98\x05\xab/\x9e\x99\x90d\xcf\ -\xa0jP6\x05\x06B\x04\x02\xfa\xa9d!o\x96\x11\ -\xee\x8a\x95,\x19x\x18\x00YX>O\x95\xd81\x0c\ -(\xf4\x13\xd4\xa4\xc14'\x9eAl4\x8cd\x9f\xe4\ -Ir\xb2\x83h\x0f)P\xc4S\xe3\xc9\xcai\xef|\ -\xd1\x1e\x0c!\x03\xa6I\xe9\xd1\x1eBM\xcf\xcc0k\ -\x8a\xf6\xd6\x93!\x01%d\xf1\x0cp'#!\x94\xa0\ -\xbda\xe5\x8e\x8c\x06([L\x0fE\xa6j\xe60-\ -\xb5\xe60\x1a\x01\x18%\x1d\xe3\xc5AX\x840x\x86\ -\x08\x93\xb5G\xb9\x87\x1d\xbb\x0f*\x10K\xa7\xf3CB\ -\x96\xcb^q\xf2\xa9\xf2uA\x15\x82\x0e\xe0v\x19\x84\ -_\x00\x84\x8c\x93\xcd\x86_\x84\xd5\x17\xb6\x98\xef\x01\xc2\ -j>\xbe\x1b\x0aa\xe9\x92\xa4\x0d\x0a\xe1\x1aY}\x86\ -\xc23\x14\x9e\xa1\xf0\x0c\x85\xfb\xa00\xd4o\x00\x86\x08\ -8\xa0\xc3P\xeb>\x1d\xdcAP)\xfc>0\xf4G\ -\x81\xe1\xf6\xab\xec3\x18\x9e\xc1\xf0\x0c\x86g0<\x01\ -\x0c\xcd[\x80\xa1\x84\x0c\x80\x0b\x10FJ\x05i\xe8\xe8\ ->0d\xc7\x81a\xccF\xb1<\x83\xe1\x19\x0c\xcf`\ -x\x06\xc3\xd3\xc0\x90\xbf\x01\x18ro\x22\xe8\x82\x00\xc1\ -\x1c\x8b\x14\xf6`\xf7\x82\xa19\x0a\x0d\xb5aW\xf1\xf8\ -\x8c\x86g4<\xa3\xe1\x19\x0dOCC\xff\x16hh\ -\xa0\xbaJ[pW\x120\xf0\xfdq23G\x86\xca\ -W\x1a\x92p\xce\x1b\x9e\xf1\xf0\x8c\x87g<<\x15\x0f\ -\xdf\xc6?\x846\x0b#\xc1o\xe9\xe9|\x98\xaf\x5c}\ -\xd2\x8a\x88\xea(H\xdc^Yx\x86\xc43$\x9e!\ -\xf1\x0c\x89'A\xe2\x89o\x96\xbb\x8f\xf4\xacN\x9b\x9e\ -\xf6]\x91\xa0\x03l\xd2K\xfa\xac\x08\xd2CLUo\ -|\x9a\xb6vP\xf5=\x1dS\xad\x1fR\xad~\xd6\xb1\ -\xef\x90\xea\xde#\xaa\xc5\x01U2p\x8a\xd5\xef0\xf4\ -R\x02VL\xf5\x1b\xbc\x8e\xc3\xa9\x9d\x12\xb4>\xce\xad\ -\x0e\x1e\xe7\xde\x7fp\x5cp\x05$U\x0e\x16\x98I\xe8\ -\xbd\xf0\xeaS\xc7)\xe9\xca\xe7j\xd2\x8e\x5c|U\xbb\ -\x1f\xad\xb7\xd7\xf6w\x9e\x0e\x17\xce\x01\x89\xadP\xf8\x95\ -9X\x13\xabU\xf3\x922:}n\xf7|\xf2u\xda\ -i\xed\xb2:\xba\x1f\xe4\xa3/u\xe4G_k\x1ev\ -hd\xf5\xca\xbbo\xae\x91\xff\x9a\x9fx\xe9\xf3'^\ -\xe7\xa3\xd4\xe7\xa3\xd4\xa7~\xe2U\x81\x98\x8e\xaf\xb9\x9a\ -(\xf3\x96w\x95u}\xc4\xd54\x07@{\x88\x15H\ -\x00\xbf\xbeq\x81\x87\x81xK`e\x9b\xbb\xd0r\xad\ -\xd1\xbe\xdb\x90\xaa\x17(\xb1#>\xaf\xfe\x91\xaeM+\ -g\x17Z\x18\xa0\xe8\xd6'my\xf3\x06\x15G\xa2\xef\ -L\x1b\x03Z.5\xdaw\x17R\xf5\xfa$y\x04\x03\ -~\xc8{\xd4\xf6s\x02N\x0f\x024m\x9a\x9a\x00b\ -\x1b\xaf\xcd\xabk\x82\x09\xcdQ\xba\xf0\x03^\xadv\x80\ -\x15\x9e\xfeD\x05oA%A)\x1c&^]'l\ -\xc8\x8f\xba\xf5\xe1G\xbekm\x0fO\xde\xee\x92\xb1\x17\ -\xdd\xfa\xd3\x1d#\xcb\xaa\x19\xea\xbc i\xdf\xadJ+\ -\x914\x82n\xa3\xf7\xbc\xe5\xa6+\x0d\x87\xd1Z]\x8f\ -\x91w\xd7<\x95)^\xb9\x97\xa8v\x87N\xfd\x8f=\ -\x84\xd6\xc0\xd7\xb2\xce7\xef\xddB\x0d$\xcd\x1c\x7f\x05\ -\xce\xfb\xbd \xad\xb2\xf7\x96\x8b\x9c\x9a\xf7\x0e\xfd\xb87\ -\x8d\xd5\xbf\x1fn\x97\x90n\x19\xa9_\xba$;\xbe\x09\ -,]\xd8\xb4\xf7\x06\xa2\xa3!\xe4;\x5c'\xf6\xcd \ -DW\xbf\x07\x7f\x01\x88PD\xa9\x14\x02\xd2\xe6\x9dV\ -\x88T\x95\xd7\xfc\xe5 R\x83\xbc\xa7\xc2*z\x90U\ -\xd6\xcd,\xfd\xdd(\x04a\xdc\xff\xeb\xa3\xc8\xcboC\ -\xfb!Q\xe4\xc4K\xc5\xea(\xd2* \xdd\x22\xd2\xb8\ -\xb9-4/\x87\x91\xce\xfc\xedk]\xc1uZ\xc6\xd7\ -J\x13q\xc99\xfd\xa5\x0b.\xe8u\xa6\xeb\xc8\xf8\x9a\ -\x90\xef\xc9\xf9~\xe3\xfb\xc5^9\xbf,\xca\x7f\x13\xad\ -e7\xcf\xba\x9f\xac%oY\x5cxV\x9f\xa3=\x8f\ -\xfd^/\x02kl\xa3~\xdfY3\xf9}8}~\ -D\x06~\x7f\x02\x7f\x7f\xea\x7f\xef\xc5#]\xb9\xee\x1f\ -\xf0\xaa\xa4\xc6\x0e\xcf\xb9\xf4s.\xfd\x9cK\xdf\x97K\ -o^9\x18\xb6a\xe0\xf3^q\x9dpII=\x17\ -~\xe8\xaa\xb3\xd5\xcf\x0b\xfa\xb3d\xf8\xf9\xff;p]\ -3\ -\x00\x00\x0e\x8c\ +\x00z\xf7x\xda\xed]Y\x8f\x1b\xc9\x91~\xd7\xaf(\ +S\x0f\x96\xb0\xacb\xde\x07\xd5-\x03;\x03\xcb\x06v\ +\xb1\x0b\xdb\x03?.\xaa\xc9bw\xed\xb0I\xbaX\xad\ +\xee\x9e_\xef/\x92W]<\x9a\xd2\xe8\x025\x18\x88\ +\x95wDF|qTV\xea\xeaOO\xf7\xd3\xe8c\ +V,\xf3\xf9\xec\xba\xc7\x13\xd6\x8b\xb2\xd9h>\xceg\ +\xb7\xd7\xbd_\xfe\xf1\xe7\xd8\xf5\xa2e\x99\xce\xc6\xe9t\ +>\xcb\xae{\xb3y\xefO\xef_]\xfd!\x8e\xa3\x9f\ +\x8a,-\xb3q\xf4\x98\x97w\xd1_g\xbf.G\xe9\ +\x22\x8b\xde\xdc\x95\xe5b8\x18<>>&\xf9\xba0\ +\x99\x17\xb7\x83\xb7Q\x1c\xbf\x7f\xf5\xeaj\xf9\xf1\xf6U\ +\x14E\x98w\xb6\x1c\x8eG\xd7\xbdu\x87\xc5C1\x0d\ +\x0d\xc7\xa3A6\xcd\xee\xb3Y\xb9\x1c\xf0\x84\x0fz\xbb\ +\xe6\xa3]\xf3\x11\xcd\x9e\x7f\xccF\xf3\xfb\xfb\xf9l\x19\ +z\xce\x96\xaf+\x8d\x8b\xf1d\xdb\x9aV\xf3(C#\ +\xee\xbd\x1f01\x10\x22F\x8bx\xf9<+\xd3\xa7\xb8\ +\xde\x15k\xec\xea*\x18c\x03\xd4\xedZ\x9e\xd6j\xf8\ +4\x05+\xf6.&\xd4Vg\x07\xfb\x17\xf8\x7f\xdba\ +S\x90,\xe7\x0f\xc5(\x9b\xa0g\x96\xcc\xb2r\xf0\xf3\ +?~\xdeV\xc6,\x19\x97\xe3\xca0\x1b\xee\xd7\xe6\xad\ +m\xc9,\xbd\xcf\x96\x8bt\x94-\x07\x9b\xf2\xd0\xff1\ +\x1f\x97w\xd7=\xcdEx\xbc\xcb\xf2\xdb\xbbr\xf7\xfc\ +1\xcf\x1e\xffs\xfet\xddc\x11\x8bP\x18m*\xf2\ +\xf1u\x0f\x84\xaf[\xed\x84\x8a\xafj\xd7S\x0c\xb75\ +,\xf1\x22\xd1\xd1\x1b\xc1\x0c\xcbF|\xe2'\xfdH0\ +\xc1b\xa6b\xe6\xde\x86^\x1b\xf2\x86\xe3\xf9\x88\xd6{\ +\xdd\xfbP\xe4\xe3\x9f\xd2\xe9\xff\xe5\xa3\xf9,\xd9\xf0y\ +;x\xf6\xb4\x98\x17e<\xc9\xa7\xd9\xaa\xf9\xe0n~\ +\x9f\x0d\x96\xe9\xac\xcc\x07?\xcfG\x0f$X\xf3\xe5\xe0\ +C^\xfe\xe5\xe1f\xb0\x1el\xb0,F\xdb\xdf\x1f\x1e\ +\xf2\xc1\x7f\xa7\xf9lP\x9bi1\xeb\x9e\xe9i\xbc\xc0\ +Ny\xd6Y\xf9\xbc\xa9|\x8f\xda\xabq6YR\xab\ +\x15\xa7\xe8I\x85\x0aTA\x04\xb2\xb4\xf8P\xa4\xe3\x1c\ +\xeb[5\xaa\x0c7\x9aO\xa7\xd9\x08{\x90N\x1f\xd3\ +\xe7eo\xd3 \x88\xce\xf0\xae\xc8 \xea\xaf\xebcH\ +f\xec\xb6\x1d\xcd\xd7\xaa\xe6\xbba8\xb6\x89'\xc63\ +\xe5v\xa5\xcf(\xf5\xce&^)\xaewm\x05\xb5u\ +\x09sl7\xfe\xb3\xe8jz\xbb\x9e\xeb\x97Y^B\ +U\x1e\x96Y\xf1w\x12\xb7\xff\x99\xfd\xb2\xccz\xd1\xe0\ +0\xed]K\xaeP\xb4\x8f5\xef\xd7-\xae\x96\xe5|\ +\xb1i\xbd\x96M\x94`\x10\xd9\xdb\x15\xcf'\x93e\x86\ +\xce\xacR\xb6,\x9f\xa7\xd9\xaau\x8c\xd1\xe7\xc5\xf0\xb5\ +r^g\x93w\xa1h\x0e\x12\xf2\xf2y\xc8\xb7\x14\xb4\ +&\xeb\x18AN\xa4\x1d\xf9\xe6\x08\x1d\x0bI\x84\xe0\xca\ +{U\xad\xac,\xde\xef\x9fu\xd7\xcav\x8f\xac\x8c\xf6\ +\x5cI~\x8cV6J\xdd\xc9\xb4V\xd6\xa6;f=\ +2\xd9\xc4\x0a\xed\xf4\xbe\xc9\xae\x06u\x09\xf8z\xca\xa2\ +e]Y\x80[\x82\xf1\x8a\xaco\x94E\x18+xC\ +Yl\xa2\xad\xd7\xa6\xa5-\xf5\xb6'j\xcbh\x9a/\ +\xfe7-\xef\xaa\xab]hkmj\xad\xb4\x22\x96;\ +\x0d(\xc0\x85\xfaFQ\x89\xe0\x86\xc5\xa6\xb2-\xcf\xd7\ +=\xe3\x13Nv\xab\xaa\x1aO\xdd\xc5k\xe3`5\xf0\ +\xc2\xc2|U\xaa6\x86B\x19\x93\x80\xdc\xdd.n\xd6\ +|*\x09\xb1>\x8d\x88X~\xdbd\x98\x13\xc9\x10\xdf\ +6\x19\xfcT2\xec\xb7M\x87?U\xaa\xbeq\xed\xf0\ +'\xef\x88\xfc\xe6e\xcb\x9f\x0aXD\x0b\xffj\xb4\x5c\ +\x0d\xc8]\x0b\xbf\xb6\x1e)\xf9\x97cr\x86w>\xdd\ +M\xba\xcc\xd6C/\xd2\xdb,\x189\x18\x9bI\xf8\xb3\ +\xae\xb8\x99\x17\xe3\xac\xd8T\x99\xf0\xa7V\xb5\xb6\x83\xab\ +p\xecU\xdd\xb6\xd1\xa8\xdbz\xd6]\xbf\xbcK\xc7\xf3\ +\xc7\xeb\x9ehV\xfe6\x9f\xdfS/\xae\x98\x11\xbaY\ +;\x02\xebb\xf0\xda$Vn\x19\xb4\xab\xa5\xf5\x18\xa3\ +\x13\xed\x8djV\x8e\xd7~u\xfc\xb0\xb2]\x8b\xa7V\ +\xf7\x87\xa2\xa0\x06\xd3\xf49\x03\xd9\xe1\xaf\xcdn.\xef\ +\xe6\x8f\xb7\x05\xb1o\x92N\xb7\xfc\xdb;\xd4c>\x03\ +y\xf1zG\xb9SnO\x8b\xcd\xc6r\xc6\xf75\x01\ +\xc9V\xec\xa9\x03\xc1m&\xad\xeb\xee\xd3\xa7\xfc>\xff\ +-\x1b\x93\x83\xb3\x92\x98\xab\xfb\xacL\xc7i\x99\xee\xa4\ +aSb7^>\x02\xce\xe1\xdf~\xfe\xf3V\xdeG\ +\xa3\xe1?\xe7\xc5\xaf;Y\xa4\x06\xe9\xcd\xfc\x01\xab\xde\ +j\x05\x05\x0e\xa3!\x82\xbe\xfb\xb4|\x9f\xdfc\x83)\ +\xba\xfc\x0f\x04y\x10\xcamE\xadq\xf9\xbc\xc8v\x83\ +\xae\x86-\xb2U\xf4\xd8\x19p\x8fG\xf79u\x1a\xfc\ +\xbd\xcc\xa7\xd3\xbf\xd2$\x15\x8fo=h^N\xb3\x8a\ +\x1b8X\xaf~\xa3.\x15\xe2\xae\x06\x1b\xd2\xc3\xd3m\ +\x83\x89\xd3\xf4&\x9b^\xf7~J\x17i\xc4\x9b\x1c\xbe\ +-\xe6\x0f\x8b\xfb\xf98[KIo\xc7\xcf\x9a\xd4\x94\ +E:[\x12\xf1\xd7\xbd\xf0s\x9a\x96\xd9\x1b\xd6\x8f\xb5\ +b\x894\x90\xe3\xb7\x1b\xae\xdf\xbe\xaa\xfb\x9f\x88\x0d\xa7\ +\xc3\xb5N\xc2\xf3,\xe6\xbff\xc3\xd7\x8ci\xad\xd4\xfa\ +1&\xf7\x0f\xab\x19\xde<\x94e\xb5\xec\xff\xe7\xf9l\ +\x88\x05\xce\xc6[\x00\xa9\xac\x03\xfbP\xe4Oo\x14\x1c\ +;\x07\xff\x8e\xf7\x19\xfe\xdb=\xc5\x5c\x1b\x91(\xe6d\ +?\x96\x8e\x01m\xb4YG\xb9\x1b\x0ao\x9d\xa9\xc0\xe1\ +\xedn\x0f;\xa9\xe5\xd6&V\x08\xa70\x1eK\x9c\xe6\ +F\xc9\xb7\x8d\xb0\xe1Vi\xd5\xe1\x83\x07\x1e\xcc\xe6\xb3\ +\xec\x05\x14W\xc4\xa1\x0e\xd4\x100B\x07\x958\xcf\x9d\ +\xaebk\x80i/\x0dB\x0f&e\xad\x02\xaa\xc7%\ +\xb8\xc1\xadS\xb5\x8a\x9d\xda\x8a\xc4\x1bkx\xadv\xa3\ +\xf6\x9d\x95\x1b\x8b\xa1\x9c\x11q}\x1dk\xba\xb71\xc6\ +\xbb\x1d\x07\xe8\xd7.\xf8\xd8H\x04\xb4\xe3M;J\xe0\ +o7\xcc\x09\x0b\x19\x82\x02!\x0c\xa2\x07\xdedd\xe0\ +Y7'7\xa5\xd0\xb9\xac\x98\x02H\xca\xe1V\xf2\xc6\ +)\xe0\xbb(\xd2\xe7\xda\xeet\xc5a\xd8\x86E\xc5\xb4\ +F\xd5d\xc9\x0c\xfaC\xfa\x0c\x00\x1d-+\x7f\xd2t\ +4\xaasl\x174\xcd\xb0\xeer^\xc4\x80\xea\x8fi\ +\xf9Pd\xf5\xa8xm\xbc1\xa3\x82\x1d\x88\xeb\x8c'\ +\xb0\x8b\xb0\x9d0\xadJ\xc9>g\x90nn\x8d\x8eF\ +\x11t \x12\x09\xf7\x08]]?V\xb0.\x96K\x17\ +\x85z\xaeT(r\x8a\xa1H\xc1lk)t?\x86\ +a\xb3\x5cG2\x91\xdc1g\xfbZC\xba\x11(F\ +6\xc1(\xd2\xaeJ\x0cD\x1fm\x04I\xb8\xee\xa3\x0f\ +\xc7\x93\x81~y\x8bQ\xa1wZz\xea\x82\x90W)\ +\x1e\x8a\xa4E$\x87\xe5\xc0\xd6k\xe3\xc3DN`b\ +\xc6\x1ct\xa7/5\x84J\x1a\x89N\x12j*\x0d\x95\ +\x90\xf2R\x1f\xc9=\x972\xf4Q\x06}\x80\x17\x0e-\ +b\xe1\xe8\xa75\x91K\x98\xf4\xf8\xb1*\xf2\x9e\xa3\x93\ +fpEL\xe8\x04Z\xd0K\x0ag4\xef\x0b\x8ck\ +\xb5\xc5Dh\x01kL\x05\x16\xab\x15\x891\xd2\x1a\x15\ +z\x18\x13\xe9DY+@0,s\x82\xaeF`\x1a\ +\xd8oK\xccD\x11\xf7\xc2\x85\xb5i\x14\x11\x0f\xdc\x8a\ +o\xd8\x06\xd0\x87\xc8\x93\x01\x15\x0c\xb8-\x94\x85\xd5\x0f\ +%0\xef\x82\xb6\xc4A\x9eU\xe0\x9b\xa5\x85i\xad=\ +\x81\x94L\x02\xa3\x99\xc7\xb46<\x1b\x84\xaf\x22\xe2\x89\ +\xc7\x8ei\x17\x96\xa6\xb1\xb7\x02\xe0c9s}\x9f(\ +'\xac\xc7 \x8e\x0b\xaf\x05\x15H\xa6\xd0Ca\x8bW\ +,#\xae\x86\x0e\xc4v\x03\x16\x02(\xd0\xc1s\x05\xaa\ +\x80\xda`<\xc7\x10<\xd1D\x9c\xa5e\x19N]\xb4\ +4\x90\x00A\xeb\xb3\xb4Nl \xe3\x86\x0a\x9c\xb2.\ +\xac\xcar\x1b\xf6_:\x09\xda=\x83\xf0\x84\xbd\xb5\xce\ +\x09b\xa1\xb3\xc6\xe9\xb0\x09\x0e\x117\x0dJH)V\ +\xdboD\xd8\x15Hl\x9f\x0c\x07\x17$\x9b\x0a^\x85\ +\xc4\xb3\x92R\x1b\xcca\xc98\xd0\x14\xda)\x0cH\x88\ +\x0et\xaf\xfc\x9a\xe2\xb7\x15\xca\xaddJ+\xd3\x05>\ +\x0d\xc8)\x1e\xa6\xd90\xfb\x98AY\xc7\x07QG\xcb\ +\x06\xea\x082\x1d\x16\x12\xaaNC\x9d\x004\x9f\x07u\ +\xae\x06\xb7\x1b\x83\xbf\xf9Q5\x06\xdd0\x0b\xeb\x9a\xa6\ +\xce\xedA\xda\xea\x94+\xfaZd-\xff\xf5\x90\x16Y\ +\x8b\xae\x1bpo\xfar\xba\xa8t\x95\x9f\x1a\xb2\x16\xad\ +\xef\x16i\x0eG5x\xe2\xc3UeD\xeb\x8e\xee\xd3\ +\xe2\xd7\xacX\xd6\xec5\x91\xee*y\xafM\x98\x01\xfc\ +\x80\x85\xaf\xc4\x91\x1b\xa3f\xa1\xd0LA\x9fv)\x22\ +x\xdd\x9aI\x92s_I\x11!\x8cq\x04Bp\xb6\ +\xb7\x11\xc9\x09\x8c\xe6F3\xb81\xa72\x1ap\xc3\x1d\ +\xfe\xf3\xdf\x19\xc7m\x8b\xe3\xa4\xdb\xc0\xa76\xc7\x11\x0d\ +\x1a\xa6D\xc5\xfb \x8e+\xed\x010\xb6\xc6p\xce4\ +pI\x89\x171\x9c1\xc1\xe4\xa4\xcep\x96x\xc5a\ +\xde\x94\xfdqD\xbc\x921fM\xea's\x08N\xf8\x8d\x19\x10\ +\xf4O\xdf\x85\x92\xc7\xc0\xe5Z\xd12\xff-\x1b:\x05\ +W[R|\xe5\x16O\xef\x88\x8euFd\x08\xae\xeb\ +U\xc3Iz\x9fO\x9f\x87KD\x941\xe6\xcc'\xef\ +\xa6Y\x09\xd2bZJ>\xbb\x1d2t}\x84\xb0\xd6\ +\x0a6j\x18\xb8z\x84\xf9]j\xc8\xb9\x87\x9bo\xce\ +\x89\xb6W@Ba/\x97\xb6&\x94\x12;\x0a'T\ +\xfa\x9a4\x11\x8b\x95F\xd3\xf7W%H\x98\xbdj\xc7\ +J\xc5\x9c\x98K\xf35B\xe7\xd0\x01\x9du=\xbd\xd8\ +1\xff\xbe\x15\x1c\xdb\xba\x8fi\x91\xa7\xb3\xf2\xe8v\x96\ +EV\x8e\xeeje\xeb\x9d\xfb\xe3/\x7f\xfbg\xf4a\ +^\xde\xe5\xa3\xe8\xbf\xfe\xf8.\xde\xc4s\xf1\xaa\xe3\x22\ +\x1b\xe5\x93|\x94\x96\xf9|\xd6l\xfb\x82]l\xed\x5c\ +\xef\xfd\xfa\xdd\xf8\xd5 p\xe9=\xfe\x06\xa7_\x84\x22\ +\x8aQ\xc8\x03T\xaan\xaeD\xec\xa2E\xe5\x15\xe5'\ +cH\xac{G\xed\xc9)\x82\xbc\x01\x9b\x0b\x8a|V\ +\x149\x0d\xc2??\x8aX\x93\x18'\x9c\xad\x83\x08e\ +\xbf\x9d\x80#\xd1\x09\x22\xf4\xaa\xe2\x13`$n\x00I\ +{\x09\xfb\x16\xf1\x1d\xe0\xc8I\xfb\xf8B\x1c\xb9m\xa6\ +F+NhW\xda\x95y.\x8c\x12\xeb\xb4\xeb\xe6)\ +\x06:$\x0c\xae\xaa\xed\xc7R\x1a\xc4\xce\xc6\xfb\xb7\xbd\ +\xce\xa4\xf0YPp\x5c\xf0\x0e\xa8qW\xb2w\x9b\xb7\ +\xad\xbd\xbc;+\x05\xfc9!\xef\xc0\xea\xeb\xeb_S\ +\xc0\xb9\xa9'\x10\xbb)0\x80|'\xa5\xee\xc7\xc0\xfd\ +\x84[\xc6\xb6\xa9\xfb=\xd9\xe6C\xf9\xe6\x03\x19\xe7\x03\ +9\xe7cY\xe7#y\xe7\x96\xd5i\xaei\xdf6\xa8\ +L\x8d|+\x92\xf1\x86a\x81\x8dm\x98\x9c\x95x>\ +\xc7\xc4l\x22\xa9Z\xae\xb9#\xdb|N\xbe\xf9e\x19\ +\xe7f\xce9n\xb2\xfd\x92w\xbe\xe4\x9d/y\xe7\xbd\ +y\xe7}\x99\xe7\x0e\xc8\xdf\x9b\x91\xeeD\x9f/\x9c\x80\ +\xde\x83I\xdb\x14tgZ\xba\xf9\xda\xf7\x93^\xed\xee\ +\xec\x95a\x90\x05H\x1b\xf6\x15b\x99p\xc8\xa8\xad\xbf\ +\xc4]\xbd\xa6\xae\xf8*{^|o=\xf8\xb6\x9f\xa3\ +\xcf\xf1s \x5cX\x0f\xe7\xc1\x170\x0e\x00\x22u\xb7\ +\x9fs\xe0\xb5\xe7\xeb\x1b\xcfG\x9e\x9f\xef\xdb\xf0#.\ +\x8d\xf9L.\xcd\x0b\x09i/\xaf\xc3\xb1x\xf1K\xe2\ +\xc6$\xbf\xb3i>\xf4\xb2\xbb\xe6*\x1eqW\x0e\xfb\ +:{\x9d\xa4\xbd\x8eU\xdd\x1b;\xfc\x86\xfa\xc8\xe6\xed\ +\x87\xa1.N\x7f\xf1\xf7`\x97w\xde\x17\xdf\xe3\xe2{\ +\x9c\xe4{4\x14\x01\x13\x02\x14\xda\x7f:0\x8e'\x09z\x04\ +\xc9\x87S\xa0\xd0\xd0,\xd2\x86z\xcb9\x10\xc9H\x86\ +\xc5)z\xb5\x00l\xc5,X}xfB\x92\x09\x83\ +\x9eA\xd3\x146\x10\x22\x10\xd1\xdfJ\x06y\xb3\x8c\xa0\ +V\xacd\xc9\xc0\xa7\x00\xae\xc2\xd8y\xaa\x04\xc5\xb0\x99\ +PNp\x93\x06\xd3\x9c\xf6\x0cb\xa3a\x17\xfb$O\ +\x92\x93\xe9C{H\x81\xa2=5\x9e\x0c\x9b\xf6\xce\x87\ +\xf6\xd8\x10\xb2Y\x9a4\x1e\xed!\xd4\xf4\xcc\x0c\xb3&\ +\xb4\xb7\x9el\x078!\xc33\xf0\x9c\xec\x82P\x82h\ +\xc3\xca\x1d\xd9\x09p6L\x0f=\xa6j\xe60-\xb5\ +\xe6\xb0\x13\x116J:\xc6\xc3\x81S\x04(x\x86\x08\ +\x93\x81G\xb9\x87\xe9\xfa\x18Uq\x95\x0e\xb7\xc7\x04+\ +\xd7\xbdp\xe6\xa8v*\xbf\x06?G\xa0\xba\x02\xbc\xe7\ +# \xe3d\xa2\xe1\x06a\xe5\xc1\xf4\xf2\xfd\x08XK\ +\xa3\xef\xc7@\x98\xb5,\xeb\xc2@\xf8AV_0\xf0\ +\x82\x81\x17\x0c\xbc`\xe0~\x0c\x8c\xf5\x97FA\x04\x16\ +\xd0_\xa8t\x9f\x8e\xd2 x\x14\xfe\x00\x0a\xfaSP\ +p\xfb\xd5\xf1\x05\x05/(xA\xc1\x0b\x0a\xbe\x18\x05\ +\xcd\x17GA\x89\xfd\xc7\x0e@\x10)\xd7\xa3\xa1\x9f\x07\ +P\x90\x9d\x84\x82)\x1b\xa5\xf2\x82\x82\x17\x14\xbc\xa0\xe0\ +\x05\x05\xcfAA\xfe\xa5Q\x90{\x93@\x0f\x04\x98\xe5\ +X\xa2\xb0~{\x08\x05\xcd)0\xa8\x0d\xbbI\xc7\x17\ +\x18\xbc\xc0\xe0\x05\x06/0x\x0e\x0c\xfa/\x0e\x83\x06\ +j\xab\xb4\xc5\xceJ\x02\x05~0$f\xe6\xb4\xa8\xf8\ +FC\x06.\xb9\xc1\x0b\x10^\x80\xf0\x02\x84\xe7\x01\xe1\ +W\xf0\x08\xa1\xc9\xc2H\xec\xb5\xf4t\xb6\xcbW\xef\x0e\ +\xe9\x84Bu\x0a\x16n/\xe0\xbb`\xe1\x05\x0b/X\ +x\xc1\xc23\xb0\xf0\xac\xf7\xc5\xfbN\xe7\xac\x0e\x89\x9e\ +\xf5\xa5\x8f\xa03h\xd2K\xfa\xd0\x07rC\xdb\xa9\xbe\ +\xea\x01\xd8\xfa\xf9\xd2\xef\xe8ti\xf3li\xed\xc3\x8b\ +\x03gK\x0f\x9d,\x0d\xe7J\xc9\xa0)\xd6\xb8\xc7\xcf\ +K\x09 1\xb5\x0f\xe1\xba\xcf\x94\xee\x11\x9a\xf5\x89k\ +u\xec\xc4\xf5\xc1\x83\xdd\x82+\xa0\xa6r0\xb5LB\ +\xc7\x85Wo;\xcf2\xd7\xbe\x18\x93v\xe4\xd2\x9b\xc6\ +5b\xbdC\x16~\xef\xf9m\xe1\x1c \xd7\x0a\x85\x9f\ +\xcc\xc1lX\xadZ\xd7y\xd1\xe9p\xbb\xf7\xbb\xab\xb3\ +\x0eTW\x15\xcf}\xef_^\xa9\xd3\xbe\xbcZo\xdb\ +\x1e\xbd\xab_\x06\xf7\xbb\xeb\xdd\xb7\xf7\x9d\x95\xbe|g\ +u9\xeb|9\xeb|\xdewV5p\xd9\xf3IU\ +\x1b_\xbe\xe2\x9d^\xdd_R\xb5\xe0\x1f\xf0\x0e\x89\x02\ +\xf5p\xd5\x9bWb\x18\x08\xb6\x04@v\xf8\x02\xed\xdb\ +\x80\x0e\x5c!T\xbfs\x88\x1d\xff\x92\xf9G\xbaY\xac\ +\x92&hs^\xd1MI\xda\xf2\xd6e$\x8e\xa4\xdd\ +\x99\x0e\xce\xb7\xef\x02:p\x81P\xfd\xc6!y\x9c\xf3\ +?\xe4Uc\x87\xb6\x00~\x0d\xa2,mZ\xb2\x0f6\ +\x1b\xaf\xcd\xe7\x95}\x13\x9bS\xa4\xff\x07\xbc}\xec\xe0\ +\x1ex\xfag\x13x\x1b\x80\x04\xe5_\x98\xf8\xbcZ`\ +c~\xca]\x0a?\xf2ud{7\xe3\xeb]\xc9\xf5\ +I\xd7\xe6\xec\x8dqe\xcd\xda\xec\xbb]\xe8\xc0\x85D\ ++A4\x82\xeeW\xf7\xbc}9\x94\x86+h\xadn\ +\xc4\xb8\xbb\xbb\x91*\x9c\xae^\xe9\xd3\xb8\x82\xa6\xf1O\ +\x13\xc4\xd6\xc0\x83\xb2\xce\xb7.\xa9B\x05\xa4\xcb\x9c|\ +\x87\xcc\xf7{\x8dX\x95\xf2\x8e\xfb\x8fZW\xf6\xfc\xb8\ +\xb7r5\xbe\xd6\xed\x14\x8e\xbd\xe2\xd1\xbc\xadHv\x7f\ +\x85W\xb9\xe7\xe8\xd0\xe5=\xa7\xe2\xc5\x17\xb8|\xeb\xf7\ +\xc2\x0b]\xfb\xe6\xfal\xc4\xa0\xc8P)\x04\x96\xadk\ +\xa0\x10p*\xaf\xf9'\x22F\x1d\xd8\x9e\x83\xd5\xf3\xe0\ +\xa6l\xd8P\xfag\x8a\x10Fq\xff\xcdC\xc6\xa7\xdf\ +\x19\xf6\x03B\xc6\x99\x17p5 \xa3K6\xf6JG\ +\xeb~\xb3\xd8|*f\xecK\xb3~\xae\x0b\xab\xceJ\ +\xccZi\x12.9\xa7\x7f\xb7\x81\x0bz\xbd\xe8\xba\x13\ +\xb3&\xe6{S\xb3\xbf\xf3M\x5c\x9f5\x0b,*\xff\ +\x00W\x9b\x92\x17]\xe4\xd5N3\x86{\xc1\x1a\x13t\ +\xa6\x9a\xbf\xd7k\xb3\x9aT4\xef\x06k\xe5\xa8\x8f\xe6\ +\xb8\x8f'\xc9\x0ff\xd8\x0ff\xe6\x0f]\xdf\xb1'\x1d\ +\xfd\x03^+\xd4$\xf0\x92\xf0\xbe$\xbc/\x09\xef\x03\ +\x09\xef\xf6\xd5|q\x07\xf2\xbd\xe8\x1d\xd4\xcb\xaf\xfah\ +\xe4\xab\x0f\xde\x08\x16\xfe\xba\xa2\x7f:\xeb\xfd\xab\x7f\x03\ +\x1cZC\xdc\ +\x00\x00\x0e4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x222495\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22101\ -6\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x222.9978382\x22\x0d\ +mons.org/ns#\x22\x0a \ + xmlns:dc=\x22http:\ +//purl.org/dc/el\ +ements/1.1/\x22>\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \ + \x0a \ + \x0a \ + \x0a \x0a \ + \x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xba\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x09+\ +6.952888\x22\x0a \ + x=\x22-198.82364\ +\x22\x0a y=\x2269\ +.89225\x22\x0a \ + ry=\x228.8167849\x22\x0a\ + rx=\x220.2\ +7597877\x22 />\x0a \ +\x0a \x0a\x0a\ +\x00\x00\x07}\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x12\x90\ +oke:none;stroke-\ +width:2.973;stro\ +ke-linecap:butt;\ +stroke-linejoin:\ +round;stroke-mit\ +erlimit:4;stroke\ +-dasharray:none;\ +stroke-opacity:1\ +;paint-order:str\ +oke fill markers\ +\x22 />\x0a\x0a\ +\x00\x00\x08\xe6\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0a \x0a \ + \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x22}\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22 />\x0a \x0a\x0a\ +\x00\x00\x12\x1a\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata10\x22>\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a\ + \x0a \ + \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +2505\x22\x0a inksc\ +ape:window-heigh\ +t=\x221016\x22\x0a id\ +=\x22namedview6\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x2212.09447\ +2\x22\x0a inkscape\ +:cx=\x2248.699934\x22\x0a\ + inkscape:cy\ +=\x2228.897499\x22\x0a \ + inkscape:windo\ +w-x=\x2255\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg4\x22\x0a \ +inkscape:pageche\ +ckerboard=\x220\x22 />\ +\x0a \x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a <\ -path\x0d\x0a fill=\ -\x22none\x22\x0d\x0a id=\ -\x22path2\x22\x0d\x0a d=\ -\x22M 3.4923116,-0.\ -39297537 H 51.49\ -2312 V 47.607024\ - H 3.4923116 Z\x22 \ -/>\x0d\x0a\x0d\x0a\ -\x00\x00\x0d$\ +ke-opacity:1\x22\x0a \ + d=\x22m 33.632\ +734,19.875438 4.\ +149523,-3.300771\ + 4.685644,5.7964\ +26\x22\x0a id=\x22p\ +ath1074\x22 />\x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \x0a\x0a\ +\x00\x00!\xf6\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ +no\x22?>\x0a\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0a \x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a\ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0c\xce\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \ +\x0a \x0a <\ +path\x0a sodi\ +podi:nodetypes=\x22\ +csc\x22\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path816\x22\ +\x0a d=\x22m -24\ +3.25424,36.20339\ + c 7.47466,23.42\ +7449 32.21453,21\ +.503685 40.62787\ +,8.634724 8.4108\ +6,-12.865143 1.3\ +1409,-37.4864107\ + -28.0177,-31.00\ +7606\x22\x0a sty\ +le=\x22fill:none;fi\ +ll-rule:evenodd;\ +stroke:#37c8ab;s\ +troke-width:6;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:miter;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1\x22 />\x0a \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x94\ +ure=\x220\x22\x0a i\ +d=\x22path4489-7\x22\x0a \ + d=\x22m -225.\ +0508,25.423733 0\ +.20339,-22.37288\ +18 -19.72881,11.\ +5932198 z\x22\x0a \ + style=\x22fill:#9\ +99999;fill-rule:\ +evenodd;stroke:#\ +999999;stroke-wi\ +dth:2;stroke-lin\ +ecap:butt;stroke\ +-linejoin:round;\ +stroke-miterlimi\ +t:4;stroke-dasha\ +rray:none;stroke\ +-opacity:1\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x0dZ\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0c\x88\ + v -8.666671 -8.\ +666667 l -8.6334\ +6,-6.505556 c -4\ +.748403,-3.57805\ +6 -8.63346,-7.48\ +1016 -8.63346,-8\ +.673242 0,-2.039\ +252 14.78798,-28\ +.686171 17.43578\ +9,-31.41809 0.76\ +5807,-0.790132 5\ +.266256,0.388912\ + 12.011621,3.146\ +851 10.735632,4.\ +389415 10.808082\ +,4.399033 15.223\ +394,2.021232 9.2\ +26118,-4.968593 \ +9.854293,-5.9181\ +76 11.40331,-17.\ +237861 0.802812,\ +-5.866667 1.9121\ +58,-11.134266 2.\ +465212,-11.70577\ +5 0.553056,-0.57\ +1509 9.357958,-0\ +.871509 19.56645\ +2,-0.666667 l 18\ +.560886,0.372442\ + 2,11.741416 2,1\ +1.741416 6.3294,\ +3.92525 c 3.4811\ +7,2.158888 6.792\ +53,3.925251 7.35\ +858,3.925251 0.5\ +6605,0 5.41918,-\ +1.844483 10.7847\ +4,-4.098851 5.36\ +556,-2.254369 10\ +.45926,-3.828818\ + 11.31934,-3.498\ +777 2.03324,0.78\ +0228 18.20794,29\ +.028695 18.20794\ +,31.799445 0,1.1\ +66222 -3.88505,5\ +.047904 -8.63345\ +,8.62596 l -8.63\ +347,6.505556 v 8\ +.666667 8.666671\ + l 8.63347,6.505\ +55 c 4.7484,3.57\ +806 8.63345,7.48\ +101 8.63345,8.67\ +324 0,2.03287 -1\ +4.7835,28.68104 \ +-17.4221,31.4044\ + -0.74772,0.7717\ +4 -5.29872,-0.43\ +786 -11.89703,-3\ +.1621 l -10.6860\ +6,-4.41197 -7.21\ +862,3.77944 -7.2\ +1861,3.77943 -1.\ +77879,12.04933 -\ +1.77879,12.04933\ + -18.899066,0.36\ +932 c -10.394484\ +,0.20314 -19.197\ +66,-0.11386 -19.\ +562612,-0.7043 z\ + m 29.504508,-53\ +.06908 c 14.6252\ +1,-6.10929 21.57\ +602,-23.26646 15\ +.09602,-37.26259\ +4 -10.20217,-22.\ +03565 -40.74219,\ +-22.03565 -50.94\ +4364,0 -10.32964\ +1,22.310974 13.1\ +68754,46.736394 \ +35.848344,37.262\ +594 z\x22\x0a id=\x22\ +path817\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22 /\ +>\x0a\x0a\ +\x00\x00\x0c/\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \ + \x0d\x0a \ - \x0d\x0a\ - \x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0bF\ +oke-width:1px;st\ +roke-linecap:but\ +t;stroke-linejoi\ +n:miter;stroke-o\ +pacity:1\x22 />\x0a \ + \x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0b\x0c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0e\x99\ +indow-x=\x2257\x22\x0a \ + inkscape:windo\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x220\x22\x0a \ + inkscape:curren\ +t-layer=\x22svg2\x22 /\ +>\x0a \x0a\x0a\ +\x00\x00\x0e\x17\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\x09\x0d\ -\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x0d\ -\x0a\x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -41\x22>\x0d\x0a\x0d\x0a \ -\x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a\ - \x0d\x0a\x0d\ -\x0a \x0d\x0a\ -\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a<\ -/g>\x0d\x0a \x0d\x0a\ -\x0d\x0a \x0d\ -\x0a\x0d\x0a \ -\x0d\x0a\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09\xe0\ +=\x2254\x22\x0a inksc\ +ape:window-y=\x22-8\ +\x22\x0a inkscape:\ +window-maximized\ +=\x221\x22\x0a inksca\ +pe:current-layer\ +=\x22g833\x22\x0a ink\ +scape:pagechecke\ +rboard=\x220\x22 />\x0a \ +\x0a \x0a\x09\x0a\x09\x09\x0a\x0a\x09\x09\x0a\ +\x0a\x09\x09\x0a\x0a\x09\x09<\ +path\x0a d=\x22m 263\ +.2,488.45 h 214.\ +3 c 6.8,0 12.3,-\ +5.5 12.3,-12.3 v\ + -214.2 c 0,-6.8\ + -5.5,-12.3 -12.\ +3,-12.3 H 263.2 \ +c -6.8,0 -12.3,5\ +.5 -12.3,12.3 v \ +214.3 c 0.1,6.8 \ +5.6,12.2 12.3,12\ +.2 z m 12.3,-214\ +.2 h 189.8 v 189\ +.7 H 275.5 Z\x22\x0a \ + id=\x22path831\x22\x0a \ + style=\x22fill:#37\ +c8ab\x22 />\x0a\x0a\x09\x0a\ +\x0a\x0a \x0a<\ +/g>\x0a \x0a\x0a \x0a\x0a\ + \x0a\x0a \ + \x0a\x0a \ +\x0a\x0a \x0a\x0a \ +\x0a\x0a \x0a<\ +/g>\x0a \x0a\x0a \x0a\x0a\ + \x0a\x0a \ + \x0a\x0a \ +\x0a\x0a \x0a\x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x09\xa5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x19/\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22 />\x0a \x0a\x0a\ +\x00\x00\x18\xae\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0a \ +\x0a \x0a \x0a\ + \x0d\x0a \ - \x0a \x0a \ +\x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#162d50;\ +stroke-width:1.5\ +5563581;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22M 8.1\ +034569,42.45191 \ +C 15.791519,42.9\ +77784 18.461889,\ +10.499044 41.332\ +83,10.900594\x22\x0a \ + id=\x22path8\ +25\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22\x0a \ + sodipodi:\ +nodetypes=\x22cc\x22 /\ +>\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a\ + \x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x04\xee\ +order:fill marke\ +rs stroke\x22\x0a \ + d=\x22m -54.59657\ +7,9.0393917 c 13\ +.279759,0.388296\ + 16.633472,-31.8\ +097077 33.229373\ +,-31.5513157\x22\x0a \ + id=\x22path825\ +-6-7\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22\x0a \ + sodipodi:no\ +detypes=\x22cc\x22 />\x0a\ + \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x04\xe6\ \x00\ -\x00\x1exx\xda\xed\x99Ko\xe36\x10\xc7\xef\x0b\xec\ -w0\x94K\x8bV\x12\x1f\x22E\xaav\x16(\x82\x05\ -z\xe8\xa5\xdd\xa2gF\xa2mmd\xd1\xa0d;\xd9\ -O\xbfC[O'q\xaa.Pl\x01\x0byqf\ -\xf8\x98\x1f\x87\x7f\xd1\xc8\xfc\xc3\xe3\xa6\x98\xed\xb5\xadr\ -S.<\x1c o\xa6\xcb\xd4dy\xb9Zx\x7f}\ -\xfa\xe8\x0boV\xd5\xaa\xccTaJ\xbd\xf0J\xe3}\ -\xb8}\xffn^\xedW\xef\xdf\xcdf\xb3C\x9e\xd5\xeb\ -\x85\x17\x09\xef\xd8\x5c\xeb|\xb5\xae\xfb\xf6>\xd7\x87_\ -\xcd\xe3\xc2C34\x8b\xc4\xac\xb3\xf73\xe2\x93%\xcf\ -\x16\x1e\x0c\xcaO\xad\x0aV\xb0\x85\xef$3i\xa96\ -0q\xaa\x8atW\xa8\xda\xd8\x00\xc2\x9a>\xe5C\x95\ -\xaa\xadN\x86\xc3\x05d\xf6\x03R\x08\xa5KF\xa9\xfc\ -yF\x10!>\x82\xaf\xe8\xc7S/\xc8\xb8\xac\x92\xb6\ -\xef\xc2[\xd7\xf56\x09\xc3\xc3\xe1\x10\xb4\xc6\xc0\xd8U\ -\xe8\xe6\xad\xb6*\xd5U\xd8\xda\x87\x03\xb4K\xec\x06h\ -\x0dAev6\xd5K\x18C\x07\xa5\xae\xc3\xbbOw\ -\x9d\xd3GAVg\x83qF\xf3\x1f\xe8qf\x82\x10\ -\x0a\xbb,\x9b\xe9\xf6\xab\x7f\x1aj\xb3\xe5K\xa1XJ\ -\x19\x22\x12\x02\x0e\x88\xf0\xab\xa7\xb2V\x8f~Y\xdd\x0c\ -\xfb\xa6i\xd75\xb5Z\xd5\xf9^\xa7f\xb31eu\ -b2\x8e\xce\xfa\xe8\xed\xce\x16\xc7\x90,\x0du\xa17\ -\xba\xac\xab\x10\xb6#\xf4n]\x87\xf9F\xd7*S\xb5\ -:\xf6>mwk\xc2\xe4\x14\x03Q\xb0\xb0\xe4\x8f\xbb\ -\x8fM\x13\x0ci\x9a\xfcm\xecC\xdb\x86\xc7\x85\xa8{\ -\xb3\x83*\xf3n{\xfb\x12k?\x12_\x86\ -T]`\xb7[K8\x00\xeemPv'`n\xa1\ -\x92Z\xdc\xf5S\x01\x95\xd1\x94@\x82\x7fq\xe1\xc9\x0d\ -\x8dS\xa1\xee\x8f\x0d\xbf\xf7U\xb55\x0f:qc5\ -\x7f\x9f\xf6>A\x81d\xb1 \xf0\xdd\xda\x8b\xbc\xd4\x90\ -Pb\xcd\xae\xcc\x86\xc6\xcf&/\x93{\xbd\xd7Ek\ -\x85\x93\xaam\x01\xd8\xea$jm\x99\x82\xaa\xb3V=\ -\x8d&sV\xb3\x5cV\xbaNPk\xebW\xb7U9\ -\xc0=\x1e\x1f\xe8\x052R\x0c\x99\xb8\x9cE_|M\ -\xcdR\x12\xc4qDq\xb7Y\xddk\x91\x04(\x8e$\ -\xea0BM\x88\x80b\x14Q\xd9\x05C)\xd0\x80\xb0\ -\x88\xd0\xb8\x8b\xb3`d\x01\x12\x02S,'\x10\x978\ -N\xf9r\x02q\x1a\x11\x86\xa9\xe0\xdf;q\x9f\x9e1\ -',\x88\xa4d8:g\xce\x03\x89\x19a\x94\x0f\x98\ -c\x12\x10\xc91\xa2\x03\xe6\xb1\xc3+\x98\xc0C\xe6\x08\ -\x14\x81\x13NA\x83&\x94\xf9\xf1\x99\x00\x1d\x13!9\ -\x17\xe2\xfb\x87\xee\x9f\x97:;\xc7\xcd\xc6\x98#\xca\x19\ -\x1fbv2\xc9\x22\xda\xcb\xe4\x093G\x11g\x98\xcb\ -+\xe6\x13\xe6g\xf5}\x19\xb4\x0cp\x8c\x08&c\xd0\ -\x0c\x11'\x17W\xd0\x97@\xb3)\xa0Aeb\xd0\x08\ -\x16\x9d\x81\x06\xd2\xec\x0a\xfa2h2U:\xe0Z\x87\ -\xd9\x10\xb4\x0cb\xc4)bW\xd0\x97\xa5\xc3\x97S\xc5\ -\x03\x04\xb9\xff\xb0\xd0\xa0\x86\x1bH\xc4\xaf\xa8/\x8b\x87\ -\x8f\xa7\xca\x07\x93\x11\x8a\xc7\xa8\x05H\xb7\xb8V\xf5e\ -\xd4\xf1T\xf9`p\xc3\x1b]\xaaY \x08\x89\xaf\x9c\ -\xdfR\x0f4U=$%L\x9c\x91\x06\xa5\x16\xd77\ -\xe2[\xea!'\xaa\x87@B\x8e>\xb5\x00j\x89\x05\ -'W\xd4\x97Qs\xf4\xad\xf2\x81\xe3\x80\xc4\x08K|\ -%\xfd\x86~\xf0o\xd5\x0f@M\xb1\xc0\xf4J\xfa\x0d\ -\xf9 \xffF>\xce\x8a\x9ar\xde\xdfG\xfeC\xd2\xa0\ -c\x22\xc6\xf2\xff\xa1\x1e\xf0\xf3\xcd\x8b\x1eF\x01\x14\x0f\ -cx\xc0\x9c\x82\x90\x10B\x11\x19_\xf8\xa4`\x88\x8f\ -\xa0c\xa8\xf88&\x94_\xab\xbbc.\xa6T7\x90\ -\xa6T\x08\x1e\x9f}2\x17\x0c\xf7\x9f\xd6\xafB\xf2\x0a\ -\xea\x89\xd7k\x07\x9b\xc3\xab\x90\x8f\xa5$BH\xf2\x8b\ -Z2w\xff\x96\x83\xdf_\x01!\x82\x1f\xee\ -\x00\x00\x08Y\ +\x00\x1d\xb9x\xda\xed\x99Mo\xe36\x10\x86\xef\xfb+\ +\x0c\xe5\xd2\xa2\x95\xc4\x0f\x91\x22U;\x0b\x14\x8b\x05z\ +\xd8K\xbbE\xcf\x8cD\xdb\xda\xc8\xa2A\xc9v\xb2\xbf\ +\xbeC}\xcb\x8d\xd3\x18\x0b\x14[\xc0B\x1c\x843C\ +\x0e\xf9p\xf8\x8aF\x96\xef\x9fv\xc5\xe2\xa8m\x95\x9b\ +r\xe5\xe1\x00y\x0b]\xa6&\xcb\xcb\xcd\xca\xfb\xf3\xf3\ +G_x\x8b\xaaVe\xa6\x0aS\xea\x95W\x1a\xef\xfd\ +\xfd\xbbeu\xdc\xbc[,\x16\xa7<\xab\xb7+/\x12\ +\x9ekmu\xbe\xd9\xd6C\xf3\x98\xeb\xd3\xaf\xe6i\xe5\ +\xa1\x05ZDb\xd1\x9b\xc7d\xb81\xe4\xd9\xca\x83\xf1\ +x\xd3\xa8 \xf5\x1e>If\xd2R\xed c\xaa\x8a\ +\xf4P\xa8\xda\xd8\x00\xa2\xda\x1e\xe5c\x95\xaa\xbdN\xa6\ +c\x05d\xf1\x03R\x08\xa5kF\xa9\xfcyA\x10!\ +>\x82\x9f\xe8\xc7\xa6\x13,\xb4\xac\x92\xbe\xeb\xca\xdb\xd6\ +\xf5>\x09\xc3\xd3\xe9\x14\xf4\xc6\xc0\xd8M\xe8\xb2V{\ +\x95\xea*\xec\xed\x93\xfe\xfd\xfc\x86\xfe\xbd!\xa8\xcc\xc1\ +\xa6z\x0dC\xe8\xa0\xd4u\xf8\xe1\xf3\x87\xc1\xe9\xa3 \ +\xab\xb3q\x98Y\xf6\x13m\xf2\x12\x84P\xd8\xaf\xb0K\ +v\xdc\xbc1\xd2f\xeb\x97\x22\xb1\x942D$\x04\x12\ +\x10\xe1W\xcfe\xad\x9e\xfc\xb2\xba\x9btM\xd3\xa1g\ +j\xb5\xaa\xf3\xa3N\xcdng\xca\xaa\xc51\x0b\xce\xc6\ +\xe0\xfd\xc1\x16MD\x96\x86\xba\xd0;]\xd6U\x08\xfb\ +\x10z\xf7\x10\xbf\xdc\xe9Ze\xaaV\xaeo\xbb\xc7\xbd\ +\x05\x93&\x02b`N\xc9\xef\x1f>\xb6-h\xa7i\ +\xf2\x97\xb1\x8f]\x13\x1e\x17\xa0\x1e\xcc\x01\x8a\xca\xbb\x1f\ +\xcc\xcb,M\x80\xf3N\xd5\xf7\xf9Nm\xb4c\xf1\x13\ +\xcco\x19\x8e\x8eYp\xfd\xbc\xd7\xe3\xa0\xed\xb0V\xb7\ +\x1b\xf6\xe2z\xb2t\x97\xbbN\xe1\x1fu^\x14\xbf\xb9\ +$\xde\x22\x1c\xe6\x19v\x13\xed\x96\x11N\xd6\xb1\x0c\xfb\ +e6\xadL\xaf\xab\x91\x80ka\xd4\x8d\xb4\x1cJ\xdd\ +U\x5c\xe6NK\x1b\xb9\x87l\xa9)\x8c]yw\xeb\ +\xe6\xf1Z\xc7\x83\xb1\x99\xb6\xbd\x8b7\xcf\xcce\xa0l\ +a\xdep\x1c:\xb3y\xf8\xa2\xd3\xba6\x85\xb6\xaat\ +k\x85\xec\xadgc\xe1\xe8\xbed?\xe4\x99~\xc91\ +\x9c97\xbd!\xd1\x8b\xdej\xab2sZy\xe4\xdc\ +y\xcaKp\xf8\x9dj\x90H\xb2\x0b\x11\xbd\x92`\x84\ +\xfb\x15:~\x03(\xd1\x19\xab\xad9\xb9\x95\xac\xbc\xb5\ +**}>\xdaWcv+O\x06\x826\xcf\xb9;\ +\x05m\xf2e\x80\x18\x12Q\xfc\x8f\xa9\xa4\xb0\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b\xe7\ +ndow-x=\x2257\x22\x0a \ + inkscape:window\ +-y=\x2227\x22\x0a ink\ +scape:window-max\ +imized=\x221\x22\x0a \ +inkscape:current\ +-layer=\x22svg2\x22 />\ +\x0a \x0a\x0a\ +\x00\x00\x0b\xd5\ \x00\ -\x00g\xc0x\xda\xed]mo\xe3\xc6\x11\xfe\x1e \xff\ -\x81P>$A\xcd\xd5\xce\xcc\xbe\xcc\xea\xec\x0bP\x04\ -\x09\x0a\xb4@\xd1\xa6h\xbf\x05\xb4D\xd9\xca\xc9\xa2A\ -\xf1\xce\xe7\xfc\xb5\xfe\x87\xfe\xa6\xceRo\xdc\xb5/\x89\ -Q\x14\x01L\xe9\x10X\x9a]\xee\xcb\xb33\xcf\xce\x0c\ -\x97\xcc\xe57\x1f\xef\xd6\xc5\x87\xba\xdd\xae\x9a\xcd\xd5\x04\ -\x94\x9e\x14\xf5f\xde,V\x9b\x9b\xab\xc9?~\xf8\xae\ -\xe4I\xb1\xed\xaa\xcd\xa2Z7\x9b\xfaj\xb2i&\xdf\ -\xbc\xfd\xfc\xb3\xcb\xed\x87\x9b\xcf?+\x8aB.\xdfl\ -g\x8b\xf9\xd5\xe4\xb6\xeb\xeeg\xd3\xe9\xfd\xfbv\xad\x9a\ -\xf6f\xba\x98O\xebu}Wo\xba\xed\x14\x14L'\ -\x83\xfa\xf3S\xfdy[W\xdd\xeaC=o\xee\xee\x9a\ -\xcd\xb6\xbft\xb3\xfdbX\xbb],\x8f\xd5\x1f\x1e\x1e\ -\xd4\x03\xf5\xb5 \x840\xd58E,\xa5F\xb9}\xdc\ -t\xd5\xc72\xbbV\xc6\xf9\xdc\xb5\xa8\xb5\x9eJ\xd9\xa0\ -\xeao\xac6\xdb\x0a8\xf7\xf2\xdf\xb1\xfeA\xa0\xb6\xcd\ -\xfbv^/\xe5\xc2Zm\xean\xfa\xed\x0f\xdf\x1e\x0b\ -K\xad\x16\xddb\xd8\xcej\xf3n;\xaf\xee\xeb\xa4\xdf\ -\x83p\x07CuWo\xef\xaby\xbd\x9d\x1e\xe4\xbb\x06\ -\x1eV\x8b\xee\xf6jbx\xf7\xf3\xb6^\xdd\xdcv\xa7\ -\xdf\x1fV\xf5\xc3\x1f\x9b\x8fW\x13]\xe8\xc2pq\x90\ -\xaf\x16W\x13\x99\x0c\xeek\x9d\x16\x1d\xf6\xe5\xfbNf\ -\xc7\x22\xad\x02**\xbeB\xa3\xad5\xee\xa2@\x0d\x5c\ -j*\x01\xbe\xde]s\x98\xdfl\xd1\xcc\xe3xEC\ -\xba\xf9\x8f\xcd\xfd\xf2\xc7n\xfb\xe3|\xfd~\xdb\xd5\xad\ -\xe8\x92\x8a \xbe\x8dW\x5c\xde\xd5]\xb5\xa8\xba\xaa\xbf\ -|7\xa8\x83\x08pWGj\xc9\x8a\xce\xfe\xf6\xedw\ -\xfb\x9f\x22\x98\xcfg\xffl\xdaw\x87\xdf\xf2\x89U\xaa\ -\xeb\xe6\xbd\xcc|\xf2\xf6$\xbf\x5c\xccg\xb2\x06wU\ -\xf7vuW\xdd\xd4q\xfd\xfe \x90_NO\x05i\ -\xed\xee\xf1\xbe\x1e\xb4\xbbk\xb9\xadw\xcb\xf9\xacb/\ -\xe6w\xabx\xd5\xf4\xef\xddj\xbd\xfeS\xecfRL\ -\xf3fW\xdd\xba\x1eH/\xa7\xfb9\x1c\xe68\x1dN\ -\xf2rz@a\xf7sQ/\xb7\x03\x88\xe2O\xd0\x87\ -N.\x8f\xb0G\xcc\x17q\xc1\xf7u\xefe(\xf3f\ -\xdd\xb4W\x93/\x96\xfdg\xb2/\xb9n\xdaE\xdd\x1e\ -\xca\x5c\xffI\xcb\x1a\xd15\x99\x96h\xc4A\xde\x5c\xff\ -T\xcf\xbb\xaeY\xd7m\xb5\x89X\xc8\x10\xf6E7\xad\ -(\xe1\xb3\x05\xefW\x8b\xfa\xd9\x92\xa3~\xc5A\x1e;\ -{\xbex{[-\x9a\x87\xab\x09>)}Xm\xa4\ -\xa4\xdc\xdb\x00\xb0\xf5\x9f\xaar\xb0\x0b\xd0\x83:\x82\xe5\ -\x113>H\xb7\xb7\xcdC\x9c\xd0\xd5dY\xad\xb7\xf5\ -\x93\x06\x7fn\x9a\xbb\xab\x09\xa9\xd0\x7f\xf8I\xf9\x5c\x8c\ -\x8d\x15Yg\xc9\xd2\xd3\xd2\x08)\xa8`\xc1\xfa\xf0\xa9\ -\xc1J\x0b\xd6~\xaaP\x1a(\xf9S\x85w\xd5\xc7\xd5\ -\xdd\xea\xe7z1X\xb8S\xdf\xef\xdbV(\xb8\x5cW\ -\x8fu;4\xff\x0c\xef\xf9m=\x7fW\xb7\xd7M\xd5\ -.\xe2\x9a\x1c\x14\xedf_\xb9jW\x954r]\xaf\ -\xaf&\xff\xf9\xf7\x11\xb7\xeeq-K\xbcl\xa4\x87\xfe\ -\xfbl\x13\x0dl\xfd\xa6\x97<\xf4\xf8'\xa2\xad\x8cs\ -fH!\x1as\xff\xf1\xcdz\xb5\xa9\xf7\xcb4\x03\x85\ -vWiY\xdd\xad\xd6\x8f\xb3m\xb5\xd9\x96[\xa1\x8f\ -\xe5\x9bu\xdd\x09\x8f\x94\x91\x0c\x85LfZ.}\x10\ -\x95M\x04K\xb1\xc4\x99\xe8\xbc_b\xd5\xff(\xf7*\ -6\x837\xdb\xaem\xde\xc5\xc1m\xea\xfd\xf7\x9d\xfeH\ -\xa7\x9a\xb5\x83\xa1vt\xf5\xc7\xceX4\xe5q\xa9:\ -\xd1\xe4md\x0e)\x8c_\xd7UW\x7feT0\xc1\ -\x1b\x8f\x17%\x18T\x80l\xfc\xd7G\xfa\xba\xaf\xba\xdb\ -#\x1bD\x86+\x88U\x00\xe3\x85D)\xa8@\xc8\x96\ -\x0a\xd9\x14\xac\x83\x00\xfeB\xbey\xcf\x9aBQ\xca\x90\ -\xc8\x13\xbb\x0b\x11\x91a0\xc5<\x0a\xc1ymY\x84\ -\xec\x8ca.J\xe9\xd3\x01B\xb8\x10\xe0\x82\xf3\x84Q\ -d\xadF\x1a\x8a\xb4\x02\x8f\x1c\xfc\x85\x8e\xdf\xc9\x88\x06\ -\xda\xdd\xf7\x10\x8c4\x10{f\x04t\xfdh\x0c\xc5\x85\ -\x892\x0b\xecB/\xdb\xf5'\xb3\x94\xc6\x9d\xf6\xfd\x08\ -\xfbo\x22#\xa5\xd1z\xcd\xc5\x9f\x0bt\xca\x06i\xdd\ -\x5c \xcaJ\x1a\xed]\x1c\xb8|7\xde9\xa9\xeb\x94\ -\xb6`\xc0\x16\xa5Q\xe4\xacstQ\x06\xc1M\x93q\ -\x85\x94J;\xa0}\x94\x91\x0f}\xdf\x03$\x82\xd5\x81\ -|l\xce\x91\xb4\xc6\x17(e`\x8d\x88HY\x0d\xe0\ -\xdd\xc5\xa1\xacX\x17Z\xe98\x95\x8bC\x0b2\x92\xfd\ -4\xfb\xc9Q\x1c5\x14\xd2\x86,\xa0?a`Dd\ -\x9ct?\x14\x09\x96\xa0\x91IPC\xe5\x91\x80\x9c\xb4\ -\x1b\x8c\x8c\x88\x0b\x92>5\x9bpa\x94\xe8\x0c\x00E\ -$\x8c\x02\xc2\x8b\xf8'\xc8\xda\xf6\xebw\x00J\xea\xc9\ -\x10\x91LQ\xb2b\xf0^\xc6\x0dV\xd0\xf6\xd6\xca\x5c\ -@\x807\xce[\x19\xb9\xa8\x8b\xc8t\x9c\xcd^IO\ -0\xc4\xd9\xf4\xbaa\xfb\xd9p\xd0(\x95\x88B\xb0.\ -J\x5cD\x1ae\xb8\xe4\xa5\x1aF\xd1\xfeJY\x8e\xa0\ -9`\x5c\x0e\x8b\x02\x16\x1d\xa6\x10WXz\xd7d\xd1\ -\x17^\x9a\xf0&\xc8\x0a\x81\x97\x11\x05\xd0$\xe3p\x8a\ -d\x85d \x22\x04\xa7\xe5\xa2~$h\x83,\xe1I\ -]\x8f*\xb3G.\x8e\xcd\x86 \xa0\x0f%\x80\xc4d\ -zP\xfb\xeb\xcdq\x94.vd)\xc8\xc2\x8b\xaah\ -\x19]\xc0\xe2\xe7\xc9\xd1\x9c~\x99t>D\xa6\xdat\ -\xbfJD][w\xf3\xdbD\xb6\xe7\x9d/\x7f\xa8\xff\ -U|\xff\xd8\xd6\xc5_\x85\x18\xd7\xeb\xaa\xf8\x8bX\xf3\ -\x97o\xca\x03a\x96\xbb\x16\xee\xeb\xf9j\xb9\x9a\x8b\xf7\ -\xdal>y\xd1\xaf\xb3\xd2\xf3L\xb4\xe3\xa2H#\x8c\ -|d\xe3\xe9\xcd\xeeo\xe4\xa8}E\xf1lf\xbd\x93\ -(\xb5\xc5g\xa9\xdb\x0f\xf5\xff\xc6\xce$#A\xf0\xff\ -\x17vFa1\xcf\xbf\x99\x9d#)\x8a\xdfy\xdcQ\ -e\x8f,M4\x8c\x00G\xd7E\xb6FrJxx\ -\xb0-',^\xe2\x11\xbeV\x9c\x99}\x9d6\xee\xc9\ -\xa2y\x1c\xc4\x0a\x87m\x89Y\x1a\xa1P\x1c\xf4i\x84\ -\xa5\x194\x1c7\x84\x83c\xe1\x14\x8b\x95\x08\xf1\x1f\x0a\ -\x0e\x8e\xb9\xf0\x8f0\xbcIF\x14;76\xb8|u\ -z`\xb4\xc6k\x9c\x7f\x02\x98Ci\x86M\xe4oc\ -\xf9 \x8e\xab%\xda9k\x9b\xf7\x9b\xc5P\xf8S\xb3\ -\xda\xa4Rq^\xebv-NC73\x07\xd9\xa2\x12\ -\x97\xabm\xab\xc7d\x1dNc\xb9\xafV\xb2\xf8\xbd\x9f\ -8\xbb\xabZ\xf1\x15\xb6E\x1cn\xb1\xab\xf9i\x8cY\ -xB{L1\x96\xadP\xec?\xc1XX\x94\xec\xc9\ -Q;a\xec\x09P\xb8+\xc3\x18\x83p\x14\x0e\x1a\x19\ -b\x5c\xd2\xb3(c\xe5\xc5!\xfe%}\xe3~+1\ -\xf4;\x80z0\xc4D\x05\x8e\xb0\xceW\xed|]?\ -7)\xaf+\xbb4\xbf\xd9\xa6\xc4\xf7\xb2\xc4\xfew\xd4\ -\x9a]\xa5^y\x86k\xd7s\x9d9\xeaIt\xa9e\ -\x9f\x91]F\xf3q\xed\xa3'\xed\xc5K\xd1l\xedq\ -\xe1\xdb\xe8\xf7\x8e\x0e\xa7\x93\x8a\xf7H\xb1p\x94\xf5d\ -\x87H913\xf1K\x9d\x199R.CJ\xdc\x14\ -\xf15S\x9d\x0aA\xac~\xec*\xe5\x13\xa0\x82\x18\x1a\ -\xf1)\x9e\xdd\x01\xe5\xb5\xd7\x0e\xfd\xc8\x91\xb2\x19M\x19\ -\x1d\x9d\xfa!RA\xa8+\xa0x/c\xa7)\x9bY\ -\x9f\x91\x10\xc0P\x0a\x15k\x09<`\xec\xe6\xe70\xb3\ -?v\xfe\xe4\x88F\xa4X\x89@>#\x07*\x0cq\ -B\x89|\xc1x\x0egB\x7f\x02\x14d\x0ae%\xc2\ -\x0c\x89\x8f 1\xbf7\xa7\xc4\xe3Hq\xca\xbdNt\ -ds\x988H\x04\x08c\xf7\x10t\xa6Q\xc1ht\ -\x09GYA\x8ac\xceo\xec$\x95:\xe86\xe6\xc0\ -\x9cI\xd9\x5c|s\xeb(\x8c}\xdf\xd3\x99\xf9\x010\ -\x9f\xe2\xbb\x9dR\x81\x17\x17\xc1\xbc\x94\xa8\x18\xaeay\ -\xfd\x9a\x5c\x844\x981\xca\xb3CL\x82\x19\x02\xa1t\ -\xcd\x1cF\x8e\x15e\xdb\x9f\x93\xc0O\x06\x8c\x19V\x82\ -\x1e\x01\x8e]\xafN\xb7\x17\xf7X\x01:\xa6\xc4\xa7\x22\ -T\xa4\x9dqc\xb7A\x9f\xc5\xc9\xe2.\x00\x84`2\ -\xac4x=v\x13\xb4\xa9\xab.\x9b \xb0#\x9f\xb8\ -VD\xe2\xbf\x07\xf4cW+\xb2\x99\x1b\xea\xfa\xfb\x87\ -\x9c\xea\x95\x91\xcd\xd1j{\xde\x07\xcb\xdci\x10f\x1a\ -\x9c\xf3\xd8k\x16h\xc4\xd1;\x0d\xa1\xcc\x13\x0b:`\ -\xa03\xb7?\x130giu\xe1v6D.\xc1\xca\ -*1@\x0bc'\xf7<_,\xb0\x18p\xe9\xcd\x1a\ -\xc1\x0a\xb5\x96\xfd\xf1\x85X\xed\xef\xd4\xbd\xa2\xb8\xf9I\ -\xca\xd8\x83\xf8W\xa9\x83\xa5\x05,6\x81\xc7\xceW\x94\ -\xb9\x0d\x14\x0f\xb2x\xc6\x9c\xdc\xbd\xb1/\xce\xc8\xbc\xba\ -\x9dPg\xecn\x14\x07\x17R\xcd\xc2\xa0\x0c[\xfd\xe2\ -;\x81\xaf\x11\xac\x0c.Q#\x81\x0bm\x1e\x15Zo\ -\xd8\x9d\xe1\xc2,0\x0c\xca\xb3\x86\xccy\x10\xe6\x0f\xe0\ -\xc2Y\xbbJ|\x12\xf0h!\xae4\x97ENyk\ -\xcf\xba\xf5\xc4\x81@e\xe2\x11\xc2\x5c\xb7\x82\x0d\x8cg\ -\xb4\x9e\x9e\xf8 \xf9d\xa9?/BC\xe6\xa5\xb7\xe7\ -um\x96\xd7\xf0\xaa\xd2\xa4\xe9\xa9\x0f\xb4\xca\x07\x1d\xd2\ -S\x1f\x12a\xb3\xf3\x833\xf9#E\x8b$\xecIR\ -\xa5\xe8\xe3\x19\x19\x9b\xdd\x02\x8b\xf9S\xd6\x1a\xc6\xae[\ -%\xa7.\x84\xa0\x05\x046\xb5\xc4x&\x84\x08\xdc\xd8\ -\xd1\xf2\xf2/\xbd]\xcf\x0a\xc19O\x19Z`H6\ -\xca\x91\xa3e\xcb\x90\xb2<\xc6$ \xe8\xcc\x12Y\x19\ -\x89|\xfc\xd8u+fL\x9f\x10\x17jb\x97*W\ -Ph$V\ -\x1e\x99I\x98\x0b\xb5\x02F\x84\xb1\xf3|\xdc\x179\xe3\ -y\x1d\x9f<\x83\x0c-B\xc7a\xec\xfeiL\x9e\xa6\ -\xa6(\xca\xe5\x91t\x9a\x11\x94`\x9b\xc8\xbe\xfc\x8c\xd6\ -\xab#.\x12\xeeJ\xb2\xcdh\x141\x9a\xf4\x9cV\x0c\ - 5\xe0\xe8\xa3\x9f>\xb4\xd6Y\xb0(\xc4\xe58\xc9\ -\xda\x80Q\x0e\xc0\xbf8o\xf3*\xe1\xcar\x11\xf1\x89\ -_\xc3\x84!3\xc7\x10\x9f\xcc\xc53`(!\xa3\xcb\ -\x5c\x09\xcf&;\x8b$t\x8f\xc0\xc4g\x0d\x8bi\xd4\ -\xcc\xb1\x97\xfd\x91\xd1\x9a\x140P,\xde\x04\xf3\x19\xb0\ -\xe8P\xa4\x1cF\xcax\x06g3\xc04;{6\xc9\ ->\x9b\x9ae\x08Y\x81fp\x19^\xe4-\xf3K#\ -G\xb4\xeeza_Q\xa0\x8d\x19R\x84\x90=A'\ -\x06\xca\xf1\xf5\x030v\xa823\x0c\x8a} \x132\ -\xac\xc8\x87\xc0f\xe4X\xe59\xfa\xa0\x9cC\xca\x22F\ -\x89\xaf\x85\xb1\xc8\x8d\x1c+\x9f\xee\x87\x84\xca`06\ -\xd7+\xd9!\xbd\x1d;]\xd9,\xfa\xf1\xe2l\x01q\ -v \x02=y\x0cc\xa7\xab\x1c\xab\x10\xdf\xe2\xe2\xd2\ -s\x94g\xb0\x8e\x09\xd44!\x08\x0a\x18l\xfa\xdco\ -\xcc{9\x1dp\xe4X\x854\x1bH2`\x1fL\xfa\ -\xec\xa1@\xa5\x0d1\x8f\x9d\xdb!\x0b\x0eQA0d\ -Lv6\xd0\xa3\xb6/>\x1b\xf8\xda\xb0\xca\x1e\xbd\xef\ -\xb3\xcc\xde\xa7\xa9\x9ax|+\x84\xc1\x9b\xf8\xc6\xea3\ -\xe8L\xb1$^&\x1c>B\xf6\xd8\xe7\x06\x05>\x83\ -cwFc\xd64\xbf\xf5\x1a\x80\xd0\xe6\xec\x1e\x0f\xdd\ -\x8c>\xcc\x91\x08:\xbf\xdbc\x08M\x96\xd02\xca\x19\ -\xf2f\xe4g\xbfM\xfe\x02\x0c\xcb\x83\xac\xfb\x1e(\x14\ -\xbeG\x1a9R\x94\x91{|\xa5` \x97&\x1aP\ -9\x0c/?l\xfa\xda\xb0rO\x1e\xea\xf1\x819\xf8\ -L\xafX\xcb\xc7\x8e\xfd\xe9\x8bL\xaf\xc4\xc1\x92x0\ -}\xb5\x0a\xda\xfe\x89\xcd\x17\xbf2\xe4\xb5a\x95\xddi\ -\x8d\x87gP\x83qy\xb2Ov4\x1c\xbb\x0dJ\xf4\ -\xec\xb3W\xd1\xc4\xf7\xa6\xa6\x8f@\x9d\xc1:E\xcf&\ -\xbb+\xad\x9d\x07\x17\xf2\x980\xbej~\xecf\x98\x9f\ -\x03|\x16+\xa1,\x0e\xa3g,\xc8R\xee\xa0,Y\ -0y\xaa\x81-\xa0\xc5\x91c%{!g\xee(\x90\ -\x09O\xf22\x86\xc3 \xaf5\xde\x876\x1dg7U\ -C0\x8c\xfe\xec\x90>\x1b@s\xfe\xf2\xd6\xf8rd\ -\xc8(\xcb9\x06\x1a\xfb\xf3\xc0\x12?\x9b'\xefo\x0d\ -:K6\x80\x0a\x9e\xddsO\x5c\x5c\xc6\xff\xab\x89\xfc\ -\xfd/\xd2V\x11\x0f\ -\x00\x00\x0c\x0d\ +\x00e\xaax\xda\xed]\xefn\xe3\xc6\x11\xff\x9e\xa7 \ +\x94\x0fIPs\xb53\xb3\x7ffu\xf6\x05(\x82\x04\ +\x05Z\xa0hS\xb4\xdf\x02\x9a\xa2l\xe5$\xd1\xa0\xe8\ +\xf39\xaf\xd6w\xe83u\x96\x12%.c'1\x8a\ +\x22\x80i\x1d\x0eG\xce.\x97\xbb\xbf\x9d\xf9\xed\xccp\ +\xc9\xbb\xfc\xfa\xd3v\x93}\xac\x9a\xfd\xba\xde]\xcd@\ +\xe9YV\xed\xcaz\xb9\xde\xdd\x5c\xcd\xfe\xf1\xfd\xb79\ +\xcf\xb2}[\xec\x96\xc5\xa6\xdeUW\xb3]=\xfb\xfa\ +\xfdg\x97\xfb\x8f7\x9feY&\x17\xef\xf6\x8bey\ +5\xbbm\xdb\xbb\xc5|~w\xdflT\xdd\xdc\xcc\x97\ +\xe5\xbc\xdaT\xdbj\xd7\xee\xe7\xa0`>;W/\xcf\ +\xd5\xcb\xa6*\xda\xf5\xc7\xaa\xac\xb7\xdbz\xb7\xef\xae\xdc\ +\xed?\x1fTn\x96\xabS\xed\x87\x87\x07\xf5@]%\ +\x08!\xcc5\xce\x11s\xa9\x91\xef\x1fwm\xf1)O\ +/\x95>>u)j\xad\xe7Rv\xae\xf9\xdbj-\ +\xf6\x82\xca\x9d\xfc=U\xef\x05j_\xdf7e\xb5\x92\ +\xeb*\xb5\xab\xda\xf97\xdf\x7fs*\xcc\xb5Z\xb6\xcb\ +A3\xeb\xdd\x87}Y\xdcU\xc9]{\xe1\x01\x81b\ +[\xed\xef\x8a\xb2\xda\xcf{yw\xfd\xc3z\xd9\xde^\ +\xcd\x0cwg\xb7\xd5\xfa\xe6\xb6=\x9d~\x5cW\x0f\x7f\ +\xac?]\xcdt\xa63\xc3\xd9Q\xbc^^\xcdd\x18\ +x\xa8s\x9eg8\x94\x1e\x9b_\x9cJ\xb4\x0a\xa8(\ +\xfb\x12\x8d\xb6\xd6\xb8\x8b\x0c5p\xae)\x07\xf8\xaa\xbb\ +\xa4\x1f\xd7bY\x97\xb1\xa3\xa2\x12m\xf9C}\xb7\xfa\ +\xa1\xdd\xffPn\xee\xf7m\xd5\x88\xf2\xa8\x88\xdd{\xb9\ +\xe0r[\xb5\xc5\xb2h\x8bx\xf1\xa1?\xbd\x04\xb0\xab\ +!ud\x0e\x17\x7f\xfb\xe6\xdb\xc3\x99\x9c\x97\xe5\xe2\x9f\ +u\xf3\xe1x*\xbfX\xa1\xb8\xae\xefe\xbc\xb3\xf7'\ +\xf1\xe5\xb2\x5c\x08\xea\xdb\xa2}\xbf\xde\x167U\x9c\xb0\ +?\x08\xca\x97\xf3sAR\xb9}\xbc\xab\xce\x8d\x1e\x9a\ +m\xaa\xc3\xf4=\xa9\xc3\xcbr\xbb\x8e\x17\xcd\xff\xde\xae\ +7\x9b?\xc5\x9b\xcc\xb2\xf9\xa8\xd1u\xbb\xa9\xce\xc2\xcb\ +\xf9\xb1\xf7\xc7\xb1\xcd\x07\x83\xbb\x9c\xf7c\xef\xce\x96\xd5\ +j\x7f\x86%\x9e\x81>6\x7fy\xc29\x82\xbc\x8c\xb3\ +{\xa8y'](\xebM\xdd\x5c\xcd>_u\xbf\xd9\ +\xa1\xe0\xban\x96U\xd3\x17\xb9\xee\x97\x14\xd5\xa2R2\ +\x18\x99\xfd\xa3\xb8\xbe\xfe\xb1*\xdb\xb6\xdeTM\xb1\x8b\ +\x00\xc8\xdd\x0f%7\x8d\xa8\xdaS\xf2\xfb\xf5\xb2z\xaa\ +\xe0\xa4H\xb1{\xa7\x1b=Y\xba\xbf-\x96\xf5\xc3\xd5\ +\x0c\xc7\x85\x0f\xeb\x9d\x14\xe4G-\x07\xb6\xfe\x99\x1a\xbd\ +\xe6\x83>W\x11\xfcN@\xf1Q\xb8\xbf\xad\x1f\xe2H\ +\xaef\xabb\xb3\xaf\xc6\xad\xfdT\xd7\xdb\xab\x19\xa9\xd0\ +\xfdx\x5c\x5c\x8a-\xb1\x22\xeb,Y\xfaYa\x84\x11\ +T\xb0`}x\xa6\x9br\xbd\xb5\xcf\x94\xc9\xe59?\ +S\xb6->\xad\xb7\xeb\x9f\xaa\xe5y\xa6\xce\xf7\xbdo\ +\x1a\xe1\xd4|Sh\x8c\xdcT\xb3v0P\x88\xb6\xfa\xd4\x1a\x8b\ +&\xefg\xa8\x15\xb5\xddG^\x90\xb2x\xb8)\xda\xea\ +K\xa3\x82\x09\xdex\xbc\xc8\xc1\xa0\x02d\xe3\xbf\xea\x89\ +\xe9\xaeho{c\x8f\xcc\x95\x11\xab\x00\xc6\x0b3R\ +P\x81\x90-eB\xf1\xd6A\x00\x7f!G\xde\xb3\xa6\ +\x90\xe5\xd2\x1d\xf2\xc4\xeeBDd\x18LVF!8\ +\xaf-\x8b\x90\x9d1\xccY.wt\x80\x10.\x04\xb4\ +\xe0\x0a\xb4\xca\x07\x1d\ +\x92}\x14\x12\x12\xb3\xf3\xe7\xfd\xeaS\xc4\x89$h\x19\ +\xa6/\xd1\xc7\xfd&6}\xf0\x14S\x9a\xac5LY\ +\x9frN\x1c\x03\xc1\x09\x08lbwq\x93\x05\x11\xb8\ +)\xe3\xe4\xe5O\xf20\x9c\x15\x82s\x9eR\x9c\xc0\x90\ +\xac\x81\x13\xc6\xc9\xe6!\xe1q\x8c\xe99\xd0\xa9\xdd\xb1\ +2\x12\xb7\xf8)\xebS\xccb\x8e\x09\x0a5\xb1K\x14\ +*(4\x12\xe3M{\xc1\xcbujyq\xcfIp\ +\xc6\xa7L.\xe0\xbdp7\xd3+\x03*\x88B\x99\x01\ +N\xa4%J\xf1N\x877&\x1f'3\x13\x8f<2\ +y\xdc\x7f2d(\xd4\x0a\x18\x11\xa6\xcc\xe4q\xcd\xe3\ +\x94\xc9u|\xd9\x0aR\x9c\x08\x1d\x87){\x9a1\xa1\ +\x99\x18\x9e(\x94G\xd2I\xaeN\xa2c\x22\xfb\xc2=\ +N\xaf\x8d\xa0H8j\x98\xfbE\xa3\x88\xd1$\xfb\x9c\ +b\xdc\xa7\x01'\x1d\xbbt\xc1\xb0N\x83\x98\xe4\xdd:\x01\ +I\x1bb\x9e2{C\x1a\xd4\xa1\x82`\xc8\x98t?\ +\x9dGm_\xb6\x9f\xee\x95\xa1\x94\xbe6\xde\xe5|\xbd\ +O\x12*q\xfbS\x08\xe7O\xc0M\xd2\x13\xd0\xa92\ +I\x88K8x[\xea\xb1K\xda\x09n\x06\xa7\xecV\ +\xc6L\xe6\xe8!g\x00B;\xe2\xef\xb8\x7fe\xd2A\ +\x8a\xc4\xbc\xa3'-\x86\xd0\xa4\x09'\xa3\x9c!o&\ +\xbc#\xda\x8c>\xd5`\xf9\x9c\xfe>B\x84B\xe8H\ +\x13\xc6\x88R\xfa\x8e\xdf\xae\x0b\xe4\x92\xa4\x00*\x87\xe1\ +\x85\x9b2_\x19Jn\xfc2\x8b\x0f\xcc\xc1\xa7\xba\xc4\ +Z~v\xcao \xa4\xba$\x0e\x93\xc4q\xc9\x87?\ +\xd0v\xef\x22\xbe\xec\xb3\x16\xaf\x0c\xa5\xf4\x99f\xdc\x89\ +\x82\x1a\x8c\x1b\xa5\xe1d\xc1\xc2)[\x9c\xc4\xbb>\xfd\ +DJ\xfc\x10g\xf2\xd2\xcf\x1bL\x87x\xd7\xa4O~\ +\xb5\xf3\xe0\xc2(\x96\x8b_\x22\x9f\xb2\xd1\x8d\xf6\xce=\ +\x85\x92P\x13\x87I3\x13\xa4\xa9oP\x96,\x98Q\ +Z\x80-\xa0\xc5\x09\xa3$\xeb\x1c\xa7\x8e%\x90\x09\xe3\ +\xec\x89\xe1pN;M\xf4uD\xc7\xe9\xe3\xcb\x10\x0c\ +\xa3\x7fs-\xc7!/\x8f>\x03\x1a\xbf\xab\x0b)5\ +9\xc7@S~\xbbU\x22^3\xfe\x12h\xd0ib\ +\x00T\xf0\xec~\xfe\xd6\xc1e\xfc_-\xde\x7f\xf6_\ +:\x85\xf5\xe2\ +\x00\x00\x0b\xbc\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs8\x22 />\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \ +\x0a \x0d\x0a Bus\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x15\x91\ +=\x220\x22\x0a id=\x22\ +path816\x22\x0a \ +d=\x22M 7.4185002,3\ +5.023041 H 40.65\ +5232\x22\x0a sty\ +le=\x22fill:#333333\ +;fill-rule:eveno\ +dd;stroke:#33333\ +3;stroke-width:6\ +.43819857;stroke\ +-linecap:round;s\ +troke-linejoin:m\ +iter;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1\x22\ + />\x0a Bus\x0a <\ +/g>\x0a\x0a\ +\x00\x00\x15\x8b\ \x00\ -\x00Ogx\xda\xed\x5cY\x8f#\xd7u~7\xe0\xff\ -Pi\xbdX\x08\xab\xfa\xeeKkZ\x06b\xc1\x88\x9f\ -\x12\xc4\x16\xf2\x18pH\xcetGl\xb2A\xb2g\xd1\ -\xaf\xf7\xd9\xeeRd\xb72V4\xb2-h\x0ckx\ -o\xdd\xf5\x9c\xef\xacuj^\xfd\xfe\xc3\xc3vx\xb7\ -9\x1c\xef\xf7\xbb\xdb+=\xa9\xaba\xb3[\xed\xd7\xf7\ -\xbb\xb7\xb7W\xdf\xfe\xe5\x8fc\xba\x1a\x8e\xa7\xe5n\xbd\ -\xdc\xeew\x9b\xdb\xab\xdd\xfe\xea\xf7_\xff\xf67\xaf\xfe\ -e\x1c\x87?\x1c6\xcb\xd3f=\xbc\xbf?\xdd\x0d\x7f\ -\xda}w\x5c-\x1f7\xc3\xef\xeeN\xa7\xc7\x9b\xeb\xeb\ -\xf7\xef\xdfO\xf7\xd29\xed\x0fo\xaf\xbf\x1c\xc6\x11\xa6\ -\xc2\xe4\xe3\xbb\xb7\xbf\xfd\xcd0\x0c\xb0\xf7\xeex\xb3^\ -\xdd^\xc9\x9c\xc7\xa7\xc3\x96\xc6\xaeW\xd7\x9b\xed\xe6a\ -\xb3;\x1d\xaf\xf5\xa4\xaf\xaf\xba\xf1\xab6~\x85'\xb8\ -\x7f\xb7Y\xed\x1f\x1e\xf6\xbb#M\xdd\x1d\xbf\xe8G\x1f\ -\xd6o\xeap<\xd2{K\xa3t\xce\xf9Z\x99kc\ -F\x181\x1e?\xeeN\xcb\x0f\xe3\xd9\x5c8\xe7ss\ -\x8dR\xea\x1a\x9euC?q\xd8\xcd\x11(\xfb\x08\xff\ -\xaf\xe3K\xc7t\xdc?\x1dV\x9b70q3\xed6\ -\xa7\xebo\xfe\xf2M}8\xaai}Z\xf7\xeb\x14\xc2\ -\xce\xf6\x9dQ{\xb7|\xd8\x1c\x1f\x97\xab\xcd\xf1\xba\xf4\ -\xf3\x02\xef\xef\xd7\xa7\xbb\xdb+\x97\xb8y\xb7\xb9\x7f{\ -wj\xedw\xf7\x9b\xf7\xff\xb6\xffp{\xa5\x065\xb8\ -4)\xfc\xa3\xdb/\x1eu\xbf\xbe\xbd\x82\xab\x19\x99\xd3\ -\xf0S\x9e\xcb\x967\xf5\x91\x9a\xb2\x99\xec\xf0;\xe3\x94\ -\xf7.,\x06\xa3t\x1a\x95\x1d\xb5\xfe\x92\xe7\x94\xdb\xde\ -\xac\xf7+<=\xecp\xb7\x7f\xff?\xab\xfdv\x7f\x80\ -\xff\xeeN\x87\xfd\xf68!A\xbf\xc6\xf1\xaf\xd6\x9b7\ -G\x9a\xc8\xc7\xc1\xa6\xe3G\xf0p\xb5\xbd\x7f\xfc\xcf\xe5\ -\xe9N\x06\x0cC\xe9\xf8vw\x7f\x02v=\x1d7\x87\ -?#y\xfec\xf7\xedQ(SV*C\x93\xf1e\ -=X\xf1\xb0Y\x9d\xea08\xed\xe9\xe3\x16\x8e\xf8\xe6\ -~\xbb\xbd\xd9\x81h|\x85\xbf\xc6=,y\x7f\xfax\ -\xa3\xa6\xe4\xb2\xd7\xce\xdb\xaf\x8ep\xee\xef67_d\ -\xfa#\xcd\x91\xb8pc\xa7\xe4\xa3\xd3\xce\xf8\xd2\xbf\xbd\ -\xdfm\xfew\x7f\xbf\xbb9\xec\x9fv\xeb\xd2\xfbp\x7f\ -\xda\x1c\xb6\xf7\xf0\xd7\x8d+}\xeb\xe5\xf1ny8,\ -?\xd2\xf6W\xdd\xd1\xf0\x0ex\xdadb\xdf]\x18\xef\ -&\xdc0\x85\xfeYE\xc1s\x0f? c\xb3IQ\ -E\xdd\xf7\x7f\x84~\xa5\xc2d\xb2\xca}\xff\x81\x1eL\ -:\x85\xe8\xf5\xd5p]xr]\x08\xcb\xfc\xbbF\x8e\ -\xf1\xcf\xcaz\xe4\xfb\x1a!\xd81\xf6\xf5\xb21\xe8q\ -\xf9vC\x80\xb8\xbd\xfa\xe2\x0d\xfd)O^\xef\x0f\xeb\ -\xcd\xa1<\x0b\xf4g\xfeLx\xc3Z\xae\xac_p\x8a\ -\x0b\xd7\x01\xea\x85\x01@\xf0\xf5\xfe\xfd\xed\x95\xb9x\xfa\ -\xfd~\xff\x00\x0b\x9b\xc9\x85\x14\xfd\xc5\xe3\x15\x90\xd0\x82\ -\x04\x01m\xb3\xbb|\x8ag\x8a\x93\xd6\xd6\xe5\xcb\xa5A\ -\x1a\x9eP\x11\x8eO\x8c\xdc\xc7\x0f\x97\x0b<\x1d\x0e8\ -b\xbb\xfc\xb8\x81\xdb\xd3_\x95S(Do\x0fH\xc8\ -7\xcbm\xa3\xe4\xcb\xab\xbd\xbf\xdf\xc1-G\x81\x8bN\ -\xde\xbe4\xa4\xa0F+\xe3_\x1a\x037\x0f\xf1\xa5\x87\ -pq\xf3\xe2\xc3\x87\xe5\x07@\xfc\xf7\x1b8yE\xd1\ -\xab\x87\xcdi\xb9^\x9e\x96\x1d>JW\xac\xc2\x0f\x1a\ -\xfd\xe6\xbf\xbe\xf9c\x93\xdd\xd5\xea\xe6\xbf\xf7\x87\xefz\ -\x8c\xc2\x90\xe5\xeb\xfd\x13\x9c\xbe\xc98*\x95\xd5\x0d\xe8\ -\xe0\x87\xe5\xe9\xeb\xfb\x07\xe08\xea\xef\x7f\x05\x95\x0b`\ -\xad\x0f\xe6\xa3O\x1f\x1f7\xdd\xba\xbc\xf2a\xc3\xea\xfc\ -Y\xc3\xb6^\x81\x1c\xc3\xac\xeb?\x9f@e\xfc\x09\xb7\ -iBR\x97\xbd?m7]/\x08\x0f\xdf\xa1\x0aS\ -\x7f\xc9W\xd7\x85\x08\xdc|{N\xd2\xed\xf2\xf5f{\ -{\xf5\x87\xe5\xe3r\xd0\x17\x04\x7f\x0b\xca\xe6\xf1a\xbf\ -\xde\x08v\xae:\xea\xce\xc1t:,wG\xa4\xc3\xed\ -\x15\xfd\xdc\x82\x03\xf0;\xb5\x18A\x0f\xb8\xc9\x06c\xbe\ -\xacLx;\xd3\xa9\xbc\xcch;M\xfb\x83g{a\ -\xab1\x80lz\xa3\xa3\x87=A\xda\xac\xb5\xca}\xd9\ -&\xf5Z\xf9\x8b\xd7\x16\xffW\x15\xb0\xe8\x84F\xd2\xc7\ -\xde>\xc5<(\xd29fa\xa7\xac\xed0\xea\ -\xc9\xb8\x18LX \x8d#\x8e\xb6N\x99`\xa0m\x92\ -\xf5\x03\xff\xe55\xb4\xc1\xb0\xd1\x00\xaf\x95\xcd\x16:|\ -\x88\x1aW\xd0`\x0btX\x8c\xbct\xb7\x06\xfc\x8a\xd9\ -\xe6\xe1\xae\xee\x13\x87\xed0\xda\xc9X\xe3R\x82#E\ -\xc5\x87\x80\xa3\xa5\x94y\x82\xc3\x8e\xe0\x9c\xcf\x196\xb1\ -9\xd6=\x22\x0e\x08Iy\xdc\x03\xeed\xac\xeb{\xe4\ -`\xb2H\xb9(\x13\x00\xdb\xed9\xfe\x82\x8e\xe4U\xf0\ -\x9e\x960\x96H\x83\xe7\xd12\xc5\xd2\x9apGEs\ -\x84\x82\x9f)FBC\xbf\x02\xc1\x8b\xc4\x09\x00\xb6\ -`\xc5\x1c\x1ah;\x8c6MI\xa4\x849\x11\x86\xc2\ -\x1c3\x19\xad\xe3PUH\x19Qo:\x9e)F\xdd\ -+\xf5\xb6Q\x99\x84\xc8\xf3\xdd>D\x9f(PbA\ -\xd0\xb9qX\x90VpT\x95\x86\xe8\xb4F\x9ej\xf1\ -\x04D\x04J\xdd\x8b\x0e\xa9\xb2:\x9ew\x1e\xf8zp\ -\xf3J\x9b\xa6.Hx\xaa\x12\xaa\xda\xb8j{\xb9\x92\ -\x98\x90\x06\xa9\x02\xa1B\x16\x1a`\x9a\xb4U\xf5\xc3\xc2\ -L\x80px#B\xc0\xbb\xa1h\xaa\xed\xd0\xdbI\xc2\ -\xd3\xbb\x22&\xac\xac\x1a\xa7\xc9Rw\xc6K\x04\xa6i\ -\x1a\xa1\xa7H\xa10\xfe\xdd\xc0\x87\xd8\xf6\xa7\x12\x9c\xca\ -\xa9+N\x1b]\xc8h\x15\x85\x1e\x17\xa2\xf3:33\ -VE\xd3\x1b\xf5\xe2J\xb0D\xe0\x05\xaaM(w\xe7\ -\xbf]\x0e\x8b\xb1x\x17=d\xc4#jv^\xcce\ -\xb3\xea|\xb4\x1ew\xa8\xe2\xab\x0d/SV\x83Z\xa8\ -\x99>\x91;\x16\x1a\xcc\xc8)\xba\xbdR\x93\xae`/\ -\xda\x1d\x11G\xb1z\xb2\xb1o`\x91\x83\x09\xfa\xaa\xe6\ -fJ\xcc\xe4\x03\x0fn\xa6h\x8c\xca\x1e\xd4\x935\xde\ -t`\x02\xdc\xc2\xd1a\x00`;\x83<\x98\x09w\xae\ -Bxf\x9f\x9av\xc1\xdej?gd\xe8\xb4\xac\xac\ - \xc6\x03\x89P\xc5\x81W\x98\xcb\xe7\xa2\xc3+\xcfm\ -x#\x0d\xde\xa9x\xf1\xea\xaa\xb4!\xbe\xdd\xb9\xe1k\ -N \x01\xbc\xa9:^m\x94v\x81B\xf5\xf8\x84:\ -\xcd\x0e\x89e\xaa>\xe2\xd8nC\x86U\xdc\x96T\x11\ -\xdb/Y\x0cW\xed \xe80K\xab\x86\xba+\x9b\xf2\ -\xed\xcb\xe9\x85\xf8|\xfc&\x8e\xb8\x94\x13\xbf\x03Z>\ -\xc3`\xe3\x81\xf7\xc0\xdb\xef\xcf\x13B\x18\xec$=\xcb\ -\xd3\xb4\xfc\xc1~\x07\xd1\xcai\x7f\x18WO\x87w\xcb\ -\xd3\xd3\x01\xe2 \xd5\x0fm\x09\x1a\x88\x121x=\xde\ -^\xad\xfe)\xff\xf4\xa1\xf6\xcf\x12\x01\xbe~:\x9d.\ -\x02@\x8a\xf9\xfe\x1f\x01\xe0E\xb4\x97\xed\xe4R\xce\xa0\ -\xeb4\xc0aJ\x00C\x0a\xb4\xc0\x11s\x09%B\xb1\ -K\x13c\x8e\x0cY\x89\x93\x82R\xe2GA\xf4.2\ -\x8c0\x85\x98,\x90\xd8\x86L\xb85\xda\x84@Q\x89\ -\xc4 \xc1\x12\xd0\x95I\xf3PH\xfbp\xd9A\xf6\x05\ -w \xed\x05Q;\x07G\xb0(\x19\xebH\x08v\x01\ -\xd4\x0ayK!\xa1m\x85-\xacXo\xd26\x00w\ -\x12\x15Q\x1d&\x06\xc7\xee\x9c\xd6\xe8\x5c\x013\xac\x8b\ -\x9d\xa6\xc9\xd9\xb8Ny4E\xafH\x9c\x94\x92\xc8\xcc\ -;\xf6\xe3q=\x12M\x22\x96\xc2P\x04\xcc\x19u\xe8\ -\xf4\x92H\x19\xfd\xb7\x88\xd4/\x13|1#K\xd1m\ -\x01\xf0\x85\x09\xe8Ia$\x1a\x93\xd8\xe9/\x85\xbe@\ -\xf5]\xc7:\x02\x9e$\xf1T\x88\xf3\x04\x16oS$\ -\xe4j \xfe,\xd5 \xda\x8fW\xab\xdc\xb6\x1a\x8c_\ -(\xa6\xaew\xad3,\xfe\x02\xef\xec\xaf\xbcK 8\ -\x16\xc3E`\x9d\x07\x07A\xb3]C\xfbUM\x0d2\ -\xc6*\xcb\xc6\x88\xcd\x188\x18\x9e\x85\x91\x03\x15\x03\xd3\ -\xc94k\xa5^\x14\x15\xff\x93[\x9f_\xaa@E\xd0\ -A:\x98\xcc\xda\x5c{V`\xc9\xbb\xc0\xd1\x8b\xe6\xac\ -\x88\xb2J\xb1\x83\x92\xab\x1fJ\x1a\x17\xc2e\x96\x05#\ -\x8e\x8dw6s\x07+^\x88\x12P\xee8\xd7\x02\xab\ -Q^\x04d\xc6_vl\x05\x10\x9c\x97\xd0\x9eRJ\ -\x1e\xe4\x93\xa43\xc1\xd1^`w\xfcU\xba\x92\x9f\xb2\ -'&1#\xb3\xa7`\x88\xa4\x854c\xd6\xe4\x89\x82\ --\xe2h\x09\xa3J\x91&V\x9d^#\xebUP\x1a\ -S\xde\x00\x0br]\x91\xec\x1c\x1aYLET\xce;\ -\x88R\xbd\xb8\xb0\x86=\xfc\xac\xc1\xeaR\x8f3v\x06\ -\x1aI_\x19%a\xb61\x9c\x9d;\xeb\x91\xa5\x83'\ -@\xca\x91F6\xc7\x1c\x1b@\x98\xc6\xce\xb0\xa2\x04\x0c\ -k\x08\x93\x14\x8c@\x88\xd8\xe7:\x08Uxx\xc5N\ -\x82\xe2Ae\x0d\x08\x85j@a!\xaa\x89\x086\xef\ -\xb4\x9d\xb5\x89z\x8b\xe2\xcb\x94\xb9!p^I9\xda\ -.\x82\xdb\x8b$\xc4-pw#;q\x8e,E\xa6\ -S\xdf|\x01\xcf\xf9W<\xa70\x05\x05^RD<\ -\x03\xa5%[+\x0a\x07\x03%!\xaeQ\x0a\xa1\x81x\ -\x94\xd4[\xe2\x1ci\xe8\xc0ZY\x12\x19\x8a\x82^\xf4\ -\x14%\xf7A\xb0GWn(\xb8\x85M\x9d\x0eC\xe3\ -v\xf4\x9a\xbc=\xd9Qs:\xbf\xda\xa3d\x8c\xbeh\ -cte\xa3\xca&\x95\xdd{,\xa246\x99#\xe4\ -\x93G\x11\x08P\xacm\xe9\xbc|~\x14\x05\xc3>J\ -E\xb3\x7fQ+\xda\x7fh\x7f\xf1\xf3\xbc\xae\xba\x80Q\ -HS\xd2\x0a\x93;\xc0-\xf8\xed)u\xe5\x83vL\ -O\x92\xd1\xca\x12i\x17u\x90\x92\x91\x1c(\xfe\xc28\ -\x81\xcd\xd9X\xa1\x81\xc3I\xf4\x8d#u*3X\x05\ -]\xb4\xb7m\xc6\xc8\x87@\x15\x9d\xb0\x8b\xce\x12$0\ -\xe7\xe3\xd1p\xb0\x85\x96\x91\x1b8\x0f\xe6\xf0GU\xc7\ -\x0c\x08\x82#<\xd6\xd0\x99\xac\xe4\x8f2\xe6\x0c\xb35\ -\x96qC\xef[\x14\xaa\xd6\x85\xe8j\xce\x22\x88\x82#\ -\xb3>\xf6\x06CnT\xb1\xe9\x08\xdd\xe0\xc0e\x09\xb6\ -2\xe5\xb0\x5c\x85\xa6\x9a\x9b\x0b\x9e],@\xd9\x10o\ -c\xbc\xe4\x059\x07F\xba\xba\x0c)\xe25\x8a\x0e\x1e\ -+\x09F&\x15e\xd6\xf0V\xba\x85\x96(W$r\ -E\x9aQl\xc4-\xb1M\xba)\xf2\x22\xb6\x18\x0b6\ -2t\xfcG\x11g\x89\x8c\x8a\xdcRtB\xd8\xbai\ -c\x8b\x0c\xc7E=6\xdd\x93\xd4\x0c_\x8b\x9b\xac\x7f\ -r\x1f\xdc\x82\x15\x95\x8d\xc3\xac\xc3j<\x89\x18\xc7\x8e\ -Ph\x8e\xce\x9ad\xc0\xa2\xd61U(b\x87C/\ -\xad'\x14\x12Nq\x12\x0f\xc8\xd3\x0e!\x1a\x09\x09\x18\ -\x99\x80@\xa7\xc0\x5c\xf2\x92\xacd\x1dW\x09\x16\xd0\xfb\ -r\xd5o\xb8\xec\xa13\xb9z(4\xe43<\x95\x8e\ -f\xe1Y\xd3\x89\xda\x02\x06\x84\xa1g-\xe9\xb1\x22w\ -\xe8\xd9\xfbnX\xd1\x86\xc4\xbd\x9e\x9d\x92\x9b\xab\xea\x12\ -\xf9\xfaL\x0f{\x00\xec\xf9\xb0gZi\xd3\xee\x9dz\ -\xecq\x0b\x80\x99\xe8@!!\xdb;\x8d}\xde\xc1\xe9\ -\xc8\x8a*\xa79\x85\xef\xf0\xa4\x1c\xdc0\xb6\xf1f\x95\ -\xe7\x84\x05y\xc1G\x8f\xdb\xb1\x81fvv\x1eW\x9c\ -9\x96fM\x96\xe8\xacc[\xa0\x9fD^\xd9 \xa2\ -\xc4\x96\xf72\x94[t\x09\xd1\xdc\x9c\xf2\x0am\xf1W\ -\x9cC\xd3V\xc4i\x8eef\xa5n\x96w\x14\x9bY\ -\x94\x18Q\xced\x15Ml~\xddy\xc7\x1dG\xe0*\ -w\xca\x16\xe2\xbe\xc4C4\xbf\xb2\xc2S\xb0?)v\ -\xb3\x80\x87\x9fVZjI\xa6\x83\x84\xf1\x9b;\xa8\x9b\x03\xa8\ -,U%\x88NZ\xd1\xe6\xb8^\xa0j3rG\xaa\ -\xf8\x94n\xd0\x81\xa9o\x9f{\xce\xea\xb9\x0e\xc1[\x15\ -t\xb2\x81c\x17.\xd1Q{\xe1q}\xcc\x02\x01s\ -\xbel\x93\xf0\x90\xf7\xea\x17\xd5\xc5\xc3\xd4I\xdff\x9c\ -\xcd\xcc%_\xbbYK\x86\xaf@\x8c\xdc\xeeN\xca\x01\ -\xad\xba\xb9d$I\xe6\x1c8\xec\xbdV\xf1\xad\x91\x14\ -b\xa2K\xe30\xe2Dy\x08\x06\xca\xae\x91\x1f\xce\xad\ -]\xc5\xa3{A\xb53\xa7\x8b\xaai\xd0\x0e\x9d\xd7\xd2\ -\xb4*9\x1c\x0dn\xe5\x86\xf2\xb8\xa2\xa4\x9a\xdev\xec\ -\xce\x10\xd7pe\x9c\xca\xf5\xbd<\xd7\ -\x9e\xb6\x9a\xa5\x1f*\x7f\x93\x22\xc8\xb3\x0e\xf1%\xb8\xd6\ -P]\x94\xa1\xcd*1\xa8M\xef\xee%\xf8&\x07\xc1\ -\x81\x8e5}\xe9@w\x84D\xfe3V\x04s\xa5\x1f\ -;\xd0\xad\xf2^\x07\xc3\x92\x8b\x15(\x9c\xb8\xe0\xe4|\ -\xd9E\xaa\xc5.{\xb6\xdd\xc2R\x0c_\xd3 \xf5\x84\ -!q\x06\xa2\x9e0\x06\x1f.N8\xb6\x82\x84R\x8c\ -x\xd1\xb3\xedj\x9f\xbb\xef%\xa4\xe2\xb4}e0+\ -\xda\xd4\xb32u\x5c\xb1\x1b\x82\xef\xe4\xd2\xbc\x02;=\ -w\x07\xa6:U_t\x1f{\x94\xf2\xc4\xfa\xe1FW\ -\xc6\x1d.;\xcakA)\xbb\xa6\xc0\xc8\x18C\x1fj\ -HQ\x90\xa6\xf2\xda\xd6N\x86\x934T\xe7\x0d\xd7\xc8\ -\xc6\xd9\x9ed\xb5f\xa3\xdck^I\xdeW\xb2\x97O\ -\x1bf\x1f\x12tE\xe0\xc0\x1fw\xd1\xe6\xf4(\x15\x93\ -\x97\x92\xc6\x16\xbd\xcd\xeaE*~j!\xb0\xa6\xb2\xe7\ -E\x05 \xf3_\x86\xe3;\x22\xa3\x03\xeb]_\xbf\xa1\ -0\xb58/\xc5\x5c^\x1d\xf1\xf0Z8+\xc4\xae\xa5\ -0\xf2\xdd\x88\xcf\xde\xf9\x5c8\xca0\xf3y\xd1\xd5\xa4\ -FI<\xc8q\xb1r\x86\x8a\xf6k\xa1a!\xfeY\ -\xad\xf9Pkk\xdaqJe\xfcl^YY\x8a\xb9\ -[\xd5\xe5\xbcC\xe8\xd7J\xbe\x89\x02}\xc1\x0e\x93\xa0\ -\x96\xc2\x0boK\xfd\x0eBT\xc8+\xef\xe7f\x95\xf1\ -R9_\x11Ne\xd0\xe7\xed\x17\xcc\x96\xffQ\xaf\xda\ -^]\xbf-\xbffv\xe0\x9f\xd1\x0a\x90\x0d0\x11\xe0\ -\x1a0o\x86\xef\xdc\xc0%\x8a\xb1\xa8#\x0ax0\xf5\ -0HE\x1f\xbe\xb7\xf0\xd8\xca\xd6\x93\xe4I\x18\xac\x93\ -\x13#\x81\xbf\xa4XK9.=h\xbaJ\xa1\xb2\x95\ -\x8a9)6\xf0\xce\xf5\x85D\x5c\xf3\xc7O\xd8\x83I\ -Z\x22w\xf9\xe8\x02td)H\xe4%P\xd68_\ -\xccN\x9e\xf3\xc9\xc6\xce\xe9\xeb\xdb\xdf\xcf?\xe5f\x1c\ -\xc4g\xbe:\xfc\xbf\x9c\x97\x17]\x97\xe3\xdc[\xf8\x87\ -\xc0H\xfb0\xf0G|0\xce\x18\xc9H\xe7\x18\x09#\ -\x01\xb8\x15\xb9.\x05\xb8\xc3\x11f+s\x17\x9c\x88\xc6\ -\x05SF\xc91\xe2V\x01\x00O\xa0BO\x1d\xa9h\ -\xd4R\x05\xfcY[^+a\x99'\xc1\x90*\xc9\x18\ -1\xd2d\x0f\x1ck\x91\xd87\x8e\x1c\xc33\xe3\x9d\xcd\ -^\xb5\x88WeP\xc120P\x16\x8f\x93\x80\xfc\x06\ -\xd5\x05\xaa\x8f\xa6a\xad\xc2\xad\xd5\xafV\x18\xc2y.\ -?\xeb\x1a\xbbs\x05[\xeb_\xabz*\xd7\xe6o0\ -\x0aM\xc4\xce\x86l\xe9\xd2$9\xddgH ~n\ -\xa8\x17\x9c\x14\xd7)d\xae\x04b3#Z}\x94\xa7\ -T\x95;\xbbEW\x85\xdb\x7f1\x03\xca\x94\xb7\x8a\xf2\ -r\x08g\xa2\xe6O\x22*A\xe5p\xd9.\x89L\xd2\ -\xc5\x14\xaa\xe44\xffF\xa2\xf4\x88u\xe4\xdc.0\x95\ -\x054\x8a\xd9/u\xb3\x10\xa2\xe6f;e\x84\x1c\x8b\ -W3\xf1\xb2-\xef\x00\x8b\xe6\xb0:\x9f}I\x19\xed\ -\x5c\x93\xf0\xe5\x99rc-'>\xeb\xd8\xce\xe6xo\ -{\xfaA\x84\xd6\xbd},\x83\x8a\xe7\x08,W\xfc\xf5\ -(\x901\xcfI$P\x0c\xe2\x00\x97\xa6T2\xb3\x18\ -P\xa51*\xb2^B\xce\x04\x86\x83\xedE\xb9\xcd\xfc\ -+\xbf\xde\x1e\xa2\xd2\xa5q1\xf5\xb049\xc6\x8bv\ -}\x9d*\xa4SZ\xde7xy\xf9X\x16)\xa5\xd2\ -\x05\xfb\x0c\xd9Q0:+\x8e.\x9f\x1d\x96\xf2i\xb9\ -b\xf1\xb6\xeb\xe3RAZ1$_\x01\xcaW\x8c\xec\ -e\xb43\xa1F\xe8\xdfd\xf1-\xe4\x8f\x85\xf8\xf7\xc3\x82\xd11\ -\x19\xfd9\xa9\x12\xa6$\xef\x14\x81*\x19\xbf\x023 \ -\x1f!+\xab \xaa\xb6S\xb2)=K\x95\xcfj\x1d\ -V\xab\xcf,\x01\x11\x9cUg)\x19\xaa\x13\xd8K\x8f\ -Z\xc1\xfb\x98<\xc0\xc3L\xe04\xc7\xe7n\xed\xfev\ -\xfb\xc0I\x84W\xf8\xef\x07\xc1\xdf\x7f\x05\xd5r}\x98\ -\ -\x00\x00\x0a\x9b\ +\x00N\xb9x\xda\xe5\x5cYs#\xc7\x91~\xd7\xaf\xe8\ +\xa5^\xa4Xt\xb3\xee\x83\x1a\xca\x11k\x85\xc3~\xda\ +\x0d\xdb\x0a?n`\x00\xcc\x90+\x10`\x00\xe0\x1c\xfa\ +\xf5\x9bW\x1d\x0d\x90\xb2\xb4\xab\x91mi\x1c\xd6\xa0\xaa\ +\xeb\xcc\xfc\xf2\xec\xecy\xf5\xbb\x0f\x0f\xdb\xe1\xdd\xe6p\ +\xbc\xdf\xefn\xaf\xf4\xa4\xae\x86\xcdn\xb5_\xdf\xef\xde\ +\xde^}\xfb\xd7?\x8c\xe9j8\x9e\x96\xbb\xf5r\xbb\ +\xdfmn\xafv\xfb\xab\xdf}\xfd\xd9\xab\x7f\x1b\xc7\xe1\ +\xf7\x87\xcd\xf2\xb4Y\x0f\xef\xefOw\xc3\x9fv\xdf\x1d\ +W\xcb\xc7\xcd\xf0\xc5\xdd\xe9\xf4xs}\xfd\xfe\xfd\xfb\ +\xe9^:\xa7\xfd\xe1\xed\xf5\x97\xc38~\xfd\xd9g\xaf\ +\x8e\xef\xde~6\x0c\x03\xec\xbb;\xde\xacW\xb7W2\ +\xe1\xf1\xe9\xb0\xa5\x81\xeb\xd5\xf5f\xbby\xd8\xecN\xc7\ +k=\xe9\xeb\xab6|\xd5\x86\xafp\xf7\xfbw\x9b\xd5\ +\xfe\xe1a\xbf;\xd2\xcc\xdd\xf1\xf3n\xf0a\xfd\xa6\x8e\ +\xc6\xd3\xbc\xb74H\xe7\x9c\xaf\x95\xb96f\x84\x11\xe3\ +\xf1\xe3\xee\xb4\xfc0\xce\xa7\xc2\x19\x9f\x9bj\x94R\xd7\ +\xf0\xac\x8d\xfcq\xa3n\x8e@\xd0G\xf8\x7f\x1d^:\ +\xa6\xe3\xfe\xe9\xb0\xda\xbc\x81y\x9bi\xb79]\x7f\xf3\ +\xd7o\xea\xc3QM\xeb\xd3\xba[\xa6\xd0s\xb6\xeb\x8c\ +\xc8\xbb\xe5\xc3\xe6\xf8\xb8\x5cm\x8e\xd7\xa5\x9f\xe6\xbf\xbf\ +_\x9f\xeen\xaf\x5c\xa2\xd6\xdd\xe6\xfe\xed\xdd\xa96\xdf\ +\xddo\xde\xff\xc7\xfe\xc3\xed\x95\x1a\xd4\xe0\xd2\xa4\xf0\x8f\ +n\xbfh\xd0\xfd\xfa\xf6\x0a.exF\x03\x8c<\x95\ +\xcdn\xea\x135e3\xd9\xe1\x0b\xe3\x94\xf7.,\x06\ +\xa3t\x1a\x95\x1d\xb5\xfe\x92\xa6\x94[\xde\xac\xf7+<\ +6,\x7f\xb7\x7f\xff\xdf\xab\xfdv\x7f\x80\xff\xeeN\x87\ +\xfd\xf68!\x1d\xbf\x86\xe1\xaf\xd6\x9b7G\x9c\xc6'\ +\xc1\x96\xa3\x07\xf0h\xb5\xbd\x7f\xfc\xaf\xe5\xe9\x8e\x1f\x0f\ +Ci\x7f\xbb\xbb?\x01\x87\x9e\x8e\x9b\xc3_\x90&\xff\ +\xb9\xfb\xf6\xc8\xe4(\xcb\x94\x91\xc9xY\x0c\x96;l\ +V\xa72\x08\x8ey\xfa\xb8\x85\xb3\xbd\xb9\xdfnov\ + \x02_\xe1\xafq\x0f\xeb\xdd\x9f>\xde\xa8)\xb9\xec\ +\xb5\xf3\xf6\xab#\x1c\xf8\xbb\xcd\xcd\xe7\x99\xfeHs$\ +\xc2\xdf\xd8)\xf9\xe8\xb43\xbe\xf4o\xefw\x9b\xff\xd9\ +\xdf\xefn\x0e\xfb\xa7\xdd\xba\xf4>\xdc\x9f6\x87\xed=\ +\xfcu\xe3J\xdfzy\xbc[\x1e\x0e\xcb\x8f\xb4\xfdU\ +;\x19^\x00\xcf\x9aL\xecz\x0b\xa7\xdd\x84\xdb\xa5\xd0\ +=\xaal\x7f\xe6\xd9\x07\xe4e6)\xaa\xa8\xbb\xee\x8f\ +\xd0\xadT\x98LV\xb9\xeb>P\xff\xa4S\x88^_\ +\x0d\xd7\xc2\x88\xebBO\xe2\xd852\x89~UV#\ +\x9f\xd7\x08\xb7\xc6\xc9\xd7\xcb\xca\x93\xc7\xe5\xdb\x0d\xb1\xff\ +\xf6\xea\xf37\xf4G\x1e\xbc\xde\x1f\xd6\x9bCy\x14\xe8\ +\xcf\xec\x91\xb0\x83\x15\x98\xac]\x10\x89\xab\xd6\xe7\xea\xf9\ +\xe7@\xe1\xf5\xfe\xfd\xed\x959\x7f\xf8\xfd~\xff\x00\xab\ +\x9a\xc9\x85\x14\xfd\xf9\xd3\x15P\xcd\x82\x94\x005\xb3\xbb\ +x\x88\xc7\x89\x93\xd6\xd6\xe5\x8bu\x01\xf3O\xa8\xe1\xc6\ +'\xc6\xe8\xe3\x87\x8b\xe9O\x87\x03\x0e\xd8.?n\xe0\ +\xd6\xf4W\xe1\x0c\x0a\xca\xdb\x03R\xef\xcdr[\xc9\xf7\ +\xe2R\xef\xefwp\xbbQ\x90\xa1\x93\xb7/\x8c(\x00\ +\xd1\xca\xf8\x17\x86\xc0\x8dC|\xe1\x19\x5c\xd8\xbc\xf4\xec\ +a\xf9\x01`\xfd\xfd\x06\xce\x5c\x00\xf3\xeaasZ\xae\ +\x97\xa7e\x03C\xe9\x89E\xb4AC\xdf\xfc\xf9\x9b?\ +T\xd9\x5c\xadn\xfe\xb6?|\xd7!\x11\x06,_\xef\ +\x9f\xe0\xd4U\x82Q[\xacn@\xa7>,O_\xdf\ +?\x00\x7fQ\x1d\xff;\xe8P\xc0d}0\x1b|\xfa\ +\xf8\xb8i\x8b\xf2\xb2\x87\x0d+\xe7g-\xd4z\x05B\ +\x0a\x93\xae\xffr\x02}\xf0'\xdc\xa4\xcaA]\xf4\xfe\ +\xb4\xdd\xb4N\x10\x0f>}\x91\x96\xeer\xaf\xae\xcb\xd5\ +\xa9\xf5\xf6\x8c\x88\xdb\xe5\xeb\xcd\xf6\xf6\xea\xf7\xcb\xc7\xe5\ +\xa0\xcf)\xfc\x16T\xc8\xe3\xc3~\xbd\x11\x94\x5c5z\ +\xcePs:,wG\xbc\xfc\xed\x15\xfd\xdc\x82\xf5\xfe\ +B-F\x10p7\xd9`\xcc\x97\x85\xeao{\x1d\xc9\ +k\x8c\xb6)\xce\x1f:\xd5\x0b\xdb\x8c\x01$\xcf\x1b\x1d\ +=\xec\x07\xd2d\xadU\xee\xcb:\xa7W\xb2\x9f\xbf\xb6\ +\xf8\xbf\xaaOE\xdc+\x15\x1f;M\xff\xfcL\xd2\xd0\ +\x87\xa7\xed\xe6f\xf3n\xb3\xdb\xaf\xd7gk\xcdu\xb3\ +\x9aL\xaf\x94\xe1fs\x9d\x5c5\xf5kXm\xfb\xe3\ +5u\xe9-\xa6B\x7f\xf5\xb8\xbc\x07\x81&\x85\x05#\ +\x00\x84\xdbN\xa5\x22\xfa\x07\xad@\x81y\x1b\xdd\x02D\ +\xd0N1\xbb\x01\x9c\x80\xac\xa2\x8d\x0b=\xf9\x14\xf3\xa0\ +H\xa3\x98\x85\x9d\xb2\xb6\xc3\xa8'\xe3b0a\x81\xf4\ +\x8d8\xda:e\x82\x81\xb6I\xd6\x0f\xfc\x97\xd7\xd0\x06\ +#E\x03\xbcV6[\xe8\xf0!j\x5cA\x83r\xd7\ +a1\xf2\xd2\xdd\x1a\xf0+f\x9b\x87\xbb\xbaO\x1c\xb6\ +\xc3h'c\x8dK\x09\x8e\x14\x15\x1f\x02\x8e\x96R\xe6\ +\x09\x0e;\x82s>g\xd8\xc4\xe6X\xf7\x888 $\ +\xe5q\x0f\xb8\x93\xb1\xae\xef\x91\x83\xc9\x22\xe5\xa2L\x00\ +l\xb7\xe7\xf8\x0b:\x92W\xc1{Z\xc2X\x22\x0d\x9e\ +G\xcb\x14Kk\xc2\x1d\x15\xcd\x11\xf2\x109\x8c,\x82\ +\xab\x02YB\x82\x11p\x09\xab\xcd@#a\xd2\x82\xc9\ +@\xb7SF\xc5\x84$\x86mR\xb7\x88\xac!dr\ +\x8e\x89\x1e\x88g\xc1\xa9\x88S\xe0\x87n\x8b2\x19\x87\ +n\x05\xb9\x9b\xcd!Gl\x131\xca\xdd\xebp\xb9X\ +[\xbfr\x15\xc9\x88\xeb\x99\x90\x9c.\x5c\xaf\xfb\x11\x01\ +\x0c\xde\x01l\xbb\xa6\x09D\x07\xe6\x9c\xee\xafT\x16 \ +\x98t0B\x22\xe3\x80v\x04\x13rOZd.]\ +\xb1\xdeAH-3\xe8\x12\xb4'\xc8\xbc\xb5\x08\x9b\x9c\ +\x5c\xa2C\xc1\xdf\x01G\x00\x85\xfbS\xe8\xc9\xe9\x98:\ +`5\x86\x12az8\x13\xa5\xfd\xa2\x81\xb7\xc1\xa4\xd0\ +BV\x1d\x1b\xbf*\xf9\xf1\xa8\x7f\x1c\xa2\x9dl\x84K\ +lg;\x10\xfb;\xca\xd0\x11:\xca\x90\xfct\xe3\x99\ +0=\xd6\x91\x02\xe7\xb4\xa3{\x22\xd5\xb5\x15\xe4\xd2E\ +\xa3O\xcat\xd7\xea\xf9\x11z1F\x81\xea\x1e\x03\xff\ +\xedP\xf7\x94-\x05\x90\xbe\xec(D\x11v\xe2|\xbc\ +K\x08\x0b\x9e\xd8\xe3O\xd8\xcf\xf8+:\xa2\xce\xb7\xf0\ +#T\xe6\xbb&\xdf6@36\x1d\xe2\xa6d\x94\x8d\ +\xb1\x89\x91\x5c\xda\xf5\x8c\x1124\xbe \xfa\x8dc\xda\ +\x9b\x996\x93s\xd5{\x8b\xf4\xd2\xb9m'g4\xc0\ +,\xf8I\x13\xb4\x06\xb1\xca\x0b\xa2DSDf\x0a*\ +\xe1\x16Er\xe8\x08\x9d\xba\x148\xd4\xf9\x05o\x15\xe6\ +p9\x22m\x05d\x84\x05\x80\xc2@I\x15\xe4\xda\xa1\ +\xa9\xad\x0a :\x80\xc7#\xc6\x88\xb2OD\xb0\x15?\ +E\xf5\x16\xc5\x08aU\xd2\xc9:>\x82\x9f)FB\ +C\xbf\x02\xc1\x8b\xc4\x09\x00\xb6`\xc5\x1c\x1ah;\x8c\ +6MI\xa4\x849\x11\x86\xc2\x1c3\x19\xad\xe3PU\ +H\x19Qo:\x9e)F\xdd+\xf5\xb6Q\x99\x84\xc8\ +\xf3\xdd>D\x9f(PbA\xd0\xb9qX\x90Vp\ +T\x95\x86\xe8\xb4F\x9ej\xf1\x04D\x04J\xdd\x8b\x0e\ +\xa9\xb2:\x9ew\x1e\xf8zp\xf3J\x9b\xa6.Hx\ +\xaa\x12\xaa\xda\xb8j{\xb9\x92\x98\x90\x06\xa9\x02\xa1B\ +\x16\x1a`\x9a\xb4U\xf5\xc3\xc2L\x80px#B\xc0\ +\xbb\xa1h\xaa\xed\xd0\xdbI\xc2\xd3\xbb\x22&\xac\xac\x1a\ +\xa7\xc9Rw\xc6K\x04\xa6i\x1a\xa1\xa7H\xa10\xfe\ +\xdd\xc0\x87\xd8\xf6\xa7\x12\x9c\xca\xa9+N\x1b]\xc8h\ +\x15\x85\x1e\x17\xa2\xf3:33VE\xd3\x1b\xf5\xe2J\ +\xb0D\xe0\x05\xaaM(w\xe7\xbf]\x0e\x8b\xb1x\x17\ +=d\xc4#jv^\xcce\xb3\xea|\xb4\x1ew\xa8\ +\xe2\xab\x0d/SV\x83Z\xa8\x99>\x91;\x16\x1a\xcc\ +\xc8)\xba\xbdR\x93\xae`/\xda\x1d\x11G\xb1z\xb2\ +\xb1o`\x91\x83\x09\xfa\xaa\xe6fJ\xcc\xe4\x03\x0fn\ +\xa6h\x8c\xca\x1e\xd4\x935\xdet`\x02\xdc\xc2\xd1a\ +\x00`;\x83<\x98\x09w\xaeBxf\x9f\x9av\xc1\ +\xdej?gd\xe8\xb4\xac\xac \xc6\x03\x89P\xc5\x81\ +W\x98\xcb\xe7\xa2\xc3+\xcfmx#\x0d\xde\xa9x\xf1\ +\xea\xaa\xb4!\xbe\xdd\xb9\xe1kN \x01\xbc\xa9:^\ +m\x94v\x81B\xf5\xf8\x84:\xcd\x0e\x89e\xaa>\xe2\ +\xd8nC\x86U\xdc\x96T\x11\xdb/Y\x0cW\xed \ +\xe80K\xab\x86\xba+\x9b\xf2\xed\xcb\xe9\x85\xf8|\xfc\ +&\x8e\xb8\x94\x13\xbf\x03Z>\xc3`\xe3\x81\xf7\xc0\xdb\ +\xef\xcf\x92;\x18\xe9$\xdd\xe7]Zv`\xbf\x83P\ +\xe5\xb4?\x8c\xab\xa7\xc3\xbb\xe5\xe9\xe9\x00A\x90\xeaF\ +\xb6\x94\x0b\x04\x86\x18\xa8\x1eo\xafV\xff\x92\x7f\xba\xb0\ +\xfa\x97\x88\xfd^?\x9dN\x17\xa1\x1fE{\xff\x8f\xd0\ +\xef<\xce\xcbvr)g\xd0r\x1a\x800%\x00 \ +\x85X\xe0\x82\xb9\x84\xb2\xa0\xd8\x99\x891G\x06\xabD\ +HA)\xf1\xa0 ^\x17\xe9E\x80B4\x16H`\ +C&\xc4\x1amB\xa0xD\xa2\x8f`\x09\xe2\xca\xa4\ +y\x10\xa4}\xb8\xec \xcb\x82;\x90\xde\x82X\x9d\xc3\ +\x22X\x94\xcct$\xec\xba\x00\x0a\x85\xfc\xa4\x90\xd0\xaa\ +\xc2\x16V\xec6\xe9\x19\x00:\x09\x89(\x0d\x13\x83c\ +GNkt\xab\x80\x17\xd6\xc5N\xc7\xe4l\x5c\xa76\ +\x9a\x8aW$HJIL\xe6\x1d{\xf0\xb8\x1e\x09%\ +\x11Ka\x10\x02\x86\x8c:tzA\x98\x8c\xfe\x09\xc2\ +\xf4+\xc4]\xcc\xc8M\xf4U\x00wa\x02RR\xec\ +\x88\x16$vJK\xa1\x03P\x1d\xd6\xb1\x8e\x80'I\ +\xdc\x13b:\xe1\xc4\xdb\x14\x09\xb4\x1a\xe8>\xcb/\x88\ +\xca\xe3\xd5*\xa3\xad\x06\x8b\x17\x8a}\xeb\xfd\xe9\x0c\x8b\ +?\xcf6\xfb\xdbf[\x02q\xb1\x18\x1e\x02\xd7<8\ +\x04\x9a\xed\x18\xda\xabjZ\x90'VY6>l\xb6\ +\xc0\xa1\xf0,\x82\x1c\x98\x18\x98N\xa6X+\xf5\x92\x80\ +\xf8\x9f\xd9\xda\xfc*\xa5(\x82\xce\xd1\xc1d\xd6\xde\xda\ +\xb3\xc2J\xde\x05\x8eS4\xe7?\x94U\x8a]\x91\x5c\ +=N\xd2\xb0\x10\x18\xb3\x00\x18qa\xbc\xb3\x99;X\ +\xd1B<\x80\xc2\xc6Y\x15X\x8d2 (\xfe\xb2\ +c+P\xe0\x0c\x84\xf6\x94<\xf2 \x94$\x92\x09\x8e\ +\xf6<\xa3\xe3o\x5c\xa4\xfc\x94=\xf1\x87y\x98=E\ +<$\x22\xa4\x09\xb3&w\x13\xcc\x0e\x87D\x18:\x8a\ +\x08\xb1\xaa\xf4\x1a\xb9\xae\x82\xd2\x98\xd3\x06D\x90\x7f\x8a\ +\x14\xe7\xf8\xc7b\xbe\xa12\xddA(\xea\xc5O5\xec\ +\xc6g\x0d\x06\x96z\x9c\xb13\xbcH\x8e\xca(\x89\xa5\ +\x8d\xe1\x14\xdcY\x8f,\x1d\xd7A\x80\xc2\xc3+\xf6\x07\x14\x0f*k@\xbc\ +S\xa3\x06\x0b\xa1KD\x9cy\xa7\xed\xacM\xd4[\x14\ +\xb7\xa5\xcc\x0d\x81\x93G\xca\xd1v\x11\x9c[$!n\ +\x81\xbb\x1b\xd9\x89\x13a)2\x9d\xfa\xe6\xf3P\xce\xbf\ +q(\x87)(\xf0\x85\x22B\x19\x88,\xd9XQ3\ +\x18\x08\x09]\x8dR\x88\x0a\x84\xa2\xa4\xd6\x12\xe7@C\ +\x87\xd3\xca\x8d\xc8(\x14\xe0\xa2?(\xb9\x0dB<:\ +lC\x81,l\xeat\x18\x1a\xa3\xa3\xd7\xe4\xd3\xc9\x8e\ +\x9a\xd3\xf5\xd5\xfe$c\xf4E\x1b\xa3'\x1bU6\xa9\ +\xec\xde\xc3\x10\x05\xb1\x89\x1b\x81\x9e\x9c\x87@Xb\x1d\ +K\xe7\xe5\xf3\xa3\x14\x18vG*\x90\xfdK\xba\xd0\xfe\ +\xf3z\x85\x9f\xe6M\xd49\x82B\x9a\x92V\x98\xb7\x01\ +F\xc1oOY)\x1f\xb4cR\x92dVnH\xbb\ +(\x81\x94\x8c\xa47\xf1\x17\x06\x02l\xbf\xc6\x8a\x0a\x1c\ +N\x02o\x1c)Q\x99\xc1\x8a\xe7\xa2\xbdm3F>\ +\x04*\xe6\x84]t\x96 17\x1f\x8f\x86\x83\xf1\xb3\ +\x0c\xda\xc0).\x87?\xaa\x12f,\x10\x12\xe1\xb1\x86\ +\xced%5\x941\x1d\x98\xad\xb1\x0c\x19z\x95\xa2P\ +\xa1.DCs\x82@\xd4\x1a\xd9\xf1\xb17\x13r\xa3\ +\x0aKG\xc0\x06_-K4\x95)=\xe5**\xd5\ +\xdcH\xf0\xec\xa2\xf7\xcb\x86x\x1b\xe3%\xe5\xc7\xe9-\ +\xd2\xd0eH\x91\xacQ4\xefXI02\xa9(i\ +\x86\xb7\xd2-vD\x91\x22i+\x82\x8c\x12#~\x88\ +m\x82M\xa1\x15\xb1\xc5X\xb0\x8c\xa1\xe3?J7\x0b\ +cT\xe4\x81\xa2\xd7\xc16M\x1b[\xc47.\xea\xb1\ +\xe9\x9e\xa4a\xf8Z\xdcd\xd5\x93\xfb\xe8\x15l\xa7l\ +\x1cf\x1dV\xe3I\xc4$v\x84B#t\xd6$\xb3\ +\x15\xb5\x8e\xa9B\x11;\x1c\xbae=\xa1\x90p\x8a\xf3\ +s@\x9ev\x08QFH\xc0\xc8\x04\x04:\x05\xe6\x92\ +\x97<$\xab\xb7J\xb0\x80\xee\x96\xab\xde\xc2e\x0f\x9d\ +\xc9\xd5C\xa1\xf9\x9e\xe1\xa9t4\xbb\xceJN4\x16\ +0 \x0c=kI\x85\x15\xb9C'\xdew\xc3\x8a\x22\ +$\xee\xf5\xec\x94\xb4[\xd5\x94\xc8\xd7gz\xd8\xee\xb3\ +\xbf\xc3\xaeh\xa5M\xbbw\xea\xb1\xc7-\x00f\xa2\x03\ +\x85\x84l\xef\x94\xf5y\x07g\x1a+\xaa\x9c\xe6\xec\xbc\ +\xc3\x93r\x1c\xc3\xd8\xc6\x9bU\x9e\x13\x16\xe4\xdd\x1d=\ +n\xc7\x06\x9a\xd9\xd9y\x5cq\xe1X\x9a5\x19\xa1\xb3\ +\x8em\x81~\x12ye[\x88\x12[^\xb9P\xda\xd0\ +%Ds\xf3\xc2+\xb4\xc5Kq\x0e\xadZ\x11\xa79\ +\x96\x99\x95\xba\x19\xddQ\xcceQbD9\x93U4\ +\xb1ys\xe7\x1dw\x1cg\xab\xdc)[\x08\xf1\x12\x0f\ +\xd1\xfc6\x0aO\xc1^\xa4\x98\xcc\x02\x1e~Zi\xa9\ +%O\x0e\x12\xc6/\xe5\xf0\x5cU\xd7\x84\x16|\x80\xcf\ +\xe8\x18\xc2\x92r\xea\xdbr\x08\xa6\x85\x88\xc8\xd0;\xb7\ +\xc5L\x83\x93k+K\xba{):\x05\x09@\x94\xf1\ +\xa9`Y\x8b\xbbif\xe7$u\xd6_\xbcp\xbd\xc2\ +;\xce\x0d\x86\xa6\xc7g\x1d\x0cn\xd0&Q\xdeQ\x0a\ +\x13\x99>\xf5\xee(i\xae\xba\xad)\x1bc\xcf\xfc#\ +B\xab\xa9\xb0@KG\xb0`\xc5U\x9c'q{\xc5\ +9\x82}\xd3\xcc\x85\x16\xf5Y\xdc#Qzl\x14\xf8\ +\xaa\x97\x1d\x05_\xa5\xb3\x5c\xa1uP\x18\xba(\xaaR\ +,5\x1bDq\xb8K\x1c!M\xe2]\x9d\x8f\x5c\xea\ +\x9d2\xde\xb5^\x829\x89\xa2D\xe1\x103\xf2\xac-\ +$\xaa\xbcc\xcdc\xbdJ\xac\x00\xd5\xcc!\x13\xff\xb2\ +\xdaRa\x09\x87EU~X\xbd\x14%\xc6&\xab\xdd\ +D\xc4\xad\x1a\xfaBb\x8aZd|,,\xb8h\x0b\ +IA\x82\xd8Q\x16\x97\xb7y\xce\xf2\x0e\xb3\xd0k~\ +\xa2|\xd6\x12\xfdV\x00B\xca\xbd\x82\xae:;uB\ +\xe8\x07\xcb\xf9\xe6\xedm\xb77\xad\xd6P\xc8\x06C\xfc\ +\x8ff\xab$N=?\xb2\x08O\x0b\xe6Z\x87-\xa0\ +\xb1\x9dI\xe80X\x9c\x06\xc7z\xb2\x02<\xcd\xa8\x8f\ +n\xcfy[\xacT\x95Cq\x22\x08\x1da!:\xb0\ +\x92Z\x00\x85\x8a\xc4p\xca\x8a\x084oo\xe5\x8c6\ +'\x8en\x89]\x89\xac.vD\xed/4\xb18\x11\ +-\x90D\x8d:ta\x8c/\x0a\xcc4\x18\xa1\x8e\xe1\ +\xcc\x99\xa5\xe7\xa8\xcfL\xd5\xe2\x04\xe8Xc\xf9^\x9f\ +\xb1\xb2*\xc4\xcf=\xc9j0.\x00\x88A\xd2xr\ +\x90\x02\xb6J\xf2\xa26\x88F\x94\x88\xcf\xba\x0b\xaa\x1a\ +\xfd|\x15\xcf\x02\x0b\xbeaA\x9a\x1f:j\x88d4\ +=\x16z_\x82\x97A\x17\x89\x1d\x03\xdd\xb2\x1ed#\ +\xe4\x08\xc5\x9b\xadg\xae6Y\x80\x5c]31mU\ +p\xe5\xf57\x9c\xcd,\xaa{,m\xd9\x7f\xe6\xa3T\ +\xc3\xe0\xad\x9e\xfb\xa0n\x0e\xa0\xb2T\x95 :iE\ +\x9b\xe3R\x80\xaa\xcd\xc8\x1d\xa9\xe2S\xbaA\x07\xa6\xbe\ +}\xee9\xab\xe7:\x04oU\xd0\xc9\x06\x8e]\xb8D\ +G\xed\x85\xc7\xf51\x0b\xc4\xca\xf9\xb2M\xc2C\xde\xab\ +_T\x17\x0f\x13&}\x9bq63\x97|\xedf-\ +\x19\xbe\x021r\xbb;)\x07\xb4\xea\xe6\x92\x91$\x99\ +s\xe0\xb0\xf7Z\xc5\xb7FR\x88\x89.y\xc3\x88\x13\ +\xe5!\x18(\xbbF~8\xb7v\x15\x8f\xee\x05\xd5\xce\ +\x9c.\xaa\xa6A;t^K\xd3\xaa\xe4p4\xb8\x95\ +\x1b\xca\xe3\x8a\x92jz\xdb\xb1;C\x5cS\x1c}{\ +[Sd\x5c/\xd6\xe5J\xd0#\x8d\xcd{\xc0VZ\ +\xcc\xc3\xa9\xaa\x829$\xac6\xb1k\xce3/\xc5)\ +\x9a\xe5\x0c\xe9\x1a\xfd\x9af\x060r\x9a\xfaS\x16_\ +P\xf4P\x1c.\xbc\x89\xce\xce\xc7Y&\x87\x9d\xeeb\ +'K 7ko\x9b\xd7\x8e\x95E\xb6#\x89h\xc2\ +\x16\x85\x10\x8dRgQ\xea\x15\xc2\x9c\xeb\x22\x89m\x01\ +\xb9\xb2(\xa3\xea.T\xf7\x80\xbdS\xc0\x08e\xa7J\ +h^\x1c:\x82U\xbb\x15Ep\x0d\xd9%y+\xf4\ +\xf1=d(\x09Z\xc3\x06\xc9\xa1w\x16\xf6Lc\xa1\ +\xf70\xf4\x91\x9f\x922\x85\x9a[\x13\xa1qenB\ +\xbe-\xaaK\xde\xdc\x0f\xdeX\xbce\xc6H\x7f\x10q\ +\xd0Zr\x80\x1e\xa3^\xe4\x00@\x18y\xd6\xb1\xed\xa4\ +\x83b\x86\xe6DT\x9f\xa1\xa4\x97q\xe7\xde\xf2TL\ +\xe4.|o~\x12]\xb2\xa6]ff@J\xca\xa2\ +v\x12\x9cH\xaa\x193\xc0L\xa6\x9aW\x96\xb3\xa9>\ +\x8dQ\xb6\x84(\xdaq\xa4\xacE)\x08\x03K\x14&\ +\xf9x!N\x9f\xd4\x14\x87\xa5*\x8a2\xa3vP\x5c\ +\xd0/A\xa9\xa6\xe6'H\xac^\xd6#\xdd\xd9K.\ +&\x1d:G\xcb\xcd\xa2\x83\xcbP\xbfT\xd1\x16M$\ +\xe7\xaf$\x17\x1b1\xefx>]i\x7f\xc9\x8a\x90\xe3\ +\x0f6_|t<>\xff\xf4\xf8c\xb6\xfa5f\xe9\ +\x83\x03\xf1\xb0!\xe2\xabw\x1b\xf0m!%X\xea\xeb\ +\xef\x81\xcb\xddT\xae\xef\xdd\xb9\xa0\xb4\x15\x22\xfdPM\ +\x9bT6\x9eu\x88\x17\xc1\x05\x84\xea\xa2\xb6lVd\ +Amz7/a7\xb9\x06\x0e\xb4\xab\xe9K\x03\xba\ +#$\xf2\x9c\xb1\xcc\x97\xcb\xf7\xd8un\xe5\xf4:\x18\ +\x96Y,.\xe1\x94\x05g\xe4\xcb.R\x02v\xd9\xb3\ +\xed\x16\x96\x0a\xf7\x9a\x00\xa9'\x0c\x89s\x0f\xf5\x841\ +\xf8pq\xc2\xb1\x15\x1c\x94\x0a\xc3\x8b\x9emW\xd0\xdc\ +}\x04!e\xa4\xed\xd3\x81Y%\xa6\x9e\xd5\x9e\xe3\x8a\ +\xdd\x10|\x07\x97\xe6e\xd5\xe9\xb9;0\xd5\xa9\xba\xa2\ +\xfb\x82\xa3\xd4\x1c\xd6\xaf1\xba\xda\xecp\xd9Q^\x03\ +J-5\x85D\xc6\x18\xfa\xfaB\xea}4\xd5\xcc\xb6\ +v2\x9c\x9e\xa1\xe2m\xb8F6\xce\xf6$\xab5\x19\ +\xe5^\xf3\xf2\xf0\xbe<\xbd|\xaf0\xfb:\xa0\xab\xec\ +\x06\xfe\xb8\x8b6'F\xa9B\xbc\xd4)\xb6\xb8mV\ +\x0fR\xf1S\xab{5\xd52/*\x00\x99\xff2\x1c\ +_\x0c\x19\x1dX\xe3\xfa\xfaa\x84\xa9\x15w)\xe6\xf2\ +\xbe\x88\x87\xd7jX!v-u\x91\x8fA|\xf6\xce\ +\xe7\xc2Q\x86\x99\xcf\x8b\xae\xd04J\xcaA\x8e\x8b\x95\ +1T\x89_\xab\x07\x0b\xf1\xcf\x0a\xc8\x87Z;\xd3\x8e\ +S\xca\xddg\xf3\xca\xcaR\xa1\xddJ)\xe7\x1dB\xbf\ +V\xc7M\x14\xe8\x0br\x98\x04\xb5\xbe]x[\xeas\ +\x10\xa2B^y)7+w\x97r\xf8\x8ap\xaam\ +>o?o\xb0\xfc\xff\xe1\xfd\xda\xab\xeb\xb7\xf2\xa3\xb7\ +\x00\xff\x82\xfa\x9f\xb4\xbf\x89\x00\xd4\x80\xb92|\xcf\x06\ +nP\x8cE\x11Q\x90\x83\xe9\x86A\xca\xf4\xf0]\x85\ +\xc7V\xb6\x9edNB_\x9d\x9c\x98\x07\xfc%eX\ +\xcaq\x91A\xd3R\x0a\xd5\xac\x94\xc1IY\x81w\xae\ +\xaf\x13\xe2B>~\xc2^K\xd2\x12\xad\xcb7\x14\xa0\ +\x1dK\x95!/\x81R\xc69bv\xec\x9cO6v\ +\x8e^\xdf\xfe~\xf6\x895# ^~=\xf8w\x1c\ +\x96\x17\xdd\x95\xe3\xccC\xf8g@G\xfb\xc2\xef\xa7\x7f\ +\xc6\xcd\xe8\xc8H\xe1\x18\x09\x1d\x01\xf8\x14\xb9\xf6\x04\xf8\ +\xc2\xf1d\xabW\x17\x84\x88\x96\x05\xf3E\xa90\xe2S\ +a=O\xa0\xbaM\x1d\xa9\x06\xd4R)\xfbY[^\ +\x22a\xd5&\x01\x90J\xc4\x18+\xd2d\x7f\x1bK\x8d\ +\xd8\x13\x8e\x1c\xb13\xcb\x9d\xcd^\xb5\xf8VeP\xbb\ +20P\xce\x8eS~\xfc\xbe\xd4\x05*t\xa6a\xad\ +t\xad\x95\xa3V\x00\xc2y.\xbf\xcf\x1a\xbbs\x05[\ +\xcbY\xabJ*\xd7\xe6\x8f)\x0aM\xc4\xb6\x86l\xe9\ +\xd2$3\xdd\xf7D xn\xa8\x17\x9c\x14\x17$d\ +\xae\xf6a\xd3\x22\x9a|\x94\xa7Td;\xbbEWT\ +\xdb\x7f\xfa\x02\x0a\x94\xb7\x8a\xf2*\x08g\xa2\xb6O\x22\ +$A\xe5p\xd9.iK\xd2\xbf\x14\x98\xe44\xff\xd8\ +\xa1\xf4\x88E\xe4L.0\x95E3\x8a\xa9/e\xb0\ +\x10\x90\xe6f/e\x84\x1c\x8bW3\xf1\xb2-o\xfc\ +\x8a\xce\xb0:\x9f}\x12\x19\xed\x5c\x87\xf0\xe5\x99rc\ +\xad\x0e>\xeb\xd8\xce\xe6xo{\xfaA<\xd6\xbdk\ +,\x83\x8a\xb7\x08,W\xfc\x19(\x901\xcfI$P\ +\x0c\xe2\xf4\x96\xa6\x14&\xb3\x18P\xe10\xaa\xb0^B\ +\xce\x04\x86C\xebE\xb9\xcd\xfcs\xbd\xde\x06\xa2\xba\xa5\ +q1\xf5\xb049\xc6\x8bv}y*\xa4SZ\xde\ +.xy\xd5X\x16)\x95\xcf\x05\xfb\x0c\xd9Q0:\ +\xabu.\xdf\x0f\x96jh\xb9b\xf1\xb0\xeb\xe3R\x1a\ +Z1$\x9f\xf3\xc9\xe7\x88\xecY\xb43\xa1F\xe8\xdf\ +[\xf1-\xe4f \xdc\x80\xa0\ +4\x83\xd8i\xe3\x17\x013\xa3\xf99j\xd8\x7f\x0c5\ +RZ.\x7fqj\x80\xcb\x0f\xca\xc7\xd2G\xab\x16b\ +\xed\xe7\xe8\xe1?\x9108\xf7\x89/\xac\x0dh\xdc\xe0\ +\x1c\x96R\xebH\xff~\x05^XC\xa8m<\x7f\x85\ +\xfb,\x00\xe2?\x06\x00F\xc7d\xf4'\xa4G\x98\x92\ +\xbc \x04zd\xfcf\xcb\x808\x84\xac\xac\x82@\xd9\ +N\xc9\xa6\xf4\x1c=>\x9d\xf2_\xad>-\xe2#\xb8\ +\xa1\xceRjS'\xb0\x84\x1e\xe5\xdf\xfb\x98<`\xc2\ +L\xe0\x0e\xc7g.\xec~\xaa\xfa\xa7\x94\xc0+\xfc\xb7\ +|\xbe\xfe\xec\x7f\x01\x9b\xf0t\xc2\ +\x00\x00\x0aQ\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ - \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0be\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07-\ -\x00\ -\x00&\xf6x\xda\xddZYo\xdbF\x10~/\x90\xff\ -\xc02/\x09*.w\xf6^Vr\x816\x08\xd0\xd7\ -\x1e\xe8cA\x93\xb4\xcc\x86\x22\x05\x92\xb2\xec\xfc\xfa\xce\ -R\xa2D\x99\x92\xe1\xb6\x0a\xaa\x88v\x10\xef\xcc\xec\xf5\ -\xed\x5c;\xe4\xf4\x87\xc7E\xe1=du\x93W\xe5\xcc\ -\x07B}/+\x93*\xcd\xcb\xf9\xcc\xff\xfd\xb7\x8f\x81\ -\xf1\xbd\xa6\x8d\xcb4.\xaa2\x9b\xf9e\xe5\xffp\xf3\ -\xe6\x9b\xe9\xb7A\xe0\xfdTgq\x9b\xa5\xde:o\xef\ -\xbd\x9f\xcbOM\x12/3\xef\xdd}\xdb.\xa30\x5c\ -\xaf\xd7$\xdf\x12IU\xcf\xc3\xf7^\x10`W\xec\xdc\ -<\xcc\xdf|\xe3y\x1e\xce]6Q\x9a\xcc\xfcm\x9f\ -\xe5\xaa.:\xd94\x09\xb3\x22[de\xdb\x84@ \ -\xf4\x07\xf2\xc9^>q+\xc8\x1f\xb2\xa4Z,\xaa\xb2\ -\xe9\xba\x96\xcd\xdb\xa1t\x9d\xde\xed\xc4\xdd\x92\xd6\xbc\x93\ -\x02kmHY\xc8X\x80\x12A\xf3T\xb6\xf1c\xf0\ -\xac/\xae\xf3X_F)\x0d\x917\x10}\xa5X\xd4\ - \xb2K\xfc\xb7\x93\xef\x09\xa4\xa9Vu\x92\xdda\xc7\ -\x8c\x94Y\x1b~\xf8\xed\xc3\x8e\x19P\x92\xb6\xe9p\x9c\ -\x1e\xd8\x83y\x0f\xd0.\xe3E\xd6,\xe3$k\xc2\x9e\ -\xbe\x19`\x9d\xa7\xed\xfd\xcc\x17f\xd3\xbc\xcf\xf2\xf9}\ -\xbbo?\xe4\xd9\xfa\xc7\xeaq\xe6S\x8fz\xc2\xe0/\ -\xa1\xee\x81\x0d;Og>\xee\x89m\x85\xf7\x8a\xd3\xf3\ -\xb7sE;\x16%\x96\x11\xf0j\x90\x5co\x85\xfa}\ -Ei\x95\xb8u\xce\xfcy\x9d\xa7\x7f\xd6Y\xbaJZ\ -\xecD\x1cj7Nt\x9afwM\xd7g3\xb5k\ -\x0a\xdf\x0b7\xcc\xdd8n\x90\xd4\xad| z\x1b7\ -\xdb\x1d{\xde2\x9e\xa3\x8e\x14U=\xf3\xdf\xdeuO\ -\xcf\xb9\xad\xea4\xab{\x9e\xea\x9eC^\x85 \xe6\xed\ -\xd3\xc68\xfa\xf1\xfb]\xba\x81w\x02\xf4\x84@s\x1f\ -\xa7\xd5z\xe6\xb3\x11\xf7sU-p`I\x14\x15\xa0\ -\xf4\x88\x9f\xe0901&\xe3d\x8c\x11e\x84dr\ -\xc4EPW\xcer\x82U\x99\xb7\xa8\x99\xcb\xc7\xf1\x00\ -\xab\xbav\x12E\xfc\x94\xe1\xbe\xe7\x5c\x08\xe8\x85\x9a\xfb\ -j\xed\x8ec\xe6\xdf\xc5\xc5\x1e\xc2\xd3\x83\xad\xf3\x12\xb7\ -\x17l\xf5\x0a\x98\xa1\xa7Dz]\xb3\x9a\x9d\x12\xc1\x0d\ -\x07\xe6\x14\xf3\xe9%\xe6\x22~\xcc\x17\xf9\xe7\x0c\x17\x0e\ -;\x0dYdm\x9c\xc6m<\xd0\x8b\x9e\xa47\x1a\x86\ -B\xe8\x00\xa2_>|\xdc6\x91\x90$\xd1\x1fU\xfd\ -\xa9o\xe3\xe3D\xe2\xdbj\x85\x8b\xf7o\xf6\xf4i\x9a\ -Dh\xb2\x8b\xb8\xbd\xc9\x17x\xd2\xce\xdc\xbfC\x0b\x9d\ -\x86{\xc6\xa1t\xfb\xb4\xcc\x06\xe3nF\xae\xb3\x8d\xf5\ -\x1f\xf5\x83i\xb2\xc8]\xaf\xf0\xd76/\x8a\x9f\xdd4\ -\xfd\xf6\x06\xc3\xe6m\x91\x0d\xa8\xd3p\xbb\x87~\x8f\xe1\ -p\x93\xd3\xb0\x07a\xd3\x9c?\x87\xb4\x88o\xb3b\xe6\ -\xff\x14/c\x0fF\x80\xcf\xebj\xb5\x5cT)\xae\xb7\ -S \x7f\x80nG\xd8ui\xeb\xb8l\x1c\x0e3\xbf\ -\xfb\xb3\xc0x\xf1\x8eN\x02\xa0T\x10\xae\x18{\xbf;\ -\x84\xf9nCn\x98\x03\x8d<\x18\x07!\xad\xf3\xc7w\ -\x94\x18\xa5@q\xc9'\xd4\xfd\xec\x9bh\x17Rk\xa3\ -\xed\x04\xb8&\xa0\x19\x87\xf7\xfb\x91\x9a\xf6\xa9\xc0u\xdf\ -!\x94\xd1\xd6\x15|\xdf\xb4u\xf5)\x8b\xde\x8a\xd4\xfd\ -\xf8\x03=\xc8\xeb\xa4\x18\x1eW\xed\xbc\x80\xf4\x07\x14g\ -\x8a@9#8\xcf!\x035\x19\xc9\x0a\xf7a\x86t\ -\xb7\xbbe\xdc\xdes\xceU\x00\x81\x1d\xf2\x8e-\xce5\ -\x82\xad\x8b\x89`\xd3\xacWE\x16e\x0fYY\xa5\xe9\ -n\xf5\xa9pnz\xdb\xdcXc\x04\xcb\xc7\x9eP\xe4\ -e\x86\xa7\x17\xdd\xae\xdavH\xfb\xab\xca\xcb\x085,\ -\xab{\xean\xb2\xa1\x9aM\xdd\x9a\x87\xdb\xd8\xb9\x92\xaa\ -\xc4\x81\xdb\xaa\x0e\xd0\xa9<\xc4\xed\xaa\xc6\x1d\xd0c;\ -\x16LC\xc0\x87\x1cg\x8d\x1e\x82d@\x1a\xc5&\x88\ -#\x10\xa1\x99\xf20\xe0\x19P@\xc5$\xd0\xc4*i\ -^\x85\xd2\xaba\xa1Ds\x8a\x07`\xd9e\xe1#a\ -\x84\x8e\x22T\x1a-\xadDt\x18'\xa0$\xf34a\ -\x8aR%\xe5D\x12\xae\xed\x99\xc1\x81\x7f\x8eH\xd7(\ -\xd0\xfb\xb6\x91\xe8ii\x8ca\xaf\xae\xe3\xa7\xa8\xc4\xc4\ -\xf1\xcbc\xa7\xc6\xd81J\xd0\x13X\xad\x9cf\x19\xa2\ -\x95\x90^ \x89P\xc6p;Q\x841zv\xc52\ -L\x80eZ]\x96b\xa9\xb1\xd91\xd4\x224;\xeb\ -\xccNh\xa2Q\xb3\xbc\x00\x00\xfd\x98\xd4\x1c\xd0E\x13\ -\xa5\xf5\xb9\xd1\xb1\x82K\xc1\xc0\x5c\x16:\x87\x16\xb4A\ -\x07\xdd<\xe5\x929\xd5\x01\x8b\x11\xc5h\xcf`\x22+\ -\x95\xc6\x00\x03Z\xf2\x93\xd0\xd8\xeey\x01\x9a\xad\xc0s\ -\x8f\x84&-\x19\xe5\xff\x09\x9ag\xd1\xe2\x8b8\xf0@\ -\x8d]\xb8%\x12\xf4F\x97\xd0\xd0\x8c\x05\xe1\x05\xe8\xb9\ -4&\xd3l\x82&\xc7@|\x05.\xfc\xd5\xe1\x9e\x1a\ -\xc2A\xea\xe7\xe1\x9e\x09\x22\x85\xb4\xe6d\xbc?[\xac\ -?\xa6B\xf0?\x00\x01\x18\x91\xb8\x1d\x01\x81y\x175\ -TPv2\xf1\xe1W\x07\x05S\x98\xd0\x82z\x0e\x85\ -\xe0\xe8\xf4,f\xa3'\xa1\xb8>\xad\xe0\xceaj>\ -\x82\x82\x12A\x05\x17\xfc$\x14\xfa\xea\xa0p\x91\x95\x9a\ -\xb1\xa70\x88\x90\xd5\xf2\xb4\x81\xc8\xeb\x83B\xe2\x1d\x8d\ -\xc1s(@\x10\x8c\xaa\x14^\xf0\x15\xf2k\xb9#\xbd\ -\xdeB$\x01\x09\xa3\xfb\xa2$\xd4*\xd4\x97\xd3\x17F\ -\xc5\xae\xcfq2\xbc\xc4\xec\x8b\x5c\x03,\x18g\x88\xc7\ -I,\xec\xd5\xa9\x050\xa2\xac\x1a\xc5\x10\xcc\xca\x85\xb0\ -\xc0^\xa8#\x5c_fa\x09\x13\x87Q\xb3s\x9c\x14\ -\xef\xbeRR\xf9BIE_\xa5\x890;./\x01\ -1\xd4\x88\xc3\xf0\xf2\x0c\x0cz}\xd9\x85&F\xb0\x91\ -b\xa0\xac\x06\xa6\xd9\x0bX\x5ca\xd2i\x09\x05y,\ -\xa6\x0a\x90J\xd9\x17\xc0\xf8j\xd2\xce\xb3\x14\xd6\xc6\xf5\ -\x0f\xc0\x00c,e\xc2\x15\xd64\xb1 \xbd\xc4\xa3\x84\ -S\xaaAL\x02\xccU\x19S\x9ep\xa56\x00\xe6\xea\ -\x90\x12\x84\x18\x11\xfe\xfd\xad\xf6x\x19\xc02\x83\xd7g\ -).\x0c?y\xac\xb8f\x94\xc1\xf8\xec*$\x88\x1f\ -Gp8\xc6l\x0cS|\x12`~+\xa8=78\ -\x98?Z\xcc\x15\xf4\x85\x81\xa3\xc7\xca\xe5\xde\x07P\x5c\ -\xed\xa4\x0b\xea\x0c\xad\xd1\x03W\xfe\xd2F\xa0rq\x82\ -\x890\x9c]u\x84\xb2\xa0.\xad\xf4(\xed\x91\x9a6\ -Gm\x91\xd2\xa1\x83\x99\xb0\x90\xd6\x83\xee\x9a\xccQ\xf5\ -'@\xac\xd5\xf6\xfc\xe0\xb8\xd2\x0c\xf0\x0b\xab\xcb\x8e\xc1\ -\xc1\xf0\xa6\x85\xd5\xe0\x0a\xfe\xe8\xc79\xd5\xda\x93\x08\x18\ -\xa3\x02M\x0d\x087Z\x9e\x1d\x1c\x00\xae\xed\xc5\xbd,\ -\x1aa#\x18\x91\x06\x15g\xd2\x95[\xa8\xe6\xc2\x0b,\ -q\xa2\x929\xab\xe2R\x9d\xdd\xaa\xb4\xa5\x02\xa7\xbb\xb0\ -\x92\xb5\x1e;d\xe1\xce\xd1\xdd\xa47EXI\xb5\xf0\ -\xd0\x0dY\xc9\xbbr>zO\xaa\xcc\xd9=2\xa7J\ -\x83\xb6\x17\x86\x8e>\x16\xee\x05(e\xbawA\x94\x80\ -`\x80f\x05\x00\xd4\xe8\x89\x22\xc2\x9c\x1f\x1b-8f\ -\xe7\xf4\x5cf5\x0d\xe7\xbb\x0f\x16\x10\x88\xa3o\xb4\xbb\ -Wm\x07\x89\x1b\x1e\x91\xb0\x98\xa8H\xfe\xe2j91\ -R\x0bDE\x8e\xd6UW\xab2}\xfd\x9b>\xff\xe0\ -=\xbe[\xa9\x80a\xe5\xbb\xff\xfcH\xb83\x90f\xc0\ -\xd9}\x894f\xb9\x9c\xd6\xa5F\x9a\x0e\xbd\xc2\xa6\x16\ -\xaf\x08\xb3\xc3T\xa3\xee\xc8\x04\x8c\xd2r\xff!H\x07\ -\xde\xd4}\x9f\x81\xff\xff\x0d\xebz\x1d\xfd\ -\x00\x00\x10\xc3\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0d\x0a\ - \x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x04c\ -\x00\ -\x00\x0fWx\xda\xe5W\xc1\x8e\xdb6\x10\xbd\x07\xc8?\ -\xb0\xca\xa5E-\x8a\xa4(\x8aR\xec\x0d\xd0.\x82\xe6\ -\x90K\x9b\xb6g\xadD\xdb\xcaJ\xa2A\xd1\xf6:_\ -\x9f\xa1m\xca\xda]m\x9a Er\x88\x0c\xc3\xe2\xcc\ -#9\xf3\xe6q\xb8;\x7fu\xd76h\xa7L_\xeb\ -n\x11PL\x02\xa4\xbaRWu\xb7Z\x04\x7f\xbf{\ -\x1d\xca\x00\xf5\xb6\xe8\xaa\xa2\xd1\x9dZ\x04\x9d\x0e^]\ -=\x7f6\xff)\x0c\xd1\xefF\x15VUh_\xdb5\ -z\xd3\xdd\xf6e\xb1Q\xe8\xe7\xb5\xb5\x9b<\x8a\xf6\xfb\ -=\xae\xcfF\xac\xcd*\xfa\x05\x85!L\x85\xc9\xfdn\ -\xf5\xfc\x19B\x08\xf6\xee\xfa\xbc*\x17\xc1y\xcefk\ -\x9a#\xb6*#\xd5\xa8Vu\xb6\x8f(\xa6Q0\xc2\ -\x97\x17|\xe9\x22\xa8w\xaa\xd4m\xab\xbb\xfe8\xb5\xeb\ -_\x8c\xd1\xa6Z\x0ep\x17\xd2>>\xa2h\x96e\x11\ -a\x11c! \xc2\xfe\xd0\xd9\xe2.|0\x17\xe2\x9c\ -\x9a\xcb\x08!\x11\xf8F\xd0\xcf\x84\xe5=0\xbb\x81\xef\ -\x80\xf7\x06\xdc\xeb\xad)\xd5\x12&*\xdc)\x1b]\xbf\ -\xbb\x1e\x9c!\xc1\x95\xad\xc6\xebxb\xef\xed{\x8f\xed\ -\xaehU\xbf)J\xd5G\xde~Z`Tlz\xb2\ -\xd4\xd5\x22\x808\xd9i\xb4\xaf+\xbb\x06ov\x1e\xaf\ -U\xbdZ\xdb\x91aW\xab\xfdo\xfan\x11\x10D\x10\ -X\xd1\xe0\xf1\xf1\xe6\x95.\xdd\xfe\x8b\xa0lty\x8b\ -\x07\x12|$\xf9\x10\x04\xc1\x19\xc3\x14\x19\x9a\xc4)\x0d\ -\xae\x1cj\xde*[T\x85-\x8eSN\xe1y\x93<\ -A\x00\x04U\xcb\xff\xbc~}\x1e\x82\xa1,\xf3\x7f\xb5\ -\xb9\xf5cx\x1c\xa4\xb8\xd1[\x08>\xb8\xba\xd8\xe7U\ -\x99\x03\xcfma\xaf\xea\xb6X)W\xa3_\x81\xd6y\ -tq\xdcG\xdb\xc3F\x8d\xd6=\xadl\xd4\xa9d\x93\ -\xe2\xad\xca\xb6v\xb3\xa2\xbfl\xdd4o\xdc6\x01\x8a\ -\x1e.[\xdbF\x8d\xac\xf3\xe8\x9c\x83\xcf1\x1a'9\ -\x8f<\x09\xa7a\xa5\x96\xfd\x88!7\x14~\x8f\xf9P\ -\x09W\x86\xcaU\xec\x0c\xdd@$\xa5n\xb4Y\x04/\ -\x96\xc7'8{n\xb4\xa9\x94\xf1>q|\xee\xfb4\ -\xc8\x09\xb2\x02)x\xbb\xbey\xafJku\xa3L\xd1\ -9*(\xf1\xae\x95\x01\x1dM:\xb6u\xa5&=\x83\ -:\x5c\x90\xc3f\xd3\xee~]Tz\xbf\x08\xd8#\xef\ -\xbe\xee\xc0\x13z\x193I\x9e\x82xeg\xe9e\x15\ -`r\xa0\x8c{k\xbf\xd6{\x97\xcf\x22X\x16M\xaf\ -\x1e\xad\xf7A\xeb\xd6\x9d\xa74\x961\xe1\x8fC*\xe1\ -\xb00\xc21K\x99\xe4\x8f\xbd\x90dH\x05f%\x97\xc7\ -\xda\x98\xca\x94\xc2\x05\x10\x0b\x99JB\xbf\xb9J\xde:\ -\x95\xc4\x22\x06\x96O*\x91P\x7f\x94\x00+<\x15\x8c\ -\xce\x84\xc0Y*d2E$\xffR\x99|\x0dA\x22\ -\x86\xaa$\xe2;\x10Dy\x8a9\xa14\x9d\x89\x18'\ -2\x85\xd7\xa9\xa35EP\x98|.E\x0fa\x16.\ -\x87\xde\xdd\xc5a\x09\xddI\x19\xd7\xfe\xa0\x7f\xc6<\xce\ -\xb8\xfco4\xe8\x93K\x1c\xb38\x13\xf4\xab\xe9\x978\ -ai\x96\xc6T~\x0fyf\x98e\x82;u\xc2y\ -cT\x08\xf4\x0fb\x90[\x12g\x8cO4\xafo\xa6\ -\xca\xefH\x0b\xf4v\x01G5\x93 J*\xe0\xef\xd8\ -\x14::\xda!\x9a\xe2\x04^\xc5\x14-!\xfb\x01\x88\ -y\x8b\xe0~\xa3\x5c\xb0\x84\xcd\xe0\x8cJI\xa0i\xa0\ -?\xe0\x0c\x031\x0a \x0a \x0a\x0a\ +\ +\x00\x00\x0b\x1d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ + 192 192\x22\x0a sod\ +ipodi:docname=\x22c\ +opy2right.svg\x22\x0a \ + inkscape:versi\ +on=\x220.92.3 (2405\ +546, 2018-03-11)\ +\x22>\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ \x0a \x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0bY\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0a \x0a\ + \x0a \ + \x0a \ + \x0d\x0a \ - +<\ -/tspan>\x0d\x0a\ -\x0d\x0a\ -\x00\x00\x16h\ +opacity:1\x22 />\x0a \ +\x0a\x0a\ +\x00\x00\x07)\ +\x00\ +\x00&\x15x\xda\xddZ\xdd\x8f\xa3\xc8\x11\x7f\x9f\xbf\x82\ +\xb0/\xbb\x8ai\xba\xfa\xbb\x89='\xe5V'\xddk\ +r\xa7{\x8c\x18`\x10\xea{Y\x99Ti^.\x17\xfe\xaf\xbf\xfc\ +\x14\x18\xdfk\xda\xb8L\xe3\xa2*\xb3\x85_V\xfe\x0f\ +\x8f\x0f\xf3?\x05\x81\xf7c\x9d\xc5m\x96z\xdb\xbc}\ +\xf1~.\xbf5I\xbc\xce\xbc\xcf/m\xbb\x8e\xc2p\ +\xbb\xdd\x92|?I\xaaz\x19~\xf1\x82\xe0\xf1\xe1a\ +\xde\xbc.\x1f<\xcf\xc3\xfb\x96M\x94&\x0b\x7f\xbf`\ +\xbd\xa9\x8b\x8e1M\xc2\xac\xc8VY\xd96!\x10\x08\ +\xfd#{rdO\xdc\xdd\xf3\xd7,\xa9V\xab\xaal\ +\xba\x95e\xf3i\xc0\x5c\xa7\xcf\x07n'\xcd\x96wL\ +`\xad\x0d)\x0b\x19\x0b\x90#h\xde\xcb6~\x0bN\ +\x97\xa2\x8c\x97\x962Ji\x88\xb4#\xe7\xc7\xb8\xa2\x06\ +\x01]\xe3\xdf\x81\xbd\x9f M\xb5\xa9\x93\xec\x19\xd7e\ +\xa4\xcc\xda\xf0\xeb/_\x0f\xc4\x80\x92\xb4M\x07\xdb\xf4\ +x\x9e\xdc\xf5\x04\xe42^e\xcd:N\xb2&\xec\xe7\ +\xbb\xf5\xdb\x1aA?\xa3;SB\x16\xf4\ +\xee\xe8o_\x7f\xda\x8dp\x9c$\xd1oU\xfdm?\ +\xc4\xcb1\xc4O\xd5\x06\x85\xf6\x1f\x0f\xd3\xf34\x89\xd0\ +\x1fWq\xfb\x98\xaf\xf0\xb9:W\xfe3\xfa\xdf<<\ +\x12N\x98\xdb\xf7uv\xdct\xb7m\x9d\xed\x1c\xfbb\ +tK\x93U\xee\x16\x85\x7fo\xf3\xa2\xf8\xd9\xddd\xaf\ +\xd6`\xd3\xbc-\xb2\xe3\xe4<\xdcK\xbf\xd7-\x1c(\ +7\x0f{\xd5\xbb\xd1r\x04b\x11?e\xc5\xc2\xff1\ +^\xc7\x1e\x8c\x11^\xd6\xd5f\xbd\xaaR\x14\xb43\x15\ +\xff\x88g7\xee\x17\xb4u\x5c6N\xf9\x85\xdf\xfd[\ +`\xe4\xffLg\x01P*\x08W\x8c}\xe9Q_\xf6\ +j\xb8=\x86vw\xb2\x09\x82X\xe7o\x9f)1J\ +\x81\xe2\x92\xcf\xa8\xfb9\x0e\xd1\xf4\xa5\xd6F\xdb\x19p\ +M@3\x0e_\x0e\x1b5\xed{\x81\x12?#z\xd1\ +\xde\xcb\xff\xd2\xb4u\xf5-\x8b>\x89\xd4\xfd\xf8\xc7\xa7\ +\x9e\xd7I1x>\xb5sp\xe9\x1f'\x9c\xa7\x01\xe5\ +\x8c\xe0=N\xe6\xd1\x5cqV\xa1\x06f0\xed\xd4Z\ +\xc7\xed\x0b\xe7\x5c\x05\x10\xd8\x01\xe9\x92Xn\x10\xecC\ +G\x04\xbba\xbd)\xb2({\xcd\xca*M\x0fr\xa7\ +\xc2\x85\xdc\xfdp\xe7n\x11\xac\xdf\xfa\x89\x22/3|\ +b\xd1\xd3\xa6m\x87s\xff\xac\xf22Bs\xca\xea~\ +\xf6p\xb3\x81M\xcd\x9d\xc4\x03\x1d\x0ea\xa2*q\xdb\ +\xb6\xaa\x03\x0c\x18\xafq\xbb\xa9Q~zA[\xc14\ +\x04|@p\x0e\xe7!<\x06\xa4Ql\x86\x00\x02\x11\ +\x9a)\x0f\x93\x96\x01\x05T\xcc\x02M\xac\x92\xe6#\x00\ +}\x18\x11J4\xa7\x08\xbde7\x04\x8d\x8410\x8a\ +Pi\xb4\xb4\x12\x81a\x9c\x80\x92\xcc\xd3\x84)J\x95\ +\x943I\xb8\xb6\xd7\xc5\x05\xfe}0\xbaA\x81\x81\xb5\ +\x8dD?\x97\xc6\x98\xc5\xea:~\x8fJ\xac\xf6\xfe\xc7\ +\xb0\xa93\xd8\x18%\xe8\xf4V+gO\x86h%\xa4\ +\x17H\x22\x941\xdc\xce\x14a\x8c^\xdb\x9c\x0c\x13`\ +\x99V7dN\xea\xcc\xcf\x18\xda\x0e\xfa\x99u~&\ +4\xd1hO^\x00\x80\x11Kj\x0e\x18\x85\x89\xd2\xfa\ +\xca\xc0X\xc1\xa5``n\x08\x98\x13\x9f\xd9\x01\x83\xa1\ +\x9cr\xc9\x9c\xc1\x80\xc5\x94a\xb4g\xb0\xfe\x94Jc\ +\x06\x01-\xf9\x14*\xb6\xbb\xbe\x83\xca\x9ea\x1c}\xd0\ +\x85%\xa3\xfc\xbfBe\x94\x14\xae\x1f\xa7\x03u\x16\xa9\ +-\x91\xa0w\x16\x84\x9ee,\x08/\xc0(\xa5\xb1\x0a\ +f3\xf41\x06\xe2\xe6#\xf5\x07S95\x84\x83\xd4\ +\xa3T\xce\x04\x91BZ3\x95\xcb\xaf\x95\xc7/\xd9\x0d\ +\xfc\xbf!\x00\xcc9\xdc\x8e!\xc0B\x8a\x1a*(\x9b\ +*g\xf8]\x81\xc0\x14V\xa6\xa0F \x08\x8e\xa1\xcd\ +ba9\x05\xc2}Y\x02wQQ\xf31\x08\x94\x08\ +*\xb8\xe0S \xe8\xbb\x02\xc1\xe5Lj\xce\x22\x82A\ +h\xac\x96\x93\xee \xef\x0b\x04\x89\xa7+\x06#\x10@\ +\x10\xcc\x96\x14\xa6c\x82\xfcc\x9cp>\xea\x0f\x92\x80\ +\x84\xf19O\x12j\x15\x9a\xc8\xe4AO\xb1\xfb\x0a\x8d\ +\x0c\x8f \x87\xa6\xd3\x00\x05\xc6\x19\x221\x85\x82\xbd+\ +S\x00<\xdc[5\xce\x0fXV\x0ba\x81M\x9f\xf9\ +\xef\xabR\xb0\x84\x89\x93d\xd8\x85F\x8a\x87U)\xa9\ +\x9cn|\xe8\xbbs\x08f\xcf\xda?@\x0c5\xe2$\ +s\x8c`\xa0\xf7U-hb\x04\x1b\x1b\x03rj`\ +\x9aM\xa3pg\x85\xa3%\x14\xe4\x85L)@*e\ +\xa7a\xf8\x83\x94\x8eW\xe8x\x9d\xb5(\x00\x93\x87\xb1\ +\x94\x09\xd7\xf1\xd2\xc4\x82\xf4\x12\x8f\x12N\xa9\x061\x0b\ +\xb0\xdedLy\xc2\xf5\xc0\x00\x98\xeb\x0dJ\x10\xe2l\ +\xe2?>\x82^>\xae[f\xf0\xa8+\xc5-A'\ +/t\xbd\x8c2\x98v]\x13\x03\xa1\xe3\x88\x0b\xc7T\ +\x8c9\x88\xcf\x02,R\x05\xb5W\xc6\x05\x0bA\x8b\x05\ +\x80\xbe%\x5c\xf4\x99I\xb9\x96\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \ +\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ - \x0a \x0d\x0a \ - \x0a \ + \x0a \x0a \x0a \ +\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ -tyle=\x22fill:none;\ -fill-rule:evenod\ -d;stroke:#00d4aa\ -;stroke-width:1.\ -55563581;stroke-\ -linecap:round;st\ -roke-linejoin:be\ -vel;stroke-miter\ -limit:4;stroke-d\ -asharray:none;st\ -roke-opacity:1;p\ -aint-order:fill \ -markers stroke\x22\x0d\ -\x0a d=\x22M 8\ -.0626459,39.4611\ -31 C 29.913216,4\ -0.812005 30.0199\ -45,8.7555352 41.\ -292019,7.9098146\ -\x22\x0d\x0a id=\x22\ -path825-6\x22\x0d\x0a \ - inkscape:co\ -nnector-curvatur\ -e=\x220\x22\x0d\x0a \ -sodipodi:nodetyp\ -es=\x22cc\x22 />\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x09\x22\ +ure=\x220\x22\x0a s\ +odipodi:nodetype\ +s=\x22ccc\x22 />\x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22 />\x0a \x0a \ + \x0a\x0a\ +\x00\x00\x04]\ +\x00\ +\x00\x0e\xf6x\xda\xddW\xdfo\xdb6\x10~\xcf_\xc1\ +\xa9/\x1bfQ$EQ\x94j\xbb\xc0V\x14\xebC\ +_\xb6n{V$\xdaV#\x89\x06E\xdbq\xff\xfa\ +\x1em\xfd\xb0\x13ek\x11 \x05\xaa \x80\xee\xee#\ +y\xf7\xdd\xc7S2\x7fs_Wh\xafL[\xeaf\ +\xe1QL<\xa4\x9a\x5c\x17e\xb3^x\x7f\x7f|\xe7\ +K\x0f\xb56k\x8a\xac\xd2\x8dZx\x8d\xf6\xde,o\ +\xe6?\xf9>\xfa\xdd\xa8\xcc\xaa\x02\x1dJ\xbbA\xef\x9b\ +\xbb6\xcf\xb6\x0a\xfd\xbc\xb1v\x9b\x06\xc1\xe1p\xc0e\ +\xe7\xc4\xda\xac\x83_\x90\xef/on\xe6\xed~}\x83\ +\x10\x82s\x9b6-\xf2\x85\xd7-\xd8\xeeLu\x02\x16\ +y\xa0*U\xab\xc6\xb6\x01\xc54\xf0Fx>\xc2s\ +wz\xb9W\xb9\xaek\xdd\xb4\xa7\x95M\xfb\xea\x02l\ +\x8a\xd5\x80v\xd9\x1c\xc2\x13\x88&I\x12\x10\x160\xe6\ +\x03\xc2o\x8f\x8d\xcd\xee\xfd\xeb\xa5\x90\xe3\xd4RF\x08\ +\x09 6\x22\xbf\x0e\x95\xb6@\xe8\x16~\x07x\xef\xc0\ +\xad\xde\x99\x5c\xad`\x9d\xc2\x8d\xb2\xc1\xdb\x8fo\x87\xa0\ +Opa\x8b\x8bmz>\xafN\xbd\x22\xb9\xc9j\xd5\ +n\xb3\x5c\xb5A\xef?\xad\xbf\xe80=9\xcab\xe1\ +A\x8e\xecd\x1c\xca\xc2n \x96\x9c\xcd\x8d*\xd7\x1b\ +;\xda\xfbR\x1d~\xd3\xf7\x0b\x8f \x82\xc0\x89\xfa@\ +\x9fhZ\xe8\xdc\x9d\xbc\xf0\xf2J\xe7w\xb8/\xbeO\ +!\x1d\x8e'8a\x98\x22C\xa30\xa6\xde\x12@\xf3\ +Z\xd9\xac\xc8l\xe6\x16\x9c\xf3\xea=\xf2\x04\x00\x08\xf4\ +)\xfd\xf3\xed\xbb\xb3\x05v\x9e\xa7\xffjs\xd7\x99\xf0\ +8@v\xabw\x90\xb4\xb7\x1c\xdc\xf3\x22O\x81\xd9:\ +\xb3\xcb\xb2\xce\xd6\xca5\xe5W`r\x1e\x8c\x81+\xb0\ +=n\xd5\xb8\xe9y[\xa3\xce-\x9a\xd4i\x91\xd7\xa5\ +[\x14\xfce\xcb\xaaz\xef\x0e\xf1P\xf0`\xd3\xd2V\ +jt\xce\x83.\xfb\xae\xb6\xe0\xa2\xb8y\xd0\x97~\xb2\ +\x0a\xb5jGV\x9c%\xba\xdd\xe7\x03\xf3\x8e\xf6\xc25\ +\xe8\x0c\xdcB\x06\xb9\xae\xb4Yx\xafV\xa7\xc7;\x07\ +n\xb5)\x94\xe9C\xe2\xf4\x5c\x854\xa8\x06j\x81\xae\ +wn}\xfbI\xe5\xd6\xeaJ\x99\xacq\xf5S\xd2E\ +\xd6\x06\xf42\xe5\xdf\x95\x85\x9a\x0a\x0c:p\xe9\x0d\x07\ +MF\xdbMV\xe8\xc3\xc2c\x0f\x83\x87\xb2\x81\x80\xdf\ +K\x95I\xf2\x04\xa2Wo\x12\x0f{\x00{\x03O\xbc\ +s\xb6\x1b}p\x85,\xbcUV\xb5\xea\xe1f\x9f\xb5\ +\xae\xddm\x89C\x19\x12\xfe(\x9b\x1cn\x03#\x1c\xb3\ +\x98I\xfe(\x08\xc5\xf9T`\xc6C\x16\xcb'\xd2\x84\ +\x0d\xfc\xa7b\xc7\xff\x88\xd5\xd9}Y\x97\x9fU1v\ +j\xb3;\xa3\x9c\x0e;\x8eTU\x95\xdbVM\xd2t\ +\xc9\x8e{\x1b\x13\x1d\xc8J\xa4\xfb\xb9&\x8b\x11\xccY\ +\xc2dD\xa2\xe7s1V&\xfb\xca\x9c\x0e\x13\x81\xa3\ +\xde\x04\xe5$\x11\xe6\xf0\x89\x1b\x8a7\x00\x91\x1c\xc72\ +\x0a\xa3\x1eg\x8e\x83O<-\x91\xc7z\x98*\x91\xc2\ +@\x0f\x85\x8c%\xa1/\xad\x8c\x0fN\x19\xa1\x08\x81\xdd\ +\xb32$4\x1dE\xc0\x07\x8f\x05\xa33!p\x12\x0b\ +\x19M\x10\xc8\xbfM\x1a\xcf\xe0F\x84\xd0\x8cH\xbc<\ +7\x94\xc7\x98\x13J\xe3\x99\x08q$cx\x9d\xbaI\ +\x13\xdc\xf8\xd1W\xb2\xf3\x00ea\xf0\xb7\xee\xc3\xea\xe7\ +0\x86\x94qC\x0efd\xc8\xc3\x84\xcb\xff\x05\x83&\ +\xb9\xc4!\x0b\x13A\x9f\xc9\xbb\xc4\x11\x8b\x938\xa4\xf2\ +;H2\xc1,\x11\xdc)\x12.\x18\xa3B\xa0\x7f\x10\ +\x83\xc2\xa20a\xfc\xf1\x90z\x19%~?F`|\ +\x0b\xb8\x99\x89\x04!R\x01\x7f\x7f\xc60\xb4\xd1\x1e\xd1\ +\x18G\xf0*&\x18\xf1\xd9\x0f\xce\xc9\x07\x04_/\xca\ +\x05\x8b\xd8\x0c\xae\xa4\x94\x04F\x04\xfa\x03\xae,p\xc2\ +#\xc2\xa6H\xe1?<)0\x98p$D,fp\ +\x89\x04\x11\x92\x86\x8e\x14\xc10\xd0\xf3\x04)~\xf8\x0d\ +\xb4\xcc\xdd\xbf\x00\xcb\x9b/\xdf\xef\x96$\ +\x00\x00\x07\xec\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x06\xc8\ -\x00\ -\x00\x19\x04x\xda\xedXmo\xe36\x12\xfe^`\xff\ -\x83\xa0\xfd\xb2\xc1Y\x14\xdf_\xb4\xf6\x16wX\x14-\ -\xd0~\xe9\xeb]\xbf\x14\x8aD;jd\xd1\x90\xe48\ -\xd9_\x7fC\xd9\xb2%[\xdeM\x91-\x168\x9c\x82\ -$\xd2\xcc\x90\x1c>\xf3\x0c9\xe4\xfc\xeb\xc7u\x19<\ -\xd8\xba)\x5c\xb5\x08\x09\xc2a`\xab\xcc\xe5E\xb5Z\ -\x84\xbf\xfc\xfcM\xa4\xc3\xa0i\xd3*OKW\xd9E\ -X\xb9\xf0\xebw\xaf\xbe\x9a7\x0f\xabW_\x05A\x00\ -\xcd\xab&\xc9\xb3Ex\xd7\xb6\x9b$\x8e7\xdb\xbaD\ -\xae^\xc5y\x16\xdb\xd2\xaem\xd561A$\x0e\x07\ -\xf6\xd9\xc9>\xabm\xda\x16\x0f6s\xeb\xb5\xab\x9a\xae\ -i\xd5\xbc\x1eZ\xd7\xf9\xf2h\xbe\xdb\xed\xd0\x8euV\ -\xc4\x18\x13c\x1aS\x1a\x81E\xd4\xef\xb6hK;\x90\xce\ -\xe3\xc3\x1c\xfa9\xc6\xc3I\xce\xe3\x1e\x85\xfdgn\x97\ -\xcd\x00\x22\xffI\xf0\x11\x9euZ\xdf\xdb\xfa8\xde1\ -@M\xeb\xb2{o\xff\xcf\xbav;\xf2=dh\xdd\ -\x86G;W\x17\x90v\x8b0\xdd\xb6\xee$\xad\xed\xf2\ -?>\xa4x$\xfa\xf7\x99\xe8z\xafM\xfbT\x02N\ -\x0e\xd8\xb1,\xdd.y(\x9a\xe2\xb6\xb4\xe1\xa5{E\ -\xd39\xb8\x08\xdbzkOA\x9bo\xd2\xf6n\x10\x01\ -?\x94\x17qat8\x90\x83\xf8\x87\x00\x9c\x9a\xc1o\ -\xf0} \xe0-\x12\xddkD(\x12\x03\xf1^\xda\x9b\ -~\x08\x86\xbd\x1c\xdc]B\xe4\xa2z[\xda\xc4>\xd8\ -\xca\xe5\xf9\xdb\xa6\xad\xdd\xbdM^\xe3\xee9|F]\ -N%\xb0\x00n\xdaa/m\x9dV\x8d\xa7\x13\xa4N\ -\x96\x96\xf6\x0dF\xfaf/-\xd3\xd6\xbe\xd9;ts\ -\xa2\x05\x04\xb8\x0b\xda!\xda>\xa0\xfb\xd7c\xd6\xf8\x94\ -\xc9}\x8e\x1e\x86\xd9\x00\xad2W\xbaz\x11\xbe^v\ -O\xef\xc0\xad\xabs[\xf7:\xd9=c\x9d\x83\xe5\x01\ -(\x0aI\xdc\xcb\xdd\xed\x9f6k[WZ\xf0\xd1\xf3\ -\x9a\x1c\x83\xbb\xaaa\x8e\x93\x8am\x91\xdbI\xcd1\xa4\ -\xde\xc9\xe3`\xd3\xea\xe6.\xcd\xddn\x11\xd2\x0b\xed\xae\ -\xa8@\x13\x1d\x96-\xa2%\xbbf\xd2/e\x04S\x11\ -\x0e\xf2\xe2\x88\xd9\x91(\xcd\x9d\xdb\xf9\x09A\x84\xd3\xb2\ -\xb1\x17\x1d~p\x0eb&\x91\x92\x98\x13\xa9.\xf4\x19\ -\xac\x8f\x11\x04O\x12\xca\x14\xbfT\xc34\x19\xb0A\x1b\ -F\xe55o\xa1\x0b\xa1\xae)\xa1\x03zU\xb9N\x1f\ -\x8bu\xf1\xc1\xe6\x83\xc8\x9d\xc6\xde\xd65\xe4oT\xa6\ -O\x16\x02\xbf\xe2\x92\x88\x9e`\xf3\xd5\x00\x95\x15'\xe2\ -\xb4X\xacF9\xbc\xe2\x82\xf3\xe7\xe4\x1e\xc3\x97\xb97\ -\xc3\xc1\xb7~\xe7\xf8\xd5\xff\xf9\x16v\x91\xdf\x876'\ -G]U\x01\xd9\x5c\x1d\x81\xcb\x0fi\xbb\xad\xed\x80\x1c\ -gI\x98TP@\x0c\x97\xcf\x81\xc3\x07\x97\x0d&W\ -r\x0fV\xf3\xbax|\x03\x01Q\xccP\xc3g\xe0\xe2\ -\xec\xf4\xa5\x08RF(.f\xd4 \x88\xb6a\xeaf\ -\xb4Y\x9c\xcd\xfe/\xcda\x00\x16Qd\xac\xf1\xbbZ\ -\x10\x09\x86\x14\xd6\x5c\xea\x19\x87\x17E\x84\x14\x01\xc1H\ -1\x0c_\xb3H#\xce4%F\x8e\xdb\x0e\xb1ym\ -\xa5\xffy{}\xb5\xa2\x99H\xd3\xb3\xd5\x8a\xc2\xac\x19\ -WF\xd1^^\x160\x99t\x93\xdcn\xdbv(\xfb\ -\xd3\x15U\x02\x9b\x99\xad{\xe9!\x99\x13\xd2\x0b:m\ -\x09\xacl\x13\xde\xcb\xf2\x14\x92\xba\xae\xd3\xa7\x8b\xe0}\ -NL\xd9$\xa6\x1cQ\xce\x85\x94\xb3\x88pd\x14\xe3\ -F\x04\x061\xa1\x096\xb3\xee\x05\x1bM\xff\x0f\xe9$\ -\xa4b\x0aRX\xcf\xb4\xc2T\x02%\x89B\x82r\x8a\ -U\x10\x19$\x8c\x12\x9a\xce\x80\xb1\x86ASC\xfe.\ -P\xa5\xfe\xeb\xa0~\x1a\xc3\x0b\xf8\xcf\xdc?\xee\xbb\x0e\ -69\xa8\xe6\xa0\xd2\xcf\xb2O\x01\x7f\xa5\xd5g\x09\x8e\ -\x9a\x0a\x0e\x07\x904\x95\x8c\xcf\x22\x868\x96\xc0n\x1e\ -@u\xa1\x04\xc4D\xce\xba\xe5\x84\x9a\xff-\xba\xdb\xb2\ -,6\xcdYQ\xee7^\x84\x81\x93T\x9e\x01U?\ -z\x15\x11L+zFp\xbf]KD\x09(\xe9Y\ -\xfc\xbb\x8d^\x08\xc4(\xc5L]\x0b\x0a\x93\x91\x8c\xd8\ -$\xbc\xa7y\xee\x81\x16\xf0,\x97{\xa0\xc7\xbaI\xdc\ -\x87\x14=\x82\xae\x89\xa1L\xb0\x0b\x80k\xb7\xad\xf2\x97\ -P\xffy\x00SXP\xb9&l\x12`,\x81\x85R\ -^\x02\xac\x107LR!'\x00\x86}\x17\xfa\x93\x8c\ -|\x04`\xf2\ -B\xdfg\x81\xcbTz\x9b\xe9\x17\x81\xcb\xb5\x81\xec\x93\ -\xea\xcb\x81\xab1 \xc8\xf4\x14\xb8\x86\x0a\x82\xc9\x04\xb8\ -\xd0J\x0b\xa1'\xc1\xe50)\x81\x05\xff\x18w\xf1\xb3\ -\xe0\xa5\xa9Z\xbe\x90\xbb\x8c0\xa3\xb5\xa1\x7f+\xbc\xf3\ -xu\xbc\x0eX]\x9e\xcf\x06\x07\x9b\xc1M\x02\xc2X\ -*\xaa\xd9,\xa2\x02\xd0T\xd4\x98\x9b\xf0\xecLG\xe0\ -Lw\xbaj8?\xf1\xc9\xe1\xb229\x08F\x82P\ -\x0eg\xa6\xc1\xf1h^C\xed2\xbcp\xf3\xd7\x09H\ -b\x0c\xf5\xc6(\x8f<9\xa0n\x84\x93\xce8O:\ -f(\xc6\x98\x18\x89\xfb\xb3\xbc\x84\xc9`\x055\xc6P\ -y\xb8\x0b`\xc6\xf7\xc7\xc8\x88\x1a~2\xde'.\xc6\ -t\x1a\x95;\x18\xd3[\x9a\x0d.s\x06\x9f\x87`\xfb\ -zVh\x81\xe5Eq3\x8a\xf5gc\xc0\xdbMZ\ -\xc0\xb1\xbd\xbb\x98I\xf6\xb7@M\xe0\xbd\x0d\xf6\x96g\ -\xbc\x1d\x11f2\x06P\x03BE>\x15\x03\x8da\x8f\ -;\x8b\x01G\x18\x8eF\x14\x8b\xe9 (&\x8dTr\ -\x22\x08\xb0wS\xc2\xd9\xf8l;\x0c\xc2\xb80\x1a\x85\ -\xe1\x90\x91W\x13\x0e\xcaV#)\x17J|\x81\x18T\ -\xfe\x1a\xb8\x1c\xde\xcd\xad\x0e\xd7r\xfe\xff\xdc_\x19\xc3\ -\xff\xff\x02\xee\x1b\xf6m\ -\x00\x00\x05.\ -\x00\ -\x00\x11\x9dx\xda\xd5X\xddo\xdbF\x0c\x7f/\xd0\xff\ -\xe1\xa0\xbe\xb4\x98u\xba\xef\x0f\xd5N\x81\xa1(\xb6\x87\ -\xbdl\xdd\x06\xeceP\xa4\xb3\xadF\x96\x0cI\x8e\xe3\ -\xfc\xf5\xe3I\x96\xac8\x0eP\xa4E\x83)\x09\xec#\ -yG\xf2w$Ef\xfe\xe1nS\xa0[W7y\ -U.\x02\x8aI\x80\x5c\x99VY^\xae\x16\xc1\x9f\x9f\ -?\x85&@M\x9b\x94YRT\xa5[\x04e\x15|\ -\xb8z\xfdj\xde\xdc\xae^\xbfB\x08\xc1\xf6\xb2\x89\xb3\ -t\x11\xac\xdbv\x1bG\xd1vW\x17\xb8\xaaWQ\x96\ -F\xaep\x1bW\xb6MD1\x8d\x82\x89|z\x92O\ -k\x97\xb4\xf9\xadK\xab\xcd\xa6*\x9bnk\xd9\xbc\x99\ -J\xd7\xd9r\x14\xdf\xef\xf7x\xcf;)j\xad\x8d\x08\ -\x8b\x18\x0bA\x22l\x0ee\x9b\xdc\x85g{\xc1\xceK\ -{\x19!$\x02\xdeD\xf4+\xc5\xe2\x06\xc0\xd9\xc2\xdf\ -(?\x10pS\xed\xea\xd4-a\xa3\xc3\xa5k\xa3\x8f\ -\x9f?\x8e\xcc\x90\xe0\xac\xcd\xa6\xe7\xe4\xe5M\x93&[\ -\xf7@\xef@\xecaH6\xae\xd9&\xa9k\xa2\x81\xde\ -\x1f0\xac\xe2\xe9\xc5\xa1\xb7\x82p\x99\x88\xe5\xb5\xb03\ -\xc4\x08#!\x91!\xa1\xef\xfa=\x83!qV\xa5\xfe\ -\xe0E\xd0V\xff\xde6)\x1e\xdd\xcb\xb3E\x00\x0b\xd5\ -\xaf&G\xd3#%w\xfb\x9f\xab\xbbE@\x10A\xc2\ -\xc0oO_\xbb|\xb5n\x17\xc1\xb0\xde\xe7Y\xbb\xee\ -\x96W~=\xef\x03\x05\xa1\xb6N\xca\x06\xd0\xd9,\x82\ -M\xd2\xd6\xf9\xdd[2\x03X4'\xc2\x18:\x9b|\ -\x9bYL\x89\xa4\x9c\xcd\x04\xc5\x9a\x0a\xaa\xd4\xd1\x8b\xde\ -\xca\x95e\xac?\x1c\x8e\xdf&\xed\xfa\xc8\x03/\xdbC\ -\x01\xae-\xf3\xa2\x88K\x08\xd8\xf7M[W7.~\ -\x938\xffs\x5c\x86\x9d\x891\xc3DJ6\xd0\x8a\xbc\ -t\x00j\x5cW\xbb2\x9b\x12\xbfTy\xf9\x90\xba\xc9\ -[W\x179|\xc4b\xa0eI\xb3N\xea:9L\ -\xf5\x86\x15\x5c_\xde\x1eb\x1a\x8c&\x82\xfd\x1bD5\ -\xd6\xc4p\xaeg\x8c`\x01\x17g,\x22\x98(\x0e\xee\ -S\x8393\x8c1D9\x86\x00\xe4T\xcfB\x83\xad\ -\xd1D\xa2\xfb\xd3A\x1e\x09\xef\xbc\xe1\xe2D\x1c\xaf\xb9\ -\xac2\xd7\x1e\xb6\x0e\xe2:\x85'@\xd1\xb7\x03F\xb1\ -\xb5\xca\x98\x17A\x8c\xc3mi\xa1- F\xb1\xb2\x82\ -\x0b\x85 z\x083Z\xcc\xa8\xc2J\x12*.\x81\xa3\ -\xbe\x9b\xebL\x88\x17p\xfd7\x1f,\x841n\xed\x8c\ -\x83\xc3\x92\xc0% \x86\x95\xe2\x942\xd6\xd1\xa86\xd4\ -\x5ct>\xe4\xe1\x93\x00\x9c\x89\x85\xfaL/\xb7\xa0\x0d\ -\x94\x81^,\x8c2\x8a\x18d\xb0\x16\xd6p-=\x0d\ -BX\x13\x16<;\xfb\x88U\xfc\x07!\xfa}b\xc0\ -\x18\xc5\xd9\xcb\xc4\x80\xc2\x8c\x11:\x13\xd8\x0a\xca\x8d\xd6\ -\x10\x01R3\xc5\xe5\x8cYl\x89\xd0R\x04O\xdfl\ -(\xbf:\x08B\x19\xf2\xf3@\xe0\x18t\xc2\xdb\x05\xd4\ -\x1b\x06\xb7\x0f\xea\x85\xc2\xda\xc8N\xbb\xb6T\x0b\x1e|\ -\x0b\xa8\xf4e\xc3\xe0\x1c\x04y\x06\xc0#g}9\x12\ -L1\xca;\x9a4R=\x1f\x00_Y~|\x1e\xd4\ -.mG\x8b'\xef\xe6\xbaj\x93\xd6\xbd\xb5\xe4\xdd\xc9\ -\xa1\xc3\x22\x08%$,\x93BL\xc2\x0cz\x81P`\ -&\x15S\xd6\x9e\xc8CC \x05\xa0F\x94\x9c\xc4\xf2\ -\xb17\x90]\xcdb\xe4\xacfy\x93\xac\x11\xcf.(\ -\x9ak\xfbcp|\xbfM\xf2\xb2\x0d\xab:su\xbc\ -I\xea\x1b\xe8\x96P/\x84\xbc\xb5_\x13h\xea,\xc8\ -\x18d\x99\x844\x96\xb3\x90\x12l\xb9\x85\xc4\xe8\x88\x0c\ -P\xf4\xf5\x96\xf9^\x80\xca\xe7'\x9a\xa6\xd6\xfc\xbf\xea\ --\x85+}\x91v\x83\xc1\x0b\x96\x13\xc2\xc4\x0cr\xdf\ -r\x9f\xe1]\xbbaDW\x05\x15tc\x8c^.\xb8\ -*d\x83\xfb\xf3h\xd5\x7fn\x5c\x9bdI\x9bL\x9a\ -\xd8\x81DO\xad,\x8c1\xf1\xef\x1f?]\x0d\xc7\xce\ -\xd34\xfe\xbb\xaaoF5\x08y\x91\xe4\xba\xdaAz\ -\x05W'\xfa\xca\xa3\ -\x7fz\xb5s\x9f\xbd\xf0\xf9\x1fY\xc0+7\ -\x00\x00\x0bb\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ - \x0a \x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x05\xf8\ -\x00\ -\x00\x15\xc9x\xda\xedXmo\xdb6\x10\xfe^\xa0\xff\ -AP\xbe4\x98%\xf1U\x22U;\xc5\x86\xa2\xe8\x80\ -\xf6\xcb\xd6\xbd~c$\xdaQ#\x8b\x06%\xc7I\x7f\ -\xfd\x8e\xb2%\xcb\xb6\xdceH\x8b\xa2\xc0\xd4\xa41\xef\ -\x8e\xe4\xdds\xcf\x1d)O_\xdd/K\xefN\xdb\xba\ -0\xd5\xcc\xc7!\xf2=]e&/\xaa\xc5\xcc\xff\xed\ -\xc3\x9b@\xf8^\xdd\xa8*W\xa5\xa9\xf4\xcc\xaf\x8c\xff\ -\xea\xea\xf9\xb3i}\xb7x\xfe\xcc\xf3\xbcM\x9177\ -3\x9f\x09\xbf\x1d\xde\xe8bq\xd3\xec\xc7w\x85\xde\xfc\ -d\xeeg>\xf2\x90\xc7\x84\xd7\xc9\x8b|\xe6\xc3\x12d\ -g\xb5\xdf\x1f\xef\xf4\xd5m\x9d\xa9\x95N\x87\xaa\x90x\ -/\x90B(\x9bsJ\xe5\xc4#\x88\x90\x00\xc1\x0f\xbb\ -\xdc\xce\xaa\xc1\xef\x15\xfc\xa6\xb9\xc9*\xb5\x04w\xf3\xcc\ -\xac\xe6!\xec\xb45\x80`\xab:\xed\x16\x9f\xf97M\ -\xb3J\xa3h\xb3\xd9\x84\x9d04v\x11\xb9\xc9\xf5J\ -e\xba\x8e:\xf9p\x81n\x9f~\x81N\x10\xd6fm\ -3=\x875tX\xe9&z\xfd\xe1u\xaf\x0cP\x98\ -7\xf9`\x9d\x83\xfd7\xb4\xdd\x99 \x84\xa2#\x7fa\ -\xf8XS\x9b\xcf\xc7L\xb1\x942B$\x02\xbc\xc0\x22\ -\xa8\x1f\xaaF\xdd\x07U}1\x9c\x9be\xfd\xd4\xccj\ -\xd5\x14w:3\xcb\xa5\xa9\xea-&\x87\xd6\xf9\xdez\ -\xb5\xb6ek\x92g\x91.\xf5RWM\x1dA\xbe\x22\ -\xff\xcaM\x98.u\xa3r\xd5\xa8v\xf66\xf7\x9d\x08\ -\x93\xad\x0dX\x81c\xe9/\xaf\xdf\xec\x86 \xc8\xb2\xf4\ -\x0fco\xbb1<\xceD]\x9b5\x10\xcc\xbf\xda\xcb\ -\xa7y\x96\x02\xe4K\xd5\x5c\x15K\xb5\xd0\x0e\x94\x1f\xc0\ -\xcbi\xb4W\x1cZ7\x0f+=Xw\xbb\xb2\xd5\xdb\ -\xec\x8d\xc6\x95g\xcb\xc2\xcd\x8a~m\x8a\xb2\xfc\xd9m\ -\xe3{\xd1\xde\xd9h\xe7m\x17M4\x0cg\x1au\xf1\ -n\x87\xb9\x9e\xd7\x030\xdc\x10\xa3\x1e\x88\xa5\xb2\xb7\xda\ -\xf6\xee\xf5\xa5P7&\xbbu\xf6?Zk6\xf8\x1d\ -\x94\xa5m\xfc\xde\xce\xd8\x02\x80\x9f\xf9j\xdd\x98\xbd\xd4\ -\xea\xf9_P}P\xd7C\xd1\x9fG\xa2\xf3\xab\xd6\xcd\ -C\x09\x88\x18\xa8\xc3yi6\xe9]Q\x17\xd7\xa5\xf6\ -O\xdd+\xea\xd6\xc1\x99\xdf\xd8\xb5\xde\xa7g\xbaR\xcd\ -\xcd\x00k\xb7\x95\x131.\x85?\x90\x83\xf8\xbd\x07N\ -M\xe0\xd7{\xe7q\xf8\x14\xf0\xf6c\x80I\xc8\x07\xe2\ -\xad\xb43\xfd\xe4\x0dW\xd9\xb9;\x87\x1c\x05v]\xea\ -T\xdf\xe9\xca\xe4\xf9\xcb\xba\xb1\xe6V\xa7\x17\xa8}v\ -\xc3\xa0\xed^)t\xbdU3\x5c\xa5\xb1\xaa\xaa\x1dq\ -\xa0Ie\xaa\xd4/P(.\xb7\xd2R5\xfa\xc5\xd6\ -\xa1\xcb=\x01 \xc1m\xd2v\xd9v\x09\xdd~\xec;\ -\x92\xeb(\xb9\xeb\x86\xbbmV@\xa0\xcc\x94\xc6\xce\xfc\ -\x8by\xfbt\x0e\x5c\x1b\x9bk\xdb\xe9\xe2\xf69\xd4\x19\ -\xe8L@F\xe8\x89\x9d\xdc\x5c\x7f\xd4Y\xd3\x98R\x83\ -\x8f\x8e\xc1\xb8O\xee\xc2B\x8c\xa3\x8au\x91\xebQM\ -\x9fR\xe7d\xbf\xd9\xb8\xba\xbeQ\xb9\xd9\xcc|r\xa2\ -\xdd\x14\x15h\x82\xdd\x01A8\xe2\xe7L\xbaC\x03#\ -\xdcG\xeah\xd2c\xd6\x13\xa5\xbe1\x1b\x17\x10dX\ -\x95\xb5>Y\xf0\x931\x903H\x0f\x92\x8c%\xa7>\ -ep\x12a\x19R\x96\xc4bD\x0bQ\x12\x1c&\x22\ -\x16\x98\x9es\x16V\xe0g#q\x0b$\xe7\x94Ku\ -_,\x8bO:\x1f$n\xbf\xf7\xdaZ(\xdf\xa0T\ -\x0f\x1a\xf2\xbe\x90\x08\x8f\xe2\x9d\xdd\xe8\x0c\x88vm\x94\ -\xcd]Nv\x14\x9c.\x06\xb8-\x18\xe6\xfbv\xb28\ -\xa8\xf2\x05\xe3\x8c=\xa6:):\xad\xce\x09\xf2\xde\xba\ -S\xfcw\xf7\xdf[8\xd1\xff\x1e\xda\xecc1U\x05\ -t46\x80\xa8\xeeT\xb3\xb6z@\x9f\xa32M+\ -\xb8W\x1c\xb4\xd2\xc5\x91?C,\x8e\xaa\x13:\xbb-\ -\xee_@\x01'T\x12\xc9&\xe0\xe2d?J\xa0n\ -%\x04\x8c'\x14\x85\x09%\x12\xd1\xcb\x83\x83\xe3(\xfa\ -\xff\x14\xc3\x00,\x9c\xe0C\x8d;\xe1\xbc\x80\xd30A\ -\x82\xc5b\x22BFq\x22c\xeca\xe7\x08JP2\ -\x09\x9cP\x10,\xb9<\x9c<\x04\xe7B\xc7\xee\xdf\xcb\ -\xf3\x0d\x8dd\x5c\xa9\xa3\x86F\xc2DR&:aY\ -@(j\x95^\xaf\x9bf(\xfbh\x8a*\x85cM\ -\xdbN\xda\x0eJ`i\x93\xb2N\x96+\xa8qk\xd5\ -C\x9b\xa9N\xbak\x0b)\x1e\xa6\xeeK\x22JG\x11\ -e!a\x8c\xc7\xf1$\xc0p\x1ddBp\xeeA=\ -s\x81\x91\x9c\xb4\x1f\x90L\xc4\xffx\x9e\xe2\xc9\xc7\xf0\ -\xa48\x14\x09\x221\xb0\x11\x03Y\xa5\xe4q\xe2\x052\ -\x14\x88a!&\x801c\x82$$\xfe\xae\x11=\xf4\ -\xbd?\x91\x0d\x1c\x7fp\xa3\x83kx\x96\xfd\x1b\xeag\ -f}\x91\xcc$'\x99y\xef\x05\x0c\x10\x12$\xa6\xd0\ -\xd2Bh\x1d\x82\x22\x82!_p\xe3\x81\xc6\xc6\xdb\xd4\ - \x8e\x8e\xab\xe4\xbb\xa6\xba.\xcbbU\x1f\xdd\xcb\xe1\ -D\xa5\x10\xa9\x04\x0e\x1e\xe1d\xef\x9d\x0as*\x12r\ -Dnw\x90\xcbP\xd2\x18\x1a\xf3\xb1\x0af\x05\x9c\x87\ -\x94\x10D\x93s9\xa1q\x10\x07\xe3\xd8\xf6\xde\xbf\xdc\ -\xa2\xcc\xe1\x99\xcf\xb7(\x1f\xeaFA\x1f\x02\xd1#.\ -\xb0$'\xe8Z\xb3\xae\xf2\xaf\x8f.\x09e\xc2\xe0\xbe\ -3\x8a.\x8a\x81\x81q|\x8a\xae\xeb\xbe\x18\xf8\x19\x8f\ -\xa0K\xa0\x7f\x00\x82\x14\x7f\x06]\xfc8l\xe7\x22\xcf\ -\xe9\x13\xb0\xa5P;B\xe2o\x85-\x9cV\x89\xe4\x98\ -\xb2SlY\xc80\xc6\x12\x8f0\xd7\xb5b\xceP<\ -J]J\xc2\x98\xc5|\x7f\xb7\x1d\xa3\xee#\x89+\xe5\ -\x93\x88K\xe1r\x85d\xfc\xad\xc0\xa5!\x13HPB\ -\xc7\x88\xcb\x05\xb4\xb1Ql\xdd\xb5\x01Tc\xc4u\xf7\ -\xb5\x18\x9a\xc6g\x88\xfb(di\xa2\xae3\xf1$d\ -\x19\xdc[\x93o\x87\xac@\x00\x1f\x15c\xc8J\xc21\ -\xc2#\xc8\xa2\x10\xc7Hr\x84\xc4\x08\xb4\x0cB\x827\ -@\xf69\xda\xa2G\x81KT2\x7f\x22m)\xa6R\ -~Up\xa7\xd1\xa2\xfff`q\xfa\x226x\x83\x19\ -|\xa9\x10\x22\x14'D\xd0I@x(\xe0T\x93\xf2\ -\xd2?zy\xc3\xf0\xf2\xd6\xbd\xf2\xb5+O\xdd\x97]\ -\xf0\xf7\x1fZ\xa1\x14G\ -\x00\x00\x0e\xb7\ +:9,9;stroke-opac\ +ity:1;stroke-das\ +hoffset:4.2\x22\x0a \ + d=\x22m 6.5433076\ +,27.86717 34.981\ +4614,0.0088\x22\x0a \ + id=\x22path841-3\x22\ + />\x0a\x0a\ +\x00\x00\x0b\x0f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata12\x22>\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - <\ -/dc:title>\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs10\x22 />\x0d\x0a \x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a <\ -path\x0d\x0a sty\ -le=\x22fill:#ffffff\ -;stroke:#feffff;\ -stroke-width:1.6\ -1445;stroke-line\ -cap:round;stroke\ --linejoin:round;\ -stroke-miterlimi\ -t:4;stroke-dasha\ -rray:none;stroke\ --opacity:1;fill-\ -opacity:1\x22\x0d\x0a \ - d=\x22m 28.13427\ -5,14.535605 2.90\ -0459,2.70152 -0.\ -145932,-5.618557\ - z\x22\x0d\x0a id=\x22\ -path884\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0c\xe4\ -\x00\ -\x00\x80\xb9x\xda\xed]\xdb\x8e\xdb\xc6\x19\xbe\x0f\x90w\ -`\xe5\x8b\xd8\xa8H\xcd\xf9 \xef:h\x12\xa4\x08\x90\ -\x00E\x9b\xa2\xe9U\xc1\x95\xa8]\xc6ZqAq\xbd\ -^\xbfU_\xa4\xcf\xd4ox\xe6\x8a\x1b\xf3\x82r\x91\ -z\x14\x18\x11\xff9\xfd\xf3\xfd\x87\x99\x8f\xa4v.\xbe\ -~\x7f\xbb\x0f\xde%\xf91\xcd\x0e\x97\x0b\x1a\x91E\x90\ -\x1c6\xd96=\x5c_.\xfe\xfe\xf3\xf7\xa1Y\x04\xc7\ -\x22>l\xe3}vH.\x17\x87l\xf1\xf5\x9b/\xbf\ -\xb8\xf8C\x18\x06\xdf\xe6I\x5c$\xdb\xe0!-n\x82\ -\x1f\x0eo\x8f\x9b\xf8.\x09^\xde\x14\xc5\xddz\xb5z\ -xx\x88\xd2Z\x18e\xf9\xf5\xeaU\x10\x86h\x8a\xc6\ -\xc7w\xd7_~\x11\x04\x01\xc6>\x1c\xd7\xdb\xcd\xe5\xa2\ -nsw\x9f\xef\xcb\xba\xdb\xcd*\xd9'\xb7\xc9\xa18\ -\xaehDW\x8b^\xfdMW\x7f\xe34H\xdf%\x9b\ -\xec\xf66;\x1c\xcb\xa6\x87\xe3\x8b~\xed|\xbbk\xab\ -;\x95\x1exY\x8bZkW\x84\xad\x18\x0bQ#<\ ->\x1e\x8a\xf8}\xf8\xa4-\xf4\x1ck\xcb\x08!+\x94\ -\xf5\xaaN\xac\xb6>\x02\xd9;\xfck\xeb7\x82\xe8\x98\ -\xdd\xe7\x9bd\x87\x86ItH\x8a\xd5w?\x7f\xd7\x16\ -\x86$\xda\x16\xdb~?\x0d\xb0\x83q\x07h\x1f\xe2\xdb\ -\xe4x\x17o\x92\xe3\xaa\x91W\x1d\xf4\x8cM+I\xba\ -\xbd\x5c@OV]=\xa4\xdb\xe2\x06\xa5\xb6\xbe\xbeI\ -\xd2\xeb\x9b\xa2'x\x97&\x0f\xdfd\xef/\x17$ \ -\x01\xa4A[\xd2\xe8\xbb\xdef\x1b7\xfe\xe5\xe2\xae\xd8\ -\xee\xfeU\x1c\xa3\x16\x86F\x97u\xab\x06\x89,\x8bd\ -\xf0\x92\x11E\x92\x0d\xdd\xd9\xdd2`\x84\x91\x90\x88\x90\ -\x98W\x8b7\xae\xdd\xc5mR\xc4\xdb\xb8\x88\xcbN*\ -\x95\x1b\x91\xa9\xaa\xa0\x12,\xb9\xfe\xebw\xdf\xd7\x97\x10\ -l6\xeb\x7fd\xf9\xdb\xe6\x1a\x1fW%\xbe\xca\xee1\ -\xa1\xc5\x9bN~\xb1\xdd\xac\x81\xfdm\x5c\xbcIo\xe3\ -\xeb\xc4\xd9\xed\x8f\x80\xfab\xd5\x15\x0ck\x17\x8fwI\ -\xaf\xdf\xaa\xe7<\xa9\xcc8\xea\xd0\xdb\xcdm\xeaZ\xad\ -\xfeV\xa4\xfb\xfd\x0fn\x98E\xb0z\xdamZ\xec\x93\ -\x9e\xf4bU\xcf\xa1\x99\xe3\xaa?\xc9\x8bU\x03Bu\ -\xb9Mv\xc7\x1eB\xeeR\xb5\xe8\xdc\xc6\xf9\xdb$o\ -\x87k-\x91\x1e\x8fE\xb6y{\xb9(\xf2\xfb\xdaG\ -\xdc\xe7X<\xee1\x91\x0c\x86\xda\xed\xb3\x87\xf5\xbb\xf4\ -\x98^\xed{\x15\xdc\x08\x7f\xca\xf3\xec\x81\xfe\x88\x0c\x91\ -\x17]I\x9e\xec~q\x86%\x03\xd1?\x9f\x88\xb2<\ -E|_.\xe2\xfb\x22[\x9c\xaaU*u2F\x07\ -\xcc]\x5c\xdc\xf4\x0cP\xe4\xf1\xe1\xe8,\x05_\xde\xc4\ -\xfb\xe4%\x89\xcc\xabJ\xbaG\x96zI\xe1dK\xf2\ -j\xd1kR\xcfp\x07k\x84\xf9\xfd>Y'\xef\x92\ -C\xb6\xdd\xbe>\x16y\xf66Y\xbf \xe5\xa7\xbe\x0c\ -\xcb\xc0X#E\xde\x15\xfd^\xa0\xe1O\x01&\xb6\xc4\ -\xbf\xe0\xc7@\xe2[(\xcb\xafa5f+\xae\xa4M\ -\xd5\x0fA\xbf\x177Q7#!\xad\xe9\xbc\x02\xf6-\ -\x8dV\x1b\xdb\xd9\xb3\xfa\xdaF\x9a\x0b\xb3\xad\x8b\xc8\xba\ -\xaf;x\xd5&\xdbg\xf9\xe5\xe2\xc5\xae\xfc4\xa3\x5c\ -e\xf96\xc9\x9b2U~\x86e\x19\xd2\x05<\x14\xa1\ -\xde\xc8\xb3\xab_\x93MQd\xfb\x048:\xb7\xa6\xad\ -\xfd\xaes\xc01Zp\x9fn\x93\xd1\x92\xd6\xb4N\xc9\ -v\xb0\xf1\xe2\xe3M\xbc\xcd\x1e.\x17\xec\xa4\xf4!=\ -\xa0$l\xd2\x94\x11\xe6\xb9*m\xe6\x22\xb4\xab\x03\x9c\ -[\xccD#=\xded\x0fnBp\x86x\x7fLN\ -:\xfc\x90e\xf0+\x161\xca\xb9\xa5\xf2\xa4|\x83l\ -\x182\x12)I\xb4\x12\xa7\xc5\x8fe\xfa\x8c\xb4\xa5\x5c\ -=\xa7-\xba\xd0\xcf\xce\x16\x1d0\xf9\x5c\xe1m\xfc>\ -\xbdM?$\xdb\x9e\xe5\xba\xb1\xef\xf3\x1ca\x16\xee\xe3\ -\xc7$\xef\xe7\xf9~\xa8\x1d\xe2\xbb\xf0\xea\xca\xe5\xf42\ -\x07\xd4\xfewq]W\x8c\xf34F\x07W\xc9\xfer\ -\xf1\x9f\x7f\x9f4oC/\xdc`\xa4$/\xa7\x12\x11\ -E\x8d\xe5\xf4\xe3\xb51\xb7\x10k\x91V\xd6\xf0\xce\x22\ -ulfP\xbd\xfc\xbe>\xb8,\xbc\x7f]J\x1eJ\ -\xcb\x0eDG\x00\xb0f\x5cGF\x08a\x98`w\xef\ -_\xef\xd3CR{\x01\xe2\x96\xc9\xaa\xe6.\xbeM\xf7\ -\x8f\xeb#\xd4\x08\x8fI\x9e\xee^\xef\x93\xc2)\xe2\x96\ -K\xec{\xd6\x04M\x1f\x10\x11\x03\x81\xcb\x12.#l\ -E\x1c\x97\x17a\xed\xc1k\xda\xe4\x8b\x03vH\xc3d\ -!#+\x14\xa5\x9c\xd2\xbe\xff\x15\xc9\xfbBH&B\ -\xdb\xe6\xe6A2sk[@\x15\x89\xa8PF-\xa9\ -\xe4\x91t\x8e\x17\x84<\x22\x96Z\xbd\x0c\x05$\x96\xc8\ -`\x13\x84n\xc6\xc6\xe8\xa5\x8e\xb8\xe6\xd4 \xeb\xa0\xba\ -\xd4T,m\xc4\xb4\xb4\x02\x12\x1d)Bd'\xe0\x91\ -!R\xd2%\x09B\x15\x19\xab\x85]b\x8f\xa1)\x97\ -\xae6\x89\x18CW.\x8d1\xce\xa4i\xc65\xdd\xb8\ -\xed\xa8!\x85\x88\x18\xc9\xfa\xed\x18\x8d\x94\xe0F\x06\xfb\ -n\xa8\x90:\x1b\x1be\xa1s\x0d\xcb2\xb4nb\xda\ -\x04(\x13TI\x8eZ6\xb2\xda@G\xf4K83\ -\x0c\xbdA\x0dJ%U\x01\x8b\x14U\xcc:5\xac\x15\ -\x9a\x8b\xa0\xee\xa0l\xc7\x94\x14\x84Cd\xd1\x1e\x9a1\ -\xf4\xc0\x18\xb3\x1c\xaaE\x960\xad +{0%\x94\ -\x9cY\xd7\xbd\x88\xb4TNR\xcfv\x19\x1a\x14\x09@\ -\x18\x00\x13\x8b\xfe\x8d\x03G\xd4\xb5Z(0\x1dc\xd1\ -\x7f\x80\x1e\x88\xe0\x5c:\x91R\xc2R\x1a`\x1ch%\ -\xe4\x12jiA\x89-k\x95\xd0-\x99\x8a\x04!\x9a\ -\xa3\xfb\x0a\x12\xbd\x14\xe8\x1e\x1dT#:+\xf0%\x00\ -a\x9a\xe8\x0e\xbf\xd6\xbc\x0dx5f\x02K\x8a5\x88\ -6\x0b\x95\x97\xcaF\x9c*!\x82o\x03\xeb\xa6\xaf\x88\ -\xb5Ki0k\x0e\x83\x04\xc6Y\xdb\xa5\xa8\xa5\x84K\ -(l\xb9\x02\x03\xa5\xa5\xa1Fv\x22\xad05\xad\x15\ -s\x22\x83\x8d2\x0c\xaeL$\xb5\xd2\xdc.\x15\xc0\x14\ -\x9c)\x1a\xe0\x9b\xd2\x96\xc1y\xdaa%&'\x94\x82\ -7b\xba\xc2\x22\xf1\x06\x92EF[B\xf8\xd2`r\ -\x00]\xcb@\x00\x16\xa3\x09\x93Kc\x22\x8aL\x81i\ -\x08\x86\xf9p#\xe0\xf0\xc49\xaa\xe04\xe0\xe8\x97Q\ -\xa3\xcc\x12V\x86\x02\xdaPWO\xc1\x19,\xe2B\xc1\ -\xad%W\xf0\xa8\x0a.7n\xe5\x97\x81\x8e\x1c\x8c0\ -\x0a\x855\xa9\xf3\x0b,\xc6FpEX'\x82\x16\xe8\ -\x89\x09\xc4\x01\x052pNi;\x87`\x88#\xcc\x85\ -\x88e\xeb\xdahA\xb8!\xd6\xf9\x88D\xc3\xa0\xee\x8a\ -\xc9\xd6\x03i\x00\xbf\xd3\x5c\x22\x05\xc1\xdd\xa04\x00T\ -\xb5:b\xd9\x945\xe3\xa9\xa5\xcbXT3\x1d\xd4~\ -!:\x89\x84\xd3\x11\xc1\x9cv\xf0'@M\x97\xb5\xaf\ -)\xec\xb9\x11v\xbc\x1c\x17N*\x10\x81\xd8P\xdc\xc2\ -;\x0c\x1cN;/\x86\xfapAQ\xe6\x08\x19ib\ -\x98^\xc2O\x8c\xd2\xb4\xf4<\xe8\xca\xe1\xff\x14n\xcf\ -\x98\x0bid\x09\xca\x84q.\x8a\xe9R\x85\xb8Dv\ -P\xd2*\xd8\xc4\xb9\x04\xc7D\x5cv\xe1X\xcb\xa0K\ -\x15&\xaalh\xb8\x81V\x9d\xa8NT\xd6e\x98:\ -X\xa1j\x15s\xdcu\xebz\x93\xba\xcb\x00mdb\ -B\xadFu/.\xef`\x92\x88\x22\x194!\xb6\x0c\ -U\xb9\xdcr\x01,\xca\xe8\x96\x08\xef\xca\xfa\xca\x04m\ -VC\x1a\xd1B\x01\xf2\x16C\xde\x17VQU\xea\x09\ -\x1c5\xe1\x04\xfe!\x22f(#\xb4\xcdA\xf0\xa2\xb6\ -\xc5\x87\x93\x1d\xf23k\xd4;\xb7j\x1e\x8a\x8f\xae[\ -E\x9e\x14\x9b\x9b\x81\xac^\xa1\xbe\xfa9\xf9%\xf8\xf3\ -c\x9e\x04\x7f\xc1\x8eh\xbf\x8f\x83\x9f\xb0L|\xf5:\ -l\xd6\xd2\xb0\xea\xe1.\xd9\xa4\xbbt\x03&\x9c\x1d\x9e\ -m\xf4\xf1\xf5\xeb\xd95\xab\xdb\x9dZ\xd2nN/V\ -\xd7\xc3M\x82\xabsM\x81e\xd3\xac\xb7#\x07}\xca\ -\xd3\xf7\xd8\x92\xc3&\x9cP\x09\x9fv\xffu\x97!3\ -\x02\xde\xce\xca\xc4ZZ\x82\x89W\x1d\xaf\xc3&\xb4\xd5\ -\xc5\xed\xa5$\xdc\x06-T\xa7!\xb6\x1c\xf0|\x97!\ -\x94\xe9\xa4\xed\x0eP\xc1E\x88P\xba+j\xf6\x8fu\ -\x89\x1dN\xd6\x8dh\xa88eC-f\x0d\x9eWp\ -\xb8g\xf6\x03M\xe9\x00^\xe7\xd3V\xc2\xabD#w\ -\xbb\x14Xs\x9dg\xf7\x87m_\xf8k\x96\x1e\xd6W\ - %\xfbF\x0a\x02\x99\xe4{l\xf6\x8au\xdb|\x1b\ -c\xaf\x9c\xe7\xf1\xe3`\xff\xe1\xa4\xd9nwL\x8au\ -K`:\x05\xef\xe2\x14\x8eSn\xfa\xd7Ua\xe0\xa6\ -\x10Tl\xe3\xd8# c\xd0\x0b`l\x07\xd0\xb3\x06\ -\xfb\xf9\xa0\x0f\xb9\x07\x7f\x0c|%\xa81\x03\xf0\xc5\x19\ -\xc0W\x1e\xfciIGU\xe0\xdb\x19\xb1\xd7\x1e\xfb1\ -\xec\xb5\x94l\x98u\xcc\xfc\xd8K\x8f\xfd4\xbf\xa7d\ -~\xf0\xb9G\x7f*\xfa\xcd\x82;g\xcag\x1e\xfd\x89\ -\xe8\x8b\xf9\xd1\xb7\x1e\xfciI\x9f\xaa3\x80\x1fR\x0f\ -\xff\x09\xfc\xdc\x82\xa5\xab\xf3\x93\xac\xd0'\x9eq\xf0\x85\ -\xf8\x04,\xcbo7\xc7\xd1g\xd6~\x0a\x9e\x15\x12\x0f\ -\xff\xb4\xcc\xd3\xe4}6'\xd5\xf2\xeb\xee8\xfc\x82r\ ->\xc6\xb5fE_\xfa{\x9e\xfc\x85\xd8\ -\x9a\xe7\xf1\xafK?\x03\xfc\xd9\xfc\xf8\x83\x7f)\x8f\xff\ -D\xfc\xeb\xd5W\xcd\xbb\xf9\x97\x1e\xffi\xe9\x9f\xaa\xf9\ -\xfd\xdf\x91/o\x80\x13\x03H\x1di\xab\x05\xa3g\xa7\ -^\xcc?\x03\x18\x87_J#\xd5'\xe0^\xda\xff\xf8\ -k\xd4\x00\x16\xdb\x1dn?\x01\xfb\x22\x9e\x7fMM@\ -\xf5\x020\xeb\x0fO\xddS0\x7f\x03\xfa\xd4\x00&\x22\ -L0i\xc6\x18\xd8\xac\x06pO\xc1\xfc\x8b\x88\x13#\ -\xa0\xe1`j\xee\xa7`\xd6o\x82&Z\x80\xcdo\x81\ -\xf2)\x18\xf7\x16\x98h\x81\xb3\xf005a\x1f\xf4\xf9\ -\x19`t\x158\x17\x11\x9b\xc2\x05>;\x13p\x1dq\ -\xf7\xe6\xe10\x06\x5c`\x10\xae\xc9\xac\xaf\xa3\xf8_#\ -\x8d\xa2/\xe5\xe0\xc57\xc7\xc4j\xf8\xe9\xacL\xcc\xff\ -\xe5\xab1\xf8%%v\x88\xbe8\x03\xfa\xca\xdf\x86\x98\ -\x9azT\x0d\xbf\x9c\x95\x84\xf9\x17\x11\xc7\xe0WLp\ -\xfd\x84\x82\x9d\x01~\xe9_\x82\x9b\xea\xfd\x94\xd4\xf8\xcf\ -K\xc0\xfc\xc6g*\xfel~\xfc\x15\xf3\xe4k2\xfe\ -\xf5\xea;/\xf9\xfa\xf83`C\x92\xdf\x80\xbf.\xfd\ -\xff\xcf\xfeT\x9d\x03~:a\xf9\xfd\xec\x0c@uD\ -$>\xfc\xec\xc4\x8b\xf9?D0\x0e?\xe5O\xff\xfe\ -\xdey\x98\x97\xf6\x8f`F\x0d@\x95\xb1\x9a}\x02\xf2\ -E|\x04LM@\xcd\x02\xa0g~\x06\xe6\x7f\x884\ -f\x00f\x18\xb7t\x8c\x80\xcdj\x00\xf7\x0c\xccS\xb0\ -\x89\x11\xd0P\xb0\xd9\x9f\x81y\x120\xd5\x02l~\x0b\ -\x94\xcf\xc0\xa8\xb7\xc0D\x0b\x9c\x85\x86M\xb9\x0b\xfa9\ -\xf2\x80\x91U\xe0\x5cD\x8cMx\x12\x7fev\xbfa\ -\x82\xba\xf4wk\x82\xf1C\xc5\x04\x95\xe4\xf9C\xc5d\ -D\x88\x96\xccVg\x8auW\xa1P$\x12\x82)w\ -\xce$\x8d$Q\xe8\xa7;S\xecz`\x06\x8c!z\ -\xfe\xdf\x1b\xa5w\x820\xbaV\x9a\x19^\x1eIi\x8c\ -f\xd6\xbe\xea9\xcf\xf5X\xf3\xee\xe43F\xe1I\xaa\ -=\xf9\xac\xb9\xb4\xeed9,\xedj\xc9`)-\x94\ -\x14\xaf\x16OtS\xd4\xfd\xa9\xde\xee\xe8\xe3\x81\x9b\x0e\ -\xce1^\xbf\xb0\xdcn\xe3M\xeb\x11\x83\xcb\xda#H\ -d\xb94\x00\x84M\xf3\x88\x81t\xbaG\x8c[\xbf\xb6\ -xe\xfe\xaa\xe6\xd3s\x90\xdd\xf4\x84\xb4\x83\xa7\xf2m\ -\x1cqw\xf0\xa1\xe1\xfd\xf7\xb3\xbb\xf0s\x87*\x12\xad\ -\xed\xa0!\x22\x96G\x9as.i_\x5c?b\x22F\ -\xd0\x81x\x1a\xd9\xe2\xcel\xc4\ -\xa8\x18\x90\xbf>\xee\x9a+\xab\xfa\x8fJ+\xc6\x08\x1e\ -O,#r\x04xCx\xff-\x82\x06x\x83l\xc5\ -\xa9\xec\x9f\x81}\xdd\xcb\x0d\x17\xeedv\xfc\xff\xbf)\ - \xadJ\ -\x00\x00\x06\x01\ -\x00\ -\x00\x16\x08x\xda\xedX\xddo\xdb6\x10\x7f/\xd0\xff\ -AP^\x12\xcc\x92\xf8)\x91\xaa\xddbCQt@\ -\xf7\xb2u\x9fo\x8cD;jd\xd1\xa0\xe48\xe9_\ -\xbf\xa3l\xc9\xb2-g\x19\xda\xae\xd80'N\xc4\xbb\ -#y\xf7\xbb/R\xd3W\xf7\xcb\xd2\xbb\xd3\xb6.L\ -5\xf3q\x88|OW\x99\xc9\x8bj1\xf3\x7f~\xff\ -&\x10\xbeW7\xaa\xcaUi*=\xf3+\xe3\xbfz\ -\xf9\xfc\xd9\xb4\xbe[<\x7f\xe6y\xde\xa6\xc8\x9b\x9b\x99\ -\xcf\x84\xdf\x0eot\xb1\xb8i\xf6\xe3\xbbBo\xbe3\ -\xf73\x1fy\xc8c\xc2\xeb\xe8E>\xf3a\x09\xb2\x93\ -\xda\xef\x8fw\xfc\xea\xb6\xce\xd4J\xa7CVH\xbcK\ -\xa4\x10\xca\xe6\x9cR9\xf1\x08\x22$@\xf0\xcb\xae\xb6\ -\xb3j\xd0{\x05\xdf47Y\xa5\x96\xa0\xeej\x1e\xc2\ -6[.XZ\xd5i\xb7\xf2\xcc\xbfi\x9aU\x1aE\ -\x9b\xcd&\xec\x88\xa1\xb1\x8b\xc8\xcd\xacW*\xd3u\xd4\ -\xd1\x87\x0bt\x9b\xf4\x0bt\x84\xb06k\x9b\xe99\xac\ -\xa1\xc3J7\xd1\xeb\xf7\xaf{f\x80\xc2\xbc\xc9\x07\xeb\ -\x1c\xec\xbf\xa1\xed\xce\x04!\x14\x1d\xe9\x0b\xc3\xa7\x8a\xda\ -|>&\x8a\xa5\x94\x11\x22\x11\x80\x05\x12A\xfdP5\ -\xea>\xa8\xea\x8b\xe1\xdc,\xeb\xa7fV\xab\xa6\xb8\xd3\ -\x99Y.MUo19\x94\xce\xf7\xd2\xab\xb5-[\ -\x91<\x8bt\xa9\x97\xbaj\xea\x08\x9c\x15\xf9/\xdd\x84\ -\xe9R7*W\x8djgo\x1d\xdf\x910\xd9\xca\x80\ -\x14(\x96\xfe\xf8\xfa\xcdn\x08\x84,K\x7f5\xf6\xb6\ -\x1b\xc3\xc7\x89\xa8k\xb3\x86\xe8\xf2_\xee\xe9\xd3C,\x8e\xd2\x13J\xbb-\xee/\ -!\x83\x13*\x89d\x13Pq\xb2\x1f\xc52\x84\xce\xc7\ -1\x9f\x90$\xc4\x82H\x8a\xaf\x0e:\xc7\x91\xf5\x7f\xcb\ -\x86\x01X8\xc1\x87\x9c\x16\xae\x80\xd30A\x82\xc5b\ -\x82Q\x08\xfa`\x1c{\x01#\xa1L\x92$\xc6\xa0\xa7\ -\xe0\x5c\xc8\x98\x1e\xce\x1dbs\xa1c\xf7\xf3\xe2|A\ -#\x99B\x5c\x1d\x164\x12&\x922\xd1\x11\xcb\x02,\ -Q\xab\xf4z\xdd4C\xda\x07ST)\xb45m;\ -j;(!H\x9b\x94u\xb4\x5cA\x8e[\xab\x1eZ\ -Gu\xd4]YH\xf1\xd0s\x9f\x13Pz\x02\xe8\x12\ -\x00e!a\x8c\xc7\xf1$\x90!\x151\xa7\x9cx\xf0\ -\xc4\x05Fr\xd2> \x99\x08\xfc?\xa0\xa7\x80\xf2\xb1\ -\x08\xa5\x10\x83\x09\x22q2\x090\x0e%M\x08K\xda\ -\x10E\x22\x89\x1d\xccP\x0d\x19\xa6D\x22\xf9\xaf\xc6\xf4\ -P\xf7\xbe)\x1b\xe8\x80p\xa8\x83\x93x\x96\xfd\x15\xee\ -gf}\x16\xdf$c\xc1\x0e^H\x04\x89)\x9b\x10\ -\xa8]\x08s\x0f\xce\x1d\x09\xa78\x89]=I\xc0+\ -\xff\xa18\xd7eY\xac\xea\xa3S9\xb4S\x1a\x22.\ -\x13\x88\xd0C[\xed\xbdcaNEB\x8e\x22\xdbu\ -q\x08\xe6D\x0a&\x8f<\xef\xfa\x7f\xc0yH\x09A\ -49\xe7\x0e\x1a\x07q0^\x94{\xed_lQ\xa6\ -I&\x92\xed 8\xe4\x8d\x82>\x04\xa2G\x5c\xc0Y\ -\xe4\x04]k\xd6U\xfe\xe5\xd1u\xbd\x88\x09LG\xd1\ -E1\x04\xdf\xfe\xf09@\x97\xba3\x12\x17|\x04]\ -\x22CX/\xa6\xf8\x11t\xf1\x93\xb0EH)\xc6>\ -\x01[\x1aR,$\xfeZ\xd8B\xafJ\xe0\xecA\xd9\ -)\xb6,\x84\xb3\x00\x96x$r]\x1d\x8e!\xef\xe5\ -\x18\xb8\x94\x841\x8byB\x1e\x0b\xdd'\x82\x9b3\xa5\ ->\x09\x5c\x01M!\xfeZ\xe0\xd2\x90\x098\xe2\x13:\ -\x16\xb8\x5c@\x19\x1b\xc3V\xc2\xf1\x01\x0e\x86r\xac*\ -PH\x05D\xf0#q\xfb\xe4\xa8\x15\xe2\x93\x80eB\ -\xb2\xe4\xeb\x01+\x10\xa0G\xc5\x18\xb0\x92p\x8c\xf0H\ -A\x80s.\x00$\xc5\x08\xb0\x0c\x0c\x82\xcb\x1f{,\ -f\xd1?Sl]A\xa0R~Qh\xa7\xd1\xa2\x7f\ -)\xb08\xbd\x82\x0d\xee.\x83\xf7\x09!BqB\x04\ -\x9d\x04\x84\xbb\xeb)\x84\xe8\x95\x7ftm\xc3pm\xdb\ -\xbfp8\xbe\xd4\xc5\xc3Z2\xba\x09\x0a9n\xa3\xbf\ -\x7fo\xb1Up\xea^\x97\xc1\xff?\x01\xf4\xd1!u\ -\ -\x00\x00\x07~\ -\x00\ -\x00)nx\xda\xddZ[\x8f\xa36\x14~\xaf\xd4\xff\ -@\xd9\x97\x1d\x15\x8c\xef\x97t\xb2\x95\xdaU\xa5\xbe\xf6\ -\xa2>V\x0cx\x12\xba\x04\x22 \x93\x99\xfd\xf5=\x86\ -\x90@HF\xd3*\xad\xb2af5k\xfb\xf8\xd8\xe7\ -\xf3\xb9\x1a\xee\xbf\x7f^\xe5\xde\x93\xad\xea\xac,\xe6>\ -A\xd8\xf7l\x91\x94iV,\xe6\xfe\xef\xbf\xfd\x14j\ -\xdf\xab\x9b\xb8H\xe3\xbc,\xec\xdc/J\xff\xfb\x0f_\ -\x7fu\xffM\x18z?V6nl\xeam\xb3f\xe9\ -\xfd\x5c|\xaa\x93xm\xbd\xf7\xcb\xa6Y\xcf\xa2h\xbb\ -\xdd\xa2l\xd7\x89\xcaj\x11\xddya\x08Sar\xfd\ -\xb4\xf8\xfa+\xcf\x83\x89i\xb3\x9c\xfb\x5c\xfbmsi\ -\xb3\xc5\xb29\xb4\x9f2\xbb\xfd\xa1|\x9e\xfb\xd8\xc3\x1e\ -\xd7\xf0\x8b\xb0{H7\x9c\xa5s\x1f8\xd1\x1d\xf1A\ -\x86~|\xb7\xf8l8\x84\xa8\xf7\x1e\xc7\x18'\x8f\x82\ -1\x13x\x14S\x1ab\xf8\xe5w\xdd\xac\x1ad_\xc3\ -\xbfYZ&E\xbc\x02\x91\xebdiWq\x93%q\ -\x9a\xfe\xd9\x94\x08\xd6\xecH\x01\xba\xa2\x9e\xf5\xcb\xcc\xfd\ -s\x82;6\xf5:Nl\x1d\xf5\xfdC\x06\xfd\x8a{\ -\x06}\x07\xaa\xcbM\x95\xd8G\xe0aQa\x9b\xe8\xe3\ -o\x1f\xf7\x83!Fi\x93\x0e\xf8\x8c\xd6\xdf\xb2ve\ -\x0ahEG\xfb\x85\xe6[I\xab\xf4\xf1\x14)1\xc6\ -D\x98F\x80\x1cP\x84\xf5K\xd1\xc4\xcfaQ\xbf\x1b\ -\xceM\x92\xfd\xd4\xc4\xe9I\xf6d\x93r\xb5*\x8b\xba\ -\xc3dL\x9d\x1e\xa8\xd7\x9b*oI\xd2$\xb2\xb9]\ -\xd9\xa2\xa9#8\xb9\xc8\xff\xe0&\xdc\xa7\xf6\xb1ng\ -v\x1a\xe0\x9a\xdc\xf7\xa2np\x7fz\x0e\xf3\xd4)\xd0\ -\x80\xf4!\xaew\xc0{\xde:^\xc0~\xf2\xb2\x9a\xfb\ -\xef\x1e\xdb\xa7\x1fy(\xab\xd4V\xfd\x98l\x9f\xf1X\ -\x09g\x995/\x9d\xb9\xf4\xfc{es\x8c\xf7\x04\xf8\ -\x0cA\xbd\x8c\xd3r;\xf7\xe9d\xf4sY\xae\xc0\x02\ -\x10U\x12s\xa2&\xe3\x09\x98\x83aHp\xce\x85\x9e\ -\x8e\xc2\x9a!\xa1Hq\xc1\xd9\x949\xa8\xf4\xc6\xe1\x19\ -n\x8a\xac\x01\x85Y?O9l\xaa\xcaQ\xe4\xf1\x8b\ -\x05\xf9\x17\x8cs\xd2\x13\xd5\xcbr\xbb\xa8\x1c\x92\x8fq\ -~\x80\xf2<\xb3mV\x80\x98\xe1\xce\xcc\xa9\xc0\xe2\x1c\ -Io\xfa\x04\x13y\x8e\x06$\x17g\x19\x80\xe0T\x9d\ -\x1b\x5c\xc5\xcf\xd9*\xfbla\xe7\xe4\xe4y\x80\x85'\ -\x9fl\xf5P\xc6\x15\xd0\xe0\xbd:\xadl\x13\xa7q\x13\ -\x0f\x94\xa8\xefR\x9d:\x02\x11\xd8\xc0\xec\x97\x8f?\xed\ -\x9a\xd0\x91$\xb3?\xca\xeaS\xdf\x86\xc7\x91\xc4\x0f\xe5\ -\x06$\xf4?\x1c\xfa\xef\xd3d\x06\xd6\x0d\xce\xe5C\xb6\ -\x82m8\xfb\xfb\x16\x0c\xe2>:\x0c\x8c\xa9\x9b\x97\xb5\ -\x1d\xf0\xed8W\xb6s\x14'M(MV\x99\x9b\x15\ -\xfd\xdady\xfe\xb3[\xa6\x17\xafe\x1a\xedv\xdbK\ -\x13\x0d\xc5\xb9\x8fzq\xbb\xe6\xe2\x18\xbc<~\xb0\xf9\ -\xdc\xff1^\xc7\xde\x14\xdaEUn\xd6\xab2\x85\x9d\ -\xb5\xfa\xe4\x0fpl;\xf6S\x9a*.j'\xf1\xdc\ -o\xff\x9bC`y\x8f\x83\x90`\xcc\x11\x93\x94\xde\xed\ -\xe1^\xec\xe5wlF\x0a:\xe2\x03\xe0U\xd9\xf3{\ -\x8c\xb4\x94D2\xc1\x02\xec~\x0eM\x8a\xa4PJ+\ -\x13\x10\xa6\x10Q\x94\x91\xbb\x03\xa7\xbay\xc9a\xdf\x8f\ -\x00\xdal\xe7!\xbe\xab\x9b\xaa\xfcdg\xefx\xea~\ -\xfc\xc1\x89gU\x92\x0f\x0f\xa6r\xceA\xf8\x83\x1eg\ -\x9a \x8dF\x8c\x085\x1a\x00\xbd\xa6\x1c,Z\x18\xad\ -\x87\x03N\xbcu\xdc,\x19cr\xd8\x7fjg\xae\x11\ -\xee\xdc\xce\x8ct\xcdj\x93\xdb\x99}\xb2E\x99\xa6\xfb\ -\xad\x9b\xf6\xd95;\xcb\x9c\x91\xf5s\xdf\x91g\x85\x85\ -\xa3\x9b=l\x9af\xd8\xf7W\x99\x153P$[\xf5\ -\xbd\xfb\xc5F\xda\xf4f \x08C\x84\x99\x09\x10p\x10\ -Xc\x8e\xe99 BvsPP\x09\x1aN\xe41\ -\x14\x9c!\xc3\x0d\xa8\xe7Y(nO+\x98q6\xc9\ -&P`\xc41g\x9c\x9d\x85B\xdd\x1c\x14\x5c!\x85\ -\xf5\xd4Sh@\xc8(q\xde@\xc4\xedA!\xc0i\ -Sr\x0c\x05\x81,IHL^\xf1\x15\xb7\x87\x05\x13\ -\x88\x08\x22\x8e\xb1\x10\x08\x1b\x09\xfa\xa2\xcf;\x0bz{\ -\x8e\x13\x22\xb8\xd4So\x814(\x05W\xe4,\x16\xe6\ -\xf6\xc2)@a\xe4$\x86\x10\x8287\x84\x9eW\x0b\ -r\x8bZ\xc1\xa8\x99X\x08#\xa0\x16\x9a\x8f=\xea\x18\ -\x8a\x10\xdf\x9e\xbb\x80Z\x90\xb2)\x18\xa0.\x907\xbf\ -\xa2\x167h#\x90[jN'\x01\x15h\x15\xa1\x8a\ -\xbe\x82\xc5\x17\x93s\xba=\x0f\xc5\xd8W\xf5e\x01\x8c\ -\x9b\xb2\x0a\xa1\xbe\x7f\x8a\x9bMe]\x99{BbN\ -\xc5\xc8%\xb8\x8a\xd7\x93\x08\x0b\xad\x84\x11\x01\x98\x17$\ -\xeeRPO!*1\x96B\x04\x021e\xf4\x9b \ -z;&\xff\x1c\x91\xb6\x91C\x9d\xdf\xccx\xdf\x97\xc6\ -\xf52\xae\xaa\xf8eV\x94\x85\xfd\x1f\xb0\x13\x13\xec\xa8\ -\xab85Dg\xc0\x8e(d\xa0^\xf5\x18\xc2\x14\x9c\ -2\x0bB\xc8\xe686\x97\xc5\xce-H\x0dST]\ -\x99b\xa9\x098\xee\xaa\x8ab\xd8m\xd0\x860\xca\x89\ -\xf0\x08\x86\xbaGi\xce\x83\x90!H\xfb\xc8\xa5\xd11\ -\x5c\x1a\x22\x95\xbc2t\xcc\x09\xb3c\xa0-B8t\ - \xef\xe3\xc2x\xa4-\x0a\x996$ \xc8\x18e.\ -\x0f\x8e\xbb\x88 \xec\xba\xc0\x91\xe4\x94]\x09\xa5\x8cr\ -v\xc54R\x92\x0b/\x04\x90\xa4\xd6\xcc\x04\x12Q\x8a\ -\xf5\xc5\xed\x0a\x14\xd4\xd0k\xd3\x1c\xc9\xa6\xe0\x80w&\ -B\x1b\x1at\x85$xl/\x84dP\x81\x112\x12\ -\x84\x04I\xa5.\xaf:LpJ\xf4\x95\xa13\xb5+\ -H\x04\x147\x8a\xb8p\x06E$\xc3Jy\x10\xc4\x18\ -\xc5\x1c\xb4\x89 \x06\xb1\xee\xe2\xe0\x10\x02Q\xf2\xcaB\ -\xbd\x9a\x9a\x15\xa7Hh\xf09A{/\x85\x15\xe3^\ -h\x90#\x15\xd49d&\xe4\xc5\x1d\xb22\x98\xc3r\ -W\xa68j\x1a\xcb\xb9;Gw\xe5\xd0\xf9\x1c\x81\x15\ -\xf7 \x82\x19\xc1Z\xa3\x02\x07\x81\xe5\xe5\x9d\x0e\xc3R\ -\x11e\xae\x0c\x9d\x13\xc1\x1c\xbc/\x81\x82\xbc\xf5\xc8\x18\ -\x11\xf0\x05`V\x84\x10\xac\x158d\xae/\x8f\x8d\xe2\ -\x0cj:|ef5N\x86;\x87\x0cU\x06\xc4p\ -\xdaf\x81\xee\x92S+O#C\x85T\x01ED\x09\ -vqh ;\x17\x14\xb3k\xf38\xe14ZA5\ -\xaa!ZI\x17\xad\xa0L\xe7\x8aJ/\x04\xc5'\x12\ -\xa2W\x10B\xd2,\xc5\xe5U\x87a\xa8\xee\x0c\xbd>\ -|\xc6\xf7\xfa\x1dB\x06\x09\xa2\xbax\x0e\x8e\x07\xd2?\ -p\xcb\xce=K\x09\xa8A\xdaC\x09\xff\x02\x10z\xfb\ -u\x96\x81Z`\x9c\xdc\xb6\xb5:\x86\xa2S\x0c^#\ -\x9f\xa8\xd5/\xf7&\x00\xe3\x94\xc7\xf1\x15\x5ch\x19\x84\ -\x898u\xfd\x0d\xe5\x92\x94\xe6\x150\xe4\x97\x02\xc6E\ -*(v*$am0\xe5.\x9dQ.x{\x89\ -\x87!\xe3\xc3\x8a\x80g\xc1\x90\xd8\x80\xaf\xe1\xee*\x83\ -\x10\xea\x5c\x8d P\x9f\x1fw\xfc{\xcb:\x05\x1b$\ -\x11T\x83\x09\x0b~9\xfc\x16G\x88,4;\x95\xa6\ -\xf5\xdbb*\xd1\xf1\xc3\xf1\xe2U\xb9)\xd2\xe9:\x03\ -6\xa7^\xafS\xc8\x17\xb9\xd9\xbf^\xdf7]\xbda\ -\x0cS\xa4-\xee\xdd;NE\xeeF_?\x1c\x1d\xfa\ -\xe0\xdb+\xc0\xd0\xba\x8f\x16\xea\xb9\x9f$\xfe\x88\xe6\x1f\ -\xa8\xc6A9\xf4\xf8%\xd1N;\x8c{kB\x8cb\ -\x81\x90\xee\xfd?\xe5\x0c\x94\x03\x1b\xceU\xa0\x8c\xcb\xeb\ -\xf0\xf8\x0d\xf5\xf8\xf4\xdb+\xa5\xf3G?\xc6xg1\ -\xf2U\xcc\xff\x93\x8b\xad\xff\x1b\xe8q\x80\xef\x0d\x91q\ -\x88\xe2\x04\x80\x05\xd0\x05 \x0c\xf9O\xd8a\x0c\xe9a\ -\xd0\xa2.\xbex\xa8\xef\xa3\xc5\xfe3\x9a\xc5\xee\x03\x1a\ -\xf7\xf7\xde}\xd8\x03\x7f\xff\x06\xe0\xe7\xdc&\ -\x00\x00\x0dU\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g4\x22\x0a inkscap\ +e:window-maximiz\ +ed=\x221\x22\x0a inks\ +cape:window-y=\x22-\ +9\x22\x0a inkscape\ +:window-x=\x2269\x22\x0a \ + inkscape:cy=\ +\x2265.809318\x22\x0a \ + inkscape:cx=\x22-8\ +7.829627\x22\x0a i\ +nkscape:zoom=\x224.\ +9166666\x22\x0a sh\ +owgrid=\x22false\x22\x0a \ + id=\x22namedvie\ +w6\x22\x0a inkscap\ +e:window-height=\ +\x221051\x22\x0a inks\ +cape:window-widt\ +h=\x221842\x22\x0a in\ +kscape:pageshado\ +w=\x222\x22\x0a inksc\ +ape:pageopacity=\ +\x220\x22\x0a guideto\ +lerance=\x2210\x22\x0a \ + gridtolerance=\ +\x2210\x22\x0a object\ +tolerance=\x2210\x22\x0a \ + borderopacit\ +y=\x221\x22\x0a borde\ +rcolor=\x22#666666\x22\ +\x0a pagecolor=\ +\x22#ffffff\x22 />\x0a <\ +path\x0a sodipo\ +di:nodetypes=\x22cc\ +ccc\x22\x0a inksca\ +pe:connector-cur\ +vature=\x220\x22\x0a \ +id=\x22path816-3-7\x22\ +\x0a d=\x22m 35.29\ +0518,16.901345 c\ + -4.614292,-1.41\ +6078 -9.151745,-\ +0.816181 -15.693\ +461,1.897953 l -\ +0.184595,19.7815\ + c 7.171601,-2.6\ +05831 11.546259,\ +-3.067165 15.983\ +56,-1.844967 z\x22\x0a\ + style=\x22fill\ +:none;fill-rule:\ +evenodd;stroke:#\ +999999;stroke-wi\ +dth:1.83396;stro\ +ke-linecap:round\ +;stroke-linejoin\ +:bevel;stroke-mi\ +terlimit:4;strok\ +e-dasharray:none\ +;stroke-opacity:\ +1\x22 />\x0a \ +\x0a +<\ +/text>\x0a\x0a\ +\x00\x00\x15\xf7\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview6\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x229.5901357\x22\x0d\ -\x0a inkscape:c\ -x=\x22-3.0514774\x22\x0d\x0a\ - inkscape:cy\ -=\x2240.607754\x22\x0d\x0a \ +age\x22 />\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \ +\x0a \x0a \ +\x0d\x0a \ -\x0d\x0a \x0a \x0a \ + \x0a \ + \x0a \ +\x0a \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0cY\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0a \x0a \ + \x0a \x0a \x0a <\ +tspan\x0a sod\ +ipodi:role=\x22line\ +\x22\x0a id=\x22tsp\ +an4522-0-3\x22\x0a \ + x=\x22-48.97916\x22\ +\x0a y=\x2264.77\ +5017\x22\x0a sty\ +le=\x22font-style:n\ +ormal;font-varia\ +nt:normal;font-w\ +eight:normal;fon\ +t-stretch:normal\ +;font-family:san\ +s-serif;-inkscap\ +e-font-specifica\ +tion:sans-serif;\ +fill:#216778;fil\ +l-opacity:1;stro\ +ke-width:0.77554\ +256\x22 />\x0a<\ +/svg>\x0a\ +\x00\x00\x08\xe8\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x05n\ +dow-y=\x2227\x22\x0a \ +inkscape:window-\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg2\x22\ + />\x0a \x0a\ +\x0a\ +\x00\x00\x06\xbc\ \x00\ -\x00\x17\xf8x\xda\xddXKo\xdbF\x10\xbe\x07\xc8\x7f\ -`\x99\x8b\x8d\x9a\xcb}\xf3\x11\xd1\x01\x1a#@\xaem\ -\x8a\x1e\x8b\x15\xb9\x92\xd8P\xa4@R\x96\x9c_\xdfY\ -\xbeD\x99\xa6`\x9f\xaa\x86\x8e\xe1\xec\xcc\xb7\xb33\xdf\ -\xce\xcc.\xb9\xf8t\xdcf\xd6\xa3.\xab\xb4\xc8#\x9b\ - l[:\x8f\x8b$\xcd\xd7\x91\xfd\xe7\xb7/\x8eo\ -[U\xad\xf2DeE\xae#;/\xecO\xf7\xef\xdf\ --~q\x1c\xebs\xa9U\xad\x13\xeb\x90\xd6\x1b\xebk\ -\xfe\xbd\x8a\xd5N[7\x9b\xba\xde\x85\xae{8\x1cP\ -\xda\x09QQ\xae\xdd[\xcbq`*L\xae\x1e\xd7\xef\ -\xdfY\x96\x05k\xe7U\x98\xc4\x91\xdd\xcd\xd9\xed\xcb\xac\ -\xc1&\xb1\xab3\xbd\xd5y]\xb9\x04\x11\xd7\x1e\xe1\xe3\ -\x13>6\x1e\xa4\x8f:.\xb6\xdb\x22\xaf\x9a\xa9y\xf5\ -a\x8c.\x93\xd5\x007.\x1dX\x83\x22A\x10\xb8\x98\ -\xba\x94:\x80p\xaa\xa7\xbcVG\xe7\xd9\x5c\xf0\xf3\xa5\ -\xb9\x14c\xec\x82n\x04}%,\xac\x80\xd9\x1d\xfc\x0e\ -\xf8^\x80\xaab_\xc6z\x05\x135\xcau\xed>|\ -{\x18\x94\x0eFI\x9d\x8c\xed\xf4\xc4\x9e\xad{\xc6v\ -\xae\xb6\xba\xda\xa9XWn/o\x0d\x1c\xd2\xa4\xdeD\ -6\xf7\xdb\xe1F\xa7\xebM}\x1a?\xa6\xfa\xf0[q\ -\x8clla\x8b\xfb\xf0\x0fa\xf3\x90V\x9d&\x91\x0d\ -1\xd1\x0e|J\x9c^\xdf\xad\x15\x0e*\x8c\x02\x8a\x84\ -uC\xb1\xc4:&\xab`ugQL\xb1\x83\xb9\x83\ -\xfd\xdbvZ\x1fi\x98\x14\xb1\xf1<\xb2\xe3\x22+\xca\ -\xbf\xd7e\x9aPdH\xbc7\xb8E\xa2WU3\xa1\ -\xf5\xc4\x0c\xb9m\xb9\xadr0b,$&\x90\x11t\ -\xa9\xaa\x8e\x00\xcb\xda\xa9\xb5n\xecG\xf6\x87U\xf3\xf4\ -\x9aeQ&\xba\xecu\xb2y\xceu\x05p\x9a\xd6O\ -m\xad\xf4\xf6\xfb\xa0\x8d\xe1\x01\x80g\x00\xd5F%\xc5\ -!\xb2\xe9D\xfb\xa3(\xb6\x91\xed#/\xe0\x92c9\ -\xd1\xc7\xb0-\x12I&\x03*\xc8T\x0bk2\x8c\x18\ -!\x01\xe7\x13-\x10\xbb7\xf5\xe4\xec\xf3\xb4\x86|\xdd\ -\x1d\xa7\x06\xf6ei\x10\x99z\xd2\x10\xfe\x9aq>\xac\ -Rm\x8a\x83\xd9\x8c\xc8^\xa9\xec\xc4\xe4\xbc\xb1C\x9a\ -C\x94N\x97m\xc4\xef\xf3k\x0a\xe93\x90`\x22\xe7\ -0\x10\xb8G\xe7\x94\x107\xf5\xe6\x94[uL\xb7\xe9\ -\x0f\x0d\x9e\x93!S\xb6\xbaV\x89\xaa\xd5(?z\x91\ -\xd7f\x1a\x80\xa0/\x84\xbf?|\xe9\x86 \x88\xe3\xf0\ -\xaf\xa2\xfc\xde\x8f\xe11\x10\xb5,\xf6\xe0\xbd}\x7f\x92\ -/\x928\x84J\xde\xaa\xfa>\xdd\xc2\x8e\x9b.\xf0+\ -\x14\xee\xc2=)\xce\xd1\xf5\xd3N\x8f\xec\xb6\x96K\xdd\ -6\x85\x17\xdbc\x12oS3\xcb\xfd\xa3N\xb3\xec\xab\ -Y\xa6\x0fod6\xad3=\x92.\xdc.\x86>F\ -w\x1c\xe4\xc2\xedIh\x87\xeb\xe7\x94fj\xa9\xb3\xc8\ -\xfe\xacv\xca\x9a\xe6\xdf\xba,\xf6\xbbm\x91\x80\xbfM\ -\x06\xd9#v\x1b\xc10\xa5.U^\x19\x1e\x22\xbb\xf9\ -o\x06\xc7\xc8\x0d\xbes\x08\xc6\x1c1I\xe9\xed\xb0\x09\ -\xeb! c\xe6,%\xcf\xec\x00\xa5ez\xbc\xc1\xc8\ -\x97\x92H&\xd8\x1d6?\xa7!ERx\x9e\xef\x05\ -w\x84y\x88x\x94\x91\xdb\x93\xa5\xaa~\xca\xc0\xef\x15\ -P\x19v-\xe1cU\x97\xc5w\x1d~\xe0\x89\xf9\xb1\ -Gy\x90\x96q6\xde.(\x16\x8a\x88\xe4\x1e\xa4\xb9\ -=\x92\x9b\x8a\x84\xac&\x882\xc9\xce\x14\x90\xcf\x14*\ -\x19\x5c\x11g3L\x90;Uo\x18cr,\x7f\xe6\ -\x9f\x84\xb3\xe5\xa3\x198]\xb7\x09\xa1\xcb\xc2\xfaX\xf8\ -~+/\xf7\x99\x0e\xf5\xa3\xce\x8b$\x19\x22\xe9&\xb6\ -\xc3\xb64C\x828g\x84\x0b\x16\xec\x8e\xbd&Ks\ -\x0d[\x1a.\xf7u=\x96\xfdS\xa4y\x08i\xa7\xcb\ -^\xda/O\xc6\xb9w\x91 \xfa\x02A\x14Q\xc1\xf8\ -s\x82`\x9bX\x00\xcdN\xce\x11\xe4\xb0Y\x8a<\xd8\ -@ouN\x11\xb9\xc0L\x87\x7f\x91\x19A\xfe3f\ -\xa8@\xdc\x13\x93\xd4\xe1\x1c\xf9L\x12o\x96\x98\xf9\xdc\ -\x09\x96&\x09^OL\x87\xbf6b\x18\x1c\x92\x1e!\ -\x13b\xa0\xd4\x02,\xd9lM9\xde\x85\xaa2\xd7\x9c\ -\xd73\xd3\xe1\xaf\x8d\x19.\x91O\xa9\x98t\x9b\x00\x09\ -.1g\xb3\xcc\x88Yf$]\xad\x82\xe5\xeb\x99\xe9\ -\xf0W\xc7\x0cG\x81'\xfc\xe7\xcc\x10\x81\x08\xa7\x0c\xcf\ -3\xc3\xc4O_N\x1cQ9\xed3\x02\x05>\x85\x17\ -%\x7f\xbe\xd1\xd0\x0b\xf5\xb4\xf4\xdeVO\x0d\xfe\xeaZ\ -0\xf8\x80\x89?\xa5F\xfa\xd0\x99}2KM0\xcb\ -\x0c\xc6K8o^\xcfL\x87\xbf6f\xe0^\xe3\x13\ -\ -\x22\xd4\x0f^\xb8\xd70L\x02y\x81\x1a\xf9\xffj7\ -\x0bw=|\x9b\xd1q\xfd\xe2\xcb{^\xe4\xfa\xf9\x9b\ -\xb1\xcf\x03a\xdepO\xb7\xb0\xe69\xf7\x96!_x\ -\x1cn\x82b\xe2WY\xec\xf3>T\xa7q2K\xe1\ -O\xc8{Y\xa2\xaa\x8d*K\xf5\xd4,o\x9f}\xb2\ -0\x9er2~\x9b\xef?\xc0rs\xef\x14\xfeH3\ -|\x8b\x9d\xaa\xcc\x86\xa2\x80\xfa\x1e\xf6F\xc7g\xb3\xff\ -X\x9a\x97\x9e\xd1\xfe\x97\x8d\x18\x11_z\xe2\xf4\xcd\xab\ -!oa>E\xc1\xdf\x7f\x01\x99a\xaf\xce\ -\x00\x00\x18\xf9\ +\x00\x18cx\xda\xedX[o\xe3\xb6\x12~\xdf_!\ +h_6\xa8%\xf1~\xd1\xda)N\xb1(Z\xa0}\ +\xe9\xed\x5c^\x0e\x14\x89v\xd4\xc8\xa2!\xc9q\xb2\xbf\ +\xbeC\xd9\xba\xd9\xf26E\xb6X\xe0\xe0(H\x22\xce\ +\x0c\xc9\xe17\xdf\x0cI-\xbf~\xda\x16\xde\xa3\xa9\xea\ +\xdc\x96+\x1f\x87\xc8\xf7L\x99\xda,/7+\xff\xd7\ +_\xbe\x0d\x94\xef\xd5MRfIaK\xb3\xf2K\xeb\ +\x7f}\xfbfY?n\xdex\x9e\x07\x9d\xcb:\xce\xd2\ +\x95\x7f\xdf4\xbb8\x8av\xfb\xaa\x08m\xb5\x89\xb24\ +2\x85\xd9\x9a\xb2\xa9#\x1c\xe2\xc8\x1f\xcc\xd3\xc1<\xad\ +L\xd2\xe4\x8f&\xb5\xdb\xad-\xeb\xb6gY\xbf\x1d\x19\ +W\xd9\xba\xb7>\x1c\x0e\xe1\x81\xb6FXk\x1d!\x12\ +\x11\x12\x80EP?\x97M\xf2\x14L\xbb\x82\x8fs]\ +\x09B(\x02\xdd`\xf92\xab\xb8\x06Tv\xf0\xdb\x9b\ +w\x82\xb0\xb6\xfb*5k\xe8g\xc2\xd24\xd1\x87_\ +>\xf4\xca\x00\x85Y\x93\x8d\x86\xc9\xcb\x87:Mvf\ +2k'<\x22\x90lM\xbdKRSG\x9d\xbc\xed\ +\x7f\xc8\xb3\xe6~\xe53\xd5\xb6\xeeM\xbe\xb9o\xfa\xe6\ +cn\x0e\xdf\xd8\xa7\x95\x8f<\xe41\xe5\x9d\xc4y\xb6\ +\xf2a\x19\xe4h3\xc4\x19\x1f\xb5\xa7\xe1\xe3^\x83B\ +MB\xe6\xbd\xdb\x97\x0f\xa5=\x947\xadY\xb7\x968\ +\xb3\xa9sn\xe5g\xa9\xdd\xad\xff\xdb\xd4\xa1\x83\xe8\x16\ +l\x96[\xd3$Y\xd2$\xce\xfe8m'\xc1\xa4\xb5\ +\x00\x1b\x08U\xfc\xd3\x87o\x8f-h\xa7i\xfcO[\ +=\x9c\x9a\xf08\x83\xe4\xce\xeeaY\xfem/^f\ +i\x0c\xe0n\x93\xe66\xdf&\x1b\xe3\xe2\xf2\x15\x80\xb9\ +\x8c\x06\xc5\xc4\xb8y\xde\x99a\xd0\xe3\xb0\x959Fi\ +\x96\xaaY\xba\xcd]\xa7\xe8\xe7&/\x8a\xef\xdd$\xbe\ +\x17\x9d\x0d\x9a7\x85\x19\x84\xcb\xe8\xe4\xfdim\xd1h\ +q\xcb\xa8[{\xdb\xca\xcc\xba\x1e`q-\x8c:H\ +\xb6I\xf5`\xaan\xa2>\x1euc\xd3\x07g\xfd\x8f\ +\xaa\xb2\x07\xfc\x03\xa4`\xd5\xf8\x9d\x99\xadrH\xac\x95\ +\x9f\xec\x1b\xdb\x0b+\xb3\xfe\xb7\x8b\x1f\x1aK\xfe5\x95\ +\x5c\x1d\xb1n\x9e\x0b\x80\xc6\x02\x0f\xd6\x85=\xc4\x8fy\ +\x9d\xdf\x15\xc6\xbfp,\xaf[\xd7V~S\xedM\x1f\ +\xa3\xe5.i\xee\x07\xc4\xdd4N\xc2\xb8V\xfe \x06\ +\xe9\x8f\x1e\xb8\xb3\x80_\xef\x07\x8f\xc3[\xc0\xdb\xd7\x00\ +\x93\x90\x8f\xc4Gig\xfa\xd1\x1b\x0dr\xf2t\x0dq\ +\x0a\xaa}ab\xf3hJ\x9be\xef\xeb\xa6\xb2\x0f&\ +~\x8b\xda\xe7\xd4\x0c\xda\x9c\x89\xa1\xae\xed\x9a\xd1 M\ +\x95\x94\xb5c\x0e$G\x9a\x14\xe6\x1d\x0a\xd5\xcdQZ\ +$\x8dywt\xe7\xa6\xe7\x00\x04\xb4\x8d\xd31\xb8.\ +\x82\xed[\x9f\x17.)2\x97\x81\xc7)v\xc0\x9f\xd4\ +\x16\xb6Z\xf9o\xd7\xeds\x9a\xfb\xceV\x99\xa9:\x95\ +h\x9f\x89\xcaB\xda\x03\x13!COb{\xf7\xbbI\ +\x9b\xc6\x16\x06\x9cs\xec\xc5]47\x15,mN\xbe\ +\xcf33\xa7\xe8c\xe8\xdc\xeb'\x9a\xd5\xd6\xf7If\ +\x0f+\x9f\x9c+\x0fy\x09\x8a\xe0T\x89\xb0\x12\xf4\x8a\ +EW\x9d0\x22\xdc\x1f\xc8\xdf\x03\xd5\xf1\xa2\xbe\xb7\x07\ +\xb7\x12\x88hR\xd4\xe6|\xb4\x8f\xd6B\x8cD(\x05\ +bX\xc8su\x0a\xf5.\x80X\x09L\xa8d\x17Z\ +X\x1e\x85\xd0+M\x89\xb8\xe2'\x0c\xc0\xe5\x15\x1dt\ +'\xd7t\xdb\xe4)\xdf\xe6\x1fM6\x84j\x98w_\ +U\x90\x9fA\x91<\x1b\x88\xf3\x86\x09\xccOTZn\ +\x06,6\x0c\xf3\xbe\x0el\xc6)\xbaa\x9c\xb1?O\ +.\x8a.\x92k\x81\xbc\xef\x5c\xf5\xff\xcd\xfd\xf9\x0ev\ +\x82\xff\x8cL\x06\x07mY\x02\xabl\x15\x80\xab\x8fI\ +\xb3\xaf\xcc@\x84\xb3$\x8bK\xd8\xf7G\xc5p\xf0\xf4\ +\xe4\xabFx>\xb3\xa0,W\xf9\xd3;\x08\x80\xa4\x9a\ +h\xb6\x00\xef\x16CK\xe2Pj.\x19_\x10\x1dB\ +l5\x957\xe3\xa2?]\xf5_\xf1~\x84\x11\x96x\ +\xa2p\xdb\x92\x17p\x1aJ\xa4\x98P\x0b\x06/\x12s\ +\xc1=\x8cBI\x11\xb4\x16\x81\x0a\x19U\x04k1\xe9\ +:\xc6\xe4\xad\x11\xee\xe7\xfd\xf5*DR\x9e$gU\ +\x88\xc0\x82)\x93Z\x92N^\xe4\xb0\x92d\x17\xdf\xed\ +\x9bf,\xfb\xdd\xe6e\x0c[\x92\xa9:\xe9)_c\ +\xdc\x09Zm\x01\x1clb\xd6\xc9\xb2\x04\x12\xb7\xaa\x92\ +\xe7\xf3\xa0}>8\xe9\x1c\x9c,$\x8cq!\x16\x01\ +f\xa1\x96\x94i\xee\xe9\x90r\x85\x91^\xb4/H+\ +\xf2\x7f4/\xd0\xe43hB\xc5R\x12\x11\x01D\xc4\ +2\xe4\x84\x11$\xbd@\x87\x5cK\xae\xc8\x02x\xaa)\ +\xf4\xd4\xf8o\xc2S\xa8\xbf\x8e\xe7\x9f\xc3w\x81\xfc\xd4\ +\xfb~#\xb5\xb0w\xc1A\x0c\xce\xe4i\xfai\xc8\xaf\ +\xf4\xf9\x0cQ\x913Qa\x00\x8f\x22\x82\xb2E@C\ +\x86\x040\x9aypL\x90\x1c\x82!\x16m\xf5 \xfa\ +\x7f\x89\xe2\xa6(\xf2]==G\xbb\x0d5D\xc0D\ +\x22\xa6 UON\x839U\x92LI\xed6a\x11\ +\x12\x0c:2\x0dz\xbbys\x1eRB\x10\x95W\x82\ +AE \x02:\x87\xeb\xb0\xc0#\xc2\x1c\x9e\xf5\xfa\x88\ +\xf0T7\x0b\xf8\x98\x94=\xda\x0akB9\xbd@\xb6\ +\xb2\xfb2{\x0d\xd9_\x82,\x81\xd2\xc9\x14\xa6s\xc8\ +\x22\x01\xd4\x13\xe2\x02Y\x192M\x05\xe1\xe2\x12Y\xd8\ +Ua0A\xf1ud\xf1\x8bp]\xab,\xa3\xaf\xc0\ +\x95\x86\x14+\x8d\x09\x91_\x06W\xd8\x9d\xe0\xa0\x81)\ +\xbb\xc0\x95\x85\x0cc\xac\xf1%c]\xe9%\x82\x13\xce\ +/\x81\xa5$\x14LpI>A\xd9\x97\x11V\xebW\ +\x11\x96\x86J#-\x00\xdc/\x03,\x14B\x85\x14%\ +t\x86\xb0\x5cA\xe9\x9a\xc3\xb5= h=CXw\ +*\x13T\xe0\xeb\x84}\x09\xaaT&w\xa9z\x15\xaa\ +Li\xc85!\xbf\x14\xaa\x0a\x01vT\xcd\xa0\xaa\x09\ +\xc7\x08_\xa2\x0a}\x14\xe7j\x0eU\x06\xeb\xe1\x88\xb3\ +O\xb0\x15\xbd\x04W\x92\xc8\xf5+\xd9J1\xd5Ji\ +\xf2w\xe2\xba\x8c6\xdd\x95}s~\xb5\x1a\xddMF\ +W\xfd\x10!!\x89\xa2\x8b\x80p\x80Q\x12\xado\xfc\ +\xe9m\x0c\xc3m\xac\xff\x14pvS\x13\xa3\xea1;\ +\x01\x0a9&\x0c\xae<\xc3\xedfY\xc1a\xe4\xcd$\ +\xea8\x14\x08\xc1\x09b\x9c2\x8e\x0cp\x02\x84\x9b\xca\ +$'Z&HJ)\x1fK\xbb\x0b\xb7\x805 \x09\ +g\x86\x91\xeet]\xa7\xda\x0dF\xf1\x98\x0an\x11\xce\ +\x1b\xc6'\xe4\x99\x9c]\x10\x22w$\x1d}`\x195\ +O\xc1u\x87R\xae8\x12\x17'\x95Il?[\xc4\ +\xdf\xef\x92\x1cn\xd8\xed7\x93\xf8\xf8m\xa6\xf6\x9c\xb7\ +\xde\xd1\xf2\x8c\xa7c\x82\xcca\x0f\xa798T\xcf`\ +\xaf\x10\xec]S\xecY\x88\xe0ZC\x10\x9f\x05_R\ +\xa1\x85\x14\x97\xe0\xc3vL0\xa3\x93\xfb\xe8\x18\xfc\xc9\ +!g\x02\xff)\xf3\xae&\x16\x1c=\xb5 \x8cK\xfe\ +\x05\xb0/\xdd\xe7\xd7b\xf4\xa1ls\xfcF\x06\xff\x96\ +\xee;\xed\xed\x9b?\x00\xe5\xa8\xee@\ +\x00\x00\x05&\ +\x00\ +\x00\x114x\xda\xd5\x18]o\xdb6\xf0\xbd\xbf\x82P\ +_Z\xcc\xa2\xf8-R\xb5]`(\x86\xeda/[\ +\xb7\x01{\x19\x14\x89\xb6\xd5\xc8\xa2!\xd1q\xdc_\xbf\ +\xa3l\xc9v\xea`EZ$\x98\xe2\xc0\xe2\xdd\x91\xf7\ +}\xbc\xf3\xf4\xfd\xfd\xbaFw\xb6\xed*\xd7\xcc\x22\x8a\ +I\x84lS\xb8\xb2j\x96\xb3\xe8\x8f\x8f?\xc5:B\ +\x9d\xcf\x9b2\xaf]cgQ\xe3\xa2\xf7\xf3W\xd3\xee\ +n\xf9\x0a!\x04\x9b\x9b.+\x8bY\xb4\xf2~\x93%\ +\xc9f\xdb\xd6\xd8\xb5\xcb\xa4,\x12[\xdb\xb5m|\x97\ +PL\x93\xe8D^\x9c\xc8\x8b\xd6\xe6\xbe\xba\xb3\x85[\ +\xaf]\xd3\xf5;\x9b\xee\xf5\x19q[.F\xea\xddn\ +\x87w\xbc'\xa2\xc6\x98\x84\xb0\x84\xb1\x18(\xe2n\xdf\ +\xf8\xfc>\xbe\xdc\x0a2^\xdb\xca\x08!\x09\xe0N\x94\ +_G\x95u`\x95\x0d\xfc\x8f\xe4\x03\x00wn\xdb\x16\ +v\x01\xfb,n\xacO>|\xfc0\x22c\x82K_\ +\x9e\x1dS5\xb7]\x91o\xec\x05\xd7\x01x\xb0@\xbe\ +\xb6\xdd&/l\x97\x0c\xf0~\xff\xb0\xc8\xce\xfd\x85\xde\ +\x08\xc2e.\x167\xc2L\x10#\x8c\xc4D\xc6\x84\xbe\ +\xed\xb7\x0cRd\xa5+\xc2\xb1\xb3\xc8\xbb\x7f\xee\xba\x02\ +\x0f\xaaU\xe5,\x82w\xd5/\xce\xce\xa5\x07@ew\ +?\xba\xfbYD\x10AB\xc3\xa7\x07\xafl\xb5\x5c\xf9\ +Yt\x5c\xee\xaa\xd2\xaf\xfa\xd5\x1c\x96\xd3>2\x10\xf2\ +m\xdet`\x93\xf5,Z\xe7\xbe\xad\xee\xdf\x90\x09\x18\ +#\xe5DhM'go\x13\x83)\x91\x94\xb3\x89\xa0\ +8\xa5\x82*u\x90\xfe \xde\xd20\xd6\x9f\x0cgo\ +r\xbf:`@7\xbf\xafA\xa1EU\xd7Y\x03\xc1\ +\xf9\xae\xf3\xad\xbb\xb5\xd9\xeb\xdc\x86\xbf\xe32\xee\xa5\xcb\ +\x18&R\xb2\x01VW\x8d\x05Kf\xad\xdb6\xe59\ +\xf0\x93\xab\x9aK\xe8\xba\xf2\xb6\xad+\xf8\xca\xc4\x00+\ +\xf3n\x95\xb7m\xbe?\xe7\x1b;pY\xe5\xf7\x19\x8d\ +\x06\x09A\xf85\xa2)N\x89\xe6<\x9d0\x82\x058\ +K\x1bD0Q\x1cT\xa7\x1as\xa6\x19c\x88r\x0c\ +\x11\xc7i:\x8956:%\x12}\x1e\xcf\x09V\x08\ +\x9ak.F\xd8\xe8\xd9\xc6\x95\xd6\xef7\x16\xc2\xb8\x80\ +'B\xc9\xb7\xda\x8abc\x94\xd6/a,\x0e~J\ +Ej\xc0X\x14+#\xb8P\x08\x82\x860\x9d\x8a\x09\ +UXIB\xc5\x15\xbb\xa8\xef\xa46\x13\xe2\xf9\xd5\xfe\ +5\xc4\x08a\x8c\x1b3\xe1\xa0\xac$`\x7f\xc4\xb0R\ +\x9cR\xc6z\x18M5\xd5\xd7\x14\x8fy\xfc\x88\xf2\x0f\ +\x88\xe2\xf4\x92'7\xc0\x09\x18\x01O,\xb4\xd2\x8ah\ +\xa4q*\x8c\xe6\xa9\x0c0\x88\xda\x94\xb0\xe8\xa9\xe9F\ +\x8c\xe2\xcfd\xcb\xef\xe1{\xad\x15g/\xe2{\x85\x19\ +#t\x22\xb0\x11\x94\xeb4\x05\xcf\xcb\x94).'\xcc\ +`CD*E\xf4\xa8Oc\xf9\x95\xce\x8fe\xcc\x1f\ +\x04\x00\xc7\xc0\x0f.\x0f`\xad\x19x\x1dX\x0b\x85S\ +-{\xce\xa9\xa1\xa9\xe0\xd17\x98\x93\xbe\xa4\xfb\x1f\x1a\ +@^*\xff\x85\xa2\xa1\xf4\x08\xa6\x18\xe5=Lj\xa9\ +\x9e\xac|\xa8#\xcf\x1e\xfb\xad-\xfc \xef\xd9\xdd\xdb\ +:\x9f{\xfb\xc6\x90\xb7\xa36\xfbY\x14K\xc8P&\ +\x858\x85\x16\xdc\xf2\xb1\xc0L*\xa6\x8c\x19\xa1\xc3U\ +/\x05\xd8\x8b(y\x0a\xde\xe3\xad/\xfb\xe2\xc4\xc8e\ +q\x0a\xc2\x18-\x9eZvmi\xdbl\x9d\xb7\xb7\xd0\x02\xa1\x03\x11\ +\x0a\xd2\xfewp\xa9\xcb\xc0b\x90U\x12RVNb\ +J\xb0\xe1\x062\xa1\x072\xb0_\xa8\xab,\x5c\xf3T\ +>9\xb1Rj\xf4\xff\xa9\xaeRp\xe6K\xb4\x12\x0c\ +.PN\x08\x13\x13\xc8u\xc3CF\xf7\xad\x84\x16}\ +\xc5S\xd0d1z\xb5\xb0\xaa\x98\x1dU\x9f&\xcb\xfe\ +km}^\xe6>?5\xa5\x03\x84\x8e\xad)\xcc!\ +\xd9o\x1f~\x9a\x1fO\x9c\x16E\xf6\x97ko\x07\x06\ +\x08\x05\x82\xfc\xc6m!\x9b\xa2\xf9\x08\x9e\x96E\x162\ +5\xf7\xf3j\x9d/m\x18:~\x80Ia\x9a\x9c\x10\ +\x17\xc4\xa1\xd7;\x1dz8\xb6\xb5\x87\x11\xe4\xea\x1cV\ +\x16`D\xd8\x94\xfc\xee\xc1g\xbf\x04&\xa3g\xc7C\ ++_\xdby\xcf\xf3\xf0:h\x91\x1c\xd58*\x99\x9c\ +i9M\x06#\xf4\xab\xd2.\xba\x93}\xc2\x8a\x92\xc1\ +\x8c\xa7f\x15f\x902L\x15G\xcaa\xa2\x81\xf1d\ +\x1b\x86\xc5\xb8/W\xfd\x0cB\xa2\x074\xc5\xb6m\x03\ +I\x9d\xefm{\x1c\x0b\x1e\x90\xec\xaa\xa6t\xbbx\x9d\ +\xdfC\xe0|\xb6\xe5\x95S\x8e$P\x03\xa9\xa6\x8f \ +\xa1\x14\x86\x96\xf2!\x7f\xd8\x03\xad\x185R(\xfd\x05\ +\x12\xf60\x01\xcd+\xdc\x1b_ ?;\x07\x95\xd8`\ +\x98\x02\xe0\x19\xaab\xb7r\xbbe\x1b\x8c\xb5\xc8\xeb\xce\ +\x9eM<\xa3\x95\xf4#\x02\x0eU9\x95\xfc\x11\x8ac\ +u\xa6|l\x1eF\x8a\x0d\x04\x00\xe4\x11P\x81\xc8\xd7\ +\x90\xc7\x84:\x19o\xb9\xad`\xc6p\xb5\x85k%\x04\ +\x19\x1d\x11 \xfe5\xb8\xbb\xf9\x04\x17\xc05\xccM_\ +iG\x0e\xf4\x02\x5c\xb8\xda\x81g_\xab\xfe9\xa2\x82\ +D\x03b\xd1?CT\x9d\xaaR(F\xe1\xb7\x89\xe6\ +\xdc\x8a\x01=\xe8whx\xb00\x0cj\xaf\x0as(\ +7\xcc\x80\xf9R\xf43\x92\xf4\x80`\xe8O$R\xac\ +\x08\xb4\xbd\x02\xe0#=\xfa\xbbg9\x0d\xb99\x7f\xf5\ +/\x93\xea%\xe2\ +\x00\x00\x0b\x14\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -g\x0d\x0a aria-l\ -abel=\x22\xce\xb1\x22\x0d\x0a \ - inkscape:trans\ -form-center-x=\x227\ -.0618931\x22\x0d\x0a \ - inkscape:trans\ -form-center-y=\x22-\ -1.1769834\x22\x0d\x0a \ - style=\x22font-s\ -tyle:normal;font\ --weight:normal;f\ -ont-size:317.421\ -60034px;line-hei\ -ght:1.25;font-fa\ -mily:sans-serif;\ -letter-spacing:0\ -px;word-spacing:\ -0px;fill:#00d4aa\ -;fill-opacity:1;\ -stroke:none;stro\ -ke-width:7.93554\ -115\x22\x0d\x0a id=\ -\x22text4524-9\x22>\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ - \x0a\ + \x0a \x0a \ +\x0d\x0a \ -\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0a \x0a \x0a\x0a\ +\x00\x00\x05\xf0\ +\x00\ +\x00\x15L';\x9b\xc3\xce\ +x\xa7-\xef\xaaT\xad\xf5\xb4\xaf\x09\x89w\x89\x14B\ +\xe9\x82S*'\x1eA\x84\x04\x08~\xd9U3\xa9\x02\ +\x7f\xd7\xf0\x99f&-\xd5\x0a\xdc\xccR\xb3^\x84\xb0\ +M\xa3\x87\x18\xcbj\xda.=\xf7o\xebz=\x8d\xa2\ +\xedv\x1b\xb6\xc2\xd0\xd8e\xe4\xe6Vk\x95\xea*j\ +\xe5\xbd\xf9\xed.\xdd\xfcV\x10VfcS\xbd\x80%\ +tX\xea:z\xfd\xe1u\xa7\x0cP\x98\xd5\xd9a\x99\ +\xc1\xee[\xda\xecK\x10B\xd1\xd0Y\x18=\xd1\xd2f\ +\x8b1K,\xa5\x8c\x10\x89\x00)\xb0\x08\xaa\xc7\xb2V\ +\x0fAY]\xf4\xa6\xa6i73\xb5Z\xd5\xf9\xbdN\ +\xcdje\xcaj\x07\xc7\xc08;\x18\xaf7\xb6h,\ +\xb24\xd2\x85^\xe9\xb2\xae\x22\xc8S\xe4_\x83\xfdl\ +\xa5k\x95\xa9Z\xb9\xb9\xbb|\xb7\x12L\x1a\x0b\xb0\x01\ +\x9f\xa6\xbf\xbc~\xb3\x1b\xc18M\xa7\x7f\x18{\xb7\x1f\ +\xc2\xe3\x0c\xd4\x8d\xd9\x00\x9f\xfc\xebN<\xcb\xd2)\xe0\ +\xbcR\xf5u\xbeRK\xed\xb0\xf8\x01\xfc\x9bE\x07\xc5\ +\xc0\xb8~\x5c\xeb\xc3\xa2\xbbe\xad\xde%l4\x9e,\ +]\xe5nR\xf4k\x9d\x17\xc5\xcfn\x13\xdf\x8b:?\ +\xa3\xbd\xa3\xfb0\xa2^\x1c\xb3\xa8\x0d\xb3\x19ezQ\ +\x1d\x10p#\x8c\xda\xe8W\xca\xdei\xdb\xfa\xd5q\xbe\ +\xaaMz\xe7\xac\x7f\xb4\xd6l\xf1;(<[\xfb\xad\ +\x99\xb19\x00=\xf7\xd5\xa66\x9d\xd0\xea\xc5_Pa\ +P\xb7=\xc9\x9fC\xc9\xd9\x15\xab\xfa\xb1\x00\x14\x0c\xd4\ +\xda\xa20\xdb\xe9}^\xe57\x85\xf6O\x1c\xcb\xab\xc6\ +\xb5\xb9_\xdb\x8d\xee\xd21[\xab\xfa\xf6\x00\xae\xdb\xc6\ +I\x18\x97\xc2?\x88A\xfa\xde\x03w&\xf0\xf1\xdey\ +\x1c\xbe\x05\xbc\xf9\x1a`\x12\xf2\x9ex'mM?y\ +\xbdE\xf6\x9e. %\x81\xdd\x14z\xaa\xefui\xb2\ +\xeceU[s\xa7\xa7\x17\xa8y\xf6\xc3\xa0\xe9KS\ +\xe8f\xeb\xba\xb7HmUY9\x92@\x03JU\xa1\ +/Q(\xaev\xd2B\xd5\xfar\xe7\xceU\x97nH\ +h\x93\xa7]r]\x06\x9bo]\xb7q\xed\x22s]\ +n\xb7\xc5\x1a\xa8\x92\x9a\xc2\xd8\xb9\x7f\xb1h\x9e\xfd\xde\ +7\xc6f\xda\xb6\xaa\xb8y\x06*\x03=\x07H\x07\xbd\ +n/67\x1fuZ\xd7\xa6\xd0\xe0\x9c#*n\xb3\ +\xb9\xb4\x10\xda\x98|\x93gzL\xd1\xe5\xd0\xb9\xd7m\ +4\xaa\xadnUf\xb6s\x9f\x1c+\xb7y\x09\x8a`\ +\xdf\xed\x09G\xfc\x8cE{\x02`\x84\xdb\x08\x1d+:\ +\xa0Z^T\xb7f\xeb\x22\x81\x8c\xaa\xa2\xd2\xc7\xab}\ +2\x06r\x04\xe9@\x92\xb1\xe4\xc4\x9d\x14\xce\x14,C\ +\xca\x92X\x9c*!:\x82\xc3D\xc4\x02\xd33n\xc2\ +|~.\x047=9\xa3[\xa9\x87|\x95\x7f\xd2\xd9\ +!S\x87}7\xd6By\x06\x85z\xd4\x90\xe6\xa5D\ +x\x0c\xe3\xf4V\xa7@\xa9\x1b\xa3l\xe6\xd2\xb0\xe3\xda\ +ly\x00k\xc90\xef\x1a\xc5\xb2_\xc3K\xc6\x19\xfb\ +\xf7\xea\xa3\xe8\xa4\xfa&\xc8{\xeb\x8e\xe0\xdf\xdd\x9f\xb7\ +p\x1c\xff\xdd39\x84`\xca\x12hgl\x00\xc1\xdc\ +\xabzc\xf5\x81)GU8-\xe1:\xd0o\x8c\xcb\ +\xa1+\xbd\xf8\x8fJ\x0fZ\xb4\xcd\x1f.\xa18\x13*\ +\x89d\x13\xf0nr\x18%P\x94\x12\x02\xc5\x13\x8a\xc2\ +\x84\x12\x89\xe8U\xff\x00\x18F\xfd_\xbc\xefa\x84\x13\ +(\x17:v?/\xcf\xf7)\x92r\xa5\x8e\ +\xfa\x14\x09\x13I\x99h\x85E\x0eq\xa8\xf5\xf4fS\ +\xd7}\xd9G\x93\x97S8\x9c\xb4m\xa5\xcd\xa0\x00J\ +\xd6S\xd6\xca2\x05el\xadzl2\xd4J\xf7\x85\ +?\xc5\xbd\x94}90\xe9\x18\x98,$\x8c\xf18\x9e\ +\x04\x18.pL\x08\xce=(Z.0\x92\x93\xe6\x0b\ +\x92\x89\xf8\x1f\xca!\x94|\x04J\x8aC\x91 \x12\x03\ +\x071PTJ\x1e'^ C\x81\x18\x16b\x02\xf0\ +2&HB\xe2\xef\x19\xcc\x81\xeb\xdd\x09k\xe0P\x83\ +\xcb\x18\xdc\x9a\xd3\xf4\xf3x\x9f\x99\xf3\x05R\x92\x1c\xa7\ +\xe4\xbd\x170\xc0F\x90\x98B\xf7\x0a\xa1S\x08\x8a\x08\ +\x86D\xc1\xbd\x05z\x18or\x828:*\x8c\xef\x99\ +\xde\xba(\xf2u5\xbcJ\xc3QI!L\x09\xcc\x1b\ +bd\x1f\x9c\x06s*\x122$\xb4;\x9de(i\ +\x0c\x1d\xf8H\x03s\x02\xceCJ\x08\xa2\xc9\x99\x5c\xd0\ +8\x88\x83QP;\xb7_\xee\xe0\xe5\xf0,\x16;x\ +\x87\xbaQ\xb4\xfb\x08tP\x0b,\xc9\x09\xac\xd6l\xca\ +\xeck\xc3JB\x990\xb8\xbf\x8c\xc1\x8ab\xa0]\x1c\ +\x9f\xc0\xea\xba,\x06N\xc6\xa7\xb0\x12\xe8\x15\x80\x1d\xc5\ +\xe7a\xc5O\x02u!\xb2\x8c>\x03T\x0a\xc5\x22$\ +\xfe6\xa0\xc2\x81\x94H\x8e);\x01\x95\x85\x0cc,\ +\xf1)W]\xc3\xe5\x0c\xc5cd\xa5$\x8cY\xcc\xbb\ +\xfb\xe9\x18Y\x9fFU)\x9fEU\x0a7&$\xe3\ +o\x83*\x0d\x99@\x82\x12:BU.\xa0]\x8d\x81\ +\xea.\x04\xa0\x19\xa1\xaa\xbb\x83\xc5\xd0\x1e\xceS\xf5)\ +\x90\xd2D\xdd\xa4\xe2Y\x902\xb8\x85&\xdf\x0aR\x81\ +\x008*F \x95\x84c\x84O!E!\x8e\x91\xe4\ +\x08\x89SL\x19D\x03\xefl\xec3DEOA\x95\ +\xa8d\xf1L\xa2RL\xa5\xfc\x9a\xa8\xce\xa2e\xfb\xf2\ +\xbe<~\x87\xea\xbd\x84\xf4^\xfaC\x84\xe2\x84\x08:\ +\x09\x08\x0f\x05\x9cXR^\xf9\xc3\xd7.\x0c\xaf]\xfb\ +\x175\xb7\xea\xcc\xfd\xd7\xe9\xfa\xc5?\xedQ\x0d\x1e\ +\x00\x00\x0e_\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata12\x22>\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \ +\x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1860\x22\x0a inksc\ +ape:window-heigh\ +t=\x221017\x22\x0a id\ +=\x22namedview8\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x229.833333\ +5\x22\x0a inkscape\ +:cx=\x2230.969878\x22\x0a\ + inkscape:cy\ +=\x2234.947767\x22\x0a \ + inkscape:windo\ +w-x=\x2260\x22\x0a in\ +kscape:window-y=\ +\x2226\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22g897\x22\x0a \ +inkscape:documen\ +t-rotation=\x220\x22 /\ +>\x0a \x0a \x0a\ + \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0c\xd4\ +\x00\ +\x00~Rx\xda\xed\x9d[\x8f\xdb\xc6\x15\xc7\xdf\xfd)\ +X\xf9!6*Rs\xbf\xc8\xbb\x0e\xda\x04)\x02$\ +@\xd1\xa6h\xfaTp%j\x97\xb1V\x5c\x90\x5c\xaf\ +\xd7\xdf\xaa_\xa4\x9f\xa9\xff\xe1]\x97\x8d\xf8@\xa1H\ +<2\x0c\x88gng~s\xe6\xcc\x1c\x92\xda\xb9\xfa\ +\xfa\xd3\xfd6\xf8\x98\xe4E\x9a\xed\xaeg4\x22\xb3 \ +\xd9\xad\xb2u\xba\xbb\xbd\x9e\xfd\xe3\xa7\xefB3\x0b\x8a\ +2\xde\xad\xe3m\xb6K\xaeg\xbbl\xf6\xf5\xfbWW\ +\x7f\x08\xc3\xe0\x9b<\x89\xcbd\x1d<\xa5\xe5]\xf0\xfd\ +\xeeC\xb1\x8a\x1f\x92\xe0\xcd]Y>,\x17\x8b\xa7\xa7\ +\xa7(m\x84Q\x96\xdf.\xde\x06a\xf8\xfe\xd5\xab\xab\ +\xe2\xe3\xed\xab \x08\xd0\xee\xaeX\xaeW\xd7\xb3\xa6\xc0\ +\xc3c\xbe\xad2\xaeW\x8bd\x9b\xdc'\xbb\xb2X\xd0\ +\x88.f}\xf6U\x9f}\xe5ZO?&\xab\xec\xfe\ +>\xdb\x15U\xc9]\xf1z\x909_o\xba\xdcN\x9b\ +'^e\xa2\xd6\xda\x05a\x0b\xc6B\xe4\x08\x8b\xe7]\ +\x19\x7f\x0a\xf7\x8bB\xc7SE\x19!d\x81\xb4>\xe7\ +\xb8\x5c\xcb\x02@\x1f\xf0\xbf\xcb\xde\x0a\xa2\x22{\xccW\ +\xc9\x06\xe5\x92h\x97\x94\x8bo\x7f\xfa\xb6K\x0cI\xb4\ +.\xd7\x83jZ\x9e{\xad\xeeA\xde\xc5\xf7I\xf1\x10\ +\xaf\x92b\xd1\xca\xab\xf2\x83\x11\xa6\x95 ]_\xcf\xa0\ +#\xab.\x9e\xd2uy\x874[_\xde%\xe9\xed]\ +\xd9_\x7fL\x93\xa7?g\x9f\xaeg$ \x01\x84A\ +\x9b\xd0*\xba\x5cg+\xd7\xf2\xf5\xec\xa1\x5co\xfe]\ +\x16Q\xdb\xfdV\x89e\xa7\x00\x89,\x8bd\xf0\x86\x11\ +E\x92\x15\xdd\xd8\xcd<`\x84\x91\x90\x88\x90\x98\xb7\xb3\ +\xf7(vu\x9f\x94\xf1:.cWE\xadk+1\ +U\x06d\xc1\xd8-\xff\xf6\xedw\xf5\x15\xaeW\xab\xe5\ +?\xb3\xfcCs\x89\x8f\xcb\x10\xdfd\x8f\xe8\xc8\xec}\ +'\xbeZ\xaf\x96\xa0}\x1f\x97\xef\xd3\xfb\xf86q\x03\ +\xf5G\xd0\xbdZ\xf4\x09{\x99\xcb\xe7\x87\xa4\xaf\xb4\xae\ +6O\xeaa;i\xbb\xeb\xd5}\xea\x0a-\xfe^\xa6\ +\xdb\xed\xf7\xae\x91Y\xb08\xa84-\xb7I/\xbcZ\ +4\xda7}[\x0c:w\xb5h\xbb^]\xad\x93M\ +\xd1SqW\xaa%r\x1f\xe7\x1f\x92\xbcm\xa7#\x9f\ +\x16E\x99\xad>\x5c\xcf\xca\xfc\xb16\x06\xf7)\xca\xe7\ +-\xf4\xcf0.\x9bm\xf6\xb4\xfc\x98\x16\xe9\xcd\xb6O\ +w\xb5\xff)\xcf\xb3'\xfa\x03\xa6\x7f^v\x09y\xb2\ +\xf9\xd9\x8d\x22\x19J\xfe\xb5/\xc9\xf2\x14\xb3\xf7z\x16\ +?\x96\xd9\xecH\xa1J\x9d\xa3\xfa;\x16\x0fqy\xd7\ +\x03/\xf3xW\xb8q\x81\xb9\xae\xe2m\xf2\x86D\xe6\ +m-\xdd\xc2\xfb\xbc\xa10\xa69y;\xebK4=\ +\xdb\x00~\x98?n\x93e\xf21\xd9e\xeb\xf5\xbb\xa2\ +\xcc\xb3\x0f\xc9\xf25\xa9>\xcdeX\xd9\xfe\x12\x8e\xef\ +\xa1\x1cT\x02\xed~\x0c\xd0\xa59\xfe\x07?\x04\x12\xdf\ +BY}\x0d\xeb\x16;q-m\xb3~\x0e\x06\x95\xb8\ +>\xba\xde\x08iMg\x02\x18\xcfj\x9c\xea\xb1u\x03\ +X}\xeb\xa6\x92\x9bGk7\xe3\xeaz\x1e`>\xab\ +l\x9b\xe5\xd7\xb3\xd7\x9b\xea\xd34p\x93\xe5\xeb$o\ +\x93T\xf5\xd9K\xca\xe0\x06`\x88\x98\xc6\x8d8\xbb\xf9\ +%Y\x95e\xb6M@\xcf\x19/mG\xec6\x07\x84\ +S\xf2\xc7t\x9d\x9cJ\xe8\xc6\xd2\xa9\xd75t2\xb5\ +\xb8\x8b\xd7\xd9\xd3\xf5\x8c\x1d&>\xa5;$\x84\xad\xef\ +1\xc2\xbc\x90\xa3sG\x84vY@\xb6\x03%\x1aa\ +q\x97=\xb9\x9e`\xec\xe3m\x91\x1c\xd6\xf69\xcb`\ +D,b\x94sK\xe5a\xf2\x0a\xfe-d$R\x92\ +h%\x8eR\x9f+w\x18iK\xb9zAOT\xa0\ +_\xea%\x8a3\xf9B\xda}\xfc)\xbdO?'\xeb\ +~\xa8\xfav\x1f\xf3\x1cS)\xdc\xc6\xcfI>\xf0\xd8\ +\xc3\xe9\xb4\x8b\x1f\xc2\x9b\x1b\xe7\x9f\xab\x19^\x1b\xda\xd5\ +m\x9d-\xce\xd3\x18\xa5o\x92\xed\xf5\xec\xbf\xff9,\ +\xdb\xcd\xaep\x85V\x92\xbc\xeaCD\x145\x96\xd3\xb3\ +\x99\xd1\xa9\x10\xeb\x89V\xd6\xf0n\x10\x9a\xd9\x97A\xe9\ +\xea\xfbr\xe7\x9c\xea\xf6]%y\xaa\x86rOT\xa0\ +\xe7K\xc6ud\x84\x10\x86\x09\xf6\xf0\xe9\xdd6\xdd%\ +\xcd\xb0cf2Y\xe7\xdc\xc4\xf7\xe9\xf6yY@\x8b\ +\xb0H\xf2t\xf3n\x9b\x94N\x0f\xb7\xe0a\xbf\xb2$\ +(\xfa\x04\xdb\xdf\x138?\xe0\xe6\xfcZ\xc4qu\x11\ +6\xf6\xba\xa4\xadG\xd8ag\xb3\xef\x0edd\x85\xa2\ +\x94S:0\xb82\xf9T\x0a\xc9Dh[\x8f;t\ +Un\x8d\x0a\xa8\x22\x11\x15\xca\xa89\x95<\x92\xce\xd2\ +\x82\x90G\xc4R\xab\xe7\xa1\x80\xc4\x12\x19\xac\x82\xd0u\ +\xd7\x18=\xd7\x11\xd7\x9c\x1ax\x15d\x97\x9a\x8a\xb9\x8d\ +\x98\x96V@\xa2#E\x88\xec\x05<2DJ:'\ +A\xa8\x22c\xb5\xb0s\xec\x104\xe5\xd2\xe5&\x11c\ +\xa8\xca\xb9)\xc6\x994m\xbb\xa6o\xb7k5\xa4\x10\ +\x11#\xd9\xb0\x1c\xa3\x91\x12\xdc\xc8`\xdb7\x15R7\ +\xbeFY\xe8\xdc0\x99\x87\xd6uL\x9b\x00i\x82*\ +\xc9\x91\xcbFV\x1b\xe8\x88z\x09g\x86\xa16\xa8A\ +\xa9\xa4*`\x91\xa2\x8aY\xa7\x86\xb5Bs\x114\x15\ +T\xe5\x98\x92\x82p\x88,\xcaC3\x86\x1a\x18c\x96\ +C\xb5\xc8\x12\xa6\x15dU\x0d\xa6B\xc9\x99u\xd5\x8b\ +HK\xe5$Mo\xe7\xa1A\x92\x00\xc2\x00L,\xea\ +7\x0e\x8ehru(\xd0\x1dcQ\x7f\x80\x1a\x88\xe0\ +\x5c:\x91R\xc2R\x1a\xa0\x1dh%\xe4\x1cjiA\ +\x89\xadrU\xe8\xe6LE\x82\x10\xcdQ}\x8dD\xcf\ +\x05\xaaG\x05u\x8bn\x14\xf8\x1c@\x98&\xba\xe7\xd7\ +\x0do\x0b\xafa&\xb0dX\x83\x89f\xa1\xf2\x5c\xd9\ +\x88S%D\xf0M`]\xf7\x15\xb1v.\x0dz\xcd\ +1 \x81q\xa3\xed\x9c\xd2\x5c\xc2$\x146N\x81\x81\ +\xd2\xd2P#{\x91V\xe8\x9a\xd6\x8a9\x91\xc1\x1e\x17\ +\x03\xaeL$\xb5\xd2\xdc\xce\x15`\x0a\xce\x14\x0d\xf0M\ +i\xcb`<]\xb3\x12\x9d\x13J\xc1\x1a\xd1]a\xe1\ +f\x03\xc9\x22\xa3-!|n\xd09@\xd72\x10\xc0\ +b4arnLD\xe1$\xd0\x0d\xc1\xd0\x1fn\x04\ +\x0c\x9e8C\x15\x9c\x06\x1c\xf52j\x94\x99c\x94\xa1\ +\x806\xd4\xe5S0\x06\x8by\xa1`\xd6\x92+XT\ +\x8d\xcb\xb5[\xdbe\xa0#\x87\x11\x83B1\x9a\xd4\xd9\ +\x05\x16[#\xb8\x22\xac\x17A\x0b\xd4\xc4\x04\xe6\x01\x05\ +\x19\x18\xa7\xb4\xbdA0\xcc#\xf4\x85\x88yg\xda(\ +A\xb8!\xd6\xd9\x88D\xc1\xa0\xa9\x8a\xc9\xce\x02i\x00\ +\xbb\xd3\x5c\xc2\xff\xc0\xdc\xa04\x00\xaaF\x1d1o\xd3\ +\xda\xf6\xd4\xdc\xb9+\xaa\x99\x0e\x1a\xbb\x10\xbdD\xc2\xe8\ +\x88`N;\xd8\x13P\xd3yck\x0a\xfbfL;\ +^\xb5\x0b#\x15\x98\x81\xd80\xdc\xc3:\x0c\x0cN;\ ++\x86\xfa0AQ\xf9\x08\x19ib\x98\x9e\xc3N\x8c\ +\xd2\xb4\xb2<\xe8\xcaa\xff\x14f\xcf\x98\x9b\xd2\xf0\x12\ +\x94\x09\xe3L\x14\xdd\xa5\x0a\xf3\x12\xdeAI\xab0&\ +\xce$8:\xe2\xbc\x0b\xc7\xf2\x05]\xeai\xa2\xaa\x82\ +\x86\x1bh\xd5\x8b\x1aGe\x9d\x87i&+T\xad\xe7\ +\x1cw\xd5\xba\xda\xa4\xee=@73\xd1\xa1N\xa3\xa6\ +\x16\xe7w\xd0I\xcc\x22\x19\xb4Sl\x1e\xaaj\x81\xe5\ +\x02,\xaa\xd9-1\xbd\xeb\xd1W&\xe8\xbc\x1a\xdc\x88\ +\x16\x0a\xc8;\x86|(\xacgU\xa5'8j\xc2\x09\ +\xecCD\xccPFh\xe7\x83`E]\x89\xcf\x87\xfb\ +\xde\x17\xd6\xa7\x8fn\xb9\xdc\x95g\xd7\xac2O\xca\xd5\ +\xdd\x9e\xacY\x9d\xbe\xfa)\xf99\xf8\xcbs\x9e\x04\x7f\ +\xc5\xe6g\xbb\x8d\x83\x1f\xb1H|\xf5.l\x97\xd1\xb0\ +\xae\xe1!Y\xa5\x9bt\x85\x106\xdb\xbdX\xe8\xfc\xda\ +\xf5\xd2z\xd5o>-i\xf7\x9eW\x8b\xdb\xe1\xce\xc0\ +e\xb8\xa5\xc0\xd8\x14\x19\xec\xb4\x11\x04\xe5\xe9'l\xb5\ +1\x1a\x9cP\x09kv\xff\xfa\xcb\x90\x19\x01;g\x95\ +K\xad\xc6\x80\x89\xb7]d\x86]f\xab\x85\xdb6I\ +\x98\x0b\xf2\xabN5l2`\xf0\xce1(\xd3\x09\xbb\ +]\x9e\x82a\x10\xa1t\x97\xd2\xee\x10\x9b\x04\xbb\xd7E\ +\xd7\x98\xa1\xe2(\xae\xe98\xb5\x0co`c/\xac\xff\ +m\xea\x1eRg\xc6V\xc2\x90D+w\xbb\x12\x8c\xe0\ +2\xcf\x1ew\xeb\xa1\xf0\x97,\xdd-o\x10fl[\ +)\x22\xc0$\xdfbWW.\xbb\xe2\xeb\x18[\xe1<\ +\x8f\x9f\xf7\xf6\x1bN\x9am6ER.\xbb\x90\xa4W\ +\xf0!Na,\xd5v~Y'\x06\xae\x0bA\x1dB\ +\x14}Pq\x82\xb9\x00];d\xceZ\xe8\x131\x0f\ +\xb9\xa7~D]\x09j\xcc\x90\xba\x98\x9a\xba\xf2\xd4\xcf\ +\xfb\x17US\xb7SA\xd7\x1e\xfa\x11t-%\xdbs\ +0fb\xe8\xd2C?o\xe9\x94LL\x9d{\xecc\ +\xb0\xb7\xab\xe9dn\x9dy\xec#\xb0\x8b\x89\xb1[O\ +\xfd\xbcc\xa7jj\xea!\xf5\xdc\xf7\xb9s\x8b\xf0Z\ +]6J\x0a\xbd\x8f9A]\x88\x0b\x87I~\xf7x\ +\x02;\xb3\xf6\xd2\x81RH<\xf7\xf3N\xa6\xf5\xedl\ +\xb2X\xc9/\xaa'\xb8\x0b\xca\xf9\x89`i:\xec\xd2\ +\xdf\x8f\x19c\xeem\xbcd\xa6\x8b\x97\xfc-\x99Q\xe0\ +\xa7\x8f\x98\xbc\x83\x1f\x05~\xf2\x98\xc9\x1b\xfc\x08\x07\x7f\ +\x89\xa0\xc9o\xe0\x0f\xc1S\x13\x19C\xd9A\xd8$8\ +\xb5Z\x8a\xc9\xc8{\xec'\xb0s\xab\x0e\x03\xa7\x8a\xbb\ +\x98.p\xf2\xdc\x8f\xb9[;\x04Y\x07N\x15\xf7\x09\ +\x03'\xe3\xb9\x9fw3jj\xee\x08\x9cF\xdc)X\ +\xb9\x97W_\x06o\x0e_m\xfd\x8d\x83\xc7\x86\x86\x18\ +b\x0eB\xa7i\xc1#tR\x1e\xfcy\x8bw\xb1\x93\ +#?e\xecD=\xf8\x11\xe0\xd9\xc4\xe0\x11;1\x0f\ +~\x04x11x;\xe6\xe6\x98w\xf1TM\xce\x9d\ +\x8e\xb9?\xf6E\x91\xb7&\x92\xdc2E/\x1a<1\ +\xff\xac\xef\x98\xbb\xb0Z\x13q\xe1\xe8\xc9\xdf\x88?A\ +^I\xa6\xb4\xbdp\xfcDB\xffF\xea\x08_\xd38\ +ye'\x8c\xa0B\x1fB\x1d\x91\xd7J\x11{*\x84\ +\x9a\x8e\x9a\xe9\xc9\x1c\x8e\x0f\xa5\x8e\xb0\ +\x13\xab\x8d\xd0\x07\xa1T\xcd}\xbaP\xca\xbfhp\xc4\ +\x9dIf8=\x08\xa4\xa6\xe5\xae\xfc\x8b\x06c\xdc\x8c\ +j\xb8O\xf8 \xca\xbb\xf7#\xee\x5c)&\x0e\x7f\xef\ +4-w\xe9o\xca\x8f\xb1w\x17B9\xf0S\x86P\ +g\x1d\xbc\x10k\xf32\xf8&\xf5\xf7\x0e\x9eM\x0c\x1e\ +\x01\x94\xf2\xe0G\x80o\x96V5\xe1&^z\xf0\xe7\ +]\x85\xf2\xbf\xc99\ +\x22\xcf\x0c\xe3\x96\x9e\x88\xa0\xa6#\xef\x9eB\xf9\x18j\ +\x84\xcd\xb71\xd4\xb4O\xa1\xfcf~\x0cz61\xfa\ +\xea)\x14\xf5\xe8G\xa0\x9f>\x8e\x1aq\x8f\xf2\xcb\xdb\ +\xcf\x1f{\xfa\x8bDR\xec\xfcc\xef\x1b\xb3\xf9\x15\xf6\ +M\xeao\x95\xfd\xa9\x83\xa5\x04\x95\xe4\xc5\x83\xa5dD\ +\x88\x96\xcc\xd6\xe7J\xf5W\xa1P$\x12\x82)w\xca\ + \x8d$Q\xa8\xa6;W\xeav\xc8\x1f\x0d\x88\xde\xe2\ +\x07M\x0c\x8e\x86E\xbdJ3\xc3\xab\xd3\x08\x8d\xd1\xcc\ +\xda\xb7\xbd\xb9\xdc\x9e(\xdc\x1f|\xc5(lGu\x07\ +_\xb5\x97\xd6\x1d)\x86U[\xcd\x19\x06H\x0b%\xc5\ +\xdb\xd9\xbe^\x8a\xba?\x08\xdb\x1dg;\xb4\xca\xbd\xc3\ +i\x97\xaf-\xb7\xebx\xd5Y\xc1\xdeec\x05$\xb2\ +\x5c\x1a\x80`\xe3\xac`O:\xde\x0aN\x8fx3\xca\ +\xf5\x90\xd79\x0fN\xb7u\x9d\x13\xd2\x0e\x1f\x81w\xf3\ +\x86\xbb\xc3\xee\x0c\x1f\xbc\xc8\xdcO6w\x8e\x1e\xd1\xda\ +\x0e\x8bav\xf2Hs\xce%\x1dH\x9bg<\xc4\x08\ +:\x14\xe7n\x82\xbb\xf319\xb3rp\xbc\xf2\xaf\xe1\ +n\xceQ{\xf1\xd0O\x0c\xb3ULH-\xff\x0f\xac\ +\xdb\xa3\xe4\xf6\x1c\xc4K\xb4\x87\xcf\x01;\xde\xccF\x8c\ +\x8aa\xe06\xe4\xad\xb9\xb2j\xf0x\xb2\x8e\xf5\x10y\ +\x13\xcb\x88<\x06n\x08\x1f<\xaao\x81\x1b\xf8$N\ +\xe5\xe00\xe3\xdb\xce\x01\x5c\xb9\xa3\xb4\xdf\xbf\xfa\x1fY\ +H\x8e\x0f\ +\x00\x00\x05\xf9\ +\x00\ +\x00\x15xx\xda\xedXmo\xdb6\x10\xfe\xde_!\ +(_\x12\xcc\x92\xf8*\x91\xae\x9dbCQt@\xf7\ +e\xeb^\xbf1\x12m\xab\x91E\x83\x92\xe3\xa4\xbf~\ +G\xd9\x92%[\xee:\xb4]\xb1aJl\x88wG\ +\xf2\xee\xb9\x87G\xd2\xb3\x17\x8f\xeb\xc2{\xd0\xb6\xcaM\ +9\xf7q\x88|O\x97\xa9\xc9\xf2r9\xf7\x7f~\xfb\ +*\x10\xbeW\xd5\xaa\xccTaJ=\xf7K\xe3\xbf\xb8\ +}6\xab\x1e\x96\xcf<\xcf\xdb\xe5Y\xbd\x9a\xfbL\xf8\ +\xae\xb5\xd2\xf9rUw\xcd\x87\x5c\xef\xbe3\x8fs\x1f\ +y\xc8c\xc2;\x88\xf3l\xeeCw\xb2\xb79\xce\x8c\ +\xf7\xda\xf2\xbeJ\xd5FO\xfb\x9a\x90x\xd7H!\x94\ +.8\xa5r\xe2\x11DH\x80\xe0\x9f\xdd4\x9d*\xf0\ +w\x03\x9fif\xd2R\xad\xc1\xcd\xcd\x22\x849\x1a%\ +\x04XV\xd3v\xdc\xb9\xbf\xaa\xeb\xcd4\x8av\xbb]\ +\xd8\x0aCc\x97\x91\xebXmT\xaa\xab\xa8\x95\xf7\xfa\ +\xb7St\xfd[AX\x99\xadM\xf5\x02\x86\xd0a\xa9\ +\xeb\xe8\xe5\xdb\x97\x9d2@aVg\xc7a\x06\xb3\xef\ +h3/A\x08ECg\xa1\xf5\x91\x966[\x8cY\ +b)e\x84H\x040\x81EP=\x95\xb5z\x0c\xca\ +\xea\xaa\xd75M\xbb\x9e\xa9\xd5\xaa\xce\x1ftj\xd6k\ +SV{8\x06\xc6\xd9\xd1x\xb3\xb5Ec\x91\xa5\x91\ +.\xf4Z\x97u\x15A\x92\x22\xff\x16\xecgk]\xab\ +L\xd5\xca\xf5\xdd'\xbb\x95`\xd2X\x80\x0d\xf84\xfd\ +\xf1\xe5\xab}\x0b\xdai:\xfd\xd5\xd8\xfbC\x13\x1eg\ +\xa0\xee\xcc\x16\xc8\xe4\xdfv\xe2Y\x96N\x01\xe7\xb5\xaa\ +o\xf3\xb5Zj\x87\xc57\xe0\xdf,:*\x06\xc6\xf5\ +\xd3F\x1f\x07\xdd\x0fk\xf5>a\xa3\xf1d\xe9:w\ +\x9d\xa2\x9f\xea\xbc(\xbew\x93\xf8^\xd4\xf9\x19\x1d\x1c\ +=\x84\x11\xf5\xe2\x98Em\x98M+\xd3\x8b\xea\x88\x80\ +ka\xd4F\xbfV\xf6^\xdb\xd6\xaf\x8e\xf0Um\xd2\ +{g\xfd\xad\xb5f\x87\xdf\xc0\xaa\xb3\xb5\xdf\x9a\x19\x9b\ +\x03\xd0s_mk\xd3\x09\xad^\xfc\x0e\xcb\x0b\x16m\ +O\xf2\xdbPrq\xc4\xaa~*\x00\x05\x03\x0bmQ\ +\x98\xdd\xf4!\xaf\xf2\xbbB\xfbg\x8e\xe5U\xe3\xda\xdc\ +\xaf\xedVw\xe9\x98mT\xbd:\x82\xeb\xa6q\x12\xc6\ +\xa5\xf0\x8fb\x90\xfe\xe0\x81;\x13\xf8xo<\x0eo\ +\x01o^\x03LB\xde\x13\xef\xa5\xad\xe9{\xaf7\xc8\ +\xc1\xd3\x05\xa4$\xb0\xdbBO\xf5\x83.M\x96=\xaf\ +jk\xee\xf5\xf4\x0a5\xcf\xa1\x194Ei\x0a\xa5l\ +S\xf7\x06\xa9\xad*+G\x12\xa8>\xa9*\xf45\x0a\ +\xc5\xcd^Z\xa8Z_\xef\xdd\xb9\xe9\xd2\x0d\x09m\xf2\ +\xb4O\xae\xcb`\xf3\xd6\x95\x1aW.2W\xe2\xf6S\ +l\x80*\xa9)\x8c\x9d\xfbW\x8b\xe69\xcc}gl\ +\xa6m\xab\x8a\x9bg\xa02Ps\x80tP\xe8\x0eb\ +s\xf7N\xa7um\x0a\x0d\xce9\xa2\xe26\x9bK\x0b\ +\xa1\x8d\xc9\xb7y\xa6\xc7\x14]\x0e\x9d{\xddD\xa3\xda\ +j\xa52\xb3\x9b\xfb\xe4T\xb9\xcbKP\x04\x87RO\ +8\xe2\x17,\xda\xf2\x8f\x11n#t\xac\xe8\x80jy\ +Q\xad\xcc\xceE\x02\x19UE\xa5OG{o\x0c\xe4\ +\x08\xd3\x90\x13$(=U\xa7nC\x09\x85H8\x96\ +D\x9ci!<\x02\x04\x12\x08\x13v\xc1O\x18\x80_\ +\x8a\xc1uO.\xe8\xd6\xea1_\xe7\xefuvL\xd5\ +q\xde\xad\xb5\xb0>\x83B=i\xc8\xf3R\x22<\x06\ +r\xba\xd2)p\xea\xce(\x9b\xb9<\xec\xc96[\x1e\ +\xd1Z2\xcc\xbbJ\xb1\xec/\xe2%\xe3\x8c\xfd\xf5\xf2\ +\xa3\xe8l\xf9M\x90\xf7\xdam\xc0\xbf\xb8\xaf\xd7\xb0\x19\ +\xff\xd139\x86`\xca\x12xgl\x00\xc1<\xa8z\ +k\xf5\x91*'\xcbpZ\xc2a\xa0_\x19\x97CW\ +z\xf1\x9f\xac=\xa8\xd16\x7f\xbc\x86\xd5\x99PI$\ +\x9b\x80w\x93c+\x96!l]\x1c\xf3\x09IB,\ +\x88\xa4\xf8\xa6\xbf\x03\x0c\xa3\xfe;\xde\xf70\xc2\x09\x1e\ +(\x1a\x94\x02N\xc3\x04\x09\x16\x8b\x09F!\xf8\x82q\ +\xec\x05\x8c\x842I\x92\x18\x83\x8f\x82s!c:\xe8\ +\xda\xc7\xe4J\xc7\xee\xef\xf9\xe5:ER\x85\xb8\x1a\xd6\ +)\x12&\x922\xd1\x0a\x8b\x1c\xc2P\x9b\xe9\xdd\xb6\xae\ +\xfb\xb2w&/\xa7\xb09i\xdbJ\x9bF\x01\x8c\xac\ +\xa7\xac\x95e\x0a\x96\xb1\xb5\xea\xa9IP+=,\xfc\ +)\xeee\xec\xf3aIO\xb1\x5c\x03\x96,$\x8c\xf1\ +8\x9e\x042\xa4\x22\xe6\x94\x13\x0f\xde\xb8\xc0HN\x9a\ +\x17$\x13\x81\xff\xc7r\x88%\x1f\xe1%\x05\xe6%\x88\ +\xc4\xc9$\xc08\x944!,i\x88\x89D\x12;\x84\ +\xa1\xdc1L\x89D\xf2\xdf\x0c\xe7\xc0\xf5n\x935\xb0\ +\xaf\xc1y\x0c\x0e\xcei\xfaa\xc4/\xf4\xf9\x0cII\ +F\x08\x0e\xf0'\x82\xc4\x94M\x08\x94)\x84\xb9\x07\xe7\ +\x87\x84S\x9c\xc4\xae|$\x90\x8e\xff\x0c\xb7uQ\xe4\ +\x9bjx\x90\x86}\x92\x86\x88\xcb\x04x9\x08\xd4>\ +:\x0d\xe6T$d\xc8f\xb75\x03\x81\x13)\x98\x1c\ +\xa6\xdbm\xe9\x01\xe7!%\x04\xd1\xe4B\x1ah\x1c\xc4\ +\xc1h\xf1\xed\xdc~\xbe\x87\x97&\xa9H\xf6\x8d`\xa8\ +\x1bE\xbb\x8f@\x07\xb5\x80\xc3\xc5\x19\xac\xd6l\xcb\xec\ +K\xc3\xea6\x1c&0\x1d\x83\x15\xc5\xc0\xb8\xee\xf8\xd8\ +\x83\x95\xba\x13\x0f\x17\xfc\x1cV\x22C\x18,\xa6\xf82\ +\xac\xf8c@EH)\xc6>\x01T\x1aR,$\xfe\ +:\xa0\xc2v\x94\xc0\xa9\x82\xb23PY\x08\x1b=\x96\ +\xf8\x9c\xab\xae\xda\xc6\xb0\xc8\xe5\x08\xaa\x94\x841\x8by\ +B>@\xd6\x8fC5cJ}\x12\xaa\x02\xea~\xfc\ +uP\xa5!\x13pD't\x84\xaa\x5c@\xb9\x1a\x01\ +U\xc2\xc1\x00Nzr\xa4\x00P`>\x22\xf82S\ +?\x96\xa7B|\x12\xa2LH\x96|-D\x05\x02\xdc\ +\xa8\x18AT\x12\x8e\x11>_\xfbpj\x05l\xa48\ +G\x94A,p]c\x1f`)\xfaG\x0a\xaa[\xfb\ +T\xca/\x89\xe9,Z\xb6\xf7\xf6\xe5\xe9\xed\xa9w\xfd\ +\xe8\xdd\xf7C\x84\xe2\x84\x08:\x09\x08w\xf7I \xe5\ +\x8d?\xbcpa\xb8pu\xbf\x07\x9c\x5c\xc6\xe2^\xc9\ +\x18\x9d\x00\x85\x1c7\x5co\x7fSh<\x9b\xb9\x1f\xad\ +n\x9f\xfd\x09.-\x1a%\ +\x00\x00\x07z\ +\x00\ +\x00(\x84x\xda\xddZ[o\xe36\x16~\xcf\xaf\xd0\ +j^&\xa8D\xf1\xf0N\xd7N\x81\xed\xa0@_\xb7\ +-\xfa\xb8P$\xc5V\xc7\x96\x0cI\x8e\x93\xfe\xfa=\ +\x94,\xdb\xb2\xadEv\xe1\xeez\xac$\x98!yx\ +\xfb\xf8\x9d\x1b\xa5\xe9\x0fo\xab\xa5\xf7\x9aUu^\x16\ +3\x1f\x08\xf5\xbd\xacH\xca4/\xe63\xff\xb7_\x7f\ +\x0a\x8d\xef\xd5M\x5c\xa4\xf1\xb2,\xb2\x99_\x94\xfe\x0f\ +O\x0f\xd3\xbf\x85\xa1\xf7c\x95\xc5M\x96z\xdb\xbcY\ +x?\x17_\xeb$^g\xde\xe7E\xd3\xac'Q\xb4\ +\xddnI\xbe\xab$e5\x8f\x1e\xbd0|zx\x98\ +\xd6\xaf\xf3\x07\xcf\xc3^i\xb3\x98\xf9\xc2\xf8\xae\xb4\xc8\ +\xf2\xf9\xa2\xd9\x17_\xf3l\xfb\xf7\xf2m\xe6S\x8fz\ +\xc2\xe0/\xa1\xee\x81\xb65Og>\x8e\xc2:\xd1\xc3\ +\xdaw\xad\xbbI'\xc7-\x84y\x9fiLi\xf2\x22\ +9\xb7\x81\xc7(c!\xc5_\xf1\xd8v\xaaq\xc7k\ +\xfc\x9b\xa4eR\xc4+\xdch\x9d,\xb2U\xdc\xe4I\ +\x9c\xa6\xfflJ\x82\x13\xb6\x92\x88WQO\xfaIf\ +\xfe\xd8v\xdd(\xf5:N\xb2:\xea\xeb\x8f\xfa\xf7\xf3\ +\xed\xfb\xf7\x15\xa4.7U\x92\xbd\xe0\x10\x19)\xb2&\ +\xfa\xf2\xeb\x97}cHI\xda\xa4\x87a\x06\xb3oy\ +;/C\x98\xa2\xe1b\xb1\xf4A\xc9*}\xb9$\x09\ +\xd6\xda\x88\xb2\x081C\x89\xb0~/\x9a\xf8-,\xea\ +OG]\x93d\xdf3q\xc4\xc8_\xb3\xa4\x5c\xad\xca\ +\xa2\xee\xe0\x18\x08\xa7\x07\xe1\xf5\xa6Z\xb6\x12i\x12e\ +\xcbl\x95\x15M\x1d\xe1\x89E\xfe\x13\xcaO\xd3\xec\xa5\ +v\xfd\xbaSw%\xe1{Q\xdb\xb4?3\x07u\xea\ +(s\x10|\x8e\xeb\x0en\xcf[\xc7s\x5c\xc9\xb2\xac\ +f\xfe\xa7\x97\xf6\xd95<\x97U\x9aU}\x93j\x9f\ +AS\x89\xc7\x977\xef\x9dZ\xec\xc6\xee\xc9\xe5F\xdd\ +\xb7\xd3\xcb\xed\xf5\x22N\xcb\xed\xccg\xa7\x8d\x7f\x96\xe5\ +\x0a\xb9N\x98VT\x80>mN\x90\xf8\x96\x13)\x84\ +\x90\xe6\xac\x11\xe7\x0b\x81\x11-\xa4\xe0g##}7\ +\x0e\xc2pS\xe4\x0d\xf2c\xfdv\xd6\x7fSUN`\ +\x19\xbfg\xb8\xef9\x17\x02v2\xf5\xa2\xdc\xce+\x07\ +\xdfK\xbc\xdc\xe37:\xd26/p{\xe1N\x91\x99\ +\xa4rD\xa2Wn\xa0\xa0FDp\xc7r\xac;n\ +\x98\xe9\x91\xb6U\xfc\x96\xaf\xf2?3\x5c3\x5c:\x02\ +T\xe2\xe4kV=\x97q\x85\x22\xb4\xa7\xce*k\xe2\ +4n\xe2\x03a\xfa\x1a\xdd\xd2\x0eE\x90\xe8\x93\x7f|\ +\xf9\xa9+a9I&\xbf\x97\xd5\xd7]\x11\x1f'\x10\ +?\x97\x1b\xdc\x98\xff\xb4\xaf\x9e\xa6\xc9\x04\x95\x17-\xc7\ +S\xbe\xc2\x058\x05\xfb\x0eI?\x8d\x0e\x0d\x03\xe1\xe6\ +}\x9d\x1d\x06\xed\x86\xad\xb2\xce\x0a\x5cT\x924Y\xe5\ +\xaeS\xf4K\x93/\x97?\xbbIv\xdbj\x87\x8cv\ +\x0b\xddm#:\xda\xc74\xeaw\xd9\x96\xe6'x-\ +\xe3\xe7l9\xf3\x7f\x8c\xd7\xb1w\x06\xe6\xbc*7\xeb\ +U\x99\xe2\x9aZ\xe6\xf8\x07\xe8\xdar\xdf\xa1\xa9\xe2\xa2\ +v\xfb\x9c\xf9\xed\x7f\x97\xe8\x22>\xd3 \x04J\x05\xe1\ +\x8a\xb1\xc7\x1e\xe0y\xbfk7\xc61\x0d\x07\x83 ^\ +U\xfe\xf6\x99\x12\xa3\x14(.y@\xdd\xcf\xa1\xc8\x88\ +\x92Z\x1bm\x03\xe0\x9a\x80f\x1c\x1e\xf7\x03\xd5\xcd\xfb\ +\x12W\xfc\x82@Mv\xca\xff}\xddT\xe5\xd7l\xf2\ +I\xa4\xee\xc7?\x1cp^%\xcb\xa3\xa3\xa8\x9c\xdeK\ +\xffP\xe14\x0f\xb7a\x08\x07\xa9\x8f\xeb\x91\xbcL\xa0\ +\xbaJk\xccQ\xbd\xdb\xd7:n\x16\x9csuT}\ +iM\xae\x10\xee\xcc\xc9\x04\xbab\xb5Yf\x93\xec5\ ++\xca4\xdd/\xda\xb6\xcf\xae\xd8\xa9\xde\x04\xd6o}\ +\xc52/2<\xae\xc9\xf3\xa6i\x8e\xeb\xfe(\xf3b\ +\x82\xb4\xc9\xaa\xbev?\xd91w>\x08\x01p\x02\xdc\ +\x9eB\x80\xe8SC\x05e#\x10\x84\xfc\xae@`\x0a\ +\xe9\x0c\xea\x04\x04\xc1\x89\x15\x16\xd98\x06\xc2}1\x81\ +[\xa7}\xfc\x14\x04J\x04\x15\x5c\xf01\x10\xf4]\x81\ + 4\xd1\xd4\x9cY\x04\x83\xd0X-G\xd5A\xde\x17\ +\x08\x12M2\x83\x13\x10\x00c\x1c\xa9(\x8c\xdb\x84\xfb\ +B\x81K\x02\x12\xe4\x09\x0a\x92P\xab\x90\x22f\xd4(\ +\xb0\xfb2\x8d\xe8\x93\x959\xb3\x0a\xc4 \x11\x84\x861\ +\x14\xec}9I\x04\xc1\xaaS\xff\x00@\x84\xb0\xc0F\ +\xa9\x00\xf7\xc6\x04\xce\xec\xa9>p@*\x1810\x99\ +C\x10Bz_f\x01\xd35\xc6\xcf`@\x86`\xd4\ +;N\x85;\xd3\x08\x0c\x10\x8d`\xa7n\x12%50\ +\xcd\xc6Q\xf8F\xe2F\xb7\xe2\xa3=\xec\xf3\xed\xb2\xc0\ +a\x9b\xb2\x0a1\xf3~\x8d\x9bM\x95\xb9D\xf4|\xb7\ +\x82\xc9c\xe5w9\xa9\xa7\x08\x95FK+\x03\xd4%\ +\x8c\xba\x95d\x9e&LQ\xaa\xa4\x0c$\xe1\xda\x9a\x8f\ +\xa0\xf3q8\xfes0\xda\xc2\x12\xb3\xf0f\x22\xfa\xba\ +4\xae\x17qU\xc5\xef\x93\xa2,\xb2\xbf\x1a6y\x0a\ +\x1bs\xf9\xa1A\xa7\x8b\xb0\x81&\x16\x93K\x8f\x13\xca\ +\xd0\xee\xf2 \xc4\xc0LP{U\xd8\xdc|\xccr\xcd\ +\xf4-\xd1I\x9f\xe2\xe2\xae\x8d\x18\xc5\x95\x06\xad\x7fb\ +\x02\xa4\x07\x143\x16m\x84\x08BN0\x82\x83+\x03\ +c\x85\xb2\xa0\xb4\xba%`\xec\xb9\x9eq\xe4\x88\x94\x0e\ +\x18\x8c\xe10\x93\xf7\xa0\xcd\xe4\xb8\xb1\x10\x00\xb1V\xdb\ +\xab\xe3\xe2.\x0c\x80\xdf\x10.\x0a.(\x92\xd4\xdaj\ +\xa7H\xdc\x10\xad\x84\xf4B\xc4G\x19\xc3m\xa0\x08c\ +\xd4\x5c[\x91\x90\x95\x96\xdd\x14_\x14?\xc3\x05\x8d0\ +HcY\xd0\xa5\x7fh\x98\xbd\x10c;\x8dJ\xc7!\ +\x08\x81(\xad\xafN\x18.\x05\x03sK\xc0\x9c)\x12\ +\xfax-\xac\x06\xe7\xb00\xf9\xe3Tk\x0f\xdd\x14g\ +T \x87\x80p\xf4f\xd7\xc6\x05\x00\xdd\xe0-\xf9q\ +}\xa6G\x82\x11i\xd0\xbe\x04\xed\xbd\x11\xd5\x5cx\xa1\ +%NR2gw\xb9T\xd7\xb6\xbb\xdaR\x81\xb3\xdd\ +\x12]\xf4\x99\xa3\x16\xee\xf8\xdc\x05Ag_$\xd5\xc2\ +C\x1fe%o\xb5\x08\xad\x01UW70\x9c*\x0d\ +\xda\xde\x120\xe7\x9e\x1a\x8d,`\x12\xdd\x1a^J\x00\ +\x15\x1f\xf5\x08\x00\xa8\xd1hw\x85\xb9:,Zp\xcc\ +\xc9\xe8-\xe9\xd1 \xb6\xed\xec.f\x0b\xe8\xa0Y\x1b\ +\xd8\xb9\xbbG\xa3=C,\x93J\x07\x8c\x80\x96\xfc\xda\ +\xa8`\xa8-\x19\xe57e]\xc23\x7f\x84\xa9\xa4A\ +\x7f\xa4\x9c?\xc2\xecZh\xa6\xbc\x10\xa9\x0e\x0a\xfdS\ +\x10b\x08\xac\xe4\xd5\x09\xc3)&h\x96\xdd\x184\x83\ +\x1b\xf6\x0e\x1cK$\xe8\xceY\xa3\x91\xc1\x88\x0e\xad\xaf\ +\xb3\xc2J!`\x18\xce0\x107\x0f\xceGo\x9d,\ +F\xf5\x83X\xb5M\xb2)\xe6\x8c\xf2\xf0\x82\xf6B\x92\ +}\xb5+yJS\x11\xc7\xff\xef{'K(\xc8\x0b\ +\xb7\xd1\x98\xf1(e\xc7aP\xdf\x06\x0cW\xc8\x81\xf8\ +\x05\x97C\x8d\xa5L\xb8 E;\xbf\xec%\x1e\xc5\x10\ +\x8ej@\x1bB1\x5cA\xab\x22\xdc\xed\x03\x00sF\ +E\x02\xe6\xd5\xa7\x15\xff\xb5\x22]B\x0c\xc3\x03fP\ +a\xa5\xb8\x1at\xf3!\x1as\xc3/D^\xfd\x9a\xb8\ +NL\xfc|:sUn\x8a\xf4|\x92\xc3(\x97\xde\ +_3\x0c\x00\x85\xdd\xbf\xbf\xde\x17]\xda`-\xd7\xd0\ +&\xe5\xee\xa5\xa2\x86\xc7\xe3\x0f\x0a\x86g}\xf4\xa9\x12\ +\xa2\x97\xb9\x0f\x01\xea\x99\x9f$\xfe\xb1\xc8\xc7\x09q\xa0\ +\x84\x19\xbc\xa4\xd9q\xc2\xbaW\x17`5\x0f\xa4r\xef\ +\xd6\x99\xe0H\x09j\x85\xd0\x81\xb6.P\xa3\x83\xf7\xc0\ +\xc33o\xef~\xc6\x0f|\x08\xeeNE\xd4\xbf\x05\xfb\ +\xaf\xb8\x81\xfa\x9fB\x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a \ + \ +\x0a \x0a <\ +circle\x0a styl\ +e=\x22opacity:1;fil\ +l:none;fill-opac\ +ity:1;stroke:#ae\ +aeae;stroke-widt\ +h:2;stroke-linec\ +ap:round;stroke-\ +linejoin:bevel;s\ +troke-miterlimit\ +:4;stroke-dashar\ +ray:none;stroke-\ +dashoffset:0;str\ +oke-opacity:1;pa\ +int-order:normal\ +\x22\x0a id=\x22path8\ +27\x22\x0a cx=\x2224.\ +984894\x22\x0a cy=\ +\x2234.797325\x22\x0a \ + r=\x227.5508037\x22 /\ +>\x0a \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07Q\ +ure=\x220\x22\x0a sod\ +ipodi:nodetypes=\ +\x22cc\x22 />\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0c\x08\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/s\ -vg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a \ + \ +\x0a \x0a \ + \x0a \ + \x0a \x0a \ +\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x10\xa0\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg2\x22\ + />\x0a \x0a\ +\x0a\ +\x00\x00\x05f\ +\x00\ +\x00\x17]x\xda\xddX\xdfs\xa36\x10~\xcf_A\ +\xb9\x97d\x1a\x84~#q&7\xd3\xcb\xdc\xcc\xbd\xb6\ +\xd7\xe9c\x07\x83l\xd3`\xf0\x00\x8e\x9d\xfb\xeb\xbb\xc2\ +`l\x1cn\x92\xa7\xba\x87\x9d\x89\xb5\xfbI\xda\xfd\xb4\ +\xbb\x92\x98}\xda\xafs\xe7\xd9TuV\x16\x91K\x10\ +v\x1dS$e\x9a\x15\xcb\xc8\xfd\xf3\xdb\x17O\xb9N\ +\xdd\xc4E\x1a\xe7ea\x22\xb7(\xddO\x0f7\xb3_\ +<\xcf\xf9\x5c\x99\xb81\xa9\xb3\xcb\x9a\x95\xf3\xb5x\xaa\ +\x93xc\x9c\xdbU\xd3lB\xdf\xdf\xedv(\xeb\x84\ +\xa8\xac\x96\xfe\x9d\xe3y\x0f77\xb3\xfayy\xe38\ +\x0e\xcc[\xd4a\x9aDn\xd7a\xb3\xad\xf2\x16\x98&\ +\xbe\xc9\xcd\xda\x14M\xed\x13D|w\x80'\x03<\xb1\ +\xb3g\xcf&)\xd7\xeb\xb2\xa8\xdb\x9eE\xfd\xe1\x04\x5c\ +\xa5\x8b#\xdaZ\xb3c-\x88h\xad}L}J=\ +@x\xf5K\xd1\xc4{\xef\xbc+\xd8\xf8ZW\x8a1\ +\xf6A7 \xdf\x86\x0ak t\x03\x7fGx/@\ +u\xb9\xad\x12\xb3\x80~\x06\x15\xa6\xf1\x1f\xbf=\x1e\x95\ +\x1eFi\x93\x9e\x0c\xd3\xf3y6\xeb\x19\xc9E\xbc6\ +\xf5&NL\xed\xf7\xf2\xb6\xff.K\x9bU\xe4r\xd5\ +\xb6V&[\xae\x9ac\xf393\xbb\xdf\xca}\xe4b\ +\x07;\x5c\xc1\x17a\xfb\x90V\x9b\xa5\x91\x0b\xde\xd0\x03\ +t\x88\x94N\xdb\xcd\x12\x1e5\x18i\x8a\x84sK\xb1\ +\xc4&!\x0b\xbd\xb8w(\xa6\xd8\xc3\xdc\xc3\xea\xae\xed\ +\xd5{\x18\xa6ebM\x8e\xdc\xa4\xcc\xcb\xea\xefe\x95\ +\xa5\x14Y\xee\x1e\x006K\xcd\xa2\xb6\xf0\x83\x11\xb6\xc5\ +]\xc7oU\xc7\x11l\xf7\xd4z0\x00\xe7q}\xf0\ +\xdaq6\xf1\xd2\xb4CG\xee\x87E\xfbt\x8ayY\ +\xa5\xa6\xeaU\xb2}\xceT%\xb0\x985/\x87\x9c\xe8\ +\xc6\xee}\xb5\xa3\x1e\xf5\xf8u}\xbd\x8a\xd3r\x17\xb9\ +t\xac\xfc^\x96\xeb\xc8U(\xd0\x5cr,\xc7\xea\x04\ +\xd6A\x22\xc9\xa4\xa6\x82\x5c(a>\x86\x11#Ds\ +>V\x02\x97[\x9b5\xde\xb6\xc8\x1a\x88\xcc\xcd\xfe\xa2\ +\xfb\xb6\xaa, \x8f_\x0c\xb8\xbdd\x9c\xf7S\xd4\xab\ +rg\xd9\x8f\xdcE\x9c\x1f\xe9\x9b\x1ci\x97\x15\xe0\x9d\ +\xd7\x85\x15Q]$]\x22\xfaP#\x98\xc8\x09\x088\ +\x1c\xd0\x09\x1d\xf8K\x83\x09\xdd:\xdeg\xeb\xec\xbb\x01\ +\x9bI\x1f\x16k\xd3\xc4i\xdc\xc4C0\xf4\x92\xa0\x0d\ +)\x80@\xd2\x87\xbf?~9\xb4\xa0\x9d$\xe1_e\ +\xf5\xd45\xe1\xb1\x80x^n\xc1j\xf7\xe1(\x9e\xa5\ +I\x08i\xba\x8e\x9b\x87l\x0d\xebk3\xfcWH\xcb\ +\x99?(\xce\xc0\xcd\xcb\xc6\x0c\x83\x1e\x86\xad\xcc!\xdf\ +_-zi\xb2\xcel'\xff\x8f&\xcb\xf3\xafv\x92\ +\xce\xad\x93A\xb3&7\x83p\xe6w\xd6w\xbe\xf9'\ +\xce\xcd\xfc\xde\xf5\xb6\xb5\x1c\x91\x98\xc7s\x93G\xee\xe7\ +x\x13;\x17q\xb6\xac\xca\xedf]\xa6`h\x1b+\ +\xee\xc0g\xdb\xee;4U\x5c\xd4\xd6\xf9\xc8m\x7f\xe6\ +\xb0!\xdc\xe2{\x8f`\xcc\x11\x93\x94\xde\xf5\xac/{\ +7\xec\x18\xa7\x81w6\x08\x90Xe\xfb[\x8c\x94\x94\ +D2\xc1\xee\xb1\xfd\x0cM\x8a\xa4\x08\x02\x15\xe8{\xc2\ +\x02D\x02\xca\xc8\xddq\xa0\xbay\xc9\xc1\xe2\x05\xb0\x17\ +v\xd9\xfe\xb1n\xaa\xf2\xc9\x84\x1fxj?\xee\xb0\xea\ +Y\x95\xe4'\xeb\x03\xe9@\x11\x91<\x80Xv\x07\xb1\ +M8\x08]\x82(\x93\xecT\x0eAK!M\xc1\x0a\ +q\x8a\xb7\xdem\xe2f\xc5\x18\x93'\xe2\x91e\x12\xb6\ +\x88\x8f\xb6\xe1uU$\x84\xa2\x09sc\xa1\xd4A^\ +ms\x13\x9agS\x94iz\xf4\xa1\xebxh\x1er\ +/$\x88sF\xb8`z\xb3\xef5yV\x18X\xc6\ +p\xbem\x9aS\xd9?eV\x84\x10c\xa6\xea\xa5\xfd\ +\xf4\xe4$\xd0~D\x0d\xbd\xa4\x86\x22*\x18\x1fQ\x03\ +k\xc34\xd409A\x8d\xc7\xa6\xc8\x09`\xd1\x82\xc5\ +99\xe4\x07\x9ct\xf8W9\x11\xe4\xbf\xe1\x84\x0a\xc4\ +\x031\x0e\x17\xce\x91b\x92\x04S\x94L\xc6\x8b\x9e\xdb\ +\x85\x7f;%\x1d\xfe\xaa(a\xb0\xdf\x05\x84\x8c)\x81\ +\xbc\xd2X\xb2\xa9\x0c\xf2\x82\xe9\x1c\xb2\x07\x94\xb7s\xd2\ +\xe1\xaf\x8a\x13.\x91\xa2T\x8c\xab\x8aF\x82K\xcc\xd9\ +\x14'b\x8a\x13I\x17\x0b=\x7f;'\x1d\xfe\xba8\ +\xe1H\x07B\x8d8!\x02\x11N\x19\x9e\xe4\x84\x89\x9f\ +:y8\xa2\xf2\xa2\x9e\x08\xa4\x15\x85\xbb\x8c\x9a,(\ +t:{\xe6\xc1\xfb\xb2\xa7\xc5_W\x91\x05\x030Q\ +\x17\xa4H\x05\xa5W\x91)R\xf4\x14'\x18\xcfa/\ +y;'\x1d\xfe\xaa8\x81s\x8a\x22x\x1c(\xb0E\ +3&8\xd1S\x9c\x90)Nb\xfd\xbe*\xdb\xe1\xaf\ ++N\x18b\x175\x96B\xee\xd8\x03\xd7$#\xd3;\ +\xcf\xcf\x10'\xb45\x80\x8e\x0fmp\xb8\xd6\x1cN\xd7\ +\xd3\xac\xe0iVT\xfa>VZ\xfcu\x95Y\xc8\x1e\ +\x16\x8c\xb3\x871$\x18\xe6\x01\x9dfE\xff\xcc\xa7\x14\ +&\x91\x16\x17;2d\x10\x17\x81\x90l\x9a\x156\xcd\ +\x8a\xa1\xefc\xc5\xd0\xab\xab*\x0a\x11\xaa\xf4\xe59\x85\ +a\xa2\xe54)\xf2\xffTVf\xfe\xb2\x7fgb\x92\ +\xe6\xb5[vQ\x16f|\x91U\x5c\x0b{!\x1d\x8e\ +T\xedsn*CJ\x04\x1c\x0eu\xe2\xc2\xa8\xaa\xdc\ +\x16\xbd\x9f^ka\x9e\xc1\xbf\x90\xf7\xb24\xaeWq\ +U\xc5/\xed\xf4\xee\xe9\x8b\x05k'''W\xef\xfe\ +\xbd'\xb7\x07H\xa1\x06\xc5\xf1\x15\xe8\x85\xc6\xae#\xd2\ +T\x058\x186\xc6v\xd1\xb1\xb4\xd7\x95a\xd1\xabV\ +\x8a\x88\x92\x818\xbe\x81\xb2\x9c\xcd\xec\xcb\xa1\x87\x9b\x7f\ +\x01o!\xa7\xef\ +\x00\x00\x18\x82\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0a <\ +sodipodi:guide\x0a \ + position=\x22\ +-203.24978,577.9\ +9157\x22\x0a ori\ +entation=\x220,1\x22\x0a \ + id=\x22guide9\ +22\x22\x0a inksc\ +ape:locked=\x22fals\ +e\x22 />\x0a \x0a \ +\x0a <\ +g\x0a aria-la\ +bel=\x22\xce\xb1\x22\x0a \ +inkscape:transfo\ +rm-center-x=\x227.0\ +618931\x22\x0a i\ +nkscape:transfor\ +m-center-y=\x22-1.1\ +769834\x22\x0a s\ +tyle=\x22font-style\ :normal;font-wei\ ght:normal;font-\ -stretch:normal;f\ -ont-family:'TeX \ -Gyre Pagella Mat\ -h';-inkscape-fon\ -t-specification:\ -'TeX Gyre Pagell\ -a Math';fill:#2a\ -7fff;fill-opacit\ -y:1;stroke-width\ -:1.0806098\x22\x0d\x0a \ - id=\x22path828\x22\ - />\x0d\x0a \x0d\x0a <\ -text\x0d\x0a xml:s\ -pace=\x22preserve\x22\x0d\ -\x0a style=\x22fon\ -t-style:normal;f\ -ont-weight:norma\ -l;font-size:31.0\ -2170181px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#2167\ -78;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.775\ -54256\x22\x0d\x0a x=\x22\ --48.97916\x22\x0d\x0a \ - y=\x2236.47298\x22\x0d\x0a \ - id=\x22text4524\ --9-2\x22>\x0d\x0a \x0d\x0a\ - \x0a <\ +path\x0a d=\ +\x22m 179.26521,143\ +.85114 -4.12649,\ +-6.03101 c -10.4\ +7491,9.84007 -18\ +.09303,12.37944 \ +-23.48919,12.379\ +44 -5.07875,0 -9\ +.20523,-0.95226 \ +-13.64913,-6.983\ +28 -4.12648,-6.0\ +3101 -10.47492,-\ +19.36271 -13.649\ +13,-28.88536 l -\ +5.07875,-14.9188\ +16 c 7.93554,-12\ +.696864 15.23624\ +,-26.663414 18.7\ +2788,-33.64669 3\ +.49163,-6.665853\ + 12.69686,-25.71\ +1149 13.3317,-32\ +.059581 -2.53937\ +,-3.491638 -4.44\ +39,-6.348432 -6.\ +98327,-11.109756\ + -1.26969,-0.634\ +844 -4.12648,-1.\ +587108 -5.39617,\ +-2.221952 -3.174\ +21,26.345993 -6.\ +03101,35.233798 \ +-14.91881,53.961\ +673 -0.95227,1.9\ +04529 -5.07875,9\ +.840069 -7.93554\ +,15.236236 L 96.\ +418167,31.483892\ + C 91.022,17.199\ +919 81.499352,15\ +.930233 74.51607\ +7,15.930233 67.2\ +1538,16.247655 5\ +7.057889,21.6438\ +22 47.852663,31.\ +483892 c -6.9832\ +76,6.983275 -11.\ +7446,15.236236 -\ +15.87108,25.0763\ +06 -9.84007,28.2\ +50522 -13.966551\ +,66.023692 -9.52\ +2648,91.417422 1\ +.904529,10.47491\ + 9.522648,24.441\ +46 17.140766,24.\ +44146 13.014286,\ +0 22.536934,-6.3\ +4843 31.424738,-\ +13.64913 12.0620\ +21,-11.42717 24.\ +441464,-25.71115\ + 33.011851,-36.8\ +209 9.52264,33.0\ +1184 22.53693,50\ +.47003 35.23379,\ +50.47003 7.3007,\ +0 16.50593,-5.39\ +617 26.02857,-14\ +.60139 z m -78.4\ +0314,-31.74216 c\ + -7.618119,10.79\ +233 -15.553659,2\ +0.31498 -22.8543\ +55,26.98083 -8.8\ +87805,8.25297 -1\ +7.77561,11.10976\ + -23.80662,11.10\ +976 -4.126481,0 \ +-6.665854,-4.443\ +9 -8.252962,-12.\ +69686 -3.491638,\ +-20.31499 -4.126\ +481,-54.596519 2\ +.221951,-80.9425\ +12 2.539373,-10.\ +474913 9.205227,\ +-19.680139 16.50\ +5923,-19.680139 \ +9.84007,0 14.283\ +972,5.713589 18.\ +727875,19.680139\ + z\x22\x0a sty\ +le=\x22font-style:n\ +ormal;font-varia\ +nt:normal;font-w\ +eight:normal;fon\ +t-stretch:normal\ +;font-family:'Te\ +X Gyre Pagella M\ +ath';-inkscape-f\ +ont-specificatio\ +n:'TeX Gyre Page\ +lla Math';fill:#\ +00d4aa;fill-opac\ +ity:1;stroke-wid\ +th:7.93554115\x22\x0a \ + id=\x22path\ +823\x22 />\x0a \ +\x0a \x0a \x0a \x0a <\ +path\x0a \ +style=\x22fill:none\ +;fill-rule:eveno\ +dd;stroke:#162d5\ +0;stroke-width:1\ +.55563581;stroke\ -linecap:round;s\ -troke-linejoin:r\ -ound;stroke-mite\ +troke-linejoin:b\ +evel;stroke-mite\ rlimit:4;stroke-\ dasharray:none;s\ troke-opacity:1;\ -paint-order:norm\ -al;fill-opacity:\ -1\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x0f\x94\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ +paint-order:fill\ + markers stroke\x22\ +\x0a d=\x22M\ + 8.1034569,42.45\ +191 C 15.791519,\ +42.977784 18.461\ +889,10.499044 41\ +.33283,10.900594\ +\x22\x0a id=\ +\x22path825\x22\x0a \ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22\x0a \ + sodipodi:nodety\ +pes=\x22cc\x22 />\x0a \ + \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x07\x1b\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \ + \x0a \ + \ \x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \ +\x0a \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\ -\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a\x0a\ +\x00\x00\x10I\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \ +\x0a \x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0f\xf3\ +77554256\x22\x0a x\ +=\x22-48.97916\x22\x0a \ + y=\x2236.47298\x22\x0a \ + id=\x22text4524\ +-9-2\x22>\x0a \x0a \ +\x0a\x0a\ +\x00\x00\x0f8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0cC\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ -odipodi:nodetype\ -s=\x22csc\x22\x0d\x0a \ - inkscape:conne\ -ctor-curvature=\x22\ -0\x22\x0d\x0a id=\ -\x22path4140\x22\x0d\x0a \ - d=\x22m 16.067\ -796,70.882731 c \ -10.422221,0 11.3\ -22848,-16.118588\ - 15.206749,-16.1\ -24554 3.99427,-0\ -.0061 3.965545,1\ -6.035528 14.0906\ -55,16.124554\x22\x0d\x0a \ - style=\x22f\ -ill:#e11e5a;fill\ --opacity:1;fill-\ -rule:evenodd;str\ -oke:#e11e5a;stro\ -ke-width:0.5;str\ -oke-linecap:roun\ -d;stroke-linejoi\ -n:miter;stroke-m\ -iterlimit:4;stro\ -ke-dasharray:non\ -e;stroke-opacity\ -:1\x22\x0d\x0a tr\ -ansform=\x22transla\ -te(1.0067283,-25\ -.887299)\x22 />\x0d\x0a \ - \x0d\x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b\x0d\ +acity:1\x22\x0a \ +transform=\x22matri\ +x(0.20780228,0,0\ +,0.20780228,2.84\ +04564,11.090035)\ +\x22>\x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a\ +\x0a\ +\x00\x00\x0f\xa0\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0d\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x10\x06\ +ure=\x220\x22\x0a sod\ +ipodi:nodetypes=\ +\x22ccccc\x22 />\x0a \x0a\x0a\ +\x00\x00\x0b\xee\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0a\x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a <\ -ellipse\x0d\x0a st\ -yle=\x22opacity:0.8\ -53;fill:#87decd;\ -fill-opacity:1;s\ -troke:none;strok\ -e-width:33.94197\ -845;stroke-linec\ -ap:round;stroke-\ -linejoin:bevel;s\ -troke-miterlimit\ -:4;stroke-dashar\ -ray:none;stroke-\ -dashoffset:0;str\ -oke-opacity:1;pa\ -int-order:normal\ -\x22\x0d\x0a id=\x22path\ -812-3\x22\x0d\x0a cx=\ -\x2230.305187\x22\x0d\x0a \ - cy=\x2219.820175\x22\ -\x0d\x0a rx=\x2212.25\ -7314\x22\x0d\x0a ry=\x22\ -12.652709\x22 />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a Bus\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07m\ +\x22\x0a id=\x22named\ +view8\x22\x0a show\ +grid=\x22false\x22\x0a \ + inkscape:zoom=\ +\x2213.906433\x22\x0a \ + inkscape:cx=\x224.\ +2908433\x22\x0a in\ +kscape:cy=\x2224.98\ +7211\x22\x0a inksc\ +ape:window-x=\x2257\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22 />\x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a\x0a\ +\x00\x00\x0a\xc2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#cccccc;f\ -ill-rule:evenodd\ -;stroke:none;str\ -oke-width:2.9734\ -8356;stroke-line\ -cap:butt;stroke-\ -linejoin:round;s\ -troke-miterlimit\ -:4;stroke-dashar\ -ray:none;stroke-\ -opacity:1\x22\x0d\x0a \ - d=\x22M 7.6054021,\ -38.160028 40.868\ -101,38.462416 23\ -.631976,9.130763\ -7 Z\x22\x0d\x0a id=\x22p\ -ath4489\x22\x0d\x0a i\ -nkscape:connecto\ -r-curvature=\x220\x22 \ -/>\x0d\x0a\x0d\x0a\ -\x00\x00\x06\xf1\ -\x00\ -\x00\x17\xf0x\xda\xe5X\xcbr\xe3\xc6\x15\xdd\xbb\xca\xff\ -\x80`63\x15\xa2\xd1\xef\x07M\x8d\xab\x92)W\xbc\ -\x98M\xe28\xcb\x14\x044IX$\xc0\x02 Q\xf2\ -\xd7\xfb4I\x80\x80E\xca\x8e2\x89\x16&\xa4\x12\xfb\ -\xde~\xdds\xcf}@\x8bo\x1f\xb7\x9b\xe8\xc17m\ -YW71#4\x8e|\x95\xd7EY\xadn\xe2\x7f\ -\xfe\xf0]b\xe3\xa8\xed\xb2\xaa\xc86u\xe5o\xe2\xaa\ -\x8e\xbf\xfd\xf8\xf5W\x8b?%I\xf4\xd7\xc6g\x9d/\ -\xa2}\xd9\xad\xa3\xef\xab\xbb6\xcfv>z\xbf\xee\xba\ -\xdd,\xcd\x03A\xca\x07\x9f\xd7\xdbm]\xb5G\ -L\xa6\xb3\x8b\xf3\xec\xdd}\xb39L)\xf2\xd4o\xfc\ -\xd6W]\x9b\xc2\x1di\xfc1,Xl}\x97\x15Y\ -\x97\x1dV\x1f\xa9\xd2\x8b\xecq\x0a&\xe1^\xf3\xbf\x7f\ -\xfa\xee4\x84 \xcf\xe7\xff\xaa\x9b\xbb~\x8cO\x98\x92\ -\xdd\xd6\xf7 R\xfc\xf1,_\x14\xf9\x1c\x88o\xb3\xee\ -c\xb9\xcdV>`\xf2g\x5cr\x91\x9e\x15\xd3\xd9\xdd\ -\xd3\xce\x8f\xf6=\xee\xdc\xf8\xa3\xf3.\x9aU\xe4\xdb2\ -\xacJ\xff\xd1\x95\x9b\xcd\xf7\xe1\x988J\xcf\x97MO\ -\xb7\xed\xadI\xc7\xe6,\xd2\xde\xdc\xe3\xb0\xf0\xcbv\x84\ -E\x18\xea~\xb7\xc5\xc0\xff\xc0\xc1\x22\xc4\xc9i\xea\x0e\ -g\xe6\xf5\xa6nn\xe2w\xcb\xc3'>in\xeb\xa6\ -\xf0M\xaf\xd3\x87\xcfTW\x83\xcb\xb8?\x82\xa4\x97\xd7\ -\xb7?\xf9\xbc\xeb\xea\x8do\xb2*\x18\xcdh\xafZ5\ -\x88\xde\x8b\x8a\xfb\xb2\xf0\x175C4\x86K\x0e\x87]\ -V\xb7\xeb\xac\xa8\xf771\x7f\xa6\xdd\x97\x154\xc9)\ -ypE\xd5\xb5)C>\xa1l\xb04@9`&\ -{i\xbb\xae\xf7\xc1\xa0\x9bx\x99mZ\xffl\xc3\x9f\ -\xebz\x1br\x87\x11VP\xf9\xfcN9r\x14\xa7\x96\ -pi\x9d|\xae\x85\x95\xd6\x12k\x9c\xe1W/\x8b\x1d\ -\xd4U%6\xe0\xe6\x9ar\x9b=\x96\xdb\xf2g_\x8c\ -\x1cw>\xfb\xbei\x10i\xc9&{\xf2\xcd8\xf9\x8e\ -\xe6\x04\xeb_\xc6\xfc\xc0\xaa\xb5\xcf\xef|s[gM\ -q\xc9k\x85o\xefzv\x15,<\x03[W#\xf0\ -W\x8c\xf2\x01\xa2\x0e\x1ciC\xf0!\xd6\xb3\xae)\x1f\ -\xdf\x0bb\xac\xd3\xce\xb1\x19\xc5s\x1e%\x96\x1a\x22\xb5\ -V|\x96(c\x09\x93\x8c\xba\x0fC^X\x0d\x81z\ -8\xc3\xba\xe1~\x97\x0e\xa1\x04n\x12F\x8b\xc3!\xe7\ -\x11\xe7\xe1@kgL\xa3Jp\xca\xe4\x87s\x0aY\ -\xec\xb2n=\xca\x07m\xf7\xb4\x01\xbd\x97\x88\xf4y\x85\ -\xe2\xf9M\xdb5\xf5\x9d\x9f\xbf\xe3yF\xad;\x0d\x8f\ -<\x9d3\xa2z\xc1\xa6\xac<\x00\x9b7\xf5}U\x8c\ -\x85?\xd5e5\x95\x16\x19\x5c\xd24\xd9\xd3\xf8\x80\xe4\ -\x149s\x16\x8fn\x03\xab?\xa3<\x12\x0d\x8227\ -\x93\x94PG\x95\xd6\x11\xbeI\xc5\xad\x98\x09G\x00\xa5\ -e,\x12\x8a\x08\xfc\x15|&,\x91\xe3]\x02x\xc1\ -L\xd4\xc5\xb1\xf8\x9cmj\x846\x12\x1c\x8aR\x9e\xe7\ -\x93\xdc\xf6\x7fA\x07\xe9\xd57\xafCg\x1b\x90\x10\x82\ -S\xa3F\xe8$\x92\x04\xc0\x82\xcb\x89\x94Av\x11\x0e\ -\xc9~\x1b\x8e3\x1a\x8btu\xca\xe8\xab\x0b\xfc\xb7\x9a\ -^\xa7?\xb8\xc8\xa8\x90T\xab\x9e\x9a\xfd\x90\x11\xcd\x04\ -2\x99\x9dI\xa2\x14\xa2\x82\x9b3\xfd'\xe0\x8f\xa1\x7f\ -'Lv\x9b\xdb\x1e\xfd1PG\xe8)q\xd2(\xb6\ -{\xfc\xb5\x03n\xef\xbb\xeee\xfc/ }\xc0\x99q\ -\xa2\x85\xc6\xa63\x06\xceY.\xb9\x88\xf2H\x11\xad\x99\ -vb\x96p\x04\xb2\xe4\xdaFH\x89\xdc(\x8b\x88F\ -v\x94\xa0\xa6\x13\x11\xd3D\xc0\x0fRCh\x083\x06\ -Q\x88\x89\x1003Co\xa4\xb8\x93LD\x06D\x0f\ -\x11+5\xe1NYs\x5c\xa8\xb0\xc3Af\xad\xd4J\ -E\x0c\xf8Q\xce8\x0b+\xc1x\xee\x5c\xc4\x14Q\xcc\ -P\xea\x0e\x17AD\x08\xa1#n\x89v\x14\xec\x80\x10\ -Y\x5cI\xa4\x9c0\xd3)G\x1d\x07\xf6J\x1b\xae\x83\ -e\xd69\xf8!\x04\x8e\xc2Zj\x22\xee0\x9f:g\ -C\x80\x19\xc3\xac1\x11\x03\x99,r\x08\xfcGU\xb8\ -\x074\x9415K\x84\x84\xc4\x18\xad\x22\xc1\xe1Ff\ -p\xa2\x10\x84)\xecq\xd8_Y\xe1\x5c\xf0\xbb\xd5\xd2\ -\xe0\xb6\x82h\xe9\xb8\x9e\x85kK\x81\xb3\xc3B&\x9d\ -\x123-\x91\xac\xa8\x92#\xca\xf6\x84u|\x14\xd6W\ -\xa27\xcf\xdb\xfc\xa5$\x89\xd6\x8cY\xea\x8c>0\xf1\ -9C\ -{\xfbc\xe8l\x84\x12\x93~`\x92\x0c\xdf\x84\xbdo\ -\x89\x13\x8aG\xe8\x0f\xd1m\x9a\xc3k\x1e3(\x19\xd1\ -C\x84f@\xe1\xab\xbe\x86S\xc2\xffhH}>\xb6\ -\x9a\x9a\xe3\x9d\x1b\xe1m\xd1\xc18\x15\xfd\x0d\xe1\x0f\xa4\ -\xa4\xa2\xfc*T\xf2\x8f\x07\x15R\x1f^\x124Z<\ -\x84\xa1\xa6\xda\xe2%\x05PiN\x00\xdaKP%\xe2\ -U`M\xdf1\x17\xe1\xbf\x99\xf8\xfb\x0b;\x08\xb9\xd7\ -\ -\x00\x00\x0a\xde\ +dow-height=\x22684\x22\ +\x0a id=\x22namedv\ +iew4\x22\x0a showg\ +rid=\x22false\x22\x0a \ + inkscape:zoom=\x22\ +1.2291667\x22\x0a \ +inkscape:cx=\x22-19\ +2.00001\x22\x0a in\ +kscape:cy=\x2296.00\ +0009\x22\x0a inksc\ +ape:window-x=\x2267\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x220\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22 />\x0a \x0a \x0a <\ +path\x0a styl\ +e=\x22fill:none;fil\ +l-rule:evenodd;s\ +troke:#ff6600;st\ +roke-width:16;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:miter;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1\x22\x0a d=\x22m\ + 95.091973,56.17\ +2243 0.09447,79.\ +795097\x22\x0a i\ +d=\x22path812\x22\x0a \ + inkscape:conn\ +ector-curvature=\ +\x220\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x0f\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g1\ -419\x22\x0d\x0a tra\ -nsform=\x22matrix(0\ -.61848879,0,0,0.\ -61848879,3.18349\ -97,17.72063)\x22>\x0d\x0a\ - \x0d\x0a \x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \ - \x0a \x0a \ + \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x05a\ -\x00\ -\x00\x12.x\xda\xd5X\xdb\x8e\xdb6\x10}\x0f\x90\x7f\ - \xb4/\x09jQ\xbc\x8bT\xec\x0d\xd0\x06\x01\xfa\xda\ -\xa6\xe83W\xe2\xda\xca\xeabH\xda\xf5n\xbe>C\ -\xd9\x92\xecXN6h\x8b&B\x82\x983\xc3\xe1\xcc\ -\x99\x99C)\xcb\xb7\x8fe\x81\x1e\x5c\xd3\xe6u\xb5\x0a\ -(&\x01rUZgy\xb5^\x05\x7f}x\x1f\xea\ -\x00\xb5\x9d\xad2[\xd4\x95[\x05U\x1d\xbc\xbd~\xf9\ -b\xd9>\xac_\xbe@\x08\xed\xf2\xac\xdb\xac\x02\xa1\x83\ -~\xb9q\xf9z\xd3M\xeb\x87\xdc\xed~\xad\x1fW\x01\ -A\x04\x09\x8dF\xf9t\x22\xddK\xf2l\x15\x80S\xb1\ -_\xb5\x10\xc1\x16\xfe&Y\x9dV\xb6\x84\x833[b\ -\xd0\x1f\x8c\xab\xbb6\xb5[\x97\x1c\xfb\xc1\x0c\xbd\x22\x96\ -\x90\xf4Vrn\x16\x88\x11\xc6B\x02\x7f\xc4\xeb\xfd.\ -H\xb5j\x93a\xef*\xd8t\xdd6\x89\xa2\xddn\x87\ -\x07!\xae\x9bu\xe4\x0fl\xb76um4\xc8\x8f\x1d\ -\x0c\xb1\x8d\x0e\x06\x01n\xeb\xfb&u\xb7\xe0\xc3\xe1\xca\ -u\xd1\xbb\x0f\xefFeHp\xd6eG~N\xce\xdf\ -\xf1\xfedF\x08\x89\xc6,\x0f\xc7=\xac\x9fk\xdad\ -\xb7s\xa6\xd4\x18\x13\x11\x16\x01\x1c`\x11\xb6OUg\ -\x1f\xc3\xaa\xbd:\xde\x9b\xa6\xe3\xd6\xb4q\xb6\xcb\x1f\x5c\ -Z\x97e]\xb5{LN\xad\xb3\xc9z{\xdf\x14\xbd\ -I\x96F\xaep\xa5\xab\xba6\x82rD\xc1\xb5\xdf\xb0\ -,]g3\xdb\xd9~\xf7\xbe\xce\x83\x88\x92\xbd\x0dX\ -A`\xc9\x1f\xef\xde\x1f\x96 H\xd3\xe4\xef\xba\xb9\x1b\ -\xd6\xf0x\x13{S\xdfC{\x05\xd7\x93|\x99\xa5\x09\ -@^\xda\xee:/\xed\xdayP~\x81(\x97\xd1\xa4\ -8\xb5\xee\x9e\xb6\xee\xc8\xef\xdes\xe3\xf6\xd5\x9b\xcd+\ -K\xcb\xdc\xef\x8a\xfe\xec\xf2\xa2\xf8\xdd\x1f\x13\xa0h\x0a\ -6:D;d\x13\x1d\xa7\xb3\x8c\x86|\xf7\xcb\xcc\xdd\ -\xb6G`\xf8\xa5\x1e\xbc-\xc7\xc6\xf7M\x98\xf9\xf19\ -\x98n\xe1\xcc\xb4.\xeaf\x15\x5c\xdd\xf6Op\xd0\xdc\ -\xd4M\xe6\x9aA\xa7\xfa\xe7TWC3C\xfc0%\ -\x83\xbc\xbe\xf9\xe8\xd2\xae\xab\x0b\xd7\xd8\xca'\x0d\xa58\ -\xa8\xd6\x0d\x8c\xf4\xac\xe2>\xcf\xdc\xacf\x1cG\x1f\xe4\ -x\xd8\xbc\xba\xdd\xd8\xac\xde\xad\x02v\xa6\xdd\xe5\x15h\ -\xc2\x03\xa30I\xe4%\x93\x81e(\xa1c\xa6\x1e\xca\ -\x11\xb3Q\xdan\xea\x9dOh\x15\xdc\xda\xa2ug\x0e\ -?\xd5u\xb9\x0a4\x8ecE\x04\x8d\xcf\xf4)P\x97\ -\xc1D\xeaX\xf2\x19-d\xc9\x146Bs\xa5/\x05\ -\x0b\x1e\xe4\xc5L\xbc\x83\xf8\x92\xb2\xb4\x8fy\x99\x7fr\ -\xd9Q\xe1\xa6\xb3\xef\x9b\x06F-,\xec\x93k\x8e\xa9\ -\xf3\x0b\xbc\xd3\x8dK\xef\x5csS\xdb&\xf35\x19\x1a\ -m}\x84\xdb\x9a\x13c\xc6\x18;\xa8o\xeb\x07g\x15\ -\xf4?\x0b\xdb\xb9W0\xd0\x8c2\xa9\xf9\xebid\xa1\ -\x83\xc61j\xbb\xa7\x02z\xe2\x16\xc6#\xb9\x22\xc4\xda\ -L\xbc\xf1\x8b\xf0\xd0\x0e\x09}\xd3vM}\xe7F\xed\ -~\xb9/w\xc2\xf0((\xf2\xcaA\xf4IS\xdfW\ -\xd9\xb1\xf0c\x9dW\xa7R\x18J\xd7\x14\x80Q\x97\x8c\ -\xdb3\x0b\x1d\xd64\xf6)\xa9\xe0\xc2\x1a\xa4S\x14[\ -\x9b\x03j\xfdX$\xa5m\x00\x9a\x16\xed\x8d\x90\x8f7\ -\x183\xf2\xc0\xf8\x149\xd1\x94O\xe2C{r\x83c\ -\xa3\xa5a\x93f\xe8J\x05\x1a\x11k\x12O*\xe8\x01\ -\x06R\x80\x90\xd2I\x0a\xc5\xe7\x0cs\xc35\x9d\xd8d\ -\xb9\xb5\xddf\x16\xd6\xa3|\x92+\xde?\xff\x13\x88S\ -\x0a\x9e\xcc\x11%Xh\xc6\x0c_p\x82\xa9\x22\x8a\xc5\ -H\xc0\x0fm\x18_\x84Tc\xc59\x91\x061\x89c\ -\xa5\x18]\x80\x15\xe7Z\xc4(\xe4\x98\x12m$_\x80\ -\x95\x94Z\x12vZ\x00\x0f\x86>\x06y\xe2\xc7\x1a\xc8\ -\x08(\x19\xee\xd1\x14\x9e\xe7\x00\xf8\x8d\xbe\xfc\x91 \x1d\ -\xba\x85-\x86\x0e\xa1(EdA\x10\xc7RH\x90\x87\ -\x0c\x03%1nP\x8c\x95\x01\x14\xa9\xf62\xc69\xd5\ -\x02)L\x88\x14B\x01\xd4Jq\x15k\xa41\xd7L\ -k\xb5`X+!\xb4A\x14\x92\x83.\x05_\xf0\xc3\ -\x10.\x15T\xcd\xf3\xa0\xec+D\x89d\x10\x87\x047\ -\xfe8\x82\xa1\xdb\xa5\xe2\x88R,\xc03W\xfe8\xaa\ -\x819\x0d\xeacQ\xc6x3\x0e\x91s\x01\xe7Q\xcd\ -\xa8\xa2\x0b\x8a\x8d\xaf\xbe:\x97\xcc\x95Z|\xb3\xd4\xed\ -q\xad/s\xd0\xa1\x9a\xb3\xb5>\x147\x86\xe4\x0cQ\ -\xdfS\xe0\xeff\x0f\xa69;#\x0f\x81\x85\x92\xb11\ -\xfa\x9c<\x04&F\x09xs=!\x0f\x98\x0ej\xb8\ -\xd4\xe2\x84<\xa8\xc0\x9c\x1aB\xd9\xcf\x06H\xf8/@\ -\xc2 yhHv\x0eI,5\xf4\xd6\xcf\x06\x89\xfa\ -\xe7\x90\x00\xfb\x02\xbb\x92\x98\x7f\x09\x89\xa0\x14\xde`.\ -Q\xe40|\x0c\x88\xdb\x842\xf8*w~\xed\x12'\ -8\xe6\x5cI\xb9}|\x1e\x5c=M~\xf3r\xf1t\ -\x03\xdf:j\xc1!\x11Ic\xa2\xfd\xb5\x01\xa4\x04\xbf\ -b *B\xa9\x10#9R\xa2\x04\x171\x5c;\x12\ -\x0b.c\xc5\xfc\xf5\xa4ch\x09\xed\xa5\x0ah\xd0\x80\ -\x18\x15\xe8\xe0Dy\xd2\xda;){'\xbf!\x80L\ -\x0a\xf0c\x16\x14^\xfe\xa84B\xcd\xc61#{&\ -\xc8?\x1e\xcc1\x8e\xe1\xe2P\xdc\xa7\x22\xe1\xe3\x92\xf3\ -\x09\xe6\x0b(\xcf\x82\xfc\x5c\x8c\x19l`p\x0d\xa9\x1e\ -c-XLg\x83\x98\x91=\x1b\xe3P\xff`(3\ -\x0e\x97/\xbc I\x9f\x8cRF\xc5\xff1\xc8\xf0q\ -\x123a\xb4\x07\x19^\x0d\x0c4\xedL\x0c\xe7\xa2\xf1\ -3!Z\xfb\xff\xed\xf1\xdf\xd4\xf0\xefg\xe6s\xffy\ +ke-opacity:1\x22 />\ +\x0a <\ +tspan\x0a s\ +tyle=\x22fill:#9999\ +99;fill-opacity:\ +1;stroke:#999999\ +;stroke-width:0.\ +29937106px\x22\x0a \ + y=\x2227.66311\ +5\x22\x0a x=\x221\ +5.134903\x22\x0a \ + id=\x22tspan837\x22\ +\x0a sodipo\ +di:role=\x22line\x22>B\ +us\x0a \x0a\x0a\ \ -\x00\x00\x09\xfa\ +\x00\x00\x071\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0e/\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x221\x22\x0a \ + inkscape:curren\ +t-layer=\x22svg6\x22 /\ +>\x0a \x0a \x0a\x0a\ +\ +\x00\x00\x06\xec\ +\x00\ +\x00\x17hx\xda\xe5X\xcbr\xe3\xc6\x15\xdd\xeb+\x10\ +\xccf\xa6B4\xfb\xfd\xa0I\xb9*\x99r\xc5\x8b\xd9\ +\xc4\x8f,S\x10\xd0$a\x91\x00\x0b\x80D\xc9_\x9f\ +\xd3$\xf1\xe0\x88\x94\x1de\xe2Y\x98\x90J\xec\xdb\xb7\ +\xbbo\x9f{\xee\x03\x9a\x7f\xfb\xb4\xddD\x8f\xben\x8a\ +\xaa\x5c\xc4\x8c\xd08\xf2eV\xe5E\xb9Z\xc4?\xfd\ +\xf8]b\xe3\xa8i\xd32O7U\xe9\x17qY\xc5\ +\xdf\xde\xde\xcc\xff\x92$\xd1\xdfk\x9f\xb6>\x8f\xf6E\ +\xbb\x8e\xbe/\xef\x9b,\xdd\xf9\xe8\xfd\xbamw\xb3\xe9\ +t\xbf\xdf\x93\xe2$$U\xbd\x9a~\x88\x92\xe4\xf6\xe6\ +f\xde<\xaen\xa2h|&\x8b\x83\xa0\xc8\x171\xe6\ +\xf8a\xb0/\xf2v\x8d9w\x1c\xae}\xb1Z\xb7\xc3\ +\xf8\xb1\xf0\xfb\xbfUO\x8b\x98F4\x820\xea&\x1a\ +X\xbe\xc3\xef,\xaf\xb22\xdd\xc2\xe0\xb6\xd8\xfa\x7f7\ +\xbe.|C\xb0\xfd\xf1\xa8\x93]\xb3\xb1\x11\x84G\xef\ +iJi\xb6TB\xb8I\xc4)\xe7\x09\xc5\x8f\xfcp\ +X\x04\xa0\xcaf\xd6-]\xc4\xd7\xee\x19\x8emvi\ +\xe6\x9bi'\x1f\xad\xef\x0c\xec\xd7w\x02\xd2T\x0fu\ +\xe6\x97\xd8\xc2\x93\xd2\xb7\xd3\x8f?~\xec'\x13J\xf2\ +6\x1f\xb69;}/\x0e\xe7rJ\xe9\xb4\xbb\xe1\xe9\ +\xb0\xc7\xd5\xef\xd4\xac\xf3\xe5%M\xe6\x9c\x9bR>\x05\ +\x12\xd0H\x9a\xe7\xb2M\x9f\x92\xb2y7Z\x9ae\xfd\ +\xca,0\xa2x\xf4Y\xb5\xddVes\x84\xe3L9\ +\x1f\x94w\x0f\xf5\xe6\xa0\x91gS\xbf\xf1[_\xb6\xcd\ +\x14~\x98\xc6\xb7\xd0\x9fo}\x9b\xe6i\x9b\x86\xb5G\ +rt\x12{P\x80\x0aL\x9a\xfd\xf3\xe3w\xc7\x11\xc6\ +Y6\xfbWU\xdf\x9f\x86\xf8\x04\x85\xf4\xaez\x00s\ +\xe2\xdb^<\xcf\xb3\x19`\xde\xa6\xedm\xb1MW>\ +@\xf1W\x987\x9f\x0e\x13g\xca\xed\xf3\xce\x0f\x9b\x1e\ +\xb7\xad\xfd\xd1_\x17\xaf\x93g\xdb\x22,\x9a\xfe\xd0\x16\ +\x9b\xcd\xf7\xe1\x908\x9a\xf6vNO\x86\x9e\xae1\x1d\ +\xddc>\xedny\x18\xe5~\xd9\x0c\x00\x84\x91>m\ +4\xef\x99\x1e\xf8\x96\x87\x808*\xeepXVm\xaa\ +z\x11\xbf[\x1e>\xf1q\xe2\xae\xaas_wS\xfa\ +\xf09\x9b\xaa@Z\x98\x8d`8\x89\xab\xbb_|\xd6\ +\xb6\xd5\xc6\xd7i\x19\xae\xca\xe8ifU#>/\xc9\ +\x1f\x8a\xdc_\x9a\xe8#.\x98\xd7\x1ftq\xb6Y\xa7\ +y\xb5_\xc4\xfc\xf3\xc9}Qb\x229\xa5\x06\xae\xa8\ +\xba\xa2\xd1g\x0b\xca\xba\x1b\x06\xf8z\xa0\xe4I\xd8\xac\ +\xab}\xb8\xc9\x22^\xa6\x9b\xc6\x7f\xbe\xdb\xafU\xb5\x0d\ +\x99\xc1\x08+\xa8|aN\x86\xf4\xc3\xa9%\x5cZ'\ +_L\xe2v\xd6\x12k\x9c\xe1\xd7\xcc\xc4zum\x0e\ +\xcb\xb9\xb92\xb7M\x9f\x8am\xf1\xab\xcf\x07O\x0d\xe7\ +>\xd45\x02)\xd9\xa4\xcf\xbe\x1e\xe5\xd3\x91J\xb8\xf5\ +\xab8\x1f\x18\xb4\xf6\xd9\xbd\xaf\xef\xaa\xb4\xce/\xf8)\ +\xf7\xcd}\xc7\xa4\x9c\x85\xa7\xa3\xe5j\xc0{\xc5(\xef\ +\x80iA\x88&\xc4\x16\xc28m\xeb\xe2\xe9\xbd \xc6\ +:\xed\x1c\x9bP<\xc3(\xb1\xd4\x10\xa9\xb5\xe2\x93D\ +\x19K\x98d\xd4}\xe8B~\xd5\xc5\xe1\xe1\x00\xeb:\ +\xcb.\x9d@\x09\x1c#\x8c\x16\x87\x13\x86\x11\xe7\xe14\ +k'L#\xe9s\xca\xe4\x87>;\xccwi\xbb\x1e\ +b\xbdi\x9f7\xa0\xf1\x12Q<+Q\xff\xbei\xda\ +\xba\xba\xf7\xb3w 9\x85\xc8\x8c\xc5\ +\x831\xb8\xf1'\x14:\xa2AG\xe6&\x92\x12\xea\xa8\ +\xd2:\xc27\xa9\xb8\x15\x13\xe1\x08@\xb4\x8cEB\x11\ +\x81\xbf\x82O\x84%r\xb4I\xc0-\xdc\x11%n$\ +\x1d\x92I\x85\xf8E\xe6B\x85\xc9\xb2l\x9c\xb4\xfe\x08\ +`\x905}\xfd&`\xb6\x01\x04!85j\x04L\ +\x22I\xc0*\xb8\x9aH\x19d\x97\x90\x90\xec7\x91\xe8\ +\x81\x98OW\xc74\xbdz\xc1v\xab\xe9U\xb2\x83|\ +\x8c\x0aI\xb5\xea\xb8\xd8\x0d\x19\xd1L Q\xd9\x89$\ +J!\x06\xb8\xe9\xc9>\x86|\x0c\xf8;a\xd2\xbb\xcc\ +v\x98\x8f\xe19\x02N\x89\x93F\xb1\xdd\xd3\xe7\xb0\xdf\ +=\xb4\xed\xeb\xa8\xbf\xc4\xf7\x80.\xe3D\x0b\x8d='\ +\x0c$\xb3\x5cr\x11e\x91\x22Z3\xed\xc4$\xe1\x88\ +Y\xc9\xb5\x8d\x90\xf3\xb8Q\x16\xc1\x8b\xf4'\xc1E'\ +\x22\xa6\x89\x00\xfaRCh\x083\x061\x07E\x08\x98\ +\x99\xa0\xb5Q\xdcI&\x22\x03f\x87\xf8\x94\x9ap\xa7\ +\xac9.T\xd8\xe1 \xb3Vj\xa5\x22\x06\xf0(g\ +\x9c\x85\x95\xa08w.b\x8a(f(u\x07C\x10\ +\x02B\xe8\x88[\xa2\x1d\x05' D\x96V\x12\xd9%\ +h:\xe5\xa8\xe3\x00^i\xc3u\xb8\x99u\x0eN\x08\ +\x91\xa2\xb0\x96\x9a\x88;\xe8S\xe7l\x88(c\x985\ +&b\xa0\x90E\xc6\x80\xf3\xa8\x0av`\x862\xa6&\ +\x89\x90\x90\x18\xa3U$8|\xc8\x0cN\x14\x820\x85\ +=\x0e\xfb++\x9c\x0bN\xb7Z\x1aX+\x88\x96\x8e\ +\xebI0[\x0a\x9c\x1d\x162\xe9\x94\x98h\x89\xd4D\ +\x95\x1c\x88\xda\xd1\xd4\xf1!\x8c\xaf\x84k\x965\xd9+\ +\xf9\x10\xbd\x15\xb3\xd4\x19}\xe0\xe00J8\xf0F\xd0\ +\xba\x09|\xe2\x90s\xc1\xc0\x9e\xef\xd78x\x16\xf42\ +\x0f\xcf9\x075A\x97)\xcc\xff1#\x1e\xf3!\x88\ +\xa94\x85\xfb\x98\x81\xd3\xc07\x17\xfd\x1c\xa1h\x04F\ +\x80\xa4\x1b\xb8\x1c\x98J\x8b!\x5c\xa0\x0c\x12\xe5\x05l\ +\xf9\x97\xc6\xed\xb3B\xa5\xcc\xab\x85\x0a=\x04\xd5\x8e\xb3\ +Sv\xe8\x87L\x805\xe8 P\xb4\x04xm\xacv\ +\xbfU\xab:\x9cpW&\xbey\xe9\xab\xe5\x12~\xa1\ +\xe7\xbezKz>\x0c6hD\xda\x99|c\xcav\ +\x88x\x090\x11\x8c\x94\xe1\x9eL\xa8(A(X\xe4\ +\x05d\x1a\x85\xea\xacG\xde\x1a\xfc\x85\x5c\xce\xc7\xe2\xbe\ +\xfb\xa9J\xd8\xdfVu\x82>\xe81m\x1fj\x1f\x9a\ +\x97Q\x15\xf3\x9bM\xb1k\xfcU\xd4\xd8\x08\xb1\xf0m\ +0\xbe\x07\xd0\xd9\xf0\x9c\x03\xc8Q\x81\xb9\x13_\x06\x9b\ +\xe1\x96v|\xcb\xd0o:M\xd4X\x846\xd1)\xa4\ +Y|\xc6\xaa5Tm\xc8$J\xa8\xb1~\xfd\xdc\xcb\ +5\x7fCq\xbftu\x04 \x13\xda}\x0d\x06}\x0a\ +\x0c\x12Z\xe0M\xe0\xc8 \x0bbD\x0a\x18I\xa3\x11\ +=Z\x13\xc4)\x22\xff2\xb8\xf2m\x14\xfa\x1f\xb1\xd2\ +\xf2\xeb@\xc5$J4\x0a\x96\x99h\x81\x8a\x14j\xd7\ +\xa5\x00\xbc\x02U\xa2\xfe\x0b\xb0.h\xf6I/\xc9\xf0\ +z\xe2\xeb\xf0\xf2#\x09\x17(\x7f\xd2\xfe\xae\x05\xa0\xae\ +\xb4D\xf0P/\xbf\x90;P\xef9^\xd0\xbe\x12u\ +\xd1c8-\x03s\x11\x90\x9c\xa1]\xfd9\xf4,B\ +\x89q\xa9?Kz\x7f\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x12\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\x0d\ +city:1\x22\x0a \ + d=\x22M 17.191299,\ +19.969174 23.663\ +93,31.276526\x22\x0a \ + id=\x22path8\ +78\x22\x0a sod\ +ipodi:nodetypes=\ +\x22cc\x22 />\x0a \x0a \x0a \x0a\ \x0a\ -\x00\x00\x0f\x93\ +\x00\x00\x11\xc5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a\x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \ - \x0a \ +\x0a \ +\x0a \x0a \ + \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -61\x22 />\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x060\ -\x00\ -\x00\x16\x83x\xda\xedX\xddo\xdb6\x10\x7f\x1f\xd0\xff\ -AP^\x1a\xcc\xa2\xf8)\x91\xaa\xddaCQt\xc0\ -\xf6\xb2u\x9f/\x83\x221\x8e\x16Y4(:N\xfa\ -\xd7\xefh[\xb2l\xcb\x9d\x87\xac(0L\x82\x13\xf1\ -\xeex\xbc\xfb\xdd\x07EM\xbfz\x5c\xd4\xc1\x83\xb6m\ -e\x9aYH\x10\x0e\x03\xdd\x14\xa6\xac\x9a\xf9,\xfc\xe9\ -\xfd\xdbH\x86A\xeb\xf2\xa6\xcck\xd3\xe8Y\xd8\x98\xf0\ -\xab\xd7/\xbe\x98\xb6\x0f\xf3\x17_\x04A\xb0\xaeJw\ -7\x0b\xb9\x0c7\xc3;]\xcd\xef\xdc~\xfcP\xe9\xf5\ -7\xe6q\x16\xe2\x00\x07\x5c\x06\x1d\xbd*g!\xa8\xa0\ -;\xa9\xfd\xfad\xc7o\xee\xdb\x22_\xeal\xc8\x0a^\ -\x16\x89\xd4\x94\x16L\xa6\x93\x80bJ\x22,\x22\xca\xae\ -\xb7sZ\xb0z\x09\xbf\xac4E\x93/\xc0\xd8\xaaY\ -\xae\x5c\xfbG\xde\xe4\xf5S[\xb5\x08V\xdc\x8a\x82\xd3\ -M\x9bu\x8b\xcc\xc2;\xe7\x96Y\x1c\xaf\xd7k\xd4\x11\ -\x91\xb1\xf3\xd8\xabi\x97y\xa1\xdb\xb8\xa3\x0f\x15t+\ -\xf6\x0a:\x02j\xcd\xca\x16\xfa\x16th\xd4h\x17\xbf\ -y\xff\xa6gF\x18\x95\xae\x1c\xe89X\x7f\xcd6+\ -S\x8cq|d/\x0c/\x15\xb5\xe5\xed\x98(QJ\ -\xc5\x98\xc6\x94F \x11\xb5O\x8d\xcb\x1f\xa3\xa6\xbd\x1a\ -\xce-\x8a~jau\xee\xaa\x07]\x98\xc5\xc24\xed\ -\x16\x93C\xe9r/\xbd\x5c\xd9z#R\x16\xb1\xae\xf5\ -B7\xae\x8d!nq\xf8\xdaO\x98.\xb4\xcb\xcb\xdc\ -\xe5\x9b\xd9\xdb\x1c\xe8H\x84ne@\x0a\x0c\xcb~x\ -\xf3v7\x04BQd\xbf\x18{\xdf\x8d\xe1\xf2\x22\xf9\ -\x8dYA\xa2\x85\xaf\xf7\xf4iYd\x00\xf9\x22w\xaf\ -\xabE>\xd7\x1e\x94/\xc1\xcai\xbcg\x1cJ\xbb\xa7\ -\xa5\x1e\xe8\xddj\xb6z\x1b\xbdQ\xbf\xcabQ\xf9Y\ -\xf1\x8f\xae\xaa\xebo\xfd2a\x10\x1f\xab\xad\x5c\xad\x07\ -\xd4i\xbc\xf3\xa1\xf31\x1e:9\x8d;\x14\xb6\xc3R\ -\xdf\xb6\x03\x88\xfc\x90\xe0\x1e\x9eEn\xef\xb5\xed\xd7\xeb\ -\x0b\xa5u\xa6\xb8\xf7\xf2_[k\xd6\xe4;(Z\xeb\ -\xc2^\xce\xd8\x0a\xc21\x0b\xf3\x953{\xaa\xd5\xb7\xbf\ -AmB\xd5\x0fI\xbf\x1e\x91\xcekm\xddS\x0d8\ -\x19\xa8\xd2\xdb\xda\xac\xb3\x87\xaa\xadnj\x1d\x9e\x9aW\ -\xb5\x1b\x03g\xa1\xb3+\xbd\x0f\xdat\x99\xbb\xbbA\x04\ -\xfcR\x9e\xc4\x85\x92\xe1\x80\x0e\xe4\xef\x030j\x02\xbf\ -\xe0\xbb@\xc0S$6\x8f\x11\xa1H\x0c\xc8[j'\ -\xfa!\x18j\xd9\x99{\x0b\x91\x8b\xec\xaa\xd6\x99~\xd0\ -\x8d)\xcbW\xad\xb3\xe6^gWxs\xed\x86\xd1\xa6\ -\xb7e\xd0\x13\x97n\xa8\xc5\xd9\xbci}:A\x0b+\ -\xf2Z\xbf\xc4H^o\xa9u\xee\xf4\xcb\xadA\xd7\xfb\ -\xb4\x80\x00o\x82\xb6\x8b\xb6\x0f\xe8\xf6\xb1\xefX\xbe\xcf\ -\x94\xbeW\xee\x96YBZ\x15\xa66v\x16^\xddn\ -\xae\xce\x80\x1bcKm;^\xb2\xb9\x0ey\x06\xfa\x15\ -\xa4(t\xcc\x8enn\xfe\xd4\x85s\xa6\xd6`\xa3\xcf\ -k\xd2\x07wn\xc1\xc7Q\xc6\xaa*\xf5(\xa7\x0f\xa9\ -7\xb2_l\x9c\xdd\xde\xe5\xa5Y\xcfBz\xc2]W\ -\x0dp\xa2\xdd\xf6A\xa4\x90\xe7D\xba-\x85`\x91\x86\ -\x83\xba\xe81\xebg\xb6wf\xed\x1d\x82\x08\xe7u\xab\ -O\x14~0\x06bF\x18\x12\x14K\xc6N\xf8\x85\xdf\ -\xa7\x90\x14X0\xc5\xc8)\x1b\xdc\xa4\x90T\x12\x13\xca\ -\xcfY\x0b*\xc4Y&(\x88\xce\xfa\xb9\xc8\x1f\xabE\ -\xf5A\x97\x83\xc8\xed\xd7^Y\x0b\xf5\x1b\xd5\xf9\x93\x86\ -\xc0\xcf\x15&\xa3\x80\x17w\xba\x80L\xbb1\xb9-}\ -Pv98\x9d\x0f\x80\x9bs\x22\xf6\xfdd~P\xe6\ -s.8\xbf\xa4<\x19>-\xcf\x09\x0e\xde\xf9M\xfe\ -g\xff\xe7\x1dl\xf8\xbf\x0fe\xf6\xbe\x98\xa6\x81|4\ -6\x02\xaf\x1er\xb7\xb2z\x90?Gu\x9a5\xf0\xda\ -1\xec\xb0\x03\x83w&\x0f\xb08*Oh\xf8\xb6z\ -|\x09\x15\x9c2E\x15\x9f\x80\x89\x93\xfd(Q\x08\xf6\ -CA\xc4\x84\xa6\x88H\x0aA\xbf>\xd8O\x8e\xbc\xff\ -G>\x0c\xc0\x22)9\xe4\xf8\x8d/\x88\x04C)\x96\ -<\x91\x13\x0e\x0f)\x11\x89\x08\x08F)\xc30\x9aD\ -\x12q&)Q\xc9\xe1\xdc!6W\xaa\xf0\xf7\xab\xf3\ -\x0d-\xc7\xfe>lh\x14\xa5\x8a\xf1T\xa5\xb4\xa3\xd7\ -\x158\x93/\xb3\x9b\x95sC\xda\x9f\xa6j2\xd8\xef\ -\xb4\xed\xa8\xbbz\xcfHG\xd8pkH\x5c\x97\xf1\x8e\ -V\xe6P\xf7\xd6\xe6O\x9b\xe0m\xad\xeb'\x1e\xed\x96\ -\xff\x1a\xc4l\x14b\x8e(\xe7\x22I&\x11\xe1H\xa5\ -\x8c+\x11(\xc4\x84$XM6\x0fXI\xfa?\xc2\ -\x97 ,N\x10\xfe>\x88\x18A2\xc54\x81\x84%\ -)4VNq\x1aD\x9cB\x9bL\x13\x8f\xbb@\x09\ -\x95TJ\xf1\xa9@N\xe4?\x07\xf9\x02LO\xc2q\ -\x04\xf2\xa17\xfdFn`\xd7\x84\xd7Cx\xa7/\x8a\ -\xbf\x0b\xc4\x99Y\xffJ\xb0\xd2\xb1r\x80\xb0\xa4\x92&\ -\x8cO\x22\x868N \xf9y\x00\xaf+\xa9`$M\ -&\x9b\xe6C\xd5\x7f\xba\x1at]W\xcb\xf6\xe8\xa5\x1f\ -\xf6e\x86\xb0\x00\x0b\x93#\xdc\xec\xa3g\x11\x01'N\ -z\x94\xc1\xfeu A\x94\x00\x93\x1e\xa5\x83\x7f\x91\x88\ -\x84@\x8cR\xcc\xd2s1bI\x94Dl\x14\xed\xc3\ -\xac\xcb\xaeR\xe1\xef#\xcf\xce\x87a\x98\xc0}\x0c$\ -Q\x94\x09v\x82\xb75\xab\xa6|Fa\x5c\x080\x85\ -\xf6\xcb%a\xa3\x00\xe3\x04\x922IN\x01N\x11W\ -,\xa1\x22\x19\x01\x98*\x04\xfa\x12F>\x020\xb9\x08\ -\xde\x1b\xea\xefg\xc0\xcb\x10#R\x11J\xd3\xcf\x05/\ -lt)\xbc\xca0~\x0a/G\x9c\x10\xa2\xc8H\xfe\ -\xfa\x9eM\x13A\x85\x18\xc1\x97Q\x94\xf0D\xa4\xf4c\ -\x09|\x19\xbe\xda\xdf\xcf\xc2W*\xac\x12\xc0\xf8s\xe1\ -\x0b\xfdR\xc2\xa1\x81\xb2\xb1\xf4\x15\x12:\xdc(\xbc\x1c\ -I\x9f\xbej\xac?0\xa8\x08\x0c\xfd\xe3<\xbc\x17\x81\ -[*\x7f?\x0b\x5c.\x15T_\x92~>p%\x06\ -\x04\x99\x1c\x03WQA0\x19\x01\x17fI!\xa4\x1a\ -\xeb\x0d\x1c\x9c\x82s\x1c\xffX\xee\xe2\x8b\xe0\x95\xb9\xbf\ -\x9f\xd9\x1b\x98\x92R\xd1O\x0a\xef4\x9e\xf7\x9f\x1b\xe6\ -\xa7\x87\xbb\xc1\xa9h\xf0\xa5\x02a\x9c\xa4T\xb2ID\ -\x05\xa0\x99R\xa5\xae\xc3\xa3\x03!\x81\x03\xe1\xfeS\xc6\ -\xf1q1\x19\xb6\x95\xd1E0\x12p^\x86\x03W\xff\ -Edk\xe0\xd4\x7f\x9e\x83\xff\x7f\x01`\x0eI\x0b\ -\x00\x00\x09~\ -\x00\ -\x00G\x98x\xda\xed\x5c[\x8f\xdb6\x16~/\xd0\xff\ - (/\x09\xd6\xa2\xc9\xc3\xbb3N\x81EQt\x1f\ -\xf6e\xb7\xbb\x0b\xecK\xa1H\xb2G\x8dm\x19\x92\xe6\ -\x96_\xbf\x87\x92eK\xb64Pg\x92f\xba\xa3I\ -/\xe2\xe1E\xe4w\xbe\xc3\x8f\x87\x9a\xf6\xea\x87\xfb\xed\ -\xc6\xbbM\xf2\x22\xcdvK\x9f\x11\xea{\xc9.\xca\xe2\ -t\xb7^\xfa\xff\xfa\xe5\xa7\xc0\xf8^Q\x86\xbb8\xdc\ -d\xbbd\xe9\xef2\xff\x87\x0f\xdf\x7fwU\xdc\xae\xbf\ -\xff\xce\xf3<\xec\xbe+\x16q\xb4\xf4\xaf\xcbr\xbf\x98\ -\xcf\xf77\xf9\x86d\xf9z\x1eG\xf3d\x93l\x93]\ -Y\xcc\x19as\xbf\xd5>:\xb5\x8f\xf2$,\xd3\xdb\ -$\xca\xb6\xdblWT]w\xc5\x9bv\xeb<^\x1d\ -\x9b\xdf\xdd\xdd\x91;^\xb5b\xd6\xda9\x859@\x80\ --\x82\xe2aW\x86\xf7\xc1Y_\x9cg__\xa0\x94\ -\xce\xb1\xae\xd5td\xb3E\x81\xe0\xec\xf1\xefc\xfb\xc6\ -@\x8a\xec&\x8f\x92\x15vL\xc8.)\xe7?\xfe\xf2\ -\xe3\xb12\xa0$.\xe3\xf68\xe9\xeeS\x11\x85\xfb\xa4\ -\xf3\xde\xc6X\xc3\x10n\x93b\x1fFI1o\xec\xf5\ -\x00wi\x5c^/}\xc9\x88\x9b e\xb5\xf5:I\ -\xd7\xd7\xe5\x85\xf96M\xee\xfe\x9a\xdd/}\xeaQO\ -\x18\xfc\xab\xb6\xa7\xf1\xd2\xc7\xa5\xc1\xa1\xd5\x89\x02\x87~\ -\xcd+\x17\xc7*J,\x10\xe9\xbd\x05\xaah\x12\xb1\x95\ -]\xcd<\xa0@\x03*\x02j\xde\xd5\xdd\x9a\x05/\xe2\ -,r\x0b\xc0\x97\x94Yt\x1d\x16e\x1a\xfd\xba_\x11\ -\x87\xe6\x07\xd7\xf2j\x9b\x94a\x1c\x96a\xd5\xad\x9eO\ -cbP\xb7\xc1V\xe8\xda\xc5?~\xfc\xe9PDC\ -\x14-\xfe\x93\xe5\x9f\x9a2\xfe\xb8&\xe1\xc7\xec\x06\xd7\ -\xee\x7f8\xd9\xaf\xe2h\x81\xce\xd8\x86\xe5\x87t\x1b\xae\ -\x13\xe7\xc8\xbf \xf6W\xf3SE\xb7u\xf9\xb0OZ\ -\xe3\xd6#\xe7I\xed\xd7^\x86\xc7\xd16u\xbd\xe6\xff\ -,\xd3\xcd\xe6o\xee5\xbe7?\x1f6-7I\xcb\ -z5?\xac\xa1Y\xe3\xbc\xbd\xc8\xaby\x83B]\x8c\ -\x93U\xd1\x82\xc8\x15\x19=\xc2s\xf4\xd2\x1e\xbd\xb4O\ -\x22\x17J\xc7\xb7\x1f}\xe1\xa6\xb8\xf4\xbbm\xf9\x81\x8d\ -^\xc7\xd7\xfb_\x91)\x92\x13\x05\x9a[\xee-<\x86\ -^\xe7\x1a\xb4v\xcf\xfd=\x1e\x1c\xb7\x16\x9eT\x94\x08\ -F\x85\xebE\xfb[~^\xfa\x82\x13\xa1\x14\xa3n<\ -0DK\xae@\x0c\x8c}\x98g\x90\xe5\xe9:E\x02\ -*N\xa4\x91\xc0\x0c\xb6W\xc4\x08\xaa\x8c<\xeb\x8a\x08\ -\xb5\x90\xc0\x89\xb3\xc6\x1f\xe8v\x84\xae~<\x02\xe3\x18\ -\x1a\xbb\x089\x8c\xb0G\x07F\xd9&\xcb\x97\xfe\x9bU\ -\xf5\xd3\x8c\xfd1\xcb\xe3$o\xeaT\xf5\xd3\xad\xcb0\ -T\x91\x0c\x18B\x8d=\xfb\xf8\x1b\xce\xa3\xcc6I\x1e\ -\xee\x1c\x83\xd8\x11\x97u\x8e1\xdc[q\x93\xc6Io\ -\xcd\x09\x16\x9c\xe4\xf1e\xfd\xd5\xc5u\x18gwK\x1f\ -.j\xef\xd2\x1d\xd6\x04\x87-\x84\x99f;\xb8l\xd2\ -\xec'\x8c\xb2S\x1b\xc4\xf7\x88\xd9\xd1Z\x5cgwn\ -AK\x7f\x15n\x8a\xe4b\xc0\xcfY\xb6]\xfa\x86\xa0\ -\xeb\x98\xb1\x17\xd5\x11R\x8e[t-H\xc3/kq\ -\x91\x9ah\xaa)cbh\xae8\x82\x1e\x5c+\x0e\x00\ -r\xa8r\x1b\xde\xa7\xdb\xf4s\x12\xb7\xfcvz\xf7M\ -\x9e\xa3\x80\x05\x9b\xf0!\xc9\x0f\xdbeC\xa7}X^\ -\x1f\xdac\xdf\xbf{tF\xbd\x9f\xdd\x06\xfbo\xf7\x8f\ -\x9fq\xb3\xfdo\x1b5\xd7\xfcr\xfaQ\xb6\xdb!E\ -\xb2<\xc0W\xdd\x86\xe5M\x9e\xb4\x5cZ\x94\x0f\x1b,\ -\xafpkY\xecP~\x8f\xef^\xb7\x06^\x0b&\xcf\ -{\x1c\xd8\xb1\xc0\x80\x14\xc6i\x01\xbc\xaf\x06yCi\ -,\xc2\xf0}Q\xe6\xd9\xa7d\xf1\x06>\xba?\x87b\ -\xd0\xf4:\xe2P\x22\x07\x0b\xb7S\xe2\xce\x1c\x96yz\ -\xff\x96\xa2#0b\xb563\xea\xfe\x10\x0dVq*\ -\xd8,P@\x841\x8a\xeaY\xc0$\xe1\x86\xe1\xe3\xbb\ -\xe3>\xb5>\x86hk\xd0\xeaq\x13\x96\xc9[\ -\x19\xadgga$\xdbvw\xfa\xf7\xf0\x14 \xf0\x14\ -@a\x06\x8c\xa0\xcaH.=t\x10\x03\x83\x02\x83\x0f\ -\x00\xaa2\x08\x0arVy\x8ey\x91WU0Q\x19\ -\xb8\xa9\xea-\xb0\xaah\xab\xa2\xa2L\xcd\xeaqt5\ -\x9e\x01SUK^\x15\x95\xd2u\xd1z\xee-\x98X\ -VE|\x97+r-a\xa6\x08@\x12\x88\xca\xa0\x80\ -A\xd5@\xd4e\x0bU{&\xa4\xb7\xa9\x07\xe0\x87\xe9\ -\x09~9\xfd\xcf\xedU_\xe8\xb5\x01\xde\xa3\xd7\xcfe\ -8\x9e\x9cp\x8d\xe2[R\xbc\x9d\xff|\x11\xf6\xe8K\ -\xf6P\x22\x85\x96V;\xf6`\x86\xc1%8vT\xd0\ -S]y\x9e\xa3\x97\xaa\xb2\xc2\xe3Fe\x90Z\xd7\x06\ -\xd0\x15W\x90Au\x07&*&AM\x0dc]\xc9\ -(Q\xb9\x1a@[\xf45>i\xab*.\x80D\xe6\ -\xb9~\x9aQ;\xc3\x1c\xc7\x91%\xaa,\x82\xe1i\x09\ -\xd0\x09\x0d\x7f\xf0\x5cP\x13\x8ckWfHSY\xd3\ -\xd5\xd4\x0d\x98\x12\x1d\x82\x815\xaa\xa1{\xa7\x8c\x84\x9d\ -\xe8t\x95#g.A\x18\xb1\xb3\xd5\x0br\x5c\xa1\xc8\ -'\xaa\x1f]Pk\xea\xe2\xf1\x99\x9f\x90\xdd\x87)f\ -\x0fUv\xb8\xd8\x86\xf9'\xccL=7/\xafn\xd9\ -v\x9dKR\x04\x9e|\xf1\xd8\xd8a6f6\x00.\ -\xafV\xda\xb6\xedMv\x06\x8es\x8aA\xbb\xee\x90\xdc\ -a\x14h<\xffKs\x1eA\x0e0\xae\xb9\xee\xa0\x98\ -l6\xe9\xbeh\xdf\x7f\xe4.\x97%\x82kEMg\ -\xfc\xfc\xbe\xaa\xc0\xf3\xb8\xd2\x9d\x8a\xa8J\xb5\x08(\xa4\ -\x5cgw\x8f\xeaeh-\xb8\xe4}\x01-d\xd7~\ -\xc6d\xf6\xfe\xcf\xe0\xce\xaf\x02\xa7 \x96Q\xce\xf59\ -\x9c\x82\x13k\x19WCh\x06\x13\x9e\x83x*u\x89\ -'\xc7M[\xe2^)\x07\x01U0!\xda\x83(\xc7\ -m\x8b*.YO\xc0+%\x985\xc3\x14U\x13\xa2\ -\xfd\x88\xe2a])\xd6\x13\xf3(\x10x>\x1dF4\ -\xd0\x13\xa4\x03\x90*wW\xd5\x13\xf6x\x1ck]\x83\ -\xf6\x84} 'L{0\x15\x92\xe0\x11\x1b\xbb<%\ -\xf0'y\x1a\xc2\x14\xcfN\x96\x99\xfe\xd0\x07\xca\x1f\x0b\ -\xfd\x89\xa8\xc3\xa0Z\x80\xa7\xc5~\xf0\x7f$RW\xf3\ -\xf5\xe1c\xd8z\xe0K\xc2)./o\xff\x19\x91\x06\ -\x85\x9eCu\xf9\xcf\x882R2\x83\xf92(b0\ -\x91\xd6\xee\xd1\x10a9(\xf9\xc5\xef\xfe\xd1\x0f\xc3w\ -[\xac\xed\xf5\xbe\xef\x16\x86[\xab\x04\x15\x87\xef\x16\xc7\ -\xa2$\x8cS%\x84{R\x063qx7|\xcfu\ -\xfan\x98\xc5\x89\xfb\xa8Z,\xfd\xa8\x88\xfc\xe7]f\ -\xe0\xe2\xe8\xc5e\x06S\x04Q\xd1V\xcd4\xce\xd6\x80\ -\xe6\xee\xaa\x8bQ\x22\x00\x7f\xd8\x8cz\x8c\x11\x0e\x80\xec\ -\x9d\x05\xd8\x981L\xf4\x8c\xc70\xfb\xc2~\xc2\xd6F\ -@\x16\x0b\xcfe\x0a\xee\x22\xa3\xba\xd7P\xcc\x95\x15\xda\ -\xe5\xcc\xbd\x84K\x09\xd8O\x10j)Zg\xc7n\xfe\ -PN\x9d0\x96\xc8\xdfq\x8bph\x7fv\x8b0\xf2\ -\xc2\xb5\x0a\x87g\xc4F{\x15\xbf\x83~\x8f\x5cW\x9d\ -\x7f\x95{d\xe5\x1f53\xc2\x9e\xaf\x5cX\xca(|\ -\x83\xf5W\xdf)9\x10N\xa5c\x088^Pe\x98\ -\xb3\x01p|\x9a\x09L\x8f\xac\x02=\xc0S\xf3D\xaa\ -\xf7\x06N\xf4UQ\x968[k\xbe\x09\xc8[\x17\x86\ -Lq\xd0z\xe6\xb4\x07\xa3T\x81\x87j\xa3-\xd0\xfa\ -\xea\xaf\x9b-\xb5\x11\xeej\xf8\x17\xc4\xf8\xf1\xbd\x9fQ\ -\xa1\x06\xbf\x22+\xc9\x8f\xbb\xf9\xb9(\x0f\x08\xe2\xc1)\ -g\x9b\xc4\xc1em\x10\x1b\x7fqf\xb5\x06f\xbe\xdd\ -%\xdc\xc5\x09\xb5\x9dKU\xe7Z\x81\xa1\xa3\x15oE\ -Au\xbc\xc0\x98\x01C\xa1e>\x1cG\xa8j_\x83\ -\x1d\x0e/\xda\xe0\xd1\xb8\xfd1\xfak!\x0a\x8c3\xc3\ -\x84|Q\x88\xb6\xe9]aJ\xb8\x90 \xda)\xed#\ -\x98V\xbf\x8ct\x06)\xda\x8cT\x0c0\xb7{\xad\x98\ -\xf2.\xa6\xb8\xe7\x18fh\xfb\xbe\xea\xa9\x98\xda?\x02\ -SL\x165\x8a\xcf\x0b\xe3\xa9\xea\x82\xca0\x01cJ\ -1;2\xf8\x19\xc2\xa0/\xa2\x1f8P&\xcd\xabE\ -\x15\xba\xa0\xa2&ZI1\xfc\xff$\xa0\xbeH\x91\x0a\ -\xd8\x85L!J\xd4\xa8.\xa8\x5c\x11-\xdb\x1f\x91&\ -\x91\x1a\x0e\xfes\xa2\xba\x03\xb2PV\xb3\x11\x98N\x22\ -\xd5/R\xe7\xc7)\x94)DTR\xf5\x5cL_\xb3\ -H\x05\xf4B\xa6\x94UT\x8d\x0b\xfeI\xa4zE*\ -\xb0\x172e\xc0\xaa\xf6oL\xbe`P_\xa6H\xa9\ -Q\x22\x05\x92H\xaa-\x85I\xa6F\xc9\x14\x1d%S\ -\x03\xa8NB5 Tj\x94P=\x05\xd5W-U\ -0J\xaa\x06\xb7\x80I\xac\xfa\xc5J\x8d\x12\xab\x17\x0b\ -\xeb\xcb\x94+3J\xae\x98 \x80'\x00\xca&\xb9\x1a\ -%Wz\x94\x5c\x0d\xa0:\xc9\xd5\x80\x5c\xd9Qr\xf5\ -\x14T_\xb7\x5c\x8dK\xad\x06\xf7\x80I\xaf\xfa\xf5\x0a\ -F\xe9\xd5\x8b\x85\xf5e\xea\x95\xb4\xe3.\x01\xdd\x7fE\ -\x80\xa0N\xf9\xd5\xc8k\xc0\x91\xf7\x80\xfd\xb0N\x8a5\ -\xa0Xf\xdcM\xe0\x13P}\xd5\x8ae\xc7\xdd\x05\x0e\ -\xed\x01\x93`\xf5\x0b\x96\x1ew\x1b\xf8,X\xeb\xdf\xca\ -\xb8r\xff\x93\x12\xfc\xf7\xff\x002\xe0|8\ -\x00\x00\x0aP\ +odetypes=\x22cccsc\x22\ + />\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09\xb4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0a\ + \x0a \ + \x0a \ +\x0a \x0d\x0a <\ -ellipse\x0d\x0a ry\ -=\x2212.649562\x22\x0d\x0a \ - rx=\x2212.649564\ -\x22\x0d\x0a cy=\x2217.6\ -92028\x22\x0d\x0a cx=\ -\x2224.120813\x22\x0d\x0a \ - id=\x22path883-3-\ -3\x22\x0d\x0a style=\x22\ -fill:none;fill-o\ -pacity:1;stroke:\ -#aeaeae;stroke-w\ -idth:3.7485;stro\ -ke-linecap:round\ -;stroke-linejoin\ -:round;stroke-mi\ -terlimit:4;strok\ -e-dasharray:none\ -;stroke-opacity:\ -1;paint-order:ma\ -rkers stroke fil\ -l\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x0f\xa8\ +y:none\x22\x0a d=\x22\ +M 6.2711864,12.5\ +92421 6.0677966,\ +34.965303 25.796\ +61,23.372083 Z\x22\x0a\ + id=\x22path448\ +9\x22\x0a inkscape\ +:connector-curva\ +ture=\x220\x22 />\x0a\x0a\ +\x00\x00\x0d\xd4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata12\x22>\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#2a2aff;\ +stroke-width:1.5\ +5563576;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22m 8.9\ +284573,21.414399\ + c 6.6627827,0.1\ +25436 13.1892557\ +,1.906635 18.586\ +6507,4.507361 5.\ +397394,2.600727 \ +9.66571,6.020982\ + 11.812176,9.424\ +532\x22\x0a id\ +=\x22path825-3\x22\x0a \ + inkscape:c\ +onnector-curvatu\ +re=\x220\x22\x0a \ +sodipodi:nodetyp\ +es=\x22csc\x22 />\x0a \ +\x0a \x0a \ + \x0a \x0a \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x04\xb9\ -\x00\ -\x00\x1f!x\xda\xe5Y[o\x9cF\x14~\x8f\x94\xff\ -@\xc9K\xa2\x96a\xee\x17\xb2\xebH\xad\x15)\xafm\ -\xaa>c\x98\xdd%\x06f\x05\xd8k\xe7\xd7\xf7\xb0\x0b\ -x\x88\xed\xb6\x12/\x95@\xbbZ\xcd9g\xce\xe5\x9b\ -s\x19\xec\xcd\xa7\x87\xaa\x0c\xeem\xd3\x16\xae\xde\x86\x04\ -\xe10\xb0u\xe6\xf2\xa2\xdeo\xc3?\xbf~\x8et\x18\ -\xb4]Z\xe7i\xe9j\xbb\x0dk\x17~\xbaz\xfbf\ -\xf3S\x14\x05\xbf56\xedl\x1e\x9c\x8a\xee\x10|\xa9\ -o\xdb,=\xda\xe0\xfd\xa1\xeb\x8eI\x1c\x9fN'T\ -\x0cD\xe4\x9a}\xfc!\x88\x22\xd8\x0a\x9b\xdb\xfb\xfd\xdb\ -7A\xe0\xdb%\xe1\x99R\xe4\xdb\x10\xb8\xf4\xb2:\x15\ -yw\x00\xae\x19\xd6\x07[\xec\x0f\x9dG\xb8/\xec\xe9\ -W\xf7\xb0\x0dq\x80\x03\xa0\x06\x13\xa7\x85\x10\x8e\xf0M\ -r\x97\xd5i\x05\x9e\xb7\xc7*\xed\x10(\x1f,\x0d\xae\ -%\xbe\x13\x88\x06\xefq\x8aq\xb6\x13\x8c\x99_\x02\x8a\ -)\x8d0|\xf8\x87\xcb.@\xabn\x93q\xef6|\ --\xd6\xded{L3\xdb\xc6#\xddW0z7)\ -\x18\x09\xa8uwMfw\xa0\xc3\xa2\xdav\xf1\xf5\xd7\ -\xeb\x89\x19a\x94w\xb9\xa7gf\xff\xc4\xce\x96)\xc6\ -8\x9e\xa2\x1c\xcc\xdd\xef\xff\xabh\x93\xef^\x12%\xc6\ -\x98\x18\xd3\x18\xe0\x00\x89\xa8}\xac\xbb\xf4!\xaa\xdbw\ -\xfe\xde,\x9b\xb6f}j\x14\xf76sU\xe5\xea\xf6\ -\x82\xc9\x5c:\x7f\x92>\xde5\xe5Y$\xcfb[\xda\ -\xca\xd6]\x1b\xc3q\xc4\xe1U\xbfaS\xd9.\xcd\xd3\ -.=\xef\xbe$\xc9H\xd2\x17\x11\x10\x02\xbf\x92\xdf\xaf\ -?\x0fK dY\xf2\x97kn\xc75<\xbdHz\ -\xe3\xee \x85\xc2\xab'\xfa&\xcf\x12@\x1c\xd2\xe3\xaa\ -\xa8\xd2\xbd\xed1\xf9\x19\x9c\xdc\xc4O\x8c\xb9t\xf7x\ -\xb4\x9e\xde\x8b\xe6\xc6^\x0e\xef\xc5\xb0\xf2\xac*\xfa]\ -\xf1\x1f]Q\x96_z3a\x10?9\x1b\x0f\xde\x8e\ -\xd1\xc4~8\x9bx\x0c\xf7\xb2\xcc\xed\xae\xf5\xb0\xe8\x97\ -r\xd4\xb6\x992\xbf\xcf\xc1\xbc\xaf\x90A\xf4\x0863\ -W\xbaf\x1b\xbe\xdb\x9d\x9fp\xe0\xdc\xb8&\xb7\xcd\xc8\ -\x93\xe7g\xces\x90\xcb\xe0?\x14\xc9Hw7\xdfl\ -\xd6u\xae\xb4MZ\xf7A\x13<\xb2\xf6\x0d\xd4\xed\x8b\ -\x8c\xbb\x22\xb7/r\xa6j\xec\x9d\x9c\x8c\xbd\xccn\x0f\ -i\xeeN\xdb\x90>\xe3\x9e\x8a\x1a8\xd1\xd06\xa8\xc0\ -\xe25\x91\xa9\x93`2E\xdaC9a\xc6Gj{\ -p\xa7>\xa0m\xb8K\xcb\xd6>S\xf8\xdd\xb9\xaa\xef\ -\x1d\x94\x1a\x22\xa5z\xc6\xcf\xa0;ED+D\x88\x96\ -\xfc9\x1b\xc2T\x181E\xb52\xafy\x0b*\xc4\xab\ -\xa1\x80\x02\xaa^cV\xe9CQ\x15\xdfm\xee\x9d\xdc\ -\x93\xed\xbb\xa6\x81R\x8b\xca\xf4\xd16~\xdf\xfd\x01\xf0\ -\xec`\xb3[\xdb\xdc\xb8\xb4\xc9\xfbC\x193\xad\x81\x04\ -\x18Q\xea\x1eK8\xd0\x1d\xe4vR\xc3\xa0\xf8\xd8v\ -\x8d\xbb\xb5\xc9;s~\x86\xe5\xe5d\x12\xc2\x10\x1b)\ -eQ[0\x944\xee\xae\xce}\xe27W\xd4s*\ -\x14\x90mJ\x08\xa7K\xf8H\xcbS\xc8\x86\xa6I\x1f\ -}\xab\xd1\x90@\x09\xf9xL\x0b\x08\xf0\x9c\xc2I\x95\ -6\x10E\x1b\x5c\x84\x82\xdeW\xff\xe8\xfbh\x0c\x9eP\ -\x1ag\x8f\xe4H)#\xa6,\x992Gh\xc4\x95R\ -\xd3\x91\xc2!\x11\x8e\xb4\x94\x94O\xc2}\xc1(\x84\x05\ -\x17\x9a\xfc\x1bl#T\xfd\xc2\x8b\xe0\x9f\x80d\x882\ -\x8e\xc5\xff\x13K)\x0d\xfe\x01L\x89\x94\x14\x86+\xfd\ -#\x98#\x83y`2\x8a\x14\xa7\x8a\x13\x0fL&\x00\ -s\x81\xe5\x1a\xb1\x8c\xc4\x124\xb9F\x02\x13\xce\xb4\x87\ -fO\x13\x9as\xb3J8\xe9\x128%E\xdapc\ -\x98\x07\xa7<',\xd3t\x9dpF\x8b\xaa]kD\ -\x15\xc5\x8az\x80\x0a\x89\xb0\x81\xfc\x94+\x05\x94/\x01\ -T\xc0\xbb\x9c\x14Txxj\x0c\xddS+\xbcV<\ -\xc9\x12<\x0dC\x06.i\xc4\x9f\xedp\xab\xc3J0\ -\xc3W\x09\xa8\x5c\x02\xa7\xd2HaA\x8d\xf1\xe0T\x00\ -'\x8c(\xce\xd69\xde\x97\x0dxB\x08R\x82>\xbd\ -\x0a\xf4\x0d\xd4 J\x14\xd7|\xad\x13iQ\x07\xe5@\ -4J\xceF\x12\xbc/\x22C\x8c\x12+ET\xabE\ -9\xca$\xbc\xe9J\xe3\x0f%\xc9\x101\xc2\x10\xb2\xd6\ -\x1c\xd5\xcb\xaa\x9e\x22\xc6\xe5\xac\x8d\x12L\x91\x90\xcc\xb0\ -\xb5\xe6\xe8\xa2\xa2\x170\x83\x8c`~\x8a\x12\x8a\x11\xd1\ -B\xac\xf5b/\x17\xbd*i\x824\x17\x98\xcdR\x94\ -\x13\x98LX\xac\xf6f\xbf\xac\x8d\xc2\xdd\x9e\x10\x8d3\xfd\xb8\xabJg#uS\ -\xa8z\xe6\x12\x84]G\xd6\x99\xca\x8bz1s\xff\xf8\ -\xfc\xc9\x8b]\xa71\xa2\xceE\xa9j9sk\xe5~\ -\xbc}\xffn\xdal\x16\xef\xdf9\x8e\x03\xc3\xeb&\xcd\ -\xb3\x99\xbb4f\x95\xfa\xfej\xadK\xa4\xf4\xc2\xcf3\ -_\x96\xb2\x92\xb5i|\x82\x88\xef\x8e\xf0\xd9\x11\x9fi\ -)L\xb1\x91\x99\xaa*U7\xed\xd0\xba\xb9\x1a\xa3u\ ->\x1f\xe0\xdb\xed\x16m\x83\x16E\x92$\xf11\xf5)\ -\xf5\x00\xe15\xfb\xda\x88\x9d\xf7d,\xec\xf3\xdcX\x8a\ -1\xf6!6\x82\xbe\x10\x966@\xce\x0a>\x03\xbew\ -\xa0F\xadu&\xe70P\xa2Z\x1a\xff\xee\xf3\xdd\x10\ -\xf40\xcaM>\x9e\xa7\xa8\x1f\x9aL\xac\xe4\xc9\xba\xbd\ -\xb3\xa3AT\xb2Y\x89L6~\xef\xef&\xe8\xadt\ -\x9c8\xe7\x03\xc3A(\xd8\xfc\x9e%\x13\x87b\x8a=\ -\x1cz\x98\x5cwc\xfa\x8d\xa4\xb9\xca\xec\xc43W\xe4\ -\xf9_\xf7\xc2\x184\x1c\xb0\xc8g.\x18Qg\x8d&\ -'\x07O!\xb7?\xab\xdd\xcc\xc5\x0evX\x0c?\x9d\ -\x7f)\x8b\xc5\xd2\xcc\xdc\xde\xde\x16\xb9Y\xb6\xe6\xad\xb5\ -\xa7\x954\x22\x17F\xb4\xc1n\x99\xdeEh\x87\x01\x14\ -$1\xfd\xed\xee\xd3\xc1\x04G\x96\xa5\x7f*\xfd\xd0\xdb\ -\xf0\xb2\x10q\xaf\xd6\xb0\x96{{\xf4O\xf3,\x05\xda\ -+an\x8bJ,\xa4M\xd9O\xc0\xf2\xd4?\x06N\ -\xd1f\xbf\x92\xa3y\xbb\x99\xb5\xec2x\xb6\x96\xf3\xac\ -*\xec(\xffwS\x94\xe5/v\x19\xd7\xf1\x9fN[\ -\x98R\xde\xb6\xcbv\x7f\x0eg\xf1\x0f\x87\xe9\x0f\xeb\x8f\ -O;\xf5{::3\x97\xf3f\xc4\x955\x09\xeeW\ -\x9b\x0e\x99\xb4i\xccmNzl_\x16\x90\xe2\xb5\xbd\ -x\x9eV\x06.\x97\xcd!v\x9f\x82\xb2\xb5\xd6\x16S\ -\x8a\xbd\xd4\xe3\xbc\x8f0\xdb\xa2\xce\xd5\xd6\xab\xc4\xae\xa8\ -\x8aG\x09{!\x970\xfb\x99K/N\x00%\x13\x9d\ -\xd9\x01\x8c\xf1\x08\x0dQ\xccp_:\xe3\xf0\xce\x86\x89\ -\x0d3\x12>\x0b?*U\xd9\xda\xe4A\x1c`F\xfb\ -x\xb3T\xdb\x85\xb6\xb4\xcdE\xd9Hw\xc4\xe3\xc0W\ -|i\x9f}!\x13L\xf8%\xcc\xa1\xb8I|\xe6D\ -+\xa8\x8af)\x00\x06l\x9c\x8d*\xb8\xcfPG\xa3\ -\x84,\xd6E.\x8d*\xa5\x16\xb5\xad=r\x8c\xc01\ -\xce\x06\xd4\xfd\x17\x99\x99\xb3\xa1{\xa5s\xa9\x87U\xc8\ -\xa9?S\xa5\x82\x5c_E\xed\xab\x8f\xd9}\xf5\x91y\ -\xfb\x1ajm%\xcc\xf2\x80\x9aC\xd9[\xfd\xafO8\ -\xb5\x80\xe1\xa4`\xff\x0a\xd2\xb0d\xf1\x86\xc5K\x8f\xc5\ -\x8f\xc3D\x8b\x03\xc4\xc0\x8e\x1b{%A\x02\x84\xd1\xc5\ -\xee\x03F$\x8a1T@0\xc1\xf6}4)E8\ -\xa6<\xa2\x13/B\x11\xe1\x94\x85\xf1\xf5x\xf1E\x1c\ -\x0c\x07l\xcc\xbe\x04&\xec.\xd3+!\xed\xfb\xc6\x1a\ -\xde\x81\x8b\x94\xdc4F\xab\x079D;\xd3+\x8bZ\ -BzR\xad\xd6u\xde;\x87A\x83:\x8d\x98\x18\x89\ -i\xad w\xa0\x0a\xf0\xf4\xc82w\x88\x1fkX\xd5\ -0\xbbQ\xda\x83\xeb\xb6\x11f\xad\xe5(\xf5G\x0ac\ -B\x8fN+\x8fN\x12\x22\x9c\x90\x84\x07\x930Bp\ -v\xca\x02\x07\x83\x8b1>\xe1\x09\xe2I\x88\x13~\x1c\ -\xf3\x82\xe3\xb7\xa6^\x972\x95\x1b\x09\x1b\xcf/\x10\xd2\ -\x16xJ\xa2\x7f$\xc8:\xbf\xa8\xa2NA\x15\xa5\xee\ -\xbd\xadQ\x82V\x98\x94\xf5\xbe\x5c\xc0\x8d\xd0Z\xecS\ -[;\xcf\x09\x1eD\xf4\xfbS\xec\x05OH&\x01C\ -ID\x80R\xa0;\x04nc\xeex\x1d\xbb\x04\xc7\x93\ -\x96\xef\xf0\x0d\x91<\xf5\x17\xcf\xeeu\xcfOB\xc8\xe8\ -\x1eC\x01\x023\x01\x0f\xc2hB\x89-E\x1c\xb6\xf5\ -\x17't\xc2\x10\x08$\xe6\xd1\xab\xef^\xc7\x02EA\ -D\xa3\xe0\x07S\xb1\xf8\xce\xc2\xf1D\xa7\x8e\xb5wN\ -\x02q\x04\x9df\x14\xb1\x83\x04\x0e&0M\x83\x88\xf3\ -pB0\x0a1\x89\x82\xe0\xfa\x82$\xfdgk\xf3U\ -\xba7\xbe\xdd\xd1W\xa8\xc3\x05\x99\xb9$Jo\x84\xe4\ -\x7f\xa9{'\x12\xea\xf1oN\xf3 K\x1a\xe68\x8c\ -\xb1\xfdd\x808\x8db6,\x08\x0d!G\x8c\x051\ -\xc5\xc3\xee\x86\x96\x8d\xa3\x80&\x84\xb1>p\xe8\xd3h\ -\x04\xea\x0226\xbe\x8fv\x99\x84\xd3o$_\xece\ -)<\xf1~E\x0aoV\xa2\x80v\xbd\xed\xe3\xd2J\ -\xe8\x07\xf8z\xe6t\xa0\xb67{Q\xabuIg(\ -C\x8c\xc6\x98\xd3Vg\x92$\xe4\xc9\xf5s\x05\xf3\xc2\ -7\xd3m\xd9:\xf6\xc2\xff\xdb\x81g\xed\xc0\xab\x9f\xe5\ -I\x1c\xd3\x1f\xacjm\xf2\x02\x8c(\x89\x12\x9e\xd8~\ -\x85A\xbe\x92\x04\x1e\x1c\xf05\x8d\x07d\x12 \xc6C\ -6\xfa\x92ylz\xe0\xb1\xd1\xd21\xb5\xff5\x80\xdf\ -\x7f\x03\xe1\x80\xbc\x94\ -\x00\x00\x0b\x1a\ +:1;paint-order:f\ +ill markers stro\ +ke\x22\x0a d=\x22M \ +8.9284573,21.414\ +399 C 22.208216,\ +21.802695 35.599\ +435,32.642214 39\ +.132829,38.26310\ +9\x22\x0a id=\x22pa\ +th825-6-7\x22\x0a \ + inkscape:conne\ +ctor-curvature=\x22\ +0\x22\x0a sodipo\ +di:nodetypes=\x22cc\ +\x22 />\x0a \x0a\x0a\ +\x00\x00\x09\xc9\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0aR\ +e:none;stroke-wi\ +dth:15.31822777;\ +stroke-linecap:r\ +ound;stroke-line\ +join:bevel;strok\ +e-miterlimit:4;s\ +troke-dasharray:\ +none;stroke-dash\ +offset:0;stroke-\ +opacity:1;paint-\ +order:normal\x22\x0a \ + id=\x22path1093-\ +3\x22\x0a cx=\x2218.1\ +56338\x22\x0a cy=\x22\ +17.843712\x22\x0a \ +r=\x2212.973715\x22 />\ +\x0a\x0a\ +\x00\x00\x0f!\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \x0a \x0d\x0a \x0a <\ +path\x0a \ +d=\x22M 231.11788,4\ +78.5796 V 291.11\ +984 c 0,-5.94833\ + -4.81115,-10.75\ +948 -10.75947,-1\ +0.75948 H 32.986\ +119 c -5.948327,\ +0 -10.759473,4.8\ +1115 -10.759473,\ +10.75948 V 478.5\ +796 c 0,5.94832 \ +4.811146,10.7594\ +7 10.759473,10.7\ +5947 H 220.44588\ + c 5.86085,-0.08\ +75 10.672,-4.898\ +62 10.672,-10.75\ +947 z\x22\x0a \ + id=\x22path827-2\x22\ +\x0a styl\ +e=\x22fill:#37c8ab;\ +stroke-width:0.8\ +74754\x22\x0a \ sodipodi:nodet\ -ypes=\x22ccccc\x22 />\x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x16\xf3\ +ypes=\x22ssssssscs\x22\ + />\x0a \x0a \x0a <\ +/g>\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \x0a <\ +g\x0a id=\x22g85\ +7\x22 />\x0a \ +\x0a \x0a \ +\x0a \x0a \x0a\x0a\ +\ +\x00\x00\x06*\ +\x00\ +\x00\x15\xf2x\xda\xedX[o\xeb6\x12~?\xbfB\ +P^N\xb0\x16\xc5\xabD\xaav\x8a]\x1c\x14]\xa0\ +}\xd9\xed^_\x16\x8a\xc48jd\xd1\xa0\xe889\ +\xbf~\x87\xb2u\xf3\xe54EZ\x1c`\xb1\x16\x12\x88\ +3Cr\xe6\x9b\x1b\xa9\xe5\xb7/\x9b:x\xd6\xb6\xad\ +L\xb3\x0a\x09\xc2a\xa0\x9b\xc2\x94U\xb3^\x85\x7f\xfb\ +\xe9\xbbH\x86A\xeb\xf2\xa6\xcck\xd3\xe8U\xd8\x98\xf0\ +\xdb\xbb\x0f\xcb\xf6y\xfd!\x08\x82}U\xba\xc7U\xc8\ +e\xe8G\x8f\xbaZ?\xbaa\xf8\x5c\xe9\xfd\x9f\xcc\xcb\ +*\xc4\x01\x0e\xb8\x0c\x8e\xe4\xaa\x5c\x850\x9d\x1ed\xc6\ +\x9d\xc9\x81\xdb<\xb5E\xbe\xd5\xd9\x94\x13|,\x12\xa9\ +)-\x98L\x17\x01\xc5\x94DXD\x94\xddvSZ\ +\xd0v\x0b\x7fYi\x8a&\xdf\x80\x92U\xb3\xdd\xb9\xf6\ +?y\x93\xd7\xafm\xd5\x22\xd8\xae\x93\x04[\x9b6\xeb\ +\xb7X\x85\x8f\xcem\xb38\xde\xef\xf7\xa8'\x22c\xd7\ +\xb1_\xa5\xdd\xe6\x85n\xe3\x9e>\x99\xdf\xef7\xcc\xef\ +\x09\xa85;[\xe8\x07XB\xa3F\xbb\xf8\xd3O\x9f\ +\x06f\x84Q\xe9\xcaq\x99\xd9\xee{\xd6\xedK1\xc6\ +\xf1\x5cY\x18\xbdQ\xd2\x96\x0f\x97$\x89R*\xc64\ +\xa64\x02\x89\xa8}m\x5c\xfe\x125\xed\xcddjQ\ +\x0c3\x0b\xabsW=\xeb\xc2l6\xa6i\x0fp\xcc\ +\x84\xcbQx\xbb\xb3u'Q\x16\xb1\xae\xf5F7\xae\ +\x8d\xc1_qx\x07\xf2\xcb\x8dvy\x99\xbb\xdc\xcf=\ +\xf8\xbd\xa7\x10\xdaI\x80\x0c\xe8\x94\xfd\xe5\xd3w\x87\x11\ +\x8c\x8b\x22\xfb\x87\xb1O\xc7!\xfc\xbc@~ov\x10\ +W\xe1\xdd@^\x96E\x068orwWm\xf2\xb5\ +\xf6X\xfc\x01\xf4[\xc6#c&\xec^\xb7z\x5c\xf4\ +\xb0\xac\xd5\x07\x87]\xb4\xa7,6\x95\x9f\x14\xff\xd5U\ +u\xfdg\xbfI\x18\xc4'\x8bV\xae\xd6#q\x19\x1f\ +\xb5?\xda\x16O\x8c[\xc6\xbd\xed\xdd\xa8\xd4\x0f\xed\x08\ +\x8b\x1f\x11\xdcC\xb2\xc9\xed\x93\xb6\xfdFCB\xb4\xce\ +\x14O^\xfa\x8f\xd6\x9a=\xf9\x01\xb2\xd2\xba\xb0\x173\ +\xb6\x02\xf4Wa\xbesf Z\xfd\xf0/H?H\ +\xea\x09\xe5\x9fs\xca\xd5\x15[\xf7Z\x034\x06\x12\xf1\ +\xa16\xfb\xec\xb9j\xab\xfbZ\x87g\x8aUm\xa7\xda\ +*tv\xa7\x07\x1f-\xb7\xb9{\x1c\x11\xf7\xdbx\x0a\ +\x17J\x86#\x19\xa8?\x06\xa0\xce\x02\xfe\x82\x1f\x02\x01\ +o\x91\xe8^#B\x91\x98\x90\x0f\xd4^\xf4s0Y\ +\xe4\xa8\xe9\x03\xf8)\xb2\xbbZg\xfaY7\xa6,\xbf\ +i\x9d5O:\xbb\xc1\xdd\xef8\x8c\xba\xa2\x95A\xa9\ +\xdb\xba\xc9\x22\xce\xe6M\xeb#\x07\xaaS\x91\xd7\xfa#\ +F\xf2\xf6@\xads\xa7?\x1e\xd4\xb9\x1db\x00\x1c\xda\ +\xf9\xe9\xe0\x5c\xef\xc1\xeem(F\xbe\x86\x94\xbe\x04\x1e\ +\xb6\xd8B\xfc\x14\xa66v\x15\xdeK\xbf\x05\x0e\xbe\xf7\x0d\xfa\xef\xfe\xdf\xf7\ +\xd0\xac\xff=\x11\x19M0M\x03qgl\x04\xc6<\ +\xe7ng\xf5\x18*'i\x985pX\x98\x94\xcbQ\ +\xd3\xa3\xae\xa3\xfd'\xb9\x07\x85\xdbV/\x1f!;S\ +\xa6\xa8\xe2\x0b\xd0n1\x8e\x12\x85\xa0\x9f\x09\x22\x164\ +EDRp\xf1\xed\xb4-\xcc\xad\xfe5\xdaO0\x22\ +)\x991|\xe3\x0a\x22\xc1P\x8a%O\xe4\x82\xc3K\ +JD\x22\x02\x82Q\xca0\x8c\x16\x91D\x9cIJT\ +2\x9b:\xc5\xe4F\x15\xfe\xf9\xe6z\x9d\xca\xb1\x7f\xe6\ +u\x8a\xa2T1\x9e\xaa\x94\xf6\xf4\xba\x02K\xf2mv\ +\xbfsnJ\xfb\xd9TM\x06MK\xdb\x9ez\xcc\xe8\ +\x8c\xf4\x84\x8e[C\x94\xba\x8c\xf7\xb42\x87\xd4\xb66\ +\x7f\xed\x9cv\xd0n\x988oy\xbf\x11\xba\xec\x12\xba\ +\x1cQ\xceE\x92,\x22\xc2\x91J\x19W\x22P\x88\x09\ +I\xb0Zt/XI\xfa\x7fp\x7f\x09\x5cq\x0a\xee\ +\x8fA\xc4\x08\x92)\xa6\x09\x84)I\xa1nr\x8a\xd3\ + \xe2\x14\xea`\x9ax\xc8\x05J\xa8\xa4R\x8a\xdf\x09\ +\xdfD\xfez|\xdf\x00\xe7\x99'N\xf0\x9d\x1934\ +f\x03\xbd\x10\x0evp\x02/\x8a/\xbb\xe0\xca\x9c\xdf\ +\xc0K\xe9\x85\x14\x00\x7f\xa4\x92&\x8c/\x22\x868N\ + \xe0y\x00\xc7\x8eT0\x92&\x8b\xae\xd6P\xf5?\ +\x9c\x01\xba\xae\xabm;?\xa6C\xc3e\x08\x0b\xd0/\ +\x99cf_<\x87\x08\xb8\x12\xd2y\xd8\xfa\x1e\x9f \ +J\x80G\xe71\xe0\xcf\x06\x91\x10\x88Q\x8aYz\xc5\ +7,\x89\x92\x88]\x82y\x1eg\xd9M*\xfcsb\ +\xd2u\xfc\xa7!;\x80/\x89\xa2L\xb03\xa0\xad\xd9\ +5\xe5;R\xe1M\xc8R(\xb4\x5c\x12v\x09Y\x9c\ +@$&\xc9\x19\xb2)\xe2\x8a%T$\xe7\xc8R\x85\ +`\xb1\x84\x91\xeb\xc8\x92\xb7\xe0zO\xfd\xf3\x0e\x5c\x19\ +bD*Bi\xfaup\x85^\x96\xc2!\x85\xf13\ +\x5c9\xe2\x84\x10E\xce#\xd6Wf\x9a\x08*\xc49\ +\xb0\x8c\xa2\x84'\x22\xa5_\x08\xd97\x01\xab\xfd\xf3.\ +`\xa5\xc2*\x01p\xbf\x0e\xb0P\x17%\x1c\xfa)\xbb\ +\x10\xb0BB%\xbb\x84+G\xd2\x07\xac\xbaP\x0a\x18\ +$\x00\x86Jq\x15\xd7\xb7\xa0Z*\xff\xbc\x0bU.\ +\x15\xe4Z\x92~-T%\x06\xec\x98\xbc\x80\xaa\xa2\x82\ +`r\x8e*\xcc\x91BHu\xa1\x0cp\xb0\x07\xae_\ +\xfc\x0b\xd1\x8a\xdf\x82\xab\xcc\xfd\xf3\xce2\xc0\x94\x94\x8a\ +\xfe\x9e\xb8.\xe3u\xffE`}z/\x9b\x5cl&\ +_\x12\x10\xc6IJ%[DT\x00\x8c)U\xea6\ +\x9c_\xe5\x08\x5c\xe5\x86/\x0d'\xd7\xbcdR=.\ +n\x80\x91\x80\xdb-\xdc\x97\xfa\xaf\x15\x9dfK\xff\x8d\ +\xec\xee\xc3\x7f\x01\x01\xb0A\xae\ +\x00\x00\x09s\ +\x00\ +\x00F\x16x\xda\xed\x5c[\x8f\xdb\xb8\x15~\xcf\xaf\x10\ +\x9c\x97\x04\xb5h\xf2\xf0\xee\x8c\xb3@\x11,v\x1f\xfa\ +\xd2n[\xa0/\x0bE\x92=\xda\xd8\x96!in\xf9\ +\xf5=\xa4,[\x92\xe5D\x93\xcbf\xda\xf1$\xbb\x10\ +\x0f/\x22\xbf\xf3\x1d~<\xd4 W?\xddo\xd6\xc1\ +mZ\x94Y\xbe]L\x18\xa1\x93 \xdd\xc6y\x92m\ +W\x8b\xc9?\x7f\xfb94\x93\xa0\xac\xa2m\x12\xad\xf3\ +m\xba\x98l\xf3\xc9Oo_\x5c\x95\xb7\xab\x17A\x10\ +`\xe7m9O\xe2\xc5\xe4\xba\xaav\xf3\xd9lwS\ +\xacI^\xacfI\xbf\xc1\x15O\xde\x1e\xccW\ +Ii\ +\xab<\x0d@\x22\xe9\x5c?\xcd\xa8\x9db~\xe2x\x12\ +{\x8b`x\x12\x02t@C\x1dT\xfe\x9a[\x5c\xbb\ +2C\x86\xca\x9a\xa9\xa6n\xc0\x94\xe8p\x0b\xacQ\x0d\ +\xd3;e\xe4\xea\xb3gR\x81|9\x81`\xc4nV\ +/\xc7\x11\x85\x22\x97\xa8\xfe\xe4rZ\x13\x17\x9f\x9e\xf7\ +\x11\xd7]\x94a6\xe0\xb3\xbb\xf9&*>`R\x19\ +\xb8y\x05u\xcb\x96\xdf\x5c\xc6!\xf0L\x8b\x87\xc26\ +\xa91I\x01p\xd9\xb0\xd2\xb6en2,plS\ +\x0cZU\xfb\xf4\x0c\xe9\xaf\xf1L/M/p\x1cT\ +\x5cs\xdd\x86/]\xaf\xb3]\xd9\xba\xa6(\x5c\x12J\ +\x04\xd7\x8a\x9a\xf6\xd8\xc5\xbd\xb7\xe3\x19[\xe9\xb6=\xf6\ +\xf9\x12\x01\x85[\x05\x0ai_\x83\x94UT\x8d\x89\xf3\x8b\ +\x02\x9d(Ph\xfb\x1ad\xc0\xaa\xd6/\x1a>Q4\ +\x9f\xa4\x02\xa9\x11\x0a\x04\x92H\xaa-\x85\x8b\x06}N\ +\x83\xe8\x08\x0d\x1a\x86\xf3\xa2B\x03*\xa4F\xa8\xd0\xe3\ +\xe1|\xbe:\x04#t\xe8\x5c\xb4_\x94\xe8T\x89\xd4\ +\x08%z\x92x>I-2#\xb4\x88\x09\x02\xa8\xeb\ +\x94]\xb4\xe8sZ\xa4Gh\xd10\x9c\x17-\x1a\xd0\ +\x22;B\x8b\x1e\x0f\xe73\xd6\xa21I\xd1\xb9p\xbf\ +\x88\xd1\xa9\x18\xc1\x081z\x92x>I1\x92v\xcc\ +\xdd\x9c\xfbUzD\xf3\x92\x19}\xfevn\xd4\xf5\xdc\ + \x9e\x179\x1a\x90#3\xe6\x82\xee\xd1p>_9\ +\xb2c\xae\xe8\xce\x84\xfbE\x8dN\xd5H\x8f\xb9\xa4\xfb\ +r<\xfd\xaf8\x5c\xb9\x7f8\xe3\xed\x8b\xff\x02hI\ +h\x9e\ +\x00\x00\x0a\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x08\xf0\ +y:1;paint-order:\ +markers stroke f\ +ill\x22 />\x0a \x0a\x0a\ +\x00\x00\x0f@\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0a\x0a <\ +metadata\x0a id\ +=\x22metadata12\x22>\x0a \ + \x0a \ + \x0a image/svg+\ -xml\x0d\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \x0a \x0a \ +\x0a \ +\x0a \x0a \ + \x0a \x0a \ +\x0a \x0a \ + \x0a <\ +g\x0a id=\x22g\ +901\x22\x0a tr\ +ansform=\x22matrix(\ +1.0739294,0,0,1.\ +0739294,69.94982\ +8,29.759617)\x22>\x0a \ + \x0a \ + \x0a \x0a \ +\x0a \x0a\x0a\ +\x00\x00\x04\xb5\ +\x00\ +\x00\x1egx\xda\xe5YKo\xdbF\x10\xbe\xfbW\xb0\ +\xf4%A\xcb\xe5\xbe\x1f\x8c\xa4\x00m\x10 \xd76E\ +\xcf4\xb9\x92\x18\x93\x5caI[v~}\x86\x12)\ +R\xae\x1d\x14\xd2\xa5\x00\x09\xe9\xb03\xb3;3\xdf\xbc\ +\x96\xd2\xe2\xe3SU\x06\x8f\xd67\x85\xab\x97!A8\ +\x0cl\x9d\xb9\xbc\xa87\xcb\xf0\xef\xaf\x9f#\x1d\x06M\ +\x9b\xd6yZ\xba\xda.\xc3\xda\x85\x1fW7\x8b_\xa2\ +(\xf8\xc3\xdb\xb4\xb5y\xb0/\xdam\xf0\xa5\xbeo\xb2\ +tg\x83w\xdb\xb6\xdd%q\xbc\xdf\xefQ\xd1\x13\x91\ +\xf3\x9b\xf8}\x10E\xab\x9b\x9bE\xf3\xb8\xb9\x09\x82\xa9\ +N\x12v\x84\x22_\x86\xc0\xa3\x87\xc5\xbe\xc8\xdb-\xf0\ +\xccq\xb9\xb5\xc5f\xdb\x8e\xeb\xc7\xc2\xee\x7fwO\xcb\ +\x10\x078\x00b00\x1a\xb0|\x07\xdf$wY\x9d\ +V`p\xb3\xab\xd2\x16\xc1\xc1G%\xbdE\xc9T=\ +\xa2\xc1;\x9cb\x9c\xad\x05c\xe6\xb7\x80bJ#\x0c\ +\x1f\xfe\xfe\xb0\x09 \xaa\x9bd\xd8\xba\x0c\xdf\xf2\xb0S\ +\xd8\xec\xd2\xcc6\xf1@\x9f\xec\x1fL;\xed\x1f\x08\xa8\ +q\x0f>\xb3k8\xc2\xa2\xda\xb6\xf1\xa7\xaf\x9fN\xcc\ +\x08\xa3\xbc\xcd\xc7c\xce\xb4\xef\xd9A/\xc5\x18\xc7\x83\ +\x87\xbd\xb2\xc7\xcd\x7f\x94\xf4\xf9\xfa5Ib\x8c\x891\ +\x8d\x01\x09\x90\x88\x9a\xe7\xbaM\x9f\xa2\xba\xb9\x9dl\xcd\ +\xb2\xd3\xce\xac\xcb\x85\xe2\xd1f\xae\xaa\x5c\xdd\x1c\xe18\ +\x13\xceG\xe1\xdd\x83/\x0f\x12y\x16\xdb\xd2V\xb6n\ +\x9b\x18\xe2\x10\x87+\x90_T\xb6M\xf3\xb4M\xbb\xbd\ +\xc7\xb4\x18(\xfa \x00\x22`R\xf2\xe7\xa7\xcf\xc7\x15\ +\xac\xb3,\xf9\xc7\xf9\xfb~\x09O'\x90\xde\xb9\x07\xc8\ +\x99pu\x22/\xf2,\x01\x98!!VE\x95nl\ +\x07\xc5\xaf`\xde\x22\x1e\x19g\xc2\xed\xf3\xce\x8e\x87\x1e\ +\x8f\xf5\xf6\x18\xafW\xdd\xc9\xb3\xaa\xe86\xc5\x7f\xb5E\ +Y~\xe9\x94\x84A|\xb23\xee\x0d\xed\xdd\x88'~\ +,\xe2\xc1\xcb\xc3*\xb7\xebf\x04\xa0[\xc9\xfe\xa0\xc5\ +)\xc7\xbb|\xcb\xbbR8\x0a\xee@Y\xe6J\xe7\x97\ +\xe1\xed\xfa\xf0\x84G\xc6\x9d\xf3\xb9\xf5\x03K\x1e\x9e3\ +\x96\x83\xa4\x05\xb3\xa1\x18z\xb2\xbb\xfbf\xb3\xb6u\xa5\ +\xf5i\xdd\xb9Jp\xcf\xd9x\xa8\xcc\xd7\xe8\x0fEn\ +_c\x9c*\xae3\xef\xa4\xe8Un\xb3Ms\xb7_\ +\x86\xf4%s_\xd4\xc0\x88\xfa\xa6@\x05\x16oH\x9c\ +\xfa\x04&\x83\x87\x1d|'\xa0xOl\xb6n\xdfy\ +\xb2\x0c\xd7i\xd9\xd8\x97\xa7}w\xae\xea:\x03\xa5\x86\ +H\xa9^\xb23h<\x11\xd1\x0a\x11\xa2%\xff\x17\x17\ +\xdcS\x181E\xb52o\xd8\x09\x07\x88\xb7|\x80\xed\ +T\xbd\xc1\xab\xd2\xa7\xa2*\xbe\xdb|\x0c\xd5\xa8\xf7\xc1\ +{\xa8\xa4\xa8L\x9f\xad\x9f\xb4\xd2\x17 g[\x9b\xdd\ +[\x7f\xe7R\x9fwq\xe8\x93\xcaC\xbc{l\xda\xe7\ +\x12\x02\xb8\x86\xfcMj\xe8\xf9\x1f\x9a\xd6\xbb{\x9b\xdc\ +\x9a\xc3\xd3/\x8f\xc1H\x08Cl\xa0\x94EmAM\ +\xe2\xddC\x9dO\x89\xdf\x5cQ\x9fS\xa1H\xac/\xc1\ +\x956\xe1\x03-O!\xfe\xde\xa7\xcfS\xadQ\x9f1\ +\x09\xf9\xb0K\x0b\xf0\xee\x90\xafI\x95z\xf0\xa1\x09\x8e\ +BAg\xeb$\xdc\x9d/\x06\x0f\x00\x0d\xa3Dr\xa4\ +\x94\x11C^\x9cREh\xc4\x95RC\x1c!4\x84\ +#-%\xe5\x83hW\x18\x0aa\xc1\x85&?\xc7k\ +\xc0\xa8[LL\xff\x19\x82\x0cQ\xc6\xb1\xf8_\x82(\ +\xa5\xc1\xe7(J\xa4\xa40\x5c\xe9\x17(\x0et6\xa2\ +\xc8(R\x9c*NF\x14\x99\x00\xa8\x05\x96\xb3\x031\ +\x12\x17\xc3\xc85\x12\x98p\xa6G\x18;\x92\xd0\x9c\x9b\ +\xf9\xe1H/\xc6QR\xa4\x0d7\x86\x8d8\xcaC\x86\ +2Mg\x88ctyak\x8d\xa8\xa2X\xd1\x11I\ +!\x116\x90\x91r\x8eH\xf2\x8b\x91\x14\xf0\xbe%\x05\ +\x15#\x90\x1aC\x87\xd4\x0a\xcf\x12Hr1\x90\x86!\ +\x03\xf7-2\x99\xd8p=\xc3J0\xc3\xe7\x87\xa4\xbc\ +\x18G\xa5\x91\xc2\x82\x1a3\xe2\xa8\x00G\x18?\x9c\xcd\ +ph_1\xb6\x09!H\x09z\xba\xc9wM\xd2 \ +J\x14\xd7|\x96\xe3\xe6\xf2.\xc9\x81f\x94\x9c\xce\x1b\ +x\xbfC\x86\x18%\xe6\x08\xa5V\x97g%\x93\xf0b\ +*\xcdd\xe2H\x86\x88\x11\x86\x90Yf\xa5\xbe\xa2\xc0\ +)b\x5cN[%\xc1\x14\x09\xc9\x0c\x9beV^^\ +\xdf\x02&\x8c\x11l\x92\x94\x84bD\xb4\x10\xb3\xbc\x99\ +\xcb\xcb_r4A\x9a\x0b\xcc\xa6I\xc9\x09\x8c\x1d,\ +\xe6y5\xbf\xa2U\xc2\xe5\x9c\x10}\xf4\ +\x12\xd7i5o\x0a^\xc9F\xac\xdcF\xba\x1f\xae\xdf\ +-\xdb\xfb\xcd;\xc7q \xb8i\xb3\x22_\xb9[\xad\ +w\x99\xef\xef\xf6\xaaBRm\xfc\x22\xf7E%j\xd1\ +\xe8\xd6'\x88\xf8\xee\xe4\x9eO\xee\xb9\x12\x5c\x97\xf7\x22\ +\x97u-\x9b\xb6\x8bl\xda\x8b\x99\xb3*\xd6\xa3\xf7\xe1\ +p@\x87\xa0s\x22i\x9a\xfa\x98\xfa\x94z\xe0\xe1\xb5\ +\x8f\x8d\xe6\x0f\xdeq(\x9c\xf1T(\xc5\x18\xfb`\x9b\ +<_\xe6\x95\xb5\x80\xca\x0e\xfeGw\xab@\xad\xdc\xab\ +\x5c\xac!N\xa0Fh\xff\xe6\xd3\xcdh\xf40*t\ +1[\xa6l\xee\xda\x9c\xef\xc4\xd1\xaeV\xd9#\xc0k\ +\xd1\xeex.Z\xdf\xea\xbbx+d\xf3|9\xef\x19\ +\x0eB\xce\xd6\xb7,]8\x14S\xec\xe1\xd0\xc3\xe4\xb2\ +\x0b\xb1\xa7\xc8\x0a\x99\x9beW./\x8a\xbfn\xb9\xd6\ +\xc8^\xae,V.\xfc\x8e:a\xb62\xe9\x15\xa58\ +\xfc,\x1fV.v\xb0\xc3\x12\xf8\xeb\xd4[Qn\xb6\ +z\xe5\x0e\xe2\xa1,\xf4\xb6\x93\xaeA\x5c\xd6B\xf3\x82\ +knL\xfd\x06VCh\xe7\x01>\x90\xb6\xec\xb7\x9b\ +\x8f\xbd\x04r\x9eg\x7fJu7\x88\xf01\x0e\xfcV\ +\xeea\x17\xf7zT/\x8b<\x03\xa0k\xae\xaf\xcb\x9a\ +o\x84\xc9\xd1O\x00\xec\xd2\x9f\x0cG\xce\xfaq'\xa6\ +E\xfbe\x95\xe83v\xb2l\x8b\xbc.M\x90\xff\xbb\ +.\xab\xea\x17\xb3\x89\xeb\xf8O\x16-u%\xae\xbb=\ +\xfb\x9f\xf6\x16\xfep\x8d\xe1\x92\xfe\xec\x96K\xdf\x82\xd0\ +I\x85X\xb7\x13>F\x22x\xd8g9f\xcd\xa4\xac\ +0)\x18\x18+1VF\xc2\xa7\xd6\ +/R\xd6\xa6\x02\xe3 \x090\xa3\x83\xb9\xdd\xca\xc3F\ +\x19\xb0\xd6\xbcj\x85;\x817\xa2\x94\x9c9\xa1\xadV\ +\x82I|\xc6e\xa8`\x92<\xbf\xca\x0e*\xa0\xddr\ +\xf0\x02\x10N\x19%\xf4*\x94\xcc\x94\x83\xcd\xbe,\x84\ +\x96\x95P\xbc1UFF\x03\x9c\xff\x94^\xde~\x16\ +\xb9>e\xb9\x95\xaa\x10j\xdc\x81\x1c\xa9sYIH\ +\xedE\xd4}\x06\x939\x915\xac\xbb\x8f-\xab\x1d\xd7\ +\xdb\xdeg\x0d\x95m\xb8\xbc\x99\xc3h\xcc\xf6~ \xfe\ +\x0a\x1d\xbfe\xc9=K\xb6\x1eK\xbe\xd8E6\xbd\x83\ +\x86\x83\xb6\xa6\xdf\xa0\xb7\xb9V\xe5\xc3{\x8cH\x94`\ +\xc8v\xb0\xc0\xe6;\x89\x94\x22\x9c\xd08\xa2\x0b/B\ +\x11\x89)\x0b\x93\xcb\xd9\xc6\x9b$\xb0\xf7j\xf5c\x05\ +\xd77\xe7\xcb.\xb80\xdf+#x\x03\x02\x19\xb9j\ +\xb5\x92wb\xb4\xf6\xa2W\x95\x8d\x80\x84dJ\xee\x9b\ +\xc2*\xc7 K:\x13\x023jl$$\x0b\x1a\x1e\ +\x9e\x03y\xeeZ\xf3T\xab\xb2\x81\xa5\xb5T\x1et\xd4\ +=\xd7{%\xa6LO\xc8%\x84\x8e:CxN\x1a\ +\x22\x9c\x924\x0e\x16a\x84\xe0\xd2\x94\x05\x0e\x06\x15c\ +\xf1\x22NQ\x9c\x868\x8d\xc7\x90\x17\x5c\xbc\x13\xd5\xbe\ +\x12\x99\xb8\x17p\xe8\xe2\x0c\x14])g$\xfaGh\ +\x8c\xf2\xb3,\x9b\x0c\xc8N(\xab\xed\x84\x0a\xc8@g\ +\xcc\xea\x0a\x0e\xc5\xaf\x14\x7f\xccL\xbd<\x87\xd6r\xe3\ +w\x06\xd7\x0b\x8e\xe1%\x01CiD\x00L\x00:\x04\ +T\x93\xd8\xf1z\x5c\x09N\x16\x1d\xd2\xe1\x9b\x81w\xe9\ +o\x9e\xb4\xb0\x85&%d\xeaY\xa8:\x00%\x88\x83\ +0ZPb\xea\x0f\x87]\xd1%)]0\x04\xfc\x87\ +\xe3\xe8\xb5\xad\xd6\x03@Q\x10\xd1(\xf8\xb1(l\xbe\ +/K\x1cS\xd2Xq\xa7\xb8\x0eG0 F\x11\x1b\ +\xb8n\x14\x01d\x1aDq\x1c.\x08F!&Q\x10\ +\x5c\x9ed\x9f\xfflA\xbe\x82\xe4\xe6\xed\x1c}5\x19\ +\x9c\xe1\x94\xd3\xfc\xf36\xe0\xfd:\x92;bK/\xfe\ +\xb6\x00[\x06R\xb0@\x1f`f\xc2\x00\xc54J\x98\ +\xdd\x0b\xc6\xba\x181\x16$\x14\xdbc\x8d\xb3W\x8c\x02\ +\x9a\x12\xc6\x06\xfd0p\xd1\x08x\x04\xf8j\xd6{f\ +\x874\xa6\xdf\x86\xa6\xd8\xcb\xd2v\xa4\xfd\x17i\xbb\xda\ +\xf1\x12f\xedn*\xcbj\xae\xee\xe0=\xca\xe9\x9d\xba\ +a\xeb\x05\xd3\xd39F\xa1\x0c1\x9a\xe0\x98v\x8c\x92\ +\xa6a\x9c^>c*/|\x0b\x03\x94\xa9Z/\xfc\ +\xff9?\xc7\xf9\xd5\x8f\xe94I\xe8\x8f%\xaf.o\ +\x01F\x94Di\x9c\x9aA\x84A\xaa\xd2\x14\x9e\x0c\xf0\ +~\x15\x07d\x11 \x16\x87lz/\x9cf\x19x.\ +\x18$\x96\xe6\xbd\xfe\xfa\xdd\xdf\x9e\xd9\xb6\xb0\ +\x00\x00\x0a\xd7\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \ + \x0a\ + \x0a \ + \x0a image/svg\ ++xml\ \x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ +e\x0a rdf\ +:resource=\x22http:\ +//purl.org/dc/dc\ +mitype/StillImag\ +e\x22 />\x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x07y\ +#666666\x22\x0a bo\ +rderopacity=\x221\x22\x0a\ + objecttoler\ +ance=\x2210\x22\x0a g\ +ridtolerance=\x2210\ +\x22\x0a guidetole\ +rance=\x2210\x22\x0a \ +inkscape:pageopa\ +city=\x220\x22\x0a in\ +kscape:pageshado\ +w=\x222\x22\x0a inksc\ +ape:window-width\ +=\x222495\x22\x0a ink\ +scape:window-hei\ +ght=\x221016\x22\x0a \ +id=\x22namedview4\x22\x0a\ + showgrid=\x22f\ +alse\x22\x0a inksc\ +ape:zoom=\x221.1020\ +922\x22\x0a inksca\ +pe:cx=\x22112.51327\ +\x22\x0a inkscape:\ +cy=\x2287.560732\x22\x0a \ + inkscape:win\ +dow-x=\x2265\x22\x0a \ +inkscape:window-\ +y=\x2227\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22g1179\x22\x0a \ + inkscape:snap\ +-bbox=\x22true\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a\ + \x0a \ + \x0a \ + \x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x0a\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\x05\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221851\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview6\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x224.9166667\x22\x0d\ -\x0a inkscape:c\ -x=\x2224\x22\x0d\x0a ink\ -scape:cy=\x2224\x22\x0d\x0a \ - inkscape:win\ -dow-x=\x2269\x22\x0d\x0a \ - inkscape:window\ --y=\x2227\x22\x0d\x0a in\ -kscape:window-ma\ -ximized=\x221\x22\x0d\x0a \ - inkscape:curre\ -nt-layer=\x22svg4\x22 \ -/>\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xdd\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x00\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \x0a \x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a\ + ~\x0d\x0a\x0d\x0a\ -\x00\x00\x0c0\ +y:1;stroke:none;\ +stroke-width:1px\ +;stroke-linecap:\ +butt;stroke-line\ +join:miter;strok\ +e-opacity:1\x22\x0a \ + d=\x22m -113.89\ +831,-16.423729 c\ + 5.28813,3.75833\ +9 6.58476,4.7817\ +23 11.87289,2.59\ +3221 l -3.3305,9\ +.8135589 c -2.07\ +314,-1.9708122 -\ +5.14567,-2.79845\ +53 -10.75425,-1.\ +1949153 z\x22\x0a \ + id=\x22path990\x22\x0a \ + sodipodi:n\ +odetypes=\x22ccccc\x22\ + />\x0a \x0a\x0a\ +\x00\x00\x16t\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a BusBar\x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x0a-\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \ + \x0a \x0d\x0a\ - \x0d\x0a \x0a \x0a <\ +ellipse\x0a s\ +tyle=\x22opacity:1;\ +fill:none;fill-o\ +pacity:1;stroke:\ +#989898;stroke-w\ +idth:20.4293;str\ +oke-miterlimit:4\ +;stroke-dasharra\ +y:none;stroke-op\ +acity:1\x22\x0a \ +id=\x22path4482\x22\x0a \ + cx=\x2296.5\x22\x0a \ + cy=\x2295.499\ +992\x22\x0a rx=\x22\ +84.785355\x22\x0a \ + ry=\x2284.785362\x22\ + />\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0bd\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22\x0a d=\x22M \ +99.29645,10.7821\ +66 V 28.353924\x22\x0a\ + id=\x22path4\ +494\x22\x0a inks\ +cape:connector-c\ +urvature=\x220\x22 />\x0a\ + \x0a <\ +path\x0a styl\ +e=\x22fill:none;str\ +oke:#989898;stro\ +ke-width:8.52797\ +;stroke-linecap:\ +round;stroke-lin\ +ejoin:miter;stro\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a d\ +=\x22M 32.146252,97\ +.880995 H 14.574\ +502\x22\x0a id=\x22\ +path4494-4\x22\x0a \ + inkscape:conn\ +ector-curvature=\ +\x220\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x08\xaa\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +g/ns#\x22\x0a xmlns:\ +rdf=\x22http://www.\ +w3.org/1999/02/2\ +2-rdf-syntax-ns#\ +\x22\x0a xmlns:svg=\x22\ +http://www.w3.or\ +g/2000/svg\x22\x0a x\ +mlns=\x22http://www\ +.w3.org/2000/svg\ +\x22\x0a xmlns:sodip\ +odi=\x22http://sodi\ +podi.sourceforge\ +.net/DTD/sodipod\ +i-0.dtd\x22\x0a xmln\ +s:inkscape=\x22http\ +://www.inkscape.\ +org/namespaces/i\ +nkscape\x22\x0a widt\ +h=\x2248\x22\x0a height\ +=\x2248\x22\x0a viewBox\ +=\x220 0 48 48\x22\x0a \ +version=\x221.1\x22\x0a \ + id=\x22svg6\x22\x0a so\ +dipodi:docname=\x22\ +to_transformer.s\ +vg\x22\x0a inkscape:\ +version=\x221.0 (40\ +35a4fb49, 2020-0\ +5-01)\x22>\x0a \x0a \x0a \x0a \ image/svg+xml\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + id=\x22path2\x22\x0a \ + fill=\x22none\x22 /\ +>\x0a \ +\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x06s\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x22826\x22\x0d\x0a \ - inkscape:win\ -dow-height=\x22480\x22\ -\x0d\x0a id=\x22named\ -view6\x22\x0d\x0a sho\ -wgrid=\x22false\x22\x0d\x0a \ - inkscape:zoo\ -m=\x224.9166667\x22\x0d\x0a \ - inkscape:cx=\ -\x222.6440678\x22\x0d\x0a \ - inkscape:cy=\x222\ -4\x22\x0d\x0a inkscap\ -e:window-x=\x2269\x22\x0d\ -\x0a inkscape:w\ -indow-y=\x2227\x22\x0d\x0a \ - inkscape:wind\ -ow-maximized=\x220\x22\ -\x0d\x0a inkscape:\ -current-layer=\x22s\ -vg4\x22 />\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\xcd\ +oke-opacity:1;pa\ +int-order:marker\ +s stroke fill\x22 /\ +>\x0a\x0a\ +\x00\x00\x07=\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a <\ -g\x0d\x0a id=\x22g831\ -\x22\x0d\x0a style=\x22s\ -troke:#b3b3b3;st\ -roke-linecap:rou\ -nd\x22>\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x09*\ +eight=\x221025\x22\x0a \ + id=\x22namedview8\ +\x22\x0a showgrid=\ +\x22false\x22\x0a ink\ +scape:zoom=\x224.91\ +66667\x22\x0a inks\ +cape:cx=\x22-48\x22\x0a \ + inkscape:cy=\x22\ +24\x22\x0a inkscap\ +e:window-x=\x2257\x22\x0a\ + inkscape:wi\ +ndow-y=\x2227\x22\x0a \ + inkscape:window\ +-maximized=\x221\x22\x0a \ + inkscape:cur\ +rent-layer=\x22svg6\ +\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x06\xcf\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -rect\x0d\x0a sty\ -le=\x22fill:none;fi\ -ll-opacity:0.849\ -51453;stroke:#99\ -9999;stroke-widt\ -h:3.85741425;str\ -oke-linejoin:rou\ -nd;stroke-miterl\ -imit:4;stroke-da\ -sharray:none\x22\x0d\x0a \ - id=\x22rect41\ -36\x22\x0d\x0a widt\ -h=\x2244.142586\x22\x0d\x0a \ - height=\x2244\ -.142586\x22\x0d\x0a \ - x=\x221.9287071\x22\x0d\x0a\ - y=\x221006.2\ -909\x22\x0d\x0a ry=\ -\x2210.186751\x22 />\x0d\x0a\ - \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x14\x89\ -\x00\ -\x00H9x\xda\xed\x5c[\x8f#\xc7u~7\xe0\xff\ -\xd0\x19\xbdH\x08\x9bS\xf7\xaa\x1e\xed\xc8@,\x18\xf1\ -S\x82\xd8B\x9e\xb9Cjg\x22\x0e9 9;\xbb\ -\xfa\xf5>\xb7:UM\xce(\x8a\x93\x18\xb6\xa05\x8c\ -aU\xd7\xf5\x9c\xef\x5c\xfb\xb4\xde\xfd\xee\xd3\xe3v\xf8\ -\xb89\x1c\x1f\xf6\xbb\xdb+\xbb4W\xc3fw\xb7_\ -?\xec>\xdc^}\xf7\xe7?\x8c\xe5j8\x9eV\xbb\ -\xf5j\xbb\xdfmn\xafv\xfb\xab\xdf}\xf3\xdb\xdf\xbc\ -\xfb\xa7q\x1c~\x7f\xd8\xacN\x9b\xf5\xf0\xf2p\xba\x1f\ -\xfe\xb8\xfb\xe1x\xb7z\xda\x0c_\xde\x9fNO7\xd7\ -\xd7///\xcb\x07\xe9\x5c\xee\x0f\x1f\xae\xbf\x1a\xc6\x11\ -\xa6\xc2\xe4\xe3\xc7\x0f\xbf\xfd\xcd0\x0c\xb0\xf7\xeex\xb3\ -\xbe\xbb\xbd\x929O\xcf\x87-\x8d]\xdf]o\xb6\x9b\ -\xc7\xcd\xeet\xbc\xb6K{}\xd5\x8d\xbfk\xe3\xef\xf0\ -\x04\x0f\x1f7w\xfb\xc7\xc7\xfd\xeeHSw\xc7/\xfa\ -\xd1\x87\xf5\xf7:\x1c\x8f\xf4\xe2i\x94\x9d\xa6\xe9\xda\xb8\ -k\xe7F\x181\x1e?\xefN\xabO\xe3\xd9\x5c8\xe7\ -ks\x9d1\xe6\x1a\x9euC\x7f\xe6\xb0\x9b#P\xf6\ -\x09\xfe\xaf\xe3k\xc7\xf2\xb8\x7f>\xdcm\xbe\x87\x89\x9b\ -\xe5ns\xba\xfe\xf6\xcf\xdf\xea\xc3\xd1,\xd7\xa7u\xbf\ -N%\xecl\xdf\x19\xb5w\xab\xc7\xcd\xf1iu\xb79\ -^\xd7~^\xe0\xe5a}\xba\xbf\xbd\x0a\x85\x9b\xf7\x9b\ -\x87\x0f\xf7\xa7\xd6\xfe\xf8\xb0y\xf9\x97\xfd\xa7\xdb+3\ -\x98!\x94\xa5\xc1\x7f\xb6\xfd\xe2Q\x0f\xeb\xdb+\xb8\x9a\ -\x939\x0d?\xf5\xb9ly\xa3\x8f\xccrr\xcb0|\ -\xf9\xbc\xfba\xb7\x7f\xd9}\xc5\xe3\xea\x0do\xd6\xfb;\ -<\xf1\xed\xd5\xe3\xeai\x89D\xfb\x06\x9f\xbf[o\xbe\ -?\xd2@\xde\x12\x9b\x81\x1f\xc1\xc3\xbb\xed\xc3\xd3\xbf\xaf\ -N\xf72`\x18j\xc7w\xbb\x87\x13\xb0\xe4\xf9\xb89\ -\xfc\x09I\xf0o\xbb\xef\x8er\xfb\xbaR\x1dZ\x5c\xac\ -\xeb\xc1\x8a\x87\xcd\xddI\x87\xc1\xe9N\x9f\xb7p\xa4\xef\ -\x1f\xb6\xdb\x9b\x1d\xc0\xffk\xfc5\xeea\xc9\x87\xd3\xe7\ -\x1b\xb3,a\x8a6D\xff\xf5\xf1t\xd8\xff\xb0\xb9\xf9\ -b\xa2\x7f\xd2\x1c\x89\xd27~Yb\x0e6\xb8X\xfb\ -\xb7\x0f\xbb\xcd\x7f\xed\x1fv7\x87\xfd\xf3n]{\x1f\ -\x1fN\x9b\xc3\xf6\x01\xfe\xdc\x84\xda\xb7^\x1d\xefW\x87\ -\xc3\xea3m\x7f\xd5\x1d\x0d\xef\x80\xa7-.\xf7\xdd\x95\ -\xb9a\x89\x1b\x96\xd4?SN\xbf\xf6\xf0\x132or\ -%\x9bl\xfb\xfe\xcf\xd0oLZ\xba\xc9L}\xff\x81\ -\x1e,mI9\xda\xab\xe1\xba\xf2\xe4\xba\x12\x96\xf9w\ -\x8d\x1c\xe3\x9f\xcaj\xe4\xf3\x1aa\xd61\xf6\xfd\xaa1\ -\xe8i\xf5\x01\x04z\xbb?\xdc^}\xf1=\xfd\xabO\ -\xde\xef\x0f\xeb\xcd\xa1>K\xf4o\xfeLx\xc3\x9a\xac\ -\xae_\xb1\x88\x0b\xeb\x00\xf3\xc6\x00 \xf8z\xffr{\ -\xe5.\x9e\xfe\xb8\xdf?\xde^\xf9\xa5\xb5\xd9\x96\x1c/\ -\x9e\xdf\x01\x0d\xc7\x84\xc4\xb5v\xca\x97\x8fa\xd3\x0cO\ -\xad\x9bl\xb9x\x0a\xf8\x7fFu7>3v\x9f>\ -].\xf0|8\xe0\x88\xed\xea\xf3\x06\xeeO\x7f\x94W\ -\xc7\xfb\xfd\xcb\x87\x03\x92\xf2\xfb\xd5\xb6\xd1\xf2\xed\xd5^\ -\x1evp\xcfQ\x00\x03|\xf4o\x0d\xa9\xb8\xb1\xc6\xc5\ -\xb7\xc6\xc0\xd5c~\xeb!\x5c\xdc\xbd\xf9\xf0q\xf5\x09\ -0\xff\xe3\x06N\xae8z\xf7\xb89\xad\xd6\xab\xd3\xaa\ -CH\xed\xca*\xfe\xa0\xb7o\xfe\xe3\xdb?4\xe9\xbd\ -\xbb\xbb\xf9\xcf\xfd\xe1\x87\x1e\xa50d\xf5~\xff\x0c\xa7\ -oR\x8ej\xe5\xee\x064\xed\xe3\xea\xf4\xcd\xc3#\xf0\ -\x1c\xb5\xf4?\x83b\x05\xb8\xea\x83\xf9\xe8\xd3\xe7\xa7M\ -\xb7.\xaf|\xd8\xb0\xd2~\xd5|\xad\xef@\x92a\xd6\ -\xf5\x9fN\xa04\xfe\x88\xdb41\xd1e\x1fN\xdbM\ -\xd7\x0b\xe2\xc3wPq\xea/\xf9\xee\xba\x12\x81\x9b\x1f\ -\xceI\xba]\xbd\xdflo\xaf~\xbfzZ\x0d\xf6\x82\ -\xe0\x1f@\xdd<=\xee\xd7\x1b\xc1\xceUG\xdd9\x98\ -N\x87\xd5\xee\x88t\xb8\xbd\xa2\x9f[0\xf3_\x9a\xc5\ -\x08\x9a ,}r\xee+e\xc2\x87\x99V\xe5eF\ -\xdf\xe9\xda\x9f<\xdb\x1b[\x8d\x09\xa43:\x9b#\xec\ -\x09V\xc3{o\xc2WmR\xaf\x97\xbfx\xef\xf1\x7f\ -\xaa\x82E+4\x92>\xf5\x16\xe2\xf5\xb9\xa4\xd6\x0f\xcf\ -\xdb\xcd\xcd\xe6\xe3f\xb7_\xaf\xcfV\x9b+t\xb3t\ -\xbd&\x87\xdb\xcd\x15\xb9\xaa\xf7\xf7\xb0\xda\xf6\xe7\xab\xf7\ -\xda[\xed\x8b\xfd\xfai\xf5\x00\xf2N\x8a\x0dF\x00,\ -\xb7\xbd\x0aF\xa1\x18\xac\x01M\x17}\x0e\x0b\x10O\xbf\ -\xccS\x18\xc0[\x98L\xf6ya\x97\xb1\xe4i\x00-\ -m}p\x0b\xbf\x9c\xac\x1fF\xbbt!'\x97\x16H\ -\xe3\x8c\xa3}0.9h\xbb\xe2\xe3\xc0\x7f\xa2\x856\ -\x986\x1a\x10\xad\xf1\x93\x87\x8e\x98\xb2\xc5\x15,X\x03\ -\x9b\x16#/\xdd\xad\x01\xbf\xf2\xe4\xa7\xe1^\xf7\xc9\xc3\ -v\x18\xfd\xd2y\x17J\x81#e\xc3\x87\x80\xa3\x952\ -\xf1\x84\x80\x1d)\x848M\xb0\x89\x9f\xb2\xee\x91q@\ -*&\xe2\x1ep'\xe7C\xdf#\x07\x93E\xeaE\x99\ -\x00\xd8n\xcf\xf1\x17t\x94hR\x8c\xb4\x84\xf3D\x1a\ -<\x8f\x95)\x9e\xd6\x84;\x1a\x9a#\xe4!r8Y\ -\x04W\x05\xb2\xa4\x02#\xe0\x12\xde\xba\x81F\xc2\xa4\x05\ -\x93\x81ng\x9c\xc9\x05I\x0c\xdb\x94n\x11YC\xc8\ -\x14\x02\x13=\x11\xcfR0\x19\xa7\xc0\x0f\xdb\x16e2\ -\x0e\xdd\x0ar7?\xa5)c\x9b\x88Q\xef\xae\xc3\xe5\ -bm}\xe5*\x92\x11\xd7s\xa9\x04[\xb9\xae\xfb\x11\ -\x01\x1c\xde\x01\xbc\x01K\x13\x88\x0e\xcc9\xdb_\xa9.\ -@0\xe9`\x84D\xc6\x01\xed\x08.M=i\x91\xb9\ -tE\xbd\x83\x90Zf\xd0%hO\x90{\xef\x116\ -S\x09\x85\x0e\x05\x7f\x13\x8e\x00\x0a\xf7\xa7\xb0\xcb`s\ -\xe9\x80\xd5\x18J\x84\xe9\xe1L\x94\x8e\x8b\x06\xde\x06\x93\ -J\x0bYul\xfcR\xf2\xe3Q\xffu\xc8~\xe93\ -\x5cb;\xdb\x81\xd8\xdfQ\x86\x8e\xd0Q\x86\xe4\xa7\x1b\ -\xcf\x84\xe9\xb1\x8e\x148\xa7\x1d\xdd\x13\xa9n\xbd \x97\ -.\x9ac1\xae\xbbV\xcf\x8f\xd4\x8b1\x0aT\xf7\x18\ -\xf8\xef\x07\xddS\xb6\x14@\xc6\xba\xa3\x10E\xd8\x89\xf3\ -\xf1.)-xb\x8f?a?\xe3\xaf\xea\x08\x9d\xef\ -\xe1GR\xe6\x87&\xdf>A37\x1d\x12\x96\xc5\x19\ -\x9fs\x13#\xb9t\xe8\x19#dh|A\xf4\xbb\xc0\ -\xb4w3m&\xe7\xd2{\x8b\xf4\xd2\xb9}'g4\ -\xc0-\xf8I\x13\xb4\x061\xe5\x05Q\xa2)\x22\xb7L\ -\xa6\xe0\x16Ur\xe8\x08\x9d\xba\x148\xe8\xfc\x8a7\x85\ -9\x5c\x8eH\xab\x80\xcc\xb0\x00P\x18(i\x92\x5c;\ -5\xb5\xa5\x00\xa2\x03D@\x1cd\xfa\xa1-\ -E\x03Q\x22\x06\xaf\xc7\xdb\xab\xbb\x7f\xc8\x7f}\xa8\xfd\ -7\x89\x00\xdf?\x9fN\x17\x01 \xc5|\xff\x8b\x00\xf0\ -\x22\xda\x9b\xfc2\x94i\x02]g\x01\x0e\xcb\x020\xa4\ -@\x0b\x1c\xb1PP\x22\x0c\xbb49O\x99!+q\ -R2F\xfc(\x88\xdeE\x86\x11\xa6\x10\x93%\x12\xdb\ -4\x11n\x9du)QT\x221H\xf2\x04t\xe3\xca\ -<\x14\xb21]v\x90}\xc1\x1dH{A\xd4\xce\xc1\ -\x11,J\xc6:\x13\x82C\x02\xb5B\xdeR*h[\ -a\x0b/\xd6\x9b\xb4\x0d\xc0\x9dDET\x87\xcb)\xb0\ -;g-:W\xc0\x0c\x1fr\xa7i\xa6\xc9\x85Ny\ -4EoH\x9c\x8c\x91\xc8,\x06\xf6\xe3q=\x12M\ -\x22\x96\xc1P\x04\xcc\x19u\xd8\xf2\x96H9\xfb?\x11\ -\xa9_&\xf8\xf2\x84,E\xb7\x05\xc0\x97\x96@O\x0a\ -#\xd1\x98\xe4N\x7f\x19\xf4\x05\xd4w\x1du\x04<)\ -\xe2\xa9\x10\xe7\x09,\xd1\x97L\xc8\xb5@\xfcY\xaaA\ -\xb4\x1f\xaf\xa6\xdc\xf6\x16\x8c_\xaa\xa6\xaew\xad'X\ -\xfc\x0d\xde\xf9_yW@p<\x86\x8b\xc0\xba\x08\x0e\ -\x82e\xbb\x86\xf6KM\x0d2\xc6\x1b\xcf\xc6\x88\xcd\x18\ -8\x18\x91\x85\x91\x03\x15\x07\xd3\xc94[c\xde\x14\x95\ -\xf8\x7fn}~\xa9\x02\x95A\x07\xd9\xe4&\xd6\xe66\ -\xb2\x02+1$\x8e^,gE\x8c7\x86\x1d\x94I\ -\xfdP\xd2\xb8\x10.\xb3,8qlb\xf0\x13w\xb0\ -\xe2\x85(\x01\xe5\x8es-\xb0\x1a\xe5E@f\xe2e\ -\xc7V\x00\xc1y\x09\x1b)\xa5\x14A>I:\x0b\x1c\ -\xed\x0dv\xe7_\xa5\xab\xc4\xe5\x14\x89I\xcc\xc8)R\ -0D\xd2B\x9aq\xb2\xe4\x89\x82-\xe2h\x09\xa3J\ -\x91&V\x9d\xd1\x22\xebM2\x16S\xde\x00\x0br]\ -\x91\xec\x1c\x1ayLE(\xe7\x03D\xa9Q\x5cX\xc7\ -\x1e\xfed\xc1\xeaROp~\x06\x1aI_9#a\ -\xb6s\x9c\x9d;\xeb\x91\xa5S$@\xca\x91F6\xc7\ -\x1c\x1b@\x98\xc6\xce\xb0\xa1\x04\x0ck\x08W\x0c\x8c@\ -\x88\xf8\xd7:\x08Uxx\xc3N\x82\xe1Au\x0d\x08\ -\x854\xa0\xf0\x10\xd5d\x04[\x0c\xd6\xcf\xdaD\xbdE\ -\xf5e\xea\xdc\x948\xafd\x02m\x97\xc1\xedE\x12\xe2\ -\x16\xb8\xbb\x93\x9d8GV2\xd3\xa9o\xbe\x81\xe7\xe9\ -W<\x97\xb4L\x06\xbc\xa4\x8cx\x06JK\xb6V\x14\ -\x0e\x06JB\x5cg\x0cB\x03\xf1(\xa9\xb7\xc29\xd2\ -\xd4\x81UY\x92\x19\x8a\x82^\xf4\x14%\xf7A\xb0G\ -Wn\xa8\xb8\x85M\x83MC\xe3v\x8e\x96\xbc=\xd9\ -\xd1r:_\xedQq\xce^\xb41\xba\xf2\xd9L\xae\ -\xd4\xdd{,\xa246\x99#\xe4\x93G\x91\x08P\xac\ -m\xe9\xbc|~\x14\x05\xc7>\x8a\xa29\xbe\xa9\x15\xfd\ -\xdf\xb5\xbf\xf8\xff\xf3\xba\xea\x02F\xa9,\x8b5\x98\xdc\ -\x01n\xc1\xefH\xa9\xab\x98l`z\x92\x8c*K\xa4\ -]\xd5A)Nr\xa0\xf8\x0b\xe3\x046g\xa3B\x03\ -\x87\x93\xe8\xbb@\xeaTf\xb0\x0a\xbaho\xdb\x8c\x91\ -\x0f\x81*\xba`\x17\x9d%I`\xce\xc7\xa3\xe1`\x0b\ -=#7q\x1e,\xe0\x0fU\xc7\x0c\x08\x82#<\xb6\ -\xd0Y\xbc\xe4\x8f&\xcc\x19N\xdey\xc6\x0d\xbdo1\ -\xa8Z\x17\xa2\xab9\x8b \x0a\x8e\xcc\xfa\xd8\x1b\x0c\xb9\ -\x91b3\x10\xba\xc1\x81\x9b$\xd8\x9a(\x87\x15\x14\x9a\ -fn.xv\xb5\x00uC\xbc\x8d\x8b\x92\x17\xe4\x1c\ -\x18\xe9\xea:\xa4\x8a\xd7(:xT\x12\x8cL*\xca\ -\xac\xe1\xadl\x0b-Q\xaeH\xe4\xaa4\xa3\xd8\x88[\ -\xe2\x9btS\xe4Elq\x1eld\xea\xf8\x8f\x22\xce\ -\x12\x99\x0d\xb9\xa5\xe8\x84\xb0u\xb3\xceW\x19\xce\x0b=\ -6\xdd\x93\xd4\x0c_\x8b\x9b\xac\x7f\xa6>\xb8\x05+*\ -\x1b\xa7Y\x87\xb7x\x121\x8e\x1d\xa1\xd0\x1c\x9d5\xc9\ -\x80eksQ(bG@/\xad'\x14\x12\xcep\ -\x12\x0f\xc8\xd3\x0e!\x1a\x09\x09\x98\x99\x80@\xa7\xc4\x5c\ -\x8a\x92\xacd\x1d\xa7\x04K\xe8}\x05\xf5\x1b.{\xe8\ -LA\x0f\x85\x86|\x86\xa7\xda\xd1,\xf23\ -R\xcb\xa0\x096\x11\x9aP\xe7\x16\xe4\xdbB]\xf2\xe6\ -~\xf0\xc6\xe2-3F\xfa\x83\x88\x83\xd6\x92\x03\xf4\x18\ -\xf5\x22\x07\x00\xc2\xc8\xb3\x8em'\x1d\x1434'B\ -}\x86\x9ah\xc6\x9d{\xcb\xa3\x98\x98\xba\xf0\xbd\xf9I\ -tIM\xbb\xcc\xcc\x80\xd4\x9de\x1b$8\x91\xa43\ -\xe6\x82\x99L\x9aa\x96\xb3\x99>\x8dQ\xb7\x84(:\ -p\xa4lE)\x08\x03k\x14&\x99y!N\x9f\xd9\ -\x14\x87E\x15E\x9d\xa1\x1d\x14\x17\xf4KP\xaa\xa9\xf9\ -\x09\x12\xab\xd7\xf5Hw\xf6\x92\x8bI\x87\xce\xd1\x0a\xb3\ -\xe8\xe02\xd4\xaf\xa5\xb6U\x13\xc9\xf9\x95\xe4b#\xe6\ -\x1do\xe4,\xfd\xdf\xb6l\xe4\xf8\x93\xcd7\x1f\x1d\x8f\ -\xaf?=\xfe\x9c\xad~\xa1\x09{\xfc\xea(\xf9\x94\xf1\ -\xd5\xbcO\xf8\x0a\x91\xd2,\xfaz|\xe0\xca83\xe9\ -{y\xae=m5K?U\xfe&E\x90g\x1d\xe2\ -Kp\xad\xa1\xb9(C\x9bUbP\x9b\xde\xddK\xf0\ -M\x0eB\x00\x1d\xeb\xfa\xd2\x81\xee\x08\x85\xfcg\xac\x08\ -\xe6J?v\xa0[\xe5\xbdM\x8e%\x17+P8q\ -\xc1\xc9\xf9\xba\x8bT\x8b]\xf6l\xbb\x85\xa5\x18^\xd3\ - z\xc2T8\x03\xa1'\xcc)\xa6\x8b\x13\x8e\xad \ -\xa1\x16#^\xf4l\xbb\xda\xe7\xee{\x09\xa98m_\ -\x19\xcc\x8a6\xed\xacL\x1dW\xec\x86\xe0;\xb92\xaf\ -\xc0.\xaf\xdd\x81\xa9N\xd5\x17\xdd\xc7\x1e\xb5\x92\xe4I\x18\ -lK\x10#\x81\xbf\xa4X\xcb\x04.=h\xba\xca\xa0\ -\xb2\x95\x8a9)6\x88!\xf4\x85D\x5c\xf3\xc7O\xd8\ -\x83)V\x22w\xf9\xe8\x02td-H\xe4%P\xd6\ -8_\xccN^\x88\xc5\xe7\xce\xe9\xeb\xdb?\xce?\xe6\ -f\x1c\xe4W\xbe:\xfc\xef\x9c\x977]\x97\xe3\xdc[\ -\xf8\xbb\xc0H\xfb0\xf0\xaf\xf8d\x9c12!\x9ds\ -&\x8c$\xe0V\xe6\xba\x14\xe0\x0eG\x98\xad\xcc]p\ -\x22\x1a\x17L\x19%\xc7\x88[\x15\x00<\x81\x0a=m\ -\xa6\xa2QO\x15\xf0gmy\xad\x84e\x9e\x04C\xaa\ -$c\xc4H\x93=p\xacEb\xdf8s\x0c\xcf\x8c\ -\x0f~\x8a\xa6E\xbcf\x02\x15,\x03\x13e\xf18\x09\ -\xc8oPC\xa2\xfah\x1a\xd6*\xdcZ\xfd\xaa\xc2\x10\ -\xces\xf9Y\xd7\xd8\x9d+y\xad\x7fU\xf5T\xaf\xcd\ -\xdf`T\x9a\x88\x9dM\x93\xa7K\x93\xe4t\x9f!\x81\ -\xf8\x85A/\xb84\x5c\xa70q%\x10\x9b\x19\xd1\xea\ -\xa3<\xa5\xaa\xdc\xd9-\xba*\xdc\xfe\x8b\x19P\xa6\xbc\ -U\x96\x97C8\x135\x7f\x11QIfJ\x97\xed\x9a\ -\xc8$]L\xa1\xcaT\xe6\xdfH\xd4\x1e\xb1\x8e\x9c\xdb\ -\x05\xa6\xb2\x80f1\xfb\xb5n\x16B\xd4\xa9\xd9N\x19\ -!\xc7\xe2\xd5\x5c\xbel\xcb;\xc0\xaa9\xbc\x9d\xce\xbe\ -\xa4\xcc~\xaeI\xf8\xf2L\xb9Q\xcb\x89\xcf:\xb6\xb3\ -91\xfa\x9e~\x10\xa1uo\x1f\xeb\xa0\xea9\x02\xcb\ -\x0d\x7f=\x0ad\x9c\xe6$\x12(&q\x80kS*\ -\x99Y\x0c\xa8\xd2\x18\x15Y/!g\x02\xc3\xc1\xf6\xa2\ -\xdef\xfe\x95_o\x0fQ\xe9\xd2\xb8\x5czX\xba)\ -\xe7\x8b\xb6\xbeN\x15\xd2\x19+\xef\x1b\xa2\xbc|\xac\x8b\ -\xd4R\xe9\x8a}\x86\xec(\x18\x9d\x15G\xd7\xcf\x0ek\ -\xf9\xb4\x5c\xb1z\xdb\xfa\xb8V\x90*\x86\xe4+@\xf9\ -\x8a\x91\xbd\x8cv&\xd4\x08\xfd\x9b,\xbe\x85\x9c\xa7\xe9\ -\x08\xa0;u\xb8\x1cY\xed\xd8\xea\xedKf\x8c?1\ -Ta\xcd\xc6u\xd2ZoS}\x0f\xb1(d\xdcJ\ -}-/u\xee\xe6l\xa8\x90N\xdd@\xd7QN?\ -\x95d[%\xc8\xe9\x94\xa3\xe9c\x04\xcd\xac\xe8-I\ -\xd6M\x98\x92\x93;\xb7\x13\xcb\xba\x82\x12$\xc4\xacr\ -\x9e\xf5\x0d\xe3K\xea\xe0\xfb\x13\xab\x0a\xaf\x1ad\xd6|\ -\xd5XN?\xdfX\xd6\xff(\x039L\xef\xf0\xbf\x95\ -\x00\x7f\xff\x02o\x04b\x13\ -\x00\x00\x0aj\ +ow-y=\x2227\x22\x0a i\ +nkscape:window-m\ +aximized=\x221\x22\x0a \ + inkscape:curre\ +nt-layer=\x22svg4\x22 \ +/>\x0a \x0a\x0a\ +\x00\x00\x07\xa3\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x09\xb8\ +1.2291667\x22\x0a \ +inkscape:cx=\x22-47\ +.999997\x22\x0a in\ +kscape:cy=\x2296.00\ +0003\x22\x0a inksc\ +ape:window-x=\x2257\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22 />\x0a \x0a\x0a\ +\x00\x00\x0c\xa5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a \ +\x0a ~\x0a\x0a\ +\x00\x00\x0b\xdf\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0a \ +\x0a \ + \x0a \x0a ?\x0d\x0a \ - \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0cr\ -\x00\ -\x00|\x03x\xda\xed][o\xe36\x16~/\xd0\xff\ -`\xb8/3X\x9b&\x0f\xc9\xc3CO2\xc5.\x8a\ -\xa2\x0bt_v\xbb\xd7\x97Bc+\x89;\x8e\x15\xc8\ -J23\xbf~\x0f}\x8bd2r6Mw\xd0\x01\ -\x0d\xcc\xc4\x22)\x89\xfa\xce\xfd\xa3$\x9f}\xfb\xe1z\ -9\xb8+\xeb\xf5\xa2Z\x9d\x0f\x95\x90\xc3A\xb9\x9aU\ -\xf3\xc5\xea\xf2|\xf8\xf7\x9f\xbe\x1f\xd3p\xb0n\x8a\xd5\ -\xbcXV\xab\xf2|\xb8\xaa\x86\xdf\xbe\xfd\xfa\xab\xb3\xf5\ -\xdd\xe5\xd7_\x0d\x06\x03\xde}\xb5\x9e\xceg\xe7\xc3\xab\ -\xa6\xb9\x99N&7\xb7\xf5RT\xf5\xe5d>\x9b\x94\ -\xcb\xf2\xba\x5c5\xeb\x89\x12j2l\x8d\x9f=\x8c\x9f\ -\xd5e\xd1,\xee\xcaYu}]\xad\xd6\x9b]W\xeb\ -o\xda\xa3\xeb\xf9\xc5a\xf8\xfd\xfd\xbd\xb8\xd7\x9bQ\xca\ -{?\x910\x01\x18\xf3\x88\xf1\xfa\xe3\xaa)>\x8c\x8f\ -\xf6\xe5y\xa6\xf6\x05)\xe5\x84\xfbZC\x9f8l\xba\ -fpn\xf8\xdfa\xfc\xbeA\xac\xab\xdbzV^\xf0\ -\x8e\xa5X\x95\xcd\xe4\xbb\x9f\xbe;t\x8e\xa5\x987\xf3\ -\xf6q\x16\xab\xf7\xebYqSv\xce\xbbo\xdc\xc2P\ -\x5c\x97\xeb\x9bbV\xae'\xfb\xf6\xed\x01\xee\x17\xf3\xe6\ -\xea|hh\xbbyU..\xaf\x9a\x87\xed\xbbEy\ -\xff\xa7\xea\xc3\xf9P\x0e\xe4\xc0\xd0`\xdf\xbe\x98\x9f\x0f\ -\xf9b`7\xeaA\xe8j\xd7\xbf;\xc9\xf4\xd0%\x85\ -\x07a\x07\xaf@\xa2,g\xea\xc2_\x8c\x06 A\x8e\ -\xa5\x19Kz\xbd\xddm\x7f\x89\xd3y5\x0bS>\x1f\ -\xde\x5c\xfc\xdc\xac\x7f\x9e-o\xd7MY\x8b\x80\xdf\xdb\ -0\xf2\xec\xbal\x8ay\xd1\x14\x9b\xdd\xb6\xf3\xd97)\ -\xd8\x8e\xe1Q,\xcc\xe9_\xbf\xfb~\xb7\xc9\x0d\xb3\xd9\ -\xf4\x9fU\xfd~\xbf\xcd\x9f0\xa4xW\xdd\xf2E\x0f\ -\xdf>\xb4\x9f\xcdgS\x86\xff\xbah\xde.\xae\x8b\xcb\ -2\x88\xee\x0f\x8c\xf6\xd9\xe4\xa1\xa3;\xba\xf9xS\xb6\ -\x8e\xbb=r]n%\x99\xd4\xe9\xf9\xecz\x11\xf6\x9a\ -\xfc\xadY,\x97\x7f\x0e\xa7\x19\x0e&\xc7\x87]4\xcb\ -\xb2\xd5z6\xd9]\xc3\xfe\x1a'\xed\x8b<\x9b\xecQ\ -\xd8n\xce\xcb\x8bu\x0b\xa2\xb0\xa9\xe4\x01\x9e\xeb\xa2~\ -_\xd6\x87\xf3\x1d\x84\xb6n\xaa\xd9\xfb0\xfe\x8fu]\ -\xdd\xab\x1f\xd9j\xebfx\x18W\xd5\x0b6\xc5\xf3a\ -q\xdbT\x0f\xaduy\xf1\xef f\xd9i\xfa\xd7Q\ -\xd3\xe3G]7\x1f\x97\x8cS\xc5\x1as\xb1\xac\xee\xa7\ -w\x8b\xf5\xe2\xdd\xb2\x1c\xc6\xd3[\xac7\x13<\x1f6\ -\xf5m\xf9 \xb4\xb3\x9b\xa2\xb9jI \x9c*4\x19\ -\xebi\xd8j\xe7\xe6\xbf\x0cxR#\xfe7\xf8q`\ -\xf9\xdb\xd8n\xbe\x8e\x15\xabh\xaby\xdb\xba\x1f\xfai\ -\xd0>\xcan\xba\x17,\xb9q}\xbb,\xa7\xe5]\xb9\ -\xaa\xe6\xf37\xeb\xa6\xae\xde\x97\xd3o\xe4\xe6\xb3\xdb\x1c\ -o\xecl\xcaN\xf1\xa6i\x1f\xa5\xa9\x8b\xd5:\xa8\x13\ -\x9b\xd3\xacX\x96\xaf\xa4\xa0\xd7\xdb\xd6e\xd1\x94\xaf\xb6\ -\x13z\xfd\xa0\x16,\xe0\x8d\xd0v\xd2\x0e\x02\xdd~=\ -\x98N\xb0\x9by\xb0\xdb\xddinX\xadf\xd5\xb2\xaa\ -\xcf\x87\xdf\x5cl>\xfb\x09\xbc\xab\xeayY\xef\xfbp\ -\xf3\xe9\xf6U\xec2XE\xd9\xb0\xf7\xed\xd5\xbb_\xca\ -Y\xd3T\xcb\x92\xe7\x18\xf4Z\x1d\x84{Y\xf35&\ -;n\x17\xf32\xd9s\x10i\x98\xe4\xe1d\xe9\xee\xf5\ -U1\xaf\xee\xcf\x87\x10\xf5\xde/V\xdc3\xde\xb92\ -E\x86\x1e\x1b\xb2woJ\xaa\x871\xac\x0f\x07\xcc\x0e\ -\xad\xeb\xab\xea>\x5c\x10K\xb8X\xae\xcb\xe8\x80\x9f\xaa\ -\x8ae\xa6\x85\xb1\xd6\x81\xd7Q\xff\x8c}\xe6\x98@\x10\ -h\x89q/_%\xa1\x00\xb0\x16\xdcc\x93\xe5#\xb8\ -G/\x96\x0f\x00\xf6\xb1\xce\xeb\xe2\xc3\xe2z\xf1\xa9\x9c\ -\xb7\x04\xf7p\xee\xdb\xbaf\xf3\x1d/\x8b\x8f%\xcb\xfd\ -\xd2\xa0\xb2{\xfd:\xbbl\x81ri\x94}\xf0\x15\x97\ -\x1d\x13\xbe4\xd6\x98\xa7\x98\x9e\x96\xb1\xe9\x8d\xe4\xe0\x87\ -\x10L\xfe\x11\xfe\xfb\x81\x03\xcb\x7f\xdac\x1e&Z\xad\ -V\xackU=\xe6)\xdf\x15\xcdm]\xb6t\xe3\xc8\ -\x06\xa7+\xce)\xda\xde\xb35\xe1\xdd\x94\xbdT\x8f\x98\ -\x1e;\xf3z\xf1\xe1\x15[\xa7\xd3\x1e\xbc\x19\xf1\x14G\ -\x0f[\xca\x0b-=\x90\x1b)\x14\xda\xa14\xf8\xba\x13\ -+\x8e\xae\xfe\x7f\xba\x86\x16X\xca\xa9nO\x08j\x83\ -\xb1\xd5\xc2I2H#\xc3_\x9c\xb2h\x07J\x0a\xa7\ -%o\x8d\xc6$\x8c&P\x1e\xbb\xfb\xb6\xb1a_T\ -\x14\xc6\xbcy\xdcY\xc1\xac\x90\xb6\xe8:+\x10\xcek\ -\xe3<\xd2\xbe}\xb9\xe0\x8b)n\xa6\xefn\x9b\xa6\xdd\ -\xf6K\xb5XM9\x96\x95\xf5\xbeu\xb3\xb1d%l\ -\xa6f\xdf6/\xd8\x84\xeb\xba\xf8\xb8\x91\xd5\xbeug\ -\xf5Su\x14\xfa^\x0cS\x9d\xc4\xd4\x080\xc6\x22\x8e\ -\xc6\xca\x08\xef\xb4\xf1v\xc0b\xb6\xa4\xa4\x1fm\xbeH\ -O\x90!MBjS\x90j%\xc8I@VI\xe5\ -\x84\x05\x03\xd2\x0d\xc6\x9e\xd3>\xab\xd1\x8f\x94b\x8du\ -\x8a\xe1\xfd\xbd\x83\xda\x9d\xfe!\xecV\x1c\xe38\x99\xe3\ -\xe4\x7f6;\x05\xfc#{\xbd\x88p\x5cJ8\x86A\ -\x22@mFc\x8eY\x12Y\xbb\xcd\x80\x93\x0bg\xb5\ -r8\xda\xb8\x13\xf0_\x96\xba\x97\xcb\xe5\xe2f}\x94\ -\x93\x7f\x0cA[Z\xefXQ\xbb\x97[\x7f\x08]\xca\ -jrp\xa4\xe0!\x5cs\xb4V\xdc\x09G\xf2\xdf\xc4\ -yk\x85\x06\x90\xda=&\x14\x8dc\x1c\xeb$\xbc\x87\ -\xd9\xbf\xd9\x02\xad\xdd\x8c\xdcvc\xdc\xedK\xe2\xde\x06\ -\xe2\x00:)\x0f\xda\xea\x08\xe0\xba\xba]\xcd\x7f{\x80\ -\x81\x1d\xaa!\xa5\x93\x00Kd-D\x8c\x01v\xc2x\ -\x8d`1\x010x\xc1\xc7C\xadz\x00VO\x82\xb7\ -\xad\xc7\xcf\x82W\x0b\xad\xc8+\x00\xf7\xb9\xe0\xe5\xd0\xe5\ -\xbcU\xda\xc4\xf0\x1aa\x94R^%\xf478e@\ -\xcb\x19g\x02_\x0d\x02\x0dZ\x07}\x0a\xfcD|\xe7\ -\xa6(~\x15\xbe\xe4\xa5G\xc6\xf8s\xe1\xcb\x0e\x92$\ -i\xd0)\xf5\xb5\xc4.-\x09\xaf\x11\x14\xd4\xd7\xa7\xfc\ -\x83f\x8b\x90\xec?\x1e\x87\xf7\xc9\xcaK\xf4\xab\xc05\ -\xe4\xd9\xfa\xd0}>pI2\x82\x9aR\xe0r\xaa\xa0\ -\xa4J\x80\xcb{\x91\xb5\xe4S\xbe\xc1\x84\x22LZ\xd3\ -\xa7\xbb\xf2\xff\xe3z\x83o\xd0\x9e\xc8\xc3o\x0a\xef\xd9\ -\xe4\xf2\xc0\x06\x5c\xc6\xf5Y\xab\xb0i\x11\x09BJt\ -@z4\x06\xcbhr\xd1\xea_\x0f\x8fj:\xc55\ -\xdd\x03\xd3p\x5c\xf1a\xdb\xad$O\x22\x85U`\xb8\ -fj\x95Gg5\xe7.m\xbe-\xb0\x09\x02\xa5\xe4\ -|\xa3cGA98o\xe4J\xa7k'\x1b\xcdp\ -Zk\xdbi\xde\x97\xf2\xc8\x17#\x9d\xf3\x9d`\xb3\xa3\ -\x02\xb4\x0f\xc7\xd3\xaa\xa3\x1a\xe1b\xc2\x9c\x8c\xed\xaaS\ -7\xddQ\xa8\x0f\xd9\xcc\xd1\xe6N\xd8R\xb0# +\ -\x11\x8e\x93\x9b\x8e\xac_L\x03\xde\xdc\x14\x0b.\xdb7\ -\xbc\xcctK\x02\xad\x07a\xb6\x83\xed\xc8#\xbd\xed(\ -LR\x06\x9c\x03z\xadR2 \xa9\x15\x1d\xc9\xc0\x08\ -\xc9\xb9;H\x9b\x16\x82\xe3\x1c\x1f\x1d&\x84\xc0\xb1\x1b\ -\x94\xd1\xdd\xda\xb6-\x84nbt\x94un\xa2\xc9\xa3\ -\x06\xc7i\xabG0\xd6\xd9\xcf \x83U`\x81\x97\x1d\ -\x9cg\x8bz\xb6,\xe3\xaby\x9a#\xef\xf1+\x5cC\ -\x11\xa2\xd1\x9fQ\xd5\xb6\x836\x1a7LP=\xd4u\ -\xc0\xc15s\xc9\xa7\x90\x9c\xe9\xc87\xf8\xf3\xd0\xe1\xb9\ -T\xec\xecQ\x07\xb2*\x83\xb9\x07\xb3k\x15\x1b89\ -\xb3\xe7\x12\xceC\x04\xa7\x14\xe8\xb8\xa6s\x19\xce\xc7\xe1\ -\xc4\x04\x9cV\xfan\xe6\xb5SN\xc7\xb9\x86Q\x19\xcd\ -\xc7\xd1t\x11\x9a\x9c\x1a{c\xbb\xe1d\x07''\x9c\ -\x06\xb3r\xf6\xc0i\x13\xae\xd3\x22'\x92&\x82\x93\x9d\ -\x00\x12\xd7q\x19\xce\x1e\xd7iS\xc6N\xca\xc9\x18O\ -\xd6[4Fg<\xfb|g\x1c\xda9\x1d\x04\xb2]\ -\xb2q\xa7\x9f\xd6*\x84\xec={\xf0\xf4\x11\x9cV\x18\ -g\x8d\xcd\xb1\xe8\x19h\xaaD,BD\xb2\x14\xc1i\ -8\xe4\x1b\xf2>\xc3\xf98\x9c\xa94\xde\x84\xd5\x1cL\ -\xc0\x89\xc6\xdb\x9cw\xf6fJ2\xe1;\x95\xe4RZ\ -\x1d\xe3\xe9\x05ZG\xdd\x22:\xc3y\xe4:\xa3\xb2\xc8\ -sB$\xb5\x04\x9b\x08E\x08\xda\xa3\xcdx\xf6\x84v\ -\x990\xf7\xcd\xfa\x82?\xc6\x93\x84\xd7\x9c)\xf9\x972\ -\xf7\xd4B\xc1\x17\x90*E\x85\xa6\xd6B\x07\xf7i\x12\ -\x80\x92v\xd4\xa5\xda2\xa0G\xb9|\x1c\xdf\xb5\x11\x1c\ -\xc3]\x5ck\x12\x97\x9a\x01\xe9\xac\xa1}\x1a:\xa6\x04\ -\xa0H\x80\x04qD\xb2aQVA\x06\xb4'\xc2\xc7\ -l\x88\xb6\x1c\x94\x1ci\x8a\x01\x05\xeb=\xa1\xcf\x80\xf6\ -\xb0!q\x81\xc4>\xd4\x19\x00E\x09\xee\xd3r\xb5\xe9\ -\xb2\x86\xf6\xf2!qV\xcf6\xcf\xa5%\x17\xf1\x89\x9a\ -S\xdb\x90\x00dD\xfb\xc2\xfc8J\x9c4\x0a\x90q\ -\xda\xc4\x1a\xaa\x8dU&\xe3\xd9\x97\xd6'\x14\xd4qu\ -I\xce\xe9\x1c\x94\x9eC\x8a\xc4\xebG\x1c\x94\xc8H\xe5\ -|\xa2P\x02OF\xe5\xa0\xd4G\x8b$\xa2|X\xf3\ -pV'\xf0\xe4:II\xccx\xf6\xf1\x22\xf1\xaaG\ -\xf0\xa0.pM\xc7\x88:\xc1\x1eT{k3\xa2}\ -\xd4H\x22oR\x5c\xb4k\x04\x93\x88JF9C\x19\ -\xd1^r$\x11\x96\xc2\xedf@\xf1M\x0d(\x5c\xe0\ -M|\x0eK'\x10M`\x1a\x969\xc0!\xc6\x05\xbd\ -\x95R;\xca\x9e\xf4\x14\xa6qMO\x82\x0d\xff\xe8\x9e\ -\xf4]t\xd2\x9c\x90\xfa\x9c\x8f\x9e\xc24U\x85\xa2\xd6\ -N\xaa\xc4*2W\xf5\xa6\xbb\x5c\x9f1M`\xea\x12\ -\xb6/\xc1\x1f=|\xb2\xc3\x14$8\x951=\x85\xa9\ -N\xe4QD^\xc5\x8csX\x00u\x0e\xba\xc1\xeb\xd9\ -\x98\xa6\xef\x97\xfe\x12(\xfc\xc4\xddbJ\x90\xf2\xa4#\ -\xce\x19,gX\xac\xa7.C\xdaK\xe2'\x97\xe9\xb5\ -\xe3\x14\x14\x13\x90\x1a%\x9d\x84\x0ci/\x8d\x9fX\xaa\ -\xd7B\xa14qI\x0a(\xc2J\xbd\xcdZ\xdaO\xe4\ -'n\xcd\x09O\x0a[\x94\x94\x804,\xeaQ\xd6\xd2\ -~*?y#3(\xce\x97\xa2\x90\x0f\x9b\xe7?\x10\ -\xb3\x96\x9e \xf3\x93\xce\x144\xd7\x9f1\xa6\x5c\x07H\ -cL\xc6\xf4\x04\x9d\x9f4\xfd\xcdM\x8e>\x11\xa0\x00\ -Q*\xcc\x98\xf6R\xfac\x13A\x8aB\x01Z\x93\x03\ -\xd43I\xfd\xc4\x9d\xf7Fh\xe5|\x9c\x98\xfa\xf0\x8a\ -\x8b\xa3g\x813\xa2\x11\xab\x1fS'\x1c\x9f\xa4\xb3:\ -.\xf3\x19RM\x1e\xa5\xca\x90\xf6\x13\xfb\x09\xc3\x0f\xcb\ -\xcd Ul\xf8\xac\xbe\xde\x91\xcfi\xd4\x09j?\xf1\ -\x90H\xe0\xf0\xc3\xb2H\x22\x8f\xd2\xa8=e==E\ -\x9d\xa4\xee~\xe4r\x1eUD\x9d\x80\x16\xe8\xc2+\x83\ -2\xa6\xa7\xe8\xfd8\xe3'\x01\xce\x81\xa5T&%\x15\ -\xd0\x0b\x91|_2\xaa\x94\xe0\xa40\xbc\x15\x85\xa4K\ -\x85~R\x92\xb2\xae\x9e\xa4\xf8\x13\x95\x14\x08\xa5\x94q\ -\xd1\x22\xb4\x96\xc2sB\xe53\xa8\xa78\xfe\xd8\xad\x86\ -\x171\xb8\xe37\xaa\xed@U\xc6C\x8eT'I\xfe\ -\x84\xfd\x1b\xa14\xa3j\x12\xa0\x1aM\x96r\xea\xdf\xc7\ -\xa3D\xec)\xb0\xe5\x03\x91\x8csT)\xa4\x05\x9d\x8b\ -\xd3~\x8e?\xb2\xfa\x903\x11\x1a\x1b\xaf\x97\xb2?\xd0\ -\xe02w\xda\xcf\xf0c\x02P\x83\xde\xc47\x99\xb2\x86\ -\xa2:~3U\x06\xf4\x98\xdf\x8f\x82} \xf15Z\ -\xb4\x09\x0dEo\xad\xcd\x80\xf6\xb2\xfbQM\x0aJX\ -\xa2\xd4\xa2\x1e\x08\x13\xde?\x97}h?\xb7o\x136\ -o\x8dr\xa83\xa2\xcfc\xf6#.\x0a\x8c\xf0D\x18\ -\xbf\xfa\x85\x95\xd7pF\x95)\xd3~^?\xa2\xa0\xc1\ -\x89\xb0l\x97 L\xc3\x8b\x9e\x10)\x97\xf7\xbd\xac>\ -&\xc2\x92\x94\xca\x18L\xb0P\xe4\xb4\xf6\x94\x01\xed#\ -\xf5m\x22\xb5\xe7:\x89\xbcJ\xd0\xcf\xc6\x822\x19\xd0\ -~J?VQ+P{\x97\xb8o\xcf\x09\xceP!\ -\x97\xf4\xa7\x08\xfd\x88%\xe5$\xde\x81\xd4\x08\xa9\xb8D\ -(m\xa6\x9e\xfaY\x12\x970{\xd0\xde:J(\xa9\ -\xf3h\xb5y\xb1wC\xc4/\x95\xfe\xdd#j\x12\xf7\ -?+\xb0R\x9b\xc4\x82\x13\x10\xba\x17{\x93\xc1\x17\x09\ -\xa7N<\xf0d\xc3\xcb\xf8\x95J\xdd\x02\x89\xa4^\xf0\ -EE_ \x9e\x98|\xa8\xd9\x84j\x1e\x12\x0aJ\x16\ - \x03\xda\xcf\x8f\xa4\x9e\xc8s$\xd1\xb8\xc4me\x12\ -\xbd\x86l\xf1\xbd\xfcH\xca\x85r\xe9\xe9%$\xd6\xec\ -\xc89\x0f\x19\xcf^z\xc4=\xf9\x99\xd1\x0c\xe8\xd3\xd8\ -\x11\x93xr,\x94\x98\xf1\x0b\xb54W\xf3\xd29T\ -\x19\xd2>zD?\x19Pv\xa2\xca(t9\x0b\xed\ -\xa5G\x9e\xfa\xa6\x8d\xf0\xb0\xb3\xd4G\xbf\x04\x91\xe1\x8c\ -\xeex\x8c\x9f\x15\x05AR\xb9\x98nbD\xadQ\x04\ -YAO\xb0#\xa9\xc7o\x11\x95%\x9d3\xfbg\xb1\ -#\x94zF\x5c\xa1\xf5)'\xea@\x1a\xd0\x19\xd1^\ -r$\x95\x8a\xc2\xe6w\x0eS7\xe5iI}/z\ -\xdc\xff\xf0\xcc\xf6\xefY\xf8ud\xfe\xfb_\x1e\xdf\xba\ -r\ -\x00\x00\x08\xac\ +troke:#333333;st\ +roke-width:0.197\ +867px;stroke-lin\ +ecap:butt;stroke\ +-linejoin:miter;\ +stroke-opacity:1\ +\x22\x0a xml:spa\ +ce=\x22preserve\x22\x0a \ + transform=\x22\ +scale(1.022082,0\ +.97839505)\x22>BusBar\ +\x0a\ + \x0a\x0a\ +\x00\x00\x09\xe9\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\xa8\ +w-width=\x222505\x22\x0a \ + inkscape:win\ +dow-height=\x221016\ +\x22\x0a id=\x22named\ +view4\x22\x0a show\ +grid=\x22false\x22\x0a \ + inkscape:zoom=\ +\x221.7383042\x22\x0a \ + inkscape:cx=\x2220\ +8.24894\x22\x0a in\ +kscape:cy=\x2288.87\ +9725\x22\x0a inksc\ +ape:window-x=\x2255\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22\x0a inkscap\ +e:showpageshadow\ +=\x222\x22\x0a inksca\ +pe:pagecheckerbo\ +ard=\x220\x22\x0a ink\ +scape:deskcolor=\ +\x22#d1d1d1\x22 />\x0a <\ +g\x0a id=\x22g1024\ +\x22\x0a transform\ +=\x22matrix(1.11809\ +76,0,0,1.1180976\ +,-2.290899,8.095\ +787)\x22>\x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x0b\x1c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \ -\x0d\x0a \x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a\ + \x0a \x0a \ + \x0a \ +\x0a \ + \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x05\xf6\ -\x00\ -\x00\x15\xe2x\xda\xe5X\xdbn\xdb8\x10}/\xd0\x7f\ -\x10\x94\x97\x04kI\xbc\x8a\xa2j\xa7\xd8E\xb7\xe8\x02\ -\xdd\x97m\xf7\xfa\xa6H\xb4\xa3F\x16\x0d\x8a\x8e\x93~\ -\xfd\x8e,\xebb[\x0e\x5c\xa4E\x81]\x07I\xc4\x99\ -!9s\xe6\xcc\x90\xf2\xf4\xf5\xc3\xb2p\xee\x95\xa9r\ -]\xce\x5c\xec#\xd7Qe\xaa\xb3\xbc\x5c\xcc\xdc\xdf?\ -\xbe\xf5\x22\xd7\xa9lRfI\xa1K5sK\xed\xbe\ -\xbe~\xf9bZ\xdd/^\xbep\x1c\x07\xa6\x97U\x9c\ -\xa53\xf7\xd6\xdaU\x1c\x04\xab\xb5)|m\x16A\x96\ -\x06\xaaPKU\xda*\xc0>\x0e\xdc\x81}\xda\xdb\xa7\ -F%6\xbfW\xa9^.uYm\xa7\x96\xd5\xc5\xd0\ -\xdad\xf3\xce|\xb3\xd9\xf8\x1b\xba\xb5\xc2R\xca\x00\x91\ -\x80\x10\x0f,\xbc\xea\xb1\xb4\xc9\x83w0\x17\xfc\x1c\x9b\ -K\x10B\x01\xe8\x06\xa6g\x9a\xc5\x15\x80\xb3\x82\xdf\xce\ -\xbe\x15\xf8\x95^\x9bT\xcda\xa2\xf2Ke\x837\x1f\ -\xdftJ\x0f\xf9\x99\xcd\x86\xeb\xe4\xe5]\x95&+\xb5\ -\xb7o+l`H\x96\xaaZ%\xa9\xaa\x82V\xde,\ -\xb0\xc93{;sY\xd4\x0coU\xbe\xb8\xb5\xfd\xf8\ ->W\x9b\x9f\xf4\xc3\xccE\x0erX\xe4\xb4\xf2<\x9b\ -\xb9\x10\x0c\xd9Y\xf5I\xc7;\xfdn\x93\xb8S!_\ -\x12\x9f9\x97\xeb\xf2\xae\xd4\x9b\xf2\xaa\xb1kc\x8a3\ -\x9d\xd6>\xce\xdc\x0f?\xfb5J\xd7\xb5z\xbaT6\ -\xc9\x12\x9blm\x9b][\x11&\x8d\x0dXA\xca\xe2\ -\xdf\xde\xbc\xdd\x0dA\x90\xa6\xf1\x9f\xda\xdc\xb5c\xf8\xd4\ -&\xc9\x8d^Ch\xeeu/\x9ffi\x0c /\x13\ -{\x9d/\x93\x85\xaa\x13\xf4\x03`:\x0dz\xc5\xbe\xb5\ -}\x5c\xa9\xc1\xba\xcd\xcaF5\xf9\x1aen\x96.\xf3\ -zV\xf0\xc1\xe6E\xf1K\xbd\x8d\xeb\x04\x87\xcb\xe6\xb6\ -P\x03\xe94\xd8\xc5\xd0\xc6\x18\x0c\x83\x9c\x06-\x0a\xcd\ -0S\xf3j\x00Q=\xc4\xa8\x83g\x99\x98;e\xba\ -\xfd\xba\xd4TV\xa7w\xb5\xfd\x8f\xc6\xe8\x0d~\x0f\xb5\ -i\xac\xdb\xd9i\x93C\xc1\xcd\xdcdmu/5j\ -\xfew\x9dL\xb4'\xfa\xeb@tz\xd5\xca>\x16\x80\ -\x93\x06^\xcc\x0b\xbd\x89\xef\xf3*\xbf)\x94{\xec^\ -^m\x1d\x9c\xb9\xd6\xacU\x9f\xb4\xe9*\xb1\xb7\x83\x0c\ -\xd4[\xd5\x22\xc6e\xe4\x0e\xe4 \xfe\xd5\x01\xa7&\xf0\ -\xeb\xbcw8\xd6\xbc\ -\xc6]r\x17\x06b\x1cU\xac\xf3L\x8dj\xba\x94\xd6\ -Nv\x9b\x8d\xab\xab\xdb$\xd3\x9b\x99K\x8e\xb4\x9b\xbc\ -\x04\x8d\xb7kX8\x0a\xe9)\x93\xb6\x89aD\xb8;\ -\xa8\x8b\x0e\xb3\x8e(\xd5\xad\xde\xd4\x01A\x86\x93\xa2R\ -G\x0b~\xd6\x1ar\x86\xa9\xcf\x09\x8a(;\xd2\xa7\xd0\ -\x19\x09\xf3\x05\x22!9v'\x85(\x09\xf6\x85\xc0<\ -<\x19\x0f\xac\xc0\xc5)e\xbd\xc0I\xe52y\xc8\x97\ -\xf9g\x95\x0d\x12\xd7\xef\xbd6\x06\xca\xd7+\x92G\x05\ -y_H\x84[zM\x17\x03L\x16\x0c\xf3\xbeU,\ -\xf6*x\xc18c\xe7T\x1eE\xc7\x957A\xce\xbb\ -\xfa\xc4\xf8\xa3\xfe\xf3\x0eN\x8f\x7f\x866\xbd\x9f\xba,\ -\x81j\xdax\xe0\xf1}b\xd7F\x0d\xa8qP\x82q\ -\x09\x17\x87a\xf3\x1c8\xbcs\xb9\x8es\xbc\xf2\xa0\x97\ -\x9b\xfc\xe1\x12\x8aSPI$\x9b\x80\x8b\x93~$\xa0\ -&%\x04\x8c'\x14\xf9\x82\x12\x89\xe8\xd5\xdeQq\x10\ -\xfd\x17\xc50\x00\x0b\x0b\xbc\xaf\xa9\xcf4\xc7\xe3\xc4\x97\ -\x1cI\xcc\xa0\x1d\xb1\x90\x09\x8c\xa8#}F\x08A|\ -\xe2\xc1\x13\x22T\xc8\xfd\x99Cd.TX\xff\xbc:\ -\xdd\xa9\x04\xa6\x22\x8d\xf6;\x15\xf1\x85\xa4L\xc8\xb0\x93\ -\x179\x84\x92\xac\xe2\x9b\xb5\xb5C\xd9'\x9d\x971\x1c\ -d\xca\xb4\xd2\xed\xa0\x00\x06\xda\x98\xb5\xb2,\x81\xfa5\ -&y\xdcf\xaa\x95\xeeJ>>\x08\xbc\xefe\x1a\x1a\ -\x07\x9c\x90poJ\xd3\x83\xb3\xf1\xab\xa1NGQg\ ->a\x8c\x87\xe1\xc4\xc3\xcc\x97\x822\xc9\x01v\xca#\ -\x8c\xe4d\xfb\x80dD\xbe\x15\xec\x82|9\xec\x1d\x98\ -\xe7\xe7\xe1[A\xca\xc7 \xa5\xd8\x8f\xea~(\x00R\ -\x01}\x93\x11$\x1c p\x84\x18\x8e\xa2\x09\xc6>c\ -\x119L\xc7\xff\x92\xca'f}\x95\xdc\x88\xb1\xdc0\ -\x00)\x22!e\x13\x8fBG\x09\x81\xdc\xcc\x81\xcb\x87\ -\xe0\x14\x8bp\x82\x9b\xc6\xf7\xdfb\xbb*\x8a|U\x1d\ -\xdc\xd9\xe1\x5c\xa5>\xe2\xe0Rx\x00\x94y\xa8U\x98\ -\xd3H\x90\x03~\xd7\xc7y\xe8\xcbP\xa2\x88\x1f\xcc\xaa\ -\xef\x01u3\xe1!\x90\x9b\x9dJ\x0a\x0d\xbd\xd0\x1b'\ -~\x1fg\x03t\x18\x224\x9f7@\xef\xebFq\x1f\ -R\xb4\x03=\xc2\x92PN\x8f\x006z]f\xcf\xa1\ -\xfey\x00\xc3\x81&X\x04|\x18\x03\x18\x85\xc0\xc2\xfe\ -\x1e\xda\x03,|&iHx8\x020\x81.\x02 \ -R\xfc\x04\xc0\xf8,x\xa5\xe4\xfcY\xf0R\x9f\xe2H\ -bB\xc4\xf7\x82\x17N.!9\xa6\xec\x18^\xe63\ -\x8c\xb1\xc4#\xfc\xad{2\x099\xe1|\x04_J\xfc\ -\x90\x85\x5c\x90\xa7\x08|\x16\xbe\x94\x22\x14\xa1g\xe1\x1b\ -I$C\xc0\xf8{\xe1\x0b\x0d2\x82;?\xa1c\xf4\ -\xe5\x11\xb4\xb4Qx\xb7\xb7\x08)\xc7\xe8\xcb\xa9/B\ -\x1a\xe2'\xe8{\x16\xb8bN\x92g\x92\x97\xc1U\x17\ -^\x03\xc5\xf7\x037B\x80 \x8d\xc6\xc0\x95\x84c\x84\ -G\xc0\x85Y\x11\xe7\xd1(\xb8\x0c\x82\xe2\x88\xb3\xa7\xb8\ -\x8b\xce\x82\x97s\x842\xf6\xcc\xde@e\x14I\xf2M\ -\xe1\x9d\x06\x8b\xee\xdb\x82\xc5\xf1\x0b\xdc\xe0\xcdg\xf0E\ -\x83\x8fP(HD'\x1e\xe1\x80\xa6 R^\xb9\x07\ -/}\x18^\xfa\xdaW\xc5\xed\xca\xd3\xfak1\xf8\xff\ -/\xd8%\x17w\ -\x00\x00\x07\xd6\ +oke:#37c8ab;stro\ +ke-width:1.16550\ +279;stroke-linec\ +ap:butt;stroke-l\ +inejoin:round;st\ +roke-miterlimit:\ +4;stroke-dasharr\ +ay:none;stroke-o\ +pacity:1\x22 />\x0a <\ +/g>\x0a\x0a\ +\x00\x00\x06=\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x09q\ +\x22\x0a inkscape:\ +current-layer=\x22s\ +vg4\x22 />\x0a \x0a\x0a\ +\x00\x00\x07\x8e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a sod\ -ipodi:nodetypes=\ -\x22cc\x22\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path81\ -2-3\x22\x0d\x0a d=\x22\ +5\x22\x0a id=\x22name\ +dview4\x22\x0a sho\ +wgrid=\x22false\x22\x0a \ + inkscape:zoom\ +=\x221.7383042\x22\x0a \ + inkscape:cx=\x22-\ +213.83542\x22\x0a \ +inkscape:cy=\x22209\ +.44504\x22\x0a ink\ +scape:window-x=\x22\ +57\x22\x0a inkscap\ +e:window-y=\x2227\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +g831\x22 />\x0a \x0a \ + \x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x05\x14\ -\x00\ -\x00\x13\x92x\xda\xe5XK\x8f\xdb6\x10\xbe\x17\xc8\x7f\ -\x10\x94K\x82Z\x12IQ|(\xf6\x06(\x82\x00=\ -\xf4\xd2\xa6\xe81\xe0J\xb4\xad\xac$\x1a\x94l\xaf\xf3\ -\xeb;\x94\xac\x87c/\xb2m\xd1\x02M\xec],\xe6\ -\xc1\xe1\xcc7\x0f\x0ev\xf9\xf6\xb1*\xbd\x83\xb6Ma\ -\xea\x95\x8fC\xe4{\xba\xceL^\xd4\x9b\x95\xff\xfb\x87\ -\xf7\x81\xf0\xbd\xa6Uu\xaeJS\xeb\x95_\x1b\xff\xed\ -\xdd\x8b\x1f\x96\xcda\xf3\xe2\x07\xcf\xf3\x8a\xfa\xa1\xc9\xd4\ -N\xa73\x1b8$\xde+\xa4\x10\xca\xd6I\x1c\xcb\x85\ -G\x10!\x01\x82\x1f\xfa\xda\xefN5p\xc1\x0e~\xd3\ -\xdcd\xb5\xaa\xc0\xae\xca\xf3\x8f\xfa\xb1\xd5\xb6V\xe5\xc7\ -\x8d-\xf2\x10n\xe8\x95\x8b|\xe5\x03\xc1zj~\xcf\ -\x99S\xe8\xe3O\xe6q\xe5#\x0fyT\xc0O\xcf\xdf\ -\xeab\xb3mW\xfe@\x1f\x8b\xbc\xddN$\x04^7\ -\xe9\xe0\xff\xca\xdf\xb6\xed.\x8d\xa2\xe3\xf1\x18\x0e\xcc\xd0\ -\xd8M\xe4\xfckv*\xd3M4\xf0\xe7\x06\x86PF\ -\x03\x03#l\xcc\xdefz\x0d6tX\xeb6z\xf7\ -\xe1\xdd(\x0cP\x98\xb7\xf9\xcc\xce\xc5\xfd\xc7\xb8\xbb\x99\ - \x84\xa2\x11\x86\xf3u\x87\xcdsUm\xbe\xbe\xa5\x8a\ -\xa5\x94\x11\x22\x11\xa4\x044\x82\xe6T\xb7\xea1\xa8\x9b\ -\x97\xf3\xb3Y6\x1e\xcd\xacVmq\xd0\x99\xa9*S\ -7=&\x97\xda\xf9\xa4\xbd\xdb\xdb\xb2S\xc9\xb3H\x97\ -\xba\xd2u\xdbD\x90\xaa\xc8\xbfs\x07\x96\x95nU\xae\ -Z\xd5\x9d\xees;\xb00\xe9u@\x0b\x1cK\x7f}\ -\xf7\xfeL\x02#\xcb\xd2?\x8c}\x18h\xf88\x15u\ -o\xf6\x90`\xffn\xe2/\xf3,\x05\xc8+\xd5\xde\x15\ -\x95\xdah\x07\xca\x8f\xe0\xe52\x9a\x04\x97\xda\xedi\xa7\ -gv{\xcbV\xf7\xd9\xbb\x19W\x9eU\x85;\x15\xfd\ -\xd6\x16e\xf9\xb3\xbb\xc6\xf7\xa2\xc9\xd9\xe8\xec\xed\x10M\ -4\x0fg\x19\x0d\xf1\xf6d\xae\xd7\xcd\x0c\x0cGb4\ -\x98[\x8e\x8d\xe2\xaa0w\x95>\xe8\x0e}\x07\x1d\xb4\ -w(\x07\xd6\xb4\x90'\xd7\x19\xc8\xffR)\xdb[\xeb\ -tJu\xd2v\xdeM3\x9dcQ\xe7\xe6\x18T\xea\ -\xb1\xa8\x8a\xcf\x1a|\xc1O\xe9\x9cV>\xe1O\x09\xa1\ -\x11Yr\xed\xc1\xc9u,\xe5(\x11\x82\x5cK\xe1P\ -@\xc5Y~%\xfelL\xb5\xf2E8\x9am\xb6\xe6\ -\xe8\x86\xc4\xca_\xab\xb2\xd1\xfe\x0c\xc0\x11(\xf1\x94\x83\ -\xc3\x5c\xc0\x08?\x89\xc2yV\x10*\xafC\xd9A\xbe\ -\x9b\xad\x025P\xb8)50.\xa0Bf\x99\xd8\xec\ -\x8b\x5c\xb7\xa6\xd4V\xd5\xae\xaa\xf0$\x810n\x0a\xcc\ -\xfd'\x9d\xb57E\xf7\xc6\xe6\xda\x8e\xb7\xe0K~f\ -J\x03I~\xc9\xba\xcf s~\x0d\x92u\xf7\xb9\xe9\ -z\xb6\xd5\xd9\x83\xb6\xf7F\xd9\xdc\xf9?\x14\xe2N\xb5\ -\xdb\xb3\xfe\x1a\x8a\xde=\x04\xf5\x05\xeeNaD\x03\xe8\ -_`\x1ao\xa98P\xb1\x85\xcc~\x1e\x0dm\xce*\ --D\xd5\xb8\x86\x84\x01\xa0Z[<\xbeB!f\x02\ -QD\xe3\x05r\xdf\x89$$D\x82pF\x16\x01\x0b\ -\x19\xe6\x84&\xe2\xf5\xfc\xf2\x8d\x88G\x10\x9a\xf6T\x02\ -Z\xce\xcb\xf4\xa5\xd2\xee\xfb\xc6\x11\xc1\x19\xaf\x14\xbfi\ -Zk\x1e\xf4(\xed\xc9\xa0,j\x0d8\xa4\xd6\xec\xeb\ -|`~y\xa8\xaf\x8c\x14\xf3P$DPF\xc5 \ -\x80\x99\xa0m\x09\xbd\xd3\xa6t\xe0\xe5\x0a\x0a\xc5Zu\ -J;\xb8\x86\x810\x03s\xf6\x16\xd6\x06J\x04\xc6\x0a\ -\xbc\x05Y\xe6\x8f\xf2\xa9IL\x0d\x0e\xb6\xc6\x06\xd0\xce\ -\x07\xd5\xee\xad\x9eU\xd8\x94\x05\x81\xc9\xc4t\xf3\xd5\x93\ -I\x88$\x96<^$,\x04\xf8\x08\x8d=\x04,J\ -\xf9\x82\xcb\x90\xcb\x04I>\x9dy\x06\x82\x1di\xf7\xa5\ -N\xf5A\x83\xe3\xf9\x13\x98>\x89\xd6M\xb0\x1d\xf3\x93\ -)\xea\xb4\xc3\xf2\xf9\xc0^%k\x1a\xc7\xff>\xd6A\ -\xfc\x05\xda8\xa6\xa1d\x18\xb0\x05\xdc\x13\x00Yp/\ -\xe8a\xc6H,:\xe0\x93o\x11\xede\xb4\xb9\x1a\x16\ -\x03P\x12\xf1\xd9p\xa8<\x02\x8fA\x9c\x10\xc6\x16,\ -$\x0cq\xc9\x5cEb\x16\x93\x05\xa6\x0e5(\xc9\x7f\ -\xdc\xd1=\x1e4D\x08\x96\x9e\xff\x18\x8b\xdb\x18L\xc5\ -\xe2F\xa4'B\xc6(#\x08/H\x1c\x12,$\x11\ -\x1eT\x8f\x00h\xf8\x82\xc2\xda\xc4\x10\x8b\xd9\xff\x12\x87\ -\xc1\xe7\xdb\x1d\xf75\x94\x82\xabj\xc1\x12\x8b\xee%\xa0\ -q,\x04\xf5\xa0J\x10\xe7\x12\xa0\x93\x80\x17aX|\ -\x8f0\xc5\x170\xf1\x90q*\x09Y\xc4$\x8cc\x9e\ - \x01\xc3($2\x96\xf0t\xca\x90PNP\xf2\x0d\ -\xc3dad\xdf\x88\xae3\xf9\x17B\x8b\x9f\x17\xd4\x05\ -\xf7o\x04\xf5f\xa7\x0a\xd8\xc9\xbb\x9d-\xad\x94\x85\xb5\ -\xab\xf1z\xa5n\xc7\x9a/8.2\x91\x8c8\x0c\xeb\ -\xa9\x0894\x01\x1b\x9beXm\x09,OH\xa0x\ -\x5c\x04`\xbf\xe6\xf0\xf2\xc3SD\xc7\x92q[<\x0e\ -e\x02\xc5\x11\x7f\xbd\xd2.v;7\xa4\x88@(\x8e\ -\xbb\xc1\xc5\xa5\x8c)\x0c3\xd8\xa8\x114)\x0c.B\ -0\xa3\xe4\xbb\x1c\x5c\x01\xbb@\x0a \xe6\xf0\x1a\x93~\ -vI*\xe4\x8d6\xfd.GW\x90\x5c\x96T\x02\x8b\ -\x00\xec\xa8\xb8\x83EB\xb5S\x07\x9e\xe4\x09g\xd2\xd5\ -\x14\xa3\x09\xc7\xf2[\x85j\xe9\xfeS\x01\x7f\xff\x04F\ -\xea\xf2\x89\ -\x00\x00\x15\xb8\ -\x00\ -\x00P\xd9x\xda\xed\x5cYo#Wv~\x1f`\xfe\ -C\x85~q#$u\xf7E\xd3\xf2\x00\x19c\x90y\ -J\x90\x19#\xcfl\x92-)\xa6H\x81\xa4z\xf1\xaf\ -\xcf\xd9\xeeREIn\xc3q\x12\xcfXm\x83\xbc\xb7\ -n\xdd\xe5\x9c\xef\xacu\x8ao\xff\xf8\xe9a7|\xd8\ -\x1eO\xf7\x87\xfd\xcdL/\xd5l\xd8\xee\xd7\x87\xcd\xfd\ -\xfe\xf6f\xf6\xdd\xdf\xfe\xbcH\xb3\xe1t^\xed7\xab\ -\xdda\xbf\xbd\x99\xed\x0f\xb3?~\xf3\xfb\xdf\xbd\xfd\xa7\ -\xc5b\xf8\xd3q\xbb:o7\xc3\xc7\xfb\xf3\xdd\xf0\x97\ -\xfd\xf7\xa7\xf5\xeaq;|}w>?^_]}\ -\xfc\xf8qy/\x9d\xcb\xc3\xf1\xf6\xea\xcd\xb0X\xc0\xad\ -p\xf3\xe9\xc3\xed\xef\x7f7\x0cp\xe3\xe6|w3s\ -iF\xcd\xbb\xed\xfd\xed\xdd\xb9\xb5?\xdco?\xfe\xcb\ -\xe1\xd3\xcdL\x0djpi\xa9\xf0O\xb7o<\xea~\ -s3\x83\x09\x8d\xdc\xd3\x8eR\xae\xcb\x1e\xae\xfbKK\ -3|\xadVJ\xad\xdf{k\xf3|0\xca\x98\x85\x82\ -\xff\xdc\x1b\xbe\xeb\x04$x\x84\xff\xaf7\x87\xf5~\xf5\ -\x00'\x7fX=\x0e_\xaf6\x9b7KX\x8d\x07\x01\ -\xed\xf6\xa7\xeb\xb2\xc0\xcd\xec\xa5\x93\xe3\x04\xa7\xc7\xd5z\ -{\xba*\xfd\xfd\x04e\xad:A\xe9X\x9e\x0eO\xc7\ -\xf5\xf6=\xcc\xb1]\xee\xb7\xe7\xabo\xff\xf6m\xbd\xb8\ -P\xcb\xcdy\xd3\xcd3Z\xff\xa3\xa5\x95\x0d\xd0\xe9j\ -\xb2_h~\xe9\xd0\xe3\xe6\xfdsCu\xce\xf9J\x99\ -+\xa0\x19\x8cX\x9c>\xef\xcf\xabO\x8b\xfd\xe9\xab\xfe\ -\xde\xf5\xba\xde\xbaF\xa0\xdc\x7f\xd8\xae\x0f\x0f\x0f\x87\xfd\ -\x89i2\x1e\xbdi\xa3\x1f\x9f\x8e;\x1a\xb2Y_m\ -w\xdb\x87\xed\xfe|\xba\x02\x9e]\xcd\xbe\xc1\x1b\xden\ -\xb6\xefOt'\xf3\x1e\x9b\x8e/\xc1\xc5\xf5\xee\xfe\xf1\ -\xdfW\xe7;\x190\x0c\xa5\xe3\xbb\xfd\xfd\x19H\xf4t\ -\xda\x1e\xff\x8a\xac\xf8\xb7\xfdw'\xe1B\x99\xa9\x0cM\ -\xc6\x97\xf9`\xc6\xe3v}\xae\xc3\x00\x18\xe7\xcf;`\ -\xf5\xfb\xfb\xdd\xeez\x0f\x22\xf1\x07\xfc\xb68\xc0\x94\xf7\ -\xe7\xcf\xd7j\x99\x5c\xf6\xday\xfb\x87\xd3\xf9x\xf8~\ -{\xfdU\xa6?i.\x08\xf2\xd7v\x99|t\xda\x19\ -_\xfaw\xf7\xfb\xed\x7f\x1d\xee\xf7\xd7\xc7\xc3\xd3~S\ -z\x1f\xee\xcf\xdb\xe3\xee\x1e>\xae]\xe9\xdb\xacNw\ -\xab\xe3q\xf5\x99\x96\x9fu[\xc33\xe0n\x93\x89}\ -w\x912\xb7\xc4\x05S\xe8\xafU\x91{\xee\xe2'\x14\ -\x95lRTQ\xf7\xfd\x9f\xa1_\xa9\xb04Y\xe5\xbe\ -\xffH\x17\x96:\x85\xe8\xf5l\xb8*<\xb9*\x84\xfd\ -\x1ff\xd2B\xfd\xda\xd9\xb4\xb0\xff\x8f\x19\xf5\xf6\x0aE\ -\x8b\xbfVu\x88\xaal\x83\x8a\xb9\x93\xc0w\xab\xc6\xa4\ -\xc7\xd5-\x88\xf9\xeep\xbc\x99}\xf5\x9e\xfe\xca\x95w\ -\x87\xe3f{,\xd7\x02\xfd\x8d\xaf\x09w\xd8\x0c\x95\xf9\ -\x8b\xf6\xc6\x89\xeb\x00\xf5\xc2\x00 \xf9\xe6\xf0\xf1ff\ -.\xae\xfep8<\xdc\xcc\xe22\xeb\xecs\xb8\xb8\xbc\ -\xfeD\x14qIYk/\xaf~F\xa3\x04d\x8cY\ -\xa7\x8b\xab`!\x9ePI-\x9e\x18\xbd\x8f\x9f.'\ -x:\x1eq\xc4n\xf5y\x0b\xa7\xa7\x0f\xdd\x98\x7f\xba\ -;|\xbc=\x22)\xdf\xafv\x8d\x96/\xcf\xf7\xf1~\ -\x0f\xe7\x5c\x08`\x8cW\xfe\xa5!\x057Z\xe9\xf0\xd2\ -\x188\xbb\x7fq\x028zS'\xd3\x8b\x0f\xabO\x80\ -\xfa\x1f\xb6\xb0s\xfd,C\xd6w\xdb\xf5\xf7\xdb\xe3\xbb\ -\xc3\xea\x08cT\xc1\xda\xdb\x87\xedy\xb5Y\x9dW\x1d\ -\x8aJW\xac\xba\x1cl\xcb\xf5\x7f|\xfb\xe7&\xe3\xeb\ -\xf5\xf5\x7f\x1e\x8e\xdf\xf7H\x86!\xabw\x87'8a\ -\xd3\x05h#\xd6\xd7`5\x1fV\xe7o\xee\x1f`\x1b\ -h\xd7\xfe\x19\x0c\x0d@\xba^\x18\x8f>\x7f~\xdcv\ -\xf3\xf2\xcc\xc7-\x1b\xe0gM\xd3f\x0d\xf2\x0ew]\ -\xfd\xf5\x0c\xaa\xe5/\xb8L\x13%\x12&\xdem\x15\xae\ -\xfe8o\xaf\xcaq\xb9y;%\xden\xf5n\xbb\xbb\ -\x99\xfdi\xf5\xb8\x1a.I{\x0b\xea\xe7\xf1\xe1\xb0\xd9\ -\x0a\x96f\x1d\x1d\x19\x5c\xa5\xe7|\x5c\xedOx\xe2\x9b\ -\x19}\xdd\x81\xc7\xf6\xb5\x9a/@/\xb8\xa5\x0d\xc6\xbc\ -\xa9\xe4\xbe\x1d\xe9\xd9)F\x7flo/,\xb5\xf0i\ -\xe9\x823)\xc0\x9a\x0e\x95\x94\xf7\xe9M\xa7\xb7o{\ -\xcd\xf8#+\x8cv6\xb2q\xcf\xae\xed\xf3RG\xed\ -\x9c\x9fk\xbb\x8c\xda\xa8\x1c\xdf\x8cPr;\xe2x\x7f\ -\xea\xb1b\xfe\x92\x9d\xbdt\xfe\x00\xba\xca\x1b\x1d=\x9c\ -\xdf,\x1d\xa8\x97\xeac>g\xab\xbezg\xf1_5\ -K\xa2'\xbf\xe9ox\xfb\xd8\xdb\xce\x97\xe7 \x93w\ -|\xdam\xaf\xb7\x1f\xb6\xfb\xc3f3\x99ul\xec\xd4\ -\xd2\xf4V\x0eN;6r\xd5\xf4\xbd\x83\xd9v_n\ -\xfaJo\xb1\xbd\xfa\x0f\x8f\xab{\xd0\x85\xa4\xf2a\x04\ -\x08\xe3n69\x0d\xaa\x83\x01T\x16\x90\xceF7\xd7\ -\xca\x00\x03\xb3\x1b\xc0\xe7\xcd*\xda8\xd7K\x9fb\x1e\ -\xc0\x86i\xeb\xcc\xdc\x82^\xb7\xc3\x02\xdcz\x17\x83\x09\ -s\xa4y\xc4\xd1\xd6)\x13\x0c\xb4M\xb2~\xe0\x0f\xaf\ -\xa1\x0d\xa6\x9f\x06x\xadl\xb6\xd0\xe1C\xd48\x83\x06\ -[\xa9\x01\xac\x13\x92\xd3\x85\xebu\ -=\x22\x80\xc13\x80\x1a\xd2t\x03\xd1\x819\xa7\xfb#\ -\x95\x09\x08&\x1d\x8c\x90\xc88\xa0m\xc1\x84\xdc\x93\x16\ -\x99KG\xacg\x10R\xcb\x1dt\x08Z\x13\xf4\x80\xb5\ -\x08\x9b\x9c\x5c\xa2M\xc1g\xc0\x11@\xe1~\x17z\xe9\ -tL\x1d\xb0\x1aC\x890=\x9c\x89\xd2~\xde\xc0\xdb\ -`Rh!\xb3.\x1a\xbf*\xf9q\xab\xff:D\xbb\ -\xb4\xe0\xe8 \xb8\xbb\x15\x88\xfd\x1deh\x0b\x1deH\ -~\xba\xf1L\x98\x1e\xebH\x81)\xed\xe8\x9cHum\ -\x05\xb9t\xd0\xe8\x932\xdd\xb1z~\x84^\x8cQ\xa0\ -\xba\xcb\xc0\x7f;\xd45eI\x01\xa4/+\x0aQ\x84\ -\x9dx?\x9e%\x849\xdf\xd8\xe3O\xd8\xcf\xf8+:\ -\xa2\xdeo\xe1K\xa8\xccwM\xbem\x80fl:\xc4\ --\x93Q6\xc6&Frh\xd73F\xc8\xd0\xf8\x82\ -\xe87\x8eioF\xdaL\xf6U\xcf-\xd2K\xfb\xb6\ -\x9d\x9c\xd1\x003\xe7+M\xd0\x1a\xc4*/\x88\x12M\ -\x11\x99eP\x09\x97(\x92C[\xe8\xd4\xa5\xc0\xa1\xde\ -_\xf0Va\x0e\x87#\xd2V@F\x98\x00(\x0c\x94\ -TA\x8e\x1d\x9a\xda\xaa\x00\xa2\x0dx\xdcb\x8c(\xfb\ -D\x04[\xf1SToQ\x8cf\x09DK\xd6\xf1\x16\ -\xfcH1\x12\x1a\xfa\x19\x08^$N\x00\xb09+\xe6\ -\xd0@\xdba\xb4iJ\x22%\xdc\x13a(\xdcc\x96\ -F\xeb8T\x15RF\xd4\x93.&\x8aQ\xf7J\xbd\ --TnB\xe4\xf9n\x1d\xa2O\x14(\xb1 \xe8\xdc\ -8,H+8\xaaJCtZ#O\xb5x\x02\x22\ -\x02\xa5\xeeE\x87TY\x1d\xcf+\x0f|<8y\xa5\ -MS\x17$\xe7\x1d^\xf9\xde\x867\ -\xd2\xe0\x9d\x8a\x17\xaf\xaeJ\x1b\xe2\xdbM\x0d_s\x02\ -\x09\xe0M\xd5\xf1l\x0bi\x17(T\x8fO\xa8\xd3\xec\ -\x90X\xa6\xea#.\xdai\xc8\xb0\x8a\xdb\x92*b\xfb\ -)\x8b\xe1\xaa\x1d\x04\x1dfi\xd5PweQ>}\ -\xd9\xbd\x10\x9f\xb7\xdf\xc4\x11\xa7r\xe2w@\xcbg\x18\ -l<\xf0\x1ex\xfb\xc34&\xc0\xf0\x0c\x03\x9f\xa4\xf3\ -\xc5\xa5\x9ag9\xec!r9\x1f\x8e\x8b\xf5\xd3\xf1\xc3\ -\xea\xfct\xdcb\xd6a\x1a+\xd5d\x16D\xd0\x18\xc2\ -\x9fnf\xeb_\xe5_\x9fp\xf8_\x8d\x0c\xdf=\x9d\ -\xcf\x17\x81!\xc5\x82?#0|6\x0a\xccv\xe9R\ -\xce\xa0\x035\xc0d\x99\x00\x9e\x14\x80\x81\x83\xe6\x12J\ -\x8abW'\xc6\x1c\x19\xca\x12?\x05\xa5\xc4\xbf\x0a\xc6\ -\x88l#|!V\x0b$\xce!\x13\x9e\x8d6!P\ -\xb4\x22\xb1I\xb0$\x00\xca\xa4q\x88\xa4}\xb8\xec \ -\xbb\x83+\x90V\x83\xe8\x9e\x83&\x98\x94\x8cx$d\ -\xbb\x00\xea\x86\xbc\xa8\x90\xd0\xe6\xc2\x12V\xac:i!\ -\x10\x03\x12!Q)&\x06\xc7n\x9e\xd6\xe8t\x01C\ -\xac\x8b\x9d\x06\xca\xd9\xb8N\xa94\x03\xa0H\xcc\x94\x92\ -\x88\xcd;\xf6\xefq>\x12Y\x22\x96\xc2\x10\x05\xcc\x1c\ -u\xe8\xf4\x9a\xa8\x19\xfdSE\xed\xef\x1f\x901#\x9b\ -\xd1\xc5\x01@\x86%\xd0\x98BN4<\xb1\xd3u\x0a\ -\xfd\x86\xea\xe7.\xea\x08\xb8\x92\xc4\xab!4\x10\x80\xbc\ -M\x91\xd0\xac\x81!\xa3\xb4\x84hJ\x9e\xad\x22\xc0j\ -0\x94\xa1\x98\xc5\xde\x0d\xcf0\xf9+\xfc\xb4\xbf\xf1s\ -\xca\xcf\x04\x02f1\xdc\x04vzp04\xdbE\xb4\ -\x7f\xd5T!\xb3\xac\xb2l\xcc\xd8\x0c\x82\x83\xe2Yh\ -9\xd01p;\x99v\xad\xd4\xab\x22\xe5\x7f1\xeb\xf5\ -\x8f |\x11t\x98\x0e&\xb35\xd0\x9e\x15`\xf2.\ -pT\xa49\xdb\xa2\xacR\xec\xf8\xe4\xea\xdf\x92\xc6\x86\ -0\x9c\xe5\xc6\x88\xc3\xe4\x9d\xcd\xdc\xc1\x8a\x1b\xa2\x0f\x94\ -Q\xce\xe1\xc0l\x94o\x01\xf9\xf2\x97\x1d;\x01\x0a\xe7\ -;\xb4\xa7T\x95\x07Y&IN\xb0\xb5W`\x10\x7f\ -\x93\xc4\x0bI\xf4\xcb\xec\x89q\xcc\xdc\xec)\xf0\x22\xc9\ -\x22\xcd\x9a5y\xbd`\xdf82\xc3\x08V$\x8fU\ -\xaf\xd7\x08\x07\x15\x94\xc6t;@\x85\xdcdd\x05\x87\ -a\x16\xd3\x1e\x15\x0d\x0e\x22b/\xee\xb2\xe1h\x22k\ -\xb0\xe4\xd4\xe3\x8c\x1d\x01IReFIHo\x0cg\ -\x02'=2u\xf0\x04R\xd9\xd2\x82M<\xc7!\x10\ -\x12\xb2\xe3\xad(\xd9\xc3\xda\xc4$\x05#\x106\xf6\xb9\ -\x0eB\x1an^\xb1\xe3\xa1xP\x99\x03\xc2\xae\x1a\xbc\ -X\x88\xa0\x22\x02\xd0;mGm\xa2\xde\xbc\xf8G\xe5\ -\xde\x108\x87\xa5\x1c-\x17\xc1\xbdF\x12\xe2\x12\xb8\xba\ -\x91\x958\x1f\x97\x22\xd3\xa9o\xbe\x82\xf1\xfc\x1b\xc6/\ -0\x1e\x96A\x817\x16\x11\xe3@}\xc9\x16\x8bb\xc2\ -@M\x08n\x94B\xb8 F%\xf5\x978G\x1b:\ -\x00W6E\x86\xa7 \x1a=R\xc9\xbd\x90(\xa0\xcb\ -8\x14,\xc3\xa2N\x87\xa1! zM^\xa5\xac\xa8\ -\xf9qB\xb5g\xc9\x18}\xd1\xc6\xe8\xceF\x95M*\ -\xab\xf7\xf8D\x09mrH\xd2@^J \x90\xb1V\ -\xa6\xfd\xf2\xfeQ<\x0c\xfb=\x15\xe1\xfeU\xedi\x7f\ -5~\xe9/\xf3\x08\xedYh\x85\xb4LZa\xc2\x09\ -8\x08\xdf=\xa5\xd3|\xd0\x8eiL\xb2\x5c\xd9$\xed\ -\xa26R2\x92\x97\xc5o\x18\xa3\xb0)\x5cT\xb8\xe0\ -pR\x11\xc6\x91\xda\x95;XU]\xb4w\xed\x8e\x05\ -o\x02Uy\xc2.\xdaK\x90d\x01o\x8f\x86\x83\x1d\ -\xb5\x8c\xe6\xc0\xb99\x87_\xaa\xdaf\x90\x10D\xe1\xb2\ -\x86\xced%\xa7\x951\x8f\x99\xad\xb1\x8c%z\x06\xa4\ -P\x05\xcfE\xa7sfC\x14!\xb9\x04\x8b\xde\xb0\xc8\ -\x89*^\x1d!\x1e\x9c\xc2,\x81^\xa6\xbc\x9a\xabp\ -Uc\xb3\xc2w\x17KQ\x16\xc4\xd3\x18/\xb9J\xce\ -\xcb\x91N/C\x8a\xc8-DW/*\x09\x16L*\ -\xca\xf6\xe1\xa9t\x0bkQ\xd6H\x0c\x8b\x84\xa3(\x89\ -Kc\x9b\xc4S\xd4Gl1\x16li\xe8\xf8\x8fb\ -\xcfR\x1a\x15\xb9\xba\xe8\xc0\xb0\x15\xd4\xc6\x16\xb9\x8e\xf3\ -\xbam:'\xa9\x1e>\x167Y'\xe5>\xb0\x06k\ -+\x0b\x87Q\x87\xd5\xb8\x131\xa2\x1d\xa1\xd0lM\x9a\ -d\xe8\xa2\xd61U(b\x87C\x0f\xaf'\x14\x12N\ -qb\x11\xc8\xd36!Z\x0a\x09\x18\x99\x80@\xa7\xc0\ -\x5c\xf2\x92@e\xbdW\x09\x16\xd0ss\xd5\xbf\xb8\xec\ -\xa1=\xb9\xba)4\xf8#<\x95\x8e\xe6\x09\xb0\xf6\x13\ -U\x06\x0c\x08C\xcfZ\xd2mE\xee0Z\xf0\xdd\xb0\ -\xa2!\x89{=;%_XU(\xf2\xf5\x99\x1e\xf6\ -\x14\xd8Cb\xaf\xb6\xd2\xa6\x9d;\xf5\xd8\xe3\x16\x003\ -\xd1\x86BB\xb6wZ|\xda\xc1)\xd2\x8a*\xa7\xf9\ -\xb1\x82\xc3\x9dr\xc0\xc4\xd8\xc6\x93U\x9e\x13\x16\xe4\xa1\ -#]n\xdb\x06\x9a\xd9\xd1~\x5cq\xfaX\x9a5Y\ -\xa7I\xc7\xae@?\x89\xbc\xb2\x91D\x89-\xcf\x8a(\ -\xdf\xe9\x12\xa2\xb99\xf4\x15\xda\xe2\xd78\x87\xe6\xae\x88\ -\xd3\x18\xcb\xccJ\xdd\xac\xf1B\xechQbD9\x93\ -U4\xb1\xf9\x7f\xd3\x8e;\x8e\xf4U\xee\x94-\xc4\x92\ -\x89\x87h~\x8c\x86\xbb`\xbfSli\x01\x0f_\xad\ -\xb4\xd4\x92\xe0\x07\x09\xe3\xa7\x89\xb8\xaf\xaakB\x8bc\ -\xc0\xcbt\x0ca\xc9\x86\xf5m\xd9\x04\xd3BDd\xe8\ -\xdd\xe1b\xbf\xc1-\xb6\x95%\xdd\xb9\x14\xed\x82\x04 \ -\xca\xf8T\xb0\xac\xc5A5\xa3}\x92:\xeb\x0f^\xb8\ -^\xe1\x1d\xc7\x06C\xd3\xe5I\x07\x83\x1b\xb4I\x94\x87\ -\xab\xc2D\xa6O=;J\x9a\xab\x8en\xca\xc6\xd8\x89\ -\xe3Dh5\x15\x16h\xe9\x08\x16\xac\xb8\x8aW%\x8e\ -\xb2xM\xb0n\x1a9\xdd\xa2>\x8b\xdf$J\x8f\x8d\ -\x02\x1f\xf5\xb2\xa3\xe0\xabt\x96#\xb4\x0e\x8ah\xe7E\ -U\x8a\xa5f\x83(.z\x89<\xa4I\xbc\xab\xf7#\ -\x97zo\x8dW\xad\x87`N\xa2(Q\x00\xc5\x8c\x9c\ -\xb4\x85D\x95w\xacy\xacW\x89\x15\xa0\x1ayj\xe2\ -xV[*,\xe1@\xaa\xca\x0f\xab\x97\xa2\xc4\xd8d\ -\xb5\x93\x88\xb8UC_HLq\x8e\x8c\x8f\x85\x05\x17\ -m!)H\x10{\xd0\xe2\x0b7\x97Z\x1e\xbe\x16z\ -\x8dw\x94'-\xd1o\x05 \xa4\xdc+\xe8\xaa\xb3S\ -o\x08\xfd`\xd9\xdf\xb8\xbd\xeb\xd6\xa6\xd9\x1a\x0a\xd9`\ -\x88\xff\xd1l\x95D\xb6\xd3-\x8b\xf0\xb4\xf0\xafu\xd8\ -\x02\x1a\xdb\x99\x84\x0e\x83\xc5ip\xac'+\xc0\xd3\x88\ -\xfa\xe8\xf6L\xdbb\xa5\xaa\x1c\x8a\x13A\xe8\x08s\xd1\ -\x81\x95\xd4\x02(T$\x86scD\xa0q{'{\ -\xb49qf\x81 :_\xb6Ix\xc8\ -{\xf5\xf3\xea\xe2a\x8a\xa5o3\xceF\xe6\x92\x8f\xdd\ -\xac%\xc3W Fnw'\xe5\x80V\xdd\x5c2\x92\ -$3\x05\x0e{\xafU|k$\x85\x98\xe8\xd2=\x8c\ -8Q\x1e\x82\x81\xb2j\xe4\x8bckW\xf1\xe8^P\ -\xed\xcc\xe9\xa2j\x1a\xb4C\xe7\xb54\xadJ\x0eG\x83\ -[9\xa1\x5c\xae(\xa9\xa6\xb7m\xbb3\xc45\xf7\xd1\ -\xb7w5\xa9\xc6\x85n]\x12\x05=\xd2\xd8\xbc\x07l\ -\xa5\xf98\x9c\xaa*\x98C\xc2j\x13\xbb\xe68%S\ -\x9c\xa2Q\x96\x91\x8e\xd1\xcfiF\x00#\xa7\xa9\xdfe\ -\xf1\x05E\x0f\xc5\xe1\xc2\x9b\xe8\xec|\x1c\xa5x\xd8\xe9\ -.v\xb2\x04r\xa3\xf6\xaey\xedX\x12e;\x92\x88\ -&lQ\x08\xd1(u\x16\xa5\x1e!\x8c\xb9.\x92\xd8\ -&\x90#\x8b2\xaa\xeeBu\x0f\xd8;\x05\x8cP\xda\ -\xaa\x84\xe6\xc5\xa1#X\xb5SQ\x04\xd7\x90]\xd2\xbd\ -B\x1f\xdfC\x86\xd2\xa65l\x90t|ga'\x1a\ -\x0b\xbd\x87\xa1\x8f\xfc\x94\xd4W\xd4\xa4\x9b\x08\x8d+\xf7\ -&\xe4\xdb\xbc\xba\xe4\xcd\xfd\xe0\x85\xc5[f\x8c\xf4\x1b\ -\x11\x07\xad%\x07\xe82\xeaE\x0e\x00\x84\x91\x93\x8e]\ -'\x1d\x1434'\xa2\xfa\x0c%!\x8d+\xf7\x96\xa7\ -b\x22w\xe1{\xf3\x93\xe8\x905\xed22\x03R\x0b\ -\x17\xb5\x93\xe0D\x92\xd3\x983f2\xd5L\xb4\xecM\ -\xf5i\x8c\xb2$D\xd1\x8e#e-JA\x18X\xa2\ -0\xc9\xe0\x0bq\xfal\xa78,UQ\x94;j\x07\ -\xc5\x05\xfd\x14\x94jj~\x82\xc4\xeae>\xd2\x9d\xbd\ -\xe4b\xd2\xa1s\xb4\xdc(:\xb8\x0c\xf5K\xf9o\xd1\ -D\xb2\xffJr\xb1\x11\xe3\x8eW\xf2\x98\xf6\xff\xa6\x94\ -\xe5\xf4j\xf3\xc5K\xa7\xd3\xf3WO_\xb2\xd4?@\ -r?8\x10\x1e\x1b\x22\x96\x06\xd8\x80\x8f%)\xfdR\ -\x1f\xcf\x0f\x5c\xc5\xa7r\xad\x0b\xe0:\xd9V_\xf5Z\ -\xa9\x9e\x14lN:\xc4\xc7\xe0\xbaHuQ27\xaa\ -\x0e\xa16\xd5\x0eHPN\x8e\x83\x03\xddk\xfa\xd2\x85\ -n\x0b\x89\xfcj\xac^\xe6\xaaDv\xac\xdb[\x02:\ -\x18\x96h\xac\x8a\xe1\x84\x06'\xf2\xcb*R\xd9v\xd9\ -\xb3\xeb&\x96\xc2\xfd\x9a\x1e\xa9;\x0c\x893\x13u\x87\ -1\xf8p\xb1\xc3E+\x88(\x85\x93\x17=\xbb\xaeN\ -\xbb{\xb7C\xaac\xdb\x1b\x11\xa3\x02S=*\xa9\xc7\ -\x19\xbb!\xf8L/\x8d\xab\xc5\xd3sg`\xaaS\xf5\ -G\xf7bJ)\xa5\xac/\x99t%\xe7\xe1\xb2\xa3<\ -V\x94\x12q\x0a\x98\x8c1\xf4R\x89\x14*i*\x05\ -n\xedd8yC5\xe9p\x8cl\x9c\xedIVk\ -F\xca\xb9\xc6U\xef}\xd5}y\x0dc\xf4\xd2CW\ -\xb0\x0e\xfcq\x17mN\x9bR\xe1{)\xbflQ\xdd\ -\xa8^\xa5\xe2\xa7\x16-k*\xd1\x9eW\x002\xffe\ -8>O2:\xb0>\xf6\xf5}\x0fS\x0b\x09S\xcc\ -\xe51\x13\x0f\xafE\xbeB\xecZ\x8a#\xef\xb8\xf8\xec\ -\x9d\xcf\x85\xa3\x0c3\x9f\xe7]\xfdl\x94\x84\x84l\x17\ -+w\xe8\x05\x83Z\x14Y\x88?\xa9\x8b\x1fjmO\ -\xdbN\xa9\xe2\x1f\xddWf\x96\xc2\xf3V!:\xee\x10\ -\xfa\xb5\xf2t\xa2@_0\xc4$\xa8e\xfb\xc2\xdbR\ -?\x84\x10\x15\xf2\xca\xb3\xbcQ\x15\xbfT\xf9W\x84S\ -\xc9\xf6\xb4\xfd\x8a9\xf3?\xeb\xb1\xdc\xdb\xab\xdb\xbeu\ -a\x1f~\xad\xd6\x81l\x83\x89\x00\xe3\x80y6|F\ -\x07.T\x8cEMQ\x80\x84\xa9\x8aA\xaa\x0f\xf19\ -\x87\xc7V\xb6\x9e$R\xc2f\x9d\x9c\x18\x0f\xfc&E\ -d\xcaqIC\xd3a\x0a\x95\xb0T\xf7I\x11\x83w\ -\xae/f\xe2\xfaD\xbe\xc2\x1eO\xd2\x12\xe9\xcb\x8b#\ -\xa0;K\xf1$O\x812\xc8\xf9ev\x0a\x9dO6\ -vNb\xdf\x9e \xa4\xe1#\xbe\xf0V\xe5\x978;\ -/\xba:\xa7K\xef\xe2\xef\x0d;\x19\xe9\x1f#a'\ -\x00\x17#\xd7\xc1\x00\xd78Rm%\xfc\x82\x1f\xd1\xd0\ -`\xfa(\xc9F\x5c,\xc0\xe0\x1b\xa8XUG*|\ -\xb5T\xdd?i\xcb\xe3),U%xR\x95\x1b#\ -I\x9a\xec\xc9c=\x14\xfb\xd8\x91s\x01\x0c\x08g\xb3\ -W-rV\x19T\xb6\x0c\x0c\x94\x0d\xe4d\x22?\x89\ -u\x81j\xbfiX\xab\xbek5\xb8\x15\x9e\xb0\x9f\xcb\ -W\xd6\x16\xdd\xbe\x82\xad5\xbcU\x9d\x95c\xf3\xfb%\ -\x85&b\x97C\xb6th\x92\xa8\xee\x15+\x10K7\ -\xd4\x03.\x15\xd7@d\xae\x0a \ + \x0a\x0a\ +\x00\x00\x08\xe2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a \xce\xb9\x0d\x0a <\ -text\x0d\x0a xml\ -:space=\x22preserve\ -\x22\x0d\x0a style=\ -\x22font-style:norm\ -al;font-weight:n\ -ormal;font-size:\ -22.6018px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#112b\ -00;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.555\ -331\x22\x0d\x0a x=\x22\ -9.1063738\x22\x0d\x0a \ - y=\x2237.0392\x22\x0d\x0a\ - id=\x22text2\ -3940\x22\x0d\x0a tr\ -ansform=\x22scale(0\ -.97491145,1.0257\ -342)\x22>+\x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xb5\ +dth=\x221863\x22\x0a \ +inkscape:window-\ +height=\x221025\x22\x0a \ + inkscape:wind\ +ow-x=\x2257\x22\x0a i\ +nkscape:window-y\ +=\x2227\x22\x0a inksc\ +ape:window-maxim\ +ized=\x221\x22 />\x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a \x0a\ +\x0a\ +\x00\x00\x14\x84\ +\x00\ +\x00G\xb1x\xda\xe5\x5cYs#\xc7\x91~\xd7\xaf\xe8\ +\x85^\xa4X4XWWUS\xc3q\xc4Z\xe1X\ +?\xed\xc6\xda\x8a}\xc6\x00\x18\x12+\x10`\x00\xe0p\ +F\xbf\xdeyUV5@j\xe5=\x1c\xb64\x0e\x07\ +QG\xd7\x91\xf9\xe5\xd9\xd9z\xf7\xbb\xcf\x8f\xbb\xee\xd3\ +\xe6x\xda\x1e\xf6w3\xbb0\xb3n\xb3_\x1d\xd6\xdb\ +\xfd\xfd\xdd\xec\x87?\xff\xa1\xcf\xb3\xeet^\xee\xd7\xcb\ +\xdda\xbf\xb9\x9b\xed\x0f\xb3\xdf\xbd\xff\xea\xdd?\xf5}\ +\xf7\xfb\xe3fy\xde\xac\xbb\x97\xed\xf9\xa1\xfb\xe3\xfe\xc7\ +\xd3j\xf9\xb4\xe9\xbey8\x9f\x9fnon^^^\ +\x16[\xe9\x5c\x1c\x8e\xf77\xdfv}\xff\xfe\xab\xaf\xde\ +\x9d>\xdd\x7f\xd5u\x1d\xec\xbb?\xdd\xaeWw3y\ +\xe0\xe9\xf9\xb8\xa3\x89\xeb\xd5\xcdf\xb7y\xdc\xec\xcf\xa7\ +\x1b\xbb\xb07\xb3:}U\xa7\xafp\xf7\xed\xa7\xcd\xea\ +\xf0\xf8x\xd8\x9f\xe8\xc9\xfd\xe9\xebf\xf2q\xfdQg\ +\xe3i^\x0ag|\xedQg\x8c\xb9\ +\x81\xb1:\xf3\x97\xcd\xba=\x01A\x9f\xe0\xff:\xbdt\ +,N\x87\xe7\xe3j\xf3\x11\x9e\xdb,\xf6\x9b\xf3\xcd\xf7\ +\x7f\xfe^\x07{\xb3X\x9f\xd7\xcd2\x85\x9e\x93]'\ +D\xde/\x1f7\xa7\xa7\xe5js\xba)\xfd\xf4\xfc\xcb\ +v}~\xb8\x9b\x85L\xad\x87\xcd\xf6\xfe\xe1\xac\xcdO\ +\xdb\xcd\xcb\xbf\x1c>\xdf\xcdLg\xba\x90\x17\x06\xff\xd9\ +\xfa\x8b&m\xd7w3\xb8\x94\xe3'*`dT6\ +\xbb\xd5\x11\xb3\x18\xdd\x22t\xdf<\xef\x7f\xdc\x1f^\xf6\ +\xdf\xd2\xb4r\xb3\xdb\xf5a\x85G\xbd\x9b=.\x9f\x16\ +H\xab\xf70\xfcn\xbd\xf9x\xc2i\xbc\x1b\xb6\x02\x0d\ +\xc0\xd0j\xb7}\xfa\xf7\xe5\xf9\x81\x87\xbb\xae\xb4\x7f\xd8\ +o\xcf\xc0\x85\xe7\xd3\xe6\xf8'\xbc\xf7\xbf\xed\x7f8\xf1\ +\x95\xcb2efv\x83,\x06\xcb\x1d7\xabs\x99\x04\ +\xc7:\x7f\xd9\xc1Y>nw\xbb\xdb=\xc0\xfc;\xfc\ +\xd5\x1f`\xbd\xed\xf9\xcb\xadY\xe40\x0e6\x0c\xfe\xbb\ +\xd3\xf9x\xf8qs\xfb\xf5H\xff\xa4\xd9\x13qo\xfd\ +\x22\x0f)\xd8\xe0\x86\xd2\xbf\xdb\xee7\xffu\xd8\xeeo\ +\x8f\x87\xe7\xfd\xba\xf4>n\xcf\x9b\xe3n\x0b\x7fnC\ +\xe9[/O\x0f\xcb\xe3q\xf9\x85\xb6\x9f\xd5\x93\xe1\x05\ +\xf0\xac\xd9\xa5\xa6\xb7p3,p\xbb\x1c\x9b!e\xed\ ++c\x9f\x91_\xa3\xcb\xc9$\xdbt\x7f\x81nc\xe2\ +\xc2\x8dfl\xba\x8f\xd4\xbf\xb09\xa6\xc1\xce\xba\x1ba\ +\xc4M\xa1'q\xec\x06\x99D\xbf\x94\xb5\xc8\xd75B\ +\xaar\xf2\xc3Ry\xf2\xb4\xbc\x07\x91\xdd\x1d\x8ew\xb3\ +\xaf?\xd2?\x19\xf8p8\xae7\xc72\x14\xe9\xdfd\ +H\xd8\xc1JJ\xd6.\xa8\xc3Uu\xdc\xbc>\x0e\x14\ +^\x1f^\xeef\xeer\xf0\xa7\xc3\xe1\xf1n\xe6\x17\xd6\ +&\x9b\xd3p9\xbc\x02\xb2\xf5\x11\xc9i\xed\x98\xaeF\ +a\xc3\x04\x83\xd6\x8d6_\x0e\x02\xca\x9fQ\x8f\xf5\xcf\ +\x8c\xd2\xa7\xcfW\x8f?\x1f\x8f8a\xb7\xfc\xb2\x81{\ +\xd3\x9f\xc2\x9b\xd3\xc3\xe1\xe5\xfe\x88\xf4\xfb\xb8\xdc)\x01\ +\xdf\x5c\xeae\xbb\x87\xfb\xf5\x82\x0d`\x9b\x7fcF\x81\ +\x885nxc\x0a\x5cyHo\x8c\xc1\x85\xdd[c\ +\x8f\xcb\xcf\x00\xec\x9f6p\xe6\x02\x99w\x8f\x9b\xf3r\ +\xbd\x7f\ +y\xda\xd4Ey\xd9\xe3\x86U\xf0\xabvh\xbd\x021\ +\x85\x87n\xfet\x06\x8d\xf0G\xdcD%A\x17\xdd\x9e\ +w\x9b\xda\x09\x02\xc2\xa7/\xf2\xd2\x5c\xee\xddM\xb9:\ +\xb5\xee/\x88\xb8[~\xd8\xec\xeef\xbf_>-;\ +{I\xe1{P\x22O\x8f\x87\xf5FP2\xab\xf4\x9c\ +\xa0\xe6|\x5c\xeeOx\xf9\xbb\x19\xfd\xdc\x81\x8d\xfe\xc6\ +\xcc{\x10\xf1\xb0\xf0\xd1\xb9o\x0b\xd5\xef[-\xc9k\ +\xf4\xbe\xaa\xce\x9f;\xd5\x1b\xdb\xf4\x11dop6\x0d\ +\xb0\x1fh\x7f\xef\xbd\x09\xdf\xea3\xad\x9a\xfd\xfa\x83\xc7\ +\xff\xa9F\x15\x81W*>5\xba\xfe\xf5'IG\x1f\ +\x9fw\x9b\xdb\xcd\xa7\xcd\xfe\xb0^_\xac5\xd5\xcef\ +\xe1Z\xb5\x0c7\x9bje\xd5\xd5\x1f`\xb5\xdd/\xd7\ +\xd5\xa5\xb7\x18\x0b\xfb\xdd\xd3r\x0b\x02M*\x0bf\x00\ +\x08w\x8dRE\xf4w\xd6\x80\x0a\x1b|\x0as\x10A\ +\xbfHc\xe8\xc0\xd4\x8f&\xf94\xb7\x8b!\xa7\xb1\x03\ +\xbdk}ps\xbf\x18\xad\xefz\xbbp!E\x17\xe7\ +H\xdf\x84\xb3}0.:h\xbb\xec\x87\x8e\xff\x0c\x16\ +\xda`\xa6h\xc2`\x8d\x1f=t\x0c1Y\x5c\xc1\x82\ +z\xb7q\xde\xf3\xd2\xcd\x1a\xf0+\x8d~\xec\x1et\x9f\ +\xd4\xed\xba\xde/\x9cw!g8R2|\x088Z\ +\xce#?\x10\xb0#\x860\x8c#l\xe2\xc7\xa4{$\ +\x9c\x10\xb3\x19p\x0f\xb8\x93\xf3\xa1\xed\x91\x83\xc9\x22\xe5\ +\xa2L\x00l\xd7q\xfc\x05\x1dy0q\x18h\x09\xe7\ +\x894x\x1e+\x8fxZ\x13\xeeh\xe8\x19!\x0f\x91\ +\xc3\xc9\x22\xb8*\x90%f\x98\x01\x97\xf0\xd6u4\x13\ +\x1e\x9a3\x19\xe8v\xc6\x99\x94\x91\xc4\xb0Mn\x16\x91\ +5\x84L!0\xd1#\xf1,\x06\x93\xf0\x11\xf8a\xeb\ +\xa2L\xc6\xaeYA\xee\xe6\xc78&l\x131\xca\xdd\ +u\xba\x5c\xac\xae\xaf\x5cE2\xe2z.\xe6`\x0b\xd7\ +u?\x22\x80\xc3;\x80u\xb7\xf4\x00\xd1\x819g\xdb\ ++\x95\x05\x08&\x0d\x8c\x90\xc88\xa1\x1e\xc1\xc5\xb1%\ +-2\x97\xae\xa8w\x10R\xcb\x13t\x09\xda\x13d\xde\ +{\x84\xcd\x98C\xa6C\xc1\xdf\x883\x80\xc2\xed)\xec\ +\x22\xd8\x94\x1b`U\x86\x12aZ8\x13\xa5\x87y\x05\ +o\x85I\xa1\x85\xac\xdaW~)\xf9\xf1\xa8\xff\xda%\ +\xbf\xf0\x09.\xb1\x9b\xec@\xeco(CGh(C\ +\xf2\xd3\xccg\xc2\xb4XG\x0a\x5c\xd2\x8e\xee\x89T\xb7\ +^\x90K\x17MC6\xae\xb9V\xcb\x8f\xd8\x8a1\x0a\ +T3\x0c\xfc\xf7\x9d\xee)[\x0a \x87\xb2\xa3\x10E\ +\xd8\x89\xcf\xe3]b\x9c\xf3\x83-\xfe\x84\xfd\x8c\xbf\xa2\ +#\xf4y\x0f?\xa22?T\xf9\xf6\x11\x9a\xa9\xea\x90\ +\xb0\xc8\xce\xf8\x94\xaa\x18\xc9\xa5C\xcb\x18!C\xe5\x0b\ +\xa2\xdf\x05\xa6\xbd\x9bh39\x97\xde[\xa4\x97\xce\xed\ +\x1b9\xa3\x09n\xce#U\xd0*\xc4\x94\x17D\x89\xaa\ +\x88\xdc\x22\x9a\x8c[\x14\xc9\xa1#4\xeaR\xe0\xa0\xcf\ +\x17\xbc)\xcc\xe1rDZ\x05d\x82\x05\x80\xc2@I\ +\x13\xe5\xda\xb1\xaa-\x05\x10\x1d`\xc0#\xa6\x84\xb2O\ +D\xf0\x8a\x9f\xa2z\x8bbt\x0b Z\xf6\x81\x8f0\ +L\x14#\xa1\xa1]\x81\xe0E\xe2\x04\x00\x9b\xb3b\x8e\ +\x15\xb4\x0dF\xab\xa6$R\xc23\x09\xa6\xc23n\xe1\ +\xc0\x01\xeeT\x85\x94\x19z\xd3\xfeB1\xdaV\xa9\xd7\ +\x8d\xcaC\x88\xbc\xa1\xd9\x87\xe8\x93\x04J,\x08v\xac\ +\x1c\x16\xa4\x15\x1c\xa9\xd2\x10\x9dV\xc9\xa3\x16O@D\ +\xa0\xb4\xad\xe8\x90*\xd3\xf9\xbcs\xc7\xd7\x83\x9b+m\ +\xaa\xba \xe1Q%\xa4\xdaX\xb5\xbd\x5cILH\x85\ +T\x81P!\x0bMpU\xdaT\xfd\xb00\x13 \x02\ +\xde\x88\x10\xf0\xa9+\x9aj\xd7\xb5v\x92\xf0\xf4\xa9\x88\ +\x09+\xab\xcai\xb2\xd4\x8d\xf1\x12\x81\xa9\x9aF\xe8)\ +R(\x8c\xff\xd4\xf1!v\xed\xa9\x04\xa7rj\xc5i\ +\xa5\x0b\x19\xad\xa2\xd0\xd3\x5ct^cfzU4\xad\ +Q/\xae\x04K\x04^@mB\xb9;\xff\x0dc\x9c\ +\xf7\xc5\xbbh!#\x1eQ\xb5\xf3b.\xabU\xe7\xa3\ +\xb5\xb8C\x15\xaf6\xbc<\xb2\xea\xcc\xdcL\xf4\x89\xdc\ +\xb1\xd0`BN\xd1\xedJM\xba\x82\xbfj7D\xec\ +\xc5\xea\xc9\xc6C\x05\x8b\x1cL\xd0\xa7\x9a\x9b)1\x91\ +\x0f<\xb8[$\xe7\xcc8\x80z\xf2np\x0d\x98\x00\ +\xb7pt\x98\x00\xd8\x1eA\x1e\xdc\x02wV!\xbc\xb0\ +OU\xbb`\xaf\xda\xcf\x09\x19\x1a-++\x88\xf1@\ +\x22\xa88\xf0\x0aS\xf9\x9c7x\xe5g+\xdeH\x83\ +7*^\xbc:\x956\xc4w\xb84|\xd5\x09$\x80\ +WU\xc7\xab\xf5\xd2.PP\x8fO\xa8S\xed\x90X\ +&\xf5\x11\xfbz\x1b2\xac\xe2\xb6dEl\xbbd1\ +\x5c\xdaA\xd0a\x96\xaa\x86z(\x9b\xf2\xed\xcb\xe9\x85\ +\xf8|\xfc*\x8e\xb8T\x10\xbf\x03Z\xc3\x08\x93\xdd\x00\ +\xbc\x07\xde\xfet\x91\xde\xc1H'\xdb6\xf3R\xb3\x03\ +\x87=\x84*\xe7\xc3\xb1_=\x1f?-\xcf\xcfG\x08\ +\x82L3\xb3&] 0\xc4@\xf5t7[\xfdC\ +\xfek\xc2\xea\xbfE\xec\xf7\xe1\xf9|\xbe\x0a\xfd(\xda\ +\xfb_\x84~\x97q\xde\xe8\x17!\x8f#h9\x0b@\ +Xd\x00 \x85X\xe0\x82\x85\x8c\xb2`\xd8\x99Ii\ +L\x0cV\x89\x90\xa21\xe2AA\xbc.\xd2\x8b\x00\x85\ +h,\x92\xc0\xc6\x91\x10\xeb\xac\x8b\x91\xe2\x11\x89>\xa2\ +'\x88\x1b\x97\xa7A\x90\x1d\xe2u\x07Y\x16\xdc\x81\xf4\ +\x16\xc4\xea\x1c\x16\xc1\xa2d\xa6\x13a7DP(\xe4\ +'\xc5\x8cV\x15\xb6\xf0b\xb7I\xcf\x00\xd0IHD\ +i\xb8\x14\x03;r\xd6\xa2[\x05\xbc\xf0!5:f\ +\x1c]h\xd4FU\xf1\x86\x04\xc9\x18\x89\xc9\x86\xc0\x1e\ +<\xaeGBI\xc42\x18\x84\x80!\xa3\x0e\x9b\xdf\x10\ +&g\xff\x0aa\xfa\x15\xe2.\x8d\xc8M\xf4U\x00w\ +q\x01\xa4\xa4\xd8\x11-Hj\x94\x96A\x07@\x1d\xd6\ +^g\xc0H\x16\xf7\x84\x98N8\x19|N\x04Z\x0b\ +t\x9f\xe4\x17D\xe5\xf1j\xcaho\xc1\xe2\xc5b\xdf\ +Z\x7fz\x84\xc5_g\x9b\xffm\xb3-\x83\xb8x\x0c\ +\x0f\x81k\x038\x04\x96\xed\x18\xda+5-\xc8\x13o\ +<\x1b\x1f6[\xe0P\x0c,\x82\x1c\x988x\x9cL\ +\xb15\xe6-\x01\x19\xfe\x8f\xad\xcd\xafR\x8a\x12\xe8\x1c\ +\x1b\xdd\xc8\xda\xdb\x0e\xac\xb0\xf2\x10\x22\xc7)\x96\xf3\x1f\ +\xc6\x1b\xc3\xae\xc8\xa8\x1e'iX\x08\x8cY\x00\x9c\xb8\ +0C\xf0#w\xb0\xa2\x85x\x00\x85\x8d\xb3*\xb0\x1a\ +e@@P\x86\xeb\x8e\x9d@\x813\x10v\xa0\xe4\xd1\ +\x00BI\x22\x99\xe1h\xaf3:\xfd\xc6EjX\x8c\ +\x03\xf1\x87y8\x0e\x14\xf1\x90\x88\x90&\x1c-\xb9\x9b\ +`v8$\xc2\xd0QD\x88U\xe5`\x91\xeb&\x1a\ +\x8b9m@\x04\xf9\xa7Hq\x8e\x7f<\xe6\x1b\x94\xe9\ +\x01B\xd1A\xfcT\xc7n\xfch\xc1\xc0ROp~\ +\x82\x17\xc9Q9#\xb1\xb4s\x9c\x82\xbb\xe8\x91\xa5\xe3\ +@X\x94#\xf5ly9\x00\x80X\x8c=^CY\ +\x16V\x0b.\x1b\x98\x81\xe8\xf0\xafu\x10\xa0\xf0\xf0\x86\ +\xfd\x01\xc3\x93\xca\x1a\x10\xefh\xd4\xe0!tI\x88\xb3\ +!X?i\x13\xf5\xe6\xc5m)\xcf\xc6\xc8\xc9#\x13\ +h\xbb\x04\xce-\x92\x10\xb7\xc0\xdd\x9d\xec\xc4\x89\xb0\x9c\ +\x98Nm\xf3u(\x8f\xbfq(\xc7E4\xe0\x0b%\ +\x842\x10Y\xb2\xb1\xa2f0\x10\x12\xba:c\x10\x15\ +\x08EI\xade\xce\x81\xc6\x06\xa7\xca\x8d\xc4(\x14\xe0\ +\xa2?(\xb9\x0dB<:l]\x81,l\x1al\xec\ +*\xa3\xd3`\xc9\xa7\x93\x1d-\xa7\xeb\xd5\xfed\xe7\xec\ +U\x1b\xa3'\x9f\xcc\xe8r\xd9\xbd\x85!\x0ab\x157\ +\x02=9\x0f\x91\xb0\xc4:\x96\xce\xcb\xe7G)p\xec\ +\x8e(\x90\x87\xb7t\xa1\xff\xfb\xf5\x0a\xff\x7f\xdeD]\ +\x22(\xe6E\xb6\x06\xf36\xc0(\xf8=PVj\x88\ +60)I2\x95\x1b\xd2.J g'\xe9M\xfc\ +\x85\x81\x00\xdb\xaf^Q\x81\xd3I\xe0] %*O\ +\xb0\xe2\xb9j\xef\xea\x13=\x1f\x02\x15s\xc6.:K\ +\x94\x98\x9b\x8fG\xd3\xc1\xf8y\x06m\xe4\x14W\xc0\x1f\ +\xaa\x84\x19\x0b\x84D\x18\xb6\xd0\x99\xbd\xa4\x86FL\x07\ +\x8e\xdey\x86\x0c\xbdJ1\xa8P\xe7\xa2\xa19A \ +j\x8d\xecx\xdf\x9a\x09\xb9\x91\xc22\x10\xb0\xc1W\x1b\ +%\x9a\x1a)=\x15\x14\x95fj$\xf8\xe9\xa2\xf7\xcb\ +\x86x\x1b7H\xca\x8f\xd3[\xa4\xa1\xcb\x94\x22Y\xbd\ +h\xde^I\xd03\xa9(i\x86\xb7\xb25vD\x91\ +\x22i+\x82\x8c\x12#~\x88\xaf\x82M\xa1\x15\xb1\xc5\ +y\xb0\x8c\xb1\xe1?J7\x0bc2\xe4\x81\xa2\xd7\xc1\ +6\xcd:_\xc47\xcd\xf5\xd8tO\xd20|-n\ +\xb2\xea\x19\xdb\xe8\x15l\xa7l\x1c'\x1d\xde\xe2I\xc4\ +$6\x84B#t\xd1$\xb3\x95\xacMY\xa1\x88\x1d\ +\x01\xdd\xb2\x96PH8\xc3\xf99 O=\x84(#\ +$`b\x02\x02\x9d\x22si\x90<$\xab7%X\ +Dw+\xa8\xb7p\xddCg\x0az(4\xdf\x13<\ +\x95\x8ej\xd7Y\xc9\x89\xc6\x02\x06\xc4\xaee-\xa9\xb0\ +\x22w\xe8\xc4\x0f\xcd\xb4\xa2\x08\x89{-;%\xed\xa6\ +\x9a\x12\xf9\xfaJ\x0f\xdb}\xf6w\xd8\x15U\xda\xd4{\ +\xe7\x16{\xdc\x02`f:P\xcc\xc8\xf6FY_v\ +p\xa6QQ\x15,g\xe7\x03\x9e\x94\xe3\x18\xc66\xde\ +LyNX\x90ww4\x5c\x8f\x0d4\xf3\x93\xf3\x84\ +\xe2\xc2\xb14[2B\x17\x1d\xbb\x02\xfd,\xf2\xca\xb6\ +\x10%\xb6\xbcr\xa1\xb4a\xc8\x88\xe6\xea\x85+\xb4\xc5\ +K\x09\x01\xadZ\x11\xa7)\x96\x99\x95\xb6\x1a\xdd^\xcc\ +eQbD97\x9a\xe4R\xf5\xe6.;\x1e8\xce\ +6c\xa3l!\xc4\xcb<\xc5\xf2\xdb(<\x05{\x91\ +b2\x0bxxTii%O\x0e\x12\xc6/\xe5\xf0\ +\x5c\xaakb\x0d>\xc0g\x0c\x0caI9\xb5m9\ +\x04\xd3BD\xa4k\x9d\xdbb\xa6\xc1\xc9\xf5\xca\x92\xe6\ +^\x86NA\x02\x90d~.X\xb6\xe2n\xba\xc99\ +I\x9d\xb5\x17/\x5cWx\xa7\xa9\xc1\xb04|\xd1\xc1\ +\xe0\x06m\x92\xe4\x1d\xa50\x91\xe9\xa3wGI\x0b\xea\ +\xb6\xe6\xd19\x7f\xe1\x1f\x11Z\x9d\xc2\x02-\x1d\xc1\x82\ +\x15Wq\x9e\xc4\xed\x15\xe7\x08\xf6\xcd\x13\x17Z\xd4g\ +q\x8fD\xe9\xb1Q\xe0\xab^w\x14|\x95\xcer\x85\ +\xdaAa\xe8\xbc\xa8J\xb1\xd4l\x10\xc5\xe1.q\x84\ +4\x89w\xfah\x98\x02\xa8,\ +\xa5\x12D'U\xb4\x05.\x05PmF\xee\x88\x8aO\ +\xe9\x06\x1d\x98\xdb\xf6\xa5\xe7l^\xeb\x10\xbc\xa9\xa0\x93\ +\x0d\xec\x9bp\x89\x8e\xda\x0aOhc\x16\x88\x95\xc7\xeb\ +6\x09\x0fy\xaf\xc3\x5c]CI/\xe3\xce\xad\ +\xe5QL\x8cM\xf8^\xfd$\xba\xa4\xa6]&f@\ +J\xca\x92\x0d\x12\x9cH\xaa\x193\xc0L&\xcd+\xcb\ +\xd9L\x9b\xc6([B\x14\x1d8R\xb6\xa2\x14\x84\x81\ +%\x0a\x93|\xbc\x10\xa7Mj\x8a\xc3\xa2\x8a\xa2<\xa1\ +\x1d\x14\x17\xb4KP\xaa\xa9\xfa\x09\x12\xab\x97\xf5Hw\ +\xb6\x92\x8bI\x87\xc6\xd1\x0a\x93\xe8\xe0:\xd4/U\xb4\ +E\x13\xc9\xf9\x95\xe4b#\xa6\x1d\xaf\xa7+\xfd\xdf\xb2\ +\x22\xe4\xf4\xb3\xcd7\x87N\xa7\xd7GO\xbfd\xab_\ +c\x96\x1e\xbf\x13\x8a>&|\xf5\xee#\xbe-\xa4\x04\ +\x8b\xbe\xfe\xee\xb8\xdc\xcd\x8c\xfa\xde\x9d\x0bJk!\xd2\ +\xcf\xd5\xb4Ie\xe3E\x87x\x11\x5c@h\xaej\xcb\ +&E\x16\xd4\xa6w\xf3\x12v\x93k\x10@\xbb\xba\xb6\ +4\xa09B&\xcf\x19\xcb|\xb9|\x8f]\xe7ZN\ +o\xa3c\x99\xc5\xe2\x12NYpF\xbe\xec\x22%`\ +\xd7=\xbbfa\xa9p\xd7\x04\x88\x9e0f\xce=\xe8\ +\x09S\x1c\xe2\xd5\x09\xfbZpP*\x0c\xafzvM\ +As\xf3\x11\x84\x94\x91\xd6O\x07&\x95\x98vR{\ +\x8e+6S\xf0\x1d\x5c\x9e\x96U\xe7\xd7\xee\xc0T\xa7\ +\xea\x8a\xe6\x0b\x8eRs\xa8_c4\xb5\xd9\xf1\xba\xa3\ +\xbc\x06\x94Zj\x0a\x89\x9cs\xf4\xf5\x85\xd4\xfbX\xaa\ +\x99\xad\xed\xec8=C\xc5\xdbp\x8d\xd1\x05\xdf\x92L\ +k2\xca\xbd\xa6\xe5\xe1myz\xf9^a\xf2u@\ +S\xd9\x0d\xfc\x09WmN\x8cR\x85x\xa9S\xacq\ +\xdb\xa4\x1eD\xf1\xa3\xd5\xbd\x96j\x99\xe7\x0a@\xe6\xbf\ +L\xc7\x17C\xceF\xd6\xb8\x83~\x18\xe1\xb4\xe2.\xa7\ +\xb1\xbc/\xe2\xe9Z\x0d+\xc4\xd6R\x17\xf9\x18d\x18\ +\x870\x8c\x85\xa3\x0c\xb3a\x9c7\x85\xa6IR\x0er\ +\x5c\xac\x8c\xa1J|\xad\x1e,\xc4\xbf( \xef\xb4v\ +\xa6\x1e\xa7\x94\xbbO\x9e++K\x85v-\xa5\x9cv\ +\x08\xfdj\x1d7Q\xa0-\xc8a\x12h}\xbb\xf0\xb6\ +\xd4\xe7 D\x85\xbc\xf2RnR\xee.\xe5\xf0\x8ap\ +\xaam\xbel\xbfn\xb0\x86\xff\xc1\xfb\xb5w7\xf7\xf2\ +\xa3\xb5\x00\xff\x80\xfa\x9f\xb4\xbfK\x00\xd4\x88\xb92|\ +\xcf\x06nPJE\x11Q\x90\x83\xe9\x86N\xca\xf4\xf0\ +]\xc5\x80\xad\xd1\x0f$s\x12\xfa\xda\x1c\xc4<\xe0/\ +)\xc32\x81\x8b\x0c\xaa\x962\xa8f\xa5\x0cN\xca\x0a\ +\x86\x10\xda:!.\xe4\xe3\x11\xf6Z\xb2\x95h]\xbe\ +\xa1\x00\xedX\xaa\x0cy\x09\x942\xce\x11\xb3c\x17\x86\ +\xecS\xe3\xe8\xb5\xed\x9f&\x1fY3\x02\xd2\xf5\xd7\x83\ +\xff\x8d\xc3\xf2\xa6\xbbr\x9ax\x08\x7f\x0f\xe8\xa8_\xf8\ +\xfd\xf5\x1fr3:F\xa4pJ\x84\x8e\x08|J\x5c\ +{\x02|\xe1x\xb2\xd6\xab\x0bBD\xcb\x82\xf9\xa2T\ +\x18\xf1\xa9\xb0\x9e\x1f\xa0\xbaM\x9b\xa8\x06\xd4S)\xfb\ +E[^\x22a\xd5&\x01\x90J\xc4\x18+\xd2d\x7f\ +\x1bK\x8d\xd8\x13N\x1c\xb13\xcb\x83\x1f\x07S\xe3[\ +3\x82\xda\x95\x89\x91rv\x9c\xf2\xe3\xf7\xa5!R\xa1\ +3M\xab\xa5k\xb5\x1cU\x01\x08\xe7\xb9\xfe>\xabo\ +\xce\x15\xbd\x96\xb3\xaaJ*\xd7\xe6\x8f)\x0aM\xc4\xb6\ +\xc6\xd1\xd3\xa5If\x9a\xef\x89@\xf0B\xa7\x17\x5c\x18\ +.H\x18\xb9\xda\x87M\x8bh\xf2^F\xa9\xc8vr\ +\x8b\xa6\xa8\xb6\xfd\xf4\x05\x14(o\x95\xe4U\x10>\x89\ +\xda>\x8b\x90D3\xc6\xebvI[\x92\xfe\xa5\xc0d\ +\xcc\xd3\x8f\x1dJ\x8fXD\xce\xe4\x02SY4\x93\x98\ +\xfaR\x06\x0b\x01\xe9X\xed\xa5\xcc\x90c\xf1j.]\ +\xb7\xe5\x8d_\xd1\x19\xde\x8e\x17\x9fD&?\xd5!|\ +y\xa6\x5c\xaf\xd5\xc1\x17\x1d\xbb\xc93\xc3\xe0[\xfaA\ +<\xd6\xbck,\x93\x8a\xb7\x08,7\xfc\x19(\x90q\ +\x9c\x92H\xa0\x18\xc5\xe9-M)Lf1\xa0\xc2a\ +Ta\xad\x84\x5c\x08\x0c\x87\xd6\xf3r\x9b\xe9\xe7z\xad\ +\x0dDuK\xf3Rna\xe9\xc6\x94\xae\xda\xfa\xf2T\ +Hg\xac\xbc]\x18\xe4UcY\xa4T>\x17\xec3\ +d{\xc1\xe8\xa4\xd6\xb9|?X\xaa\xa1\xe5\x8a\xc5\xc3\ +\xd6\xe1R\x1a\xaa\x18\x92\xcf\xf9\xe4sD\xf6,\xea\x99\ +P#\xb4\xef\xad\xf8\x16r\x9e\xaa#\x80\xee\xd4\xe1\xd2\ +\xc0j\xc7\x16\x0f_\xf2`\xfc\xad\xa0\x0ak2\xae\x91\ +\xd6r\x9b\xe2o\x88-!\xb3\x96\xcbKx)[7\ +\x17S\x85t\xea\xfa\xb9\x86r\xfa\xcd#[)AN\ +\xa3\x1cM\x1b\x17h\x1eEoI\xb2n\xc2\x18\x9d\xdc\ +\xb9\x9eX\xd6\x15\x94 !&\x85\xf0\xaco\x18_R\ +\xd6\xde\x9eXUx\xd1 \x93\xe6kfr\xfc\xc5f\ +R\xfe\x13\x0a\xe8$\xbd\xc3\xff\xba\xc1\xfb\xaf\xfe\x02p\ +X[+\ +\x00\x00\x0a\x1d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs6\x22 />\x0a \x0a \x0a\ + \x0a \ + \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04\xb9\ -\x00\ -\x00\x11\xa3x\xda\xddW[o\xdb6\x14~/\xd0\xff\ - (/\x0dfQ$EI\xa4j\xa7\xc0\x10\x14\xd8\ -\xc3^\xb6\x0e{\x1c\x18\x89\xb6\xd5\xc8\xa2A\xd1v\x9c\ -_\xdfC\xcb\x92e\xc7\x0e\xb26-\xb6\xca\x0e\xe2s\ -\xce\xc7\xcb\xf9\xce\x85\xd4\xf8\xc3\xc3\xa2\xf2\xd6\xca4\xa5\ -\xae'>A\xd8\xf7T\x9d\xeb\xa2\xacg\x13\xff\xafO\ -\x1f\x03\xee{\x8d\x95u!+]\xab\x89_k\xff\xc3\ -\xcd\xdb7\xe3f={\xfb\xc6\xf3<\x18^7Y\x91\ -O\xfc\xb9\xb5\xcb,\x0c\x97+S!mfa\x91\x87\ -\xaaR\x0bU\xdb&$\x88\x84\xfe\x00\x9f\x1f\xf0\xb9Q\ -\xd2\x96k\x95\xeb\xc5B\xd7\xcdnh\xdd\x5c\x0d\xd1\xa6\ -\x98\xf6\xf0\xcdf\x836\xd1\x0eE\x84\x10!\xa6!\xa5\ -\x01 \x82f[[\xf9\x10\x9c\x8c\x85}\x9e\x1bK1\ -\xc6!\xd8\x06\xd0\x17\xc2\xb2\x06\xc8Y\xc2_\x8f\xef\x14\ -\xa8\xd1+\x93\xab)\x0cT\xa8V6\xbc\xfdt\xdb\x1b\ -\x03\x8c\x0a[\x0c\xe7)\xeb\xfb&\x97Ku\xb4n\xa7\ -li\x90\x0b\xd5,e\xae\x9a\xb0\xd3\xb7\x13tR6\ -\x0c\x9c\xf7\x8e\xe1(\x96lz\xc7\xc4\xc8\xa3\x98\xe2\x00\ -\xc7\x01&\xd7\xed\x98n#Y\xa1s7\xf1\xc4\x97E\ -\xf1\x0f\x84v\xa6j\xd4\xbbX\x16\x13\x1f\x84\xa4\x95\x06\ -\xd3\x93\xbd\xa6T\x9b_\xf5\xc3\xc4\xc7\x1e\xf6\x18\x87o\ -\xab\x9f\xabr6\xb7\x13\xbf\x937ea\xe7;\xf1\xc6\ -\xc9\xe3\x85\xb2\xb2\x90V\xee\x8c\xed2\x9d\x8a\xd0\x16\x03\ -(\x08c\xf6\xc7\xed\xc7\xbd\x08\x8a<\xcf\xfe\xd6\xe6\xbe\ -\x93\xe1q\x10y\xa7W\xb0\x96\x7fs\xd0\x8f\x8b<\x03\ -\xe2\x17\xd2\xde\x94\x0bp\xc9\x05\xed\x17\xe0y\x1c\x1e\x0c\ -\xc7h\xbb]\xaa\xc1\xbc\xed\xccF\xb51<\x9b\xcdE\ -\xbe(\xdd\xa8\xf0O[V\xd5on\x19\xdf\x0bO\xa7\ --m\xa5nv\xcb\xb6?{_\xc2\xbd3\x9d\xb3\xe1\ -\xd0\xdbq\xd8\xd1\xd1\x8a\x85\x9a6\x03\xae\x9cHp\xb7\ -\xda\xb8\x8f\xa5\x0bd\xe1b\xd2a\xbb\xc4\x80 \xaf\x5c\ -\xe9\x05F[(/\x17C\xec\x9f\x82\xf2\x951\x0eS\ -\xc9\xad2\xc3\xb8\x0f0\x9b\xb2.\xf4&X\xc8\x87r\ -Q>*\xd8\x0b\xb9\x84\xd9N|zq\x02H\x99\xe4\ -\xcc\x0e`\x0cCi$b\xca\x9f\xce\x9b\xc3\xa0\x80\x10\ -\xc8\xed\x08\x93\xf4\x89\xf9Q\xeb\xc5\xc4\x8f\x10K\x93\x04\ -s\xd6\xd9\x9b\xb9\xde\xcc\x8ccm*\xabF\xf9\x03\x1a\ -{\xba\xf8\xa5mvyL\xce-\xb8\xc7\xecs\x9b\xf0\ -3\x0e-!)\x9a\xb9\x04\x18\x90q\xd6\xaa\xa1\xa0!\ -\x8d\x06\xf1\x98\xad\xcaBY])#k\x97z\xe4`\ -\x017\xce\x1a\xf4\xddg\x95\xdb\xb3\xa6;m\x0ae\xfa\ -U\xc8\xb1>\xd7\x95\x86P_%\xbb\xa7\xb3\xb9}u\ -\x96\xe9\xee\xe9Sm)\xed|\x8f\x9aB\xd6\xbb\x03\xa0\ ->\xe2\xd4\x01zOA\xfe\x1d:\xc3\x9c\xf15\xe3\xf3\ -\x80\xf1\xc7~\xa2\xd9\x1eba\xc7\x8d\xabH\xe8\x00\xd2\ -\x9a\xf2\xe1\x1dF$\xe1\x98a\x16\x8d\xb0\xfb\x1cDJ\ -\x11\xe64M\xe8(HPBR\xcab~=\x5c|\ -\xc6\xa3\xde\xc1\xc6n+`\xc2\xed2\xbb\x92\xca}\xde\ -;!\xd8s\x91\x91\xf7\x8d5\xfa^\xf5\xd6V\x0c\xaa\ -\xb2V\x10\x9e\xcc\xe8U]t\xca~P\xdf\x9c\x06L\ -\x0c\xbai\xad!v\xd0\x14\xe0\xf8\xc8s\xbf\xb7\x1fr\ -X\xd70\xbb\xd5&\x80j[K\xbb2j\x10\xfa\x03\ -\x85\x9c\xd0\x83\xd2uGO\xc4\x08\x0b\x22\xd2h\x14'\ -\x08|\xa7,\xf20\xa8\x18KG\xa9@\xa9\x88\xb1H\ -\x0fc^\xe0\xfeN4\xabJej\xad`\xe3\xc5\x05\ -Bv\x09\x9e\x91\xe4Y\x82\x9c\xf2\xb3.\xeb\x0c\x9a\xa2\ -2\x9dv'T\xd0*l\xc6:]!\xa1\x22\x8c\x91\ -\xdb\xcc\xe5\xceS\x82\xfb\x1e\xfa\xfd)\x0e\xa2\x13\x92I\ -\xc4\x90H\x08P\x0at\xc7\xc0-O\xbd\xa0e\x97`\ ->\xda\xf1\x1d\xffD$\x8f\xc3\xd9\x93\xba\xee\xf8\x118\ -\x1d\xd41p\x93 N\x04!\x90nH0\x8a\xb9H\ -\x5c\x02\x12\x9e\xd2\x11\xa1(\xc5q\xca\x04\xfb\xe6\xf2k\ -\x89\x88\x10\xdc\xe6b\xf1\x83\xd98\xcb\x828bA\xa0\ -\x04\xdaQ\x1c'#\x8aQ\x9a\xf0(\x22\x1ea\x88E\ -$J\x05\x1b\xc1\xbd\x0e3\x9a>\xc7\xc2sn\xb3\xaf\ -p\xf8\x94\xd0\x970p\x1c\x89g\xfd'\xe48\x0b\x22\ -D\xa0\x08\x08\x19\xd1\x14\xb18a8\xf68\x02\x97\xa3\ -8\xdey/\xb8\xa0\xaf\x96\x04\x11O8\xfd\x0f$\x01\ -\x89\x8eIH\x11\xc5\x8c\xb8#\x09j\x81r\xce\x85\xe7\ -|'P\x15\xae\x16b\x8c\x09\x89_\xaf\x14(\x13\xe9\ -\x0ffa\xf6\x9d\x8f\xd1\x93S\xfb\xd0\x89\xcf]\x08p\ -\x02/^I\xc2\xf6\x17\x82^\xa4\x08J1\x8d\xe0\x05\ -\x07R\x10\x03K\x82]_8\xa0\xff\xb7\x9d\xfa\x9bn\ -\x01\xc3\xb3.\xf9\x8a\xb3\xf2\xc2\xa1{\xe9\x88\xfeIH\ -\xfe\x97\xb7\x80\xa3\x0bE\x90\xbe:\xcd\xed!=v\xef\ -\xb0\xf0\xff\x0b\x9c\xe0R4\ -\x00\x00\x12\xd3\ +:4;stroke-lineca\ +p:round;stroke-l\ +inejoin:round;st\ +roke-miterlimit:\ +4;stroke-dasharr\ +ay:none;stroke-o\ +pacity:1;paint-o\ +rder:normal\x22\x0a \ + id=\x22path833-\ +6\x22\x0a cx=\x2295\ +.063919\x22\x0a \ +cy=\x22128.71994\x22\x0a \ + rx=\x228.0538\ +263\x22\x0a ry=\x22\ +7.4785528\x22 />\x0a \ +\x0a\x0a\ +\x00\x00\x09n\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a\ - \x0a\x0a\ +\x0a\x0a \x0a \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0a \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \ +?\x0a \ +\x0d\x0a <\ -path\x0d\x0a s\ -tyle=\x22fill:#ff2a\ -2a;fill-opacity:\ -1;stroke:#999999\ +oke-width:4;stro\ +ke-linecap:round\ +;stroke-linejoin\ +:miter;stroke-mi\ +terlimit:4;strok\ +e-dasharray:none\ ;stroke-opacity:\ -1\x22\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - d=\x22m -28\ -.519885,1068.768\ -8 c 0.90506,1.22\ -12 1.246811,2.67\ -32 1.10285,4.074\ -3 l 15.161239,6.\ -5005 c 0.296039,\ --0.3564 0.63195,\ --0.6925 1.01758,\ --0.9783 0.38563,\ --0.2858 0.804907\ -,-0.5094 1.23194\ -5,-0.689 l -1.78\ -3709,-16.2284 c \ --1.440516,-0.264\ -2 -2.790128,-1.0\ -438 -3.730887,-2\ -.3132 -1.970903,\ --2.6593 -1.41148\ -,-6.4222 1.24778\ -4,-8.3931 2.6592\ -63,-1.9709 6.422\ -1306,-1.4115 8.3\ -930326,1.2478 1.\ -9709022,2.6592 1\ -.4114784,6.4221 \ --1.247785,8.393 \ --0.385631,0.2858\ - -0.804907,0.509\ -5 -1.231945,0.68\ -91 l 1.783709,16\ -.2283 c 1.440516\ -5,0.2642 2.79012\ -83,1.0439 3.7308\ -88,2.3133 1.9709\ -0236,2.6593 1.41\ -15119,6.4221 -1.\ -2477515,8.393 -2\ -.6592635,1.9709 \ --6.4221301,1.411\ -5 -8.3930331,-1.\ -2478 -0.940792,-\ -1.2694 -1.294168\ -,-2.7874 -1.1278\ -76,-4.2425 l -15\ -.161273,-6.5003 \ -c -0.277881,0.33\ -04 -0.595667,0.6\ -406 -0.957189,0.\ -9086 -2.586939,1\ -.9173 -6.237918,\ -1.3745 -8.155238\ -,-1.2124 -1.9173\ -19,-2.587 -1.374\ -518,-6.238 1.212\ -422,-8.1553 2.58\ -6939,-1.9173 6.2\ -37918,-1.3745 8.\ -155237,1.2124 z\x22\ -\x0d\x0a id=\x22p\ -ath2-3\x22 />\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09~\ +1\x22\x0a d=\x22M 5\ +.4295698,1035.06\ +33 H 42.300138\x22\x0a\ + id=\x22path8\ +70\x22\x0a inksc\ +ape:connector-cu\ +rvature=\x220\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x0c_\ +\x00\ +\x00y\xa0x\xda\xed][\x8f\xdb6\x16~\xcf\xaf0\ +\xdc\x97\x04k\xd3\xe4!yx\xe8\xcc\xa4\xd8EQ\xb4\ +@\xf7e\xb7{})\x14[3\xe3\xc6c\x0dd\xcd\ +L\x92_\xbf\x87\xf2M\x12%w\xd2N7h@\x03\ +\x93X$%Q\x1f\xcf\xf5#E_|\xfd\xfev=\ +z\xc8\xcb\xed\xaa\xd8\x5c\x8e\x95\x90\xe3Q\xbeY\x14\xcb\ +\xd5\xe6\xfar\xfc\x8f\x1f\xbf\x9d\xd2x\xb4\xad\xb2\xcd2\ +[\x17\x9b\xfcr\xbc)\xc6_\xbfyq\xb1}\xb8~\ +1\x1a\x8d\xf8\xe4\xcdv\xbe\x5c\x5c\x8eo\xaa\xean>\ +\x9b\xdd\xdd\x97kQ\x94\xd7\xb3\xe5b\x96\xaf\xf3\xdb|\ +SmgJ\xa8\xd9\xf8\xd4|qj\xbe(\xf3\xacZ\ +=\xe4\x8b\xe2\xf6\xb6\xd8l\xeb37\xdb\xaf\x1a\x8d\xcb\ +\xe5\xd5\xb1\xf5\xe3\xe3\xa3x\xd4u#\xe5\xbd\x9fI\x98\ +\x01L\xb9\xc5t\xfbaSe\xef\xa7\xedS\xb9\x8f}\ +\xa7\x82\x94r\xc6u\xa7\x96Ok5\xdf2*w\xfc\ +wl~(\x10\xdb\xe2\xbe\x5c\xe4W|^.6y\ +5\xfb\xe6\xc7o\x8e\x95S)\x96\xd5\xb2q\x99\xd5\xe6\ +\xddv\x91\xdd\xe5\xad\xbb\x1e\x0aw\x08d\xb7\xf9\xf6.\ +[\xe4\xdb\xd9\xa1\xbc>\xffq\xb5\xacn.\xc7\x86\xea\ +\xa3\x9b|u}S\x1d\x0f\x1fV\xf9\xe3_\x8a\xf7\x97\ +c9\x92#C\xa3}\xf1jy9\xe6\xc7\x80]\x9b\ +\xd38\xab]\xed\xfe\xf2\xf3c\x8d\x14\x1e\x84\x1d\xbd\x04\ +\x892_\xa8+\x7f5\x19\x81\x049\x95f*\xe9U\ +}\xd6\xe1\xd1\xe6\xcbb\x11\xfaz9\xbe\xbb\xfa\xa9\xda\ +\xfe\xb4X\xdfo\xab\xbc\x14\x01\xb67\xdc\xf0\xe26\xaf\ +\xb2eVe\xe1\xa4]W\x0e%\x0a\xea\x16\xdc\x86\x87\ +o\xfe\xb7o\xbe\xdd\x1d\xf1\xf1b1\xffWQ\xbe\xdb\ +\x1f\xf2'4\xc8\xde\x16\xf7\xfc\xa8\xe37\xc7\xe2\x8b\xe5\ +b\xce\x80\xdff\xd5\x9b\xd5mv\x9d\x87\xb1\xfa\x13\x03\ +|1;U\xb4\x1aW\x1f\xee\xf2\xd3Ew\x97-\xf3\ +\xdd\xc8\xf5\x8a\xefrq\xbb\x0a'\xcd\xfe^\xad\xd6\xeb\ +\xef\xc3M\xc6\xa3Y\xe7\xa2\xabj\x9d\x9f\x0a/f\xfb\ +\xde\xef\x9fm\xd6x\xb8\x8b\xd9\xe1\xd9\xeb\xa3e~\xb5\ +=\xc1\x12\x8e\x94<@r\x9b\x95\xef\xf2\xf2p\xa3\xe3\ +\x18m\xabb\xf1.\xb4\xfesY\x16\x8f\xea\x07V\xcb\ +\xb2\x1a\x1f\x9a\x15\xe5\x8a\x95\xedr\x9c\xddW\xc5\xb1\xb0\ +\xcc\xaf\xfe\x13\xc6T6K\xfe\xdd.\x19\xbc\xe2\xb6\xfa\ +\xb0fh\x0a\x96\x8d\xabu\xf18\x7fXmWo\xd7\ +\xf98\xea\xd8j[w\xedr\x5c\x95\xf7\xf9q\x8c.\ +\xee\xb2\xea\xe6\x84x\xb8M(1\xd6\xd3\xf8T\xcc\xa5\ +\x7f\x1dqw&\xfc7\xfaad\xf9\xdb\xd4\xd6_\xa7\ +\x8a\x05\xb1Q\xbc+=4\xfd8j\x5cd\xdf\xd3+\ +\x1e\xa7iy\xbf\xce\xe7\xf9C\xbe)\x96\xcb\xd7\xdb\xaa\ +,\xde\xe5\xf3\xafd\xfd\xd9\x1fNk=\x9a\xb3\xad\xbb\ +\xab\x1a\x17\xa9\xcal\xb3\x0d\x92\xc3\x0a\xb3\xc8\xd6\xf9K\ +)\xe8\xd5\xaet\x9dU\xf9\xcb]w^\x1de\x80\x07\ +\xb4\x1e\xa7\xdd\xe0\x86\x11\xac\xbf\x1d\x95#h\xc62h\ +\xe5\xee\x16w,?\x8bb]\x94\x97\xe3\xaf\xae\xea\xcf\ +\xfe\xdeo\x8br\x99\x97\x87*\xac?\xad\xaa\x82M\x01\ +K\x22k\xed\xbe\xb8x\xfbs\xbe\xa8\xaab\x9ds\xe7\ +\x82\xf4\xaa\xc3h^\x97\xfch}\xe5\xf7\xabe\xdeW\ +q\x1c\xc3\xd0\xbd\xe3\x8dzk\xb77\xd9\xb2x\xbc\x1c\ +C\xb7\xf2q\xb5\xe1\x8a\xe9\xde:)24\xd0\xe2`\ +\xb1\x94T\xc7&<\xfeG\xa0\x0e\x85\xdb\x9b\xe21<\ +\x09\x8fh\xb6\xde\xe6\xdd\xab},\x0a\x1e#-\x8c\xb5\ +\x0e\xbc\xeeV/\xd8\x06N\x09\x04\x81\x96\x18U\xf2\xd3\ +\x11\x0a\x00k\xc1\x0dt\x93\xcfwC\x0f\xc9\xa7\x83\x1d\ +\xa8\xbb\xcd\xde\xafnW\x1f\xf3\xe5i\xa4N\xf7\xbd/\ +KV\xcf\xe9:\xfb\x90\xf30_\x1bTv/I\x17\ +\xd7'(\xae\x8d\xb2G3p\xdd\xd4\xd0kc\x8d\xf9\ +e\xdd\xd22\xd2\xad\x89\x1c}\x17\x1c\xc2?\xc3?\xdf\ +\xb1s\xf8o\xa3\xc9\xa9\x83\xc5f\xc3BU\x94S\xee\ +\xeaCV\xdd\x97\xf9I\x0e::6\xdfp(\xd0\xb0\ +\x85\xa7\x9e\xee\xfb\xea\xa5\xeaW,\xb6\xca\xe5\xea\xfdK\ +V=\xa7=x3\xe1\xdeMNG\xca\x0b-=\x90\ +\x9b(\x14\xda\xa14\xf8\xaai\xf3\xdbO\xfd)\xbdo\ +`\xa4\x9cjU\x04\xaf4\x9aZ-\x9c$\x8341\ +\xfc\xc5)\x8bv\xa4\xa4pZ\xf2\xd1dJ\xc2h\x02\ +\xe5\xb1uj\x13\x13\xb61Yf\xcc\xeba#\x04\x8b\ +L\xda\xacm\x84@8\xaf\x8d\xf3H\x87\xf2\xf5\x8a\x9f\ +$\xbb\x9b\xbf\xbd\xaf\xaaf\xd9\xcf\xc5j3g\x8f\x94\ +\x97\x87\xd2\xfa`\xcd\x22W\xcd\xcd\xa1l\x99\xb1\x9a\x96\ +e\xf6\xa1\x1e\xa3C\xe9^\xb1\xe7\xaa\xed\xc0\x9e\x09N\ +\xdd\x07\xa7\x11`\x8cE\x9cL\x95\x11\xdei\xe3\xed\x88\ +G\xd7\x92\x92~R\x7f\x91\x9e \xa1\x19\xa1i{\xd0\ +\xd4J\x90\x93\x80,\x88\xca\x09\x0b\x06\xa4\x1bM=\x87\ +jV\xa3\x9f(\xc5r\xea\x14#\xfb\x07\xc7\xb3\xd5\xfb\ +\xa3\x1f-\xd8uq\x1c\xc6a\xfabq\x1e\xf2\x81s\ +\x9eaT\x5c\xcf\xa8\x18\x86\x87\x00\xb5\x99L\xd9\x19I\ +d\x896#\x8e\x12\x9c\xd5\xca\xe1\xa4\xb6\x1e\xe0\xbf$\ +\x11\xcf\xd7\xeb\xd5\xdd\xb6\x1dF\x7f\x08\xaeXZ\xefX\ +<[\xcfZ\xbe\x0f5\xcajr\xd0\x16\xea\xe0\x84\xd9\ +\x07+\xae\x83\xf6\xa0\xd7\xbe\xdbZ\xa1\x01\xa4v\x03\x83\ +\xa1q\x8aS\xdd\x87\xeb\xb1\xdb\xafw\x08k\xb7 \xb7\ +;\x98\xb6\xebz\x01o\x22pD\x9b\x94\x07mu\x84\ +lY\xdco\x96\xbf7\xb2\xc0\xa6\xd3\x90\xd2}\xc8J\ +d\xd1C\x8c\x90u\xc2x\x8d`1F\x16\xbc\xe0\x8b\ +\xa1V\xc3\xc8\xaa\xa7\xe0\xda\x94\xdc_\x85\xab\x16Z\x91\ +W\x00\xee\xf3\xe0\xca\xde\xc9y\xab\xb4\x89p5\xc2(\ +\xa5\xbc\x8a%6\x98^@\xcb\x91c\x0c\xac\x06\x81\x06\ +\xad\x833\x22\xfb4`\x97&\xcb~\x13\xb0\xe4\xa5G\ +\x06\xf7\xf3\x00\xcb\x86\x90$i\xd0=\x02k\x89MW\ +\x1f\xaeFP\x10X\xdfc\x0a4+\x80dK1\x88\ +\xebS\xc5\x95\xe87\xa1j\xc8\xb3\xae\xa1\xfb\x5c\xa8\x92\ +d\xec4\xf5\xa0\xca1\x80\x92*F\x95\xcf!k\xc9\ +\xf7\x98\x01\x13r'i\xcd\x19i\x95\xff\x17\xf3\x1a\xcc\ +\x80\xf6D\x1e~O\x5c/f\xd7\x87\x8c\xfd\xba\x9bZ\ +5r\x93F\xa6/\xa4D\x07\xa4'S\xb0\x0c#g\ +\x99\xfe\xd5\xb8\x9d\x8d)\xce\xc6\x8eL@'S\xc3\x86\ +\xf5\xe8\xbd\x81\x14V\x81\xe1\x94\xe7\x94\xdd\x5c\x94\x1c\x8c\ +\xbch\x8d\xba\x12(%G\x10M\x95\x09\xc2\xc0\x11 \ +g*-\x9d\xa8%\xc1i\xadm\xb3\xf4\x90o#?\ +\x83t\xce7\xbd\xc8>[\xd7>\x5cL\xab\xa6(\x84\ +\x87\x08\xbd1\xb6%<\xed\xd8E\xa1>\x86&\x9d\xc3\ +\xfd\xe0J\xc1\xdaNV\x22t#\x95\xd6\xd8>\xdb\x88\ +\xbf\xbe\xcbV\x9ca\xd7\x94\xc9|G\xcdlG\xa1\xb7\ +\xa3]\xcb\x8e\x9c6\x05\xa4\x0f{\x8e\xe6\xbcV=\xd8\ +\x93\xd4\x8a\xda\xd8\x1b!9\xf8\x06i{\xc1w\x1c\xa3\ +\xa3\xc3\x18|v\xc7\xa0\x8cn\xe5\xa3M\xf0[AN\ +'t\xac\xfd\xc4\xa0bq\xe8\xe9\x11\x8cu\xf63`\ +\xbf\x09\xec\xeb\xba\x89\xefbU.\xd6\xf9\x8b_g\xa7\ +\xcfX\x0fN\x7f\x08\xd1\xe8\xcf(`\xbbF\xb5\x9c\x8d\ +cB\x86Z66\x18_\xce\xd5\x14\x923\xcd\xa1\x0d\ +\xf6:\x94{N\xf1\x9a\xed\xcb@$%\x18k\x18[\ +\xbaP\x03\xc9\xb19'_\x1e\xba@J\x81\x8e\x931\ +\x97\x80\xec\x07\x12c \xad\xf4\xadHj/\x90\x8e\xe3\ +\x07\xa3\x12\x8e\xfd8\xba.\x8e\x1c\xe1zc[.c\ +\x0f$\x87\x8e\x06\x93@\x0e\x00ic\x13i\x91\x83B\ +\xd3\x05\x925\x1e\x893\xb0\x04\xe4\x80\x89\xb4=\xaaM\ +\xca\xc9\x08I\x16U4F'$\x87ld\xe4\xb69\ +\xc4\x03\xb2-\x1ep/\x93\xd6*\x84d%\x07\x90\xf4\ +] \xad0\xce\x1a\x9b\xbc\xcd\xa7\xe1\xa8bo\x83\x88\ +d\xa9\x0b\xa4aon\xc8\xfb\x04d?\x90=\x01\xb9\ +\x09\x13*\x18\x03\x89\xc6\xdb\x14G\x0e\xc6?2\xb6\x91\ +Jr\x1a\xac:Hz\x81\xd6Q+\x01N@6M\ +d7\xb5\xf1\x1c\xe7H-\xc1\xc6\xce\x06A{\xb4\x09\ +\xc9\x01\xb7-c\xe5\xae\x89~\xdfA\x92\x84\xd7\x1c\xff\ +\xf8gQ\xee>\xca\xfe\x8f\x1f\x00u\xd3D\xad\x85\x0e\ +f\xd2\xc4P\x92v\xd4\xa2\xc4\x12\x94\xcd\xa8<\xf2\xdd\ +\xda\x08v\xd0.\xca\x14\x89\x13\xc5\x00q\x92\xca!\xa9\ +\x9cR\x0c%\x12 A\xe4sl\x98\x05U\x90\xa0\x1c\ +\xf0\xde\x11\x7f\xa1-\xbb\x1dG\x9a\x22(\xc1zO\xe8\ +\x13\x94\x03\xfcE\x94\xe4\xb0\xadt\x06@Q\xccMZ\ +\xce\x15]\x92\xcaA\x06#\x8a\xcfY\xc393\xe4\xe4\ +;\xce\x18\xb5\x0d\xbe=a9\xe4\xc2\xa7\xddpH\xa3\ +\x00\x19\x05C,\x95\xdaXe\x12\x92C\x01z,\x94\ +\x8e\x93CrN'\xb7\xf3\x894F4\x8f\xc3n\x87\ +\x8cT\xce\xc7\xc9\x0ex2*\xb9\x9d!\x22#\xf6\xe0\ +a\x06\xc2Y\x1d#\xc9\xb9\x8e\x92\x98\x90\x1cb2\xa2\ +9\x88`)]\xe0\x85:X:\xc1\x96R{k\x13\ +\x96CdF\x1c\x0d)\xce\xb65\x82\x89\xfd\x8eQ\xce\ +P\xc2r\x90\xce\x88\x1dOX\xba\x05\x14-\x1f@\xe1\ +\x02\xd1\xe1\x93\xe39\x83e\x8cf\x98u\x00\x87\x18%\ +\xe2VJ\xed(Y\xccshF\xb98\x09V\xf3\xf6\ +\xba\xed\xbd\xff\xd1\x1c`\xfa\x14_\x9eC\xb3'\x87D\ +\xad\x9dT\xf1\xdc-g\xe3\xa65;\x9e\xd0\xec\xa2\xe9\ +bM\x97\xe0\xdb\xafc\xec\xd1\x04\x09N%4\xcf\xa1\ +\xa9\xe3\xe8\x88\xc8\xab\x88\x0b\x0e\x93\x8f\xceA\xcb;\xfd\ +J4\xfb\xd7\x16\x7f\x01\xb4z\xbc\xfeJ\x09R\x9et\ +\x97\x0d\x06\xcba\x13\xcb\xa6K`\x0e\x12\xeb}\xd3\xe2\ +\xdaqL\x891\x98FI'!\x819H\xad\xc7S\ +\xe3Z(\x94&J(\x01E\x98\x19\xb7I2\x87\xc9\ +\xf5x\xe1Kx#\xd6\xa2\xa4\x18\xcc0\xabFI2\ +\x87\xe9\xf5\xbe\xc5\xbf\xa08\x0c\xea\xbas\xa8\xdf\x8d@\ +L\x92y\x86`\xef3\x9a\xa09}\x8c\xd0\xe4\x80^\ +\x1ac\x12\x9ag(\xf6>E\xaf\x97\x0a\xfa\xd8\x05\x01\ +\xa2T\x98\xd0\x1c\xa4\xd9\xa7\xa6\x0b&\x0a\x05hMr\ +A\x9fN\xb4\xc7+\xd4\x8d\xd0\xca\xf9(\xd0\xf4a\xaf\ +\x86\xf6+\xaf\x09\xcb6\xd3\x1e\x91\x1d\xec\x81\xa4\xb3:\ +J\xcf\x19LM\x1e\xa5J`\x0e\x93\xed\xb1\x9a\x87I\ +^\x90*Rs\x96X\xef\xc8\xa7\xe0\xe8\x0c\xdd\x1e\xbf\ +@\x11\x88\xf50K\x11GG\x1a\xb5\xa7$\x9b\xe7\xc8\ +\x8e\x9e5\x84\x9c\x87\xa3\xea\x92\x1d\xa0\x05\xba\xb0\xc7M\ +B\xf3\x1c\xe5\x1e\xc5\xee$\xc09\xb0\xd4\x13\x1fI\x05\ +\xf4\x1cT\xdc\x17\x8c'\xc5\xfc\x11\x86M=H\xba\x1e\ +\xb7NJR\x92\xcf\xb3\xb4{\x9c\x0d\x81PJ\x19\xd7\ +\x9d\xfa\xd5Rx\x0e\x93|\x82\xf3\x1c\xef\x1e\x99\xcf\xb0\ +\xc1\x80\xeb\xec\xf5\xb5\x87S\x19\x0f\xc9\x17\x9d%\xdec\ +m7Bi\xc6\xd3\xc4p\x1aM\x96R\x10?\xc4|\ +t\xd9M`=\x07\x22\x19\xc5\x9cRH\x0b:\xa5\x96\ +\xc3\xbc{W\xc7C(Dhl4W\xc9\xca\xaf\xc1\ +%ns\x98u\xc7\x18J\x83\xdeD\x8b4Y*Q\ +u\xf6OJP\xb68\xf7\xae#\x0f\xcc\xbaF\x8b6\ +\x96J\xf4\xd6\xda\x04\xe5 \xe3\xde\xcd(A\x09K\xd4\ +3\xad\x06\xc2\x84=\xd1\x92\xad\x1c\xe6\xdbm\xac\xe1\xd6\ +(\x87:a\xf9\xc9l{\x977\x02#<\x11F\x9b\ +\x97\xb0\xbc\x1a\x0e\x93\x12\xa59\xcc\xb5w\xc9ap\x22\ +\xcc\x9c\xc5\x84f\xd8\x98\x08\x91RZ>\xc8\xb4c\xec\ +x\xa4T\xc6`\xcc\x18\x91\xd3\xdaS\x82r\x88h\xb7\ +q\x90\xce\xb9\x0ey\x15\x13\xc3\xc6\x822\x09\xcaa\x9a\ +=\x12K+P{\x17\xaf\x81s\x82\x03NH\xa9\xf8\ +9\x92\xbd\xcbbr<\xee@j\x84\x1e\xcfC(m\ +\xa2\x89\x86y\x0d\x17+9ho\x1d\xc5\x82\xe9\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ +no\x22?>\x0a\x0a\ +\x0a\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x09N\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x0dD\ +onnector-curvatu\ +re=\x220\x22 />\x0a\ +\x0a\ +\x00\x00\x0dN\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a\ - \x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + id=\x22path2\x22\x0a \ + fill=\x22none\x22 /\ +>\x0a \x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0a \x0d\x0a B\ -us\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xa3\ -\x00\ -\x00&\xfax\xda\xdd\x9a\xed\x8f\xa3\xb8\x19\xc0\xbf\x9ft\ -\xff\x03e\xbf\xec\xaa\xc1\xf8\xf1\xbb\xd3dO\xea\xadN\ -\xba\xaf\xedU\xfdX\x11 \x19\xba\x04\x22 \x93\x99\xfb\ -\xeb\xfb\x18B\x02C2\xda\xdbI5i\x99\x1d\xed`\ -?6\xf6\xcf\xcf\x9b\x0d\x8b\x9f\x9e\xb6\xb9\xf7\x98Vu\ -V\x16K\x1f\x08\xf5\xbd\xb4\x88\xcb$+6K\xff\x1f\ -\xbf\xfd\x12\x18\xdf\xab\x9b\xa8H\xa2\xbc,\xd2\xa5_\x94\ -\xfeO\x9f\x7f\xfca\xf1\xa7 \xf0~\xae\xd2\xa8I\x13\ -\xef\x905\x0f\xde\xaf\xc5\xd7:\x8ev\xa9\xf7\xf1\xa1i\ -v\xf30<\x1c\x0e$;\x16\x92\xb2\xda\x84\x9f\xbc \ -\xc0\xa6\xd8\xb8~\xdc\xfc\xf8\x83\xe7y\xf8\xec\xa2\x9e'\ -\xf1\xd2?\xb6\xd9\xed\xab\xbc\x95M\xe20\xcd\xd3mZ\ -4u\x08\x04B\x7f \x1f\x9f\xe5c7\x82\xec1\x8d\ -\xcb\xed\xb6,\xea\xb6iQ\x7f\x18JW\xc9\xfa$\xee\ -\x86t\xe0\xad\x14XkC\xcaB\xc6\x02\x94\x08\xea\xe7\ -\xa2\x89\x9e\x82\x17mq\x9c\x97\xda2Ji\x88u\x03\ -\xd1o\x14\x9b\xd7Hv\x87\xbf'\xf9\xbe\x80\xd4\xe5\xbe\ -\x8a\xd356LI\x916\xe1\x97\xdf\xbe\x9c*\x03J\ -\x92&\x19\xf6\xd3\x83\x1d=wD\xbb\x88\xb6i\xbd\x8b\ -\xe2\xb4\x0e\xfb\xf2\xae\x83C\x964\x0fK_\x98\xee\xf6\ -!\xcd6\x0f\xcd\xf9\xfe1K\x0f\x7f-\x9f\x96>\xf5\ -\xa8'\x0c\xfe#\xd4]\xd0Ug\xc9\xd2\xc79\xb1\xa3\ -\xf0Yq\xfa\xfa\xe3\xb3\xe6\xa7*J,#\xdc\xfb\xc8\ -\x04\x95R\xa8\x99\xc7(\x98\x80\xf2\x00\xe0S\xd7\xa6\x9f\ -\xe6<)c7\xec\xa5\x1f\x97yY\xfdkSe\x09\ -q\x00?;\xb1E\x92\xae\xebV\xbe\x1b\x85\xbb\x15\xbe\ -\x17v\x95\xa7>\x5c\x07\x89\x9b\xc4@t\x15\xd5\xc7\xc9\ -{\xde.\xda\xa4m\xf7K\xff\xc3\xba\xbd\xfa\x9aUY\ -%i\xd5\xd7\xa9\xf6\x1a\xd7\x95\xc83k\x9e;;\xe9\ -\xfb\xef'\xec:>\x09\xd0+\x02\xf5C\x94\x94\x87\xa5\ -\xcf&\xb5\xbf\x97\xe5\x16;f\x04\x844\x9cO\xeac\ -\x5c\x12\x90\x843!5Lk\xf1\x99L\x13\x03\x9a\x82\ -\x98\xd4\x22\xd7\xbd\xb3\xa5`_d\x0d\xea\xea\xeei\xda\ -\xc1\xbe\xaa\x9cD\x1e=\xa78\xfd\x0d\x17\xe2\xf4\x94\xfa\ -\xa1<\xb8\xb5X\xfa\xeb(?\x93\xbc\xde\xd9!+p\ -\x96\xc1Q\xd3\xc0(~M\xa4\xd7>\xa0L^\x93\xc1\ -\x89K}\xad\xb2\x9d\xf7\xb5\xcam\xf4\x94m\xb3\xdfS\ -\x1c9\x9c4e\x9b6Q\x125\xd1@?\xfa\x22\xdd\ -i\x1a\x0a\xa1O\x98\xff\xed\xcb/\xc7[,\x88\xe3\xf9\ -?\xcb\xeak\x7f\x8f\x97\x13\x89V\xe5\x1eG\xef\x7f>\ -\x97/\x92x\x8eV\xbc\x8d\x9a\xcf\xd9\x16W\xdcy\x80\ -?\xa3\xd1.\xc2s\xc5X\xbay\xde\xa5\x83~\xbb\x9e\ -\xab\xb4s\x08\x17]c\x12o3\xd7*\xfc{\x93\xe5\ -\xf9\xaf\xee1\xfd\xf4\x06\xddfM\x9e\x0eJ\x17\xe1q\ -\x0e\xfd\x1c\xc3\xe1$\x17a\x0f\xa1\xbb\xdd\xbcD\x9aG\ -\xab4_\xfa?G\xbb\xc8\x9b\xea\xdf\xa6*\xf7\xbbm\ -\x99\xe0x[\x0d\xf2\x07t\xdb\x82S\x93\xa6\x8a\x8a\xda\ -qX\xfa\xed\x9f9\x86\x90\x8ft\x16\x00\xa5\x82p\xc5\ -\xd8\xa7\xd3\x22lN\x13r\xdd\x8cTr\xd4\x0f\x22\xad\ -\xb2\xa7\x8f\x94\x18\xa5@q\xc9g\xd4\xfd\x9co\x19Q\ -Rk\xa3\xed\x0c\xb8&\xa0\x19\xef]O\xab\xde\xcds\ -\x8e\xe3^#\xca\xf9\xd1%\xfc\xa5n\xaa\xf2k:\xff\ - \x12\xf7s^\xdf\xc5.j\x1e\x06\x8bu\xb6\x9f\xb2\ -(\xd2\xb8)\xab\x00-\xe91j\xf6\x15vI\xfd\xa1\ -(\xce\xc1\xb5\x16\xec\xac\xcd\xeer\xfa\xe7\xa1\xddkF\ -\x15\xc3\x11R\xfc\x9b\x09\x90\x1e\xa0\xe7\x14\xda\x081\x0b\ -8Q\x0c`\xd8\xea\xd2\xa0\xddMP\xed\xf3t\x9e>\ -\xa6E\x99$\xa7i\xc4\xca\xb9\xf0\xe3mg\x97s\xd7\ -\xbb\xb2\xa0\xb4\xda=\xf55y\x86\x93\x88v\xf3\xd5\xbe\ -i\x86e\xff.\xb3b\x8e:\x97V}\xe9\xd1\xd3\xcd\ -a\xa8x\xb7\xa1#'t\x98[KC\xadrt4\ -\xb1\xa8\x09\x1e'\x94\x013|\x16\x18\xa2\x04\xb5\xdf\x0f\ -g\xbd\xb6\xab)\x1c\x83\x8b\xc15\xd3w\x06\x07&p\ -\x14\xa1\xd2hi%\xc2a\x9c\x80\x92\xcc\xd3\x84\xe1\x8a\ -+)g\x181\xb45\xdf\x0f\x87\xd2D\x9c\xec\xe1\x08\ -\x07\xfe8\x91\xf6&Gg\xdc\xccE_\x96D\x18\x0d\ -\xab*z\x9e\x17\x98Z\xfe\xf7\xd9\x9d\xa3\xd0Y\xb1\x10\ -\x14Hc\x19\xb2\x13\x9ah\x84\xe7a^\x82\xb6(5\ -\x07tJDi\xfd\xfd\xf0\x14s\xba55;.\x05\ -\x03s_\x9a\xa5\xe0\x92\xd9\xa1\xdb\xb4\xda\x99\x1d7D\ -+\x81t$\x11\xca\x18ng\x8a0F\xdf\xa0Y+\ -\xbd^\x0b51;t}\x96\xdd\x9dO\xb2\x17\xcc\x8e\ -\xa3\x1b\x92\xd2yl\x8eP\xa4\xf5\x80\xe3\xdaZn,\ -\xcc\x80X\xab\xdf\xe4\x93\xf4\xfa\x92\xc3\x96\xf8\x1c\xe0\xf7\ -\x05G_\x08g\x08\x04\x942\xad\xe6PLi\x19x\ -\x92\x00\x005\x1a\x15G\xa07\x7f\x8bK\x1a\x84\xe8\x13\ -\x1b-85\x82\xc2\x9d\xb1\x99\x063\x81\xeb\x08RQ\ -\xe8\xacJR-<\x8c\xfeV\xf2\xd6\xe3\xa0\x09\xd0\xb7\ -\xd0\x89\xd5z\xcd\xcd\xc4\xac8U\x1a\xb4\xbd3\x9f3\ -5+\xcc\xcf\x98\x11\xc0\x84\x0b\xf5\x82Ha-\x9a\x1a\ -\xfan\xc6\xcc\xcceD\x94\xc3\xad\xe1X\xc0\xb4\xd0\xde\ -\x9b\xe6L\xfd\xb1`D\x1at9.\xd0c\xd4\xd7\x5c\ -x\x81%NT2\x97#r\xa9\xe0-.g\xa5\xa7\ -.G[*\xf0qw\x16\xac$\xbf\xe4r\xa8\xb1\xb4\ -U\x1c\x0c\xebhb^\xecQ\xc2)\xd5\x80\x194E\ -NLy\xc2%F\x00\x88K\x13\x09\x98F\xbe,x\ -\x8b[r\xe1~\xa2[\xcc`<\x90\xe2\xbe\xf8\x8d3\ -\xc2.\xd8\x03\xba\x22.Y\x9bc[\xdc0\x19\xed\x19\ -\x1c\xbeT\x1a\xf7O\xa0\xc7\xc8o\x81Fc\x8a*\x19\ -\xbd\xb7h\x06\xc1T\xb98#\x06\xf3D\xe5\xf2D\x0e\ -DhT%T)\x03\x0a\xf3F\xa7:\x16y\xbd\xc5\ -\xf4Lr\xc1\xf48\xe5\x9c[v;>qV\xc5\xf9\ -\xf0\xac\xa1rGY\xa3\x10\xe5\x0e\x92p+n\x08\x87\ -\xf16\xd5\x9d?1\xe7\x90\xa55\xe6\x12:\x1c\xab\xfa\ -&\x04\xa7\xb1\xbdJD\xb1\x97D\xe0\x1d@`J\x07\ -\xdcN@p\x85\xce\x02=\x8b\xbc\x06\x22\xe07C\x81\ -i2&\x83\xef\x8f\x02C\x0eW\xa0^\xa2\x10m\xd2\ -k\xc6\xc9\xee\x08\xc5\xed\xb4\xc2\xae\x9c^\xbc?\x0a\xee\ -\xfc\xa3\xe6\x13\x14\x18d\xa8\xe0\x82_E\xa1oh \ -\xd3\x13\x9d\xf7@\xe1v\xcd\x98\xd4O<\x85ABV\ -Kv\x15\x85\xbc\x19\x8aK\xbb\xecwA!\xdd\xa1\x11\ -\xbcD\x81Y,s\xe9\xfeu\x14\x5c\xfe\xffY\x08\xee\ -\xf6$\xc8\x97,0G\xb3\x0a\xf5\xc5\x5cw\x16\xec\x86\ -&2Mh\xdf\xc5q2\xdc\xd2\x98\x89^\x08\xdc\xe8\ -\xe1>g\x9c\xe7\x8fX\xd8\x9b\xa1\xa0\xd4\x9d\xb6\xdcA\ -8eDY5\x89!\x80)\x95\xb0\xc0\xae\xab\x05\xdc\ -\x0cEd\xef\xc3qb\x8e\x8d\x8bo'\x8e\x93\xe2\x86\ -DJz=\xb3\x80\x1bF\x11\x87\xe2\x1e\xf4\x02M\x84\ -3;q\x17\x98j\x1bj\xc48\xbc\xbc\x80Ao\x08\ -\xc3$\xf7\x00\x83\xbbwA|\x0a\x03mG\x08x\xc5\ -Fn\xe80\xee%\xbd\xe0\x9a\x18\xc1&F\x82\xb2\x1a\ -\x98f\xaf\xb0\xe07d\x91\xde\xc5^\x84YBA^\ -\xca/\x04H\xa5\xec+0\xd4\xffJ$\xb9\xd5\x0e~\ -<\xe3n\x0foq\xcf\xa6\xbbw=\xdc\x10cAx\ -\x81;FS\x0a\xf7\xf5\x81$\x0c\xc4k{\xf8\xd6 \ -\xfe\x98\xc5\xdc|\x0f\xbf\x087\xa7/\x14\x10\xc7\xc5W\ -\xd8\xed\xcb\xb4\xd1zR\xb4!+AH~\xce\x13\xdb\ -k\x0a \x0a \x0a \x0a\ + \x0a \ + \x0a\x0a\ +\x00\x00\x05\xee\ \x00\ -\x00\x11\x0ex\xda\xd5WKo\xdb8\x10\xbe\x17\xe8\x7f\ -\x10\x94K\x8b\x8d(\x92\x22ER\xb5S`Q\x14\xd8\ -\xc3^v\xbb\xd83#\xd1\xb6\x1aI4(\xd9N\xfa\ -\xeb;\xb4%Yj\x9c\x22\xed\xbe\xbar\x82\x883\xc3\ -y|\xf3r\x16o\xef\xeb*\xd8\x1b\xd7\x96\xb6Y\x86\ -\x04\xe100Mn\x8b\xb2Y/\xc3?>\xbc\x8fd\ -\x18\xb4\x9dn\x0a]\xd9\xc6,\xc3\xc6\x86oo^\xbe\ -X\xb4\xfb\xf5\xcb\x17A\x10\x1c\xca\xa2\xdb,C&\xc3\ -\xe3qc\xca\xf5\xa6;\x9f\xf7\xa59\xfcl\xef\x97!\ -\x0ep\xc0d0\xd0\xcbb\x19\x82\x0a\xdaK\x9d\xed\x93\ -\x9e\xdf\xdc\xb5\xb9\xde\x9al\xcaB4x\x855\xc6\xf9\ -\x8a'\x89\xba\x0e(\xa64\xc2\xf0\xc3^\x9fn\xb5\xe0\ -\xf7\x16~\xb3\xc2\xe6\x8d\xae\xc1\xddM\xd9vv\xedt\ -\x8d\xc0\xdaI\x08\x02n\xdal0\x00\x22]\xb7\xcd\xe2\ -\xf8p8\xa0\x81\x88\xac[\xc7^A\xbb\xd5\xb9i\xe3\ -\x81>U0\xd8\x1a\x15\x0c\x04\xd4\xda\x9d\xcb\xcd\x0at\ -\x18\xd4\x98.~\xf7\xe1\xdd\xc8\x8c0*\xbab\xa2g\ -f\xff\x90\x1c-S\x8cq\xfc\x85\xbfp|\xae\xa8+\ -V\x97D\x89R*\xc64\x06\xcc@\x22j\x1f\x9aN\ -\xdfGM{5\xbd\x9b\xe7\xe3\xd5\xdc\x19\xdd\x95{\x93\ -\xdb\xba\xb6M{\xc2d.]\x9c\xa5\xb7;W\x1dE\ -\x8a<6\x95\xa9M\xd3\xb51\xe4,\x0eo\xfc\x85E\ -m:]\xe8N\x1fo\x9f\xf2?\x90\x08=\xc9\x80\x14\ -8\x96\xfd\xf6\xee}\x7f\x04B\x9eg\x7fZw7\x9c\ -\xe1\xf1\x22\xfa\xd6\xee\xa0\xc8\xc2\x9b3}Q\xe4\x19@\ -^\xeb\xee\xa6\xac\xf5\xdaxP~\x02/\x17\xf1\x991\ -\x97\xee\x1e\xb6f\xa2\xf7\xa4\xd9\x99S\xf6.\xc6U\xe4\ -u\xe9o\xc5\xbfweU\xfd\xe2\xcd\x84A|v6\ -\xee\xbd\x1d\xa2\x89\xa7\xe1,\xe2!\xde\xd3\xb10\xabv\ -\x02\x86?\x12<\xa8[\x8c\x95\xec\xab\xb0\xf0]\xd4\xcb\ -n\xc1hn+\xeb\x96\xe1\xd5\xea\xf8\x84=\xe7\xd6\xba\ -\xc2\xb8\x81\x97\x1e\x9f9\xcfB5C\x00\xd0K\x03\xdd\ -\xde~4y\xd7\xd9\xca8\xdd\xf8\xa8\xc1\x85\x9e\xb5v\ -\xd0\xd9\x17\x19\xbb\xb20\x179c\xd3z'Gc\x97\ -\xd9\xedF\x17\xf6\xb0\x0c\xe9#\xee\xa1l\x80\x13\xf5\x83\ -\x852E\x9e\x12\x19\x86\x0d\xc1d\x8c\xd4c9b&\ -\x07j\xbb\xb1\x07\x1f\xd02\x5c\xe9\xaa5\x8f\x14~\xb2\ -\xb6^\x86\x1c)\xc5S\x91&\x8f\xf89L\xb0(\x15\ -H\x10\xceR\xf6\x98\x0da\xa6Hp&S!\x9e\xf2\ -\x16T\xa4\xea)&(\xa0O\xde\xac\xf5}Y\x97\x9f\ -L1\xc9\xdc\xd9\xf6\xce9h\xb6\xa8\xd2\x0f\x06\x12\xbf\ -f\x84_F<\xdf\x98\xfc\xce\xb8[\xab]\xe1\xb32\ -\x94\xdaVw\x9b^\x1e\xe8\xbf\xc2\xa0\xde0\xb9gr\ -\x131\xf9i\xd0\xb4\x82\x82\xf7\xc3\xbf1S\xa0\xfdU\ -6*ZO837:\xa8\x94\xd6\xf7 \xf4\xbc\xee\ -\x5cy\xff\x8a \xc0\x8ap!\xaf1|\x08J\x19S\ -\x09\x17\xd7\x11\xe5\x88Ixc\xf0*\x11\x91_\x99O\xd7\x1b\xff\x16\xb9]e2\xb37\x8d\ --\x8a7sU\xfd\xf1\xd4o\x19F\x80=\xc1#\xb5\ -*\x1b\x03\x15\x949\xbbk\x8a)\xf1\xa3-\x9b\x0c\xc6\ -\xa1q\x03\xf5x\xa8\xa0P\xbb\x8c\x0d\xb4BC\x9f;\ -\xa7\x1fN\xbe\xf4\xd4~4d$\x9c8\xee\x17B@\ -8\xa28\xe5\x90$\x92\x22,)\x94E\x00+\x13c\ -\xc6\xaf\xa1\x1e$')\x11\xd3[c\x15\x12&g\xf4\ -\xb1=l\x03\x11t\xd6E\xd0({\xdd\xed\x9c\x99\x8c\ -\xa4`\xfa\xa5\x01\xc01~\xbc\xc3N\xce\xf3\xd9`\xff\ -\xdb1&LP\xfa_b\x8c)&\xd7\x8c!\x05\x8d\ -\xc0\xd2 I\x90H\x15N\xe8\xb5\x07\x9b\x93\xa7 \x8e\ -\xf8?\x04\xf2\x22^\x8f\xdf\x01@\xd3\x97\xd5\x7f\x84\xfa\ -\x8a@\x8fp<`;\x8dv\x00V\xc2C\xd8\xf3\x80\ -\x9dQ\x9f\x01\xecV\x970f\x8f\x8b4\xab\xb5\x83Q\ -\xda\x06'\xc9\xe3t\x9c\x8f\x12\x1f\x04\xb4\xd1d \xf4\ -\xfb,AL\x08\xae\xa6\xa3\xe2\xbc\xc6\x90\x12\x82&\x13\ -\x8cagP\x8c\x12\x96P\xa1\xceTX\x16\x09\x85\x99\ -\xa1\x08O\xceT\xf70\x99\xea_\xc5Q\x8a\xbc(\xcc\ -Wq\x14X\x0a\xf2\x03\xe1\x18\xa9oD\x92'\x92\xa9\ -9\x92\x89\x82\x91\xc2\x92)\xbe'$\xa1\x1d\x13\xce\xbf\ -\x07\xc9Y{_@\x12\xbe\x00\x83I\xfe#\x01\x89\xbf\ -\x09H\x81\xb0\xa0b\xba\x15}I\xc2\xc2\x22T$\xe9\ -\x0cH\x0a\x13\x9b%)\xfb\x1e\x1c\x13\xa1o\xf3\xff\x19\ -\x8e\x11\xf9\xebH&\x0c1\xa5X2on\xc0W\xa5\ -\x92\x0a\xf1]%\x99K\xa5\xf1\xd7\xa0\xa4\x92?w\xc1\ -\xff[P\xcao\x81\x92R\xa4\x98 D\xcd\x8bR!\ -!pJ\xe9\x1cJ\x8c\x08\xe7xJ\x9dAy\xda;\ -\x0b\xff\xdf\x22\xfc\xfd\x0c\xef@\xd8N\ -\x00\x00\x0d\x9f\ +\x00\x15Tx\xda\xe5X\xdbn\xe36\x10}\xdf\xaf\x10\ +\xb4/\x1b\xd4\x92x\x15E\xd5N\xd1b[\xb4@\xfb\ +\xd2n\xafo\x8aD;jd\xd1\xa0\xe88\xd9\xaf\xef\ +P\xb6n\xb1\xbcM\x91.\x16h\x1d8\x10g\x86\xe4\ +\xcc\x993C\xca\xcb/\x1e\xb6\x95w\xafLS\xeaz\ +\xe5\xe3\x10\xf9\x9e\xaas]\x94\xf5f\xe5\xff\xfc\xee\x9b\ + \xf1\xbd\xc6fu\x91U\xbaV+\xbf\xd6\xfe\x17\xd7\ +\xaf\x96\xcd\xfd\xe6\x95\xe7y0\xb9n\xd2\x22_\xf9\xb7\ +\xd6\xee\xd2(\xda\xedM\x15j\xb3\x89\x8a\xce \xbb\xd1{\ +\x08\xc8\xbf\xee\xc5\xcb\x22O\x01\xd6mf\xaf\xcbm\xb6\ +Q.#\x9f\x01\x8c\xcbhPL\x8c\xed\xe3N\x0d\x8b\ +\x1e\x975\xea\x98\x9fY\x92\x16\xf9\xb6t\x93\xa2\x9fl\ +YU\xdf\xb9M|/z\xb2hi+5\x08\x97\xd1\ +\xc9\xfbSl\xd1(\xb8e\xd4\xc5\xde\x8e\x0a\xb5n\x06\ +X\xdc\x08\xa3\x0e\x92mf\xee\x94\xe96\xea3\xd1X\ +\x9d\xdf9\xeb/\x8d\xd1\x07\xfc=\x14\x9f\xb1~g\xa6\ +M\x09%\xb5\xf2\xb3\xbd\xd5\xbd\xd0\xa8\xf5\xef.sh\ +,\xf9m*\xb9\xb8bc\x1f+\x80F\x03\x03\xd6\x95\ +>\xa4\xf7eS\xdeT\xca?s\xaclZ\xd7V\xbe\ +5{\xd5\xe7h\xb9\xcb\xec\xed\x80\xb8\xdb\xc6I\x18\x97\ +\x89?\x88A\xfa\x83\x07\xee,\xe0\xeb}\xefqx\x0a\ +x\xfb\x18`\x12\xf2\x91\xf8(\xedL\xdf{\xa3EN\ +\x9e\xae!O\x81\xd9W*U\xf7\xaa\xd6E\xf1yc\ +\x8d\xbeS\xe9k\xd4~N\xc3\xa0\xad\x96\x14:\xda\xce\ +\x8e\x16\xb1&\xab\x1b\xc7\x1c(\x8b<\xab\xd4\x1b\x14&\ +WGi\x95Y\xf5\xe6\xe8\xceU\xcf\x01Hh\x9b\xa7\ +cr]\x06\xdb\xa7\xbe\x22\x5c9\x14\xae\xf6\x8e[\xec\ +\x80?\xb9\xae\xb4Y\xf9\xaf\xd7\xed\xe7\xb4\xf7\x8d6\x85\ +2\x9d*n?\x13\x95\x86\x82\x07&Bm\x9e\xc4\xfa\ +\xe6O\x95[\xab+\x05\xce9\xf6\xe2.\x9b\x1b\x03\xa1\ +\xcd\xc9\xf7e\xa1\xe6\x14}\x0e\x9d{\xfdF\xb3\xda\xe6\ +6+\xf4a\xe5\x93\xa7\xcaCY\x83\x228\xf5 \x9c\ +\xc4\xf4\x82E\xd7\x970\x22\xdc\x1f\xc8\xdf\x03\xd5\xf1\xa2\ +\xb9\xd5\x07\x17\x09d4\xab\x1a\xf5t\xb5\xf7ZC\x8e\ +0\x0d9A\x09eO\xd59t:\xc2B\x81HL\ +\xce<\xc9!:\x82C!0\x8f/\x05\x02\xf3\xb9\xb8\ +\xa0s\xd3/\xe9\xb6\xd9C\xb9-\xdf\xabb\xc8\xd4\xb0\ +\xef\xde\x18(\xcf\xa0\xca\x1e\x15\xa4y#\x11>\x11i\ +\xb9\x19\x90\xd80\xcc\xfb.\xb0\x19\x17\xe8\x86q\xc6\xfe\ +\xbe\xb4(:+\xad\x05\xf2\xbeu]\xff\x17\xf7\xef[\ +8\x01\xfe\x18\x99\x0c\xfe\xe9\xba\x06Ni\x13\x80\xa7\xf7\ +\x99\xdd\x1b5\xd0\xe0I\x89\xa55\x9c\xf7\xa3V8x\ +z\xf2\xd5\x057[W\xd0\x94M\xf9\xf0\x06*OP\ +I$[\x80w\x8ba$\xa0\xe2$\x04\x8a\x17\x14\x85\ +\x82\x12\x89\xe8\xd5\xb8\xe5O\xa3\xfe'\xde\x8f0\xc2\x02\ +O\x14\xeeP\xf2\x02NB\xc9\x91\xc4\x0c\xda\x0c\x8b\x99\ +\xc0\x88z2d\x84\x10\xc4\x17\x01\ +\x12\xe0\x82\xfcs\xc0{\x18\x9f\x9f\x81\x8f\x82&\x9fA\ +\x93\xe20q\xfdN\x00\x9a\x02\xda\x22#Hx\xc0\xda\ +\x041\x9c$\x0b\x8cC\xc6\x12\xf2$\x11\xff?\xfe^\ +\x98\xf3/$E\xcc$\x85\x01<\x09\x89)[\x04\x14\ +\xfaG\x0c\x84f\x1e\x5c\x22\x04\xa7X\xc4\x0b|lq\ +\xff%\x86\xab\xaa*w\xcd\xf4\x96\x0d\x07&\x0d\x11\x07\ +\x87\xe2)H\xe6\xc1i0\xa7\x89 SN\xbb3:\ +\x0ee,Q\xc2\xa7s\xdc\xd1\xeeZ\x07\x8f\x81\xcf\xec\ +B2h\x1c\xc4\xc1,\xd5\x87\x00\x8f\x08\xc71B\xeb\ +\xf5\x11\xe1\xa9n\x16\xf01){\xb4\x13,\x09\xe5\xf4\ +\x0cY\xa3\xf7u\xf1\x12\xb2?\x07Y8\xb4\x04K\x80\ +\x063\xc8\xa2\x18\xa8\xd7\xdf$\x07dE\xc8$\x8d\x09\ +\x8f\xcf\x91%\xd01\x00>\x8a/#\x8b\x9f\x83\xab\x94\ +\x9c\xbf\x08W\x1aR\x9cHL\x88\xf84\xb8\xc2\xe1$\ +$\xc7\x94\x9d\xe1\xcaB\x861\x96\xf8\x9c\xb1\xae\xf3\x92\ +\x98\x13\xce\xcf\x81\xa5$\x8cY\xcc\x05\xf9\x00e\x9f\x03\ +,\xa5\x08%\xe8E\xc0&\x12\xc9\x18\xc0\xfd4\xc0B\ +#L\xe0\xceN\xe8\x0cay\x02\xadk\x0e\xd7\xf6~\ + \xe5\x0ca9\x0dELc|\x99\xb0\xcfAU\xac\ +I\xf6B\xba2\xb8\xb7\xc2k\x9b\xf8T\xa8&\x08\xb0\ +\xa3\xc9\x0c\xaa\x92p\x8c\xf09\xaa0'\xe1<\x99C\ +\x95A<\x1cq\xf6\x01\xb6\xa2\xe7\xe0\xca9B\x05{\ +a\x1b\xa02I$\xf9\x98\xb8.\xa3M\xf7B\xbfy\ +\xfa\xea5zw\x19\xfd\x10\x10\x22\x14\x0b\x92\xd0E@\ +8\xc0(\x88\x94W\xfe\xf4m\x0d\xc3\xdb\xda\xe9\xfd\xce\ +\xad\xbat?O]\xbf\xfa\x0b\xc9v\x10A\ +\x00\x00\x07\x9c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a <\ -text\x0d\x0a xml\ -:space=\x22preserve\ -\x22\x0d\x0a style=\ -\x22font-style:norm\ -al;font-weight:n\ -ormal;font-size:\ -19.7293px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#ffff\ -ff;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.493\ -232\x22\x0d\x0a x=\x22\ -19.037298\x22\x0d\x0a \ - y=\x221038.5863\x22\ -\x0d\x0a id=\x22tex\ -t4521\x22>?\x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x1cB\ +td\x22\x0a xmlns:ink\ +scape=\x22http://ww\ +w.inkscape.org/n\ +amespaces/inksca\ +pe\x22\x0a version=\x22\ +1.1\x22\x0a id=\x22svg2\ +\x22\x0a width=\x22192\x22\ +\x0a height=\x22192\x22\ +\x0a viewBox=\x220 0\ + 192 192\x22\x0a sod\ +ipodi:docname=\x22s\ +ave.svg\x22\x0a inks\ +cape:version=\x220.\ +92.4 (unknown)\x22>\ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09,\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x09~\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1863\x22\x0a inksc\ +ape:window-heigh\ +t=\x221025\x22\x0a id\ +=\x22namedview4\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x221.738304\ +2\x22\x0a inkscape\ +:cx=\x22133.79315\x22\x0a\ + inkscape:cy\ +=\x2271.379447\x22\x0a \ + inkscape:windo\ +w-x=\x2257\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg2\x22 />\x0a \ +\ +\x0a \x0a \ + \x0a <\ +/g>\x0a\x0a\ +\x00\x00\x05\x0e\ +\x00\ +\x00\x13 x\xda\xe5X\xddo\xdb6\x10\x7f\xcf_!\ +\xa8/-fI$EQ\xa4j\xa7\xc0P\x14\xd8\xc3\ +^\xb6\x0e{,\x18\x89\xb6\xd5H\xa2A\xd1v\xdc\xbf\ +~G}YN\x9c.\xdb\xb0\x01k\xed\x04\xc8}\x90\ +\xbc\xfb\xf1\xee\xc7C\x96\xef\x1e\xea\xca;(\xd3\x96\xba\ +Y\xf98D\xbe\xa7\x9a\x5c\x17e\xb3Y\xf9\xbf}\xfc\ +\x10p\xdfk\xadl\x0aY\xe9F\xad\xfcF\xfb\xefn\ +o\x96\xedas\xe3y^\xd9\xdc\xb7\xb9\xdc\xa9l\xb6\ +\x03\x0e\x89\xf7\x1aI\x84\xf2u\x12\xc7b\xe1\x11DH\ +\x80\xe0\x87\xbe\xf1\xdd\xa2\x16v\xdf\xc1oV\xe8\xbc\x91\ +5l*\x8b\xe2\x93z\xb0\xca4\xb2\xfa\xb41e\x11\ +\xc2\xfe\x9doY\xac|\xf8\x9bu\xc2\xfc\x90^Q\xaa\ +\xe3\x8f\xfaa\xe5#\x0fy\x94\xc3O\xa7\xde\xaar\xb3\ +\xb5+\x7f\x10\x8fea\xb7\x93\x04\xf96m6\x06\xbe\ +\xf2\xb7\xd6\xee\xb2(:\x1e\x8f\xe1\xa8\x0c\xb5\xd9D.\ +\xb2v's\xd5F\xa3~\xb6~\xccaZ?*\xc2\ +V\xefM\xae\xd6\xb0\x85\x0a\x1be\xa3\xf7\x1f\xdfO\xc6\ +\x00\x85\x85-\xce\xdb\x5c\x9c~\x8c\xbbs\x09B(\x1a\ +\xd3\x1f\x0e;l^\xe8i\x8a\xf55O,\x84\x88\x10\ +\x89\xe0\x1e\xc0#hO\x8d\x95\x0fA\xd3\xbe\x9a-\xcd\ +\xf3ien\x94\xb4\xe5A\xe5\xba\xaeu\xd3\xf6p\x5c\ +8\x17g\xe7\xdd\xdeT\x9dG\x91G\xaaR\xb5jl\ +\x1b\xc1\x05E\xfe-\xf8/kee!\xadtk\xfb\ +\xeb\x1c5\x98t\x1e\xe0\x031e\xbf\xbc\xff\xd0K \ +\xe7y\xf6\xbb6\xf7\x83\x08\x1f\xe7 \xef\xf4\x1e\xee\xd4\ +\xbf\x9d\xd4\xcb\x22\xcf\x00\xe7Z\xda\xdb\xb2\x96\x1b\xe5\xb0\ +\xf8\x01\xe2[Fg\xc3\x85\xb3=\xed\xd4y\xd3~[\ +\xa3\xfa\x0b\xbb\x9aO\x91\xd7\xa5[\x14\xfdj\xcb\xaa\xfa\ +\xc9\x1d\xe2{\xd1\x14g4\x04:\xa4\x11\xcd\xf2XF\ +c\x9a\x9dT\xa8u{F\xc0I\x18\x0d;-\xa7v\ +p\x15W\xb8\x92\x1e<\xc7\xde\x826\xd9;X\x03\xa3\ +-\xdc\x8bk\x00\xe4?\xf2\xc9\xf7\xc68\x97J\x9e\x94\ +\x99\xb5\xcc\xcc\xe5X6\x85>\x06\xb5|(\xeb\xf2\x8b\ +\x828\xf03.\xa7\x95O\xd2gl\xd0l,yr\ +\xfa\xc9\xf5$MQ\xc29yb\x84%\x01\xe5\x83\xf9\ +\xb1\xf5\x8b\xd6\xf5\xca\xe7\xe1\xb8g\xbb\xd5G\xc7\x00+\ +\x7f-\xabV\xf9g\xd4&x\xf83\xa1\x8dm\x8f\x11\ +~.\xf9\x81\x0a\x08\x15Or\xd8\xc1\xe5\xb6[\x09^\ +`\xbff\xd4@\x06P\x0dg\xf07\xfb\xb2PVW\ +\xca\xc8\xc6\x15\x10\x9e\x0c\x10\xff5\xbd\xbe\xfb\xacr{\ +\xcdr\xa7M\xa1\xcct\x02\xbeP\xe7\xba\xd2p\xa7\xaf\ +X\xf7\x19L.\xa2\xd1\xb0\xee>\xd7b\xce\xb7*\xbf\ +W\xe6NKS\xb8\xc0\x87\x92\xdbI\xbb\xed\xbd\xd7P\ +\xd7\x8e\xd4\x9b9\xd2\xceN\x08c\x0b\x16\x12\x86R\xc1\x5c\x19\ +b\x16\x93\x05\xa6\x0e0\xa8\xc3\x7f\xda\xc0=\x144D\ +\x08\xc6\x96\xff\x16\x86\xab\xf9O5\xe2\xa8\xd0\xe3!c\ +\x94\x11\x84\x17$\x0e\x09\xe6\x82p\x0f\x8a\x86\x03,\xe9\ +\x82\xc2\xdc\xc3\x10\x8b\xd9\xff\x11\x83\x9b\xaf\xf5\xd8\xd7\x01\ +\x0a\x1e\x17\x09\x16\x98wtO\xe3\x98s\xeaAq\xa0\ +4\x15\x80\x9a\x00\xa8\x08\xc3\xfc{C(\x9e#\x94\x86\ +,\xa5\x82\x90EL\xc28N\x13\xc4\x81yB\x22b\ +\x01O\xa3\x08\x09M\x09J\xbeU\x84\x0cP\xf3\xd3\xd4\ +\xba\xfd\xfeB^\xf1\xcb2\xba\xd0\xfe\x8d\x8c\xde\xeed\ +\x09cu7\x87e\xb540L\xb5^\xef\xd4\xcdN\ +\xb3\xe1\xc5\xe5\xc5\x93\x11\x83q\xd2\xe4a\x0a\x95\xcf\xc6\ +\x06\x19gT\x02S\x11\xe2(\x1e\xdfy\x98\x91Sx\ +\xd8\xe1\xbd\xa1c\xa5\xb8)\x1c\x87\x22\x81\x9a\x88\xff\xac\ +\xba\xe6\xd3\x9a\xa3#\xc2\x11\x8a\xe3\x8e\xa2R!b\x0a\ +\xb4\x05S1\x82\x9e\x04\x8a\x22\x043J\xbe;\x8a\x0a\ +\xd8\x1c$\x806\x85\xa7\x96\xf4,%(\x17W\xba\xf2\ +\xbb#\xa9 \xb9(\xa4\x04\x1ey\x18:q\x87\x88\x80\ +\xe2\xa6\x0e7\x91&)\x13\xae\x92\x18MR,\xbeI\ +\x94\x96\xee\xbf\x09\xb77\x7f\x00lU\xec\xbf\ +\x00\x00\x15\xb0\ +\x00\ +\x00P\x22x\xda\xed\x5cYs#Gr~\xd7\xafh\ +S/R\x18\x00\xeb\xea:\xa8\xe1l\x84W\xb1\xe1}\ +\xb2\xc3\xbb\x0a?c\x00\x0cI\x0b\x04\x18\x00\xe6\xd2\xaf\ +w^\x95U\x0d\x90\xe3\x91e\xd9\x96B\xa3\xdd \xaa\ +\xba\xba\x8e\xcc/\xcf\xce\xeeW\x7f\xfa\xf8\xb8\x1d\xdeo\ +\x0e\xc7\x87\xfd\xee\xf6\xca.\xcc\xd5\xb0\xd9\xad\xf6\xeb\x87\ +\xdd\xdd\xed\xd5\x0f\x7f\xff\xcb<_\x0d\xc7\xd3r\xb7^\ +n\xf7\xbb\xcd\xed\xd5n\x7f\xf5\xa7\xd7_\xbd\xfa\x87\xf9\ +|\xf8\xf3a\xb3\x7f\xfd\xd5\ +W\xaf\x8e\xef\xef\xbe\x1a\x06\xb8k}\xba\xbf\xbd\x0a\xf9\ +\x0a[\xf7\x9b\x87\xbb\xfb\x936\xdf?l>\xfc\xd3\xfe\ +\xe3\xed\x95\x19\xcc\x10\xf2\xc2\xe0?\xdb~\xd1\xa0\x87\xf5\ +\xed\x15L\xe6\xf8\x8ev\x04\xb9*k\xdf\xf4W\x16n\ +\xf8\xc6,\x8dY\xbd\x1d\xbd/\xb3\xc1\x19\xe7\xe6\x06\xfe\ +\x17\xbe\xa5\x9b\x8ep\xf0'\xf8\xff\xcdz\xbf\xda-\x1f\ +\xe1\xbc\x8f\xcb\xa7\xe1\x9b\xe5z\xfd\xed\x02\x96\xa21@\ +\xb0\xdd\xf1\xa6N\x7f{\xf5\xd2y\xf1\xfe\xe3\xd3r\xb5\ +9^\xd7\xfe\xee\xfe\xba\x92\xde_;\x16\xc7\xfd\xbb\xc3\ +j\xf3\x16\xa6\xd8,v\x9b\xd3\xf5\xf7\x7f\xff^/\xce\ +\xcdb}Z\xb7i&\xab\x7f\xf0\xb4\xae\x03\x02]O\ +7\x0b\xad/\x1cyX\xbf}n\xa4-\xa5\x5c\x1bw\ +\x0d\xd4\x82\x11\xf3\xe3\xa7\xddi\xf9q\xbe;~\xdd\xdd\ +\xbaZ\xe9\x9d+D\xc6\xc3\xfb\xcdj\xff\xf8\xb8\xdf\x1d\ +\x99\x1c\x93\xc1\xeb6\xf8\xe9\xddaK#\xd6\xab\xeb\xcd\ +v\xf3\xb8\xd9\x9d\x8e\xd7\xc0\xab\xeb\xab\xd70\xfe\xd5z\ +\xf3\xf6\x88\xf71\xbf\xb1\x15\xe8\x02\x5cZm\x1f\x9e\xfe\ +uy\xba\xe7\xcb\xc3P\xdb?\xec\x1eN@\x9aw\xc7\ +\xcd\xe1o\xc8\x80\x7f\xd9\xfdpd\xda\xd7i\xea\xc8\xec\ +F\x99\x0c\xa6;lV\xa7:\x08\xa0p\xfa\xb4\x05\xee\ +\xbe}\xd8nov\x00\xfd\xef\xf0\xd7|\x0f\xf3=\x9c\ +>\xdd\x98E\x0ee\xb4a\xf4\xdf\x1dO\x87\xfd\x8f\x9b\ +\x9b\xaf\x0b\xfd\x93\xe6\x9c\xe0}\xe3\x17yL\xc1\x067\ +\xd6\xfe\xed\xc3n\xf3\x1f\xfb\x87\xdd\xcda\xffn\xb7\xae\ +\xbd\x8f\x0f\xa7\xcda\xfb\x00\x7fnB\xed[/\x8f\xf7\ +\xcb\xc3a\xf9\x89\x96\xbfj;\xc3\x03\xe0^\xb3K]\ +o\x95\xa7\xb0\xc0\xe5r\xec.\xa9p=s\xed#\xca\ +Eq9\x99d\xbb\xeeO\xd0mL\x5c\xb8bJ\xd7\ +}\xa0\xfe\x85\xcd1\x8d\xf6j\xb8\x16F\x5cWz\xfe\ +O2fn~\xd3\xac\x99\xfb\xff\x8f\xccyu\x8d\x12\ +D\xbfT\xd7\xa1\xa2Z\xa3\xc6mb\xf6f\xa9|y\ +Z\xde\x81\x1co\xf7\x87\xdb\xab\xaf\xdf\xd2?\xb9\xf0f\ +\x7fXo\x0e\xf5R\xa4\x7f\x93K\xc2\x10\xb6*2w\ +U\xca8\xab^7\xcf_\x07\x1a\xaf\xf7\x1fn\xaf\xdc\ +\xf9\xc5\x9f\xf6\xfb\xc7\xdb\xab\xb4(\xb6\x8c%\x9e_]\ +}$2\x84l\xbc\xf7\x17\x17?\xa1\x8d\x01\xca\xa5b\ +\xf3\xf9EP\xfa\xefP\xfd\xcc\xdf1N\x9f>^\xdc\ +\xfe\xeep\xc0\x01\xdb\xe5\xa7\x0d\x9c\x9a\xfeX\xe5\xf4\xf1\ +~\xff\xe1\xee\x80\xf4{\xbb\xdc*\x01_\x9c\xec\xc3\xc3\ +\x0e\xce7\x17l\xb8\xd1\x8c/\x8c\xa8\x10\xb1\xc6\xc6\x17\ +\x86\xc0\x99\xc7\x97n\x87#\xab\xa68\xbf\xf6\xb8\xfc\x08\ +\xd0\xfei\x03{\xb6\xcf\xf1`u\xbfY\xfd\xb89\xbc\ +\xd9/\x0f0\xc4\x08\xaa^=nN\xcb\xf5\xf2\xb4l\ +\x88\xa9=\xa9*g\xb0\x137\xff\xf6\xfd_T\x84W\ +\xab\x9b\x7f\xdf\x1f~\xec\xe0\x0a\x03\x96o\xf6\xef\xe0`\ +*\xe8\xa8\xefW7`\xfb\x1e\x97\xa7\xd7\x0f\x8f\xb0\x01\ +\xb4O\xff\x086\x03\x80\xab\x17&\x83O\x9f\x9e6m\ +R\x9e\xf6\xb0a#\xfa\xac\x8dY\xaf@\x96\xe1\xa6\xeb\ +\xbf\x9d@m\xfc\x15\x17Qa!q\xe1\x8dV\xe9\xe9\ +\xce\xf1\xea\xba\x9e\x92Zwg\xf4\xda.\xdfl\xb6\xb7\ +W\x7f^>-\x87\x0bb\xde\x81Ryz\xdc\xaf7\ +\x82\x9a\xabF:F\x91t\x9c\x0e\xcb\xdd\x11\xcfy{\ +E?\xb7\xe0b}cfs\x10\xf8\xb0\xf0\xd1\xb9o\ ++\x81\xefz\xbdy\x86\xc4\xffbW/,3\x1f\xf3\ +\x22\xc4\xe0r\x84\xf5\x02*\x9eq\xcc\xdf6-|\xd7\ +)\xba\xcfO?\xd9To\xa5\x9e]w,\x0b\x9bl\ +\x08\xe3\xcc\xfaE\xb2\xce\x94\xf4m\x0f\x89\xbb\x9e\xbf\xfd\ +i':\xf6\x0b6\xf5\xd2\xb9#h\xa0\xd1\xd94\xc2\ +\xb9\xdd\x22\x80\xde\xa8\x0e\xe1s&\xe7\xeb7\x1e\xffS\ +\xeb\x22\xaa\xefu7\xfe\xd5Sg\xfd^\x9e\x81\xec\xd6\ +\xe1\xddvs\xb3y\xbf\xd9\xed\xd7\xeb\xb39\xa7\x16\xcb\ +,\x5co\xaa\xe0\xa4SK\xa5\xf6\xeb\x0d\xcc\xb6\xfdr\ +\xfbU{\xab\x01\xb5\xdf=-\x1f@\xc9\x91\x12\x87\x11\ + s\xdb\xab\xe9aP\xe0\x07PG@6\x9f\xc2\xcc\ +\x1a\x07\x8c+a\x00\xff\xb4\x98\xe4\xd3\xcc.\xc6\x9c\xca\ +\x00\xd6\xc8\xfa\xe0f\x1et\xb5\x1f\xe6\xe0\x7f\x87\x14]\ +\x9c!\xbd\x13\x8e\xf6\xc1\xb8\xe8\xa0\xed\xb2\x1f\x07\xfe3\ +Zh\x83\xf9\xa6\x01\xa35\xbex\xe8\x18c\xb28\x83\ +\x05\xa3g\x01\xa0\x17s\xb0\x95\xeb\ +\xba\x1e\x11\xc0\xe1\x19@\xf5X\xba\x81\xe8\xc0\x9c\xb3\xfd\ +\x91\xea\x04\x04\x93\x0eFHd\x1c\xd0\xb6\xe0b\xe9I\ +\x8b\xcc\xa5#\xea\x19\x84\xd4r\x07\x1d\x82\xd6\x04\x1d\xe0\ +=\xc2\xa6\xe4\x90iS\xf07\xe2\x08\xa0p\xbf\x0b\xbb\ +\x086\xe5\x0eX\x8d\xa1D\x98\x1e\xceD\xe9q\xd6\xc0\ +\xdb`Ri!\xb3\xce\x1b\xbf\x94\xfc\xb8\xd5\x7f\x1e\x92\ +_xp_\x10\xdc\xdd\x0a\xc4\xfe\x8e2\xb4\x85\x8e2\ +$?\xddx&L\x8fu\xa4\xc09\xed\xe8\x9cHu\ +\xeb\x05\xb9t\xd04f\xe3\xbac\xf5\xfc\x88\xbd\x18\xa3\ +@u\x97\x81\xff~\xd05eI\x01\xe4XW\x14\xa2\ +\x08;\xf1~B35\x1d\ +\x12\x16\xd9\x19\x9fR\x13#9t\xe8\x19#dh|\ +A\xf4\xbb\xc0\xb4w\x13m&\xfb\xd2s\x8b\xf4\xd2\xbe\ +}'g4\xc0\xcd\xf8J\x13\xb4\x061\xe5\x05Q\xa2\ +)\x22\xb7\x88&\xe3\x12Urh\x0b\x9d\xba\x148\xe8\ +\xfd\x15o\x0as8\x1c\x91V\x01\x99`\x02\xa00P\ +\xd2D9vljK\x01D\x1b\x18q\x8b)\xa1\xec\ +\x13\x11\xbc\xe2\xa7\xaa\xde\xaa\x18\xdd\x02\x88\x96}\xe0-\ +\x8c\x13\xc5Hh\xe8g x\x918\x01\xc0f\xac\x98\ +c\x03m\x87\xd1\xa6)\x89\x94pO\x82\xa1p\x8f[\ +8k\xd3\xa0*\xa4\x8e\xd0\x93\xce\xcf\x14\xa3\xed\x95z\ +[\xa8\xde\x84\xc8\x1b\xbbu\x88>I\xa0\xc4\x82`K\ +\xe3\xb0 \xad\xe2H\x95\x86\xe8\xb4F\x1e\xb5x\x02\x22\ +\x02\xa5\xedE\x87T\x99\x8e\xe7\x95\x07>\x1e\x9c\x5ci\ +\xd3\xd4\x05\x09\x8f*!\xd5\xc6\xaa\xed\xe5HbB\x1a\ +\xa4*\x84*Yh\x80k\xd2\xa6\xea\x87\x85\x99\x00\x11\ +\xf0D\x84\x80\xf7C\xd5T\xdb\xa1\xb7\x93\x84\xa7\xf7U\ +LXY5N\x93\xa5\xee\x8c\x97\x08L\xd34BO\ +\x91Ba\xfc\xfb\x817\xb1\xedw%8\x95]+N\ +\x1b]\xc8hU\x85\x9ef\xa2\xf3:33WE\xd3\ +\x1b\xf5\xeaJ\xb0D\xe0\x01\xd4&\xd4\xb3\xf3\xdfP\xd0\ +_\x16\xef\xa2\x87\x8cxD\xcd\xce\x8b\xb9lV\x9d\xb7\ +\xd6\xe3\x0eU\xbc\xda\xf0z\xcbj033\xd1'r\ +\xc6J\x83\x099E\xb7+5\xe9\x08\xfe\xa2\xdd\x11q\ +.VO\x16\x1e\x1bXdc\x82>\xd5\xdcL\x89\x89\ +|\xe0\xc6\xdd\x229\xf0\xdeGPO\xde\x8d\xae\x03\x13\ +\xe0\x16\xb6\x0e\x03\x00\xdb\x05\xe4\xc1-pe\x15\xc23\ +\xfb\xd4\xb4\x0b\xf6\xaa\xfd\x9c\x90\xa1\xd3\xb22\x83\x18\x0f\ +$\x82\x8a\x03\xcf0\x95\xcfY\x87W\xbe\xb7\xe1\x8d4\ +x\xa7\xe2\xc5\xabSiC|\x87s\xc3\xd7\x9c@\x02\ +xSu<\xdb\x5c\xda\x15\x0a\xea\xf1\x09u\x9a\x1d\x12\ +\xcb\xa4>\xe2\xbc\x9d\x86\x0c\xab\xb8-Y\x11\xdbOY\ +\x0d\x97v\x10t\x98\xa5\xaa\xa1\xee\xeb\xa2|\xfa\xba{\ +!>o\xbf\x89#N\x15\xc4\xef\x80\xd6X`\xb0\x1b\ +\x81\xf7\xc0\xdb\x9f\xceB\x02\x8c\xcb0\xea\xc9\xb6\x9c_\ +\xd1\xec\xc9~\x07a\xcbi\x7f\x98\xaf\xde\x1d\xde/O\ +\xef\x0e\x1b\xcc)\x9c\xc5I\x9a\x96\x82`\x19\xe3\xf4\xe3\ +\xed\xd5\xea7\xf9\xaf\xcb*\xfco\xc6\x84o\xde\x9dN\ +\x17!!E\x81\xbf $|.\xfe+~\x11r)\ +\xa0\xfd,\x00d\x91\x01\x98\x14z\x81k\x162\xca\x88\ +a''\xa5\x92\x18\xc4\x129Ec\xc4\xb3\x8a\xce\x89\ +T#p!J\x8b$\xc8\xb1\x10\x92\x9du1R\x9c\ +\x22QI\xf4\x04}\xe3\xf248\xb2c\xbc\xec \x8b\ +\x83+\x90>\x83\x98\x9e\xc3%\x98\x94\xccw\x22L\x87\ +\x08\x8a\x86\xfc\xa7\x98\xd1\xda\xc2\x12^\xec9\xe9\x1f\x10\ +\x00\x12\x1eQ&.\xc5\xc0\x0e\x9e\xb5\xe8n\x01?|\ +H\x9d\xee)\xc5\x85N\x9d4\xd5oH\xc0\x8c\x91X\ +m\x0c\xec\xd9\xe3|$\xacD,\x83\xc1\x09\x188\xea\ +\xb0\xf93B\xe6\xec\xcf\x14\xb2\xdf9\x16SA\x0e\xa3\ +_\x03X\x8c\x0b /\xc5\x99hmR\xa7\xe0\x0c:\ +\x0b\xea\xdc\xceu\x04\x5c\xc9\xe2\xca\x10\x10\x08;\xa3\xcf\ +\x89\x80l\x81\x17\x93\x5c\x84\xa8G\x9eM\x99\xef-X\ +\xc7Xma\xef{\x17\x98\xfceV\xfa?X\xd9\xb3\ +2\x83Xy\x0c/\x81\x93#8\x14\x96\xed \xda;\ +5M\xc8'o<\x1b/6{\xe0\x90\x8c,\xaa\x1c\ +\xd88\xb8\x9dL\xb95\xe6s\x824\xfeJ\xd6\xeaw\ +/q\x09t\x96\x8d\xae\xb0\xf6\xb7#+\xbc<\x86\xc8\ +\xf1\x8f\xe5\xbc\x8a\xf1\xc6\xb0\x8bS\xd4\x93%\x0d\x0d\x01\ +7\x0b\x8b\x13\xd7h\x0c\xbep\x07+j\x883P0\ +9[\x03\xb3Qf\x05\x84j\xbc\xec\xd8\x0aD8\xb3\ +aGJJ\x8d \xc0$\xbe\x19\xb6\xf62\x00\xd2\x1f\ +\xe27\x11\xbfqQF\xe2\x19\xf3\xb5\x8c\x14]\x918\ +\x91&-\x96\x5c[0e\x1c~a\x98*\xe2\xc6\xaa\ +v\xb4\x88\x04\x13\x8d\xc5|:\xa0\x84|a\xe4\x02\xc7\ +Z\x1es\x1b\x0a\x84\x00a\xef(>\xb1\xe3\x90\xa1X\ +0\xda\xd4\x13\x9c\x9f`H\xf2a\xceH\xdc\xee\x1c\xa7\ +\xfb\xcezd\xea8\x12>eKs\xb6\xe6\x1cl@\ +\xdc\xc7\xde\xb5\xa1\x8c\x0e\xab\x10\x97\x0d\x8c@\xc4\xf8\xe7\ +:\x08d\xb8y\xc3>\x86\xe1Au\x0e\x88\xad4B\ +\xf1\x10&%\xc4\xde\x18\xac\x9f\xb4\x89z\xb3\xea\x0a\xd5\ +{c\xe4D\x95\x09\xb4\x5c\x02'\x1aI\x88K\xe0\xea\ +NV\xe2\xa4[NL\xa7\xbe\xf92\xbc\xcb\x1f\xf0\x9e\ +\xc0;.\xa2\x01\x9f+!\xbc\x81\xf0\x92\x0d\x16u\x84\ +\x81\x98\xd0\xda\x19\x83HAxJj/s\x0e6v\ +\xd8U\x0e%F\xa6\x80\x19\xfdN\xc9\xad\x90\x14\xa0c\ +8T\x18\xc3\xa2\xc1\xc6\xa11?\x8d\x96|GY\xd1\ +\xf2\xe3\x02\xb5_\xd99{\xd1\xc6\xe8\xcd'S\x5c\xae\ +\xab\xf7\xd0D\xe1l\x22H\x82@\x0eI$|\xb1.\ +\xa6\xfd\xf2\xfeQ2\x1c\xbb8\x0a\xee\xf1s:\xd3\xff\ +6\xbc\xcf_\xe7\xe9\xd8s\xa8\x8ay\x91\xad\xc1\x5c\x12\ +0\x0f~\x8f\x94)\x1b\xa3\x0dL^\x92`\xe5\x90\xb4\ +\xab\xb2\xc8\xd9I\xca\x15\x7fa\x10\xc2\xb6o\xaeH\xc1\ +\xe1\xa4\x18\x5c e+w\xb0\x82\xbaho\xdb\x1ds\ +\xde\x04*\xf0\x8c]\xb4\x97(y\x00\xde\x1e\x0d\x07\xc3\ +\xe9\x19\xc8\x91\xd3n\x01\x7f\xa8\xb2f|\x10:\xe1\xb2\ +\x85\xce\xec%]U0EY\xbc\xf3\x0c#z\xbcc\ +P\xf1\xceD\x93s\xd2B\xd4\x1f\xf9\x00\xf3\xde\x9c\xc8\ +\x89\x14\xaa\x81\xc0\x0e\xfe_\x91H\xaeP\xca,(R\ +\xcd\xd4\x98\xf0\xdd\xd5>\xd4\x05\xf14n\x944$\xa7\ +\xdcH\x93\xd7!U\xda\xe6\xa2\xa1\xe7J\x829\x93\x8a\ +\x12yx*\xdb\xe2V\x143\x92\xc0*\xdc(E\xe2\ +\xc3\xf8&\xec\x14\xd6\x11[\x9c\x07\x0b\x1a;\xfe\xa3\xc4\ +\xb3\x80&C^-z,l\xfb\xac\xf3U\xa4\xd3L\ +\xb7M\xe7$\xad\xc3\xc7\xe2&\xab\xa3\xd2G\xce`c\ +e\xe18\xe9\xf0\x16w\x22\xa6\xb3#\x14\x1a\xab\xb3&\ +\x99\xb7dm\xca\x0aE\xec\x08\xe8\xd2\xf5\x84B\xc2\x19\ +\xce\x19\x02y\xda&DA!\x01\x13\x13\x10\xe8\x14\x99\ +K\xa3\xe4FY\xe5)\xc1\x22\xbajA\xbd\x8a\xcb\x1e\ +\xdaS\xd0M\xa1\x99\x9f\xe0\xa9v4\xfb\xcf\x8aO\xb4\ +\x180 \x0e=kI\xadU\xb9\xc3\xc0`\xec\x86U\ +\xe5H\xdc\xeb\xd9)\xa9@\xd5\x9e\xc8\xd7gz\xd8?\ +`\xbf\x88\xddX\xa5M;w\xee\xb1\xc7-\x00f\xa6\ +\x0d\xc5\x8cl\xef\x14\xf8y\x07g?\x15U\xc1\xf2\x13\ +\x83\x80;\xe5\xd8\x88\xb1\x8d'S\x9e\x13\x16\xe4y\x22\ +]n\xdb\x06\x9a\xf9\xc9~Bu\xf5X\x9a-\x19\xa6\ +\xb3\x8em\x85~\x16ye\xfb\x88\x12[\x1f\x03Q*\ +3dDs\xf3\xe0\x15\xda\xe2\xcd\x84\x80\x96\xae\x8a\xd3\ +\x14\xcb\xccJ\xdb\x0c\xf1\x5cLhUbD9WL\ +r\xa9y}\xe7\x1d\xf7\x1c\xcf\x9b\xd2)[\x08\x1b3\ +\x0f\xb1\xfc\x84\x0cw\xc1\xde\xa6\x98\xd1\x0a\x1e\xbe\xaa\xb4\ +\xb4\x92\xbb\x07\x09\xe3\x07\x85\xb8/\xd55\xb1\x05.\xe0\ +[\x06\x86\xb0\xa4\xbb\xfa\xb6l\x82i!\x222\xf4N\ +p5\xdd\xe0\x0c{eIw.C\xbb \x01H2\ +>W,[qK\xddd\x9f\xa4\xce\xfa\x83W\xae+\ +\xbc\xd3\xd4`X\xba|\xd6\xc1\xe0\x06m\x92\xe4\xb9\xa9\ +0\x91\xe9\xa3gGI\x0b\xea\xde\xe6\xe2\x9c?\xf3\x99\ +\x08\xadNa\x81\x96\x8e`\xc1\x8a\xab:T\xe2\x1e\x8b\ +\xc3\x04\xeb\xe6\x89\xab-\xea\xb3\xbaL\xa2\xf4\xd8(\xf0\ +Q/;*\xbejg=B\xeb\xa0\x10vVU\xa5\ +Xj6\x88\xe2\x98\xd7xC\x9a\xc4;\xbd\x1f\xb9\xd4\ +;j\xbc\xaa\x1e\x829\x89\xa2Da\x133\xf2\xac-\ +$R\xde\xb1\xe6\xf1\xa3\xc9\xac\x00\xcd\xc4I\x13\x9fS\ +m\xa9\xb0\x84\xc3'\x95\x1fV/U\x89\xb1\xc9j'\ +\x11qSC_IL\xd1\x8d\x8cO\x95\x05\x17m!\ +)H\x10;\xcf\xe2\x067oZ\x9e\xabVzMw\ +T\xceZ\xa2\xdf*@H\xb9+\xe8\xd4\xd9\xd1\x1bb\ +?X\xf67mo\xbb\xb5i\xb6\x86B6\x18\xe2\x7f\ +4[%\xf1\xec\xf9\x96ExZ\xd0\xd7:|\x05\x8d\ +\xefLB\x87\xc1\xea4\x04\xd6\x93\x0a\xf0<\xa1>\xba\ +=\xe7m\xb1R*\x87\xe2D\x10:\xe2Lt\xa0\x92\ +Z\x00\x85\x8a\xc4q\x1a\x8c\x084moe\x8f\xbed\ +\x8e\x82\x89]\x99\xac.v$;^hbq\x22Z\ +\xc0\x89\x1au\xe8B\x9b\xb1*0\xd7`\x84:\x86\xb3\ +q\x9e\xae\xa3>s\xaa\xc5\x09\xd0Ic\xfe^\x9f\xb1\ +\xb2\xaa\xc4/=\xc94h\x17\x00\xa4(\xa9A\xd9H\ +\x05\x9b\x92\xbc\xaa\x0d\xa2\x11=\x04(\xb6\x0b\xb4\x1a\xfd\ +F\x15\xcf\x0a\x0b>aE\xda8t\xd4\x10\xc9hz\ +,\xf6\xbe\x04O\x83.\x12;\x06\xb6eG\xc8F\xc8\ +\x16\xaa7\xab{V\x9b,@V\xd7LL\x9b\x0a\xae\ +<\x92\x87\xbd\xb9\x99\xba\xc7\xd2\x96\xf5'>\x8a\x1a\x86\ +\xd1\xdb\xa9\x0f\x1a\xa6\x00\xaaS\xa9\x04\xd1N\x15m\x81\ +\xcb\x13T\x9b\x91;\xa2\xe2S\xbbA\x07\xe6\xbe}\xee\ +9\x9b\xe7:\x04o*\xe8d\x03\xe7]\xb8D[\xed\ +\x85'\xf41\x0b\xc4\xcf\xe5\xb2M\xc2C\xde\xeb8S\ +\x17\x0f\x13+}\x9bq61\x97|\xecf-\x19\xbe\ +\x021r\xbb;)\x07\xb4\xda\xe6\x92\x91$\xb9s\xe0\ +\xb0\xf7\xaa\xe2\xab\x91\x14b\xa2K\xf20\xe2Dy\x08\ +\x06\xea\xaa\x89/N\xad\x9d\xe21\xbc\xa0\xda\x99\xd3U\ +\xd54h\xc7\xcekiZ\x95\x1c\x8e\x06\xb7zB\xb9\ +\xac(Q\xd3\xdb\xb6\xdd\x19bM{\xf4\xed\xad\xa6\xd2\ +\xb8\x86\xad\xcb\x9f\xa0G\x9a\x9a\xf7\x80\xad<\x9b\x86S\ +\xaa\x829$T\x9b\xd85\xa7\xd9\x98\xea\x14Mr\x8b\ +t\x8c~N7\x01\x189M\xfd.\xab/(z(\ +\x0d\x17\xdeDg\xe7\xd3$\xbb\xc3Nw\xb5\x935\x90\ +\x9b\xb4\xb7\xcdk\xc7j'\xdf\x91D4a\x8bB\x88\ +F\xb9\xb3(z\x848\xe5\xbaHb\x9b@\x8e,\xca\ +H\xdd\x05u\x0f\xd8;\x05\x8cP\xc6\xaa\x86\xe6\xd5\xa1\ +#X\xb5SQ\x04\xd7\x90]\x93\xbcB\x9f\xb1\x87\x0c\ +%K5l\x90\xfc{ga\xcf4\x16z\x0fC\x1f\ +\xf9\x19)\x9d\xd0|\x9b\x08M\xa8\xf7f\xe4\xdbL]\ +\xf2\xe6~\xf0\xc2\xe2-3F\xfa\x8d\x88\x83\xd6\x92\x03\ +t\x19\xf5\x22\x07\x00\xc2\xc8\xb3\x8em'\x1d\x1434\ +'B}\x86\x9a\x86\xc6\x95{\xcb\xa3\x98(]\xf8\xde\ +\xfc$:\xa4\xa6]&f@\xca\xdc\x92\x0d\x12\x9cH\ +J\x1a3\xc5L&\xcd?\xcb\xdeL\x9f\xc6\xa8KB\ +\x14\x1d8R\xb6\xa2\x14\x84\x815\x0a\x93\xbc\xbd\x10\xa7\ +Ot\x8a\xc3\xa2\x8a\xa2\xde\xa1\x1d\x14\x17\xf4SP\xaa\ +\xa9\xf9\x09\x12\xab\xd7\xf9Hw\xf6\x92\x8bI\x87\xce\xd1\ +\x0a\x93\xe8\xe02\xd4\xaf\x95\xbdU\x13\xc9\xfe\x95\xe4b\ +#\xa6\x1d/\xa70\xfd\xffE\x95\xca\xf1\xb3\xcd\x17/\ +\x1d\x8f\xcf_=~\xc9R\xbf\xf7\x8c~\x0c 6>\ +&|\xf4\xef#>\x81\xa4\xc4\x8b>~\x1f\xb84\xcf\ +\x14}\xee\xcf\xc5\xaf\xadh\xeas\xf5wR\x85y\xd6\ +!\xde\x05\x17;\x9a\x8b:\xb8I\xe1\x07\xb5\xa96@\ +\xc2qr\x19\x02h]\xd7\x97&t[\xc8\xe4Qc\ +I2\x97\x1a\xb2K\xddJ\xffmt,\xcbX\xf0\xc2\ +\xa9\x0c\xce\xde\xd7U\xa4\x5c\xed\xb2g\xdbM,\xd5\xf8\ +\x9a\x18\xd1\x1d\xc6\xcc9\x09\xdda\x8ac\xbc\xd8\xe1\xbc\ +\x15<\xd4j\xc8\x8b\x9emW|\xdd\xbd\xb0!%\xaf\ +\xed5\x87I\xd5\xa8\x9d\xd4\xc9\xe3\x8c\xdd\x10|\x86\x97\ +\xa7%\xe0\xf9\xb930\xd5\xa9\xba\xa3{\xdb\xa4\xd6G\ +\xea\x9b#]\x1dy\xbc\xec\xa8\x8f\x11\xa5\xee\x9bB%\ +\xe7\x1c\xbd)\x225H\x96\xea{[;;N\xdbP\ +\xa19\x1c\xa3\xb8\xe0{\x92iMH=\xd7\xb4\x94\xbd\ +/\xa5\xaf\xefVL\xded\xe8\xaa\xd0\x81?\xe1\xa2\xcd\ +\x09S\xaaf\xaf5\x95-\x9e\x9b\xd4\xa3(~\xb4\x12\ +\xd9R\xdd\xf5L\x01\xc8\xfc\x97\xe1\xf8\x10\xc9\xd9\xc8\x9a\ +x\xd4\x978\x9cV\x07\xe6T\xea\xb3%\x1e\xae\x95\xbb\ +Bl-\xb5\x91\x17W\xc62\x86\xb1T\x8e2\xcc\xc6\ +2\xeb\x8ab\x93\xa4\x22d\xbbX\x99Co\x0dh\xa5\ +c%\xfeY\xb1\xfb\xa0\xb5;m;\xb54\x7fr_\ +\x9dY\xaa\xc9[\xd9\xe7\xb4C\xe8\xd7j\xce\x89\x02}\ +A\x10\x93@k\xf1\x85\xb7\xb5>\x08!*\xe4\x95\x07\ +x\x93\xd2|)\xddW\x84S\x1d\xf6y\xfbeC6\ +\xfe\x82gq\xaf\xae\xef\xba\xc6\xb9e\xf8\x8d\xda\x05\xb2\ +\x0a.\x01\x80#\xe6\xd6\xf0\xb9\x1c\xb8M)U\x05E\ +A\x11\xa6'\x06))\xc4g\x1b#\xb6\x8a\x1fI\x16\ +%T\xb69\x88\xd9\xc0_R\x1ef\x02\x17/4\xed\ +eP\xfdJ\xc9\x9e\x94+\x8c!\xf4\xb5J\x5ct\xc8\ +W\xd8\xcb\xc9V\xa2{y\x0f\x04\xb4f\xad\x88\xe4)\ +P\xfa8\xa7\xcc\x8e`\x18\xb3O\x9dc\xd8\xb7\xa7\xd8\ +h\xc8H\xcf\xbf\x1d\xf9\x05\x0e\xce\x8b\xee\xcd\xf1\xc2\xa3\ +\xf8}\xa1\xa6 \xe5S\x22\xd4D\xe0_\xe2Z\x17\xe0\ +\x17\xc7\xa5\xad\x16_\x90#Z\x19\xcc\x1d\xa5\xd4\x88\x7f\ +\x15\x12|\x03\xd5\x9e\xdaDu\xac\x9e\xca\xf4\xcf\xda\xf2\ +0\x0a+O\x09\x98T\xbe\xc6\x18\x92&\xfb\xedX\xee\ +\xc4\x1eu\xe2\xc8\x9f\xa1\x10|\x19M\x8b\x93M\x015\ +-\x03#\xe5\xfe8u\xc8\xcf]C\xa4\x22n\x1a\xd6\ +\xca\xeaZI\xad\x02\x13\xf6s\xf9\xee\xd9\xbc\xdbW\xf4\ +Z\x92\xab*\xac\x1e\x9b_\x14\xa94\x11[\x1c\x8b\xa7\ +C\x93,u\xefJ\x81@\x86A\x0f\xb80\x5c\xecP\ +\xb8\xba\x88M\x91h\xfe\xb9\x5c\xa5B\xe1\xc9)\xba\xc2\ +\xe0\xfe\xb5\x1eP\xb8\xbcT\x92GJx'Z\x87,\ +\xc2\x13M\x89\x97\xed\x9a\xfe$}M\x01N\xc9\xd3\x17\ +9j\x8fXP\xce\x08\x03SYd\x93\xb8\x06\xb5\x94\ +\x17\x02\xdb\xd2\xec\xab\x8c\x90m\xf1l.]\xb6\xe5\xc9\ +a\xd5%\xde\x96\xb3\xd7=\x93\x9f\xea\x16>\x84\x15\xd2\x19+\ +O)FydY'\xa9\xd5\xdb\x15\xfb\x0c\xd9\xb9`\ +tR\xaf]\xdf\x8d\xac\x15\xddr\xc4\xea\x91\xeb\xe5Z\ +\xb6\xaa\x18\x92W\x15\xe5UK\xf6D\xda\x9eP#\xf4\ +\xcf\xbf\xf8\x14\xb2\x9f\xa6#\x80\xee\xd4\xe1\xd2\xc8j\xc7\ +\xd6\x88@\xf2i\xfc\x1e\xa4\x0ak2\xae\x93\xd6z\x9a\ +\xea\x9f\x88\x8d!s\x97\xeb\xc3|)\xbd7gC\x85\ +t\xea*\xba\x8er\xfa>'[/AN\xa7\x1cM\ +\x1fGh>FOI\xb2nB\x89N\xce\xdcv,\ +\xf3\x0aJ\x90\x10\x93b~\xd67\x8c/)\xcd\xefw\ +\xac*\xbcj\x90I\xf3%\xf3Y~\x96\xf9\xec?!\ +q\xf7\xc2\x87k\xa6_h9\xfb\xa0\x8b\xb3\x08\x920\ +\xfd\xfcK\xc4\xc3A\xc4\x11\xbe\xf0\x8b1\x9f\xf9\xd0L\ +\xfd6M\xb0\xbe\xef\xfe\xb9\x1f\xd3\xe9-)\x9bk\xfb\ +\x8b?\xa0\xd3\xd1\xeen\xba\xe1\xbbi\xad\x99l\xb6:\ +\x0f>\xad\xf2\xf2\xcdg\xcb\xbe\x9e3\xf6\xddG \x1e\ +\x97\xa7\xc3\xc3\xc7oP}\xe7\x18)\x8d\x88\xff\xb5f\ +\xf0\x8b\xe8C\xb1X\xd9e\x13V\xd2\x95\xc9\xb7).\ +\xbc\x9fg=\xa7\xff\xb6#\xd6\xde\xaar\x97\xdeJ\x19\ +A\xf0,\xbeQ\xef`\xfej$\ +>\xfb\x9e\x08\x7f\xe5\xc2\x87E\x89\x16H\x0a\xe4\x06\xe7\ +)dP\xbdL]+\xb9\xdd0\xfe\xc6\x89\xac\x1aK\ +~\xd0\x9fW\xf8\xe9\x9d\xd7_\xfd'\xe6x\x8a\xe2\ +\x00\x00\x0do\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x18\x92\ +-x=\x2269\x22\x0a ink\ +scape:window-y=\x22\ +27\x22\x0a inkscap\ +e:window-maximiz\ +ed=\x221\x22\x0a inks\ +cape:current-lay\ +er=\x22text4524-9\x22\x0a\ + inkscape:pa\ +gecheckerboard=\x22\ +0\x22 />\x0a \x0a \ +\xce\xb9\x0a +<\ +/tspan>\x0a \ + \x0a \x0a\x0a\ +\x00\x00\x07{\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -image/svg+xm\ -l\ -\ -\ -<\ -path\x0d\x0a s\ -tyle=\x22opacity:1;\ -fill:#20a867;fil\ -l-opacity:1;stro\ -ke:none;stroke-w\ -idth:0.270178\x22\x0d\x0a\ - d=\x22m 96\ -.602632,-168.129\ -64 v -18.91247 h\ - 24.316028 24.31\ -603 v 18.91247 1\ -8.91247 H 120.91\ -866 96.602632 Z\x22\ -\x0d\x0a id=\x22p\ -ath1777\x22 /><\ -/g>\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \ +\x0d\ -\x0a\ -\x00\x00\x06\x88\ +r-curvature=\x220\x22 \ +/>\x0a\x0a\ +\x00\x00\x04\xb2\ \x00\ -\x00\x1f\xe7x\xda\xedY[o\xdb6\x14~/\xd0\xff\ - (/-fI\xbc\x93R\xed\x16\x18\x8a\xa2{\xd8\ -\xcb\xd6m\xc0^\x0aE\xa2\x1d5\xb2dHr\x9c\xe4\ -\xd7\xef\x90\xbaX\xb6\xe5\xa0\xc8\xba+\xec&\x8d\xce\x85\ -\x87<\xdf\xf9\x0eE&\xf3w\xf7\xeb\xdc\xb9\xd3U\x9d\ -\x95\xc5\xc2\xc5>r\x1d]$e\x9a\x15\xab\x85\xfb\xcb\ -\xa7\x0f\x9er\x9d\xba\x89\x8b4\xce\xcbB/\xdc\xa2t\ -\xdf\xbd}\xf9b^\xdf\xad^\xbep\x1c\x07\x86\x17u\ -\x94&\x0b\xf7\xa6i6Q\x10l\xb6U\xee\x97\xd5*\ -H\x93@\xe7z\xad\x8b\xa6\x0e\xb0\x8f\x03w\xe4\x9f\xec\ -\xfd\x93J\xc7Mv\xa7\x93r\xbd.\x8b\xda\x0e-\xea\ -\xab\xb1w\x95.\x07\xf7\xddn\xe7\xef\xa8\xf5\xc2a\x18\ -\x06\x88\x04\x84x\xe0\xe1\xd5\x0fE\x13\xdf{Gca\ -\x9dSc\x09B(\x00\xdb\xc8\xf5+\xdd\xa2\x1a\xc0\xd9\ -\xc0\xf7\xe0\xdf+\xfc\xba\xdcV\x89^\xc2@\xed\x17\xba\ -\x09\xde\x7fz?\x18=\xe4\xa7M:\x8e\x93\x15\xb7u\ -\x12o\xf4\xc1\xbc\xbd\xb2\x85!^\xebz\x13'\xba\x0e\ -z}\x1b`\x97\xa5\xcd\xcd\xc2\xe5\xd87\x0bD\xb8\xd5\ -\xde\xe8lu\xd3\x9c\xa8\xef2\xbd\xfb\xbe\xbc_\xb8\xc8\ -A\x0eS\xf0\xd5\xea\xb3t\xe1Bj\xa4\xf3\xdaS\xa0\ -\x1b\xd7O\x19\x0d&\xe4\x87\xc4g\xce\xabmq[\x94\ -\xbb\xe2u\xeb\xd7g\x18\xa5ebV\xbcps(h\ -\xf1\xf9\xe6a\xa3\xabd{\xad\x89o\x10|k\x9c\xe7\ -k\xdd\xc4i\xdc\xc4vd\xbb\x86^\x85I\xeb\x03^\ -P\xce\xe8\xa7\xf7\x1f:\x11\x14I\x12\xfdVV\xb7\xbd\ -\x0c\x1f\xe3\x12_\x97[\xc8\xd7}\xbb\xd7\xcf\xd3$\x82\ -\x02\xac\xe3\xe6m\xb6\x8eW\xda\x14\xef;\xc0{\x1e\xec\ -\x0d\x87\xde\x0d,s\x14\xb7\x8d\x5c\xe9\xb6\x96\x93\xacN\ -\x93ufF\x05?7Y\x9e\xff`\xa6q\x9d\xe08\ -l\xd6\xe4z\xa4\x9d\x07]\x0e}\x8e\xc18\xc9y\xd0\ -\xa3\xd0\x8a\xa9^\xd6#\x88\x8c\x88\xd1\x00\xcfP\x19\x00\ -\xb8\xde\xe8\xc4\xb4\xcf0\xfbP\x0e\xb3\xc4\x85{\xe8K\ -;\x06:\x07\xf5\xdd|\x06vp\xea\x0b\x22iH\x9d\ -\xc8\xc1Pi*\x89\x94\xe6yz\xc4\x83\xe1S\xe4p\ -\x81|\x86\x113\xa3\xd0\xb4\xe7\xe3\xc2e\xd4gB`\ -d\xe2\x11\xe5KN\x05agbw\xeb\xf4\xca*[\ -e@:A}\xae8\xc1\x0a\xfc\x85\xaf\x18\x12\x8a\x1f\ -\x0d\x05\x84FH\xc0\xc2q_\x0f(;@\xd7>\x0e\ -\xc0\x18\x92\xa6\xa6+\xba\x08\x1b(`R\xe6e\xb5p\ -\xaf\x96\xf6\xd3\xc7\xbe.\xab\x148\xdc\xd9\x84\xfd\x1c\xda\ -JhO \x03\xb4M\xaf/\xaf\xbf\xc0:\x9a2\xd7\ -U\x5c\x18\x06\xe1\x01\x97U\x05};i\xd8f\xa9\x9e\ -\xb4\xeca\x81E\x0e\x93M\x9b\xeb\x9b8-w\x0b\x97\ -\x9cXwY\x01\x16\xaf\xdb6\xb0\x12\xf4\x9cK\xbf\x87\ -`D\xb8;b\xe0\x80\x99\xea\xb5\xf5M\xb93\x09-\ -\xdce\x9c\xd7\xfa$\xe0cY\xae\xed\x0b\x85R\x821\ -;\xb1'\xc09\x8f \xecC\xb9\xa885C\x9a\x94\ -b\xd8q(\x09\xcf\xad\xd6\xd0V\x9e3B\x00r\xd6\ -\xb8\x8e\xef\xb3u\xf6\xa8\xd3Q\xe5\xf6so\xab\x0a^\ -[^\x1e?\xe8\xaa\xdb${Bm\xe2\xe6\xa6\xf3\x87\ -\xb1?:h\x86\x9c\x8ff[\xfd\xd5\xfc\xf7\x11\xb6\xd8\ -\xdf\xc7\xb8\x19\xf7\x89\xdc\xcb\xa2\x00\x92\x94\x95\x07S\xdd\ -\xc5\xcd\xb6\xd2\xa3\xa2\xd6\xcdC\x0e\xf2\x126\x97\xa8\x80\ -\x97\xee0\xf7j\x14x\xc50\x9f\x1cq\x85P\xca\xe2\ -\xf8M\xddT\xe5\xad\x8e\xae\xc8\xb5\xf9\xd7\x89^G\xa1\ -hH\xba\x01\xca\xd5fc\x84\x8d8n\xaa\xec\xfe\x15\ -\xf6\xa1`\x0cQ1\x83\xdcf \x09\xe88\x81gP\ -,\x9fbAQ8\xf3\xb0\xf2\x89\xe2\x5c\xd1\xd7\xc3\xa6\ -\xb4\x1a\xfaq\x14\xd2>\xc2\xeb@CT\x84\x84$\x8a\ -B\x1c\xee+%I\x18\xbe>\xecaH\x89\xb1\xbd\xea\ -9I\x0d\x1b\xee\xb8N\xd3\xa1\x8c\xb0\x1f\xd9\x8a\xd56\ -\xd7\x91\xbe\xd3E\x99\xa6g\xe6\xb2=\x14!\x1f3\xaa\ -\xb0\xa2\xb4\xd7\xe7\x19T4\xdeDU\xb9-\xd2\xb1\xf2\ -K\x99\x15\x87Zx{\xe8*\x07\xfa5\x11F\xbd2\ -\x8d\xa1}\xab*~\xb0%\x1fk\xcb\xe5\xb2\xd6M\x84\ -\xce\x96\xd02\xf1h;\x84\xec\xa9\x0c\xe9\xc4\xfez\x86\ -{\x7f\x1fr\x08I\x85\x09\xff\x17\x03\xa7Px\x01\xee\ -Y\xc0a|\x01\xeey\xc0\xc9\xe7\x00\xb7:\xda?\xe1\ -4\xf6\xe7\xf6\xcf\xfdq\xf5\xa0&_\xfd\xea:j#\ ->\xd6\x9b\xa3\xbeCC\x9f)\xc2\x11\x99\x11\xec\x0b\x09\ -'A\xee@\x810Q\xf0\x82\x81\x07B\x84U08\ -\x7f\xccl\xe5\xb0\x938\xd6\x80\x99UPe\xed!\xc1\ -V\x0c\xad(\x10\x16\xb36\x8e\xb4\xf1\x14Q\xd6\xcc\xa9\ -\x15\x85\x90\xad\x18:f\x16\xb89Z\x11\xe62\x22\x95\ -\x9c\xcc\x84O\x88\xf6\x98U\x08\x82\x89u`\xad\x1c\x12\ -\xeb\x8f\x19w\xf26\x00\xed\x96\xc7\xe8\xe9\xf2\x1f\xc7Y\ -wU\xe8!F\xbe\x22\xd4\x5c\xce\xc8\x9bo\xcap8\ -aA\x8e\xec\x9f\xa4\xf8\xf8\xb2\xf3M\xd8#O\xd9\x83\ -|\xce$\x0f\xa5a\x0f\x5c'('\x86\x1d\x16z$\ -m\xe5)T\xc9\xca\x02\x8e\x1bV\xc1\xa5l\x15DZ\ -\xae\x00\x83\xda\x01\x98Y&\x91\x96\x1a*4\x92\x12\xcc\ -\x96\x9a\x10\x19B\xad\xe1I\x86\xc2r\x81p`\x9e\x19\ -'1\x9c\x80\xe0Bc\xc8\x92X\x0d\xc3R\xcd\x08\x14\ -\xa1\xe7\x0f\x9c\x0bZ\x82Qid\x0c4\xe5-]U\ -\xeb\x80\x05; \x18\x09\x95\xe8\xe9~ \x03a/t\ -\x9aW\xc0\x99S\x10\xbebgk\x132\x5cA\xc0'\ -$\x9fLh\xb4t\xf6\xf4\xca\xf7\xc8n\xe2\x0c.\x0a\ -\xf6*\x18\xad\xe3\xea\x16\xae\xa1\x8eY\x97\xd3z\x8eK\ -g\xee#\x0cN\xbepl<`6\x5cb\x081\x97\ -h!\xc3\xb1\xbe\xbf\x8a\x11\xc39\x81\xc9\xd8\xd6\xdd\xe4\ -\xa0\x0b$c\x8a\xab\xe3\x0e2\x80QI\xe5\x01\x8a:\ -\xcf\xb3M=\xfeeGe.\xae>\xa3R u\x10\ -\xbf\xba\xb7\x068\x8f\xc3\x99}l0\xd728\xbf\x13\ -\x81F\x17Dkh\xd3\x90\x92QN\xa7\x1a\x9a\xf1C\ -\xfd\x11\x93\xf1\x9b\xffB9\xff\x128\x99\x1fb\xb8%\ -\xcbc8\x19\xf5\xc3pt7>F\xd3\xbb\xe0y\x16\ -O!N\xf1\xa4\xb0is\xd8+\xf9Y@\x05\xb9 \ -:\x81(\x85m\x0b\x09\xca\xf1D\xc3\x0b\xc1p\xa8\xce\ -ST\x5c\x10\x9dF\x14\x0e\xebB\xe0\x89\x9e\x87\x17\x04\ -\x9cO\xcf#\xea\xc9\x0b\xa4g \x15$\x14t\xa2\xed\ -\xe18\xa6\x98z\xa2\xed=~\xc1t\x02S\xc6}8\ -b\xc3\x90\xe74\xfe\xe5\xf5t\x0eS8;\x85XM\ -\xb7>A\xf4\xa9\xd6\xbf\x10\xf5<\xa8!!\xcf\xeb}\ -\xef\x7f\xf4\x92\x9a\x07\xab\xee/_\xe6\xe7\xdc\xfc\xfd\x13\ -~\xfe\x01\xa1d\x16\xaa\ -\x00\x00\x0e\xfb\ +\x00\x119x\xda\xddW\xdfo\xdb6\x10~\xcf_!\ +(/\x0dfQ$EI\xa4j\xbb\xc0\x10\x14\xd8\xc3\ +^\xb6\x0e{\x1c\x18\x89\xb6\xd5\xc8\xa2A\xd1v\x92\xbf\ +\xbeGY?\xec\xc4\x09\xd25\xed\xb0\xda\x09\xe0\xbb\xfb\ +\x8e\xe4}w\xc7\x93\xa6\x1f\xee\xd6\x95\xb7S\xa6)u\ +=\xf3\x09\xc2\xbe\xa7\xea\x5c\x17e\xbd\x9c\xf9\x7f}\xfa\ +\x18p\xdfk\xac\xac\x0bY\xe9Z\xcd\xfcZ\xfb\x1f\xe6\ +\x17\xd3f\xb7\xbc\xf0<\x0f\x9c\xeb&+\xf2\x99\xbf\xb2\ +v\x93\x85\xe1fk*\xa4\xcd2,\xf2PUj\xad\ +j\xdb\x84\x04\x91\xd0\x1f\xe1\xf9\x08\xcf\x8d\x92\xb6\xdc\xa9\ +\x5c\xaf\xd7\xbanZ\xcf\xba\xb9<\x02\x9bb1\xa0\xf7\ +\xfb=\xdaG-\x88\x08!BLCJ\x03@\x04\xcd\ +}m\xe5]p\xea\x0ag<\xe7J1\xc6!\xd8F\ +\xe4\xebPY\x03\xacl\xe0\x7f\x80\xf7\x0a\xd4\xe8\xad\xc9\ +\xd5\x02\xfc\x14\xaa\x95\x0d\xaf?]\x0f\xc6\x00\xa3\xc2\x16\ +G\xcb\x94\xf5m\x93\xcb\x8d:\xd9\xb5W\x1e\x18\x90k\ +\xd5ld\xae\x9a\xb0\xd7\xb7\xfe\xbd\x90\x1d\xe7\xcb{\xc7\ +p\x14K\xb6\xb8ab\xe2QLq\x80\xe3\x00\x93\xab\ +\xd6\xa5?EV\xe8\xdc-;\xf3eQ\xfc\x03\x09]\ +\xaa\x1a\xf5\xe1\x95\xc5\xcc\x87\xdfI+\x1c\xadM\x0e\x8a\ +R\xed\x7f\xd5w3\x1f{\xd8c\x1c\xfeZ\xf5J\x95\ +\xcb\x95\x9d\xf9\x9d\xb8/\x0b\xbbj\xa59\x88\xd3\xb5\xb2\ +\xb2\x90V:\xd3a\x83^Ch\x8b\x00\x0c$.\xfb\ +\xe3\xfa\xe3A\x029\xcf\xb3\xbf\xb5\xb9\xedD\xf88\x80\ +\xbc\xd1[\xd8\xc5\x9f\x0f\xeai\x91g@\xf5Z\xday\ +\xb9\x868\x5c\x96~\x01j\xa7\xe1h8\x01\xdb\xfb\x8d\ +\x1a\x17=,k\xd4!gg\x0b\xb7\xc8\xd7\xa5s\x0a\ +\xff\xb4eU\xfd\xe66\xf1\xbd\xf0\xd1\xa2\xa5\xad\xd4\xbc\ +\xdd\xf3\xf0\xb3\x8f\x22\xec\xc2\xe8\x82\x0c\x8f\xa2\x9c\x86=\ +\x09\xadT\xa8E3\xf2\xe3$\x82\xbb}\xa6C\xde\x5c\ +\xd2\x0a\x97\x82\x0e\xd9\x97\x00\xe4s\xeb\xba+0\xdaB\ +\x0b\xb9\x84a\xff\x11&\xdf\x1a\xe3 \x95\xbcW\xe6(\ +\xc5G\x90}Y\x17z\x1f\xac\xe5]\xb9.\x1f\x14\x9c\ +\x83<\x03\xb9\x9f\xf9\xf49w(\x8e\xe4\xe9\xee\xe0\xc1\ +P\x1a\x89\x98\xf2'\x8b\xe6\xe0\x12\x10\x02\xf5\x1ba\x92\ +>\xb6>h\xbd\x9e\xf9\x11bi\x92`\xce:s\xb3\ +\xd2\xfb\xa5q\x5c-d\xd5(\x7f\xe4n \x89?s\ +\xc0\xbeX\xc9\x99\xcd:HW\xc0\x84?\x8dd\x03\x05\ +\xd0\xac$\xa0\x80\x83sF\x0d\xcd\x0a\x153\xa6`\xb9\ +-\x0beu\xa5\x8c\xac]\x91\x91\xc1\x00\xe7?\xa7\xd7\ +7\x9fUn\xcfYn\xb4)\x94\x19v '\xea\x5c\ +W\x1a2{\x99\xb4\x9f\xce\xe4N\xd4\x1b\x16\xed\xa7\xaf\ +\xaa\x8d\xb4\xab\x03f\x01\x85\xed.\xf3\xfa\x98Fg\xee\ +\xe3\x03\xf1wh\xf8\x15\xe3;\xc6W\x01\xe3\x0f\xfd\x22\ +\xcb\x03\xc0\xc2A\x1b\xd7n\xd0\xda\xd2\x9a\xf2\xee\x1dF\ +$\xe1\x98a\x16M\xb0\xfb\x8e\x22\xa5\x08s\x9a&t\ +\x12$(!)e1\xbf:\xdax\xc9\xa3>\xae\xc6\ +\xdeW\x10\xbe;_v)\x95\xfb\xbewB\xd01\x90\ +\x91\xf7\x8d5\xfaV\x0d\xd6\x83\x18Te\xad !\x99\ +\xd1\xdb\xba\xe8\x95\x83S\x7f\xe7\x8c\x0c\x1c\xdd\x8d\xb5\x86\ +dA\xbf\xc3 \xc8s\xbf7\x8f\xb5\xaakX\xdaj\ +\x13@C\xed\xa4\xdd\x1a5fzd\x8e\x13:\xe8\xdc\ +}\xe7\x89\x18aAD\x1aM\xe2\x04A\xd0\x94E\x1e\ +\x06\x15c\xe9$\x15(\x151\x16\xe9\xe0\xf2\x8a\xc0[\ +\xd1l+\x95\xa9\x9d\x82C\x17\xcfP\xd1\x96rF\x92\ +\x17\xa9q\xca\xcf\xba\xac3\xb8\xeb\x94\xe9\xb5\xadP\xc1\ +]`3\xd6\xeb\x0a\x09\xc5o\x8c\xbc\xcf\x5c\xbd<\xa5\ +\xb6\xbf\x1a\xbf3\xb9AtJ/\x89\x18\x12\x09\x012\ +\x81\xe8\x18X\xe5\xa9\x17\x1cx%\x98OZ\xa6\xe3\x9f\ +\x86\xdei\xb8|\xd4\xc2=5\x02\xa7c\xcf\x02-\x09\ +\xe2D\x10\x025\x86\x04\xa3\x98\x8b\xc4U\x1d\xe1)\x9d\ +\x10\x8aR\x1c\xa7L\xb0o\xed\xb6\x03\x07\x11\x82\xc7\xb0\ +X\xfcX\x22\xce1 \x8e\x19\x10(\x81\x8b'\x8e\x93\ +\x09\xc5(Mx\x14\x11\x8f0\xc4\x22\x12\xa5\x82M\xe0\ +\x81\x0c3\x9a\xbe\xc0\xc0K!\xb3\x7f\x11\xecc2_\ +\x13\xfdi\x16^\x88\x9d\x90\x93\xecG\x88@\xdd\x132\ +\xa1)bq\xc2p\xecq\x04\xe1Fq\xdcF.\xb8\ +\xa0o\x95\xfc\x88'\x9c\xfe\xe7\xc9'\xd1\x09\x01)\xa2\ +\x98\x117t\xa0\xfe)\xe7\x5cx.n\x02\x9d\xe0\xea\ +?\xc6\x98\x90\xf8\xcd\xca\x9f2\x91\xfeX\x06\x96\xdfw\ +N\x9e\x0e\xe5\xe1\xce=7\xedq\x02\xefHI\xc2\xba\ +i?\x88\x14A\xf7\xa5\x11\xbc\x8e@\xe5a`H\xb0\ +\xab\xb3\xf3\xf7\x7f{%\x7f\xc3\x98?\x1eh\xc9W\x8f\ +\xc3g\xa6\xea\xf9\x09\xfcs\xd0\xfbuc\xfe\xe4y!\ +H\xdf\x96\xe0v\x06O\xdd\xfb\xe6\xfc\xe2\x0b\xf3\x95L\ +\xd2\ +\x00\x00\x12\x86\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +g/2000/svg\x22\x0a x\ +mlns=\x22http://www\ +.w3.org/2000/svg\ +\x22\x0a xmlns:sodip\ +odi=\x22http://sodi\ +podi.sourceforge\ +.net/DTD/sodipod\ +i-0.dtd\x22\x0a xmln\ +s:inkscape=\x22http\ +://www.inkscape.\ +org/namespaces/i\ +nkscape\x22\x0a sodi\ +podi:docname=\x22de\ +lete_conn.svg\x22\x0a \ + inkscape:versi\ +on=\x221.0 (4035a4f\ +b49, 2020-05-01)\ +\x22\x0a version=\x221.\ +1\x22\x0a id=\x22svg2\x22\x0a\ + viewBox=\x220 0 \ +48.000001 48.000\ +001\x22\x0a height=\x22\ +48\x22\x0a width=\x2248\ +\x22>\x0a \x0a \ +\x0a \x0a \x0a \x0a \ \ image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -45\x22 />\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00(\x99\ +#999999;fill-opa\ +city:1;stroke:#9\ +99999;stroke-opa\ +city:1\x22\x0a i\ +d=\x22g878\x22>\x0a \ +\x0a <\ +path\x0a st\ +yle=\x22fill:#ff2a2\ +a;fill-opacity:1\ +;stroke:#999999;\ +stroke-opacity:1\ +\x22\x0a inksc\ +ape:connector-cu\ +rvature=\x220\x22\x0a \ + d=\x22m -28.51\ +9885,1068.7688 c\ + 0.90506,1.2212 \ +1.246811,2.6732 \ +1.10285,4.0743 l\ + 15.161239,6.500\ +5 c 0.296039,-0.\ +3564 0.63195,-0.\ +6925 1.01758,-0.\ +9783 0.38563,-0.\ +2858 0.804907,-0\ +.5094 1.231945,-\ +0.689 l -1.78370\ +9,-16.2284 c -1.\ +440516,-0.2642 -\ +2.790128,-1.0438\ + -3.730887,-2.31\ +32 -1.970903,-2.\ +6593 -1.41148,-6\ +.4222 1.247784,-\ +8.3931 2.659263,\ +-1.9709 6.422130\ +6,-1.4115 8.3930\ +326,1.2478 1.970\ +9022,2.6592 1.41\ +14784,6.4221 -1.\ +247785,8.393 -0.\ +385631,0.2858 -0\ +.804907,0.5095 -\ +1.231945,0.6891 \ +l 1.783709,16.22\ +83 c 1.4405165,0\ +.2642 2.7901283,\ +1.0439 3.730888,\ +2.3133 1.9709023\ +6,2.6593 1.41151\ +19,6.4221 -1.247\ +7515,8.393 -2.65\ +92635,1.9709 -6.\ +4221301,1.4115 -\ +8.3930331,-1.247\ +8 -0.940792,-1.2\ +694 -1.294168,-2\ +.7874 -1.127876,\ +-4.2425 l -15.16\ +1273,-6.5003 c -\ +0.277881,0.3304 \ +-0.595667,0.6406\ + -0.957189,0.908\ +6 -2.586939,1.91\ +73 -6.237918,1.3\ +745 -8.155238,-1\ +.2124 -1.917319,\ +-2.587 -1.374518\ +,-6.238 1.212422\ +,-8.1553 2.58693\ +9,-1.9173 6.2379\ +18,-1.3745 8.155\ +237,1.2124 z\x22\x0a \ + id=\x22path2\ +-3\x22 />\x0a \x0a \ + \x0a \x0a\x0a\ +\x00\x00\x09-\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x09\x09\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \ + \x0a <\ +path\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path812-\ +3\x22\x0a d=\x22M 1\ +44.62039,46.8043\ +35 46.040128,146\ +.05858\x22\x0a s\ +tyle=\x22fill:none;\ +fill-rule:evenod\ +d;stroke:#b3b3b3\ +;stroke-width:21\ +;stroke-linecap:\ +round;stroke-lin\ +ejoin:miter;stro\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \ +\x0a\x0a\ +\x00\x00\x0c\xed\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1863\x22\x0a inksc\ +ape:window-heigh\ +t=\x221025\x22\x0a id\ +=\x22namedview6\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x223.390625\ +\x22\x0a inkscape:\ +cx=\x22-152.89201\x22\x0a\ + inkscape:cy\ +=\x2282.051545\x22\x0a \ + inkscape:windo\ +w-x=\x2257\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg4\x22 />\x0a \ +\x0a \x0a \x0a \ +\x0a \ + Bus\x0a \ +\x0a\x0a\ +\x00\x00\x07\x9e\ +\x00\ +\x00&\x19x\xda\xddZ\xdd\x93\xe2\xb8\x11\x7f\x9f\xbf\xc2\ +\xf1\xbe\xecV\xb0\xac\xd6\xb7\x08\xccU\xe5\xb6\xae\xea^\ +\x93\xbb\xba\xc7\x94\xb1\x0d\xe3\xac\xb1)\xdb\x0c3\xf7\xd7\ +\xa7e\xb0\x01\x1b\xae\xf6v\xc8\x0e\x89\x99\xa9B\xea\x96\ +\xd4\xfa\xa9?ef?\xbc\xacs\xef9\xad\xea\xac,\ +\xe6>\x10\xea{i\x11\x97IV\xac\xe6\xfe\xaf\xbf\xfc\ +\x14\x18\xdf\xab\x9b\xa8H\xa2\xbc,\xd2\xb9_\x94\xfe\x0f\ +\x8f\x0f\xb3\xbf\x04\x81\xf7c\x95FM\x9ax\xbb\xacy\ +\xf2~.\xbe\xd4q\xb4I\xbd\x8fOM\xb3\x99\x86\xe1\ +n\xb7#\xd9\xa1\x93\x94\xd5*\xfc\xe4\x05\xc1\xe3\xc3\xc3\ +\xac~^=x\x9e\x87\xeb\x16\xf54\x89\xe7\xfea\xc0\ +f[\xe5-c\x12\x87i\x9e\xae\xd3\xa2\xa9C \x10\ +\xfaG\xf6\xf8\xc8\x1e\xbb\xd5\xb3\xe74.\xd7\xeb\xb2\xa8\ +\xdb\x91E\xfd\xe1\x84\xb9J\x96=\xb7\x93f\xc7[&\ +\xb0\xd6\x86\x94\x85\x8c\x05\xc8\x11\xd4\xafE\x13\xbd\x04\xe7\ +CQ\xc6KC\x19\xa54D\xda\x91\xf3\xeb\xb8\xa65\ +\x02\xba\xc1\xff\x9e\xbd\xeb u\xb9\xad\xe2t\x89\xe3R\ +R\xa4M\xf8\xf9\x97\xcf=1\xa0$i\x92\x93i:\ +<\xcfV=\x03\xb9\x88\xd6i\xbd\x89\xe2\xb4\x0e\xbb\xfe\ +v\xfc.K\x9a\xa7\xb9/L\xdbzJ\xb3\xd5S\xd3\ +7\x9f\xb3t\xf7\xf7\xf2e\xeeS\x8fz\xc2\xe0\x1f\xa1\ +\xee\x81\x96\x9a%s\x1fw\xc3\xf6\xacGM9P\x0f\ +\xabL{\x0a%\x96\x11\xee}d\x82J)\xd4\xc4c\ +\x14L@y\x00\xf0\xa9\x1d\xd2mo\x9a\x94\xb1\x93w\ +\xee\xc7e^V\xffZUYB\x1cn\x8f\xc85K\ +\xd2e\xed\xb8\xf7\x02\xb8\x96\xf0\xbd\xb0%\xf5\x13\xb8\xd1\ +\x89\x93\xfe\xc8\xb8\x88\xea\xfd\x8e=o\x13\xad\xd2v\xe6\ +\xb9\xffa\xd9>\x07\xc2\xa2\xac\x92\xb4\xeaH\xaa}\xce\ +H%\x22\x985\xaf{{8\xcc\xdd\xed\xd3\xcd\xda\xd3\ +\xe9ez\xfd\x14%\xe5n\xee\xb3!\xf1\xf7\xb2\x5c\xe3\ +\xac\x8c\x80\x90\x86\xf3!9\xc63\x00I8\x13R\xc3\ +\x88\x88\xeb1M\x0ch\x0abHD(\xb7\xceb\x82\ +m\x915\xa8\x95\x9b\x97\xd1\xf0mU9\x86\xd2\ +I\x00\x94\x0a\xc2\x15c\x9f:\xd4W\xdd6\xdc\x1c\xa7\ +\x8aw6\x09\x82Xe/\x1f)1J\x81\xe2\x92O\ +\xa8\xfb\x1c\x9b\x8c(\xa9\xb5\xd1v\x02\x5c\x13\xd0\x8c\x1f\ +\x1cJ\xab\xc3\xcdk\x8e\x12/\x11\xbd\xe9\xc1\xda\xffV\ +7U\xf9%\x9d~\x10\x89\xfb\xf4\xe79\xdbD\xcd\xd3\ +\xf1t\x8e\x16R\x16E\x1a7e\x15\xa0\xad)\xb8`g\xe8\ +\x1d\xadvv\xc6\x0d\xd1J 0\x92\x08e\x0c\xb7\x13\ +E\x18\xa3\xdf\xaeO\x0b\xbd\x5c\x0a5\xb23\xf4r\x96\ +\xdd\x97\xff\xb1c;\xe3\xe8r\xa4t\x8e\x99#\x1e\xd2\ +z\xc0\xf1H-7\x16&@\xac\xd5o\xf1?zy\ +\xc9/K\x5c\x06\xf8\x1d\xe1\xa2\xc7\x01\x0b\xb1\x00\xa5L\ +\xab/\x14\x13R\x06\x9e$\x00@\x8dFu\x11\xe8\xb4\ +\xdf\xe0~N\xe2o\x0f\x8b\x16\x9c\x1aA\xe1\x9e`\x19\ +\x85+\x81\xc7\x07RQ\xd8\x9b\x91\xa4Zx\x18\xda\xad\ +\xe4\xadwA\xa5\xa7o\x00&V\xcb%7#;\xe2\ +Ti\xd0\xf6\x9e\xfc\xcb\xc8\x8e0\xe5bF\x00\x13.\ +\x8e\x0b\x22\x85\xb5h[\xe8\xa1\x193\x13\x97\xe9P\x0e\ +7\xc6\xc5\x02&z\xf6\xae\xf4e\xe4v\x05#\xd2\xa0\ +{qQ\x1cC\xba\xe6\xc2\x0b,q\x9c\x92\xb9\xb4\x8f\ +K\x05op/\x0b=v/\xdaR\x81\xab\xddS8\ +\x92\xfc\x82{\xa1\xc6\xd2V]0f\xa3My\xb1G\ +\x09\xa7T\x03\xe6\xc3\x14!b\xca\x13.\xe1\x01@\xa4\ +4\x91\x80\x99\xe1\xb0\xe3\x0d.\xc8\xc5\xf2\x91F1\x83\ +^_\x8a;\x82\xee,\xcb\xdbGr@\xb7\xc3%k\ +3f\x8bE\x8f\xd1\x9eA\xd1\xa5\xd2X\x03\x81>\x03\ +\xfb\x16\xa8hL:%\xa3w\x15\xaf \x18\xa9\x14g\ +\xc4`\xea\xa7\x5c\xea\xc7\x81\x08\x8d\x0a\x84\x8ad@a\ +*\xe8\x14\xc6\x22To\xb05\x93\x5c\xb05N9\xe7\ +\x96\xdd\x0c\x9a8\xab\xe2\xfc\xe4n\xa0r\x97L\xa7Q\ +\xc8]\xf3`\x09m\x08\x87\xb3*\xd3\xdd\x0d1\xe7w\ +\xa55\xe6\x02f(\xa6\xfa\x9a\xcd\xf7R\xfd!\x16\x8a\ +\x0d\xb1\x80\xef\x0d\x01fi\xc0\xed\x10\x02\xae\xd0/\xa0\ +\x13\x91W \x08\xf8\xad@\xc0\x94\x17\xb3\xbbw\x06\x01\ +c\x0aW\xa0\x06 \x886\x815g\x89\xeb\x19\x087\ +\xd3\x04\xbbp\xba\xf0\xce p\xe7\x045\x1f\x82\x801\ +\x84\x0a.\xf85\x10\xf4\xed\xcca|\xfb\xf2\xddAp\ +\xc5.\xa6\xe6C\x8f`\x10\x1a\xab%\xbb\x06\x82\xbc\x15\ +\x08\x97J\xe3\xef\x0f\x82t\x97;0\x00\x01\xd3Q\xe6\ +R\xf6\xab p\xf9\xffe\x0fX\xa7I\x90\x03\x140\ +\xe1\xb2\x0aU\xc4\x5cu\x0a\xecv\x061\xceK\xbf\xbf\ +kdX\x90\x98\xa1.\x08,\xd0\xb0H9K\xd4\xcf\ +P\xb0\xb7\x02\x81Rw+\xf2\xdeA\x92\x11e\xd50\ +>\x00fG\xc2\x02\xbb\xaa\x0ap+\x10\x22{\x07\xae\ +\x11\x93d\xfc\x07\xcd\xfd\x1aD\ +\x00\x00\x10\x95\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + fill=\x22none\x22\x0a \ + id=\x22path4\x22 /\ +>\x0a \x0a <\ +g\x0a transfo\ +rm=\x22translate(1.\ +0067283,-25.8872\ +99)\x22\x0a id=\x22\ +g4144\x22\x0a st\ +yle=\x22stroke:#1a1\ +a1a\x22 />\x0a \x0a \x0a \x0a \x0a \ + \x0a \ + \x0a\ + \x0a\ + \x0a \x0a \x0a\x0a\ +\x00\x00\x0d;\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a\ + \x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \ + \x0a \ + \x0a \x0a <\ +/g>\x0a ?\x0a \x0a\x0a\ +\x00\x00\x1b\xfb\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09@\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \x0a <\ +path\x0a style=\ +\x22fill:none;fill-\ +rule:evenodd;str\ +oke:#999999;stro\ +ke-width:2.35818\ +648;stroke-linec\ +ap:round;stroke-\ +linejoin:bevel;s\ +troke-miterlimit\ +:4;stroke-dashar\ +ray:none;stroke-\ +opacity:1\x22\x0a \ +d=\x22M 3.8266767,1\ +0.457984 C 9.759\ +9467,8.637125 15\ +.594417,9.4085 2\ +4.006067,12.8984\ +61 l 0.23736,25.\ +43598 C 15.02184\ +7,34.983742 9.39\ +67067,34.390537 \ +3.6910067,35.962\ +096 Z\x22\x0a id=\x22\ +path816-3-7-5\x22\x0a \ + inkscape:con\ +nector-curvature\ +=\x220\x22\x0a sodipo\ +di:nodetypes=\x22cc\ +ccc\x22 />\x0a\x0a\ +\x00\x00\x18\x18\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a<\ +metadata\x0a id\ +=\x22metadata8\x22>\ +image/svg+xml\ +\x0d\x0a \ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x04\xec\ +rboard=\x220\x22\x0a \ +inkscape:deskcol\ +or=\x22#d1d1d1\x22 /><\ +g\x0a id=\x22g2678\ +\x22\x0a transform\ +=\x22matrix(0.55320\ +042,0,0,0.598469\ +42,8.6310018,192\ +.67497)\x22><\ +rect\x0a \ +style=\x22fill:#fff\ +fff;stroke:none\x22\ +\x0a id=\x22\ +rect1013-4-6\x22\x0a \ + width=\x22\ +48.907463\x22\x0a \ + height=\x2238\ +.208954\x22\x0a \ + x=\x22-310.2811\ +9\x22\x0a y=\ +\x22-174.56882\x22 /><\ +rect\x0a \ +style=\x22fill:#fff\ +fff;stroke:none\x22\ +\x0a id=\x22\ +rect1013-1\x22\x0a \ + width=\x2248\ +.907463\x22\x0a \ + height=\x2238.2\ +08954\x22\x0a \ + x=\x22-365.81845\x22\ +\x0a y=\x22-\ +130.41977\x22 />\ +\x0a\ +\x00\x00\x06\x80\ \x00\ -\x00\x10\x84x\xda\xe5WK\x8f\xdb6\x10\xbe\x07\xc8\x7f\ -\x10\x94K\x82J\x14_\xe2C\xb17@\x11\x04\xe8\xa1\ -\x976E\xcf\x8aD\xdb\xcaJ\xa2!\xd1k;\xbf>\ -#\xc9\x92\xe5];M\x91 )Pc\x17\xf6\x0c\x87\ -\xe4\xcc\xc7y.\xde\x1c\xaa\xd2{0M[\xd8z\xe9\ -\x13\x84}\xcf\xd4\x99\xcd\x8bz\xbd\xf4\xffz\xff.T\ -\xbe\xd7\xba\xb4\xce\xd3\xd2\xd6f\xe9\xd7\xd6\x7fs\xf7\xfc\ -\xd9\xa2}X?\x7f\xe6y\x1el\xaf\xdb$\xcf\x96\xfe\ -\xc6\xb9m\x12E\xdb]S\x22\xdb\xac\xa3<\x8bLi\ -*S\xbb6\x22\x88D\xfeL>;\xcbg\x8dI]\ -\xf1`2[U\xb6n\xfb\xadu\xfbb.\xdd\xe4\xab\ -I|\xbf\xdf\xa3=\xeb\xa5\x88\xd6:\xc24\xa24\x04\ -\x89\xb0=\xd6.=\x84\x8f\xf6\x82\x9e\xd7\xf6R\x8cq\ -\x04k3\xd1\xaf\x14KZ\x00g\x0b\xff\x93\xfc\xc8@\ -\xad\xdd5\x99Y\xc1F\x83j\xe3\xa2\xb7\xef\xdfN\x8b\ -!F\xb9\xcb\xe7\xe7\x14\xf5}\x9b\xa5[sq\xef\xc8\ -\x1c`H+\xd3n\xd3\xcc\xb4\xd1\xc8\x1f\x0e\x18\xa9d\ -z8\x8c4E\xb1\xf7\x92b\x81MFVz\x15x\ -\x14S\x1cb\x1eb\xf5j\xd86\xea\x92\xe46\xeb\xce\ -^\xfa\xbb\xed*C\x93}E\xbe\xf4\x81\x10\x035s\ -\x0ar\xe2\x14f\xff\xab=\xc0m\x1e\xf6\xb8\x82\xbf\x81\ -\xbf1\xc5z\xe3\x96\xfeH\xef\x8b\xdcmz\xf2\xae\xa3\ -\x17\x83\xa7x\x9ek\xd2\xba\x05x\xaa\xa5_\xa5\xae)\ -\x0e/q\x00\xb8H\x86\xb9R$\x98\xfd\x0a$RT\ -3\xc5\x03N\x91\x90XKy\xb2a\xd0r\xad)\x1d\ -\xe9\xd6\x1dK0\xa5u\x8d\xbd7\xc9\x8bU\xffy\xbd\ -*\xcar$\x065@\x91m\xea6\xa7]\xc39\x1d\ -C1\x11\x0a\x7fb\x03\xf7w\x8fI\xc4\x95\x94A\x18\ -#Ih\xcc5\xedYq,\x03\xae\x11V\x0a\x0bz\ -\xder\xd2`~\xe5\xebG\xea\x0cd\xd8#\x9300\ -\x8ej\xa90\x1d\xf9eQ\x1bx\xd0\xa4\xb1\xbb:\x9f\ -3?\xda\xa2\xbe\xe4V\x853MY\xc0W\xc2G^\ -\x9e\xb6\x9b\xb4i\xd2cRC\x90\x8e\x5c\x0b\xaeS\xb8\ -cB\xce\x9aN\x8e\x93\xd9\x1ant\xb6\x09\xb3]\xf3\ -\x90\xba]\x03\x06@\xecGW\xa1\xfa\xb7\x06\xc2\x9bq\ -\xc5\x09\x17\xe4G\x1b\xd8\xbf\x9eF\x8a3!y@\x10\ -\xe3\x92I\xc2\x80%)\x961\xd5\x81BDsI\xd4\ -\xec\xfd.\x17\xcc\x0f\xbbn\xb0\ -\x0b\xfb\xdc8\x0c \xfec!x\xc9\xa6\x93)\xd3\xa3\ -i.[\xf6If_\xd4\xb9\xdd\x87Uz\x80\xf0\xfc\ -d@\x17rK\x06\xd27\x8do-B\xca\x97OO\ -\xefR>'H\xe9X*\xf6t\xf5\xd0\x95\x5c\x0e\xfd\ -\x16!\xfa\xe9\xb5\x9f\xac\xad\xfa\xd2 \xb1bl\xda\xde\ -n\xec~\xddt\xa8\xad\xd2\xb25\xf3\xa1d\x82K\xdd\ -Rs\x1c\x94\x08&7eN\xc3\x13Q\xfc\xa9\xc8\x16\ -|\x01\xf2\x16\x88\x01\x18WWO\xa1;{\x8f\xf5\xae\ -\x80\x90\xb1\xa5\x81\x8a\xd6y\x1c9\xaf\x80\x19W\x17\xec\ -\x87\x8f\x10\x8cW\x97>\xf4\x85y\xba\x85\x5c\xf23[\ -Zx\xea\x17\xa2\xff\x8ck\x9d^\xe3\xcai \xeb]\ -m\xd1E\x0f|\x7f\x06I\x04\xe4\x11\ -\x00\x00\x0d\xfa\ +\x00\x1f6x\xda\xedYKo\xdbF\x10\xbe\xe7W\x10\ +\xf4%AEr\xdf\xbbd$\x07(\x82 =\xf4\xd2\ +\xa6-\xd0K@\x93+\x991E\x0a$e\xd9\xfe\xf5\ +\x9d]\x92\x22\xa9G\x10\xa7A\x9fRb\x873;\xb3\ +\x8fo\xbe\x19\xceF\xf37\x0f\xeb\xdc\xb9\xd7U\x9d\x95\ +\xc5\xc2\xc5>r\x1d]$e\x9a\x15\xab\x85\xfb\xcb\x87\ +w\x9er\x9d\xba\x89\x8b4\xce\xcbB/\xdc\xa2t\xdf\ +\x5c\xbf\x98\xd7\xf7\xab\x17\x8e\xe3\x80sQGi\xb2p\ +o\x9bf\x13\x05\xc1f[\xe5~Y\xad\x824\x09t\ +\xae\xd7\xbah\xea\x00\xfb8p\x07\xf3d0O*\x1d\ +7\xd9\xbdN\xca\xf5\xba,j\xebY\xd4W#\xe3*\ +]\xee\xadw\xbb\x9d\xbf\xa3\xd6\x08\x87a\x18 \x12\x10\ +\xe2\x81\x85W?\x16M\xfc\xe0M]a\x8f\xa7\x5c\x09\ +B(\x80\xb1\xc1\xf2\xcb\xac\xa2\x1aP\xd9\xc0\xcf\xde\xbc\ +W\xf8u\xb9\xad\x12\xbd\x04?\xed\x17\xba\x09\xde~x\ +\xbb\x1f\xf4\x90\x9f6\xe9h\x9a\xac\xb8\xab\x93x\xa3'\ +\xab\xf6\xca\x16\x81x\xad\xebM\x9c\xe8:\xe8\xf5\xd6\x7f\ +\x97\xa5\xcd\xed\xc2\xe5\xd87\xbbC\xd8*ou\xb6\xba\ +m\x0e\xb5\xf7\x99\xde}_>,\x5c\xe4 \x87)\xf8\ +k\xd5Y\xbap\xe1P\xa4\xb5\x19\xa2\xde:\xf5\x8bE\ +\xfb\x11\xe4\x87\xc4g\xce\xcbmqW\x94\xbb\xe2\x955\ +\xebO\x16\xa5eb\xb6\xbaps\x08b\xf1\xf1\xf6q\ +\xa3\xabd{\xa3\x89o\x80\xbb\x06\xdb\xf9Z7q\x1a\ +7\xb1\xf1k\x97\xef5\x98X\x0b\xb0\x81\x00F?\xbd\ +}\xd7J 'I\xf4[Y\xddu\x22|\x8cA|\ +Sn\xe1\x94\xee\xf5^=O\x93\x08 _\xc7\xcdu\ +\xb6\x8eW\xdaD\xeb;\x80x\x1e\x0c\x03\x13\xe3\x06\xf6\ +7L\xdaN[\xe96v'\x09\x9c&\xeb\xcc8\x05\ +?7Y\x9e\xff`\x16q\x9d\xe0`\xd2\xac\xc9\xf5\xa0\ +\x9c\x07\xdd\xee\xbb\xb3\x05\xa3\xc3\xcd\x83\xfe\xecVJ\xf5\ +\xb2\x1e`1\x12F=$\xfbH\x00\xa2\xf5F'&\ +G\xfae\xf7\xf0\x9b\xad-\xdc\xa9)m\x99\xe6L\xa2\ +\xb9\xf9\x08D\xe0\xd4\x17D\xd2\x90:\x91\x83!\xaeT\ +\x12)\xcd\xf3I\x87G\xc3\x9c\xc8\xe1\x02\xf9\x0c#f\ +\x9c\xd0I\xc3\xa7\x85\xcb\xa8\xcf\x84\xc0\xc8\xccF\x94/\ +9\x15\x84\x9d\x9e\xb9\xdb\xa3WV\xd9*\x03~\x09\xea\ +s\xc5\x09V`.|\xc5\x90P|\xea\x09\xd0\x8c0\ +\x80M\xe3.\x04\x10f\x80\xcc>\xed\x111lL\x0d\ +\xf5[\xf7\x0d\x04,)\xf3\xb2Z\xb8WK\xfb\xe9\xe6\ +\xbd)\xab\x14\xa8\xda\x0d\x09\xfb\x99\x0c\x95\x90}\x10z\ +H\x8dN]\xde|\x82\x1d4e\xae\xab\xb80t\xc1\ +=\x1c\xab\x0a\xb2\xf2\x94~\x9b\xa5\xfa\xd4\xc0\x00\x06l\ +o\xbf\xd0\xc9\xd1\xfa6N\xcb\xdd\xc2%\x87\x83\xbb\xac\ +\x80\x01\xaf+\x08X\x09z\xc6\xa2\xaf\x0e\x18\x11\xee\x0e\ +l\xdb\x03\xa5:e}[\xee\xccI\x16\xee2\xcek\ +}8\xdbSY\xae\xed\xdb\x81R\x821;\x1cN\x80\ +_\x1eA\xd8\x87\xf0Pq4\x0a\xc7\xa3\x14C)\xa1\ +$<\xb3OCPyf\x0c\xdc\xc9\xb9\xb1u\xfc\x90\ +\xad\xb3'\x9d\x0e\xa1\x1a\xd6\xddV\x15\xbc\x7f\xbc<~\ +\xd4UW\xf7:\xeel\xe2\xe6\xb6\xb5\x06\xc7\x1f\x1d4\ +C\xce{S&\x7f5\xbf\xdeC\xc9\xfc}\x04\x961\ +>>rY\x14\xc0\x88\xb2\xf2`\x99\xfb\xb8\xd9Vz\ +\x08b\xdd<\xe6 .\xa1jD\x05\xbc6\xfbeW\ +\xc3\xa4+\x86\xf9)\xf3+\x84R\x16\xc7\xaf\xeb\xa6*\ +\xefttEn\xcc\x9fN\xf4:\xbaD\xfdY\x1b \ +Wmj\x1d\xd4\xd5\xb8\xa9\xb2\x87\x97\xd8\x87\x081D\ +\xc5\x0c\x0e5\x03I@J\x09<\x83\xf0\xf8\x14\x0b\x8a\ +\xc2\x99\x87\x95O\x14\xe7\x8a\xbe\xea\xeb\xcd\xaa\xcf\xb7\xd1\ +\x84\xf6\x11*\xbb\x869\x11\x12\x92(\x0a\xb3p_)\ +I\xc2\xf0\xd5$E\xe14\x8c\xed5_s\x9e\xbe\x84\ +\x8eBsz\x22#\x0c~\xadXms\x1d\xe9{]\ +\x94izf%\x9b*\x11\xf21\xa3\x0a+J{}\ +\x9eA\x18\xe3MT\x95\xdb\x22\x1d+?\x95Y1\xd5\ +\xc2\xcb@W9\xd0\xad\x890\xea\x95i\x0cIZU\ +\xf1\xa3\x0d\xf4X[.\x97\xb5n\x22t.v\x96{\ +\xd3B\x07G\xa72\xa4\xc7u\xf3\x0c\xdb\xfe*\xd0\x10\ +\x92\x0a\x13\xfe\x8f\xc5L\xa1\xf0\x82\xd9s1\xc3\xf8\x82\ +\xd9\xb31\x93\xcf\xc7l5-\x94\xd0R\xfd\xa9B\xb9\ +\xef4\xc7\xb1\xf8\xd2\x17\xd3A\xd6\xf0\x91\xda\xb4\xe6\x0e\ +\x0d}\xa6\x08GdF\xb0/$\xb4r\xdc\x81\xb0`\ +\xa2\xe0\x0d\x02\x0f\x84\x08\xab`\xd0N\xccl\xbc\xb0\x93\ +8v\x003\xab\xa0\xca\x8e\x87\x04[1\xb4\xa2@X\ +\xcc\xday\xa4\x9dO\x11e\x879\xb5\xa2\x10\xb2\x15C\ +\xc7\xac\x02\x97;+\xc2ZF\xa4\x92\x93\x99\xf0\x09\xd1\ +\x1e\xb3\x0aA0\xb1\x06\xac\x95Cb\xed1\xe3N\xde\ +N@\xbb\xed1z\xbc\xfd\xa7\xd1\xa1\xbb\x00\xf4\xe8\x22\ +_\x11j.Q\xe4\xf57\xa55\xb4LpD\xf6w\ +\xf2ztE\xf9\x06\xc4\x91G\xc4A>g\x92\x87\xd2\ +\x10\x07\xae\x02\x94\x13C\x0c\x8b:\x926\xe8\x14\x02d\ +e\x01\xcd\x84Up)[\x05\x91\x96&@\x9e\xd6\x01\ +3K\x22\xd2\xb2B\x85FR\x82\xd9(\x13\x22C\x08\ +3<\xc9PX\x1a\x10\x0e\xa43~\x12Cw\x03\x97\ +\x11\xc3\x93\xc4j\x18\x96jF \x00=u\xe0\xcd\xdf\ +r\x8bJ#c`(o\x99\xaaZ\x03,\xd8\x84[\ +$T\xa2g\xfaD\x06\xae\xfe\xef\x99T\x01_\x8e \ +\xf8\x82j\xd6\x1e\xc7\x10\x05\x01\x97\x90\xfc\xecqF\x1b\ +g\x9f\xdf\xf7\x80\xeb&\xce\xa0\xf1\xb7W\xb9h\x1dW\ +wp\x83t\xcc\xbe\x9c\xd6r\x147s\xb9`\xd0\xd3\ +BS8&5\xdcG\x081W_!\xc3\x91\xba\xbf\ +N\x11\xc36\x81\xc9h\xa8\xbb\x8b\x01\xfd%c\x8a\xab\ +\x83\xc41PQI\xe5\x18>\x9d\xe7\xd9\xa6\x1e\xfd\x9f\ +Den\x9c>\xa3R 5\x9e\xbbz\xb0z\xe8\xb1\ +\xa1\x0d\x1f\xe9\xcd\xcd\x0a:r\x22\xd0p\xbd\xb3\xfav\ +\xfbR2\xca\xe9\x89\x0cf|\xa2>\xe0.~\xfdo\ +\x08\xe17\xc7\x91\xf9!\x86\xfb\xad<\xc0\x91Q?\x0c\ +\x87[\xed!\x8c\xde\x05\xc8S@\x0aq\x04$\x85\xca\ +\xcc\xa1\x22\xf2sH\x0ar\x81r\x0a%\x85\xca\x84\x04\ +\xe5\xf88\xb7\x85`8TgI).P\x1eA\x09\ +\xad\xb7\x10\xf88\xbd\xa1\xf6C\xc7y\x16JO^\xb0\ +<\xc6R\x90P\xd0\xe3\x0c\x87\xf6J1u>\xc3=\ +~\x01s\x0a&\xe3>4\xcb\xe0\xf0\xfc\x1c\xbf\xbc{\ +N\x80\x09\xadP\x88\xd5\xc9,'\x88~&\xcb/\xd4\ +<\x89fH\xc8\xd7\xa4\xb9\xf7\x9fy\x03\xcd\x83U\xfb\ +}\x13\xfc37_2^\xbf\xf8\x03\xd0\xde\x0d\xad\ +\x00\x00\x0e\x8f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0a\x0a\ +\x0a\ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \x0a \ +\x0a \x0a \ + \x0a \x0a <\ +path\x0a \ +d=\x22m 112.27805,4\ +08.44003 h 264.5\ +8966 c 8.39574,0\ + 15.18643,-6.790\ +68 15.18643,-15.\ +18644 V 128.7874\ + c 0,-8.39575 -6\ +.79069,-15.18643\ + -15.18643,-15.1\ +8643 H 112.27805\ + c -8.39576,0 -1\ +5.186441,6.79068\ + -15.186441,15.1\ +8643 v 264.58966\ + c 0.12347,8.395\ +75 6.914151,15.0\ +6297 15.186441,1\ +5.06297 z M 127.\ +46448,143.97384 \ +H 361.80473 V 37\ +8.19063 H 127.46\ +448 Z\x22\x0a \ + id=\x22path831\x22\x0a \ + style=\ +\x22fill:#37c8ab;st\ +roke-width:1.234\ +67\x22 />\x0a \x0a \x0a <\ +g\x0a id=\x22g83\ +7\x22 />\x0a \ +\x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \x0a\x0a\ +\x00\x00(a\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22 />\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0a <\ +path\x0a style=\ +\x22fill:#37c8ab;fi\ +ll-opacity:1;str\ +oke-width:0.0679\ +173\x22\x0a d=\x22M 3\ +.0617407,44.6410\ +32 C 2.3120712,4\ +4.489468 1.80044\ +08,43.918187 1.7\ +903834,43.221449\ + c -0.00475,-0.3\ +15441 0.030818,-\ +0.424415 0.23502\ +85,-0.723853 0.1\ +723954,-0.252793\ + 0.323261,-0.387\ +001 0.5333455,-0\ +.474445 0.282964\ +9,-0.117782 1.02\ +00745,-0.12198 2\ +1.6320716,-0.123\ +191 l 21.339129,\ +-0.0014 0.305915\ +,0.13935 c 0.375\ +203,0.170914 0.6\ +48986,0.496459 0\ +.760779,0.90463 \ +0.109833,0.40100\ +8 0.07707,0.6187\ +38 -0.147328,0.9\ +79037 -0.218499,\ +0.350836 -0.6776\ +83,0.643949 -1.1\ +61862,0.741654 -\ +0.535806,0.10812\ +9 -41.6881069,0.\ +08635 -42.225721\ +3,-0.02237 z m 2\ +.1150144,-5.4166\ +5 C 4.8178042,39\ +.124701 4.500127\ +5,38.901966 4.36\ +42388,38.654686 \ +4.181278,38.3217\ +67 4.2734089,37.\ +825137 4.7102642\ +,36.789445 c 0.2\ +128054,-0.504508\ + 0.9268989,-2.28\ +1057 1.5868735,-\ +3.947881 0.65997\ +45,-1.66682 1.36\ +931,-3.430823 1.\ +5762984,-3.91999\ +7 0.2069932,-0.4\ +89175 0.4729489,\ +-1.128047 0.5910\ +163,-1.419716 0.\ +2134275,-0.52724\ +8 0.4615952,-0.8\ +28552 0.8454616,\ +-1.026499 0.1323\ +273,-0.06823 0.6\ +2352,-0.09546 2.\ +012945,-0.111576\ + l 1.837899,-0.0\ +2132 0.0014,-0.3\ +4103 c 9.5e-4,-0\ +.190867 0.0588,-\ +0.457075 0.13158\ +7,-0.604564 0.16\ +2641,-0.329581 2\ +.409907,-2.46897\ + 2.755619,-2.623\ +335 0.272651,-0.\ +121743 0.984769,\ +-0.149508 1.2648\ +33,-0.04931 0.27\ +1136,0.097 0.672\ +302,0.461277 0.8\ +31639,0.755173 0\ +.18222,0.336101 \ +0.191769,0.84777\ +4 0.02165,1.1613\ +72 -0.06833,0.12\ +5974 -0.472802,0\ +.562573 -0.89882\ +6,0.97022 l -0.7\ +74585,0.741179 h\ + 7.54616 7.54616\ +6 L 31.378068,26\ +.1051 c -0.11458\ +2,-0.135879 -0.4\ +47174,-0.461876 \ +-0.739095,-0.724\ +431 -0.668939,-0\ +.601644 -0.77506\ +4,-0.784424 -0.7\ +7477,-1.334394 2\ +.8e-4,-0.511968 \ +0.181907,-0.8895\ +09 0.557687,-1.1\ +59207 0.202638,-\ +0.145438 0.34261\ +1,-0.184271 0.75\ +3663,-0.209092 0\ +.349715,-0.02113\ + 0.579981,-9.5e-\ +4 0.749508,0.066\ +09 0.224222,0.08\ +848 1.801667,1.4\ +16292 2.496819,2\ +.101681 0.430409\ +,0.424367 0.6021\ +98,0.77723 0.572\ +792,1.176548 l -\ +0.0243,0.329952 \ +0.315069,0.006 c\ + 0.173288,0.0033\ + 1.008937,0.0107\ +3 1.856998,0.016\ +43 1.497584,0.01\ +007 1.551744,0.0\ +1515 1.883182,0.\ +175496 0.187688,\ +0.09081 0.400871\ +,0.240252 0.4737\ +39,0.332089 0.07\ +287,0.09184 0.30\ +748,0.610476 0.5\ +21363,1.152535 0\ +.213883,0.542054\ + 0.530411,1.3413\ +22 0.703396,1.77\ +6145 0.172984,0.\ +434823 0.403616,\ +1.027767 0.51251\ +4,1.317646 0.228\ +137,0.607294 1.0\ +38012,2.687259 1\ +.551979,3.985883\ + 0.560045,1.4150\ +52 1.108715,2.96\ +964 1.108715,3.1\ +41414 0,0.267898\ + -0.268578,0.670\ +744 -0.573942,0.\ +860866 l -0.2911\ +14,0.181251 -4.6\ +2608,0.01097 c -\ +4.994916,0.01187\ + -5.132276,0.058\ +3 -5.335627,-0.2\ +88036 -0.105402,\ +-0.179509 -0.165\ +422,-1.036153 -0\ +.896355,-3.84060\ +2 -0.325825,-1.2\ +50117 -0.704738,\ +-2.673176 -0.842\ +037,-3.16235 -0.\ +137299,-0.489175\ + -0.396983,-1.46\ +0117 -0.57708,-2\ +.157647 l -0.327\ +445,-1.268238 h \ +-2.574088 -2.574\ +088 l 0.01439,1.\ +652394 0.01439,1\ +.652389 1.384244\ +,-0.0078 c 1.221\ +194,-0.0069 5.39\ +789,-0.192093 5.\ +659136,-0.08154 \ +0.162869,0.06892\ + 1.112626,0.4633\ +52 1.194524,0.54\ +9799 0.480556,0.\ +507257 -0.101635\ +,1.347044 -0.711\ +161,1.607444 -0.\ +257769,0.110118 \ +-4.763786,0.0928\ +5 -6.066698,0.09\ +412 l -1.480591,\ +0.0014 -0.0062,1\ +.558587 -0.0062,\ +1.558586 1.76757\ +4,0.0014 c 1.463\ +35,9.49e-4 6.382\ +434,-0.0043 6.59\ +9131,-0.01505 9.\ +170427,-0.09908 \ +0.76699,1.261684\ + 1.444024,1.5690\ +99 1.64907,0.748\ +772 -3.831652,0.\ +538968 -9.711857\ +,0.562079 -3.505\ +854,0.01377 -12.\ +714004,0.0092 -1\ +2.714004,0.0092 \ +-8.8656853,-0.76\ +2571 0.354356,-1\ +.928188 1.225293\ +,-1.959999 l 4.2\ +40112,-0.06377 2\ +.570655,-0.02502\ + 2.419104,-0.131\ +6 0.01121,-1.531\ +743 0.01121,-1.5\ +31743 -1.78539,-\ +0.0014 c -1.6006\ +3,-0.0014 -1.798\ +245,-0.01282 -2.\ +241877,-0.01966 \ +-0.363737,-0.005\ +6 -5.820616,0.21\ +5365 -5.912434,-\ +0.169152 -0.1266\ +1,-0.53024 1.328\ +857,-1.881144 1.\ +880907,-2.030125\ + 0.969913,-0.045\ +92 5.387755,0.04\ +625 6.317418,0.0\ +4625 h 1.6903 l \ +0.03101,-1.59764\ +8 c 0.01705,-0.8\ +78706 0.0188,-1.\ +61988 0.0038,-1.\ +647056 -0.01491,\ +-0.02716 -1.3270\ +24,-0.04942 -2.9\ +15787,-0.04942 h\ + -2.888659 l -0.\ +323617,1.235297 \ +c -0.177989,0.67\ +941 -0.455085,1.\ +768937 -0.615761\ +,2.421176 -0.160\ +681,0.652234 -0.\ +48123,1.867763 -\ +0.712327,2.70117\ +3 -0.231102,0.83\ +3414 -0.55837,2.\ +034118 -0.727261\ +,2.668237 -0.168\ +896,0.634119 -0.\ +364507,1.227058 \ +-0.4347,1.317646\ + -0.07019,0.0905\ +9 -0.23433,0.215\ +873 -0.364758,0.\ +278416 -0.217906\ +,0.104477 -0.580\ +356,0.112497 -4.\ +4670424,0.09882 \ +-2.8681646,-0.01\ +011 -4.3152793,-\ +0.03861 -4.49512\ +99,-0.08854 z m \ +33.0964419,-2.13\ +2504 2.812554,-9\ +.49e-4 -0.274298\ +,-0.576472 C 40.\ +660589,36.197398\ + 40.36638,35.522\ +926 40.157656,35\ +.015631 l -0.379\ +499,-0.92235 -2.\ +762055,-0.01724 \ +-2.762056,-0.017\ +24 0.09145,0.280\ +747 c 0.0503,0.1\ +54413 0.25877,0.\ +852931 0.463268,\ +1.552266 0.33981\ +4,1.16208 0.3838\ +66,1.268475 0.51\ +1845,1.23619 0.0\ +7702,-0.01942 1.\ +40568,-0.03571 2\ +.952585,-0.03623\ + z M 12.708561,3\ +6.712153 c 0.102\ +877,-0.330678 0.\ +666503,-2.249208\ + 0.740329,-2.519\ +998 0.02351,-0.0\ +8628 -0.298782,-\ +0.101015 -2.5383\ +22,-0.116101 l -\ +2.5652562,-0.017\ +28 -0.046061,0.1\ +72785 c -0.02535\ +7,0.09503 -0.105\ +802,0.295506 -0.\ +1787917,0.445507\ + -0.2030994,0.41\ +7391 -0.9809941,\ +2.282761 -0.9809\ +941,2.352389 0,0\ +.03704 1.0841417\ +,0.06152 2.72562\ +79,0.06152 h 2.7\ +256331 z m 1.577\ +447,-5.715293 c \ +0.145163,-0.4710\ +59 0.342303,-1.1\ +08469 0.43809,-1\ +.416468 0.09578,\ +-0.308004 0.1953\ +12,-0.656356 0.2\ +21172,-0.77412 l\ + 0.04701,-0.2141\ +16 H 12.756377 1\ +0.52048 l -0.282\ +172,0.576467 c -\ +0.155201,0.31706\ + -0.3052881,0.65\ +0592 -0.3335276,\ +0.741179 -0.0282\ +54,0.09059 -0.18\ +49267,0.490823 -\ +0.3481812,0.8894\ +1 C 9.39334,31.1\ +97803 9.238837,3\ +1.605835 9.21326\ +14,31.705953 l -\ +0.046488,0.18203\ + 2.4276526,-0.01\ +733 2.427658,-0.\ +01733 z m 24.710\ +409,0.869028 c 0\ +,-0.03049 -0.568\ +092,-1.477301 -0\ +.955275,-2.43291\ +9 l -0.340009,-0\ +.839189 -2.47275\ +8,-9.49e-4 c -2.\ +3225,-9.5e-4 -2.\ +470535,0.0062 -2\ +.436164,0.114482\ + 0.03041,0.0958 \ +0.576894,2.04890\ +1 0.820319,2.931\ +762 l 0.06812,0.\ +247061 h 2.65788\ +4 c 1.461836,-5e\ +-6 2.657884,-0.0\ +092 2.657884,-0.\ +02037 z M 23.523\ +029,24.86296 c -\ +3.105932,-0.3339\ +17 -5.278902,-2.\ +181969 -5.91588,\ +-5.031296 -0.402\ +704,-1.801384 -0\ +.0033,-3.614358 \ +1.118403,-5.0748\ +02 2.239938,-2.9\ +16756 6.547563,-\ +3.548349 9.62853\ +2,-1.411752 1.62\ +376,1.126042 2.5\ +10511,2.612057 2\ +.739233,4.59038 \ +0.177899,1.53873\ +3 -0.433356,3.33\ +4927 -1.572348,4\ +.620415 -0.89290\ +4,1.007743 -2.70\ +2939,1.969605 -4\ +.157414,2.209264\ + -0.487883,0.080\ +39 -1.501457,0.1\ +34245 -1.840526,\ +0.09779 z m 1.73\ +2312,-2.299125 c\ + 0.674372,-0.149\ +621 1.542873,-0.\ +573271 2.035927,\ +-0.993121 1.6522\ +28,-1.406919 1.9\ +92261,-3.411938 \ +0.880891,-5.1942\ +04 -0.561951,-0.\ +901176 -1.348611\ +,-1.526259 -2.33\ +8623,-1.858266 -\ +0.632072,-0.2119\ +75 -1.833806,-0.\ +287875 -2.539329\ +,-0.160391 -1.47\ +6375,0.266777 -2\ +.839293,1.469323\ + -3.343321,2.949\ +92 -0.523027,1.5\ +36396 -0.109734,\ +3.037986 1.15747\ +8,4.205393 0.542\ +823,0.500073 1.2\ +28915,0.885107 1\ +.863204,1.045636\ + 0.495633,0.1254\ +37 1.728822,0.12\ +8158 2.283773,0.\ +005 z M 9.886532\ +8,18.778772 C 8.\ +8271499,18.53442\ +7 8.4575623,17.2\ +56854 9.2173367,\ +16.465516 c 0.40\ +07949,-0.417443 \ +0.6477375,-0.456\ +951 2.8533873,-0\ +.456523 1.073828\ +,1.99e-4 2.0068,\ +0.02953 2.15268,\ +0.06766 1.344964\ +,0.351505 1.7402\ +65,1.936802 0.63\ +5343,2.547957 l \ +-0.332686,0.1840\ +19 -2.205484,0.0\ +1144 c -1.213017\ +,0.0063 -2.30833\ +6,-0.0123 -2.434\ +0442,-0.04126 z \ +M 33.85029,18.74\ +463 c -0.931355,\ +-0.312315 -1.167\ +979,-1.60751 -0.\ +421935,-2.309519\ + 0.421611,-0.396\ +72 0.623376,-0.4\ +26498 2.889729,-\ +0.426498 h 1.950\ +685 l 0.370237,0\ +.173601 c 0.6329\ +98,0.296817 1.00\ +8078,0.978259 0.\ +847438,1.539621 \ +-0.100534,0.3513\ +15 -0.466648,0.7\ +82961 -0.805096,\ +0.949208 -0.2639\ +22,0.129639 -0.4\ +03124,0.138429 -\ +2.415529,0.15253\ +2 -1.702295,0.01\ +192 -2.192277,-0\ +.0043 -2.415529,\ +-0.07895 z M 16.\ +648264,12.823493\ + c -0.373172,-0.\ +131069 -3.163651\ +,-2.677069 -3.30\ +9141,-3.0192201 \ +-0.270481,-0.636\ +089 -0.0095,-1.4\ +256702 0.578323,\ +-1.7498381 0.397\ +97,-0.2194581 0.\ +96313,-0.2452284\ + 1.355606,-0.061\ +812 0.50691,0.23\ +68994 3.068253,2\ +.4991042 3.29418\ +8,2.9094582 0.26\ +4646,0.48067 0.1\ +61754,1.111375 -\ +0.25104,1.538823\ + -0.36492,0.3778\ +79 -1.161272,0.5\ +60545 -1.667936,\ +0.382589 z m 14.\ +241901,-0.0082 c\ + -0.418815,-0.12\ +303 -0.777913,-0\ +.400135 -0.93180\ +9,-0.719018 -0.1\ +55386,-0.321974 \ +-0.173231,-0.880\ +691 -0.03765,-1.\ +179179 0.05296,-\ +0.1166 0.75503,-\ +0.824008 1.56015\ +8,-1.5720151 1.5\ +02742,-1.39613 1\ +.661659,-1.50513\ +25 2.194396,-1.5\ +051325 0.83355,0\ + 1.610352,0.6791\ +301 1.610352,1.4\ +078725 0,0.55747\ +3 -0.100441,0.67\ +2349 -2.500493,2\ +.8598831 -0.8312\ +54,0.757647 -1.2\ +24684,0.904567 -\ +1.894944,0.70762\ +2 z m -6.8927,-2\ +.511602 c -0.405\ +079,-0.117242 -0\ +.797977,-0.48005\ +81 -0.897867,-0.\ +8291081 -0.04483\ +,-0.15663 -0.064\ +9,-0.9709844 -0.\ +05224,-2.1183148\ + l 0.02056,-1.86\ +38646 0.201922,-\ +0.2266141 c 0.30\ +7681,-0.3453084 \ +0.632077,-0.5348\ +982 0.978012,-0.\ +5715854 0.689145\ +,-0.073094 1.369\ +818,0.2459311 1.\ +657721,0.7769593\ + 0.126995,0.2342\ +402 0.137969,0.3\ +926275 0.137608,\ +1.9865667 -2.09e\ +-4,1.0603705 -0.\ +03039,1.8342339 \ +-0.07776,1.99556\ +99 -0.105641,0.3\ +59825 -0.528431,\ +0.7263921 -0.984\ +926,0.8539571 -0\ +.434875,0.121519\ + -0.552325,0.121\ +092 -0.983036,-0\ +.0038 z\x22\x0a id\ +=\x22path887\x22\x0a \ sodipodi:nodetyp\ -es=\x22cc\x22 />\x0d\x0a \ - \x0a\x0a\ +\ +\x00\x00\x10\x1e\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\ +\x0a \x0a \x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \ + \x0a <\ +path\x0a styl\ +e=\x22fill:none;str\ +oke:#ffffff;stro\ +ke-width:1.36894\ +774px;stroke-lin\ +ecap:round;strok\ +e-linejoin:miter\ ;stroke-opacity:\ -1;paint-order:fi\ -ll markers strok\ -e\x22\x0d\x0a d=\x22\ -M 8.1034569,42.4\ -5191 C 25.225975\ -,41.789936 29.80\ -2657,11.099156 4\ -1.33283,10.90059\ -4\x22\x0d\x0a id=\ -\x22path825-3\x22\x0d\x0a \ - inkscape:c\ -onnector-curvatu\ -re=\x220\x22\x0d\x0a \ - sodipodi:nodety\ -pes=\x22cc\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x07^\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x1a\ +w-height=\x221018\x22\x0a\ + inkscape:wi\ +ndow-width=\x221848\ +\x22\x0a inkscape:\ +pageshadow=\x222\x22\x0a \ + inkscape:pag\ +eopacity=\x220\x22\x0a \ + guidetolerance\ +=\x2210\x22\x0a gridt\ +olerance=\x2210\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a bor\ +deropacity=\x221\x22\x0a \ + bordercolor=\ +\x22#666666\x22\x0a p\ +agecolor=\x22#fffff\ +f\x22 />\x0a\x0a\ +\x00\x00\x0d\x9f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0a\x0a\ + \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ +>\x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \ + \x0a \x0a \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x08\xd1\ +re=\x220\x22\x0a \ +sodipodi:nodetyp\ +es=\x22cc\x22 />\x0a \ + \x0a \x0a \ + \x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#00d4aa;\ +stroke-width:1.5\ +5563581;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22M 8.0\ +626459,39.461131\ + C 29.913216,40.\ +812005 30.019945\ +,8.7555352 41.29\ +2019,7.9098146\x22\x0a\ + id=\x22pat\ +h825-6\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \ + \x0a\ + \x0a\x0a\ +\x00\x00\x07#\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09\xd1\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title>\x0a \x0a \x0a \x0a \x0a \ + \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\ - \x0d\x0a\x0d\x0a\ +ized=\x221\x22\x0a in\ +kscape:current-l\ +ayer=\x22svg6\x22 />\x0a \ + \x0a \x0a \x0a \x0a\x0a\ \ -\x00\x00\x0d\x8c\ +\x00\x00\x08\x8d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ \ image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \ + \x0a \ +\x0a \x0a\ + \x0a \ +\x0a\x0a\ +\x00\x00\x0d8\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22>\x0a \x0a \ + \x0a \ + \x0a \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04U\ +9)\x22\x0a id=\x22g\ +4144\x22 />\x0a \x0a\ +\x0a\ +\x00\x00\x04P\ \x00\ -\x00\x13#x\xda\xed\x97M\x8f\xdb6\x10\x86\xef\x01\xf2\ -\x1fT\xed%AW\x14I}+\xd6\x06h\x17\x01r\ -\xe8\xa5MQ\xa0\x97\x80+\xd1\xb6\xb2\x92(P\xf4\xda\ -\xce\xaf\xefP\x12eym\x03Aa\x14=X\xc0b\ -\xcdw\x86\xe4\xcc3#\xda\x5c|\xdc\xd5\x95\xf5\xc2e\ -W\x8a&\xb3\x09\xc2\xb6\xc5\x9b\x5c\x14e\xb3\xca\xec?\ -\xbf|rb\xdb\xea\x14k\x0aV\x89\x86gv#\xec\ -\x8f\x0fo\xdf,~r\x1c\xebW\xc9\x99\xe2\x85\xb5-\ -\xd5\xda\xfa\xdc~y\x9c\x8c\x0eF\x85*\xe6\xeb\x18\xb0G\xfb\x1e\ -\xd1nX\xcd\xbb\x96\xe5\xbcs\x8d>,0+6\x19\ -\x94\xb2\xc8l\x88\x93\x0e\xa3mY\xa85X\x93q\xbc\ -\xe6\xe5j\xadf\xc2K\xc9\xb7\xbf\x88]fc\x0b[\ -\xa0Z\x93\xc5\xc4\x9b\x16\x22\xd7\xfbg6\xeb\xbar\xd5\ -|U\xe2k+\xc5\xb2\xac8\x9a\x80\x98\xa8\xd2) \ -\x8c\x12\x8a\x02\xeb\x1d\xc5!\xe69Y&\xcb{\x8bb\ -\x8a\x1d\xec;8~o?\xe8y\x8b\x9a+V0\xc5\ -\xfaE\x86\xe0\x8d\x14\x0f.\xe0\x045M\x7f\x7f\xfc4\ -\x0eA\xc8\xf3\xf4/!\x9f\xcd\x18\x1e\xed\xc2\x9e\xc4\x06\ -R\xb3\x1f\x0e\xfa\xa2\xc8S\xa8B\xcd\xd4CY\xb3\x15\ -\xd7\x15\xfc\x19\xa0/\xdc\x83\xe1\xd8[\xed[>[w\ -XY\xf2\xa1\xa0g[\xbb\xc8\xebR\xcfr\xffPe\ -U}\xd6\xdb\xd8\x96\xfbz\xd9RU|\xa6.\xdc1\ -\x07\x93\xa3;Or\xe1\x1a\x08\xc3\xb0\xe0\xcbnFH\ -\x0fC\xb3\xc7b\xaa\x93.R\xa1\xeb9\xba\xb6\x10I\ -.*!3\xfbn\xd9?\xf6hy\x12\xb2\xe0\xd2\xd8\ -\xc2\xfe9\xb6\x09h6\xc8\x0a\x1a\xc5\xe8\xe2\xe9\x1b\xcf\ -\x95\x12\x15\x97\xac\xd1(\x086\xa6\x95\x84.;k\xd8\ -\x94\x05?k\x99\xfaE\x079mv\xde\xdc\xadY!\ -\xb6\x99MO\xac\xdb\xb2\x01\x8bc\x9a<\xf6\xe3K.\ -S\xdfcr\xf0\x01\x94\x133\xdf\xa8\xddZluB\ -\x99\xbddU\xc7O\x16\xfc.D\xad_\xb7 \x0c\x08\ -\xf6Oc\xca\xe1]\xa2~\x84\x02\xeaE\xe4\xd4\xba\xef\ -\xdf=D\x22\x12\x87\x97\x82\x85\x15\xa2\x8b\xc9\xc2\x024\ -\xb8d\xac\xd9\xae\xac\xcb\xef\xbc\x98\x15\xee\xb0\xf7FJ\ -8\x83\x9d\x8a\xed\xb9\x1c\x0f\x09\xd3D\x12jk\x00\xa8\ -}\x05\xb5\x1a\x8b\x92\x92\x0f\xf0\xa6W\xe9]\xd2?\xfd\ -\xc09\xd8:%\xc53O\xefp\xff\x8c\xc3\xa1 \xa9\ -\x87\x12\x1cx\x11N\x02\xa3We\xc3!\x94T\x8aM\ -S\xcc\xc5o\xa2l\x8eUx\xa7\xb8\xac \x19\x95\xfa\ -F+\x18\xb4\x82\x94l\x9f6\xf0\xf5eT\x13\x0c\xfe\ -\xd0\xb2\x12\xd2\xeb\xfb7\xad\x99|\x86\xa3\xc8\x1a\x9c,\ -\x1d\xf6\xbc\xee:\xdf\x98P\xc7s&\x96c\x17Q\x8c\ -\xc20\xc6\xd83\xbai\x9d\x13\x03\x94\x89\xd0\x08Q\xea\ -\x85\x89\xd1\xa0:1\x8a\xbc$\xa2\xf1\xa4I]sD\ -=\xac\xe5\x1bq'p\xa2k3\xf7|D<\xea{\ -7\xe6\x17\x99\x93k3\x0f\x128\xe3\x02\xe2{7\xe6\ -\x97\x98\xe3\xab\x9f->JH\x14\x07\xfe\x8d\xf9%\xe6\ -\xf4\xda\xcc\x09\xc1\xc8#8\x08n\xcc/2w\xbc\xab\ -S\xf7\x02\x14a\x8f\x867\xea\x97\xa9\x87W\xa7\x1e\x12\ -\x04y'\xf1\x7fO=D~\xe2G>\xf5\x92\xff\xf9\ -\x99~\xf2\xeb\x05~|\xc0O}?\x0a^S?1\ -\xe8\xabA\x88\xe0\x9aB\x03oF=\x8a\xa0\xd5\x01\xfb\ -\x11u\x8a\xb0\x1f\x92\x18\x8e\x1dC\xbdej}L\xfd\ -GX\x8f\xd6#\xd6PQ\x1cD4\xf2\xc3v\xf7/\ -hO\x9b\x98x\x01\xd1oV\x0c\xed\x84\xc3\x90\x90{\ -\xf8\x96\x8a\xa30H\x22\xady\x90n\x14\xde\xc3\x01\x8a\ -\xfc0\xa2\xc4\xd2\x9fB\x12\xe0\xe4>\x09\x90\xe7\x93$\ -\xf1\xad\xbf\xe7\xb4u\x9e\x09>s\xb3\x12\x0d\x84\xa8\x84\ -t\xe0&\xf3\xc2\xd4F\xf2\xd9\x95\xf1p\x0d\x16p\xe7\ -\x84\xfbx\x97\xd99<\x03\xbe\x85\xbe\xf9\xc3\xff\x7f\x00\ -\xa3\x8a\x9bn\ -\x00\x00\x08\x17\ +\x00\x12\xa8x\xda\xedW\xddo\xdb6\x10\x7f\xcf_\xc1\ +)/-\x16Q$\xf5I\xd5r\x81\xad(\xd0\x87\xbd\ +l\x1d\x06\xec\xa5`$\xdaV#\x89\x02E\xc7q\xff\ +\xfa\x1ee}\xd8\x8e\x03\x14\x831\x0cX\x08\x04\xc8\xfd\ +\xee\x8e\xbc\xfb\xdd\x91\xd6-\xde?\xd5\x15z\x94\xba+\ +U\x939\x14\x13\x07\xc9&WE\xd9\xac3\xe7\xcf\xcf\ +\x1f\xdd\xc4A\x9d\x11M!*\xd5\xc8\xcci\x94\xf3~\ +y\xb3\xf8\xc9u\xd1\xafZ\x0a#\x0b\xb4+\xcd\x06}\ +j\x1e\xba\x5c\xb4\x12\xbd\xd9\x18\xd3\xa6\x9e\xb7\xdb\xedp\ +9\x80X\xe9\xb5\xf7\x16\xb9\xee\xf2\xe6f\xd1=\xaeo\ +\x10Bpn\xd3\xa5E\x9e9\x83C\xbb\xd5UoX\ +\xe4\x9e\xacd-\x1b\xd3y\x14S\xcf\x99\xcd\xf3\xd9<\ +\xb7\xa7\x97\x8f2Wu\xad\x9a\xae\xf7l\xba\xdb#c\ +]\xac&k\x1b\xcd\xce\xef\x8d(\xe7\xdc#\xccc\xcc\ +\x05\x0b\xb7\xdb7F<\xb9\xa7\xae\x10\xe3%WF\x08\ +\xf1@7[\xfe\x98U\xda\x01\xa1-\xfcM\xe6#\x80\ +;\xb5\xd5\xb9\x5c\x81\x9f\xc4\x8d4\xde\x87\xcf\x1f&\xa5\ +Kpa\x8a\xa3mF>ON=!\xb9\x11\xb5\xec\ +Z\x91\xcb\xce\x1b\xf1\xde\xff\xa8\xc2\xb4\x07\xca\x22s \ +F\xd6\x0b\xbb\xb20\x1b\xd0\xf1\x83\xb8\x91\xe5zcf\ +\xf9\xb1\x94\xbb_\xd4S\xe6\x10D\x10\x80hT\x8c\x81\ +\xa6\x85\xca\xed\xc9\x99#\xba\xae\x5c7_\x8c\xfa\xd2j\ +\xb5*+\x89G\x22\xc6p\xd2)\x14\x829\xc3!z\ +\xc3HDdNW|u\x87\x18a\xc4%\x81K\x92\ +\xb7\xce\x12\xdc\x16\xb54\xa2\x10F\xd8-\x0eQ\x8fH\ +\xd2\x1b\x80\x09T1\xfd\xfd\xc3\xc7\x83\x04r\x9e\xa7\x7f\ +)\xfd0\x88\xb0\xac\x81\xb8W[H\xc9YN\xf0\xa2\ +\xc8S\xe0\xbd\x16fY\xd6b-m\xc9~\x06\x9e\x17\ +\xde\xac816\xfbV\xce\x9b\x1e\xb6\xd5\xf2P\xc0\x8b\ +]\x5c\xe4ui\x9d\xbc?LYU\x9f\xec!\x0e\xf2\ +\xce6-M%gp\xe1\x0d\xd1\x0f\xb9yG\xc9-\ +\xbc1\xf5^*\xe4\xaa\x9bY\xb1R4\xec\xbe\x98\xea\ +b\x8bR\xd8\xf2\x1d\x0c[\x88 W\x95\xd2\x99s\xbb\ +\xea\x97sP\xdc+]H=\xaa\xa2~\x9d\xa8\x14\xf4\ +\x14\xe4\x02=1\xc0\xea\xfe\xab\xcc\x8dQ\x95\xd4\xa2\xb1\ +\xf9S2h\xd6\x1a\xba\xe9\x12\xbe-\x0byI1u\ +\x86\x0do:\xe8\xa2\xb6\xdb\x88B\xed2\x87\x9d+w\ +e\x03\x0awl\xe4$H^\xb0\x98z\x9b\xd0\xc9\x04\ +\xe8\x9b\x88\x0a\x06\xb0\xdb\xa8\x9d\xcd$sV\xa2\xea\xe4\ +\xf9n\xdf\x94\xaa\xede\x0a\xa3\x90\x92\xe0Y89\x5c\ +\x16\x16\xc48d~L\x9f)\xf7\xfd\xd5\xc24\xa6I\ +\xf4B\x98\xe0\x1f\xbf\x94$\xb8\xb3\xf0\x05]-\x9e\xca\ +\xba\xfc&\x8b\xb9R\xf3\xb9[\xad\xe1Qu+\xb1\x97\ +z\xb8\xfdC\xc3h\xa8\xe5\x90\xb7\xd9WP\x9c\xa1\x0c\ +)}\x07\x97\xb8Joy\xbfz\xc1\x9du\x9d\xd1\xea\ +A\xa6\xb7\xa4_\x83x(B\xeacNB?&<\ +\x1c\xf1\xaal$\x04\x92j\xb5m\x8ac\xf0\xab*\x9b\ +S\x14\xee\x8d\xd4\x15db\xd2`\xc4\x0a\x01\xd5\xd7Z\ +\xec\xd3\x06~\x89Ft\x0c\x86\xbckE\x09\xc9\xf5\xdd\ +\x9a\xd6B?\xc03\x83\x0eF\xc8\x86}Tl\x9bm\ +B\x99\xeb\xbb#\x8dC\xdf0\x82\xa3(!\xc4\x1f\xe0\ +\xb1Y\xceq\xa8\x0ee1f\xcc\x8f\xf8\x00AQ\x12\ +\x1c\xfb\xc2\ +0^\xb0\xd0\x9f\xd9\x8echm\xa0\xfb\x98m\x86I\ +\x10\xd1\x04^\x97\x81\xedV\x98\xcd\x09\xdb?\xc2\xf1\xa0\ +=\xe1\x18\xeaH\xc2\x98\xc5A\xd4>\xfd\x03\x96\xa7C\ +\x86`\x81\x9a\xdfP\x02\x1dD\xa2\x88\xd2;\xf8\x05J\ +\xe2(\xe4\xb1\xc5|\xc84\x8e\xee\xe0\x91\xc4A\x143\ +\x8a\xec\x7f\x11\x0d\x09\xbf\xe3!\xf6\x03\xcay\x80\xfe>\ +\x22\xd9&\xc9\xc9\xf3yH5\x10\x9fQ\xda\x85!\xe4\ +Q\x98\xad\x96\xf3\x847O\xab\x0a\x06D\x98\x97\xbb\xcc\ +\xc9a\xf5\xc4-\xecX\xbe\xbc\xf9\x0ev\x1b\x95/\ +\x00\x00\x07\xdd\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#5555ff;s\ -troke-width:4;st\ -roke:none;stroke\ --opacity:1;strok\ -e-miterlimit:4;s\ -troke-dasharray:\ -none\x22\x0d\x0a d=\x22m\ - 37.559322,153.6\ -2712 v -8 h 56 5\ -5.999998 v 8 8 h\ - -55.999998 -56 \ -z m 28,-52.66667\ - -27.30894,-27.3\ -33331 h 15.65447\ -1 15.654469 v -2\ -4 -24 h 24 23.99\ -9998 v 24 24 h 1\ -5.65447 15.65446\ - l -27.30893,27.\ -333331 c -15.019\ -92,15.03334 -27.\ -619918,27.33334 \ --27.999998,27.33\ -334 -0.38008,0 -\ -12.98008,-12.3 -\ -28,-27.33334 z\x22\x0d\ -\x0a id=\x22path81\ -7\x22\x0d\x0a inkscap\ -e:connector-curv\ -ature=\x220\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x07\xd4\ +57\x22\x0a inkscap\ +e:window-y=\x2227\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +svg2\x22 />\x0a \x0a\x0a\ +\x00\x00\x07\x95\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xb9\ +dow-x=\x2257\x22\x0a \ +inkscape:window-\ +y=\x2227\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22g831\x22 />\x0a\ + \x0a \x0a \x0a\x0a\ +\x00\x00\x07\x7f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0bc\ +indow-x=\x2257\x22\x0a \ + inkscape:windo\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x220\x22\x0a \ + inkscape:curren\ +t-layer=\x22svg2\x22 /\ +>\x0a \x0a\x0a\ +\x00\x00\x0b\x13\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0a\ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0a\xc1\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x07\x22\ +asharray:none;st\ +roke-opacity:1\x22\x0a\ + d=\x22M 39.515\ +004,23.475976 29\ +.72034,23.41396\x22\ +\x0a id=\x22path83\ +6-3\x22 />\x0a \x0a\x0a\ +\x00\x00\x0ap\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a <\ -ellipse\x0d\x0a st\ -yle=\x22fill:#33333\ -3;fill-opacity:1\ -;stroke:#000000;\ -stroke-width:2.4\ +\x22\x0a xmlns:dc=\x22h\ +ttp://purl.org/d\ +c/elements/1.1/\x22\ +>\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x14\xf8\ -\x00\ -\x01\xaf\xa5x\xda\xed]\xddnc9r\xbe_`\xdf\ -AP\xdf\xcc`-\x9aU\xc5\x9f\xa2\xa6=\x0b\x04\x8b\ -Mr\xb1\x08\x90\x9dI\x80\xdc\x04\x1a\xe9\xd8\xd6\x8e,\ -\x19\x92\xba\xed\xdeW\xcb;\xe4\x99R\x94-K\xf2\xa1\ -'\xddC/\x86f\xd3\xdd\x8d\xb6x\x8e\xce\xcf\xf7\x91\ -\xfc\x8adU\xf1\xfd\x1f\xefo\x16\x83\x8f\xddz3_\ --/\x86\xa0\xf4p\xd0-\xa7\xab\xd9|yu1\xfc\ -\xf1\x87?\x8fx8\xd8l'\xcb\xd9d\xb1Zv\x17\ -\xc3\xe5j\xf8\xc7\xef\x7f\xff\xbb\xf7\x9b\x8fW\xbf\xff\xdd\ -`0\xb8\x9b\xcf\xb6\xd7\x17C\xc3\xc3\xdd\xc7\xebn~\ -u\xbd=|\xfe8\xef\xee\xfeiu\x7f1\xd4\x03=\ -0<\xd8\x97\xcfg\x17C\xb9\x04>\x9eu\xb8?<\ -\x1e_\xfe\xbc\x99Nn\xbb\xf1\xf1!\x85\x83o\xf4D\ -\xeb\xe9\xa5%\x0ag\x03\xd4\x88#-\x7f\xcd\xb7\x0f\xdf\ -\xda\xc8s\xdf\xca\xbf\xf1l5]Nn\xe4q\xbb\xfb\ -\xdb\xc92^\xe0\xbfo\x17\x93\xe5R\xdeJ\xc9m\x1f\ -\xce\x967_n\xc6\xfb;]\x0c\xaf\xb7\xdb\xdb\xf1\xf9\ -\xf9\xdd\xdd\x9d\xda\x17\xaa\xd5\xfa\xea<^is;\x99\ -v\x9b\xf3}\xf9\xf1\x05\xf67}\xba\xc0\xbe@mV\ -\x1f\xd6\xd3\xeeR\xae\xd1\xa9e\xb7=\xff\xd3\x0f\x7fz\ -:8\xd2j\xb6\x9d\x1d_\xe7~!W?y\x8a;\ -\xda\xdd\x1fB\x08\xe7\xbb\xa3G\xa7\xa7ND\xad\xf5\xf9\ -\xb3\xd7\x93\x8f\x9f{\xeazv\xf9\xe2\xed5\x9e\x0b\xd6\ -r\xc6h\xf3i\xb9\x9d\xdc\x8f\x96\x9bw\xc7\xdf\x9dN\ -\x9f\xbe:]w\x93\xed\xfcc7]\xdd\xdc\xac\x96\x9b\ -\x07\x08O\xcf\x9e\x1d\xce\xbe\xfd\xb0^\xecN\x99M\xcf\ -\xbbEw\xd3-\xb7\x9bs\xe1\xfa|\xf8}\xfc\xc2\xfb\ -\x9bn;\x99M\xb6\x93\xdd\xb7\x1f\xea\xcd\xbe\x08\xf0\xe1\ -\x1c9K\x1el\xfc\xef\x7f\xfa\xf3\xe3G)\x98N\xc7\ -\xff\xb9Z\xff\xbc\xff,?\xf1\x94\xc9O\xab\x0fR9\ -\x87\xdf\x1f\xca\xdf\xcf\xa6ca\xe8f\xb2\xfd~~3\ -\xb9\xea\x22(\x7f\x90\xa7|\x7f~8pz\xf6\xf6\xd3\ -mwt\xdd\x87+\xaf\xbb\x07\xb2\x93\xef5\x9b\xde\xcc\ -\xe3\xb7\xce\xff\xba\x9d/\x16\xff\x1ao3\x1c\x9c\x1f\x1e\ -\xf6\xfc\xf1i\xf7os~\xfc:\xef\xcf\xf7\xef\xfb\xf0\ -q\xd6]n\x8e\xc0\x88\x1fA?\x01!\xb5\xa4\x9b\xac\ -\xffy=\x99\xcd\x05\xc9\xa7\xc7|jN\xd3\xd5b\xd1\ -M\x05\x83\xc9\xe2n\xf2i3<\x9c!\xd7:\xfd\xb2\ -\x0b\x00\x07\xa4\xdeo\xb6\xab\xdb\xa3\xd7\xdel?-\xe4\ -mc\xe9H.\xbaZ\x8f\xdf\xe1T\x93\x9d|\xb7+\ -ZI{\x91w\x1e\xc3\xf0\xe8;\xab\xcb\xcbM'\xf7\ -\xd6\xc7\x85\xbb\x9e@\xbe\xe2\x82\xf6'\xa8\xfc\xff7$\ -?e\x0f\x9fqCx\xe1\x86\xe1p\xc3\xf7\xe7\xa7o\ -\x9f\x0d\xe8\xae\xc1\x8e\xaf\xd7\x9d4\xaaw\x09d\x7f\x01\ -yC\x9e\xcd\xe1\x84\xab\xc7\xe2\x1f\x97\xf3\xad\xb4\xfb\x0f\ -\x9bn\xfd\xd7\xd8\x1d\xfd\xdb\xf2\xc7MwtC\xb8\x18\ -Z\x05\x0e\x19\x9d=\x14\x7f\x92b \xa5\x03\x1bwt\ -\xd1{\x94NZ\xba{\xf6\x1a\x8f\x1e\xe6\x93\x14SP\ -\xce{\xb2t\x84\xceo\x02\x83\x0d\x1eK\x80\xa1\xf7\x08\ -?\xacETb\xe7p1\xdc\xc6_\x17\x93m\xf7\x8d\ -\xf4\xe8\xc1\x80TH\xa23T\xd6{\xadA\x84\xe9\xb7\ -\xc7\xd0\xbc\x1d\x0c\x057\xb9\x06\x07w\xa6\x15;k\xc8\ -2\x96\x00\xa1{;\x10\xcaU\xac\xb1R\xf5\xce\xe47\ -\xa3\xd1\x04[\x02\x82\xfcv\x104\xca y\xd2pf\ -\x95\x0bN\xd8/\xa1\x0e\xb2~[]!!\xc4\xbeG\ -j\xa15\x86\xbd-\xa1+\xe4\xb7%'\x0e=\x05\xab\ -\xad\xc8\x0901\x19.\x01\xc37$'#\x19H\x00\ -Y\xbfC\xd0\x06\xe9\x17]\x09\x08\xbe!5\x19\x09p\ -\xdaC\xd0\xee\x8c\x94\x17\xb3\xd4\x17!'\xcco\xaa!\ -{c\x0d\x831R\x0d\x0dx\x0c\xc1\xff\xe6\x18J\xdf\ -\xf2\x96:CR\xd6\xa2\xd5LgF!:\x19\xbb\xb9\ -\x12 4\x0d\xc2\x5c\x08]\x830\x17Bn\x10fB\ -\xf8\xa6\x8c\xebB!lr\x92\x0d\xe1[\x92\x13\xabd\ -\x88,#\xbbp\xe6\x94\x07\x0a\x0e\x8a\x80\xb0\xc9I6\ -\x84MN\xf2 \xf4Z\xbf\xad\xb9\x1a\x8d\xde\xa2\xa3\x87\ -Q2\x85\x80\xb6\x04\x0c\xb1a\x98\x8d\xa1i\x18fc\ -\xe8\x1a\x86\xd9\x18r\xc30\x17Ch\x9a\x92\x8fa\xd3\ -\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\ -b\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\ -\xf9\x186M\xc9\xc6\x90\x9a\xa6\xe4c\xd84%\x1f\xc3\ -\xa6)\xf9\x186M\xc9\xc7\xb0iJ6\x86\xa6iJ\ ->\x86MS\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\ -\xa6dch\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xf9\ -\x186M\xc9\xc7\xb0iJ6\x86\xaeiJ>\x86M\ -S\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6dc\ -\xe8\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xf9\x186M\ -\xc9\xc7\xb0iJ6\x86\xdc4%\x1f\xc3\xa6)\xf9\x18\ -6M\xc9\xc7\xb0iJ>\x86MS\xb21\x0cMS\ -\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6\xe4c\xd8\ -4%\x17Chq\xf4\xaf\x80a\xd3\x94|\x0c\x9b\xa6\ -\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\xb68\xfaW\xc0\ -\xb0iJ>\x86MS\xf21l\x9a\x92\x8fa\xd3\x94\ -l\x0c[\x1c\xfd+`\xd84%\x1f\xc3\xa6)\xf9\x18\ -6M\xc9\xc7\xb0iJ6\x86-\x8e\xfe\x150l\x9a\ -\x92\x8fa\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1b\xc3\ -\x16G\xff\x0a\x186M\xc9\xc7\xb0iJ>\x86MS\ -\xf21l\x9a\x92\x8da\x8b\xa3\x7f\x05\x0c\x9b\xa6\xe4c\ -\xd84%\x1f\xc3\xa6)\xf9\x186M\xc9\xc6\xb0\xc5\xd1\ -\xbf\x02\x86MS\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\ -\x9b\xa6dc\xd8\xe2\xe8_\x01\xc3\xa6)\xf9\x186M\ -\xc9\xc7\xb0iJ>\x86MS\xb21lq\xf4\xaf\x80\ -a\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\ -\xd9\x18\xb68\xfaW\xc0\xb0iJ>\x86MS\xf21\ -l\x9a\x92\x8fa\xd3\x94\x5c\x0c\xb1\xc5\xd1\xbf\x02\x86M\ -S\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6dc\ -\xd8\xe2\xe8_\x01\xc3\xa6)\xf9\x186M\xc9\xc7\xb0i\ -J>\x86MS\xb21lq\xf4\xaf\x80a\xd3\x94|\ -\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\xb68\ -\xfaW\xc0\xb0iJ>\x86MS\xf21l\x9a\x92\x8f\ -a\xd3\x94l\x0c[\x1c\xfd+`\xd84%\x1f\xc3\xa6\ -)\xf9\x186M\xc9\xc7\xb0\x1aMy\x7f>\xeb.7\ -\x0f\xbfnV\xb3\xf9\xad\xfc\x1b/'7\xdd\xec\xe3\xbc\ -\xbb{\xbc\xc3\xed\xe4\xaa\x13$Wk\xc1\xear\xf7\xb3\ -\xbf\xf7O\xab\xf5\xac[\xef\x8f\xb9\xdd\xcf\xe9\xb1\x95`\ -1\xdf~\x92\xb7\xdc\x97\xaf~\xfa\x9bP\xb2]-:\ -y\xc6i'G\x9e\xd4\xe5j=\x9f\xa5\x0f|\x98\xcf\ -\xba\xe4\x91'\xaa\xe3C>\xdd,}xs=\x99\xad\ -\xee.\x86\xd8;z7_\xca\x91\xd1\x9d\xdc\xfeZ\x8e\ -\x9b`_:\xe5\xba\x9b_]o\xe3\x13\x1c&\x91c\ -\x1dy\xc2\xec\xa9jl\xaeWw\xf1\x85.\x86\x97\x93\ -\xc5\xa1*<]\xf0\xef\xab\x95\x10\x05\xa0B\x80#:\ -\x0fu\xf7\xfeb8be\xb5\x03<8'\x1d\x0eG\ -L\x83b\x0eD/\xbe\x90\x5c\xc2\xbd\xf8*r\x01\xf4\ -/\x1d\xbc\x99\xdc\xcfo\xe6\x7f\xeffG\xcc\x1d\xee\xfd\ -a\xbd\x96\xfa6ZL>uB\xfc\x95\x0b\xda&\x11\ -\x9f^w\xd3\x9f\xbb\xf5O\xab\xc9z\x16Y\xd9\xd7\xba\ -\xab\xc7\x93'\xeb\xf9D\xae\xf2S\xb7\xb8\x18\xfe\xef\xff\ -\xec\xea\xa9\x1d\x1f\xa3\xf1\ -\x87\xd3.(~\x0f\xedq\xc7t\x02R|\x7f\xd0A\ -\x09\x0f\xa9w\xff\xfc\x97$?e\x0f/\xbc\xe4\xfe\xe8\ -\xc9{\xa2\xf2\xc6s\xd8\x17\xc6{\x0b\xfd\xe3\xf5\xea\xc3\ -rv\x5c\xf8\xb7\xd5|yZz3\x97\x87ZH-\ -\xdb\x8e\xcd\xbel6\x91F\xba^O>\x9d \xfa\xf4\ -$\x87\xd7\xdf\x1e\xfa\xba\x9b\xc9v=\xbf\xffF+\xa1\ -\x9e5\x22\x9f\xe9\xf8\xe7\xf0qd\x9d\x22&\x0cg\x80\ -\x0a]\x08\xc6\x7f\xbb\x87_\x08\xb8\x9dl\xaf\x9f\xae;\ -\x18\x08\xda\x7f\x19\x18\xa7\x1c\x1a <\xf3\xd2\x0d;6\ -\x06\x07\xff1\x00-\xac\xda\xe0\x06\xd7\x03\x94\xa6'B\ -a\xed\xe0\xe3 (@\x0c~\xf0/\x87\xafI\xe9\xfe\ -\x0c)&\xaf\x9cf\xc3\x1c\xaf\x01\xd2!3\xdax\xba\ -W\x1e<\x11\xd9\xe3k\x9f\x9e~\xb8\xfd\x7f\x0d\x8f\x1e\ -2\xd6\x89\xf8\xdc\xce\xb0?.\xdf\xd7\x8a7A\xe6A\ -\xc7\xcf\xaf\xfa\xad!\xbe\xe2\x15\x0a]i\xd6\x8f\x14\xce\ -\xb2bk\x91\xfd\xd9\x08\x94Am\x89O\x08^\x8b\xde\ -$0\xfaU\xdd\xcb?\xa6k\x99N\xb4\x9d\xbcD\xd4\ -\xe3\xd1\x13\xa2@\x09M\x8c\xbf\x82\xa8\xc3\xf5o's\ -y\xee\x9dJ\x8fo&k\xe9\xa77\x83\x87\x93\x06\xf1\ -I\x9eW\xb7\x88\x22\xea\xe0q\x04\xc7\x87\x1e5\x93\x94\ -E\x04\x03\xe1\xf8\xd8\x93XJ\x85\x86\xa8T\xc7\x07\xef\ -\xa3\xd0\xca\xb7\x0c\xf0\xc9\x97\xa2,9\xc5\x06)\xe0\xa1\ -\x8a\xd4Jc\xec9\xdcoD\xe3\x08\x13D\x0a%A\ -#\x1d\x87\x1c\x1e\x884*xg\xad\x09\xcf\x89$\xb1\ -b\xb4\xd0\xff\x8cH\x90\x96\xa9O\xc2h\x07\x83u,\ -W^\xbb\x10\xc7\x22\x9f\xd1\x07\x1c[\x17'=\xdc\x11\ -\x08;\x02>\xac\x17\xdf<3\xe6\x0dy6\xc7}\xc1\ -t\xbe\x9e.\xba\x17z\xcc\xd4\x05\xbc\xd6\xfa\xdb\xcfV\ -}\xab\x9ct\xe2_\xc2\xe7\x17\xd2\x17;}>\xceA\ -5\x18DC1\x0e\x16Pks\xc2Z4\x11\x0dJ\ -}\xf7\xe1D$\xd6\xd1\xa6;nY/\x82RL\xdb\ -z\x81\x19,\x8f\x99\x11?\xe7\x86Xy\xa9\x85\x80\x09\ -n\xd0\x06\x0e\xb6NrL\x81\xe4\xf8\x1e9\xa4\xd8\xcb\ -\x10*\xc1\x0dh:1>j\xe2\xc6\x15\xc8Mx\xce\ -\x0dZ\xc5h\xcc\xf1J\xd2#9Z9\x06o+m\ -8\x5c 9\xae\x91\xb3#\x07\x0a4\x06F:AN\ -\x08p\xe2\x1b\xf5D\x8e!\xb0\xa7\xd6]%\xe4\x88\x94\ -\x96H\x8eyN\x0e\x80r\x96\x9e\x19\xd1\x91\x1c\x02E\ -(Z\xe4\xeal9%\x1ak\xf0\x9c\x1c\xaf\x8cA\xc3\ -\x8e\x9f\x93\x03A\xac8\x198Q\x9d\xe4\x94h\xaci\ -\xd3g\xc7\xa2\x15{-|M\xecX\x19s\x978\xce\ -\xe9\xd9\xd2\x10M\x02\x87\xde\xf6:6R:F!U\ -\xdavJdG\xf7\x87\xa1\x02\x81\xb1Z\xf7z6\x01\ -,\x08bP);EZ\xd3\x98`\x87\x91\xbdKY\ -l\xd2;;]\xa7Q\x80EZl\xfeK\xd8Ag\ -=\xa8\xbc\x0f\xce\xf5\xcd\x02+\x83\xd1\x80:\xd4\ -IO\x89f\x81\xef\xb9|\x00\x89\xf2\x90\xc1\x049\x86\ -\xac\xa3:m6[\xa2Y\xc0\xfd\xb1\xa8Q\xc8\xda\x1b\ -N\xb0\x83\x8e\xf9\xf4@=\xec\x149S\x10\x12\xec\x88\ -Am)\xd5\xb1\x01[c\xeb\x9c*\xb0E:\xe82\ -&\xe8\xb1\xa4\x03\xf2\xd75\xe2\xb1%\x9a\x05\x96\x12\xec\ -x\x06\xd0\xbd\x05\x04\x94\x81\xaa\xbcD\xa5\x93\x05\x96\x8b\ -\x1c\xf1\xf4\xcc\x02\x12\x81\x89!}\x89\xc572\x0c\xbe\ -N\x9b\xcd\x95h\x16`\x9f\x1c\xa7,x\xa3S\xd1\x07\ -H\xd1l\xab\x93\x9d\x22=A\xfb\xe1\x07\xac(h\xe7\ -S\x0eS(=\x1b\xd59Y\xe0L\x91\x0eS}\x9b\ -\xda)\x1f\x9d\xdc\xfbk\xa3\xa8\x8c\x1c\xe1:mj\xe7\ -\x8a\xec\xda\xfa3\xa1A9\x91\x97>=\x18C\x10\xa4\ -\xbc\xd2\xd6S\xa2]\xd07\xda\xbc\x18m\x84}/\xf7\ -h\xb4q\xd0\xb6\xce\xb6\xe3K4\x0b\x00\x126[\x00\ -\xab)$\xbc>\x02is\xeacU\x0f;E\xce\x16\ -\xe8D\xdb\x09\xce'\xfc\xd9\x08\x94'\xa8t\xa2\xcd\x17\ -\xe9W\xe0\x12\xa3Q\x17\xbc\x87\x94\xea\xa0GS\xa9c\ -A\x91\x01\x22\xde7v\x1e\xd8)r\xae@\xa7\xd8\x01\ -C\x08_\x17;E\x06\x8d\x06\xb2\xfdxx@\xa5\xad\ -\xf5\xbe\x97\xe4\x03A9\xb2\x84u\xceS3\x16\xb9\x00\ -\xd7\xcf%!\xfc8\x0a\x960\xc1\x0fi\xf0\x95\xae\xf2\ -\xb0)r\x0d\xae\x9f\x88\x05HY\xeb8\xd5|\x80L\ -pu\x9a\xd5\x5c\xa4{AH8\x85\x92\x8a)\xcfM\ -\x8a\x1fm\xa1V\xf7\x0f\xe62\x97\xe1\x12\xb3\x06\xa4X\ -\xc6\xd0\xfdq)\xa2\xf4oh*%(\x14\xe9zH\ -\xa3\xd4R\x9c\xb6\x1e\xa1\xcf\x8fU\xc1\x83\xaft\xb1'\ -`\x993\xa2\x09\x01b\xc5\xc1\xe8\xbe\xa3\x01:i@\ -\x96*\xcd\x99\x13J4\x10(9+\xaam \x86\x04\ -=bx?\xcfcX\x0d=E:\x1a\xb8\x84}M\ -\xd2\x8d\x11c\xaa\xf9\x00\xb1\xad\xd4\xd5 \x14i \xf8\ -\xc4\xf8\xf4\xab\xe4\x07t\x919\x0ct\xda~\x0b\xda$\ -\xc6\xa7u\xf3S\xa2}\xe0z\xb9\x8dH\xac7\xd6\xc4\ -\x94\xca\x00\x12\xb8Nj\x8atA4\x09O\x10Ob\ -W\xf7\xbd\xa8@\x00\x93\x9fP';E\xa60\xb0\xa9\ - y4\xc1Q\x82\x1df\x82:\xbd\xa8\xa0\xc84\xa1\ -}\xef\xdd\xb8x\x00\x14\xa0\x9f`\x22z&\x1ao\xaa\ -\x9c\xb4\x86\x22\xf3\x84:\x9d\x08\xb9\xe2\xc8AjE\x8e\ -\x0c\xf8:sQB\x91\xb9(]?\xc7.(\xef|\ -?\xd4\x97P\x05\x8d\xe0L\x9d\xe4\x14\x19\xad\xe8\x12\x93\ -9\x8e\x03\xf5czb\xa2=\xb4V\xd7i\xb2\x15\x99\ -\xed\x10{Sm\x88\xd1U\xca\xf9\xbe\xecxy(C\ -u.fC\x91\xd9\x0e\x83K\xb1c\xf1do\xd6'\ -\xd7jp\xd6Wj\xb2\x15\x99\xed\xb0\xef\xba\x8bVA\ -\xdc\x03\x06\x12\xfe\x87(\xe5l\xeb\xcc\x1e^fN0\ -\xddO\x82\xcc\x865\xa4fql\xc0\x00u\xf6lE\ -\xe6\xa2\x84\xde\x1c\x1b+\x8f\x8c\x89\xc1ht2\xd0\x14\ -\xa8\xce\xa9\x82\x22sQz\x9f\xca\x9e\xe3\xc4\xfa7}\ -z\xa2k\xa2s\xbaN\x93\xba\xc8d\x94\x90\xf4\xa0B\ -K\xde\x99T\xdf\xc6\xc2\x9c\xaf\x93\x9e\x22\x95\xc7$\x16\ -\xb0Q\x11y\xb0\xfe\xeb\xe2\xa7\xd0|\x94\xa3T\x06~\ -\x19y\x06J\xad`\x83\x0b`*\xe5\xa7\xcc\x8c\x94\x89\ -\xad_~\x81\x1f\xcd2\xee\xa9S~\xcaLJ\xd9\xdf\ -\xfc\xe5ez\xacb\xb2\xd6\xd7\xb9@ZhZ\xcaQ\ -*Q\x0b\x13\x87\x84y`\x94\x01\xcf\x5c\xa7q]f\ -b\xca\xfe\xaec\xd2|\xb4\xb6\xfd\xed_\x90\x04\x1bM\ -\xbe\xce\x09\xd1B3S&Z\x8fU\xe0\xc5\xbcv\x09\ -~\xc0\xb9\xc0u\xf6n\xa5\xe6\xa6LX\xd7/\xcaO\ -\xdd\x04\x95\x99\x9d2\xc1\x8fSf\x97\x96%\xc1\x8f\x16\ -\xfb\xa0\xce\xcdb\xa1\xd4\xfc\x94\x89\x08\x12\x1f7/\x0f\ -\xfd$\x88\x882<%\xa4:}\x0d\x0a\xcdP\x99\xf4\ -\x7f\x07o\x5c\xe0\x04?\xd1\x83\xc7\xd6i\xbf\x15\x9a\xa4\ -21<\x0dJ\x07\xd4\xe8\x12\xfc\xe8\xb8\x89\x0f\xd6\xc9\ -O\x99i*\x13\x0e\xbcA@`\x86T\x80i\x08\xc1\ -\xf8:\xa7w\x8aLTi)1\x7f\x10\xe2\x0a\x1cq\ -j\xfa:@p\x95\x8eOm\xa1)\xa9\x12\x0d(\xae\ -/\x04NX\xd8F\x99`]\xa5\xf3\xd7E&\xab\xa4\ -QrC%\x8c\x19\x11\x13\xf4\xa0\xb1\xcf\xdc\x14\xab\xa1\ -\xa7\xc8l\x95\xd6%&x\xa4\x7f\xd3\x1cB\xbf\xf9x\ -\xb1\x0f\x9c\xa9t~\xb4\xc8|\x951\x00\xcb'\x1cF\ -5h\xed\xfb\xcb\xdbAyk\xb5\xab\xd3\xaf\xaa\xc8\x94\ -\x95F\xf7\xa7\xe0\xa4\x1f\x83\x10\xd7\xab\x12\x1e\xbd\x0e\xbd\ -\xd6u\xea\x8f+u\x06!\xb5\xc6\xe0\x14\xbb\x98\xba\xbe\ -\xd7\x84X\x19\x13\xa8\xd2%TW\xe8\x1c\x82O\x86i\ -\x1b\x91!\x1d\x12\x0c\x01X_\xe9(\xd5\x17:\x8b\xc0\ -\x89=\xcaX\x91c \x9f\xb0\x13\x82\xe1P\xe7\x96\xbf\ -\xe0\x0b\x9dG\xb0\x89\x99\x1eV\x96L*;\xaf\x97\xee\ -\xcf\xd6:\x95\xedM\xa9\xb9v\x12\xdd\x1c+\x072T\ -\xf5\x09[\x0e\xc4\xe4\xa9\x95\x22Wd\xe0\x5c\xc2\xd7\xca\ -)g\xd9\xa7\xc6B`\xad\xaf\xb1\x8b\x13\x13\xb5\xd8\x5c\ -;Ig8rA[\x93\xb0\x13\xc8\xb3\xae\xd2\xd9J\ -(*4\xdbN2\xe1\x9b\x88P\x8a\x1e@\xff\xace\ -\xd5C\x8f+\xd4\x97t\xe4\x12\xc1\xc1\x9et\xe8G8\ -\x0aCh\x80M\xa5}\x1c\x17\xeaM\x9a0\xe3~\x81\ -!\xb0\x5c\xe7\xcee\x0e\x8bL\xd9kG\xf0%MH\ -FB\x9a\xd1\xd7\xa9AE\xa6\xec\x8d+v\x093\xdb\ -)\xed\xbc\xd1\xa9\xf9\x9e\x10\x17\xf3\xb8N\x86L\xa1k\ -\x0e\xc9\xb4o\xac\x9dv!\x11h\xef\x8c3\xa6\xd26\ -\xe4\x8a\x9dMH\xfa\x96j\x1dR\x9eWA\x05b\x0c\ -uR\xc4\x85\x8eU\x93\x8d\x08\x88<\x86\x04A(\xbd\ -A\x9d;\xfe@\x91\xb6\x1c\xa4\x5cG\xe2X(\xa4\x9c\ -\xe7\xc5P\x00\xff,\xa0\xb8\x9e\x98\xfb27.\xc1\xc4\ -\x9c6)2\xc8\xb6\xe7\x1bG\xb1e\xd9ZC\x1f\x8b\ -4\xb5\x9dImN\xcf\x10\x10S\xed\xc7[\xf4un\ -\xcb\x04\x5c\xe6|\x5cj\x0fgMD\xfd\xd6#\xf2C\ -\xa4M\x95q\xf76\x149\x17\x17tH%\xe9\xd3\x81\ -\xfa\xeaCVy\x0f\xb6R\xf1)r\xbd\xae7\xc9\x13\ -\x94'c@\xa7\x9cz\xd0\xb2\xae2\xa5\x88\xb0S\xe4\ -\x085\xe5\xf3\xab\xbd\xb5}\x9fl\x8a3H\xf0\xc3\xe8\x13Y\xfa\ -\xea\xa6\xc7\x14\x9b\xa5\xaf\xbf\x81\xb0W\xe8\xd8\xf73\xc5\ -\x92S\xc6Z\x80:gH\x8b\xdc\xa9i\x97\xa5/\xc5\ -\x10[\xb4\x89M\x84\x9d\x02\x84:w:\xc3\x22\xb7j\ -zH\xd2\xd7\xef\xe5X\xf9\xb8\xa9LHts\xc1\x9a\ -J7\xa3\xc3\x22\xf7k\xda\xc5\xd5\x87\x04C\x81\x9c3\ -.\xc1\x10\xc7}\xdb\xea\x9cG(r\xc7\xa6\x87,}\ -.a*h\xd4\xcf\x02\x15\x1e\xc3\x7f\x00eDW)\ -EeF0\xf4g\x12bfr\xa7M\xd2\x96\x03\x07\ -\x95\xae\xd4\x15\xb9e\x13$2\xfe#\xa98O\x1aR\ -=\x5c@\xf2T)?\x5ch\xda\x03\x9dp\xb5b\xe9\ -\x90\xfb\x89]\x043\x0b\x8e\xc2/\x1b\xda\xf1\xda\x09z\ -\x222Go:~\xc7:\xfe9}q\x10\x0c?\xeb\ -\xado\xe6\xc2\xc5\xbe\xf4\x09\xd1\xe3\xe7\x92\xb7\xfc\xcb\x00\ -\x95\xd7\x80\xce\x9f\xb1\xe2\x80VdU\x8a\x02\x04\xb93\ -\x9e\x19\x1b#\xa0\xd9\xdb\x81\x89\xda\x1a`WD^N\ -\xa4\x14`\xc6\xc9 \xe3\xf0\xaa\xef\xcf\xafv\xbf=\xfd\ -\xbf\xed\xee\xb7\x8f_\xbb\xbfY\x8cc\xbd\x90\x17\xbf]\ -wR\x7f>v\xfb+\xfe\xca\xea\x0a\xa29\xe0\xff\x11\ -\xd5\xf5\x1d\x82\xf3\x9e?\xbbrj\xe5\xbd\xb5\x87\x01\xb1\ -\xd4\x98\x91\xe1\x18sy\x18\x81=\x8e\xca<\x1e\xe6\x0b\ -#\x8a\x11!c\xd1\xc8\xf0\x0e\x1f\x80|\x7f\xbe\xf9\x18\ -\xe1\xfb?x\x12\xa3W\ -\x00\x00\x07$\ -\x00\ -\x00\x1b\xd3x\xda\xedYY\x8f\xdbF\x12~\x0f\x90\xff\ -@\xd0/\x1e,\xd9\xec\xfb\x90\xa5\x09v\xe1\x0d\xb2\x80\ -\xf3\x92d\x8f\xecK\xc0![\x1af(\xb6@R\xa3\ -\x19\xff\xfa-\x92\xe2!\x89r\x9c\x8c\xd7@v\xa3\xc1\ -\xd8\xec\xaab\x1f\xdfWU]\xa5Y~\xf5\xb4\xcd\xbd\ -G[V\x99+V>A\xd8\xf7l\x91\xb84+6\ -+\xff\xef?|\x1dj\xdf\xab\xea\xb8H\xe3\xdc\x15v\ -\xe5\x17\xce\xff\xea\xf6\xcb/\x96\xd5\xe3\xe6\xcb/<\xcf\ -\x83\xd7\x8bj\x91&+\xff\xbe\xaew\x8b(\xda\xed\xcb\ -\x1c\xb9r\x13\xa5Ids\xbb\xb5E]E\x04\x91\xc8\ -\x9f\xd8'\xa3}R\xda\xb8\xce\x1em\xe2\xb6[WT\ -\xed\xabE\xf5jj]\xa6\xeb\xc1\xfcp8\xa0\x03k\ -\xad\x881&\xc24\xa24\x04\x8b\xb0z.\xea\xf8)\ -<{\x17\xf69\xf7.\xc5\x18G\xa0\x9b\x98~\xa4\xd9\ -\xa2\x02pv\xf0;\xd8\xf7\x02T\xb9}\x99\xd85\xbc\ -hQa\xeb\xe8\xed\x0fo\x07e\x88QZ\xa7\xd3y\ -\xb2\xe2\xa1J\xe2\x9d=Y\xb7\x17v0\xc4[[\xed\ -\xe2\xc4VQ/\xef&8di}\xbf\xf2\xb9\xee\x86\ -\xf76\xdb\xdc\xd7\xe3\xf81\xb3\x87\xbf\xb8\xa7\x95\x8f=\ -\xecq\xed\xf5\xf2,]\xf9p\x18z\xb4\x1aI'G\ -\xfdq\x91\xc5\xa0\xc2\xc8P\xc4\xbd\xd7\xfb\xe2\xa1p\x87\ -\xe2\xa6\xb3\xeb\xcf\xb4H]\xd2\xecq\xe5\x7f\xff\xd7\x9f\ -\xdeeUm\x0b\xd4\x80u\xdbX-\xb7\xb6\x8e\xd3\xb8\ -\x8e\xdbW\xba\xc5{\x11\xa1\x9d\x0dX\x01s\x8b\xef\xde\ -~}\x1c\x82 I\x16\xfft\xe5C?\x86Oc\x12\ -\xdf\xb9=\x9c\xd0\xbf\x1d\xe5\xcb4Y\x00\xd6\xdb\xb8\xbe\ -\xcd\xb6\xf1\xc66<\xfd\x09\xa0]F\xa3\xe2\xd4\xba~\ -\xde\xd9\xc9\xbc\xdd\xcc\xa5\xedh\x9bu\xe04\xd9f\xcd\ -[\xd1\xf7u\x96\xe7\x7fk\x96\xf1\xbd\xe8|\xda\xac\xce\ -\xedm\xbbl\xf78\x9c%:\x1e\xa6?l4=\xed\ -2\xea\xe1\xe8\x86\xa9]W\x13\xac\x9a!\xc1\x03N\xdb\ -\xb8|\xb0\xe5\xb0\xf0@UU\xbb\xe4\xa1\xb1\xffsY\ -\xba\x03y\x07\xb1Z\xd6\xfe`\xe7\xca\x0c\x02p\xe5\xc7\ -\xfb\xda\x8d\xd2\xd2\xae\x7fl\xc8\xc5'\xa2\x7f\x9d\x89\xae\ -\xcfZ\xd5\xcf9\x00\xe6\xc0O\xd6\xb9;,\x1e\xb3*\ -\xbb\xcb\xad\x7f\xb9\xbd\xacj7\xb8\xf2\xebroG\xf6\ -\x96\xbb\xb8\xbe\x9fP\xd1,\xd5\x88\xb80\xda\x9f\xc8A\ -\xfc\xad\x07\x9b\x0a\xe0\xd7{\xe7\x09x\x0aE\xfb\x18\x12\ -\x8a\xc4D\xdcI{\xd3\xf7\xdet\x96\xe3v\xd7@a\ -X\xees\xbb\xb0\x8f\xb6pi\xfa\xa6\xaaK\xf7`\x17\ -\xafp\xfb9\x0e\xc36\xba\x16\x90\x0aw\xf5t\x96\xba\ -\x8c\x8b\xaa\xf1+\x08\xa2$\xce\xedk\x8c\xf4M'\xcd\ -\xe3\xda\xbe\xee6t3\xfa\x07\x10\xdc\x92vd\xbb!\ -\xb4{\x1c\xe2\xa7\x09\x9e\xb4\x89\xd6\xe32;\xf0\xaf\xc4\ -\xe5\xae\x5c\xf9\xaf\xd6\xed\xa7\xdf\xc0\x9d+S[\xf6:\ -\xd9~Nu\x0e\x12\x05\xf8*\x84s/ww?\xdb\ -\xa4\xae]na\x8f\x8d\x83\x93\x81\xdcM\x09g\x9cU\ -\xec\xb3\xd4\xcej\x06J\x9bM\x0e\x8b\xcd\xab\xab\xfb8\ -u\x87\x95O/\xb4\x87\xac\x00MxL`DKv\ -\xcd\xa4Oj\x04S\xe1O\xe2b\xc0lp\x94\xea\xde\ -\x1d\x9a\x03\x01\xc3q^\xd9\x8b\x09\xdf;\x07\x9c1\xc4\ -4\xa6X\x8b\x0b}\x02\x99\x12\xd23!R\x1a\xc1\xc8\ -\xa5\x1e\xce\xc9\x0cbLJe\xaem\x17\xe6\x10\xea\x9a\ -\x12&\xa0W\x95\xdb\xf8)\xdbf\xefm:\xa1n\x5c\ -{_\x96\x10\xc0a\x1e?[`~c0\xe9\x1dl\ -\xb9\x99\xa0\xb2\xe1D\x8c\xc9bs\x12\xc3\x1b.8\xff\ -\x98\xd8c\xf82\xf6\x02\xec}\xd3\xdc!\xffh\xfe\xf9\ -\x06\xee\x93\x7fOm\xc6}\xba\xa2\x00gse\x08;\ -~\x8c\xeb}i'\xceq\x16\x84\x8b\x02J\x89i\x1e\ -\x9dl\xf8\xb8\xe5\xe6\x9c\xf3\xb1\x07i\xbd\xcc\x9e^C\ -x*f\xa8\xe1\x01l1\x18G\x0a\xa2\xd2\xc0\x81I\ -\xc00R\x8c\x1a\xccnNn\x8d\xcd\xc9\x0d\xd0.\xa6\ -\x8d\xf0O\xa4\x97\xcba$%\xe7\x98s\xd1\xae7\x19\ -\x86\x06QA\x14g*\x08)\xa2\x8a(X\xfed\xc9\ -K\xc8\xbd\xe9%\x0a\x99\xc86w\x0c\x14 I\xe2\x9f\ -[MP{ee\xf3\xf3\xe6z\x1eS\x84\xa9D\x9f\ -\xe61\x8a\x94a\x5c\x199\xc8\xf3\x0c\xa8\x8aw\x8b\xbb\ -}]Oe?\xbb\xacX\xc0}g\xcb^\xda\x0er\ -\xf0\xcez\xc1{Y\x1aCt\x97e\xfc\xdc\xb2\xd8K\ -\x8f\x09aA\xce\x0f\xd0\xdc\xfa^((2\x02\x1b\xc2\ -!Os\xc9\x15\xc1\xcc3\x88SJq\x8b \xc7\x94\ -\x8d\xb1u\xe1\x99D]\xcc\xfbK\x9ewrK_a\ -\xe0\x7f\x04[\x8e(8\xa2\x94AH82\x8aq#\ -\x00\x5c&4\xc1&h\x1f\xb0\xd1\xf4\x03\xe0\xb2\xff\x06\ -\xb8\xffO\xee\xcd\x08\xd2\x0aS\x09)\x80($(\xa7\ -Xy\xe0\xd6\x1as\xa2u@\x08\xe2\x5c\xd3\x19\x9cG\ -\x0e\xc4\x1f\x0e~\x0d]\x0e\xbb\xd0T2\x1e\x84\x0c2\ -\x85\x04w\xe6\x1eT[\x0a.k%\x03\xd2\xe5\xf9\x0f\ -`\xab~-\xb6\x1f\xe7\xcb\xe7\x0c\xd8<\xcfv\x95\x9d\ -'a8\xe3\x9b\x8e\x0e)1^\xaf;:Nu\xb3\ -\xecL\xe1\x1a\xa8\xd1\xc4P&\xd8\x05\x0d\xa5\xdb\x17\xe9\ -'\xa4a\x84\x92\xc9P\x86\x17n\xdc\x16P\x90\x86\x04\ -\xdc\x89\x9a_h\xa1\xfa\x91\xc8H\x03\xb5\xd7\x05\x13\xe5\ -SS\x99\x11\xc1\xb4\xa2\x17!P6\x85\x17\xc2\xc2(\ -\x08\xad\x97\xc1m\x8c\x10/\x82\x1b\xcaG\xa2\x0d\xa1T\ -}^\xb8\xc9,\xd8\x14r\x0bh\x19\x99\x03[!n\ -\x98\xa4B\xce\x83\x8d%\x84\x92\x94s`\xc3-\xad8\ -L\xfcB\xb0\x19\xc3X\xe3\x17\x81\xad\x0d6\x12\x00\xff\ -\xcc\xbe=\x0b6\xa3Hr)\x14\x9d\x03\xbbI\xf8T\ -\x0a*\xc4\x1c\xda\x1cqB\x88!\xb3\xae\x0d\xf7\xb62\ -\x820\xfe2\xb4\xd5\x9a\xc6/tm\x0e%34\x94\ -\x9f\xd7\xb5\xe7\xb3\x08CJ2I\xc8<\xd6m}c\ -\xcc\x15\xcf\x16\x1an\xab+Y\x84k\xac\x19e/\x83\ -Z\x08\x8cS\xfe\xc2,\xc2\x8c\xd6\x86~^\xc7\xc6\xb3\ -`s\x80E`\xc1\xe7\x1d\x1b\x82P\x0b\xa1\xaf\x81m\ -\xa0\xeb\xc1d\x1el\x8d\x81\x08\xa6\xcf\xbe*\x8b6\xbf\ -\xd4\x87\x9d_\x1e\x93>l\xfc\x9e\x05#\xa0\xc1\x00\x9f\ -,\x80\xae\x1d\x0a\x03h#\x18\xfdd\x1d\xd7\xaf\xac\x0d\ -z\x98\xb5\xd0\xf3\xd5\x8b\x84\xec\xc1\x0c\xdcaP\x1b\x1a\ -\xd4\xb4\x8c\xd4K<\x8e\x08\xf4\x8c\x98\x04\x1a\x09\x0e\xb5\ -\xa3\xf4\x14\xc2\x06J\xf6\x00\xf2\x09\x83\xec\x0d\x15\x0d4\ -\xdfT#\xca$\xbe\xe4\xe0\xbc\x9b\xfe@]g\x98I\ -\xe3\xe4\xd4\x0f12\x8c\x10a\x0c\xd9=\x9dWv'\ -\x8e8_\xda\x8dN\xf7\xc9:\x81\xdf\x0e\xfbe=r\ -\xec\x8b\x14\xd2\xe0\xde\xb8\xe9\x8b$\x82^\x88H\x0e\xc8\ -C\x82Q\x0c\x0b\x0d\xc8CE\x0e8k\x10AJ\x81\ -\xfa# \x0cIh\x87\x18\xa3\x1eF\x8cs\xc6I@\ -)\x14\xf4\x18cC\xff\xe0\xe0:\x07\xf2\x0a\x07\x90a\ -\x98\xe2\x94\xb4\xbd)\xe6\x8c\x80\xa7'\x1eEp\xb5c\ -M\x03\x81\xa4\x90\x94J\x09\x22(<$1M9\x0f\ -\xb8p\xa1\x19p\x00\xa5\x88b\xd0@A\x94@=\xc3\ -(\xff]p0\xcdt\xe3\xf3\xe4i\xcc}\xb3\x19\x8e\ - \xf0ZE5$8* \x0b+j\xcc\x8d\x7f\xf6\ -\x9d\x1e\xe1C\xdd\xd0\xcd\xbcl\xfe\x00\x02\xff\xff\x07\x13\ -\xd8\x93\xea\ -\x00\x00\x08B\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a i\ +d=\x22rect823\x22\x0a \ + width=\x2235.123\ +97\x22\x0a heigh\ +t=\x2220.01022\x22\x0a \ + x=\x22-110.4943\ +6\x22\x0a y=\x2264.\ +318886\x22\x0a r\ +y=\x2210.00511\x22 />\x0a\ + \ +\x0a \x0a\x0a\ +\x00\x00\x06\xe8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x0b\xcf\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x14\xd4\ +\x00\ +\x01\xa6;x\xda\xed]\xddnc9r\xbe\xdf\xa7\x10\ +473X\x8bfU\xf1\xa7\xa8i\xcf\x02\xc1`\x93\ +\x5c,\x02dg\x12 7\x81F:\xb6\xb5#K\x86\ +\xa4n\xbb\xf7\xd5\xf2\x0ey\xa6\x14e[\x7f<\xce\xf4\ +2\xd8\x98f\xb3{\x1ac\x9f\x7f~\x1f\xc9\xafHV\ +\x15?\xfc\xe1\xf1n1\xf8\xd4\xad7\xf3\xd5\xf2j\x08\ +J\x0f\x07\xddr\xba\x9a\xcd\x977W\xc3\x9f\x7f\xfa\xe3\ +\x88\x87\x83\xcdv\xb2\x9cM\x16\xabew5\x5c\xae\x86\ +\x7f\xf8\xe1w\x1f6\x9fn~7\x18\x0c\x1e\xe6\xb3\xed\ +\xed\xd5\xd0\xf00\xfev\xdb\xcdon\xb7\xfb_?\xcd\ +\xbb\x87\x7fX=^\x0d\xf5@\x0f\x0c\x0f\x9e\x0f\xcfg\ +WC\xb9\x1d\x9f\xae9\xbc\x19\x9e\xce.\x7f\xddL'\ +\xf7\xdd\xf8\xf8\x8c\xc2\xc1\xb7z\xa2\xf5\xf4\xda\x12\x85\x8b\ +\x01j\xc4\x91\x96\xff\xccw\xbb\x9b6\xf2\xbd\xf7\xf2o\ +<[M\x97\x93;\xf9\xcc\xee\xf1~\xb2\x8c\xf7\xff\xe7\ +\xfdb\xb2\x5cJi\x94\xbcsw\xb1\x14x\xb9\x19\xbf\ +\xbc\xe7jx\xbb\xdd\xde\x8f//\x1f\x1e\x1e\xd4\xcbA\ +\xb5Z\xdf\x5c\xc6\x07m\xee'\xd3ns\xf9r\xfc\xe8\ +\xfe\x97W\xee\xef\x7f9\xa06\xab\x8f\xebiw-\x8f\ +\xe8\xd4\xb2\xdb^\xfe\xf8\xd3\x8f\xfb\x93#\xadf\xdb\xd9\ +\xd1c\x1e\x17\xf2\xec\x93ox\xa0\xdd\xdb!\x84p\xb9\ +;{\xb8\xba\xef:\xd4Z_\x9e\x16M~\xfb\xc2+\ +\xd7\xb3\xebW\xdf\xad\xf1R@\x96+F\x9b\xcf\xcb\xed\ +\xe4q\xb4\xdc|st\xebt\xba\xbfs\xba\xee&\xdb\ +\xf9\xa7n\xba\xba\xbb[-7O\xe0\x9d\x5c<;\x5c\ +|\xffq\xbd\xd8]1\x9b^v\x8b\xee\xae[n7\ +\x97B\xf1\xe5\xf0\x07\xb9\xfe\xc3]\xb7\x9d\xcc&\xdbI\ +\xbc\xf7\xa9\xaa\xbc\x1c\x01\xdc]!\xd7\xc87\x8d\xff\xf5\ +\xc7?>\xfd&\xbfO\xa7\xe3\x7f_\xad\x7f}\xfeU\ +\xfe\xc4\x0b&\xbf\xac>JU\x1c\xfe\xb0?\xfca6\ +\x1d\x0b+w\x93\xed\x0f\xf3\xbb\xc9M\x17\xb1\xf8\xbd|\ +\xdf\x87\xcb\xc3\x89\x93\x8b\xb7\x9f\xef\xbb\xc3C\x9f\x1e\xbb\ +\xee\x9e\xe8\xed-\xcflz7\x8f7]\xfey;_\ +,\xfe9\xbed8\xb8\xdc\x7f\xe7\xe5\xf3\x87>\x17\xe3\ +\xf2\xa8\x1c\x1f._\x8a\xb9\xfbm\xd6]o\x0e\x08\xc4\ +\xdf@\xbf\x94^\xaaD7Y\xff\xe3z2\x9b\x0bv\ +/\xdf\xb7o6\xd3\xd5b\xd1M\xa5\xe4\x93\xc5\xc3\xe4\ +\xf3f\xb8\xbf@\x1etz\xab\x0b\x00{x>l\xb6\ +\xab\xfbCa7\xdb\xcf\x0b)c<8\x92'\xae\xd6\ +\xe3op\xaa\xc9N\xbe\xdf\x1dZI\xb3\x90\x92\x8ea\ +x\xb8eu}\xbd\xe9\xe4\xbd\xfa\xe8\xd8\xae\xa9\xcb\x0d\ +.h\x7f\x8c\xc4o\xbe\x8c\xfc\x94=\xfc\xf6\xcb\xa0\xff\ +ea\xff\xb2\x0f\x97\xa7\x85\xfe\xbf\x81\xb8k\x8f\xe3\xdb\ +u'\xcd\xe6\x9b\x1e4_\x07\xdb\x90g\xb3?\x7f\xf3\ +|\xf4\xe7\xe5|+\xad\xfa\xe3\xa6[\xff9\xf64\xff\ +\xb2\xfcy\xd3\x1d\xde\x06WC\xab\xc0!\xa3\xb3\xfb\xa3\ +\x9f\xe5(\x90\xd2\x81\x8d;<\xf1\x11\xa5\xdb\x95\xde\x9b\ +\xbd\xc6\xc3w|\x96\xa3\x14\x94\xf3\x9e,\x1d0\xf9\xff\ +/\xbd\x0d\x1e\xdf\xb8\xf4\xe7o\xffi-\x02\x11\x9b\xfd\ +\xd5p\x1b\x7f\x5cL\xb6\xdd\xb7\xd2?\x07\x03R\xf5\x88\ +.PY\xef\xb5\x06\xd1\x98\xb7E\xce\xbc\x07\xe4\x04-\ +y\x02\x07w\xa1\x15;k\xc82\xbe5p\xee=\x00\ +'\xcf\xb0\xc6J5\xbb\x90\x9f\x8cF\x13\xec[\xe3\xc6\ +\xef\x017\xa3\x0c\x92'\x0d\x17V\xb9\xe0\x84\xed\xb7\xae\ +o\xac\xdfK\x17G\x08\xb1_\x91\x1ag\x8dao\xdf\ +\xba\x8b\xe3\xf7\x22\x0e\x0e=\x05\xab\xad\x88\x0301\x19\ +~k\xe4\xde\x858\x8c\xc4\xc0\x07\xb2~\x87\x9b\x0d\xd2\ +\xdf\xb9\xb7\xc6\xed]h\xc3H\xe0\xd2\x1e\x82v\x17\xa4\ +\xbcX\x90\xfe\xcd\xc5\x81\xf9\x9d4Uo\xaca0F\ +\xaa\x9c\x01\x8f!\xf87ENz\x8e\xf7\xd1\xc9\x91\xb2\ +\x16\xadf\xba0\x0a\xd1\xc9h\xca\xbd5p\xa6\x01\x97\ +\x07\x9ck\xc0\xe5\x01\xc7\x0d\xb8,\xe0\xde\x89\x09\x5c \ +pM\x1c2\x81{\x1f\xe2`\x95\x0cUe\xac\x15.\ +\x9c\xf2@\xc1\xc1\x9b\x03\xd7\xc4!\x13\xb8&\x0e9\xc0\ +y\xad\xdf\xcb\xfc\x88Fo\xd1\xd1\xd3h\x95B@\xfb\ +\xd6\xc8aC.\x139\xd3\x90\xcbD\xce5\xe42\x91\ +\xe3\x86\x5c\x1er\xd0\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\ +\xc8E\xae)D.rM!2\x91\xc3\xa6\x10\xb9\xc8\ +5\x85\xc8E\xae)D.rM!r\x91k\x0a\x91\ +\x89\x1c5\x85\xc8E\xae)D.rM!r\x91k\ +\x0a\x91\x8b\x5cS\x88L\xe4LS\x88\x5c\xe4\x9aB\xe4\ +\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\xc8D\xce6\ +\x85\xc8E\xae)D.rM!r\x91k\x0a\x91\x8b\ +\x5cS\x88L\xe4\x5cS\x88\x5c\xe4\x9aB\xe4\x22\xd7\x14\ +\x22\x17\xb9\xa6\x10\xb9\xc85\x85\xc8D\xce7\x85\xc8E\ +\xae)D.rM!r\x91k\x0a\x91\x8b\x5cS\x88\ +L\xe4\xb8)D.rM!r\x91k\x0a\x91\x8b\x5c\ +S\x88\x5c\xe4\x9aBd\x22\x17\x9aB\xe4\x22\xd7\x14\x22\ +\x17\xb9\xa6\x10\xb9\xc85\x85\xc8E\xae)D\x1er\xd0\ +b\xaa\xb3\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\xe4\ +\x22\xd7\x14\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\x5c\xe4\x9a\ +B\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\x99\xc8\xb5\x98\xeal\ +\xe4\x9aB\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\ +\xc8D\xae\xc5Tg#\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc8\ +5\x85\xc8E\xae)D&r-\xa6:\x1b\xb9\xa6\x10\ +\xb9\xc85\x85\xc8E\xae)D.rM!2\x91k\ +1\xd5\xd9\xc85\x85\xc8E\xae)D.rM!r\ +\x91k\x0a\x91\x89\x5c\x8b\xa9\xceF\xae)D.rM\ +!r\x91k\x0a\x91\x8b\x5cS\x88L\xe4ZLu6\ +rM!r\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\ +d\x22\xd7b\xaa\xb3\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\ +\x9aB\xe4\x22\xd7\x14\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\ +\x5c\xe4\x9aB\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10y\xc8a\ +\x8b\xa9\xceF\xae)D.rM!r\x91k\x0a\x91\ +\x8b\x5cS\x88L\xe4ZLu6rM!r\x91k\ +\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aBd\x22\xd7b\xaa\xb3\ +\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\xe4\x22\xd7\x14\ +\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\x5c\xe4\x9aB\xe4\x22\ +\xd7\x14\x22\x17\xb9\xa6\x10\x99\xc8\xb5\x98\xeal\xe4\x9aB\ +\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc8\xbd\x7f\x85\xf8p\ +9\xeb\xae7\xbb\x9f6\xab\xd9\xfc^\xfe\x8d\x97\x93\xbb\ +n\xf6i\xde=<=\xfe~r\xd3\x09|\xab\xb5 \ +t\xbd\xfb\xf3\xfc\xde_V\xebY\xb7~9\xe5v\x7f\ +NN\xad\x04\x81\xf9\xf6\xb3\x94\xee\xf9\xf0\xea\x97\xbf\x08\ +\x09\xdb\xd5\xa2\x93\xaf\x9bvr\xe2E)n\xd6\xf3Y\ +\xef\xf1\x8f\xf3Y\xd7wb\xcfl\xfc\xbc\xfd\x8bz\xcf\ +nn'\xb3\xd5\xc3\xd5\x10\xcfO>\xcc\x97rb\xf4\ + \xaf\xbe\x95\xd3&\xd8W\xae\xb8\xed\xe67\xb7\xdb\xf8\ +\xf6\xfd\x94l\xac\x10{\xa0^\xea\xc1\xe6v\xf5\x10K\ +r5\xbc\x9e,\xf6\xbc\xef\x9f\xf6\xd7\xd5J\x98\x01P\ +!\xc0\x81\xbeC\x1d}\xbc\x1a\x8eXY\xed\x00\xf7\x8e\ +7\x87\xb3\x11\xc7\xa0\x98\x03\xd1k%\x91\x07\xb8\xd7\xca\ + \xb7\xa3\x7f\xe5\xdc\xdd\xe4q~7\xffk7;P\ +ux\xef\xc7\xf5Z\xaa\xd6h1\xf9\xdc\x09\xcf7.\ +h\xdb\x87\xf2\xf4\xb6\x9b\xfe\xda\xad\x7fYM\xd6\xb3H\ +\xc4s\xfd\xbay\xbat\xb2\x9eO\xe4\x11\xbft\x8b\xab\ +\xe1\x7f\xff\xd7\x0b\x5c\xdb\xcf\x0b\xe1\xf4z%\x8f\xdf\xfd\ +<^J\xdd\x9d,\xbe\xdf\x1dy\xd8\x81~rh#\ +\xdf8\x96\xeaO c)\xed\xe1\xfe\xf1\xfb\xd8(\x9f\ +\xf9\x19\x83B\xfbt\xe1\xf5\xe4n\xbe\xf8<\xdeH\x1b\ +\x18IS\x9c_\x7f\xbf\xe8\xb6\xdbn=\xda\xc4\x9a\xb2\ +\xbc\x19k\xb9\xf5A*\xe9\xc9\x81\xeb\xf9b1\xfe\x06\ +'^\xea\xf8\xee\x97\xd1s\xc5\x1a\xc3\xf7\x9b\xedz\xf5\ +k\xfc\xc0e\xf7\xfc\xf3S\xbd\x19k\x15\x18Y\xf3\x01\ +\x15)\xfe\xb6{\xdc\x1a\x8bf\x14\x86\xcf\xfd\xd3\xcdK\ +[=F\xe2\xf7'\xfdK\xbc\x09\xedQ\xa7s\x82O\ +,:\xe8\xa0\x04\xfe\xbeb\x7fy\xf9\xc8O\xd9\xc3+\ +\xe5{9{RDT\xdex\x0e/\x07\xe3\xbb\x85\xf6\ +\xf1z\xf5q9;>\xf8\x97\xd5|yz\xf4n.\ +\x1f\xb5\x90\xba\xb5\x1d\x9b\x97c\xb3\x894\xc8\xf5z\xf2\ +\xf9\x04\xcc\xfd\x97\xecK\xbf=tfw\x93\xedz\xfe\ +\xf8\xadVB:kD\xbe\xd0\xf1\xef\xe1\xd7\x91u\x8a\ +\x980\x5c\x00*t!\x18\xff\xdd3\xf2\x82\xfd\xfdd\ +{\xfb\xf2\xd4\xc1@\x90\xfe\xd3\xc08\xe5\xd0\x00\xe1\x85\ +\x97>\xd6\xb118\xf8\xb7\x01ha\xd3\x067\xb8\x1d\ +\xa045\x11\x00k\x07\x9f\x06A\x01b\xf0\x83\x7f:\ +\xdc&G_\xae\x90\xc3\xe4\x95\xd3l\x98\xe33@\xfa\ +[F\x1b/\xf7\xca\x83'\x22{\xfc\xec\xd3\xcb\x0f\xaf\ +\xff\x8f\xe1\xe1\x1bcu\x88_\xed\x0c\xfb\xa3\xc3/\x15\ +\xe2]\xf0\xb8\x97\xe6\xcb\x9b\xf36\x10\x8bw\x83\xc2S\ +/\xdbG\xd2eY\xb1\xb5\xc8\xfeb\x04\xca\xa0\xb6\xc4\ +\xc7\xc4\xaeEMRt\xb2\xba\x93\xbfOW2\x9dh\ +;y\x8d\xa2\xe7\xb3'\x14\x81\x12\x82\x183(:<\ +\xff~2\x97\xef\xde)\xf0\xf8n\xb2\x96Ny3x\ +\xbah\x10\xbf\xe4\xac\x9aE\x0cQ\x07\x8f#8:\xf3\ +\xac\x89\xa4,\x22\x18\x08G\xa7\xf6b(\xb5\x18\xa2\x1c\ +\x1d\x9d{\x8c2*\xf7\x18\xe0\xe3[\xa2\xf68\xc5\x06\ +)\xe0\xbe^T\xca_\xec*\xdc\xdb\xf07\xc2\x94A\ +a#h\xa4\xa3\x90\xb6\x03\x83F\x05\xef\xac5\xe1\x8c\ +A\x12\x03E\x0b\xeb\xa7\x0c\x82\xb4E}\x1c\x8f9\x18\ +\xac\xe3a\xe5\xb5\x0bq\x14\xf1[\x0d\xfe\xc8r8\xe9\ +\xca\x8e\x8a\xbe\x83\xfd\xe3z\xf1\xed\x99-n\xc8\xb39\ +j\xf8\xd3\xf9z\xba\xe8\xfa;\xc6\xbe\xdb\xbd\xd6\xfa\xbb\ +/\x96t\xab\x9c\xf4\xd4\x7f\x0b\x87\x7f\x1be\xb1g\xe7\ +\xa3\xb4B\x83A4\xfd\xa2\xb1\x8fZ\x9bc\xa6\xa2\xd1\ +gP*\xb8\x0f\xc7:\xb0\x8ev\xdaQ;z\x0d\x8e\ +bZ\xd2+\x9c`q\x9c\x8c\xf8\x8c\x15b\xe5\xa5\xee\ +\x01\xa6\xac\xa0\x0d\x1cl\x85\xb4\x98\xf2h\xf1\xe7\xb4\x90\ +b/#\xa1\x94\x15\xd0tlW\xd4\xc3\x8a+\x8f\x95\ +p\xc6\x0aZ\xc5h\xcc\xd1j\xcd3-Z9\x06o\ +kl,\x5c\x1e-\xae\xd1\x02\xe5\xc9\xfdH\xa7\xb4\x84\ +\x00\xc7~C{Z\x0c\x81=1\xd9\xaa\xa0E\xf4\xb2\ +@Z\xcc\x19-\x00\xcaY:\xb5\x8a#-\x04\x8aP\ +$\xc7U\xd8Z\x0a4\xc4\xe0\x8c\x16\xaf\x8cA\xc3\x8e\ +\xcfh\x81 \x06\x9a\x0c\x80\xa8BZ\x0a4\xc4\xb4I\ +x\xb1h\xc5\x16\x0b_\x0b/V\x06\xcd\x05\x8e[\xce\ +-d\x88\xa2\xef\xd0\xdb\xf3n\x8c\x94\x8e!45\xb6\ +\x97\x02y\xd1\xc9\x80R\x000V\xeb\xf3~L\xd0\x0a\ +\x02\x17\xd4\xc8K\x8962\xa6\xbc0\xb2w=\xd6\x98\ +t\xc4NW(\xfbX\xa25\xe6\xbf\x9c\x17t\xc6s\ +\x8d\xbc\x14h\x8e\x9d\xe8\xf8\xd7\xcaK\x81\xf6X\xc0\xc6\ +\x0b\x96h\x8f%\xedE\xcbh\xdf0\xfaT\xf7\x85\x17\ +\xed*\x9c\x84\xc1\x02u_C\x0f/\x00\xe9\xe4X\x9c\ +\xf8w\xe4k\xd4}*P\xf7\xfd\xb9\x9d\x0cZ\x06\xfc\ +\xc6YJ\xc7\x95d\xed\xf1>\x9c\xf5\xf0R\xa2\xee\xc3\ +\x97\xf3\x82\xd1\xdb\xa5BZ\x0a\x94}\xfb\xe5\xach\x04\ +i/\x15\xd2R\xa0\xea\x9b\x90\xf2\xa2\xd1;>\x9f\x85\ +\x89\xce3\x9a\xb8F\xd5\xa7\x02U\x1fSZ \x18\xe3\ +\xe1\x9c\x16\xa7\x0c9\xb2\x15\x8a\x8b)P\xf4\xadOy\ +!\x07h9\xe5\x85,\x06Wa7f\xb0\xc4n,\ +|\xa9\xbeTLL\x81\xb2ol\xcfb% \xf45\ +\x18\x94Or\x15z\x8d\x99\x12\x1da(!\x06\x95\xf7\ +\xc1\xb9D\xf8\xad\x0c+\x03\xeaP!1\x05\x0a\xbf?\ +w\xba\x00\x12\x85!\x83)-\x86\xac\xa3\x0a\xed1[\ +\xa0\xf0s2\xaa4\x0aY{\xc3)/\xe8\x98O\x8e\ +\xd7\xc2K\x89\xa3\xfd\x90\xf2\x22f\xb2\xa5\x9en\x0c\xd8\ +\x1a[\xe1p\xdf\x96\xe8\xfe\xca\x98\x12cI\x07\xe4\xaf\ +g\x04c\x0b\x14~K)/\x9e\x01\xf4\xf94?\xca\ +\x88SJP\xe3\x80\xdfr\x89#\x98s\xe1'Q\x92\ +\x18\xfd\x96.\x8b\x91a\xf0\x15\xdac\xae@\xe1\xc7\x84\ +\x16\xa7,x\xa3{<\xf9\x91\xa2IV!/%z\ +[&\xae\xfc\xac(h\xe7{\xdc\x94P\xfa1\xaap\ +\xc0\xefL\x89nJ\x89\xa5\xec\x94\x8fn\xe3\xc9z%\ +*#'\xb8BK\xd9\xb9\x12;\xb2d\xee2('\ +:\x92\x10\x83\xd1\x9d_\x0e\xd7\xd8b\x0aT\xfe\xc4 \ +\xf3b\x90\x11&~\xe3\xd1 \xe3\xa0m\x85\xed\xc5\x17\ +(\xfc\x00\xa9=\x16\xc0j\x0a\xa9\xdfE mN\xfc\ +\x9aj\xe1\xa5\xc4\x11\xbfN\xdbKp>\xf5\x1f#P\ +\x9e\xa0\xc6\x092_\xe2\xfa\xbeK\xc7\x95.x\x0f=\ +\xea\x82\x1eM\x8d\x0b\xfc%\x86Yx\xdfx\xf1%\x8e\ +\xf7u\x0f/`\x08\xe1\xeb\xe1\xa5\xc4\xe0\xca@6\x89\ +\x12\x07T\xdaZ\xef\xcf\x13] (G\x96\xb0\xc29\ +e\xc6\x12\x97\xc6\x92\xac\x0a\xc2\x8c\xa3`\x09SfH\ +\x83\xafq\x15\x86M\x89\xabcI\x1a\x12 e\xad\xe3\ +\x9e&\x03d\x82\xab\xd0X\xe6\x12\x97\xf9C\xeaxI\ +*&\xd96=\xcch\x0bU:`0\x17\xb9@\x96\ +\x8e\xfcI\xb1\x8c\x85\x93\x11&\xa2\xf4fhj\xa4&\ +\x94\xe8\xe4G\xa3\x9eE2m=B\xc2\x8cU\xc1\x83\ +\xafq1&`\x91s\x98\xa9\xd0\xb0\xe2`t\xb2\xe0\ +\x8fN\x1a\x8d\xa5\x1as\xc5\x84\x02M\x00\xea\x9b\xc7\xd4\ +6\x10CJ\x8cX\xd3gy\xf9*!\xa6\xc4\x05\x7f\ +\x97Z\xcd$\xbd\x161\xf64\x19 \xb65.\xf9\x87\ +\x12M\x00\x9f\x8e4\xbf:f@\x97\x18\xd3\xaf{m\ +\xb3\xa0M:\xd2\xac\x98\x99\x02-\x00w\x9e\xcd\x87\xc4\ +2cML=Y0\x02WHJ\x89\xce~&\xf5\ +\xc5\xf0$\xd6r\xe2\xbb\x04\x82\x96\xfc\x09\x15\xf2Rb\ +H\xbf\xed\x09\x1dG\x13\x1c\xa5\xbc0\x13T\xe8\xbb\x04\ +%\xa6\xbbL|c\xe3\x1c?P\x80$\xd5Bt\x01\ +4\xde\xd47\xc1\x0c%\xe6\xbbt:\x0dV\xe2\x08\x7f\ +\xcfZ\x19\x19\xf0\x15fV\x84\x123+\xba$?,\ +(\xef|\x12\x0cK\xa8\x82Fp\xa6BZJ\x8c\xed\ +s\xe9T\x8c\xe3@ILL\xcc \x87\xd6\xea\x0a\xcd\ +\xb1\x123\xf8\xe1\xf9\x14\x19b\xf4Pr>\x91\x17/\ +_d\xa8\xc2\xa5e(1\x83_p=\xbcX<\xde\ +\xb7s\xef\xb2\x0c\xce\xfa\x1a\xcd\xb1\x123\xf8%\x8e\xb1\ +h\x15\xc4=H \xf5\xf4C9\xcc\xb6\xc2<\xd7E\ +f\xbe\xd2I\xea^6\xac\xa1g\x0e\xc6\x06\x0cPa\ +?VbfE8\x9f\x1b\x93\xd1>2\xa6\xc3\xca\xb8\ +\xd8\xaf)P\x85\xc3\xfd\x123+z\xdf\x935\xc6\x89\ +Eo\x12b\xa2\x0f\xa0s\xbaBC\xb9\xc4\xd4\x8a\xd0\ +\xe7\xb7\x84\x96\xbc3==\x19\x0be\xbeBbJT\ +\x18\x93.'\xa3\x22\xf2`\xfd\xd7\xc3L\x99\xd9\x15G\ +=\xf9\xe1e\x10\x19\xa8g=\x19\x5c\x00S#3E\ +\xe6WL7 y\x9d\x19\xcd2\x8e\xa9Pf\x8aL\ +\xb1\x98lA\xf2*1V1Y\xeb+\x5c\xb4,3\ +\xc9\xe2\xa8'M\x09\x13\x87\xd4\x000\xca\x80g\xae\xd0\ +d.2\xcdb\xb2\xc7\x954\x19\xadm\xb2\x09\x09\x92\ +\x00\xa3\xc9W8\x85Yf\x9e\xc5\xb4\xc5X\x05^\x8c\ +f\x972\x03\xce\x05\xae\xb0/+4\xd3bj3\xbf\ +&3\x15SSd\xae\xc5\x94\x19\xa7\xcc.+I\xca\ +\x8c\x16\x0b\xa0\xc2mG\xa1\xd0l\x8bi\x1c\x86\x8f\x1b\ +]\x87$\xb1\x1f\xa2\x0c4\x09\xa9\xc25\xff2\xf3-\ +\xf6y\x94\x837.p\xcaLt\x9e\xb1\x15\xdafe\ +\xa6\x5cL\x07\x9aA\xe9\x80\x1a]\xca\x8c\x8e{\xc8`\ +\x85\xcc\x14\x99t1u\x8f\x0d\x02\x013\xf4\x04b\x86\ +\x10\x8c\xafpr\xa6\xc4\xb4\x8b\x96\xd29\x80\x10\x17\xc7\ +\x88{\xa6\x9a\x03\x04W\xe3H\xd3\x96\x99~)m4\ +q\x15 pj7\x1be\x82u5\xce5\x97\x98z\ +\x91F}[\xf9`\xcc\xf2\x97\x12\x83\xc6\x9e\xfa\x03V\ +BL\x89\xb9\x17\xadK\xa7g\xa47\xd3\x1cB\xd2d\ +\xbcX\x00\xce\xd48\xa3Yb\xf6\xc5\x18\xba\xe4S\xa7\ +L\x0dZ\xfbd\xb19(o\xadv\x15z3\x95\x98\ +\x80\xd1\xe8d\xeaL\xba-\x08q5)\xf5\x97u\xe8\ +\xb5\xaePg\x5c\xa1\xb3\x00=+\x01N\xb1\x8b\xc9\xd5\ +\xcf\x9b\x0d+c\x02\xd5\xb8\xac\xe9\xca\x9c\x07\xf0}!\ +\xccF\xe4F\x87\x94\x1b\x00\xebk\x1co\xfa2g\x02\ +8\xdd\x11\x8b\x159\x06\xf2\xa9%\x10\x0c\x87\x0a\xb7\x8d\ +\x05_\xe6\x5c\x80M\xe7iXY2=\x99e\xbd\xf4\ +u\xb6\xcaigo\x0a\xcd1\x93vj\xac\x1c\xc8\xa0\ +\xd3\xa7v\x1a\x88ES%9\xae\xc4`\xb3\xd4\xc3\xc9\ +)g\xd9\xf7\x8cm\xc0Z_]\x87&\xb6g\xa99\ +f\xfa\x9c\xcf\xc8\x05mMj\x09\x90g]\x9f\x8b\x93\ +\x90Sf\x96\x99\xbe\x84f\x226=\xc4\x00\xfa\xd3\xc6\ +T\x0b1\xaeL\x7f\xcd\x91K\xc3g=\xe9\x90\xc4\x03\ +\x0a7h\x80M\x8d=\x1a\x97\xe9\xb1\x99\x9ah\xafs\ +\x03\x96+\xdc'\xcba\x89\xe9f\xed\x08\xbe\xbc\xd9\xc8\ +\xc8F3\xfa\x0a\xb5\xa6\xc4t\xb3q--5\x9e\x9d\ +\xd2\xce\x1b\xdd3[\x13\xe2*\x1bW\xc8\x8d)se\ +\xa0/\xad\x19k\xa7]H\xc3\xcf\x9dq\xc6\xd4\xd8n\ +\x5c\xa93\x02}\xfe\x9bZ\x87\x1e\x7f\xa7\xa0\x021\x86\ +\x0a\xc9\xe12G\x9d}\x0d\x07\x88<\x86\x94\x1a\x94\xe6\ +_\xe1\x8e3P\xa2\x9d\x06=\xce\x1bql\x13z\xdc\ +\xd1\xc5\x14\x00\x7f\x1aq[K$z\x91\x9bh`:\ +\xffL\x8a\x0c\xb2=\xf7E\xa3\xd8\x98l\x95\x81\x82%\ +\x1a\xd0\xce\xf4ld\xce\x10\x10{\xda\x8c\xb7\xe8+\xdc\ +\x10\x08\xb8\xc8y\xb4\x9e\x1d\x805\x11%-Fd\x86\ +H\x9b\xfa\xa2\xd1m(q\x0e-\xe8\xd0\x93~N\x07\ +JT\x86\xac\xf2\x1el\x8d\x22S\xe2J\xda\xf9\x14M\ +P\x9e\x8c\x01\xdd\xe3P\x83\x96u}i5\x84\x97\x12\ +\xc7\x9a=\x1e\xb5\xda[\x9b\xf8:S\x9c\x9fq\xda\xd4\ +\xd8\x8f\x15\xd8^4\xa5#\xcc\xe0\x83\xd7=\xdd\x18\x05\ +\xe0\xfa\x16\xd0\x84\x97\x22w6\xe1\x9e\x1dM\xa5#\xf3\ +\xc9\xc4\x8cQ6\xf6o\x15\xba\xa0\x97\xd8\x91\x9d\xe6\xfb\ +y\xf6s\xb6:\xfaf\xa6\xb1\x01L\x86}\x851h\ +%\x0e/\xdd\xf9\x84L\x84_\x8b\xc6P\x1a\xb6I\x8c\ +\x1ek\xe4\xa5\xc8\xc9\xb2sKY\xde\x0c\xce\x1as\xee\ +;#&ApHP\xe1\xd8\xb2\xc4\x1d\x9a\xfc\xf9\x98\ +\xdf(\xcf\xda\x9d\xceT\xeexqJ\xcb \xac\xc6`\ +\xda\x12\xf7g\x82d\x96\x0cQ9kEJz\xa4_\ +l\xb2\x1aS\x03\x94\xb8;\x936I$\x8d0\xe3\x89\ +\x99\xbf\x22b\xca\xf4\x9b\xc14\xfb\xac\xb3\xde%\x01\x01\ +\xc2\x0cx\x13\xaa\xd4\x982\xbdf\xe0\xcb\x99\xd1\xc2\x0b\ +\xd6\xe7r\x8e\xbaH\x9f\x19\xff\xa5\xc4\x90b\x035\xc6\ +\xd0\xa0.27P\xe2\x9c\x89q\x07\x13\xed\xd8\xa6\xa1\ +g\x06\xc9\xd9\x1a\x9b\x8c)1\xcfY\xdf\xca\xb2g\x97\ +L\x96\x01+\xa35U8'\x83%n\xd1d{\xbd\ +1\xbc\xb1\x94\x848\xc7\x80'p\xc1\xd4\xd8d\xb8\xcc\ +Dg\xa6\xc7\xc3\x0c\xd9'\xbb\x9aWLM\x89\xfb4\ +\x99\x9eL\xa7F\x85\xe0\xb0\xaf\xd1 \x91\xado\x0dS\ +\x98\xc12C\x9c{&3\x03\x83\x09\x89\xd2x\xa5\x0d\ +b\x85;gb\x89\xbb5y\x9d4\x1a\xaf\x0cCH\ +M\x00\xa7\xbcfWa \x96\xb8]\x13\xa7\x03M\ +i\x1aN{\x9bx2\xc7D\x0e\x0e)\x98\x0a\x99\xe1\ +\x22=\x99!\xf5\xc9p\x0e\x1c\xf5\xe4\x06\x8c&\x1bU\ +\xd8fP\x97\x19\xd9\xec\x93]h\x9c\x09\x06\x10S\x9d\ +\xf1ZNT\xc8L\x99Q3\xc9Ls\x10\xdb\xcc@\ +\xb2\xcaLb\xb3\xa15\xb6\xc2\xd9\x99\x12\xb7\x07\x8a\x81\ +\xcd&i3\x14\x13\x03%\xdd\x19\xc4\xb9f\xa80d\ +F\xa8q%\x865\xf7\xe49C\xe3)\xc9AK$\ +p\xc9X\x93+$\x86\x8b\x8c3\xe3\x9e\xde\x0c\xb4\x07\ +J\xbd\xcct@\xacp\xaff,r\x83 \x9f\xce5\ +\x7f\x85\xcc`\x91\x09\xe8 e\x86\xd1\xa7\xf9\xe7*&\ +\xc6\x94\x9a\x7f.\xd9\x84\xd6+t\xec\x93\x5c\xa7\xe4\x94\ +\xb1\x16\xa0\xc29\xcd\x12\xf7\x08\xda\xe5\x9f\xeb\xe1\x86-\ +\xdat#Z\xa7\x00\xa1\xc2}\xb5\xb0\xc4M\x82\x9e\xd2\ +\xcf%}\x1a+\x1f\xf76\x09i\xa7\x16\xac\xa9q\xd3\ +3,q\xa7\xa0]\xb4yH\xb9\x09\xe4\x9cq)7\ +\x1c\xb7\x08\xabp.\xa0\xc4\xbd\x82\x9e\xf2\xcf\xb9\xd4\x18\ +\xd0\xa8O\xbd\xfe\x9f\xc3g\x00exV#9EF\ +\x03$\xb3\x011\x89\xb6\xd3\xa6\xcfN\x03\x075\xae\xa1\ +\x95\xb8Y\x10\xa4\xf9\xe8\x91T\x9c\xd9\x0c=\xfdY@\ +\xf2T#3\x5cf\x1a\x00\x9d:8\xb1t\xbeIZ\ +\x13\x01\xcc\x82\xa3\xf0\xbf\x99\xcf\xf1\xb9)1\x11\x93\xa3\ +2\x8e\xbfa\x1d\xff\x9e\x16\x19\x04\xbd/*\xef\xdd\x5c\ +Xx9\xba\xc7\xf2\xe8\xa3\xa4|\x7f\x1a\xa0\xf2\x1a\xd0\ +\xf9\x0bV\x1c\xd0\x8ar\xca\xa1\x00A^\x8c\x17\xc6\xc6\ +\xf0`\xf6v`\xa2~\x06\xd8\x1d\x22/\x17R\x0fR\ +\xc6\xc9\xa8a_\xcc\x0f\x977\xf1\x87\x97\xffm\xbb\xc7\ +\xed\xd3-\x8fw\x8bq\xac\x0bR\xe4\xfbu'u\xe6\ +S\xf7\xfc\xb0\xcc\x1a\x0a\x22+\xe0\xff\x1e5\xf4\x1b\x04\ +\xe7=\x7fq}\xd4\xca{k\xf7\xc3Z\xa9%#\xc3\ +16q?\x98z\x1e_y\xdcO\xf0E\xf4\x228\ +\xc6\xa2\x91Q\x1a\xee\x00\xfcp\xb9\xf9$\xb8\xfd\x0f\x00\ +\xbe(\xf5\ +\x00\x00\x07\x19\ \x00\ -\x00g\xbdx\xda\xed]mo\xe3\xc6\x11\xfe^ \xff\ -\x81P>$AEjw\xf6ut\xf6\x05(\x82\x14\ -\x05Z\xa0hS\xb4\xdf\x02\x1eE\xdb\xca\xc9\xa2A\xd1\ -\xe7s\xfeZ\xffC\x7fS\x9f\xa5D\x89\xbb\xf6%q\ -\x8a\x22\x80)\x1d\x02K\xb3\xcb}yv\xe6\xd9\x99\xe1\ -\x92\xb9\xf8\xfa\xe3\xed&\xfbP\xb7\xbbu\xb3\xbd\x9c\xc9\ -B\xcc\xb2z[5\xab\xf5\xf6\xfar\xf6\x8f\xef\xbe\xcd\ -\xfd,\xdbu\xe5vUn\x9am}9\xdb6\xb3\xaf\ -\xdf~\xf6\xbb\x8b\xdd\x87\xeb\xcf~\x97e\xd9\xc3z\xd5\ -\xdd\x5c\xce\xb4\x9f\xf5?o\xea\xf5\xf5Mw\xfa\xfda\ -]?\xfc\xa1\xf9x9\x13\x99\xc8\xb4\xcf\x06\xf9zu\ -9C\x13t\xa8u\xea_\x1e\xca\xb7\xefwUyW\ -/\xc7E\xd9\x97\x95\xf55Q\xa5\xbc\x9bg$H\xe6\ -\xc2\xe4\xa4\xbe\xda_\xb3\xc3\xa8\xef\xf0\xdfr\xd5T\xdb\ -\xf2\x16\x83-\xbb\xea\xfbn\xf7}\xb5\xb9\xdfuu\x8b\ -)\x15\xe8s_\x19\xd3\xde\xee\x96C7\x97\xb3\x9b\xae\ -\xbb[.\x16\x0f\x0f\x0f\xc5 ,\x9a\xf6z\x11\x1a\xda\ -\xdd\x95U\xbd[\x0c\xf2q\x03C\x9f\xc7\x06\x06A\xb1\ -k\xee\xdb\xaa\xbeB\x1bu\xb1\xad\xbb\xc57\xdf}s\ -,\xccE\xb1\xeaV\xa3v\xa2\xfe\x1fT\xdf3\x09!\ -\x16\xc9x\xf1\xf3\x97VmWW\xcfU\x95\xcc\xbc\x10\ -\xb4 \xcaQ#\xdf=n\xbb\xf2c\xbe\xdd}>\xbe\ -\xb6\xaa\x8e\x97Vm]v\xeb\x0fu\xd5\xdc\xde6\xdb\ -\xdd\x1e\x93\xb8\xf6\xeaT\xfb\xee\xbe\xdd\xf4UV\xd5\xa2\ -\xde\xd4\xb7\xf5\xb6\xdb-\xb0r\x8b\xd9\xdbp\xc1\xc5m\ -\xdd\x95\xab\xb2+\xfb\xab\xf7Z0\x88$\xed\xeb\xa0\x16\ -\x06\xb6\xfc\xdb7\xdf\x1e~BPU\xcb\x7f6\xed\xfb\ -\xe17>\xa1J\xf9\xae\xb9\x87\xaa\xcd\xde\x9e\xe4\x17\xab\ -j\x09\xc8o\xcb\xee\xed\xfa\xb6\xbc\xae\x03(\xbf\xc7(\ -/\x16\xa7\x82\xb8v\xf7xW\x8f\xda\xdd\xb7\xdc\xd6\xfb\ -\xd5{v^\xab\xeav\x1d\xaeZ\xfc\xbd[o6\x7f\ -\x0a\xdd\xcc\xb2E\xda\xec\xba\xdb\xd4#\xe9\xc5\xe20\x87\ -a\x8e\x8b\xf1$/\x16\x03\x0a\xfb\x9f\xab\xfaj7\x82\ -(\xfc\x94b\xe8\xe4\xe2\xa8\xe7A7W\xc1\xc2\x0eu\ -\xef0\x94\xaa\xd94\xed\xe5\xec\xf3\xab\xfe3;\x94\xbc\ -k\xdaU\xdd\x0ee\xb6\xff\xc4e\x0dt\x1c\xd3\x82\x9d\ -\x0d\xf2\xe6\xdd\x0fu\xd5u\xcd\xa6n\xcbm\xc0\x02C\ -8\x14]\xb7\xb0\xfag\x0b\xee\xd7\xab\xfa\xd9\x92\xa3A\ -\x87A\x1e;{\xbexwS\xae\x9a\x87\xcb\x19=)\ -}XoQ\x92\x1fHGz\xe3?Ue \x22)\ -\x8c\x9b\x8d\xb0\x02\xd7=n\xb0\ -\xc6W\x0dz\xe8\xbf/\xb7\xc1\xc26oz\xc9C\xbf\ -\x00\x91h\x87q.\xb5*\x88\xb4\xbe\xfb\xf8f\xb3\xde\ -\xd6\x87uZ\xca\x82\xcc\xbe\xd2Uy\xbb\xde<.w\ -\xe5v\x97\xef@\xdaWo6u\x07\xf6\xce\x03\x0b\x83\ -\xc2\x97\x02\x97>@g#\xc1\x15Lq\x09\xa5wW\ -T\xf6?\xf2\x83\x8e-\xe5\x9b]\xd76\xef\xc3\xe0\xb6\ -\xf5\xe1\xfb^\x81\xd0\xa9\xf0\xc2\xca\xb1zt\xf5\xc7N\ -\x1b\xd29\x0f\xd2\x0e\xaa\xbc\x0b\xd4\x81\xc2\xf0uSv\ -\xf5\x97\xba`\xcdN;\x9a\xe7Rcq\xa1\x1a\xee\xab\ -#\x7f\xdd\x95\xdd\xcd\x91\x0e\x02\xc5e\xca\x17,\xb5\xd3\ -v\xae\xb8`E\xde\xa8\x0c\x9b\x80\xb1\x92\xa5\x9b\xe3\x9b\ -s^(\xcer\x0cI9\xe5\xed\x1c\x22\xa5\xbd\xd4Y\ -\x15\x84\xd2:a<\x84\xdej\xed}\x96\xa3O+I\ -\xf2\x1c\xc0\xb1u\x8a\x82\xc8\x18Aj,\x12\x85t\xe4\ -\xd9\xcdE\xf8\xae\xb4ql\xf6\xdf\x995\x1a\x08={\ -\x92d\xfb\xd1h\x15\x16&\xc8\x8c\xf4\x96{\xd9\xbe?\ -\xcc\x12\x8d[\xe1\xfa\x11\xf6\xdf S\x85 \xe3\x84\xcf\ -\xfe\x9c\x91-\x0c\xa3u='\xc2Jj\xe1l\x188\ -\xbekg-\xea\xdaB\x18\xa9\xa5\xc9r](\x0bS\ -Q\xf3\x9c\x81\x9bP\xdaf(E;R\xb8 S\x8e\ -\xfb\xbeGH\xb0\x11\xac\x5ch\xce*\xb4\xe6\xe7\x842\ -i4D0;!\xa5\xb3\xf3\xa1,\xdbd\xa2\x10a\ -*\xf3\xa1\x05\x8c\xe40\xcd~r*\x8cZfh\x03\ -\x0b\xe8N\x18h\x88\xb4E\xf7c\x11\xb0\x94\x82\xbc\x02\ -jT8RRY\xb4\xcb\x1a#\xf2\x99B\x9f\xc2k\ -\x9e\xeb\x02:#\xa5\x0aH\xe8B*\x9a\x87?\x8c\xb5\ -\xed\xd7o\x00\x0a\xf50DR:\xcb}\xe1\xa5s\x18\ -\xb74@\xdb\x19\x83\xb9H\x00\xaf\xad3\x189\xd4\x05\ -2\x11fsP\xd2\x13\x0ca6\xbdn\x98~6\x9e\ -\x05\xa1\x92R\xcc\xc6\x06\x89\x0dH\x13\x86\xab\x1c\xaaQ\ -\x10\x1d\xae\xc4r\xb0\xf0La9\x0c\x01,5L!\ -\xac0z\x17\xca\x90\xcb\x1c\x9ap\x9a\xb1B\xd2aD\ -,\x85\xc28l\xa1\xb0B\x18\x08\x84\xd2\x0a\x5c\xd4\x8f\ -\x84\x0cc\x09O\xeazT\x99\x03ral\x86\x19\xa0\ -\x8f%\xe0K\xaft\x0fj\x7f\xbd>\x8e\xd2\x86\x8e\x8c\ -b,\xeaIp\xaa\xb1\xcf`\x97\x11\xfe\ -\xb8\xf6\xc1\x95v\xf0R\x847'\xbf\xbf\x0d~\xef\xe4\ -p:\xa9x\x8f\x94\x07G\x19\xa7\xcc\x18)\x0b3\x83\ -_j\xf5\xc4\x91\xb2\x09RpS\xe0k\xc6:\xc5\x0c\ -\xab\x9f\xbaJ\xb9\x08(\x86\xa1)\x84)1PN8\ -aOA\xf0D\x912\x09Mi\x11\x9c\xfa1R\x0c\ -\xeab2f\xea\xc6\xa7Lb}\x1a!\x80V1T\ -^ \xf0\x90S7?K\x89\xfdy\xebN\x8eh@\ -\xca\x17\x10\xe03q\xa0x\x8c\x13!\xf2\x95\xday>\ -\x13\xfa\x13\xa0d\xa2P\x06\x11&G>\x02b~\xa7\ -\x8d\x998N\xa9\xd7IV\x99\x14&\xcf\x88\x00\xe5\xd4\ -=\x04\x91h\x14kA6\xe2(\x03\xa4|\xc8\xf9M\ -\x9d\xa4b\x07\xdd\x84\x1c\x98\xd51\x9b\xc377V\xf1\ -\xd4\xf7=\x91\x98\x9f\x94~t_g\xafT\xd2\xc1E\ -\xd0/'*fc^\x93\x8b\x10\x073\xbap\xde\x12\ -E\xc1\x8c\x92\xa0t\xe1=O\x1c+\x95l\x7f\x16\x81\ -\x1f\x06L\x09V@OI\x9a\xba^\x9dn/\x1e\xb0\ -\x92d\xbd\x8a|*E\x85\x12V\xdb\xa9\xdb\xa0K\xe2\ -d\xb8\x0bR2\xeb\x04+!\x9d\x98\xba\x09\x9a\xd8U\ -\xc7&(\xbdU.r\xad\x94\x82\xff\xce\xe4\xa6\xaeV\ -\xca$n\xa8\xed\xef\x1f\xfaX\xaf46G#\xccy\ -\x1f\xccS\xa7\x01\xcc4:\xe8q\xd0,)\x88&\xef\ -4p\x9e&\x16\x04\x13\xab3\xb7?\x130'iu\ -p\xbb\xd7J\xd9\x08+S\xc0\x00\x8d\x9c:\xb9\xa7\xf9\ -b\xc0\xa2\xa5\x8do\xd6\x00+\x12\x02\xfb\xe3\xd4}\x06\ -\xf1$e\xec$\xfc\xab\xd8\xc1\x12\x00\xcbk\xf6S\xe7\ -+\x95\xb8\x0d*\x1cdq\x9eRrw\xda\xf0\xd45\ -\xcb\x8a\x84\xddu\xe1\xd9r\xacY\xc4\x85\xf6F\xfc\x8a\ -;\x81\xaf\x0f\xac\x04.\xa8\x11\xe0\x22\x93F\x85\xc6i\ -o\xcfpQ\x12\x18r\xe1\xbc\x90\x89\xf3\x00\xe6gi\ -\xf9\xac]9=\x09x\x04\x88+\xcee)[8c\ -\xce\xba\xf5\xc4\x81\xa0B\x87#\x84\xa9n\xb1aOg\ -\xb4\x9e\x9e\xf8P\xf8$\xa9?\x07\xa1V\xfa\xa5\xb7\xe7\ -\xcbRk!^U\x9a4>\xf5A\xa6p,8>\ -\xf5\x81\x08\xdb[g\x1cO\x1c-\x85\xb0'J\x95\x92\ -\x0bgdLr\x0b,\xe4O\xbd\x10r\xea\xba\x95\xfb\ -\xd8\x85\x00ZRI\x13[b8\x13\xa2\x94\xb4SG\ -\xcb\xe1_|\xbb\xde\x17$\xadu*AKj\x85\x8d\ -r\xe2h\x99\x9cc\x96\xa7\x90\x04\x94\x22\xb1D_h\ -D>n\xea\xba\x152\xa6O\x88\x8b\x84\xf26V.\ -.H#V\xec\x8b>\xe1\ -y\x11\x9e<\x93\x09Z\x8a\xac\xe7\xa9\xfb\xa7!y\x1a\ -\x9b\x22\x94\xcb\x91\x12qF\x10\xc1\xb6R\xe6\xe5g\xb4\ -^\x1dq)pW\x94m&](O:>\xa7\x15\ -\x02H!i\xf2\xd1O\x1fZ\x8b$X\x04qY\x1f\ -em\xa4.\xac\x94\xee\xc5y\x9bW\x09W\x92\x8b\x08\ -O\xfcj\xaf\x88\x13s\xe4\xf0d.\x9d\x01#\x84\x8c\ -6q%\x9c\xd7\xc9Y$\xd0=I\xaf\xfcY\xc3B\ -\x1a5q\xec\xb1?z2:\x06L\x16\x1e\xde\x84\xf7\ -g\xc0\x82C\x11s\x98*\xb4\xf3\xd2\x9a\x040\xe1\xad\ -9\x9bd\x9fMM2\x84\xbe\x90\xc2K\x9b\xe0\xa5\x9c\ -\xf1\xfe\xa5\x91\xe3J\x1b\xf3\xaa\x02mJ\x90R$\x93\ -'\xe8`\xa0>\xbc~@N\x1d\xaa\xc4\x0c\xb9\xf0\x8e\ -\x95\xe6\x04+\xe5\x98\xbd\x9e8Vi\x8e\x9e\x0bkI\ -%\x11#\xe2k0\x96\xb2\x13\xc7\xca\xc5\xfb\xa1\xa2B\ -\x13k\x93\xea\x15vHg\xa6NW&\x89~\x1c\x9c\ --\xa9|r \x82\x9cr\xc4S\xa7\xab\x14+\x0eo\ -q\xb1\xf19\xca3X\xc7\x04j\x9c\x10\x94\x85\xf4\xd2\ -\xc4\xcf\xfd\x86\xbc\x97\x15L\x13\xc7\x8a\xe3l\xa0\xc2\x80\ -\x1d\xeb\xf8\xd9C@%\xb4\xf2~\xea\xdc.\x93\xe0\x90\ -\x0a\xc9Zi\x9d\x9c\x0dt$\xcc\x8b\xcf\x06\xbe6\xac\ -\x92G\xef\xfb,\xb3sq\xaa&\x1c\xdfbV\xa77\ -\x17L\xd5g\x10\x89b!^V4~\x84\xec\xb1\xcf\ -\x0d\x02>MSwFC\xd64\xbd\xf5\xcaR\x91I\ -\xd9=\x1c\xba\x99|\x98\x83\x08:\xbd\xdb\xa3\x15\xe9$\ -\xa1\xa5\x0b\xab\x95{\xf9\xb1@k_\x13V:}\x01\ -\x86\xf1\xa3\xac\xfb\x01(\x02\xdf\x93\x9a8R*!\xf7\ -\xf0JAV6N4Pa\x89\x7f\xcda\xd3\xd7\x85\ -\x95}\xf2P\x8fc\xef\xd9%z\xe5\x05>f\xe2X\ -\xb9D\xaf\xe0`!\x1e\x8c_\xadB\xa6\x7fb\xf3W\ -\xbc2\xe4ua\x95\xdci\x0d\x87gHHm\xd3d\ -\x1f\x19KS\xb7AD\xcf.y\x15Mxoj\xfc\ -\x08\xd4\x19\xacS\xf4\xac\x93\xbb\xd2\xc2:i9\x8d\x09\ -\x8d\xd1v\xeaf\x98\x9e\x03|\x16+P\x96\xe7\xc93\ -\x96LR\xee\xb20\xcaH\x9d\xa6\x1a\xbc\x91dh\xe2\ -Xa/\xf4\x89;*\x95\xe6'y\x19\xedy\x94\xd7\ -\x9a\xaa\xdb\x80\xf8\xd9'7U\x99\xb5'wvH\x9f\ -\x0d\xa0}\xfa\xf2\xd6\xf0rd\x99P\x96\xb5^*9\ -\xf5\xcdP<\x09\x0b\x8de\x91$\x1bd\xc1\xce\xdb\xe7\ -\x9e\xb8\xb8\x08\xff[\x13\xfc\xfd/\xad+\x06\xd3\ -\x00\x00\x09\xba\ +\x00\x1b+x\xda\xedYYo\xe3F\x12~\x9f_A\ +p^\xc6\x88\xd8\xec\xfb\xd0H\x0ev1\x09\x12`\xf6\ +%\xe7n^\x02\x9al\xc9\x8c)\xb6\xd0\xa4,{~\ +\xfd\x16)\xf1\x90D\xe5\xf2`\x80\xecF\x86\x0dvU\ +\xb1\x8f\xaf\xbe\xaa\xae\x92\x17\x9f?m\x8a\xe0\xd1\xfa*\ +w\xe52$\x08\x87\x81-S\x97\xe5\xe5z\x19~\xff\ +\xdd\x97\x91\x0e\x83\xaaN\xca,)\x5ci\x97a\xe9\xc2\ +\xcfo_-\xaa\xc7\xf5\xab \x08\xe0\xe5\xb2\x9ag\xe9\ +2\xbc\xaf\xeb\xed<\x8e\xb7;_ \xe7\xd7q\x96\xc6\ +\xb6\xb0\x1b[\xd6UL\x10\x89\xc3\xc1<\x1d\xccSo\ +\x93:\x7f\xb4\xa9\xdbl\x5cY\xb5o\x96\xd5\xeb\x91\xb1\ +\xcfV\xbd\xf5~\xbfG{\xd6\x1a\x11cL\x8ciL\ +i\x04\x16Q\xf5\x5c\xd6\xc9St\xfa*\xecq\xeaU\ +\x8a1\x8eA7X\xfe>\xaby\x05\xa8l\xe1\xb77\ +\xef\x04\xa8r;\x9f\xda\x15\xbcgQi\xeb\xf8\xddw\ +\xefze\x84QVg\xa3i\xf2\xf2\xa1J\x93\xad=\ +Y\xb5\x13\x1e\x10H6\xb6\xda&\xa9\xad\xe2N\xde\xbe\ +\xbf\xcf\xb3\xfa~\x19r\xdd\x8e\xeem\xbe\xbe\xaf\xfb\xe1\ +cn\xf7\xfftO\xcb\x10\x078\xe0:8\x8a\xf3l\ +\x19\xc21\xe8\xc1f\xf039h\x8f\xd3\xcf{\x0dF\ +\x86\x22\x1e\xbc\xd9\x95\x0f\xa5\xdb\x977\xadYw\x96y\ +\xe6\xd2fs\xcb\xf0\xdb/~~\x9fW\xb5-Q\x83\ +\xd1-\x18-6\xb6N\xb2\xa4N\x9a\x17\x0e\xebv\x12\ +B[\x0b\xb0\x01_\xcd\xbfy\xf7\xe5a\x04\xe34\x9d\ +\xff\xe8\xfc\xc3q\x08\x9f\xc6 \xb9s;8Wx\xdb\ +\x8b\x17Y:\x07t7I}\x9bo\x92\xb5m\x1c\xf3\ +\x19\xa0\xb9\x88\x07\xc5\x89q\xfd\xbc\xb5\xc3\xa4\x87i\xbd\ +=\xb8i\x92\xabY\xba\xc9\x9b\x97\xe2o\xeb\xbc(\xbe\ +n\x16\x09\x83\xf8l\xd2\xbc.\xecm\xbb\xe6\xe1\xb1;\ +E|<\xc6\xf1\x90\xf1\xe8\x94\x8b\xb8\x03\xa1\x1dev\ +U\x0d\xf84#\x82;l6\x89\x7f\xb0\xbe[\xb1\xf7\ +LU\xbb\xf4\xa1\xb1\xfe\x87\xf7nO\xdeC0\xfa:\ +\xec\xcc\x9c\xcf!\xc4\x96a\xb2\xab]/\xf4v\xf5\x9f\ +\xc6\x93x,\xf9\xf7\xa9\xe4\xea\x8cU\xfd\x5c\x00F\x0e\ +\x18\xb1*\xdc~\xfe\x98W\xf9]a\xc3\x8b\x8d\xe5U\ +\xbb\xb5eX\xfb\x9d\xed\x9d\xb5\xd8&\xf5\xfd\x00}\xb3\ +L#\xe1\xc2\xe8p\x10\x83\xf4_\x01lg\x06\xbf\xc1\ +\xfb@\xc0S$\xda\xc7\x88P$F\xe2\x83\xb43\xfd\ +\x10\x8c&9\xeet\x05\x0e\x8b\xfc\xae\xb0s\xfbhK\ +\x97eo\xab\xda\xbb\x07;\x7f\x8d\xdb\xcfq\x18\xb5\xd1\ +3\x87\x0c\xb7\xadG\x93\xd4>)\xab\x86B\x10&i\ +R\xd87\x18\xe9\x9b\x83\xb4Hj\xfb\xe6\xb0\x9d\x9b\x9e\ +\x0c\xe0\xd0\xd6O\x07\xe76\x1el\x9f\xfa\x08i\xc2#\ +kb\xf1\xb0\xc4\x16\x88\x94\xba\xc2\xf9e\xf8z\xd5~\ +\x8ek\xdf9\x9fY\xdf\xa9d\xfb9Q9H\x00@\ +I\x88\xd5\xa3\xd8\xdd\xfdb\xd3\xbav\x85\x85\xcd54\ +&\x9d7\xd7\x1e\x8e6%\xdf\xe5\x99\x9dR\xf4>l\ +\xb6\xd7/4\xa9\xad\xee\x93\xcc\xed\x97!=W\xee\xf3\ +\x12\x14\xd11'\x11-\xd9\x15\x8b.O\x11LE8\ +\x90\xbf\x07\xaa\xe3Eu\xef\xf6\xcdI\xc0\xa3IQ\xd9\ +\xf3\xd9>8\x07>b\x88iL\xb1\x16\xe7\xea\x142\ +\x1f\xa4ZB\xa44\x82\x91\x0b5\x9c\x8f\x19\xc4\x98\x94\ +\xca\x5c\xd9(\xcc \xd4\x15\x1d\xbcN\xaf\xe96\xc9S\ +\xbe\xc9?\xd8l\xf0\xd5\xb0\xee\xce{\x08\xd0\xa8H\x9e\ +-8zm09Ri\xb1\x1e\xb0Xs\x22\xfa<\ +\xb0\x1e\x87\xe8\x9a\x0b\xce\x7f;\xb8\x18\xbe\x08\xae\x19\x0e\ +\xbej\xee\x81\x1f\x9a?_\xc1\x9d\xf0\xd3\xc8d\xd8\x9f\ ++K`\x95\xf3\x11\xec\xf41\xa9w\xde\x0eD8\x0b\ +\xb2y\x09\x15\xc0(+\x0e;=\xee\xb59\xdcdd\ +A~\xf6\xf9\xd3\x1b\x88=\xc5\x0c5|\x06\xbb\x9b\x0d\ +#\x051g\xe0\xa0d\xc60R\x8c\x1a\xccn\xc6\xd9\ +\x7f=N\xe5\xedJ\xda\x88p,\xbc\x5c\x0b#)9\ +\xc7\x9c\x8bv\xb1\xd102\x88\x0a\xa28S\xb3\x88\x22\ +\xaa\x88\x82\xb5\xc7\xeb]\xe0\x1c\x8c\xaf@\xc80\xb6\xb9\ +)\xa0jH\xd3\xf0\xcch\x04\xd6k+\x9b\x9f\xb7\xd7\ +\xd3\x93\x22L\xa5\xfa4=Q\xa4\x0c\xe3\xca\xc8^^\ +\xe4\xe0\xa0d;\xbf\xdb\xd5\xf5X\xf6\x8b\xcb\xcb9\x5c\ +Z\xd6w\xd2vP\x00\x15\xeb9\xefdY\x02\x01\xec\ +}\xf2\xdc:\xaf\x93\x1eC~N\xce\xf6\xdf\xdc\xd9A\ +$(2\x02\x1b\xc2!\xf9r\xc9\x15\xc1,0\x88S\ +Jq\x8b\x1e\xc7\x94\xf5At\xc1E\xa2\xceg\xfd-\ +\xb2\x8d\xef\xd9i\xec\xff7`\xe5\x88\x02\xff\xa4\x9cE\ +\x84#\xa3\x187\x02peB\x13lf\xed\x036\x9a\ +^\xc7\x95}t\x5c\xff\x7f8\xcd\x08\xd2\x0aS\x091\ +O\x14\x12\x94S\xac\x02\xe0\xb2\xc6\x9ch=#\x04q\ +\xae\xe9%\xc4\x03\xfa\xe2oVO\x01\xcba\x13\x9aJ\ +\xc6g\x11\x83\xcc \x81\xc3<\x80\xa2I\xc1%\xac\xe4\ +\x8c\x1c\x12\xfauX\xd5\x1f\x84\xf5w1\xf8\x0c{[\ +\x14\xf9\xb6\xb2\x93\xf0\xf7\xa7{{p\x84\x94\x18\xafV\ +\x07G\x9c\xea&\xfd2\x06\xaaw\x8a&\x862\xc1.\ +\x1c\xe0\xdd\xae\xcc>\x9e\x03\x06\x14\x99\x8cdt\xce\xdd\ +\xb6\x22\x82\xa4#\xe0\xe2\xd3\xfc\x5c\x09\x05\x8dDF\x1a\ +(\xa5\xce]\xe0\x9f\x9a:\x8b\x08\xa6\x15=g\xbdo\ +\xea(\x84\x85Q\x10K/\xc1\xd9\x18!^\x843T\ +\x82D\x1bB\xa9\xfa\xa48\x93)\x94)$\x12P2\ +2\x81\xb2B\xdc0I\x85\x9cD\x19K\x08\x1d)'\ +P\x86KXq\x98\xf5E(3\x86\xb1\xc6/BY\ +\x1bl$ \xfdi\xd9<\x852\xa3Hr)\x14\x9d\ +@\xb9\xc9\xeaT\x0a*\xc4\x04\xcc\x1cqB\x88!S\ +d\x86KY\x19A\x18\x7f\x09\xccjE\x93\x17\x92\x99\ +C\x05\x0c-\xe0'%\xf3d\xc2`HI&\x09\x99\ +\x04\xb9\xad[\x8c\x99\xe6\xb2\xd0p\x1dM'\x0c\xae\xb1\ +f\x94\xbd\x04c!0\xce\xf8\x0b\x13\x063Z\x1b\xfa\ +I\xa9\x8c\xa7P\xe6\x00\x89\xc0\x82OR\x19bN\x0b\ +\xa1\xaf\xa0l\xa0y\xc1d\x12e\x8d\xc1\x01L\x9f~\ +q\x15\xaf\x7f\xbd\x93:\xbb\x1aF\x9d\xd4\xf0%\x08F\ +\x80\xbe\x01'\xb2\x19\xf4\xd8p\xddC3\xc0\xe8\xc7\xe9\ +\x99\xfe\xd8\x85\xdfA\xab\x85\x9e,G$\xe4\x08f\xe0\ +z\x82:\xcf\xa0\xa6\xdf\xa3A\x1apD\xa0\xe1\xc3d\ +\xa6\x91\xe0P\x07\xca@!l\xa0\xf0\x9eA\xda`\x90\ +\x9d\xa1D\x81\x8e\x99jD\x99\xc4\x17\xc0\x9f\xf7\xc0\xbf\ +R\xa6\x19f\xb2$=%\x1eF\x86\x11\x22\x8c!\xdb\ +\xa7\xf3B\xed\x84y\xd3\x95\xda\xc0\xb2\x8fS\xd0\xffi\ +\xc0/*\x8cc_\xa3\x90\x062\xe3\xa6\xaf\x91\x08z\ +\x19\x229`\x0eyD1,4`\x0eu5 \xac\ +A\x04\xa9\x03j\x8a\x19aHB?\xc3\x18\x0d0b\ +\x9c3h\xfd)\x85\xb2\x1ccl\xe8\xdf\xe8O\xa2/\ +\xa7\xd1\x87L\xc2\x14\xa7\xa4\xed*1g\x04\xd8\x9d\x06\ +\x14\xc1\x95\x8d5\x85\x16^\x0aI\xa9\x94 \x82rB\ +\x12\xd3\xd4\xe4\x00\x09\x17\x9a\x01\xfaP`(\x06\x0d\x10\ +D\x06\xd4(\x8c\xf2\xbf\x00\xfa\xa3\x9c\xd6?\x0e\x0f}\ +\x8e\x9bLe\x04\x01S\x15\xd5\x90\xc9\xa8\x80D\xab\xa8\ +17\xe1\xe9Wn\x84w\xd5@;\xeb\xa2\xf9w\xc3\ +\xed\xab\xff\x02\xc2&\x8bb\ +\x00\x00\x08\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path44\ -89-3\x22\x0d\x0a d=\ -\x22m -225.0508,25.\ -423733 0.20339,-\ -22.3728818 -19.7\ -2881,11.5932198 \ -z\x22\x0d\x0a style\ -=\x22fill:#00aad4;f\ -ill-rule:evenodd\ -;stroke:#00aad4;\ -stroke-width:2;s\ -troke-linecap:bu\ -tt;stroke-linejo\ -in:round;stroke-\ +=\x2227\x22\x0a inksc\ +ape:window-maxim\ +ized=\x221\x22\x0a in\ +kscape:current-l\ +ayer=\x22svg4\x22 />\x0a \ + \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x22q\ +y:1\x22\x0a id=\x22re\ +ct818\x22\x0a widt\ +h=\x2238.033897\x22\x0a \ + height=\x2239.25\ +4238\x22\x0a x=\x225.\ +0847454\x22\x0a y=\ +\x224.6779661\x22\x0a \ + ry=\x225.8983049\x22 \ +/>\x0a \x0a\x0a\ +\x00\x00\x0b\xbc\ +\x00\ +\x00e\xa7x\xda\xed]mo\xe3\xc6\x11\xfe\x9e_A\ +(\x1f\x92\xa0\x22\xb5;\xb3o\xa3\xb3/@\x11$(\ +\xd0\x02E\x9b\xa2\xfd\x16\xf0(\xdaVN\x96\x0c\x8aw\ +>\xe7\xaf\xf5?\xf47\xf5YJ\x94\xb8\x8c\x9d\xc4(\ +\x8a\x00\xa6u8\x9c8\xbb\xdc\x97gg\x9e\x9d\x19.\ +u\x17_\x7f\xba\xddd\x1f\xebf\xbf\xdem/g\xba\ +P\xb3\xac\xdeV\xbb\xd5z{}9\xfb\xc7\xf7\xdf\xe6\ +a\x96\xed\xdbr\xbb*7\xbbm}9\xdb\xeef_\ +\xbf\xfd\xecb\xff\xf1\xfa\xb3,\xcb\xee\xd7\xab\xf6\xe6r\ +f\xc2,^\xdd\xd4\xeb\xeb\x9b\xf6t\xf9q]\xdf\xff\ +q\xf7\xe9r\xa62\x95\x99\x90\x1d\xc5\xeb\xd5\xe5\x0c\xb7\ +\xd3\xa1\xce\xb9g}(\xdd\xbe\xdfW\xe5]\xbd\x1c\x96\ +d_V.\xd4D\x15\x07?\xcfH\x91\xce\x95\xcd\x89\ +\xbf\xean\xd9c\xb4w\xf8\xbb\x5c\xed\xaamy\x8bA\ +\x96m\xf5C\xbb\xff\xa1\xda|\xd8\xb7u\x83\xa9\x14\xe8\ +\xb0\xab\x8b\xd9n\xf7\xcb\xbe\x93\xcb\xd9M\xdb\xde-\x17\ +\x8b\xfb\xfb\xfb\xa2\x17\x16\xbb\xe6z\x11\xdb\xd9\xdf\x95U\ +\xbd_\xf4\xf2\xc1\xfd}\x8f\xa7\xfb{A\xb1\xdf}h\ +\xaa\xfa\x0aM\xd4\xc5\xb6n\x17\xdf|\xff\xcd\xa90W\ +\xc5\xaa]\x9d\x9bIz\xbf\xe7\xae_RJ-\xd2\xc1\ +\xe2\xea7\xd6lVW\x8f\xd5\xd4\x22\xb2P\xb4 \xca\ +Q#\xdf?l\xdb\xf2S\xbe\xdd\x7f>\xb8\xb5\xaaN\ +wVM]\xb6\xeb\x8fu\xb5\xbb\xbd\xddm\xf7\x078\ +\x92\xca\xabs\xe5\xbb\x0f\xcd\xa6\xab\xb1\xaa\x16\xf5\xa6\xbe\ +\xad\xb7\xed~\x81\x15[\xcc\xde\xa2\xfe\xc5m\xdd\x96\xab\ +\xb2-\xe3\xbd\x87\x95\xef%\x9a\xba\x1a\xa8\x831-\xff\ +\xf6\xcd\xb7\x87+\x5cW\xd5\xf2\x9f\xbb\xe6\xfd\xf1\x12\x9f\ +X\xa1|\xb7\xfb\x00\xcd\x9a\xbd=\x89/V\xd5\x128\ +\xdf\x96\xed\xdb\xf5my]G,\xfe\x80\xf1],\xce\ +\x05I\xe5\xf6\xe1\xae>7zh\xb6\xa9\x0f\x0b\xf6\xe8\ +|V\xd5\xed:\xde\xb4\xf8{\xbb\xdel\xfe\x14;\x99\ +e\x8bQ\xa3\xebvS\x9f\x85\x17\x8b\xe3\xe8\x8fs[\ +\x0c&w\xb1\xe8\xe7\xde]\xad\xea\xab\xfd\x19\x96x\xa5\ +\xd5\xb1\xf9\x8b\x93FG5\x5cE;:\xd4\xbc\xc3\x10\ +\xaa\xddf\xd7\x5c\xce>\xbf\xea>\xb3C\xc1\xbb]\xb3\ +\xaa\x9b\xbe\xc8u\x9f\xa4h\x07]\xc6d`MG\xf1\ +\xee\xdd\x8fu\xd5\xb6\xbbM\xdd\x94\xdb\x08\x00z?\x94\ +\x5c70\xea\xc7\xe4\x1f\xd6\xab\xfa\xb1\x82\x93\xc9\xc6\xe1\ +\x9d:z\xb4t\x7fS\xaev\xf7\x973\x1a\x17\xde\xaf\ +\xb7(\xc8\x8f|\xa2\x83\x0dO\xd4\xe89F+\xebg\ +g\xfcN@\xf5\xf7\xedov\xf7q&\x97\xb3\xabr\ +\xb3\xaf\xc7\xad\xfd\xb4\xdb\xddb\x18E\xa0`\xc8\x8fK\ ++\x90V\xae\x89\x0b\xeb\x9c\xfcl\xac\x15f\x97\x0b\x15\ +Z)\xe7\x9e\x9a\x09Z\xb0\xe6\x89\xb2x\xffS\xf3\xbb\ +-?\xado\xd7?\xd5\xab\xf3R\x9d;\xfe\xd040\ +\xb0|S>\xd4\xcd\x80DG W7u\xf5\xben\ +\xde\xed\xcaf\x15\xd7\xe1\xa8T\xd7\x87\xaae\xb3.\xd1\ +\xc2\xbbzs9\xfb\xcf\xbf{\xb4\xda\x87\x0d\x96\xf4j\ +\x87\xd6\xbb\xef\xcbm\xb4\xa0\xcd\x9bNr\xdfa\x9e\x88\ +\xf6\x18\xe2\xd2pAd\xcc\xdd\xa77\x9b\xf5\xb6>.\ +\xcdR\x17d\x0f\x95\xae\xca\xdb\xf5\xe6a\xb9/\xb7\xfb\ +|\x0f\x1e\xbez\xb3\xa9[\x10r\x1e\x99\x15\xac\xbcT\ +\xb8\xf5\x1e\xfa\x99\x08\xae`lK\xa8\xb7\xbf\xa2\xb2\xbb\ +\xc8\x8f:\xb5\xd4o\xf6m\xb3{\x1f\x07\xb7\xad\x8f\xdf\ +\x0f*\x83NUPN\x0f4\xa2\xad?\xb5\xc6\x92\xc9\ +\xe5(l\xa1\xb7\xfbH\x0c(\x8b_7e[\x7fi\ +\x0a1\xe2\x8d\xa7y\xae\x0d\x96\x14\xea\xe0\xbf\xea\x99\xe9\ +\xaelozk\x8f\xd4\x95q(D\x1bo\xdc\x9c\xa5\ +\x10\xa6`9\x03\xab[\xa7E\xfb9\xbey\x1f\x14K\ +\x96c8\xec9\xb89Dl\x826Y\x15\x85\xday\ +e\x03\x84\xc1\x19\x13B\x96\xa3G\xa7I\xcb\x1c\xa0\x89\ +\xf3LQd\xad\x22\x1e\x8aT\xa1=\x05\xf1s\x15\xbf\ +\xb3\xb1^\xec\xe1\xbb\x88A\x03\xb1\xe7@\x9a\x5c7\x1a\ +\xc3qQ\xa2\xcc\xea\xe0\xa4\x93\x1d\xfa\xc3\x1c\xd1\xb8S\ +\xbe\x1ba\xf7\x0d2.\x14Y\xafB\xf6\xe7\x8c\x5ca\ +\x05\xad\x9b9\x11V\xd1(\xef\xe2\xc0\xf1\xddx\xe7P\ +\xd7\x15\xcaj\xa3m\x96\x9b\x82\x1d\xac\x83\xe7\xb9\x005\ +\xc5\xc6e(E;Z\xf9(c/]\xdf\x03$\xc4\ +*a\x1f\x9bs\x8c\xd6\xc2\x9cP\xa6\xad\x81\x08\x96\xa6\ +\xb4\xf6n\xde\x97e\x9bL\x15*Ne\xde\xb7\x80\x91\ +\x1c\xa7\xd9M\x8e\xe3\xa8u\x866\xb0|\xfe\x8c\x81\x81\ +\xc88t?\x14\x01K\xad(0P\xa3\xc2\x13kv\ +hW\x0cF\x142F\x9f*\x18\x99\x9b\x02\x0a\xa35\ +G$L\xa1\x99\xe6\xf1\x1f\xc1\xdav\xeb\xd7\x03\x85z\ +\x18\x22\xb1\xc9\xf2P\x04\xed=\xc6\xad-\xd0\xf6\xd6b\ +.\x1a\xc0\x1b\xe7-F\x0eu\x81L\xc5\xd9\x1c\x15\xf4\ +\x0cC\x9cM\xa7\x1b\xb6\x9bM\x10E\xa8\xc4,b]\ +\x94\xb8\x884a\xb8\xecQ\x8d\xa2\xe8x'\x96CT\ +\x10\x8a\xcba\x09`q?\x85\xb8\xc2\xe8]\xb1%\x9f\ +y4\xe1\x8d`\x85\xb4\xc7\x88D+\xc68\x5c\xc1X\ +!\x0c\x04B\xed\x14n\xeaFBV\xb0\x84gu=\ +\xa9\xcc\x11\xb986+\x02\xd0\x87\x12Pd`\xd3\x81\ +\xda\xddoN\xa3t\xb1#\xcb\x82\x85\x87\xaa(\x8cN\ +(\xfbi\xd6[\xd3/\xf3\xcd\xc7\xc8Q\xdb\xf6W9\ +\xa8m\xea\xb6\xbaIdG\xca\xf9\xe2\xfb\xfa_\xd9w\ +\x0fM\x9d\xfd\x15\x84\xb8\xd9\x94\xd9_`\xcb_\xbc\xc9\ +{\xa2\xcc\x0f-\xdc\xd5\xd5\xfaj]\xc1\xdf\xd9m\x9f\ +\xbc\xe9\xd7\x09\xe9Q\x12:\xd0P\xe4\x10l2=\x09\ +/\xae\xbb\x7f\x229\x1dj\xc1cYv\x8e&\xaa\xc2\ +\x1b\xa9\x9b\x8f\xf5\xff\xc4\xc9\x8cA\x90\xf6\xff\x17N&\ +\xf0\x97\x0f\xbf\x99\x93#\x1dZk\xf88\x9f\xb8\xa7\x9a\ +h\x11\xa2{\xdf\x04\x1b!\xbb\x02\xec+\xe1Q\xe6\xce\ +\xa9\xc7\xad\x81\xb3r\xa8\xd1D'\x06\xea\x16\x04\xa67\ +h\x07\xa6h@\x9bt\xee\xcd\x80\x98\x83V\xba\xdf\x00\ +z\xd7\xc1\x15\x01v\x01\xa2?\xca\xfb \x06\x84\x03J\ +7\xc3\xa1\xc4n\x8d\x157Z\x92\x0e\x0d\xb0\xf4J\xbb\ +'\xd0\xe8KG\x80D\xba66\xf4\xe2\xb8D\xd0\xc6\ +e\xb3\xfb\xb0]\x0d\x85?\xee\xd6\xdbT\x0aW\xb4n\ +6p\x0d\xda\xa5\xe9e\xab\x12\xfeT\xd3\x94\x0f\x09\xf8\ +\xe7\xb1\xdc\x95k\xacx\xe7\xff-o\xcb\x06>\xc1>\ +\x8b\xc3\xcd\x0e5\x9f\xc26\x80\x14\x94\xa7\x04[l{\ +\xb0\xf5!\xb6 L\xb6'\x1f\xec\x8c\xadgM`\xa9\ +\x14[\x12\x90\x11\x9d[\x18b\x9b\xf3c\xe8\x1e\xcd\xed\ +\x17\x94+t;\x86\xe1\xdf\x01\xcc\xde\xea\x92\xa5\xef\xe1\ +\xac\xd6M\xb5\xa9\x9f\x9e\xd2o5\x1f8W\x16\xf1\xee\ +\xef\xa8+\x87J\x9d\xca\x0c\xd6\xadc4\xd3\xabGt\ +\x95\xb1\x95`#Q\xa1_\xf4\xe8 {\xf8!*\xd8\ +\x93\x1f\xdfD\x7fvZ\x08\x9d\x14\xbb\xc3(\x80\x8d\xac\ +g;\xc0\xc8\xc1\xac\xe0q:3a\x8c\x5c\x8a\x11\xbc\ +\x0f\xb8\x90\x89\x1e\x89\xc0\xc8\xa7\xacF~\x08\x91\xc0\xae\ +\x18qG\x02\x91W^\xb9S\x18;E\x8clJG\ +FE\xff|\x80\x91\x80\xa1\x84\xac\x9d\xb2\xa9\xb1Mm\ +\xcd\xc0\x8f7\x9c\x80\x14\x14\x82\x07=ecs\x94Z\ +[p\xfe\xe4SF\x8cB\x81k|&\x0c\x91\x0c\x10\ +\x22\x84\xac\xda\xf8 \xaf\x94=\x84H\xa7Jd\x11\x15\ +\xcap\xe7G\x94\xee\x8d\xb5\x13Fh\xe4?\x92c;\ +\x02(\x08B7=\xe5}_\xa5Z$F\x91\x1br\ +\x91\x05F!f\xe6\xa6LF\x89\x93mc\x92\xca\x99\ +\x84\xaf\xe1_[\xc72\xe5=M\xa5\xc6\xa6u8?\ +`9(\x92\xf6\xd8\xf8\xcd3\x09I\xc4\xda\x17\xb4\xf1\ +'\xa1\x88)|pD\xc3P\x845H[\x85 \x13\ +F\x89\xd3\xad\xcd!`\xc3p)E\x09\xb0\xb1\xa6)\ +\xeb\xd2\xe9\xf1\xde\x11%M.\xf0\xd0Gb*X9\ +\xe3\xa6lq>\x8dl\xe1\x04h-bR\x94\x94\xf6\ +j\xca\x06g\x13w\x1b\x1b\x9c\x0e\x8e\xfd\xd0Ub\x86\ +\x0b.\xe4\xa7\xacJlS\x87\xd2u\x8f\xedB\xa2K\ +\x06\xfb\x9eUv\xda{\x5c>r\x05@A\xe7\x83\x14\ +Gm\xd2\x8ah\xd2\xae\x80\xe4\xa3$\x80\x12\x12~e\ +\xef4\xc4M\xd3\xdb`\xef`\x98\xdd\x10%[\xc0\xdc\ +\xac\x9e2}\x8f\xb2\xb7@\xc4h\x97<(\x01J\xa4\ +\x14\xb6\xbe){\x02j\x9c\xc0\xf5\x1a\xfeR\xe20)\ +\xc0\x14\x8c\x84)\xf3\x12\xa7\xce\x00\xc7\xb3!>\xd0\x88\ +\xbe\xbd\xb12emr*\xe5oS\x04q\x92h\x13\ +Ia\x82U\xcf}\xf2\xf6\xe2`J\x81\x82\xee\x00(\ +\xb2\xa3h\xcez\x13\xdc\xd4\x81\x0a\xa9G\xe0\x83\xd2\xa9\ +K\x00j\x17\xedd\xf2\x1a5\x0aW\x14\x08*\xc95\ +\xb1+\xbc\xb5\x93\xd7\xa7\xc4-\xa0\xc2\xc4sw#}\ +\x12+\x81\xa6\x8e\xd3\xe8\x0c\x05\xe3\x93&\xe5\x98\xf4D\x0f\x08\x9dt\xe00\ +y\xad\x92\xd49\xc7\xde\x17\xc8\x9a\x04*]\x04\xf8\x08\ +!L\x1d*\x9fr\x15\x17\xc6\x07\xedl\x0a\x95\x0a\xce\ +\xbe\x1a \xa7\xb9\xbbPh\x15\xb4K\x91boCx\ +V\xc4\xb72\xd6\xbe\xa4\xd0\x98R\x8c\x98t\xfa\x9e\x18\ +\xac1\xc4W\xe7\xf5\x94AJ\x8dN\x8a\xe0\x85\x8d\xa4\ +(\xb1\x17\x09f\xc2(\x8dr\xe5R8G\x9cFz\ +\x88\x88\xc1L\xec&\x8c\x92O\xf6:\xa6\xc2\x90\x18;\ +\xd2%l~\xdeN\x99\x96l\x1a\xbbx8O\x9aC\ +z\xd0\x80<{\x92)\xd3\xd2\x08%\x89?2\xe2\x92\ +S\x87\xaf0uI\xcd$U\xa7\x0b\x1d\xb4M\xdeb\ +\x8di)\xa7\x84&\x8c\x92$y:\xc6p\xbd\x98\xe4\ +\xdd:\x80\xa4\x0c\x870e\xf6\xd6iPG\x85\x16\xc3\ +\xc6\xa4\xe7\xe9<)\xfb\xbc\xf3t/\x0c\xa5\xf4\xb5\xf1\ +.\xe7\xeb}\x92P\x89\xc7\x9fD\xf8\xf4\xba\xfd$=\ +\x01\x95*\x13B\x5c\xa6\xc1\xdbR\x0f]\xd2\x0e\xb8\x19\ +\x9a\xb2[\x193\x99\xa3\x87\x9c\xa2\x99\xec\x88\xbf\xe3\xf9\ +\x95I\x07)\x88yGOZ\x0c\x93I\x13N\xa6p\ +\x86\xfd3\x8f\xd29\xf7\x82P2\xa3\x9fj\xb0\xe1\x9c\ +\xfe>BD t\xe2\x09c\xc4)}\xc7\xdf\xae\x13\ +vIR\x80\x0aG\xf2\xecC\x99/\x0a%7~\x99\ +\xc5K\x08\xe2S]\x0a\x0a\x1f;a\x94|\xaaKp\ +\x98\x10\xc7%?\xfcA\xb6{\x17\xf1\xb9?k\xf1\xa2\ +PJ\x9fi\xc6\x93(\xa4\xb4q\xa34\x1cYGS\ +\xb68\xc4\xbb>\xfd\x89\x94\xf8C\x9c\xc9K?\xaf0\ +\x1d\xe2]\x93>\xf9U\xcek'\xa3X\xceZ\xe3\xa6\ +lt\xa3\xb3s\x8f\xa1\x04j\x0a2if\xd2i\xea\ +[\x17\x96\xad6\xa3\xb4@\xb0\x9a,M\x18%\xecs\ +!u,5\x1b\x19gOL\x90s\xdai\x92\xce\x00\ +\x22\xde\x90>\xbe\x141\x81\xfc\xabk9\x0ey\xc3\xe8\ +g@\xe3\xef\xea\xea\x94\x9a\x9c\x0b\x9a\xf5\x947:5\ +\x0e\xe7\xac\x13\x95&\x06t!>\xb8\x9f\xbfup\x11\ +\xff[\x8b\xb7\x9f\xfd\x17-<\xeb\xa6\ +\x00\x00\x09s\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\ + \x0a \x0a \ + \x0a <\ +path\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path4489\ +-3\x22\x0a d=\x22m \ +-225.0508,25.423\ +733 0.20339,-22.\ +3728818 -19.7288\ +1,11.5932198 z\x22\x0a\ + style=\x22fi\ +ll:#00aad4;fill-\ +rule:evenodd;str\ +oke:#00aad4;stro\ +ke-width:2;strok\ +e-linecap:butt;s\ +troke-linejoin:r\ +ound;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1\x22\ + />\x0a \x0a\x0a\ +\x00\x00!\xea\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \ +\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -inkscape:path-ef\ -fect\x0d\x0a eff\ -ect=\x22simplify\x22\x0d\x0a\ - id=\x22path-\ -effect2631\x22\x0d\x0a \ - is_visible=\x22\ -true\x22\x0d\x0a lp\ -eversion=\x221\x22\x0d\x0a \ - steps=\x221\x22\x0d\x0a\ - threshold\ -=\x220.000736842\x22\x0d\x0a\ - smooth_an\ -gles=\x22360\x22\x0d\x0a \ - helper_size=\x22\ -0\x22\x0d\x0a simpl\ -ify_individual_p\ -aths=\x22false\x22\x0d\x0a \ +=\x220\x22\x0a prop\ +_units=\x22false\x22\x0a \ + vertical_p\ +attern=\x22false\x22\x0a \ + hide_knot=\ +\x22false\x22\x0a f\ +use_tolerance=\x220\ +\x22 />\x0a \x0d\x0a \x0d\x0a \x0a \x0a <\ +inkscape:path-ef\ +fect\x0a effe\ +ct=\x22simplify\x22\x0a \ + id=\x22path-ef\ +fect2631\x22\x0a \ + is_visible=\x22tru\ +e\x22\x0a lpever\ +sion=\x221\x22\x0a \ +steps=\x221\x22\x0a \ + threshold=\x220.00\ +0736842\x22\x0a \ +smooth_angles=\x223\ +60\x22\x0a helpe\ +r_size=\x220\x22\x0a \ + simplify_indiv\ +idual_paths=\x22fal\ +se\x22\x0a simpl\ +ify_just_coalesc\ +e=\x22false\x22 />\x0a <\ +/defs>\x0a \x0d\ -\x0a \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x09\xd3\ +#ffffff\x22\x0a in\ +kscape:pagecheck\ +erboard=\x220\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x09\x91\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ +\x0a \x0d\x0a \x0a \x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b[\ +ty:1\x22 />\x0a\x0a\ +\ +\x00\x00\x0b\x13\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#999999;s\ -troke-width:1.33\ -333337\x22\x0d\x0a d=\ -\x22m 53.118644,179\ -.49816 c -1.4666\ -6,-0.62009 -4.16\ -666,-2.7414 -6,-\ -4.71401 l -3.333\ -33,-3.58656 V 10\ -8.66398 46.13037\ -9 l 4.35897,-4.3\ -58975 4.35898,-4\ -.358974 h 50.615\ -376 50.61539 l 4\ -.35897,4.358974 \ -4.35897,4.358975\ - v 62.615381 62.\ -61539 l -4.35758\ -,4.35897 -4.3576\ -,4.35897 -48.975\ -74,0.27327 c -26\ -.936656,0.15029 \ --50.175736,-0.23\ -409 -51.642406,-\ -0.8542 z m 93.99\ -9996,-70.7524 V \ -52.745763 h -44 \ --43.999996 v 55.\ -999997 56 h 43.9\ -99996 44 z M 11.\ -412064,73.437035\ - l 0.37325,-59.3\ -08728 4.35767,-4\ -.3579395 4.35768\ -,-4.3579381 51.3\ -0899,-0.3786652 \ -51.308986,-0.378\ -6654 v 8.0453322\ - 8.045332 h -47.\ -999996 -48 v 56 \ -55.999997 h -8.0\ -3992 -8.03991 z\x22\ -\x0d\x0a id=\x22path8\ -17\x22\x0d\x0a inksca\ -pe:connector-cur\ -vature=\x220\x22 />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0a\xc3\ +ure=\x220\x22\x0a s\ +tyle=\x22fill:none\x22\ + />\x0a \x0a \x0a\x0a\ +\x00\x00\x0ay\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a \x0a \x0a \ +x\x0d\x0a\ -\x0d\x0a\ -\x00\x00\x06\xdc\ +th:4.30178308\x22\x0a \ + x=\x2253.076828\ +\x22\x0a y=\x22128.58\ +464\x22\x0a id=\x22te\ +xt831\x22>\ +x\ +\x0a\x0a\ +\x00\x00\x06\xd2\ \x00\ -\x00\x1fax\xda\xd5Y[\x8f\xdb\xb6\x12~/\xd0\xff\ -\xa0\xa3\xbcdQ\x8b\xe2\x9d\xa2\xb3N\x816(\xd0\xa7\ -s\xd068\x8f\x07\x5c\x89k\xab\x91%C\x92\xd7\xde\ -\xfe\xfa\x0e%\xcb\xd6\xc5\xde\xec\x9en\xd1\xb5\x93\xc0\x16\ -g8\xe4|\x9c\xf9\x86\x9a\xdc~\xbf_g\xde\x83-\ -\xab\xb4\xc8\x17>A\xd8\xf7l\x1e\x17I\x9a/\x17\xfe\ -\xe7\xdf~\x0a\x22\xdf\xabj\x93'&+r\xbb\xf0\xf3\ -\xc2\xff\xfe\xe3\xb7\xdf\xdc\xfe+\x08\xbc\x1fKkj\x9b\ -x\xbb\xb4^y?\xe7_\xaa\xd8l\xac\xf7~U\xd7\ -\x9by\x18\xeev;\x94\x1e\x06QQ.\xc3\x1b/\x08\ -`*L\xae\x1e\x96\xdf~\xe3y01\xa9W\x0b\x9f\ -G~\xf3\xb8\xb2\xe9rU\x9f\x9e\x1fR\xbb\xfb\xa1\xd8\ -/|\xeca\x8fG\x08\xbb\x0f9\xfdj\xb5\xd2d\xe1\ -\x83Az\x98sr\xa5\x93\x1f\xf60\xef\x8b\x10\xf5\xde\ -c\x83q|/\x18\xd33\x8fbJ\x03\x0c\x7f\xf9M\ -;\xab\x02\x086\xf0o\x9e\x14qn\xd6\xe0\xb9I\x92\ -\xffU\xdb;\x00\xa3\x06+\x08\x96l5\x01\xc0\xbc\x9a\ -w\xab,\xfcK\xee;+\xd5\xc6\xc4\xb6\x0a\xbb\xf1\xbe\ -\x81n\xc1\xa3\x81n\x00U\xc5\xb6\x8c\xed=\xd8\xb0(\ -\xb7u\xf8\xe9\xb7OGa\x80QR'=;\x83\xf5\ -w\xacY\x99\x02X\xe1h\xbf\xf0\xf8\x5c\xd52\xb9?\ -\xa7J\xb4\xd6!\xa6!\x00\x07\x1aA\xf5\x98\xd7f\x1f\ -\xe4\xd5\xbb\xfe\xdc8>N\x8d]\xb4\xa4\x0f6.\xd6\ -\xeb\x22\xafZL\x86\xda\xc9I{\xb3-\xb3F%\x89\ -C\x9b\xd9\xb5\xcd\xeb*\x84\x83\x0b\xfd\x8fn\xc2mb\ -\xef\xabff\x1b\x00\xee\x91\xb7\x22\x10\xc6Y\xba\xf9\x8f\ -\xa9W\x07\x05\xcf\xeb\x06>\xe7i\x0d\x10m+[\xfe\ -\xea\x8e\xe2\xdf\xf9\xe7\xeap\x0a\x9d\xa5N5\xa2\xa2\xb3\ -\x07\x16K\x1b\xd7G5\x88\x8e\xfa1\x83\xa3\xbeO\xb3\ -l\x9eC^|p\xbf\x82\x02L\xa6\xf5\xe3\x1c\xa3\x88\ -kA\xb8`\x1f\xaa\xba,\xbe\xd8\xf9;\xdd|\x0e\x8f\ -A\x13\xf7s\x86\x22\xa18\xe1Tt\xe3Y\x9a\xdb\xdf\ -\x8b4\x9f\x97\xc56O\xba\xd1uZ\xdb2K\xe1k\ -\xce\xbb\xb1\xc4T+S\x96\xe6\xb1Y\xde\xefm\xcd\xf9\ -\xe0v\x1bQ\xd5\x1f\xeeR\x8d#\xb7`$\xfb\xb2c\ -\xde\x9d\x13\xee]\xbeh\x1a)\xacH\x7f\xfc\x11\xc61\ -\x96\x88j\xac\xfb\xe3e#@$\x92J\x10\xdf\x0b\xbb\ -3\x09;`\xdb\xf3\x0b\xdd\x89\xb5?\x8f\xa9\xe62$\ -qI\xdf;\xd8;s:\xa0\x8dYB\xf4dE\xb9\ -\xf0\xdf\xdd7\x9fNrW\x94\x89-;\x99l>C\ -\xd9\xe1lZ\x8a\xeb\xecw\xcc\xe0\x0c\x1f\x15\xf0\x05\x05\ -\x00<)v\x0b\x9fN\xa4\x7f\x14\xc5z\xe1\x0b$'\ -\x92x\xdf\xa0\xca%\xa7\x91\x98Ja5\x85D\x04\xe8\ -\x0a5\x91\x02\xf1l]\xd8\x07\xdb6h7\xfb\xa9\x81\ -mY:\x8d\xcc\x9c\xb9|^\ -\x16\x0f\xf8\xea\xeb\x910=\xb2\xaf\x91\xec\xdf\x08t\xc0\ -\xce@M\x18GZ\x12\x00\x16@\x17\x80p\xa4\xbc\xa0\ -\xc5\x98\xc0\xbb_\x83\xba\xb8z\xa8OT\xd6\xfdj\xbf\ -o\xdd\xff\x0d\xc0\xf7\x9f\x9e\xe4{*\ -\x00\x00\x05\xbd\ +\x00\x1e\x98x\xda\xd5X\xdbn\xdbF\x10}\xf7W\xb0\ +\xccK\x8c\x8a\xcb\xbd/W\xb1\x1c\xa0\x0d\x02\xe4\xa9E\ +\x93\xa0\x8f\x05M\xae%6\x14)\x90\x94%\xe7\xeb;\ +\xcb\x9bHJr\xec&Em&\x86\xb8;\xb3\x979\ +;3g9Wo\xf7\xeb\xd4\xb93E\x99\xe4\xd9\xc2\ +%\x08\xbb\x8e\xc9\xa2\xbd\xeb\x85\ +\x1eFq\x15\x1f\xa6\x19\xad\xbec\xf5\xba\x14P\xf2\xc7\ +\x9b\x85\xd6#5\x8b\xf8\xf6\x94&\xd1Z\xfb\x98\xfa\x00\ +\x19hx\xe5}V\x85{/+_\x0d\x86FQ?\ +2\xb2\xee\x91\xdc\x99(_\xaf\xf3\xacl\xe0\x18)\xc7\ +\x07\xe5\xcd\xb6Hk\x8d8\xf2Mj\xd6&\xabJ\x1f\ +\x0e\xccw\xafA\xff*6\xb7\xa5\x1d\xd7\x1c\xbam\xf1\ +Z\x00\xa2(M6\xbf\x87\xd5\xaa\x11;N\xd7\xfe\x9c\ +%\x15@\xb3-M\xf1\xd1\x1e\xc0o\xd9\xe7\xb2\xc1\xbe\ +\x9b\xa6\xd3\x0c\xa8h'\x83\xe9\x0a\x13U\x9d\x12\xf8C\ +u\x9f\xc2\xe9\xde&i:\xcf\xc0\xff\xdf\xd87/\x87\ +\xf9\x92\xea~\x8eQ\xc0\xb5 \x5c\xb07eU\xe4_\ +\xcc\xfc\x95\xae\x9f\xb6\xe9\xd5>>g(\x10\x8a\x13N\ +E\xd7\x9f&\x99\xf9;O\xb2y\x91o\xb3\xb8\xeb]\ +'\x95)\xd2\x04~\xe6\xbc\xeb\x8b\xc3r\x15\x16Ex\ +_/\xef\x1evf\x0d\xb0{\x0d\xa8\x1a\xf4vA\xc5\ +\x91].\x90\x03Q\x1fa'd{\x1b\x1c\x9a\x06\x0a\ ++2\xe8\xbe\x87n\x8c%\xa2\x1a\xebAwQ\xf7#\ +\x12H%\x88\xeb\xf8\xedA\xf8\x1d\x9e\xf5\x89\xf9\xf6\x90\ +\xea\xb7>\xa6l,\xc46\xb2\x0f'y\x13\xf6g\xb2\ +\x09\x97\xe0*i^,\xdcW\xb7\xf5\xd3\x0an\xf2\x22\ +6E'\x92\xf53\x12\xb5\xc7\xd1d\xafv\xee.\xf8\ +\xed\xac\xbd\x1c\x9f\x96\x03\xc2q\xbe[\xb8t*\xfc\x9a\ +\xe7\xeb\x85+\x90\x9c\x0a\xa2}\x8d#\x97\x9c\x06\xe2H\ +\x08+)$\x02\xc0S\xa8\xa9\x10\xf2\xca\xd6:\xb7\xb7\ +m\xdcs\xb3?\x1a\xbe-\x0a\xab\x90\x86\xf7\x06\x0c\xae\ +\x7f\x88\xc7Z\xb5r\x95\xef\x96\x85\x85\xee6L{\xec\ +\xceN\xb6K20\xcdk\xdd\x82\x0a,\xceht\xde\ +A0\x91gT\xc0fqn8\x98L\xd5\x19\xd9:\ +\xdc\x83O\x7f5\xb0gr\x0a\xfehe\xa2/\xa6\xb8\ +\xc9\xc3\x02Tp\xebPWkS\x85qX\x85\x07g\ +\xe9zT\x17\xfa\x90\x85\xe6\x7f\xbc{\xdf\xc7n\x14\xcd\ +\xff\xcc\x8b/\x03O\x05\x85\xf0&\xdf\x82a}\x84\xdb\ +l\x12\xcd!\xb3\xae\xc3\xea:Y\xc3\x06l\xf6\xfb\x19\ +2\x12\xf8l/\x18)W\xf7\x1bs\x98\xb4\x99\xb60\ +M\x8a>\x99\xc1\xe2\x08\x82\x18\x06\xf9\x1f+\xc8\x17\x1f\ +\xec\x22}\x9c\xd4\x91\xd2l\xb4\x0b\x9c\x81\x1dW~g\ +e\xddZN\xf0J\xc3\x1b\x93.\xdc_\xc3M\xe8\x1c\ +\x81\xb9\x84l\xb2Y\xe7\xb1i\xbd\xc6=@\xd7xQ\ +\xdbQ\x15aVZ;\x17n\xfd\x9a\x02\x8b\xbf\xc63\ +\x0fb\x9d#&)\xbd\xec\x00^\x0e\xd3\xe5\xc4\x13\xbf\ +\xb1\xab3\xcbx\x22h\xc2F\xc2z\xdc\xe6\x1c!\x82\ +\xcbC\xfa]\x8e3\xdc\x92\x08=\xcco\x839\xe1\x94\ +\x8ad\xff\x1a(]\x0aB\x03=\xc3\xf0\xef\xd0\x0a\x04\ +$(\x1c\x105\xf3\xa8\x02\x22a\x92\xf1\xcb\xa1\x13,\ +\x87'\xda\xac\xc5\xd90\xfb\x9d\xb3\xc0N\x06+h;\ +3\xac\x019\x10\xeb\xe1\xccG$2%\x92W4\x0a\ +t\x88;\xce\xa8yeD\x18\x14)A\x0f,b\xd9\ +\x02p\x1e\x93\xc5\x84B6a\x029\xa3N\x87\xf3u\ +X@<\x95N\xa3\xe9\xd85\xdd\xf1n:\xf2\xd0}\ +@O\x08d\xda\xdd\xa5\x87i?\xe4\x04\x8f\x08D9\ +\x16$\x98\xc8j\x96\xa0\x12\x11*\xd5\xc0\xfb_\x1a@\ +\x9e\xfc!\x10q\xc2\x18\x95\xa7 b\x01\xa2\xe0\xa7\xff\ +\x0e\xa2\xd1}\x84<\x13\xc4\xf0\x0fA\x8cA8\x12}\ +\x0a1\x81\x11W\x84N\x11\xdb\x0cn\x81g\xaeo\x0f\ +]\xd3\xc8f?\x85\xe7f[UG\xe8\xd4\xd7\xb4\xae\ +\xb7\x87~\xb2OKW\x8eG(\x12\x9a2\xa5fp\ +\xccp;\x09\xb0t\xe0\x12B\xb0\x923\x85(\x15\xf4\ +\x04\x8a\xd6\x0cB\x08~\x11\xe6IM\xb5\xe4`\x1eg\ +\x90z\xb1z\xbcy\x1e\x1f\x19x\xe5/\x07\x8d\xa9\xad\ +\xff\x97\xa5\xad\x9d\x041M\xa5\xa4\xb3:\xa1\x09-\x95\ +S\xdbG,\x0bX\x8b\xc7\xa3\xc6fB\x02\x19\x19\xfa\ +\xacl\xb3\x9f0\x9cK`\xca\xd66\xc9Io\x9b\xa6\ +\x8f0\xce\x1b\xc7\xe1I^\xa5\xfc\xdb\xbc\x8a\x91\xc6R\ +a\xad9\xdc\x0c [\x11A^.\xabz\xe4\xbbS\ +\xa0BD\xc9\x80\x10z\x86V1\xd3\xecE\xd3\xea\x0f\ +\xa0\x09\x85\xe0\xca\x8a\xf1Y^%\x9a\xbfh\x8cl\x92\ +\xfc\x01\x18)N\xc1e\xce0)\x0bX\xf0\xec\xa9F\ +\xa3\x80r-l\x02f\x90(4\xa3O \x9a\x97`\ +\x9e\xa2\x9cI\xd1\xf0(Q\x8c=\x85G=\xf5\x00\x93\ +N\xdd\xfd99\xfb\xd8\xd5\xc7\xdf\x0f'\x1d\xfd\xb4\x9b\ +\xdb\xfb\x22GD0\x06\x1f\x96#I\x93+m\xc1k\ +\xe2\xe3\xcf\xef\x82\xc1%\x11\xf5\x05\x03B2\xa0\x8c7\ +$\xfc(\x02\xe6\xcf\xfa~\xa1\x94\x10\x12rLc\x9a\ +\xd28x\xea\xfdb\xea\xdf/\xc8\xa5=\xfd}NM\ +\xe1\x91\x9c\x1d;5\x0f\x10SX\x8c\xaaJ\xcb3E\ +\xecq\xbdvR\xde\xa5\x04Q\xa0\xc9q1Xb{\ +\xe1\xd5\xa3\xee\x87\xea\xc7\x0f\x94\x9d;@\xe0\xfbw\xd8\ +\xfd\xd4\xc2\xfa\xf1A\x92\xef.\xa6\x0f\xb0\x9b\x96\x9d\x82\ +Q%\xa8\xddl\x177LEAx\xf3\xa0\x07\x9d\x8a\ +\x88\xe3\xda\x15\xa0\xcc\x02\xf8\xac\x804o\x8bW\x83&\ +\xb0\x80d\x5c\x13\x02QC\x14\x92\x10-\xa3\xe2\xd5Q\ +\x8c\xf75\xf6<6\xb6\xf2X.\xdc(\x1a{f_\ +`\xce3\xd8q\x95\x17^\xb4-\xee\xc2j[\x18[\ +v=\x15\x83\xc1\xe4\xf6\xd9\x90\x95@X\x13\xad\xd8L\ +H\xe0*\x0a\xcce\xd9Js\xaef\x0a\x98L\x0b<\ +\xaa\xd9\x9d;\xecb\x9b\x9a\xb9\xb93\xb0\xe5\xf8\xcdi\ +l\xdb\x93\x96\x8f\x8b\xd6QN\xfa\xf6\xf9\x1f\x9f\xd5\xc3\ +i\xf4?\x83\xd8c\xc7 \x13\xc6\x91\x96\x04 \x05\xb8\ +\x05`\x1b(\xc7k\xd0%\xf0\xadV\xe3-^8\xc8\ +}\xc6j_\xea\x9f+[\x8d\xbf\xbe\xf8\x07\xea\x88p\ +\xf5\ +\x00\x00\x05\xb7\ \x00\ -\x00\x14Vx\xda\xddX[o\xdb6\x14~/\xd0\xff\ - \xa8/\x0dfQ\xbcJ\xa4j\xa7\xd8P\x14-\xd0\ -\xbel\xdd\xf5M\x91hG\x8d,\x1a\x14\x1d'\xfd\xf5\ -;\xb4,Y\xbed\xc8\x86\xac\xc3*\xc0\xb1\xf5\x9dC\ -\xf2\xf0;Wd\xfa\xfanY\x07\xb7\xda\xb6\x95if\ -!A8\x0ctS\x98\xb2j\x16\xb3\xf0\xe7Oo#\ -\x19\x06\xad\xcb\x9b2\xafM\xa3gac\xc2\xd7\x97\xcf\ -\x9fM\xdb\xdb\xc5\xf3gA\x10\xc0\xf2\xa6\xcd\xcab\x16\ -^;\xb7\xca\xe2x\xb5\xb652v\x11\x97E\xack\ -\xbd\xd4\x8dkc\x82H\x1c\x8e\xf4\x8b\xbd~au\xee\ -\xaa[]\x98\xe5\xd24\xedvi\xd3\xbe\x18k\xdbr\ ->\xa8o6\x1b\xb4a[-\xa2\x94\x8a1\x8d)\x8d\ -@#j\xef\x1b\x97\xdfEGk\xc1\xcesk)\xc6\ -8\x06\xd9H\xf5\x91jY\x0b\xe4\xac\xe03\xe8\xf7\x00\ -j\xcd\xda\x16z\x0e\x0b5j\xb4\x8b\xdf|z3\x08\ -#\x8cJW\x8e\xf7\xa9\x9a\x9b\xb6\xc8W\xfa\xe0\xdc\x1e\ -\xech\xc8\x97\xba]\xe5\x85n\xe3\x1e\xef6\xd8T\xa5\ -\xbb\x9e\x85\x5cv\xaf\xd7\xbaZ\x5c\xbb\xfd\xfbm\xa57\ -?\x98\xbbY\x88\x03\x1cp\x19\xf4xU\xceB\xb8\x0c\ -\xddi\xed\x9dNv\xf2\xdd!\xd9 \xc2HQD\x83\ -\x97\xa2`Z\xe2r\x12PL\xd2\x08\xcb\x08'\x17\xdd\ -\x9a\xfe~Yi\x0ao\xef,\xbc\xaa\xf3\xe2\xc6\xac\x1d\ -\xf2\xbc]z\xa5\xe9R\xbb\xbc\xcc]\xbe]\xd1\xd9\xd1\ -C\x84v:\xa0\x05N\xcc~|\xf3v\xf7\x0a@Q\ -d\xbf\x1a{\xd3\xbf\xc3\xe3U\xf2+\xd8|\x16\x86\x97\ -{|Z\x16\x19\xd0\xbe\xcc\xdde\xb5\xcc\x17\xda\xbb\xec\ -;`y\x1a\xef\x05\x87\xda\xee~\xa5G\xfbv;[\ -\xddy\xf0l,\x97\xc5\xb2\xf2\xab\xe2\x9f\x5cU\xd7\xef\ -\xfd1a\x10\x1fo[\xb9Z\x8f\xd0i\xbc\xbbC\x7f\ -\xc7x|\xc9i\xdc\xb3\xd0\xbd\x96z\xde\x8e(\xf2\xaf\ -\x04\x0f\xf4,s{\xa3\xedp\xde\xe0\xac\xd6\x99\xe2\xc6\ -\xeb\x7fo\xad\xd9\x90\x0f\x90\xad\xd6\x85\x83\x9e\xb1\x15\xa4\ -\xe0,\xcc\xd7\xce\xecQ\xab\xe7\xbf{\xf7\xe2\x03\xe8\xb7\ -#\xe8\xe1][w_\x03O\x06\x22e^\x9bMv\ -[\xb5\xd5U\xad\xc3S\xf3\xaavk\xe0,tv\xad\ -\xf7N\x9b\xaerw=\xf2\x80?\xcaC\x5c(\x19\x8e\ -p\x80?\x06`\xd4\x04>\xc1\x87@\xc0\xafHl\x7f\ -F\x84\x221\x82;\xb4W\xfd\x12\x8cw\xd9\x99;\x07\ -\xcfEv]\xebL\xdf\xea\xc6\x94\xe5\xab\xd6Ys\xa3\ -\xb3\x17x\xfb\xec^\xa3m~eP\x0cWn\xbc\x8b\ -\xb3y\xd3\xfap\x824*\xf2Z\xbf\xc4H^th\ -\x9d;\xfd\xb23\xe8b\x1f\x16\xe0\xe0\xad\xd3v\xde\xf6\ -\x0e\xed~\x0eY\xe3S\xa6\xf4\xf9\xba;f\x05aU\ -\x98\xda\xd8Y\xf8b\xbe}z\x03\xae\x8c-\xb5\xede\ -\xc9\xf69\x94\x19(\x15\x10\xa2\x90\xd0=n\xae>\xeb\ -\xc29Sk\xb0\xd1\xc75\x19\x9c\xbb\xb0p\xc7\xb3\x82\ -uU\xea\xb3\x92\xc1\xa5\xde\xc8\xe1\xb0\xf3\xe2\xf6:/\ -\xcdf\x16\xd2\x13\xe9\xa6j@\x12\xedJ\x18\x91\x09{\ -H\xa5/k\x04S\x11\x8e\xf2b\xe0l\x08\x94\xf6\xda\ -l\xfc\x85\xc0\xc3y\xdd\xea\x93\x0d\xbf\x18\x03>KP\ -\x9a`N\x92\xf4D^@\xad\x8c\xb8@\x09cT\x92\ -S1\x5c\x93BxI\xc9\x94x\xc8Z\xd8B\xa4\x0f\ -\x09\xfd\x06\x0f\x0a\x97\xf9]\xb5\xac\xbe\xe8r\xe4\xb9\xfd\ -\xd9kk!\x7f\xa3:\xbf\xd7\xe0\xf8\x05\x17\x9c\xf7\x01\ -6]\x8cXYp\x22\xf6\xc5bq\x90\xc3\xdd\xaaG\ -\xe4\x1e\xc3\xa7\xb97\xc1\xc1;\xdfE~\xf1\x7f\xdeA\ -G\xf9c\xac\xb37\xd44\x0d\x04\x9b\xb1\x11\x98|\x9b\ -\xbb\xb5\xd5\xa3\xe08J\xc2\xac\x81ab\x5c>\x8fM\ -:\xd6}\xf5p\xea\xce\xe7Eq\x92\xba\xab\xbb\x1e\xa8\ -+0+_eWk\xe7\xc6\xd8gS5\x19\x94t\ -m{t\x17\xd2\x199\xe2`\x190\xc41%\x22%\ -\x13\xc6\x10N0V, \x02I\x9ar\x9a\xa8I\xc4\ -\x10\x15\x9c2\x19(\x081\x9a\x12:\x898\x22\x9c\xa4\ -\x22\x09$\x92\xa9 \x0a\xa0\x14Q.q\xca\x01\xa2\x92\ -\x09\xc2\x91P\xac\x84\x10\xe7\xe9\xe5\ -_\x9f\xde\xb3m\xe6+\xd0\x0b\xdc`\xca\x13\x0e\xf4\xee\ -\xd8\x09|\xb3J\x19QC\xa8\xa6A\x8a\xbc\x0f\x08\xf7\ -\x10\x95*I\x07\xc6\xc5$\xda\x11\xad\xces\x99|}\ -.K\xfe/s\xf9\xf1<\x97\x12q\xa9\x94\x14\x13\x9a\ - !HBd\xc0\x08\xa2\x84`\xc5' M\x094\ -5\x110\xa8\x05\x0as\x9eN\x14R\x12\xc6\x1a\xf2\x00\ -u\xf2\x1fQ7\x8d\x17\xa7\xb5~4\xa0\x8c\xa6\x12\x84\ -q\x92B\xc5\x99D\xd0\xc4\xa4L\xa9R\x17\xe1Q\x7f\ - \xfb\xaer\xae{\xa8\x91\x7fG\x87\xc0\x5cm\xab;\ -8\x01n\x9c\xf2\x84N\xa0YL\x88\xaf\x87i\xca0\ -\xa3\xc9\xb6\xe8Q\xf8A\xc5\xc5\xe9\xf08\xf0\xbe\x0f\x07\ -\x0bw\x1e\xd1\x01}\x93C\x9c\x02\xef\xea\x80=h\xb6\ -\x0c1\x0c\x9c\x1e\x04^?1HD\xa8H\x85`c\ -a?q\xc0t\xa8\xd4\x99\x9a\xeb\x8f\xe6\x5c\xca3-\ -k\xb0t\x1b\x8eG-\xa7\x8b\xd3\xa3\xc91e\x14\x83\ -\xd9\xc7\xc1h\xcd\xba)\xff:\x1a\xb7/5\x0c\x04.\ -\xe3H\xa8\xed\xd3\xcb\xca\x1c\xe6*k\xf3\xfb\x833\xf7\ -\xd6\xad\xf2\x0aF\x85\xed0\x98u\x93g\x1bx\x8b\x83\ -N\xf3 \xf1\x1e\xcf4\xf1i\xe0\x1b\xd6\x93S\x1d\xb1\ -G\x91=jI\xdf<\xd9\x94\x01\x9e\x0a,\x9e\x9e\xec\ -\xe4\x11d\x1f\x14\xd5o\x9el\xa8\xea\x09N\x92\xc3\xa6\ -\xf6DdG\xe2\x11t\x1f\xcc\x03\xffG\xba\xfb6\xd4\ -}O\xfd?^\xe0\xfbO\xce\x08\xa3\x90\ -\x00\x00\x06\xc0\ +\x00\x13\xd1x\xda\xddX[o\xdb6\x14~\xef\xaf\x10\ +\xd4\x97\x06\xb3(^%R\xb5Sl(\x8a\x0eh_\ +\xb6\xee\xfa\xa6H\xb4\xa3F\x16\x0d\x8a\x8e\x93\xfe\xfa\x1d\ +\xca\xd6\xc5\x8e\xb3vC\xdba\x15`[\xfc\xce!y\ +\xf8\x9d\x1b\xe1\xf9\x8b\xbbu\x1d\xdcj\xdbV\xa6Y\x84\ +\x04\xe10\xd0Ma\xca\xaaY-\xc2_\xde\xbd\x8ad\ +\x18\xb4.o\xca\xbc6\x8d^\x84\x8d\x09_\x5c>\x99\ +\xb7\xb7\xab'A\x10\xc0\xe4\xa6\xcd\xcab\x11^;\xb7\ +\xc9\xe2x\xb3\xb552v\x15\x97E\xack\xbd\xd6\x8d\ +kc\x82H\x1c\x8e\xea\xc5\xa8^X\x9d\xbb\xeaV\x17\ +f\xbd6M\xdb\xcdl\xda\xa7\x13e[.\x07\xed\xdd\ +n\x87v\xacS\x22J\xa9\x18\xd3\x98\xd2\x084\xa2\xf6\ +\xbeq\xf9]t<\x15l<7\x95b\x8cc\x90\x8d\ +\x9a\x9f\xa6\x95\xb5\xc0\xca\x06>\x83z\x0f\xa0\xd6lm\ +\xa1\x970O\xa3F\xbb\xf8\xe5\xbb\x97\x830\xc2\xa8t\ +\xe5d\x99\xaa\xb9i\x8b|\xa3\x8fv\xed\xc1=\x03\xf9\ +Z\xb7\x9b\xbc\xd0m\xdc\xe3\xdd\xfc]U\xba\xebE\xc8\ +e7\xba\xd6\xd5\xea\xda\x0d\xc3\xdbJ\xef~0w\x8b\ +\x10\x078\xe028\xc0U\xb9\x08\xe1\x18t\xaf3\xfa\ +\x99\xec\xa5\x87\xe5\xb3A\x82\x91\xa2\x88\x06\xcfD\xc1\xb4\ +\xc4\xe5,\xa0\x98\xa4\x11\x96\x11N.\xba)\xfd\xb9\xb2\ +\xd2\x14\xde\xd0ExU\xe7\xc5\x8d\xd9:\xe4\xe9\xba\x04\ +\x9d\xf9Z\xbb\xbc\xcc]\xee\xf5\xf7&\xf4\x08\xa1\x9d\x06\ +\xe8\x80\xdb\xb2\x9f^\xbe\xda\x8f`\x5c\x14\xd9o\xc6\xde\ +\x1c\x86\xf0x\x85\xfc\x0a\xd6]\x84\xe1\xe5\x00\xcf\xcb\x22\ +\x03\xa2\xd7\xb9\xbb\xac\xd6\xf9J{\x1f}\x07\xc4\xce\xe3\ +Qp\xa4\xec\xee7z\x5ct\xbf\xac\xd5{\x8f\x9d\x0d\ +\xdb\xb2XW~R\xfc\xb3\xab\xea\xfaG\xbfI\x18\xc4\ +'\x8bV\xae\xd6#8\x8f\x0f\xd6\x1f\xce\x16O\x0e7\ +\x8f\xfb\xb3w\xa3R/\xdb\x91\x16?\x22\xb8\xa7d\x9d\ +\xdb\x1bm\xfb\x8d\x06\xdf\xb4\xce\x147^\xfb{k\xcd\ +\x8e\xbc\x81t\xb4.\xec\xd5\x8c\xad \xc9\x16a\xbeu\ +f\x00\xad^\xfe\xe1}\x89\xa7\xc8\xef\xc7\xc8\xa3+\xb6\ +\xee\xbe\x06j\x0c\xc4\xc4\xb26\xbb\xec\xb6j\xab\xabZ\ +\x87\x0f\x0c\xab\xda\xce\xb4E\xe8\xecV\x0f>\x9aor\ +w=2\xee\xb7\xf1\x08\x17J\x86#\x0c\xe8\xdb\x00\xcc\ +\x99\xc1'x\x13\x08x\x8bD\xf7\x1a\x11\x8a\xc4\x04\xde\ +\xa3\xbd\xea\x87`\xb2\xc8\xc1\xd2%\xf8)\xb2\xdbZg\ +\xfaV7\xa6,\x9f\xb7\xce\x9a\x1b\x9d=\xc5\xdds\x18\ +F]\xfedP\xe36n\xb2\x88\xb3y\xd3\xfa\xc8\x81\ +D)\xf2Z?\xc3H^\xec\xd1:w\xfa\xd9\xde\x9c\ +\x8b!\x06\xc0\xa1\x9d\x9f\xf6\xce\xf5\x1e\xec\xde\x86\xbc\xf0\ +IQ\xfal\xdco\xb1\x81\xf8)Lm\xec\x22|\xba\ +\xec\x9e\xc3\xdeW\xc6\x96\xda\xf6\xa2\xa4{\x8eD\x06J\ +\x00D\x22d\xeb\x016W\xefu\xe1\x9c\xa95\x18\xe7\ +\xa3\x97\xf4\xde\x5cY8\xda9|[\x95\xfa\x9c`\xf0\ +\xa17o\xd8\xe8\xac\xb4\xbd\xceK\xb3[\x84\xf4T\xb8\ +\xab\x1a\x10D\x87\xaaDd\xc2\x1e\xd1\xe8+\x15\xc1T\ +\x84c\xf0\x0fD\xf5q\xd1^\x9b\x9d?\x09x4\xaf\ +[}\xba\xda\x07c\xc0G\x09J\x13\xccI\x92\x9e\x8a\ +\x0b\xa8}\x11\x17(a\x8cJ\xf2@\x0a\xc7\xa3\x10J\ +R2%\x1e\xb1\x13\x16\x10\xe9#2?\xfd1\xd9:\ +\xbf\xab\xd6\xd5\x07]\x8e\xae\x1a\xf7\xddZ\x0b\xf9\x19\xd5\ +\xf9\xbd\x06?\xaf\xb8\xe0\xfc\x10J\xf3\xd5\xc8\xc5\x8a\x13\ +1\xd4\x81\xd54E\xf73>\x9a\x5c\x0c?H\xae\x19\ +\x0e^\xfbN\xf0\xab\xffz\x0d]\xe1\xcf\x89\xcah\xa0\ +i\x1a\x88*c#0\xf56w[\xab\xc7@8I\ +\xb2\xac\x81;\xc0\xa4\x18\x9eXs\xaa\xf9\xfc\xf1\xc4\x5c\ +.\x8b\xe2Abn\xeez\xa0\xae\xc0\xa6|\x93]m\ +\x9d\x9bb\xefM\xd5dP\x9e\xb5\xed\xd1C\xecf\xe4\ +\xf8\xf8\xeb\x80!\x8e)\x11)\x991\x86p\x82\xb1b\ +\x01\x11H\xd2\x94\xd3D\xcd\x22\x86\xa8\xe0\x94\xc9@A\ +@\xd1\x94\xd0Y\xc4\x11\xe1$\x15I \x91L\x05Q\ +\x00\xa5\x88r\x89S\x0e\x10\x95L\x10\xe6!\x821\x11\ +<|\xe8\x06\xc9\xe8?\xa0\xf8\xf3\xf0\x98$\xff\x01\x8f\ +\x181\xc1\x99\xc2j\xa0C\x00C\x22UL0(\xd8\ +\x0a\xd2S%\xbezSE\xd3d\x16)\xc4\x88T\x02\ +f\xc2\xf5\x82*!\xfd\xbcD\x11\xc9\x18Tv\x0fp\ +_\xfe\x13\x8a\x95\x10\xe2,\xb3\xfc+3{\xb6u|\ +yf\x81\x16Ly\xc2\x81\xd9\x031\x81o@)#\ +j\x08\xd04H\x91\xa7\x9fp\x0fQ\xa9\x92t [\ +\xcc\xa2\x03\xc7\xea,\x8d\xc9W\xa6\xb1\xe4_\x96\xc6\xb7\ +\xe7i\x94\x88K\xa5\xa4\x98\xd1\x04\x09A\x12\x22\x03F\ +\x10%\x04+>\x03iJ\xa0_\x89\x80A\xf2+\xcc\ +y:SHI\xb8\xa2\x90\xf3\xac\xc9\x7f\xc1\xda<^\ +\x9d\xd6\xf3\xc9Ucr\xbf@\x18')T\x97Y\x04\ +\x0dJ\xca\x94*u\x11\x1e\xb7\x0024\x8d3\xedA\ +\x8d>\x9dl\x00\x17a[\xdd\xc1\xeap\xd0\x94't\ +\x06\xfd`F|\xddKS\x86\x19M\xba\xe2F\xe1\x85\ +\x8a\x8b\x07w\xbf\x81\xec!\x02,\x1cu$\x01\xda!\ +\x87\xb0\x04\xae\xd5\x941\xe8\xa0\x0c1\x0c4N\xe3\xac\ +\xef\xff\x12\x11*R!\xd8D\xd6\xdf\x1e\xe0n\xa7\xd4\ +\xc3\xaa\xeaw\xe5\x5c\xca\x87\xfdh0\xb1\x0b\xbe\x93\x8e\ +\xb2\x8f\xca\x93k_\xca(\x06\x8bOC\xcf\x9amS\ +\xfe}\xecu\x83\x1az\xbc\xcb8\x12\xaa{zY\x99\ +\xc3\x05\xc9\xda\xfc\xfeh\xcf\xd1\xbaM^A\xfb\xef.\ +t\xd9\xfe\xe2\xd8\x06\xde\xe2`\xaf9M\xb2O\xa5\x98\ +\xf8\x90\xf7\xdd\xe8\xf3r\x1c\xb1Oay\xd2o\xbem\ +\x96)\x038\x15X|f\x96\x93\x8f\xb3|T4\xbf\ +m\x96\xa1f'8I\x8e\xba\xd5ga9\x12\x1f\xe7\ +\xf9\xa8\xc7\xff\x0fy>\xb4\x98\xeeg\xee\xff\x09\xb9|\ +\xf2\x17\xfb}\x9c\xcf\ +\x00\x00\x06\xb6\ \x00\ -\x00\x19\x01x\xda\xedX[\x8f\xe3\xb6\x15~\x0f\x90\xff\ - h_vP\x8b\xe2\xfd\xa2\xb57h\xb1\x08\x12 \ -yI\xd36\xc9K\xa1\x918\x1eed\xd1\x90\xe4\xf1\ -\xcc\xfe\xfa\x1e\xca\x96,\xd9\xf2f\x92\xddt\x81\xa2\x02\ -f,\x9esD\x1e~\xe7J.\xbfz\xda\x94\xc1\xa3\ -\xad\x9b\xc2U\xab\x90 \x1c\x06\xb6\xca\x5c^T\xebU\ -\xf8\x8f\x1f\xbf\x8et\x184mZ\xe5i\xe9*\xbb\x0a\ -+\x17~\xf5\xf6\xcb/\x96\xcd\xe3\xfa\xcb/\x82 \x80\ -\xcf\xab&\xc9\xb3Ux\xdf\xb6\xdb$\x8e\xb7\xbb\xbaD\ -\xae^\xc7y\x16\xdb\xd2nl\xd561A$\x0eG\ -\xf2\xd9I>\xabm\xda\x16\x8f6s\x9b\x8d\xab\x9a\xee\ -\xd3\xaay5\x96\xae\xf3\xbbA|\xbf\xdf\xa3=\xeb\xa4\ -\x881&\xc64\xa64\x02\x89\xa8y\xae\xda\xf4):\ -\xfb\x16\xf4\x9c\xfb\x96b\x8cc\xe0\x8dD_(\x964\ -\x00\xce\x16\xfe\x06\xf9\x9e\x80\x1a\xb7\xab3{\x07\x1fZ\ -T\xd96~\xf7\xe3\xbb\x81\x19a\x94\xb7\xf9x\x9e\xa2\ -zh\xb2tk'\xeb\xf6\xc4\x03\x0c\xe9\xc66\xdb4\ -\xb3M\xdc\xd3\x0f\x13\xec\x8b\xbc\xbd_\x85\x5c\x1f\x86\xf7\ -\xb6X\xdf\xb7\xa7\xf1ca\xf7\x7fsO\xab\x10\x078\ -\xe0:\xe8\xe9E\xbe\x0aa3\xf4(u2:9\xf2\ -\x8f\x8b$\x03\x0b#C\x11\x0f^\xef\xaa\x87\xca\xed\xab\ -\x9b\x83\x5c\xbf\xa7$w\x99\xd7q\x15n\xef\xfe\xdd6\ -\xc8\x03\xf5\xd6K,7\xb6M\xf3\xb4M;\xf1\xc3\xc2\ -=\x89\xd0\x83\x0cH\x81\xd5\x92\x1f\xde}}\x1c\x02!\ -\xcb\x92\x7f\xb9\xfa\xa1\x1f\xc3\xe3E\xd2[\xb7\x83\xdd\x85\ -oO\xf4e\x9e%\x80\xf3&m\xdf\x16\x9btm\xbd\ -\x8d\xfe\x02\xb0.\xe3\x13c*\xdd>o\xedh\xde\xc3\ -\xcc\xb5=\x98l\xd6y\xf3lS\xf8\xaf\xe2\xbf\xb7E\ -Y~\xeb\x97\x09\x83\xf8|\xda\xa2-\xed\x88\xba\x8c\x8f\ -{\xe8\xf7\x18\x8f7\xb9\x8c{\x14\x0e\xc3\xdc\xde5#\ -\x88\xfc\x90\xe0\x01\x9eMZ?\xd8zXo\xb0N\xd3\ -\xba\xec\xc1\xcb\xff\xb5\xae\xdd\x9e|\x07\xe1Y\xb7\xe1 \ -\xe7\xea\x02bn\x15\xa6\xbb\xd6\x9d\xa8\xb5\xbd\xfb\xd9\xdb\ -\x13OH?\x9d\x91\xae\xcf\xda\xb4\xcf%\xe0\xe4\xc05\ -\xeeJ\xb7O\x1e\x8b\xa6\xb8-mx\xa9^\xd1t\x0a\ -\xae\xc2\xb6\xde\xd9\x93\xd1\x96\xdb\xb4\xbd\x1fY\xc0/\xe5\ -I\x5c\x18\x1d\x8e\xe8@\xfe>\x00\xa5\x16\xf0\x17|\x17\ -\x08x\x8bD\xf7\x1a\x11\x8a\xc4\x88|\xa0\xf6\xa2\xef\x83\ -\xf1,Gu\xef\xc0rQ\xbd+mb\x1fm\xe5\xf2\ -\xfcM\xd3\xd6\xee\xc1&\xafp\xf7\x1c\x87Q\x17P\x09\ -d\xbfm;\x9e\xa5\xad\xd3\xaa\xf1\xee\x04q\x93\xa5\xa5\ -}\x8d\x91\xbe9P\xcb\xb4\xb5\xaf\x0f\x0a\xdd\x9c\xdc\x02\ -\x0c\xdc\x19\xedhmo\xd0\xc3\xeb\x102>^r\x1f\ -\xa0\xc7e\xb6\xe0V\x99+]\xbd\x0a_\xdduO\xaf\ -\xc0\xad\xabs[\xf7<\xd9=S\x9e\x83\xdc\x00.\x0a\ -\x11\xdc\xd3\xdd\xed\xaf6k[WZ\xd0\xd1\xfb5\x19\ -\x8c\xbb\xaea\x8f\xb3\x8c]\x91\xdbY\xce`R\xaf\xe4\ -\xb0\xd8<\xbb\xb9Os\xb7_\x85\xf4\x82\xbb/*\xe0\ -D\xc7\x9cE\xb4d\xd7D\xfav\xd1\ -\x01tM\x0ce\x82]\x00\x5c\xbb]\x95\x7f\x8c\xeb\xbf\ -\x0c`\x0a\x09\x95k\xc2f\x01\xc6\x12\xbcP\xcaK\x80\ -\x15\xe2\x86I*\xe4\x0c\xc0Pwa>\xc9\xc8\x07\x00\ -&/\x82w\xec\xc7\x7f\x08^\x86\x18\xd1\x86P\xaa>\ -\x17\xbcP\xba\x94\x11\x84\xf1Kx9\xe2\x84\x10Cf\ -\xfc\xd7'e*\x05\x15b\x06_F\x91\xe4\x12Z\xd9\ -\x0f9\xf0\x0b\xf1\xcdy\x9a~\x14\xbe\xda`h\xb1\xb4\ -\xf9\x5c\xf8B\x82\xd4\x18\xfar6\xe7\xbeBCJ\x9b\ -\x85\x97#\xed\xdd\xd7\xcc\xe5\x07\x06\x11\x81!\x7f\x5c\x87\ -\xf7\xc5\xce\xab\xf5G\x81\xcb\xb5\x81\xe8\x93\xea\xf3\x81\xab\ -1 \xc8\xf4\x1c\xb8\xd0*\x10Lf\xc0\x85\xaf\xb4\x10\ -\xda\xcc\xe5\x06\xeeOaX\xf0\x0f\xf9.\xfe\xef\xa4^\ -\x9f\x1b\x98\xd1\xda\xd0?\x15\xdee\xbc\x1e\xae\x03\xd6\x97\ -\xe7\xb3\xd1\xc1ft\x93\x800\x96\x8aj\xb6\x88\xa8\x00\ -4\xe1\xd4jn\xc2\xb33\x1d\x813\xdd\xe9\xaa\xe1\xfc\ -\xc4'\xc7iev\x11\x8c\x04\xa1\x1c\xceL\xa3\xe3\xd1\ -\xb2\x86\xdee|\xe1\xe6\x8f\xbeHb\x0c\xfd\xc6$\x8e\ -\xbcs@\xdf\x08'\x9di\x9ct\x9e\xa1\x18cbB\ -\xee\xcf\xf2\x126\x83\x15\xf4\x18c\xe6\xf1.\x80\x19?\ -\x1f#\x13\xd7\xf0\x9b\xf1:q1u\xa7i\xbbC$\ -\x1b\xba\x99\xb3\xe1\xd1\xd8\x18A\x22\xd0\x02\xcb\x8b\xe6f\ -b\xebO\xe6\x01o\xb6i\x01\xc7\xf6\xeeb&9\xdc\ -\x025\x81\xd768H\x9e\xf9\xed\xc4afm\x00=\ -\xa0ad\xce\x06\x1aC\x8d;\xb3\x01G\x18zw\x8a\ -\xc5\xbc\x11\x14\xf4\xf8R\xc9\x19#@\xed\xa6\x84\xb3\xe9\ -\xd9vl\x84ict\xd6uv\xd5\xe4j\xc0A\xdb\ -j$\xe5B\x89\xcf`\x83\xca_\x03\x97\xe3\xbb\xb9\xf5\ -\xf1Z\xce\xff.\xfd\x951\xfc\xfe\x07O\xe1\xf2c\ -\x00\x00\x13\x09\ +\x00\x18`x\xda\xedX\xeb\x8f\xe3\xb6\x11\xff~\x7f\x85\ +\xa0\xfbr\x8bZ\x14\xdf\x22u\xf6\x06-\x0eA\x02\xa4\ +_\xda$}|)\xb4\x12\xd7\xab\xac,\x1a\x92\xbc\xde\ +\xbd\xbf\xbeC\xc9z\xd9\xf2e\xd3\xbb\xf4\x80\xa2\x02\xbc\ ++\xce\x0c\xc9\xe1o\x1e\x9c\xd1\xfa\x9b\xe7]\xe1=\x99\ +\xaa\xcem\xb9\xf1\x09\xc2\xbeg\xca\xd4fy\xb9\xdd\xf8\ +?\xfd\xf8m\xa0|\xafn\x922K\x0a[\x9a\x8d_\ +Z\xff\x9b\xdb7\xeb\xfai\xfb\xc6\xf3<\x98\x5c\xd6q\ +\x96n\xfc\x87\xa6\xd9\xc7a\xb8?T\x05\xb2\xd56\xcc\ +\xd2\xd0\x14fg\xca\xa6\x0e\x09\x22\xa1?\x8a\xa7\xa3x\ +Z\x99\xa4\xc9\x9fLjw;[\xd6\xed\xcc\xb2~;\ +\x11\xae\xb2\xfbA\xfax<\xa2#k\x85\x88\xd6:\xc4\ +4\xa44\x00\x89\xa0~)\x9b\xe49\x98O\x05\x1d\x97\ +\xa6R\x8cq\x08\xbcQ\xf2uRq\x0d\xa8\xec\xe17\ +\x88\xf7\x04T\xdbC\x95\x9a{\x98gPi\x9a\xf0\xc3\ +\x8f\x1f\x06f\x80Q\xd6d\x93e\xf2\xf2\xb1N\x93\xbd\ +\x99\xed\xda\x13;\x04\x92\x9d\xa9\xf7Ij\xea\xb0\xa7\xb7\ +\xf3\x8fy\xd6\x1e8\x18\ +i\x8a\xb8\xf7\xeeP>\x96\xf6X\xde\xb4b\xfdY\xe2\ +\xcc\xa6N\xb9\x8d\xbf\xbf\xffWS#\x87\xcf-\x08\xac\ +w\xa6I\xb2\xa4I\x9cp\xb7gO!\xb4\x95\x00\x19\ +\xb0S\xfc\x97\x0f\xdfv#\x18\xa7i\xfc7[=\x9e\ +\x86\xf08\x81\xe4\xce\x1e\xe0L\xfe\xed@^gi\x0c\ +\xc8\xee\x92\xe66\xdf%[\xe3\x8c\xf2\x07@r\x1d\x8e\ +\x8c\x99p\xf3\xb27\xe3\xa2\xdd\xb2\x95\xe9L\xb4\xe8\xa7\ +Y\xba\xcb\xdd\xa4\xf0\xafM^\x14\xdf\xbbM|/<\ +[4o\x0a3\x12\xd7\xe1I\xfb\xd3\xd9\xc2\xc9\xe1\xd6\ +a\x7f\xf6v\x94\x99\xfbz\x84\xc5\x8d\x08\xee!\xd9%\ +\xd5\xa3\xa9\xfa\x8d\x06c\xd4\x8dM\x1f\x9d\xf4\x1f\xab\xca\ +\x1e\xc9\x0f\x10\x7fU\xe3\xf7b\xb6\xca!\xaa6~r\ +h\xec@\xac\xcc\xfd?\x9c\xf1\xf0\x94\xf2\xf79\xe5\xea\ +\x8au\xf3R\x004\x16\x9c\xe0\xbe\xb0\xc7\xf8)\xaf\xf3\ +\xbb\xc2\xf8\x17\x8a\xe5u\xab\xda\xc6o\xaa\x83\x19l\xb4\ +\xde'\xcd\xc3\x88\xb8\xdb\xc6Q\xb8\xd0\xca\x1f\xc9@\xfd\ +\xb3\x07\xea\xac\xe0\xe7\xfd\xe0\x09x\x0bD\xfb\x1a\x10\x8a\ +\xc4\x84\xdcQ{\xd1\x8f\xded\x91\x93\xa6\xf7`\xa7\xa0\ +:\x14&6O\xa6\xb4Y\xf6\xben*\xfbh\xe2\xb7\ +\xb8}N\xc3\xa0\x0d\x98\x18\x92\xda\xbe\x99,\xd2TI\ +Y;\xcf\x81\xc8H\x93\xc2\xbc\xc3H\xddt\xd4\x22i\ +\xcc\xbbN\x9d\x9b\xc1\x07\xc0\xa0\xad\x9d:\xe3:\x0b\xb6\ +oCP\xb8\x88\xc8\x5c\xf8u[\xec\xc1\x7fR[\xd8\ +j\xe3\xbf\xbdo\x9f\xd3\xdew\xb6\xcaL\xd5\xb3d\xfb\ +\xccX\x16b\x1e<\x11\xc2\xf3D\xb6w\xbf\x98\xb4i\ +la@9\xe7\xbd\xa4\xb7\xe6\xb6\x82\xa3-\xd1\x0fy\ +f\x96\x18\x83\x0d\x9dz\xc3F\x8b\xdc\xfa!\xc9\xecq\ +\xe3\xd3s\xe61/\x81\x11\x9c\xd2\x10Q\x92]\x91\xe8\ +S\x13\xc1T\xf8\xa3\xf3\x0f@\xf5~Q?\xd8\xa3;\ +\x09X4)js\xbe\xdaGk\xc1F\x0cq!\x22\ +\xaa/6K!\xd9\x05D!\x81\xb5\x12\xfc\x82\xebp\ +\x04W\xd2Z\xb1k'\x81\x05Dt\x85\x07\xd3\xe95\ +\xde.y\xcew\xf9G\x93\x8d\xa6\x1a\xf7=T\x15\xc4\ +gP$/\x06\xec\xbc\xe5\x92\x88\x93+\xad\xb7#\x16\ +[N\xc4\x90\x07\xb6\xd3\x10\xddr\xc1\xf9\xaf\x07\x17\xc3\ +\x17\xc1\xb5\xc2\xdew.\xf5\xff\xec\xfe|\x07\xd7\xc0?\ +'\x22\xa3\x82\xb6,\xc1\xabl\x15\x80\xaaOIs\xa8\ +\xcc\xe8\x08gA\x16\x97p\xe9O\x92\xe1\xa8\xe9IW\ +\x8d\xc9rdAZ\xae\xf2\xe7w\x10{\x11\xd3T\xf3\ +\x15h\xb7\x1aGR#\xcd\xb5\xa2jE5\x8a\x84\x96\ +$\xba\x99&\xfd\xf9\xa9\x7f\x8b\xf6\x13\x8cHDf\x0c\ +w-y\x81`(\xc2\x8aK\xb5\xe2\xf0\x12\x11!\x85\ +G0\x8a\x18\x86\xd1*P\x883E\x89\x96\xb3\xa9S\ +L \xc9$\x09\xe7\xef\xafg!\x9a&X$\xf3,\ +DQ\xa4\x19\x8ftD{z\x91\xc3I\x92}|w\ +h\x9a)\xed\x17\x9b\x971\x5cI\xa6\xea\xa9\xa7x\x8d\ +IOh\xb9\x05\xf8`\x13\xf3\x9e\x96%\x10\xb8U\x95\ +\xbc\x9c\x1b\xed\xcb\xc1\xc9\x96\xe0\xe4\x88r.\xa4\x5c\x05\ +\x84#\x1d1\xae\x85\xa7\x11\x13\x8a`\xbdj_ >\ +\xe9\xff\xd1\xbc@S,\xa0\xc9\x08R\x11\xa6\x12\x1c\x91\ +DHPNq\xe4\x05\x10,T0\xa9W\x84\x80\x9f\ +F\x04\x90\xfd\x9d\xf0\x94\xea\xb7\xe3\xf9\xeb\xf0] ?\ +\xd7~\xb8H-\xdc]P\x88AA\x9e\xa6\x9f\x86\xfc\ +\xca\x9c/`\x95h\xc1*\x1c\xe0QT2\xbe\x0a\xe0\ +6\xc2\x12<\x9a{P&D\x82\x91H\xae\xda\xecA\ +\xf5\xff\x92\x8b\x9b\xa2\xc8\xf7\xf5\xbc\x8e~qw1\x16\ +\xa0\x90\x9c\x83T=;\x0e\x11LEt\xee\xd4\xee\x12\ +\x96\x88\x12\xe0\xd1\xb9\xd1\xdb\xcb[\x08\xc4(\xc5,\xba\ +b\x0c&\x03\x19\xb0%\x5c\xc7\x03v\x08\xb3(UQ\ +7\x08\xe6\xbcE\xc0\xa7N9\xa0\xad\x88\xa6L\xb0\x0b\ +d+{(\xb3\xcfq\xf6\xd7 K!urE\xd8\ +\x12\xb2X\x82\xebIy\x81l\x84\xb8f\x92\x0ay\x89\ +,\xdc\xaa\xb0\x98d\xe4:\xb2\xe45\xb8N=\xf7?\ +\xc2\x95!F\x94&\x94F_\x07W\xb8\x9d\x22-\x08\ +\xe3\x17\xb8r\xc4\x09!\x9a\x5cz\xacK\xbdT\x0a*\ +\xc4%\xb0\x8c\x22\xc9%\xd4\xa3\x9fp\xd9\xd7\x01\x9b\xf1\ +$\xf9,`\x95\xc6P7)\xfdu\x80\x85D\xa80\ +\x94\xd6l\xc1a\x85\x82\xd4\xb5\x84+G\xca9\xac^\ +H\x05\x0c\x02\x00C\xa6\xb8\x8a\xebk\xddU\xa9\xcfB\ +\x95+\x0d\xb1&\xa3\xaf\x85\xaa\xc2\x80\x1dS\x0b\xa8B\ +\x0d@0\xb9D\x15\xe6(!\x94^H\x03\xdc5O\ +X\xf0Ox+\xfe\xaf\xa4W\x97\x06\x98VJ\xd3\xdf\ +\x13\xd7u\xb8\xed[\xf6\xedyk5\xe9M&\xad>\ +\xc2XFT\xb1U@\x05\xc0\x08m\xa6\xbe\xf1\xe7\xdd\ +\x18\x81nl\xf8\x14p\xd6\xa9\xc9I\xf6X\xdc\x00#\ +A(\x87\x96g\xecn\xd6\x15\x14#ofV'H\ +b\x0c\x15\xc44d\x9c3@\x05\x08\x9d\xca,&Z\ +O\x88\x18cbJ\xed\x1bn\x09g\xc0\x11\xd4\x0c\x13\ +\xde\xa9]g\xda-\xc6\xc8\xd4\x15\xdc!\x9c6\x5c\xcc\ +\x9cg^\xbb\x10\xc9\x86\xd2\xe4lx2.F\x10\xed\ +J`yQ\xa9\xccl\xfb\xc5,\xfe~\x9f\xe4\xd0a\ +\xb7\xdfL\xe2\xee\xdbL\xed9m\xbdN\xf2\xccO\xa7\ +\x0e\xb2\x84=Ts\x9a\x91\x05\xec\x15\x86\xbbk\x8e=\ +G\x18\x8ao\x8a\xc5\x22\xf8\x11\xd4\xe82\x92\x97\xe0\xc3\ +uL\x09g\xb3~t\x0a\xfe\xac\xc89+\x1d\xdb{\ +\xe2j`A\xe9\xa9%\xe5\x22\x12_\x01\xfb\xd2}~\ +-&\x1f\xca\xb6\xdd72\xf8\xb7v\xdfio\xdf\xfc\ +\x1bu\x80\xea6\ +\x00\x00\x12\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -image/svg+xm\ -l\ -<\ +metadata\x0a id\ +=\x22metadata8\x22>\ +image/svg+xml\ +\ +\ -\x0d\x0a\ -\x00\x00\x0e\x03\ +07463\x22\x0a \ + height=\x2238.208\ +954\x22\x0a \ +x=\x22-365.81845\x22\x0a \ + y=\x22-13\ +0.41977\x22 /><\ +/g>\x0a\ +\ +\x00\x00\x0d\xaa\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\x1d\ +ke-opacity:1;str\ +oke-miterlimit:4\ +;stroke-dasharra\ +y:none;fill-opac\ +ity:1\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x07\x14\ \x00\ -\x00'\x01x\xda\xddZ\xdfo\xe36\x12~_`\xff\ -\x07\x9d\xf6e\x17\xb5(\x0e\x7fS\xb5\xb7@\xbb(\xd0\ -\xd7^\x0f}<(\x92b\xebV\x96\x0cI\x8e\x93\xfe\ -\xf5\x1dJ\x96-Gv\x90\x03\x8c\x83\xcf\xce\x06Yr\ -\x86\x14\xf9q\xe6\x9b\x19\xca\xf3\x9f\x9e\xd7\x85\xf7\x94\xd5\ -M^\x95\x0b\x1f\x08\xf5\xbd\xacL\xaa4/\x97\x0b\xff\ -_\x7f\xfc\x1a\x18\xdfk\xda\xb8L\xe3\xa2*\xb3\x85_\ -V\xfeO_?~\x98\xff#\x08\xbc_\xea,n\xb3\ -\xd4\xdb\xe5\xed\xca\xfb\xad\xfc\xde$\xf1&\xf3>\xaf\xda\ -v\x13\x85\xe1n\xb7#\xf9\xbe\x93T\xf52\xfc\xe2\x05\ -\x01\x0e\xc5\xc1\xcd\xd3\xf2\xe3\x07\xcf\xf3\xf0\xd9e\x13\xa5\ -\xc9\xc2\xdf\x8f\xd9l\xeb\xa2\xd3M\x930+\xb2uV\ -\xb6M\x08\x04B\x7f\xa4\x9f\x1c\xf5\x13\xb7\x82\xfc)K\ -\xaa\xf5\xba*\x9bnh\xd9|\x1ak\xd7\xe9\xe3A\xdd\ --i\xc7;-\xb0\xd6\x86\x94\x85\x8c\x05\xa8\x114/\ -e\x1b?\x07\xaf\xc6\xe2:\xcf\x8de\x94\xd2\x10e#\ -\xd5w\xaaE\x0d\x22\xbb\xc1\xdf\x83\xfe\xd0A\x9aj[\ -'\xd9#\x0e\xccH\x99\xb5\xe1\xb7?\xbe\x1d\x84\x01%\ -i\x9b\x8e\xe7\x19\x80=y\xee\x09\xdae\xbc\xce\x9aM\ -\x9cdM8\xf4\xf7\x13\xec\xf2\xb4]-|a\xfa\xe6\ -*\xcb\x97\xab\xf6\xd8~\xca\xb3\xdd\xcf\xd5\xf3\xc2\xa7\x1e\ -\xf5\x84\xc1\x7f\x84\xba\x0f\xf4\xe2<]\xf8\xb8'\xb6W\ ->\x1a\xce \xdf?+:\x88(\xb1\x8c0\xef\xb3L\ -xfh:\xf3\x18\x05\x1dP\x13P\xf5\xa5\x1f3l\ -3J\xab\xc4-{\xe1\xc7\xdb\xb6Z\xe3\xc9&\xff.\ -\xe2\x97j\xdb\x12\x07\xe3W\xa7\xc4\xcd\x1e\x02\xcf\xdb\xc4K4\x9a\xa2\xaa\x17\xfe\xa7\ -\xc7\xee3H\x1e\xaa:\xcd\xeaA\xa6\xba\xcf\xa9\xacB\ -T\xf3\xf6\xa5\xf7\x96a\xfea\xdbn\xe2\x83\x02\xbd\xa0\ -\xd0\xac\xe2\xb4\xda-|6\x91\xfeUUk<\x0b\xa2\ -\x8d\x12\xd2\xf0\x89<\xc1\x83\x09\xf0H,\x05e\xcdT\ -\x8c\x0fe@4\xe3LL\x07#\xbc[\xe7R\xc1\xb6\ -\xcc[4\xd9\xcd\xf3t\x82m];\x0d\x84=\xc3\xfd\ -/\xb9\x100(5\xabj\xb7\xac\x1d\x92\x8fqq\x84\ -\xf2\xf2d\xbb\xbc\xc4m\x06{\x83\x03\xa3\xf8%\x95\xc1\ -\x08\x812yI\x07w.\xf5%\xa1\xdb\xf7E\xe1:\ -~\xce\xd7\xf9_\x19\xae\x1c\x0e\xa6\xb2\xce\xda8\x8d\xdb\ -xd C\x97\xeeM\x0d\x95\x90\x1a\xa2\xdf\xbf\xfd\xba\ -obG\x92D\x7fV\xf5\xf7\xa1\x8d\x1f\xa7\x12?\xa0\ -\x8d.|\xff\xeb\xb1\x7f\x9e&\x11:3\x1a\xf1\xd7|\ -\x8dG\xee\x88\xe0\x07\xf4\xddyx\x14\x9cj\xb7/\x9b\ -l4o?s\x9d\xf5\xbcp\x96!\xd3d\x9d\xbbQ\ -\xe1?\xdb\xbc(~s\x8f\x19\xb67\x9a6o\x8bl\ -\xd4;\x0f\xf7{\x18\xf6\x18\x8e79\x0f\x07\x10\xfa\xe6\ -\xf25\xa4E\xfc\x90\x15\x0b\xff\x97x\x13{0\x01|\ -YW\xdb\xcd\xbaJq\xbd\x9d\x05\xf9#t\xbb\x8e\xc3\ -\x90\xb6\x8e\xcb\xc6\xe1\xb0\xf0\xbb\xff\x16\x18I>\xd3Y\ -\x00\x94\x0a\xc2\x15c_\x0e\x87\xb0\xc9'PP\x22\xa8\xe0\x82\ -_\x84B\xdf\x1d\x14B\x13M\xcd\x94)\x0c\x22d\xb5\ -\xbc\xec \xf2\xfe\xa0\x90H\xda\x0c^C\x01\x820\xa9\ -(\xbc\xc1\x15\xf7\x87\x05\x97\x04$\xc8\xd7XHB\xad\ -B{1\x97\xc9\x82\xdd\x1fqb\x04Wf\xca\x16\xc4\ -\xa0Q\x08\x0d\x17\xb1\xb0\xf7\x17N\x11\x0a\xab&1\x04\ -\x80\x08a\x81]6\x0b\xb8?(,\xc1\xc3\xb7\x13\xe2\ -\xa4\x84))\xa9\xbc\x0c\xc5\x1dF\x11t\x11\xce\xec\x84\ -.8\xa0\x8f\x18q\x1a^^\x81A\xef\x8f;\x99+\ -\x85\xa7`\xa0\xef`\x11\xf1\x86\x8f\xdc!a`\xa2m\ -\x04\x9b8\x09\xeaj`\x9a\xbd\x81\xc5\x1d&\xe0\x96P\ -\x0c\xaag\xf2\x0b\x01R)\xfb\x06\x18\xff7)\xb8[\ -\xf3x\x1b\x87\x1b\x9e\xaa\xc4\x89\xdb\xaa\x0e\x92m\xfd\x14\ -\xb7\xdb\x1aw@\xcf\xedX\xb0S\x88\xdc\x0d\x89\xa7\x08\ -\x95FK+g\x08#\x96tJ2O#\xd1R\x8a\ -\x5c;\x93\x84kk\xde\x05\xd1\xfb1\xf9\xef\x11\xe9\x1a\ -E\x8e\x7f\x221\xf4\xa5q\xb3\x8a\xeb:~\x89\xca\xaa\ -\xcc\xfe\x07\xd8\xf1\x09v\x80I\x9b\xb1\x94\x09\x87\x9d&\ -\x16\xa4\x97x\x94pJ5\x88Y\x805\x0fc\xca\x13\ -\x0eM\x006\x0b4\x91 \xc4\xa4\xe3\xba\xf0\xba\xebY\ -cp-\xe2\xc6lON\xf0c\xee.\xc7`\xde\x8b\ -\xf8\x01\xe2\xc7\x11\x1cN(\xc3t\x87\xcf\x02\xac\x93\x04\ -\xb5\xd7\x06\x07\xeb\x10\xcb5\xd37\x06\x8e\x9e\x1a\x97\x8b\ -u\x14W;\xeb\x92C\x86L\xe6\x01\x1e\xae\xd0F\xa0\ -qq\x82\x05\x15\x5c\xddt\x84\xb2\xa0\xb4\xba1t\xec\ -\x19\xda\xe2h-R:t\xb0\xa2\x12\xd2z\xd0]\xb7\ -p4\xfd\x19\x10k\xb5\xbd>8\xee\x8a\x0f\xf8m\x81\ -\xa3\xe0\x9c_I\xad\xadv~\xc5\x0d\xd1JH/@\ -\x90\x941\xdc\xce\x14a\x8c\x9a\xab\xfb\x15\x1a\xa8e\xb7\ -f9jJ\xdaH\xd4\x0c\xa4\xb1l\xd6_\xd1`\xc4\ -\xf3\x02p\xefX\xa4\xe60\x0b\x80(\xad\xafo:\x5c\ -\x0a\x06\xe6\xc6\xd0\x99\xfa\x15f\x95ZX\x0d.\x1d\xc0\ -\xf4\x89S\xad=L\x028\xa3\x02\xad\x09\x08\xc7\x5c\xe1\ -\xea\xe0\x00`\x96qc\xa9\x92\x9e\xba\x95`D\x1a\xe4\ -\x9cYw\xe3K5\x17^`\x89S\x95\xcc\x112\x97\ -\xea\xea\x84\xac-\x15\xf8\xb8\x1b3\x1c=\x8d\xe5\xc2\x9d\ -\xa3\xbb\xcc\xeb9GR-<\x8c`V\xf2\xce\xa9\x90\ - \xa8\xba>\xe9p\xaa4h{c\xe8\xe8s\x99\xa2\ -\x00\xa5L\xc7\xc8\x94\x00r\x01\xba\x15\x00P\xa3\x91\x90\ -\x85\xb9>6Zpj\x04\xbd1\xb7:-&zB\ -\xc6\x92\x0ec8\xeb\xb2@\xf7\xfa\xc0h\xcf`\x12+\ -\x95\x9e1\x02Z\xf2\xabC\x83\xd5\x8dd\x94\xdf\x1a\xe3\ -\x04\xd3h\xc5\x191\x18\xad\x94\x8bV\x1c\x88\xd0XP\ -`aa@a\xf4r\x05\x84E\xbc\xae\x8e\x0f\xa7X\ -\x1d[v{\xf8\x9c\x96\xeb=B\x16\x8b(\xdd\xc7s\ -$\x1eL\xff\x90\x96\x1d=+\x85\xa8a\xda\xc3@\xdc\ -:B\xf3py\xf8\x86\x02\xc2q\xf6\x15vW\xe5\x9e\ -\x5cF\xa0\x19\x08\x8b\x05\xa4\xe4o\xae\x96\x13#\xb5@\ -\xca\x91\x93u\xd5\xd5\xb6L\xdf_d\xfb'/\xee\xdd\ -J\x05\x8c\xdfl\x0f\xdfD\x12\x8e\xe0\xd0h\x8f\x92\xc3\ -\x97\x92\xa6\x22wO\xe3JVM\xc7!\xb7\x7f\xd7\x8e\ -\xa9\xaa\x1d\x97\x80u\xd7M\xc0(-\x8f\xdf\xfc\xe8\xc0\ -\x9b\xbb/d\xe0\xdf\xbf\x01t\xb6\x1fy\ -\x00\x00\x07t\ +\x00& x\xda\xddZ[o\xa3H\x16~\xcf\xaf`\ +\xe8\x97n\x8d)\xea\xd4\xbdX;#\xcd\xb4F\x9a\xd7\ +\xb9h\x1fW\x04\x88\xcd6\x06\x0bp\x9c\xf4\xaf\x9fS\ +\xd8\xe0\x0ba\x95\x95\xbc\x92\xd78QRuN]\xce\ +W\xe7Zx\xfe\xd3\xeb\xba\xf0^\xb2\xba\xc9\xabr\xe1\ +\x03\xa1\xbe\x97\x95I\x95\xe6\xe5r\xe1\xff\xf5\xe7\xaf\x81\ +\xf1\xbd\xa6\x8d\xcb4.\xaa2[\xf8e\xe5\xff\xf4\xf8\ +0\xff!\x08\xbc_\xea,n\xb3\xd4\xdb\xe5\xed\xca\xfb\ +\xad\xfc\xd6$\xf1&\xf3>\xaf\xdav\x13\x85\xe1n\xb7\ +#\xf9\xa1\x93T\xf52\xfc\xe2\x05\xc1\xe3\xc3\xc3\xbcy\ +Y>x\x9e\x87\xeb\x96M\x94&\x0b\xff0`\xb3\xad\ +\x8b\x8e1M\xc2\xac\xc8\xd6Y\xd96!\x10\x08\xfd#\ +{rdO\xdc\xea\xf9K\x96T\xebuU6\xdd\xc8\ +\xb2\xf9t\xc2\x5c\xa7\xcf\x03\xb7\xdb\xcd\x8ewL`\xad\ +\x0d)\x0b\x19\x0b\x90#h\xde\xca6~\x0d\xce\x87\xe2\ +\x1e\xdf\x1b\xca(\xa5!\xd2\x8e\x9c\x1f\xe3\x8a\x1a\x04t\ +\x83\xbf\x03{\xdfA\x9aj['\xd93\x8e\xcbH\x99\ +\xb5\xe1\xd7?\xbf\x0e\xc4\x80\x92\xb4MO\xa6\xe9\xf1<\ +[\xf5\x0c\xe42^g\xcd&N\xb2&\xec\xfb\xbb\xf1\ +\xbb\xfa\xfd\xeb\xaf\xfb\x16\xb6\x93$\xfagU\x7f;4\ +\xf1q\x0c\xf1\x13j\xe2\xc2\xf7\x1f\x87\xeey\x9aDh\ +\xa9\xa8\xa9\x8f\xf9\x1a\x0f\xd8\x19\xf9\x8fh\x99\xf3\xf0H\ +8cn\xdf6\xd9q\xd2\xfd\xb4u\xb67\xf9w\xfd\ +^\x9a\xacs7(\xfc\xa3\xcd\x8b\xe27\xb7\xc8A\xac\ +\x93I\xf3\xb6\xc8\x8e\x9d\xf3\xf0\xb0\xfb\x83l\xe1\x89p\ +\xf3\xb0\x17\xbdk-/@,\xe2\xa7\xacX\xf8\xbf\xc4\ +\x9b\xd8\x83K\x84\x97u\xb5\xdd\xac\xab\x147\xda\xe9\x8a\ +\x7f\xc4\xb3k\xf7\x03\xda:.\x1b'\xfc\xc2\xef\xfe-\ +0&|\xa6\xb3\x00(\x15\x84+\xc6\xbe\xf4\xa8/{\ +1\xdc\x1c\xa7\x8aw6\x09\x82X\xe7\xaf\x9f)1J\ +\x81\xe2\x92\xcf\xa8\xfb\x1c\x9b\x8c(\xa9\xb5\xd1v\x06\x5c\ +\x13@C\x80/\xc3DM\xfbV\xe0\x8e\x9f\x11\xbd\xe8\ +`\xee\xffh\xda\xba\xfa\x96E\x9fD\xea>\xfe\xf1\xd4\ +\xf3:)N\xce\xa7v\x96.\xfdc\x8735\x14\xc3\ +\x10\x0e\x83vv\xfd\xa8\xaeL\x10)\xa45\xe6\xa4\xdf\ +\xc9\xb5\x89\xdb\x15\xe7\x5c\x9dt\xbf\xb7'\xd7\x08\x0e\x0e\ +$\x82}\xb3\xde\x16Y\x94\xbdde\x95\xa6\xc3\xa6m\ +\xf7\x1c\x9a{c\x8b`\xf3\xdaw\x14y\x99\xe1qE\ +O\xdb\xb6=\xed\xfbw\x95\x97\x11\xeaRV\xf7\xbd\xc3\ +b'\x0a\xf5Q\x08\x80\x13\xe0\xf6\x12\x02D\x9f\x1a*\ +(\x9b\x80 \xe0w\x05\x02S\xa8\xce\xa0.@\x10\x9c\ +XaQ\x1b\xa7@\xb8/M\xe0\xd6Y\x1f\xbf\x04\x81\ +\x12A\x05\x17|\x0a\x04}W \x08M45#\x8f\ +`\x10\x1a\xab\xe5\xa49\xc8\xfb\x02A\xa2Kfp\x01\ +\x02\x08\xc2\xa4\xa20\xed\x13\xee\x0b\x05.\x09H\x90\x17\ +(HB\xadB\x151\x93N\x81\xdd\x97k\xc4\x98\xac\ +\xcc\xc8+\x10\x83\x8a 4L\xa1`\xef+H\x22\x08\ +V]\xc6\x07\x00\x22\x84\x056\xa9\x0ap_ X\x82\ +'n/]#%LII\xe5$\x08w\x16!\xd0\ + 8\xb3\x97n\x81\x03Z\x84\x11g\x91\xe3\x02\x06z\ +_\xde\x91\xb9:u\x04\x03\x1a\x0a&\xff\xd3\x16qg\ +\x8e\x01\xf3d#\xd8\xa5I \xa7\x06\xa6\xd94\x0aw\ +\x96>[B1T\x8e\xf3\x05\x01R);\x0d\xc3\xff\ +I\x02\xedv|\x22\xc3p\xdfR\x958m[\xd5A\ +\xb2\xad_\xe2v[\xe3\xfe\xe9;\xd2\x0av\x06\x8e\xbb\ +\xb6\xf0\x14\xa1\xd2hi\xe5\x0c\xf1\xc3\x1aLI\xe6i\ +t\xa5\x94\xa27\x9dI\xc2\xb55\x1fA\xe7\xe3p\xfc\ +\xf7`t\x8d\x22\xc7?\x91\xe8\xfb\xd2\xb8Y\xc5u\x1d\ +\xbfEeUf\xffk\xd8\xf8%l\x80\xf9\x97\xb1\x94\ +\x09\x07\x9b&\x16\xa4\x97x\x94pJ5\x88Y\x80\xc5\ +\x0ac\xca\x13\x0eH\x006\x0b4\x91 \xc4\xa8\xe3\xaa\ +\xc8\xba[Qcp+\xe2\x964N^B\xc7\xdcE\ +\x8b\xc1\xec\x15\xa1\x03\x84\x8e#.\x9cP\x86\x09\x0c\x9f\ +\x05X\xe1\x08j\xaf\x8c\x0bV\x11\x96k\xa6o\x09\x17\ +=R)\x17\xc9(\xeet\xd6%z\x0c\x9d\x96\x07x\ +\xa6B\x1b\x81*\xc5\x09\x96Bpm\x85\x11\xca\x82\xd2\ +\xea\x96\x80\xb1c\x17\xc5QG\xa4t\xc0`1$\xa4\ +\xf5\xa0\xbb\x12\xe1\xa8\xec3 \xd6j{u\x5c\xdc\xcd\ +\x1b\xf0\x1b\xc2E\xc1;\x86$\xb5\xb6\xda\x19\x127D\ ++!\xbd\x00\xf1Q\xc6p;S\x841j\xaemH\ +\xa8\x95\x96\xdd\x94\xbe\xa8\x91oF\x7f\xcc@\x1a\xcbf\ +\xfb{\x14\x8ci^\x00\xee}\x86\xd4\x1cf\x01\x10\xa5\ +\xf5\xd5\x15\x86K\xc1\xc0\xdc\x120#C\xc2,Q\x0b\ +\xab\xc1\xc5z\xcc\x8a8\xd5\xda\xc3\x08\xcf\x19\x15\xa8C\ +@8&\x02\xd7\xc6\x05\x003\x88[J\x81\xf4\xc8\x8e\ +\x04#\xd2\xa0\x7f\x99u\x17\xb0Ts\xe1\x05\x968N\ +\xc9\x9c\xdf\xe5R]\xdb\xefjK\x05\xaevK\xea\xa2\ +G\x81Z\xb8\xe3s7m{\xff\x22\xa9\x16\x1e\xc6(\ ++ygE\xe8\x0d\xa8\xba\xba\x83\xe1Ti\xd0\xf6\x96\ +\x80\xd1\xef$\x7f\x02\x942\x9d\xe3\xa5\x04\xd0\xf0\xd1\x8e\ +\x00\x80\x1a\x8d~W\x98\xab\xc3\xa2\x05\xc7\xaa\x9e\xde\x92\ +\x1d\x9d\x95\x05{\xbf\x8b5\x19\x06h\xd6%v\xee\x12\ +\xdfh\xcf`N*\x95\x9e1\x02Z\xf2k\xa3\x82U\ +\x8ad\x94\xdf\x94w\x09F\xf1\x883b0\x1e)\x17\ +\x8f8\x10\xa1\xb12\xc0\x0a\xc1\x80\xc2\xf8\xe4*\x01\x8b\ +P]\x1b\x1aN\xb1\xb6\xb5\xec\xc6\xa09\xab\xb4\xf7\xe0\ +X,\x84\xf4>X\xa3\x93\xc1\x8c\x0e\xbd\xaf\xf3\xc2J\ +!`\x98\xce0\x10\xb7\x0d\xce<\x5c\xf6\xef\xfc\x11\x89\ +\xf7\xde\x12w\x15\xea\xd9\x1d\x02\x9e\xbe\xb0X\x00J\xfe\ +\x1f\xb7\xca\x89\x91Z\xa0\x7f\x91\xa3M\xd5\xd5\xb6L?\ +^ \xfb\xa7/\xc6\xdd>\x05\x9c\xbc@\xee\xbf\xba#\ +\x9c/CM\x1d\x08\xc3\xb7xF\x14w\xb1\xe2\xeaM\ +MO\x02\xea\xfee6f\x9e\xf6\xa4\x84\xab\xbb^\x02\ +Fi9|\x83\xc2a6w_nx|\xf8\x1b\x9b\ +j\x14\x0c\ +\x00\x00\x078\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\ + \x0a \x0a\ +\x0a\ +\x00\x00\x08\xce\ +\x00\ +\x00K\x0ax\xda\xed\x5c[o\xe36\x16~\x9f_!\ +h^&\xd8\x88\xe6\xfd\xe2\xc6)v1(\xba@\xfb\ +\xb2\xdbv/o\x8a\xc48jd\xc9\x90\xe4x2\xbf\ +~\x0f\xe5\xc8\x96h\xc7\xce\x0c\xfa0\xd8\xd23\x0e\xec\ +\xc3\xdb\xe1\xc7s\xe3!\xad\x9b\xef?\xad\xca\xe8\xc96\ +mQW\x8b\x98 \x1cG\xb6\xca\xea\xbc\xa8\x96\x8b\xf8\ +\xd7_~Ht\x1c\xb5]Z\xe5iYWv\x11W\ +u\xfc\xfd\xed\xbb\x9b\xf6i\xf9.\x8a\xa2m\x91w\x0f\ +\x8b\x98\xeb\xd8}{\xb0\xc5\xf2\xa1\xdb\x7f}*\xec\xf6\ +o\xf5\xa7E\x8c#\x1cq\x1d\xbd\x90\x8b|\x11Cs\ +\xba\xabs\x18\x99\xecJ\xab\xc76K\xd7v>*\xa1\ +\x88D\x1fL&sN,'\xf8:\xa2\x98\xd2\x04\xab\ +\x84\xf0\xab\xbeQ\x0b\xfc\xae\xe1=\xcf\xeb\xacJW\xc0\ +fVn\xda\xce60\x0b\x04c\xf5\x95`\xa2\xf3v\ +\x9dfP\xbanlk\x9b';\xd0\xabv>\x8c\xbb\ +\x88\x1f\xban=\x9f\xcd\xb6\xdb-\x1a\x88\xa8n\x963\ +\xd7q\xdf\xbe\x9d\x0d\xf4Q\xfb\x81\x85}\xfb\x81\x80\xda\ +z\xd3d\xf6\x1e\xba\xb0\xa8\xb2\xdd\xec\xe3/\x1f\xf7\x85\ +\x09Fy\x97\x1f\xba\x99\x8c\xbee\xfd\xb8\x14c<\x1b\ +M\xc2\x0d\xf6\xb4|c\xcd&\xbf?U\x93\x18cf\ +\x98\xce\x00F\xa8\x91\xb4\xcfU\x97~J\xaa\xf6\xfd\xa8\ +i\x96\xed[f\x8dM\xbb\xe2\xc9f\xf5jUW\xed\ +\x0e\x8eI\xe5\xfcPy\xbdi\xca\xbeF\x9e\xcdli\ +W\xb6\xea\xda\x19,\xef,\xbe\xbdY\xd9.\xcd\xd3.\ +u\x0dw\x920P\x08\x85b\xe0e\xfe\x8f\x8f?\xdc\ +\xded\xd9\xfc_u\xf3\xb8\xab\xe6^\xae$\xbd\xab7\ + ]P/\xcf\xe6\x80\xe7*\xedn\x8bU\xba\xb4n\ +\xce\x7f\x01>nf\x87\x02W\xa7{^\xdbC\x17\xbb\ +N`\xe5\xfb\xf58\xc9n\x9e\xad\x0a\xd7h\xf6\xcf\xae\ +(\xcb\xbf\xbb\xbe\xe3h\xb6\xeb\xab\xe8J\xeb>\xcf^\ +x\x83O{vg\xc3,\xa0\xaa\xbdo\x0f\xb3s\xdf\ +\x08v\x13O\x9bG\xdb\x0c\xcc\xec\x85\xbc\xed\xea\xec\xd1\ +U\xfck\xd3\xd4[\xf2\x13hZ\xd3\xc5C\xb5\xba)\ +\x00\xbcE\x9cn\xbazOl\xec\xfd\x7f@\xa5@Q\ +G\x94\x7fO)\xaf\xf6\xd8v\xcf%L\xbd\x06\xe5\xba\ +/\xeb\xed\xfc\xa9h\x8b\xbb\xd2\xc6G\x8c\x15m\xcf\xda\ +\x22\xee\x9a\x8d\x05\xfe\xd7i\xf7p\x80\xd2\xf5\xef(\x5c\ +\x18\x1d\x1f\xc8@\xfd9\x02>\xae\xe1\x1d\xfd\x14\x09\xf8\ +\x94\x88\xfecB(\x12#\xf2\x8e:T\xfd\x1c\x8d:\ +ya\xf1\x1e\x16 i6\xa5\x9d\xdb'[\xd5y\xfe\ +]\xdb5\xf5\xa3\x9d\xbf\xc7\xfd\xeb\xe5k\xd2[\xa09\ +\xd8\xadu7\xea\xa4k\xd2\xaau\x92\x00\xa6&KK\ +\xfb\x01#}\xb5\xa3\x96ig?\xec\xd8\xb9\xea\x17w\ +\xb6[\x1b\xf8\xe0V\xeb\xf6foL\x9c\xc2\xe7\xce\x88\ +\xed\xfa]\x834duY7\x8b\xf8\xfd}\xffz\x19\ +\xf0\xaenr\xdb\x0cE\xb2\x7fM\x8aj\xb0\x1a W\ +`\xca^\xc8\xf5\xdd\xef6\xeb\xba\xba\xb4\xc0\x91\x93E\ +2\xac\xdd\xb2\x81\xf9\x9c\xa2o\x8a\xdc\x9e*\xd8\xaf\x98\ +co?\xd0\xc9\xd2\xf6!\xcd\xeb\xed\x22\xa6~\xe1\xb6\ +\xa8\xa0 y1\xe6\x94\xef\x17\xd5\xaf1\x18x\x82\x85\ +\x8a\x0fR\xbe\x07jh\xd7>\xd4[7\x13X\xc6\xb4\ +l\xad\xdf\xdb\xe7\xba\x86\x85\xd1\x88jB\x85_\x98\x81\ +\xc3 \x1c1l8\xe3G\x8507f\x10\xc6L)\ +\xfe\x0a\x93\xd0^\xbcV\x06\xcd\x93\xd7&\xb7J?\x15\ +\xab\xe2\xb3\xcd\x0f\xebt\x18w\xd34\xa0\x8aI\x99>\ +[X\xe4%'\xe2\x08b7\xe9\xb30\xf7\x02\xf4`\ +3\x10\xb6\xbb:m\xf2\x13\xcb\x94\xdb\xf6q\x10\xa4\x9c\ +\xb8\x7f\xbd\x88.\x0fX\xef\x86\xde\x93\x06\xa2\xe0|/\ +\xfe#\xe1?H|B\x90\x90F\x13\xc2\xae\xce\xa83\ +\xc3G\xea|\x8d\xa3\x1f\x9d\xf7\xfe\xcd\xfd\xf9\x11<\xf9\ +\x7fGU\x0e\x00\xd5U\x05\x22]7\x09@\xf5\x94v\ +\x9b\xc6\x1e\xa6\xe7\xa9\xf5\xbc\x82Hb\xa7z\xcb\xd1D\ +N\xb2\x0d\x8a\x8d\xa5\xa2\x9a]'T \xad\x155\xe6\ +*\x9e\xce\x9d\xc0\xdc]o\xb6,\x8buk\xdf\x9d\x18\ +\xf1=\xcdD\x9a\xe2\xefz\xab\xf2\xa2%s2\x98\x14\ +\xc7\xcf\xd4\x9e\x08$\x98\xc1b \x96\x05L.]\xcf\ +\x9bzS\xe5c\xe2\xefuQM\xa9\xe0@lS\x82\ + us>\xd0\xf2\x14d\xa2i\xd2\xe7\xc9H\x076\ +\xd6i\x01\xb2\xd5\x9b\x8a\xf9\xce\x18\xb5\xd1\xaeR\xe4\x18\ +\x9eL\xd7\xad\x93\xe64\x91T\xee\xe9Ne\xa8S'\ +\xca8;PA\xd8AU\xa4\x14L\x1c|\x85\xd3.\ +$\x157\x5c\xab\x03\xd5\xd9&\xa4\x18\x06\xc5\xfe\xf3A\ +\xc9\x122\x81\x92\x81\xb30\x84Q1\x81R#\x22\x95\ +$R\x07,\xcf\x89e\xa2},\x05U\x1a\xab\x09\x96\ +\x04\xbc>\x17\xf0?`y\x06K\x95\xa8)\x96\x141\ +0\xd1Zy*\x0e\xb6\x9f\x19\xc9\x03\x96g\xb0\x14\x89\ +\xf1\xcd\xa5\x11Th2\x95K\x00\xc8(FT\xc0\xf2\ +\x9c\xbd\x14\x09\xf5\x95\x5crm\xf4\xd4`\x12\x86\x88\xe2\ +\xd8\xc8\x00\xe6Y?\x9e\xe0)\x98\x0caE9\xd1\xbe\ +drJ4#\x01\xcc3`\x1a_0\x05\xe2Fh\ +\xc1\x82\xf7\xf9b,I\xc2|\xef\xc3!\x96\xf4\xb1\xe4\ +HcBqP\xf2sXR\xcf\x93\x83\xf7Q\x04S\ +\xc6\xa7X\x0a\x84\x05\x19\x01\x1c\xa0<\x11\x14\xe1D\xf8\ +\xf6\x92\x18&\xf4\x14K\x89`\x9f\x0c\xd1R\xf0\xe4g\ +\xed%\xf3\xc3\x22\x81\x0ceT\x1d\x85E\x82Kc\x82\ +d\x9e\xf5\xe4\xd8\xf3>\xa0\xe5\x5c*m&X\x0a\xd8\ +F2\xf0\xef&`y\x01K\x1fM\x81$\xc5\x8ck\ +oWN\x01\xa2\x10c^F\xd3\xdb\x97K\x08\xd9\xa5\ +\xd1\xfa\xc8\x9b\x83t\xea\x00\xe7E8\x8f\xb6\x93Ja\ +M\xa6\xbaN\x14R\x9c\x0a\x12\xe0\xbc\x08\xa7\x17\x1fq\ +\xc41H\xe2\x14M\x89\x98\x14*8\xa1\x8b`z\x81\ +;G\x942\xc1\xbd\xdd9H,g\xe3\xc4\xdc\x1f\x00\ +'S\x99N\xef\xbe\x00Nb8\xe5\xdfv\x96=\x99\ +\xe6\xd9\x0dbL\x19\xd8\x89O\xd0\xa4\xb0i\x17'b\ +wA\x8d\xe6\xd8G\x13\xb6Q\x8ap\xf2\xe7\x83\x93\xc1\ +\xaer\x9akw\x197\x8a\xb5\x9a\x0a'\xa5\x88h#\ +M\x80\xf3R\xb2\xdd\x0b\x92\x00N\xa6\xb5\xe6\xc6\x97N\ +c\x14\x15\x22\xc0y!\xdf\xee\xb9u\x02j\xcdA\x10\ +\x85\x0f'\xa8:e2\xc0y!\xe5\xeey\x22\x83\x8c\ +\xc0X\x1b\x0fN\x08\xec5g8H\xe7\xc5\xac\xfb\xb1\ +\xf1\xe4\xc6\x88\xf1I\xb0\xc3S!\x8c\x01:\x1e\xf0\xbc\ +\x94x\xf7\xd5\x9d\x22E\xa4\xf1\x22%J\x10DDR\ +\xab\x80\xe7\x85\xdc{\xc2\xa7p\xbad\x92\xe4F\x04g\ +\xf4U\xe9woS\xe4\xce\xd3\x84\x91\xcc\x83S#\xa1\ +$3A:/e\xe0\xbd\x0c\x88\x81\xc0S\xc3\xf6\x5c\ +\xfapjwjI\x03\x9c\x97\xb2\xf0\xbe\xb63\xa4!\ +&\xf2\xf2\xf0\x14#\x81\xc1\x08\x04\ +\x8c\x5c\x13 r\xc6\x8cd\x111\xc0;\xa5\x92]\x8f\ +\x9f\xba0,\x06\x19\x1f$\x8d\x9e\x97T\xd5\xb9u\x0f\ +\xbci\x17q\x96e=\xa4\xdf\xc2\xb4\x7f\x8e\xa8@\xee\ +7=\x86\x5c\xbb\xab\x95\x12\xf6\xce\xc4M\x91\xbb\xa7_\ +\x98\xeb\xde\xd3\xbau:1U\x8a\xf1\xe5\xa9\xee\x9f>\ +\xd1\xbf\xdb\xa7\xe5\xed\xbb\xff\x01\xc1\x93\xc2^\ +\x00\x00\x0e\x11\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ + 192 192\x22\x0a sod\ +ipodi:docname=\x22d\ +elete2.svg\x22\x0a i\ +nkscape:version=\ +\x220.92.4 (unknown\ +)\x22>\x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \ -\x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08\xd9\ +1\x22\x0a d=\x22M\ + 144.62039,46.80\ +4335 46.040128,1\ +46.05858\x22\x0a \ + id=\x22path812-3\ +\x22\x0a inksc\ +ape:connector-cu\ +rvature=\x220\x22 />\x0a \ + \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x08\xfc\ \x00\ -\x00Lzx\xda\xed\x5c[o\xdb8\x16~/\xd0\xff\ - \xa8/\x0d6\xa2y\xbfx\xe2\x0cvQ\x0cf\x80\ -\x99\x97\xdd\xd9\xeb\x9b\x221\x8e&\xb2dHr\xdc\xf4\ -\xd7\xef\xa1\x1c\xdb2\xe5\xd4jw\x1e\x8a\x1d\xbau`\ -\x1fR\xbc|l`?\x8aC\ -\x03{\x02j\xebM\x93\xd9{h\xc3\xa2\xcav\xb3\x0f\ -\xbf~8\x14&\x18\xe5]>h\xe7\xa4\xff-\xeb{\ -\xa6\x18\xe3\xd9p\x22\xae\xbb\xa7\xe5\xd4\xaaM~\x7f\xae\ -*1\xc6\xcc0\x9d\x01\x9aP#i\x9f\xab.\xfd\x98\ -T\xed\xbb\xe1\xb3Yvx4kl\xda\x15O6\xab\ -W\xab\xbajw\x98\x9c\xd6\xce\x8f\xb5\xd7\x9b\xa6\xec\xab\ -\xe4\xd9\xcc\x96ve\xab\xae\x9d\xc1B\xcf\xe2\xdb\x9b\x95\ -\xed\xd2<\xed\xd2\xfe\xc9\x1dW\xecI\x84B9\x0cg\ -\xfe\xd7\x0f?\xdc\xded\xd9\xfc\x9fu\xf3\xf8R\xcf\xbd\ -\x5cQzWo\x80\xd9\xa0b\x9e\xcd\x01\xd6U\xda\xdd\ -\x16\xabti\xdd\xc4\xff\x04#\xb9\x99\x1d\x0b\x5c\x9d\xee\ -ym\x07m\xecZ\x01\x1e\xe8\xd7\xe5\xec\x88\xf3lU\ -\xb8\xa7f\x7f\xeb\x8a\xb2\xfc\xc95\x1eG\xb3]cE\ -WZ\xf7y\xf62:\xf8t\x18\xf0l?\x0f\xa8j\ -\xef\xdb\xc1\x04\xddW\x82\xdd\xe4\xd3\xe6\xd16\x87\xe1\x1c\ -X\xbe\xed\xea\xec\xd1\xd5\xfcs\xd3\xd4[\xf23\x88_\ -\xd3\xc5\x87zuS\x00\x84\x8b8\xddt\xf5\x91\xda\xd8\ -\xfb\x7f\x83\x94\x81\xfc\x0eI\xff\xf2H\xaf\xb7\xdav\xcf\ -% P\x83\xbc\xdd\x97\xf5v\xfeT\xb4\xc5]i\xe3\ -\xf1\xf0\x8a\xb6\x1f\xe0\x22\xee\x9a\x8d\x85i\xac\xd3\xeea\ -\x80\xa9\xeb\xc2\x91\xb80:\x1e\xd0\x81\xfcK\x04\x83\xb9\ -\x86w\xf4s$\xe0S\x22\xfa\x8f\x09\xa1H\x0c\xc8;\ -\xea\xbe\xea\xa7h\xd8\xca\xcb0\xefa-\x92fS\xda\ -\xb9}\xb2U\x9d\xe7\xdf\xb5]S?\xda\xf9;\xdc\xbf\ -^\xbe&\xbdv\x9a\x83V[w\xc3V\xba&\xadZ\ -\xc7\x16\xa0\x84\xb2\xb4\xb4\xef1\xd2W;j\x99v\xf6\ -\xfdn@W\xfdB\xcfv\xcb\x04\x1f\xdc\xc2\xdd\xde\x1c\ -t\x8c\xd3\x02\xb9\xd3o/\x0d\xaf\x815\xb2\xba\xac\x9b\ -E\xfc\xee\xbe\x7f\xed\xbb\xbc\xab\x9b\xdc6\xfb2\xd9\xbf\ -N\xcbj\xd0&\xc0f\xa0\xe5\xf6\xf4\xfa\xee7\x9bu\ -]]Z\x18\x95\xe3MrX\xc6e\x03\xb3:[\xb0\ -)r{\xb6\xe4\xb0xn\x90\x87\xce\xce\x17\xb7\x0fi\ -^o\x171\x1d\x95n\x8b\x0aJ\x92\x17\x95O\xf9q\ -\x81\xfd*{3@\xb0P\xf1\x80\xf7\x0f\x98\x1d\x9el\ -\x1f\xea\xad\x9b\x10\xaciZ\xb6v\xd4\xe0\xa7\xba\x86U\ -\xd2\x88jB\xc5\xa84\x03\xcbB8b\xd8p\xc6\xc7\ -\xa50Gf\x10\xc6L)\xfe\xdaP\xa1\x05\xf1j!\ -4\x90\xbc:\xc9U\xfa\xb1X\x15\x9fl>X\xb6c\ -\xdf\x9b\xa6\x011M\xca\xf4\xd9\xc2\xaa/9\x11c\xb8\ -\xdd\xe4?\x0fy\xcfT\x0f6\x03\x0e\xbc\xab\xd3&?\ -\xb7h\xb9m\x1f\xf7\xcc\x95\x13\xf7\xafg\xdc\xe5\x00\xf7\ -]\xf7G\xda\x9e*8?\xca\xc5@*\x8e\xa2\x90\x10\ -$\xa4\xd1\x84\xb0\xab\xcf\xc9:\xc3cY\xbf\xc6\xd1\x8f\ -\xce\xe6\xff\xc3\xfd\xf9\x11\xec\xff\x7f\x86u\x8eH\xd5U\ -\x05\xac^7\x09`\xf6\x94v\x9b\xc6\x0ef\xe9\x09\xfd\ -\xbc\x02/d'\x97\xcb\xe1t\xce\x8e\x1d\xe4\x1eKE\ -5\xbbN\xa8@Z+j\xccU\xecA@\x00\x02\xd7\ -\x9e-\xcbb\xddZ_!\xf6\x9d\xbe\xa3\x99HS\xfc\ -]\xafv^\xc4gN\xf6:\xc7\x0d\xe9T\xe1\x08$\ -\x98\xc1bO,\x0b\x98`\xba\x9e7\xf5\xa6\xca\x87\xc4\ -\xdf\xea\xa2:\xa5\x82\xb1\xb1M\x09l\xd5\xcd\xf9\x9e\x96\ -\xa7\xc0\x1fM\x93>\x9f\xf4t\x1c\xc6:-\x80\xd1z\ -=2\xdf)\xab6\xdaU\x8a\xdc\x80O'\xec\x96K\ -s\x9aH*\x8f\x05N\x8c\xa8\x931\xca8\x1b\x90\x81\ -\xfdA|\xa4\x14L\x0c\xcc\x8a\x939$\x157\x5c\xab\ -\x01\xd9i/\xa4\x18\x06\x99\xff#\x02\xca\x12r\x0a(\ -\x03\xa3b\x08\xa3\xe2\x14P\x8d\x88T\x92H\x1d\x10\xbd\ -\xc4\xa2\x89\x1e!*\xa8\xd2X\x9d\x22J\xc0M\xe0\x02\ -\xfe\x07D/ \xaa\x12\xe5!J\x11\x03\xe5\xad\x95/\ -\xf4`\x18\x98\x91< z\x01Q\x91\x98\x91\x1a5\x82\ -\x0aM<\x1e\x05\x90\x8cbD\x05D/\xe9Q\x91\xd0\ -\x91\xd8K\xae\x8d\xf6\x14)a\x88(\x8e\x8d\x0c\x90^\ -\xb4\xf5\x09\xf6 e\x08+\xca\x89\x1eq)\xa7D3\ -\x12 \xbd\x00\xa9\x191\xa9@\xdc\x08-X\xb0M_\ -\x87(I\xd8\xc86qp=G\x88r\xa41\xa18\ -\x88\xfd%D\xa9o\xed\xc16)\x82)\xe3\x1e\xa2\x02\ -aA\x868\x07@\xcf\xbbO8\x11#=J\x0c\x13\ -\xdaCT\x22\x88\xb7\xc1\xb1\x0a\xd6\xfe\xa2\x1ee#\x07\ -J C\x19Uc\x07JpiL\xe0\xd2\x8b\xd6\x1e\ -\xfb\xb6\x09\xe4\x9eK\xa5\xcd)\xa2\x02\x02Q\x06N\x80\ -\x09\x88N@t\x84\xa9@\x92b\xc6\xb5\x1f\xddS\x80\ -)\xf8\xa4\xd30\xf5\xe3{\x09\x8e\xbe4Z\x8f->\ -p\xaa\x0e\xa0N\x02u\x1c\x90*\x855\xf1\xa4\x9f(\ -\xa48\x15$\x80:\x09T\xdf\x93\xe2\x88c`J\x0f\ -S\x89\x98\x14*\x98\xa8I\x90\xfa\xee>G\x942\xc1\ -\xfd(\x1f\xd8\x97\xb3\x93\x9c\xdf\xef\x02*S\x99N\xef\ -\xbe\x00Tb8\xe5\xdfxF?\xf1r\xfa\x061\xa6\ -\x0c\x04\xf4\xa7\x98R\x88\xfe\xc59\x8f_P\xa39\x1e\ -a\x0aQ\x98\x22\x9c\xfc\x11Ae\x10\x97zy}\x97\ -\xca\xa3X+\x8fQ)ED\x1bi\x02\xa8S\x12\xfb\ -\xbe;\x05\xa02\xad57#N5FQ!\x02\xa8\ -\x13r\xfb\xbe\xe9' \xe7\x1cxR\x8c@\x05\xe1\xa7\ -L\x06P'\xa4\xf7};e\x90\x11\x18k\xe3\x83\x0a\ -\xf1\x80\xe6\x0c\x07N\x9d\x94\xe1?\xa3T\xb91\xe2d\ -S\xda\xa1\xaa\x10\xc6\x80\x1f\x0f\xa8NI\xf2\x8f\x14\x00\ -E\x8aH\xe3\xfbT\x94 p\x9d\xa4V\x01\xd5\x09y\ -\xfe\x84{\xa0\xba\x04\x95\xe4F\x04S\xf5\xf5\xa9~?\ -\xa0r\x9by\xc2H\xe6\x83\xaa\x91P\x92\x99\xc0\xa9S\ -\xb2\xfd~>\xc5\x80\xa3\xaa!\xca\x97#P\xb5\xdb9\ -\xa5\x01\xd4)\x19\xff\x91\xfc3\xa4\xc1y\xf2s\xfe\x14\ -#\x81A/\x04T'%\xfd\xfd\x9d\x14\x05\xd1\x13\xa3\ -\xd4\x8c\xbc*\xceY\x08\xa9\xa6eT\xb0/\xfe\x02+\ -f\xfc\x8d\x14\x83\xa8Q\x12\x07\x97jb\xde\x7f\x94\xa8\ -B.\xa3\xc2\xfdSh\xd4!(\x0d\x0d\xb8N\xcc\xfd\ -\xfb\xc9*\x22\x91QJ\x1b=\xb2V\x92I\xc9C\xb4\ -:1\xfd\xef\x87V\xe0\x058\x9c\xa4\xc7\xaf\x8c\xb8\x14\ -\xf6\xc9a\x80\x80\xeb\xe7v\x00|\xf5*\x90\x02\x87\x7f\ -t,\x8da\x04\xb0J\x13\xe2\x80\x89\xdb\x00#=@\ -\x91\xd6\xd4\x089\xc2UH\xae\xc8\xef\xee\x0c`\x9c\xa6\ -9\xff\x02\x5c\xc1\xa6R\xf6-\xe3\xca\xcf\x1cI\xe5\xd4\ -\xf8\x80R``\xcd\xf9x\xbb\xca`&N\x8e\x05\xf4\ -\x80\x02\xc8\x5cO\xf9\xb1\xc4\xff\x1f\xa0lt\xee\x07x\ -\x94`B}\x1f\xc0\x00J\xdc\x08\x13 \xbd\xbc\x07\xe0\ -\x1f\xa0$\x88R\xcc\x89\xafN!\xdab\x86i\x1a \ -\xbd\xbc\x03 FgR\x09cByA\x95\xdbie\ -\xfa\xe4D@\x80\xf4\xb5\xfc?\x1f\x9dE\xa7\x9c\x12\xea\ -\xed\xa82\x05\xc6I\x09\x12t\xe9\x94\xec\xbf\x1a\xef\xfc\ -+%\xa4\x09\x98~}\xee\x9f\xfb\x8c\xaa\x11g\x82\xf9\ -Q*\x03\x0b\xc5\xc0r\x05P'\xa4\xfe\xd94H9\ -b\x8a\x18%\x02\xa4\x97\x13\xffx$\xfaD\x08\xea\x1f\ -M\xe5\xe0\x0b@\x00\xc0\x02\xa4S\xd2\xfez|\xda\x17\ -+\xed\xff\xee\x94c$\xa9188RS\xb2\xfeR\ -\x8fd\x9f\x11\x86}\xbb\x1f\x1c\xfe/I\xfa\xfb\x8c*\ -\x91P\xa0P\xa9\xa7O\x05\xa8Yu\xee\xf7(\x01\xd3\ -q\x02\xc5\x8f\xf5\x15\xe2\x02\x1b\xa5\xc6IT.%\xfb\ -\x1aL\xbd;#(\xc1ftm\xcc\xfe\xf6\x15\xd3\xbf\ -\xfe\x97+%\xfc\xbb\x1e^Y\xae\x97\x9eNW\x8c~\ -v\xadNW\xc0\xbb\xaeb\x15\x11\xb7\x7f'\xa4\xbc\x06\ -\xae\xa4X\x09\xae\x22w\xf0\x1c\x8c\x13#\xd7\x04\x88\x9c\ -1#YD\x0c\x8c\x9eR\xc9\xaeO\xee\xa8\xd8/\x0b\ -9\xd9\xc3\x1a\x5cIU\xd5\xb9u\x17\x09\xb5\x8b8\xcb\ -\xb2\x1e\xd9oc\xea\xbfDT \xf7\x1b&C\xae\xdd\ -\xc9P\x0918q\xd3\xe4\xee\xd2\x10s\xdd\x1bc\xb7\ -Z\xe7\xa6K1\x9e0\xdd\xc3\x85\x1d\xfd\xbb}Z\xde\ -\xbe}\xf3_\xcf\x03\xd5\x0e\ -\x00\x00\x0ep\ +\x00,\xcex\xda\xedZ[o\xa3H\x16~\xef_\x81\ +\xc8\xcb\xb4\xd6\x94\xeb~q\xc7\x19\xed\xaa5\x9a\x95v\ +_ff\xafo\x04\xb0\xc3\x04\x83\x058N\xfa\xd7\xef\ +)l0`\xc0\xc9\xa4{z\xd3\x1aG\x91\xa9+U\ +\xdf\xf9\xce\xa9\xf3a\xae\xbf\x7f\xdc$\xceC\x94\x17q\ +\x96.]\x82\xb0\xebDi\x90\x85q\xba^\xba\xff\xf8\ +\xe5\x07O\xbbNQ\xfai\xe8'Y\x1a-\xdd4s\ +\xbf\xbfyw]<\xac\xdf9\x8e\x03\x83\xd3b\x11\x06\ +K\xf7\xae,\xb7\x8b\xf9|\xbb\xcb\x13\x94\xe5\xeby\x18\ +\xcc\xa3$\xdaDiY\xcc\x09\x22s\xf7\xd4=8u\ +\x0f\xf2\xc8/\xe3\x87(\xc86\x9b,-\xaa\x91iq\ +\xd5\xea\x9c\x87\xab\xa6\xf7~\xbfG{Vu\x22\xc6\x98\ +9\xa6sJ=\xe8\xe1\x15Oi\xe9?z\xdd\xa1\xb0\ +\xc6\xa1\xa1\x14c<\x87\xb6S\xcf\xe7\xf5Z\x14\x80\xca\ +\x16\xfe\x9b\xeeu\x05*\xb2]\x1eD+\x18\x17\xa14\ +*\xe7\x1f\x7f\xf9\xd84z\x18\x85e\xd8\x9a&N\xef\ +\x8b\xc0\xdfF\x9d\xbb\xd6\x95\x07\x04\xfcMTl\xfd \ +*\xe6u}5~\x1f\x87\xe5\xdd\xd25\xb2*\xddE\ +\xf1\xfa\xae\x5c\xba\x5cW\xc5\x878\xda\xff%{\x5c\xba\ +\xd8\xc1\x8e\x91\xce\xb1:\x0e\x97.l\x83\x1e\xfa\x9c\xec\ +L\x0e\xad\xc7\xe9\x17M\x0bF\x86\x22\xe6|G9\x16\ +\x82\xcb\x99C1\xd1\x1ef\x1e!\xef\xab!\xf5\xbe\x16\ +a\x16\xd8\x85.\xdd0\xc8\xb6+Z\x16\xc8\xc2u\x03\ +}\xae7Q\xe9\x87~\xe9\xdb\xfe\x87%\xd45\x84V\ +=\xa0\x0f\x98m\xf1\xd3\xc7\x1f\x0e%(\x07\xc1\xe2_\ +Y~\x7f,\xc2\xc7v\xf0o\xb3\x1dl\xd1\xbdi\xaa\ +\xaf\xc3`\x01@o\xfc\xf2&\xde\xf8\xeb\xc8\xda\xe8O\ +\x00\xec\xf5\xfc\xd4\xd0\xe9\x5c>m\xa3\xd3\xa4\x87i\xf3\ +\xe8`\xb1A\xda\x86\xc1&\xb6\x83\xe6?\x97q\x92\xfc\ +\xd5\xde\xc4u\xe6\xbdI\xe32\x89n\xaa{\x1e.\xeb\ +]\xcc\x8f\xdb8nr\xde\xda\xe5\xf5\xbc\x06\xa1*\x85\ +\xd1\xaa8\xe1cK\x04\xd7\xd8l\xfc\xfc>\xca\xeb;\ +6F*\xca,\xb8\xb7\xbd\xff\x9c\xe7\xd9\x9e\xfc\x0d\xfc\ +2/\xdd\xba[\x96\xc7\xe0mK\xd7\xdf\x95YS\x99\ +G\xab\xff\x80Q\xdb\xe5\x7f\xb7\xcb\xa3\xb3\x15\xe5S\x02\ +\xf8d@\x8cU\x92\xed\x17\x0fq\x11\xdf&\x91{\xb6\ +\xa8\xb8\xa8\x96\xb5t\xcb|\x175\x86\xba\xde\xfa\xe5\xdd\ +\x09v{\x1b[\xc3\x85\xd1\xee\xa9\x1aj\xff\xee\xe0\x19\ +v\xc4\xcc\x13\x8eG(\x12UA8\xffm\xf5:.\ +e\x05\xd6\xf0\xf2]\x12-\xa2\x87(\xcd\xc2\xf0CQ\ +\xe6\xd9}\xb4\xb8\xc2\xd5\xe7X\xf4*/Y@$;\ +|\xd8\xb6l\xcdU\xe6~ZX\x9a\x00%\xfd2\x8f\ +\x1f\xbf\xc3H\xcf\xb0\xfd\x83o\x02_\xef[\xbd\x9bM\ +\x06Y\x9aFA\x99\xe5^\xb0\xcb\x1f\xfcr\x97G\x16\ +\xc5\x9a\x16`\xda\xcab\x073[[VW\x8d\xabX\ +?\x09\xad\x83\x1e\xa6\xde\x02\xa5\x82,\xc9\xf2\xa5{\xb5\ +\xaa>\xc7{\xdefy\x18\xe5u\x93\xac>\x9d\xa6\x0c\ +\xa2\x02\x90\x13\x1c\xf8X\x9d\xdd\xfe\x0a\xeb*\xb3$\x82\ +\x8dYB\x93\xda\xb6\xeb\x1cp\x18\xaa\xdf\xc5a4\xd4\ +\xd0l\xd6.\xaf\xb9\xd1`kq\xe7\x87\xd9~\xe9\xd2\ +~\xe3>N\xa1\xc1;\x06*\xa2\x05\x1b\xe9Q\x07/\ +\x82\xa9pOn\xd0\x00U\xb3\xa4\xb8\xcb\xf6v'`\ +~?)\xa2\xfel\x9f\xb2\x0c,)\x11%RrE\ +\xfa\xcd\x01\x84Cn\x90a\xdch~\xd6\x08\xbb\xa3\x12\ +i\xce\xa9 #\xcb\x84\xf1R\x8d\xb4\xd9\xe1cm\x1b\ +\xff1\xde\xc4\x9f\xa2\xf0d\xa9\xd3}wy\x0e\x8e\xea\ +%\xfeS\x04f^s\xc1\xf9\x91I\xd7\xeb\x13\x14k\ +ND\x13\x10\xd6m\x7f=\x8c\xb8\xe8i\x0c\xf7=\xcd\ +\xa3\xe0]?:\x5c:\xff\x84\xe3\x01\xae<\xdaq\xb4\ +Kt\x1ft\xc9E\x0ayA+@\x9e\xd6z\x5c\xad\ +\xc1d\xd2\x01\xc1S\x153\xd4\xf0\xca\x0dO%E\x90\ +2Bq1\xa3\x06\x11\xa9\x0cS\xef\xdb\x07Aw\xdf\ +/Y}\x0b%\xa2H\xa7\xc1\x1eU\x8e'\x04\x12\x0a\ ++\xadg\x1c\xc17\x11R8\x04#\xc50\x94f\x9e\ +F\x9ciJ\x8c\xec\x0cmcr\x15I\xfb\xf7a<\ +f\xd1@\xf8~/fQ\xd80\xe3\xcaH]\xd7'\ +1\xec\xc4\xdf.nwe\xd9\xae\xfb5\x8b\xd3\x05\x1c\ +SQ^\xd7V\x85\x04HW.x]\x17\xfa\xe0\xa8\ +y\xee?U6\xaak\x8f\xae\xbd \xddS\xed3\xc1\ +\xc9\x86\xe0\x94\x88`\xa9\xb5\x9cy\x84#\xa3\xc0\x1d\x85\ +c\x10\x13\x9a`3\xab.\xb0\xd1\xf4\x0f4\xcf\xd0\x14\ +\x03h2\x06D\xa4B\x03\x11\x89B\x82r\x8a\x95\xe3\ +\x19$\x8c\x12\x9a\xc2\x19\x06\xf1\x0eF\x1a\xf2\xc6\xf1\xec\ +\xac\xbe9I38\xbc 9\x83\x9c=\x08\xa6!\x1f\ +\x19\xf3\x19\xac\xa2\x06\xac\xc29\x92\x1cx\xcdg\x1eC\ +\x1c\xd8\x8e\x0dw \xa1Q\x02\x8c!gU\xf4\xa0\xe6\ +[\xa2x\x94$\xf1\xb6\xe8\xe6\xd6p&2\x84\x81\x89\ +TvA\xca\x1fm\x0b\x11L+\xda%\xb5=\x86\xed\ +\x01\x0em\xb4kt{z{B!\xa29\x13j\xc4\ +\x18Lz\xd2cC\xb86\xcb\xfep@X\xc0g\xb5\ +: \xdcm\x1b\x04\xbc\x8d@\x83\xb6&\x862\xc1\xce\ +\x90\xcd\xb3]\x1a~id)\x84N\xae\x09\x1bB\x16\ +K\xc9\xb8\x94g\xc8*\xc4\x0d\x93T\xc8sd\x19A\ +\x12\xc2\x047\xe3\xc8\x92g\xe1\xba\xd2a\xc8^\x81+\ +C\x8chC(U_\x07W\x8e($\x1a\x84\xf13\ +\x5c9\xe2\x84\x10C\xce\x19kC/\x95\x82\x0a1\x00\ +,G\x02km\xe8\x04e\x9fGXc^EX\x86\ +\xb4\xc1F\x02\xb8_\x07X\x08\x84\x1akF\xd9\x00a\ +\xe1\xfc2l\x08\xd7*A0f\x80\xb0\x90\x95\x01\x93\ +\xe1p\x1b\xc5\xf59\xa82\xe5\xdf\x06\xfaU\xa8rm\ +\xc0\xd7\xa4\xfaZ\xa8j\x0c\xd81=\x80\xaa\x01)\x83\ +\xc99\xaa0F\x0b\xa1\x87P\xe5\x02\xdc\x8fj9\xc1\ +V\xfc\x1c\x5c\xa9\xafV\xafd+#\xccX\xbf\xf9\xc2\ +\xb8\xae\xfb\x1b\xad\x04U\xef\x10\x19zP\x00\xd4#\xe0\ +\x93\xe4\xf8\xbc\xa0)z\x94\x22\xc8\xc8\x18\xa7p\x09\xe7\ +\x95\xc4\x98\xf0\xb6V\x19\xc8N\xbaJ\xad\x17\x10ZO\ +F~\xb4J\xed(\xd7pG\xad\xbd4\x81\x99Tm\ +\xe7\xc0\x9c\xd4\x9b\xa7z\xf3<_\xc3I\x10\xdf\xa0\xbd\ +\xa9\xb6\x1a\x0e\x0e\x1bIT\x17\x97Ad^\xba\xaf\xae\ +\x9e\xf3\xc4Y\xf3Q\x86@\xe2\x8c5\x97/Ru/\ +O\xd40\x16\x82\xd2\xff\x9fD\xedK\x80\xccz\xde\xd2\ +\x02\x19NS\xce\x85|\x89\xd6\xfb\x03\xe3A\xed7J\ +d\xc8\xdc\xb4\xc2\x90b\xf7\x14 D\x7f&\xcd\x8c\x10\ +\xe0\xb4\x22\x80\xf77\x80\xf2\xd9\x0e.+\xc1Qc<\ +C\x11\xbe\xd2f\xca\x93#6\xe3V=PH\xd2\x9f\ +\xaf\x0f\xbf\x11\xb7\x18Hc\xa6\xb5\xe2\xb4^\x9c\xd6\x8c\ +\xedd\x91Q\x8a\x99\x9a0\xd7A;z\xa3\xc1\xe8<\ +u\x0c\xb4\x22o@A^\xc2}XIN\xab\xc9i\ +E\xd9\xe0\x0e\xe7\x97\x8e?p3c\ +'f\xa4\xcfE\x8b\x84]%\x07\xc5\xeb19!\xc3\ +\xaf\x0c3\xa1\x1f4\x19\x5c\xa7x\xa4\x97\x85Gh\x81\ +%\xedgp\x1dv}6\xce}\xd8\xfaqZz\xd5\ +\x0b\x07\x8b\xc3\x8b\x0d\x85cW\xeb\x1cz\xf699f\ +\x0fHq\xc1\xae#\xf6\xd0\x18\x0e\xe5s{p\x84A\ +\xb7P,F\x0d\xa2@\xe2H%\x87\x0d\x02\xd9\x07%\ +\x9c)2i\x10o\xea\xc1H}\xf0\x8dz;d\xea\ +FR.\x94\xf8\x0a\xe6H\xed\x1bNI\xd7\x09Oa\ +\xa0}\xd9\x15@\x9d\x1d\xf2\xd0\xfe5\x9c\xeb\x14\xeb\xd7\ +g\xb6\x8f/\x97\x0bC\xaa\xadR?`p\xcc\x014\ +:\xa3\x1c1p)\xe2\xdc9\x04\x8e\x01\x83\x05%N\ +\xe2`\x10\x02\xd2\xfe\xa2\x09\x99)\xc6\x5cqG\x22)\ +8\x860\x00\xe1^\x1ab\x98\xe3\x81\xed\x81\x1b\x98@\ +\x95\xa0\x12K\xd5\x1e&\x155Z:\xf6\xc4\x86\xf1\xcc\ +\xb0\xd9\xb1\xd1\xf9\xe4\x9e\xbf\x1d\xa1\x95\xfem\xef=\x0c\ +*\xc8\xc3\xa7\xf56\xd0\xba\xff\xdaF+\x04V\x97\x89\ +_F\xf6\xa1\x19l\x82j\x06\xeb\x17\x10h`\x07\xad\ +\xb8\xdb\xc4\xdc\xd3\xbc\xbd\xb7@d\xcb\xb7\x06o\xe0\x11\ +H\x07\x94\xc0\xadgn=g\x1d\x0b\x9c#As8\ +`N\x05\xcb\x89@\xd9\xf6\xc9\x91WK\xdext\x1c\ +\x04\xfb<*\x8eD\xc4\x91h8\x15\x09'\xa2`7\ +\x02\x8e\xe1\x0d\x84\x94\xab\xd5\xdb\x88}G7\xab\xbe\xae\ +\xedk\xa07\xef\xfe\x07F\x13\x5c\xc0\ +\x00\x00\x0a\xca\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a\ - \x0a \x0a \ +\x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x09\x03\ -\x00\ -\x00-\xd3x\xda\xedZY\x8f\xa3V\x16~\x8f\x94\xff\ -\x80\xe8\x97\xb4\xc6\x5c\xdf}q\x97;\x9aQ+\xcaH\ -3/\x93d\xb67\x0a\xb0\x8b4\x06\x0bp\xb9\xaa\x7f\ -\xfd\x9c\x0b\x06\x03\x06/\xe9\xee\xf4T+.\x95\xcc]\ -\xb9\xe7;\xeb\x87\xb9\xfb\xfei\x938\x8fQ^\xc4Y\ -\xbat\x09\xc2\xae\x13\xa5A\x16\xc6\xe9z\xe9\xfe\xf2\xf3\ -\x0f\x9ev\x9d\xa2\xf4\xd3\xd0O\xb24Z\xbai\xe6~\ -\xff\xf6\xdbo\xee\x8a\xc7\xf5\xb7\xdf8\x8e\x03\xcb\xd3b\ -\x11\x06K\xf7\xa1,\xb7\x8b\xf9|\xbb\xcb\x13\x94\xe5\xeb\ -y\x18\xcc\xa3$\xdaDiY\xcc\x09\x22s\xb73?\ -8\xce\x0f\xf2\xc8/\xe3\xc7(\xc86\x9b,-\xaa\xa5\ -i\xf1\xaa;;\x0fW\xed\xf4\xfd~\x8f\xf6\xac\x9aE\ -\x8c1sL\xe7\x94z0\xc3+\x9e\xd3\xd2\x7f\xf2\x06\ -k\xe1\x9cck)\xc6x\x0ec\x9d\xa9WN[\x14\ -\x00\xce\x16\xfe\xdb\xf9M\x07*\xb2]\x1eD+X\x18\ -\xa14*\xe7\xef~~\xd7\x0ez\x18\x85e\xd8\xdd'\ -N\xdf\x17\x81\xbf\x8dz\xf7m:k\x18\xfcMTl\ -\xfd *\xe6M\x7f\xbd\xc1>\x0e\xcb\x87\xa5kd\xdd\ -|\x88\xe2\xf5C\xb9t\xb9\xae\xdb\x8fq\xb4\xffK\xf6\ -\xb4t\xb1\x83\x1d#\x9d\xa6?\x0e\x97.\x08C\x0f\xb3\ -\x8eJ'\x87\xf1\xc3M\x16\xed\x10F\x86\x22\xe6|G\ -9\x16\x82\xcb\x99C1\xd1\x1ef\x1e!\xaf\xeb5\x8d\ -|\x8b0\x0b\xecy\x97n\x18d\xdb\x15-\x0bdq\ -{k'\xddm\xa2\xd2\x0f\xfd\xd2\xafV\xd4\xe7h\xba\ -\x08\xad\xe7\xc0,P\xe2\xe2\x1f\xef~84\xa1#\x08\ -\x16\xff\xca\xf2\xf7M\x1b>v\x8a\x7f\x9f\xed@X\xf7\ -\xed\xb1\xff.\x0c\x16\x00\xfb\xc6/\xdf\xc6\x1b\x7f\x1dY\ -\x95\xfd\x09P\xbe\x9b\x1f\x07\xfa\xb3\xcb\xe7m\xd4\xd9\xb7\ -\xde9\x8fj\x0d\x8e\xdar\x18lb\xbbj\xfeS\x19\ -'\xc9_\xedm\x5cg>\xdc6.\x93\xe8mu\xdb\ -\xfa\xb2\x95e~\x10\xa6\x11v\xde\x95\xf6n\xde\xc0Q\ -7\xc3hUt\xb0\xb2M\x82[\x9c6~\xfe>\xca\ -\xdb\x1b\xb7Z+\xca,xo\xe7\xff9\xcf\xb3=\xf9\ -\x1b\xb8m^\xba\xed\xbc,\x8f\xc1\x17\x97\xae\xbf+\xb3\ -co\x1e\xad\xfe\x03z\xeeu\xfc\xbb\xd71\xbdcQ\ ->'\x00V\x06\xe6\xb2J\xb2\xfd\xe21.\xe2\xfb$\ -rO\x8f\x16\x17\xd5\xe1\x96n\x99\xef\xa2\xa3\xe6\xee\xb6\ -~\xf9\xd0Q\x83\xbd\x95\xed\xe2\xc2h\xb7\xd3\x0f\xdd\x7f\ -w\xf0\x0c;b\xe6\x09\xc7#\x14\x89\xaa!\x9c\xffv\ -\xa7\x1d\xce\xb3\x02\xfdx\xf9.\x89\x16\xd1c\x94fa\ -\xf8\xa6(\xf3\xec}\xb4x\x85\xab\xcf\xa1\xe9U^\xb4\ -\x80\x90W\x7f\xd8\xb6\xecnV\xe6~ZX\xdb\x01[\ -\xf5\xcb<~\xfa\x0e#=\xc3\xf6\x0f\xbe\x09|\xbd\xee\ -NoE\x0d\xb24\x8d\x822\xcb\xbd`\x97?\xfa\xe5\ -.\x8f,\x9c\xad\xa9\x80\xae+\xfd\x1d\x14ou[_\ -\xb6\x9ed\xdd(\xb4>|\xd8~\x0b\xa6\x16dI\x96\ -/\xddW\xab\xea\xd3\xdc\xf8>\xcb\xc3(o\xc6d\xf5\ -\xe9\x8fe\x10>\xc0l\xc1\xc9\x9b\xfe\xec\xfeW8^\ -\x99%\x11\x08hm\x9d\xb4\xba^\xe7\x80\xc8\xe8\xc0.\ -\x0e\xa3\xd1\x91Vl{\xc8\xf6f\xe3\xc3\xc5\x83\x1ff\ -\xfb\xa5KOF\xf7q\x0a#\xde!\xac\x11-\xd8\xd4\ -\x94&\xd4\x11L\x85\xdbq\x91\x16\xb3\xd6n\x8a\x87l\ -o\x05\x02{\xf0\x93\x22:\xd9\xf0C\x96\x81j%\xa2\ -DJ\xae\xc8\xc9x\x00\xf1\x93\x1bd\x187\x9a\x9f\x8e\ -\x82\x94T\x22\xcd9\x15d\xea\xb0\xb0\x83TS\x83v\ -\x83\xc9\xc1\x8d\xff\x14o\xe2\x0fQ\xd8Q\xdc\xf1\xde\xbb\ -<\x07O\xf6\x12\xff9\x02\xbd\xaf\xb9\xe0\xbc\xb1\xaf\xbb\ -u\x07\x945'\xe2\x186\xd6=\x8f\xaeW]\xe1\x89\ -\x0c\x9fx\xa2G\xc1\xfb~t\xb8t\xfe\x09\xb9\x05\xae\ -<\xdaw\xc4K\xce0\xee\xb3\x8b\x14*\x8cnL\xed\ -\x1c\xf9ph\x83\xc9y\x1f\x05oV\xccP\xc3+O\ -=\xb6\x14A\xca\x08\xc5\xc5\x8c\x1aD\xa42L\xbd\xee\ -e\x90\x81\xfc7\xc9\xd0\x81\x8b(\xd2\x1f\xb1\xa9\xce\xf1\ -\x84@Ba\xa5\xf5\x8c#\xf8&B\x0a\x87`\xa4\x18\ -\x86\xd6\xcc\xd3\x883M\x89\x91\xfd\xb5]l^E\xd2\ -\xfe\xbd\x99\x0en4\x10\xbe?\x08n\x14\xa4f\x5c\x19\ -\xa9\x9b\xfe$\x06a\xfc\xed\xe2~W\x96\xdd\xbe_\xb3\ -8]@\x86\x8b\xf2\xa6\xb7j$`\x86\xe5\x827}\ -\xa1\x0fN\x9c\xe7\xfes\xa5\xab\xa6\xf7\xe0\xf7\x0b2H\ -\x88\x9f\x0cS6\x8a\xa9D\x04K\xad\xe5\xcc#\x1c\x19\ -\x05\x8e*\x1c\x83\x98\xd0\x04\x9bYu\x81\x8d\xa6\x7f@\ -:\x0a\xa9\x18\x83\x9410I*4\x98$QHP\ -N\xb1r<\x83\x84QBSHz\x10\x0ea\xa9!\ -/\x1d\xd4\xfe\xf1\xdb\xc4\x9bA\x96\x83\x12\x0f\xa8@\x10\ -\x5c\x02~b\xd5'Q\x8e\x1aS\x0e\xe7Hr\xb0q\ ->\xf3\x18\xe2`\xf9\xd8p\x07J!%@'rV\ -\x85\x13j\xbe.s\x8f\x92$\xde\x16\x83J\x1d2'\ -C\x18l\x92\xca\x01P\xf9\x93\x1d\x22\x82iE\x07\x06\ -n\x13\xb6M\xf60H\x07\xfa\xb7\x99\xde\x13\x0a\x11\xcd\ -\x99PSJa\xd2\x93\x1e\x1b\x85\xb7=\xfd\x9b\x1ah\ -\x01\x9f\xd5\xaa\x06\xba?6\x8a{\x17\x88\x16tM\x0c\ -e\x82\x9d\x00\x9cg\xbb4\xfc\xfc\x00S\x08\xa8\x5c\x13\ -6\x0a0\x96\x92q)O\x01V\x88\x1b&\xa9\x90#\ -\x003\x82$\x84\x0en\xce\x00L\xae\x83w\xa5\xc3\x90\ -}\x04\xbc\x0c1\xa2\x0d\xa1T})x9\xa2P\x8e\ -\x10\xc6O\xe1\xe5\x88\x13B\x0c\x19\xb1_\x1b\x94\xa9\x14\ -T\x881|9\x12XkC\xcf\x19\xf0\x95\xe6k\xcc\ -G\x99/C\xda`#\x01\xe3/\x85/\x04H\x8d5\ -\xa3l\xcc|!\xbf\x196\x0aoUF\x183f\xbe\ -P\xc1\x81aC\xfa\x9b\x86\xf7*p\x99\xf2\xef\x03\xfd\ -Q\xe0rm\xc0\xfb\xa4\xfar\xe0j\x0c\x082=\x06\ -\xae\x01>\x84\xc9\x08\xb8\xb0J\x0b\xa1G\xc1\xe5\x02<\ -\x92jy\xcev\xf1U\xf0R_\xad>\xd2v\x19a\ -\xc6\xfa\xd1\xe7\x86w}\x22k\xc5\xc9\x869f\xec9\ -\x04\x98!\x01'%\x87\xc7\x11m\xd3\xa3\x14A\xfd\xc6\ -8\x85KHh\x12c\xc2{\x0f\xd2\ -l\xe8>\x1d\xa4!\xe9r.\xe4M|\xf1\x0f\xa0'\ -\x80\x16\xd3&\x0d\x95\x9eV\x18\x8a\xf3\x01\x8b\x84\xd4\xc0\ -\xa4\x99\x11\x02\xd6\xad\x08\x80\xfe5@}*\xc2\x15l\ -rZ%\xd7\xb0\xca\x8fU\x9d\xf2\xe4\x94\xea\xb8e\x1e\ -\x14\xaa\xfb\x1b8\xe6\xd7\xe2\x22c\xe5\xce\x05\xbey\x81\ -s^\xe0\x9d\xdd\xda\x92Q\x8a\x99:\xa7\xb6\x9a\x7fz\ -\xd3\xf1\xe9\xb4\xd2\x0c\xb4\x22/\x81\x85^\x84\x7f\x82\x8d\ -^`\xa4\x17Xi\x0b?T\x02\xb0\xb7d\xe4\x02\xfc\ -\xc43W\x83\x8f\xb1\xefs\xfe\x128\xeaE\xf0'\xb8\ -\xea\x05\xbez\x89\xb3\x1ey+E\x92K\xa1\xe8E\xe3\ -'7\xa0\x1fr\xdf\x7f\x09\x0c\xf6\x8a\xc83\xcad\xcf\ -\xb3\xd9.\xa3\xd5\xd6\xf4\xcdT\xe4\x01\xc2\x06\xa9\x9a\x5c\ -2}z\x93\xe1\xeb\x17\xc1o\xaf\x80~\x94\xe7\x9e\xe7\ -\xba\x97\xf8\xee\x91\xf3\x82\xa0\x02\x0b~\xc9\xee\xb1\xa7~\ -\xbf\x90\xff\xbb\xb1_\xfb\xd3\xf7\xba\xcb\x86\xfb\xad\xf5o\ -\xa7\xc0\xc4 \x1bm\x0cT\x9f\x82T\xa1\x87\x9a\xd7\xee\ -\x08\xd7&\xc0\xb5\xf1\x15\x9c\x5c\x121\x0c\xfc\xb7qr\ -(\x87!yQs\x86\x93\xe7P\xc2\x0d\x94l-\x90\ - \x98\x0d\x05\xd7\x89{[\xebT\xf6y\x1f?u\xdd\ -\xca4\x15cL\x9c\x0c5\xbf\x9eK\xb0M\xac\x949\ -\xb1\xac\xc3/\xf0\xcc\xd8\xbd\x199\xb1M\x8b\x88=+\ -\x07\xe6\xec1y\x8e\xd2\xbf2\xcc\x84~\xd0\x16}\xbd\ -\xe6\xc1\xdc,LB\x0b,\xe9\xb0\xe8\xebY\xdb'\xb3\ -\xc17[?NK\xafz3bQ\xbf\x86Q8\xf6\ -\xb4N=\xf3\xc4F'\xf5\x02\x851hxJ/\x1a\ -C\xf2\x1e\xd1\x0bG\x18h\x0f\xc5bZ1\x0a(\x92\ -TrB1P\xaaP\xc2\x99\x22\xe7\x15\xe3\x9d}\xd8\ -\xd2\xa4\xc7\xc9(\x00U\xbe\x91\x94\x0b%\xbe\x80ZR\ -\xfb\xbaV2\xf0\xcbNt\xe8]\x0f8TOJ\x1e\ -\xda\xbf\xd6\xfez\xcd\xe6\xdd\x9f\xed\xd3\xedlc\x94\xfb\ -U\xf4\x09T\x8f9 Gg\x94#\x06.F\x9c\x07\ -\x87@\x9e0XP\xe2$\x0e\x06\x1a!\xed\xaf\xabP\ -\xd0b\xcc\x15w$\x92\x82c\x88\x0d\x90\x0d\xa4!\x86\ -9\x1e\xd8\x00\x18\x09&\xd0%\xa8\xc4Ru\x97IE\ -\x8d\x96\x8eM\xec\xb0\x9e\x196;\x0c:\x1f\xdc\x91\xd7\ -7\xb4\xd2\xbf\xf5\xbd\x8cQ\x22Z\x7f\xba/3\xadO\ -_/\xe9D\xc7\xea2\xf1\xcb\xc8>\x90\x03Q\xa8f\ - \x85\x80\xf0\x03rt\xc3r\x1b\x92;{\x0f_X\ -\x91]\x7f\x1b\xbd\x89G\xa0xP\x02w\x9f\xe9\x0d}\ -x2\xaeN\xc5\xd4\x89xz6\x96\x9e\x8b\xa3]W\ -\x9dz\x13\xe6\xa5\x07\xcfq\xd0G\x82\xe6T\xc0\x9c\x0a\ -\x96g\x03\xe5\xb9 \xd9\x0f\x90\x93\xb8\x83\x91\xca\xd5\xea\ -\x85\x84\xc6\xc6\xfb\xea\xef;\xfb\xd6+|\xff\x0f\x81\x9d\ -j\x01\ -\x00\x00\x0b\x15\ +array:none;strok\ +e-opacity:1;pain\ +t-order:markers \ +fill stroke\x22\x0a \ + d=\x22m 74.4039\ +38,49.997363 51.\ +719812,90.282827\ + -1.36105,-19.28\ +151 -4.08314,9.3\ +0049 -9.52734,-0\ +.45368 14.97153,\ +10.4347\x22\x0a \ +id=\x22path831\x22\x0a \ + inkscape:con\ +nector-curvature\ +=\x220\x22\x0a sodi\ +podi:nodetypes=\x22\ +cccccc\x22 />\x0a \x0a\x0a\ +\x00\x00\x0aH\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x8e\ +27\x22\x0a inkscap\ +e:window-maximiz\ +ed=\x221\x22\x0a inks\ +cape:current-lay\ +er=\x22svg2\x22 />\x0a <\ +path\x0a style=\ +\x22fill:#999999;st\ +roke-width:1.333\ +33337\x22\x0a d=\x22m\ + 11.559322,153.6\ +2712 v -8 h 56 5\ +5.999998 v 8 8 h\ + -55.999998 -56 \ +z m 28,-52.66667\ + -27.30894,-27.3\ +33331 h 15.65447\ +1 15.654469 v -2\ +4 -24 h 24 23.99\ +9998 v 24 24 h 1\ +5.65447 15.65446\ + L 95.55932,100.\ +96045 c -15.0199\ +2,15.03334 -27.6\ +19918,27.33334 -\ +27.999998,27.333\ +34 -0.38008,0 -1\ +2.98008,-12.3 -2\ +8,-27.33334 z\x22\x0a \ + id=\x22path817\x22\ +\x0a inkscape:c\ +onnector-curvatu\ +re=\x220\x22 />\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x07G\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\ -\x0a \x0a\ + \x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x08v\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\x83\ +1.33333337\x22\x0a \ + d=\x22m 42,172.310\ +16 c -1.466667,-\ +0.61924 -4.16666\ +7,-2.73984 -6,-4\ +.71245 l -3.3333\ +33,-3.58656 V 93\ +.477545 22.94393\ +8 l 4.35676,-4.3\ +58975 4.356761,-\ +4.358974 34.9765\ +72,-0.378076 34.\ +97657,-0.378076 \ +24.37995,24.4379\ +04 24.37995,24.4\ +37905 -0.37995,5\ +0.915854 -0.3799\ +5,50.91586 -4.35\ +774,4.35764 -4.3\ +5775,4.35765 -52\ +.975588,0.2717 C\ + 68.50568,173.31\ +379 43.466667,17\ +2.9294 42,172.31\ +016 Z M 148,69.2\ +10834 c 0,-0.191\ +669 -9.9,-10.234\ +849 -22,-22.3181\ +79 l -22,-21.969\ +69 v 22.318178 2\ +2.318179 h 22 c \ +12.1,0 22,-0.156\ +82 22,-0.348488 \ +z\x22\x0a id=\x22path\ +817\x22\x0a inksca\ +pe:connector-cur\ +vature=\x220\x22 />\x0a\x0a\ +\x00\x00\x08L\ +\x00\ +\x00\x1d\xa9x\xda\xedYY\x8f\xdb\xc8\x11~\xf7\xaf \ +8/\x1eD\xa4\xfa>4\xd2,\x12\x18\x8b\x0d\xb0A\ +\x80]{s\xbc\x04\x1c\xb2\xa5\xe1\x0eE\x0aMJ\x9a\ +\xf1\xafO5\xc5S\xa2\xc6c\xac\xb3@\x90\xc8\xb0\xad\ +\xae\xea\xa3\xce\xaf\xaa[\xcb\xef\x9e\xb7\x99w0\xb6L\ +\x8b|\xe5\xe3\x10\xf9\x9e\xc9\xe3\x22I\xf3\xcd\xca\xff\xf4\ +\xf1\xfb@\xf9^YEy\x12eEnV~^\xf8\ +\xdf\xdd\xbf[\x96\x87\xcd;\xcf\xf3\x8eiR=\xae|\ +\xa6|7z4\xe9\xe6\xb1\xea\x86\x87\xd4\x1c\xffT<\ +\xaf|\xe4!\x8f)\xaf!\xa7\xc9\xca\x87\xe5\xe44\xa7\ +?\x19\x9f\xb8\xf9S\x19G;\xb3\x18r\xbc\xf7\xb1P\ +\x86\x90\x98*9\xf3\x08\x228@< \xf4\xb6^R\ +\x82\xb4;\xf8\xbbH\x8a8\x8f\xb6 d\x9a\xef\xf6U\ +\xf9\xaf(\x8f\xb2\x972-=\x12\xc2\x81\xf5\x5c\xd06\ +/\x17\xed!+\xff\xb1\xaav\x8b\xf9\xfcx<\x86-\ +1,\xecf\xee\xf6)wQl\xcayK\x1f\xaco\ +O\xec\xd6\xb7\x84\xb0,\xf666k\xd8\xc2\x84\xb9\xa9\ +\xe6\x1f>~\xe8\x98\x01\x0a\x93*\xe9\xb7\x19\x9d~\xa4\ +\xf5\xb9\x04!4\x1f\x0b\x0b\xa37\xce\xb4\xc9zj&\ +\xd6Z\xcf\x11\x99\x13\x12\xc0\x8c\xa0|\xc9\xab\xe89\xc8\ +\xcb\x9b\xc1\xd28\xeeV\xc6\xd6DUz0q\xb1\xdd\ +\x16yy2\xc7hr\xd2O\xde\xedmV\xcfH\xe2\ +\xb9\xc9\xcc\xd6\xe4U9\x07\x8f\xcd\xfd{\x98\xbf\xdc\x9a\ +*J\xa2*rkO\x9eo)\x98\xd43`\x0e\xc8\ +\xb4\xf8\xe9\xc3\xf7\xa7\x11\x8c\xe3x\xf1\xb7\xc2>5C\ +\xf8\xb8\x09\xd1C\xb1\x87\xc8\xf2\xef;\xf22\x89\x17`\ +\xe7mT\xdd\xa7\xdbhc\x9c-\xfe\x00\xf2-\xe7=\ +c4\xb9z\xd9\x99~\xd3\xd3\xb6\xd6\x9c\x1c6\xa9O\ +\x12oS\xb7h\xfes\x95f\xd9\x9f\xdd!\xbe7\xef\ +\xe4\x9c7\x826j\xcc\x07z,\xe7\xad\x9a\xf5(1\ +\xeb\xb2\xb7\x80\x1ba\xd4j\xbf\x8d\xec\x93\xb1\xad\x5c]\ +\xf4\x97U\x11?\xb9\xd9\x7f\xb4\xb68\xe2\x1f!\x05m\ +\xe5\xb7\xd3\x0a\x9b\x82\xa1W~\xb4\xaf\x8a\x8eh\xcd\xfa\ +\x1f\x90k\x90\xc1\x03\xca\xdf\xc7\x94\xab;\x96\xd5K\x06\ +V( \xeb\xd6Yq\x5c\x1c\xd22}\xc8\x8c\x7f!\ +XZ\xd6\xa2\xad\xfc\xca\xeeM\xe7\x8e\xe5.\xaa\x1e{\ +\xe3\xbac\x1c\x85q\xad\xfc\x9e\x0c\xd4\xbfx \xce\x0c\ +\xfez?z\x1c\xbe\x05\xbc\xfe\x1a`\x12\xf2\x01\xf9D\ +m\xa7~\xf6\x06\x9b4\x92\xae\xc1%\x81\xddgfa\ +\x0e&/\x92\xe4\xae\xacl\xf1d\x167\xa8\xfe4\xc3\ +\xa0F\xa8\x05\xe0\xda\xae\x1alR\xd9(/]\x90\x00\ +\x14\xc5Qf\xde\xa3P\xdd\x9e\xa8YT\x99\xf7'q\ +n;w\x83Ck?5#\xd0\xad26o\xf7k\ +\x86\x9f\xf2\xb4\x82\xa4\xde\x97\xc6\xfe\xec\xa0\xe3\xaf\xf9\xa7\ +\xb2\xb7`\x03\x954\xa4\x88\x11ID\xc7\xe8P3\xd4\ +\x5c\x0b\x8czN\xb3\xef\xc7^\xd8^B\x19\x0a\xc1\xb5\ +\x96|\xa6CF%l\xaanGnn\x16\xbb9\xbd\ +\x9b*\xf3\x5c\xf5V\x80lY\xd4 \x07\xb3!\x13\x8c\ +=\x98\x09C\x17y\x15\xd4\xdf\x17\xb9\xcb\xaa\xec\xae\xa6\ +\x1ck\xa9G\xa42\xfdl\x16\x22\xe4\x5cR\xb2{\xbe\ +\xcb\xd2\xdc\x04'\xe5\xc0\xfe\x84\x9f&\xad\xa3m\x9a\xbd\ +,J\xd0#\x80\x13\xd3\xf5\x9d\xf3\xe4\xe2\xe6\x81\xba?\ +\xf5 (@&\xc8\xbc\x05n}\x9aC\xe9\x19;\x14\ +\x85XPM\xe9@^(4\x80\xb0\x8c\x12\xc2\x98\x16\ +\x03\xc6\x8b\xb3\xad\x12Br\xa9\xfdq\x90:{`.\ +\x85\x7f\xbf\xac\xc0\x12\xf9\x10\x1f\xba\xb2b\x0bg\x07\xa7\ +\x8e?\xe4\xd7\xeb\xdd\x22\xd8\x80\x8d8\x83\x10}]\xb1\ +\xeb\xca\xbc\xa2\xce\x99B\xf7h9\xaf\xc5\xb8\x87\xffA\ +\x9d6`\x1b\xff\x9f\xe0\xc8aN\xfd\xadS\xca\x15\xb8\ +\xc4U\xe8wM\xa8m\x00\xf0\xb3\xc2\xae\xfc\x9bu\xfd\ +iN|(lbl\xcb\x12\xf5g\xc4jt\x82:\ +\xdd\x90\x8b\x87_M\x5cU`4\x08V\x17[\xb8\xc5\ +\x9f\x8d\x05u\xa7\xe8\xfb41S\x8c\x0eu\x9cx\xdd\ +A\x93\xdc\xf21J\x8a\xe3\xca'\xe7\xccc\x9a\x03#\ +h\xd2\x0f+\xae\xae\xcch\xf3\x10#.\xfd\x1e\xae;\ +C\xb5\xeb\xca\xc7\xe2\xe84\x01\x07GY\x97\xe0\xddn\ +\x9f\x8b\x02\x12\x15\xd3\x90\x13\xa4:\x9fv\xec\x18\xfcJ\ +5\x80\x80\x96\xe8B\x92\x18\xb4\xa38\x14\x1a+\xca\xae\ +\x88\x09\xeb\xf95\x1e,\x0f\xae\xa9\xb7\x8d\x9e\xd3-d\ +h\xd2{\xaa?wo-\x14\x94 \x8b^\x0c\xb8y\ +\x83\x09\x9f4r\xfchb@\xc1\x87\x22\xb2\x89\xf3\xc3\ +\x09\x1e\x97\x9b\xdeZ\x1b\x86yW\xdb6C<\xda0\ +\xce\xd8\x97\x0b\x06E\x17\x05c\x86\xbc\x1f\x5c\xff\xf8\x8b\ +\xfb\xe7\x07\xe8%\xff9\xcc\xe2N\x87\x22\xcf!\xee\x0a\ +\x1b\x806\x87\xa8\xda[\xd3\x87\xcayV:@\x19\xd6\ +\xf2\xcdX\x94\x8dFx\xbaZ@Wa\xd3\xe7\xf7P\ +O$\xd5D\xb3\x19H7\xebGB\x87\xd0lq\xcc\ +gD\x86X\x11M\xf1\xed\xb0g\xb1 \xe15\xa4\x18\ +\x80\xdc\xe2F\xd7\x9f1L@HQ\xc5\x90\x14\xbc\xa5\ +;L\x02\xe5\x01\xa1\xf6y2$\xfeZ\xa4\xf9\x98\x0a\ +\xad\x8c\xb1\x19D@\xb5`--\x89 k\xac\x8d^\ +F\x00\xdb\x81\xd4\x05\xda9\xe95\x1bcQ[\xd6D\ +((\x15z\x0c\x84mJQ\x1eb\xaa\xe8\x19L:\ +\x84\x13(\x94\x12i\xca\xcf\x01.\xc0:\x84$\x80U\ +#\x8e\x05\x16\x0f\xa9\x96\x9a\x0b6\xf0\xe0\xd8\x87\x8d\x17\ +%\xd3r\xb4\xba\x9a\xaa\xa4(\xe4\x0a\xd2\x11a=t\ +\xd5\xf9\x86\xcd\x96\x83\xcc\xb8\x1e\x1d4D\x08#@\xee\ +::\xa0\x95\xe0\x1a\x11\xc4g\x18\x83\x1d\xa4\xc2\xcaE\ +\x87@\x9a\x102>\xf2\x22/\xc6\xb6\x17\x08a\xff\x9c\ +y%\x84\xba\xd2\xa2\xa4\xd2\x9a^,s\xad\xb8\x17p\ +\xe9\x84\xa3J\xcc\x02,C\x821b\xda{\x84\xfb\x92\ +F\x8cQ\xea\x1d<\x16R\x0e>\x17@\x0d:\xf2\xe7\ +\x91\xe5_\x95\x1b\xba!\x09\xed\xc9\x7f\xa7\xd8\xfc?'\ +6\x0a\x85\x84b\x84'\xc5\xa6\xfc7\xc9\xad\xbe\xb5\xdc\ +8\xa4\x0c1,'\xe5fW\xe4fSro\xceO\ +\x88l\x1aA\xddy0Y_\x97\xbc\xcb\x1eM*q\ +=\xf4\x07\xcd'\xa5\x9c\xd1\xc9\xe6\xb3n\xc6\x10JX\ +\x14]t_\x00\x00J\x5cl\x7f\x99\xd8\x00V\x94S\ +\x00\xba\x13\xee\x0f\x86\xee\x02#\x88V\x92B\xbeK)\ +\x00M\xe8yn_q[ge\x0a-=!\x14\xf6\ +b\xa1\x84\x86\x10+\xb0&\xd4\x16\xe8#\x98\x00#\x07\ +\xae\xa7\xa0L0/\x83\x0bS\x08Q\xcf\xb9\x00!\x00\ +F\xa4\x0b\x1eh\x179\xb4\x0eZ\x03\x1f\xd8\x88\x01\x1e\ +\xcf\x82\x96\xff\x08\xd7)A\x98R\xa4\xf6\x17\xa0\x8f\x10\ +\xb4?\x80\x03\x15\xd6\x13\xae\xf4\xc9\x87B 0\x0a\xf8\ +\xf0R\xde\xaeZSL\xd4\xa5\x8f\xe7\x9b3\xc2\xf8\xd6\ +\xf1\x96\xbb\xc7o\xb9\x81\xb8X\x14\x8a~\xf5\x0d\xa4)\ +\xb9_q\x03AJ\x93\x0b\xa1]U\xe3\x02\x12\x0a\x0b\ +&/\xb8\xae\xb2\x89P\x0b\x81\x99\xd0W\xc3\x1d\x92\x9e\ +N\xdeI\xdev39\xbb\x9f\xb8\xdd\xd8\xc4\x84\xd15\ +\xe55\xed\xbf\xa0\xf1\x97t>\xd7z\xfa\xc6\xf2?\x1d\ +-\x12\xec\x82'\x83\x05pEA\xcb\x87\xd8k\xc1\xc2\ +\xd07\x0d\x16\xf5{\x04\xcb\xb4\xca\xe7J\xff?V\xce\ +\x0c\x87C\xe6\xdaIq-X\xa0\x8feR\xbd\x1e,\ +\xc1\xb7\xc5\x16\x15\xfc\x0e\xe8rU\xefs\xcd_\x8b\x98\ +\xb3\xd2t\xa5\xc3\x17\xec\x8b\x1d~]J1\x81\x1a\xdb\ +4\x02\xdd0\xe0\xee5\x87c<\x0bT\x88\xb5T\x84\ +\xb375\xf9o\xb8\xeb\x8e\xab\xef\xa5\xa9\x9cy\xdd/\ +4\xa3\xbbm\xfb\xaa\x9e\xda83W\xf2\xa0wI\xdf\ + NG\xebd\x07\x05y!)\xa6o\xbb\x95>\x98\ +\x83\xc9\xbe\xfeV\xea\xa8\xc5z]\x9aj\x81.n\xaa\ +w\xbb(\x85\xfc\xab\xdf\xa3\x9a\xb4\xbdj6\x8c&\xfa\ +\x5c\xf7*\x03\x17N\xaa\x05\xe1\x97\xc1\xec\x9ee\xb0\x0a\ +%\x22\x92]Z\xdd\x02\x93\x01\x06Ph\xa3\xde\xd6\xa8\ +\x8fR\xa31\xe8k\xef\xd9\x97\x16\x97!TR\xc1\xde\ +f\xf1\xda\xc8\xdf\xea\x1d\xa0\xebW\x09\x98\x8b\x11h2\ +g\x14\xae\x0fD\xc3m\xd6\x03\x1bA?,\xb5{\x93\ +\xc6\x081\xf5\x9a\x17./)o\x7f\xcb9\xc3*\xb0\ +\x97q\xbf\xd4\x94+?\x8e\xcf|0\xca\xf9\xc1\xa0\xfb\ +\xda\x7f\xe9\xe0`\xf2\x9d\x00\x1ae$$Q\xd0\xa0\x13\ +\x1e*%A\xe7\xf1\x93\xfb\x86a\xd6?J\x9c?\x7f\ +\x09\xdck|\xed!\x02\x13\xa6\x89n\x7fw\xa8%[\ +\xba\x1f\xb6\xee\xdf\xfd\x1b\xda\x80\xb5 \ +\x00\x00\x06\xc6\ +\x00\ +\x00$\xebx\xda\xddZYo\xe36\x10~\xcf\xafP\ +\xb5/\xbb\xa8EqxS\xb5S\xa0],\xd0\xd7\x1e\ +\xe8\xb3\x221\xb6\xba\xb2dHr\x9c\xf4\xd7w(\xdf\ +\x87\x80\xb4pQ\xd7r\x82\x84\x9c\xe1\xf5\xe9\x9b\x8b\xc9\ +\xf8\xfb\xd7y\x19\xbc\xb8\xa6-\xeaj\x12\x02\xa1a\xe0\ +\xaa\xac\xce\x8bj:\x09\x7f\xfb\xf5Kd\xc2\xa0\xed\xd2\ +*O\xcb\xbar\x93\xb0\xaa\xc3\xef\x1f\x1f\xc6\xdfDQ\ +\xf0c\xe3\xd2\xce\xe5\xc1\xaa\xe8f\xc1O\xd5\xd76K\ +\x17.\xf88\xeb\xbaE\x12\xc7\xab\xd5\x8a\x14\x9bNR\ +7\xd3\xf8S\x10E\x8f\x0f\x0f\xe3\xf6e\xfa\x10\x04\x01\ +\xae[\xb5I\x9eM\xc2\xcd\x80\xc5\xb2){\xc5<\x8b\ +]\xe9\xe6\xae\xea\xda\x18\x08\xc4\xe1^=\xdb\xabg~\ +\xf5\xe2\xc5e\xf5|^Wm?\xb2j?\x1c(7\ +\xf9\xf3N\xdb\xeff\xc5{%\xb0\xd6\xc6\x94\xc5\x8cE\ +\xa8\x11\xb5oU\x97\xbeF\xc7Cq\x8f\x97\x862J\ +i\x8c\xb2\xbd\xe6\xfb\xb4\x92\x16\x01]\xe0\xf7N}\xdb\ +A\xdaz\xd9d\xee\x19\xc79R\xb9.\xfe\xfc\xeb\xe7\ +\x9d0\xa2$\xef\xf2\x83i\xb6x\x1e\xadz\x04r\x95\ +\xce]\xbbH3\xd7\xc6\xdb\xfe~\xfc\xaa\xc8\xbb\xd9$\ +\x14\xa6o\xcd\x5c1\x9du\xbb\xe6K\xe1V?\xd4\xaf\ +\x93\x90\x064\x10\x06\xbf\x08\xf5\x0f\xf4\xd2\x22\x9f\x84x\ +\x1a\xb6V\xdd3e#\xdd\xac\x92\xec$\x94XFx\ +\xf0\x91\x09*\xa5P\xa3\x80Q0\x11\xe5\x11\xc0\xa7~\ +\xc8\xf6xI^g~\xbf8}6ss|\x9b\x19\ +\xf1\xb0=\xa2\xd28w\xcf\xadW^\xaf\xef[\x22\x0c\ +\xe2^\xb4\x1b\xef\x07\xe7~\xf3{\xc5\xa7\xb4]\x1f8\ +\x08\x16\xe9\x14\xc9Q\xd6\xcd$\xfc\xf0\xdc?\x1b\xc1S\ +\xdd\xe4\xae\xd9\x8aT\xff\x1c\x89j\x04\xb0\xe8\xde\xd6\xe6\ +\xb0\x99{{L?\xebNN/\xcb\xdbY\x9a\xd7\xab\ +I\xc8N\x85\x7f\xd6\xf5\x1cQ'\xda(!\x0d?\x15\ +g\xf8\x0a\x04\x10\xa9\xad\xa5\xfaL\xe8\xf7#\x09\xe7\x16\ +@\x9e\x0a\x11\xc9\xa57\x98hY\x15\x1d\x92r\xf1z\ +6|\xd94^\xa1L\xdf\x1c\x1e{\xca\x85\x80\x8dN\ +;\xabW\xd3\xc6\xa3\xf7\x9c\x96;\xf8\x06gZ\x15\x15\ +\x9e.\xda0\x0a\x8c\x84\x01\x8d-\xcb\x8029\xa0\x82\ +\x07Vv@\x86\xe7ez@6O_\x8by\xf1\xa7\ +\xc3=\xc3\x96\x16s\xd7\xa5y\xda\xa5{2l{t\ +O)TA{O~\xfe\xfce\xdd\xc2v\x96%\xbf\ +\xd7\xcd\xd7M\x13\x1f\xaf\x90>\xd5K\xdcu\xf8\xb8\xeb\ +\x1e\xe7Y\x82\x16\x8a\x0c},\xe6\xf8~\xbdq\x7f\x8b\ +\x169\x8e\xf7\x82#\xe5\xeem\xe1\xf6\x93\xae\xa7m\xdc\ +\xda\xd4/\xfa\xbb<\x9b\x17~P\xfcKW\x94\xe5O\ +~\x91\xcd\xb1\x0e&-\xba\xd2\xed;\xc7\xf1f\xf7\x9b\ +\xb3\xc5\x07\x87\x1b\xc7\xdb\xa3\xf7\xad\xe9\x09\x88e\xfa\xe4\ +\xcaI\xf8c\xbaH\x83\xb3\x977m\xea\xe5b^\xe7\ +\xb8\xd1\x9e+\xe1\x1e\xcf\xbe\xbd\x1d\xd05i\xd5\xfa\xc3\ +O\xc2\xfe\xd7\x12c\xc1G:\x8a\x80RA\xb8b\xec\ +\xd3\x16\xf5\xe9\xf6\x18~\x8eC\xe2\x1dM\x82 6\xc5\ +\xebGJ\x8cR\xa0\xb8\xe4#\xea?\xfb&#Jj\ +m\xb4\x1d\x01\xd7\x044\xe3\x1b\x7f\xd2s\xb8{+q\ +\xc7\xcf\x88^\xb2\xb1\xf6\xef\xda\xae\xa9\xbf\xba\xe4\x83\xc8\ +\xfd'\xdc\xbf\xf5\xa2\xc9\xca\x83\xf7\xd3xC\x97\xe1\xbe\ +\xa375J\x0d\xe1 \xf5a?\xd2\x95\x09\x22\x85\xb4\ +\xc6\x1c\xf4\xfbs-\xd2n\xc69W\x07\xdd\x97\xf6\xe4\ +\x1b\xd1\xc6\x7f$\xb0n6\xcb\xd2%\xee\xc5Uu\x9e\ +\xef6m\xfbg\xd3\x5c\x1b[\x02\x8b\xd7mGYT\ +\x0e_W\xf2\xb4\xec\xba\xc3\xbe?\xea\xa2J\x90K\xae\ +\xd9\xf6\xee\x16; \xd4{!\x00N\x80\xdbS\x08\x10\ +}j\xa8\xa0l\x00\x82\x88\xdf\x15\x08L!\x9dA\x9d\ +\x80 8\xb1\xc2\x22\x1b\x87@\xb8/&p\xeb\xad\x8f\ +\x9f\x82@\x89\xa0\x82\x0b>\x04\x82\xbe+\x10\x84&\x9a\ +\x9a3\x8f`\x10\x1a\xab\xe5\xa09\xc8\xfb\x02A\xa2K\ +fp\x02\x02\x08\xc2\xa4\xa20\xec\x13\xee\x0b\x05.\x09\ +H\x90'(HB\xadB\x8a\x98A\xa7\xc0\xee\xcb5\ +bLV\xe6\xcc+\x10\x83D\x10\x1a\x86P\xb0\xf7\x15\ +$\x11\x04\xabN\xe3\x03\x00\x11\xc2\x02\x1b\xa4\x02\xdc\x1b\ +\x138\xb3\xa7\xf6\xc0\x01\xa9`\xc4\x91\xcb<\x06!\xa2\ +\xf7\xe5\x16\x18\xc1\xbc\xf4\x0c\x06d\x08f\xbd\xc3T\xb8\ +3\x8b\xc0\x04\xd1\x08v\x1a&}a\x0bL\xb3a\x14\ +\xfe'y\xa3\xdf\xf1\xc1\x19v\x15v]\xe1\xb4]\xdd\ +DXk\xbf\xa4\xdd\xb2\xc1\xfd\xd3\x0b\xa7\x15L\x1e\x1a\ +\xbf/T\x03E\xa84ZZ9B[\xc2\xac[I\ +\x16h\xc2\x14\xa5J\xca\x11\x96\xfd\xda\x9a\xf7\xa0\xf3~\ +8\xfe>\x18}\xa3\xc4\xba\xbbK\xc4\xb6/O\xdbY\ +\xda4\xe9[R\xd5\x95\xfb\xb7a\x93\xa7\xb01_\x1f\ +\x1a\x0c\xba\x08\x1bhb\xb1\xb8\x0c8\xa1\x0c\xfd.\x1f\ +E\x98\x98\x09j\xaf\x0a\x9b_\x8fY\xae\x99\xbe%:\ +\xe9S\x5c\xc0\xfb!\x8a;\x1d\xf5\xf1\x89\x09\x90\x01P\ +\xacX\xb4\x11b\x14q\x82\x19\x1c\x5c\x19\x18+\x94\x05\ +\xa5\xd5-\x01c\xcf\xed\x8c#G\xa4\xf4\xc0`\x0e\x87\ +\x95|\x00}%\xc7\x8d\x85\x11\x10k\xb5\xbd:.\xfe\ +\xc2\x00\xf8\x0d\xe1\xa2\xe0\x82!I\xad\xad\xf6\x86\xc4\x0d\ +\xd1J\xc8 B|\x941\xdc\x8e\x14a\x8c\x9ak\x1b\ +\x12\xb2\xd2\xb2\x9b\xe2\x8b\xe2g\xb8\xa0\x13\x06i,\x1b\ +\xad\xcb?t\xccA\x84\xb9\x9dF\xa3\xe30\x8a\x80(\ +\xad\xafN\x18.\x05\x03sK\xc0\x9c\x19\x12\xc6x-\ +\xac\x06\x1f\xb0\xb0\xf8\xe3T\xeb\xc0\xdfN3*\x90C\ +@8F\xb3k\xe3\x02\x80a\xf0\x96\xe2\xb8>\xb3#\ +\xc1\x884\xe8_F\xfd\xbd\x11\xd5\x5c\x04\x91%^S\ +2\xefw\xb9T\xd7\xf6\xbb\xdaR\x81\xab\xdd\x12]\xf4\ +Y\xa0\x16\xfe\xf5\xf9\x0b\x82\xb5\x7f\x91T\x8b\x00c\x94\ +\x95\xbc\xb7\x22\xf4\x06T]\xdd\xc1p\xaa4h{K\ +\xc0\x9cGjt\xb2\x80Et\xefx)\x014|\xb4\ +#\x00\xa0F\xa3\xdf\x15\xe6\xea\xb0h\xc1\xb1&\xa3\xb7\ +dGG\xb9\xed\xda\xefb\xb5\x80\x01\x9a\xf5\x89\x9d\xbf\ +{4:0\xc42\xa9\xf4\x88\x11\xd0\x92_\x1b\x15L\ +\xb5%\xa3\xfc\xa6\xbcKt\x16\x8f\xb0\x944\x18\x8f\x94\ +\x8fGX]\x0b\xcdT\x10!\xd5Aa|\x1aE\x98\ +\x02#T\xd7\x86\x86S,\xd0,\xbb1h\x8en\xd8\ +\xd7\xe0X\x22A\xaf\x835:\x19\xcc\xe8\xd0\xfbz/\ +\xac\x14\x02\x86\xe9\x0c\x03q\xf3\xe0\xbc\xf7\xd6\xc9bV\ +\x7f\x94\xab\xf6E6\xc5\x9aQJ*\x87\x8b\xec\xab]\ +\xc9S\x9a\x8b4\xfd\xaf\xef\x9d,\xa1 /\xdcFc\ +\xc5\xa3\x94\x1d\x86A\xfd?`\xb8B\x0d\xc4/\x84\x1c\ +j,e\xc2')\xda\xc7\xe5 \x0b(\xa6pT\x03\ +\xfa\x10\x8a\xe9\x0az\x15\xe1o\x1f\x00\x98w*\x12\xb0\ +\xae>\xed\xf8\xc7\x86t\x091\xffO#\x06\x0dV\x8a\ +\xeb@7\x8e\xa7\xeb?\x84\xe3\x8f\xb1\xff{\xfd\xe3\xc3\ +__|\xbf\xa1\ +\x00\x00\x0a\xb1\ +\x00\ +\x000Hx\xda\xedZk\x8f\xdb\xc6\x15\xfd\xee_\xc1\ +*_l\x943\x9a\xf7C^9@\x13\x04\xc8\xd76\ +E?\x16\xb4D\xef\xaa\x96\xc8\x85\xc4\xf5\xda\xfe\xf59\ +w\xf8\x90DJ\xb1\x93\xb4@\xbd\xb6\x16\xb6\x86\xf3\xbc\ +s\xe6\xcc\xb9\xf7r\xf7\xe6\xfb\xf7\xbbm\xf6\xae\xdc\x1f\ +6u\xb5\x9cI.fYY\xad\xea\xf5\xa6\xba]\xce\ +\xfe\xf9\xcbO,\xcc\xb2CST\xebb[W\xe5r\ +V\xd5\xb3\xef_=\xbb\xf9\x0bc\xd9\x0f\xfb\xb2h\xca\ +u\xf6\xb8i\xee\xb2\x9f\xab\xb7\x87Uq_f\xcf\xef\ +\x9a\xe6~1\x9f?>>\xf2MW\xc9\xeb\xfd\xed\xfc\ +E\xc6\xd8\xabg\xcfn\x0e\xefn\x9feY\x86u\xab\ +\xc3b\xbdZ\xce\xba\x01\xf7\x0f\xfbm\xea\xb8^\xcd\xcb\ +m\xb9+\xab\xe60\x97\x5c\xceg\xc7\xee\xabc\xf7\x15\ +\xad\xbeyW\xae\xea\xdd\xae\xae\x0eidu\xf8\xee\xa4\ +\xf3~\xfdf\xe8M\xd6<\xea\xd4I\xc6\x18\xe7B\xcd\ +\x95b\xe8\xc1\x0e\x1f\xaa\xa6x\xcf\xce\x87\xc2\xc6KC\ +\x95\x10b\x8e\xb6c\xcf\xcf\xeb\xb58\x00\xd0{\xfc\x1b\ +\xba\xf7\x15\xfcP?\xecW\xe5\x1b\x8c+yU6\xf3\ +\x1f\x7f\xf9qhd\x82\xaf\x9b\xf5\xc94=\x9eg\xab\ +\x9e\x81\x5c\x15\xbb\xf2p_\xac\xca\xc3\xbc\xafO\xe3\x1f\ +7\xeb\xe6n93!=\xdd\x95\x9b\xdb\xbbfx|\ +\xb7)\x1f\xffV\xbf_\xceD&2\x13\xb8\xa0\x8f<\ +\x96R\xa7\xcdz9\xc3\xa6T;\xe2H\x98\xae\xb5[\ +l1\xb4\x08\x1e\x15\xd7\xd9se\x84\xb5\xc6\xe5\x99\x12\ +20\xa1\x99\x94/\xd2\x90~\x97\x8bu\xbd\x22\xb3\x97\ +\xb3\xdb\xfdf\xfd\xef\xcd\xaa\xae8\xa1\xf7\x0a\x9dn\xd6\ +\xe5\x9b\x03un\xd7\xa7'3\xcb\xe6\xa9i\x18O\x83\ +\xd7\xb4\x87c\xc7\xd7\xc5\xa1\xddw\x96\xdd\x17\xb7\xe0\xc8\ +\xb6\xde/g\xdf\xbdI\x9f\xae\xe1u\xbd_\x97\xfb\xbe\ +\xc9\xa5\xcfYS\x0d\x1c7\xcd\x87\xf6Vts\xf7\xdb\ +\xa4Y\x87vq\xb9\xfdpW\xac\xeb\xc7\xe5L\x8d\x1b\ +?\xd6\xf5\x8ef\xb5FE\x17\xc2\xb8y\x85\x93`\xd2\ +X.\xac\xb4r\xd2J\x06I\xc9ut\xde\x8c\x1b\x01\ +\xe5\x03]\x1c\xf6Pm\x1a\x90\xf3\xfe\xfdd\xf8\xc3~\ +O\x1d\xb6\xc5\x87\x12\xfbN_\xfd\x1a\x87\xbb\xfa\x91\xce\ +`9{Sl\x07\x00\xafN\xf5\xb8\xa9\xb0?\xd6Q\ +K\x86\xa9\xad]\x8f\x9enR({\xa5\x0b\xb6\xec\xe2\ +\x956lX\xf9+m\xbb\xe2\xfdf\xb7\xf9X\xc2f\ +\xd9\x13cW6\xc5\xbah\x8a#\x1d\xfa\x1a\x9fH\x85\ +.\xb8\xf8\x8b\xbf\xff\xf8S\xfb\x84\xe7\xd5j\xf1\xafz\ +\xff\xb6{\xc4\x87:\x14\xaf\xeb\x07X={5T\xdf\ +\xacW\x0b\x5c\xd5]\xd1\xbc\xda\xecp\xc2t\xcb\xff\x8a\ +\xaby3?6\x9cun>\xdc\x97\xc7I\xdbi\xf7\ +e{\xe7/\x0a\xdfz\xb5\xdb\xd0\xa0\xf9?\x9a\xcdv\ +\xfb3-\xd2m\xebd\xd2M\xb3-\x8f\x957\xf3\xce\ +\xfano\xf3\x93\xcd\xdd\xcc\xfb\xad\xa7\xa7\xdb\x11\x88\xdb\ +\xe2u\xb9]\xce~(\xee\x8blrx\xb7\xfb\xfa\xe1\ +~W\xaf\xcb\x8e%\xb3#\x9eg\xaci\xf6Eu\xa0\ +\xcd/g\xa9\xb8\x85Sx.r&\x850\x5c;\xa5\ +^\xf4\xa8\xdf\xf6\xdb\xa09n\x83\xd7\xb3\xbe\xe2\xe2\x1c\ +,\xe0\x0aH\xa1!\x1e\xcc(\x1eL\x08\xe1\xc50\xe4\ +\xd0|\xd8\xc2\xb4C\xb3\xaf\xdf\x96\x8b\xefb\xfa\xbcl\ +\x1fYw5\x17r8\xbc\x9br\xbb\xdd\xdc\x1fNN\ +c\x0f^\x19\x1e\x83w*\xccN\xaaAE\xcb\xa5\x91\ +\x22j\x7fR\x9f\xee\x9d\x90\x8aK\x1b\xcf\xea\xd1?B\ +(\x83\xd3\xea\xb4\x9e\xf6x_4wFjwR\xdd\ +\x99=\x18\xf8\xf2\x0d\xcey0\x9f\x1e\xd8y\x1b\xdb?\ +l\xcbE\xf9\xae\xac\xea\xf5\xfa\xe5\xe5\xed\xa6+\xb8\xb0\ +\xfd\xe3vS\x95\xff\xa97\xd5\x02'X\xf5c\x18\x88\ +U\xee\xb7\xb8-\xcd\xc2\xf4u\xeb\x02\x22\xb5\xdf\x17\x1f\ +\x16\x15\xbc\xfb\x14\xbd\x13\x96]\xc1\xcf\x04\xe9\x80\xd4\x08\ +@\xc3\x9d\x8cVX3\x01\xd0\x08.\x95\xd7#\x00\xa9\ +Vzc\xf4\x15\x00\x99|\xb2\x10Znb\xd4B\xd8\ +\x09\x07\x9d\x83\xa4\x8a)\x84\x10\x7fc\x83\x1bA\xa8#\ +wV*\xe5\xaeA\xf8tY\xe8\xb8\xf6\xce\x06\x1fG\ +\x10:n\xbd\xf2Q\xca)\x0b\x15\xb7R\x8fY\xe8\xb9\ +3N\xf8\xeb,TO\x98\x85\xdeXe\xce\xd8\xd3\xb2\ +0*\x04n\xd1N T\x1e\xa8\x9b8\x82PY\x0e\ +\x95\x0e\xee*\x0b\xc5S\x80\x90vs\xb2\x8d!\x10\x85\ +\xb3$\xe7\x8dhi\xb5:\x05`\x08\xbe\xea\xaa*W\ +M\xbdg\x08\xc3\xde\x15\xcd\xc3\x1e\xdb\x17\x17\xa1\xf2\xa7\ +\xa4\xa5\x10&\xc3\xb5wA\x89hr\xf8\xc4\x08\xbd\x0c\ +2\x93\x1aA\xa2B\x98\x98\xb3\xc8\x8d\x17\x17\x08:\xc5\ +\xf4\xb3A4\xa7 b\x03\xe7\x18\x0e\xc8&0\xbf \ +d\xf5\x04Y\x01\xd2*K\xc0\x02P\xc4\xd5\x8a\x80u\ +QK\x15sx|\x0fu\xf9\x06\xec\xa7\x81\xb5c`\ +u\xe0Z8\xadU\x8b\xac\xf3^f\x8cr\x17-\xad\ +\x95\x04\xadu\xd2}\x83\xf6\xd3\xd0\xfa1\xb4\x90_\x85\ +8J\x82\xa0BE\x1e\x11l\x93Bh\x1f\xb4\xf19\ +\xe4A\x85\xf8E\x03{3\xbf\xbd\x9c6\x04\xff\xdbi\ +\x03\x02wD\xf5\xce\xe8< }\x88\xc1\x98\x17\xb3+\ +g\xf5\xfb\x8f\x22\xa8\x89.+\xc5q\x10Q\x85<\xa5\ +\x07VD\x9bid\x09FY\x9bk\x88\x87\xd2\x99\xe4\ +A\xc7\x18d\x0e?+\x8c\xc9<\x12\x86h\xac\xcf\x19\ +\x06x'\xaf\x9cTB\xe8\xfa1\x05A?\xe7\xc7\xa4\ +?\xef\x98\xbe(o\x18T\xfc\x1c\xd0\x99G\xdafD\ +\x0c\xa0\xbf\x89\x22>!P\xff\x00fZ^\x92\x0c\x87\ +t\x8d\xfc\x9c\x92tGT\x86\xecC+$\xae\xb9\xe7\ +\x11\x92\x911d\xc4\xc29\x19\xc0T\xe1\xce\x92\x8f\xaf\ +\x11C\xfd9\xbc\x93\x5c\xea(4.\xb3\x86&\x0b\xfd\ +\xe4/\xf3\x9f\xbd\xcez\x12(H\x0b\x87\x15\x83&f\ +*z\xebl2\x8a\x0d\xbc5\x11\xcc\x0cJ\x99l\x95\ +1\x01\xf7\xa6\x82\xf7PU\xad\xbd\xcf\x04(j]\xae\ +8\xf8\xea\x10XPL\xecR\xb0\x01\xe1\xd7\xd9\x162\ +l\x85A\x0a\x082[%\xecWN\xe6I\x0c\xa1\x11\ +\xda\x02\xea(\xdb\x18\x22\xc4\x989b0\x5cln\xb8\ +0A\x13\x82QQD\xe1\xb8\xf0\xea+G\xd0\xe8\x0b\ +\x92\xea\xa3\x0e\x9e\x88\xab!\x9d6\x1a\xb0\x12\x91\xb0\xd2\ +D:\xa3\x82\xfd\xe6\xda\x7f\x1bS{!\x1b\xa3W\xa9\ +*\xb12\xc0?\x01S\xe6\xb8\x91\xc6\xc3\xa9\x03U'\ +\xe2W\xee\xdb\xcd4\x1dHd\x93IA%.1\x8a\ +\xf0\xed\x01\xc1&\xbd\x1bP\x1c.\x0bI-I\xabv\ +\x019\x03\xf7&\xa8\xaf\x1c\xc4IP\x89\x1b\xac\x90\xeb\ +'\xe6I\xc4\x90\xf8?\xa3\xac5F\x1b \x88V\x04\ +\x93\x19\x8e\xa4K\x07\x93\xe3\x9a#\xa6\xff\xe6\xeb?\x81\ +\xb2\xfd\x1c_\x8f\xa8\xd3D\x8f\xc4\x0dn\x06\xf7=\x03\ +a\xa54\xc8\xdc(.\x05T\x92z$\xdc\xa5Cp\ +\x0f\x86\xfb\xaf\x9b\xbb\xf6\xd2\xfb\x80\xe8\xa2$\xea\x1a\xc4\ +I\xc1G\xc4\xa5J9g\x15\xf2`\x19\x82{\xfaT\ +\xfd\x93\x9e\xc8\xb3\x89\x7f7\x9c\xd2ve\xdb\xf7W\xd2\ +j\x9b\x11U\xad\x0d\xc6\xc1\x13\x05\xeb\x02\x85L\xda\x18\ +%\x0c\x02\xd1\x18\xc5\x17\x9c\xcb_}\xe5\xe2\xc3\xf8\xd7\ +\xae\xbf\xf5\xa6\xfeS\xbf\x92\xbd\xf0\xf6fW4\xfb\xcd\ +\xfb\xe7\x021\x7f4\x11\xe1\xa7\xa0\x9f\xe1\x09\xe4v\xd6\ +\x04\xa1rC>\xcc\x00\xfe\xeb\xeft\xba\xf3T\x13\xdd\ +q\x1c\xf9\x84S\x94\x1fD\xc9\x8dA\x8a\xb0\xa2\xac\x01\ +7D\x90\xe4\xc0/bI\xa8\x8f\xe6\x11\xea\xc4\xadA\ +\x0a\xc1$\x9c\x82\xa5?\x83\xd19\x0b\x5cK\x8c\xa1_\ +V\xe6\xc8F\x8c\xa5b\xa0bT]\x11\x13g\x225\ +\x06JX\x84O\xad\x96\xca}\xf36\xc3\x9cR\x0cs\ +*\xb2CRWIY\x0fVFb\x8e\xf8;\xb4%\ +$;\x12\x06:r\xe3.\xd2\xb7\xa3\x15\xa8:KU\ +T\xc1R5\xeb\xfa\xb2\x94\x14E\xfa\xa6\xbe\xc9\x98d\ +K2%Y\xd2\x1a\xc2N,\xe9\x0ca\xc9\x12\x96\xe6\ +\xb6d0L`\xc9\x9a\xae\x8c5\x04\x1d\xac\xa7\x85,\ +oO\xd9w\x0b\x1e\x9fi\xe1dc2\xd1e\xa7-\ +\xc06`\xb4\x86\x92\x13<\xfdv\xdb\x05\x12<=\xe4\ +\x1d\xe2\x84\x1emC\xa5\x92C\x91\x12\xbeT\x94\xd4\x83\ +\x96B\x80C\x99 ]KM\xb1\x8fnK\xd4\x80\xb5\ +R\x05\xc1%\xbbbj\x14m\xce\x9ep\x94]\x1d;\ +i\xff\xf8\x87$\xe5\xbfpG\xae;\x8b\x9e\xdeS\xb1\ +b\x88\x96\xad\x8c!\x90\x5c\xb9\xc0\xbd\x0b!\xb15\x0a\ ++\x08(\xa5\xa4\x22\xaf`\x5c\x00\x81\xb1e\xaf\xe9\x99\ +\xc2lK\x09\x9f7\x944\x93\x7fvRir\xc68\ +\x05\x9b\xa6P\xd1\x09\xd4P\x0an\x1d\xe58N\xcbh\ +\xd3\xe1EE\xaf@\x04\x92\x9e\xf6&x\xc2\x15\x1e\xc8\ +:M\xcf\x98\x9b\xc8\x17\x90g\xb6\x97\xc1\x0a\x04\xf4\xb0\ +\x02\x13\x98v\x86\x10\x13\x159Fz\xc4\x00\x8c\x02X\ +\x15LKFc\x84\xc51\xd3L\xce\xa4\x93B\x1a \ +Ub\x8b0:\x10!\xbdN9+\xc5\xb9\x12[B\ +K\xc4D\xa2=p\x1bu\x9a\x87\x22\x8a\x9c\x12\x09\xa5\ +Z\x14\xbcG\x18Gw:\xb6,E\xa6K&\xb7\x83\ +\xb3\xd4Qj\x00\xd7\x0e\xb6Y\xea)\xb4JP\x1a\x1f\ +\xb2n\x19\xf0\xab\x1d\x9d\xb5\xab\xd0\xb4\xedhZ7\xad\ +c\xf348\xbd\xc2 `\x88\xcc\x09\x186 #\xba\ +\x97\x98\x032\x09\x18I\x07\xd2\x03\xd3\xe2\xd2\xaaE\x0b\ +\x0b\xf5J\xb0\xf4\xa8\x90n\x09\x0a\xa1:PB\x9e0\ +\xd1\x83\xad\xda\xe5\x1d&\xed\xae\xa4\x8c#c\xe9\xb7\x89\ +\x9d\xb5=(\xa4I\x09\x14\xd6\xa3\x22\xf3\x0e\x14\xd6\xa1\ +\x82-\xb1\x0e\x16\x22\x81\x11>\xaaT\xe3(}\xc3w\ +4\xd2\x05:\x10\x1f|\xaa\x91\x0a%\xfa\xd3\x1e\x8c\x02\ +\x85\x88\x01-\xf3\x90M\xb3D=\xdd\xde|\xc4\xe4!\ +\x10bZS\xacH\x1am\x9d#\xc4\x9c\x11I\x06\xa2\ +\xf52\xa9w\x14\xa4\x0b\x10\xae\xe0\xa2\xa64'J\xaf\ +\xc9j\xe4\xe31\xa9\x9e\xf6&\x19--r\xf4D\x22\ +\x5c\x8ad\x0fu\x05\x18i\xb4\xa7\x0a\xea*\x13e\xd0\ +3k;\xe2\xac\xdb\xc1:\x1bV\xe9\xc6f\xc3*\xdd\ +\xd8\xac[\xc5\xe7\xdd\x22\xff\x87j\xf2\xbb\xc3$\xe8\xce\ +\xd9_\x92\x0c\xca#\x9ct\xe4\xb2D\x84\xb3\xd6\xde\x9d\ +(\x0f\x1bK\x0f\x1bi\x0f\xbb >l\xaa>#\xf1\ +\x19i\xcfHz\xce\x95\xc7\x85\xfc\x5cyL\xc8\xc7\xca\ +\x83\xcbrIy&\xc23\xd1\x9d\x89\xec\x8cUg,\ +:c\xcd9\x97\x9c\xe1n\xf5Wk\xb8Y\xfd%\xee\ +t\xed(8\x9d\xae\x9d\x0a\x0e\x1b+\x0e\x9bH\x0e\x9b\ +h\x0e\x9b\x8a\x0e\x9b\xa8\x8e\x1f\xc4x\xa4\xc5'\xaa\xc3\ +F\xb2\x83\xe8\x98\x9d\xeb\x8e\x1a\xdbl\xe5`s\x07\x8c\ +\x19\xc4\x98\x0d\xd0\xb0\x91\xee\x98|\xa2:\x13\xd1\x99h\ +\xce%\xc9\x99(Nrv\xa7\x8a\x93\x9c\xd0\x99\xe4\xb4\ +\x0e\xef\x5cs\xd8Dt\xd8Du&\xa23\xd6\x9c\x91\ +\xe4\x8c\x15g,8\xe7z\xe3\x06U\xfb\xf8\xbf\x91\x91\ +.OH_7\xf47\xb0\xaf\x9e\xfd\x0a,nNV\ +\ +\x00\x00\x0b\x05\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ + 192 192\x22\x0a sod\ +ipodi:docname=\x22c\ +opy2up.svg\x22\x0a i\ +nkscape:version=\ +\x220.92.4 (unknown\ +)\x22>\x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \ -\x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x08\xb0\ +1\x22 />\x0a \x0a\x0a\ +\x00\x00\x04Q\ +\x00\ +\x00*\x95x\xda\xedZ]o\xa38\x14}\xcf\xaf`\ +\xe9K\xab\x1d\x8c\xcdW\x80\x85\x8c\xb4[\x8d4\xaf\xbb\ +3\x9ag\x17;\x09S\xc0\x91q\x9af~\xfd^\x13\ +>\x92&\xdd\xeev$\xb6R\xb1T)>\xf7\xda\xbe\ +>\xf7\xda\x07P\x93\x8f\x8fea\ +\x8f|g\x1e\x04\x1d^\xe4\x15\x07\xeeb)\xb6\x15;\ +\x06\xbf\x8b\xbc:E\xe1\xacsY\x00\xf9*\xf6:\x8c\ +Q\xa8X}\x0d\x9e,6D\xb2\xa19\xe4\xa39a\ +qI\xe5=\x5c\x8d\xc6\xc1\xc9\xd01\xf7\xb7\xc5\xab)\ +\xf6\x1d\xe4h\x8e\xc3WSl\xb9\x13\xc9/\x90\x1c\xfa\ +\xc8\xc5>\x0e\xbd\x9f \xd9\x0a&\x9a_\xba.H\x88\ +\xdc(\xec\xef\xd3W\xd1<\x9fh~\x89f\x9f \xc0\ +|\xf7gh\xf6\xdf\x07\xcd\x89\xbd:\x96\xcf\x7f\xd6\xcb\ +\x0f\xae\x8b\x5c\xdf\x8f\x5c\xf7\xc6<\x95[+\xfa\xff\xa5\ +\xd4\x9a\xc4t\x0c1\x9dh\x1eIN\xadp\x22z\x14\ +A\x85\xcbk\x22z\x0cI}/\xcf.\xffMT\x83\ +\x00\xcd\x1b\xe9;\x13U\xf7\x0d\x88\xea\xf4T?\x8a\xa8\ +\x92\x89\xe6qDuzz\x19KT\xa7\xcf.#\xa9\ +*\x99T\xf5\x5cU\x09\xc6\x08\x07\xf3\xf0\xfcM\xd5{\ +\x03\xaa:}\xc4\x19EU\xa77\xa8\x91T\xd5\x9b\x88\ +\x1eGU\xfd\x89\xe8qD\x15O\xa2zAT]\x17\ +y\x8e;?\xff\xfe\xeb\x06o@U\xa7\x97\xa8QT\ +\x15O4\x8f\xa3\xaa\xd3\xb7\x97\x91TuzU\x1dI\ +U\x9dw\xa4\xaa\x89\xfe\x7f\xbc\xc5\xeco-U\xb1\xe3\ +\ +\x00\x00\x0ee\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0a \x0a \x0a \ + \x0d\x0a\x0d\x0a\ -\x00\x00\x08T\ -\x00\ -\x00\x1epx\xda\xed\x19io\xe3\xc6\xf5{\x80\xfc\x07\ -\x82\xfe\xb2FEj\xeeC\x96\x1c\xb4X\x04)\x90\x22\ -@\xb2\xdb\xebKA\x93#\x991E\x0a$%\xd9\xfb\ -\xeb\xfb\x86\xe2M\xca\xebE\xb6\x01\x8aV\x86m\xce{\ -\xc37\xef>F\xeb\xef\x9e\xf7\x89s2y\x11g\xe9\ -\xc6\xc5>r\x1d\x93\x86Y\x14\xa7\xbb\x8d\xfb\xf1\xc3\xf7\ -\x9er\x9d\xa2\x0c\xd2(H\xb2\xd4l\xdc4s\xbf\xbb\ -\xff\xf6\x9buq\xda}\xfb\x8d\xe38\xe78*\x1f7\ -.Sn\xb5|4\xf1\xee\xb1\xec\xd6\xa7\xd8\x9c\xff\x94\ -=o\x5c\xe4 \x87)\xa7\x81\xc7\xd1\xc6\x05\x12\xa4\xde\ -\xd5\x9d\x8fk|\xfaT\x84\xc1\xc1\xac\xfa(\xe7](\ -\x94!$\xa4J.\x1c\x82\x08\xf6\x10\xf7\x08\xbd\xbd\xbc\ -S\x00\xd7\x07\xf8]EY\x98\x06{`6N\x0f\xc7\ -\xb2\xf8W\x90\x06\xc9K\x11\x17\x0e\xf1\xe1\xcc\xcbf\x10\ -;-V\xcd1\x1b\xf7\xb1,\x0f\xab\xe5\xf2|>\xfb\ -\x0d\xd0\xcf\xf2\xdd\xd2\x12*\x0eAh\x8ae\x03\xef\x13\ -h\xcel\x094\x00\xbf\xc8\x8eyh\xb6@\xc3\xf8\xa9\ -)\x97\xef?\xbco\x91\x1e\xf2\xa32\xea\xd1\x19\x9c\x7f\ -\xa6\xd5\xc9\x04!\xb4\x1c\xf1\x0b\xcb\xb7n\xcd\xa3\xed\xdc\ -V\xac\xb5^\x22\xb2$\xc4\x83\x1d^\xf1\x92\x96\xc1\xb3\ -\x97\x167\xfdw\xc3\xb0}5\xccMP\xc6'\x13f\ -\xfb}\x96\x16\x17\x9d\x0cwG\xdd\xee\xc31O\xaa-\ -Q\xb84\x89\xd9\x9b\xb4,\x96`\xb9\xa5{o_X\ -\xefM\x19DA\x19To_\xbc\xa0\x01ar\xd9\x03\ -\xbb\x80\xb1\xd5\xcf\xef\xbf\xaf\x97\x00\x08\xc3\xd5\xdf\xb2\xfc\ -\xa9Y\xc3\xc7n\x09\x1e\xb2#\xb8\x9a{\xdf\xc1\xd7Q\ -\xb8\x02\x95\xef\x83\xf2>\xde\x07;c\x95\xf2\x07\xe0r\ -\xbd\xec\x10\xc3\xdd\xe5\xcb\xc1\xf4\xe8^(\xe7\xe6b\xbd\ -Y\xb9\xa2p\x1f\xdb\xb7\x96\xbf\x94q\x92\xfc\xd9\x1e\xe3\ -:\xcb\x8e\xd9e\xcdm#\xcd\xb2/\xcez\xd9\xc8{\ -YFf[\xf4\x94a\x97\x18\xb5\x8a\xd8\x07\xf9\x93\xc9\ -[\xf6\xda\xa0(\xca,|\xb2\xfb\xff\x98\xe7\xd9\x19\xff\ -\x08\x01\x9a\x97n\xbb/\xcbcP\xfc\xc6\x0d\x8ee\xd6\ -As\xb3\xfd\x07\xc4!Dx\x1f\xf4\xf7\x11\xe8:\xd5\ -\xa2|I@#\x19D\xe46\xc9\xce\xabS\x5c\xc4\x0f\ -\x89q\xa7\xec\xc5E\xc5\xe0\xc6-\xf3\xa3\xe9\xcc\xb3>\ -\x04\xe5cO\xd7\xf6(\x0bb\x5c+\xb7\x07\x07\xf0_\ -\x1c`j\x01\xbf\xce\x8f\x0e\x87'\x8fW\x8f\x1e&>\ -\xef\x81/\xd0f\xeb'\xa7O\xa5fw\x0b6\xf2\xf2\ -cbV\xe6d\xd2,\x8a\xee\x8a2\xcf\x9e\xcc\xea\x06\ -U\x9fz\xe9Uyl\x05\xf9\xefP\xf6\xa9\x94y\x90\ -\x16\xd6q ]\x85Ab\xde!_\xdd^\xa0IP\ -\x9aw\x17\x86n;\x07\x00\x03WFk\x96 `i\ -\xf2\xb4%Y\xaf?\xa6q\x09Q\x7f,L\xfe\x8b\xcd\ -.?\xa5\x1f\x8b\x9e*\xeb\xacJ}\x8a\x18\x91Dt\ -\x986\xc1\xfa\x9ak\x81Q\x0fU\x93\xfe\xd0\xb1\xdc\xf1\ -)}!\xb8\xd6\x92/\xb4\xcf\xa8\x04\xb2\xeavh\xf4\ -\xfam\xbb\xa9g\xb2\xd2<\x97=u@(\xad\xaal\ -\x08\xfb!HL~2s:\xcf\xd2\xd2\xab\x9eW\xa9\ -\x8d\xb9\xe4\xae\x82\x9c+\xd6\x07\xa0\x22\xfedV\xc2\xe7\ -\x5cRrx\xbeK\xe2\xd4x\x17\x09\xc1\x14\x84_6\ -m\x83}\x9c\xbc\xac\x0a\x90\xc5\x83#\xe3\xed\x9d5\xea\ -\xea\xe6\x81\xda\x9fj\xe1e\xc0\x14D\xe5\x0a7\xe6M\ -\xa1Z\x0dm\x8b|,\xa8\xa6\xb4\xcf0\x14&\xc8\xc5\ -\x8c\x12\xc2\x98\x16}\xcc\x8bU\xb1\x12Br\xa9\xdd\x91\ -\xd3Z\xa5`.\x85{\xbf.A\x1b\xe9 \x7f\xb4U\ -(\xcf\xac.\xacH\xee`CE\xc1\xbe\x06$\xd8\x10\ -\xd5\xf3\xd9\xd7\xc5{E\xa4\xd7\x84\x1a\x89u\x8f\xd6\xcb\ -\x8a\x93{\xf8\x0f2\xb5.\x5c\xfbB\x9d\xb1lR\xba\ -<\xb6\xb2\xd9\xaa\x18\xd9\xda^\x13?@\x12\x0c\xb3$\ -\xcb7\xee\xcd\xb6\xfa4\xc7>dyd\xf2\x06'\xaa\ -\xcf\x10W\xcb\x06\x15\xbe\x81g\x0f\xbf\x9a\xb0,A\x7f\ -\xe0\xbf\xd6\xd7p\x9b\xa0v9\x08>\x8b8\xc6\x91\x99\ -\xc5\xb4i\xc92\xd9\x1e6\x8f.\x1e\x83(;o\x5c\ -2\xc1\x9e\xe3\x140^\x1d\x98XqumK\x13\xa1\ -\x18q\xe9\xf6r{\xab\xb3\xf6\xcd\xe21;[\x81\xc0\ -\xe2A\xd2\x85\x7fK\xf0S\x96A\x10c\xeas\x82T\ -g\xe5\x16\x1f\x82\xa5\xa9\x86\x1c\xa1%\x9a\xb2\x13\x82\x94\ -\x14\xfbBcE\xd95f\x81\x02\xbf\x8a\x04\x02\xdeU\ -1\xf7\xc1s\xbc\x87\xf0\x8dz\x86\xeb\xce>\xe69\x94\ - /\x09^\x0c\xd8}\x87\x09\x9fWx\xf8hB\xc8\ -\x96\x0fY\x90G\xd6(u\x1e]\xefz\x8a\xdb1\xcc\ -\xbb\x9a\xb8\x1bd\xad\x1d\xe3\x8c\xbd\xa5\xc4P4-1\ -\x0b\xe4\xfc`\x9b\xd2\xbf\xda??@\x83\xfa\xcfA\xa4\ -\xb7\xc2di\x0a\xfe\x98\xe5\x1e\x88u\x0a\xcacnz\ -\xfe3\x8e[\x9bx\x06\xfd\xc0n\xc4\xcfN#|\xa5\ -\xc4@{\x92\xc7\xcf\xef\xa0\x0aI\xaa\x89f\x0b`q\ -\xd1\xad\x84\xf6\xa1{\xe3\x98/\x88\xf4\xb1\x22\x9a\xe2\xdb\ -A\xf7\x93\x03\x9bW\x13J/#\xaent\xf5\x19f\ -\x13\xf03\xaa\x18\x92\x827p\x9b\xbc@\x05\x90\xca\x8e\ -i\xd4\x07\xfe\x9a\xc5\xe9\x10\x0a=\x91\xc9\x13\xf0\x88r\ -\xc5\x1aX\x14@<\xe5y\xf02\xc8\xc6m.\x9b\xa6\ -E\xcb\xbff\xa3\x94\xd5\xd4B\xe1\x0bJ\x85\x1e\xa5\xcc\ -&\xda(\xf71Ut\x9cQm.\x14\xc8\x97\x12i\ -\xca'\xa9\xd0\xc3\xda\x87\xe0\x80\xf7\x86\xa8\x1cp\xdc\xa7\ -Zj.X\xdf\x98#s\xd6\x06\x95L\xcb!\x81r\ -\xae\x06#\x9f+\x88U\x84\xf5\xc0j\x13\x9a5\xd5~\ -\xcc\x5c\xf7\x15\xea#\x84\x11\xe4\xfa\xcaW\xa0\x1b\xe1\x1a\ -\x11\xc4\x17\x18\x83B\xa4\xc2\xca\xfa\x8a@\x9a\x102:\ -u\x1a-CC\x08\x84\xb0;\xc1^\xf1\xa8\xb6 )\ -\xa9\xb4\xa6\xd3\xf7l\xa7\xefx\x5cZ\x06\xa9\x12\x0b\x0f\ -K\x9f`\x8c\x98v\x1ea.\xd3\x881J\x9d\x93\xc3\ -|\xca\xc1\x05\x04@\xbd\x16\xfcih\x83\xd7y\x87\x9e\ -JB\x87\xf3\xdf\xcb:\xffO\xb2\x8e|!\xa1z\xe1\ -Y\xd6)\xff\x8d\xbc\xab\xaf\xcf;\xf6)C\x0c\xcbY\ -\xde\xd9\x15\xde\xd9,\xef\xbb\xc9\x19A\x1e\x07P\xa4\x1e\ -L\xd2\xabb\xce\xb4\xd9\x93J\xbc\x12\x0b\xbdN\x96R\ -\xce\xe8l'[\xf5t\x08E,\x08&M\x1c\xe4\x05\ -%\xa6\xf4\xa7\xd1\x0e\x99\x8cr\x0ay\xf0R\x1azK\ -;\x1a\x09\xa2\x95\xa4\x90\x04\xa4\x14\x90e\xe8$\xe0\xaf\ -\xd9\xafU6\x851\x81\x10\x0a\xd4\x98/\xa1\xb5\xc4\x0a\ -\x94\x0a\x05\x08\xfa\x0f&@\xd7\x9e\xedE(\x13\xccI\ -`\x18\xf3!\x088\x17\xc0\x06d\x17i\xfd\x08\xfaN\ -\x0e\x0d\x87\xd6\x80\x074b\x90\xb0\x17^\x83\x7f\x84Q\ -M\x10\xa6\x14\xa9\xcc\x06II\x08\xda\x1d\xc0\x01\x0a\xef\ -\x13\xae\xf4\xc5\x94B \xd0\x0b\x98r\x86\xe1\xb6\xb2S\ -L\xd4\x8c\xad\x97\xbb1d4\xca\xbci\xa0\xf9-c\ -\x8d\xf5K\xa1\xe8\x17\x8f5ui\xfe\x82\xb1\x06)M\ -\xa6\x5c\xdb\xd2\xc7\x05\x84\x17\x16LN\xd1\xb6\xfc\x09_\ -\x0b\x81\x99\xd0\xd7]\x1f\xf2\x00\x9d\x1ft\xde8\xee\x8c\ -\x86\x1eK\x8f\xcd\xed\x18\xcc>\xaf\xe9\xe0sr\x7fV\ -\xf2\xb1\xecW\xc6\xa0\xffu\xc7\x91\xa0\x1b<\xef7\x90\ -k\x14\xf4\x89\x88\xbd\xea7\x0c}e\xbfQ\xbf\x8f\xdf\ -\x5c\x11|,\xfa\xff\xddfF{\xd8g\xb6\x03\x15W\ -\xfd\x06\xda_&\xd5g\xfc\xc6\xfb\xda\x19Gy\xbfK\ -\xce\xb9.\xfdX\xfeW\x9dg\x5c\xbc\xae\xcd\x07\x82}\ -~>\xa8*.&P\x8a\xeb\x8e\xa1]z\xdc^\x1f\ -q\x8c\x17\x9e\xf2\xb1\x96\x8ap\xf6\xc6\x11\xe1-\xe3\xf3\ -\xb0L\xcf\xe8\xcc*\xda~\x9f4\x1c\x97\x9b\x1b\xff8\ -\x0f\x13s-2:\xf3t]\xe5\xbc\xff\xcev\x5c\x10\ -)\x92b\xfa\xb6)\xf7\xc1\x9cL\xf2\xe5S\xae\x85f\ -\xdbma\xca\x15\x9aL\xbew\x87 \x86\x88\xac\xae\xbf\ -\xea@\xbe\xae:\x8c\xe6\xbac{\xf7\x03\xd3+\xd5\x82\ -\xf0\x19\xdf\xb6\x97?X\xf9\x12\x11\xc9ft\x9f\x03\x96\ -Af\xa0\xd0w\xbd\xb5\xc9\x1f\x04K\xad\xd6\xd7n\xd7\ -\xa7z\x97>\xd4[\xc1\xde\xa6\xf7J\xd5_\xedv\xa1\ -\xedq\x09\xe8\x8c\x11hL\x17\x14F\x0f\xa2a0v\ -@O\xd0EKm\xef\xc61BL\xbdj\x8c\x99\x11\ -\xe7\x0b\xae\x8aF9\x0ctf\xec\x97I\xc5\xc6\x0d\xc3\ -\xb1%\x86y\xa0\xbf\xea\x9e{O]\x96\x98\xbd~\x80\ -.\x1b\x09I\x14t\xf7\x84\xfbJI\x10~\xf4\x1d\xc0\ -\x8ea\xd6\xbb\xef\x98\xdc\xb5\x09\xdc\x13\xfe\xda\x1d\x07&\ -L\x13\xdd~%rapm\xbf\x89\x83\xff\xff\x06\x09\ -\xcd\xbf;\ -\x00\x00\x06\xd1\ -\x00\ -\x00%\xc4x\xda\xddZ\xdbn\xe36\x10}/\xd0\x7f\ -P\xb5/\xbb\xa8Eqx\xa7jo\x81vQ\xa0\xaf\ -\xbd\xa0\xcf\x8a\xa4\xd8\xea\xca\x92!\xc9q\xb2_\xdf\xa1\ -d9rd\x07ia\x14^\xcb\x09\x12r\x86\x14y\ -8sf\x86\xc9\xfc\xc7\xc7u\xe1=du\x93W\xe5\ -\xc2\x07B}/+\x93*\xcd\xcb\xe5\xc2\xff\xf3\x8f_\ -\x02\xe3{M\x1b\x97i\x5cTe\xb6\xf0\xcb\xca\xff\xf1\ -\xe3\xb7\xdf\xcc\xbf\x0b\x02\xef\xe7:\x8b\xdb,\xf5vy\ -\xbb\xf2~-?7I\xbc\xc9\xbc\xf7\xab\xb6\xddDa\ -\xb8\xdb\xedH\xbe\xef$U\xbd\x0c?xA\x80Cq\ -p\xf3\xb0\xfc\xf6\x1b\xcf\xf3\xf0\xdde\x13\xa5\xc9\xc2\xdf\ -\x8f\xd9l\xeb\xa2\xd3M\x930+\xb2uV\xb6M\x08\ -\x04B\x7f\xa4\x9f<\xeb'n\x05\xf9C\x96T\xebu\ -U6\xdd\xd0\xb2y7\xd6\xae\xd3\xfb\x83\xba[\xd2\x8e\ -wZ`\xad\x0d)\x0b\x19\x0bP#h\x9e\xca6~\ -\x0c^\x8c\xc5u\x9e\x1a\xcb(\xa5!\xcaF\xaaoT\ -\x8b\x1aDv\x83\xdf\x07\xfd\xa1\x834\xd5\xb6N\xb2{\ -\x1c\x98\x912k\xc3O\x7f|:\x08\x03J\xd26\x1d\ -\xcf3\x00{\xf4\xde#\xb4\xcbx\x9d5\x9b8\xc9\x9a\ -p\xe8\xef'\xd8\xe5i\xbbZ\xf8\xc2\xf4\xcdU\x96/\ -W\xeds\xfb!\xcfv?U\x8f\x0b\x9fz\xd4\x13\x06\ -\xbf\x08u\x0f\xf4\xe2<]\xf8\xb8'\xb6W~6\x9c\ -A\xbe\x7fWt\x10Qb\x19\xe1\xde{&\xa8\x94B\ -\xcd\ -\x0b\x8e\xb5\xdb\xa7M6\x9a\xb7\x9f\xb9\xcez>8\xc9\ -\x8ci\xb2\xce\xdd\xa8\xf0\xf76/\x8a_\xddk\x86\xed\ -\x8d\xa6\xcd\xdb\x22\x1b\xf5\xce\xc3\xfd\x1e\x86=\x86\xe3M\ -\xce\xc3\x01\x84\xbe\xb9|\x09i\x11\xdfe\xc5\xc2\xff9\ -\xde\xc4\xde\xf48\x97u\xb5\xdd\xac\xab\x14\xd7\xdbY\x90\ -?B\xb7\xeb8\x0ci\xeb\xb8l\x1c\x0e\x0b\xbf\xfb\xb5\ -\xc0\x08\xf2\x9e\xce\x02\xa0T\x10\xae\x18\xfbp8\x84\xe5\ -aCn\x9a#\x93<\x9a\x07!\xad\xf3\xc7\xf7\x94\x18\ -\xa5@q\xc9g\xd4}\x9e\x9b\x8c(\xa9\xb5\xd1v\x06\ -\x5c\x13\xd0\x8c\x0f\xcc\xd3\x99w\xfbT\xe0\xba\xef\x11\xca\ -hO\x09?4m]}\xce\xa2w\x22u\x1f\x7fd\ -\x07y\x9d\x14\xe3\xe3\xaa\x1d\x1bH\x7f\xd4\xd3\xf9\x22\xa5\ -\x86p\x90\xfaH\x80\x96\xcc\x04\x91BZc\xc6\x02\xb7\ -\xbdM\xdc\xae8\xe7j\xdc\x7fje\xae\x11\xecy&\ -\x82\xbeYo\x8b,\xca\x1e\xb2\xb2J\xd3\xc3\xd2m\xf7\ -\xec\x9b\xbd/F\xb0y\x1c:\x8a\xbc\xcc\xf0\xe8\xa2\xbb\ -m\xdb\x8e\xfb\xfe\xae\xf22B\xf3\xca\xea\xa1\xf7\xf0\xb2\ -\xb1\x8d\xbd\x1d\x08\xe0\x04\xb8\x9d\x00\x81\x07A\x0d\x15\x94\ -\x9d\x03\x22\xe07\x07\x05Sh\xe1\xa0^B!8\xb1\ -\xc2\xa2y\x9e\x85\xe2\xf6\xac\x82[\xe7\x93|\x02\x05%\ -\x82\x0a.\xf8Y(\xf4\xcdA!4\xd1\xd4L\x99\xc2\ - BV\xcb\xf3\x0e\x22o\x0f\x0a\x89\xa4\xcd\xe0%\x14\ - \x08\x93\x8a\xc2+\x5cq{XpI@\x82|\x89\ -\x85$\xd4*\xb4\x17s\x9e,\xd8\xed\x11'Fpe\ -\xa6lA\x0c\x1a\x85\xd0p\x16\x0b{{\xe1\x14\xa1\xb0\ -j\x12C\x00\x88\x10\x16\xd8y\xb3\x80[\xb4\x0a\xce\xec\ -\xc4C8\xa0Y\x18q\xcc\xa8\xc7P\x04\xf4\xf6\xe8\x82\ -\x11\xcck\xa7`\xa0\xb9`\xde\xfc\x8aY\xdc\xa0\x8f`\ -ni\x04\x9b\x04TW=\x03\xd3\xec\x15,\xbe\x9a\x9c\ -\xd3\xady\xbc\x8dC\x1d_\x958q[\xd5\x01V\xf4\ -\x0fq\xbb\xadq\x07\xf4\xd4\x8e\x05\x93G\x94\xe0\xea`\ -O\x11*\x8d\x96V\xce\xd0\xbd0qW\x92y\x9a0\ -E\xa9\x92r&\x09\xd7\xd6\xbc\x09\xa2\xb7c\xf2\xef\x11\ -\xe9\x1a\x05V\xf6m$\x86\xbe4nVq]\xc7O\ -QY\x95\xd9\xff\x80\x9d\x9c`\xc7\x5c\xc5i0:#\ -v\xa0\x89\xc5z\xd5\xe3\x842$e>\x0b0\x9b\x13\ -\xd4^\x16;\xf7Bf\xb9f\xfa\xca\x0cKO\xc0\x01\ -GO\x14W;\xebB\x18\x13 =\xa0X\xf7h#\ -\xc4,\xe0\x04\xd3>\xb84:V(\x0bJ\xab+C\ -\xc7\x9ep;\x8e\xd6\x22\xa5C\x07\xf3>!\xad\x07]\ -Q\xc8\x8d\x85\x19\x10k\xb5\xbd<8\xee\x22\x02\xf8u\ -\x81\xa3\xe0\x94_I\xad\xadv~\xc5\x0d\xd1JH/\ -@\x90\x941\xdc\xce\x14a\x8c\x9a\x8b\xfb\x15\x1a\xa8e\ -\xd7f9\x8aO\xc1Av\x06i,\x9b\xf5\x85$2\ -\xb6\x17`2\xa8\xd1\x099\xcc\x02 J\xeb\xcb\x9b\x0e\ -\x97\x82\x81\xb92t\xa6~\x85\x89\x80\x16V\x83\x0bg\ -XDr\xaa\xb5\xe7n\xc9\x19\x15hM@8\xc6\xba\ -\x8b\x83\x03\x80Q\xf2\xcaB\xbd\x9e\xba\x95`D\x1a\xe4\ -\x9cYw/E5\x17^`\x89S\x95\xcc\x112\x97\ -\xea\xe2\x84\xac-\x15\xf8\xba+3\x1c=\x8d\xe5\xc2\x9d\ -\xa3\xbbr\xe89GR-<\x8c`V\xf2\xce\xa9\x90\ - \xa8\xba<\xe9p\xaa4h{e\xe8\x9c\x08\xe6\xc8\ -\xbe\x80\x05y\xc7\xc8\x94\x00r\x01\xba\x15\x00P\xa3\x91\ -\x90\x85\xb9<6Zp\xac\xe9\xe8\x95\xb9\xd5q2\xdc\ -\x132V\x19\x18\xc3Y\x97\x05\xbaKN\xa3=C,\ -\x93J\xcf\x18\x01-\xf9\xc5\xa1\xc1\xec\x5c2\xca\xaf\x8d\ -q\x82i\xb4\xc2j\xd4`\xb4R.Za\x99.4\ -S^\x80\x86\x0f\x0a\xa3\xd7,\xc0\xa4\x19\xf1\xba8>\ -\x9cbug\xd9\xf5\xe1s|\xaf\xdf#d\x89\x04\xdd\ -\xc7s$\x1eL\xff\x90\x96\x1d=+\x85\xa8a\xda\xc3\ -@|\x05\x08\xbd\xfd:\xcbb-p\x9c\xdcv\xb5:\ -\xc5\xa2SJ*_\xa9\xd5/\xf7\x97\x00JS\x11\xc7\ -Wp\xa1e\x09\x05y\xea\xfa\x1b\xcb%\xa5\xec+`\ -\xa8\xaf\x05\x8c\x8bTP\xfcTH\xa2\xc6R&\x5c:\ -\xa3]\xf0\xf6\x12\x8fb\xc6G5 \xb3PLl\x90\ -k\x84\xbb\xca\x00`\x8ej$`}\xfe\xb2\xe3\xbf{\ -\xd6)\xd8\xdc\x7f\xbe\x18ta).\x84\xdf<\x5c\xee\ -\xffZ\xef~\xce\xdd\xff\x16\xe0\xcf\x7f\x00\x93\x13\xca\xa6\ -\ -\x00\x00\x0a\xb8\ +#999999;stroke:n\ +one;stroke-width\ +:2;stroke-lineca\ +p:round;stroke-l\ +inejoin:round;pa\ +int-order:marker\ +s stroke fill;fi\ +ll-opacity:1\x22\x0a \ + id=\x22rect8\ +46\x22\x0a wid\ +th=\x2270.559952\x22\x0a \ + height=\x22\ +23.649933\x22\x0a \ + x=\x22-341.2689\ +2\x22\x0a y=\x22-\ +120.77216\x22 />\x0a \ + \x0a <\ +rect\x0a st\ +yle=\x22fill:#99999\ +9;stroke:none;st\ +roke-width:2;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:round;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;paint-order:ma\ +rkers stroke fil\ +l;fill-opacity:1\ +\x22\x0a id=\x22r\ +ect846-5-0\x22\x0a \ + width=\x2270.5\ +59952\x22\x0a \ +height=\x2223.64993\ +3\x22\x0a x=\x22-\ +341.26895\x22\x0a \ + y=\x22-172.0720\ +2\x22 />\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ + \x0a \x0a\x0a\ +\x00\x00\x09\x10\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0a \x0a \x0a \ +\x0a \x0a\x0a\ +\x00\x00\x0do\ \x00\ -\x001 x\xda\xedZ\xdb\x8e\xdb\xc8\x11}_`\xff\ -\x81\x91_l\x84M\xf5\xfd\x22\x8f\xbc@\xd6X`_\ -\x93\x0d\xf2\x18\xd0\x12=\xa3X\x22\x07\x14\xc7c\xfb\xeb\ -s\xaay\x19\x8a\x94\xbc\x13o\x02\xc4\xf6\xc8\xd8U\xb3\ -\xaf\xd5\xa7O\x9f\xaa\xa2\xe6\xea\xa7\x0f\x87}\xf2\xbe\xa8\ -\x8f\xbb\xaa\x5c/D\xc6\x17IQn\xaa\xed\xae\xbc^\ -/\xfe\xfe\xdb/\xcc/\x92c\x93\x97\xdb|_\x95\xc5\ -zQV\x8b\x9f^\xfd\xf8\xc3\xd5\x9f\x18K~\xae\x8b\ -\xbc)\xb6\xc9\xfd\xae\xb9I~-\xdf\x1d7\xf9m\x91\ -<\xbfi\x9a\xdb\xd5ry\x7f\x7f\x9f\xed\xba\xca\xac\xaa\ -\xaf\x97/\x12\xc60\x14\x83\x8f\xef\xaf\x7f\xfc!I\x12\ -\xac]\x1eW\xdb\xcdz\xd1\x8d\xb9\xbd\xab\xf7\xb1\xefv\ -\xb3,\xf6\xc5\xa1(\x9b\xe3Rdb\xb9\x18\xf5\xdf<\ -\xf4\xdf\x90\x05\xbb\xf7\xc5\xa6:\x1c\xaa\xf2\x18\x87\x96\xc7\ -g\xe3\xde\xf5\xf6\xed\xd0\x9dL\xbaW\xb1\x97\x08!,\ -\xb9\x5cJ\xc9\xd0\x83\x1d?\x96M\xfe\x81M\xc6\xc2\xce\ -sc%\xe7|\x89\xb6Q\xd7Gv[\x1d\x81\xec-\ -\xfe\x1b\xfa\xf7\x15\xd9\xb1\xba\xab7\xc5[\x0c,\xb2\xb2\ -h\x96\xaf\x7f{=42\x9em\x9b\xedx\x9e\x1e\xd8\ -\x93uO\xd0.\xf3Cq\xbc\xcd7\xc5q\xd9\xd7\xb7\ -\x13\xdc\xef\xb6\xcd\xcdz\xa1}\xfbxS\xec\xaeo\x9a\ -\x87\xe7\xf7\xbb\xe2\xfe/\xd5\x87\xf5\x82'<\xd1>\xe3\ -\xf4\x11\x0f\xa5\xb6\xd7n\xbb^`k\xb2\x1b\xf3\xc0\x9f\ -\xbe\xbd[r54\xf1,\xc8L%\xcf\xa5\xe6\xc6h\ -\x9b&\x92\x0b\xcf\xb8bB\xbch\xc7\xf4\xbb]m\xab\ -\x0dY\xbf^\x5c\xd7\xbb\xed?w\x9b\xaa\xcc\x08\xc6W\ -\xd4\xebj[\xbc=\xc6\xee\xad\x11\xf4\xa8\x17\xc9\xb2m\ -\x1c\xa6\xa0\xf1[\xda\xca\xa8\xeb\x9b\xfc\xd8A\x90$\xb7\ -\xf95H\xb3\xaf\xea\xf5\xe2\xd9\xdb\xf8\xe9[\xdeT\xf5\ -\xb6\xa8\xfb6\x1b?\xa7m\x15P\xdd5\x1f\xdb\xdb\xd2\ -\xcf\xdf\xef\x97&\x1e:\xf0\x0b\x1d\x8e7\xf9\xb6\xba_\ -/\xe4\xac\xf5SU\x1dhb\xa3e\xb0\xde\xcf\xda7\ -8\x18&\xb4\xc9\xb8\x11F\xcc\x9b\xc9*!2\x15\xac\ -\xd3\xb3V\xe0zGW\x8a\xdd\x95\xbb\x06\x94\xbd\xfd0\ -\x9f\xe0\xae\xae\xa9\xc7>\xffX`\xff\xf1kX\xe6x\ -S\xdd\xd3\x91\xac\x17o\xf3\xfd\x03\x96\x97g\xbb\xdf\x95\ -\xd8'\xeb\x18'\xfc\x19\x8b\xbb.=\x0b\x05\x97\xe6R\ -\x1fl\xdd\x86K\x8d\xd8\xb8t\x97\x1a\x0f\xf9\x87\xdda\ -\xf7\xa9\x80\xe5b\xe0\xca\xa1h\xf2m\xde\xe4#\x86\xf4\ -U\xae\xe5\x1a:A\x1bV\x7f}\xfdK\xf7\x88\x8a\xcd\ -f\xf5\x8f\xaa~\xd7?\xe3C]\xf27\xd5\x1d\xac_\ -\xbcz\xa8\xbf\xdanV\xb8\xcd\x87\xbcy\xb5;\xe0\xcc\ -I\x09\xfe\x8c\xcb{\xb5|h8\xed\xdd|\xbc-F\ -\xf3\xb63\xd7E+\x0cg%r\xbb9\xech\xd4\xf2\ -o\xcdn\xbf\xff\x95\x96\xe9\xb77\x9av\xd7\xec\x8bQ\ -\xed\xd5\xb2\xdbC\xbf\xc7\xe5x\x93W\xcb\x1e\x84\xf6\xf1\ -z\x0a\xe9>\x7fS\xec\xd7\x8b\x9f\xf3\xdb<\x99\x1f\xe7\ -u]\xdd\xdd\x1e\xaam\xd1qg1B\xf7\x94LM\ -\x9d\x97G\xc2a\xbd\x88\xc5=\x5c\xc9s\x9e2\xc1\xb9\ -\xce\x94\x95\xf2\xc5p\x08\xd7\xc3\x86h\x9ak\xef\xd4b\ -\xa89;\x0d\xf3\xb8 \x82+\xc8\x0c\xd32\xf3\xda{\ -\xff\xe2a\xcc\xb1\xf9\xb8\x87\x81\xc7\xa6\xae\xde\x15\xabg\ -!~^\xb6\x8f\xac\xbb\xbc+\xf1p\x98W\xc5~\xbf\ -\xbb=\x8e\x0f\xa7\x06\xdft\x16\xbc\xb3\xd2/\xc6\xf5 \ -\xa9\xc9\x84\x16<(7n\x887\x93\x0b\x99\x09\x13N\ -\x1b0\x22@[\xbdU\xf2\xa4\x81\xf6z\x9b77Z\ -(;\xae\xef\xac\x1f\xec|\xf9\x16g?\xec\x82\x1e\xd8\ -i\x1b\xab\xef\xf6\xc5\xaax_\x94\xd5v\xfb\xf2\xfc\xae\ -\xe3\x15]\x99\xfeq\xbf+\x8b\x7fU\xbbr\x85\xe3,\ -\xfb1\x0cd+\xea=nR\xb3\xd2}\xdd6\x87\x98\ -\xd5u\xfeqU\x22>\x98\x838&\xde%\x18\xb5\x17\ -\x16xMq\xd4\x99\x15\xc1p\xa3\xe78j\x9e\x09\xe9\ -\xd4\x14G\xaa\x16Nku\x09G&\xbee$M\xa6\ -CP\x9c\x9b9#\xad\x85\xf8\xf23H\xc2Yh\xe3\ -\xed\x14I\x152k\x84\x94\xf6\x22\x92\xdf4'm\xa6\ -\x9c5\xde\x85)\x9263N\xba \xc4\x19N\xca\xcc\ -\x085\xe3\xa4\xcb\xac\xb6\xdc}\x86\x93\xf2\xdb\xe6\xa4\xd3\ -F\xeaS\x22\xb5\x9c\x0c\x12!`0s$\xa5\x03\xfc\ -:L\x91\x94&\x83\x8e{{\x99\x93\xfc\xdb@\x92\xf6\ -3\xde\xc8\x10\xd4\xc2\xaf\x92\xbbG\xb0\xb5\xd9\x9c\x800\ -\x84oUY\x16\x9b\xa6\xaa\x19\x02\xb9\xf7ysW\x03\ -\x01~\x1e/w\xc2a\x8a~\x12\x88\x81\xf5\x92\x07\x9d\ -\xc2y\x06h\xa9\x17\x89P\x885%\xa2\xcd\x94\x85L\ -;~\x8e\xadsd\x1f\x0d\xa5\x1eC\x89=\x9c\x229\ -\xe0\x1b!\xfd\xca\xf0Us|9\x18,\x0d\xc1\x0bX\ -\x11\xa3K\x82\xd7\x06%dH\x11\x1b8\x88\xce\x13\xbc\ -\x8f\x84\xd7\xcc\xe0U>S\xdc*%[|\xads\x22\ -a\x94\x0d)a\x8c \x80\x8d\x15\xf6\x09\xe0G\x02\xec\ -f\x00C\x98%\xc2.\x01\xb2r\x19\xb2\x80P\x9d4\ -C9\xaf\xb4K!\x18\xd2\x87\xaf\x1c\xde\xab\xe5\xf5\xa5\ -\xb4\xc3\xbb\xdfI;\x10\xf4#%\xb0Z\xa5\x1e\xe9G\ -\xf0Z\xbfX\x5c<\xb5/8\x13/\xe7\x92-e\x86\ -\x13\x09\xd2\xa71\xbb0<\x98D!\xc9\xd0\xd2\x98T\ -AQ\xa4JD\xe6U\x08^\xa4p\xc6\x5c\xeb\xc4!\ -\xdd\x08\xda\xb8\x94a\x80\xb3\xe2\xd2\x91E\xa8.\x9f\x97\ -\xe7\xf4\xef\xf4\xbc\xd4\xe3\xce\xeb\xabs\x97^\x86GA\ -\xcf\x1c\x92?\xcd\x83\xc7m\xd0\x81\x87o\x0b\xda/\x01\ -N\x89\xb32b\x91\xf3\x91\x1f\x94\x82\xae\x8cL\x90\xbb\ -(\x89\x0c8uY\x80\x8c$\x0c\xd95\xb7Vx\x90\ -\x96\xdb\xd3\xcc\xe5;\x05R=\x8a\x81\x22\x13*p\x85\ -\xcb\xad \xd6\x5c}\x0f\x97\xfb\x8f_o5\x8f&\x84\ -\x81?\x0b^\x11I%\xbd\xfc\xd6\x09\x05\x10\xce\xe8\x00\ -\x92z)u\xb2I\x18\x87\xf7\x93\xde9h\xadR\xce\ -%\x1cl56\x95\x19\xa8k\x11}P\x10mcD\ -\x02\x97\xa0\x92=\xc4\xd9p\x8d\x1c\x12\xbc6\x92\x9b'\ -^\xaby\x9c\xa1\x10\x0a\x03\xef \xda8\xc3\x87\x90X\ -\x223\x5cp\xaa3\xae\xbd\x22\x18\x83\xa4\xa8\xc3f\xdc\ -\xc9'\x18\xbdV\xe7t\xd6\x05\xe5\x1dQXAOM\ -\xd0\xe0'\x22g\xa9\x88~Zz\xf3\xe4\xfa\x1f\x81\xac\ -9\x97\xc8\xd1\xebZ\x19\x09\xea\xe1\xba\x80,\xb3\x99\x16\ -\xda\xc1\xe9\x03[\xcb\xc3\x93\xef\xf7\xfaL\x0a\x11y'\ -\xa2\xac\x0a\x5cj\x14\xe1\xfb=\xe2Rz\xc3 3x\ -3$\xc5\xa4\xb7\xcaz\xe4\x19\x99\xd3^>!\xa9\xe7\ -\xe1'n\xb4t\xceF\x0e\x0aD\x9b\xf8\x7fBIo\ -\x08\xc6C%\x0d\xf7:\xd1\x19\xb25\xe5u\x8ak\x8f\ -\x1c\xe0)\x16x\x0c\xd6\xe6Q\xb1\x00\x02T\x1d\x1cR\ ->x \xdc\xff\x04\xdc\x15B#\xe7\xa3\x10\x16x\x09\ -\xea\x11\xd1\x17\x16\xc9\x00\xc8\xee\x9ehl\xce\xbeS\x08\ -6\x08b\xb1F0\xe5]@\x08+\xa5\xb5F\x22\x8d\ -\x16\xde\xdb\xef\x82\xb5\x7f\xd8I96\x0f\x00tFy\ -\xbf4\xed\xfb0a\x94I\x88\xb5\xc6xm\xe1\xa4\xbc\ -\xb1\x9e\x02+\xa5\xb5\xe4\x1a1k\x08\xfc\xab~\x19\xf0\ -\x99\x977\xce\xcf~\xff\xfd\xdc\xef\x01\xbf\xf7\xdb\xf0\xb9\ -\x17A\x87\xbc\xa9w\x1f\x9es$\x09A\x07\x84\xaa\x9c\ -\xfe\x0dO \xba5\xdas\x99j\xf2o\x1a\x87\xf0\xb9\ -\xd7C\xdd\xc1\xca\xb9\x16\xd9\x0c9\x88\x95\x94S\x04\x91\ -i\x8d\xb4bC\x99\x06.\x0c'\x19\x82\xdb\xc4\xaaP\ -$\x95\x05(Vf4\xd2\x0e&\xe0.\x0c\xfd\x05\x8f\ -J\x99\xcf\x94\xc0\x18\xfa\xb54E\x06\xa3\x0d\x15=\x15\ -\x83\xec\x8a\x988\xe1\xb1\xd1S\x92\xc3]l5T\xee\ -\x9b\xf7\x09\xe6\x14|\x98S\x92\x1d\x82\xba\x0a\xca\x94\xb0\ -2\xf2z\x84\xeb\xbe-!A\x120\xd0\x92\x97\xb7\x81\ -\xbe-\xad@\xd5I\xac\xa2\x0a\x16\xabY\xd7\x97\xc5D\ -*\xd07\xf5\x8d\xc6D[\xa2)\xd1\x92\xd6\x106\xb2\ -\xa43\x84EKX\x9c\xdb\x90\xc10\x81Ek\xba2\ -\xd6\xe0t\xb8\x8e\x162Y{\xd2\xae[\xf0\xe1\x99\x16\ -\x8e6F\x13m2n\x01\xb6\x1e\xa3\x15\xd4\x9d\xe0\xe9\ -\xb7\xdb.\x10\xe1\xe9!\xef\x10'\xf4h\x1b2\x96,\ -\x8a\x94$\xc6\xa2\xa0\x1e\xb4\x14\xe2\x1f\xca\x1e\xe9~*\ -\x0a\x8dT[\xa2\x06\xac\x15+\x08.\xd1\x15c#o\ -\xb3\xfd\x88\xa3\xe8\xea\xd8\xa8\xfd\xd3\x17\xca\xcb\x7f\xe1\xa6\ -|\xce\x83\xf4\x1c?#]\x0ca\xb5\x11\xc1{\x12/\ -\xeb3g\xbd\x8f\x94\x0d\xdcpBKJ!\xc9Sh\ -\xeb\xc1b\xec\xdb)z\xa6x\xdcP\x92\xe84e\xdb\ -\xe4\xb8\xad\x90\x8a\xbc4\x8e\xc2\xc4)d\xb0\x1c5\x94\ -\xbb\x1bK)\x91U\x22\x98x\x82A\xd2\x1b\x14\x8e\x1c\ -\xa9\xbd\x0e\x8e\xc0\x85W2V\xd13\xe6&\x06z\xe4\ -\xa6\xed\x8d0\x1c\x91?\xac\xc0\x04\xba\x9d\xc1\x87\xc8\xc7\ -\x0c#\x1d\x82\x03FA\xae\xf4\xbae\xa4\xd6\xdc\xe0\xac\ -i&\xab\xe3q!_\x102R\x86k\xe5\x89\x95N\ -\xc5<\x97ba\x81-\xa1%`\x22\xde\x9e\xba\x09*\ -\xceC\xa1FJ\x19\x87\x94-\x0a\xce!\xca\xa3\x8b\x1d\ -Z\xaa\x22;&\x93\xdb\xc1I\xec(\x14\x80k\x07\x9b\ -$\xf6\xe4JF(\xb5\xf3I\xb7\x0cH\xd6\x8eN\xda\ -Uh\xdav4\xad\x1b\xd71i\x1c\x1c\xdf}\x100\ -\xc4\xe8\x08\x0c\x1b\x90\xe1\xdd\xdb\xd0\x01\x99\x08\x8c\xa0\x03\ -\xe9\x81iqi%\xa3\x85\x85zEXzTH\xbc\ -8\xc5V\x1d(>\x8d\x98\xa8\xc1Ve\xd3\x0e\x93v\ -WB\x84\x89\xb1\xf4\xbbegm\x0f\x0a\x09S\x04\x85\ -\xf5\xa8\x88\xb4\x03\x85u\xa8`K\xac\x83\x85H\xa0\xb9\ -\x0b2\xd6X\xca\xf3\xf0\x1d\xb4\xb0\x9e\x0e\xc4y\x17k\ -\x84D\x89\xfe\xda\x08\xa3@!b@\xcb<$\xdf,\ -RO\xb5\xd7\x1f!\xbb\xf7\x84\x98R\x14D\x92P\x1b\ -k\x091\xaby\xd4\x82`\x9c\x88\x12\x1e8\x89\x03\xd4\ -\xcb\xdb\xa0(\x15\x0a\xc2)\xb2\x1a\xe9{\x88\xd2\xa7\x9c\ -\x8eF\x0b\x83\x94>\x92\x08\x97\x22\xdaC]\x01F\x1c\ -\xed\xa8\x82\xba\x8aH\x19\xf4L\xda\x8e8\xebv\xb0J\ -\x86U\xba\xb1\xc9\xb0J76\xe9Vqi\xb7\xc8\xff\ -\xa9\xa4\xfc\xe7\xa1\x13\xd4\xe7\xf4\x8fY\x06\xfd\xe1VX\ -\xf2^<\xc0u+gG\xfa\xc3\xa6\x02\xc4&\x0a\xc4\ -\xceH\x10\x9bk\xd0D\x82&\x0a4\x11\xa0S\xfd\xb1\ ->=\xd5\x1f\xed\xd3\xa9\xfe\xe0\xca\x9c\xd3\x9f\x99\xfc\xcc\ -\xd4g&>S\xed\x99J\xcfTyN\x85g\xb8a\ -\xfd\x05\x1b\xeeW\x7f\x95;u{\x90\x9dN\xdd\xc6\xb2\ -\xc3\xa6\xba\xc3f\xc2\xc3f\xca\xc3\xe6\xd2\xc3f\xda\xe3\ -\x06I\x9e(\xf2H{\xd8D|\x101\xb3S\xf5\x91\ -S\x9b\x8d\x18l\xee\x80\xd1\x83$\xb3\x01\x1a6Q\x1f\ -\x9d\xce\xb4g&=3\xe59'<3\xdd\x89.o\ -\xac;\xd1\x15\x9d\x08O\xeb\xf6N\x95\x87\xcd\xa4\x87\xcd\ -\xb4g&=S\xe5\x99\x08\xcfTw\xa6\xb2s\xaa:\ -v\xd0\xb6O\xff+-\xe9s\x87\xf6\xfb\x8a\xfe\x5c\x17\ -\xdf\xff\x06=GYN\ -\x00\x00\x0bM\ +\x00\x82\xfbx\xda\xed]\xe9\x8e\xe3\xc6\x11\xfe\xef\xa7 \ +\xb4?\xbc\x83\x88T\xdf\x87v\xb4F\x92\x85\x0f\xc0F\ +\x80x\x9d8\xf9cpHJC\xaf$\x0a$5\x9a\ +\xd9\xd7\xca{\xe4\x99RM\xf1\x94HyF\xd4 \xc0\ +\x8a\xc2\x1ed\xf5\xfdu\xf5\xd7Uj\x8au\xfb\xcd\xe3\ +ji=\x04q\x12F\xeb\xd9\x08;hd\x05k/\ +\xf2\xc3\xf5b6\xfa\xe5\xe3\xb7\xb6\x1aYI\xea\xae}\ +w\x19\xad\x83\xd9h\x1d\x8d\xbey\xff\xd5m\xf2\xb0\xf8\ +\xca\xb2\xac]\xe8\xa7\xf7\xb3\x11S#sw\x1f\x84\x8b\ +\xfb\xb4\xbc}\x08\x83\xdd_\xa2\xc7\xd9\x08Y\xc8b\xca\ +\xca\xc5\xa1?\x1bAq\xb2\xcfS\xb5\x8c\xf7\xa9\xebO\ +\x89\xe7n\x82i=\xc5!\xd6[\xe4\x22\xe4\xcd9\xa5\ +zl\x11D\x88\x8d\xe0\x0f\xbb\xc9\x0a%\xd0\xdf\x0d\xfc\ +\x9d\xfa\x91\xb7vW\xd0\xcd(\xf5\xe7\xbf\xa5\x89\x03\x0d\ +e9`\x94\xebdZT>\x1b\xdd\xa7\xe9f:\x99\ +\xecv;\xa7\x10:Q\xbc\x98\x98\xd2\xc9\xc6\xf5\x82d\ +R\xc8k\xe5\x8bv\xca\xf2\x85\xc0I\xa2m\xec\x05s\ +\xa8\x22p\xd6A:\xf9\xf0\xf1C\x99h#\xc7O\xfd\ +Z5\x8fK\xa8\xbb\xd1\x87\x1d\xcdZ\xc7Z\xebI\x96\ +Z\xe5n\xcbG\x10B\x93\xe6\xd0\xe0\xee\x999c\x7f\ +\xde\xd96\x22\x13@\x16r\xd8\xc9\xd3:u\x1f\xedu\ +\xf2\xa6V\xd4\xf3\xca\x92^\x1c\xb8i\xf8\x10x\xd1j\ +\x15\xad\x93=x\x8d\xcc~\x95y\xb3\x8d\x97Y\x0e\xdf\ +\x9b\x04\xcb`\x15\xac\xd3d\x02\xf3:\x19\xbd\x87\xfc\xb7\ +\xab u}7uM\xd9\xbd~\x14\x12L\xb2\x1c\x90\ +\x07\xfa4\xfd\xfb\x87o\xf7wp\xefy\xd3\x7fF\xf1\ +\xa7\xfc\x16>&\x83{\x17mA\xffF\xefK\xf1\xad\ +\xefMaVVn\xfa>\x5c\xb9\x8b\xc0`\xf1'\xe8\ +\xdf\xed\xa4JhdN\x9f6AU\xe9\xbe\xda8\xd8\ +Oo\xebx|o\x15\x9aB\x93\x9f\xd3p\xb9\xfc\xc1\ +42\xb2&e?'yG\xf3aLj\xe3\xb8\x9d\ +\x14\xc3\xcc\xee\xfc`\x9eT\x08\x98;\x8c\x8a\xd1\x83J\ +\x04n\xfc]\xec\xfa!`W\xf4\xaf\x5c+^\xb4\x5c\ +\x06\x1e\x8c\xdc]\xee\xdc\xa7dTf\x80\x8a\x9aE1\ +\xd1\xa4\x84\xe76I\xa3M5\xd8$}Z\xc2\x18\x8d\ +\xd0\x86\x1a\xa3x\xfa\xc6\xf3\x10\x9a\xcf\xdfe\xa2\x08\x96\ +\x05\x8ct\x8aGU\x91h>O\x02h\x17\xd5d\xd9\ +\xfa\x86\x02\x98(UG\xe2b\x8d\xe1\xd6\xc64*\x1b\ +\xbb\x9d4\x07\x9dKWn\xfc)\x88\x8f\xc0\x83\xe2\xde\ +'S\xcf\x9f\xe38\xda\xe1\x1f\x81\xed\xe2\xb4l\x22\x8a\ +M\x0d\x80\xec6\x8dJa\x1c\xcc\xff\x05\x83vP]\ +\xf2kS\xd2Yc>\xf2\x08\x08n\xbe\x8cv\xd3\x87\ +0\x09\xef\x96\xc1\xe8\xa8ca\x92um6J\xe3m\ +PM\xda\xc6M\xef\x9b\x00\x18\x09\xe3Z\xd5p\x01\xe9\ +O\x16tg\x0c\x7f\xad\x1f-\x0eW6\xcf.mL\ +\x1c^\x13\xef\xa5E\xd6\xcf\xd6\xe8h\x8e\xe6\xa0\xd7v\ +\xbc]\x06\xd3\xe0!XG\xbe\x0fS\x14G\x9f\x82\xe9\ +\x1b\x94}\xf2[;\xdb\x0c\xa6\xb0\x85l\xd2Z%i\ +\xec\xae\x13\xb3\xd2`\xa2\xc8\x01\xc8\xde}\xe0\xc1\x02\xbd\ +\x8b\xdc\xd87\xf3\x90\xab\xd7b\x9f\xd5\x8dC\x17j\xb8\ +\x0b\x96\xb3\xd1\x7f\xffS\xa0\x95\xb3N\x04\xb5g\xd7\xd3\ +\xb51-\x97\xef2\xc9.\xc3\xbc!J\xa0\x8bS\x00\ +H\x0b\xd8\x89\xa8T\x9b\xc7wf\x99\xe6\xd3\x03\x84D\ +\xf8>\xe3\xdc]\x85\xcb\xa7i\x02k\xc4\x86u\x14\xce\ +\xdf-\x834\x0db\xdb8)\xe0\xa3M\x11\x14\xdd\x81\ +\x8e6\x04\x86\xfe\xa6o|\x86\x10\xe7\xd9MeO\x15\ +D\xb8\x06o\xee\x88\x05%\xc3\x14\x95\xeb\xdb\xcc~\x1a\ +<\xa6\x0a&8\xa7\xab:=\x1b3\xdd\xa2\xd4A0\ +\x041\xc6\xdc\x11\x18vIi\xdd[6sH62\ +ki\xae\x99PTQ\x93\x03\x0b!\x89\xf5W\x8b\xc0\ +\x1e\xac\xb5\xc2tL\xa4\x83\x14\x91J\x1b\x19&\x12\xeb\ +\xac*\x8aa\xfd[X9\x98QBq%\xf2,\x9b\ +\xc0\xae\x89\x94Tcd\x01\x0bH*\xb5dc\xeaP\ +\xa4(!5\x91p\xa4R\x1c1\xe8\x10r\x04cL\ +*(\x8e #\x92\x5c\x8e\xa1\x1e.\xa5\xc6\xd4\xc2`\ +\x10h\x09\x9d1e\x15\xd2\x14:\xe30\x8d\xb5\xaa\x8b\ +\x18t\x14\x0b\x0d\xec\x0f\xccO\x18\x96\x1cz\x8a\x1d\x8d\ +0\x15\x1cD`T@\x0b\xa6\xa7H!\xa9-`+\ +&\x89\xc0 \x82\xec0\x5c\xe8\x1b@L1\x800.\ +\xea7\x22\xa8\x0a\xe8m\x5c6\x04\x059\xe6\x5c\x11(\ +((\x11\xd0m\x10II\xa94\xb9\xb0\xd4\x8c\x88\x9a\ +\x08\xc0\xc6\x88kl\xa1\xaa\x00\x0cXI GhH\ +\xc3\xecP\x0e#\x82L\x04\xba_\x970\x05\x1d\x84\x01\ +\x95\x90\x02(\x08k3\xa0J\x94O&\x81\xfa\xa1\xb7\ +J#&\xb2NR\x06\x06K\xc6\xc4\x1a\xc1P\x98\x91\ +\x09\x84\xb9\x01\x12@\x10Zin}>\xb4::\xd6\ +\xc8\x83YW\xeb\xf4\x0f\xd7M\x1a\x07\xa9w\xdf\x90\xe5\ +K\xe4\xeb\x9f?\xfe\xf0\xab\xf5\x13(\xe8\xd7\xef\xecb\ +A\xdb\xfbR` \x86\xf3\xd0\x03\x875Z72\xee\ +\x17J\xeex\xb4.\x94\xae\xc5Qm\xf0\x9a\x96\x1c1\ +Y\xd4\xa9\x22=\xda\xd9\x90\x83\x15\xe8!e*\xdb\xda\ +\xcc-F\x08fllK\x01:\xaa\x89\x86K\xa3\xf6\ +\x84\x12\xa5oj\x0bq\x81a\xe2\xedr!\xc6\xb0\xfb\ +\x1c\xdase\xcf\xf7\xa3\xe2\x1c!\x9fu,\xff\x22\xb5\ +1HX\xcbZsh\xb9\x94\x1bR\x02\x1c\xa7q\xb4\ +]\xfbu\xe1\xefQ\xb8\x9e\xde\x81q\xb5,\xa4\xe0\x05\ +\x07\xf1\x12\xc87\x9d\x96\xc5}\x17v\xac8v\x9f\x1a\ +tc\xa4{_nZ\x1abU\x077n\x08S\x96\ +\xed\xba\xd3}\xa2e\x86`\xed\xcd\xa6\xa6okPP\ +\x98\xd9\xb22_\xf2-\x10\xc3\xde\x84\x8c\xa6\x96\x09\xe5\ +\xce\x97\xa7\xc8\xca\xb6\x99\x8d\x8c]/\xa5\x12\x95\x11c\ +\xf6z\xae\x1dN\xcc\x1eU\x1ao\x03\xecu\xd8)\xd8\ +\xb5\xfdp'\x05\xf0\x87\xb83\x98\x0b=\xe0\xde\x8e\xbb\ +\xb0\xfb\xea;\xeb\xc2]0\x5c\xfb\xd6f\xc0\xbdI3\ +\xb6\xe8\x89\xbb\xd8\xe3\xae\x07\x9ay\x01\xec\xdc&\xba/\ +\xbfw\xe0.9\xd8D\x03\xee\x1d\xf4\xcemLz\x02\ +\x8f\xd1\xa0\xf1g\x10<\xb1e_\xe0\x8b\xadu\x00\xfe\ +\x05\xc0k\x1b\xf5\xa5\x1a\xcc\x06\xe0\xcf\x01\x1e\xdb\xb4\xef\ +\xee\x8aE\x07\xf4\x03\xcd\x9f\x80\x9e\xd8\xe8U\xbc'\xaa\ +\x1d\xf3m\xf1\xa0\xf2\x9d\xde\x13\xd8\x93\xe4U\x1c(\x03\ +=c\x83\xc6w\xfaO\xc8\x16\xf8U\x5c(@\x9eh\ +=\xb8P\xdd.\x94\xb6\x95\xbc\x8c\x17\xa5\xc8\xc07/\ +r\xa3\xa8}!?\xea\x18y\x86)\x1d\x80\xef\xf4\xa3\ +\x84})Gj\xd8c_\xe8H\xa1\xde\xe6M\xbb+\ +5@\xffG\x16\xfd\x05\x94\x9e\x0d\xc8\x9f\xe7K\x11\x9b\ +\xcaW\xf1\xa6\x06\xae?\x8d=\xb1\xfb\x9fE1\x8a\xb5\ +\xe4\xac\x81;V\x8eR\x98\x0cJ\xdf\xe9M\x91\xde\xd6\ +\x0d\xc9\xa1?F\x9ej1xS\x9d\xde\x94\xeaM\xf4\ +,G^\x1c\x22\xaf\xb5\xc9\xf9\x12\xe4\xe5\x9c\xb8]\x87\ +\xf9e\xea\x17\xe3L\xc9\xde\xd0\x8b.\xe8_N7W\ +\x04=8S\xa0\xf7\xfd\xbd\xa96\xe8\xc1\xbcA\x0a\xa9\ +\x01\xfa\xeec\xa9\xdeTo\xdc)\x83\xbd\x1a\xb4\xfee\ +\xee\xd4eN\xa6\x06\xe8_n\xd4\xeb\xdeO\xdb`6\ + \x7f\xe6\xd1\x94}\x89\xb3\xa9\x16\xec\xcf\xe1\xfa\xab:\ +\x9b\xc26~\x0d\x7fJ+\x87SM\x04\x1e\x90\xef>\ +\x9d\xd26y\x0d\x8f\x0a\xb0gZJ\xc4\x06\xec\xbb\xcf\ +\xa7Xo\x13\xa7\xd5\xa7\x02\xec\x05'B\xea\x81\xed\xbb\ +\x0f\xa8d\xef\x9d6'{\xa1\xfbs\xceu9U\xb6\ +\xea\xcf\xf7\x1d\xd8K!\x90\x1e\xbc\xaaS\x87T\xecu\ +\xfc\xaaA\xf1\x9fsL\xc5m\xf6\x1a\x9e\xd5\x00\xfe3\ +\x0e\xaaP\x7f\xaf\x96\x0d\xd8\x9f}T\xd5\xfb\x9b\xb4V\ +\xef\xea<\xce\xbf&;\x13\xf7\xa6\x1c\xe5`\xf8H\x22\ +\xeb\xc0K\x90R\xcd0\x19\x80\xefr\xaeP\xefcB\ +R@\x7f\x80<\xd2R19 \xdf\xe5Z\x89\xde\xcf\ +\x83\xb0\x0e\xe4\x09'\x8a\x0eT\xdf\xe9X\xd1K\xb8U\ +\x19\xf2\xa2?\xdb\x5c\x95[Ez\x7f}\xa9:\x90\xa7\ +B\x90\x17>h\x0c \xf2n\xe4\xf3\xd4/\xc6\xa9B\ +\xbd\xfdY\xe3R\x19\xecU\x7f\xa5\xbf\x22\xe8\xc1\xa5\x12\ +\x17y\xf2o\x80\xfe\x0c\xa3\x9e\xf7?/\xc9wY1\ +@\xffB\x7f\x8a\xf7?'\x14\xedj\x7f\x06\xd9_\xd5\ +Y\x15\xeb}^\xd2\xeaNq\xe9\x98\x17\xda\x90\xe1\xac\ +\xea\xc4Y\x95\xecM\xf6\xad\x0e\x95\xc1\x9es\xc5\x87\xe7\ +.O\xfd\x96\xaa7\xdb\xb3\x0e\xec5\x18?t8\xab\ +:qV\xc5{\xdb\x979\xd97\x7f\xbdy\x1e\xe7\x5c\ +\xd9YU\xff\xf7\xb0\xa8V\xec\x95\x83\x08#\x5c\x0dV\ +\xce\x89\xb3*\xdd\x1b\xfc\xc2\xb1\x12\xfd\x15\xff\xba\x1c+\ +\x04\xba\xcf.\xe4Z\x0d\xe0\xbf\xf4\xacJ^\xe4\xacj\ +\xc0\xfe\xbc\xb3*v\x91'\x01\x8f\xbc\xab\xf38\xff\x9a\ +~\xbd\xdc\xff\x87UF\xc1\x11\x95\xa8\xf1`\x08\x95\x0e\ +5\x0f\x07\x0e\xceU\xa7s\xd5\xff\xcb\x1c\x92C\x8f\x0f\ +\x91\xe7\xdc<\x9f6 \xdf\xe1Z]\xe0!\xc0\x0e\xe4\ +9Fzx\xe2\xbb\xd3\xaf\xba\xc0\x13\x809\xf0\xbc?\ +\xd9\x5c\x95W\xc5z[7\xaa\x03yA\x18\x95\x83O\ +\xd5\xedS\xb1\xfeF=\xca\xb1\xef\xaf\xf4\xd7\xe5Q\xd1\ +\xfe\xce,\xb9\x18\xf4wT\xa1n\xe8\xf3\xd4/\xe6}\ +\x7f\x17xI\xc5\x1ey1 \xffBoJ\xf6\xd7z\ +\xd1\x8e\xfd\x19\x5c\x7fU'U\xaa7\xd5\xb7:SX\ +:\x88\xc3gx=\xc8\xa9w\xfe\xf5\xb6pZ\xdd)\ +\x83=\xa6\xc3\xab\xe7N\x9eT\xf5\xd7{\xd6\x81=\x16\ +J\xcb\xe1\x11\xb4S\xaf\xfd\xeb\x8d}A\xf6\xb2?\xe7\ +\x5c\xd9I\x15\xeb\xed\xcf\xaa\x0e\xec\x89\x22T\x0f\xa6\xfd\ +\xa9\x93*\xda\xff94\xd4b\xe6\x9c\xa7\xf8\xd7vR\ +\x85/\xf0\xbe\x8a\x8b\x81\x7fU\xf6\xbd\xf9\xfaR\xbd\x86\ +ou\x1e\xf6\x9e\xe7\x9e`\xfc<\xf5K:\xa9\xd2\x17\ +8\xa9jG\xbf\xc1\xf9\x07A\xaf\xb2XU\x0c\xf3\x82\ +\xf2\xda\x82`)\x84a\x02\x11\xc9\x83`I\xc5M\xfc\ +0:\xb6\xa5t\x14\xc3\x92\x89,\x08\x96\xe6\x0cQ|\ +S\x84\xbcZ|u\x1c\x15\xb4\x16\x0a\xd4AHHb\ +B\xb6\x11\xee(%\x89\xd67\x0dt\xa0W\xac\xf6\xca\ +\x81E#M\xd7\x06\x99\xb6E\xa4\xccbB\x96\x11)\ +\xf3;\x9b\x1aU4\xef\xa24\xa1\xd1$\x03sY\xd0\ +\x9b*\x9a\xe9\xa2\x19\x0et\xa1\x19n\x8f\x8c[\x1b\x07\ +\xd2`\xc7sJ\xc7\xc4\xbc\x1b\x84\x10\xc9n\xea\xf1\xac\ +\x17\xf5\xe0\xd4m\xe0j*\x99\xd6Z\xe6\xe0\x96\xb7\xb6\ +d\x0e\x01\x808\x07\x84\xa4\x89iK\x0d\xb8\xf5\xea\xca\ +\xb9+\xe3\x8c\xb55Z\xe4\xe3\x80\xe6\xfbF\xc2A\xf4\ +\xd6\xc38\xa8\x14\x8d\x0e\x13\xf7\x91V\xc7\xc8\xfa\xde\x04\ +\x88\xff\x87\xf9\xe7{\x0bY\xff>\xcaX\x8b\x88\xba\x86\ +5\x98F\xb1\xedm\xe3\x077\xdd\xc6A3\xfc\xf4Q\ +\x1c\xd8l\xb1\xd5\x02Q\xef\xa3\xb0.N\x0d\xf0\x0c\x0d\ +;\xd03\x9b\x1c\xb6\xd8\x8a\xa1\xc0\xbcv\xc4\xd3\xad~\ +\xb0^\x90\xc4\xbc\x98SM\x99V\x02g\xe1\xfa\x88\x94\ +X\x9a@\x7f\x5caB\x10>\xecR\x19h\xbb\xcd\xa5\ +\xab\xc2l\xd7{[C\xa7\xbc,\x96y\xfe_E\xb8\ +\xb1\xe1\x04\x870-8+\xe8\x1eD\x0c;\x94RR\ +F\xeey\xcc\x22\xcd*\x0e],L\xd1\x82{\xb8C\ +%E\xb8|-xNV\x949Z\x82\xc1\x89kQ\ +\xf0L\xb3\x8ckQ>\xf4V\x9fg\xb0^\xcc\xa7\xdb\ +\xb6\xc9R\x1b\x14o\x82(*$\x814\x9fG\xf1\x0d\ +\xe9\xf3)\xbe\x9d\xces\x0a\xdf\xf3\xf9>g\xc1\xa9\x87\ +\xf0r\x98|N\x9b\xf0b\xa21Qux\xa9 H\ +\x94\x88W\xf0*\x98\x1cY>oP\x04\x89\x85\xfc\x80\ +:j\x85\x97\x96\xdf\x8a\xd6\x01\xde\xc6\xcb\xb7\xc7\xd1\x86\ +\xd9\xcd\xb3C\x8c\x02\xdc\x88QE\xff\x0f`\xef#F\ +f\xf8\xdeN\x92\x07\xd0\xe2\xff\x01R3\x03\xfd\ +\x00\x00\x0c\xb1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ +ts/1.1/\x22>\x0a \x0a \ +\x0a \ +\x0a\ image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04V\ -\x00\ -\x00+\xa6x\xda\xedZ\xdbn\xe36\x10}_`\xff\ -AU^\x12tE\x91\xd4\xc5\x92je\x816X`\ -_\xdb-\xfa\xcc\x88\xb4\xad\x8d$\x1a\x14\x1d\xc7\xfb\xf5\ -;\x94us\xe2\x14i\x03\x08\x01\x22\x01A\xcc3C\ -rxf\xc8c\x0a^~~(\x0b\xeb^\xa8:\x97\ -Uj\x13\x84mKT\x99\xe4y\xb5N\xed\xbf\xbf}\ -q\x22\xdb\xaa5\xab8+d%R\xbb\x92\xf6\xe7\xeb\ -\x8f\x1f\x96\xbf8\x8e\xf5\x87\x12L\x0bn\xeds\xbd\xb1\ -\xbeVwu\xc6\xb6\xc2\xba\xdch\xbdM\x5cw\xbf\xdf\ -\xa3\xbc\x05\x91Tk\xf7\xcar\x1c\xe8\x0a\x9d\xeb\xfb\xf5\ -\xc7\x0f\x96e\xc1\xdcU\x9d\xf0,\xb5\xdb>\xdb\x9d*\ -\x1a_\x9e\xb9\xa2\x10\xa5\xa8t\xed\x12D\x5c{\xe4\x9f\ -\x0d\xfe\x99\x89 \xbf\x17\x99,KY\xd5M\xd7\xaa\xbe\ -\x18{+\xbe\xea\xddMH{\xaf\xf1\x22q\x1c\xbb\x98\ -\xba\x94:\xe0\xe1\xd4\x87J\xb3\x07\xe7Q_\x88\xf3\x5c\ -_\x8a1v\xc16r}\xa1[R\x03\xb3[\xf8\xeb\ -\xfd;\x00\xd5r\xa72\xb1\x82\x8e\x02UB\xbb7\xdf\ -nz\xa3\x83\x11\xd7|\x08\x8cb\x8a\x02\xeb\x92\xe2\x10\x8b\x8c\xac\ -\xe2\xd5'\x8bb\x8a\x1d\xec;8\xba\xb2\xafM\xbfe\ -)4\xe3L\xb3f\x90c\xc0\x1d\x14\x1d]\xc0\x09\xf2\ -\x98\xfcy\xf3\xa5m\x02\x90e\xc9?R\xddumx\ -\x8c\x0b\xbb\x95;X\x8e}=\xe0K\x9e%\xc0|\xc9\ -\xf4u^\xb2\xb50Y\xfb\x15\x88^\xba\x83\xe1\xd4[\ -\x1f\xb6b4\xeeqd%\x8eI<[\xce<+s\ -\xd3\xcb\xfdK\xe7E\xf1\xd5Lc[\xee\xe3as]\ -\x88\x11\xbat\xdb5tkt\xc7\x8b\x5c\xba\x1d\x09\xc7\ -&\x17\xabz\xc4\x90i\x86\xdd\x1c\xcb>7&1\xdc\ -\xe4\xb0u\xddB$\x99,\xa4J\xed\x8bU\xf3\xd8\xad\ -\xe5V*.Tg\x0b\x9b\xe7\xd4&\xa1\xc0`UP\ -\x1c\x1d.o\xbf\x8bLkY\x08\xc5*C\x05\xc1\x9d\ -i\xad\xa0\xb2\xce\x1av9\x17g-}\xbd\x98 \xfb\ -\xc9\xce\x9b\xeb\x0d\xe3r\x9f\xda\xf4\x89u\x9fW`q\ -\xba\xc2\x8e\xfc\xe89\x97\xbe\xd61\x19|\x80\xca\x9e3\ -\xbfC\xeb\x8d\xdc\x9b\x05\xa5\xf6\x8a\x15\xb5x2\xe0\x0f\ -)K\x88\x05\xf9A\xe4\xc1\xf3\xc4\x9e\xc1\xfeq\x08E\ -q\xec\x07\x1eyj\x86e\xc6!\xa2a\xe4\xf9\xe4\xb9\ -ha\x88\xc5\xb3\xab\x85\x01h\xf0\x9c\xb1d\x0fy\x99\ -\xff\x10|\x94\xb9a\xee\x9dRp\xf0:\x05;\x08\xd5\ -\x9e\x0c]\x15\xadG\xa4\xacc\xaf\xcf\x84\x86\xd4\xd5f\ -\xa7\xa4v\xf3\xb1\x00a\xb8$(&\x01\x0dH\xb7\x8d\ -\xcd\x1e\x85\xe2\xe8K^\x1d\x9aC(\xc6a\xcf\x8fe\ -\x19,Fa\xec\xc7\xc4\x1f\xd0\x87\x06%$\x0a\xfd\x91\ -o\x97.\x8a\x07\xac\xcd\xf2\x182\xc1\x9a\x89#B\x07\ -\xb0\xd6\x87\x02j\xad-\xaa\x84\xfc\xb6\x82m\x99\x5c\xc4\ -\xcd\xd34\x9c\xc1Vk%\xefDR\x81\x04\xb6\x9f\x8f\ -\xd5\x94xh\xb1\x88\x03\xba\x08\xc3\x0e/\xf2J\x00\x8d\ -\x89\x92\xbb\x8a\x8f\xc1\xef2\xafNQ8\x10\x84* \ -\x11:\xf1;\x8c3\xa8csh\x9eL6D\xb2e\ -9\xa4\xa6\xd9|I\xc9\xd4\x1d\x9c\xa3\xd6\xd1\xc921\ -\x0fG\xcak\xa8\x0e(\xa2\x86\xeb\xe85T;\xdeL\ -\xf6K\xc8\x8e\x02\xe4\xe1\x00G\xfe\xeb\xc8v\xc2\x99\xee\ -\x17\x1d#$B^\x1c\x0dg\xee\xff\xa4{1\xd3\xfd\ -\x22\xba\x03\x82\x00\x0c\xbcW\xd2\x1d\xbc\x17\xba\x97\xee\xfa\ -Tj\xff]Z?y\x1e\xf2\x82 \xf6\xbc+\xfb\x91\ -6;\xf1\x9b\x91]g\x16\xde)\x85w\xa6{b\xe9\ -u\xa2\x99\xf0I\xc5\x17\xce\xb6\x99\xf0)\xe5\xf7\xfd|\ -\xdf\xf9\xaf\x02\x1c\x86h\xd1(\xe4S\x01\xf6\xde\x8e\x00\ -\xcf\xb7\x83I\x05\x98\xcctO+\xc0\xf37\x9e\xa9\x05\ -x~\xbd3\xb1\x02\x93Y\x81\xcf+0\xc1\x18\xe1p\ -\x11\x9d\xb9\x01\xfboG\x81\xe7\x17F\x93*\xf0|#\ -\x9bX\x81\xfd\x99\xf0i\x158\x98\x09\x9fV\x80\xf1,\ -\xc0\xcf\x08\xb0\xe7!\x9fz\x8b3\xef\xa0\xbd\xf0\xed(\ -\xf0|)\x9bT\x81\xf1L\xf7\xb4\x0a<\xbf\xe3\x99X\ -\x81\xe7+\xf0\xc4\x0aL\xdf\x97\x02/\xcd\x0f\x11\xe1\xff\ -O\x84\x93\xbf\xc0\ -\x00\x00\x0e\xc9\ +ed=\x221\x22\x0a inks\ +cape:current-lay\ +er=\x22svg2\x22\x0a i\ +nkscape:pagechec\ +kerboard=\x220\x22 />\x0a\ + \x0a \xce\xb7\ +\x0a\ + \x0a \x0a \x0a \ +\xce\xb7\x0a \x0a\x0a\ +\ +\x00\x00\x0aB\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0d\x0a \ -\x0d\x0a\ - \ -\x0d\x0a \x0a <\ +ellipse\x0a i\ +d=\x22path12-3\x22\x0a \ + cx=\x2230.65420\ +5\x22\x0a cy=\x2210\ +29.3185\x22\x0a \ +rx=\x2214.376685\x22\x0a \ + ry=\x2213.796\ +513\x22\x0a styl\ +e=\x22fill:none;str\ +oke:#999999;stro\ +ke-width:3.31116\ +295;stroke-miter\ +limit:4;stroke-d\ +asharray:none;st\ +roke-opacity:1\x22 \ +/>\x0a \x0d\x0a \x0d\x0a\ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09U\ +idth:0.45910597\x22\ +\x0a x=\x2219.40\ +4564\x22\x0a y=\x22\ +1036.9392\x22\x0a \ + id=\x22text839\x22><\ +tspan\x0a s\ +odipodi:role=\x22li\ +ne\x22\x0a id=\ +\x22tspan837\x22\x0a \ + x=\x2219.404564\ +\x22\x0a y=\x2210\ +36.9392\x22\x0a \ + style=\x22stroke-\ +width:0.45910597\ +\x22>?\x0a \x0a\ +\x0a\ +\x00\x00\x08\xa8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a <\ -g\x0d\x0a id=\x22g831\ -\x22\x0d\x0a style=\x22s\ -troke:#37c8ab;st\ -roke-width:21;st\ -roke-miterlimit:\ -4;stroke-dasharr\ -ay:none\x22>\x0d\x0a <\ -path\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path81\ -2\x22\x0d\x0a d=\x22M \ -59.837063,61.191\ -958 134.85037,13\ -5.42536\x22\x0d\x0a \ - style=\x22fill:non\ -e;fill-rule:even\ -odd;stroke:#ff80\ -80;stroke-width:\ -15.57077312;stro\ -ke-linecap:round\ -;stroke-linejoin\ -:miter;stroke-mi\ -terlimit:4;strok\ -e-dasharray:none\ -;stroke-opacity:\ -1\x22\x0d\x0a sodip\ -odi:nodetypes=\x22c\ -c\x22 />\x0d\x0a \x0a \x0a \ + \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x83\ -\x00\ -\x00\x85\xa0x\xda\xed]\xebn\xe3\xc6\x15\xfe_ \xef\ -@h\x7fd\x8d\x8a\xd4\xdc/Zk\x83\xb6A\x9a\x00\ -\x09\x0a4\x9b6\xed\x9f\x80&)YYI\x14H\xda\ -\xb2\xf7\xb5\xfa\x1e}\xa6\x9e\xa1x\x95H\xd9\xd6\x8eQ\ -`E!\x17\xf1\xccp.\xe7\x9bs\xf944\xe7\xfa\ -\x9b\x87\xf5\xca\xb9\x8f\x92t\x19of#\xec\xa1\x91\x13\ -m\x828\x5cn\x16\xb3\xd1/\x1f\xbes\xd5\xc8I3\ -\x7f\x13\xfa\xabx\x13\xcdF\x9bx\xf4\xcd\xfb\xaf\xfep\ -\x9d\xde/\xbe\xfa\x83\xe38\xbbe\x98\xdd\xceFL\x8d\ -\xf2\xcb\xdbh\xb9\xb8\xcd\xea\xeb\xfbe\xb4\xfbs\xfc0\ -\x1b!\x079L9\xa5|\x19\xceF\xd0\x04)j\xd5\ -\xfd\xe3\xa2|\xf31\x0d\xfcm4m\x16y\xc4y\x8b\ -|\x84\x829\xa7T\x8f\x1d\x82\x08q\x11\xfc\xc3\xae\xf6\ -w\xa50\xee-\xfc;\x0d\xe3`\xe3\xafa\xb8q\x16\ -\xce\x7f\xcbR\x0f\xfa\xdaW\x81\xe9n\xd2i\xd9\xfcl\ -t\x9be\xdb\xe9d\xb2\xdb\xed\xbcR\xe8\xc5\xc9bb\ -nO\xb7~\x10\xa5\x93R\xdel\xa0\xec\xa9j\xa0\x14\ -xi|\x97\x04\xd1\x1c\xda\x88\xbcM\x94M\xbe\xfd\xf0\ -mU\xe8\x22/\xcc\xc2f;\x0f+h\xbd5\x8a\x1d\ -\xcd\xfb\xc7Z\xebI^\xda\xa8\xdeU\x91 \x84&\x07\ -\xd3\x83\xcb\xe7VM\xc2yo\xf7\x88L@\xc1P\xc3\ -M\x1f7\x99\xff\xe0n\xd27\xcd{\x83\xa0\xba5H\ -\x22?[\xdeGA\xbc^\xc7\x9bt\xaf\xc2v\xed\xb0\ -\xae\xbd\xbdKVy\x950\x98D\xabh\x1dm\xb2t\ -\x02\x00OF\xef\xcd\x0d\xd7\xeb(\xf3C?\xf3\xf3\xbb\ -\xf7\x8b\xa5\x14a\xb2\xaf\x03\xb5``\xd3\xbf\x7f\xfb]\ -q\x09\x82 \x98\xfe3N>\x96\xd7\xf01U\xfc\x9b\ -\xf8\x0eV\xe4\xe8}-\xbf\x0e\x83) \xb4\xf6\xb3\xf7\ -\xcb\xb5\xbf\x88\x8cR\xfe\x08\xa3\xbc\x9e\xd4\x05\xed\xda\xd9\ -\xe36j\xb4\xbbo9\x89\xf6`w\xce+\x0c\xd6K\ -s\xd7\xe4\xe7l\xb9Z\xfd`\xba\x199\x93z\xb0\x93\ -b\xb4\xe5l&\xcd\xe9\x5cO\xca\xf9\xee/\xc3h\x9e\ -6\x94a.1\xaa\x14\x01\xab$\xf2\x93\xbf&~\xb8\ -\x04MV\xc3\xacl(\x88W\xab(\x00\x1d\xf8\xab\x9d\ -\xff\x98\x8e\xea\x1a\xd0V\xfbfL4\xa95u\x9df\ -\xf1\xb61\xed4{\x5c\xc1l\x8d\xd4\x85F\xe3d\xfa\ -&\x08\x10\x9a\xcf\xdf\xe5\xa2\x18\xec\x05\xe6<\xc5\xa3\xc6\ -=\xf1|\x9eF\xd07j\x0as\xf3\x87[0Q\xaa\ -\xa5\x15\x8b\x1d\xe2\xee\x0e5\xaa;\xbc\x9e\xb4g_\x8a\ -\xd7~\xf21J\x8e\x15\x09-\x04\x1fMS\x7fJ\x92\ -x\x87\x7f\x04\xc7\x98du7qb\x1a\x015\xdfe\ -q-M\xa2\xf9\xbf`\xfa\x1ej\x89~=\x10\xf5\xb7\ -Z\xe8 \x06O8_\xc5\xbb\xe9\xfd2]\xde\xac\xa2\ -\xd1\xf1\xf0\x96i>\xc0\xd9(K\xee\xa2\x06\x8a[?\ -\xbb=\xd0\x85\x111\xaeUSG \xfe\xc9\x81A\x8d\ -\xe1_\xe7G\x87\xc37\x97\xe7_]L<\xde\x10\xef\ -\xa5e\xd5O\xce\xe8\x18\xb29,z7\xb9[E\xd3\ -\xe8>\xda\xc4a\x08\x88%\xf1\xc7h\xfa\x06\xe5\x9f\xe2\ -\xd2\xcd\xe3\xc7\x14\xe2\xce6k\xb6\x92%\xfe&5\x96\ -\x08\xb0\x05\xfe*z\x8b\xbc\x05l\x10E\x94\xc81\xa8x\x0cW\x92)0\ -\xc81\xe4d\x84\x08\x84\x04&c\x97z\x18S\xcc\x18\ -\xad<\x0b\xa4\x04\x10l\xf7_+\x832\xc9ahR\ -\xdb\xa2\xdf-\x04\xf7<<\x81\xfa\xe6\xf9\xa7\x1c\xd1M\ -\x9c\x84QR\x96\x89\xfc\xd3.+bX#^\xc57\ -\xbf\x03JY\xbc\x8a`\x12&\xbb\xc0\x95a,\x12X\ -g\x9d\x05w\xcb0\xea,\xa9\xcd\x1e\x06Yu\xd6]\ -\x9c\xde\xfaa\xbc\x9b\x8d\xc8Q\xe9n\xb9\x81\x12\xb7\xc8\ -\xf6\x09\xd3\xbc\xafJ\xc9\x000\xc2\xd5L\xcd\xb2\xa9t\ -V\x81\x9a\xde\xc6;3!\xb02\x7fU\x83X5\xf8\ -)\x8e\xd7f9i\x8c\x19W\xe2\xa8<\x007\xe82\ -0#\xaa\x10g\xc7\xc50M*<\xaa\x94b\xa2o\ -\xb4\xd0\x84\xe8\x9d\x0a4@d_\xe1\xda\x7fX\xae\x97\ -\x9f\xa2\xb0\x81\x5c\xdd\xf7]\x92\xc0*tW\xfec\x94\ -4\x99\xce\x81\xc2\x83\xdb(\x00\x03\xbe\x89\xfd$4\xa0\ -\x94\x8bnQT\xf6\x93\xa5\x0f\x8d\xdcD\xab\xd9\xe8\xbf\ -\xff\xa9\x14W\xf8\xa6\x18z\xc8\xbfO7&g]\xbd\ -\xcb%\xbb\x1c\x80\x96(\x85qNASZ@\xf8\xa2\ -Rm\x1f\xde\x19+.\xb0\x02\xb7E\xf8\xbe\xe2\xdc_\ -/W\x8f\xd3\x14\x8c\xc7\x05\x0b[\xce\xdf\xad\xa2,\x8b\ -\x12\xd7P!\xa0\x84S\x04\xb7\xee`\xdd\xb6\x04\xc6I\ -N\xdf\x84\x0c!\xce\xf3\x8b:1+\xdd\xe5\x06\xc8\xe3\ -\x91\xaf\x94\x0cST\xdb\xbeY\x09Y\xf4\x90)\xc0\xba\ -ti-Gnh\x80C\xa9\x87`\x16b\x8c\xb9'\ -0\x04W\xe9\xdc:.\xf3H>9ge\xbe3\xa1\ -\xa8\xa2\xa6\x06\x16B\x12\xe7/\x0e\x81\xd8\xad\xb5\xc2t\ -L\xa4\x87\x14\x91J\x1b\x19&\x12\xeb\xbc)\x8a\xc17\ -8Xy\x98QBq-\x0a\x1c\x97@\xa8EJ\xaa\ -1r\xc0CH*\xb5dc\xeaQ\xa4(!\x0d\x91\ -\xf0\xa4R\x1c1\x18\x10\xf2\x04cL*\xb8\x1dAE\ -$\xb9\x1cC;\x5cJ\x8d\xa9\x83!\x91\xd0\x12\x06c\ -\xeeUHS\x18\x8c\xc74\xd6\xaa)b0P,4\ -D\x09\x88\x10\x84a\xc9a\xa4\xd8\xd3\x08S\xc1A\x04\ -\xc9\x08\xf4`F\x8a\x14\x92\xda\x01O\xc6$\x11\x18D\ -P\x1d\xa6\x0bc\x03-S\x0cJ\x18\x97\xed\x1b\x114\ -\x05\xaeo\x5cu\x047r\xcc\xb9\x22p\xa3\xa0D\xc0\ -\xb0A$%\xa5\xd2\xd4\xc2R3\x22\x1a\x22P6F\ -\x5cc\x07\xd57\xc0\x84\x95\x04\xc7\x09\x1di@\x87r\ -\x98\x11T\x220\xfc\xa6\x84)\x18 L\xa8R)(\ -\x05am&T\x8b\x0a0\x09\xb4\x0f\xa3U\x1a1\x91\ -\x0f\x922\xc8rr/\xad\x11L\x85\x19\x99@\x98\x1b\ -E\x82\x12\x84V\x9a;\x9f\x8e\xf2\x94\x1e;\xb97\xc6\ -\xb5\xc9\x9e\xb4\x9d,\x89\xb2\xe0\xb6%+\xcc\xe4\xeb\x9f\ -?\xfc\xf0\xab\xf3\x13,\xd1\xaf\xdf\xb9\xa5]\xbb\xfb\xbb\ - \xb5\x5c\xce\x97\x01\x90\xe2x\xd3\xaa\xb87\x96\x82\xc5\ -t\x1aK\xaf\x81\xd4\x99\x80\xa6\xb5\xaf\x98,\xda>#\ -;\x0a}\xc8\xc3\x0a\x16#e*\x8f}\xe6\x12#\x04\ -\xb0\x8d])`\xa1j\xa2\xe1\xabY\xfb\x84\x12\xa5\xaf\ -\x9a\x06\xb9\xc0\x00\xbf[\x1bd\x02\xa1\xe9(\x11\xac&\ -\xb0\x9f\x1c\xe7\x08\x85\xac\xc7\x13\x94\xa5\xad\xb9\x82Mk\ -\xcd\xa1\xf3Jn\xfc\x13\xa8s\x9a\xc4w\x9b\xb0)\xfc\ -=^n\xa67\x90\x8d\xadJ)\xf0\xec(Y\x813\ -\xce\xa6\xd5\xed\xa1\x0f\xb1,I\xfc\xc7\x96\xe71\xd2=\ -=\x9cV\x99[=\xc0\xad\xbf\x04\xe4\xf2\xa0<\xdd\x17\ -:f\x0a\xce>\xc9:\xa0\xcdF\x0f\x0a3W6\x12\ -\x9d\x22:b\x08Y\xc8\xac\xd9\xba\xa4\x0a\x8aE\x91l\ -\xa4A\xb3\x91\xa1\x06R*\xd1HwL>\xc0\xb5\xc7\ -\x89\x89]u\xc27h\xbf\xad}\x0a\xe9\xf0g\xab\x9f\ -\x94\xfa?R?\x03L\xf4\xa0\xfe^\xf5\x0b\xd7\xc2\xea\ -g\xbd\xea\x17\x0c7\x7f\x1e\x1a\xd4\x7f\xe8{\x5c\xf1\xf9\ -\xea\x17{\xf5\xeb\xc1\xf7\xbcP\xfb\xdc%\xda\x82\xef\xef\ -S\xbf\xe4\x90<\x0d\xea\xefw\xfd\xdc\xc5\xe4\xf3\xf5\x8f\ -\xd1\xb0\xfe\xcft\xfe\xc4\x95\x16\xf4_F\xdfA\xff/\ -\xd4\xbfv\x91\x05\xff\x83\xd9\xa0\xffs\xf5\x8f]j!\ -\x00c\xd1\x87\xc0\x10\x02N#@\x5c\xf4j\xe4\x8bj\ -\xcf\xfc0=\x18\xc0)\xf2\x05\x09(y5\xfee\x10\ -`lX\xff\xa7\xe8\x17r\x05~5\x06\x06\x00\x10\xad\ -\x07\x06v\x92\x81iWIk$L\x91\xc1\x09\xbd\x98\ -\x85Q\xd7\x1e\x0d\xeb\x00\x80aJ\x07\xfd\x9f\xa2a\xc2\ -\xb5\xc8\xc3\x860|\x06\x0fC6\x12\xa1\x1e&6 \ -\xf0\x0c&`\xc7\x04\xd8\x00\xc0\xf9T\x8c\xb8T\xbe\x1a\ -\x19\x1b\xe2\xc0\x93\x10\x10\xd7\xcaN\x18\xa3XK\xce\xda\ -\xea\xc7\xcaS\x0a\x93\xc1\x04N\x911b#\x0f\x22\x05\ -\x02\x1d\x00P-\x062v\x8a\x8c)\x1bA\x80\x15\x00\ -\x88#\x00\xb46u_\x06\x80\x9c\x13\xbf\xef1\x83\xaa\ -\xf4\xcb\xe1b\xd2\x06\x02\xa2\x17\x81s|\xd0%!\x00\ -\x5c\x0c\xac\xc0\x0a\x19\xebD\x00\x12!\xa4\x90\x1a\x108\ -\xb9)f#\x0c\x186f P\x83\x0d\xbc\x9c\x8dY\ -\xdb\x17\x1b\x108\x8f\x0ch\x1bO\x05a6\x00\xf0\x19\ -\x1bc\xae\xa5\x9d\xb1.\x08\xce\x8b\x03\x97\xb53\x86]\ -\xfcZtL+\x8fSM\x04\x1e\x008\xb97\xa6]\ -\xf2Z\x84\x0c `ZJ\xc4\x06\x08N\xee\x8e1\x1b\ -\xc9P7%\x03\x08\x04'B\xea!\x12\x9c\xdc\x1e\x93\ -6\x82q\x11\x08\x84\xb6\xe2\x88.\x8c\x93\xb9\xcaJ,\ -\xe8\x83@\x0a\x81\xf4@\xca\x9e\xd8\x22c\xafG\xcb\x06\ -3x\xe6&\x19w\xd9k\x11\xb3\x01\x83\xe7m\x93!\ -+\xdc\x98\x0d\x10|\xd6F\x99\x8d\x1f\xe9\xba\xc9\xd9\xb9\ -\xf1\xe0\xa2\x12Sl\xc3\x0f)\x0f\xc3G\x12\xd9\xd2\xbf\ -\x041\xd5\x0c\x93A\xff'\xb8\x19\xb2\xb1WIJ\x04\ -\x0e\x01@Z*&\x07\x00N03a\xe3\x81\x15\xd6\ -\x07\x00\xe1D\xd1!\x0c\x9c\xe2e\xd4\x12+\xcb\x01\x10\ -V\x5c\xd0e\xb12b\xe3\x07R\xd5\x07\x00\x15\x82\xbc\ -\xf8\xd1i\xd0%\xef\x07\xa0(\xfdr8\x19\xb2\xc1\x8a\ -\x0d#3\x10(+&pI\x08\x00#\x13\xb6\x1e[\ -\x1c\x108\x93\x0cp+\xdb4E \x16\x03\x02g\xd0\ -1ne\xb3R\xf4\x18\xc1Y\x81\xe0\xb2v\xca\x98\x8d\ -m\x9an6\xc6\xa5g^\x0cD\x86\x9d\xb2\xd3;e\ -\xd2F \xe8\xe6c\x06\x02\xce\x15\x1f\x9e\x1d}\xe2\xef\ -\xc8lD\x02\xd6\x07\x81\x86<\x89\x0e;e\xa7w\xca\ -\xb8\x8d\x84\xb4\x08\x04\x07\x7f\xcez\xae#\xba\xb4\x9d2\ -+/\xb4Q\xdd\x10(\x0f\x11F\xb8\x1a\xf2\xa1\xd3;\ -e\xda\x06\x06%/\x13V\xcc\xe0\xc2x\x19\x02K`\ -\xf6\x98\xd9\x80\xc19;e\xd2\xd6N\xd9\x00\xc1\xf9;\ -e\xcc\xd6c\x8c\xc7\xe4\xec\xdcxpQ\x7f\xdcm\xe5\ -\x8f\xca\xccjGT\xa2\xf6\x93+Tz\xd4<\xda8\ -p\xb3S\xdc\xcc\xca\x0fD\xa4@\x00\x1f\x01\xc0\xb9y\ -\xacn\x00\xa0\x9f\x99\xd9y\x82\xb1\x0f\x00\x8e\x91\x1e\x1e\ -e?E\xcb\xec<\xbeX\xe8\x9f[\xf1@\x97E\xca\ -\x98\x8d\x19\xb3\ -\xc1\x8aU\x1f\x04D\x11\xaa\x07J\xf0\xc4>\x19\xb5\xf2\ -\xf4\x1c\xeaJ\x88\xce5\x83\x8b\xdb'\xc3v^\xf5a\ -\x13\x83\xcb\xe2\x05\xe6\x07R\xf5Z\xd4\xec\x5c\x08\x82\xc0\ -?\x11\x0d\x8a\xd2/j\x9fL\xdb\xd9'\xeb\x01\xa1\x1d\ -\x0f\x8e\x0e<\xcb\x8f)c\x98W\xee\xb0\xeb\x044\x85\ -0`\x89Hq\x02\x9aT\xdc\x9c G\xc7\xae\x94\x9e\ -bX2\x91\x9f\x80\xa69C\x14_U\xc7\x9d-\xaa\ -\xa14\x1am\x1c\x1c\xeb!$$1\xc7\xf6\x11\xee)\ -%\x89\xd6WmE\xc1\xc8X\xf35\x0d\x8bv\xa9n\ -N7\xeb:\xb54?3\xb4:\xb5\xb4\xb8r\xa9Y\ -\x9b\xe6\xb5\xa0\xe6\x88<\xc9 \xcf\x16\xf4\xaaq\x02\xee\ -\xe2\xe0\xfc\xd8\x85f\xb8\xe7\x80\xe5\xc6t\x90\x06\x16\xc0\ -)\x1d\x13\xf3\x8e\x15B$\xbbj\x9d\x9b\xbeh\x9d\x81\ -\xde\xa5gM%\xd3Z\xcbB\xcf\xd5\xa5+\x99G@\ -S\x9c\x83\xaa\xa49\x17\x99\x1a=\xb7\xda\xab\x80\xac\xcf\ -\x9b\xeb\xec\xb7\xac\xc9A\xb1\xef\xdb%\x87'\xff\x1e\x1e\ -\xa0K\xd1\xe8\xa8t\x7fH\xef\x189\xdf;L9\xff\ -0\xff\xf9\xdeA\xce\xbf\x8fk6N\xd2\xdd\x80yf\ -q\xe2\x06w\xc9\xbd\x9f\xdd%\xd1\xc1\x09\xe7G\xa7\x08\ -\xe7\x86\xd8<\xeb|\x7f\x82\xef\xe2\xf4D\xcfYu\x07\ -k\xcf%G\xbdv\xabS`\xde\xdcl\xea_\x92`\ -IHb^B\xac)\xd3J\xe0\xfc(G\x22%\x96\ -\xe6\x10H\xae0!\x08\x1f\x0d\xab:\xd1\xbd\x8b \xd6\ -\xe7\xb9\xb7F\xdc\xd4R\xfd\xbd\xf2\x03\xe5\xff\x1b\xae9\ -1\x8e\xc3#L\x0b\xce\xaa\xf0\x002\x86=J)\xa9\ -\x0fnz\xc8\xcf+V\x1c\xc6Ze\xb4\xa5\x97\xe2\x1e\ -\x95\x14\xe1\xfa\xfd\xee\x85c\xa3\xcc\xd3\x12\xd2V\xdc<\ -'\xd1t\xce\xb8\x16\xf53|M\xec!\xf71\x9f\xfe\ -\xcc(/m\x85\x04s\xda\xa6B\x12|\xec\xf3BB\ -K\xfa\xfc\x90\xd0\xed\xfe\x0b\x97\xbf\xf7\xff\xfb\x9a\x95\xfb\ -=R3\x87\xb5\xc0\xe9\x81\x9a1\xd1\x98\xa8\x96\x9a\xa9\ - H\xd4\xaa\xaf\xd5\xac\x00'Y?\x1eQ\x1e2\x0c\ -w\x80\xfaQ\xb7\x9ai\xfd\x8blS\xd1w\xc9\xea\xed\ -\xf1\x09\xd6\xec\xea\xd9\xc7\xd2\x82\xda\x11\xa3\x8a\xfe\x1f\x94\ -\xbe?at\xaf\xe7\xebIzo\x96\xf5\xff\x00\xa5\x8f\ -&^\ -\x00\x00\x0d\x0a\ +roke-opacity:1\x22\x0a\ + id=\x22path8\ +43\x22\x0a cx=\x229\ +7.532646\x22\x0a \ + cy=\x22100.04065\x22\x0a\ + r=\x2247.5\x22 \ +/>\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x0b(\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \x0a \ + \x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \xce\xb7\ -\x0d\ -\x0a \x0d\x0a \x0d\x0a\ - \ -\x0d\x0a \xce\xb7\ -\x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0a\x95\ +\x226.7812499\x22\x0a \ + inkscape:cx=\x22-3\ +6.571429\x22\x0a i\ +nkscape:cy=\x2222.9\ +30876\x22\x0a inks\ +cape:window-x=\x226\ +5\x22\x0a inkscape\ +:window-y=\x2227\x22\x0a \ + inkscape:win\ +dow-maximized=\x221\ +\x22\x0a inkscape:\ +current-layer=\x22s\ +vg6\x22\x0a inksca\ +pe:pagecheckerbo\ +ard=\x220\x22 />\x0a \x0a\ + \x0a\ + \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x06\xc2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a ?\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08\xed\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0bw\ +rrent-layer=\x22svg\ +4\x22 />\x0a \x0a\ +\x0a\ +\x00\x00\x0d;\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a <\ -path\x0d\x0a d=\x22M0\ - 0h48v48h-48z\x22\x0d\x0a\ - id=\x22path2\x22\x0d\ -\x0a fill=\x22none\ -\x22 />\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a sodip\ +vg2\x22\x0a inksca\ +pe:pagecheckerbo\ +ard=\x220\x22 />\x0a \ +\x0a \ +\x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x06\xfd\ +pacity:1\x22\x0a \ + sodipodi:nodety\ +pes=\x22cc\x22 />\x0a \x0a\x0a\ +\x00\x00\x07n\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x87\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +4\x22 />\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\xd1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0a \ + \x0a \ +\x0a \x0a <\ +/g>\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xa8\ +ty:1\x22 />\x0a \x0a \x0a\x0a\ +\ +\x00\x00\x08\xdf\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0e\x1e\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/s\ -vg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x09$\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\xd9\ +x=\x2257\x22\x0a inks\ +cape:window-y=\x222\ +7\x22\x0a inkscape\ +:window-maximize\ +d=\x221\x22\x0a inksc\ +ape:current-laye\ +r=\x22g831\x22 />\x0a \x0a \ +\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\x92\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0a \x0a\ + \x0a \ + \x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09h\ +\x0a sodipodi\ +:role=\x22line\x22\x0a \ + id=\x22tspan452\ +2-0-3\x22\x0a x=\ +\x22-48.97916\x22\x0a \ + y=\x2264.775017\x22\ +\x0a style=\x22f\ +ont-style:normal\ +;font-variant:no\ +rmal;font-weight\ +:normal;font-str\ +etch:normal;font\ +-family:sans-ser\ +if;-inkscape-fon\ +t-specification:\ +sans-serif;fill:\ +#216778;fill-opa\ +city:1;stroke-wi\ +dth:0.77554256\x22 \ +/>\x0a\ +\x0a\ +\x00\x00\x09^\ \x00\ -\x00Qox\xda\xed\x9cY\x8f\xdb8\x12\x80\xdf\x03\xe4\ -?\x08\xcaK\x82\xb5h\xde\x87\xa7\xdd\x83]\x04\x83Y\ -`\xf6ew\xf6|Y\xa8%\xb6[\xd3\xb6dHr\ -\xbb\x93_\xbfE\xf9\x92Mvbe3@\x80\xc8}\ -\xc0&i\x1e\x1f\x8b\xc5\x22\x8b\xe2\xcd\x8f\xcf\xabe\xf4\ -d\xeb\xa6\xa8\xcayL\x10\x8e#[fU^\x94\x8b\ -y\xfc\xf7_\x7fJt\x1c5mZ\xe6\xe9\xb2*\xed\ -<.\xab\xf8\xc7\xdb\xd7\xafn\x9a\xa7\xc5\xebWQ\x14\ -m\x8b\xbc}\x98\xc7\x5c\xc7\xdd\xc7\x07[,\x1e\xda\xd3\ -\xe7\xa7\xc2n\xffT=\xcfc\x1c\xe1\x88\xeb\xe8\x10^\ -\xe4\xf3\x18\xb2\xa0\xfbT\xa7\xf2\xc9>\xbe|l\xb2t\ -mg\xfd(D\xa3\xb78\xc58\xbb\x17\x8c\x99ID\ -1\xa5\x09\x86_\xfen\xf7\xad\x06\xea\xbd\x86\xbfY^\ -ee\xba\x82\xeaf\xcbM\xd3\xda\x1aZ\xf3\xdfMc\ -\x11\x14\xb9K\x09\xad\x9e5\xeb4\x83$\xeb\xda6\xb6\ -~\xb2\xc7\x88\xb2\x99\x1d\x8a\x9f\xc7\x0fm\xbb\x9eM\xa7\ -\xdb\xed\x16\x1d\x02QU/\xa6.\xfb.\x83fz\x08\ -\xefgp\xa8\xc91\x83C\x00j\xaaM\x9d\xd9{\xc8\ -\xc3\xa2\xd2\xb6\xd3\xf7\xbf\xbe?F&\x18\xe5m\xde\xcb\ -\xe7\xac\xfc-\xebJ\xa6\x18\xe3i\xbf!\xae\xb8\xa7\xc5\ -\xb5I\xeb\xfc>\x94\x94\x18c\xa6\x98N\x81(\xa4H\ -\x9a\x0fe\x9b>'e\xf3\xa6\xff\xdd,;~5\xab\ -m\xda\x16O6\xabV\xab\xaalvL\xceS\xe7\xa7\ -\xd4\xebM\xbd\xec\x92\xe4\xd9\xd4.\xed\xca\x96m3\x85\ -\x1e\x9d\xc6\xb77+\xdb\xa6y\xda\xa6\xdd7w\x92q\ -\x08\x22\x14\xe2\xa1:\xb3\xbf\xbe\xff\xe9\xf6&\xcbf\xff\ -\xac\xea\xc7}:\xf7rQ\xe9]\xb5\x01\x81\x83\x84y\ -6\x03\xac\xab\xb4\xbd-V\xe9\xc2\xba\x86\xff\x01jr\ -3=E\xb84\xed\x87\xb5\xed\xe5\xb1\xcb\x05d\xa0\xeb\ -\x97`\x8d\xf3lU\xb8oM\xff\xd6\x16\xcb\xe5\x9f]\ -\xe6q4\xbd\xbd\x99\xeek\x04\xef\x8e\x95\x9c\x1e\xea\x0e\ -e\xd9\xfb\xa6\xd7(\xf7\x91`\xd7\xe0\xb4~\xb4\xf5\xb1\ -\x0aGQo\xda*{t)\xffX\xd7\xd5\x96\xfc\x02\ -\xc3\xaen\xe3c\xba\xaa.\x00\xdbM\x97\x8d\xf52\xfcX\ -U\xd0K\x1cQ%1'\xca\x8b\xcf`NI(G\ -J\x1b\xaa\x89\x1f\x0d\xcdd\x1a\x19\xa6t v_[\ -\xc8B\xbc\xd8\x14\xc8\x80\xaa\x97\x22W\xe9s\xb1*>\ -\xda\xbc\xd7s\xa7\xb27u\x0d#5Y\xa6\x1f,t\ -\xfc\x82\x13\xe1\x13w\xed\xff4\xf5N\xae\x1el\x06B\ -xW\xa5u\x1e\xea\xb7\xdc6\x8f\x07\xf9\xca\x89\xfb\xe9\ -dw\xd1C\xbf+\xfe\x14v\x08\x15\x9c\x9f\x86Fo\ -`\x9cFCB\x90\x90F\x13\xc2\xde}j\xb83\xec\ -\x0f\xf7\x09\x8e~v\xd3\xfd?\xdc\xbf\x9fa\xea\xffO\ -?\xcd\x89TU\x96 \xedU\x9d\x00\xb3\xa7\xb4\xdd\xd4\ -\xb6\xd7\xca\x8bq?+\xc1\x00\xd9\x0d\xcdE\xbf9\xc1\ -\xba\xc3\xd0\xc7RQ\xcd&\x09\x15HkE\x8dy\x17\ -_ \x80\xa0\x8fk\x1fN)\x0e\x92\x81\x09\xa4.\ -\x9eAg(.\x95dRM\xb0\xfb\xe9}D \xab\ -Zp\xe3\xdeji\x04Q\x1d:\xbb\x5c\x16\xeb\xc6\xbe\ -\xd0\xac74\x13i\x8a\x7f\xe8t\xdb~\x8c\xce\xc8A\ -\xb1\xb9F\x9fk5\x81\x043X\x1c\x02\x97\x05 L\ -\xd7\xb3\xba\xda\x94y?\xf0\xb7\xaa(\xcfCa\x16\xb3\ -\xf5\x12\x04\xb7\x9d\xf1CX\x9e\x82\x04\xd6u\xfa\xe1\xac\ -\xa4S5\xd6i\x01\xa2\xdc)\xab\xd9N#6\xd1.\ -Q\xe4*\x1c\x07DBs\x9aH*\xfbQn\xb4R\ -\x8d\xa8\xa6\x8c\xb3\xb3\x08\x18f\x06a)\x05\x13\xfd\xf0\ -\xfa\xd9Y|Rq\xc3\xb5:\x8bp\xca\x12)\x86\x09\ -h!\xd7y\xdf!\x5c\x96\x90K\xb8\x0c\x04\xce\x10F\ -\xc5%\x5c\x8d\x08H'\x91z\xa4{\xad\xe8&:@\ -WP\xa5\xb1\xba\xa4K\xc0R\xe1\x02~G\xbaW\xd2\ -U\x89\xf2\xe8R\xc4`\x1a\xd1\xcaW\x0c0I1#\ -\xf9H\xf7J\xba\x221\x01\xb5k\x04\x15\x9ax\xb2\x0b\ -\xb0\x8cbD\x8dt\xaf\xd5\xbb\x22\xa1\x01\xd5 \xb96\ -\xdaS\xbc\x84!\xa286r\xc4{\xb5\xcd\x90`\x0f\ -/CXQNt@z9%\x9a\x91\x11\xef\x95x\ -M@x\x05\xe2Fh\xc1\xc6y\xed\xff\xa5K\x12\x16\ -\x98\xd78\x18\xb6\x01\xba\x1ciL(\x1eU\xc3\xb5t\ -\xa9o5\xc0\xbc\xa6\x08\x86\xf5\x84GW ,\xc89\ -\xf5\x11\xee\xa7L2\x9c\x88\x80\xde%\x86\x09\xed\xd1\x95\ -\x88\x03[.F\xab\xe1j\xbd\xcb\x02F\x99@\x862\ -\xaaBF\x99\xe0\xd2\x98Qz\xaf\xb6\x1a\xb0?\xaf\x81\ -n\xe0RisIW\xc0b\x98\x819aF\xba\x03\ -\xe8\x06\xf8\x0a$)f\x5c\xfb\xbb\x0d\x14p\x8d6\xef\ -0\xbe\xfe~\x83\x84E\x854Z\x87,\x07\x90`=\ -\x02\x1e\x048\xb4(V\x0ak\xe2i\x08\xa2\x90\xe2T\ -\x90\x11\xf0 \xc0\xbeu\xc6\x11\xc7 \xaa\x1e_\x89\x98\ -\x14j\x9c\xde\x06\xe1\xf5\x97\x16\x1cQ\xca\x04\xf7w\x1d\ -@\xb09\xbb\xd8\xa9\xfcj\x80\x99\xcatz7\x000\ -1\x9c\xf2o\xdeS\x91x\xbe\x0a\x83\x18S\x86hO\ -~)\x83\xc5Exu!\xa8\xd1\x1c\x07\xf8\xc2\x1aP\ -\x11N\xbeW\xc0\x0c\xd6\xc6\x9e\xbf\xc2m>R\xac\x95\ -'\xc0\x94\x22\xa2\x8d4#\xe0!\x0e\x0b\xdfD\x03\xc0\ -Lk\xcdM@\x82\x8dQT\x88\x11\xf0\x00\x9f\x85o\ -B\x10\xd0\x04\x1c$U\x04\x00\x83\x82\xa0L\x8e\x80\x07\ -\xb8-\xfc9\xce #0\xd6\xc6\x07\x0c\xab\x0f\xcd\x19\ -\x1e%x\x90\xe7\x22\xa8\x84\xb91\xe2\xc2U\xdf\x1d|\ -A\x18\x03I>\x12\x1e\xe2\xbc\x08(\x09\x8a\x14\x91\xc6\ -\xb7\xd3(A`\x8cI\xadF\xc2\x03\xfc\x17\x09\xf7\x00\ -\xbb\x8d4\xc9\x8d\x18\xa7\xb9\xaf\xe1\xc2\xf0\x17r\xce\x8d\ -)\x8cd>`\x8d\x84\x92\xcc\x8c\x12<\xc4\x8b\xe1\xef\ -\xf5\x180\x84\xb5\xe2\x01%\xac\x91v\x1ed:\x02\x1e\ -\xe2\xc9\x08\xe8\x08\x864\x98c\xbe/\x83b$0h\ -\x8f\x91\xf0 g\x86\xef-R\xb0fc\x94\x9a\x80\xa5\ -\xc69\x1b\x97r\xc3v{\xb0\xaf\x22\x04V\xcc\xf8\xce\ -\x22\x83\xa8q\xe7\xa3G\xc0\xc3\xfc\x19\x81\x0d5\xe4v\ -{\xb8\x7f\xc2\x8f:\x96\xd2\xd0\x91\xf1@\x9f\x86\xbf\xa9\ -F$2Ji\xa3\x033\x9ddR\xf2q\xc5<\xd0\ -\xad\xe1/\xe9\xc0\x9ap\xbc\xa4'\xc7\x8c\xb8\x0d\xf9\x8b\ -\xe3\x12#\xe3\xcf{6|u,\x90\x82\xa5E\xe0\xc8\ -\x1f\xc3\x08\x10K3\xae9\x06\xba7\x02\xba\x82\x22\xad\ -\xa9\x112\xc0XH\xae\xc8\xefdT`\x9c\xa69\x1f\ -\xc0\x18\xe6e\xca\xbem\xc6\x8f\xe1Lp\xdcet\xb7\xaf\ -_\xfd\x0fR\xaa\xd9\x91\ -\x00\x00\x0b\xf1\ +\x00O\xf4x\xda\xed\x5cY\x8f\xdb8\x12~\xcf\xaf\x10\ +\x94\x97\x04k\xd1\xbc\x0fO\xbb\x07\xbb\x08\x06\xb3\xc0\xec\ +\xcb\xee\xec\xf9\xb2PKl\xb7\xa6m\xc9\x90\xe4>\xf2\ +\xeb\xb7([\xb6$\xaa\x13u\xb2\x03\x04\x88\xdc\x07\xec\ +\x22E\xb2>~,\x16Y4\xaf~|\xdam\x83\x07\ +[VY\x91\xafC\x82p\x18\xd8<)\xd2,\xdf\xac\ +\xc3\xbf\xff\xfaS\xa4\xc3\xa0\xaa\xe3<\x8d\xb7En\xd7\ +a^\x84?^\xbf\xb9\xaa\x1e6o\x82 x\xcc\xd2\ +\xfan\x1dr\x1d\xbaOw6\xdb\xdc\xd5\xe7\x8f\x0f\x99\ +}\xfcS\xf1\xb4\x0eq\x80\x03\xae\x83\x938K\xd7!\ +\xae\xef.\xf0\xb9\xf2\ +\x9d\x84\x0b\xa3\xc3\x8b\x18\xa4\x7f\x09\xa0\x1d\x0b\xf8\x0b~\ +\x09\x04\xbc\x8bD\xf36\x22\x14\x89\x8e\xf8(m\xb3~\ +\x0c:\x85\x9c\x9ax\x0b\xa0G\xe5akW\xf6\xc1\xe6\ +E\x9a\xfeP\xd5eqoWoq\xf3:}\x8c\x1a\ +\xcb\xb3\x02{\xb5\xaf;\x85\xd4e\x9cW\xae\xf7\xc1\xc4\ +$\xf1\xd6\xbe\xc3H\xbf?J\xb7qm\xdf\x1d\x9b\xf3\ +\xfe\xd8\xa1\xc7\xbe\x817\xae\xb7\xae\xaf\xceF\xc4\x0d\xf2\ +\xd4\x19\xafc\xb9{`@Rl\x8br\x1d\xbe\xbdm\ +^\xa7\x0ao\x8a2\xb5e\x9b$\x9bW/\xa9\x00K\ +\x01\x5c\x02\x13v\x12\x177\xbf\xd9\xa4\xae\x8b\xad\x85\x16\ +9\xfe\x91\xb6\xef6%\xe83&?d\xa9\x1dK8\ +\xf7\x98k\xde\xb9\xa2\xd1\xd4\xea.N\x8b\xc7uH\x87\ +\x89\x8fY\x0e\x09\xd1\xc9\x88S\x81\xc5\x0b9Z\xc3N\ +0i5tT8\x03\xd5\x92\xa1\xba+\x1e\x9d&\xd0\ +\x8d\xf1\xb6\xb2\xc3\xd2>\x16\x05t\x0cGTI\xcc\x89\ +\x1a&'0UD\x94#\xa5\x0d\xd5\xc4K\x05\xf5\x98\ +F\x86)\xed'\x9e\xda\x09\x05\x88\x97t\x80\xc7\xa9z\ +!m\x17?e\xbb\xec\xa3M/]u\xa9\xf7P\x96\ +0\x1a\xa3m\xfcl\xa1\x9f7\x9c\x08\x0fe\xa7\xf7'\ +\x91n8tg\x13\xe0\xdbM\x11\x97\xe9HO\xa5\xb6\ +\xbao\xb9\x94\x12\xf7\xd3\xb0ts\x81\xfbX\xf5Y\xd4\ +\x0a\x05\xe7\xe7\x11\xd0\xe1\xff\x85\xf4\x11AB\x1aM\x08\ +{\xff\x89\x11\xcd\xb07\xa2\x178\xf8\xd9M\xdc\xffp\ +\xff~\x86I\xfc?\x9d,\x17\x80\x8a<\x07V\x17e\ +\x04P=\xc4\xf5\xa1\xb4\x17\xf5\x06#{\x95\x83\x13q\ +\x1c}\x9b\x8e\x22\xa3\xcd\x86\xb1\x8d\xa5\xa2\x9a-\x22*\ +\x90\xd6\x8a\x1a\xf3>\xec\xebN@\xf7\x0eJ'1\xa5\ +x\x0c\x11\x98\x12\xca\xec\x09L\x82\xe2RI&\xd5\x02\ +\xbb\x9f\xceG\x04\xbc\xd4\x82\x1b\xf7VK#\x88j \ +\xb3\xdbm\xb6\xaf\xec\xb8Foi\x22\xe2\x18\xff\xd0\x18\ +\xae\xd3@\x5c\x91\xd6j9}\xfb&K \xc1\x0c\x16\ +\xadp\x9b\x01x\xf1~U\x16\x87<\xed\x0a\x7f+\xb2\ +\xbc/\x85y\xc9\x96[ j\xbd\xe2\xad,\x8d\x81s\ +e\x19?\xf7j\xba4c\x1fg\xc0\xdd\xc6\x1a\xad\x8e\ +\xf6\xae\x0a\x8e\x99\x02\xd7\xe0\xd0g\x82\xe64\x92Tv\ +R\xdc\xb8\xa4\x1aQM\x19g]9\x0c)\x83\xb0\x94\ +\x82\x89\x8e\xb8|r>\x9bT\xdcp\xad\xbarg\x08\ +\x91b\x98\x80\x9dq\x9d\xf6\xdd\xc1\xca\x222\x80\x95\x01\ +\xcf\x0caT\x0c`\xd5\x88\x00'\x89\xd43\xaeS\xe8\ +\x1ai\x1fWA\x95\xc6j\x80+\x01\xb7\x83\x0b\xf8\x9d\ +q\x9d\x80\xab\x8a\xd4\x10W\x8a\x18L\x15Zyf\x00\ +f!f$\x9fq\x9d\x80\xab\x88\x8co^\x8d\xa0B\ +\x93!_\x01(\xa3\x18Q3\xaeS\xec\xab\x88\xa8o\ +\x08$\xd7F\x0f\x0d,a\x88(\x8e\x8d\x9c\x81\x9d\xe4\ +\x0fDx\x08,CXQN\xb4\xcfXN\x89fd\ +\x06v\x02\xb0\xc6'\xac@\xdc\x08-\xd8\xb2\x02I\x8a\x19\xd7\xde.\x01\x05\ +\xa8f\x1fv:\xb2\xde>\x81\x84\xe5\x814Z\x8fx\ +\x05\xc0Z=C;\x19\xda\x91%\xadRX\x93\xa1=\ + \x0a)N\x05\x99\xa1\x9d\x0c\xad\xe7sq\xc41\xf0\ +s\x88\xacDL\x0a5O`\x93\x81\xf5\x16\x09\x1cQ\ +\xca\x04\xf7v\x0b\x80\xcb\x9c\xf5\xb7\x13\xffO\xd02\x95\ +\xe8\xf8\xe6\x15\xd0\x12\xc3)\xff\xd6\xa3\x07\xd10~`\ +\x10c\xca\x10=\xe4,e\xb0L\x18]'\x08j4\ +\xc7>\xb2\xb0\x88S\x84\x93\xef\x13Z\x06+\xdba\x0c\ +\xc1\xed\x11R\xac\xd5\x90\xb4\x94\x22\xa2\x8d43\xb4S\ +\x83\x08\x9e\xe3\x05\xd02\xad57>k\x8dQT\x88\ +\x19\xda\x89q\x04\xcf= 0\xf09\xd0S\xf8\xd0\x82\ +9\xa0L\xce\xd0N\x0c%x\xb3\x98AF`\xac\x8d\ +\x07-,#4gxf\xed\xe4h\xc2\x98\xb1\xe5\xc6\ +\x88~|\xbc9Z\x820\x06\x10\xf9\x8c\xed\xd4\x80\x82\ +o\x12(RD\x1a\xcf\xfb\xa2\x04\x81\x8f%\xb5\x9a\xb1\ +\x9d\x18S\x88\xf8\x10Z\xb7\xe9%\xb9\x11\xf3D\xf6\x95\ +a\x05o1\xe6\x22\x89\xc2H\xe6A\xab\x91P\x92\x99\ +\x99\xb5S#\x0b\xde\xee\x8c\x01\xc7V+\xee\x1b[\x8d\ +\xb4\x8b\xde\xd2\x19\xda\xa9\xd1\x05\xdf\x220\xa4\xc1\xcb\xf2\ +\xe2\x0b\x14#\x81\xc1T\xcc\xd8N\x0e0x\xb1\x1b\x05\ +\x0b/F\xa9\xf1\xfd/\xce\xd9\xbc\x1c\x9b\xbe?\x83=\ +\x83 \xb0b\xc6\x0b\xdd\x18D\x8d;S\x14R.\x80\xa3\x14+\xc1U\ +@\x05r\xdfc2d\xe1\x0e{JX\xdf\x92\xe0.\ + \x06\x14\xa0\xb4w\x88\xf9\xd2?\xa4\x1f=\xeb\xdc\xf0\ +\x95\x17\xa9u\xd73U\xeb0I\x92\x06\xdfoG\xfb\ +1UAQ\xee.n1\x8bf\xbav]6\xaa2\ +\xc5x\x8a\xca\xe7\xcbSz\x17\xa84\xbc\xd2\x06{\x5c\ +\xf0\xb0h\x95\xa7I\x8c\xb5\x19\xde\xa6\xf4%g\xb6?\ +3:\x87\xb7\xca\x00\x1eR\xbb\xaf\xad,`\x92\xc5\xc6\ +\x91%\x80w\x5c\xb8\x9b^\xc0\x077\x0d\xad\x030f\ +\xccaE\x17\xce\xad\x1c\x19\xc2\x8c\xf5\x06\xd1d~\xfc\ +>\x884f\xeb\x8b\x10\xd99\xed\x19s\x83\xa5\x83H\ +\xc4\x91\x03I\xeb\x05\x01\xfa8\xd9\x18\x04\x9c|\x16\x82\ +\x1e_\xdc%i\xd7o\xfe\x07\x154\xc6R\ +\x00\x00\x0b\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a Bus<\ -/tspan>\x0d\x0a\ - \x0d\x0a\x0d\x0a\ +no\x22?>\x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs8\x22 />\x0a \x0a \x0a \x0a\ + \ +\x0a <\ +tspan\x0a s\ +tyle=\x22fill:#9999\ +99;fill-opacity:\ +1;stroke-width:0\ +.29937106px;stro\ +ke:#999999\x22\x0a \ + y=\x2227.66311\ +5\x22\x0a x=\x221\ +5.134903\x22\x0a \ + id=\x22tspan837\x22\ +\x0a sodipo\ +di:role=\x22line\x22>B\ +us\x0a \x0a\x0a\ \ -\x00\x00\x08\x97\ +\x00\x00\x08]\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x1a\x1d\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a <\ +/linearGradient>\ +\x0a \x0a \ + \x0a \ +\x0a \x0a <\ +linearGradient\x0a \ + inkscape:c\ +ollect=\x22always\x22\x0a\ + xlink:hre\ +f=\x22#linearGradie\ +nt842\x22\x0a id\ +=\x22linearGradient\ +917\x22\x0a x1=\x22\ +-1032.6266\x22\x0a \ + y1=\x2268.369415\ +\x22\x0a x2=\x22-98\ +2.63611\x22\x0a \ +y2=\x2268.369415\x22\x0a \ + gradientUn\ +its=\x22userSpaceOn\ +Use\x22 />\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xe3\ -\x00\ -\x00\x1a\xc9x\xda\xe5X[o\xdbF\x16~/\xd0\xff\ -\xc0\xca/1JRs\xbf(r\x0al\x83.\xfa\xb4\ -\xc06\xd9\x05\xf6\x8d&G\x12\x1b\x894H\xca\xb2\xf3\ -\xeb\xf7\x1bJ\xbcYr\xe0 .\x02\xec\xd2\xb0=<\ -sf\xe6\x5c\xbes\x19.\x7fy\xd8m\x83{W\xd5\ -yY\xdc\xcchLf\x81+\xd22\xcb\x8b\xf5\xcd\xec\ -\xe3\x87\xdf\x223\x0b\xea&)\xb2d[\x16\xeefV\ -\x94\xb3_\xde\xfd\xf8\xc3\xf2\xa7(\x0a~\xad\x5c\xd2\xb8\ -,8\xe4\xcd&\xf8\xbd\xf8T\xa7\xc9\x9d\x0b\xdel\x9a\ -\xe6n1\x9f\x1f\x0e\x878?\x11\xe3\xb2Z\xcf\xaf\x83\ -(\xc2R,\xae\xef\xd7?\xfe\x10\x04\x01\xce.\xeaE\ -\x96\xde\xccNk\xee\xf6\xd5\xb6\xe5\xcd\xd2\xb9\xdb\xba\x9d\ -+\x9azNc:\x9f\x8d\xf8\xd3\x81?\xf5\x12\xe4\xf7\ -.-w\xbb\xb2\xa8\xdb\xa5E}5\xe6\xae\xb2U\xcf\ -\xeeE:\xf0\x96\x8bZk\xe7\x84\xcd\x19\x8b\xc0\x11\xd5\ -\x8fE\x93\x8f\xfc\xa3\xf8X\xbbs\xb6\ -\x0fUR\xd4>N\x10\x96IS\xe5\x0fo|Ls\ -\xc2\x15\xe1!\xc1\x0f\x8d\x99\xc2\xf1\xd4\x86\x86\xe8X\x1a\ -.5h\x12\xd2X)\xafG\xd6\xfe\x1ef\x95\xe6U\ -\x157\x9akK4k\x15'\xb1\xb6FS\x0d;h\ -#b\x8d\x8a\xc0a\x83Xj\xc4\x84\xba\xfe\x8b\xfd\xf9\ -}\xed\xaa\xc8\xeb\x02\x8a\x08\xa34\x97c@1\x1a\x1a\ -JbN\x8d\x91!l\x11k&\x99\xfe\x9f6\xab\xa5\ -\xf2\x89z\x94p\xa0N\x1a6\xd5O\xc2dVq+\ -\x9f\xe8G\x09B\x90C\x91\xa9~\x17\xd8_\xc1i\xda\ -Hf\xa4B0\xc4\x94ie\x8d\xd0!:\x19\xca\xa9\ -\x8f\x00\x1a\x8e8\x22Fll\xb9\x114\xa4\x02}\x09\ -\x95\xca^\x7fo[\xebs[\xb3X1\xa5\xa6\xb6V\ -&\xe6\xca\x0a\xfa\xd4\xd6\xd6\x80\x1b\xf0\xa3S[_`\ -\xff\xb2\xad\xbf\xaf\x15\x04\xfd?D\x1cz?\xf4O\xc7\ -a\xdf\xd3\xfa\x866\xf3\xbd\xefI\x94;tqm\xcf\ -\x01\x9b\xae\xda\xa7\x13\xf2\xb6\xac2Wus\xaa}\xa6\ -s\xa7\xc6d\xd4\x84\x94\xb7\x7f\xc2uM\xb9u\xd0\xcb\ -\xb7\x91\xb4\xcf\xa0\xeb\x0a\x1d\xf9\xc5\x89}\x9e\xb9\x8b3\ -=$\xbc\x90\xfda\x97\xa7\xebM\x92\x95\x87\x9b\x19;\ -\x9b=\xe4\x05f\xa2\xeeB`$\x7f\x8e\xa5\xbf#\x10\ -\xd6{\xd4\x83\xa9\xb7Y\xdf\xbd\xd4\x9b\xf2\xe0\x15\xba\x99\ -\xad\x92\xed\xe0\xd7~\xc3\xcfe\xb9k\xaf&\x04\x0eb\ -\xe72\xa5\xb8w0.P\x02\xd4\x80\xa9a\x16ZF\ -\x1a\xb5V\x13m\x9e\x13\x16;(\xfd\xdc$6`\xcf\ -N\xee\x92\x87|\x97\x7fv\xd9\xc8q\xc3\xd9\xfb\xaa\x02\ -.\xa3m\xf2\xe8\xaa\xd3\x85\xaa\xc3\xd3zd\x93\xb51\ -\xb6[\xdc\x5c\x041`I\x95\xea{\x08m(\x1a\x86\ -\x90Z\x0fd\x22\xac\x1fq\xca\xa5\xd2\xd7}\x87\x7f\x97\ -4\x9bK\x09\xa1(\x80\xaa\xb2\x8a \xdc}\xd2\xec+\ -7\xe9\xb3\xbd8~%\x22b \xfa\xfbU 8\xc5\ -\x19\x96\x98\x90\xa1\xb0*.Yp\x1f\xa0\xdaRb\x89\ -4\xfdH\x05\x9b\x00\xa1\xacPze70\xc1\xbf\x02\ -$J\x83\xa16A\xbf|\x13D=\xc3\xe7\xe1\xb4S\ -\x07\xbf\xc2\xbdh\x81\x1b\xd3\x9b\xab\xb3F\xe2\xfa\xad\x9f\ -\x1c]\x1e\xea\xa6*?\xb9EQ\x16\xee4>Bt\ -\x01Th\xcd8U\xb6\xa3\xe3\xda\xe5\xaa-|\xd6,\ -DG\xcb\x12 \xbe\xaa\x92\xc7\xc9\x0e\xc3Ua\xc8\xb7\ -\x13\xa3\x0ey\xa0D\xd0\xe12\x87\x1c\x95\x0e\xcf\xec[\ -\xac/\x9eZ_\xa1=Q\xb0`(U\xac\xa4\xa2\x8a\ -\x06i\x10QdR\xa3\x98\x08\xa9D;\xc2\x04\x0f\x22\ -\xee\xb3\x9b\xe6,d:F\xc4\x18\x1dD\x02\x05\x86\x19\ -\xcaC\xc1\xb1\x89`\xcc\x06@\x0e|\x09D\x05\xd4\xc4\ -\x0c\xe8B*\x0c\xb0\x02\xad8\xd5\x18\xa2\xa7\x82\x9b\xb4\ -\x15\x1aC&c)\x8d\x95\x18rl\xe5Sd\x10\x0d\ -;D\xa3-\xa2\xd1\x1e\x14\x92\xa2Z\x98\x90\xf2\xd8X\ -\xa6m\x00\x08\x11\xa99\x0d!$\xb7\x84\xd3`*\x1a\ -S\x00\x92WI\x9a0:\xa9D\x83V#e\x91\xb8\ -\x8f*Q5,\x8b\xfau'\x81\xe4 \x10\xb1#\x81\ -d\xabTt\xd2J\xf9\xf1I-\xe1\xc7\xbd^g\x86\ -\x19\xec\xe2\xb7\xf85\x10\x16\xb1\x86\xba/B\xa3b\xc1\ -\xe0\x0b\x0dq\x04*\x875*T(!\xcch\xc3/\ -z\xec?/G\xb94/G9\x8f\xb9\xa0J@\xd8\ -\xbf\x00\xe5_\x0f\xdeq\x9bt\x04/Cm\xd7\xdc\xa2\ -\xb0\xc2P\xdcpk\x87\xdc!\xba\x81\xf1\x99\x03\xad\xb9\ -=\xfe%\x84\x83)\xea'\xa3\x9e\xdf\xe7\x8d\x8e\xe3+\ -\xf2\x86\x10_\x937\x90\xea\xac4\xaf\x927\x96\xf3\xf5\ -\xf1\xff\xc8\xaeca\xcf\x8fg1\xb1\x8ah\xce\xedy\ -M\xf9\xa2\x17ZsG\x00gl)c\x08\x22\x81 \ -\xa2L\x22\xd26\xb03\xb2-\xda\x1a\x8et,\x81}\ -k\xac\xd5\xde\x9a\xc3\xc4\xe7q\xa9\xf6\xe2>W\xb0\x18\ -y\xbe`E\xbe\x1b\x94D\xa3\xdd:U,\xdc\xd4\xac\ -\xa2\x04\x11\xac\x91\x0b(\xc2\x87\x86J\xc4(b\xa8_\ -\xfd\xfd\xac\xfft\xd3:\xe5\x8a\x90$\xc9D_\xcf\xd6\ -\x13\xa0\xad\xad\x185\x8a\xe72\xb4m\xb9\x06\xdcZ\x09\ -\x867\xdc\xbd\x81E\x8a\xa8\x8c(G\xdc\x10c\xd8\xf5\ -\xe8\xf3\xd5\x04\xfa\x17\xdc\xd4\x02\xa8\xdao\xdd\xc2\xdd;\ -\xe4\xfd\xac\xc3\xd0\x05\xc4\xe1\x98\xeb\xa9_Ml\x85\xb0\ -\xc4\xf6q\xea\x17\xc0\xad\x8b\xaa\xdc\x17\xd9\x98\xf8g\x99\ -\x17\x8b\x16s\xdf\x02\xc0\x91&Gd\xa0\x872\xc8J\ -Z\x86\xb8t\xe0\xf2\xca\xa8A\x19\xf1\xf7a&CF\ -cA\xb90\xd6'\xb3\ -\x1d\xb3\x86\x9a\x90_\x9au\x9e)\xc3u:\xf9H\xf8\ -\x05\xb7^r\x9c\xa0g\xa9\xe2\xeb\x1c/\x9f8\x9e\x22\ -\xda\xa8A\x97\xaa\x9ez\xfev\xdf4g\x8e\x9f\xc0\xe1\ -\x95\x1cO|eS\xbe\x18A\x0a$\xb76\xa1r\xff\ -\x05%\xa2\xc2\x7f\x84C\x83\xd9\xd2\x00[4\x94\xc6\xb7\ -k\x80\xcb8\xc3\x0e\xde\x12@I\xc4_\xd3a\xbea\ -\x1a}f]\x8f2\xe7\xd2\x7f\x80\xc7\xff\xff\x02\x1e\xf0\ -+C\ -\x00\x00\x07\xb3\ +\x22 />\x0a \ +\x0a \ +\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +g\x0a id=\x22g820\x22\ +\x0a transform=\ +\x22matrix(-0.85507\ +769,0,0,0.867961\ +07,-713.13031,64\ +.155131)\x22\x0a s\ +tyle=\x22stroke:#00\ +aad4\x22>\x0a \x0a \x0a <\ +path\x0a st\ +yle=\x22fill:url(#l\ +inearGradient941\ +);fill-opacity:1\ +;fill-rule:eveno\ +dd;stroke:url(#l\ +inearGradient915\ +);stroke-width:1\ +.59182346;stroke\ +-linecap:butt;st\ +roke-linejoin:ro\ +und;stroke-miter\ +limit:4;stroke-d\ +asharray:none;st\ +roke-opacity:1\x22\x0a\ + d=\x22m -1\ +009.116,56.34619\ +9 -10.3735,-14.5\ +83166 -10.9179,1\ +8.872102 z\x22\x0a \ + id=\x22path448\ +9-3\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22\x0a \ + sodipodi\ +:nodetypes=\x22cccc\ +\x22 />\x0a \x0a \ +\x0a\x0a\ +\x00\x00\x07\xad\ \x00\ -\x00+[x\xda\xe5ZK\x8f\xe3\xb8\x11\xbe/\xb0\xff\ -A\xd1\x5cf\x10\x8bb\xf1M\xaf=\x0bd\x07\x0b\xec\ -!\x97d\x83\x1c\x03\xb5\xc4\xb6\xb5cK\x86$\xb7\xbb\ -\xf7\xd7\xa7([j\xd9V;3\xd8\xee\xc4\xe3\xd8\xdd\ -0X\xc5G\xf1c\xbdX\xd2\xec\xc7\xc7\xf5*xp\ -U\x9d\x97\xc5<\x04B\xc3\xc0\x15i\x99\xe5\xc5b\x1e\ -\xfe\xe3\xd7\x9f#\x13\x06u\x93\x14Y\xb2*\x0b7\x0f\ -\x8b2\xfc\xf1\xe3\xf7\xdf\xcd\xfe\x14E\xc1O\x95K\x1a\ -\x97\x05\xbb\xbcY\x06\xbf\x14\x9f\xeb4\xd9\xb8\xe0\xfd\xb2\ -i6\xd38\xde\xedv$?\x10IY-\xe2\x0fA\ -\x14\xe1P\x1c\x5c?,\xbe\xff.\x08\x86\xebB\xd8R\ -\xf2l\x1e\x22\x97\xed[\xbb\ -\xcb\xd2)\x22\x8e\x0a\xf21_'\x0b\xe71\xf93\x0a\ -9\x8b\x9f\x19\xc7\xbd\x9b\xa7\x8d\x1b\xcc\xbb\x9f\xb9r\xfb\ -\xc3\x1b\xddV\x96\xaes?*\xfe{\x93\xafV\xbf\xf8\ -e\xc2 ~\x166>H\xdb\xed&\x1eng\x16w\ -\xdb\xdd73w_\x0f\xb0\xf0M\xd5\xcd6\xeb\x8d\xc0\ -\xeb`\xe6\x8d\xe5\xd0u\x83k\xa6\xe5\xaa\xac\xe6\xe1\xbb\ -\xfb\xf6\x13\x1e8we\x95\xb9\xaa\xe3\xa9\xf6s\xcc+\ -Q\x97Q~4\x92\x8e^\xde\xfd\xe6\xd2\xa6)W\xae\ -J\x0a\xbfi\xa0\x1dkQ\xa1\x09\x8f2\xb6y\xe6F\ -9\xbd5z!\xfb\xc5\xc6\xd9\xf52\xc9\xca\xddY\xd5\xeel\xbe\xdf\xcbr\xed]\x87\xe6\x86Sq\ -.R\x8a~\x8aq\x22\x8dbT\x9esq\x93h\xd5\ -\xc8\xb4\xd4Z\xf5\x92\xb48\x87\xb4\xf4%\xae?\x15m\ -_\xe2\xae\x93\xc7|\x9d\xff\xee\xb218\xd3mU\xa1\ -\xb1E\xab\xe4\xc9\xe1\xd1/\x0c\x87Q\xc8\xd1}\xa6\x9f\ -]uW&U;O\xa7k\x8b\x01v\xc3\xc1u\xf3\ -\xb4\xc2\xf3\xad\x9b\xaa\xfc\xec\xa6\xef\xb8NMr\xf7\xc3\ -\xbe\xb9?\x9e)\x83\xae\x8d\x86\xe1\xaa\x15\x0a\xd9LE\ -G\xcb\x12<\xe5\xaaJ\x9e\xa6\x05F\xa0\xde\xc6\x17\xbd\ -\xd1\xf5\xe2\xad\x92;\xb7\x9a\x87?%\x9b$\xe8\xd7\xdf\ -K\xd4\xeej@kP\xedjo\xcf\xe8>\x92\xa6\xca\ -\x1f\xdfsb\xc1(\xca\xd4\x84\xe2\xf7\xb9\x15\x81\xd6x\ -*\x82\x9bI\xc4\xadf\xc4Zf><\xfb\x8c\x81 \ -\x87\xcds!\x06+\x8d\xad\xe5\x8fY\x81\xe2\x92\xb7\x8b\ -\x0d\x9aB\x13\xc6\xb9\x011\x01\xa1\x08\xd3\x18{>\x0c\ -\xe7:\xa0y\x8f\x8ecz\xb0\xdc\x1f:hE\xe6\xbf\ -\x7f\x1c\xda\xbd\xc7\xcc\xabtu\xe2\xd8\xbcr\xcb\xf0\x88\ -\xe6\xb5\x16(gD3~\xcaBUE\x86B4\xcc\ -1\xc7\xa3\xb4I\x9a%\xe7\x5cE\x10\xd9c\xee\xd8\x16\ -}#:\xf8\x82)\xec\x9b\xd5v\xe5\xa6\xee\xc1\x15e\ -\x96\xf5\x18d\x02\x03\x19=\xc6\x006\x8f\x1da\x95\x17\ -\x0eUez\xb7m\x9a!\xed\xb72/\xa6-B\x1d\ -\xb5_l\xe8\x9a\x11\x17/\xf7\xf1fz\x03*\x0b\x9c\ -\xbc)\xab\x08M\xe9!i\xb6\x95\x1b\xd8\xd9\xf1\xce\x05\ -\xd3\x10\xf1c\x9e\x8fd\x01\x02f\xc0{\x88\x09\xa2\x0a\ -Dh\xa6\x02\xef\x15@\x01\x15\x93H\x13\xab\xa4\xf9B\ -\xbc\xbe\x18 \x8a.\x8br.\xae\x11'\x09#()\ -B\xa5\xd1\xd2JD\x09=*(\xc9\x024\x1cE\xa9\ -\x92r\x22\x09\xd7\xf6\xd5A\x82\xaf\xc7\xe6?\x9b\xdc\x7f\ -\x0bE5\x86\x22\xa3Djm\xb5\xf2\xbaf\x88VB\ -\x06\x91$B\x19\x83\x09/z\x1fF\xdf@\xd5\x0c\x13\ -`\xf95\xaa\x9a\x1a3H\x86z\x85\x06i\xbdA\xa2\ -s\xd6\xa8kA\x04\x18\xe4\x99\xd4\x1c0:\x10\xa5\xf5\ -\xeb\xa3d\x05\x97\x82]#J\xa7\x96\xb5G\x09\x03\x03\ -\xe5\x92yU\x02K\xd0G\xe9\xc0\x10\xcb\xa4\xd2\x13F\ -\x00\xc3\xd8\x05\x88l\xfb\xf9r\x1f\x7f\xe8\x7f\xea\xc2\xd0\ -\xfa%\xbbVW\x1f\xa91go\x89\x04\xbd\xd7-4\ -@cA\x04\x11\xfa6\x8d97\x9b\xa0)2\x10\xdf\ -\x84\xb3\xff\xaad\x81\x1a\xc21\x1f?O\x16\x98 R\ -Hk.d\x0b\xaf\x98)\x8ci\x11\xfc\xcf@\x01\x8c\ -b\x98]\x8edP\x9aPC\x05e\x17R(~\xb3\ -\xb00E8f\xc6\xe7\xb0\x08L\xd0\x855\xda^\x80\ -\xe5v\xb5\x85{\x17\xab\xf9\x08,\x94\x08*\xb8\xe0\x17\ -`\xd17\x0b\x8b\x8f\xcf\xd4\x8cy\x16\x83x\xd9\xc1\x05\ -\x7f\x04\x16y\xbb\xb0H_U\x80sX@\x10\x8c\xd0\ -\x14.\xfa\x16\xf9-\xdd\xce\xbe\xce\x8a$\x01\x09#\xb7\ -VI\xa8U\xa8I\x97\xae\xad\x8a\xdd\xae\xd3ex\x81\ -bb\x14\x17\xc6\x19\xb5\xea\x02.\xf6f\xd5\x05\x18Q\ -V\x8d\xc4\x22\xbc\x0d\x08a\x81]\xacr\xdcn\xe6b\ -\x09\x13\xa7q\xb8u\xba\x14o\xe4RRy\xb1\xf8\xa3\ -o\xda\x8c\x98\x1d+\x8a\x011\xd4\x88\xd3@u\x02\x0c\ -\xbd\xdd\xecE\x13#\xd8\x88\xc2`\x7f\x0dL\xb3\x8b\xb8\ -\xdcp\xb2k\x09\x059\x1e\xa7\x05H\xa5\xecE`\xbe\ -\xa9t\xf7\xd5\xca\x83c5\x1b\xc0@e,e\xc2\x97\ -\x075\xb1 \x834\xa0\x84S\xaaAL\x22\xcc\x91\x19\ -S\x81\xf0\x05C\x00\xe6\xab\xaa\x12\x848#\xfc\x91\x9b\ -\xf7x\x8d\xc22\x83\xb7\xfd\xab\xc4Q\x8e\x17\x08\x8d2\ -\x18\xef}U\x07q\xe4\x08\x12\xc7\x1c\x00C\x1d\x9fD\ -\x98S\x0bj_\x1f$\xff\x04\x8c\xeb\xab\x04I\x8f)\ -\x9b\x7f\xf6AQ\xe6I\x9b\x220\xb4\xd4\x00|\x01O\ -\x1b\x81\xca\xc6\x09\xa6\xde\xf0\x06\xaa$\x94\x85\xebD\xc9\ -\x8eV\xec9j\x8f\x94\x1e%\xcc\xbb\x85\xb4\x01\xb4W\ -xn,L\x80X\xab\xed[\x80\xe4\x0bJWYk\ -\x1e\x03\x09\x03\xa3\x16V\x83\x7f\xac\x81>\x9fS\xad\x03\ -\x89\xc01*\xd0\x04\x81p\xa3\xe5\x1b\x80\x04\xc0\xb5\xbd\ -\xce\xc2\xe9\x08H\x82\x11iP\x93&mu\x88j.\ -\x82\xc8\x12\xdfY2on\x5c\xaa707m\xa9\xb8\ -\xce\xe7\x88c\x8e[\xf8S\xf57\xfb}aYR-\ -\x02tSV\xf2\xf6\x91\x05\xfaX\xaa\xcc\x1bxnN\ -\x95\xbe\xce\x12\xbc\x1eO\x13\x04(e\xda\xe7_\x94\x80\ -`\x80\xe6\x06\x00\xd4\xe8\x89\x22\xc2\xbc\x05FZp\xcc\ -\xfd_\x0d\xa3Y\xbc\xe8_\x13Z\x8c\xbc\x1a\xe1\xdfG\ -@gr\xf1\xcd\x07\xef'1\x5c)\x03\x87\xb7\x11\xfa\ -&G\x14\x14gj\x82\x9eI\x00\x8an\x07/#\x1c\ -\xa1qtU\xf7\xe0\xe0\x0d\x87\x9eK\xfe,\xf7\xc9\xc9\ -~\xc5\xb9v\xa7j\x8e\xebVH\xfdk -*\xa1\ -\xa6\x8aO\x14\x10\xb0`\xa5\xc18#\x88\x91x\xeb\x98\ -\x80\x8f<\x982\xaa\x17\xdf\xa88l\xe3\xe5C=\xde\ -\xd8!1\x96xo\xa1\xe6\xf4D\xabr[d\xaf\xff\ -\x80x(z\xffzW\x999\xffFY=\x0f\xd3\xf4\ -H=^\x05\xe6\xe3;W\x0b4pN0\xc5V\xc2\ -\x03-\x01\x8cR\x81\xf2nRi\xdb\xe2\x0c\x14C\xef\ -\xff\x09\xce\x9d\xe9\xed\x7fg\xfe\x9dA\xfc\xfd7\x87\xde\ -8R\ +\x00*mx\xda\xe5Z\xddo\xe36\x12\x7f\xcf_\xa1\ +\xd3\xbe\xec\xe2,\x9a\xc3o\xbav\x0a\x5c\x17\x05\xfap\ +/\xd7\x16\xf7xP$\xc6V\xd7\x96\x0cI\x89\x93\xfe\ +\xf57\x94%\xf9K\xceeQ\xf7\xce\xebS\x12\x04\xe4\ +P\xe4\xcc\x8f\xf3\xc5\xa1\xa6\xdf\xbf\xac\x96\xc1\xb3+\xab\ +\xac\xc8g!\x10\x1a\x06.O\x8a4\xcb\xe7\xb3\xf0\xd7\ +_~\x8cL\x18Tu\x9c\xa7\xf1\xb2\xc8\xdd,\xcc\x8b\ +\xf0\xfb\xfb\xbb\xe9_\xa2(\xf8\xa1tq\xed\xd2`\x93\ +\xd5\x8b\xe0\xa7\xfcK\x95\xc4k\x17|\x5c\xd4\xf5z2\ +\x1eo6\x1b\x92\xb5\x9d\xa4(\xe7\xe3OA\x14\xdd\xdf\ +\xddM\xab\xe7\xf9]\x10\xec\xaf\x09\xa1\xef\xc8\xd2Y\x88\ +4\xd646YZ/\x90f\xb7\xcd\x85\xcb\xe6\x8bz\ +\xd7~\xce\xdc\xe6o\xc5\xcb,\xa4\x01\x0d\xb03\xe8\x08\ +\x15r\xbe\xc6\xbfIZ$y\xbcB\x86S\xb7t\xb5\ +\xfbW\x95,\xdc*\xae\xb3\x84\xe0\x1a\xdb\xf5Z\xe6&\ +\xfb\x9c\x10\x16|\xa41\xa5\xc9\xa3\xe4\xdc\x8e\x02F\x19\ +\x8b(\xfe\x8aO\xcdK\x88V^M\xbaWg\xe19\ +a\xfd\xda\xd5:N\x5c5\xee\xfa\xf7\xde\xef\xb8\xec\xdf\ +\xef:HU<\x95\x89{\xc4)\x1c\xc9]=\xfe\xfc\ +\xcb\xe7\x9e\x18Q\x92\xd6\xe9n\x9a\x83\xd57\xbcY\x97\ +QJ\xc7\x9d\x84\xedb\xcf\xf3w\x8e,\xd3\xc7\xa1\x91\ +`\xad\x1dS6F$pDT\xbd\xe6u\xfc\x12\xe5\ +\xd5\x87\xbdW\x93\xa4\x7f3\xf1j\x91=\xbb\xa4X\xad\ +\x8a\xbc\xda\xc2q08\xdd\x0d^?\x95\xcbfD\x9a\ +\x8cq\xa3V.\xaf\xab1\xee\xc38\xbc\xc7\xf1\xd3\x95\ +\xab\xe34\xaec\xff\xeeVC\xba\x1e\xd3\x0c\xc0!\xc8\ +\xd2\xe4\x1f\x9f\x7f\xdc\xb6\xb0\x9d$\x93\x7f\x16\xe5\x97\xb6\ +\x89\x8f\x1f\x10?\x14O\xa8>\xe1}\xdf=M\x93\x09\ +\xc2\x8c*q\x9f\xad\xe2\xb9\xf3P\xfc\x15\xd9\x9b\x8ew\ +\x84\x83\xc1\xf5\xeb\xda\xed&\xddN[\xba\xed~\x0d\x8a\ +\x93&\xab\xcc\xbf4\xfe\xb9\xce\x96\xcb\x9f\xfc\x22a0\ +\xee\xf9\x1c\xb7\x8c\xb6b\x8c\xf7\xe4\x98\x8e;)\x9bV\ +\xea\x1e\xab\x1d\x00\xbe\xa5\xda\x89\xa6\xbd\xba{}K\xbd\ +Ul\x07\xaeq\xb1\xa4X\x16\xe5,\xfc\xf0\xd8<\xe1\ +\x96\xf0P\x94\xa9+;\x92j\x9e\x03R\x81J\x8bl\ +\xa31\xb4\xdd\xc5\xc3o.\xa9\xebb\xe9\xca8\xf7\xa2\ +\x02m)\xf3\x12\x8dt\xa8\xff)K\xdd\x10\xa1\xb78\ +\xcf^\xbf\xd0 \xb5Z\xc4i\xb1\x99\x85\xec\x98\xb8\xc9\ +r$D\x9d\x7f\x90\x1a\xce\x8c\xe8\x5c\x86\x96\xfd\x1c\x88\ +^\x8f\x93h;\xabE\xb1\xf1\x82\xcc\xc2\xc7xY\xb9\ +\xe3\xc9~/\x8a\x95w\x0c\x9a\x1bN\xc5\x097\x09\xba\ + \xc6\x894\x8aQyBD\xe1\xd0f\x91f\xa9\xb5\ +\xea\x0c\x9f8\x83\xb4\xf4\x0c\xd1\xef\x83\xb6g\x88\xab\xf8\ +%[e\xbf\xbbt\x00\xc3\xe4\xa9,\xd1\x96\xa2e\xfc\ +\xeap\xa7\xe7\x86\xc3\x10\xcc\xe8\x14\x93/\xae|(\xe2\ +\xb2\x99\xa5U\xab\xf9\x0e\xb0\xbd7\xab\xfau\x89\xdbY\ +\xd5e\xf1\xc5M>p\x9d\x98\xf8\xe1\xbbms\xbb!\ +\x13\x06]\x1bu\xdf\x95K\xe4\xaf\x9e\x88\xae/\x8dq\ +[\xcb2~\x9d\xe4\x18K:\x03\x9ewV\xd5s\xb6\ +\x8c\x1f\xdcr\x16\xfe\x10\xaf\xe3\xa0[|\xcbM#\xce\ +\xae\xabF\x0d\xab\xbc\xb1\xa2_\x88\xeb2{\xf9\xc8\x89\ +\x05\xa3(S#\x8a?\xbbV\x04Z\xe3N\x08nF\ +\x11\xb7\x9a\x11k\x99\xf9\xd4\xfb\x83\x1d\x13\xad\xd4\x5c\x88\ +\xdd2C\x0b\xf9}U\xa0\xb8\xe4\xcdJ{M\xa1\x09\ +\xe3\xdc\x80\x18\x81P\x84i\x0c$\x9f\xf6\xa6jQ|\ +D\x9f0im\xf3\xbb\x0eR\x91\xfa\x9f?\x0c\xe9\xd6\ +\x0ffe\xb2<\xf4X^\x91e\xb8\xdf\xe5U\x14(\ +gD3~DA\xbd\xc4~\x858\x98\x03\x82\x87g\ +\x1d\xd7\x0b\xce\xb9\x8a \xb2\x07\xc4!\xe1|#j\xad\ +}\x02\xdbf\xf9\xb4t\x13\xf7\xec\xf2\x22M{\xe9S\ +\x81!\x89\x1eJ\x0f\xeb\x97\xaec\x99\xe5\x0e\xd5c\xf2\ +\xf0T\xd7\xfb}\xbf\x15Y>i\xb0\xe9z\xfb\xc5\xf6\ +\xfc-\x22\xe2\xb9>\x90\xa47\x96\x22\xc7\xa9\xeb\xa2\x8c\ +\xd0l\x9e\xe3\xfa\xa9t;\x93:\x94Z0\x0d\x11?\ + \xf9\xa0\x14 T\x06\xbc\x1b\x18!\x9c@\x84f*\ +\xf0\xb6\x0f\x0a\xa8\x18E\x9aX%\xcd\xfb\xa0z76\ +\x14\xbd\x12\xe5\x5c\x5c\x1dD\x12N\x01R\x84J\xa3\xa5\ +\x95\x08\x10zLP\x92\x05h(\x8aR%\xe5H\x12\ +\xae\xed\xa5\xf1\x81\xaf\x87\xe5?\x9b\xd8\x7f\x05@5\x00\ + \xa3Djm\xb5\xf2\x1af\x88VB\x06\x91$B\ +\x19\x83\x89*:\x1aF/\xaf`\x86\x09\xb0\xfc\xea\x14\ +L\x0dX CmB\x0b\xb4\xde\x02\xd1\x05k\xd4\xb0\ + \x02\x8c\xdcLj\x0e\x18\x00\x88\xd2\xfa\xe2\x00Y\xc1\ +\xa5`W\x07\xd0\x91-m\x01B\xe7O\xb9d^\x81\ +\xc0\x12\xf4G:0\xc42\xa9\xf4\x88\x11\xc08u\x1e\ +\x1d\xdb<\xefw\xe5\xed\xf8cw\x85\xd6.\xd9Uz\ +\xf4H\x0d\xf8tK$\xe8\xadF\xa1\xc5\x19\x0b\x22\x88\ +\xd0\x8fi\xcc\x99\xd9\x08m\x8f\x81\xf8\x06|\xfaW$\ +\x02\xd4\x10\x8e)\xf5I\x22\xc0\x04\x91BZs>\x13\ +\xb8\x5c\x160\xa4:\xf0\xbf\x81\x030Na\xb2x\x9a\ +\x17iB\x0d\x15\x94\x9dO\x8c\xf8M\x02\xc2\x14\xe1\x98\ +\xe5\x9e\x00\x220\xd1\x16\xd6h{\x1e\x90\xdb\xd4\x10\xee\ +\xfd\xa8\xe6\xa7\x80P\x22\xa8\xe0\x82\x9f\x07D\xdf$ \ +>\xf2R3\xe0A\x0c\x02ewg\xf1\x01@\xe4m\ +\x02\x22}\x01\x00N\x00\x01A0\xf2Rx\xcb\x87\xc8\ +o\xe7l\xf556#\x09H8=mJB\xadB\ +\xe5y\xe3\xb8\xa9\xd8m\xbaU\x86\xc7\x1f&\x86\x10a\ +\x9cQ\xab\xce#boRE\x80\x11e\xd5i\x9c\xc1\ +t^\x08\x0b\xec\xad\x8a\xc4mf\x22\x960q\x14^\ +\x1b\xb7J\xf1\x08-%\x95o\x95h\xf4\xcd\x1a\x0d\xb3\ +\x03E+ \x86\x1aq\x14\x83\x8e \xa1\xb7\x99\x8dh\ +b\x04;U\x12\x1c\xad\x81i\xf6\x16\x227\x9a\xb0Z\ +BA\x0eF_\x01R)\xfb\x16$\xdfP\xcaz\xa1\ +\xba\xdd@Y\x050\x08\x19K\x99\xf0u;M,\xc8\ + \x09(\xe1\x94j\x10\xa3\x08\xf3\x5c\xc6T |%\ +\x0f\x80\xf9J\xa7\x04!N:\xfe\xc01y\xb8\x96`\ +\x99\xc1\x93\xf9\xf5A(\x07+wF\x19\x0c\xe3\xbe\xf0\ +\x82\x10r\xc4\x87ch\xc78\xc6G\x11&\xc6\x82\xda\ +\x8b\xe3\xe3o\x9d\xb8\xbe>|\xf4\x80\x8a\xf9\xeb\x07\x8a\ +\xfc\x8e\x9a\xc8\xcf\xd02\x03\xf0\xa55m\x04\xaa\x18'\ +\x98?\xc3\xe5\x15H(\x0bW\x08\x90\x1d\xaa\x9ds\xd4\ +\x19)=@\x98=\x0bi\x03hN\xdc\xdcX\x18\x01\ +\xb1V\xdb?\x01\x1f_\xf2\xb9\xbe\xd2\xef\x00>\x18\xf7\ +\xb4\xb0\x1a\xfc\xdd\x02zvN\xb5\x0e$b\xc6\xa8@\ +\x9b\x03\xc2\x8d\x96\x97\xc7\x07\x80k{\x85\xc5\xccS|\ +\x04#\xd2\xa0\xfe\x8c\x9a\x0a\x0e\xd5\x5c\x04\x91%~\xac\ +d\xde\xbe\xb8T\x97\xb7/m\xa9\xb8\xc2\xdb\xbb\x01\xff\ +,\xfcf\xfa\xb3\xf8\xb6\xce+\xa9\x16\x01\xba$+y\ +so\x80\xbe\x94*sy\x07\xcd\xa9\xd2WX\x0c\xd7\ +\x839\x80\x00\xa5Ls\xf5D\x09\x08\x06h_\x00@\ +\x8d\x1e)\x22\xcc\x9f\x00\x8f\x16\x1c\xb3\xf8K\xc13\x1d\ +\xcf\xbb\xefl\xe6'\x9f\x1d\xf8\xfb~t\x1co}V\ +\xe0\xdd!\xc6#e\xa0\xbd\xed\xef\x9b\x1c\xe5W\x9c\xa9\ +\x11:!\x01\xc8\xb5\xdd]\xf6\x1f\xe0pp\xbc\xf6\xb0\ +\xe0)\x85\x9e\xf2\xdcs|\xb8\x9d\xef\xdf\xccn+\xcd\ +Ai\x09;\xff\x1eH\x8bZ\xa7\xa9\xe2#\x05\x04,\ +Xi0\x90\x08b$\x1e\x1dF\xe0C\x0b\xe6\x80\xea\ +\xdc\xc7\x0a\xad\x04\xe7w\xf2P\xa66\xcb\x95x\xf8\xa0\ +\xe6x\x1b\xcb\xe2)O/\x7f\x17\xbb\xc7y\xffeT\ +\x91:\xff\x19V5\x0b\x93d_%.\x00\xf0\xc1\xa9\ +\xa9\x81\x188'\x98.+\xe1!\x96\x00F\xa9@y\ +g\xa8\xb4m\x10\x06\x8aa\xf5\xff\x01\xe1\xd6\xd2\x9a\x7f\ +S\xffu\xdd\xfd\xdd\xbf\x01\xcb`,<\ " qt_resource_name = b"\ @@ -30318,327 +30585,327 @@ \x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00.\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x8b\xf6\xb8\xa6\xf4\ +\x00\x00\x01\x8b\xd7}+v\ \x00\x00\x00T\x00\x02\x00\x00\x00\x9f\x00\x00\x00\x05\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x0d\x88\x00\x00\x00\x00\x00\x01\x00\x05\x07B\ -\x00\x00\x01\x8b\xf6\xb8\xa75\ -\x00\x00\x0b(\x00\x00\x00\x00\x00\x01\x00\x04\x1b\xd3\ -\x00\x00\x01\x8b\xf6\xb8\xa7)\ -\x00\x00\x13\x86\x00\x00\x00\x00\x00\x01\x00\x07\x00\x05\ -\x00\x00\x01\x8b\xf6\xb8\xa7R\ -\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x98\xae\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0d\ -\x00\x00\x09\xfa\x00\x00\x00\x00\x00\x01\x00\x03\xb7\xa0\ -\x00\x00\x01\x8b\xf6\xb8\xa7A\ -\x00\x00\x11\xb8\x00\x00\x00\x00\x00\x01\x00\x06cz\ -\x00\x00\x01\x8f\xe7\x9a\xc0\xcf\ -\x00\x00\x13\xc0\x00\x01\x00\x00\x00\x01\x00\x07\x14\x95\ -\x00\x00\x01\x8b\xf6\xb8\xa7M\ -\x00\x00\x07\x88\x00\x00\x00\x00\x00\x01\x00\x02\xd7T\ -\x00\x00\x01\x8b\xf6\xb8\xa7'\ -\x00\x00\x05~\x00\x00\x00\x00\x00\x01\x00\x028S\ -\x00\x00\x01\x8b\xf6\xb8\xa7*\ -\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x00\x80\xd8\ -\x00\x00\x01\x8b\xf6\xb8\xa7E\ -\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01\x0f\xe1\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1d\ -\x00\x00\x0f\x04\x00\x00\x00\x00\x00\x01\x00\x05\x90\x99\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x16\ -\x00\x00\x12\xf6\x00\x00\x00\x00\x00\x01\x00\x06\xd1r\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x09\ -\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x01\x00\x04\xe4i\ -\x00\x00\x01\x8b\xf6\xb8\xa7I\ -\x00\x00\x0cJ\x00\x00\x00\x00\x00\x01\x00\x04\x88_\ -\x00\x00\x01\x8dA2W{\ -\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x02 \xfb\ -\x00\x00\x01\x8b\xf6\xb8\xa7L\ -\x00\x00\x0f&\x00\x00\x00\x00\x00\x01\x00\x05\x9ap\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1c\ -\x00\x00\x0fZ\x00\x01\x00\x00\x00\x01\x00\x05\xb0\x96\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0b\ -\x00\x00\x12:\x00\x00\x00\x00\x00\x01\x00\x06\x965\ -\x00\x00\x01\x8b\xf6\xb8\xa7#\ -\x00\x00\x05\x12\x00\x00\x00\x00\x00\x01\x00\x02\x11\x04\ -\x00\x00\x01\x8b\xf6\xb8\xa7@\ -\x00\x00\x09,\x00\x01\x00\x00\x00\x01\x00\x03^C\ -\x00\x00\x01\x8b\xf6\xb8\xa74\ -\x00\x00\x07<\x00\x01\x00\x00\x00\x01\x00\x02\xc2\x9e\ -\x00\x00\x01\x8e\xcdT\x0aF\ -\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x01\xf0\xc8\ -\x00\x00\x01\x8b\xf6\xb8\xa7:\ -\x00\x00\x0a\xd2\x00\x00\x00\x00\x00\x01\x00\x03\xf6(\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x22\ -\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00'\xd4\ -\x00\x00\x01\x8b\xf6\xb8\xa7A\ -\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x02\x01l\ -\x00\x00\x01\x8b\xf6\xb8\xa7-\ -\x00\x00\x0e\xd0\x00\x00\x00\x00\x00\x01\x00\x05n$\ -\x00\x00\x01\x8ee\xcf\xdb%\ -\x00\x00\x07T\x00\x01\x00\x00\x00\x01\x00\x02\xc7[\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x08\ -\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x11\x86\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1a\ -\x00\x00\x0bH\x00\x01\x00\x00\x00\x01\x00\x04)\x1b\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x19\ -\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00f\x18\ -\x00\x00\x01\x8b\xf6\xb8\xa7Q\ -\x00\x00\x01|\x00\x00\x00\x00\x00\x01\x00\x00\xa7K\ -\x00\x00\x01\x8b\xf6\xb8\xa77\ -\x00\x00\x10\xc0\x00\x00\x00\x00\x00\x01\x00\x06\x1f\x19\ -\x00\x00\x01\x8b\xf6\xb8\xa7'\ -\x00\x00\x10\x84\x00\x01\x00\x00\x00\x01\x00\x06\x0a\xf9\ -\x00\x00\x01\x8b\xf6\xb8\xa7 \ -\x00\x00\x0a\x1e\x00\x01\x00\x00\x00\x01\x00\x03\xc1\x15\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x09\ -\x00\x00\x09\xb6\x00\x00\x00\x00\x00\x01\x00\x03\x9c \ -\x00\x00\x01\x8b\xf6\xb8\xa7T\ -\x00\x00\x0d@\x00\x01\x00\x00\x00\x01\x00\x04\xfa\xce\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0e\ -\x00\x00\x04\x18\x00\x01\x00\x00\x00\x01\x00\x01\xa9\xcc\ -\x00\x00\x01\x8b\xf6\xb8\xa7H\ -\x00\x00\x09Z\x00\x00\x00\x00\x00\x01\x00\x03}>\ -\x00\x00\x01\x8b\xf6\xb8\xa7D\ -\x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x03%\x00\ -\x00\x00\x01\x8e\xcdT\x0aD\ -\x00\x00\x0d\xae\x00\x00\x00\x00\x00\x01\x00\x05\x0f\x1a\ -\x00\x00\x01\x8b\xf6\xb8\xa7/\ -\x00\x00\x09\xd2\x00\x01\x00\x00\x00\x01\x00\x03\xa9\xcc\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x05\ -\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x013B\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x17\ -\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xf8\xa1\ -\x00\x00\x01\x8b\xf6\xb8\xa7N\ -\x00\x00\x08\xf8\x00\x00\x00\x00\x00\x01\x00\x03MD\ -\x00\x00\x01\x8b\xf6\xb8\xa75\ -\x00\x00\x06\xac\x00\x01\x00\x00\x00\x01\x00\x02\x98\xe8\ -\x00\x00\x01\x8b\xf6\xb8\xa7-\ -\x00\x00\x0eJ\x00\x01\x00\x00\x00\x01\x00\x05I%\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x07\ -\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00C\x97\ -\x00\x00\x01\x8f\x9e\xe5;\xd3\ -\x00\x00\x0e\x18\x00\x01\x00\x00\x00\x01\x00\x054)\ -\x00\x00\x01\x8b\xf6\xb8\xa7&\ -\x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x22{\ -\x00\x00\x01\x8b\xf6\xb8\xa7O\ -\x00\x00\x11\xf4\x00\x01\x00\x00\x00\x01\x00\x06{\xa0\ -\x00\x00\x01\x8b\xf6\xb8\xa7<\ -\x00\x00\x03\xea\x00\x01\x00\x00\x00\x01\x00\x01\x96\xdf\ -\x00\x00\x01\x8b\xf6\xb8\xa7D\ -\x00\x00\x03\xbe\x00\x01\x00\x00\x00\x01\x00\x01\x82(\ -\x00\x00\x01\x8e\xcdT\x0aE\ -\x00\x00\x0bj\x00\x01\x00\x00\x00\x01\x00\x040\xc2\ -\x00\x00\x01\x8b\xf6\xb8\xa7*\ -\x00\x00\x03R\x00\x00\x00\x00\x00\x01\x00\x01a\x9e\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1b\ -\x00\x00\x13@\x00\x00\x00\x00\x00\x01\x00\x06\xe8\xbc\ -\x00\x00\x01\x8b\xf6\xb8\xa79\ -\x00\x00\x12Z\x00\x00\x00\x00\x00\x01\x00\x06\xa0\xce\ -\x00\x00\x01\x8f\xeb\x1f\xe4\xda\ -\x00\x00\x12\xdc\x00\x00\x00\x00\x00\x01\x00\x06\xc9\xc6\ -\x00\x00\x01\x8b\xf6\xb8\xa7+\ -\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x017\xa9\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1e\ -\x00\x00\x02\xa8\x00\x01\x00\x00\x00\x01\x00\x01\x1bJ\ -\x00\x00\x01\x8b\xf6\xb8\xa7)\ -\x00\x00\x0f\xa2\x00\x01\x00\x00\x00\x01\x00\x05\xbd7\ -\x00\x00\x01\x8b\xf6\xb8\xa7>\ -\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\xb1/\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0f\ -\x00\x00\x0c\x8e\x00\x01\x00\x00\x00\x01\x00\x04\xbf\xfb\ -\x00\x00\x01\x8b\xf6\xb8\xa7S\ -\x00\x00\x12\x10\x00\x00\x00\x00\x00\x01\x00\x06\x89'\ -\x00\x00\x01\x8f]\xe1#J\ -\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00 \x16\ -\x00\x00\x01\x8b\xf6\xb8\xa7#\ -\x00\x00\x12t\x00\x00\x00\x00\x00\x01\x00\x06\xa9\xbf\ -\x00\x00\x01\x8b\xf6\xb8\xa7T\ -\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x03U\x15\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1a\ -\x00\x00\x04h\x00\x00\x00\x00\x00\x01\x00\x01\xbe\xa7\ -\x00\x00\x01\x8b\xf6\xb8\xa7?\ -\x00\x00\x0f\xe2\x00\x00\x00\x00\x00\x01\x00\x05\xd7\x08\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0b\ -\x00\x00\x01\xe2\x00\x01\x00\x00\x00\x01\x00\x00\xd7\xb1\ -\x00\x00\x01\x8b\xf6\xb8\xa7:\ -\x00\x00\x06\x9a\x00\x00\x00\x00\x00\x01\x00\x02\x89Q\ -\x00\x00\x01\x8b\xf6\xb8\xa76\ -\x00\x00\x10\xa2\x00\x00\x00\x00\x00\x01\x00\x06\x14\x00\ -\x00\x00\x01\x8b\xf6\xb8\xa76\ -\x00\x00\x04\x06\x00\x01\x00\x00\x00\x01\x00\x01\xa3\xc7\ -\x00\x00\x01\x8e\xcdT\x0aF\ -\x00\x00\x11d\x00\x01\x00\x00\x00\x01\x00\x06I\x13\ -\x00\x00\x01\x8b\xf6\xb8\xa7(\ -\x00\x00\x07\xa2\x00\x00\x00\x00\x00\x01\x00\x02\xe1\xaa\ -\x00\x00\x01\x8e\x12\xdb\xed\xaf\ -\x00\x00\x0fF\x00\x00\x00\x00\x00\x01\x00\x05\xa5\xcf\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x07\ -\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xe3\x9c\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x14\ -\x00\x00\x0a\x98\x00\x00\x00\x00\x00\x01\x00\x03\xe9\xb2\ -\x00\x00\x01\x8b\xf6\xb8\xa71\ -\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x02H]\ -\x00\x00\x01\x8b\xf6\xb8\xa7R\ -\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x01?\xd5\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x05\ -\x00\x00\x07\x00\x00\x00\x00\x00\x00\x01\x00\x02\xa8\x9e\ -\x00\x00\x01\x8b\xf6\xb8\xa7O\ -\x00\x00\x0ej\x00\x00\x00\x00\x00\x01\x00\x05PM\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x15\ -\x00\x00\x12\x92\x00\x00\x00\x00\x00\x01\x00\x06\xb5:\ -\x00\x00\x01\x8b\xf6\xb8\xa7Q\ -\x00\x00\x0c\xb8\x00\x00\x00\x00\x00\x01\x00\x04\xd2\xe9\ -\x00\x00\x01\x8eZ\xeb\x87y\ -\x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x03\x10\x1b\ -\x00\x00\x01\x8b\xf6\xb8\xa7K\ -\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x02q\x08\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1b\ -\x00\x00\x11\xa0\x00\x01\x00\x00\x00\x01\x00\x06_ \ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0e\ -\x00\x00\x13\xaa\x00\x00\x00\x00\x00\x01\x00\x07\x0b\xfa\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x11\ -\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x03F\xcd\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1e\ -\x00\x00\x03>\x00\x00\x00\x00\x00\x01\x00\x01K2\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0f\ -\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x0314\ -\x00\x00\x01\x8e\x12\xdb\xed\xaf\ -\x00\x00\x0a\xf6\x00\x00\x00\x00\x00\x01\x00\x04\x08\xff\ -\x00\x00\x01\x8b\xf6\xb8\xa7L\ -\x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x03\xaf\xc6\ -\x00\x00\x01\x8b\xf6\xb8\xa7G\ -\x00\x00\x100\x00\x00\x00\x00\x00\x01\x00\x05\xec0\ -\x00\x00\x01\x8b\xf6\xb8\xa7C\ -\x00\x00\x0cj\x00\x00\x00\x00\x00\x01\x00\x04\x97^\ -\x00\x00\x01\x8b\xf6\xb8\xa7K\ -\x00\x00\x0a\xb0\x00\x01\x00\x00\x00\x01\x00\x03\xf1k\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0b\ -\x00\x00\x11\x84\x00\x00\x00\x00\x00\x01\x00\x06S\xcf\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1d\ -\x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x03\x01\x95\ -\x00\x00\x01\x8b\xf6\xb8\xa7F\ -\x00\x00\x13\xd6\x00\x01\x00\x00\x00\x01\x00\x07\x1c|\ -\x00\x00\x01\x8f\xe7\x9a\xc0\xd0\ -\x00\x00\x03\xa0\x00\x00\x00\x00\x00\x01\x00\x01v\xc2\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0a\ -\x00\x00\x13\x22\x00\x00\x00\x00\x00\x01\x00\x06\xdf\x94\ -\x00\x00\x01\x8b\xf6\xb8\xa77\ -\x00\x00\x04|\x00\x01\x00\x00\x00\x01\x00\x01\xcb\x04\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x19\ -\x00\x00\x0c\xa4\x00\x00\x00\x00\x00\x01\x00\x04\xc4\xeb\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x15\ -\x00\x00\x09v\x00\x01\x00\x00\x00\x01\x00\x03\x86\xfa\ -\x00\x00\x01\x8b\xf6\xb8\xa7?\ -\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x001\x03\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x13\ -\x00\x00\x11D\x00\x01\x00\x00\x00\x01\x00\x06B>\ -\x00\x00\x01\x8b\xf6\xb8\xa7H\ -\x00\x00\x05`\x00\x00\x00\x00\x00\x01\x00\x02-B\ -\x00\x00\x01\x8b\xf6\xb8\xa70\ -\x00\x00\x0an\x00\x00\x00\x00\x00\x01\x00\x03\xdb\xe9\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x0a\ -\x00\x00\x10h\x00\x00\x00\x00\x00\x01\x00\x05\xfc\x85\ -\x00\x00\x01\x8b\xf6\xb8\xa7!\ -\x00\x00\x11\xd8\x00\x00\x00\x00\x00\x01\x00\x06rG\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x22\ -\x00\x00\x05\xf8\x00\x01\x00\x00\x00\x01\x00\x02a\xa5\ -\x00\x00\x01\x8dA2Wy\ -\x00\x00\x09\x9e\x00\x00\x00\x00\x00\x01\x00\x03\x93p\ -\x00\x00\x01\x8b\xf6\xb8\xa77\ -\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x02V\xc3\ -\x00\x00\x01\x8f\x9e\xe5;\xd4\ -\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x9f\x1c\ -\x00\x00\x01\x8b\xf6\xb8\xa7L\ -\x00\x00\x0c\x1c\x00\x01\x00\x00\x00\x01\x00\x04\x81\xd3\ -\x00\x00\x01\x8b\xf6\xb8\xa7/\ -\x00\x00\x08(\x00\x00\x00\x00\x00\x01\x00\x03\x09\x12\ -\x00\x00\x01\x8b\xf6\xb8\xa7=\ -\x00\x00\x07r\x00\x00\x00\x00\x00\x01\x00\x02\xcc6\ -\x00\x00\x01\x8b\xf6\xb8\xa7<\ -\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x01\xd0v\ -\x00\x00\x01\x8b\xf6\xb8\xa7C\ -\x00\x00\x0d\xfc\x00\x00\x00\x00\x00\x01\x00\x05-\x03\ -\x00\x00\x01\x8e\xcdT\x0aD\ -\x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x04\xdaK\ -\x00\x00\x01\x8b\xf6\xb8\xa72\ -\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xcfT\ -\x00\x00\x01\x8b\xf6\xb8\xa7%\ -\x00\x00\x01\xaa\x00\x01\x00\x00\x00\x01\x00\x00\xcab\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x14\ -\x00\x00\x10\x02\x00\x01\x00\x00\x00\x01\x00\x05\xe5\x0f\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x11\ -\x00\x00\x0f\xba\x00\x00\x00\x00\x00\x01\x00\x05\xc3\xfb\ -\x00\x00\x01\x8b\xf6\xb8\xa7+\ -\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00s@\ -\x00\x00\x01\x8b\xf6\xb8\xa7(\ -\x00\x00\x028\x00\x01\x00\x00\x00\x01\x00\x00\xef\xad\ -\x00\x00\x01\x8b\xf6\xb8\xa7J\ -\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x01\xe9s\ -\x00\x00\x01\x8b\xf6\xb8\xa7@\ -\x00\x00\x0e\xba\x00\x00\x00\x00\x00\x01\x00\x05df\ -\x00\x00\x01\x8b\xf6\xb8\xa7E\ -\x00\x00\x10F\x00\x01\x00\x00\x00\x01\x00\x05\xf3\xa8\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x17\ -\x00\x00\x03h\x00\x01\x00\x00\x00\x01\x00\x01j\xc4\ -\x00\x00\x01\x8b\xf6\xb8\xa7 \ -\x00\x00\x0f\x84\x00\x01\x00\x00\x00\x01\x00\x05\xb7v\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x12\ -\x00\x00\x07(\x00\x00\x00\x00\x00\x01\x00\x02\xb2\xf2\ -\x00\x00\x01\x8b\xf6\xb8\xa7#\ -\x00\x00\x0d\xc4\x00\x00\x00\x00\x00\x01\x00\x05\x16\xd7\ -\x00\x00\x01\x8b\xf6\xb8\xa7N\ -\x00\x00\x0d\xe0\x00\x00\x00\x00\x00\x01\x00\x05\x22>\ -\x00\x00\x01\x8f\xeb\x1f\xe4\xda\ -\x00\x00\x10\xfe\x00\x00\x00\x00\x00\x01\x00\x0612\ -\x00\x00\x01\x8b\xf6\xb8\xa77\ -\x00\x00\x0b\x0e\x00\x00\x00\x00\x00\x01\x00\x04\x12\x81\ -\x00\x00\x01\x8b\xf6\xb8\xa7!\ -\x00\x00\x0dp\x00\x00\x00\x00\x00\x01\x00\x04\xff'\ -\x00\x00\x01\x8b\xf6\xb8\xa7G\ -\x00\x00\x02l\x00\x00\x00\x00\x00\x01\x00\x01\x05B\ -\x00\x00\x01\x8f\x85I\x03\xd5\ -\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02O\xce\ -\x00\x00\x01\x8e\x12\xdb\xed\xaf\ -\x00\x00\x10\xe8\x00\x00\x00\x00\x00\x01\x00\x06)\xab\ -\x00\x00\x01\x8b\xf6\xb8\xa79\ -\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x01\xb1N\ -\x00\x00\x01\x8b\xf6\xb8\xa75\ -\x00\x00\x11\x14\x00\x01\x00\x00\x00\x01\x00\x069\xe6\ -\x00\x00\x01\x8b\xf6\xb8\xa7,\ -\x00\x00\x0b\xae\x00\x00\x00\x00\x00\x01\x00\x04Cu\ -\x00\x00\x01\x8b\xf6\xb8\xa7S\ -\x00\x00\x0aN\x00\x01\x00\x00\x00\x01\x00\x03\xc6-\ -\x00\x00\x01\x8b\xf6\xb8\xa73\ -\x00\x00\x08\x5c\x00\x00\x00\x00\x00\x01\x00\x03\x17\xfc\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x09\ -\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\x88$\ -\x00\x00\x01\x8b\xf6\xb8\xa7S\ -\x00\x00\x03\x86\x00\x01\x00\x00\x00\x01\x00\x01q\x90\ -\x00\x00\x01\x8b\xf6\xb8\xa7O\ -\x00\x00\x0b\xd0\x00\x00\x00\x00\x00\x01\x00\x04_\xbb\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x04\ -\x00\x00\x0d(\x00\x00\x00\x00\x00\x01\x00\x04\xed>\ -\x00\x00\x01\x8b\xf6\xb8\xa7J\ -\x00\x00\x0b\x8a\x00\x00\x00\x00\x00\x01\x00\x045\xd2\ -\x00\x00\x01\x8b\xf6\xb8\xa7M\ -\x00\x00\x0e\x8a\x00\x01\x00\x00\x00\x01\x00\x05X\x93\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x10\ -\x00\x00\x01>\x00\x00\x00\x00\x00\x01\x00\x00\x8dd\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x15\ -\x00\x00\x13\x5c\x00\x01\x00\x00\x00\x01\x00\x06\xf6\x99\ -\x00\x00\x01\x8e\x12\xdb\xed\xaf\ -\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x02g\x0a\ -\x00\x00\x01\x8b\xf6\xb8\xa7F\ -\x00\x00\x08\xc2\x00\x00\x00\x00\x00\x01\x00\x03;e\ -\x00\x00\x01\x8b\xf6\xb8\xa7\x1c\ -\x00\x00\x0b\xf0\x00\x00\x00\x00\x00\x01\x00\x04i=\ -\x00\x00\x01\x8b\xf6\xb8\xa7,\ -\x00\x00\x09@\x00\x00\x00\x00\x00\x01\x00\x03r\xd0\ -\x00\x00\x01\x8b\xf6\xb8\xa7#\ -\x00\x00\x06l\x00\x00\x00\x00\x00\x01\x00\x02\x7f;\ -\x00\x00\x01\x8b\xf6\xb8\xa71\ -\x00\x00\x12\xb6\x00\x00\x00\x00\x00\x01\x00\x06\xbc;\ -\x00\x00\x01\x8d\xee\xa4|Q\ +\x00\x00\x0d\x88\x00\x00\x00\x00\x00\x01\x00\x05\x10\xca\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b(\x00\x00\x00\x00\x00\x01\x00\x04\x12\xc1\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x86\x00\x00\x00\x00\x00\x01\x00\x06\xffv\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x95\xa7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09\xfa\x00\x00\x00\x00\x00\x01\x00\x03\xb0[\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x11\xb8\x00\x00\x00\x00\x00\x01\x00\x06f\x8c\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x13\xc0\x00\x00\x00\x00\x00\x01\x00\x07\x13|\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x07\x88\x00\x00\x00\x00\x00\x01\x00\x02\xd5I\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05~\x00\x00\x00\x00\x00\x01\x00\x02-H\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x00~d\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01\x0a\xa7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\x04\x00\x00\x00\x00\x00\x01\x00\x05\x97~\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\xf6\x00\x00\x00\x00\x00\x01\x00\x06\xd1\xc6\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x01\x00\x04\xee\xc8\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0cJ\x00\x00\x00\x00\x00\x01\x00\x04\x89\x0f\ +\x00\x00\x01\x8d\x0d\x8c\x812\ +\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x02\x16\x90\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0f&\x00\x00\x00\x00\x00\x01\x00\x05\xa1\x13\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0fZ\x00\x01\x00\x00\x00\x01\x00\x05\xb6\xa7\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x12:\x00\x00\x00\x00\x00\x01\x00\x06\x981\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\x12\x00\x00\x00\x00\x00\x01\x00\x02\x06\xec\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x09,\x00\x01\x00\x00\x00\x01\x00\x03X\x83\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07<\x00\x01\x00\x00\x00\x01\x00\x02\xc0\xe3\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x01\xe7c\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\xd2\x00\x00\x00\x00\x00\x01\x00\x03\xed\xf9\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00'2\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x01\xf7\xb0\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0e\xd0\x00\x00\x00\x00\x00\x01\x00\x05u\x90\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x07T\x00\x01\x00\x00\x00\x01\x00\x02\xc5\x9c\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x11y\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0bH\x00\x01\x00\x00\x00\x01\x00\x04\x1f\xb2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00d4\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01|\x00\x00\x00\x00\x00\x01\x00\x00\xa3\xc2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\xc0\x00\x00\x00\x00\x00\x01\x00\x06#N\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\x84\x00\x01\x00\x00\x00\x01\x00\x06\x0f\x80\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\x1e\x00\x01\x00\x00\x00\x01\x00\x03\xb9\x8b\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x09\xb6\x00\x00\x00\x00\x00\x01\x00\x03\x95w\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0d@\x00\x01\x00\x00\x00\x01\x00\x05\x04\x95\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04\x18\x00\x01\x00\x00\x00\x01\x00\x01\xa1\xcc\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x09Z\x00\x00\x00\x00\x00\x01\x00\x03w,\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x03 \xda\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0d\xae\x00\x00\x00\x00\x00\x01\x00\x05\x18c\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09\xd2\x00\x01\x00\x00\x00\x01\x00\x03\xa2\xc9\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x01-S\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xf5\xc8\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08\xf8\x00\x00\x00\x00\x00\x01\x00\x03H\x0b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06\xac\x00\x01\x00\x00\x00\x01\x00\x02\x97\xf3\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0eJ\x00\x01\x00\x00\x00\x01\x00\x05Q5\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00B:\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x0e\x18\x00\x01\x00\x00\x00\x01\x00\x05<]\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x1c\xf5\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x11\xf4\x00\x01\x00\x00\x00\x01\x00\x06~\x09\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x03\xea\x00\x01\x00\x00\x00\x01\x00\x01\x8e\xf7\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\xbe\x00\x01\x00\x00\x00\x01\x00\x01z\xa0\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0bj\x00\x00\x00\x00\x00\x01\x00\x04'T\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03R\x00\x00\x00\x00\x00\x01\x00\x01Z\xb2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13@\x00\x00\x00\x00\x00\x01\x00\x06\xe8~\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12Z\x00\x00\x00\x00\x00\x01\x00\x06\xa2w\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x12\xdc\x00\x00\x00\x00\x00\x01\x00\x06\xcaT\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x011\xb4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x02\xa8\x00\x01\x00\x00\x00\x01\x00\x01\x15\xc8\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\xa2\x00\x01\x00\x00\x00\x01\x00\x05\xc38\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\xadk\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0c\x8e\x00\x00\x00\x00\x00\x01\x00\x04\xc0\x07\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x12\x10\x00\x00\x00\x00\x00\x01\x00\x06\x8b|\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xb1\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12t\x00\x00\x00\x00\x00\x01\x00\x06\xab#\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x03O\x9d\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04h\x00\x00\x00\x00\x00\x01\x00\x01\xb6H\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0f\xe2\x00\x00\x00\x00\x00\x01\x00\x05\xdc\x97\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xe2\x00\x01\x00\x00\x00\x01\x00\x00\xd3*\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06\x9a\x00\x00\x00\x00\x00\x01\x00\x02\x88\xce\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\xa2\x00\x00\x00\x00\x00\x01\x00\x06\x18\x80\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04\x06\x00\x01\x00\x00\x00\x01\x00\x01\x9b\xcf\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x11d\x00\x01\x00\x00\x00\x01\x00\x06Ly\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xa2\x00\x00\x00\x00\x00\x01\x00\x02\xdfP\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x0fF\x00\x00\x00\x00\x00\x01\x00\x05\xac*\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xdf\x03\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\x98\x00\x00\x00\x00\x00\x01\x00\x03\xe1\xc4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x02<\xed\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x019\xa4\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x07\x00\x00\x00\x00\x00\x00\x01\x00\x02\xa7\x98\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0ej\x00\x00\x00\x00\x00\x01\x00\x05XR\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\x92\x00\x00\x00\x00\x00\x01\x00\x06\xb6O\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0c\xb8\x00\x00\x00\x00\x00\x01\x00\x04\xdd\xcc\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x03\x0c\x8a\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x02q)\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\xa0\x00\x01\x00\x00\x00\x01\x00\x06b7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\xaa\x00\x00\x00\x00\x00\x01\x00\x07\x0b\x1b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x03A\xca\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03>\x00\x00\x00\x00\x00\x01\x00\x01D\xb7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x03,\xbd\ +\x00\x00\x01\x8e.\xfc\xa1\x87\ +\x00\x00\x0a\xf6\x00\x00\x00\x00\x00\x01\x00\x04\x00\x83\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x03\xa8\xbb\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x100\x00\x00\x00\x00\x00\x01\x00\x05\xf1]\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0cj\x00\x00\x00\x00\x00\x01\x00\x04\x97\xa2\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0a\xb0\x00\x01\x00\x00\x00\x01\x00\x03\xe9C\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\x84\x00\x00\x00\x00\x00\x01\x00\x06W.\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x02\xfev\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x13\xd6\x00\x01\x00\x00\x00\x01\x00\x07-\x9d\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x03\xa0\x00\x00\x00\x00\x00\x01\x00\x01o\x88\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x22\x00\x00\x00\x00\x00\x01\x00\x06\xdf\x9b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04|\x00\x01\x00\x00\x00\x01\x00\x01\xc2T\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0c\xa4\x00\x00\x00\x00\x00\x01\x00\x04\xd0)\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09v\x00\x01\x00\x00\x00\x01\x00\x03\x80\x9e\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x000\x1c\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x11D\x00\x01\x00\x00\x00\x01\x00\x06E\xaf\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x05`\x00\x00\x00\x00\x00\x01\x00\x02\x22\x82\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0an\x00\x00\x00\x00\x00\x01\x00\x03\xd4Q\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10h\x00\x00\x00\x00\x00\x01\x00\x06\x01k\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\xd8\x00\x00\x00\x00\x00\x01\x00\x06t\xf5\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xf8\x00\x00\x00\x00\x00\x01\x00\x02U\xa8\ +\x00\x00\x01\x8d\x0d\x8c\x812\ +\x00\x00\x09\x9e\x00\x00\x00\x00\x00\x01\x00\x03\x8d\x01\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x02K\x12\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x9e!\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0c\x1c\x00\x01\x00\x00\x00\x01\x00\x04\x82\x8b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08(\x00\x00\x00\x00\x00\x01\x00\x03\x05\xb7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07r\x00\x00\x00\x00\x00\x01\x00\x02\xcan\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x01\xc7\xbe\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0d\xfc\x00\x00\x00\x00\x00\x01\x00\x055q\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x04\xe4\xf3\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xcb\x07\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xaa\x00\x01\x00\x00\x00\x01\x00\x00\xc6\x1d\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x10\x02\x00\x01\x00\x00\x00\x01\x00\x05\xeaE\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\xba\x00\x00\x00\x00\x00\x01\x00\x05\xc9\xf2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00q\x06\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x028\x00\x01\x00\x00\x00\x01\x00\x00\xea\xc3\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x01\xe0D\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0e\xba\x00\x00\x00\x00\x00\x01\x00\x05l\x19\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x10F\x00\x01\x00\x00\x00\x01\x00\x05\xf8\x99\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x03h\x00\x01\x00\x00\x00\x01\x00\x01c\x9e\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\x84\x00\x01\x00\x00\x00\x01\x00\x05\xbd}\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07(\x00\x00\x00\x00\x00\x01\x00\x02\xb1\x9f\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0d\xc4\x00\x00\x00\x00\x00\x01\x00\x05\x1f\xe6\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0d\xe0\x00\x00\x00\x00\x00\x01\x00\x05*\xfd\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x10\xfe\x00\x00\x00\x00\x00\x01\x00\x064\xe5\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\x0e\x00\x00\x00\x00\x00\x01\x00\x04\x09\xb4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0dp\x00\x00\x00\x00\x00\x01\x00\x05\x08\xe9\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x02l\x00\x00\x00\x00\x00\x01\x00\x01\x00R\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02D\x22\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x10\xe8\x00\x00\x00\x00\x00\x01\x00\x06-\x9a\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x01\xa9J\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\x14\x00\x01\x00\x00\x00\x01\x00\x06=_\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\xae\x00\x00\x00\x00\x00\x01\x00\x04E,\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0aN\x00\x01\x00\x00\x00\x01\x00\x03\xbe\x9d\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x08\x5c\x00\x00\x00\x00\x00\x01\x00\x03\x141\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\x80\x94\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\x86\x00\x01\x00\x00\x00\x01\x00\x01j^\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0b\xd0\x00\x00\x00\x00\x00\x01\x00\x04a+\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x0d(\x00\x00\x00\x00\x00\x01\x00\x04\xf7Y\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0b\x8a\x00\x00\x00\x00\x00\x01\x00\x047\xed\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0e\x8a\x00\x01\x00\x00\x00\x01\x00\x05`Y\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01>\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x97\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x5c\x00\x01\x00\x00\x00\x01\x00\x06\xf6\x14\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x02gq\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08\xc2\x00\x00\x00\x00\x00\x01\x00\x036\xaa\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\xf0\x00\x00\x00\x00\x00\x01\x00\x04jo\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09@\x00\x00\x00\x00\x00\x01\x00\x03m\x0b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06l\x00\x00\x00\x00\x00\x01\x00\x02\x7f\x01\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\xb6\x00\x00\x00\x00\x00\x01\x00\x06\xbd\x15\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ " def qInitResources(): diff --git a/src/GridCalEngine/Compilers/circuit_to_bentayga.py b/src/GridCalEngine/Compilers/circuit_to_bentayga.py index 6403fffef..7fd509d07 100644 --- a/src/GridCalEngine/Compilers/circuit_to_bentayga.py +++ b/src/GridCalEngine/Compilers/circuit_to_bentayga.py @@ -17,7 +17,7 @@ import os.path import numpy as np -from GridCalEngine.enumerations import SolverType, ReactivePowerControlMode, HvdcControlType +from GridCalEngine.enumerations import SolverType, HvdcControlType from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -618,7 +618,7 @@ def get_snapshots_from_bentayga(circuit: MultiCircuit): data.k_qf_m = btg_data.control_indices.k_qf_m data.k_zero_beq = btg_data.control_indices.k_zero_beq data.k_vf_beq = btg_data.control_indices.k_vf_beq - data.k_vt_m = btg_data.control_indices.k_vt_m + data.k_vt_m = btg_data.control_indices.k_v_m data.k_qt_m = btg_data.control_indices.k_qt_m data.k_pf_dp = btg_data.control_indices.k_pf_dp data.i_vsc = btg_data.control_indices.i_vsc @@ -645,8 +645,8 @@ def get_bentayga_pf_options(opt: PowerFlowOptions): SolverType.FASTDECOUPLED: btg.PowerFlowSolvers.FastDecoupled } - q_control_dict = {ReactivePowerControlMode.NoControl: btg.QControlMode.NoControl, - ReactivePowerControlMode.Direct: btg.QControlMode.Direct} + q_control_dict = {False: btg.QControlMode.NoControl, + True: btg.QControlMode.Direct} solver_type = solver_dict.get(opt.solver_type, btg.PowerFlowSolvers.NewtonRaphson) diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index e1628f7e8..07d0ea496 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -21,7 +21,7 @@ from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.enumerations import (BusMode, BranchImpedanceMode, ExternalGridMode, ConverterControlType, - TransformerControlType, HvdcControlType) + TapPhaseControl, TapModuleControl, HvdcControlType) from GridCalEngine.basic_structures import BoolVec import GridCalEngine.DataStructures as ds @@ -77,6 +77,18 @@ def set_bus_control_voltage(i: int, expected_value=bus_data.Vbus[i]) +def set_branch_control_mode(k: int, i: int, f: int, t: int, + mode: Union[TransformerControlType, ConverterControlType], + bus_data: ds.BusData, bus_voltage_used: BoolVec,): + + if mode == TransformerControlType.V: + bus_data.bus_types[i] = BusMode.PQV_tpe.value # remote bus to PQV type + elif mode == TransformerControlType.PtV: + pass + if mode == ConverterControlType.type_I_1: # VAC + pass + + def get_bus_data(circuit: MultiCircuit, areas_dict: Dict[Area, int], t_idx: int = -1, @@ -911,10 +923,7 @@ def get_branch_data(circuit: MultiCircuit, data.monitor_loading[ii] = int(elm.monitor_loading) if not use_stored_guess: - if elm.control_mode == TransformerControlType.V: - bus_data.Vbus[t] = elm.vset - - elif elm.control_mode == TransformerControlType.PtV: # 2a:Vdc + if elm.tap_module_control_mode == TapModuleControl.Vm: bus_data.Vbus[t] = elm.vset ii += 1 @@ -996,10 +1005,7 @@ def get_branch_data(circuit: MultiCircuit, data.monitor_loading[ii] = int(elm.monitor_loading) if not use_stored_guess: - if elm.control_mode == TransformerControlType.V: - bus_data.Vbus[t] = elm.vset - - elif elm.control_mode == TransformerControlType.PtV: # 2a:Vdc + if elm.tap_module_control_mode == TapModuleControl.Vm: bus_data.Vbus[t] = elm.vset ii += 1 diff --git a/src/GridCalEngine/Compilers/circuit_to_newton_pa.py b/src/GridCalEngine/Compilers/circuit_to_newton_pa.py index efd9e224e..d8be912de 100644 --- a/src/GridCalEngine/Compilers/circuit_to_newton_pa.py +++ b/src/GridCalEngine/Compilers/circuit_to_newton_pa.py @@ -22,7 +22,7 @@ from GridCalEngine.basic_structures import IntVec, Vec from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.enumerations import (TransformerControlType, HvdcControlType, SolverType, TimeGrouping, - ReactivePowerControlMode, ZonalGrouping, MIPSolvers, ContingencyMethod) + ZonalGrouping, MIPSolvers, ContingencyMethod) import GridCalEngine.Devices as dev from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults @@ -715,7 +715,8 @@ def add_transformer_data(circuit: MultiCircuit, if override_controls: tr2.setAllControlMode(npa.BranchControlModes.Fixed) else: - tr2.setAllControlMode(ctrl_dict[elm.control_mode]) # TODO: Warn about this + # tr2.setAllControlMode(ctrl_dict[elm.control_mode]) # TODO: implement this in Newton + pass tr2.phase_min = elm.tap_phase_min tr2.phase_max = elm.tap_phase_max @@ -1111,7 +1112,7 @@ def get_snapshots_from_newtonpa(circuit: MultiCircuit, override_branch_controls= data.k_qf_m = control_indices.k_qf_m data.k_zero_beq = control_indices.k_zero_beq data.k_vf_beq = control_indices.k_vf_beq - data.k_vt_m = control_indices.k_vt_m + data.k_vt_m = control_indices.k_v_m data.k_qt_m = control_indices.k_qt_m data.k_pf_dp = control_indices.k_pf_dp data.i_vsc = control_indices.i_vsc @@ -1138,8 +1139,8 @@ def get_newton_pa_pf_options(opt: PowerFlowOptions) -> "npa.PowerFlowOptions": SolverType.FASTDECOUPLED: npa.SolverType.FD } - q_control_dict = {ReactivePowerControlMode.NoControl: npa.ReactivePowerControlMode.NoControl, - ReactivePowerControlMode.Direct: npa.ReactivePowerControlMode.Direct} + q_control_dict = {False: npa.ReactivePowerControlMode.NoControl, + True: npa.ReactivePowerControlMode.Direct} if opt.solver_type in solver_dict.keys(): solver_type = solver_dict[opt.solver_type] @@ -1195,8 +1196,8 @@ def get_newton_pa_nonlinear_opf_options(pf_opt: PowerFlowOptions, :param opf_opt: OptimalPowerFlowOptions instance :return: NonlinearOpfOptions """ - q_control_dict = {ReactivePowerControlMode.NoControl: npa.ReactivePowerControlMode.NoControl, - ReactivePowerControlMode.Direct: npa.ReactivePowerControlMode.Direct} + q_control_dict = {False: npa.ReactivePowerControlMode.NoControl, + True: npa.ReactivePowerControlMode.Direct} solver_dict = {MIPSolvers.CBC: npa.LpSolvers.Highs, MIPSolvers.HIGHS: npa.LpSolvers.Highs, @@ -1279,10 +1280,12 @@ def newton_pa_pf(circuit: MultiCircuit, :param opf_results: Instance of :return: Newton Power flow results object """ + override_branch_controls = not (pf_opt.control_taps_modules and pf_opt.control_taps_phase) + npa_circuit, _ = to_newton_pa(circuit, use_time_series=time_series, time_indices=None, - override_branch_controls=pf_opt.override_branch_controls, + override_branch_controls=override_branch_controls, opf_results=opf_results) pf_options = get_newton_pa_pf_options(pf_opt) @@ -1319,10 +1322,13 @@ def newton_pa_contingencies(circuit: MultiCircuit, :param time_indices: Array of time indices :return: Newton Power flow results object """ + + override_branch_controls = not (con_opt.pf_options.control_taps_modules and con_opt.pf_options.control_taps_phase) + npa_circuit, _ = to_newton_pa(circuit, use_time_series=time_series, time_indices=None, - override_branch_controls=con_opt.pf_options.override_branch_controls) + override_branch_controls=override_branch_controls) pf_options = get_newton_pa_pf_options(con_opt.pf_options) lin_opt = get_newton_pa_linear_options(con_opt.lin_options) diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 8b3198ac5..7251a6a8b 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -105,6 +105,8 @@ def __init__(self, nelm: int, nbus: int): self.alpha2: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha2) self.alpha3: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha3) self.control_mode: ObjVec = np.zeros(self.nelm, dtype=object) + self.tap_module_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) + self.tap_phase_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) self.contingency_enabled: IntVec = np.ones(self.nelm, dtype=int) self.monitor_loading: IntVec = np.ones(self.nelm, dtype=int) @@ -170,6 +172,9 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.conn = self.conn[elm_idx] # winding connection data.control_mode = self.control_mode[elm_idx] + data.tap_phase_control_mode = self.tap_phase_control_mode[elm_idx] + data.tap_module_control_mode = self.tap_module_control_mode[elm_idx] + data.contingency_enabled = self.contingency_enabled[elm_idx] data.monitor_loading = self.monitor_loading[elm_idx] @@ -256,6 +261,9 @@ def copy(self) -> "BranchData": data.conn = self.conn.copy() # winding connection data.control_mode = self.control_mode.copy() + data.tap_phase_control_mode = self.tap_phase_control_mode.copy() + data.tap_module_control_mode = self.tap_module_control_mode.copy() + data.contingency_enabled = self.contingency_enabled.copy() data.monitor_loading = self.monitor_loading.copy() diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index f7b738144..95a6ca856 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -174,7 +174,7 @@ class NumericalCircuit: 'k_qf_m', 'k_zero_beq', 'k_vf_beq', - 'k_vt_m', + 'k_v_m', 'k_qt_m', 'k_pf_dp', 'i_vsc', @@ -1190,15 +1190,15 @@ def k_vf_beq(self): return self.simulation_indices_.k_vf_beq @property - def k_vt_m(self): + def k_v_m(self): """ - Get k_vt_m + Get k_v_m :return: """ if self.simulation_indices_ is None: self.simulation_indices_ = self.get_simulation_indices() - return self.simulation_indices_.k_vt_m + return self.simulation_indices_.k_v_m @property def k_qt_m(self): @@ -1627,7 +1627,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] idx_dvm = np.r_[self.pq, self.p] - idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m] + idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_v_m] idx_dtau = np.r_[self.k_pf_tau, self.k_pf_dp] # idx_dbeq = np.r_[self.k_zero_beq, self.k_vf_beq] idx_dbeq = np.r_[self.k_zero_beq] @@ -1789,11 +1789,11 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: index=self.branch_data.names[self.k_vf_beq], ) - elif structure_type == 'k_vt_m': + elif structure_type == 'k_v_m': df = pd.DataFrame( - data=self.k_vt_m, - columns=['k_vt_m'], - index=self.branch_data.names[self.k_vt_m], + data=self.k_v_m, + columns=['k_v_m'], + index=self.branch_data.names[self.k_v_m], ) elif structure_type == 'k_qt_m': diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index d2df5d23e..0c0d07f6d 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -22,7 +22,7 @@ from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode from GridCalEngine.enumerations import (TransformerControlType, WindingsConnection, BuildStatus, - TapAngleControl, TapModuleControl, TapChangerTypes) + TapPhaseControl, TapModuleControl, TapChangerTypes) from GridCalEngine.Devices.Parents.controllable_branch_parent import ControllableBranchParent from GridCalEngine.Devices.Branches.transformer_type import TransformerType, reverse_transformer_short_circuit_study from GridCalEngine.Devices.Parents.editable_device import DeviceType @@ -66,9 +66,9 @@ def __init__(self, temp_base: float = 20.0, temp_oper: float = 20.0, alpha: float = 0.00330, - control_mode: TransformerControlType = TransformerControlType.fixed, # legacy? + control_mode: TransformerControlType = TransformerControlType.fixed, # legacy? tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, - tap_angle_control_mode: TapAngleControl = TapAngleControl.fixed, + tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, template: TransformerType = None, contingency_factor: float = 1.0, protection_rating_factor: float = 1.4, @@ -179,7 +179,7 @@ def __init__(self, alpha=alpha, control_mode=control_mode, tap_module_control_mode=tap_module_control_mode, - tap_angle_control_mode=tap_angle_control_mode, + tap_phase_control_mode=tap_phase_control_mode, contingency_factor=contingency_factor, protection_rating_factor=protection_rating_factor, contingency_enabled=contingency_enabled, diff --git a/src/GridCalEngine/Devices/Branches/winding.py b/src/GridCalEngine/Devices/Branches/winding.py index 8fa91a263..3d4379dc9 100644 --- a/src/GridCalEngine/Devices/Branches/winding.py +++ b/src/GridCalEngine/Devices/Branches/winding.py @@ -19,7 +19,7 @@ from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode from GridCalEngine.enumerations import (TransformerControlType, WindingsConnection, BuildStatus, - TapAngleControl, TapModuleControl) + TapPhaseControl, TapModuleControl) from GridCalEngine.Devices.Branches.transformer_type import TransformerType from GridCalEngine.Devices.Branches.transformer import Transformer2W from GridCalEngine.Devices.Parents.editable_device import DeviceType @@ -65,7 +65,7 @@ def __init__(self, alpha: float = 0.00330, control_mode: TransformerControlType = TransformerControlType.fixed, tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, - tap_angle_control_mode: TapAngleControl = TapAngleControl.fixed, + tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, template: TransformerType = None, contingency_factor: float = 1.0, protection_rating_factor: float = 1.4, @@ -174,7 +174,7 @@ def __init__(self, alpha=alpha, control_mode=control_mode, tap_module_control_mode=tap_module_control_mode, - tap_angle_control_mode=tap_angle_control_mode, + tap_phase_control_mode=tap_phase_control_mode, contingency_factor=contingency_factor, protection_rating_factor=protection_rating_factor, contingency_enabled=contingency_enabled, diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index a0f138865..8be471882 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -19,7 +19,7 @@ from typing import Union from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import (TransformerControlType, BuildStatus, TapModuleControl, TapAngleControl, +from GridCalEngine.enumerations import (TransformerControlType, BuildStatus, TapModuleControl, TapPhaseControl, SubObjectType, TapChangerTypes) from GridCalEngine.Devices.Parents.branch_parent import BranchParent from GridCalEngine.Devices.Branches.tap_changer import TapChanger @@ -60,7 +60,7 @@ def __init__(self, alpha: float, control_mode: TransformerControlType, tap_module_control_mode: TapModuleControl, - tap_angle_control_mode: TapAngleControl, + tap_phase_control_mode: TapPhaseControl, contingency_factor: float, protection_rating_factor: float, contingency_enabled: bool, @@ -213,7 +213,7 @@ def __init__(self, self.control_mode: TransformerControlType = control_mode # Legacy self.tap_module_control_mode: TapModuleControl = tap_module_control_mode - self.tap_angle_control_mode: TapAngleControl = tap_angle_control_mode + self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode self.regulation_branch: BranchParent = regulation_branch @@ -256,8 +256,8 @@ def __init__(self, self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, definition='Control available with the tap module') - self.register(key='tap_angle_control_mode', units='', tpe=TapAngleControl, - definition='Control available with the tap angle') + self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, + definition='Control available with the tap angle', old_names=['tap_angle_control_mode']) self.register(key='vset', units='p.u.', tpe=float, definition='Objective voltage at the "to" side of the bus when regulating the tap.') diff --git a/src/GridCalEngine/Devices/Parents/editable_device.py b/src/GridCalEngine/Devices/Parents/editable_device.py index fb8c58ac7..c13339117 100644 --- a/src/GridCalEngine/Devices/Parents/editable_device.py +++ b/src/GridCalEngine/Devices/Parents/editable_device.py @@ -20,11 +20,11 @@ from GridCalEngine.Devices.profile import Profile from typing import List, Dict, AnyStr, Any, Optional, Union, Type, Tuple from GridCalEngine.enumerations import (DeviceType, TimeFrame, BuildStatus, WindingsConnection, TransformerControlType, - ConverterControlType, TapModuleControl, TapAngleControl, SubObjectType, + ConverterControlType, TapModuleControl, TapPhaseControl, SubObjectType, HvdcControlType, ActionType, AvailableTransferMode, ContingencyMethod, CpfParametrization, CpfStopAt, InvestmentEvaluationMethod, SolverType, InvestmentsEvaluationObjectives, NodalCapacityMethod, TimeGrouping, - ZonalGrouping, MIPSolvers, AcOpfMode, ReactivePowerControlMode, + ZonalGrouping, MIPSolvers, AcOpfMode, BranchImpedanceMode, FaultType) # types that can be assigned to a GridCal property @@ -41,7 +41,7 @@ Type[TransformerControlType], Type[ConverterControlType], Type[TapModuleControl], - Type[TapAngleControl], + Type[TapPhaseControl], Type[ActionType], Type[AvailableTransferMode], Type[ContingencyMethod], @@ -55,7 +55,6 @@ Type[ZonalGrouping], Type[MIPSolvers], Type[AcOpfMode], - Type[ReactivePowerControlMode], Type[BranchImpedanceMode], Type[FaultType] ] diff --git a/src/GridCalEngine/IO/gridcal/json_parser.py b/src/GridCalEngine/IO/gridcal/json_parser.py index c798ffad1..9a9a87d9b 100644 --- a/src/GridCalEngine/IO/gridcal/json_parser.py +++ b/src/GridCalEngine/IO/gridcal/json_parser.py @@ -27,7 +27,7 @@ from GridCalEngine.Devices.profile import Profile from GridCalEngine.Devices.Parents.editable_device import EditableDevice from GridCalEngine.enumerations import (DeviceType, ConverterControlType, HvdcControlType, BuildStatus, - TransformerControlType) + TransformerControlType, TapModuleControl, TapPhaseControl) def add_to_dict(main_dict: Dict[str, List[Any]], data_to_append: Dict[Any, Any], key: str): @@ -1765,12 +1765,15 @@ def save_json_file_v3(file_path: str, circuit: MultiCircuit, simulation_drivers: circuit.get_dc_lines()] # Transformer 2W - control_modes = {TransformerControlType.fixed: 0, - TransformerControlType.V: 1, - TransformerControlType.Pf: 2, - TransformerControlType.PtV: 3, - TransformerControlType.Qt: 4, - TransformerControlType.PtQt: 5} + control_modes = {TapModuleControl.fixed: None, + TapModuleControl.Vm: "Vm", + TapModuleControl.Qf: "Qf", + TapModuleControl.Qt: "Qt", + TapPhaseControl.fixed: None, + TapPhaseControl.Pf: "Pf", + TapPhaseControl.Pt: "Pt", + } + elements["Transformer2w"] = [{'id': elm.idtag, 'type': 'transformer', 'phases': 'ps', @@ -1804,7 +1807,8 @@ def save_json_file_v3(file_path: str, circuit: MultiCircuit, simulation_drivers: 'max_tap_angle': elm.tap_phase_max, 'id_tap_angle_table': "", - 'control_mode': control_modes[elm.control_mode], + 'tap_phase_control_mode': control_modes[elm.tap_phase_control_mode], + 'tap_module_control_mode': control_modes[elm.tap_module_control_mode], # 'min_tap_position': self.tap_changer.min_tap, # 'max_tap_position': self.tap_changer.max_tap, @@ -1867,7 +1871,8 @@ def save_json_file_v3(file_path: str, circuit: MultiCircuit, simulation_drivers: 'max_tap_angle': elm.tap_phase_max, 'id_tap_angle_table': "", - 'control_mode': control_modes[elm.control_mode], + 'tap_phase_control_mode': control_modes[elm.tap_phase_control_mode], + 'tap_module_control_mode': control_modes[elm.tap_module_control_mode], # 'min_tap_position': self.tap_changer.min_tap, # 'max_tap_position': self.tap_changer.max_tap, diff --git a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py index 1555dcc13..78f6da2ab 100644 --- a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +++ b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py @@ -17,7 +17,7 @@ import numpy as np -from GridCalEngine.enumerations import ReactivePowerControlMode, CpfParametrization, CpfStopAt +from GridCalEngine.enumerations import CpfParametrization, CpfStopAt from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_direct from GridCalEngine.Topology.simulation_indices import compile_types @@ -540,7 +540,7 @@ def continuation_nr(Ybus, Cf, Ct, Yf, Yt, branch_rates, Sbase, Sbus_base, Sbus_t vd: IntVec, pv: IntVec, pq: IntVec, pqv: IntVec, p: IntVec, step: float, approximation_order: CpfParametrization, adapt_step, step_min, step_max, error_tol=1e-3, tol=1e-6, max_it=20, - stop_at=CpfStopAt.Nose, control_q=ReactivePowerControlMode.NoControl, + stop_at=CpfStopAt.Nose, control_q=False, qmax_bus=None, qmin_bus=None, original_bus_types=None, base_overload_number=0, verbose=False, call_back_fx=None) -> CpfNumericResults: """ @@ -718,7 +718,7 @@ def continuation_nr(Ybus, Cf, Ct, Yf, Yt, branch_rates, Sbase, Sbus_base, Sbus_t print(V) # Check controls - if control_q == ReactivePowerControlMode.Direct: + if control_q == True: Vm = np.abs(V) (V, diff --git a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py index 835176229..4ce78758d 100644 --- a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py +++ b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py @@ -26,7 +26,7 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_worker import multi_island_pf_nc from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions -from GridCalEngine.enumerations import ReactivePowerControlMode, AcOpfMode +from GridCalEngine.enumerations import AcOpfMode from typing import Union from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf_derivatives import (x2var, var2x, eval_f, @@ -671,7 +671,7 @@ def ac_optimal_power_flow(nc: NumericalCircuit, # Number of inequalities: Line ratings, max and min angle of buses, voltage module range and - if pf_options.control_Q == ReactivePowerControlMode.NoControl: + if pf_options.control_Q == False: NI = 2 * n_br_mon + 2 * npq + 4 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl # No Reactive constraint (power curve) else: NI = 2 * n_br_mon + 2 * npq + 5 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl diff --git a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py index df3ce7ae1..fe1097ea7 100644 --- a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py +++ b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py @@ -24,7 +24,7 @@ from GridCalEngine.Utils.Sparse.csc import diags from typing import Tuple, Union from GridCalEngine.basic_structures import Vec, CxVec, IntVec, csr_matrix, csc_matrix -from GridCalEngine.enumerations import ReactivePowerControlMode, AcOpfMode +from GridCalEngine.enumerations import AcOpfMode def x2var(x: Vec, @@ -520,7 +520,7 @@ def eval_g(x: Vec, Ybus: csc_matrix, Yf: csc_matrix, Cg: csc_matrix, Sd: CxVec, def eval_h(x: Vec, Yf: csc_matrix, Yt: csc_matrix, from_idx: Vec, to_idx: Vec, nslcap:int, pq: Vec, k_m: Vec, k_tau: Vec, Vm_max: Vec, Vm_min: Vec, Pg_max: Vec, Pg_min: Vec, Qg_max: Vec, Qg_min: Vec, tapm_max: Vec, tapm_min: Vec, tapt_max: Vec, tapt_min: Vec, Pdcmax: Vec, rates: Vec, il: Vec, ig: Vec, - tanmax: Vec, ctQ: ReactivePowerControlMode, acopf_mode: AcOpfMode) -> Tuple[Vec, CxVec, CxVec]: + tanmax: Vec, ctQ: bool, acopf_mode: AcOpfMode) -> Tuple[Vec, CxVec, CxVec]: """ Calculates the inequality constraints at the current state (given by x) :param x: State vector @@ -610,7 +610,7 @@ def eval_h(x: Vec, Yf: csc_matrix, Yt: csc_matrix, from_idx: Vec, to_idx: Vec, n tapt_min - tapt # Tap phase lower bound ] - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # if reactive power control... hval = np.r_[hval, np.power(Qg, 2.0) - np.power(tanmax, 2.0) * np.power(Pg, 2.0)] if ndc != 0: @@ -624,7 +624,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc slack: Vec, nslcap: int, nodal_capacity_sign: float, capacity_nodes_idx: IntVec, pq: Vec, pv: Vec, tanmax: Vec, alltapm: Vec, alltapt: Vec, fdc: Vec, tdc: Vec, k_m: Vec, k_tau: Vec, mu, lmbda, R: Vec, X: Vec, F: Vec, T: Vec, - ctQ: ReactivePowerControlMode, acopf_mode: AcOpfMode, compute_jac: bool, + ctQ: bool, acopf_mode: AcOpfMode, compute_jac: bool, compute_hess: bool) -> Tuple[Vec, csc, csc, csc, csc, csc, Vec]: """ @@ -674,7 +674,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc ndc = len(fdc) npq = len(pq) - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # if reactive power control... nqct = Ng else: nqct = 0 @@ -966,7 +966,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc HSf = 2 * (Sfmat.real @ SfX.real + Sfmat.imag @ SfX.imag) HSt = 2 * (Stmat.real @ StX.real + Stmat.imag @ StX.imag) - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # if reactive power control... # tanmax curves (simplified capability curves of generators) Hqmaxp = - 2 * np.power(tanmax, 2) * Pg Hqmaxq = 2 * Qg @@ -1160,7 +1160,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc Sfvavm = Sfvmva.T Sfvmvm = vm_inv @ Ff @ vm_inv - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # using reactive power control Hqpgpg = diags(-2 * np.power(tanmax, 2) * mu[-Ng:]) Hqqgqg = diags(np.array([2] * Ng) * mu[-Ng:]) else: diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py index 1ade21602..775087651 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py @@ -5,14 +5,13 @@ import time import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method np.set_printoptions(linewidth=320) def FDPF(Vbus, S0, I0, Y0, Ybus, B1, B2, pv_, pq_, pqv_, p_, Qmin, Qmax, tol=1e-9, max_it=100, - control_q=ReactivePowerControlMode.NoControl, ) -> NumericPowerFlowResults: + control_q=False) -> NumericPowerFlowResults: """ Fast decoupled power flow :param Vbus: array of initial voltages @@ -118,7 +117,7 @@ def FDPF(Vbus, S0, I0, Y0, Ybus, B1, B2, pv_, pq_, pqv_, p_, Qmin, Qmax, tol=1e- # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and normQ < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and normQ < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py index 1143ffe2a..67ea2b291 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py @@ -24,7 +24,7 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_worker import multi_island_pf_nc from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions -from GridCalEngine.enumerations import ReactivePowerControlMode, AcOpfMode +from GridCalEngine.enumerations import AcOpfMode from typing import Union from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf_derivatives import (x2var, var2x, eval_f, @@ -577,7 +577,7 @@ def ac_optimal_power_flow(nc: NumericalCircuit, # Number of inequalities: Line ratings, max and min angle of buses, voltage module range and - if pf_options.control_Q == ReactivePowerControlMode.NoControl: + if not pf_options.control_Q: NI = 2 * n_br_mon + 2 * npq + 4 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl # No Reactive constraint (power curve) else: NI = 2 * n_br_mon + 2 * npq + 5 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py index 960bb1535..f587741eb 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py @@ -23,7 +23,6 @@ from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc, CSC import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger @@ -70,8 +69,7 @@ def mu(Ybus, J: CSC, incS: Vec, dV: CxVec, dx: Vec, block1_idx: IntVec, block2_i def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, - control_q=ReactivePowerControlMode.NoControl, robust=False, - logger: Logger = None) -> NumericPowerFlowResults: + control_q=False, robust=False, logger: Logger = None) -> NumericPowerFlowResults: """ Solves the power flow using a full Newton's method with the Iwamoto optimal step factor. :param Ybus: Admittance matrix @@ -87,8 +85,9 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= :param Qmax: Array of nodal maximum reactive power injections :param tol: Tolerance :param max_it: Maximum number of iterations - :param control_q: ReactivePowerControlMode + :param control_q: Control reactive power? :param robust: use of the Iwamoto optimal step factor?. + :param logger: Logger :return: Voltage solution, converged?, error, calculated power Injections """ start = time.time() @@ -189,7 +188,7 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and norm_f < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and norm_f < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py index e0dd5f726..afefd54d0 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py @@ -23,7 +23,6 @@ from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.basic_structures import Logger import GridCalEngine.Utils.Sparse.csc2 as csc @@ -35,8 +34,7 @@ def levenberg_marquardt_pf(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=50, - control_q=ReactivePowerControlMode.NoControl, - verbose=False, logger: Logger = None) -> NumericPowerFlowResults: + control_q=False, verbose=False, logger: Logger = None) -> NumericPowerFlowResults: """ Solves the power flow problem by the Levenberg-Marquardt power flow algorithm. It is usually better than Newton-Raphson, but it takes an order of magnitude more time to converge. @@ -190,7 +188,7 @@ def levenberg_marquardt_pf(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and normF < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and normF < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 8f497a556..eb82b714f 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -101,7 +101,7 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, k_qt_m=nc.k_qt_m, - k_vt_m=nc.k_vt_m, + k_vt_m=nc.k_v_m, k_pf_tau=nc.k_pf_tau, k_pf_dp=nc.k_pf_dp) # ------------------------------------------------------------------------- @@ -170,7 +170,7 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # evaluate Jacobian if update_jacobian: - H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, + H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_v_m, nc.k_zero_beq, nc.k_vf_beq, nc.i_vf_beq, nc.i_vt_m, F, T, Ys, k2, tap, m, Bc, Beq, Kdp, V, Ybus, Yf, Yt, Cf, Ct, pvpq, pq) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index 9af73b0b6..d4ff5beb0 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -22,7 +22,6 @@ from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.basic_structures import Logger from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc @@ -33,7 +32,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, mu_0=1.0, - acceleration_parameter=0.05, control_q=ReactivePowerControlMode.NoControl, + acceleration_parameter=0.05, control_q=False, verbose=False, logger: Logger = None) -> NumericPowerFlowResults: """ Solves the power flow using a full Newton's method with backtracking correction. @@ -192,7 +191,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and norm_f < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and norm_f < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 56dce5af7..23581fc42 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -28,8 +28,6 @@ compute_converter_losses, compute_power, compute_zip_power) from GridCalEngine.basic_structures import CxVec -from GridCalEngine.enumerations import ReactivePowerControlMode -# import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc @@ -43,7 +41,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, mu_0=1.0, acceleration_parameter=0.05, verbose=False, - control_q=ReactivePowerControlMode.NoControl) -> NumericPowerFlowResults: + control_q=False) -> NumericPowerFlowResults: """ Newton-Raphson Line search with the FUBM formulation :param nc: NumericalCircuit @@ -108,7 +106,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, idx_dtheta = np.r_[pv, pq, p, pqv] idx_dvm = np.r_[pq, p] - idx_dm = np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m] + idx_dm = np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_v_m] idx_dtau = np.r_[nc.k_pf_tau, nc.k_pf_dp] idx_dbeq = np.r_[nc.k_zero_beq, nc.k_vf_beq] idx_dP = np.r_[pv, pq, p, pqv] @@ -126,7 +124,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, k_qt_m=nc.k_qt_m, - k_vt_m=nc.k_vt_m, + k_vt_m=nc.k_v_m, k_pf_tau=nc.k_pf_tau, k_pf_dp=nc.k_pf_dp) @@ -357,7 +355,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and (len(pv) + len(pqv)) > 0: + if control_q and (len(pv) + len(pqv)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, @@ -378,7 +376,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, k_qt_m=nc.k_qt_m, - k_vt_m=nc.k_vt_m, + k_vt_m=nc.k_v_m, k_pf_tau=nc.k_pf_tau, k_pf_dp=nc.k_pf_dp) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py index 7177a94a4..81cc20f42 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py @@ -24,7 +24,6 @@ from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_power, compute_zip_power) from GridCalEngine.Utils.NumericalMethods.common import (ConvexMethodResult, ConvexFunctionResult) from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson -from GridCalEngine.enumerations import ReactivePowerControlMode from scipy.sparse import csr_matrix, csc_matrix from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec, Logger @@ -39,7 +38,7 @@ def NR_LS_GENERAL(nc: NumericalCircuit, mu_0=1.0, acceleration_parameter=0.05, verbose=False, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, pf_options=None) -> NumericPowerFlowResults: """ Newton-Raphson Line search with the FUBM formulation diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index acc911620..5b9de58d4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -21,14 +21,13 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit -from GridCalEngine.enumerations import ReactivePowerControlMode import GridCalEngine.Simulations.derivatives.csc_derivatives as deriv -from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, spsolve_csc +from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, - compute_fx, polar_to_rect) + polar_to_rect) from GridCalEngine.basic_structures import Vec, IntVec, CxVec @@ -123,19 +122,38 @@ def adv_jacobian(nbus: int, # compose the Jacobian J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, - dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, - dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, - dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_], + [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, + dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, + dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, + dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_], n_rows=4, n_cols=5) return J +@njit() +def get_Sf(k: IntVec, Vm: Vec, V: CxVec, yff: CxVec, yft: CxVec, F: IntVec, T: IntVec): + """ + + :param k: + :param Vm: + :param V: + :param yff: + :param yft: + :param F: + :param T: + :return: + """ + f = F[k] + t = T[k] + return np.power(Vm[f], 2.0) * np.conj(yff[k]) + V[f] * np.conj(V[t]) * np.conj(yft[k]) + + class PfAdvancedFormulation(PfFormulationTemplate): - def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, - pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, k_pf_tau: IntVec, k_v_m: IntVec, k_beq_zero: IntVec, + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, # Pset: Vec, + pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, + # k_pf_tau: IntVec, k_v_m: IntVec, k_qf_beq: IntVec, nc: NumericalCircuit, options: PowerFlowOptions): """ @@ -151,7 +169,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: :param p: :param k_pf_tau: :param k_v_m: - :param k_beq_zero: + :param k_qf_beq: :param nc: :param options: """ @@ -166,21 +184,23 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Qmin = Qmin self.Qmax = Qmax - self.k_pf_tau: IntVec = k_pf_tau - self.k_v_m: IntVec = k_v_m - self.k_beq_zero: IntVec = k_beq_zero + self.Pset = nc.branch_data.Pfset[nc.k_pf_tau] + + self.k_pf_tau: IntVec = nc.k_pf_tau + self.k_v_m: IntVec = nc.k_v_m + self.k_qf_beq: IntVec = nc.k_zero_beq - self.idx_dQf = self.k_beq_zero - self.idx_dbeq = self.k_beq_zero + self.idx_dQf = self.k_qf_beq + self.idx_dbeq = self.k_qf_beq self.idx_dPf = self.k_pf_tau self.idx_dtau = self.k_pf_tau self.idx_dm = self.k_v_m - self.m: Vec = np.zeros(len(pqv)) - self.tau: Vec = np.zeros(len(k_pf_tau)) - self.beq: Vec = np.zeros(len(k_beq_zero)) + self.m: Vec = np.zeros(len(self.pqv)) + self.tau: Vec = np.zeros(len(self.k_pf_tau)) + self.beq: Vec = np.zeros(len(self.k_qf_beq)) - if not len(self.k_v_m) == len(self.pqv): + if not len(self.pqv) >= len(self.k_v_m): raise ValueError("k_v_m indices must be the same size as pqv indices!") if not np.all(self.idx_dtau == self.idx_dPf): @@ -203,7 +223,7 @@ def x2var(self, x: Vec): b = a + len(self.idx_dVm) c = b + len(self.k_pf_tau) d = c + len(self.k_v_m) - e = d + len(self.k_beq_zero) + e = d + len(self.k_qf_beq) # update the vectors self.Va[self.idx_dVa] = x[0:a] @@ -252,9 +272,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes if update_controls: - if (self.options.control_Q != ReactivePowerControlMode.NoControl and - self._error < 1e-2 - and (len(self.pv) + len(self.p)) > 0): + if self.options.control_Q and self._error < 1e-2 and (len(self.pv) + len(self.p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, @@ -287,12 +305,26 @@ def fx(self) -> Vec: # Assumes the internal vars were updated already with self.x2var() Sbus = compute_zip_power(self.S0, self.I0, self.Y0, self.Vm) self.Scalc = compute_power(self.adm.Ybus, self.V) - self._f = compute_fx(self.Scalc, Sbus, self.idx_dP, self.idx_dQ) + + dS = self.Scalc - Sbus # compute the mismatch + + Pf = get_Sf(k=self.k_pf_tau, Vm=self.Vm, V=self.V, + yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real + + Qf = get_Sf(k=self.k_qf_beq, Vm=self.Vm, V=self.V, + yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real + + self._f = np.r_[ + dS[self.idx_dP].real, + dS[self.idx_dQ].imag, + Pf - self.Pset, + Qf # Qf - 0 + ] return self._f def Jacobian(self) -> CSC: """ - + Get the Jacobian :return: """ # Assumes the internal vars were updated already with self.x2var() @@ -306,6 +338,14 @@ def Jacobian(self) -> CSC: raise ValueError("Incorrect J indices!") # NOTE: beq, m, and tau are not of size nbranch + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + m[self.k_v_m] = self.m + tau[self.k_pf_tau] = self.tau + beq[self.k_qf_beq] = self.beq + tap = polar_to_rect(m, tau) J = adv_jacobian(nbus=self.nc.nbus, idx_dtheta=self.idx_dVa, @@ -321,10 +361,10 @@ def Jacobian(self) -> CSC: T=self.nc.T, Ys=1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X), kconv=self.nc.branch_data.k, - complex_tap=polar_to_rect(self.m, self.tau), - tap_modules=self.m, + complex_tap=tap, + tap_modules=m, Bc=self.nc.branch_data.B, - Beq=self.beq, + Beq=beq, V=self.V, Vm=self.Vm, Ybus_x=self.adm.Ybus.data, @@ -342,13 +382,21 @@ def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResul :param iterations: Iteration number :return: NumericPowerFlowResults """ + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + m[self.k_v_m] = self.m + tau[self.k_pf_tau] = self.tau + beq[self.k_qf_beq] = self.beq + return NumericPowerFlowResults(V=self.V, converged=self.converged, norm_f=self.error, Scalc=self.Scalc, - m=None, - tau=None, - Beq=None, + m=m, + tau=tau, + Beq=beq, Ybus=self.adm.Ybus, Yf=self.adm.Yf, Yt=self.adm.Yt, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py index fff303feb..af3f240f1 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py @@ -19,7 +19,6 @@ from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.derivatives.ac_jacobian import create_J_vc_csc from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method @@ -111,9 +110,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes if update_controls: - if (self.options.control_Q != ReactivePowerControlMode.NoControl and - self._error < 1e-2 - and (len(self.pv) + len(self.p)) > 0): + if self.options.control_Q and self._error < 1e-2 and (len(self.pv) + len(self.p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py index 74dfd97b2..9a2bc10d4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from GridCalEngine.enumerations import BranchImpedanceMode, ReactivePowerControlMode, SolverType, TapsControlMode +from GridCalEngine.enumerations import BranchImpedanceMode, SolverType from GridCalEngine.Simulations.options_template import OptionsTemplate @@ -26,24 +26,23 @@ class PowerFlowOptions(OptionsTemplate): def __init__(self, solver_type: SolverType = SolverType.NR, - retry_with_other_methods=True, - verbose=0, - initialize_with_existing_solution=False, - tolerance=1e-6, - max_iter=25, - max_outer_loop_iter=100, - control_q=ReactivePowerControlMode.NoControl, - control_taps=TapsControlMode.NoControl, - apply_temperature_correction=False, + retry_with_other_methods: bool = True, + verbose: int = 0, + initialize_with_existing_solution: bool = False, + tolerance: float = 1e-6, + max_iter: int = 25, + max_outer_loop_iter: int = 100, + control_q: bool = False, + control_taps_modules: bool = False, + control_taps_phase: bool = False, + apply_temperature_correction: bool = False, branch_impedance_tolerance_mode=BranchImpedanceMode.Specified, - distributed_slack=False, - ignore_single_node_islands=False, - trust_radius=1.0, - backtracking_parameter=0.05, - use_stored_guess=False, - override_branch_controls=False, - generate_report=False, - generalised_pf=False): + distributed_slack: bool = False, + ignore_single_node_islands: bool = False, + trust_radius: float = 1.0, + backtracking_parameter: float = 0.05, + use_stored_guess: bool = False, + generate_report: bool = False): """ Power flow options class :param solver_type: Solver type @@ -53,8 +52,6 @@ def __init__(self, :param max_iter: Maximum number of iterations for the power flow numerical method :param max_outer_loop_iter: Maximum number of iterations for the controls outer loop :param control_q: Control mode for the PV nodes reactive power limits - :param control_taps: Control mode for the transformer taps equipped with a voltage regulator - (as part of the outer loop) :param apply_temperature_correction: Apply the temperature correction to the resistance of the Branches? :param branch_impedance_tolerance_mode: Type of modification of the Branches impedance :param distributed_slack: Applies the redistribution of the slack power proportionally among the controlled generators @@ -62,9 +59,7 @@ def __init__(self, :param trust_radius: :param backtracking_parameter: parameter used to correct the "bad" iterations, typically 0.5 :param use_stored_guess: Use the existing solution from the Bus class (Vm0, Va0) - :param override_branch_controls: - :param generate_report: - :param generalised_pf: + :param generate_report: Generate the power flow report after the solution? """ OptionsTemplate.__init__(self, name='PowerFlowOptions') @@ -84,7 +79,9 @@ def __init__(self, self.initialize_with_existing_solution = initialize_with_existing_solution - self.control_taps = control_taps + self.control_taps_modules = control_taps_modules + + self.control_taps_phase = control_taps_phase self.apply_temperature_correction = apply_temperature_correction @@ -100,8 +97,6 @@ def __init__(self, self.use_stored_guess = use_stored_guess - self.override_branch_controls = override_branch_controls - self.generate_report = generate_report self.register(key="solver_type", tpe=SolverType) @@ -109,10 +104,11 @@ def __init__(self, self.register(key="tolerance", tpe=float) self.register(key="max_iter", tpe=int) self.register(key="max_outer_loop_iter", tpe=int) - self.register(key="control_Q", tpe=ReactivePowerControlMode) + self.register(key="control_Q", tpe=bool) self.register(key="verbose", tpe=int) self.register(key="initialize_with_existing_solution", tpe=bool) - self.register(key="control_taps", tpe=bool) + self.register(key="control_taps_modules", tpe=bool) + self.register(key="control_taps_phase", tpe=bool) self.register(key="apply_temperature_correction", tpe=bool) self.register(key="branch_impedance_tolerance_mode", tpe=BranchImpedanceMode) self.register(key="distributed_slack", tpe=bool) @@ -120,5 +116,4 @@ def __init__(self, self.register(key="trust_radius", tpe=float) self.register(key="backtracking_parameter", tpe=float) self.register(key="use_stored_guess", tpe=bool) - self.register(key="override_branch_controls", tpe=bool) self.register(key="generate_report", tpe=bool) diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index 559b0eb8f..dbdbf5353 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -25,6 +25,7 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_basic_formulation import PfBasicFormulation +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import PfAdvancedFormulation from GridCalEngine.Simulations.PowerFlow.NumericalMethods.newton_raphson_fx import newton_raphson_fx from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -232,16 +233,37 @@ def solve(circuit: NumericalCircuit, elif solver_type == SolverType.NR: if circuit.any_control: # Solve NR with the AC/DC algorithm - solution = pflw.NR_LS_ACDC(nc=circuit, - V0=V0, - S0=S0, - I0=I0, - Y0=Y0, - tolerance=options.tolerance, - max_iter=options.max_iter, - acceleration_parameter=options.backtracking_parameter, - mu_0=options.trust_radius, - control_q=options.control_Q) + + problem = PfAdvancedFormulation(V0=final_solution.V, + S0=S0, + I0=I0, + Y0=Y0, + Qmin=Qmin, + Qmax=Qmax, + pv=pv, + pq=pq, + pqv=pqv, + p=p, + nc=circuit, + options=options) + + solution = newton_raphson_fx(problem=problem, + tol=options.tolerance, + max_iter=options.max_iter, + trust=options.trust_radius, + verbose=options.verbose, + logger=logger) + + # solution = pflw.NR_LS_ACDC(nc=circuit, + # V0=V0, + # S0=S0, + # I0=I0, + # Y0=Y0, + # tolerance=options.tolerance, + # max_iter=options.max_iter, + # acceleration_parameter=options.backtracking_parameter, + # mu_0=options.trust_radius, + # control_q=options.control_Q) else: # Solve NR with the AC algorithm problem = PfBasicFormulation(V0=final_solution.V, diff --git a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py index e931264f4..ba7c08f47 100644 --- a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py @@ -806,7 +806,7 @@ def fubm_jacobian_old(nb, nl, :param k_pf_dp: indices of the Pf-droop controlled Branches :param k_qf_m: indices of the Qf controlled with ma Branches :param k_qt_m: Indices of the Qt controlled with ma Branches - :param k_vt_m: Indices of the Vt controlled with ma Branches + :param k_v_m: Indices of the Vt controlled with ma Branches :param k_zero_beq: Indices of the Qf made zero with the equivalent susceptance Branches :param k_vf_beq: Indices of the Vf Controlled with the equivalent susceptance Branches :param i_vf_beq: Indices of the buses where Vf is controlled with Beq diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index 6fc1a1e97..967c7d384 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -224,7 +224,7 @@ def __init__(self, self.k_vf_beq: IntVec = np.zeros(0, dtype=int) # (old iVtma) indices of the Branches when controlling Vt with ma - self.k_vt_m: IntVec = np.zeros(0, dtype=int) + self.k_v_m: IntVec = np.zeros(0, dtype=int) # (old iQtma) indices of the Branches controlling the Qt flow with ma self.k_qt_m: IntVec = np.zeros(0, dtype=int) @@ -262,12 +262,12 @@ def __init__(self, # (old Vtmabus) indices of the buses where Vt is controlled by ma self.i_vt_m: IntVec = np.zeros(0, dtype=int) + # determine the branch indices (may affect the bus types) + self.compile_control_indices(control_mode=control_mode, F=F, T=T) + # determine the bus indices self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=Pbus, types=bus_types) - # determine the branch indices - self.compile_control_indices(control_mode=control_mode, F=F, T=T) - def recompile_types(self, bus_types: IntVec, Pbus: Vec): @@ -376,6 +376,7 @@ def compile_control_indices(self, elif tpe == TransformerControlType.V: k_vt_m_lst.append(k) + self.control_mode k_m_modif_lst.append(k) i_m_modif_lst.append(T[k]) self.any_control = True @@ -477,7 +478,7 @@ def compile_control_indices(self, self.k_qf_m = np.array(k_qf_m_lst, dtype=int) self.k_zero_beq = np.array(k_zero_beq_lst, dtype=int) self.k_vf_beq = np.array(k_vf_beq_lst, dtype=int) - self.k_vt_m = np.array(k_vt_m_lst, dtype=int) + self.k_v_m = np.array(k_vt_m_lst, dtype=int) self.k_qt_m = np.array(k_qt_m_lst, dtype=int) self.k_pf_dp = np.array(k_pf_dp_lst, dtype=int) self.k_m = np.array(k_m_modif_lst, dtype=int) @@ -488,5 +489,3 @@ def compile_control_indices(self, self.i_mtau = np.array(i_mtau_modif_lst, dtype=int) self.iPfdp_va = np.array(iPfdp_va_lst, dtype=int) self.i_vsc = np.array(i_vsc_lst, dtype=int) - - diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index f2d38acd0..8cf62fc0a 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -205,157 +205,157 @@ def argparse(s): return s -class ReactivePowerControlMode(Enum): - """ - The :ref:`ReactivePowerControlMode` offers 3 modes to control how - :ref:`Generator` objects supply reactive power: - - **NoControl**: In this mode, the :ref:`generators` don't try to regulate - the voltage at their :ref:`bus`. - - **Direct**: In this mode, the :ref:`generators` try to regulate the - voltage at their :ref:`bus`. **GridCal** does so by applying the following - algorithm in an outer control loop. For grids with numerous - :ref:`generators` tied to the same system, for example wind farms, this - control method sometimes fails with some :ref:`generators` not trying - hard enough*. In this case, the simulation converges but the voltage controlled - :ref:`buses` do not reach their target voltage, while their - :ref:`generator(s)` haven't reached their reactive power limit. In this - case, the slower **Iterative** control mode may be used (see below). - - ON PV-PQ BUS TYPE SWITCHING LOGIC IN POWER FLOW COMPUTATION - Jinquan Zhao - - 1) Bus i is a PQ bus in the previous iteration and its - reactive power was fixed at its lower limit: - - If its voltage magnitude Vi >= Viset, then - - it is still a PQ bus at current iteration and set Qi = Qimin . - - If Vi < Viset , then - - compare Qi with the upper and lower limits. - - If Qi >= Qimax , then - it is still a PQ bus but set Qi = Qimax . - If Qi <= Qimin , then - it is still a PQ bus and set Qi = Qimin . - If Qimin < Qi < Qi max , then - it is switched to PV bus, set Vinew = Viset. - - 2) Bus i is a PQ bus in the previous iteration and - its reactive power was fixed at its upper limit: - - If its voltage magnitude Vi <= Viset , then: - bus i still a PQ bus and set Q i = Q i max. - - If Vi > Viset , then - - Compare between Qi and its upper/lower limits - - If Qi >= Qimax , then - it is still a PQ bus and set Q i = Qimax . - If Qi <= Qimin , then - it is still a PQ bus but let Qi = Qimin in current iteration. - If Qimin < Qi < Qimax , then - it is switched to PV bus and set Vinew = Viset - - 3) Bus i is a PV bus in the previous iteration. - - Compare Q i with its upper and lower limits. - - If Qi >= Qimax , then - it is switched to PQ and set Qi = Qimax . - If Qi <= Qimin , then - it is switched to PQ and set Qi = Qimin . - If Qi min < Qi < Qimax , then - it is still a PV bus. - - **Iterative**: As mentioned above, the **Direct** control mode may not yield - satisfying results in some isolated cases. The **Direct** control mode tries to - jump to the final solution in a single or few iterations, but in grids where a - significant change in reactive power at one :ref:`generator` has a - significant impact on other :ref:`generators`, additional iterations may - be required to reach a satisfying solution. - - Instead of trying to jump to the final solution, the **Iterative** mode raises or - lowers each :ref:`generator's` reactive power incrementally. The - increment is determined using a logistic function based on the difference between - the current :ref:`bus` voltage its target voltage. The steepness factor - :code:`k` of the logistic function was determined through trial and error, with the - intent of reducing the number of iterations while avoiding instability. Other - values may be specified in :ref:`PowerFlowOptions`. - - The :math:`Q_{Increment}` in per unit is determined by: - - .. math:: - - Q_{Increment} = 2 * \\left[\\frac{1}{1 + e^{-k|V_2 - V_1|}}-0.5\\right] - - Where: - - k = 30 (by default) - - """ - NoControl = "NoControl" - Direct = "Direct" - Iterative = "Iterative" - - -class TapsControlMode(Enum): - """ - The :ref:`TapsControlMode` offers 3 modes to control how - :ref:`transformers`' :ref:`tap changer` regulate - voltage on their regulated :ref:`bus`: - - **NoControl**: In this mode, the :ref:`transformers` don't try to - regulate the voltage at their :ref:`bus`. - - **Direct**: In this mode, the :ref:`transformers` try to regulate - the voltage at their bus. **GridCal** does so by jumping straight to the tap that - corresponds to the desired transformation ratio, or the highest or lowest tap if - the desired ratio is outside of the tap range. - - This behavior may fail in certain cases, especially if both the - :ref:`TapControlMode` and :ref:`ReactivePowerControlMode` - are set to **Direct**. In this case, the simulation converges but the voltage - controlled :ref:`buses` do not reach their target voltage, while their - :ref:`generator(s)` haven't reached their reactive power limit. When - this happens, the slower **Iterative** control mode may be used (see below). - - **Iterative**: As mentioned above, the **Direct** control mode may not yield - satisfying results in some isolated cases. The **Direct** control mode tries to - jump to the final solution in a single or few iterations, but in grids where a - significant change of tap at one :ref:`transformer` has a - significant impact on other :ref:`transformers`, additional - iterations may be required to reach a satisfying solution. - - Instead of trying to jump to the final solution, the **Iterative** mode raises or - lowers each :ref:`transformer's` tap incrementally. - """ - - NoControl = "NoControl" - Direct = "Direct" - Iterative = "Iterative" - - def __str__(self): - return self.value - - def __repr__(self): - return str(self) - - @staticmethod - def argparse(s): - """ - - :param s: - :return: - """ - try: - return TapsControlMode[s] - except KeyError: - return s +# class ReactivePowerControlMode(Enum): +# """ +# The :ref:`ReactivePowerControlMode` offers 3 modes to control how +# :ref:`Generator` objects supply reactive power: +# +# **NoControl**: In this mode, the :ref:`generators` don't try to regulate +# the voltage at their :ref:`bus`. +# +# **Direct**: In this mode, the :ref:`generators` try to regulate the +# voltage at their :ref:`bus`. **GridCal** does so by applying the following +# algorithm in an outer control loop. For grids with numerous +# :ref:`generators` tied to the same system, for example wind farms, this +# control method sometimes fails with some :ref:`generators` not trying +# hard enough*. In this case, the simulation converges but the voltage controlled +# :ref:`buses` do not reach their target voltage, while their +# :ref:`generator(s)` haven't reached their reactive power limit. In this +# case, the slower **Iterative** control mode may be used (see below). +# +# ON PV-PQ BUS TYPE SWITCHING LOGIC IN POWER FLOW COMPUTATION +# Jinquan Zhao +# +# 1) Bus i is a PQ bus in the previous iteration and its +# reactive power was fixed at its lower limit: +# +# If its voltage magnitude Vi >= Viset, then +# +# it is still a PQ bus at current iteration and set Qi = Qimin . +# +# If Vi < Viset , then +# +# compare Qi with the upper and lower limits. +# +# If Qi >= Qimax , then +# it is still a PQ bus but set Qi = Qimax . +# If Qi <= Qimin , then +# it is still a PQ bus and set Qi = Qimin . +# If Qimin < Qi < Qi max , then +# it is switched to PV bus, set Vinew = Viset. +# +# 2) Bus i is a PQ bus in the previous iteration and +# its reactive power was fixed at its upper limit: +# +# If its voltage magnitude Vi <= Viset , then: +# bus i still a PQ bus and set Q i = Q i max. +# +# If Vi > Viset , then +# +# Compare between Qi and its upper/lower limits +# +# If Qi >= Qimax , then +# it is still a PQ bus and set Q i = Qimax . +# If Qi <= Qimin , then +# it is still a PQ bus but let Qi = Qimin in current iteration. +# If Qimin < Qi < Qimax , then +# it is switched to PV bus and set Vinew = Viset +# +# 3) Bus i is a PV bus in the previous iteration. +# +# Compare Q i with its upper and lower limits. +# +# If Qi >= Qimax , then +# it is switched to PQ and set Qi = Qimax . +# If Qi <= Qimin , then +# it is switched to PQ and set Qi = Qimin . +# If Qi min < Qi < Qimax , then +# it is still a PV bus. +# +# **Iterative**: As mentioned above, the **Direct** control mode may not yield +# satisfying results in some isolated cases. The **Direct** control mode tries to +# jump to the final solution in a single or few iterations, but in grids where a +# significant change in reactive power at one :ref:`generator` has a +# significant impact on other :ref:`generators`, additional iterations may +# be required to reach a satisfying solution. +# +# Instead of trying to jump to the final solution, the **Iterative** mode raises or +# lowers each :ref:`generator's` reactive power incrementally. The +# increment is determined using a logistic function based on the difference between +# the current :ref:`bus` voltage its target voltage. The steepness factor +# :code:`k` of the logistic function was determined through trial and error, with the +# intent of reducing the number of iterations while avoiding instability. Other +# values may be specified in :ref:`PowerFlowOptions`. +# +# The :math:`Q_{Increment}` in per unit is determined by: +# +# .. math:: +# +# Q_{Increment} = 2 * \\left[\\frac{1}{1 + e^{-k|V_2 - V_1|}}-0.5\\right] +# +# Where: +# +# k = 30 (by default) +# +# """ +# NoControl = "NoControl" +# Direct = "Direct" +# Iterative = "Iterative" +# +# +# class TapsControlMode(Enum): +# """ +# The :ref:`TapsControlMode` offers 3 modes to control how +# :ref:`transformers`' :ref:`tap changer` regulate +# voltage on their regulated :ref:`bus`: +# +# **NoControl**: In this mode, the :ref:`transformers` don't try to +# regulate the voltage at their :ref:`bus`. +# +# **Direct**: In this mode, the :ref:`transformers` try to regulate +# the voltage at their bus. **GridCal** does so by jumping straight to the tap that +# corresponds to the desired transformation ratio, or the highest or lowest tap if +# the desired ratio is outside of the tap range. +# +# This behavior may fail in certain cases, especially if both the +# :ref:`TapControlMode` and :ref:`ReactivePowerControlMode` +# are set to **Direct**. In this case, the simulation converges but the voltage +# controlled :ref:`buses` do not reach their target voltage, while their +# :ref:`generator(s)` haven't reached their reactive power limit. When +# this happens, the slower **Iterative** control mode may be used (see below). +# +# **Iterative**: As mentioned above, the **Direct** control mode may not yield +# satisfying results in some isolated cases. The **Direct** control mode tries to +# jump to the final solution in a single or few iterations, but in grids where a +# significant change of tap at one :ref:`transformer` has a +# significant impact on other :ref:`transformers`, additional +# iterations may be required to reach a satisfying solution. +# +# Instead of trying to jump to the final solution, the **Iterative** mode raises or +# lowers each :ref:`transformer's` tap incrementally. +# """ +# +# NoControl = "NoControl" +# Direct = "Direct" +# Iterative = "Iterative" +# +# def __str__(self): +# return self.value +# +# def __repr__(self): +# return str(self) +# +# @staticmethod +# def argparse(s): +# """ +# +# :param s: +# :return: +# """ +# try: +# return TapsControlMode[s] +# except KeyError: +# return s class SyncIssueType(Enum): @@ -671,7 +671,7 @@ def list(cls): return list(map(lambda c: c.value, cls)) -class TapAngleControl(Enum): +class TapPhaseControl(Enum): """ Tap angle control types """ @@ -693,7 +693,7 @@ def argparse(s): :return: """ try: - return TapAngleControl[s] + return TapPhaseControl[s] except KeyError: return s diff --git a/src/tests/newton_equivalence_utils.py b/src/tests/newton_equivalence_utils.py index 72f212f3e..b1f1205db 100644 --- a/src/tests/newton_equivalence_utils.py +++ b/src/tests/newton_equivalence_utils.py @@ -291,7 +291,7 @@ def compare_power_flow(grid_newton, grid_gc, tol=1e-6): verbose=False, tolerance=1e-6, retry_with_other_methods=True, - control_q=gce.ReactivePowerControlMode.NoControl, + control_q=False, max_iter=15) gc_power_flow = gce.PowerFlowDriver(grid_gc, gc_options) gc_power_flow.run() diff --git a/src/tests/test_ac_opf.py b/src/tests/test_ac_opf.py index ecf86cf29..91685a830 100644 --- a/src/tests/test_ac_opf.py +++ b/src/tests/test_ac_opf.py @@ -19,7 +19,7 @@ import numpy as np import GridCalEngine.api as gce -from GridCalEngine.enumerations import TransformerControlType +from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import ac_optimal_power_flow from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import NonlinearOPFResults @@ -37,7 +37,7 @@ def case9() -> NonlinearOPFResults: grid = gce.FileOpen(file_path).open() nc = gce.compile_numerical_circuit_at(grid) - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(control_q=False) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-8) return ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) @@ -59,7 +59,7 @@ def case14() -> tuple[NonlinearOPFResults, NonlinearOPFResults, NonlinearOPFResu grid.lines[ll].monitor_loading = True nc = gce.compile_numerical_circuit_at(grid) - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(control_q=False) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-8, ips_iterations=50, acopf_mode=gce.AcOpfMode.ACOPFstd) base_sol = ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) @@ -67,9 +67,10 @@ def case14() -> tuple[NonlinearOPFResults, NonlinearOPFResults, NonlinearOPFResu opf_options.acopf_mode = gce.AcOpfMode.ACOPFslacks slack_sol = ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) - grid.transformers2w[0].control_mode = TransformerControlType.PtQt - grid.transformers2w[1].control_mode = TransformerControlType.Pf - grid.transformers2w[2].control_mode = TransformerControlType.V + grid.transformers2w[0].tap_phase_control_mode = TapPhaseControl.Pf + grid.transformers2w[1].tap_phase_control_mode = TapPhaseControl.Pf + grid.transformers2w[2].tap_module_control_mode = TapModuleControl.Vm + grid.transformers2w[2].regulation_bus = grid.transformers2w[2].bus_from for ll in range(len(grid.lines)): grid.lines[ll].monitor_loading = True @@ -100,7 +101,7 @@ def case_pegase89() -> NonlinearOPFResults: nc = gce.compile_numerical_circuit_at(grid) # pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, tolerance=1e-8) # return ac_optimal_power_flow(nc=nc, pf_options=pf_options) - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(control_q=False) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-10, acopf_mode=gce.AcOpfMode.ACOPFstd) return ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) diff --git a/src/tests/test_admittance_tap_derivatives.py b/src/tests/test_admittance_tap_derivatives.py index 913834671..49fb65b70 100644 --- a/src/tests/test_admittance_tap_derivatives.py +++ b/src/tests/test_admittance_tap_derivatives.py @@ -18,8 +18,8 @@ import os import numpy as np import GridCalEngine.api as gce -from GridCalEngine.enumerations import TransformerControlType -from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at +from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl +from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at, NumericalCircuit from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import ac_optimal_power_flow, NonlinearOPFResults from trunk.acopf.acopf_admittance_tap_derivation import (compute_finitediff_admittances, compute_finitediff_admittances_2dev, @@ -27,9 +27,6 @@ compute_analytic_admittances_2dev) - - - def case_3bus(): """ @@ -55,11 +52,11 @@ def case_3bus(): grid.add_generator(b1, gce.Generator('G1', vset=1.00, Cost=1.0, Cost2=2.0)) grid.add_generator(b2, gce.Generator('G2', P=10, vset=0.995, Cost=1.0, Cost2=3.0)) - tr1 = gce.Transformer2W(b1, b2, 'Trafo1', control_mode=TransformerControlType.Pf, + tr1 = gce.Transformer2W(b1, b2, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.1, tap_phase=0.02, r=0.001, x=0.05) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(b3, b1, 'Trafo1', control_mode=TransformerControlType.PtQt, + tr2 = gce.Transformer2W(b3, b1, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=-0.02, r=0.001, x=0.05) grid.add_transformer2w(tr2) @@ -76,67 +73,68 @@ def case_5bus(): grid = gce.MultiCircuit() # Add the buses and the generators and loads attached - bus1 = gce.Bus('Bus 1', Vnom=20) + bus1 = gce.Bus(name='Bus 1', Vnom=20) # bus1.is_slack = True # we may mark the bus a slack grid.add_bus(bus1) # add a generator to the bus 1 - gen1 = gce.Generator('Slack Generator', vset=1.05, Pmin=0, Pmax=1000, + gen1 = gce.Generator(name='Slack Generator', vset=1.05, Pmin=0, Pmax=1000, Qmin=-1000, Qmax=1000, Cost=15, Cost2=0.0) grid.add_generator(bus1, gen1) # add bus 2 with a load attached - bus2 = gce.Bus('Bus 2', Vnom=20) + bus2 = gce.Bus(name='Bus 2', Vnom=20) grid.add_bus(bus2) - grid.add_load(bus2, gce.Load('load 2', P=40, Q=20)) + grid.add_load(bus2, gce.Load(name='load 2', P=40, Q=20)) # add bus 3 with a load attached - bus3 = gce.Bus('Bus 3', Vnom=20) + bus3 = gce.Bus(name='Bus 3', Vnom=20) grid.add_bus(bus3) - grid.add_load(bus3, gce.Load('load 3', P=25, Q=15)) + grid.add_load(bus3, gce.Load(name='load 3', P=25, Q=15)) # add bus 4 with a load attached - bus4 = gce.Bus('Bus 4', Vnom=20) + bus4 = gce.Bus(name='Bus 4', Vnom=20) grid.add_bus(bus4) grid.add_load(bus4, gce.Load('load 4', P=40, Q=20)) # add bus 5 with a load attached - bus5 = gce.Bus('Bus 5', Vnom=20) + bus5 = gce.Bus(name='Bus 5', Vnom=20) grid.add_bus(bus5) - grid.add_load(bus5, gce.Load('load 5', P=50, Q=20)) + grid.add_load(bus5, gce.Load(name='load 5', P=50, Q=20)) # add Lines connecting the buses - #grid.add_line(gce.Line(bus1, bus2, 'line 1-2', r=0.05, x=0.11, b=0.02, rate=1000)) - grid.add_line(gce.Line(bus1, bus3, 'line 1-3', r=0.05, x=0.11, b=0.02, rate=1000)) - grid.add_line(gce.Line(bus1, bus5, 'line 1-5', r=0.03, x=0.08, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus1, bus2, 'line 1-2', r=0.05, x=0.11, b=0.02, rate=1000)) + grid.add_line(gce.Line(bus1, bus3, name='line 1-3', r=0.05, x=0.11, b=0.02, rate=1000)) + grid.add_line(gce.Line(bus1, bus5, name='line 1-5', r=0.03, x=0.08, b=0.02, rate=1000)) - tr1 = gce.Transformer2W(bus1, bus2, 'Trafo1', control_mode=TransformerControlType.fixed, + tr1 = gce.Transformer2W(bus1, bus2, name='Trafo1', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=1.1, tap_phase=0.02, r=0.05, x=0.11, b=0.02) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(bus2, bus3, 'Trafo2', control_mode=TransformerControlType.fixed, + tr2 = gce.Transformer2W(bus2, bus3, name='Trafo2', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=0.98, tap_phase=-0.02, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr2) - tr3 = gce.Transformer2W(bus2, bus5, 'Trafo3', control_mode=TransformerControlType.fixed, + tr3 = gce.Transformer2W(bus2, bus5, name='Trafo3', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=1.02, tap_phase=-0.04, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr3) - tr4 = gce.Transformer2W(bus3, bus4, 'Trafo4', control_mode=TransformerControlType.Pf, + tr4 = gce.Transformer2W(bus3, bus4, name='Trafo4', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=0.04, r=0.06, x=0.13, b=0.03) grid.add_transformer2w(tr4) - tr5 = gce.Transformer2W(bus4, bus5, 'Trafo5', control_mode=TransformerControlType.fixed, + tr5 = gce.Transformer2W(bus4, bus5, name='Trafo5', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=0.97, tap_phase=-0.01, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr5) - #grid.add_line(gce.Line(bus2, bus3, 'line 2-3', r=0.04, x=0.09, b=0.02, rate=1000)) - #grid.add_line(gce.Line(bus2, bus5, 'line 2-5', r=0.04, x=0.09, b=0.02, rate=1000)) - #grid.add_line(gce.Line(bus3, bus4, 'line 3-4', r=0.06, x=0.13, b=0.03, rate=1000)) - #grid.add_line(gce.Line(bus4, bus5, 'line 4-5', r=0.04, x=0.09, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus2, bus3, 'line 2-3', r=0.04, x=0.09, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus2, bus5, 'line 2-5', r=0.04, x=0.09, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus3, bus4, 'line 3-4', r=0.06, x=0.13, b=0.03, rate=1000)) + # grid.add_line(gce.Line(bus4, bus5, 'line 4-5', r=0.04, x=0.09, b=0.02, rate=1000)) nc = gce.compile_numerical_circuit_at(grid) return nc -def case9() -> NonlinearOPFResults: + +def case9() -> NumericalCircuit: """ Test case9 from matpower :return: @@ -153,7 +151,7 @@ def case9() -> NonlinearOPFResults: return nc -def case14() -> NonlinearOPFResults: +def case14() -> NumericalCircuit: """ Test case14 from matpower :return: @@ -166,15 +164,14 @@ def case14() -> NonlinearOPFResults: grid = gce.FileOpen(file_path).open() for l in grid.get_transformers2w(): - - l.control_mode = TransformerControlType.PtQt + l.tap_phase_control_mode = TapPhaseControl.fixed nc = gce.compile_numerical_circuit_at(grid) return nc -def case_pegase89() -> NonlinearOPFResults: +def case_pegase89() -> NumericalCircuit: """ Pegase89 """ @@ -184,11 +181,11 @@ def case_pegase89() -> NonlinearOPFResults: file_path = os.path.join('data', 'grids', 'case89pegase.m') grid = gce.FileOpen(file_path).open() - grid.get_transformers2w()[3].control_mode = TransformerControlType.PtQt - grid.get_transformers2w()[7].control_mode = TransformerControlType.PtQt - grid.get_transformers2w()[18].control_mode = TransformerControlType.V - grid.get_transformers2w()[21].control_mode = TransformerControlType.PtQt - grid.get_transformers2w()[36].control_mode = TransformerControlType.Pf + grid.get_transformers2w()[3].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[7].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[18].tap_module_control_mode = TapModuleControl.Vm + grid.get_transformers2w()[21].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[36].tap_phase_control_mode = TapPhaseControl.Pf nc = gce.compile_numerical_circuit_at(grid) @@ -196,7 +193,6 @@ def case_pegase89() -> NonlinearOPFResults: def test_case_3bus(): - nc = case_3bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -226,7 +222,6 @@ def test_case_3bus(): def test_case_5bus(): - nc = case_5bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -256,7 +251,6 @@ def test_case_5bus(): def test_pegase89(): - nc = case_pegase89() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -286,7 +280,6 @@ def test_pegase89(): def test_case14(): - nc = case14() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -316,7 +309,7 @@ def test_case14(): # pass -#def test_ieee14(): +# def test_ieee14(): -#def test_pegase89(): +# def test_pegase89(): diff --git a/src/tests/test_basic.py b/src/tests/test_basic.py index d1450a6b6..0af194537 100644 --- a/src/tests/test_basic.py +++ b/src/tests/test_basic.py @@ -21,7 +21,7 @@ from GridCalEngine.Devices.Injections.static_generator import StaticGenerator from GridCalEngine.Devices.Branches.transformer import TransformerType, Transformer2W from GridCalEngine.Simulations.PowerFlow.power_flow_worker import PowerFlowOptions -from GridCalEngine.Simulations.PowerFlow.power_flow_options import ReactivePowerControlMode, SolverType +from GridCalEngine.Simulations.PowerFlow.power_flow_options import SolverType from GridCalEngine.Simulations.PowerFlow.power_flow_driver import PowerFlowDriver @@ -142,7 +142,7 @@ def test_basic(): options = PowerFlowOptions(SolverType.NR, verbose=True, use_stored_guess=True, - control_q=ReactivePowerControlMode.Direct, + control_q=True, tolerance=1e-6, max_iter=99) @@ -292,7 +292,7 @@ def test_gridcal_basic_pi(): options = PowerFlowOptions(SolverType.NR, verbose=True, use_stored_guess=True, - control_q=ReactivePowerControlMode.Direct, + control_q=True, tolerance=1e-6, max_iter=99) diff --git a/src/tests/test_cgmes_ieeee.py b/src/tests/test_cgmes_ieeee.py index 94dee8e04..009187741 100644 --- a/src/tests/test_cgmes_ieeee.py +++ b/src/tests/test_cgmes_ieeee.py @@ -141,7 +141,7 @@ def test_ieee_grids() -> None: options = gce.PowerFlowOptions(gce.SolverType.NR, verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) for grid_file, results_file in files: diff --git a/src/tests/test_contingency.py b/src/tests/test_contingency.py index 7f896a580..58922f2f2 100644 --- a/src/tests/test_contingency.py +++ b/src/tests/test_contingency.py @@ -29,7 +29,7 @@ def test_contingency() -> None: pf_options = PowerFlowOptions(SolverType.NR, verbose=False, use_stored_guess=False, - control_q=ReactivePowerControlMode.NoControl) + control_q=False) options = ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=ContingencyMethod.PowerFlow) @@ -59,7 +59,7 @@ def test_linear_contingency(): main_circuit = FileOpen(fname).open() pf_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl) + control_q=False) linear_analysis = LinearAnalysisDriver(grid=main_circuit) linear_analysis.run() @@ -81,7 +81,7 @@ def test_linear_contingency(): # verbose=False, # initialize_with_existing_solution=False, # dispatch_storage=True, -# control_q=ReactivePowerControlMode.NoControl, +# control_q=False, # control_p=False) # # linear_analysis = LinearAnalysisDriver(grid=main_circuit) @@ -102,7 +102,7 @@ def test_linear_contingency(): # verbose=False, # initialize_with_existing_solution=False, # dispatch_storage=True, -# control_q=ReactivePowerControlMode.NoControl, +# control_q=False, # control_p=False) # # branches = main_circuit.get_branches() diff --git a/src/tests/test_continuation_power_flow.py b/src/tests/test_continuation_power_flow.py index f675eef4a..c535c0599 100644 --- a/src/tests/test_continuation_power_flow.py +++ b/src/tests/test_continuation_power_flow.py @@ -22,9 +22,7 @@ def test_cpf(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(SolverType.NR, verbose=0, control_q=False) Vmbase = open_data_frame_from_zip(file_name_zip=os.path.join('data', 'results', 'Results_IEEE39_1W.zip'), file_name='Power flow Bus voltage module.csv').values[:, 0] diff --git a/src/tests/test_generator_q_control.py b/src/tests/test_generator_q_control.py index 19537c7c8..a9f28363e 100644 --- a/src/tests/test_generator_q_control.py +++ b/src/tests/test_generator_q_control.py @@ -12,7 +12,7 @@ def test_q_control_true() -> None: for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: options = PowerFlowOptions(solver_type, - control_q=ReactivePowerControlMode.Direct, + control_q=True, retry_with_other_methods=False) power_flow = PowerFlowDriver(main_circuit, options) @@ -41,7 +41,7 @@ def test_q_control_false(): for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: options = PowerFlowOptions(solver_type, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) power_flow = PowerFlowDriver(main_circuit, options) diff --git a/src/tests/test_islands.py b/src/tests/test_islands.py index 27192ed36..ff9ac4a90 100644 --- a/src/tests/test_islands.py +++ b/src/tests/test_islands.py @@ -20,7 +20,7 @@ from GridCalEngine.IO.file_handler import FileOpen from GridCalEngine.Simulations.PowerFlow.power_flow_worker import PowerFlowOptions -from GridCalEngine.Simulations.PowerFlow.power_flow_options import ReactivePowerControlMode, SolverType +from GridCalEngine.Simulations.PowerFlow.power_flow_options import SolverType from GridCalEngine.Simulations.PowerFlow.power_flow_driver import PowerFlowDriver from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Topology.topology import find_islands diff --git a/src/tests/test_latin_hypercube.py b/src/tests/test_latin_hypercube.py index 87b1cfad9..dc11bc0e1 100644 --- a/src/tests/test_latin_hypercube.py +++ b/src/tests/test_latin_hypercube.py @@ -25,13 +25,9 @@ def test_lhs(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(SolverType.NR, - verbose=False, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(SolverType.NR, verbose=False, control_q=False) print('Running LHC...') - lhs_sim = StochasticPowerFlowDriver(main_circuit, - pf_options, - sampling_points=100) + lhs_sim = StochasticPowerFlowDriver(main_circuit, pf_options, sampling_points=100) lhs_sim.run() diff --git a/src/tests/test_monte_carlo.py b/src/tests/test_monte_carlo.py index ec11eef4d..e6682ac23 100644 --- a/src/tests/test_monte_carlo.py +++ b/src/tests/test_monte_carlo.py @@ -25,18 +25,13 @@ def test_monte_carlo(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(SolverType.NR, verbose=0, control_q=False) #################################################################################################################### # Monte Carlo #################################################################################################################### print('Running MC...') - mc_sim = StochasticPowerFlowDriver(main_circuit, - pf_options, - mc_tol=1e-5, - sampling_points=1000) + mc_sim = StochasticPowerFlowDriver(main_circuit, pf_options, mc_tol=1e-5, sampling_points=1000) mc_sim.run() diff --git a/src/tests/test_opf_dispatches_controls.py b/src/tests/test_opf_dispatches_controls.py index 6c5209ea7..f8ac0a993 100644 --- a/src/tests/test_opf_dispatches_controls.py +++ b/src/tests/test_opf_dispatches_controls.py @@ -16,7 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os from GridCalEngine.api import * -from GridCalEngine.enumerations import HvdcControlType, TransformerControlType, TapAngleControl +from GridCalEngine.enumerations import HvdcControlType, TransformerControlType, TapPhaseControl def test_opf_hvdc(): @@ -26,7 +26,7 @@ def test_opf_hvdc(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -66,7 +66,7 @@ def test_opf_gen(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -108,7 +108,7 @@ def test_opf_line_monitoring(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -152,7 +152,7 @@ def test_opf_hvdc_controls(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -198,7 +198,7 @@ def test_opf_trafo_controls(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -208,22 +208,22 @@ def test_opf_trafo_controls(): generate_report=True) # trafo fixed - main_circuit.transformers2w[0].control_mode = TransformerControlType.fixed + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.fixed opf = OptimalPowerFlowDriver(grid=main_circuit, options=opf_options) opf.run() pf1 = opf.results.Sf[48] # trafo controlling - main_circuit.transformers2w[0].control_mode = TransformerControlType.Pf - main_circuit.transformers2w[0].tap_angle_control_mode = TapAngleControl.Pf + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.Pf + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.Pf opf = OptimalPowerFlowDriver(grid=main_circuit, options=opf_options) opf.run() pf2 = opf.results.Sf[48] # trafo back to fixed - main_circuit.transformers2w[0].control_mode = TransformerControlType.fixed + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.fixed opf = OptimalPowerFlowDriver(grid=main_circuit, options=opf_options) opf.run() diff --git a/src/tests/test_opf_time_concatenation.py b/src/tests/test_opf_time_concatenation.py index a1db914ab..c37764cf4 100644 --- a/src/tests/test_opf_time_concatenation.py +++ b/src/tests/test_opf_time_concatenation.py @@ -27,7 +27,7 @@ def test_opf_ts_batt(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -63,7 +63,7 @@ def test_opf_ts_hydro(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, diff --git a/src/tests/test_opf_time_series.py b/src/tests/test_opf_time_series.py index cfa61775a..69489367b 100644 --- a/src/tests/test_opf_time_series.py +++ b/src/tests/test_opf_time_series.py @@ -27,7 +27,7 @@ def test_opf_ts(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index 430463d99..cfccc0a24 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -20,7 +20,7 @@ from GridCalEngine.IO.file_handler import FileOpen from GridCalEngine.Simulations.PowerFlow.power_flow_worker import PowerFlowOptions -from GridCalEngine.Simulations.PowerFlow.power_flow_options import ReactivePowerControlMode, SolverType +from GridCalEngine.Simulations.PowerFlow.power_flow_options import SolverType from GridCalEngine.Simulations.PowerFlow.power_flow_driver import PowerFlowDriver from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at import GridCalEngine.api as gce @@ -47,7 +47,7 @@ def test_ieee_grids(): options = PowerFlowOptions(solver_type, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) for f1, f2 in files: @@ -93,7 +93,7 @@ def test_dc_pf_ieee14(): """ options = PowerFlowOptions(SolverType.DC, verbose=False, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'case14.m') @@ -134,7 +134,7 @@ def test_dc_pf_ieee14_ps(): """ options = PowerFlowOptions(SolverType.DC, verbose=False, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'case14_ps.m') @@ -224,7 +224,7 @@ def test_voltage_remote_control_with_generation() -> None: for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: options = PowerFlowOptions(solver_type, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) results = gce.power_flow(grid, options) diff --git a/src/tests/test_ptdf.py b/src/tests/test_ptdf.py index e5d4de0d7..3ca4b16a9 100644 --- a/src/tests/test_ptdf.py +++ b/src/tests/test_ptdf.py @@ -219,7 +219,7 @@ def test_dcpowerflow(): pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, linear_multiple_contingencies=None) @@ -420,9 +420,7 @@ def test_mlodf() -> None: Sfmlodf = Sf0 + np.matmul(mlodf, Sf0red) # Theoretical method - pf_options = gce.PowerFlowOptions(gce.SolverType.NR, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.NR, verbose=0, control_q=False) options = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PTDF) cont_analysis_driver = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options, @@ -446,9 +444,7 @@ def test_mlodf_sanpen(): main_circuit = gce.FileOpen(fname).open() # DC power flow method - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, linear_multiple_contingencies=None) @@ -490,9 +486,7 @@ def test_ptdf_generation_contingencies(): ]: main_circuit = gce.FileOpen(fname).open() - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) # DC power flow method options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) @@ -532,9 +526,7 @@ def test_lodf_single_contingencies(): main_circuit = gce.FileOpen(fname).open() # DC power flow method - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) @@ -585,14 +577,10 @@ def test_generation_contingencies_powerflow(): ]: main_circuit = gce.FileOpen(case['conti']).open() - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) # DC power flow method with ContingencyAnalysisDriver - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, @@ -710,9 +698,7 @@ def test_ptdf_contingencies_powerflow(): linear_multi_contingency.compute(ptdf=linear_analysis.results.PTDF, lodf=linear_analysis.results.LODF) # DC power flow method with ContingencyAnalysisDriver - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PTDF) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, @@ -743,9 +729,7 @@ def test_ptdf_contingencies_powerflow(): else: # DC power flow method with ContingencyAnalysisDriver - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, diff --git a/src/tests/test_short_circuit.py b/src/tests/test_short_circuit.py index 6f8f50df8..5e84f5557 100644 --- a/src/tests/test_short_circuit.py +++ b/src/tests/test_short_circuit.py @@ -26,9 +26,7 @@ def test_short_circuit(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(solver_type=SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(solver_type=SolverType.NR, verbose=0, control_q=False) #################################################################################################################### # PowerFlowDriver #################################################################################################################### diff --git a/src/tests/test_time_series.py b/src/tests/test_time_series.py index 4fd7f542e..6b49d72fd 100644 --- a/src/tests/test_time_series.py +++ b/src/tests/test_time_series.py @@ -26,9 +26,7 @@ def test_time_series(): print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(solver_type=SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(solver_type=SolverType.NR, verbose=0, control_q=False) ts = PowerFlowTimeSeriesDriver(grid=main_circuit, options=pf_options, time_indices=np.arange(0, 96)) ts.run() diff --git a/src/tests/test_transformer_controls.py b/src/tests/test_transformer_controls.py index 2b1fd9308..59466dbf6 100644 --- a/src/tests/test_transformer_controls.py +++ b/src/tests/test_transformer_controls.py @@ -6,16 +6,14 @@ def test_v_control_true(): """ Test that when the V control is enabled the voltage at the bus is the set point """ - options = PowerFlowOptions(SolverType.NR, - control_q=ReactivePowerControlMode.Direct, - retry_with_other_methods=False) + options = PowerFlowOptions(SolverType.NR, control_q=True, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'IEEE57.gridcal') main_circuit = FileOpen(fname).open() tr = main_circuit.transformers2w[5] - tr.control_mode = TransformerControlType.V + tr.tap_module_control_mode = TapModuleControl.Vm tr.vset = 1.0 power_flow = PowerFlowDriver(main_circuit, options) @@ -31,7 +29,7 @@ def test_v_control_false(): Test that when the V control is disabled the voltage at the bus is not the set point """ options = PowerFlowOptions(SolverType.NR, - control_q=ReactivePowerControlMode.Direct, + control_q=True, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'IEEE57.gridcal') @@ -39,7 +37,7 @@ def test_v_control_false(): tr = main_circuit.transformers2w[5] - tr.control_mode = TransformerControlType.fixed + tr.tap_phase_control_mode = TapPhaseControl.fixed tr.vset = 1.0 power_flow = PowerFlowDriver(main_circuit, options) diff --git a/src/trunk/acdc_pf/generalised_pf_run.py b/src/trunk/acdc_pf/generalised_pf_run.py index 856887bbb..07f13372a 100644 --- a/src/trunk/acdc_pf/generalised_pf_run.py +++ b/src/trunk/acdc_pf/generalised_pf_run.py @@ -4,9 +4,9 @@ sys.path.append('C:/Users/raiya/Documents/8. eRoots/thesis/code/GridCal/src') import GridCalEngine.api as gce from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.generalised_power_flow import run_nonlinear_opf, \ - ac_optimal_power_flow -from GridCalEngine.enumerations import TransformerControlType, AcOpfMode, ReactivePowerControlMode +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.generalised_power_flow import (run_nonlinear_opf, + ac_optimal_power_flow) +from GridCalEngine.enumerations import TransformerControlType, AcOpfMode def example_3bus_acopf(): @@ -472,7 +472,7 @@ def case14(): for ll in range(len(grid.lines)): grid.lines[ll].monitor_loading = True - pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=False) opf_options = gce.OptimalPowerFlowOptions(solver=gce.SolverType.NONLINEAR_OPF, acopf_mode=AcOpfMode.ACOPFstd, ips_tolerance=1e-6, ips_iterations=50, verbose=1) res = run_nonlinear_opf(grid=grid, pf_options=pf_options, opf_options=opf_options, plot_error=True, pf_init=True) diff --git a/src/trunk/acopf/acopf_Q_disp.py b/src/trunk/acopf/acopf_Q_disp.py index 71bc0a34c..a92e08d67 100644 --- a/src/trunk/acopf/acopf_Q_disp.py +++ b/src/trunk/acopf/acopf_Q_disp.py @@ -38,11 +38,11 @@ def modify_grid(grid): def run_acopf(grid): - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl, + pf_options = gce.PowerFlowOptions(control_q=False, ignore_single_node_islands=True, max_iter=50, max_outer_loop_iter=1000, - q_steepness_factor=1.0, + trust_radius=1.0, tolerance=1e-05) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-4, diff --git a/src/trunk/acopf/acopf_run.py b/src/trunk/acopf/acopf_run.py index 724f4dfa7..807bb0b18 100644 --- a/src/trunk/acopf/acopf_run.py +++ b/src/trunk/acopf/acopf_run.py @@ -3,7 +3,7 @@ from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf, ac_optimal_power_flow from GridCalEngine.Simulations.OPF.linear_opf_ts import run_linear_opf_ts -from GridCalEngine.enumerations import TransformerControlType, ReactivePowerControlMode +from GridCalEngine.enumerations import TransformerControlType from GridCalEngine.Simulations.NodalCapacity.nodal_capacity_ts_driver import NodalCapacityTimeSeriesDriver from GridCalEngine.Simulations.NodalCapacity.nodal_capacity_options import NodalCapacityOptions import numpy as np @@ -303,7 +303,7 @@ def case14(): for ll in range(len(grid.lines)): grid.lines[ll].monitor_loading = True - pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=False) opf_options = gce.OptimalPowerFlowOptions(solver=gce.SolverType.NONLINEAR_OPF, acopf_mode=gce.AcOpfMode.ACOPFslacks, ips_tolerance=1e-6, ips_iterations=50, verbose=1) res = run_nonlinear_opf(grid=grid, pf_options=pf_options, opf_options=opf_options, plot_error=True, pf_init=True) diff --git a/src/trunk/code_generation/property_maker.py b/src/trunk/code_generation/property_maker.py index 5f7bec2cd..bc7df2d99 100644 --- a/src/trunk/code_generation/property_maker.py +++ b/src/trunk/code_generation/property_maker.py @@ -3,7 +3,7 @@ "k_qf_m", "k_zero_beq", "k_vf_beq", - "k_vt_m", + "k_v_m", "k_qt_m", "k_pf_dp", "k_m", From 0d486b164966e1c69a28af19aab00aee8fc972bf Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 22 Jul 2024 10:33:56 +0100 Subject: [PATCH 010/218] many changes to eliminate control_mode (WIP 2) --- .idea/workspace.xml | 229 ++++++++---------- .../Compilers/circuit_to_data.py | 77 +++--- .../Compilers/circuit_to_newton_pa.py | 34 +-- src/GridCalEngine/DataStructures/__init__.py | 2 +- .../DataStructures/branch_data.py | 10 +- .../DataStructures/numerical_circuit.py | 3 +- src/GridCalEngine/DataStructures/vsc_data.py | 12 +- .../Devices/Branches/transformer.py | 7 +- src/GridCalEngine/Devices/Branches/vsc.py | 7 +- src/GridCalEngine/Devices/Branches/winding.py | 8 +- .../Parents/controllable_branch_parent.py | 13 +- .../Devices/Parents/editable_device.py | 6 +- src/GridCalEngine/IO/gridcal/json_parser.py | 45 ++-- src/GridCalEngine/IO/gridcal/pack_unpack.py | 5 +- .../IO/matpower/matpower_parser.py | 2 +- src/GridCalEngine/Simulations/NTC/ntc_opf.py | 4 +- .../Simulations/NTC/ntc_results.py | 9 +- .../Simulations/OPF/linear_opf_ts.py | 4 +- .../Topology/simulation_indices.py | 15 +- src/GridCalEngine/enumerations.py | 188 +++++++------- 20 files changed, 320 insertions(+), 360 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a8722dbc5..e2f9d768a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,65 +28,27 @@ - - + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - @@ -951,19 +678,19 @@ + - - + + + - - - + @@ -1710,13 +1437,9 @@ - - - - - - - + + + 1656059954202 @@ -2061,7 +1784,7 @@ - @@ -2094,7 +1817,7 @@ - @@ -2107,6 +1830,10 @@ + + + + @@ -2125,14 +1852,10 @@ - - - - - - - - @@ -2527,12 +2250,12 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py - 361 + 362 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py - 365 + 366 @@ -2647,17 +2370,17 @@ - - + - + + - + @@ -2680,8 +2403,8 @@ - + @@ -2690,13 +2413,13 @@ - - + + - + @@ -2715,15 +2438,16 @@ + - - + + @@ -2760,8 +2484,8 @@ - + @@ -2777,8 +2501,8 @@ - + @@ -2828,8 +2552,8 @@ - + @@ -3042,7 +2766,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index d5ee58283..df3ee8987 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -789,7 +789,6 @@ def get_branch_data(circuit: MultiCircuit, data.virtual_tap_f[i], data.virtual_tap_t[i] = elm.get_virtual_taps() - data.control_mode[i] = 0 data.tap_phase_control_mode[i] = 0 data.tap_module_control_mode[i] = 0 @@ -830,7 +829,6 @@ def get_branch_data(circuit: MultiCircuit, data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) - data.control_mode[ii] = 0 data.tap_phase_control_mode[i] = 0 data.tap_module_control_mode[i] = 0 @@ -1090,37 +1088,6 @@ def get_branch_data(circuit: MultiCircuit, data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) - ''' - type_0_free = '0:Free' - type_I_1 = '1:Vac' - type_I_2 = '2:Pdc+Qac' - type_I_3 = '3:Pdc+Vac' - type_II_4 = '4:Vdc+Qac' - type_II_5 = '5:Vdc+Vac' - type_III_6 = '6:Droop+Qac' - type_III_7 = '7:Droop+Vac' - ''' - - # if not use_stored_guess: - # if elm.control_mode == ConverterControlType.type_I_1: # 1a:Vac - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_I_3: # 3:Pdc+Vac - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_II_4: # 4:Vdc+Qac - # bus_data.Vbus[f] = elm.Vdc_set - # - # elif elm.control_mode == ConverterControlType.type_II_5: # 5:Vdc+Vac - # bus_data.Vbus[f] = elm.Vdc_set - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_III_7: # 7:Droop+Vac - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_IV_I: # 8:Vdc - # bus_data.Vbus[f] = elm.Vdc_set - ii += 1 # UPFC diff --git a/src/tests/test_opf_dispatches_controls.py b/src/tests/test_opf_dispatches_controls.py index f8ac0a993..cb4b919c1 100644 --- a/src/tests/test_opf_dispatches_controls.py +++ b/src/tests/test_opf_dispatches_controls.py @@ -16,7 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os from GridCalEngine.api import * -from GridCalEngine.enumerations import HvdcControlType, TransformerControlType, TapPhaseControl +from GridCalEngine.enumerations import HvdcControlType, TapModuleControl, TapPhaseControl def test_opf_hvdc(): diff --git a/src/trunk/acopf/acopf_admittance_tap_derivation.py b/src/trunk/acopf/acopf_admittance_tap_derivation.py index 57a4a67b3..5baf00031 100644 --- a/src/trunk/acopf/acopf_admittance_tap_derivation.py +++ b/src/trunk/acopf/acopf_admittance_tap_derivation.py @@ -2,11 +2,12 @@ import GridCalEngine.api as gce from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf, ac_optimal_power_flow -from GridCalEngine.enumerations import TransformerControlType +from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl from scipy.sparse import csc_matrix as csc from scipy import sparse as sp import numpy as np + def example_3bus_acopf(): """ @@ -32,11 +33,11 @@ def example_3bus_acopf(): grid.add_generator(b1, gce.Generator('G1', vset=1.00, Cost=1.0, Cost2=2.0)) grid.add_generator(b2, gce.Generator('G2', P=10, vset=0.995, Cost=1.0, Cost2=3.0)) - tr1 = gce.Transformer2W(b1, b2, 'Trafo1', control_mode=TransformerControlType.Pf, + tr1 = gce.Transformer2W(b1, b2, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.1, tap_phase=0.02, r=0.001, x=0.05) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(b3, b1, 'Trafo1', control_mode=TransformerControlType.PtQt, + tr2 = gce.Transformer2W(b3, b1, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=-0.02, r=0.001, x=0.05) grid.add_transformer2w(tr2) @@ -114,7 +115,6 @@ def compute_analytic_admittances(nc): def compute_finitediff_admittances(nc, tol=1e-5): - k_m = nc.k_m k_tau = nc.k_tau @@ -145,7 +145,6 @@ def compute_finitediff_admittances(nc, tol=1e-5): def compute_analytic_admittances_2dev(nc): - k_m = nc.k_m k_tau = nc.k_tau k_mtau = nc.k_mtau @@ -221,7 +220,6 @@ def compute_analytic_admittances_2dev(nc): def compute_finitediff_admittances_2dev(nc, tol=1e-5): - k_m = nc.k_m k_tau = nc.k_tau From 94a8ec6c599409c6033fd6db9d2be4a2d3ecf490 Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 24 Jul 2024 19:27:00 +0100 Subject: [PATCH 013/218] Converted the VSC to a child of ControllableBranchParent --- .../Compilers/circuit_to_data.py | 8 +- .../Devices/Branches/transformer.py | 126 ++++++------ src/GridCalEngine/Devices/Branches/vsc.py | 182 +++++++++--------- .../Parents/controllable_branch_parent.py | 79 +------- 4 files changed, 172 insertions(+), 223 deletions(-) diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index df3ee8987..61bb41d80 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -1078,11 +1078,11 @@ def get_branch_data(circuit: MultiCircuit, data.tap_angle_min[ii] = elm.tap_phase_min data.tap_angle_max[ii] = elm.tap_phase_max - data.Pfset[ii] = elm.Pdc_set - data.Qtset[ii] = elm.Qac_set + data.Pfset[ii] = elm.Pset + data.Qtset[ii] = 0.0 data.Kdp[ii] = elm.kdp - data.vf_set[ii] = elm.Vac_set - data.vt_set[ii] = elm.Vdc_set + # data.vf_set[ii] = elm.Vac_set + # data.vt_set[ii] = elm.Vdc_set data.tap_phase_control_mode[i] = elm.tap_phase_control_mode data.tap_module_control_mode[i] = elm.tap_module_control_mode data.contingency_enabled[ii] = int(elm.contingency_enabled) diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index 54f287d2f..539810467 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -16,12 +16,14 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import numpy as np -from typing import Tuple, Union +from typing import Tuple, Union, List from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import (WindingsConnection, BuildStatus, TapPhaseControl, TapModuleControl, TapChangerTypes) +from GridCalEngine.Devices.Branches.tap_changer import TapChanger +from GridCalEngine.enumerations import (WindingsConnection, BuildStatus, TapPhaseControl, + TapModuleControl, SubObjectType, TapChangerTypes) from GridCalEngine.Devices.Parents.controllable_branch_parent import ControllableBranchParent from GridCalEngine.Devices.Branches.transformer_type import TransformerType, reverse_transformer_short_circuit_study from GridCalEngine.Devices.Parents.editable_device import DeviceType @@ -65,7 +67,6 @@ def __init__(self, temp_base: float = 20.0, temp_oper: float = 20.0, alpha: float = 0.00330, - # control_mode: TransformerControlType = TransformerControlType.fixed, # legacy? tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, template: TransformerType = None, @@ -125,7 +126,6 @@ def __init__(self, :param temp_base: Base temperature at which `r` is measured in °C :param temp_oper: Operating temperature in °C :param alpha: Thermal constant of the material in °C - :param control_mode: Control model :param template: Branch template :param contingency_factor: Rating factor in case of contingency :param contingency_enabled: enabled for contingencies (Legacy) @@ -194,12 +194,7 @@ def __init__(self, capex=capex, opex=opex, build_status=build_status, - device_type=DeviceType.Transformer2WDevice, - tc_total_positions=tc_total_positions, - tc_neutral_position=tc_neutral_position, - tc_dV=tc_dV, - tc_asymmetry_angle=tc_asymmetry_angle, - tc_type=tc_type) + device_type=DeviceType.Transformer2WDevice) # set the high and low voltage values self.HV = HV @@ -224,7 +219,24 @@ def __init__(self, # type template self.template = template + # tap changer object + self._tap_changer = TapChanger(total_positions=tc_total_positions, + neutral_position=tc_neutral_position, + dV=tc_dV, + asymmetry_angle=tc_asymmetry_angle, + tc_type=tc_type) + + # Tap module + if tap_module != 0: + self.tap_module = tap_module + self._tap_changer.set_tap_module(self.tap_module) + else: + self.tap_module = self._tap_changer.get_tap_module() + # register + self.register(key='tap_changer', units='', tpe=SubObjectType.TapChanger, definition='Tap changer object', + editable=False) + self.register(key='HV', units='kV', tpe=float, definition='High voltage rating') self.register(key='LV', units='kV', tpe=float, definition='Low voltage rating') self.register(key='Sn', units='MVA', tpe=float, definition='Nominal power') @@ -238,6 +250,54 @@ def __init__(self, self.register(key='template', units='', tpe=DeviceType.TransformerTypeDevice, definition='', editable=False) + @property + def tap_changer(self) -> TapChanger: + """ + Cost profile + :return: Profile + """ + return self._tap_changer + + @tap_changer.setter + def tap_changer(self, val: TapChanger): + if isinstance(val, TapChanger): + self._tap_changer = val + else: + raise Exception(str(type(val)) + 'not supported to be set into a tap_changer') + + def tap_up(self): + """ + Move the tap changer one position up + """ + self.tap_changer.tap_up() + self.tap_module = self.tap_changer.get_tap_module() + self.tap_phase = self.tap_changer.get_tap_phase() + + def tap_down(self): + """ + Move the tap changer one position up + """ + self.tap_changer.tap_down() + self.tap_module = self.tap_changer.get_tap_module() + self.tap_phase = self.tap_changer.get_tap_phase() + + def apply_tap_changer(self, tap_changer: TapChanger): + """ + Apply a new tap changer + + Argument: + + **tap_changer** (:class:`GridCalEngine.Devices.branch.TapChanger`): Tap changer object + + """ + self.tap_changer = tap_changer + + if self.tap_module != 0: + self.tap_changer.set_tap_module(tap_module=self.tap_module) + else: + self.tap_module = self.tap_changer.get_tap_module() + self.tap_phase = self.tap_changer.get_tap_phase() + def set_hv_and_lv(self, HV: float, LV: float): """ set the high and low voltage values @@ -261,50 +321,6 @@ def set_hv_and_lv(self, HV: float, LV: float): else: self.LV = LV - # def copy(self, bus_dict=None): - # """ - # Returns a copy of the branch - # @return: A new with the same content as this - # """ - # - # if bus_dict is None: - # f = self.bus_from - # t = self.bus_to - # else: - # f = bus_dict[self.bus_from] - # t = bus_dict[self.bus_to] - # - # # z_series = complex(self.R, self.X) - # # y_shunt = complex(self.G, self.B) - # b = Transformer2W(bus_from=f, - # bus_to=t, - # name=self.name, - # r=self.R, - # x=self.X, - # g=self.G, - # b=self.B, - # rate=self.rate, - # tap_module=self.tap_module, - # tap_phase=self.tap_phase, - # active=self.active, - # mttf=self.mttf, - # mttr=self.mttr, - # vset=self.vset, - # temp_base=self.temp_base, - # temp_oper=self.temp_oper, - # alpha=self.alpha, - # template=self.template, - # opex=self.opex, - # capex=self.capex) - # - # b.regulation_bus = self.regulation_bus - # b.regulation_cn = self.regulation_cn - # b.active_prof = self.active_prof - # b.rate_prof = self.rate_prof - # b.Cost_prof = self.Cost_prof - # - # return b - def get_from_to_nominal_voltages(self) -> Tuple[float, float]: """ @@ -394,7 +410,7 @@ def apply_template(self, obj: TransformerType, Sbase, logger=Logger()): else: self.template = obj - def get_save_data(self): + def get_save_data(self) -> Union[None, List[str]]: """ Return the data that matches the edit_headers :return: diff --git a/src/GridCalEngine/Devices/Branches/vsc.py b/src/GridCalEngine/Devices/Branches/vsc.py index 4299ac3bc..aa956668c 100644 --- a/src/GridCalEngine/Devices/Branches/vsc.py +++ b/src/GridCalEngine/Devices/Branches/vsc.py @@ -22,30 +22,57 @@ from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import BuildStatus -from GridCalEngine.Devices.Parents.branch_parent import BranchParent +from GridCalEngine.enumerations import BuildStatus, TapModuleControl, TapPhaseControl +from GridCalEngine.Devices.Parents.controllable_branch_parent import ControllableBranchParent from GridCalEngine.Devices.Parents.editable_device import DeviceType -class VSC(BranchParent): +class VSC(ControllableBranchParent): def __init__(self, - bus_from: Bus = None, bus_to: Bus = None, + bus_from: Bus = None, + bus_to: Bus = None, cn_from: ConnectivityNode = None, cn_to: ConnectivityNode = None, - name='VSC', idtag=None, code='', active=True, - r=0.0001, x=0.05, - tap_module=1.0, tap_module_max=1.1, tap_module_min=0.8, - tap_phase=0.1, tap_phase_max=6.28, tap_phase_min=-6.28, - Beq=0.001, Beq_min=-0.1, Beq_max=0.1, - G0sw=1e-5, rate=1e-9, kdp=-0.05, k=1.0, - Pfset=0.0, Qfset=0.0, Vac_set=1.0, Vdc_set=1.0, - alpha1=0.0001, alpha2=0.015, alpha3=0.2, - mttf=0, mttr=0, cost=100, contingency_factor=1.0, + name='VSC', + idtag=None, + code='', + active=True, + r=0.0001, + x=0.05, + tap_module=1.0, + tap_module_max=1.1, + tap_module_min=0.8, + tap_phase=0.1, + tap_phase_max=6.28, + tap_phase_min=-6.28, + Beq=0.001, + Beq_min=-0.1, + Beq_max=0.1, + G0sw=1e-5, + rate=1e-9, + kdp=-0.05, + k=1.0, + alpha1=0.0001, + alpha2=0.015, + alpha3=0.2, + mttf=0.0, + mttr=0.0, + tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, + tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, + vset: float = 1.0, + Pset: float = 0.0, + cost=100, + contingency_factor=1.0, protection_rating_factor: float = 1.4, - contingency_enabled=True, monitor_loading=True, - r0=0.0001, x0=0.05, r2=0.0001, x2=0.05, - capex=0, opex=0, build_status: BuildStatus = BuildStatus.Commissioned): + contingency_enabled=True, + monitor_loading=True, + r0=0.0001, + x0=0.05, + r2=0.0001, + x2=0.05, + capex=0, + opex=0, build_status: BuildStatus = BuildStatus.Commissioned): """ Voltage source converter (VSC) :param bus_from: @@ -69,11 +96,6 @@ def __init__(self, :param rate: :param kdp: :param k: - :param control_mode: - :param Pfset: - :param Qfset: - :param Vac_set: - :param Vdc_set: :param alpha1: :param alpha2: :param alpha3: @@ -92,27 +114,57 @@ def __init__(self, :param build_status: """ - BranchParent.__init__(self, - name=name, - idtag=idtag, - code=code, - bus_from=bus_from, - bus_to=bus_to, - cn_from=cn_from, - cn_to=cn_to, - active=active, - rate=rate, - contingency_factor=contingency_factor, - protection_rating_factor=protection_rating_factor, - contingency_enabled=contingency_enabled, - monitor_loading=monitor_loading, - mttf=mttf, - mttr=mttr, - build_status=build_status, - capex=capex, - opex=opex, - Cost=cost, - device_type=DeviceType.VscDevice) + ControllableBranchParent.__init__(self, + name=name, + idtag=idtag, + code=code, + bus_from=bus_from, + bus_to=bus_to, + cn_from=cn_from, + cn_to=cn_to, + active=active, + rate=rate, + r=r, + x=x, + g=0.0, + b=0.0, + tap_module=tap_module, + tap_module_max=tap_module_max, + tap_module_min=tap_module_min, + tap_phase=tap_phase, + tap_phase_max=tap_phase_max, + tap_phase_min=tap_phase_min, + tolerance=0.0, + Cost=cost, + mttf=mttf, + mttr=mttr, + vset=vset, + Pset=Pset, + regulation_branch=None, + regulation_bus=None, + regulation_cn=None, + temp_base=20.0, + temp_oper=20.0, + alpha=0.00330, + # control_mode=control_mode, + tap_module_control_mode=tap_module_control_mode, + tap_phase_control_mode=tap_phase_control_mode, + contingency_factor=contingency_factor, + protection_rating_factor=protection_rating_factor, + contingency_enabled=contingency_enabled, + monitor_loading=monitor_loading, + r0=r0, + x0=x0, + g0=0.0, + b0=0.0, + r2=r2, + x2=x2, + g2=0.0, + b2=0.0, + capex=capex, + opex=opex, + build_status=build_status, + device_type=DeviceType.VscDevice) # the VSC must only connect from an DC to a AC bus # this connectivity sense is done to keep track with the articles that set it @@ -136,19 +188,6 @@ def __init__(self, self.bus_from = None self.bus_to = None - # List of measurements - self.measurements = list() - - # total impedance and admittance in p.u. - self.R = r - self.X = x - - self.R0 = r0 - self.X0 = x0 - - self.R2 = r2 - self.X2 = x2 - self.G0sw = G0sw self.Beq = Beq self.tap_module = tap_module @@ -162,45 +201,16 @@ def __init__(self, self.Beq_min = Beq_min self.Beq_max = Beq_max - self.Pdc_set = Pfset - self.Qac_set = Qfset - self.Vac_set = Vac_set - self.Vdc_set = Vdc_set - # self.control_mode = control_mode - self.kdp = kdp self.alpha1 = alpha1 self.alpha2 = alpha2 self.alpha3 = alpha3 - self.register(key='R', units='p.u.', tpe=float, definition='Resistive positive sequence losses.', - old_names=['R1']) - self.register(key='X', units='p.u.', tpe=float, definition='Magnetic positive sequence losses.', - old_names=['X1']) - self.register(key='R0', units='p.u.', tpe=float, definition='Resistive zero sequence losses.') - self.register(key='X0', units='p.u.', tpe=float, definition='Magnetic zero sequence losses.') - self.register(key='R2', units='p.u.', tpe=float, definition='Resistive negative sequence losses.') - self.register(key='X2', units='p.u.', tpe=float, definition='Magnetic negative sequence losses.') - self.register(key='G0sw', units='p.u.', tpe=float, definition='Inverter losses.') self.register(key='Beq', units='p.u.', tpe=float, definition='Total shunt susceptance.') self.register(key='Beq_max', units='p.u.', tpe=float, definition='Max total shunt susceptance.') self.register(key='Beq_min', units='p.u.', tpe=float, definition='Min total shunt susceptance.') - self.register(key='tap_module', units='', tpe=float, definition='Tap changer module, it a value close to 1.0', - old_names=['m']) - self.register(key='tap_module_max', units='', tpe=float, definition='Max tap changer module', - old_names=['m_max']) - self.register(key='tap_module_min', units='', tpe=float, definition='Min tap changer module', - old_names=['m_min']) - - self.register(key='tap_phase', units='rad', tpe=float, definition='Converter firing angle.', - old_names=['theta']) - self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max converter firing angle.', - old_names=['theta_max']) - self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min converter firing angle.', - old_names=['theta_min']) - self.register(key='alpha1', units='', tpe=float, definition='Converter losses curve parameter (IEC 62751-2 loss Correction).') self.register(key='alpha2', units='', tpe=float, @@ -210,10 +220,6 @@ def __init__(self, self.register(key='k', units='p.u./p.u.', tpe=float, definition='Converter factor, typically 0.866.') self.register(key='kdp', units='p.u./p.u.', tpe=float, definition='Droop Power/Voltage slope.') - self.register(key='Pdc_set', units='MW', tpe=float, definition='DC power set point.') - self.register(key='Qac_set', units='MVAr', tpe=float, definition='AC Reactive power set point.') - self.register(key='Vac_set', units='p.u.', tpe=float, definition='AC voltage set point.') - self.register(key='Vdc_set', units='p.u.', tpe=float, definition='DC voltage set point.') def get_weight(self): """ diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index 824a4576e..df5a29fb3 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -19,10 +19,8 @@ from typing import Union from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import (BuildStatus, TapModuleControl, TapPhaseControl, - SubObjectType, TapChangerTypes) +from GridCalEngine.enumerations import (BuildStatus, TapModuleControl, TapPhaseControl) from GridCalEngine.Devices.Parents.branch_parent import BranchParent -from GridCalEngine.Devices.Branches.tap_changer import TapChanger from GridCalEngine.Devices.Parents.editable_device import DeviceType from GridCalEngine.Devices.profile import Profile @@ -79,12 +77,7 @@ def __init__(self, capex: float, opex: float, build_status: BuildStatus, - device_type: DeviceType, - tc_total_positions: int = 5, - tc_neutral_position: int = 2, - tc_dV: float = 0.01, - tc_asymmetry_angle=90, - tc_type: TapChangerTypes = TapChangerTypes.NoRegulation): + device_type: DeviceType): """ Transformer constructor :param name: Name of the branch @@ -183,20 +176,8 @@ def __init__(self, # Conductor thermal constant (1/ºC) self.alpha = alpha - # tap changer object - self._tap_changer = TapChanger(total_positions=tc_total_positions, - neutral_position=tc_neutral_position, - dV=tc_dV, - asymmetry_angle=tc_asymmetry_angle, - tc_type=tc_type) - # Tap module - if tap_module != 0: - self.tap_module = tap_module - self._tap_changer.set_tap_module(self.tap_module) - else: - self.tap_module = self._tap_changer.get_tap_module() - + self.tap_module = tap_module self._tap_module_prof = Profile(default_value=tap_module, data_type=float) # Tap angle @@ -238,9 +219,6 @@ def __init__(self, definition='Tolerance expected for the impedance values% ' 'is expected for transformers0% for lines.') - self.register(key='tap_changer', units='', tpe=SubObjectType.TapChanger, definition='Tap changer object', - editable=False) - self.register(key='tap_module', units='', tpe=float, definition='Tap changer module, it a value close to 1.0', profile_name='tap_module_prof', old_names=['tap']) self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value') @@ -251,9 +229,6 @@ def __init__(self, self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) - # self.register(key='control_mode', units='', tpe=TransformerControlType, - # definition='Control type of the transformer') - self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, definition='Control available with the tap module') @@ -334,21 +309,6 @@ def temp_oper_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a temp_oper_prof') - @property - def tap_changer(self) -> TapChanger: - """ - Cost profile - :return: Profile - """ - return self._tap_changer - - @tap_changer.setter - def tap_changer(self, val: TapChanger): - if isinstance(val, TapChanger): - self._tap_changer = val - else: - raise Exception(str(type(val)) + 'not supported to be set into a tap_changer') - @property def R_corrected(self): """ @@ -385,36 +345,3 @@ def flip(self): """ F, T = self.bus_from, self.bus_to self.bus_to, self.bus_from = F, T - - def tap_up(self): - """ - Move the tap changer one position up - """ - self.tap_changer.tap_up() - self.tap_module = self.tap_changer.get_tap_module() - self.tap_phase = self.tap_changer.get_tap_phase() - - def tap_down(self): - """ - Move the tap changer one position up - """ - self.tap_changer.tap_down() - self.tap_module = self.tap_changer.get_tap_module() - self.tap_phase = self.tap_changer.get_tap_phase() - - def apply_tap_changer(self, tap_changer: TapChanger): - """ - Apply a new tap changer - - Argument: - - **tap_changer** (:class:`GridCalEngine.Devices.branch.TapChanger`): Tap changer object - - """ - self.tap_changer = tap_changer - - if self.tap_module != 0: - self.tap_changer.set_tap_module(tap_module=self.tap_module) - else: - self.tap_module = self.tap_changer.get_tap_module() - self.tap_phase = self.tap_changer.get_tap_phase() From a1cbb3c09107cd7bb3ff534060c4ce19348f4f82 Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 25 Jul 2024 18:40:23 +0100 Subject: [PATCH 014/218] working on fixing the simulation indices --- .idea/workspace.xml | 52 ++--- .../Compilers/circuit_to_data.py | 17 +- .../DataStructures/branch_data.py | 7 + .../DataStructures/numerical_circuit.py | 3 +- src/GridCalEngine/Devices/Branches/vsc.py | 12 +- src/GridCalEngine/Devices/Substation/bus.py | 3 +- .../Topology/simulation_indices.py | 201 +----------------- 7 files changed, 49 insertions(+), 246 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ed9878eb6..d8374ace6 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,12 @@ - + - - + + + + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.ieee9_Kriti.executor": "Debug", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - + @@ -682,16 +689,16 @@ - + - + + - @@ -1441,7 +1448,8 @@ - + + 1656059954202 @@ -1786,7 +1794,7 @@ - @@ -1832,7 +1840,6 @@ - @@ -1857,7 +1864,8 @@ - @@ -2368,21 +2376,27 @@ 202 - - + - + + - + @@ -2405,8 +2419,8 @@ - + @@ -2415,13 +2429,13 @@ - - + + - + @@ -2435,6 +2449,7 @@ + @@ -2446,10 +2461,10 @@ - - + + @@ -2486,8 +2501,8 @@ - + @@ -2503,8 +2518,8 @@ - + @@ -2554,8 +2569,8 @@ - + @@ -2768,7 +2783,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 44d596ab2..4470c3da9 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -17,6 +17,7 @@ from __future__ import annotations from typing import Dict, Union, TYPE_CHECKING, Tuple from GridCalEngine.basic_structures import Logger +import GridCalEngine.Devices as dev from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -687,6 +688,171 @@ def get_battery_data(circuit: MultiCircuit, return data +def fill_parent_branch(i: int, + elm: Union[dev.Line, dev.DcLine, dev.Transformer2W, + dev.Winding, dev.VSC, dev.UPFC, dev.SeriesReactance], + data: ds.BranchData, + bus_dict: Dict[Bus, int], + apply_temperature: bool, + branch_tolerance_mode: BranchImpedanceMode, + t_idx: int = -1, + time_series: bool = False, + is_dc_branch: bool = False, ): + """ + + :param i: + :param elm: + :param data: + :param bus_dict: + :param apply_temperature: + :param branch_tolerance_mode: + :param t_idx: + :param time_series: + :param is_dc_branch: + :return: + """ + data.names[i] = elm.name + data.idtag[i] = elm.idtag + + data.mttf[i] = elm.mttf + data.mttr[i] = elm.mttr + + if time_series: + data.active[i] = elm.active_prof[t_idx] + data.rates[i] = elm.rate_prof[t_idx] + data.contingency_rates[i] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] + data.protection_rates[i] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] + + data.overload_cost[i] = elm.Cost_prof[t_idx] + + else: + data.active[i] = elm.active + data.rates[i] = elm.rate + data.contingency_rates[i] = elm.rate * elm.contingency_factor + data.protection_rates[i] = elm.rate * elm.protection_rating_factor + + data.overload_cost[i] = elm.Cost + + f = bus_dict[elm.bus_from] + t = bus_dict[elm.bus_to] + data.C_branch_bus_f[i, f] = 1 + data.C_branch_bus_t[i, t] = 1 + data.F[i] = f + data.T[i] = t + + if apply_temperature: + data.R[i] = elm.R_corrected + else: + data.R[i] = elm.R + + if branch_tolerance_mode == BranchImpedanceMode.Lower: + data.R[i] *= (1 - elm.tolerance / 100.0) + elif branch_tolerance_mode == BranchImpedanceMode.Upper: + data.R[i] *= (1 + elm.tolerance / 100.0) + + if not is_dc_branch: + data.X[i] = elm.X + data.B[i] = elm.B + + data.R0[i] = elm.R0 + data.X0[i] = elm.X0 + data.B0[i] = elm.B0 + + data.R2[i] = elm.R2 + data.X2[i] = elm.X2 + data.B2[i] = elm.B2 + + data.contingency_enabled[i] = int(elm.contingency_enabled) + data.monitor_loading[i] = int(elm.monitor_loading) + + data.virtual_tap_f[i], data.virtual_tap_t[i] = elm.get_virtual_taps() + + return f, t + + +def fill_controllable_branch(ii: int, + elm: Union[dev.Transformer2W, dev.Winding, dev.VSC, dev.UPFC], + data: ds.BranchData, + bus_data: ds.BusData, + bus_dict: Dict[Bus, int], + apply_temperature: bool, + branch_tolerance_mode: BranchImpedanceMode, + t_idx: int = -1, + time_series: bool = False, + opf_results: Union[OptimalPowerFlowResults, None] = None, + use_stored_guess: bool = False, ): + """ + + :param ii: + :param elm: + :param data: + :param bus_data: + :param bus_dict: + :param apply_temperature: + :param branch_tolerance_mode: + :param t_idx: + :param time_series: + :param opf_results: + :param use_stored_guess: + :return: + """ + _, t = fill_parent_branch(i=ii, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=False) + + data.conn[ii] = elm.conn + + if time_series: + + data.tap_phase_control_mode[ii] = elm.tap_phase_control_mode_prof[t_idx] + data.tap_module_control_mode[ii] = elm.tap_module_control_mode_prof[t_idx] + + reg_bus = elm.bus_to if elm.regulation_bus is None else elm.regulation_bus + data.tap_module_buses[ii] = bus_dict[reg_bus] + + data.Pset[ii] = elm.Pset_prof[t_idx] + data.vset[ii] = elm.vset_prof[t_idx] + + if opf_results is not None: + data.tap_module[ii] = elm.tap_module + data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] + else: + data.tap_module[ii] = elm.tap_module_prof[t_idx] + data.tap_angle[ii] = elm.tap_phase_prof[t_idx] + else: + + data.tap_phase_control_mode[ii] = elm.tap_phase_control_mode + data.tap_module_control_mode[ii] = elm.tap_module_control_mode + + reg_bus = elm.bus_to if elm.regulation_bus is None else elm.regulation_bus + data.tap_module_buses[ii] = bus_dict[reg_bus] + + data.Pset[ii] = elm.Pset + data.vset[ii] = elm.vset + + if opf_results is not None: + data.tap_module[ii] = elm.tap_module + data.tap_angle[ii] = opf_results.phase_shift[ii] + else: + data.tap_module[ii] = elm.tap_module + data.tap_angle[ii] = elm.tap_phase + + data.tap_module_min[ii] = elm.tap_module_min + data.tap_module_max[ii] = elm.tap_module_max + data.tap_angle_min[ii] = elm.tap_phase_min + data.tap_angle_max[ii] = elm.tap_phase_max + + if not use_stored_guess: + if elm.tap_module_control_mode == TapModuleControl.Vm: + bus_data.Vbus[t] = elm.vset + + def get_branch_data(circuit: MultiCircuit, bus_dict: Dict[Bus, int], bus_data: ds.BusData, @@ -702,6 +868,7 @@ def get_branch_data(circuit: MultiCircuit, Compile BranchData for a time step or the snapshot :param circuit: MultiCircuit :param bus_dict: Dictionary of buses to compute the indices + :param bus_data: BusData :param bus_voltage_used: :param apply_temperature: apply the temperature correction? :param branch_tolerance_mode: BranchImpedanceMode @@ -721,200 +888,46 @@ def get_branch_data(circuit: MultiCircuit, # Compile the lines for i, elm in enumerate(circuit.lines): # generic stuff - data.names[i] = elm.name - data.idtag[i] = elm.idtag - - data.mttf[i] = elm.mttf - data.mttr[i] = elm.mttr - - if time_series: - data.active[i] = elm.active_prof[t_idx] - data.rates[i] = elm.rate_prof[t_idx] - data.contingency_rates[i] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[i] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - - data.overload_cost[i] = elm.Cost_prof[t_idx] - - else: - data.active[i] = elm.active - data.rates[i] = elm.rate - data.contingency_rates[i] = elm.rate * elm.contingency_factor - data.protection_rates[i] = elm.rate * elm.protection_rating_factor - - data.overload_cost[i] = elm.Cost - - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - data.C_branch_bus_f[i, f] = 1 - data.C_branch_bus_t[i, t] = 1 - data.F[i] = f - data.T[i] = t - - if apply_temperature: - data.R[i] = elm.R_corrected - else: - data.R[i] = elm.R - - if branch_tolerance_mode == BranchImpedanceMode.Lower: - data.R[i] *= (1 - elm.tolerance / 100.0) - elif branch_tolerance_mode == BranchImpedanceMode.Upper: - data.R[i] *= (1 + elm.tolerance / 100.0) - - data.X[i] = elm.X - data.B[i] = elm.B - - data.R0[i] = elm.R0 - data.X0[i] = elm.X0 - data.B0[i] = elm.B0 - - data.R2[i] = elm.R2 - data.X2[i] = elm.X2 - data.B2[i] = elm.B2 - - # data.conn[i] = elm.conn - - data.contingency_enabled[i] = int(elm.contingency_enabled) - data.monitor_loading[i] = int(elm.monitor_loading) - - data.virtual_tap_f[i], data.virtual_tap_t[i] = elm.get_virtual_taps() - - data.tap_phase_control_mode[i] = 0 - data.tap_module_control_mode[i] = 0 + fill_parent_branch(i=i, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=False) ii += 1 # DC-lines for i, elm in enumerate(circuit.dc_lines): # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - data.dc[ii] = 1 - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - data.tap_phase_control_mode[i] = 0 - data.tap_module_control_mode[i] = 0 - - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - if apply_temperature: - data.R[ii] = elm.R_corrected - else: - data.R[ii] = elm.R - - if branch_tolerance_mode == BranchImpedanceMode.Lower: - data.R[ii] *= (1 - elm.tolerance / 100.0) - elif branch_tolerance_mode == BranchImpedanceMode.Upper: - data.R[ii] *= (1 + elm.tolerance / 100.0) + fill_parent_branch(i=ii, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=True) ii += 1 # 2-winding transformers for i, elm in enumerate(circuit.transformers2w): - - # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.R[ii] = elm.R - data.X[ii] = elm.X - data.G[ii] = elm.G - data.B[ii] = elm.B - - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - data.G0[ii] = elm.G0 - data.B0[ii] = elm.B0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 - data.G2[ii] = elm.G2 - data.B2[ii] = elm.B2 - - data.conn[ii] = elm.conn - - if time_series: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] - else: - data.tap_module[ii] = elm.tap_module_prof[t_idx] - data.tap_angle[ii] = elm.tap_phase_prof[t_idx] - else: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[ii] - else: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = elm.tap_phase - - data.tap_module_min[ii] = elm.tap_module_min - data.tap_module_max[ii] = elm.tap_module_max - data.tap_angle_min[ii] = elm.tap_phase_min - data.tap_angle_max[ii] = elm.tap_phase_max - - data.Pfset[ii] = elm.Pset - - data.tap_phase_control_mode[i] = elm.tap_phase_control_mode - data.tap_module_control_mode[i] = elm.tap_module_control_mode - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - if not use_stored_guess: - if elm.tap_module_control_mode == TapModuleControl.Vm: - bus_data.Vbus[t] = elm.vset + fill_controllable_branch(ii=ii, + elm=elm, + data=data, + bus_data=bus_data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + opf_results=opf_results, + use_stored_guess=use_stored_guess) ii += 1 @@ -923,81 +936,17 @@ def get_branch_data(circuit: MultiCircuit, if elm.bus_from is not None and elm.bus_to is not None: # generic stuff - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.R[ii] = elm.R - data.X[ii] = elm.X - data.G[ii] = elm.G - data.B[ii] = elm.B - - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - data.G0[ii] = elm.G0 - data.B0[ii] = elm.B0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 - data.G2[ii] = elm.G2 - data.B2[ii] = elm.B2 - - data.conn[ii] = elm.conn - - if time_series: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] - else: - data.tap_module[ii] = elm.tap_module_prof[t_idx] - data.tap_angle[ii] = elm.tap_phase_prof[t_idx] - else: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[ii] - else: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = elm.tap_phase - - data.tap_module_min[ii] = elm.tap_module_min - data.tap_module_max[ii] = elm.tap_module_max - data.tap_angle_min[ii] = elm.tap_phase_min - data.tap_angle_max[ii] = elm.tap_phase_max - - data.Pfset[ii] = elm.Pset - - data.tap_phase_control_mode[i] = elm.tap_phase_control_mode - data.tap_module_control_mode[i] = elm.tap_module_control_mode - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - if not use_stored_guess: - if elm.tap_module_control_mode == TapModuleControl.Vm: - bus_data.Vbus[t] = elm.vset + fill_controllable_branch(ii=ii, + elm=elm, + data=data, + bus_data=bus_data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + opf_results=opf_results, + use_stored_guess=use_stored_guess) ii += 1 @@ -1008,74 +957,18 @@ def get_branch_data(circuit: MultiCircuit, for i, elm in enumerate(circuit.vsc_devices): # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.R[ii] = elm.R - data.X[ii] = elm.X - - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 - - data.G0sw[ii] = elm.G0sw - data.Beq[ii] = elm.Beq - data.tap_module[ii] = elm.tap_module - data.tap_module_max[ii] = elm.tap_module_max - data.tap_module_min[ii] = elm.tap_module_min - data.alpha1[ii] = elm.alpha1 - data.alpha2[ii] = elm.alpha2 - data.alpha3[ii] = elm.alpha3 - data.k[ii] = elm.k # 0.8660254037844386 # sqrt(3)/2 (do not confuse with k droop) - - if time_series: - if opf_results is not None: - data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] - else: - data.tap_angle[ii] = elm.tap_phase - else: - if opf_results is not None: - data.tap_angle[ii] = opf_results.phase_shift[ii] - else: - data.tap_angle[ii] = elm.tap_phase - - data.tap_angle_min[ii] = elm.tap_phase_min - data.tap_angle_max[ii] = elm.tap_phase_max - data.Pfset[ii] = elm.Pset - data.Qtset[ii] = 0.0 + fill_controllable_branch(ii=ii, + elm=elm, + data=data, + bus_data=bus_data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + opf_results=opf_results, + use_stored_guess=use_stored_guess) data.Kdp[ii] = elm.kdp - # data.vf_set[ii] = elm.Vac_set - # data.vt_set[ii] = elm.Vdc_set - data.tap_phase_control_mode[i] = elm.tap_phase_control_mode - data.tap_module_control_mode[i] = elm.tap_module_control_mode - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) ii += 1 @@ -1121,7 +1014,7 @@ def get_branch_data(circuit: MultiCircuit, ysh1 = elm.get_ysh1() data.Beq[ii] = ysh1.imag - data.Pfset[ii] = elm.Pfset + data.Pset[ii] = elm.Pfset data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) @@ -1134,59 +1027,15 @@ def get_branch_data(circuit: MultiCircuit, # Series reactance for i, elm in enumerate(circuit.series_reactances): # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - data.dc[ii] = 0 - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - data.tap_phase_control_mode[i] = 0 - data.tap_module_control_mode[i] = 0 - - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - if apply_temperature: - data.R[ii] = elm.R_corrected - else: - data.R[ii] = elm.R - - if branch_tolerance_mode == BranchImpedanceMode.Lower: - data.R[ii] *= (1 - elm.tolerance / 100.0) - elif branch_tolerance_mode == BranchImpedanceMode.Upper: - data.R[ii] *= (1 + elm.tolerance / 100.0) - - data.X[ii] = elm.X - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 + fill_parent_branch(i=ii, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=False) ii += 1 return data diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 5c1021c21..098f1d819 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -93,11 +93,8 @@ def __init__(self, nelm: int, nbus: int): self.virtual_tap_t: Vec = np.ones(self.nelm, dtype=float) self.virtual_tap_f: Vec = np.ones(self.nelm, dtype=float) - self.Pfset: Vec = np.zeros(nelm, dtype=float) - self.Qfset: Vec = np.zeros(nelm, dtype=float) - self.Qtset: Vec = np.zeros(nelm, dtype=float) - self.vf_set: Vec = np.ones(nelm, dtype=float) - self.vt_set: Vec = np.ones(nelm, dtype=float) + self.Pset: Vec = np.zeros(nelm, dtype=float) # always over the from bus + self.vset: Vec = np.ones(nelm, dtype=float) self.Kdp: Vec = np.ones(self.nelm, dtype=float) self.Kdp_va: Vec = np.ones(self.nelm, dtype=float) @@ -192,11 +189,8 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.tap_angle_max = self.tap_angle_max[elm_idx] data.Beq = self.Beq[elm_idx] data.G0sw = self.G0sw[elm_idx] - data.Pfset = self.Pfset[elm_idx] - data.Qfset = self.Qfset[elm_idx] - data.Qtset = self.Qtset[elm_idx] - data.vf_set = self.vf_set[elm_idx] - data.vt_set = self.vt_set[elm_idx] + data.Pset = self.Pset[elm_idx] + data.vset = self.vset[elm_idx] data.C_branch_bus_f = self.C_branch_bus_f[np.ix_(elm_idx, bus_idx)] data.C_branch_bus_t = self.C_branch_bus_t[np.ix_(elm_idx, bus_idx)] @@ -281,11 +275,8 @@ def copy(self) -> "BranchData": data.tap_angle_max = self.tap_angle_max.copy() data.Beq = self.Beq.copy() data.G0sw = self.G0sw.copy() - data.Pfset = self.Pfset.copy() - data.Qfset = self.Qfset.copy() - data.Qtset = self.Qtset.copy() - data.vf_set = self.vf_set.copy() - data.vt_set = self.vt_set.copy() + data.Pset = self.Pset.copy() + data.vset = self.vset.copy() data.C_branch_bus_f = self.C_branch_bus_f.copy() data.C_branch_bus_t = self.C_branch_bus_t.copy() diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 566871e0f..efcf79246 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -920,8 +920,8 @@ def get_fast_decoupled_amittances(self) -> ycalc.FastDecoupledAdmittanceMatrices X=self.branch_data.X, B=self.branch_data.B, tap_module=self.branch_data.tap_module, - vtap_f=self.branch_data.vf_set, - vtap_t=self.branch_data.vt_set, + vtap_f=self.branch_data.virtual_tap_f, + vtap_t=self.branch_data.virtual_tap_t, Cf=self.Cf, Ct=self.Ct, ) diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index df5a29fb3..a0bbe82fb 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -180,22 +180,27 @@ def __init__(self, self.tap_module = tap_module self._tap_module_prof = Profile(default_value=tap_module, data_type=float) + self.tap_module_max = tap_module_max + self.tap_module_min = tap_module_min + + self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode + self._tap_phase_control_mode_prof = Profile(default_value=tap_phase_control_mode, data_type=TapPhaseControl) + + self.Pset = Pset + self._Pset_prof = Profile(default_value=Pset, data_type=float) + # Tap angle self.tap_phase = tap_phase self._tap_phase_prof = Profile(default_value=tap_phase, data_type=float) - self.tap_module_max = tap_module_max - self.tap_module_min = tap_module_min self.tap_phase_max = tap_phase_max self.tap_phase_min = tap_phase_min - self.vset = vset - self.Pset = Pset - - # self.control_mode: TransformerControlType = control_mode # Legacy - self.tap_module_control_mode: TapModuleControl = tap_module_control_mode - self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode + self._tap_module_control_mode_prof = Profile(default_value=tap_module_control_mode, data_type=TapModuleControl) + + self.vset = vset + self._vset_prof = Profile(default_value=vset, data_type=float) self.regulation_branch: BranchParent = regulation_branch @@ -224,25 +229,13 @@ def __init__(self, self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value') self.register(key='tap_module_min', units='', tpe=float, definition='Tap changer module min value') - self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', - profile_name='tap_phase_prof', old_names=['angle']) - self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) - self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) - self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, - definition='Control available with the tap module') - - self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, - definition='Control available with the tap angle', old_names=['tap_angle_control_mode']) + definition='Control available with the tap module', + profile_name='tap_module_control_mode_prof') self.register(key='vset', units='p.u.', tpe=float, - definition='Objective voltage at the "to" side of the bus when regulating the tap.') - - self.register(key='Pset', units='p.u.', tpe=float, - definition='Objective power at the "from" side of when regulating the angle.') - - self.register(key='regulation_branch', units='', tpe=DeviceType.BranchDevice, - definition='Branch where the controls are applied.', editable=False) + definition='Objective voltage at the "to" side of the bus when regulating the tap.', + profile_name='vset_prof') self.register(key='regulation_bus', units='', tpe=DeviceType.BusDevice, definition='Bus where the regulation is applied.', editable=False) @@ -250,6 +243,22 @@ def __init__(self, self.register(key='regulation_cn', units='', tpe=DeviceType.ConnectivityNodeDevice, definition='Connectivity node where the regulation is applied.', editable=False) + self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', + profile_name='tap_phase_prof', old_names=['angle']) + self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) + self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) + + self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, + definition='Control available with the tap angle', old_names=['tap_angle_control_mode'], + profile_name='tap_phase_control_mode_prof') + + self.register(key='Pset', units='p.u.', tpe=float, + definition='Objective power at the "from" side of when regulating the angle.', + profile_name='Pset_prof') + + # self.register(key='regulation_branch', units='', tpe=DeviceType.BranchDevice, + # definition='Branch where the controls are applied.', editable=False) + self.register(key='temp_base', units='ºC', tpe=float, definition='Base temperature at which R was measured.') self.register(key='temp_oper', units='ºC', tpe=float, definition='Operation temperature to modify R.', profile_name='temp_oper_prof') @@ -292,6 +301,74 @@ def tap_phase_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a tap_phase_prof') + @property + def vset_prof(self) -> Profile: + """ + vset profile + :return: Profile + """ + return self._vset_prof + + @vset_prof.setter + def vset_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._vset_prof = val + elif isinstance(val, np.ndarray): + self._vset_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a vset_prof') + + @property + def Pset_prof(self) -> Profile: + """ + vset profile + :return: Profile + """ + return self._Pset_prof + + @Pset_prof.setter + def Pset_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._Pset_prof = val + elif isinstance(val, np.ndarray): + self._Pset_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a Pset_prof') + + @property + def tap_module_control_mode_prof(self) -> Profile: + """ + _tap_module_control_mode_prof profile + :return: Profile + """ + return self._tap_module_control_mode_prof + + @tap_module_control_mode_prof.setter + def tap_module_control_mode_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._tap_module_control_mode_prof = val + elif isinstance(val, np.ndarray): + self._tap_module_control_mode_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a tap_module_control_mode_prof') + + @property + def tap_phase_control_mode_prof(self) -> Profile: + """ + tap_phase_control_mode_prof profile + :return: Profile + """ + return self._tap_phase_control_mode_prof + + @tap_phase_control_mode_prof.setter + def tap_phase_control_mode_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._tap_phase_control_mode_prof = val + elif isinstance(val, np.ndarray): + self._tap_phase_control_mode_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a tap_phase_control_mode_prof') + @property def temp_oper_prof(self) -> Profile: """ diff --git a/src/GridCalEngine/Devices/Parents/editable_device.py b/src/GridCalEngine/Devices/Parents/editable_device.py index c9abaa91c..88c381aee 100644 --- a/src/GridCalEngine/Devices/Parents/editable_device.py +++ b/src/GridCalEngine/Devices/Parents/editable_device.py @@ -659,14 +659,13 @@ def create_profile(self, magnitude, index): """ # get the value of the magnitude snapshot_value = getattr(self, magnitude) - # val = Profile(default_value=snapshot_value) - val = self.get_profile(magnitude=magnitude) + prof = self.get_profile(magnitude=magnitude) - val.create_sparse(size=len(index), default_value=snapshot_value) + prof.create_sparse(size=len(index), default_value=snapshot_value) # set the profile variable associated with the magnitude - setattr(self, self.properties_with_profile[magnitude], val) + setattr(self, self.properties_with_profile[magnitude], prof) def ensure_profiles_exist(self, index): """ diff --git a/src/GridCalEngine/Devices/sparse_array.py b/src/GridCalEngine/Devices/sparse_array.py index d11504141..ef74a9d6f 100644 --- a/src/GridCalEngine/Devices/sparse_array.py +++ b/src/GridCalEngine/Devices/sparse_array.py @@ -18,6 +18,7 @@ from typing import Dict, Any, Union import numpy as np +from enum import Enum from GridCalEngine.enumerations import DeviceType from GridCalEngine.basic_structures import Numeric, NumericVec, IntVec @@ -39,6 +40,8 @@ def check_type(dtype: PROFILE_TYPES, value: Any) -> bool: assert dtype == int or dtype == float elif tpe in [float, np.float32, np.float64]: assert dtype == float + elif issubclass(tpe, Enum): + assert tpe == dtype # check that the enyum type is the same else: assert isinstance(dtype, DeviceType) @@ -87,8 +90,12 @@ def default_value(self, val): val2 = None else: val2 = val + elif issubclass(self._dtype, Enum): + # if it is an Enum type, cast the value to the Enum + val2 = self._dtype(val) else: val2 = val + check_type(dtype=self.dtype, value=val2) self._default_value = val2 diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index eb82b714f..53ca86f85 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -58,12 +58,12 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # compute the ZIP power injection Sbus = cf.compute_zip_power(S0=S0, I0=I0, Y0=Y0, Vm=Vm) - Vmfset = nc.branch_data.vf_set + Vmfset = nc.branch_data.vset m = nc.branch_data.tap_module.copy() tau = nc.branch_data.tap_angle.copy() Beq = nc.branch_data.Beq.copy() Gsw = nc.branch_data.G0sw - Pfset = nc.branch_data.Pfset / nc.Sbase + Pfset = nc.branch_data.Pset / nc.Sbase Qfset = nc.branch_data.Qfset / nc.Sbase Qtset = nc.branch_data.Qfset / nc.Sbase Kdp = nc.branch_data.Kdp diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 23581fc42..71a9516b8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -70,12 +70,12 @@ def NR_LS_ACDC(nc: NumericalCircuit, # compute the ZIP power injection Sbus = compute_zip_power(S0=S0, I0=I0, Y0=Y0, Vm=Vm) - Vmfset = nc.branch_data.vf_set + Vmfset = nc.branch_data.vset m = nc.branch_data.tap_module.copy() tau = nc.branch_data.tap_angle.copy() Beq = nc.branch_data.Beq.copy() Gsw = nc.branch_data.G0sw - Pfset = nc.branch_data.Pfset / nc.Sbase + Pfset = nc.branch_data.Pset / nc.Sbase Qfset = nc.branch_data.Qfset / nc.Sbase Qtset = nc.branch_data.Qfset / nc.Sbase Qmin = nc.Qmin_bus diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 5b9de58d4..14bce5d56 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -184,7 +184,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Qmin = Qmin self.Qmax = Qmax - self.Pset = nc.branch_data.Pfset[nc.k_pf_tau] + self.Pset = nc.branch_data.Pset[nc.k_pf_tau] self.k_pf_tau: IntVec = nc.k_pf_tau self.k_v_m: IntVec = nc.k_v_m diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index de75709d7..17a5bf562 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -129,6 +129,30 @@ def __init__(self, # determine the bus indices self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=Pbus, types=bus_types) + @property + def k_m(self): + """ + Return a composition of all indices affected by m + :return: + """ + return self.k_v_m + + @property + def k_tau(self): + """ + Return a composition of all indices affected by tau + :return: + """ + return self.k_pf_tau + + @property + def k_mtau(self): + """ + Return a composition of all indices affected by m|tau + :return: + """ + return np.r_[self.k_m, self.k_tau] + def recompile_types(self, bus_types: IntVec, Pbus: Vec): From a8cacbbb368c4a41ae373b6d4fba6f0d738d1a90 Mon Sep 17 00:00:00 2001 From: santi Date: Fri, 26 Jul 2024 11:14:47 +0100 Subject: [PATCH 016/218] Improved indices (WIP) --- .idea/workspace.xml | 79 +++--- .../Compilers/circuit_to_bentayga.py | 2 +- .../Compilers/circuit_to_data.py | 16 +- .../Compilers/circuit_to_newton_pa.py | 2 +- .../DataStructures/branch_data.py | 15 +- .../DataStructures/numerical_circuit.py | 202 +-------------- .../levenberg_marquardt_acdc.py | 8 +- .../NumericalMethods/newton_raphson_acdc.py | 14 +- .../pf_advanced_formulation.py | 2 +- .../Topology/simulation_indices.py | 237 ++++-------------- src/GridCalEngine/enumerations.py | 5 +- src/trunk/code_generation/property_maker.py | 2 +- 12 files changed, 132 insertions(+), 452 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8f0dc8801..ad19e92b0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,18 +28,19 @@ - + - - - + + + + + - - + + + + + - - @@ -1446,7 +1449,7 @@ - + 1656059954202 @@ -1791,7 +1794,7 @@ - @@ -1837,7 +1840,6 @@ - @@ -1862,7 +1864,8 @@ - @@ -2328,11 +2331,6 @@ 30 @@ -2436,8 +2419,8 @@ - + @@ -2780,7 +2763,7 @@ - + diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index 0dad572ad..42837c72a 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -4979,9 +4979,18 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) self.label_50.setText("") +#if QT_CONFIG(tooltip) + self.control_q_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the generators, abtteries, controllable shunts, etc control their reactive power to be within limits.", None)) +#endif // QT_CONFIG(tooltip) self.control_q_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control generators Q", None)) - self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch taps", None)) - self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch phase", None)) +#if QT_CONFIG(tooltip) + self.control_tap_modules_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active the branches with tap module control such as transformers or VSC converters control some voltage with their tap module", None)) +#endif // QT_CONFIG(tooltip) + self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control tap module", None)) +#if QT_CONFIG(tooltip) + self.control_tap_phase_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active the branches with tap phase control such as transformers or VSC converters control their \"from\" active power flow", None)) +#endif // QT_CONFIG(tooltip) + self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control tap phase", None)) self.label_54.setText("") #if QT_CONFIG(tooltip) self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index 4bc31b927..0375cc644 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -3879,6 +3879,9 @@ QProgressBar::chunk{ + + If active, the generators, abtteries, controllable shunts, etc control their reactive power to be within limits. + Control generators Q @@ -3886,15 +3889,21 @@ QProgressBar::chunk{ + + If active the branches with tap module control such as transformers or VSC converters control some voltage with their tap module + - Control branch taps + Control tap module + + If active the branches with tap phase control such as transformers or VSC converters control their "from" active power flow + - Control branch phase + Control tap phase @@ -10006,7 +10015,7 @@ QProgressBar::chunk{ - + :/Icons/icons/CataloguePrivate.svg:/Icons/icons/CataloguePrivate.svg diff --git a/src/GridCal/Gui/Main/SubClasses/simulations.py b/src/GridCal/Gui/Main/SubClasses/simulations.py index 981b5a689..e922c29a2 100644 --- a/src/GridCal/Gui/Main/SubClasses/simulations.py +++ b/src/GridCal/Gui/Main/SubClasses/simulations.py @@ -623,9 +623,9 @@ def get_selected_power_flow_options(self): control_q = self.ui.control_q_checkBox.isChecked() - control_taps_modules = self.ui.control_tap_modules_checkBox() + control_taps_modules = self.ui.control_tap_modules_checkBox.isChecked() - control_taps_phase = self.ui.control_tap_phase_checkBox + control_taps_phase = self.ui.control_tap_phase_checkBox.isChecked() verbose = self.ui.verbositySpinBox.value() diff --git a/src/GridCal/Gui/Main/icons.qrc b/src/GridCal/Gui/Main/icons.qrc index f7d3bbf94..766f1605b 100644 --- a/src/GridCal/Gui/Main/icons.qrc +++ b/src/GridCal/Gui/Main/icons.qrc @@ -1,7 +1,6 @@ icons/picture.svg - icons/CataloguePrivate.svg icons/record.svg icons/delete_schematic.svg icons/delete_db.svg diff --git a/src/GridCal/Gui/Main/icons_rc.py b/src/GridCal/Gui/Main/icons_rc.py index a3b9ef3f9..9bc1ff4f6 100644 --- a/src/GridCal/Gui/Main/icons_rc.py +++ b/src/GridCal/Gui/Main/icons_rc.py @@ -1,1772 +1,1793 @@ # Resource object code (Python 3) # Created by: object code -# Created by: The Resource Compiler for Qt version 6.6.3 +# Created by: The Resource Compiler for Qt version 6.7.2 # WARNING! All changes made in this file will be lost! from PySide6 import QtCore qt_resource_data = b"\ -\x00\x00\x11\x82\ +\x00\x00\x11u\ \x00\ -\x00|\xeax\xda\xed]Yo\xe3\xd8\x95~\x0f\x90\xff\ -\xc0Q=\xa4\x0a#Rw_Tv\x05\x98n\xa4&\ -\xc0\x0c\x12$i\xe4q@K\x94\xcdiY\xd2P\xf4\ -\xd6\xbf~\xbeCm\x5c%Yv\x95\xe3\x82\xaa\xd1\xb0\ -y\xf7{\x96\xef,\xbc\xbc\xbe\xf8\xe3\xe3\xed4\xb8O\ -\xb2e:\x9f]\xf6x\xc4zA2\x1b\xcd\xc7\xe9\xec\ -\xfa\xb2\xf7\xcb?\xfe\x14\xba^\xb0\xcc\xe3\xd98\x9e\xce\ -g\xc9eo6\xef\xfd\xf1\xcb\xef\x7fw\xf1oa\x18\ -\xfc\x94%q\x9e\x8c\x83\x874\xbf\x09\xfe<\xfbu9\ -\x8a\x17I\xf0\xf1&\xcf\x17\xc3\xc1\xe0\xe1\xe1!J\xd7\ -\x85\xd1<\xbb\x1e|\x0a\xc2\x10]\xd1yy\x7f\xfd\xfb\ -\xdf\x05A\x80\xb9g\xcb\xe1xt\xd9[\xf7Y\xdce\ -\xd3\xa2\xedx4H\xa6\xc9m2\xcb\x97\x03\x1e\xf1A\ -\xaf\xd4~\xb4k?\xa2\x15\xa4\xf7\xc9h~{;\x9f\ --\x8b\xae\xb3\xe5\x87r\xebl<\xd96\xa7%=\xc8\ -\xa2\x15\xf7\xde\x0f\x98\x18\x08\x11\xa2E\xb8|\x9a\xe5\xf1\ -cX\xeb\x8bu\xb6\xf5\x15\x8c\xb1\x01\xeaJM\x8fl\ -6|\x9c\x82$\x9d\xeb)j+\x0b\x00#\x16\xf8\x7f\ -\xdbcS\x10-\xe7w\xd9(\x99\xa0k\x12\xcd\x92|\ -\xf0\xf3?~\xdeV\x86,\x1a\xe7\xe3\xf28\x1b>T\ -f\xae0g\x16\xdf&\xcbEy\x5c\xcc\xb3<\x9c\xa4\xd3d\xd5~\ -p3\xbfM\x06\xcbx\x96\xa7\x83\x9f\xe7\xa3;\x92\xb3\ -\xf9r\xf05\xcd\xff\xf3\xeej\xb0\x1em\xb0\xccF\xdb\ -\xdf\xbf\xde\xa5\x83\xff\x8e\xd3\xd9\xa02\xd5b\xd61\xd5\ -\xe3x\x01\x9ey\xd6^\xfb\xb4\xa9\xfdB\xd5\x17\xe3d\ -\xb2,\xda\xad(F\x8fjU\x85JHD\x12g_\ -\xb3x\x9cb\x91\xebf\xa5!G\xf3\xe94\x19\x81\x1f\ -\xf1\xf4!~Z\xf6\xb6-\x0aY\x1a\xded\x09\xc4\xff\ -Cu\x14\xc9\x8c\xdd5\xa49\x1b\xf5\xbc4\x10\x07\xcb\ -xd\xef(A\xbf\xedB\x9f\ -\x8d|@m>6\xe3\x13\xfeiC\xa4b)C\xec\ -B\x08\x83\xb8\x85\xd7\x09Z\xd0\xae\x9d\xa2\x9bR(c\ -\x92M\x814\xf9p+\x87\xe3\x18X\x9fe\xf1S\x85\ -K\xad\x91 \xd8\xb1(\x1b\xe6\xa0\x9c\xcd\x99A\xa7H\ -\xd5\x01\xb4\xa3e\xe9_\x1c\x8fF5\xaa\xedB\xb6\x19\ -\x96\x9e\xcf\xb3\x10\xa8~\x1f\xe7wYR\x8b\xd1\xd7\xc6\ -\x1f\x93*X\x8d\xb0F~\x02\xc4\x00|\x85YVJ\ -\xf69\x83\xbcskt0\x0a\xa0\x15\x81\x88\xb8G\x14\ -\xed\xfa\xa1\x825\xb2\x5c\xba\xa0\xa8\xe7J\x15EN1\ -\x14)\xd8|-\x85\xee\x87\xb0\x85\x96\xeb@F\x92;\ -\xe6l_k\x08;b\xd5\xc0F\x18E\xdaU\x89\x81\ -&\xa0\x8d y\xd7}\xf4\xe1x2\xd08o1*\ -4QKO]\x10z+\xc5\x8b\x22i\x11Gb9\ -p\x13\xb4\xf1\xc5DN`b\xc6\x1cT\xa9/5d\ -K\x1a\x89N\x12\x8a+\x0d\x95\x90:S\x1f\xc9=\x97\ -\xb2\xe8\xa3\x0c\xfa\x00B\x1cZ\x84\xc2\xd1\xaf\xd6\x04.\ -b\xd2\xe3\x97U\x91\xf7\x1c\x9d4\x83\x1fc\x8aN\xd8\ -\x0bzI\xe1\x8c\xe6}\x81q\xad\xb6\x98\x08-`\xbe\ -\xa9\xc0b\xb5\x222FZ\xa3\x8a\x1e\xc6\x04:R\xd6\ -\x0al\x18\x96@x+\x05\x1b\ -\xb5,\x08{\x80\xfemj\xc9\xb9G@`N\x0a\xd5\ -W\xe0B\x013\x97\xb6*\x9e\x12l\x85\xc3*}U\ -\xa8\x88\xceJ\xa3\xf1\x97\x8b\x1c\xbb\x98\x95c\xe8Mp\ -\x95\xcd\x89\xc04g=\xee.\xba\xa0\xbb\xae\xe52\xdb\ -\x16\xd1\xb9\x8cC,\xbc\x8f\xb34\x9e\xe5\x07\xd9\x9ag\ -I>\xba\xa9\x94\xad9\xf8\x87_\xfe\xf6\xcf\xe0\xeb<\ -\xbfIG\xc1\x7f\xfd\xe1s\xb8\x89\x01\xc3U\xc7E2\ -J'\xe9(\xce\xd3\xf9\xac\xde\xf6\x19\xdclp\xb0\xf7\ -e\xfd\xc2\xffbP\x10\xea\x0b~\x82\xdc\xcf\x05\x16\xc5\ -(N\x02XU\xf8,\x11\xf1hQ~\xc1\xfa\x0a\xb0\ -\x12\xea\xdea{s\x8c`o\xf0\xe7\x0c,\xaf\x0d,\ -\xc7\x01\xfb7\x00\x16k\x22\xe3\x84\xb35\x5c\xa1d\xbb\ -\x13\xf06\xdaq\x85\xde\x95\xbc\x08Y\xc2:\xb6\xb4\xac\ -\xa3s%\xef\x00Z\x8e\xe2\xe7s\xa1\xe5\xba\x91r-\ -\xfb\xadm\x09]\xe6\xb90J\xac\x13\xba\x9b\xa7\x10h\ -\x111x\xb7\xb6\x1fJi\x10\x82\x1b\xef?\xf5\xda\x13\ -\xce'!\xc3a!\xdc\xa3\xd5\xedi\xe4mB\xb8\xfa\ ->\xf1\xb4\xec\xf2k\xa2\xe0\xbe\x1d\xd4\xf6\xb0\xde\x05\xe7\ -\xa6\x96\x91l\xdf\x85\x811pR\xea~\x08\x8b\x10q\ -\xcb\xd8\xee\xfd@W*{o2{_:{_B\ -\xfb`J\xfbPR\xbba\x93\x1a\x0b\xeb\xe2\x88J\xd4\ -\xc87\xe2 o\x18\x16Y\xe3\xc8\xe4\xa4\xac\xf6)\x06\ -h\x13\x87U\x13\xd9m\xa9\xec\x93\x92\xd9\xcfLg\xd7\ -\x13\xdaa\x83\xf8\xe7\xa4\xf69\xa9}Njw'\xb5\ -\xbb\xd2\xda-6\xa03\xdd\xdd\x8aA\xdf9\xbb\xdd\x85\ -L\xbb\xf4vG\xd2\xbb\xf1\xb2\xf9e/\x94w6\xcc\ -0\x88\x04\x84\x0e\xec\x85tF\x1c\xa2jk\xaf\x8eW\ -o\xc8\xcb\x9eL\xc7k\xf7\x9d\xb7\xdf\xe2\x08\xe9\x93\x1c\ -!\x08\x1a\x16\xc5y\xe1(\x18\x070\x91\xba\xc3\x11\xda\ -\xf3\x96\xf5\xc3\x95\xe7#\xcfOw~\xf8A\x9f\xc7\xbc\ -\x9a\xcf\xf3\xcc\xcd\xb4,\xb1\xcd\xedx\xf6\x9b\xe9\xda4\ -\xdf\xd8d\xef}\xc7^u(\x0f\xb92\x07<\xa1n\ -'\xaa\xdb\xf5\xaazl\x87^\x8e\x1f`c7@\xb5\ -Q\xfc\xbb\xbf~;\xbfl?\xfb%g\xbf\xe4H\xbf\ -\xa4\xe6\xd7\xfb\x17\x9cy9.\x0c9\xf4r\xbcfx\ -%\x14`\x9f\xdd\x05%\xbcgBHU\x18\xde\xd2#\ -\x90\x0e\x8aF\xfb\xb6p\xae\x1c\x04\xc5\x97B\xdb:\xea\ -5G\xe6\x10?\xcc\xeeWg\xd5 \xd0`*w\x90\ -C\x00\x01\x94\xd9B\xaa\xc1+\xe0\xb0\xd7\xcdse4\ -:\x89qh\x8f8\x5cV\xfa\x82\xa7\x9c\xf4\x94P~\ -@\x91\x94\xea;\x9d\x99*\xadt\x05\x9b\x0c\x18\xe6\xa0\ -\x19}\x0e\x85f\xde2\xc8\xac'\xa5\x837\xe3\xa0!\ -LAd}$\x81l\x0e>\x8f\xe5$\xc2.2\xd2\ -iz\x86\x8c\x03\xf9\x84\x8d|\xa1\x18\xd0)\xa9\xa1\x18\ -\x02Rl\x09\xb0\x14i\x84\xf2A\x810\x86Q\x17\xef\ -\xad\xb3T@\xe0\xa4\xfb\x9a\x94\xdd\xa8@\xa8\x08\xb0\x81\ -AQ\x01\xbc\xc5,2\xe2\xd07z\x16@\x8f@\x00\ -9\xa1\x0a\xd4@@s\x02\xac\xd7iXyz\xf6\xc0\ -\xe1@@\x06\x00\x11\x86\x0a\xb8q\xf4\x0c\xad,\xa6\x00\ -0x\xa8\x12\xa0\xc18N\x0d\x00sL\x06\xdc\xd1\xc6\ -d\xd1\x80\xd3\xb3\x05\x88\xc0\xe4R\x03ze\x18pX\ -\x0c\x80~1\x87\xc5\x18T `\x7f\x8b!\x80X6\ -\xe0\xd0p\xc0\x1bM\xa2\x14\x142 \x13l\x15\x84\x88\ -Zp\xee\xc92y\xabV\xeb\xd6F\x15\x05\x1a\xf8^\ -\xb4P\xa8\x088\xb0I\x014\x8b\x16\xb0\xebT 1\ -\x9b-Z\x18\x81Yxd\x108\xacZ(\x80\x1b#\ -;\xbf\x22\x96a\x80rzi\xeca\xff\xa8\x81\xf1:\ -\xf0\x91\x07\x91tAL\xe0\x06\x9e\x01~\xc5\xa2\x98g\ -\x5c\x01\xc7a\x84\xb4Y\xb1\xc3\x93\xf9P\x90\xfd\x15\xb1\ -\xbd\x15\x80`g]1>\xc3\x0a\x09\x92\xa5\x84\xc9\xa0\ -\xf6\xf0\xac\x08\xa5\x10\xc8\x10\xff\xe9\xdc;\x9e$\xf6#\ -H>\x9c\xc2\x0e\x0d\xcd\x22mQo9\x07<\x19\xc9\ -\xb08E\xef*\x00\xb4\x98\x05\xab/\x9e\x99\x90d\xcf\ -\xa0jP6\x05\x06B\x04\x02\xfa\xa9d!o\x96\x11\ -\xee\x8a\x95,\x19x\x18\x00YX>O\x95\xd81\x0c\ -(\xf4\x13\xd4\xa4\xc14'\x9eAl4\x8cd\x9f\xe4\ -Ir\xb2\x83h\x0f)P\xc4S\xe3\xc9\xcai\xef|\ -\xd1\x1e\x0c!\x03\xa6I\xe9\xd1\x1eBM\xcf\xcc0k\ -\x8a\xf6\xd6\x93!\x01%d\xf1\x0cp'#!\x94\xa0\ -\xbda\xe5\x8e\x8c\x06([L\x0fE\xa6j\xe60-\ -\xb5\xe60\x1a\x01\x18%\x1d\xe3\xc5AX\x840x\x86\ -\x08\x93\xb5G\xb9\x87\x1d\xbb\x0f*\x10K\xa7\xf3CB\ -\x96\xcb^q\xf2\xa9\xf2uA\x15\x82\x0e\xe0v\x19\x84\ -_\x00\x84\x8c\x93\xcd\x86_\x84\xd5\x17\xb6\x98\xef\x01\xc2\ -j>\xbe\x1b\x0aa\xe9\x92\xa4\x0d\x0a\xe1\x1aY}\x86\ -\xc23\x14\x9e\xa1\xf0\x0c\x85\xfb\xa00\xd4o\x00\x86\x08\ -8\xa0\xc3P\xeb>\x1d\xdcAP)\xfc>0\xf4G\ -\x81\xe1\xf6\xab\xec3\x18\x9e\xc1\xf0\x0c\x86g0<\x01\ -\x0c\xcd[\x80\xa1\x84\x0c\x80\x0b\x10FJ\x05i\xe8\xe8\ ->0d\xc7\x81a\xccF\xb1<\x83\xe1\x19\x0c\xcf`\ -x\x06\xc3\xd3\xc0\x90\xbf\x01\x18ro\x22\xe8\x82\x00\xc1\ -\x1c\x8b\x14\xf6`\xf7\x82\xa19\x0a\x0d\xb5aW\xf1\xf8\ -\x8c\x86g4<\xa3\xe1\x19\x0dOCC\xff\x16hh\ -\xa0\xbaJ[pW\x120\xf0\xfdq23G\x86\xca\ -W\x1a\x92p\xce\x1b\x9e\xf1\xf0\x8c\x87g<<\x15\x0f\ -\xdf\xc6?\x846\x0b#\xc1o\xe9\xe9|\x98\xaf\x5c}\ -\xd2\x8a\x88\xea(H\xdc^Yx\x86\xc43$\x9e!\ -\xf1\x0c\x89'A\xe2\x89o\x96\xbb\x8f\xf4\xacN\x9b\x9e\ -\xf6]\x91\xa0\x03l\xd2K\xfa\xac\x08\xd2CLUo\ -|\x9a\xb6vP\xf5=\x1dS\xad\x1fR\xad~\xd6\xb1\ -\xef\x90\xea\xde#\xaa\xc5\x01U2p\x8a\xd5\xef0\xf4\ -R\x02VL\xf5\x1b\xbc\x8e\xc3\xa9\x9d\x12\xb4>\xce\xad\ -\x0e\x1e\xe7\xde\x7fp\x5cp\x05$U\x0e\x16\x98I\xe8\ -\xbd\xf0\xeaS\xc7)\xe9\xca\xe7j\xd2\x8e\x5c|U\xbb\ -\x1f\xad\xb7\xd7\xf6w\x9e\x0e\x17\xce\x01\x89\xadP\xf8\x95\ -9X\x13\xabU\xf3\x922:}n\xf7|\xf2u\xda\ -i\xed\xb2:\xba\x1f\xe4\xa3/u\xe4G_k\x1ev\ -hd\xf5\xca\xbbo\xae\x91\xff\x9a\x9fx\xe9\xf3'^\ -\xe7\xa3\xd4\xe7\xa3\xd4\xa7~\xe2U\x81\x98\x8e\xaf\xb9\x9a\ -(\xf3\x96w\x95u}\xc4\xd54\x07@{\x88\x15H\ -\x00\xbf\xbeq\x81\x87\x81xK`e\x9b\xbb\xd0r\xad\ -\xd1\xbe\xdb\x90\xaa\x17(\xb1#>\xaf\xfe\x91\xaeM+\ -g\x17Z\x18\xa0\xe8\xd6'my\xf3\x06\x15G\xa2\xef\ -L\x1b\x03Z.5\xdaw\x17R\xf5\xfa$y\x04\x03\ -~\xc8{\xd4\xf6s\x02N\x0f\x024m\x9a\x9a\x00b\ -\x1b\xaf\xcd\xabk\x82\x09\xcdQ\xba\xf0\x03^\xadv\x80\ -\x15\x9e\xfeD\x05oA%A)\x1c&^]'l\ -\xc8\x8f\xba\xf5\xe1G\xbekm\x0fO\xde\xee\x92\xb1\x17\ -\xdd\xfa\xd3\x1d#\xcb\xaa\x19\xea\xbc i\xdf\xadJ+\ -\x914\x82n\xa3\xf7\xbc\xe5\xa6+\x0d\x87\xd1Z]\x8f\ -\x91w\xd7<\x95)^\xb9\x97\xa8v\x87N\xfd\x8f=\ -\x84\xd6\xc0\xd7\xb2\xce7\xef\xddB\x0d$\xcd\x1c\x7f\x05\ -\xce\xfb\xbd \xad\xb2\xf7\x96\x8b\x9c\x9a\xf7\x0e\xfd\xb87\ -\x8d\xd5\xbf\x1fn\x97\x90n\x19\xa9_\xba$;\xbe\x09\ -,]\xd8\xb4\xf7\x06\xa2\xa3!\xe4;\x5c'\xf6\xcd \ -DW\xbf\x07\x7f\x01\x88PD\xa9\x14\x02\xd2\xe6\x9dV\ -\x88T\x95\xd7\xfc\xe5 R\x83\xbc\xa7\xc2*z\x90U\ -\xd6\xcd,\xfd\xdd(\x04a\xdc\xff\xeb\xa3\xc8\xcboC\ -\xfb!Q\xe4\xc4K\xc5\xea(\xd2* \xdd\x22\xd2\xb8\ -\xb9-4/\x87\x91\xce\xfc\xedk]\xc1uZ\xc6\xd7\ -J\x13q\xc99\xfd\xa5\x0b.\xe8u\xa6\xeb\xc8\xf8\x9a\ -\x90\xef\xc9\xf9~\xe3\xfb\xc5^9\xbf,\xca\x7f\x13\xad\ -e7\xcf\xba\x9f\xac%oY\x5cxV\x9f\xa3=\x8f\ -\xfd^/\x02kl\xa3~\xdfY3\xf9}8}~\ -D\x06~\x7f\x02\x7f\x7f\xea\x7f\xef\xc5#]\xb9\xee\x1f\ -\xf0\xaa\xa4\xc6\x0e\xcf\xb9\xf4s.\xfd\x9cK\xdf\x97K\ -o^9\x18\xb6a\xe0\xf3^q\x9dpII=\x17\ -~\xe8\xaa\xb3\xd5\xcf\x0b\xfa\xb3d\xf8\xf9\xff;p]\ -3\ -\x00\x00\x0e\x8c\ +\x00z\xf7x\xda\xed]Y\x8f\x1b\xc9\x91~\xd7\xaf(\ +S\x0f\x96\xb0\xacb\xde\x07\xd5-\x03;\x03\xcb\x06v\ +\xb1\x0b\xdb\x03?.\xaa\xc9bw\xed\xb0I\xbaX\xad\ +\xee\x9e_\xef/\x92W]<\x9a\xd2\xe8\x025\x18\x88\ +\x95wDF|qTV\xea\xeaOO\xf7\xd3\xe8c\ +V,\xf3\xf9\xec\xba\xc7\x13\xd6\x8b\xb2\xd9h>\xceg\ +\xb7\xd7\xbd_\xfe\xf1\xe7\xd8\xf5\xa2e\x99\xce\xc6\xe9t\ +>\xcb\xae{\xb3y\xefO\xef_]\xfd!\x8e\xa3\x9f\ +\x8a,-\xb3q\xf4\x98\x97w\xd1_g\xbf.G\xe9\ +\x22\x8b\xde\xdc\x95\xe5b8\x18<>>&\xf9\xba0\ +\x99\x17\xb7\x83\xb7Q\x1c\xbf\x7f\xf5\xeaj\xf9\xf1\xf6U\ +\x14E\x98w\xb6\x1c\x8eG\xd7\xbdu\x87\xc5C1\x0d\ +\x0d\xc7\xa3A6\xcd\xee\xb3Y\xb9\x1c\xf0\x84\x0fz\xbb\ +\xe6\xa3]\xf3\x11\xcd\x9e\x7f\xccF\xf3\xfb\xfb\xf9l\x19\ +z\xce\x96\xaf+\x8d\x8b\xf1d\xdb\x9aV\xf3(C#\ +\xee\xbd\x1f01\x10\x22F\x8bx\xf9<+\xd3\xa7\xb8\ +\xde\x15k\xec\xea*\x18c\x03\xd4\xedZ\x9e\xd6j\xf8\ +4\x05+\xf6.&\xd4Vg\x07\xfb\x17\xf8\x7f\xdba\ +S\x90,\xe7\x0f\xc5(\x9b\xa0g\x96\xcc\xb2r\xf0\xf3\ +?~\xdeV\xc6,\x19\x97\xe3\xca0\x1b\xee\xd7\xe6\xad\ +m\xc9,\xbd\xcf\x96\x8bt\x94-\x07\x9b\xf2\xd0\xff1\ +\x1f\x97w\xd7=\xcdEx\xbc\xcb\xf2\xdb\xbbr\xf7\xfc\ +1\xcf\x1e\xffs\xfet\xddc\x11\x8bP\x18m*\xf2\ +\xf1u\x0f\x84\xaf[\xed\x84\x8a\xafj\xd7S\x0c\xb75\ +,\xf1\x22\xd1\xd1\x1b\xc1\x0c\xcbF|\xe2'\xfdH0\ +\xc1b\xa6b\xe6\xde\x86^\x1b\xf2\x86\xe3\xf9\x88\xd6{\ +\xdd\xfbP\xe4\xe3\x9f\xd2\xe9\xff\xe5\xa3\xf9,\xd9\xf0y\ +;x\xf6\xb4\x98\x17e<\xc9\xa7\xd9\xaa\xf9\xe0n~\ +\x9f\x0d\x96\xe9\xac\xcc\x07?\xcfG\x0f$X\xf3\xe5\xe0\ +C^\xfe\xe5\xe1f\xb0\x1el\xb0,F\xdb\xdf\x1f\x1e\ +\xf2\xc1\x7f\xa7\xf9lP\x9bi1\xeb\x9e\xe9i\xbc\xc0\ +Ny\xd6Y\xf9\xbc\xa9|\x8f\xda\xabq6YR\xab\ +\x15\xa7\xe8I\x85\x0aTA\x04\xb2\xb4\xf8P\xa4\xe3\x1c\ +\xeb[5\xaa\x0c7\x9aO\xa7\xd9\x08{\x90N\x1f\xd3\ +\xe7eo\xd3 \x88\xce\xf0\xae\xc8 \xea\xaf\xebcH\ +f\xec\xb6\x1d\xcd\xd7\xaa\xe6\xbba8\xb6\x89'\xc63\ +\xe5v\xa5\xcf(\xf5\xce&^)\xaewm\x05\xb5u\ +\x09sl7\xfe\xb3\xe8jz\xbb\x9e\xeb\x97Y^B\ +U\x1e\x96Y\xf1w\x12\xb7\xff\x99\xfd\xb2\xccz\xd1\xe0\ +0\xed]K\xaeP\xb4\x8f5\xef\xd7-\xae\x96\xe5|\ +\xb1i\xbd\x96M\x94`\x10\xd9\xdb\x15\xcf'\x93e\x86\ +\xce\xacR\xb6,\x9f\xa7\xd9\xaau\x8c\xd1\xe7\xc5\xf0\xb5\ +r^g\x93w\xa1h\x0e\x12\xf2\xf2y\xc8\xb7\x14\xb4\ +&\xeb\x18AN\xa4\x1d\xf9\xe6\x08\x1d\x0bI\x84\xe0\xca\ +{U\xad\xac,\xde\xef\x9fu\xd7\xcav\x8f\xac\x8c\xf6\ +\x5cI~\x8cV6J\xdd\xc9\xb4V\xd6\xa6;f=\ +2\xd9\xc4\x0a\xed\xf4\xbe\xc9\xae\x06u\x09\xf8z\xca\xa2\ +e]Y\x80[\x82\xf1\x8a\xaco\x94E\x18+xC\ +Yl\xa2\xad\xd7\xa6\xa5-\xf5\xb6'j\xcbh\x9a/\ +\xfe7-\xef\xaa\xab]hkmj\xad\xb4\x22\x96;\ +\x0d(\xc0\x85\xfaFQ\x89\xe0\x86\xc5\xa6\xb2-\xcf\xd7\ +=\xe3\x13Nv\xab\xaa\x1aO\xdd\xc5k\xe3`5\xf0\ +\xc2\xc2|U\xaa6\x86B\x19\x93\x80\xdc\xdd.n\xd6\ +|*\x09\xb1>\x8d\x88X~\xdbd\x98\x13\xc9\x10\xdf\ +6\x19\xfcT2\xec\xb7M\x87?U\xaa\xbeq\xed\xf0\ +'\xef\x88\xfc\xe6e\xcb\x9f\x0aXD\x0b\xffj\xb4\x5c\ +\x0d\xc8]\x0b\xbf\xb6\x1e)\xf9\x97cr\x86w>\xdd\ +M\xba\xcc\xd6C/\xd2\xdb,\x189\x18\x9bI\xf8\xb3\ +\xae\xb8\x99\x17\xe3\xac\xd8T\x99\xf0\xa7V\xb5\xb6\x83\xab\ +p\xecU\xdd\xb6\xd1\xa8\xdbz\xd6]\xbf\xbcK\xc7\xf3\ +\xc7\xeb\x9ehV\xfe6\x9f\xdfS/\xae\x98\x11\xbaY\ +;\x02\xebb\xf0\xda$Vn\x19\xb4\xab\xa5\xf5\x18\xa3\ +\x13\xed\x8djV\x8e\xd7~u\xfc\xb0\xb2]\x8b\xa7V\ +\xf7\x87\xa2\xa0\x06\xd3\xf49\x03\xd9\xe1\xaf\xcdn.\xef\ +\xe6\x8f\xb7\x05\xb1o\x92N\xb7\xfc\xdb;\xd4c>\x03\ +y\xf1zG\xb9SnO\x8b\xcd\xc6r\xc6\xf75\x01\ +\xc9V\xec\xa9\x03\xc1m&\xad\xeb\xee\xd3\xa7\xfc>\xff\ +-\x1b\x93\x83\xb3\x92\x98\xab\xfb\xacL\xc7i\x99\xee\xa4\ +aSb7^>\x02\xce\xe1\xdf~\xfe\xf3V\xdeG\ +\xa3\xe1?\xe7\xc5\xaf;Y\xa4\x06\xe9\xcd\xfc\x01\xab\xde\ +j\x05\x05\x0e\xa3!\x82\xbe\xfb\xb4|\x9f\xdfc\x83)\ +\xba\xfc\x0f\x04y\x10\xcamE\xadq\xf9\xbc\xc8v\x83\ +\xae\x86-\xb2U\xf4\xd8\x19p\x8fG\xf79u\x1a\xfc\ +\xbd\xcc\xa7\xd3\xbf\xd2$\x15\x8fo=h^N\xb3\x8a\ +\x1b8X\xaf~\xa3.\x15\xe2\xae\x06\x1b\xd2\xc3\xd3m\ +\x83\x89\xd3\xf4&\x9b^\xf7~J\x17i\xc4\x9b\x1c\xbe\ +-\xe6\x0f\x8b\xfb\xf98[KIo\xc7\xcf\x9a\xd4\x94\ +E:[\x12\xf1\xd7\xbd\xf0s\x9a\x96\xd9\x1b\xd6\x8f\xb5\ +b\x894\x90\xe3\xb7\x1b\xae\xdf\xbe\xaa\xfb\x9f\x88\x0d\xa7\ +\xc3\xb5N\xc2\xf3,\xe6\xbff\xc3\xd7\x8ci\xad\xd4\xfa\ +1&\xf7\x0f\xab\x19\xde<\x94e\xb5\xec\xff\xe7\xf9l\ +\x88\x05\xce\xc6[\x00\xa9\xac\x03\xfbP\xe4Oo\x14\x1c\ +;\x07\xff\x8e\xf7\x19\xfe\xdb=\xc5\x5c\x1b\x91(\xe6d\ +?\x96\x8e\x01m\xb4YG\xb9\x1b\x0ao\x9d\xa9\xc0\xe1\ +\xedn\x0f;\xa9\xe5\xd6&V\x08\xa70\x1eK\x9c\xe6\ +F\xc9\xb7\x8d\xb0\xe1Vi\xd5\xe1\x83\x07\x1e\xcc\xe6\xb3\ +\xec\x05\x14W\xc4\xa1\x0e\xd4\x100B\x07\x958\xcf\x9d\ +\xaebk\x80i/\x0dB\x0f&e\xad\x02\xaa\xc7%\ +\xb8\xc1\xadS\xb5\x8a\x9d\xda\x8a\xc4\x1bkx\xadv\xa3\ +\xf6\x9d\x95\x1b\x8b\xa1\x9c\x11q}\x1dk\xba\xb71\xc6\ +\xbb\x1d\x07\xe8\xd7.\xf8\xd8H\x04\xb4\xe3M;J\xe0\ +o7\xcc\x09\x0b\x19\x82\x02!\x0c\xa2\x07\xdedd\xe0\ +Y7'7\xa5\xd0\xb9\xac\x98\x02H\xca\xe1V\xf2\xc6\ +)\xe0\xbb(\xd2\xe7\xda\xeet\xc5a\xd8\x86E\xc5\xb4\ +F\xd5d\xc9\x0c\xfaC\xfa\x0c\x00\x1d-+\x7f\xd2t\ +4\xaasl\x174\xcd\xb0\xeer^\xc4\x80\xea\x8fi\ +\xf9Pd\xf5\xa8xm\xbc1\xa3\x82\x1d\x88\xeb\x8c'\ +\xb0\x8b\xb0\x9d0\xadJ\xc9>g\x90nn\x8d\x8eF\ +\x11t \x12\x09\xf7\x08]]?V\xb0.\x96K\x17\ +\x85z\xaeT(r\x8a\xa1H\xc1lk)t?\x86\ +a\xb3\x5cG2\x91\xdc1g\xfbZC\xba\x11(F\ +6\xc1(\xd2\xaeJ\x0cD\x1fm\x04I\xb8\xee\xa3\x0f\ +\xc7\x93\x81~y\x8bQ\xa1wZz\xea\x82\x90W)\ +\x1e\x8a\xa4E$\x87\xe5\xc0\xd6k\xe3\xc3DN`b\ +\xc6\x1ct\xa7/5\x84J\x1a\x89N\x12j*\x0d\x95\ +\x90\xf2R\x1f\xc9=\x972\xf4Q\x06}\x80\x17\x0e-\ +b\xe1\xe8\xa75\x91K\x98\xf4\xf8\xb1*\xf2\x9e\xa3\x93\ +fpEL\xe8\x04Z\xd0K\x0ag4\xef\x0b\x8ck\ +\xb5\xc5Dh\x01kL\x05\x16\xab\x15\x891\xd2\x1a\x15\ +z\x18\x13\xe9DY+@0,s\x82\xaeF`\x1a\ +\xd8oK\xccD\x11\xf7\xc2\x85\xb5i\x14\x11\x0f\xdc\x8a\ +o\xd8\x06\xd0\x87\xc8\x93\x01\x15\x0c\xb8-\x94\x85\xd5\x0f\ +%0\xef\x82\xb6\xc4A\x9eU\xe0\x9b\xa5\x85i\xad=\ +\x81\x94L\x02\xa3\x99\xc7\xb46<\x1b\x84\xaf\x22\xe2\x89\ +\xc7\x8ei\x17\x96\xa6\xb1\xb7\x02\xe0c9s}\x9f(\ +'\xac\xc7 \x8e\x0b\xaf\x05\x15H\xa6\xd0Ca\x8bW\ +,#\xae\x86\x0e\xc4v\x03\x16\x02(\xd0\xc1s\x05\xaa\ +\x80\xda`<\xc7\x10<\xd1D\x9c\xa5e\x19N]\xb4\ +4\x90\x00A\xeb\xb3\xb4Nl \xe3\x86\x0a\x9c\xb2.\ +\xac\xcar\x1b\xf6_:\x09\xda=\x83\xf0\x84\xbd\xb5\xce\ +\x09b\xa1\xb3\xc6\xe9\xb0\x09\x0e\x117\x0dJH)V\ +\xdboD\xd8\x15Hl\x9f\x0c\x07\x17$\x9b\x0a^\x85\ +\xc4\xb3\x92R\x1b\xcca\xc98\xd0\x14\xda)\x0cH\x88\ +\x0et\xaf\xfc\x9a\xe2\xb7\x15\xca\xaddJ+\xd3\x05>\ +\x0d\xc8)\x1e\xa6\xd90\xfb\x98AY\xc7\x07QG\xcb\ +\x06\xea\x082\x1d\x16\x12\xaaNC\x9d\x004\x9f\x07u\ +\xae\x06\xb7\x1b\x83\xbf\xf9Q5\x06\xdd0\x0b\xeb\x9a\xa6\ +\xce\xedA\xda\xea\x94+\xfaZd-\xff\xf5\x90\x16Y\ +\x8b\xae\x1bpo\xfar\xba\xa8t\x95\x9f\x1a\xb2\x16\xad\ +\xef\x16i\x0eG5x\xe2\xc3UeD\xeb\x8e\xee\xd3\ +\xe2\xd7\xacX\xd6\xec5\x91\xee*y\xafM\x98\x01\xfc\ +\x80\x85\xaf\xc4\x91\x1b\xa3f\xa1\xd0LA\x9fv)\x22\ +x\xdd\x9aI\x92s_I\x11!\x8cq\x04Bp\xb6\ +\xb7\x11\xc9\x09\x8c\xe6F3\xb81\xa72\x1ap\xc3\x1d\ +\xfe\xf3\xdf\x19\xc7m\x8b\xe3\xa4\xdb\xc0\xa76\xc7\x11\x0d\ +\x1a\xa6D\xc5\xfb \x8e+\xed\x010\xb6\xc6p\xce4\ +pI\x89\x171\x9c1\xc1\xe4\xa4\xcep\x96x\xc5a\ +\xde\x94\xfdqD\xbc\x921fM\xea's\x08N\xf8\x8d\x19\x10\ +\xf4O\xdf\x85\x92\xc7\xc0\xe5Z\xd12\xff-\x1b:\x05\ +W[R|\xe5\x16O\xef\x88\x8euFd\x08\xae\xeb\ +U\xc3Iz\x9fO\x9f\x87KD\x941\xe6\xcc'\xef\ +\xa6Y\x09\xd2bZJ>\xbb\x1d2t}\x84\xb0\xd6\ +\x0a6j\x18\xb8z\x84\xf9]j\xc8\xb9\x87\x9bo\xce\ +\x89\xb6W@Ba/\x97\xb6&\x94\x12;\x0a'T\ +\xfa\x9a4\x11\x8b\x95F\xd3\xf7W%H\x98\xbdj\xc7\ +J\xc5\x9c\x98K\xf35B\xe7\xd0\x01\x9du=\xbd\xd8\ +1\xff\xbe\x15\x1c\xdb\xba\x8fi\x91\xa7\xb3\xf2\xe8v\x96\ +EV\x8e\xeeje\xeb\x9d\xfb\xe3/\x7f\xfbg\xf4a\ +^\xde\xe5\xa3\xe8\xbf\xfe\xf8.\xde\xc4s\xf1\xaa\xe3\x22\ +\x1b\xe5\x93|\x94\x96\xf9|\xd6l\xfb\x82]l\xed\x5c\ +\xef\xfd\xfa\xdd\xf8\xd5 p\xe9=\xfe\x06\xa7_\x84\x22\ +\x8aQ\xc8\x03T\xaan\xaeD\xec\xa2E\xe5\x15\xe5'\ +cH\xac{G\xed\xc9)\x82\xbc\x01\x9b\x0b\x8a|V\ +\x149\x0d\xc2??\x8aX\x93\x18'\x9c\xad\x83\x08e\ +\xbf\x9d\x80#\xd1\x09\x22\xf4\xaa\xe2\x13`$n\x00I\ +{\x09\xfb\x16\xf1\x1d\xe0\xc8I\xfb\xf8B\x1c\xb9m\xa6\ +F+NhW\xda\x95y.\x8c\x12\xeb\xb4\xeb\xe6)\ +\x06:$\x0c\xae\xaa\xed\xc7R\x1a\xc4\xce\xc6\xfb\xb7\xbd\ +\xce\xa4\xf0YPp\x5c\xf0\x0e\xa8qW\xb2w\x9b\xb7\ +\xad\xbd\xbc;+\x05\xfc9!\xef\xc0\xea\xeb\xeb_S\ +\xc0\xb9\xa9'\x10\xbb)0\x80|'\xa5\xee\xc7\xc0\xfd\ +\x84[\xc6\xb6\xa9\xfb=\xd9\xe6C\xf9\xe6\x03\x19\xe7\x03\ +9\xe7cY\xe7#y\xe7\x96\xd5i\xaei\xdf6\xa8\ +L\x8d|+\x92\xf1\x86a\x81\x8dm\x98\x9c\x95x>\ +\xc7\xc4l\x22\xa9Z\xae\xb9#\xdb|N\xbe\xf9e\x19\ +\xe7f\xce9n\xb2\xfd\x92w\xbe\xe4\x9d/y\xe7\xbd\ +y\xe7}\x99\xe7\x0e\xc8\xdf\x9b\x91\xeeD\x9f/\x9c\x80\ +\xde\x83I\xdb\x14tgZ\xba\xf9\xda\xf7\x93^\xed\xee\ +\xec\x95a\x90\x05H\x1b\xf6\x15b\x99p\xc8\xa8\xad\xbf\ +\xc4]\xbd\xa6\xae\xf8*{^|o=\xf8\xb6\x9f\xa3\ +\xcf\xf1s \x5cX\x0f\xe7\xc1\x170\x0e\x00\x22u\xb7\ +\x9fs\xe0\xb5\xe7\xeb\x1b\xcfG\x9e\x9f\xef\xdb\xf0#.\ +\x8d\xf9L.\xcd\x0b\x09i/\xaf\xc3\xb1x\xf1K\xe2\ +\xc6$\xbf\xb3i>\xf4\xb2\xbb\xe6*\x1eqW\x0e\xfb\ +:{\x9d\xa4\xbd\x8eU\xdd\x1b;\xfc\x86\xfa\xc8\xe6\xed\ +\x87\xa1.N\x7f\xf1\xf7`\x97w\xde\x17\xdf\xe3\xe2{\ +\x9c\xe4{4\x14\x01\x13\x02\x14\xda\x7f:0\x8e'\x09z\x04\ +\xc9\x87S\xa0\xd0\xd0,\xd2\x86z\xcb9\x10\xc9H\x86\ +\xc5)z\xb5\x00l\xc5,X}xfB\x92\x09\x83\ +\x9eA\xd3\x146\x10\x22\x10\xd1\xdfJ\x06y\xb3\x8c\xa0\ +V\xacd\xc9\xc0\xa7\x00\xae\xc2\xd8y\xaa\x04\xc5\xb0\x99\ +PNp\x93\x06\xd3\x9c\xf6\x0cb\xa3a\x17\xfb$O\ +\x92\x93\xe9C{H\x81\xa2=5\x9e\x0c\x9b\xf6\xce\x87\ +\xf6\xd8\x10\xb2Y\x9a4\x1e\xed!\xd4\xf4\xcc\x0c\xb3&\ +\xb4\xb7\x9el\x078!\xc33\xf0\x9c\xec\x82P\x82h\ +\xc3\xca\x1d\xd9\x09p6L\x0f=\xa6j\xe60-\xb5\ +\xe6\xb0\x13\x116J:\xc6\xc3\x81S\x04(x\x86\x08\ +\x93\x81G\xb9\x87\xe9\xfa\x18Uq\x95\x0e\xb7\xc7\x04+\ +\xd7\xbdp\xe6\xa8v*\xbf\x06?G\xa0\xba\x02\xbc\xe7\ +# \xe3d\xa2\xe1\x06a\xe5\xc1\xf4\xf2\xfd\x08XK\ +\xa3\xef\xc7@\x98\xb5,\xeb\xc2@\xf8AV_0\xf0\ +\x82\x81\x17\x0c\xbc`\xe0~\x0c\x8c\xf5\x97FA\x04\x16\ +\xd0_\xa8t\x9f\x8e\xd2 x\x14\xfe\x00\x0a\xfaSP\ +p\xfb\xd5\xf1\x05\x05/(xA\xc1\x0b\x0a\xbe\x18\x05\ +\xcd\x17GA\x89\xfd\xc7\x0e@\x10)\xd7\xa3\xa1\x9f\x07\ +P\x90\x9d\x84\x82)\x1b\xa5\xf2\x82\x82\x17\x14\xbc\xa0\xe0\ +\x05\x05\xcfAA\xfe\xa5Q\x90{\x93@\x0f\x04\x98\xe5\ +X\xa2\xb0~{\x08\x05\xcd)0\xa8\x0d\xbbI\xc7\x17\ +\x18\xbc\xc0\xe0\x05\x06/0x\x0e\x0c\xfa/\x0e\x83\x06\ +j\xab\xb4\xc5\xceJ\x02\x05~0$f\xe6\xb4\xa8\xf8\ +FC\x06.\xb9\xc1\x0b\x10^\x80\xf0\x02\x84\xe7\x01\xe1\ +W\xf0\x08\xa1\xc9\xc2H\xec\xb5\xf4t\xb6\xcbW\xef\x0e\ +\xe9\x84Bu\x0a\x16n/\xe0\xbb`\xe1\x05\x0b/X\ +x\xc1\xc23\xb0\xf0\xac\xf7\xc5\xfbN\xe7\xac\x0e\x89\x9e\ +\xf5\xa5\x8f\xa03h\xd2K\xfa\xd0\x07rC\xdb\xa9\xbe\ +\xea\x01\xd8\xfa\xf9\xd2\xef\xe8ti\xf3li\xed\xc3\x8b\ +\x03gK\x0f\x9d,\x0d\xe7J\xc9\xa0)\xd6\xb8\xc7\xcf\ +K\x09 1\xb5\x0f\xe1\xba\xcf\x94\xee\x11\x9a\xf5\x89k\ +u\xec\xc4\xf5\xc1\x83\xdd\x82+\xa0\xa6r0\xb5LB\ +\xc7\x85Wo;\xcf2\xd7\xbe\x18\x93v\xe4\xd2\x9b\xc6\ +5b\xbdC\x16~\xef\xf9m\xe1\x1c \xd7\x0a\x85\x9f\ +\xcc\xc1lX\xadZ\xd7y\xd1\xe9p\xbb\xf7\xbb\xab\xb3\ +\x0eTW\x15\xcf}\xef_^\xa9\xd3\xbe\xbcZo\xdb\ +\x1e\xbd\xab_\x06\xf7\xbb\xeb\xdd\xb7\xf7\x9d\x95\xbe|g\ +u9\xeb|9\xeb|\xdewV5p\xd9\xf3IU\ +\x1b_\xbe\xe2\x9d^\xdd_R\xb5\xe0\x1f\xf0\x0e\x89\x02\ +\xf5p\xd5\x9bWb\x18\x08\xb6\x04@v\xf8\x02\xed\xdb\ +\x80\x0e\x5c!T\xbfs\x88\x1d\xff\x92\xf9G\xbaY\xac\ +\x92&hs^\xd1MI\xda\xf2\xd6e$\x8e\xa4\xdd\ +\x99\x0e\xce\xb7\xef\x02:p\x81P\xfd\xc6!y\x9c\xf3\ +?\xe4Uc\x87\xb6\x00~\x0d\xa2,mZ\xb2\x0f6\ +\x1b\xaf\xcd\xe7\x95}\x13\x9bS\xa4\xff\x07\xbc}\xec\xe0\ +\x1ex\xfag\x13x\x1b\x80\x04\xe5_\x98\xf8\xbcZ`\ +c~\xca]\x0a?\xf2ud{7\xe3\xeb]\xc9\xf5\ +I\xd7\xe6\xec\x8dqe\xcd\xda\xec\xbb]\xe8\xc0\x85D\ ++A4\x82\xeeW\xf7\xbc}9\x94\x86+h\xadn\ +\xc4\xb8\xbb\xbb\x91*\x9c\xae^\xe9\xd3\xb8\x82\xa6\xf1O\ +\x13\xc4\xd6\xc0\x83\xb2\xce\xb7.\xa9B\x05\xa4\xcb\x9c|\ +\x87\xcc\xf7{\x8dX\x95\xf2\x8e\xfb\x8fZW\xf6\xfc\xb8\ +\xb7r5\xbe\xd6\xed\x14\x8e\xbd\xe2\xd1\xbc\xadHv\x7f\ +\x85W\xb9\xe7\xe8\xd0\xe5=\xa7\xe2\xc5\x17\xb8|\xeb\xf7\ +\xc2\x0b]\xfb\xe6\xfal\xc4\xa0\xc8P)\x04\x96\xadk\ +\xa0\x10p*\xaf\xf9'\x22F\x1d\xd8\x9e\x83\xd5\xf3\xe0\ +\xa6l\xd8P\xfag\x8a\x10Fq\xff\xcdC\xc6\xa7\xdf\ +\x19\xf6\x03B\xc6\x99\x17p5 \xa3K6\xf6JG\ +\xeb~\xb3\xd8|*f\xecK\xb3~\xae\x0b\xab\xceJ\ +\xccZi\x12.9\xa7\x7f\xb7\x81\x0bz\xbd\xe8\xba\x13\ +\xb3&\xe6{S\xb3\xbf\xf3M\x5c\x9f5\x0b,*\xff\ +\x00W\x9b\x92\x17]\xe4\xd5N3\x86{\xc1\x1a\x13t\ +\xa6\x9a\xbf\xd7k\xb3\x9aT4\xef\x06k\xe5\xa8\x8f\xe6\ +\xb8\x8f'\xc9\x0ff\xd8\x0ff\xe6\x0f]\xdf\xb1'\x1d\ +\xfd\x03^+\xd4$\xf0\x92\xf0\xbe$\xbc/\x09\xef\x03\ +\x09\xef\xf6\xd5|q\x07\xf2\xbd\xe8\x1d\xd4\xcb\xaf\xfah\ +\xe4\xab\x0f\xde\x08\x16\xfe\xba\xa2\x7f:\xeb\xfd\xab\x7f\x03\ +\x1cZC\xdc\ +\x00\x00\x0e4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x222495\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22101\ -6\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x222.9978382\x22\x0d\ +mons.org/ns#\x22\x0a \ + xmlns:dc=\x22http:\ +//purl.org/dc/el\ +ements/1.1/\x22>\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \ + \x0a \ + \x0a \ + \x0a \x0a \ + \x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xba\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x09+\ +6.952888\x22\x0a \ + x=\x22-198.82364\ +\x22\x0a y=\x2269\ +.89225\x22\x0a \ + ry=\x228.8167849\x22\x0a\ + rx=\x220.2\ +7597877\x22 />\x0a \ +\x0a \x0a\x0a\ +\x00\x00\x07}\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x12\x90\ +oke:none;stroke-\ +width:2.973;stro\ +ke-linecap:butt;\ +stroke-linejoin:\ +round;stroke-mit\ +erlimit:4;stroke\ +-dasharray:none;\ +stroke-opacity:1\ +;paint-order:str\ +oke fill markers\ +\x22 />\x0a\x0a\ +\x00\x00\x08\xe6\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0a \x0a \ + \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x22}\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22 />\x0a \x0a\x0a\ +\x00\x00\x12\x1a\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata10\x22>\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a\ + \x0a \ + \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +2505\x22\x0a inksc\ +ape:window-heigh\ +t=\x221016\x22\x0a id\ +=\x22namedview6\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x2212.09447\ +2\x22\x0a inkscape\ +:cx=\x2248.699934\x22\x0a\ + inkscape:cy\ +=\x2228.897499\x22\x0a \ + inkscape:windo\ +w-x=\x2255\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg4\x22\x0a \ +inkscape:pageche\ +ckerboard=\x220\x22 />\ +\x0a \x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a <\ -path\x0d\x0a fill=\ -\x22none\x22\x0d\x0a id=\ -\x22path2\x22\x0d\x0a d=\ -\x22M 3.4923116,-0.\ -39297537 H 51.49\ -2312 V 47.607024\ - H 3.4923116 Z\x22 \ -/>\x0d\x0a\x0d\x0a\ -\x00\x00\x0d$\ +ke-opacity:1\x22\x0a \ + d=\x22m 33.632\ +734,19.875438 4.\ +149523,-3.300771\ + 4.685644,5.7964\ +26\x22\x0a id=\x22p\ +ath1074\x22 />\x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \x0a\x0a\ +\x00\x00!\xf6\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ +no\x22?>\x0a\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a\ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0c\xce\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a <\ +path\x0a sodi\ +podi:nodetypes=\x22\ +csc\x22\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path816\x22\ +\x0a d=\x22m -24\ +3.25424,36.20339\ + c 7.47466,23.42\ +7449 32.21453,21\ +.503685 40.62787\ +,8.634724 8.4108\ +6,-12.865143 1.3\ +1409,-37.4864107\ + -28.0177,-31.00\ +7606\x22\x0a sty\ +le=\x22fill:none;fi\ +ll-rule:evenodd;\ +stroke:#37c8ab;s\ +troke-width:6;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:miter;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1\x22 />\x0a \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x94\ +ure=\x220\x22\x0a i\ +d=\x22path4489-7\x22\x0a \ + d=\x22m -225.\ +0508,25.423733 0\ +.20339,-22.37288\ +18 -19.72881,11.\ +5932198 z\x22\x0a \ + style=\x22fill:#9\ +99999;fill-rule:\ +evenodd;stroke:#\ +999999;stroke-wi\ +dth:2;stroke-lin\ +ecap:butt;stroke\ +-linejoin:round;\ +stroke-miterlimi\ +t:4;stroke-dasha\ +rray:none;stroke\ +-opacity:1\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x0dZ\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0c\x88\ + v -8.666671 -8.\ +666667 l -8.6334\ +6,-6.505556 c -4\ +.748403,-3.57805\ +6 -8.63346,-7.48\ +1016 -8.63346,-8\ +.673242 0,-2.039\ +252 14.78798,-28\ +.686171 17.43578\ +9,-31.41809 0.76\ +5807,-0.790132 5\ +.266256,0.388912\ + 12.011621,3.146\ +851 10.735632,4.\ +389415 10.808082\ +,4.399033 15.223\ +394,2.021232 9.2\ +26118,-4.968593 \ +9.854293,-5.9181\ +76 11.40331,-17.\ +237861 0.802812,\ +-5.866667 1.9121\ +58,-11.134266 2.\ +465212,-11.70577\ +5 0.553056,-0.57\ +1509 9.357958,-0\ +.871509 19.56645\ +2,-0.666667 l 18\ +.560886,0.372442\ + 2,11.741416 2,1\ +1.741416 6.3294,\ +3.92525 c 3.4811\ +7,2.158888 6.792\ +53,3.925251 7.35\ +858,3.925251 0.5\ +6605,0 5.41918,-\ +1.844483 10.7847\ +4,-4.098851 5.36\ +556,-2.254369 10\ +.45926,-3.828818\ + 11.31934,-3.498\ +777 2.03324,0.78\ +0228 18.20794,29\ +.028695 18.20794\ +,31.799445 0,1.1\ +66222 -3.88505,5\ +.047904 -8.63345\ +,8.62596 l -8.63\ +347,6.505556 v 8\ +.666667 8.666671\ + l 8.63347,6.505\ +55 c 4.7484,3.57\ +806 8.63345,7.48\ +101 8.63345,8.67\ +324 0,2.03287 -1\ +4.7835,28.68104 \ +-17.4221,31.4044\ + -0.74772,0.7717\ +4 -5.29872,-0.43\ +786 -11.89703,-3\ +.1621 l -10.6860\ +6,-4.41197 -7.21\ +862,3.77944 -7.2\ +1861,3.77943 -1.\ +77879,12.04933 -\ +1.77879,12.04933\ + -18.899066,0.36\ +932 c -10.394484\ +,0.20314 -19.197\ +66,-0.11386 -19.\ +562612,-0.7043 z\ + m 29.504508,-53\ +.06908 c 14.6252\ +1,-6.10929 21.57\ +602,-23.26646 15\ +.09602,-37.26259\ +4 -10.20217,-22.\ +03565 -40.74219,\ +-22.03565 -50.94\ +4364,0 -10.32964\ +1,22.310974 13.1\ +68754,46.736394 \ +35.848344,37.262\ +594 z\x22\x0a id=\x22\ +path817\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22 /\ +>\x0a\x0a\ +\x00\x00\x0c/\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \ + \x0d\x0a \ - \x0d\x0a\ - \x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0bF\ +oke-width:1px;st\ +roke-linecap:but\ +t;stroke-linejoi\ +n:miter;stroke-o\ +pacity:1\x22 />\x0a \ + \x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0b\x0c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0e\x99\ +indow-x=\x2257\x22\x0a \ + inkscape:windo\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x220\x22\x0a \ + inkscape:curren\ +t-layer=\x22svg2\x22 /\ +>\x0a \x0a\x0a\ +\x00\x00\x0e\x17\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\x09\x0d\ -\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x0d\ -\x0a\x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -41\x22>\x0d\x0a\x0d\x0a \ -\x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a\ - \x0d\x0a\x0d\ -\x0a \x0d\x0a\ -\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a<\ -/g>\x0d\x0a \x0d\x0a\ -\x0d\x0a \x0d\ -\x0a\x0d\x0a \ -\x0d\x0a\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09\xe0\ +=\x2254\x22\x0a inksc\ +ape:window-y=\x22-8\ +\x22\x0a inkscape:\ +window-maximized\ +=\x221\x22\x0a inksca\ +pe:current-layer\ +=\x22g833\x22\x0a ink\ +scape:pagechecke\ +rboard=\x220\x22 />\x0a \ +\x0a \x0a\x09\x0a\x09\x09\x0a\x0a\x09\x09\x0a\ +\x0a\x09\x09\x0a\x0a\x09\x09<\ +path\x0a d=\x22m 263\ +.2,488.45 h 214.\ +3 c 6.8,0 12.3,-\ +5.5 12.3,-12.3 v\ + -214.2 c 0,-6.8\ + -5.5,-12.3 -12.\ +3,-12.3 H 263.2 \ +c -6.8,0 -12.3,5\ +.5 -12.3,12.3 v \ +214.3 c 0.1,6.8 \ +5.6,12.2 12.3,12\ +.2 z m 12.3,-214\ +.2 h 189.8 v 189\ +.7 H 275.5 Z\x22\x0a \ + id=\x22path831\x22\x0a \ + style=\x22fill:#37\ +c8ab\x22 />\x0a\x0a\x09\x0a\ +\x0a\x0a \x0a<\ +/g>\x0a \x0a\x0a \x0a\x0a\ + \x0a\x0a \ + \x0a\x0a \ +\x0a\x0a \x0a\x0a \ +\x0a\x0a \x0a<\ +/g>\x0a \x0a\x0a \x0a\x0a\ + \x0a\x0a \ + \x0a\x0a \ +\x0a\x0a \x0a\x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x09\xa5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x19/\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22 />\x0a \x0a\x0a\ +\x00\x00\x18\xae\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0a \ +\x0a \x0a \x0a\ + \x0a \x0a \ +\x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#162d50;\ +stroke-width:1.5\ +5563581;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22M 8.1\ +034569,42.45191 \ +C 15.791519,42.9\ +77784 18.461889,\ +10.499044 41.332\ +83,10.900594\x22\x0a \ + id=\x22path8\ +25\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22\x0a \ + sodipodi:\ +nodetypes=\x22cc\x22 /\ +>\x0a \x0a \ + \x0a \x0a \x0a\ + \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x04\xee\ +paint-order:norm\ +al;fill-opacity:\ +1\x22 />\x0a\x0a\ +\x00\x00\x04\xe6\ \x00\ -\x00\x1exx\xda\xed\x99Ko\xe36\x10\xc7\xef\x0b\xec\ -w0\x94K\x8bV\x12\x1f\x22E\xaav\x16(\x82\x05\ -z\xe8\xa5\xdd\xa2gF\xa2mmd\xd1\xa0d;\xd9\ -O\xbfC[O'q\xaa.Pl\x01\x0byqf\ -\xf8\x98\x1f\x87\x7f\xd1\xc8\xfc\xc3\xe3\xa6\x98\xed\xb5\xadr\ -S.<\x1c o\xa6\xcb\xd4dy\xb9Zx\x7f}\ -\xfa\xe8\x0boV\xd5\xaa\xccTaJ\xbd\xf0J\xe3}\ -\xb8}\xffn^\xedW\xef\xdf\xcdf\xb3C\x9e\xd5\xeb\ -\x85\x17\x09\xef\xd8\x5c\xeb|\xb5\xae\xfb\xf6>\xd7\x87_\ -\xcd\xe3\xc2C34\x8b\xc4\xac\xb3\xf73\xe2\x93%\xcf\ -\x16\x1e\x0c\xcaO\xad\x0aV\xb0\x85\xef$3i\xa96\ -0q\xaa\x8atW\xa8\xda\xd8\x00\xc2\x9a>\xe5C\x95\ -\xaa\xadN\x86\xc3\x05d\xf6\x03R\x08\xa5KF\xa9\xfc\ -yF\x10!>\x82\xaf\xe8\xc7S/\xc8\xb8\xac\x92\xb6\ -\xef\xc2[\xd7\xf56\x09\xc3\xc3\xe1\x10\xb4\xc6\xc0\xd8U\ -\xe8\xe6\xad\xb6*\xd5U\xd8\xda\x87\x03\xb4K\xec\x06h\ -\x0dAev6\xd5K\x18C\x07\xa5\xae\xc3\xbbOw\ -\x9d\xd3GAVg\x83qF\xf3\x1f\xe8qf\x82\x10\ -\x0a\xbb,\x9b\xe9\xf6\xab\x7f\x1aj\xb3\xe5K\xa1XJ\ -\x19\x22\x12\x02\x0e\x88\xf0\xab\xa7\xb2V\x8f~Y\xdd\x0c\ -\xfb\xa6i\xd75\xb5Z\xd5\xf9^\xa7f\xb31eu\ -b2\x8e\xce\xfa\xe8\xed\xce\x16\xc7\x90,\x0du\xa17\ -\xba\xac\xab\x10\xb6#\xf4n]\x87\xf9F\xd7*S\xb5\ -:\xf6>mwk\xc2\xe4\x14\x03Q\xb0\xb0\xe4\x8f\xbb\ -\x8fM\x13\x0ci\x9a\xfcm\xecC\xdb\x86\xc7\x85\xa8{\ -\xb3\x83*\xf3n{\xfb\x12k?\x12_\x86\ -T]`\xb7[K8\x00\xeemPv'`n\xa1\ -\x92Z\xdc\xf5S\x01\x95\xd1\x94@\x82\x7fq\xe1\xc9\x0d\ -\x8dS\xa1\xee\x8f\x0d\xbf\xf7U\xb55\x0f:qc5\ -\x7f\x9f\xf6>A\x81d\xb1 \xf0\xdd\xda\x8b\xbc\xd4\x90\ -Pb\xcd\xae\xcc\x86\xc6\xcf&/\x93{\xbd\xd7Ek\ -\x85\x93\xaam\x01\xd8\xea$jm\x99\x82\xaa\xb3V=\ -\x8d&sV\xb3\x5cV\xbaNPk\xebW\xb7U9\ -\xc0=\x1e\x1f\xe8\x052R\x0c\x99\xb8\x9cE_|M\ -\xcdR\x12\xc4qDq\xb7Y\xddk\x91\x04(\x8e$\ -\xea0BM\x88\x80b\x14Q\xd9\x05C)\xd0\x80\xb0\ -\x88\xd0\xb8\x8b\xb3`d\x01\x12\x02S,'\x10\x978\ -N\xf9r\x02q\x1a\x11\x86\xa9\xe0\xdf;q\x9f\x9e1\ -',\x88\xa4d8:g\xce\x03\x89\x19a\x94\x0f\x98\ -c\x12\x10\xc91\xa2\x03\xe6\xb1\xc3+\x98\xc0C\xe6\x08\ -\x14\x81\x13NA\x83&\x94\xf9\xf1\x99\x00\x1d\x13!9\ -\x17\xe2\xfb\x87\xee\x9f\x97:;\xc7\xcd\xc6\x98#\xca\x19\ -\x1fbv2\xc9\x22\xda\xcb\xe4\x093G\x11g\x98\xcb\ -+\xe6\x13\xe6g\xf5}\x19\xb4\x0cp\x8c\x08&c\xd0\ -\x0c\x11'\x17W\xd0\x97@\xb3)\xa0Aeb\xd0\x08\ -\x16\x9d\x81\x06\xd2\xec\x0a\xfa2h2U:\xe0Z\x87\ -\xd9\x10\xb4\x0cb\xc4)bW\xd0\x97\xa5\xc3\x97S\xc5\ -\x03\x04\xb9\xff\xb0\xd0\xa0\x86\x1bH\xc4\xaf\xa8/\x8b\x87\ -\x8f\xa7\xca\x07\x93\x11\x8a\xc7\xa8\x05H\xb7\xb8V\xf5e\ -\xd4\xf1T\xf9`p\xc3\x1b]\xaaY \x08\x89\xaf\x9c\ -\xdfR\x0f4U=$%L\x9c\x91\x06\xa5\x16\xd77\ -\xe2[\xea!'\xaa\x87@B\x8e>\xb5\x00j\x89\x05\ -'W\xd4\x97Qs\xf4\xad\xf2\x81\xe3\x80\xc4\x08K|\ -%\xfd\x86~\xf0o\xd5\x0f@M\xb1\xc0\xf4J\xfa\x0d\ -\xf9 \xffF>\xce\x8a\x9ar\xde\xdfG\xfeC\xd2\xa0\ -c\x22\xc6\xf2\xff\xa1\x1e\xf0\xf3\xcd\x8b\x1eF\x01\x14\x0f\ -cx\xc0\x9c\x82\x90\x10B\x11\x19_\xf8\xa4`\x88\x8f\ -\xa0c\xa8\xf88&\x94_\xab\xbbc.\xa6T7\x90\ -\xa6T\x08\x1e\x9f}2\x17\x0c\xf7\x9f\xd6\xafB\xf2\x0a\ -\xea\x89\xd7k\x07\x9b\xc3\xab\x90\x8f\xa5$BH\xf2\x8b\ -Z2w\xff\x96\x83\xdf_\x01!\x82\x1f\xee\ -\x00\x00\x08Y\ +\x00\x1d\xb9x\xda\xed\x99Mo\xe36\x10\x86\xef\xfb+\ +\x0c\xe5\xd2\xa2\x95\xc4\x0f\x91\x22U;\x0b\x14\x8b\x05z\ +\xd8K\xbbE\xcf\x8cD\xdb\xda\xc8\xa2A\xc9v\xb2\xbf\ +\xbeC}\xcb\x8d\xd3\x18\x0b\x14[\xc0B\x1c\x843C\ +\x0e\xf9p\xf8\x8aF\x96\xef\x9fv\xc5\xe2\xa8m\x95\x9b\ +r\xe5\xe1\x00y\x0b]\xa6&\xcb\xcb\xcd\xca\xfb\xf3\xf3\ +G_x\x8b\xaaVe\xa6\x0aS\xea\x95W\x1a\xef\xfd\ +\xfd\xbbeu\xdc\xbc[,\x16\xa7<\xab\xb7+/\x12\ +\x9ekmu\xbe\xd9\xd6C\xf3\x98\xeb\xd3\xaf\xe6i\xe5\ +\xa1\x05ZDb\xd1\x9b\xc7d\xb81\xe4\xd9\xca\x83\xf1\ +x\xd3\xa8 \xf5\x1e>If\xd2R\xed c\xaa\x8a\ +\xf4P\xa8\xda\xd8\x00\xa2\xda\x1e\xe5c\x95\xaa\xbdN\xa6\ +c\x05d\xf1\x03R\x08\xa5kF\xa9\xfcyA\x10!\ +>\x82\x9f\xe8\xc7\xa6\x13,\xb4\xac\x92\xbe\xeb\xca\xdb\xd6\ +\xf5>\x09\xc3\xd3\xe9\x14\xf4\xc6\xc0\xd8M\xe8\xb2V{\ +\x95\xea*\xec\xed\x93\xfe\xfd\xfc\x86\xfe\xbd!\xa8\xcc\xc1\ +\xa6z\x0dC\xe8\xa0\xd4u\xf8\xe1\xf3\x87\xc1\xe9\xa3 \ +\xab\xb3q\x98Y\xf6\x13m\xf2\x12\x84P\xd8\xaf\xb0K\ +v\xdc\xbc1\xd2f\xeb\x97\x22\xb1\x942D$\x04\x12\ +\x10\xe1W\xcfe\xad\x9e\xfc\xb2\xba\x9btM\xd3\xa1g\ +j\xb5\xaa\xf3\xa3N\xcdng\xca\xaa\xc51\x0b\xce\xc6\ +\xe0\xfd\xc1\x16MD\x96\x86\xba\xd0;]\xd6U\x08\xfb\ +\x10z\xf7\x10\xbf\xdc\xe9Ze\xaaV\xaeo\xbb\xc7\xbd\ +\x05\x93&\x02b`N\xc9\xef\x1f>\xb6-h\xa7i\ +\xf2\x97\xb1\x8f]\x13\x1e\x17\xa0\x1e\xcc\x01\x8a\xca\xbb\x1f\ +\xcc\xcb,M\x80\xf3N\xd5\xf7\xf9Nm\xb4c\xf1\x13\ +\xcco\x19\x8e\x8eYp\xfd\xbc\xd7\xe3\xa0\xed\xb0V\xb7\ +\x1b\xf6\xe2z\xb2t\x97\xbbN\xe1\x1fu^\x14\xbf\xb9\ +$\xde\x22\x1c\xe6\x19v\x13\xed\x96\x11N\xd6\xb1\x0c\xfb\ +e6\xadL\xaf\xab\x91\x80ka\xd4\x8d\xb4\x1cJ\xdd\ +U\x5c\xe6NK\x1b\xb9\x87l\xa9)\x8c]yw\xeb\ +\xe6\xf1Z\xc7\x83\xb1\x99\xb6\xbd\x8b7\xcf\xcce\xa0l\ +a\xdep\x1c:\xb3y\xf8\xa2\xd3\xba6\x85\xb6\xaat\ +k\x85\xec\xadgc\xe1\xe8\xbed?\xe4\x99~\xc91\ +\x9c97\xbd!\xd1\x8b\xdej\xab2sZy\xe4\xdc\ +y\xcaKp\xf8\x9dj\x90H\xb2\x0b\x11\xbd\x92`\x84\ +\xfb\x15:~\x03(\xd1\x19\xab\xad9\xb9\x95\xac\xbc\xb5\ +**}>\xdaWcv+O\x06\x826\xcf\xb9;\ +\x05m\xf2e\x80\x18\x12Q\xfc\x8f\xa9\xa4\xb0\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b\xe7\ +ndow-x=\x2257\x22\x0a \ + inkscape:window\ +-y=\x2227\x22\x0a ink\ +scape:window-max\ +imized=\x221\x22\x0a \ +inkscape:current\ +-layer=\x22svg2\x22 />\ +\x0a \x0a\x0a\ +\x00\x00\x0b\xd5\ \x00\ -\x00g\xc0x\xda\xed]mo\xe3\xc6\x11\xfe\x1e \xff\ -\x81P>$A\xcd\xd5\xce\xcc\xbe\xcc\xea\xec\x0bP\x04\ -\x09\x0a\xb4@\xd1\xa6h\xbf\x05\xb4D\xd9\xca\xc9\xa2A\ -\xf1\xce\xe7\xfc\xb5\xfe\x87\xfe\xa6\xceRo\xdc\xb5/\x89\ -Q\x14\x01L\xe9\x10X\x9a]\xee\xcb\xb33\xcf\xce\x0c\ -\x97\xcc\xe57\x1f\xef\xd6\xc5\x87\xba\xdd\xae\x9a\xcd\xd5\x04\ -\x94\x9e\x14\xf5f\xde,V\x9b\x9b\xab\xc9?~\xf8\xae\ -\xe4I\xb1\xed\xaa\xcd\xa2Z7\x9b\xfaj\xb2i&\xdf\ -\xbc\xfd\xfc\xb3\xcb\xed\x87\x9b\xcf?+\x8aB.\xdfl\ -g\x8b\xf9\xd5\xe4\xb6\xeb\xeeg\xd3\xe9\xfd\xfbv\xad\x9a\ -\xf6f\xba\x98O\xebu}Wo\xba\xed\x14\x14L'\ -\x83\xfa\xf3S\xfdy[W\xdd\xeaC=o\xee\xee\x9a\ -\xcd\xb6\xbft\xb3\xfdbX\xbb],\x8f\xd5\x1f\x1e\x1e\ -\xd4\x03\xf5\xb5 \x840\xd58E,\xa5F\xb9}\xdc\ -t\xd5\xc72\xbbV\xc6\xf9\xdc\xb5\xa8\xb5\x9eJ\xd9\xa0\ -\xeao\xac6\xdb\x0a8\xf7\xf2\xdf\xb1\xfeA\xa0\xb6\xcd\ -\xfbv^/\xe5\xc2Zm\xean\xfa\xed\x0f\xdf\x1e\x0b\ -K\xad\x16\xddb\xd8\xcej\xf3n;\xaf\xee\xeb\xa4\xdf\ -\x83p\x07CuWo\xef\xaby\xbd\x9d\x1e\xe4\xbb\x06\ -\x1eV\x8b\xee\xf6jbx\xf7\xf3\xb6^\xdd\xdcv\xa7\ -\xdf\x1fV\xf5\xc3\x1f\x9b\x8fW\x13]\xe8\xc2pq\x90\ -\xaf\x16W\x13\x99\x0c\xeek\x9d\x16\x1d\xf6\xe5\xfbNf\ -\xc7\x22\xad\x02**\xbeB\xa3\xad5\xee\xa2@\x0d\x5c\ -j*\x01\xbe\xde]s\x98\xdfl\xd1\xcc\xe3xEC\ -\xba\xf9\x8f\xcd\xfd\xf2\xc7n\xfb\xe3|\xfd~\xdb\xd5\xad\ -\xe8\x92\x8a \xbe\x8dW\x5c\xde\xd5]\xb5\xa8\xba\xaa\xbf\ -|7\xa8\x83\x08pWGj\xc9\x8a\xce\xfe\xf6\xedw\ -\xfb\x9f\x22\x98\xcfg\xffl\xdaw\x87\xdf\xf2\x89U\xaa\ -\xeb\xe6\xbd\xcc|\xf2\xf6$\xbf\x5c\xccg\xb2\x06wU\ -\xf7vuW\xdd\xd4q\xfd\xfe \x90_NO\x05i\ -\xed\xee\xf1\xbe\x1e\xb4\xbbk\xb9\xadw\xcb\xf9\xacb/\ -\xe6w\xabx\xd5\xf4\xef\xddj\xbd\xfeS\xecfRL\ -\xf3fW\xdd\xba\x1eH/\xa7\xfb9\x1c\xe68\x1dN\ -\xf2rz@a\xf7sQ/\xb7\x03\x88\xe2O\xd0\x87\ -N.\x8f\xb0G\xcc\x17q\xc1\xf7u\xefe(\xf3f\ -\xdd\xb4W\x93/\x96\xfdg\xb2/\xb9n\xdaE\xdd\x1e\ -\xca\x5c\xffI\xcb\x1a\xd15\x99\x96h\xc4A\xde\x5c\xff\ -T\xcf\xbb\xaeY\xd7m\xb5\x89X\xc8\x10\xf6E7\xad\ -(\xe1\xb3\x05\xefW\x8b\xfa\xd9\x92\xa3~\xc5A\x1e;\ -{\xbex{[-\x9a\x87\xab\x09>)}Xm\xa4\ -\xa4\xdc\xdb\x00\xb0\xf5\x9f\xaar\xb0\x0b\xd0\x83:\x82\xe5\ -\x113>H\xb7\xb7\xcdC\x9c\xd0\xd5dY\xad\xb7\xf5\ -\x93\x06\x7fn\x9a\xbb\xab\x09\xa9\xd0\x7f\xf8I\xf9\x5c\x8c\ -\x8d\x15Yg\xc9\xd2\xd3\xd2\x08)\xa8`\xc1\xfa\xf0\xa9\ -\xc1J\x0b\xd6~\xaaP\x1a(\xf9S\x85w\xd5\xc7\xd5\ -\xdd\xea\xe7z1X\xb8S\xdf\xef\xdbV(\xb8\x5cW\ -\x8fu;4\xff\x0c\xef\xf9m=\x7fW\xb7\xd7M\xd5\ -.\xe2\x9a\x1c\x14\xedf_\xb9jW\x954r]\xaf\ -\xaf&\xff\xf9\xf7\x11\xb7\xeeq-K\xbcl\xa4\x87\xfe\ -\xfbl\x13\x0dl\xfd\xa6\x97<\xf4\xf8'\xa2\xad\x8cs\ -fH!\x1as\xff\xf1\xcdz\xb5\xa9\xf7\xcb4\x03\x85\ -vWiY\xdd\xad\xd6\x8f\xb3m\xb5\xd9\x96[\xa1\x8f\ -\xe5\x9bu\xdd\x09\x8f\x94\x91\x0c\x85LfZ.}\x10\ -\x95M\x04K\xb1\xc4\x99\xe8\xbc_b\xd5\xff(\xf7*\ -6\x837\xdb\xaem\xde\xc5\xc1m\xea\xfd\xf7\x9d\xfeH\ -\xa7\x9a\xb5\x83\xa1vt\xf5\xc7\xceX4\xe5q\xa9:\ -\xd1\xe4md\x0e)\x8c_\xd7UW\x7feT0\xc1\ -\x1b\x8f\x17%\x18T\x80l\xfc\xd7G\xfa\xba\xaf\xba\xdb\ -#\x1bD\x86+\x88U\x00\xe3\x85D)\xa8@\xc8\x96\ -\x0a\xd9\x14\xac\x83\x00\xfeB\xbey\xcf\x9aBQ\xca\x90\ -\xc8\x13\xbb\x0b\x11\x91a0\xc5<\x0a\xc1ymY\x84\ -\xec\x8ca.J\xe9\xd3\x01B\xb8\x10\xe0\x82\xf3\x84Q\ -d\xadF\x1a\x8a\xb4\x02\x8f\x1c\xfc\x85\x8e\xdf\xc9\x88\x06\ -\xda\xdd\xf7\x10\x8c4\x10{f\x04t\xfdh\x0c\xc5\x85\ -\x892\x0b\xecB/\xdb\xf5'\xb3\x94\xc6\x9d\xf6\xfd\x08\ -\xfbo\x22#\xa5\xd1z\xcd\xc5\x9f\x0bt\xca\x06i\xdd\ -\x5c \xcaJ\x1a\xed]\x1c\xb8|7\xde9\xa9\xeb\x94\ -\xb6`\xc0\x16\xa5Q\xe4\xacstQ\x06\xc1M\x93q\ -\x85\x94J;\xa0}\x94\x91\x0f}\xdf\x03$\x82\xd5\x81\ -|l\xce\x91\xb4\xc6\x17(e`\x8d\x88HY\x0d\xe0\ -\xdd\xc5\xa1\xacX\x17Z\xe98\x95\x8bC\x0b2\x92\xfd\ -4\xfb\xc9Q\x1c5\x14\xd2\x86,\xa0?a`Dd\ -\x9ct?\x14\x09\x96\xa0\x91IPC\xe5\x91\x80\x9c\xb4\ -\x1b\x8c\x8c\x88\x0b\x92>5\x9bpa\x94\xe8\x0c\x00E\ -$\x8c\x02\xc2\x8b\xf8'\xc8\xda\xf6\xebw\x00J\xea\xc9\ -\x10\x91LQ\xb2b\xf0^\xc6\x0dV\xd0\xf6\xd6\xca\x5c\ -@\x807\xce[\x19\xb9\xa8\x8b\xc8t\x9c\xcd^IO\ -0\xc4\xd9\xf4\xbaa\xfb\xd9p\xd0(\x95\x88B\xb0.\ -J\x5cD\x1ae\xb8\xe4\xa5\x1aF\xd1\xfeJY\x8e\xa0\ -9`\x5c\x0e\x8b\x02\x16\x1d\xa6\x10WXz\xd7d\xd1\ -\x17^\x9a\xf0&\xc8\x0a\x81\x97\x11\x05\xd0$\xe3p\x8a\ -d\x85d \x22\x04\xa7\xe5\xa2~$h\x83,\xe1I\ -]\x8f*\xb3G.\x8e\xcd\x86 \xa0\x0f%\x80\xc4d\ -zP\xfb\xeb\xcdq\x94.vd)\xc8\xc2\x8b\xaah\ -\x19]\xc0\xe2\xe7\xc9\xd1\x9c~\x99t>D\xa6\xdat\ -\xbfJD][w\xf3\xdbD\xb6\xe7\x9d/\x7f\xa8\xff\ -U|\xff\xd8\xd6\xc5_\x85\x18\xd7\xeb\xaa\xf8\x8bX\xf3\ -\x97o\xca\x03a\x96\xbb\x16\xee\xeb\xf9j\xb9\x9a\x8b\xf7\ -\xdal>y\xd1\xaf\xb3\xd2\xf3L\xb4\xe3\xa2H#\x8c\ -|d\xe3\xe9\xcd\xeeo\xe4\xa8}E\xf1lf\xbd\x93\ -(\xb5\xc5g\xa9\xdb\x0f\xf5\xff\xc6\xce$#A\xf0\xff\ -\x17vFa1\xcf\xbf\x99\x9d#)\x8a\xdfy\xdcQ\ -e\x8f,M4\x8c\x00G\xd7E\xb6FrJxx\ -\xb0-',^\xe2\x11\xbeV\x9c\x99}\x9d6\xee\xc9\ -\xa2y\x1c\xc4\x0a\x87m\x89Y\x1a\xa1P\x1c\xf4i\x84\ -\xa5\x194\x1c7\x84\x83c\xe1\x14\x8b\x95\x08\xf1\x1f\x0a\ -\x0e\x8e\xb9\xf0\x8f0\xbcIF\x14;76\xb8|u\ -z`\xb4\xc6k\x9c\x7f\x02\x98Ci\x86M\xe4oc\ -\xf9 \x8e\xab%\xda9k\x9b\xf7\x9b\xc5P\xf8S\xb3\ -\xda\xa4Rq^\xebv-NC73\x07\xd9\xa2\x12\ -\x97\xabm\xab\xc7d\x1dNc\xb9\xafV\xb2\xf8\xbd\x9f\ -8\xbb\xabZ\xf1\x15\xb6E\x1cn\xb1\xab\xf9i\x8cY\ -xB{L1\x96\xadP\xec?\xc1XX\x94\xec\xc9\ -Q;a\xec\x09P\xb8+\xc3\x18\x83p\x14\x0e\x1a\x19\ -b\x5c\xd2\xb3(c\xe5\xc5!\xfe%}\xe3~+1\ -\xf4;\x80z0\xc4D\x05\x8e\xb0\xceW\xed|]?\ -7)\xaf+\xbb4\xbf\xd9\xa6\xc4\xf7\xb2\xc4\xfew\xd4\ -\x9a]\xa5^y\x86k\xd7s\x9d9\xeaIt\xa9e\ -\x9f\x91]F\xf3q\xed\xa3'\xed\xc5K\xd1l\xedq\ -\xe1\xdb\xe8\xf7\x8e\x0e\xa7\x93\x8a\xf7H\xb1p\x94\xf5d\ -\x87H913\xf1K\x9d\x199R.CJ\xdc\x14\ -\xf15S\x9d\x0aA\xac~\xec*\xe5\x13\xa0\x82\x18\x1a\ -\xf1)\x9e\xdd\x01\xe5\xb5\xd7\x0e\xfd\xc8\x91\xb2\x19M\x19\ -\x1d\x9d\xfa!RA\xa8+\xa0x/c\xa7)\x9bY\ -\x9f\x91\x10\xc0P\x0a\x15k\x09<`\xec\xe6\xe70\xb3\ -?v\xfe\xe4\x88F\xa4X\x89@>#\x07*\x0cq\ -B\x89|\xc1x\x0egB\x7f\x02\x14d\x0ae%\xc2\ -\x0c\x89\x8f 1\xbf7\xa7\xc4\xe3Hq\xca\xbdNt\ -ds\x988H\x04\x08c\xf7\x10t\xa6Q\xc1ht\ -\x09GYA\x8ac\xceo\xec$\x95:\xe86\xe6\xc0\ -\x9cI\xd9\x5c|s\xeb(\x8c}\xdf\xd3\x99\xf9\x010\ -\x9f\xe2\xbb\x9dR\x81\x17\x17\xc1\xbc\x94\xa8\x18\xaeay\ -\xfd\x9a\x5c\x844\x981\xca\xb3CL\x82\x19\x02\xa1t\ -\xcd\x1cF\x8e\x15e\xdb\x9f\x93\xc0O\x06\x8c\x19V\x82\ -\x1e\x01\x8e]\xafN\xb7\x17\xf7X\x01:\xa6\xc4\xa7\x22\ -T\xa4\x9dqc\xb7A\x9f\xc5\xc9\xe2.\x00\x84`2\ -\xac4x=v\x13\xb4\xa9\xab.\x9b \xb0#\x9f\xb8\ -VD\xe2\xbf\x07\xf4cW+\xb2\x99\x1b\xea\xfa\xfb\x87\ -\x9c\xea\x95\x91\xcd\xd1j{\xde\x07\xcb\xdci\x10f\x1a\ -\x9c\xf3\xd8k\x16h\xc4\xd1;\x0d\xa1\xcc\x13\x0b:`\ -\xa03\xb7?\x130giu\xe1v6D.\xc1\xca\ -*1@\x0bc'\xf7<_,\xb0\x18p\xe9\xcd\x1a\ -\xc1\x0a\xb5\x96\xfd\xf1\x85X\xed\xef\xd4\xbd\xa2\xb8\xf9I\ -\xca\xd8\x83\xf8W\xa9\x83\xa5\x05,6\x81\xc7\xceW\x94\ -\xb9\x0d\x14\x0f\xb2x\xc6\x9c\xdc\xbd\xb1/\xce\xc8\xbc\xba\ -\x9dPg\xecn\x14\x07\x17R\xcd\xc2\xa0\x0c[\xfd\xe2\ -;\x81\xaf\x11\xac\x0c.Q#\x81\x0bm\x1e\x15Zo\ -\xd8\x9d\xe1\xc2,0\x0c\xca\xb3\x86\xccy\x10\xe6\x0f\xe0\ -\xc2Y\xbbJ|\x12\xf0h!\xae4\x97ENyk\ -\xcf\xba\xf5\xc4\x81@e\xe2\x11\xc2\x5c\xb7\x82\x0d\x8cg\ -\xb4\x9e\x9e\xf8 \xf9d\xa9?/BC\xe6\xa5\xb7\xe7\ -um\x96\xd7\xf0\xaa\xd2\xa4\xe9\xa9\x0f\xb4\xca\x07\x1d\xd2\ -S\x1f\x12a\xb3\xf3\x833\xf9#E\x8b$\xecIR\ -\xa5\xe8\xe3\x19\x19\x9b\xdd\x02\x8b\xf9S\xd6\x1a\xc6\xae[\ -%\xa7.\x84\xa0\x05\x046\xb5\xc4x&\x84\x08\xdc\xd8\ -\xd1\xf2\xf2/\xbd]\xcf\x0a\xc19O\x19Z`H6\ -\xca\x91\xa3e\xcb\x90\xb2<\xc6$ \xe8\xcc\x12Y\x19\ -\x89|\xfc\xd8u+fL\x9f\x10\x17jb\x97*W\ -Ph$V\ -\x1e\x99I\x98\x0b\xb5\x02F\x84\xb1\xf3|\xdc\x179\xe3\ -y\x1d\x9f<\x83\x0c-B\xc7a\xec\xfeiL\x9e\xa6\ -\xa6(\xca\xe5\x91t\x9a\x11\x94`\x9b\xc8\xbe\xfc\x8c\xd6\ -\xab#.\x12\xeeJ\xb2\xcdh\x141\x9a\xf4\x9cV\x0c\ - 5\xe0\xe8\xa3\x9f>\xb4\xd6Y\xb0(\xc4\xe58\xc9\ -\xda\x80Q\x0e\xc0\xbf8o\xf3*\xe1\xcar\x11\xf1\x89\ -_\xc3\x84!3\xc7\x10\x9f\xcc\xc53`(!\xa3\xcb\ -\x5c\x09\xcf&;\x8b$t\x8f\xc0\xc4g\x0d\x8bi\xd4\ -\xcc\xb1\x97\xfd\x91\xd1\x9a\x140P,\xde\x04\xf3\x19\xb0\ -\xe8P\xa4\x1cF\xcax\x06g3\xc04;{6\xc9\ ->\x9b\x9ae\x08Y\x81fp\x19^\xe4-\xf3K#\ -G\xb4\xeeza_Q\xa0\x8d\x19R\x84\x90=A'\ -\x06\xca\xf1\xf5\x030v\xa823\x0c\x8a} \x132\ -\xac\xc8\x87\xc0f\xe4X\xe59\xfa\xa0\x9cC\xca\x22F\ -\x89\xaf\x85\xb1\xc8\x8d\x1c+\x9f\xee\x87\x84\xca`06\ -\xd7+\xd9!\xbd\x1d;]\xd9,\xfa\xf1\xe2l\x01q\ -v \x02=y\x0cc\xa7\xab\x1c\xab\x10\xdf\xe2\xe2\xd2\ -s\x94g\xb0\x8e\x09\xd44!\x08\x0a\x18l\xfa\xdco\ -\xcc{9\x1dp\xe4X\x854\x1bH2`\x1fL\xfa\ -\xec\xa1@\xa5\x0d1\x8f\x9d\xdb!\x0b\x0eQA0d\ -Lv6\xd0\xa3\xb6/>\x1b\xf8\xda\xb0\xca\x1e\xbd\xef\ -\xb3\xcc\xde\xa7\xa9\x9ax|+\x84\xc1\x9b\xf8\xc6\xea3\ -\xe8L\xb1$^&\x1c>B\xf6\xd8\xe7\x06\x05>\x83\ -cwFc\xd64\xbf\xf5\x1a\x80\xd0\xe6\xec\x1e\x0f\xdd\ -\x8c>\xcc\x91\x08:\xbf\xdbc\x08M\x96\xd02\xca\x19\ -\xf2f\xe4g\xbfM\xfe\x02\x0c\xcb\x83\xac\xfb\x1e(\x14\ -\xbeG\x1a9R\x94\x91{|\xa5` \x97&\x1aP\ -9\x0c/?l\xfa\xda\xb0rO\x1e\xea\xf1\x819\xf8\ -L\xafX\xcb\xc7\x8e\xfd\xe9\x8bL\xaf\xc4\xc1\x92x0\ -}\xb5\x0a\xda\xfe\x89\xcd\x17\xbf2\xe4\xb5a\x95\xddi\ -\x8d\x87gP\x83qy\xb2Ov4\x1c\xbb\x0dJ\xf4\ -\xec\xb3W\xd1\xc4\xf7\xa6\xa6\x8f@\x9d\xc1:E\xcf&\ -\xbb+\xad\x9d\x07\x17\xf2\x980\xbej~\xecf\x98\x9f\ -\x03|\x16+\xa1,\x0e\xa3g,\xc8R\xee\xa0,Y\ -0y\xaa\x81-\xa0\xc5\x91c%{!g\xee(\x90\ -\x09O\xf22\x86\xc3 \xaf5\xde\x876\x1dg7U\ -C0\x8c\xfe\xec\x90>\x1b@s\xfe\xf2\xd6\xf8rd\ -\xc8(\xcb9\x06\x1a\xfb\xf3\xc0\x12?\x9b'\xefo\x0d\ -:K6\x80\x0a\x9e\xddsO\x5c\x5c\xc6\xff\xab\x89\xfc\ -\xfd/\xd2V\x11\x0f\ -\x00\x00\x0c\x0d\ +\x00e\xaax\xda\xed]\xefn\xe3\xc6\x11\xff\x9e\xa7 \ +\x94\x0fIPs\xb53\xb3\x7ffu\xf6\x05(\x82\x04\ +\x05Z\xa0hS\xb4\xdf\x02\x9a\xa2l\xe5$\xd1\xa0\xe8\ +\xf39\xaf\xd6w\xe83u\x96\x12%.c'1\x8a\ +\x22\x80i\x1d\x0eG\xce.\x97\xbb\xbf\x9d\xf9\xed\xccp\ +\xc9\xbb\xfc\xfa\xd3v\x93}\xac\x9a\xfd\xba\xde]\xcd@\ +\xe9YV\xed\xcaz\xb9\xde\xdd\x5c\xcd\xfe\xf1\xfd\xb79\ +\xcf\xb2}[\xec\x96\xc5\xa6\xdeUW\xb3]=\xfb\xfa\ +\xfdg\x97\xfb\x8f7\x9feY&\x17\xef\xf6\x8bey\ +5\xbbm\xdb\xbb\xc5|~w\xdflT\xdd\xdc\xcc\x97\ +\xe5\xbc\xdaT\xdbj\xd7\xee\xe7\xa0`>;W/\xcf\ +\xd5\xcb\xa6*\xda\xf5\xc7\xaa\xac\xb7\xdbz\xb7\xef\xae\xdc\ +\xed?\x1fTn\x96\xabS\xed\x87\x87\x07\xf5@]%\ +\x08!\xcc5\xce\x11s\xa9\x91\xef\x1fwm\xf1)O\ +/\x95>>u)j\xad\xe7Rv\xae\xf9\xdbj-\ +\xf6\x82\xca\x9d\xfc=U\xef\x05j_\xdf7e\xb5\x92\ +\xeb*\xb5\xab\xda\xf97\xdf\x7fs*\xcc\xb5Z\xb6\xcb\ +A3\xeb\xdd\x87}Y\xdcU\xc9]{\xe1\x01\x81b\ +[\xed\xef\x8a\xb2\xda\xcf{yw\xfd\xc3z\xd9\xde^\ +\xcd\x0cwg\xb7\xd5\xfa\xe6\xb6=\x9d~\x5cW\x0f\x7f\ +\xac?]\xcdt\xa63\xc3\xd9Q\xbc^^\xcdd\x18\ +x\xa8s\x9eg8\x94\x1e\x9b_\x9cJ\xb4\x0a\xa8(\ +\xfb\x12\x8d\xb6\xd6\xb8\x8b\x0c5p\xae)\x07\xf8\xaa\xbb\ +\xa4\x1f\xd7bY\x97\xb1\xa3\xa2\x12m\xf9C}\xb7\xfa\ +\xa1\xdd\xffPn\xee\xf7m\xd5\x88\xf2\xa8\x88\xdd{\xb9\ +\xe0r[\xb5\xc5\xb2h\x8bx\xf1\xa1?\xbd\x04\xb0\xab\ +!ud\x0e\x17\x7f\xfb\xe6\xdb\xc3\x99\x9c\x97\xe5\xe2\x9f\ +u\xf3\xe1x*\xbfX\xa1\xb8\xae\xefe\xbc\xb3\xf7'\ +\xf1\xe5\xb2\x5c\x08\xea\xdb\xa2}\xbf\xde\x167U\x9c\xb0\ +?\x08\xca\x97\xf3sAR\xb9}\xbc\xab\xce\x8d\x1e\x9a\ +m\xaa\xc3\xf4=\xa9\xc3\xcbr\xbb\x8e\x17\xcd\xff\xde\xae\ +7\x9b?\xc5\x9b\xcc\xb2\xf9\xa8\xd1u\xbb\xa9\xce\xc2\xcb\ +\xf9\xb1\xf7\xc7\xb1\xcd\x07\x83\xbb\x9c\xf7c\xef\xce\x96\xd5\ +j\x7f\x86%\x9e\x81>6\x7fy\xc29\x82\xbc\x8c\xb3\ +{\xa8y'](\xebM\xdd\x5c\xcd>_u\xbf\xd9\ +\xa1\xe0\xban\x96U\xd3\x17\xb9\xee\x97\x14\xd5\xa2R2\ +\x18\x99\xfd\xa3\xb8\xbe\xfe\xb1*\xdb\xb6\xdeTM\xb1\x8b\ +\x00\xc8\xdd\x0f%7\x8d\xa8\xdaS\xf2\xfb\xf5\xb2z\xaa\ +\xe0\xa4H\xb1{\xa7\x1b=Y\xba\xbf-\x96\xf5\xc3\xd5\ +\x0c\xc7\x85\x0f\xeb\x9d\x14\xe4G-\x07\xb6\xfe\x99\x1a\xbd\ +\xe6\x83>W\x11\xfcN@\xf1Q\xb8\xbf\xad\x1f\xe2H\ +\xaef\xabb\xb3\xaf\xc6\xad\xfdT\xd7\xdb\xab\x19\xa9\xd0\ +\xfdx\x5c\x5c\x8a-\xb1\x22\xeb,Y\xfaYa\x84\x11\ +T\xb0`}x\xa6\x9br\xbd\xb5\xcf\x94\xc9\xe59?\ +S\xb6->\xad\xb7\xeb\x9f\xaa\xe5y\xa6\xce\xf7\xbdo\ +\x1a\xe1\xd4|Sh\x8c\xdcT\xb3v0P\x88\xb6\xfa\xd4\x1a\x8b\ +&\xefg\xa8\x15\xb5\xddG^\x90\xb2x\xb8)\xda\xea\ +K\xa3\x82\x09\xdex\xbc\xc8\xc1\xa0\x02d\xe3\xbf\xea\x89\ +\xe9\xaeho{c\x8f\xcc\x95\x11\xab\x00\xc6\x0b3R\ +P\x81\x90-eB\xf1\xd6A\x00\x7f!G\xde\xb3\xa6\ +\x90\xe5\xd2\x1d\xf2\xc4\xeeBDd\x18LVF!8\ +\xaf-\x8b\x90\x9d1\xccY.wt\x80\x10.\x04\xb4\ +\xe0\x0a\xb4\xca\x07\x1d\ +\x92}\x14\x12\x12\xb3\xf3\xe7\xfd\xeaS\xc4\x89$h\x19\ +\xa6/\xd1\xc7\xfd&6}\xf0\x14S\x9a\xac5LY\ +\x9frN\x1c\x03\xc1\x09\x08lbwq\x93\x05\x11\xb8\ +)\xe3\xe4\xe5O\xf20\x9c\x15\x82s\x9eR\x9c\xc0\x90\ +\xac\x81\x13\xc6\xc9\xe6!\xe1q\x8c\xe99\xd0\xa9\xdd\xb1\ +2\x12\xb7\xf8)\xebS\xccb\x8e\x09\x0a5\xb1K\x14\ +*(4\x12\xe3M{\xc1\xcbujyq\xcfIp\ +\xc6\xa7L.\xe0\xbdp7\xd3+\x03*\x88B\x99\x01\ +N\xa4%J\xf1N\x877&\x1f'3\x13\x8f<2\ +y\xdc\x7f2d(\xd4\x0a\x18\x11\xa6\xcc\xe4q\xcd\xe3\ +\x94\xc9u|\xd9\x0aR\x9c\x08\x1d\x87){\x9a1\xa1\ +\x99\x18\x9e(\x94G\xd2I\xaeN\xa2c\x22\xfb\xc2=\ +N\xaf\x8d\xa0H8j\x98\xfbE\xa3\x88\xd1$\xfb\x9c\ +b\xdc\xa7\x01'\x1d\xbbt\xc1\xb0N\x83\x98\xe4\xdd:\x01\ +I\x1bb\x9e2{C\x1a\xd4\xa1\x82`\xc8\x98t?\ +\x9dGm_\xb6\x9f\xee\x95\xa1\x94\xbe6\xde\xe5|\xbd\ +O\x12*q\xfbS\x08\xe7O\xc0M\xd2\x13\xd0\xa92\ +I\x88K8x[\xea\xb1K\xda\x09n\x06\xa7\xecV\ +\xc6L\xe6\xe8!g\x00B;\xe2\xef\xb8\x7fe\xd2A\ +\x8a\xc4\xbc\xa3'-\x86\xd0\xa4\x09'\xa3\x9c!o&\ +\xbc#\xda\x8c>\xd5`\xf9\x9c\xfe>B\x84B\xe8H\ +\x13\xc6\x88R\xfa\x8e\xdf\xae\x0b\xe4\x92\xa4\x00*\x87\xe1\ +\x85\x9b2_\x19Jn\xfc2\x8b\x0f\xcc\xc1\xa7\xba\xc4\ +Z~v\xcao \xa4\xba$\x0e\x93\xc4q\xc9\x87?\ +\xd0v\xef\x22\xbe\xec\xb3\x16\xaf\x0c\xa5\xf4\x99f\xdc\x89\ +\x82\x1a\x8c\x1b\xa5\xe1d\xc1\xc2)[\x9c\xc4\xbb>\xfd\ +DJ\xfc\x10g\xf2\xd2\xcf\x1bL\x87x\xd7\xa4O~\ +\xb5\xf3\xe0\xc2(\x96\x8b_\x22\x9f\xb2\xd1\x8d\xf6\xce=\ +\x85\x92P\x13\x87I3\x13\xa4\xa9oP\x96,\x98Q\ +Z\x80-\xa0\xc5\x09\xa3$\xeb\x1c\xa7\x8e%\x90\x09\xe3\ +\xec\x89\xe1pN;M\xf4uD\xc7\xe9\xe3\xcb\x10\x0c\ +\xa3\x7fs-\xc7!/\x8f>\x03\x1a\xbf\xab\x0b)5\ +9\xc7@S~\xbbU\x22^3\xfe\x12h\xd0ib\ +\x00T\xf0\xec~\xfe\xd6\xc1e\xfc_-\xde\x7f\xf6_\ +:\x85\xf5\xe2\ +\x00\x00\x0b\xbc\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs8\x22 />\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \ +\x0a \x0d\x0a Bus\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x15\x91\ +=\x220\x22\x0a id=\x22\ +path816\x22\x0a \ +d=\x22M 7.4185002,3\ +5.023041 H 40.65\ +5232\x22\x0a sty\ +le=\x22fill:#333333\ +;fill-rule:eveno\ +dd;stroke:#33333\ +3;stroke-width:6\ +.43819857;stroke\ +-linecap:round;s\ +troke-linejoin:m\ +iter;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1\x22\ + />\x0a Bus\x0a <\ +/g>\x0a\x0a\ +\x00\x00\x15\x8b\ \x00\ -\x00Ogx\xda\xed\x5cY\x8f#\xd7u~7\xe0\xff\ -Pi\xbdX\x08\xab\xfa\xeeKkZ\x06b\xc1\x88\x9f\ -\x12\xc4\x16\xf2\x18pH\xcetGl\xb2A\xb2g\xd1\ -\xaf\xf7\xd9\xeeRd\xb72V4\xb2-h\x0ckx\ -o\xdd\xf5\x9c\xef\xacuj^\xfd\xfe\xc3\xc3vx\xb7\ -9\x1c\xef\xf7\xbb\xdb+=\xa9\xaba\xb3[\xed\xd7\xf7\ -\xbb\xb7\xb7W\xdf\xfe\xe5\x8fc\xba\x1a\x8e\xa7\xe5n\xbd\ -\xdc\xeew\x9b\xdb\xab\xdd\xfe\xea\xf7_\xff\xf67\xaf\xfe\ -e\x1c\x87?\x1c6\xcb\xd3f=\xbc\xbf?\xdd\x0d\x7f\ -\xda}w\x5c-\x1f7\xc3\xef\xeeN\xa7\xc7\x9b\xeb\xeb\ -\xf7\xef\xdfO\xf7\xd29\xed\x0fo\xaf\xbf\x1c\xc6\x11\xa6\ -\xc2\xe4\xe3\xbb\xb7\xbf\xfd\xcd0\x0c\xb0\xf7\xeex\xb3^\ -\xdd^\xc9\x9c\xc7\xa7\xc3\x96\xc6\xaeW\xd7\x9b\xed\xe6a\ -\xb3;\x1d\xaf\xf5\xa4\xaf\xaf\xba\xf1\xab6~\x85'\xb8\ -\x7f\xb7Y\xed\x1f\x1e\xf6\xbb#M\xdd\x1d\xbf\xe8G\x1f\ -\xd6o\xeap<\xd2{K\xa3t\xce\xf9Z\x99kc\ -F\x181\x1e?\xeeN\xcb\x0f\xe3\xd9\x5c8\xe7ss\ -\x8dR\xea\x1a\x9euC?q\xd8\xcd\x11(\xfb\x08\xff\ -\xaf\xe3K\xc7t\xdc?\x1dV\x9b70q3\xed6\ -\xa7\xebo\xfe\xf2M}8\xaai}Z\xf7\xeb\x14\xc2\ -\xce\xf6\x9dQ{\xb7|\xd8\x1c\x1f\x97\xab\xcd\xf1\xba\xf4\ -\xf3\x02\xef\xef\xd7\xa7\xbb\xdb+\x97\xb8y\xb7\xb9\x7f{\ -wj\xedw\xf7\x9b\xf7\xff\xb6\xffp{\xa5\x065\xb8\ -4)\xfc\xa3\xdb/\x1eu\xbf\xbe\xbd\x82\xab\x19\x99\xd3\ -\xf0S\x9e\xcb\x967\xf5\x91\x9a\xb2\x99\xec\xf0;\xe3\x94\ -\xf7.,\x06\xa3t\x1a\x95\x1d\xb5\xfe\x92\xe7\x94\xdb\xde\ -\xac\xf7+<=\xecp\xb7\x7f\xff?\xab\xfdv\x7f\x80\ -\xff\xeeN\x87\xfd\xf68!A\xbf\xc6\xf1\xaf\xd6\x9b7\ -G\x9a\xc8\xc7\xc1\xa6\xe3G\xf0p\xb5\xbd\x7f\xfc\xcf\xe5\ -\xe9N\x06\x0cC\xe9\xf8vw\x7f\x02v=\x1d7\x87\ -?#y\xfec\xf7\xedQ(SV*C\x93\xf1e\ -=X\xf1\xb0Y\x9d\xea08\xed\xe9\xe3\x16\x8e\xf8\xe6\ -~\xbb\xbd\xd9\x81h|\x85\xbf\xc6=,y\x7f\xfax\ -\xa3\xa6\xe4\xb2\xd7\xce\xdb\xaf\x8ep\xee\xef67_d\ -\xfa#\xcd\x91\xb8pc\xa7\xe4\xa3\xd3\xce\xf8\xd2\xbf\xbd\ -\xdfm\xfew\x7f\xbf\xbb9\xec\x9fv\xeb\xd2\xfbp\x7f\ -\xda\x1c\xb6\xf7\xf0\xd7\x8d+}\xeb\xe5\xf1ny8,\ -?\xd2\xf6W\xdd\xd1\xf0\x0ex\xdadb\xdf]\x18\xef\ -&\xdc0\x85\xfeYE\xc1s\x0f? c\xb3IQ\ -E\xdd\xf7\x7f\x84~\xa5\xc2d\xb2\xca}\xff\x81\x1eL\ -:\x85\xe8\xf5\xd5p]xr]\x08\xcb\xfc\xbbF\x8e\ -\xf1\xcf\xcaz\xe4\xfb\x1a!\xd81\xf6\xf5\xb21\xe8q\ -\xf9vC\x80\xb8\xbd\xfa\xe2\x0d\xfd)O^\xef\x0f\xeb\ -\xcd\xa1<\x0b\xf4g\xfeLx\xc3Z\xae\xac_p\x8a\ -\x0b\xd7\x01\xea\x85\x01@\xf0\xf5\xfe\xfd\xed\x95\xb9x\xfa\ -\xfd~\xff\x00\x0b\x9b\xc9\x85\x14\xfd\xc5\xe3\x15\x90\xd0\x82\ -\x04\x01m\xb3\xbb|\x8ag\x8a\x93\xd6\xd6\xe5\xcb\xa5A\ -\x1a\x9eP\x11\x8eO\x8c\xdc\xc7\x0f\x97\x0b<\x1d\x0e8\ -b\xbb\xfc\xb8\x81\xdb\xd3_\x95S(Do\x0fH\xc8\ -7\xcbm\xa3\xe4\xcb\xab\xbd\xbf\xdf\xc1-G\x81\x8bN\ -\xde\xbe4\xa4\xa0F+\xe3_\x1a\x037\x0f\xf1\xa5\x87\ -pq\xf3\xe2\xc3\x87\xe5\x07@\xfc\xf7\x1b8yE\xd1\ -\xab\x87\xcdi\xb9^\x9e\x96\x1d>JW\xac\xc2\x0f\x1a\ -\xfd\xe6\xbf\xbe\xf9c\x93\xdd\xd5\xea\xe6\xbf\xf7\x87\xefz\ -\x8c\xc2\x90\xe5\xeb\xfd\x13\x9c\xbe\xc98*\x95\xd5\x0d\xe8\ -\xe0\x87\xe5\xe9\xeb\xfb\x07\xe08\xea\xef\x7f\x05\x95\x0b`\ -\xad\x0f\xe6\xa3O\x1f\x1f7\xdd\xba\xbc\xf2a\xc3\xea\xfc\ -Y\xc3\xb6^\x81\x1c\xc3\xac\xeb?\x9f@e\xfc\x09\xb7\ -iBR\x97\xbd?m7]/\x08\x0f\xdf\xa1\x0aS\ -\x7f\xc9W\xd7\x85\x08\xdc|{N\xd2\xed\xf2\xf5f{\ -{\xf5\x87\xe5\xe3r\xd0\x17\x04\x7f\x0b\xca\xe6\xf1a\xbf\ -\xde\x08v\xae:\xea\xce\xc1t:,wG\xa4\xc3\xed\ -\x15\xfd\xdc\x82\x03\xf0;\xb5\x18A\x0f\xb8\xc9\x06c\xbe\ -\xacLx;\xd3\xa9\xbc\xcch;M\xfb\x83g{a\ -\xab1\x80lz\xa3\xa3\x87=A\xda\xac\xb5\xca}\xd9\ -&\xf5Z\xf9\x8b\xd7\x16\xffW\x15\xb0\xe8\x84F\xd2\xc7\ -\xde>\xc5<(\xd29fa\xa7\xac\xed0\xea\ -\xc9\xb8\x18LX \x8d#\x8e\xb6N\x99`\xa0m\x92\ -\xf5\x03\xff\xe55\xb4\xc1\xb0\xd1\x00\xaf\x95\xcd\x16:|\ -\x88\x1aW\xd0`\x0btX\x8c\xbct\xb7\x06\xfc\x8a\xd9\ -\xe6\xe1\xae\xee\x13\x87\xed0\xda\xc9X\xe3R\x82#E\ -\xc5\x87\x80\xa3\xa5\x94y\x82\xc3\x8e\xe0\x9c\xcf\x196\xb1\ -9\xd6=\x22\x0e\x08Iy\xdc\x03\xeed\xac\xeb{\xe4\ -`\xb2H\xb9(\x13\x00\xdb\xed9\xfe\x82\x8e\xe4U\xf0\ -\x9e\x960\x96H\x83\xe7\xd12\xc5\xd2\x9apGEs\ -\x84\x82\x9f)FBC\xbf\x02\xc1\x8b\xc4\x09\x00\xb6\ -`\xc5\x1c\x1ah;\x8c6MI\xa4\x849\x11\x86\xc2\ -\x1c3\x19\xad\xe3PUH\x19Qo:\x9e)F\xdd\ -+\xf5\xb6Q\x99\x84\xc8\xf3\xdd>D\x9f(PbA\ -\xd0\xb9qX\x90VpT\x95\x86\xe8\xb4F\x9ej\xf1\ -\x04D\x04J\xdd\x8b\x0e\xa9\xb2:\x9ew\x1e\xf8zp\ -\xf3J\x9b\xa6.Hx\xaa\x12\xaa\xda\xb8j{\xb9\x92\ -\x98\x90\x06\xa9\x02\xa1B\x16\x1a`\x9a\xb4U\xf5\xc3\xc2\ -L\x80px#B\xc0\xbb\xa1h\xaa\xed\xd0\xdbI\xc2\ -\xd3\xbb\x22&\xac\xac\x1a\xa7\xc9Rw\xc6K\x04\xa6i\ -\x1a\xa1\xa7H\xa10\xfe\xdd\xc0\x87\xd8\xf6\xa7\x12\x9c\xca\ -\xa9+N\x1b]\xc8h\x15\x85\x1e\x17\xa2\xf3:33\ -VE\xd3\x1b\xf5\xe2J\xb0D\xe0\x05\xaaM(w\xe7\ -\xbf]\x0e\x8b\xb1x\x17=d\xc4#jv^\xcce\ -\xb3\xea|\xb4\x1ew\xa8\xe2\xab\x0d/SV\x83Z\xa8\ -\x99>\x91;\x16\x1a\xcc\xc8)\xba\xbdR\x93\xae`/\ -\xda\x1d\x11G\xb1z\xb2\xb1o`\x91\x83\x09\xfa\xaa\xe6\ -fJ\xcc\xe4\x03\x0fn\xa6h\x8c\xca\x1e\xd4\x935\xde\ -t`\x02\xdc\xc2\xd1a\x00`;\x83<\x98\x09w\xae\ -Bxf\x9f\x9av\xc1\xdej?gd\xe8\xb4\xac\xac\ - \xc6\x03\x89P\xc5\x81W\x98\xcb\xe7\xa2\xc3+\xcfm\ -x#\x0d\xde\xa9x\xf1\xea\xaa\xb4!\xbe\xdd\xb9\xe1k\ -N \x01\xbc\xa9:^m\x94v\x81B\xf5\xf8\x84:\ -\xcd\x0e\x89e\xaa>\xe2\xd8nC\x86U\xdc\x96T\x11\ -\xdb/Y\x0cW\xed \xe80K\xab\x86\xba+\x9b\xf2\ -\xed\xcb\xe9\x85\xf8|\xfc&\x8e\xb8\x94\x13\xbf\x03Z>\ -\xc3`\xe3\x81\xf7\xc0\xdb\xef\xcf\x13B\x18\xec$=\xcb\ -\xd3\xb4\xfc\xc1~\x07\xd1\xcai\x7f\x18WO\x87w\xcb\ -\xd3\xd3\x01\xe2 \xd5\x0fm\x09\x1a\x88\x121x=\xde\ -^\xad\xfe)\xff\xf4\xa1\xf6\xcf\x12\x01\xbe~:\x9d.\ -\x02@\x8a\xf9\xfe\x1f\x01\xe0E\xb4\x97\xed\xe4R\xce\xa0\ -\xeb4\xc0aJ\x00C\x0a\xb4\xc0\x11s\x09%B\xb1\ -K\x13c\x8e\x0cY\x89\x93\x82R\xe2GA\xf4.2\ -\x8c0\x85\x98,\x90\xd8\x86L\xb85\xda\x84@Q\x89\ -\xc4 \xc1\x12\xd0\x95I\xf3PH\xfbp\xd9A\xf6\x05\ -w \xed\x05Q;\x07G\xb0(\x19\xebH\x08v\x01\ -\xd4\x0ayK!\xa1m\x85-\xacXo\xd26\x00w\ -\x12\x15Q\x1d&\x06\xc7\xee\x9c\xd6\xe8\x5c\x013\xac\x8b\ -\x9d\xa6\xc9\xd9\xb8Ny4E\xafH\x9c\x94\x92\xc8\xcc\ -;\xf6\xe3q=\x12M\x22\x96\xc2P\x04\xcc\x19u\xe8\ -\xf4\x92H\x19\xfd\xb7\x88\xd4/\x13|1#K\xd1m\ -\x01\xf0\x85\x09\xe8Ia$\x1a\x93\xd8\xe9/\x85\xbe@\ -\xf5]\xc7:\x02\x9e$\xf1T\x88\xf3\x04\x16oS$\ -\xe4j \xfe,\xd5 \xda\x8fW\xab\xdc\xb6\x1a\x8c_\ -(\xa6\xaew\xad3,\xfe\x02\xef\xec\xaf\xbcK 8\ -\x16\xc3E`\x9d\x07\x07A\xb3]C\xfbUM\x0d2\ -\xc6*\xcb\xc6\x88\xcd\x188\x18\x9e\x85\x91\x03\x15\x03\xd3\ -\xc94k\xa5^\x14\x15\xff\x93[\x9f_\xaa@E\xd0\ -A:\x98\xcc\xda\x5c{V`\xc9\xbb\xc0\xd1\x8b\xe6\xac\ -\x88\xb2J\xb1\x83\x92\xab\x1fJ\x1a\x17\xc2e\x96\x05#\ -\x8e\x8dw6s\x07+^\x88\x12P\xee8\xd7\x02\xab\ -Q^\x04d\xc6_vl\x05\x10\x9c\x97\xd0\x9eRJ\ -\x1e\xe4\x93\xa43\xc1\xd1^`w\xfcU\xba\x92\x9f\xb2\ -'&1#\xb3\xa7`\x88\xa4\x854c\xd6\xe4\x89\x82\ --\xe2h\x09\xa3J\x91&V\x9d^#\xebUP\x1a\ -S\xde\x00\x0br]\x91\xec\x1c\x1aYLET\xce;\ -\x88R\xbd\xb8\xb0\x86=\xfc\xac\xc1\xeaR\x8f3v\x06\ -\x1aI_\x19%a\xb61\x9c\x9d;\xeb\x91\xa5\x83'\ -@\xca\x91F6\xc7\x1c\x1b@\x98\xc6\xce\xb0\xa2\x04\x0c\ -k\x08\x93\x14\x8c@\x88\xd8\xe7:\x08Uxx\xc5N\ -\x82\xe2Ae\x0d\x08\x85j@a!\xaa\x89\x086\xef\ -\xb4\x9d\xb5\x89z\x8b\xe2\xcb\x94\xb9!p^I9\xda\ -.\x82\xdb\x8b$\xc4-pw#;q\x8e,E\xa6\ -S\xdf|\x01\xcf\xf9W<\xa70\x05\x05^RD<\ -\x03\xa5%[+\x0a\x07\x03%!\xaeQ\x0a\xa1\x81x\ -\x94\xd4[\xe2\x1ci\xe8\xc0ZY\x12\x19\x8a\x82^\xf4\ -\x14%\xf7A\xb0GWn(\xb8\x85M\x9d\x0eC\xe3\ -v\xf4\x9a\xbc=\xd9Qs:\xbf\xda\xa3d\x8c\xbeh\ -cte\xa3\xca&\x95\xdd{,\xa246\x99#\xe4\ -\x93G\x11\x08P\xacm\xe9\xbc|~\x14\x05\xc3>J\ -E\xb3\x7fQ+\xda\x7fh\x7f\xf1\xf3\xbc\xae\xba\x80Q\ -HS\xd2\x0a\x93;\xc0-\xf8\xed)u\xe5\x83vL\ -O\x92\xd1\xca\x12i\x17u\x90\x92\x91\x1c(\xfe\xc28\ -\x81\xcd\xd9X\xa1\x81\xc3I\xf4\x8d#u*3X\x05\ -]\xb4\xb7m\xc6\xc8\x87@\x15\x9d\xb0\x8b\xce\x12$0\ -\xe7\xe3\xd1p\xb0\x85\x96\x91\x1b8\x0f\xe6\xf0GU\xc7\ -\x0c\x08\x82#<\xd6\xd0\x99\xac\xe4\x8f2\xe6\x0c\xb35\ -\x96qC\xef[\x14\xaa\xd6\x85\xe8j\xce\x22\x88\x82#\ -\xb3>\xf6\x06CnT\xb1\xe9\x08\xdd\xe0\xc0e\x09\xb6\ -2\xe5\xb0\x5c\x85\xa6\x9a\x9b\x0b\x9e],@\xd9\x10o\ -c\xbc\xe4\x059\x07F\xba\xba\x0c)\xe25\x8a\x0e\x1e\ -+\x09F&\x15e\xd6\xf0V\xba\x85\x96(W$r\ -E\x9aQl\xc4-\xb1M\xba)\xf2\x22\xb6\x18\x0b6\ -2t\xfcG\x11g\x89\x8c\x8a\xdcRtB\xd8\xbai\ -c\x8b\x0c\xc7E=6\xdd\x93\xd4\x0c_\x8b\x9b\xac\x7f\ -r\x1f\xdc\x82\x15\x95\x8d\xc3\xac\xc3j<\x89\x18\xc7\x8e\ -Ph\x8e\xce\x9ad\xc0\xa2\xd61U(b\x87C/\ -\xad'\x14\x12Nq\x12\x0f\xc8\xd3\x0e!\x1a\x09\x09\x18\ -\x99\x80@\xa7\xc0\x5c\xf2\x92\xacd\x1dW\x09\x16\xd0\xfb\ -r\xd5o\xb8\xec\xa13\xb9z(4\xe43<\x95\x8e\ -f\xe1Y\xd3\x89\xda\x02\x06\x84\xa1g-\xe9\xb1\x22w\ -\xe8\xd9\xfbnX\xd1\x86\xc4\xbd\x9e\x9d\x92\x9b\xab\xea\x12\ -\xf9\xfaL\x0f{\x00\xec\xf9\xb0gZi\xd3\xee\x9dz\ -\xecq\x0b\x80\x99\xe8@!!\xdb;\x8d}\xde\xc1\xe9\ -\xc8\x8a*\xa79\x85\xef\xf0\xa4\x1c\xdc0\xb6\xf1f\x95\ -\xe7\x84\x05y\xc1G\x8f\xdb\xb1\x81fvv\x1eW\x9c\ -9\x96fM\x96\xe8\xacc[\xa0\x9fD^\xd9 \xa2\ -\xc4\x96\xf72\x94[t\x09\xd1\xdc\x9c\xf2\x0am\xf1W\ -\x9cC\xd3V\xc4i\x8eef\xa5n\x96w\x14\x9bY\ -\x94\x18Q\xced\x15Ml~\xddy\xc7\x1dG\xe0*\ -w\xca\x16\xe2\xbe\xc4C4\xbf\xb2\xc2S\xb0?)v\ -\xb3\x80\x87\x9fVZjI\xa6\x83\x84\xf1\x9b;\xa8\x9b\x03\xa8\ -,U%\x88NZ\xd1\xe6\xb8^\xa0j3rG\xaa\ -\xf8\x94n\xd0\x81\xa9o\x9f{\xce\xea\xb9\x0e\xc1[\x15\ -t\xb2\x81c\x17.\xd1Q{\xe1q}\xcc\x02\x01s\ -\xbel\x93\xf0\x90\xf7\xea\x17\xd5\xc5\xc3\xd4I\xdff\x9c\ -\xcd\xcc%_\xbbYK\x86\xaf@\x8c\xdc\xeeN\xca\x01\ -\xad\xba\xb9d$I\xe6\x1c8\xec\xbdV\xf1\xad\x91\x14\ -b\xa2K\xe30\xe2Dy\x08\x06\xca\xae\x91\x1f\xce\xad\ -]\xc5\xa3{A\xb53\xa7\x8b\xaai\xd0\x0e\x9d\xd7\xd2\ -\xb4*9\x1c\x0dn\xe5\x86\xf2\xb8\xa2\xa4\x9a\xdev\xec\ -\xce\x10\xd7pe\x9c\xca\xf5\xbd<\xd7\ -\x9e\xb6\x9a\xa5\x1f*\x7f\x93\x22\xc8\xb3\x0e\xf1%\xb8\xd6\ -P]\x94\xa1\xcd*1\xa8M\xef\xee%\xf8&\x07\xc1\ -\x81\x8e5}\xe9@w\x84D\xfe3V\x04s\xa5\x1f\ -;\xd0\xad\xf2^\x07\xc3\x92\x8b\x15(\x9c\xb8\xe0\xe4|\ -\xd9E\xaa\xc5.{\xb6\xdd\xc2R\x0c_\xd3 \xf5\x84\ -!q\x06\xa2\x9e0\x06\x1f.N8\xb6\x82\x84R\x8c\ -x\xd1\xb3\xedj\x9f\xbb\xef%\xa4\xe2\xb4}e0+\ -\xda\xd4\xb32u\x5c\xb1\x1b\x82\xef\xe4\xd2\xbc\x02;=\ -w\x07\xa6:U_t\x1f{\x94\xf2\xc4\xfa\xe1FW\ -\xc6\x1d.;\xcakA)\xbb\xa6\xc0\xc8\x18C\x1fj\ -HQ\x90\xa6\xf2\xda\xd6N\x86\x934T\xe7\x0d\xd7\xc8\ -\xc6\xd9\x9ed\xb5f\xa3\xdck^I\xdeW\xb2\x97O\ -\x1bf\x1f\x12tE\xe0\xc0\x1fw\xd1\xe6\xf4(\x15\x93\ -\x97\x92\xc6\x16\xbd\xcd\xeaE*~j!\xb0\xa6\xb2\xe7\ -E\x05 \xf3_\x86\xe3;\x22\xa3\x03\xeb]_\xbf\xa1\ -0\xb58/\xc5\x5c^\x1d\xf1\xf0Z8+\xc4\xae\xa5\ -0\xf2\xdd\x88\xcf\xde\xf9\x5c8\xca0\xf3y\xd1\xd5\xa4\ -FI<\xc8q\xb1r\x86\x8a\xf6k\xa1a!\xfeY\ -\xad\xf9Pkk\xdaqJe\xfcl^YY\x8a\xb9\ -[\xd5\xe5\xbcC\xe8\xd7J\xbe\x89\x02}\xc1\x0e\x93\xa0\ -\x96\xc2\x0boK\xfd\x0eBT\xc8+\xef\xe7f\x95\xf1\ -R9_\x11Ne\xd0\xe7\xed\x17\xcc\x96\xffQ\xaf\xda\ -^]\xbf-\xbffv\xe0\x9f\xd1\x0a\x90\x0d0\x11\xe0\ -\x1a0o\x86\xef\xdc\xc0%\x8a\xb1\xa8#\x0ax0\xf5\ -0HE\x1f\xbe\xb7\xf0\xd8\xca\xd6\x93\xe4I\x18\xac\x93\ -\x13#\x81\xbf\xa4XK9.=h\xbaJ\xa1\xb2\x95\ -\x8a9)6\xf0\xce\xf5\x85D\x5c\xf3\xc7O\xd8\x83I\ -Z\x22w\xf9\xe8\x02td)H\xe4%P\xd68_\ -\xccN\x9e\xf3\xc9\xc6\xce\xe9\xeb\xdb\xdf\xcf?\xe5f\x1c\ -\xc4g\xbe:\xfc\xbf\x9c\x97\x17]\x97\xe3\xdc[\xf8\x87\ -\xc0H\xfb0\xf0G|0\xce\x18\xc9H\xe7\x18\x09#\ -\x01\xb8\x15\xb9.\x05\xb8\xc3\x11f+s\x17\x9c\x88\xc6\ -\x05SF\xc91\xe2V\x01\x00O\xa0BO\x1d\xa9h\ -\xd4R\x05\xfcY[^+a\x99'\xc1\x90*\xc9\x18\ -1\xd2d\x0f\x1ck\x91\xd87\x8e\x1c\xc33\xe3\x9d\xcd\ -^\xb5\x88WeP\xc120P\x16\x8f\x93\x80\xfc\x06\ -\xd5\x05\xaa\x8f\xa6a\xad\xc2\xad\xd5\xafV\x18\xc2y.\ -?\xeb\x1a\xbbs\x05[\xeb_\xabz*\xd7\xe6o0\ -\x0aM\xc4\xce\x86l\xe9\xd2$9\xddgH ~n\ -\xa8\x17\x9c\x14\xd7)d\xae\x04b3#Z}\x94\xa7\ -T\x95;\xbbEW\x85\xdb\x7f1\x03\xca\x94\xb7\x8a\xf2\ -r\x08g\xa2\xe6O\x22*A\xe5p\xd9.\x89L\xd2\ -\xc5\x14\xaa\xe44\xffF\xa2\xf4\x88u\xe4\xdc.0\x95\ -\x054\x8a\xd9/u\xb3\x10\xa2\xe6f;e\x84\x1c\x8b\ -W3\xf1\xb2-\xef\x00\x8b\xe6\xb0:\x9f}I\x19\xed\ -\x5c\x93\xf0\xe5\x99rc-'>\xeb\xd8\xce\xe6xo\ -{\xfaA\x84\xd6\xbd},\x83\x8a\xe7\x08,W\xfc\xf5\ -(\x901\xcfI$P\x0c\xe2\x00\x97\xa6T2\xb3\x18\ -P\xa51*\xb2^B\xce\x04\x86\x83\xedE\xb9\xcd\xfc\ -+\xbf\xde\x1e\xa2\xd2\xa5q1\xf5\xb049\xc6\x8bv\ -}\x9d*\xa4SZ\xde7xy\xf9X\x16)\xa5\xd2\ -\x05\xfb\x0c\xd9Q0:+\x8e.\x9f\x1d\x96\xf2i\xb9\ -b\xf1\xb6\xeb\xe3RAZ1$_\x01\xcaW\x8c\xec\ -e\xb43\xa1F\xe8\xdfd\xf1-\xe4\x8f\x85\xf8\xf7\xc3\x82\xd11\ -\x19\xfd9\xa9\x12\xa6$\xef\x14\x81*\x19\xbf\x023 \ -\x1f!+\xab \xaa\xb6S\xb2)=K\x95\xcfj\x1d\ -V\xab\xcf,\x01\x11\x9cUg)\x19\xaa\x13\xd8K\x8f\ -Z\xc1\xfb\x98<\xc0\xc3L\xe04\xc7\xe7n\xed\xfev\ -\xfb\xc0I\x84W\xf8\xef\x07\xc1\xdf\x7f\x05\xd5r}\x98\ -\ -\x00\x00\x0a\x9b\ +\x00N\xb9x\xda\xe5\x5cYs#\xc7\x91~\xd7\xaf\xe8\ +\xa5^\xa4Xt\xb3\xee\x83\x1a\xca\x11k\x85\xc3~\xda\ +\x0d\xdb\x0a?n`\x00\xcc\x90+\x10`\x00\xe0\x1c\xfa\ +\xf5\x9bW\x1d\x0d\x90\xb2\xb4\xab\x91mi\x1c\xd6\xa0\xaa\ +\xeb\xcc\xfc\xf2\xec\xecy\xf5\xbb\x0f\x0f\xdb\xe1\xdd\xe6p\ +\xbc\xdf\xefn\xaf\xf4\xa4\xae\x86\xcdn\xb5_\xdf\xef\xde\ +\xde^}\xfb\xd7?\x8c\xe9j8\x9e\x96\xbb\xf5r\xbb\ +\xdfmn\xafv\xfb\xab\xdf}\xfd\xd9\xab\x7f\x1b\xc7\xe1\ +\xf7\x87\xcd\xf2\xb4Y\x0f\xef\xefOw\xc3\x9fv\xdf\x1d\ +W\xcb\xc7\xcd\xf0\xc5\xdd\xe9\xf4xs}\xfd\xfe\xfd\xfb\ +\xe9^:\xa7\xfd\xe1\xed\xf5\x97\xc38~\xfd\xd9g\xaf\ +\x8e\xef\xde~6\x0c\x03\xec\xbb;\xde\xacW\xb7W2\ +\xe1\xf1\xe9\xb0\xa5\x81\xeb\xd5\xf5f\xbby\xd8\xecN\xc7\ +k=\xe9\xeb\xab6|\xd5\x86\xafp\xf7\xfbw\x9b\xd5\ +\xfe\xe1a\xbf;\xd2\xcc\xdd\xf1\xf3n\xf0a\xfd\xa6\x8e\ +\xc6\xd3\xbc\xb74H\xe7\x9c\xaf\x95\xb96f\x84\x11\xe3\ +\xf1\xe3\xee\xb4\xfc0\xce\xa7\xc2\x19\x9f\x9bj\x94R\xd7\ +\xf0\xac\x8d\xfcq\xa3n\x8e@\xd0G\xf8\x7f\x1d^:\ +\xa6\xe3\xfe\xe9\xb0\xda\xbc\x81y\x9bi\xb79]\x7f\xf3\ +\xd7o\xea\xc3QM\xeb\xd3\xba[\xa6\xd0s\xb6\xeb\x8c\ +\xc8\xbb\xe5\xc3\xe6\xf8\xb8\x5cm\x8e\xd7\xa5\x9f\xe6\xbf\xbf\ +_\x9f\xeen\xaf\x5c\xa2\xd6\xdd\xe6\xfe\xed\xdd\xa96\xdf\ +\xddo\xde\xff\xc7\xfe\xc3\xed\x95\x1a\xd4\xe0\xd2\xa4\xf0\x8f\ +n\xbfh\xd0\xfd\xfa\xf6\x0a.exF\x03\x8c<\x95\ +\xcdn\xea\x135e3\xd9\xe1\x0b\xe3\x94\xf7.,\x06\ +\xa3t\x1a\x95\x1d\xb5\xfe\x92\xa6\x94[\xde\xac\xf7+<\ +6,\x7f\xb7\x7f\xff\xdf\xab\xfdv\x7f\x80\xff\xeeN\x87\ +\xfd\xf68!\x1d\xbf\x86\xe1\xaf\xd6\x9b7G\x9c\xc6'\ +\xc1\x96\xa3\x07\xf0h\xb5\xbd\x7f\xfc\xaf\xe5\xe9\x8e\x1f\x0f\ +Ci\x7f\xbb\xbb?\x01\x87\x9e\x8e\x9b\xc3_\x90&\xff\ +\xb9\xfb\xf6\xc8\xe4(\xcb\x94\x91\xc9xY\x0c\x96;l\ +V\xa72\x08\x8ey\xfa\xb8\x85\xb3\xbd\xb9\xdfnov\ + \x02_\xe1\xafq\x0f\xeb\xdd\x9f>\xde\xa8)\xb9\xec\ +\xb5\xf3\xf6\xab#\x1c\xf8\xbb\xcd\xcd\xe7\x99\xfeHs$\ +\xc2\xdf\xd8)\xf9\xe8\xb43\xbe\xf4o\xefw\x9b\xff\xd9\ +\xdf\xefn\x0e\xfb\xa7\xdd\xba\xf4>\xdc\x9f6\x87\xed=\ +\xfcu\xe3J\xdfzy\xbc[\x1e\x0e\xcb\x8f\xb4\xfdU\ +;\x19^\x00\xcf\x9aL\xecz\x0b\xa7\xdd\x84\xdb\xa5\xd0\ +=\xaal\x7f\xe6\xd9\x07\xe4e6)\xaa\xa8\xbb\xee\x8f\ +\xd0\xadT\x98LV\xb9\xeb>P\xff\xa4S\x88^_\ +\x0d\xd7\xc2\x88\xebBO\xe2\xd852\x89~UV#\ +\x9f\xd7\x08\xb7\xc6\xc9\xd7\xcb\xca\x93\xc7\xe5\xdb\x0d\xb1\xff\ +\xf6\xea\xf37\xf4G\x1e\xbc\xde\x1f\xd6\x9bCy\x14\xe8\ +\xcf\xec\x91\xb0\x83\x15\x98\xac]\x10\x89\xab\xd6\xe7\xea\xf9\ +\xe7@\xe1\xf5\xfe\xfd\xed\x959\x7f\xf8\xfd~\xff\x00\xab\ +\x9a\xc9\x85\x14\xfd\xf9\xd3\x15P\xcd\x82\x94\x005\xb3\xbb\ +x\x88\xc7\x89\x93\xd6\xd6\xe5\x8bu\x01\xf3O\xa8\xe1\xc6\ +'\xc6\xe8\xe3\x87\x8b\xe9O\x87\x03\x0e\xd8.?n\xe0\ +\xd6\xf4W\xe1\x0c\x0a\xca\xdb\x03R\xef\xcdr[\xc9\xf7\ +\xe2R\xef\xefwp\xbbQ\x90\xa1\x93\xb7/\x8c(\x00\ +\xd1\xca\xf8\x17\x86\xc0\x8dC|\xe1\x19\x5c\xd8\xbc\xf4\xec\ +a\xf9\x01`\xfd\xfd\x06\xce\x5c\x00\xf3\xeaasZ\xae\ +\x97\xa7e\x03C\xe9\x89E\xb4AC\xdf\xfc\xf9\x9b?\ +T\xd9\x5c\xadn\xfe\xb6?|\xd7!\x11\x06,_\xef\ +\x9f\xe0\xd4U\x82Q[\xacn@\xa7>,O_\xdf\ +?\x00\x7fQ\x1d\xff;\xe8P\xc0d}0\x1b|\xfa\ +\xf8\xb8i\x8b\xf2\xb2\x87\x0d+\xe7g-\xd4z\x05B\ +\x0a\x93\xae\xffr\x02}\xf0'\xdc\xa4\xcaA]\xf4\xfe\ +\xb4\xdd\xb4N\x10\x0f>}\x91\x96\xeer\xaf\xae\xcb\xd5\ +\xa9\xf5\xf6\x8c\x88\xdb\xe5\xeb\xcd\xf6\xf6\xea\xf7\xcb\xc7\xe5\ +\xa0\xcf)\xfc\x16T\xc8\xe3\xc3~\xbd\x11\x94\x5c5z\ +\xcePs:,wG\xbc\xfc\xed\x15\xfd\xdc\x82\xf5\xfe\ +B-F\x10p7\xd9`\xcc\x97\x85\xeao{\x1d\xc9\ +k\x8c\xb6)\xce\x1f:\xd5\x0b\xdb\x8c\x01$\xcf\x1b\x1d\ +=\xec\x07\xd2d\xadU\xee\xcb:\xa7W\xb2\x9f\xbf\xb6\ +\xf8\xbf\xaaOE\xdc+\x15\x1f;M\xff\xfcL\xd2\xd0\ +\x87\xa7\xed\xe6f\xf3n\xb3\xdb\xaf\xd7gk\xcdu\xb3\ +\x9aL\xaf\x94\xe1fs\x9d\x5c5\xf5kXm\xfb\xe3\ +5u\xe9-\xa6B\x7f\xf5\xb8\xbc\x07\x81&\x85\x05#\ +\x00\x84\xdbN\xa5\x22\xfa\x07\xad@\x81y\x1b\xdd\x02D\ +\xd0N1\xbb\x01\x9c\x80\xac\xa2\x8d\x0b=\xf9\x14\xf3\xa0\ +H\xa3\x98\x85\x9d\xb2\xb6\xc3\xa8'\xe3b0a\x81\xf4\ +\x8d8\xda:e\x82\x81\xb6I\xd6\x0f\xfc\x97\xd7\xd0\x06\ +#E\x03\xbcV6[\xe8\xf0!j\x5cA\x83r\xd7\ +a1\xf2\xd2\xdd\x1a\xf0+f\x9b\x87\xbb\xbaO\x1c\xb6\ +\xc3h'c\x8dK\x09\x8e\x14\x15\x1f\x02\x8e\x96R\xe6\ +\x09\x0e;\x82s>g\xd8\xc4\xe6X\xf7\x888 $\ +\xe5q\x0f\xb8\x93\xb1\xae\xef\x91\x83\xc9\x22\xe5\xa2L\x00\ +l\xb7\xe7\xf8\x0b:\x92W\xc1{Z\xc2X\x22\x0d\x9e\ +G\xcb\x14Kk\xc2\x1d\x15\xcd\x11\xf2\x109\x8c,\x82\ +\xab\x02YB\x82\x11p\x09\xab\xcd@#a\xd2\x82\xc9\ +@\xb7SF\xc5\x84$\x86mR\xb7\x88\xac!dr\ +\x8e\x89\x1e\x88g\xc1\xa9\x88S\xe0\x87n\x8b2\x19\x87\ +n\x05\xb9\x9b\xcd!Gl\x131\xca\xdd\xebp\xb9X\ +[\xbfr\x15\xc9\x88\xeb\x99\x90\x9c.\x5c\xaf\xfb\x11\x01\ +\x0c\xde\x01l\xbb\xa6\x09D\x07\xe6\x9c\xee\xafT\x16 \ +\x98t0B\x22\xe3\x80v\x04\x13rOZd.]\ +\xb1\xdeAH-3\xe8\x12\xb4'\xc8\xbc\xb5\x08\x9b\x9c\ +\x5c\xa2C\xc1\xdf\x01G\x00\x85\xfbS\xe8\xc9\xe9\x98:\ +`5\x86\x12az8\x13\xa5\xfd\xa2\x81\xb7\xc1\xa4\xd0\ +BV\x1d\x1b\xbf*\xf9\xf1\xa8\x7f\x1c\xa2\x9dl\x84K\ +lg;\x10\xfb;\xca\xd0\x11:\xca\x90\xfct\xe3\x99\ +0=\xd6\x91\x02\xe7\xb4\xa3{\x22\xd5\xb5\x15\xe4\xd2E\ +\xa3O\xcat\xd7\xea\xf9\x11z1F\x81\xea\x1e\x03\xff\ +\xedP\xf7\x94-\x05\x90\xbe\xec(D\x11v\xe2|\xbc\ +K\x08\x0b\x9e\xd8\xe3O\xd8\xcf\xf8+:\xa2\xce\xb7\xf0\ +#T\xe6\xbb&\xdf6@36\x1d\xe2\xa6d\x94\x8d\ +\xb1\x89\x91\x5c\xda\xf5\x8c\x1124\xbe \xfa\x8dc\xda\ +\x9b\x996\x93s\xd5{\x8b\xf4\xd2\xb9m'g4\xc0\ +,\xf8I\x13\xb4\x06\xb1\xca\x0b\xa2DSDf\x0a*\ +\xe1\x16Er\xe8\x08\x9d\xba\x148\xd4\xf9\x05o\x15\xe6\ +p9\x22m\x05d\x84\x05\x80\xc2@I\x15\xe4\xda\xa1\ +\xa9\xad\x0a :\x80\xc7#\xc6\x88\xb2OD\xb0\x15?\ +E\xf5\x16\xc5\x08aU\xd2\xc9:>\x82\x9f)FB\ +C\xbf\x02\xc1\x8b\xc4\x09\x00\xb6`\xc5\x1c\x1ah;\x8c\ +6MI\xa4\x849\x11\x86\xc2\x1c3\x19\xad\xe3PU\ +H\x19Qo:\x9e)F\xdd+\xf5\xb6Q\x99\x84\xc8\ +\xf3\xdd>D\x9f(PbA\xd0\xb9qX\x90Vp\ +T\x95\x86\xe8\xb4F\x9ej\xf1\x04D\x04J\xdd\x8b\x0e\ +\xa9\xb2:\x9ew\x1e\xf8zp\xf3J\x9b\xa6.Hx\ +\xaa\x12\xaa\xda\xb8j{\xb9\x92\x98\x90\x06\xa9\x02\xa1B\ +\x16\x1a`\x9a\xb4U\xf5\xc3\xc2L\x80px#B\xc0\ +\xbb\xa1h\xaa\xed\xd0\xdbI\xc2\xd3\xbb\x22&\xac\xac\x1a\ +\xa7\xc9Rw\xc6K\x04\xa6i\x1a\xa1\xa7H\xa10\xfe\ +\xdd\xc0\x87\xd8\xf6\xa7\x12\x9c\xca\xa9+N\x1b]\xc8h\ +\x15\x85\x1e\x17\xa2\xf3:33VE\xd3\x1b\xf5\xe2J\ +\xb0D\xe0\x05\xaaM(w\xe7\xbf]\x0e\x8b\xb1x\x17\ +=d\xc4#jv^\xcce\xb3\xea|\xb4\x1ew\xa8\ +\xe2\xab\x0d/SV\x83Z\xa8\x99>\x91;\x16\x1a\xcc\ +\xc8)\xba\xbdR\x93\xae`/\xda\x1d\x11G\xb1z\xb2\ +\xb1o`\x91\x83\x09\xfa\xaa\xe6fJ\xcc\xe4\x03\x0fn\ +\xa6h\x8c\xca\x1e\xd4\x935\xdet`\x02\xdc\xc2\xd1a\ +\x00`;\x83<\x98\x09w\xaeBxf\x9f\x9av\xc1\ +\xdej?gd\xe8\xb4\xac\xac \xc6\x03\x89P\xc5\x81\ +W\x98\xcb\xe7\xa2\xc3+\xcfmx#\x0d\xde\xa9x\xf1\ +\xea\xaa\xb4!\xbe\xdd\xb9\xe1kN \x01\xbc\xa9:^\ +m\x94v\x81B\xf5\xf8\x84:\xcd\x0e\x89e\xaa>\xe2\ +\xd8nC\x86U\xdc\x96T\x11\xdb/Y\x0cW\xed \ +\xe80K\xab\x86\xba+\x9b\xf2\xed\xcb\xe9\x85\xf8|\xfc\ +&\x8e\xb8\x94\x13\xbf\x03Z>\xc3`\xe3\x81\xf7\xc0\xdb\ +\xef\xcf\x92;\x18\xe9$\xdd\xe7]Zv`\xbf\x83P\ +\xe5\xb4?\x8c\xab\xa7\xc3\xbb\xe5\xe9\xe9\x00A\x90\xeaF\ +\xb6\x94\x0b\x04\x86\x18\xa8\x1eo\xafV\xff\x92\x7f\xba\xb0\ +\xfa\x97\x88\xfd^?\x9dN\x17\xa1\x1fE{\xff\x8f\xd0\ +\xef<\xce\xcbvr)g\xd0r\x1a\x800%\x00 \ +\x85X\xe0\x82\xb9\x84\xb2\xa0\xd8\x99\x891G\x06\xabD\ +HA)\xf1\xa0 ^\x17\xe9E\x80B4\x16H`\ +C&\xc4\x1amB\xa0xD\xa2\x8f`\x09\xe2\xca\xa4\ +y\x10\xa4}\xb8\xec \xcb\x82;\x90\xde\x82X\x9d\xc3\ +\x22X\x94\xcct$\xec\xba\x00\x0a\x85\xfc\xa4\x90\xd0\xaa\ +\xc2\x16V\xec6\xe9\x19\x00:\x09\x89(\x0d\x13\x83c\ +GNkt\xab\x80\x17\xd6\xc5N\xc7\xe4l\x5c\xa76\ +\x9a\x8aW$HJIL\xe6\x1d{\xf0\xb8\x1e\x09%\ +\x11Ka\x10\x02\x86\x8c:tzA\x98\x8c\xfe\x09\xc2\ +\xf4+\xc4]\xcc\xc8M\xf4U\x00wa\x02RR\xec\ +\x88\x16$vJK\xa1\x03P\x1d\xd6\xb1\x8e\x80'I\ +\xdc\x13b:\xe1\xc4\xdb\x14\x09\xb4\x1a\xe8>\xcb/\x88\ +\xca\xe3\xd5*\xa3\xad\x06\x8b\x17\x8a}\xeb\xfd\xe9\x0c\x8b\ +?\xcf6\xfb\xdbf[\x02q\xb1\x18\x1e\x02\xd7<8\ +\x04\x9a\xed\x18\xda\xabjZ\x90'VY6>l\xb6\ +\xc0\xa1\xf0,\x82\x1c\x98\x18\x98N\xa6X+\xf5\x92\x80\ +\xf8\x9f\xd9\xda\xfc*\xa5(\x82\xce\xd1\xc1d\xd6\xde\xda\ +\xb3\xc2J\xde\x05\x8eS4\xe7?\x94U\x8a]\x91\x5c\ +=N\xd2\xb0\x10\x18\xb3\x00\x18qa\xbc\xb3\x99;X\ +\xd1B<\x80\xc2\xc6Y\x15X\x8d2 (\xfe\xb2\ +c+P\xe0\x0c\x84\xf6\x94<\xf2 \x94$\x92\x09\x8e\ +\xf6<\xa3\xe3o\x5c\xa4\xfc\x94=\xf1\x87y\x98=E\ +<$\x22\xa4\x09\xb3&w\x13\xcc\x0e\x87D\x18:\x8a\ +\x08\xb1\xaa\xf4\x1a\xb9\xae\x82\xd2\x98\xd3\x06D\x90\x7f\x8a\ +\x14\xe7\xf8\xc7b\xbe\xa12\xddA(\xea\xc5O5\xec\ +\xc6g\x0d\x06\x96z\x9c\xb13\xbcH\x8e\xca(\x89\xa5\ +\x8d\xe1\x14\xdcY\x8f,\x1d\xd7A\x80\xc2\xc3+\xf6\x07\x14\x0f*k@\xbc\ +S\xa3\x06\x0b\xa1KD\x9cy\xa7\xed\xacM\xd4[\x14\ +\xb7\xa5\xcc\x0d\x81\x93G\xca\xd1v\x11\x9c[$!n\ +\x81\xbb\x1b\xd9\x89\x13a)2\x9d\xfa\xe6\xf3P\xce\xbf\ +q(\x87)(\xf0\x85\x22B\x19\x88,\xd9XQ3\ +\x18\x08\x09]\x8dR\x88\x0a\x84\xa2\xa4\xd6\x12\xe7@C\ +\x87\xd3\xca\x8d\xc8(\x14\xe0\xa2?(\xb9\x0dB<:\ +lC\x81,l\xeat\x18\x1a\xa3\xa3\xd7\xe4\xd3\xc9\x8e\ +\x9a\xd3\xf5\xd5\xfe$c\xf4E\x1b\xa3'\x1bU6\xa9\ +\xec\xde\xc3\x10\x05\xb1\x89\x1b\x81\x9e\x9c\x87@Xb\x1d\ +K\xe7\xe5\xf3\xa3\x14\x18vG*\x90\xfdK\xba\xd0\xfe\ +\xf3z\x85\x9f\xe6M\xd49\x82B\x9a\x92V\x98\xb7\x01\ +F\xc1oOY)\x1f\xb4cR\x92dVnH\xbb\ +(\x81\x94\x8c\xa47\xf1\x17\x06\x02l\xbf\xc6\x8a\x0a\x1c\ +N\x02o\x1c)Q\x99\xc1\x8a\xe7\xa2\xbdm3F>\ +\x04*\xe6\x84]t\x96 17\x1f\x8f\x86\x83\xf1\xb3\ +\x0c\xda\xc0).\x87?\xaa\x12f,\x10\x12\xe1\xb1\x86\ +\xced%5\x941\x1d\x98\xad\xb1\x0c\x19z\x95\xa2P\ +\xa1.DCs\x82@\xd4\x1a\xd9\xf1\xb17\x13r\xa3\ +\x0aKG\xc0\x06_-K4\x95)=\xe5**\xd5\ +\xdcH\xf0\xec\xa2\xf7\xcb\x86x\x1b\xe3%\xe5\xc7\xe9-\ +\xd2\xd0eH\x91\xacQ4\xefXI02\xa9(i\ +\x86\xb7\xd2-vD\x91\x22i+\x82\x8c\x12#~\x88\ +m\x82M\xa1\x15\xb1\xc5X\xb0\x8c\xa1\xe3?J7\x0b\ +cT\xe4\x81\xa2\xd7\xc16M\x1b[\xc47.\xea\xb1\ +\xe9\x9e\xa4a\xf8Z\xdcd\xd5\x93\xfb\xe8\x15l\xa7l\ +\x1cf\x1dV\xe3I\xc4$v\x84B#t\xd6$\xb3\ +\x15\xb5\x8e\xa9B\x11;\x1c\xbae=\xa1\x90p\x8a\xf3\ +s@\x9ev\x08QFH\xc0\xc8\x04\x04:\x05\xe6\x92\ +\x97<$\xab\xb7J\xb0\x80\xee\x96\xab\xde\xc2e\x0f\x9d\ +\xc9\xd5C\xa1\xf9\x9e\xe1\xa9t4\xbb\xceJN4\x16\ +0 \x0c=kI\x85\x15\xb9C'\xdew\xc3\x8a\x22\ +$\xee\xf5\xec\x94\xb4[\xd5\x94\xc8\xd7gz\xd8\xee\xb3\ +\xbf\xc3\xaeh\xa5M\xbbw\xea\xb1\xc7-\x00f\xa2\x03\ +\x85\x84l\xef\x94\xf5y\x07g\x1a+\xaa\x9c\xe6\xec\xbc\ +\xc3\x93r\x1c\xc3\xd8\xc6\x9bU\x9e\x13\x16\xe4\xdd\x1d=\ +n\xc7\x06\x9a\xd9\xd9y\x5cq\xe1X\x9a5\x19\xa1\xb3\ +\x8em\x81~\x12ye[\x88\x12[^\xb9P\xda\xd0\ +%Ds\xf3\xc2+\xb4\xc5Kq\x0e\xadZ\x11\xa79\ +\x96\x99\x95\xba\x19\xddQ\xcceQbD9\x93U4\ +\xb1ys\xe7\x1dw\x1cg\xab\xdc)[\x08\xf1\x12\x0f\ +\xd1\xfc6\x0aO\xc1^\xa4\x98\xcc\x02\x1e~Zi\xa9\ +%O\x0e\x12\xc6/\xe5\xf0\x5cU\xd7\x84\x16|\x80\xcf\ +\xe8\x18\xc2\x92r\xea\xdbr\x08\xa6\x85\x88\xc8\xd0;\xb7\ +\xc5L\x83\x93k+K\xba{):\x05\x09@\x94\xf1\ +\xa9`Y\x8b\xbbif\xe7$u\xd6_\xbcp\xbd\xc2\ +;\xce\x0d\x86\xa6\xc7g\x1d\x0cn\xd0&Q\xdeQ\x0a\ +\x13\x99>\xf5\xee(i\xae\xba\xad)\x1bc\xcf\xfc#\ +B\xab\xa9\xb0@KG\xb0`\xc5U\x9c'q{\xc5\ +9\x82}\xd3\xcc\x85\x16\xf5Y\xdc#Qzl\x14\xf8\ +\xaa\x97\x1d\x05_\xa5\xb3\x5c\xa1uP\x18\xba(\xaaR\ +,5\x1bDq\xb8K\x1c!M\xe2]\x9d\x8f\x5c\xea\ +\x9d2\xde\xb5^\x829\x89\xa2D\xe1\x103\xf2\xac-\ +$\xaa\xbcc\xcdc\xbdJ\xac\x00\xd5\xcc!\x13\xff\xb2\ +\xdaRa\x09\x87EU~X\xbd\x14%\xc6&\xab\xdd\ +D\xc4\xad\x1a\xfaBb\x8aZd|,,\xb8h\x0b\ +IA\x82\xd8Q\x16\x97\xb7y\xce\xf2\x0e\xb3\xd0k~\ +\xa2|\xd6\x12\xfdV\x00B\xca\xbd\x82\xae:;uB\ +\xe8\x07\xcb\xf9\xe6\xedm\xb77\xad\xd6P\xc8\x06C\xfc\ +\x8ff\xab$N=?\xb2\x08O\x0b\xe6Z\x87-\xa0\ +\xb1\x9dI\xe80X\x9c\x06\xc7z\xb2\x02<\xcd\xa8\x8f\ +n\xcfy[\xacT\x95Cq\x22\x08\x1da!:\xb0\ +\x92Z\x00\x85\x8a\xc4p\xca\x8a\x084oo\xe5\x8c6\ +'\x8en\x89]\x89\xac.vD\xed/4\xb18\x11\ +-\x90D\x8d:ta\x8c/\x0a\xcc4\x18\xa1\x8e\xe1\ +\xcc\x99\xa5\xe7\xa8\xcfL\xd5\xe2\x04\xe8Xc\xf9^\x9f\ +\xb1\xb2*\xc4\xcf=\xc9j0.\x00\x88A\xd2xr\ +\x90\x02\xb6J\xf2\xa26\x88F\x94\x88\xcf\xba\x0b\xaa\x1a\ +\xfd|\x15\xcf\x02\x0b\xbeaA\x9a\x1f:j\x88d4\ +=\x16z_\x82\x97A\x17\x89\x1d\x03\xdd\xb2\x1ed#\ +\xe4\x08\xc5\x9b\xadg\xae6Y\x80\x5c]31mU\ +p\xe5\xf57\x9c\xcd,\xaa{,m\xd9\x7f\xe6\xa3T\ +\xc3\xe0\xad\x9e\xfb\xa0n\x0e\xa0\xb2T\x95 :iE\ +\x9b\xe3R\x80\xaa\xcd\xc8\x1d\xa9\xe2S\xbaA\x07\xa6\xbe\ +}\xee9\xab\xe7:\x04oU\xd0\xc9\x06\x8e]\xb8D\ +G\xed\x85\xc7\xf51\x0b\xc4\xca\xf9\xb2M\xc2C\xde\xab\ +_T\x17\x0f\x13&}\x9bq63\x97|\xedf-\ +\x19\xbe\x021r\xbb;)\x07\xb4\xea\xe6\x92\x91$\x99\ +s\xe0\xb0\xf7Z\xc5\xb7FR\x88\x89.y\xc3\x88\x13\ +\xe5!\x18(\xbbF~8\xb7v\x15\x8f\xee\x05\xd5\xce\ +\x9c.\xaa\xa6A;t^K\xd3\xaa\xe4p4\xb8\x95\ +\x1b\xca\xe3\x8a\x92jz\xdb\xb1;C\x5cS\x1c}{\ +[Sd\x5c/\xd6\xe5J\xd0#\x8d\xcd{\xc0VZ\ +\xcc\xc3\xa9\xaa\x829$\xac6\xb1k\xce3/\xc5)\ +\x9a\xe5\x0c\xe9\x1a\xfd\x9af\x060r\x9a\xfaS\x16_\ +P\xf4P\x1c.\xbc\x89\xce\xce\xc7Y&\x87\x9d\xeeb\ +'K 7ko\x9b\xd7\x8e\x95E\xb6#\x89h\xc2\ +\x16\x85\x10\x8dRgQ\xea\x15\xc2\x9c\xeb\x22\x89m\x01\ +\xb9\xb2(\xa3\xea.T\xf7\x80\xbdS\xc0\x08e\xa7J\ +h^\x1c:\x82U\xbb\x15Ep\x0d\xd9%y+\xf4\ +\xf1=d(\x09Z\xc3\x06\xc9\xa1w\x16\xf6Lc\xa1\ +\xf70\xf4\x91\x9f\x922\x85\x9a[\x13\xa1qenB\ +\xbe-\xaaK\xde\xdc\x0f\xdeX\xbce\xc6H\x7f\x10q\ +\xd0Zr\x80\x1e\xa3^\xe4\x00@\x18y\xd6\xb1\xed\xa4\ +\x83b\x86\xe6DT\x9f\xa1\xa4\x97q\xe7\xde\xf2TL\ +\xe4.|o~\x12]\xb2\xa6]ff@J\xca\xa2\ +v\x12\x9cH\xaa\x193\xc0L\xa6\x9aW\x96\xb3\xa9>\ +\x8dQ\xb6\x84(\xdaq\xa4\xacE)\x08\x03K\x14&\ +\xf9x!N\x9f\xd4\x14\x87\xa5*\x8a2\xa3vP\x5c\ +\xd0/A\xa9\xa6\xe6'H\xac^\xd6#\xdd\xd9K.\ +&\x1d:G\xcb\xcd\xa2\x83\xcbP\xbfT\xd1\x16M$\ +\xe7\xaf$\x17\x1b1\xefx>]i\x7f\xc9\x8a\x90\xe3\ +\x0f6_|t<>\xff\xf4\xf8c\xb6\xfa5f\xe9\ +\x83\x03\xf1\xb0!\xe2\xabw\x1b\xf0m!%X\xea\xeb\ +\xef\x81\xcb\xddT\xae\xef\xdd\xb9\xa0\xb4\x15\x22\xfdPM\ +\x9bT6\x9eu\x88\x17\xc1\x05\x84\xea\xa2\xb6lVd\ +Amz7/a7\xb9\x06\x0e\xb4\xab\xe9K\x03\xba\ +#$\xf2\x9c\xb1\xcc\x97\xcb\xf7\xd8un\xe5\xf4:\x18\ +\x96Y,.\xe1\x94\x05g\xe4\xcb.R\x02v\xd9\xb3\ +\xed\x16\x96\x0a\xf7\x9a\x00\xa9'\x0c\x89s\x0f\xf5\x841\ +\xf8pq\xc2\xb1\x15\x1c\x94\x0a\xc3\x8b\x9emW\xd0\xdc\ +}\x04!e\xa4\xed\xd3\x81Y%\xa6\x9e\xd5\x9e\xe3\x8a\ +\xdd\x10|\x07\x97\xe6e\xd5\xe9\xb9;0\xd5\xa9\xba\xa2\ +\xfb\x82\xa3\xd4\x1c\xd6\xaf1\xba\xda\xecp\xd9Q^\x03\ +J-5\x85D\xc6\x18\xfa\xfaB\xea}4\xd5\xcc\xb6\ +v2\x9c\x9e\xa1\xe2m\xb8F6\xce\xf6$\xab5\x19\ +\xe5^\xf3\xf2\xf0\xbe<\xbd|\xaf0\xfb:\xa0\xab\xec\ +\x06\xfe\xb8\x8b6'F\xa9B\xbc\xd4)\xb6\xb8mV\ +\x0fR\xf1S\xab{5\xd52/*\x00\x99\xff2\x1c\ +_\x0c\x19\x1dX\xe3\xfa\xfaa\x84\xa9\x15w)\xe6\xf2\ +\xbe\x88\x87\xd7jX!v-u\x91\x8fA|\xf6\xce\ +\xe7\xc2Q\x86\x99\xcf\x8b\xae\xd04J\xcaA\x8e\x8b\x95\ +1T\x89_\xab\x07\x0b\xf1\xcf\x0a\xc8\x87Z;\xd3\x8e\ +S\xca\xddg\xf3\xca\xcaR\xa1\xddJ)\xe7\x1dB\xbf\ +V\xc7M\x14\xe8\x0br\x98\x04\xb5\xbe]x[\xeas\ +\x10\xa2B^y)7+w\x97r\xf8\x8ap\xaam\ +>o?o\xb0\xfc\xff\xe1\xfd\xda\xab\xeb\xb7\xf2\xa3\xb7\ +\x00\xff\x82\xfa\x9f\xb4\xbf\x89\x00\xd4\x80\xb92|\xcf\x06\ +nP\x8cE\x11Q\x90\x83\xe9\x86A\xca\xf4\xf0]\x85\ +\xc7V\xb6\x9edNB_\x9d\x9c\x98\x07\xfc%eX\ +\xcaq\x91A\xd3R\x0a\xd5\xac\x94\xc1IY\x81w\xae\ +\xaf\x13\xe2B>~\xc2^K\xd2\x12\xad\xcb7\x14\xa0\ +\x1dK\x95!/\x81R\xc69bv\xec\x9cO6v\ +\x8e^\xdf\xfe~\xf6\x895# ^~=\xf8w\x1c\ +\x96\x17\xdd\x95\xe3\xccC\xf8g@G\xfb\xc2\xef\xa7\x7f\ +\xc6\xcd\xe8\xc8H\xe1\x18\x09\x1d\x01\xf8\x14\xb9\xf6\x04\xf8\ +\xc2\xf1d\xabW\x17\x84\x88\x96\x05\xf3E\xa90\xe2S\ +a=O\xa0\xbaM\x1d\xa9\x06\xd4R)\xfbY[^\ +\x22a\xd5&\x01\x90J\xc4\x18+\xd2d\x7f\x1bK\x8d\ +\xd8\x13\x8e\x1c\xb13\xcb\x9d\xcd^\xb5\xf8VeP\xbb\ +20P\xce\x8eS~\xfc\xbe\xd4\x05*t\xa6a\xad\ +t\xad\x95\xa3V\x00\xc2y.\xbf\xcf\x1a\xbbs\x05[\ +\xcbY\xabJ*\xd7\xe6\x8f)\x0aM\xc4\xb6\x86l\xe9\ +\xd2$3\xdd\xf7D xn\xa8\x17\x9c\x14\x17$d\ +\xae\xf6a\xd3\x22\x9a|\x94\xa7Td;\xbbEWT\ +\xdb\x7f\xfa\x02\x0a\x94\xb7\x8a\xf2*\x08g\xa2\xb6O\x22\ +$A\xe5p\xd9.iK\xd2\xbf\x14\x98\xe44\xff\xd8\ +\xa1\xf4\x88E\xe4L.0\x95E3\x8a\xa9/e\xb0\ +\x10\x90\xe6f/e\x84\x1c\x8bW3\xf1\xb2-o\xfc\ +\x8a\xce\xb0:\x9f}\x12\x19\xed\x5c\x87\xf0\xe5\x99rc\ +\xad\x0e>\xeb\xd8\xce\xe6xo{\xfaA<\xd6\xbdk\ +,\x83\x8a\xb7\x08,W\xfc\x19(\x901\xcfI$P\ +\x0c\xe2\xf4\x96\xa6\x14&\xb3\x18P\xe10\xaa\xb0^B\ +\xce\x04\x86C\xebE\xb9\xcd\xfcs\xbd\xde\x06\xa2\xba\xa5\ +q1\xf5\xb049\xc6\x8bv}y*\xa4SZ\xde\ +.xy\xd5X\x16)\x95\xcf\x05\xfb\x0c\xd9Q0:\ +\xabu.\xdf\x0f\x96jh\xb9b\xf1\xb0\xeb\xe3R\x1a\ +Z1$\x9f\xf3\xc9\xe7\x88\xecY\xb43\xa1F\xe8\xdf\ +[\xf1-\xe4f \xdc\x80\xa0\ +4\x83\xd8i\xe3\x17\x013\xa3\xf99j\xd8\x7f\x0c5\ +RZ.\x7fqj\x80\xcb\x0f\xca\xc7\xd2G\xab\x16b\ +\xed\xe7\xe8\xe1?\x9108\xf7\x89/\xac\x0dh\xdc\xe0\ +\x1c\x96R\xebH\xff~\x05^XC\xa8m<\x7f\x85\ +\xfb,\x00\xe2?\x06\x00F\xc7d\xf4'\xa4G\x98\x92\ +\xbc \x04zd\xfcf\xcb\x808\x84\xac\xac\x82@\xd9\ +N\xc9\xa6\xf4\x1c=>\x9d\xf2_\xad>-\xe2#\xb8\ +\xa1\xceRjS'\xb0\x84\x1e\xe5\xdf\xfb\x98<`\xc2\ +L\xe0\x0e\xc7g.\xec~\xaa\xfa\xa7\x94\xc0+\xfc\xb7\ +|\xbe\xfe\xec\x7f\x01\x9b\xf0t\xc2\ +\x00\x00\x0aQ\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ - \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0be\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07-\ -\x00\ -\x00&\xf6x\xda\xddZYo\xdbF\x10~/\x90\xff\ -\xc02/\x09*.w\xf6^Vr\x816\x08\xd0\xd7\ -\x1e\xe8cA\x93\xb4\xcc\x86\x22\x05\x92\xb2\xec\xfc\xfa\xce\ -R\xa2D\x99\x92\xe1\xb6\x0a\xaa\x88v\x10\xef\xcc\xec\xf5\ -\xed\x5c;\xe4\xf4\x87\xc7E\xe1=du\x93W\xe5\xcc\ -\x07B}/+\x93*\xcd\xcb\xf9\xcc\xff\xfd\xb7\x8f\x81\ -\xf1\xbd\xa6\x8d\xcb4.\xaa2\x9b\xf9e\xe5\xffp\xf3\ -\xe6\x9b\xe9\xb7A\xe0\xfdTgq\x9b\xa5\xde:o\xef\ -\xbd\x9f\xcbOM\x12/3\xef\xdd}\xdb.\xa30\x5c\ -\xaf\xd7$\xdf\x12IU\xcf\xc3\xf7^\x10`W\xec\xdc\ -<\xcc\xdf|\xe3y\x1e\xce]6Q\x9a\xcc\xfcm\x9f\ -\xe5\xaa.:\xd94\x09\xb3\x22[de\xdb\x84@ \ -\xf4\x07\xf2\xc9^>q+\xc8\x1f\xb2\xa4Z,\xaa\xb2\ -\xe9\xba\x96\xcd\xdb\xa1t\x9d\xde\xed\xc4\xdd\x92\xd6\xbc\x93\ -\x02kmHY\xc8X\x80\x12A\xf3T\xb6\xf1c\xf0\ -\xac/\xae\xf3X_F)\x0d\x917\x10}\xa5X\xd4\ - \xb2K\xfc\xb7\x93\xef\x09\xa4\xa9Vu\x92\xdda\xc7\ -\x8c\x94Y\x1b~\xf8\xed\xc3\x8e\x19P\x92\xb6\xe9p\x9c\ -\x1e\xd8\x83y\x0f\xd0.\xe3E\xd6,\xe3$k\xc2\x9e\ -\xbe\x19`\x9d\xa7\xed\xfd\xcc\x17f\xd3\xbc\xcf\xf2\xf9}\ -\xbbo?\xe4\xd9\xfa\xc7\xeaq\xe6S\x8fz\xc2\xe0/\ -\xa1\xee\x81\x0d;Og>\xee\x89m\x85\xf7\x8a\xd3\xf3\ -\xb7sE;\x16%\x96\x11\xf0j\x90\x5co\x85\xfa}\ -Ei\x95\xb8u\xce\xfcy\x9d\xa7\x7f\xd6Y\xbaJZ\ -\xecD\x1cj7Nt\x9afwM\xd7g3\xb5k\ -\x0a\xdf\x0b7\xcc\xdd8n\x90\xd4\xad| z\x1b7\ -\xdb\x1d{\xde2\x9e\xa3\x8e\x14U=\xf3\xdf\xdeuO\ -\xcf\xb9\xad\xea4\xab{\x9e\xea\x9eC^\x85 \xe6\xed\ -\xd3\xc68\xfa\xf1\xfb]\xba\x81w\x02\xf4\x84@s\x1f\ -\xa7\xd5z\xe6\xb3\x11\xf7sU-p`I\x14\x15\xa0\ -\xf4\x88\x9f\xe0901&\xe3d\x8c\x11e\x84dr\ -\xc4EPW\xcer\x82U\x99\xb7\xa8\x99\xcb\xc7\xf1\x00\ -\xab\xbav\x12E\xfc\x94\xe1\xbe\xe7\x5c\x08\xe8\x85\x9a\xfb\ -j\xed\x8ec\xe6\xdf\xc5\xc5\x1e\xc2\xd3\x83\xad\xf3\x12\xb7\ -\x17l\xf5\x0a\x98\xa1\xa7Dz]\xb3\x9a\x9d\x12\xc1\x0d\ -\x07\xe6\x14\xf3\xe9%\xe6\x22~\xcc\x17\xf9\xe7\x0c\x17\x0e\ -;\x0dYdm\x9c\xc6m<\xd0\x8b\x9e\xa47\x1a\x86\ -B\xe8\x00\xa2_>|\xdc6\x91\x90$\xd1\x1fU\xfd\ -\xa9o\xe3\xe3D\xe2\xdbj\x85\x8b\xf7o\xf6\xf4i\x9a\ -Dh\xb2\x8b\xb8\xbd\xc9\x17x\xd2\xce\xdc\xbfC\x0b\x9d\ -\x86{\xc6\xa1t\xfb\xb4\xcc\x06\xe3nF\xae\xb3\x8d\xf5\ -\x1f\xf5\x83i\xb2\xc8]\xaf\xf0\xd76/\x8a\x9f\xdd4\ -\xfd\xf6\x06\xc3\xe6m\x91\x0d\xa8\xd3p\xbb\x87~\x8f\xe1\ -p\x93\xd3\xb0\x07a\xd3\x9c?\x87\xb4\x88o\xb3b\xe6\ -\xff\x14/c\x0fF\x80\xcf\xebj\xb5\x5cT)\xae\xb7\ -S \x7f\x80nG\xd8ui\xeb\xb8l\x1c\x0e3\xbf\ -\xfb\xb3\xc0x\xf1\x8eN\x02\xa0T\x10\xae\x18{\xbf;\ -\x84\xf9nCn\x98\x03\x8d<\x18\x07!\xad\xf3\xc7w\ -\x94\x18\xa5@q\xc9'\xd4\xfd\xec\x9bh\x17Rk\xa3\ -\xed\x04\xb8&\xa0\x19\x87\xf7\xfb\x91\x9a\xf6\xa9\xc0u\xdf\ -!\x94\xd1\xd6\x15|\xdf\xb4u\xf5)\x8b\xde\x8a\xd4\xfd\ -\xf8\x03=\xc8\xeb\xa4\x18\x1eW\xed\xbc\x80\xf4\x07\x14g\ -\x8a@9#8\xcf!\x035\x19\xc9\x0a\xf7a\x86t\ -\xb7\xbbe\xdc\xdes\xceU\x00\x81\x1d\xf2\x8e-\xce5\ -\x82\xad\x8b\x89`\xd3\xacWE\x16e\x0fYY\xa5\xe9\ -n\xf5\xa9pnz\xdb\xdcXc\x04\xcb\xc7\x9eP\xe4\ -e\x86\xa7\x17\xdd\xae\xdavH\xfb\xab\xca\xcb\x085,\ -\xab{\xean\xb2\xa1\x9aM\xdd\x9a\x87\xdb\xd8\xb9\x92\xaa\ -\xc4\x81\xdb\xaa\x0e\xd0\xa9<\xc4\xed\xaa\xc6\x1d\xd0c;\ -\x16LC\xc0\x87\x1cg\x8d\x1e\x82d@\x1a\xc5&\x88\ -#\x10\xa1\x99\xf20\xe0\x19P@\xc5$\xd0\xc4*i\ -^\x85\xd2\xaba\xa1Ds\x8a\x07`\xd9e\xe1#a\ -\x84\x8e\x22T\x1a-\xadDt\x18'\xa0$\xf34a\ -\x8aR%\xe5D\x12\xae\xed\x99\xc1\x81\x7f\x8eH\xd7(\ -\xd0\xfb\xb6\x91\xe8ii\x8ca\xaf\xae\xe3\xa7\xa8\xc4\xc4\ -\xf1\xcbc\xa7\xc6\xd81J\xd0\x13X\xad\x9cf\x19\xa2\ -\x95\x90^ \x89P\xc6p;Q\x841zv\xc52\ -L\x80eZ]\x96b\xa9\xb1\xd91\xd4\x224;\xeb\ -\xccNh\xa2Q\xb3\xbc\x00\x00\xfd\x98\xd4\x1c\xd0E\x13\ -\xa5\xf5\xb9\xd1\xb1\x82K\xc1\xc0\x5c\x16:\x87\x16\xb4A\ -\x07\xdd<\xe5\x929\xd5\x01\x8b\x11\xc5h\xcf`\x22+\ -\x95\xc6\x00\x03Z\xf2\x93\xd0\xd8\xeey\x01\x9a\xad\xc0s\ -\x8f\x84&-\x19\xe5\xff\x09\x9ag\xd1\xe2\x8b8\xf0@\ -\x8d]\xb8%\x12\xf4F\x97\xd0\xd0\x8c\x05\xe1\x05\xe8\xb9\ -4&\xd3l\x82&\xc7@|\x05.\xfc\xd5\xe1\x9e\x1a\ -\xc2A\xea\xe7\xe1\x9e\x09\x22\x85\xb4\xe6d\xbc?[\xac\ -?\xa6B\xf0?\x00\x01\x18\x91\xb8\x1d\x01\x81y\x175\ -TPv2\xf1\xe1W\x07\x05S\x98\xd0\x82z\x0e\x85\ -\xe0\xe8\xf4,f\xa3'\xa1\xb8>\xad\xe0\xceaj>\ -\x82\x82\x12A\x05\x17\xfc$\x14\xfa\xea\xa0p\x91\x95\x9a\ -\xb1\xa70\x88\x90\xd5\xf2\xb4\x81\xc8\xeb\x83B\xe2\x1d\x8d\ -\xc1s(@\x10\x8c\xaa\x14^\xf0\x15\xf2k\xb9#\xbd\ -\xdeB$\x01\x09\xa3\xfb\xa2$\xd4*\xd4\x97\xd3\x17F\ -\xc5\xae\xcfq2\xbc\xc4\xec\x8b\x5c\x03,\x18g\x88\xc7\ -I,\xec\xd5\xa9\x050\xa2\xac\x1a\xc5\x10\xcc\xca\x85\xb0\ -\xc0^\xa8#\x5c_fa\x09\x13\x87Q\xb3s\x9c\x14\ -\xef\xbeRR\xf9BIE_\xa5\x890;./\x01\ -1\xd4\x88\xc3\xf0\xf2\x0c\x0cz}\xd9\x85&F\xb0\x91\ -b\xa0\xac\x06\xa6\xd9\x0bX\x5ca\xd2i\x09\x05y,\ -\xa6\x0a\x90J\xd9\x17\xc0\xf8j\xd2\xce\xb3\x14\xd6\xc6\xf5\ -\x0f\xc0\x00c,e\xc2\x15\xd64\xb1 \xbd\xc4\xa3\x84\ -S\xaaAL\x02\xccU\x19S\x9ep\xa56\x00\xe6\xea\ -\x90\x12\x84\x18\x11\xfe\xfd\xad\xf6x\x19\xc02\x83\xd7g\ -).\x0c?y\xac\xb8f\x94\xc1\xf8\xec*$\x88\x1f\ -Gp8\xc6l\x0cS|\x12`~+\xa8=78\ -\x98?Z\xcc\x15\xf4\x85\x81\xa3\xc7\xca\xe5\xde\x07P\x5c\ -\xed\xa4\x0b\xea\x0c\xad\xd1\x03W\xfe\xd2F\xa0rq\x82\ -\x890\x9c]u\x84\xb2\xa0.\xad\xf4(\xed\x91\x9a6\ -Gm\x91\xd2\xa1\x83\x99\xb0\x90\xd6\x83\xee\x9a\xccQ\xf5\ -'@\xac\xd5\xf6\xfc\xe0\xb8\xd2\x0c\xf0\x0b\xab\xcb\x8e\xc1\ -\xc1\xf0\xa6\x85\xd5\xe0\x0a\xfe\xe8\xc79\xd5\xda\x93\x08\x18\ -\xa3\x02M\x0d\x087Z\x9e\x1d\x1c\x00\xae\xed\xc5\xbd,\ -\x1aa#\x18\x91\x06\x15g\xd2\x95[\xa8\xe6\xc2\x0b,\ -q\xa2\x929\xab\xe2R\x9d\xdd\xaa\xb4\xa5\x02\xa7\xbb\xb0\ -\x92\xb5\x1e;d\xe1\xce\xd1\xdd\xa47EXI\xb5\xf0\ -\xd0\x0dY\xc9\xbbr>zO\xaa\xcc\xd9=2\xa7J\ -\x83\xb6\x17\x86\x8e>\x16\xee\x05(e\xbawA\x94\x80\ -`\x80f\x05\x00\xd4\xe8\x89\x22\xc2\x9c\x1f\x1b-8f\ -\xe7\xf4\x5cf5\x0d\xe7\xbb\x0f\x16\x10\x88\xa3o\xb4\xbb\ -Wm\x07\x89\x1b\x1e\x91\xb0\x98\xa8H\xfe\xe2j91\ -R\x0bDE\x8e\xd6UW\xab2}\xfd\x9b>\xff\xe0\ -=\xbe[\xa9\x80a\xe5\xbb\xff\xfcH\xb83\x90f\xc0\ -\xd9}\x894f\xb9\x9c\xd6\xa5F\x9a\x0e\xbd\xc2\xa6\x16\ -\xaf\x08\xb3\xc3T\xa3\xee\xc8\x04\x8c\xd2r\xff!H\x07\ -\xde\xd4}\x9f\x81\xff\xff\x0d\xebz\x1d\xfd\ -\x00\x00\x10\xc3\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0d\x0a\ - \x0a \ -\x0d\x0a \x0d\ -\x0a \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x0b\x1d\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a\ + \x0a \ + \x0a \ + \x0a \ +\x0a\x0a\ +\x00\x00\x07)\ +\x00\ +\x00&\x15x\xda\xddZ\xdd\x8f\xa3\xc8\x11\x7f\x9f\xbf\x82\ +\xb0/\xbb\x8ai\xba\xfa\xbb\x89='\xe5V'\xddk\ +r\xa7{\x8c\x18`\x10\xea{Y\x99Ti^.\x17\xfe\xaf\xbf\xfc\ +\x14\x18\xdfk\xda\xb8L\xe3\xa2*\xb3\x85_V\xfe\x0f\ +\x8f\x0f\xf3?\x05\x81\xf7c\x9d\xc5m\x96z\xdb\xbc}\ +\xf1~.\xbf5I\xbc\xce\xbc\xcf/m\xbb\x8e\xc2p\ +\xbb\xdd\x92|?I\xaaz\x19~\xf1\x82\xe0\xf1\xe1a\ +\xde\xbc.\x1f<\xcf\xc3\xfb\x96M\x94&\x0b\x7f\xbf`\ +\xbd\xa9\x8b\x8e1M\xc2\xac\xc8VY\xd96!\x10\x08\ +\xfd#{rdO\xdc\xdd\xf3\xd7,\xa9V\xab\xaal\ +\xba\x95e\xf3i\xc0\x5c\xa7\xcf\x07n'\xcd\x96wL\ +`\xad\x0d)\x0b\x19\x0b\x90#h\xde\xcb6~\x0bN\ +\x97\xa2\x8c\x97\x962Ji\x88\xb4#\xe7\xc7\xb8\xa2\x06\ +\x01]\xe3\xdf\x81\xbd\x9f M\xb5\xa9\x93\xec\x19\xd7e\ +\xa4\xcc\xda\xf0\xeb/_\x0f\xc4\x80\x92\xb4M\x07\xdb\xf4\ +x\x9e\xdc\xf5\x04\xe42^e\xcd:N\xb2&\xec\xe7\ +\xbb\xf5\xdb\x1aA?\xa3;SB\x16\xf4\ +\xee\xe8o_\x7f\xda\x8dp\x9c$\xd1oU\xfdm?\ +\xc4\xcb1\xc4O\xd5\x06\x85\xf6\x1f\x0f\xd3\xf34\x89\xd0\ +\x1fWq\xfb\x98\xaf\xf0\xb9:W\xfe3\xfa\xdf<<\ +\x12N\x98\xdb\xf7uv\xdct\xb7m\x9d\xed\x1c\xfbb\ +tK\x93U\xee\x16\x85\x7fo\xf3\xa2\xf8\xd9\xddd\xaf\ +\xd6`\xd3\xbc-\xb2\xe3\xe4<\xdcK\xbf\xd7-\x1c(\ +7\x0f{\xd5\xbb\xd1r\x04b\x11?e\xc5\xc2\xff1\ +^\xc7\x1e\x8c\x11^\xd6\xd5f\xbd\xaaR\x14\xb43\x15\ +\xff\x88g7\xee\x17\xb4u\x5c6N\xf9\x85\xdf\xfd[\ +`\xe4\xffLg\x01P*\x08W\x8c}\xe9Q_\xf6\ +j\xb8=\x86vw\xb2\x09\x82X\xe7o\x9f)1J\ +\x81\xe2\x92\xcf\xa8\xfb9\x0e\xd1\xf4\xa5\xd6F\xdb\x19p\ +M@3\x0e_\x0e\x1b5\xed{\x81\x12?#z\xd1\ +\xde\xcb\xff\xd2\xb4u\xf5-\x8b>\x89\xd4\xfd\xf8\xc7\xa7\ +\x9e\xd7I1x>\xb5sp\xe9\x1f'\x9c\xa7\x01\xe5\ +\x8c\xe0=N\xe6\xd1\x5cqV\xa1\x06f0\xed\xd4Z\ +\xc7\xed\x0b\xe7\x5c\x05\x10\xd8\x01\xe9\x92Xn\x10\xecC\ +G\x04\xbba\xbd)\xb2({\xcd\xca*M\x0fr\xa7\ +\xc2\x85\xdc\xfdp\xe7n\x11\xac\xdf\xfa\x89\x22/3|\ +b\xd1\xd3\xa6m\x87s\xff\xac\xf22Bs\xca\xea~\ +\xf6p\xb3\x81M\xcd\x9d\xc4\x03\x1d\x0ea\xa2*q\xdb\ +\xb6\xaa\x03\x0c\x18\xafq\xbb\xa9Q~zA[\xc14\ +\x04|@p\x0e\xe7!<\x06\xa4Ql\x86\x00\x02\x11\ +\x9a)\x0f\x93\x96\x01\x05T\xcc\x02M\xac\x92\xe6#\x00\ +}\x18\x11J4\xa7\x08\xbde7\x04\x8d\x8410\x8a\ +Pi\xb4\xb4\x12\x81a\x9c\x80\x92\xcc\xd3\x84)J\x95\ +\x943I\xb8\xb6\xd7\xc5\x05\xfe}0\xbaA\x81\x81\xb5\ +\x8dD?\x97\xc6\x98\xc5\xea:~\x8fJ\xac\xf6\xfe\xc7\ +\xb0\xa93\xd8\x18%\xe8\xf4V+gO\x86h%\xa4\ +\x17H\x22\x941\xdc\xce\x14a\x8c^\xdb\x9c\x0c\x13`\ +\x99V7dN\xea\xcc\xcf\x18\xda\x0e\xfa\x99u~&\ +4\xd1hO^\x00\x80\x11Kj\x0e\x18\x85\x89\xd2\xfa\ +\xca\xc0X\xc1\xa5``n\x08\x98\x13\x9f\xd9\x01\x83\xa1\ +\x9cr\xc9\x9c\xc1\x80\xc5\x94a\xb4g\xb0\xfe\x94Jc\ +\x06\x01-\xf9\x14*\xb6\xbb\xbe\x83\xca\x9ea\x1c}\xd0\ +\x85%\xa3\xfc\xbfBe\x94\x14\xae\x1f\xa7\x03u\x16\xa9\ +-\x91\xa0w\x16\x84\x9ee,\x08/\xc0(\xa5\xb1\x0a\ +f3\xf41\x06\xe2\xe6#\xf5\x07S95\x84\x83\xd4\ +\xa3T\xce\x04\x91BZ3\x95\xcb\xaf\x95\xc7/\xd9\x0d\ +\xfc\xbf!\x00\xcc9\xdc\x8e!\xc0B\x8a\x1a*(\x9b\ +*g\xf8]\x81\xc0\x14V\xa6\xa0F \x08\x8e\xa1\xcd\ +ba9\x05\xc2}Y\x02wQQ\xf31\x08\x94\x08\ +*\xb8\xe0S \xe8\xbb\x02\xc1\xe5Lj\xce\x22\x82A\ +h\xac\x96\x93\xee \xef\x0b\x04\x89\xa7+\x06#\x10@\ +\x10\xcc\x96\x14\xa6c\x82\xfcc\x9cp>\xea\x0f\x92\x80\ +\x84\xf19O\x12j\x15\x9a\xc8\xe4AO\xb1\xfb\x0a\x8d\ +\x0c\x8f \x87\xa6\xd3\x00\x05\xc6\x19\x221\x85\x82\xbd+\ +S\x00<\xdc[5\xce\x0fXV\x0ba\x81M\x9f\xf9\ +\xef\xabR\xb0\x84\x89\x93d\xd8\x85F\x8a\x87U)\xa9\ +\x9cn|\xe8\xbbs\x08f\xcf\xda?@\x0c5\xe2$\ +s\x8c`\xa0\xf7U-hb\x04\x1b\x1b\x03rj`\ +\x9aM\xa3pg\x85\xa3%\x14\xe4\x85L)@*e\ +\xa7a\xf8\x83\x94\x8eW\xe8x\x9d\xb5(\x00\x93\x87\xb1\ +\x94\x09\xd7\xf1\xd2\xc4\x82\xf4\x12\x8f\x12N\xa9\x061\x0b\ +\xb0\xdedLy\xc2\xf5\xc0\x00\x98\xeb\x0dJ\x10\xe2l\ +\xe2?>\x82^>\xae[f\xf0\xa8+\xc5-A'\ +/t\xbd\x8c2\x98v]\x13\x03\xa1\xe3\x88\x0b\xc7T\ +\x8c9\x88\xcf\x02,R\x05\xb5W\xc6\x05\x0bA\x8b\x05\ +\x80\xbe%\x5c\xf4\x99I\xb9\x96\x0a\x0a \x0a \ + \ +\x0a \x0a \x0a \ + \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22 />\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x04c\ +\x0a borderopac\ +ity=\x221\x22\x0a bor\ +dercolor=\x22#66666\ +6\x22\x0a pagecolo\ +r=\x22#ffffff\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x04]\ \x00\ -\x00\x0fWx\xda\xe5W\xc1\x8e\xdb6\x10\xbd\x07\xc8?\ -\xb0\xca\xa5E-\x8a\xa4(\x8aR\xec\x0d\xd0.\x82\xe6\ -\x90K\x9b\xb6g\xadD\xdb\xcaJ\xa2A\xd1\xf6:_\ -\x9f\xa1m\xca\xda]m\x9a Er\x88\x0c\xc3\xe2\xcc\ -#9\xf3\xe6q\xb8;\x7fu\xd76h\xa7L_\xeb\ -n\x11PL\x02\xa4\xbaRWu\xb7Z\x04\x7f\xbf{\ -\x1d\xca\x00\xf5\xb6\xe8\xaa\xa2\xd1\x9dZ\x04\x9d\x0e^]\ -=\x7f6\xff)\x0c\xd1\xefF\x15VUh_\xdb5\ -z\xd3\xdd\xf6e\xb1Q\xe8\xe7\xb5\xb5\x9b<\x8a\xf6\xfb\ -=\xae\xcfF\xac\xcd*\xfa\x05\x85!L\x85\xc9\xfdn\ -\xf5\xfc\x19B\x08\xf6\xee\xfa\xbc*\x17\xc1y\xcefk\ -\x9a#\xb6*#\xd5\xa8Vu\xb6\x8f(\xa6Q0\xc2\ -\x97\x17|\xe9\x22\xa8w\xaa\xd4m\xab\xbb\xfe8\xb5\xeb\ -_\x8c\xd1\xa6Z\x0ep\x17\xd2>>\xa2h\x96e\x11\ -a\x11c! \xc2\xfe\xd0\xd9\xe2.|0\x17\xe2\x9c\ -\x9a\xcb\x08!\x11\xf8F\xd0\xcf\x84\xe5=0\xbb\x81\xef\ -\x80\xf7\x06\xdc\xeb\xad)\xd5\x12&*\xdc)\x1b]\xbf\ -\xbb\x1e\x9c!\xc1\x95\xad\xc6\xebxb\xef\xed{\x8f\xed\ -\xaehU\xbf)J\xd5G\xde~Z`Tlz\xb2\ -\xd4\xd5\x22\x808\xd9i\xb4\xaf+\xbb\x06ov\x1e\xaf\ -U\xbdZ\xdb\x91aW\xab\xfdo\xfan\x11\x10D\x10\ -X\xd1\xe0\xf1\xf1\xe6\x95.\xdd\xfe\x8b\xa0lty\x8b\ -\x07\x12|$\xf9\x10\x04\xc1\x19\xc3\x14\x19\x9a\xc4)\x0d\ -\xae\x1cj\xde*[T\x85-\x8eSN\xe1y\x93<\ -A\x00\x04U\xcb\xff\xbc~}\x1e\x82\xa1,\xf3\x7f\xb5\ -\xb9\xf5cx\x1c\xa4\xb8\xd1[\x08>\xb8\xba\xd8\xe7U\ -\x99\x03\xcfma\xaf\xea\xb6X)W\xa3_\x81\xd6y\ -tq\xdcG\xdb\xc3F\x8d\xd6=\xadl\xd4\xa9d\x93\ -\xe2\xad\xca\xb6v\xb3\xa2\xbfl\xdd4o\xdc6\x01\x8a\ -\x1e.[\xdbF\x8d\xac\xf3\xe8\x9c\x83\xcf1\x1a'9\ -\x8f<\x09\xa7a\xa5\x96\xfd\x88!7\x14~\x8f\xf9P\ -\x09W\x86\xcaU\xec\x0c\xdd@$\xa5n\xb4Y\x04/\ -\x96\xc7'8{n\xb4\xa9\x94\xf1>q|\xee\xfb4\ -\xc8\x09\xb2\x02)x\xbb\xbey\xafJku\xa3L\xd1\ -9*(\xf1\xae\x95\x01\x1dM:\xb6u\xa5&=\x83\ -:\x5c\x90\xc3f\xd3\xee~]Tz\xbf\x08\xd8#\xef\ -\xbe\xee\xc0\x13z\x193I\x9e\x82xeg\xe9e\x15\ -`r\xa0\x8c{k\xbf\xd6{\x97\xcf\x22X\x16M\xaf\ -\x1e\xad\xf7A\xeb\xd6\x9d\xa74\x961\xe1\x8fC*\xe1\ -\xb00\xc21K\x99\xe4\x8f\xbd\x90dH\x05f%\x97\xc7\ -\xda\x98\xca\x94\xc2\x05\x10\x0b\x99JB\xbf\xb9J\xde:\ -\x95\xc4\x22\x06\x96O*\x91P\x7f\x94\x00+<\x15\x8c\ -\xce\x84\xc0Y*d2E$\xffR\x99|\x0dA\x22\ -\x86\xaa$\xe2;\x10Dy\x8a9\xa14\x9d\x89\x18'\ -2\x85\xd7\xa9\xa35EP\x98|.E\x0fa\x16.\ -\x87\xde\xdd\xc5a\x09\xddI\x19\xd7\xfe\xa0\x7f\xc6<\xce\ -\xb8\xfco4\xe8\x93K\x1c\xb38\x13\xf4\xab\xe9\x978\ -ai\x96\xc6T~\x0fyf\x98e\x82;u\xc2y\ -cT\x08\xf4\x0fb\x90[\x12g\x8cO4\xafo\xa6\ -\xca\xefH\x0b\xf4v\x01G5\x93 J*\xe0\xef\xd8\ -\x14::\xda!\x9a\xe2\x04^\xc5\x14-!\xfb\x01\x88\ -y\x8b\xe0~\xa3\x5c\xb0\x84\xcd\xe0\x8cJI\xa0i\xa0\ -?\xe0\x0c\x031\xfa\xdd\xa8\xcc\xaa\x02\x1dJ\xbbA\xef\x9b\ +\xbb6\xcf\xb6\x0a\xfd\xbc\xb1v\x9b\x06\xc1\xe1p\xc0e\ +\xe7\xc4\xda\xac\x83_\x90\xef/on\xe6\xed~}\x83\ +\x10\x82s\x9b6-\xf2\x85\xd7-\xd8\xeeLu\x02\x16\ +y\xa0*U\xab\xc6\xb6\x01\xc54\xf0Fx>\xc2s\ +wz\xb9W\xb9\xaek\xdd\xb4\xa7\x95M\xfb\xea\x02l\ +\x8a\xd5\x80v\xd9\x1c\xc2\x13\x88&I\x12\x10\x160\xe6\ +\x03\xc2o\x8f\x8d\xcd\xee\xfd\xeb\xa5\x90\xe3\xd4RF\x08\ +\x09 6\x22\xbf\x0e\x95\xb6@\xe8\x16~\x07x\xef\xc0\ +\xad\xde\x99\x5c\xad`\x9d\xc2\x8d\xb2\xc1\xdb\x8fo\x87\xa0\ +Opa\x8b\x8bmz>\xafN\xbd\x22\xb9\xc9j\xd5\ +n\xb3\x5c\xb5A\xef?\xad\xbf\xe80=9\xcab\xe1\ +A\x8e\xecd\x1c\xca\xc2n \x96\x9c\xcd\x8d*\xd7\x1b\ +;\xda\xfbR\x1d~\xd3\xf7\x0b\x8f \x82\xc0\x89\xfa@\ +\x9fhZ\xe8\xdc\x9d\xbc\xf0\xf2J\xe7w\xb8/\xbeO\ +!\x1d\x8e'8a\x98\x22C\xa30\xa6\xde\x12@\xf3\ +Z\xd9\xac\xc8l\xe6\x16\x9c\xf3\xea=\xf2\x04\x00\x08\xf4\ +)\xfd\xf3\xed\xbb\xb3\x05v\x9e\xa7\xffjs\xd7\x99\xf0\ +8@v\xabw\x90\xb4\xb7\x1c\xdc\xf3\x22O\x81\xd9:\ +\xb3\xcb\xb2\xce\xd6\xca5\xe5W`r\x1e\x8c\x81+\xb0\ +=n\xd5\xb8\xe9y[\xa3\xce-\x9a\xd4i\x91\xd7\xa5\ +[\x14\xfce\xcb\xaaz\xef\x0e\xf1P\xf0`\xd3\xd2V\ +jt\xce\x83.\xfb\xae\xb6\xe0\xa2\xb8y\xd0\x97~\xb2\ +\x0a\xb5jGV\x9c%\xba\xdd\xe7\x03\xf3\x8e\xf6\xc25\ +\xe8\x0c\xdcB\x06\xb9\xae\xb4Yx\xafV\xa7\xc7;\x07\ +n\xb5)\x94\xe9C\xe2\xf4\x5c\x854\xa8\x06j\x81\xae\ +wn}\xfbI\xe5\xd6\xeaJ\x99\xacq\xf5S\xd2E\ +\xd6\x06\xf42\xe5\xdf\x95\x85\x9a\x0a\x0c:p\xe9\x0d\x07\ +MF\xdbMV\xe8\xc3\xc2c\x0f\x83\x87\xb2\x81\x80\xdf\ +K\x95I\xf2\x04\xa2Wo\x12\x0f{\x00{\x03O\xbc\ +s\xb6\x1b}p\x85,\xbcUV\xb5\xea\xe1f\x9f\xb5\ +\xae\xddm\x89C\x19\x12\xfe(\x9b\x1cn\x03#\x1c\xb3\ +\x98I\xfe(\x08\xc5\xf9T`\xc6C\x16\xcb'\xd2\x84\ +\x0d\xfc\xa7b\xc7\xff\x88\xd5\xd9}Y\x97\x9fU1v\ +j\xb3;\xa3\x9c\x0e;\x8eTU\x95\xdbVM\xd2t\ +\xc9\x8e{\x1b\x13\x1d\xc8J\xa4\xfb\xb9&\x8b\x11\xccY\ +\xc2dD\xa2\xe7s1V&\xfb\xca\x9c\x0e\x13\x81\xa3\ +\xde\x04\xe5$\x11\xe6\xf0\x89\x1b\x8a7\x00\x91\x1c\xc72\ +\x0a\xa3\x1eg\x8e\x83O<-\x91\xc7z\x98*\x91\xc2\ +@\x0f\x85\x8c%\xa1/\xad\x8c\x0fN\x19\xa1\x08\x81\xdd\ +\xb32$4\x1dE\xc0\x07\x8f\x05\xa33!p\x12\x0b\ +\x19M\x10\xc8\xbfM\x1a\xcf\xe0F\x84\xd0\x8cH\xbc<\ +7\x94\xc7\x98\x13J\xe3\x99\x08q$cx\x9d\xbaI\ +\x13\xdc\xf8\xd1W\xb2\xf3\x00ea\xf0\xb7\xee\xc3\xea\xe7\ +0\x86\x94qC\x0efd\xc8\xc3\x84\xcb\xff\x05\x83&\ +\xb9\xc4!\x0b\x13A\x9f\xc9\xbb\xc4\x11\x8b\x938\xa4\xf2\ +;H2\xc1,\x11\xdc)\x12.\x18\xa3B\xa0\x7f\x10\ +\x83\xc2\xa20a\xfc\xf1\x90z\x19%~?F`|\ +\x0b\xb8\x99\x89\x04!R\x01\x7f\x7f\xc60\xb4\xd1\x1e\xd1\ +\x18G\xf0*&\x18\xf1\xd9\x0f\xce\xc9\x07\x04_/\xca\ +\x05\x8b\xd8\x0c\xae\xa4\x94\x04F\x04\xfa\x03\xae,p\xc2\ +#\xc2\xa6H\xe1?<)0\x98p$D,fp\ +\x89\x04\x11\x92\x86\x8e\x14\xc10\xd0\xf3\x04)~\xf8\x0d\ +\xb4\xcc\xdd\xbf\x00\xcb\x9b/\xdf\xef\x96$\ +\x00\x00\x07\xec\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0bY\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg6\x22\ +\x0a inkscape:d\ +ocument-rotation\ +=\x220\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x0b\x0f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ - +<\ -/tspan>\x0d\x0a\ -\x0d\x0a\ -\x00\x00\x16h\ +\x0a pagecolor=\ +\x22#ffffff\x22 />\x0a <\ +path\x0a sodipo\ +di:nodetypes=\x22cc\ +ccc\x22\x0a inksca\ +pe:connector-cur\ +vature=\x220\x22\x0a \ +id=\x22path816-3-7\x22\ +\x0a d=\x22m 35.29\ +0518,16.901345 c\ + -4.614292,-1.41\ +6078 -9.151745,-\ +0.816181 -15.693\ +461,1.897953 l -\ +0.184595,19.7815\ + c 7.171601,-2.6\ +05831 11.546259,\ +-3.067165 15.983\ +56,-1.844967 z\x22\x0a\ + style=\x22fill\ +:none;fill-rule:\ +evenodd;stroke:#\ +999999;stroke-wi\ +dth:1.83396;stro\ +ke-linecap:round\ +;stroke-linejoin\ +:bevel;stroke-mi\ +terlimit:4;strok\ +e-dasharray:none\ +;stroke-opacity:\ +1\x22 />\x0a \ +\x0a +<\ +/text>\x0a\x0a\ +\x00\x00\x15\xf7\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ +\x22\x0a inkscape:\ +current-layer=\x22s\ +vg2\x22 />\x0a \x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \ + \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \x0a \x0a <\ +tspan\x0a sod\ +ipodi:role=\x22line\ +\x22\x0a id=\x22tsp\ +an4522-0-3\x22\x0a \ + x=\x22-48.97916\x22\ +\x0a y=\x2264.77\ +5017\x22\x0a sty\ le=\x22font-style:n\ ormal;font-varia\ nt:normal;font-w\ eight:normal;fon\ t-stretch:normal\ -;font-family:'Te\ -X Gyre Pagella M\ -ath';-inkscape-f\ -ont-specificatio\ -n:'TeX Gyre Page\ -lla Math';fill:#\ -ff7f2a;fill-opac\ -ity:1;stroke-wid\ -th:0.98280805\x22\x0d\x0a\ - id=\x22path8\ -23\x22 />\x0d\x0a \x0d\x0a\ - \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x09\x22\ +;font-family:san\ +s-serif;-inkscap\ +e-font-specifica\ +tion:sans-serif;\ +fill:#216778;fil\ +l-opacity:1;stro\ +ke-width:0.77554\ +256\x22 />\x0a<\ +/svg>\x0a\ +\x00\x00\x08\xe8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x06\xc8\ +no\x22?>\x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x06\xbc\ \x00\ -\x00\x19\x04x\xda\xedXmo\xe36\x12\xfe^`\xff\ -\x83\xa0\xfd\xb2\xc1Y\x14\xdf_\xb4\xf6\x16wX\x14-\ -\xd0~\xe9\xeb]\xbf\x14\x8aD;jd\xd1\x90\xe48\ -\xd9_\x7fC\xd9\xb2%[\xdeM\x91-\x168\x9c\x82\ -$\xd2\xcc\x90\x1c>\xf3\x0c9\xe4\xfc\xeb\xc7u\x19<\ -\xd8\xba)\x5c\xb5\x08\x09\xc2a`\xab\xcc\xe5E\xb5Z\ -\x84\xbf\xfc\xfcM\xa4\xc3\xa0i\xd3*OKW\xd9E\ -X\xb9\xf0\xebw\xaf\xbe\x9a7\x0f\xabW_\x05A\x00\ -\xcd\xab&\xc9\xb3Ex\xd7\xb6\x9b$\x8e7\xdb\xbaD\ -\xae^\xc5y\x16\xdb\xd2\xaem\xd561A$\x0e\x07\ -\xf6\xd9\xc9>\xabm\xda\x16\x0f6s\xeb\xb5\xab\x9a\xae\ -i\xd5\xbc\x1eZ\xd7\xf9\xf2h\xbe\xdb\xed\xd0\x8euV\ -\xc4\x18\x13c\x1aS\x1a\x81E\xd4\xef\xb6hK;\x90\xce\ -\xe3\xc3\x1c\xfa9\xc6\xc3I\xce\xe3\x1e\x85\xfdgn\x97\ -\xcd\x00\x22\xffI\xf0\x11\x9euZ\xdf\xdb\xfa8\xde1\ -@M\xeb\xb2{o\xff\xcf\xbav;\xf2=dh\xdd\ -\x86G;W\x17\x90v\x8b0\xdd\xb6\xee$\xad\xed\xf2\ -?>\xa4x$\xfa\xf7\x99\xe8z\xafM\xfbT\x02N\ -\x0e\xd8\xb1,\xdd.y(\x9a\xe2\xb6\xb4\xe1\xa5{E\ -\xd39\xb8\x08\xdbzkOA\x9bo\xd2\xf6n\x10\x01\ -?\x94\x17qat8\x90\x83\xf8\x87\x00\x9c\x9a\xc1o\ -\xf0} \xe0-\x12\xddkD(\x12\x03\xf1^\xda\x9b\ -~\x08\x86\xbd\x1c\xdc]B\xe4\xa2z[\xda\xc4>\xd8\ -\xca\xe5\xf9\xdb\xa6\xad\xdd\xbdM^\xe3\xee9|F]\ -N%\xb0\x00n\xdaa/m\x9dV\x8d\xa7\x13\xa4N\ -\x96\x96\xf6\x0dF\xfaf/-\xd3\xd6\xbe\xd9;ts\ -\xa2\x05\x04\xb8\x0b\xda!\xda>\xa0\xfb\xd7c\xd6\xf8\x94\ -\xc9}\x8e\x1e\x86\xd9\x00\xad2W\xbaz\x11\xbe^v\ -O\xef\xc0\xad\xabs[\xf7:\xd9=c\x9d\x83\xe5\x01\ -(\x0aI\xdc\xcb\xdd\xed\x9f6k[WZ\xf0\xd1\xf3\ -\x9a\x1c\x83\xbb\xaaa\x8e\x93\x8am\x91\xdbI\xcd1\xa4\ -\xde\xc9\xe3`\xd3\xea\xe6.\xcd\xddn\x11\xd2\x0b\xed\xae\ -\xa8@\x13\x1d\x96-\xa2%\xbbf\xd2/e\x04S\x11\ -\x0e\xf2\xe2\x88\xd9\x91(\xcd\x9d\xdb\xf9\x09A\x84\xd3\xb2\ -\xb1\x17\x1d~p\x0eb&\x91\x92\x98\x13\xa9.\xf4\x19\ -\xac\x8f\x11\x04O\x12\xca\x14\xbfT\xc34\x19\xb0A\x1b\ -F\xe55o\xa1\x0b\xa1\xae)\xa1\x03zU\xb9N\x1f\ -\x8bu\xf1\xc1\xe6\x83\xc8\x9d\xc6\xde\xd65\xe4oT\xa6\ -O\x16\x02\xbf\xe2\x92\x88\x9e`\xf3\xd5\x00\x95\x15'\xe2\ -\xb4X\xacF9\xbc\xe2\x82\xf3\xe7\xe4\x1e\xc3\x97\xb97\ -\xc3\xc1\xb7~\xe7\xf8\xd5\xff\xf9\x16v\x91\xdf\x876'\ -G]U\x01\xd9\x5c\x1d\x81\xcb\x0fi\xbb\xad\xed\x80\x1c\ -gI\x98TP@\x0c\x97\xcf\x81\xc3\x07\x97\x0d&W\ -r\x0fV\xf3\xbax|\x03\x01Q\xccP\xc3g\xe0\xe2\ -\xec\xf4\xa5\x08RF(.f\xd4 \x88\xb6a\xeaf\ -\xb4Y\x9c\xcd\xfe/\xcda\x00\x16Qd\xac\xf1\xbbZ\ -\x10\x09\x86\x14\xd6\x5c\xea\x19\x87\x17E\x84\x14\x01\xc1H\ -1\x0c_\xb3H#\xce4%F\x8e\xdb\x0e\xb1ym\ -\xa5\xffy{}\xb5\xa2\x99H\xd3\xb3\xd5\x8a\xc2\xac\x19\ -WF\xd1^^\x160\x99t\x93\xdcn\xdbv(\xfb\ -\xd3\x15U\x02\x9b\x99\xad{\xe9!\x99\x13\xd2\x0b:m\ -\x09\xacl\x13\xde\xcb\xf2\x14\x92\xba\xae\xd3\xa7\x8b\xe0}\ -NL\xd9$\xa6\x1cQ\xce\x85\x94\xb3\x88pd\x14\xe3\ -F\x04\x061\xa1\x096\xb3\xee\x05\x1bM\xff\x0f\xe9$\ -\xa4b\x0aRX\xcf\xb4\xc2T\x02%\x89B\x82r\x8a\ -U\x10\x19$\x8c\x12\x9a\xce\x80\xb1\x86ASC\xfe.\ -P\xa5\xfe\xeb\xa0~\x1a\xc3\x0b\xf8\xcf\xdc?\xee\xbb\x0e\ -69\xa8\xe6\xa0\xd2\xcf\xb2O\x01\x7f\xa5\xd5g\x09\x8e\ -\x9a\x0a\x0e\x07\x904\x95\x8c\xcf\x22\x868\x96\xc0n\x1e\ -@u\xa1\x04\xc4D\xce\xba\xe5\x84\x9a\xff-\xba\xdb\xb2\ -,6\xcdYQ\xee7^\x84\x81\x93T\x9e\x01U?\ -z\x15\x11L+zFp\xbf]KD\x09(\xe9Y\ -\xfc\xbb\x8d^\x08\xc4(\xc5L]\x0b\x0a\x93\x91\x8c\xd8\ -$\xbc\xa7y\xee\x81\x16\xf0,\x97{\xa0\xc7\xbaI\xdc\ -\x87\x14=\x82\xae\x89\xa1L\xb0\x0b\x80k\xb7\xad\xf2\x97\ -P\xffy\x00SXP\xb9&l\x12`,\x81\x85R\ -^\x02\xac\x107LR!'\x00\x86}\x17\xfa\x93\x8c\ -|\x04`\xf2\ -B\xdfg\x81\xcbTz\x9b\xe9\x17\x81\xcb\xb5\x81\xec\x93\ -\xea\xcb\x81\xab1 \xc8\xf4\x14\xb8\x86\x0a\x82\xc9\x04\xb8\ -\xd0J\x0b\xa1'\xc1\xe50)\x81\x05\xff\x18w\xf1\xb3\ -\xe0\xa5\xa9Z\xbe\x90\xbb\x8c0\xa3\xb5\xa1\x7f+\xbc\xf3\ -xu\xbc\x0eX]\x9e\xcf\x06\x07\x9b\xc1M\x02\xc2X\ -*\xaa\xd9,\xa2\x02\xd0T\xd4\x98\x9b\xf0\xecLG\xe0\ -Lw\xbaj8?\xf1\xc9\xe1\xb229\x08F\x82P\ -\x0eg\xa6\xc1\xf1h^C\xed2\xbcp\xf3\xd7\x09H\ -b\x0c\xf5\xc6(\x8f<9\xa0n\x84\x93\xce8O:\ -f(\xc6\x98\x18\x89\xfb\xb3\xbc\x84\xc9`\x055\xc6P\ -y\xb8\x0b`\xc6\xf7\xc7\xc8\x88\x1a~2\xde'.\xc6\ -t\x1a\x95;\x18\xd3[\x9a\x0d.s\x06\x9f\x87`\xfb\ -zVh\x81\xe5Eq3\x8a\xf5gc\xc0\xdbMZ\ -\xc0\xb1\xbd\xbb\x98I\xf6\xb7@M\xe0\xbd\x0d\xf6\x96g\ -\xbc\x1d\x11f2\x06P\x03BE>\x15\x03\x8da\x8f\ -;\x8b\x01G\x18\x8eF\x14\x8b\xe9 (&\x8dTr\ -\x22\x08\xb0wS\xc2\xd9\xf8l;\x0c\xc2\xb80\x1a\x85\ -\xe1\x90\x91W\x13\x0e\xcaV#)\x17J|\x81\x18T\ -\xfe\x1a\xb8\x1c\xde\xcd\xad\x0e\xd7r\xfe\xff\xdc_\x19\xc3\ -\xff\xff\x02\xee\x1b\xf6m\ -\x00\x00\x05.\ +\x00\x18cx\xda\xedX[o\xe3\xb6\x12~\xdf_!\ +h_6\xa8%\xf1~\xd1\xda)N\xb1(Z\xa0}\ +\xe9\xed\x5c^\x0e\x14\x89v\xd4\xc8\xa2!\xc9q\xb2\xbf\ +\xbeC\xd9\xba\xd9\xf26E\xb6X\xe0\xe0(H\x22\xce\ +\x0c\xc9\xe17\xdf\x0cI-\xbf~\xda\x16\xde\xa3\xa9\xea\ +\xdc\x96+\x1f\x87\xc8\xf7L\x99\xda,/7+\xff\xd7\ +_\xbe\x0d\x94\xef\xd5MRfIaK\xb3\xf2K\xeb\ +\x7f}\xfbfY?n\xdex\x9e\x07\x9d\xcb:\xce\xd2\ +\x95\x7f\xdf4\xbb8\x8av\xfb\xaa\x08m\xb5\x89\xb24\ +2\x85\xd9\x9a\xb2\xa9#\x1c\xe2\xc8\x1f\xcc\xd3\xc1<\xad\ +L\xd2\xe4\x8f&\xb5\xdb\xad-\xeb\xb6gY\xbf\x1d\x19\ +W\xd9\xba\xb7>\x1c\x0e\xe1\x81\xb6FXk\x1d!\x12\ +\x11\x12\x80EP?\x97M\xf2\x14L\xbb\x82\x8fs]\ +\x09B(\x02\xdd`\xf92\xab\xb8\x06Tv\xf0\xdb\x9b\ +w\x82\xb0\xb6\xfb*5k\xe8g\xc2\xd24\xd1\x87_\ +>\xf4\xca\x00\x85Y\x93\x8d\x86\xc9\xcb\x87:Mvf\ +2k'<\x22\x90lM\xbdKRSG\x9d\xbc\xed\ +\x7f\xc8\xb3\xe6~\xe53\xd5\xb6\xeeM\xbe\xb9o\xfa\xe6\ +cn\x0e\xdf\xd8\xa7\x95\x8f<\xe41\xe5\x9d\xc4y\xb6\ +\xf2a\x19\xe4h3\xc4\x19\x1f\xb5\xa7\xe1\xe3^\x83B\ +MB\xe6\xbd\xdb\x97\x0f\xa5=\x947\xadY\xb7\x968\ +\xb3\xa9sn\xe5g\xa9\xdd\xad\xff\xdb\xd4\xa1\x83\xe8\x16\ +l\x96[\xd3$Y\xd2$\xce\xfe8m'\xc1\xa4\xb5\ +\x00\x1b\x08U\xfc\xd3\x87o\x8f-h\xa7i\xfcO[\ +=\x9c\x9a\xf08\x83\xe4\xce\xeeaY\xfem/^f\ +i\x0c\xe0n\x93\xe66\xdf&\x1b\xe3\xe2\xf2\x15\x80\xb9\ +\x8c\x06\xc5\xc4\xb8y\xde\x99a\xd0\xe3\xb0\x959Fi\ +\x96\xaaY\xba\xcd]\xa7\xe8\xe7&/\x8a\xef\xdd$\xbe\ +\x17\x9d\x0d\x9a7\x85\x19\x84\xcb\xe8\xe4\xfdim\xd1h\ +q\xcb\xa8[{\xdb\xca\xcc\xba\x1e`q-\x8c:H\ +\xb6I\xf5`\xaan\xa2>\x1euc\xd3\x07g\xfd\x8f\ +\xaa\xb2\x07\xfc\x03\xa4`\xd5\xf8\x9d\x99\xadrH\xac\x95\ +\x9f\xec\x1b\xdb\x0b+\xb3\xfe\xb7\x8b\x1f\x1aK\xfe5\x95\ +\x5c\x1d\xb1n\x9e\x0b\x80\xc6\x02\x0f\xd6\x85=\xc4\x8fy\ +\x9d\xdf\x15\xc6\xbfp,\xaf[\xd7V~S\xedM\x1f\ +\xa3\xe5.i\xee\x07\xc4\xdd4N\xc2\xb8V\xfe \x06\ +\xe9\x8f\x1e\xb8\xb3\x80_\xef\x07\x8f\xc3[\xc0\xdb\xd7\x00\ +\x93\x90\x8f\xc4Gig\xfa\xd1\x1b\x0dr\xf2t\x0dq\ +\x0a\xaa}ab\xf3hJ\x9be\xef\xeb\xa6\xb2\x0f&\ +~\x8b\xda\xe7\xd4\x0c\xda\x9c\x89\xa1\xae\xed\x9a\xd1 M\ +\x95\x94\xb5c\x0e$G\x9a\x14\xe6\x1d\x0a\xd5\xcdQZ\ +$\x8dywt\xe7\xa6\xe7\x00\x04\xb4\x8d\xd31\xb8.\ +\x82\xed[\x9f\x17.)2\x97\x81\xc7)v\xc0\x9f\xd4\ +\x16\xb6Z\xf9o\xd7\xeds\x9a\xfb\xceV\x99\xa9:\x95\ +h\x9f\x89\xcaB\xda\x03\x13!COb{\xf7\xbbI\ +\x9b\xc6\x16\x06\x9cs\xec\xc5]47\x15,mN\xbe\ +\xcf33\xa7\xe8c\xe8\xdc\xeb'\x9a\xd5\xd6\xf7If\ +\x0f+\x9f\x9c+\x0fy\x09\x8a\xe0T\x89\xb0\x12\xf4\x8a\ +EW\x9d0\x22\xdc\x1f\xc8\xdf\x03\xd5\xf1\xa2\xbe\xb7\x07\ +\xb7\x12\x88hR\xd4\xe6|\xb4\x8f\xd6B\x8cD(\x05\ +bX\xc8su\x0a\xf5.\x80X\x09L\xa8d\x17Z\ +X\x1e\x85\xd0+M\x89\xb8\xe2'\x0c\xc0\xe5\x15\x1dt\ +'\xd7t\xdb\xe4)\xdf\xe6\x1fM6\x84j\x98w_\ +U\x90\x9fA\x91<\x1b\x88\xf3\x86\x09\xccOTZn\ +\x06,6\x0c\xf3\xbe\x0el\xc6)\xbaa\x9c\xb1?O\ +.\x8a.\x92k\x81\xbc\xef\x5c\xf5\xff\xcd\xfd\xf9\x0ev\ +\x82\xff\x8cL\x06\x07mY\x02\xabl\x15\x80\xab\x8fI\ +\xb3\xaf\xcc@\x84\xb3$\x8bK\xd8\xf7G\xc5p\xf0\xf4\ +\xe4\xabFx>\xb3\xa0,W\xf9\xd3;\x08\x80\xa4\x9a\ +h\xb6\x00\xef\x16CK\xe2Pj.\x19_\x10\x1dB\ +l5\x957\xe3\xa2?]\xf5_\xf1~\x84\x11\x96x\ +\xa2p\xdb\x92\x17p\x1aJ\xa4\x98P\x0b\x06/\x12s\ +\xc1=\x8cBI\x11\xb4\x16\x81\x0a\x19U\x04k1\xe9\ +:\xc6\xe4\xad\x11\xee\xe7\xfd\xf5*DR\x9e$gU\ +\x88\xc0\x82)\x93Z\x92N^\xe4\xb0\x92d\x17\xdf\xed\ +\x9bf,\xfb\xdd\xe6e\x0c[\x92\xa9:\xe9)_c\ +\xdc\x09Zm\x01\x1clb\xd6\xc9\xb2\x04\x12\xb7\xaa\x92\ +\xe7\xf3\xa0}>8\xe9\x1c\x9c,$\x8cq!\x16\x01\ +f\xa1\x96\x94i\xee\xe9\x90r\x85\x91^\xb4/H+\ +\xf2\x7f4/\xd0\xe43hB\xc5R\x12\x11\x01D\xc4\ +2\xe4\x84\x11$\xbd@\x87\x5cK\xae\xc8\x02x\xaa)\ +\xf4\xd4\xf8o\xc2S\xa8\xbf\x8e\xe7\x9f\xc3w\x81\xfc\xd4\ +\xfb~#\xb5\xb0w\xc1A\x0c\xce\xe4i\xfai\xc8\xaf\ +\xf4\xf9\x0cQ\x913Qa\x00\x8f\x22\x82\xb2E@C\ +\x86\x040\x9aypL\x90\x1c\x82!\x16m\xf5 \xfa\ +\x7f\x89\xe2\xa6(\xf2]==G\xbb\x0d5D\xc0D\ +\x22\xa6 UON\x839U\x92LI\xed6a\x11\ +\x12\x0c:2\x0dz\xbbys\x1eRB\x10\x95W\x82\ +AE \x02:\x87\xeb\xb0\xc0#\xc2\x1c\x9e\xf5\xfa\x88\ +\xf0T7\x0b\xf8\x98\x94=\xda\x0akB9\xbd@\xb6\ +\xb2\xfb2{\x0d\xd9_\x82,\x81\xd2\xc9\x14\xa6s\xc8\ +\x22\x01\xd4\x13\xe2\x02Y\x192M\x05\xe1\xe2\x12Y\xd8\ +Ua0A\xf1ud\xf1\x8bp]\xab,\xa3\xaf\xc0\ +\x95\x86\x14+\x8d\x09\x91_\x06W\xd8\x9d\xe0\xa0\x81)\ +\xbb\xc0\x95\x85\x0cc\xac\xf1%c]\xe9%\x82\x13\xce\ +/\x81\xa5$\x14LpI>A\xd9\x97\x11V\xebW\ +\x11\x96\x86J#-\x00\xdc/\x03,\x14B\x85\x14%\ +t\x86\xb0\x5cA\xe9\x9a\xc3\xb5= h=CXw\ +*\x13T\xe0\xeb\x84}\x09\xaaT&w\xa9z\x15\xaa\ +Li\xc85!\xbf\x14\xaa\x0a\x01vT\xcd\xa0\xaa\x09\ +\xc7\x08_\xa2\x0a}\x14\xe7j\x0eU\x06\xeb\xe1\x88\xb3\ +O\xb0\x15\xbd\x04W\x92\xc8\xf5+\xd9J1\xd5Ji\ +\xf2w\xe2\xba\x8c6\xdd\x95}s~\xb5\x1a\xddMF\ +W\xfd\x10!!\x89\xa2\x8b\x80p\x80Q\x12\xado\xfc\ +\xe9m\x0c\xc3m\xac\xff\x14pvS\x13\xa3\xea1;\ +\x01\x0a9&\x0c\xae<\xc3\xedfY\xc1a\xe4\xcd$\ +\xea8\x14\x08\xc1\x09b\x9c2\x8e\x0cp\x02\x84\x9b\xca\ +$'Z&HJ)\x1fK\xbb\x0b\xb7\x805 \x09\ +g\x86\x91\xeet]\xa7\xda\x0dF\xf1\x98\x0an\x11\xce\ +\x1b\xc6'\xe4\x99\x9c]\x10\x22w$\x1d}`\x195\ +O\xc1u\x87R\xae8\x12\x17'\x95Il?[\xc4\ +\xdf\xef\x92\x1cn\xd8\xed7\x93\xf8\xf8m\xa6\xf6\x9c\xb7\ +\xde\xd1\xf2\x8c\xa7c\x82\xcca\x0f\xa798T\xcf`\ +\xaf\x10\xec]S\xecY\x88\xe0ZC\x10\x9f\x05_R\ +\xa1\x85\x14\x97\xe0\xc3vL0\xa3\x93\xfb\xe8\x18\xfc\xc9\ +!g\x02\xff)\xf3\xae&\x16\x1c=\xb5 \x8cK\xfe\ +\x05\xb0/\xdd\xe7\xd7b\xf4\xa1ls\xfcF\x06\xff\x96\ +\xee;\xed\xed\x9b?\x00\xe5\xa8\xee@\ +\x00\x00\x05&\ \x00\ -\x00\x11\x9dx\xda\xd5X\xddo\xdbF\x0c\x7f/\xd0\xff\ -\xe1\xa0\xbe\xb4\x98u\xba\xef\x0f\xd5N\x81\xa1(\xb6\x87\ -\xbdl\xdd\x06\xeceP\xa4\xb3\xadF\x96\x0cI\x8e\xe3\ -\xfc\xf5\xe3I\x96\xac8\x0eP\xa4E\x83)\x09\xec#\ -yG\xf2w$Ef\xfe\xe1nS\xa0[W7y\ -U.\x02\x8aI\x80\x5c\x99VY^\xae\x16\xc1\x9f\x9f\ -?\x85&@M\x9b\x94YRT\xa5[\x04e\x15|\ -\xb8z\xfdj\xde\xdc\xae^\xbfB\x08\xc1\xf6\xb2\x89\xb3\ -t\x11\xac\xdbv\x1bG\xd1vW\x17\xb8\xaaWQ\x96\ -F\xaep\x1bW\xb6MD1\x8d\x82\x89|z\x92O\ -k\x97\xb4\xf9\xadK\xab\xcd\xa6*\x9bnk\xd9\xbc\x99\ -J\xd7\xd9r\x14\xdf\xef\xf7x\xcf;)j\xad\x8d\x08\ -\x8b\x18\x0bA\x22l\x0ee\x9b\xdc\x85g{\xc1\xceK\ -{\x19!$\x02\xdeD\xf4+\xc5\xe2\x06\xc0\xd9\xc2\xdf\ -(?\x10pS\xed\xea\xd4-a\xa3\xc3\xa5k\xa3\x8f\ -\x9f?\x8e\xcc\x90\xe0\xac\xcd\xa6\xe7\xe4\xe5M\x93&[\ -\xf7@\xef@\xecaH6\xae\xd9&\xa9k\xa2\x81\xde\ -\x1f0\xac\xe2\xe9\xc5\xa1\xb7\x82p\x99\x88\xe5\xb5\xb03\ -\xc4\x08#!\x91!\xa1\xef\xfa=\x83!qV\xa5\xfe\ -\xe0E\xd0V\xff\xde6)\x1e\xdd\xcb\xb3E\x00\x0b\xd5\ -\xaf&G\xd3#%w\xfb\x9f\xab\xbbE@\x10A\xc2\ -\xc0oO_\xbb|\xb5n\x17\xc1\xb0\xde\xe7Y\xbb\xee\ -\x96W~=\xef\x03\x05\xa1\xb6N\xca\x06\xd0\xd9,\x82\ -M\xd2\xd6\xf9\xdd[2\x03X4'\xc2\x18:\x9b|\ -\x9bYL\x89\xa4\x9c\xcd\x04\xc5\x9a\x0a\xaa\xd4\xd1\x8b\xde\ -\xca\x95e\xac?\x1c\x8e\xdf&\xed\xfa\xc8\x03/\xdbC\ -\x01\xae-\xf3\xa2\x88K\x08\xd8\xf7M[W7.~\ -\x938\xffs\x5c\x86\x9d\x891\xc3DJ6\xd0\x8a\xbc\ -t\x00j\x5cW\xbb2\x9b\x12\xbfTy\xf9\x90\xba\xc9\ -[W\x179|\xc4b\xa0eI\xb3N\xea:9L\ -\xf5\x86\x15\x5c_\xde\x1eb\x1a\x8c&\x82\xfd\x1bD5\ -\xd6\xc4p\xaeg\x8c`\x01\x17g,\x22\x98(\x0e\xee\ -S\x8393\x8c1D9\x86\x00\xe4T\xcfB\x83\xad\ -\xd1D\xa2\xfb\xd3A\x1e\x09\xef\xbc\xe1\xe2D\x1c\xaf\xb9\ -\xac2\xd7\x1e\xb6\x0e\xe2:\x85'@\xd1\xb7\x03F\xb1\ -\xb5\xca\x98\x17A\x8c\xc3mi\xa1- F\xb1\xb2\x82\ -\x0b\x85 z\x083Z\xcc\xa8\xc2J\x12*.\x81\xa3\ -\xbe\x9b\xebL\x88\x17p\xfd7\x1f,\x841n\xed\x8c\ -\x83\xc3\x92\xc0% \x86\x95\xe2\x942\xd6\xd1\xa86\xd4\ -\x5ct>\xe4\xe1\x93\x00\x9c\x89\x85\xfaL/\xb7\xa0\x0d\ -\x94\x81^,\x8c2\x8a\x18d\xb0\x16\xd6p-=\x0d\ -BX\x13\x16<;\xfb\x88U\xfc\x07!\xfa}b\xc0\ -\x18\xc5\xd9\xcb\xc4\x80\xc2\x8c\x11:\x13\xd8\x0a\xca\x8d\xd6\ -\x10\x01R3\xc5\xe5\x8cYl\x89\xd0R\x04O\xdfl\ -(\xbf:\x08B\x19\xf2\xf3@\xe0\x18t\xc2\xdb\x05\xd4\ -\x1b\x06\xb7\x0f\xea\x85\xc2\xda\xc8N\xbb\xb6T\x0b\x1e|\ -\x0b\xa8\xf4e\xc3\xe0\x1c\x04y\x06\xc0#g}9\x12\ -L1\xca;\x9a4R=\x1f\x00_Y~|\x1e\xd4\ -.mG\x8b'\xef\xe6\xbaj\x93\xd6\xbd\xb5\xe4\xdd\xc9\ -\xa1\xc3\x22\x08%$,\x93BL\xc2\x0cz\x81P`\ -&\x15S\xd6\x9e\xc8CC \x05\xa0F\x94\x9c\xc4\xf2\ -\xb17\x90]\xcdb\xe4\xacfy\x93\xac\x11\xcf.(\ -\x9ak\xfbcp|\xbfM\xf2\xb2\x0d\xab:su\xbc\ -I\xea\x1b\xe8\x96P/\x84\xbc\xb5_\x13h\xea,\xc8\ -\x18d\x99\x844\x96\xb3\x90\x12l\xb9\x85\xc4\xe8\x88\x0c\ -P\xf4\xf5\x96\xf9^\x80\xca\xe7'\x9a\xa6\xd6\xfc\xbf\xea\ --\x85+}\x91v\x83\xc1\x0b\x96\x13\xc2\xc4\x0cr\xdf\ -r\x9f\xe1]\xbbaDW\x05\x15tc\x8c^.\xb8\ -*d\x83\xfb\xf3h\xd5\x7fn\x5c\x9bdI\x9bL\x9a\ -\xd8\x81DO\xad,\x8c1\xf1\xef\x1f?]\x0d\xc7\xce\ -\xd34\xfe\xbb\xaaoF5\x08y\x91\xe4\xba\xdaAz\ -\x05W'\xfa\xca\xa3\ -\x7fz\xb5s\x9f\xbd\xf0\xf9\x1fY\xc0+7\ -\x00\x00\x0bb\ +\x00\x114x\xda\xd5\x18]o\xdb6\xf0\xbd\xbf\x82P\ +_Z\xcc\xa2\xf8-R\xb5]`(\x86\xeda/[\ +\xb7\x01{\x19\x14\x89\xb6\xd5\xc8\xa2!\xd1q\xdc_\xbf\ +\xa3l\xc9v\xea`EZ$\x98\xe2\xc0\xe2\xdd\x91\xf7\ +}\xbc\xf3\xf4\xfd\xfd\xbaFw\xb6\xed*\xd7\xcc\x22\x8a\ +I\x84lS\xb8\xb2j\x96\xb3\xe8\x8f\x8f?\xc5:B\ +\x9d\xcf\x9b2\xaf]cgQ\xe3\xa2\xf7\xf3W\xd3\xee\ +n\xf9\x0a!\x04\x9b\x9b.+\x8bY\xb4\xf2~\x93%\ +\xc9f\xdb\xd6\xd8\xb5\xcb\xa4,\x12[\xdb\xb5m|\x97\ +PL\x93\xe8D^\x9c\xc8\x8b\xd6\xe6\xbe\xba\xb3\x85[\ +\xaf]\xd3\xf5;\x9b\xee\xf5\x19q[.F\xea\xddn\ +\x87w\xbc'\xa2\xc6\x98\x84\xb0\x84\xb1\x18(\xe2n\xdf\ +\xf8\xfc>\xbe\xdc\x0a2^\xdb\xca\x08!\x09\xe0N\x94\ +_G\x95u`\x95\x0d\xfc\x8f\xe4\x03\x00wn\xdb\x16\ +v\x01\xfb,n\xacO>|\xfc0\x22c\x82K_\ +\x9e\x1dS5\xb7]\x91o\xec\x05\xd7\x01x\xb0@\xbe\ +\xb6\xdd&/l\x97\x0c\xf0~\xff\xb0\xc8\xce\xfd\x85\xde\ +\x08\xc2e.\x167\xc2L\x10#\x8c\xc4D\xc6\x84\xbe\ +\xed\xb7\x0cRd\xa5+\xc2\xb1\xb3\xc8\xbb\x7f\xee\xba\x02\ +\x0f\xaaU\xe5,\x82w\xd5/\xce\xce\xa5\x07@ew\ +?\xba\xfbYD\x10AB\xc3\xa7\x07\xafl\xb5\x5c\xf9\ +Yt\x5c\xee\xaa\xd2\xaf\xfa\xd5\x1c\x96\xd3>2\x10\xf2\ +m\xdet`\x93\xf5,Z\xe7\xbe\xad\xee\xdf\x90\x09\x18\ +#\xe5DhM'go\x13\x83)\x91\x94\xb3\x89\xa0\ +8\xa5\x82*u\x90\xfe \xde\xd20\xd6\x9f\x0cgo\ +r\xbf:`@7\xbf\xafA\xa1EU\xd7Y\x03\xc1\ +\xf9\xae\xf3\xad\xbb\xb5\xd9\xeb\xdc\x86\xbf\xe32\xee\xa5\xcb\ +\x18&R\xb2\x01VW\x8d\x05Kf\xad\xdb6\xe59\ +\xf0\x93\xab\x9aK\xe8\xba\xf2\xb6\xad+\xf8\xca\xc4\x00+\ +\xf3n\x95\xb7m\xbe?\xe7\x1b;pY\xe5\xf7\x19\x8d\ +\x06\x09A\xf85\xa2)N\x89\xe6<\x9d0\x82\x058\ +K\x1bD0Q\x1cT\xa7\x1as\xa6\x19c\x88r\x0c\ +\x11\xc7i:\x8956:%\x12}\x1e\xcf\x09V\x08\ +\x9ak.F\xd8\xe8\xd9\xc6\x95\xd6\xef7\x16\xc2\xb8\x80\ +'B\xc9\xb7\xda\x8abc\x94\xd6/a,\x0e~J\ +Ej\xc0X\x14+#\xb8P\x08\x82\x860\x9d\x8a\x09\ +UXIB\xc5\x15\xbb\xa8\xef\xa46\x13\xe2\xf9\xd5\xfe\ +5\xc4\x08a\x8c\x1b3\xe1\xa0\xac$`\x7f\xc4\xb0R\ +\x9cR\xc6z\x18M5\xd5\xd7\x14\x8fy\xfc\x88\xf2\x0f\ +\x88\xe2\xf4\x92'7\xc0\x09\x18\x01O,\xb4\xd2\x8ah\ +\xa4q*\x8c\xe6\xa9\x0c0\x88\xda\x94\xb0\xe8\xa9\xe9F\ +\x8c\xe2\xcfd\xcb\xef\xe1{\xad\x15g/\xe2{\x85\x19\ +#t\x22\xb0\x11\x94\xeb4\x05\xcf\xcb\x94).'\xcc\ +`CD*E\xf4\xa8Oc\xf9\x95\xce\x8fe\xcc\x1f\ +\x04\x00\xc7\xc0\x0f.\x0f`\xad\x19x\x1dX\x0b\x85S\ +-{\xce\xa9\xa1\xa9\xe0\xd17\x98\x93\xbe\xa4\xfb\x1f\x1a\ +@^*\xff\x85\xa2\xa1\xf4\x08\xa6\x18\xe5=Lj\xa9\ +\x9e\xac|\xa8#\xcf\x1e\xfb\xad-\xfc \xef\xd9\xdd\xdb\ +:\x9f{\xfb\xc6\x90\xb7\xa36\xfbY\x14K\xc8P&\ +\x858\x85\x16\xdc\xf2\xb1\xc0L*\xa6\x8c\x19\xa1\xc3U\ +/\x05\xd8\x8b(y\x0a\xde\xe3\xad/\xfb\xe2\xc4\xc8e\ +q\x0a\xc2\x18-\x9eZvmi\xdbl\x9d\xb7\xb7\xd0\x02\xa1\x03\x11\ +\x0a\xd2\xfewp\xa9\xcb\xc0b\x90U\x12RVNb\ +J\xb0\xe1\x062\xa1\x072\xb0_\xa8\xab,\x5c\xf3T\ +>9\xb1Rj\xf4\xff\xa9\xaeRp\xe6K\xb4\x12\x0c\ +.PN\x08\x13\x13\xc8u\xc3CF\xf7\xad\x84\x16}\ +\xc5S\xd0d1z\xb5\xb0\xaa\x98\x1dU\x9f&\xcb\xfe\ +km}^\xe6>?5\xa5\x03\x84\x8e\xad)\xcc!\ +\xd9o\x1f~\x9a\x1fO\x9c\x16E\xf6\x97ko\x07\x06\ +\x08\x05\x82\xfc\xc6m!\x9b\xa2\xf9\x08\x9e\x96E\x162\ +5\xf7\xf3j\x9d/m\x18:~\x80Ia\x9a\x9c\x10\ +\x17\xc4\xa1\xd7;\x1dz8\xb6\xb5\x87\x11\xe4\xea\x1cV\ +\x16`D\xd8\x94\xfc\xee\xc1g\xbf\x04&\xa3g\xc7C\ ++_\xdby\xcf\xf3\xf0:h\x91\x1c\xd58*\x99\x9c\ +i9M\x06#\xf4\xab\xd2.\xba\x93}\xc2\x8a\x92\xc1\ +\x8c\xa7f\x15f\x902L\x15G\xcaa\xa2\x81\xf1d\ +\x1b\x86\xc5\xb8/W\xfd\x0cB\xa2\x074\xc5\xb6m\x03\ +I\x9d\xefm{\x1c\x0b\x1e\x90\xec\xaa\xa6t\xbbx\x9d\ +\xdfC\xe0|\xb6\xe5\x95S\x8e$P\x03\xa9\xa6\x8f \ +\xa1\x14\x86\x96\xf2!\x7f\xd8\x03\xad\x185R(\xfd\x05\ +\x12\xf60\x01\xcd+\xdc\x1b_ ?;\x07\x95\xd8`\ +\x98\x02\xe0\x19\xaab\xb7r\xbbe\x1b\x8c\xb5\xc8\xeb\xce\ +\x9eM<\xa3\x95\xf4#\x02\x0eU9\x95\xfc\x11\x8ac\ +u\xa6|l\x1eF\x8a\x0d\x04\x00\xe4\x11P\x81\xc8\xd7\ +\x90\xc7\x84:\x19o\xb9\xad`\xc6p\xb5\x85k%\x04\ +\x19\x1d\x11 \xfe5\xb8\xbb\xf9\x04\x17\xc05\xccM_\ +iG\x0e\xf4\x02\x5c\xb8\xda\x81g_\xab\xfe9\xa2\x82\ +D\x03b\xd1?CT\x9d\xaaR(F\xe1\xb7\x89\xe6\ +\xdc\x8a\x01=\xe8whx\xb00\x0cj\xaf\x0as(\ +7\xcc\x80\xf9R\xf43\x92\xf4\x80`\xe8O$R\xac\ +\x08\xb4\xbd\x02\xe0#=\xfa\xbbg9\x0d\xb99\x7f\xf5\ +/\x93\xea%\xe2\ +\x00\x00\x0b\x14\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ - \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \x0a \x0a \ +\x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x05\xf8\ +round;stroke-opa\ +city:1\x22>\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x05\xf0\ \x00\ -\x00\x15\xc9x\xda\xedXmo\xdb6\x10\xfe^\xa0\xff\ -AP\xbe4\x98%\xf1U\x22U;\xc5\x86\xa2\xe8\x80\ -\xf6\xcb\xd6\xbd~c$\xdaQ#\x8b\x06%\xc7I\x7f\ -\xfd\x8e\xb2%\xcb\xb6\xdceH\x8b\xa2\xc0\xd4\xa41\xef\ -\x8e\xe4\xdds\xcf\x1d)O_\xdd/K\xefN\xdb\xba\ -0\xd5\xcc\xc7!\xf2=]e&/\xaa\xc5\xcc\xff\xed\ -\xc3\x9b@\xf8^\xdd\xa8*W\xa5\xa9\xf4\xcc\xaf\x8c\xff\ -\xea\xea\xf9\xb3i}\xb7x\xfe\xcc\xf3\xbcM\x9177\ -3\x9f\x09\xbf\x1d\xde\xe8bq\xd3\xec\xc7w\x85\xde\xfc\ -d\xeeg>\xf2\x90\xc7\x84\xd7\xc9\x8b|\xe6\xc3\x12d\ -g\xb5\xdf\x1f\xef\xf4\xd5m\x9d\xa9\x95N\x87\xaa\x90x\ -/\x90B(\x9bsJ\xe5\xc4#\x88\x90\x00\xc1\x0f\xbb\ -\xdc\xce\xaa\xc1\xef\x15\xfc\xa6\xb9\xc9*\xb5\x04w\xf3\xcc\ -\xac\xe6!\xec\xb45\x80`\xab:\xed\x16\x9f\xf97M\ -\xb3J\xa3h\xb3\xd9\x84\x9d04v\x11\xb9\xc9\xf5J\ -e\xba\x8e:\xf9p\x81n\x9f~\x81N\x10\xd6fm\ -3=\x875tX\xe9&z\xfd\xe1u\xaf\x0cP\x98\ -7\xf9`\x9d\x83\xfd7\xb4\xdd\x99 \x84\xa2#\x7fa\ -\xf8XS\x9b\xcf\xc7L\xb1\x942B$\x02\xbc\xc0\x22\ -\xa8\x1f\xaaF\xdd\x07U}1\x9c\x9be\xfd\xd4\xccj\ -\xd5\x14w:3\xcb\xa5\xa9\xea-&\x87\xd6\xf9\xdez\ -\xb5\xb6ek\x92g\x91.\xf5RWM\x1dA\xbe\x22\ -\xff\xcaM\x98.u\xa3r\xd5\xa8v\xf66\xf7\x9d\x08\ -\x93\xad\x0dX\x81c\xe9/\xaf\xdf\xec\x86 \xc8\xb2\xf4\ -\x0fco\xbb1<\xceD]\x9b5\x10\xcc\xbf\xda\xcb\ -\xa7y\x96\x02\xe4K\xd5\x5c\x15K\xb5\xd0\x0e\x94\x1f\xc0\ -\xcbi\xb4W\x1cZ7\x0f+=Xw\xbb\xb2\xd5\xdb\ -\xec\x8d\xc6\x95g\xcb\xc2\xcd\x8a~m\x8a\xb2\xfc\xd9m\ -\xe3{\xd1\xde\xd9h\xe7m\x17M4\x0cg\x1au\xf1\ -n\x87\xb9\x9e\xd7\x030\xdc\x10\xa3\x1e\x88\xa5\xb2\xb7\xda\ -\xf6\xee\xf5\xa5P7&\xbbu\xf6?Zk6\xf8\x1d\ -\x94\xa5m\xfc\xde\xce\xd8\x02\x80\x9f\xf9j\xdd\x98\xbd\xd4\ -\xea\xf9_P}P\xd7C\xd1\x9fG\xa2\xf3\xab\xd6\xcd\ -C\x09\x88\x18\xa8\xc3yi6\xe9]Q\x17\xd7\xa5\xf6\ -O\xdd+\xea\xd6\xc1\x99\xdf\xd8\xb5\xde\xa7g\xbaR\xcd\ -\xcd\x00k\xb7\x95\x131.\x85?\x90\x83\xf8\xbd\x07N\ -M\xe0\xd7{\xe7q\xf8\x14\xf0\xf6c\x80I\xc8\x07\xe2\ -\xad\xb43\xfd\xe4\x0dW\xd9\xb9;\x87\x1c\x05v]\xea\ -T\xdf\xe9\xca\xe4\xf9\xcb\xba\xb1\xe6V\xa7\x17\xa8}v\ -\xc3\xa0\xed^)t\xbdU3\x5c\xa5\xb1\xaa\xaa\x1dq\ -\xa0Ie\xaa\xd4/P(.\xb7\xd2R5\xfa\xc5\xd6\ -\xa1\xcb=\x01 \xc1m\xd2v\xd9v\x09\xdd~\xec;\ -\x92\xeb(\xb9\xeb\x86\xbbmV@\xa0\xcc\x94\xc6\xce\xfc\ -\x8by\xfbt\x0e\x5c\x1b\x9bk\xdb\xe9\xe2\xf69\xd4\x19\ -\xe8L@F\xe8\x89\x9d\xdc\x5c\x7f\xd4Y\xd3\x98R\x83\ -\x8f\x8e\xc1\xb8O\xee\xc2B\x8c\xa3\x8au\x91\xebQM\ -\x9fR\xe7d\xbf\xd9\xb8\xba\xbeQ\xb9\xd9\xcc|r\xa2\ -\xdd\x14\x15h\x82\xdd\x01A8\xe2\xe7L\xbaC\x03#\ -\xdcG\xeah\xd2c\xd6\x13\xa5\xbe1\x1b\x17\x10dX\ -\x95\xb5>Y\xf0\x931\x903H\x0f\x92\x8c%\xa7>\ -ep\x12a\x19R\x96\xc4bD\x0bQ\x12\x1c&\x22\ -\x16\x98\x9es\x16V\xe0g#q\x0b$\xe7\x94Ku\ -_,\x8bO:\x1f$n\xbf\xf7\xdaZ(\xdf\xa0T\ -\x0f\x1a\xf2\xbe\x90\x08\x8f\xe2\x9d\xdd\xe8\x0c\x88vm\x94\ -\xcd]Nv\x14\x9c.\x06\xb8-\x18\xe6\xfbv\xb28\ -\xa8\xf2\x05\xe3\x8c=\xa6:):\xad\xce\x09\xf2\xde\xba\ -S\xfcw\xf7\xdf[8\xd1\xff\x1e\xda\xecc1U\x05\ -t46\x80\xa8\xeeT\xb3\xb6z@\x9f\xa32M+\ -\xb8W\x1c\xb4\xd2\xc5\x91?C,\x8e\xaa\x13:\xbb-\ -\xee_@\x01'T\x12\xc9&\xe0\xe2d?J\xa0n\ -%\x04\x8c'\x14\x85\x09%\x12\xd1\xcb\x83\x83\xe3(\xfa\ -\xff\x14\xc3\x00,\x9c\xe0C\x8d;\xe1\xbc\x80\xd30A\ -\x82\xc5b\x22BFq\x22c\xeca\xe7\x08JP2\ -\x09\x9cP\x10,\xb9<\x9c<\x04\xe7B\xc7\xee\xdf\xcb\ -\xf3\x0d\x8dd\x5c\xa9\xa3\x86F\xc2DR&:aY\ -@(j\x95^\xaf\x9bf(\xfbh\x8a*\x85cM\ -\xdbN\xda\x0eJ`i\x93\xb2N\x96+\xa8qk\xd5\ -C\x9b\xa9N\xbak\x0b)\x1e\xa6\xeeK\x22JG\x11\ -e!a\x8c\xc7\xf1$\xc0p\x1ddBp\xeeA=\ -s\x81\x91\x9c\xb4\x1f\x90L\xc4\xffx\x9e\xe2\xc9\xc7\xf0\ -\xa48\x14\x09\x221\xb0\x11\x03Y\xa5\xe4q\xe2\x052\ -\x14\x88a!&\x801c\x82$$\xfe\xae\x11=\xf4\ -\xbd?\x91\x0d\x1c\x7fp\xa3\x83kx\x96\xfd\x1b\xeag\ -f}\x91\xcc$'\x99y\xef\x05\x0c\x10\x12$\xa6\xd0\ -\xd2Bh\x1d\x82\x22\x82!_p\xe3\x81\xc6\xc6\xdb\xd4\ - \x8e\x8e\xab\xe4\xbb\xa6\xba.\xcbbU\x1f\xdd\xcb\xe1\ -D\xa5\x10\xa9\x04\x0e\x1e\xe1d\xef\x9d\x0as*\x12r\ -Dnw\x90\xcbP\xd2\x18\x1a\xf3\xb1\x0af\x05\x9c\x87\ -\x94\x10D\x93s9\xa1q\x10\x07\xe3\xd8\xf6\xde\xbf\xdc\ -\xa2\xcc\xe1\x99\xcf\xb7(\x1f\xeaFA\x1f\x02\xd1#.\ -\xb0$'\xe8Z\xb3\xae\xf2\xaf\x8f.\x09e\xc2\xe0\xbe\ -3\x8a.\x8a\x81\x81q|\x8a\xae\xeb\xbe\x18\xf8\x19\x8f\ -\xa0K\xa0\x7f\x00\x82\x14\x7f\x06]\xfc8l\xe7\x22\xcf\ -\xe9\x13\xb0\xa5P;B\xe2o\x85-\x9cV\x89\xe4\x98\ -\xb2SlY\xc80\xc6\x12\x8f0\xd7\xb5b\xceP<\ -J]J\xc2\x98\xc5|\x7f\xb7\x1d\xa3\xee#\x89+\xe5\ -\x93\x88K\xe1r\x85d\xfc\xad\xc0\xa5!\x13HPB\ -\xc7\x88\xcb\x05\xb4\xb1Ql\xdd\xb5\x01Tc\xc4u\xf7\ -\xb5\x18\x9a\xc6g\x88\xfb(di\xa2\xae3\xf1$d\ -\x19\xdc[\x93o\x87\xac@\x00\x1f\x15c\xc8J\xc21\ -\xc2#\xc8\xa2\x10\xc7Hr\x84\xc4\x08\xb4\x0cB\x827\ -@\xf69\xda\xa2G\x81KT2\x7f\x22m)\xa6R\ -~Up\xa7\xd1\xa2\xfff`q\xfa\x226x\x83\x19\ -|\xa9\x10\x22\x14'D\xd0I@x(\xe0T\x93\xf2\ -\xd2?zy\xc3\xf0\xf2\xd6\xbd\xf2\xb5+O\xdd\x97]\ -\xf0\xf7\x1fZ\xa1\x14G\ -\x00\x00\x0e\xb7\ +\x00\x15L';\x9b\xc3\xce\ +x\xa7-\xef\xaaT\xad\xf5\xb4\xaf\x09\x89w\x89\x14B\ +\xe9\x82S*'\x1eA\x84\x04\x08~\xd9U3\xa9\x02\ +\x7f\xd7\xf0\x99f&-\xd5\x0a\xdc\xccR\xb3^\x84\xb0\ +M\xa3\x87\x18\xcbj\xda.=\xf7o\xebz=\x8d\xa2\ +\xedv\x1b\xb6\xc2\xd0\xd8e\xe4\xe6Vk\x95\xea*j\ +\xe5\xbd\xf9\xed.\xdd\xfcV\x10VfcS\xbd\x80%\ +tX\xea:z\xfd\xe1u\xa7\x0cP\x98\xd5\xd9a\x99\ +\xc1\xee[\xda\xecK\x10B\xd1\xd0Y\x18=\xd1\xd2f\ +\x8b1K,\xa5\x8c\x10\x89\x00)\xb0\x08\xaa\xc7\xb2V\ +\x0fAY]\xf4\xa6\xa6i73\xb5Z\xd5\xf9\xbdN\ +\xcdje\xcaj\x07\xc7\xc08;\x18\xaf7\xb6h,\ +\xb24\xd2\x85^\xe9\xb2\xae\x22\xc8S\xe4_\x83\xfdl\ +\xa5k\x95\xa9Z\xb9\xb9\xbb|\xb7\x12L\x1a\x0b\xb0\x01\ +\x9f\xa6\xbf\xbc~\xb3\x1b\xc18M\xa7\x7f\x18{\xb7\x1f\ +\xc2\xe3\x0c\xd4\x8d\xd9\x00\x9f\xfc\xebN<\xcb\xd2)\xe0\ +\xbcR\xf5u\xbeRK\xed\xb0\xf8\x01\xfc\x9bE\x07\xc5\ +\xc0\xb8~\x5c\xeb\xc3\xa2\xbbe\xad\xde%l4\x9e,\ +]\xe5nR\xf4k\x9d\x17\xc5\xcfn\x13\xdf\x8b:?\ +\xa3\xbd\xa3\xfb0\xa2^\x1c\xb3\xa8\x0d\xb3\x19ezQ\ +\x1d\x10p#\x8c\xda\xe8W\xca\xdei\xdb\xfa\xd5q\xbe\ +\xaaMz\xe7\xac\x7f\xb4\xd6l\xf1;(<[\xfb\xad\ +\x99\xb19\x00=\xf7\xd5\xa66\x9d\xd0\xea\xc5_Pa\ +P\xb7=\xc9\x9fC\xc9\xd9\x15\xab\xfa\xb1\x00\x14\x0c\xd4\ +\xda\xa20\xdb\xe9}^\xe57\x85\xf6O\x1c\xcb\xab\xc6\ +\xb5\xb9_\xdb\x8d\xee\xd21[\xab\xfa\xf6\x00\xae\xdb\xc6\ +I\x18\x97\xc2?\x88A\xfa\xde\x03w&\xf0\xf1\xdey\ +\x1c\xbe\x05\xbc\xf9\x1a`\x12\xf2\x9ex'mM?y\ +\xbdE\xf6\x9e. %\x81\xdd\x14z\xaa\xefui\xb2\ +\xeceU[s\xa7\xa7\x17\xa8y\xf6\xc3\xa0\xe9KS\ +\xe8f\xeb\xba\xb7HmUY9\x92@\x03JU\xa1\ +/Q(\xaev\xd2B\xd5\xfar\xe7\xceU\x97nH\ +h\x93\xa7]r]\x06\x9bo]\xb7q\xed\x22s]\ +n\xb7\xc5\x1a\xa8\x92\x9a\xc2\xd8\xb9\x7f\xb1h\x9e\xfd\xde\ +7\xc6f\xda\xb6\xaa\xb8y\x06*\x03=\x07H\x07\xbd\ +n/67\x1fuZ\xd7\xa6\xd0\xe0\x9c#*n\xb3\ +\xb9\xb4\x10\xda\x98|\x93gzL\xd1\xe5\xd0\xb9\xd7m\ +4\xaa\xadnUf\xb6s\x9f\x1c+\xb7y\x09\x8a`\ +\xdf\xed\x09G\xfc\x8cE{\x02`\x84\xdb\x08\x1d+:\ +\xa0Z^T\xb7f\xeb\x22\x81\x8c\xaa\xa2\xd2\xc7\xab}\ +2\x06r\x04\xe9@\x92\xb1\xe4\xc4\x9d\x14\xce\x14,C\ +\xca\x92X\x9c*!:\x82\xc3D\xc4\x02\xd33n\xc2\ +|~.\x047=9\xa3[\xa9\x87|\x95\x7f\xd2\xd9\ +!S\x87}7\xd6By\x06\x85z\xd4\x90\xe6\xa5D\ +x\x0c\xe3\xf4V\xa7@\xa9\x1b\xa3l\xe6\xd2\xb0\xe3\xda\ +ly\x00k\xc90\xef\x1a\xc5\xb2_\xc3K\xc6\x19\xfb\ +\xf7\xea\xa3\xe8\xa4\xfa&\xc8{\xeb\x8e\xe0\xdf\xdd\x9f\xb7\ +p\x1c\xff\xdd39\x84`\xca\x12hgl\x00\xc1\xdc\ +\xabzc\xf5\x81)GU8-\xe1:\xd0o\x8c\xcb\ +\xa1+\xbd\xf8\x8fJ\x0fZ\xb4\xcd\x1f.\xa18\x13*\ +\x89d\x13\xf0nr\x18%P\x94\x12\x02\xc5\x13\x8a\xc2\ +\x84\x12\x89\xe8U\xff\x00\x18F\xfd_\xbc\xefa\x84\x13\ +(\x17:v?/\xcf\xf7)\x92r\xa5\x8e\ +\xfa\x14\x09\x13I\x99h\x85E\x0eq\xa8\xf5\xf4fS\ +\xd7}\xd9G\x93\x97S8\x9c\xb4m\xa5\xcd\xa0\x00J\ +\xd6S\xd6\xca2\x05el\xadzl2\xd4J\xf7\x85\ +?\xc5\xbd\x94}90\xe9\x18\x98,$\x8c\xf18\x9e\ +\x04\x18.pL\x08\xce=(Z.0\x92\x93\xe6\x0b\ +\x92\x89\xf8\x1f\xca!\x94|\x04J\x8aC\x91 \x12\x03\ +\x071PTJ\x1e'^ C\x81\x18\x16b\x02\xf0\ +2&HB\xe2\xef\x19\xcc\x81\xeb\xdd\x09k\xe0P\x83\ +\xcb\x18\xdc\x9a\xd3\xf4\xf3x\x9f\x99\xf3\x05R\x92\x1c\xa7\ +\xe4\xbd\x170\xc0F\x90\x98B\xf7\x0a\xa1S\x08\x8a\x08\ +\x86D\xc1\xbd\x05z\x18or\x828:*\x8c\xef\x99\ +\xde\xba(\xf2u5\xbcJ\xc3QI!L\x09\xcc\x1b\ +bd\x1f\x9c\x06s*\x122$\xb4;\x9de(i\ +\x0c\x1d\xf8H\x03s\x02\xceCJ\x08\xa2\xc9\x99\x5c\xd0\ +8\x88\x83QP;\xb7_\xee\xe0\xe5\xf0,\x16;x\ +\x87\xbaQ\xb4\xfb\x08tP\x0b,\xc9\x09\xac\xd6l\xca\ +\xeck\xc3JB\x990\xb8\xbf\x8c\xc1\x8ab\xa0]\x1c\ +\x9f\xc0\xea\xba,\x06N\xc6\xa7\xb0\x12\xe8\x15\x80\x1d\xc5\ +\xe7a\xc5O\x02u!\xb2\x8c>\x03T\x0a\xc5\x22$\ +\xfe6\xa0\xc2\x81\x94H\x8e);\x01\x95\x85\x0cc,\ +\xf1)W]\xc3\xe5\x0c\xc5cd\xa5$\x8cY\xcc\xbb\ +\xfb\xe9\x18Y\x9fFU)\x9fEU\x0a7&$\xe3\ +o\x83*\x0d\x99@\x82\x12:BU.\xa0]\x8d\x81\ +\xea.\x04\xa0\x19\xa1\xaa\xbb\x83\xc5\xd0\x1e\xceS\xf5)\ +\x90\xd2D\xdd\xa4\xe2Y\x902\xb8\x85&\xdf\x0aR\x81\ +\x008*F \x95\x84c\x84O!E!\x8e\x91\xe4\ +\x08\x89SL\x19D\x03\xefl\xec3DEOA\x95\ +\xa8d\xf1L\xa2RL\xa5\xfc\x9a\xa8\xce\xa2e\xfb\xf2\ +\xbe<~\x87\xea\xbd\x84\xf4^\xfaC\x84\xe2\x84\x08:\ +\x09\x08\x0f\x05\x9cXR^\xf9\xc3\xd7.\x0c\xaf]\xfb\ +\x175\xb7\xea\xcc\xfd\xd7\xe9\xfa\xc5?\xedQ\x0d\x1e\ +\x00\x00\x0e_\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata12\x22>\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - <\ -/dc:title>\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs10\x22 />\x0d\x0a \x0a\x0a <\ +metadata\x0a id\ +=\x22metadata12\x22>\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \ +\x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ bordercolor=\x22#6\ -66666\x22\x0d\x0a bor\ -deropacity=\x221\x22\x0d\x0a\ - objecttoler\ -ance=\x2210\x22\x0d\x0a \ -gridtolerance=\x221\ -0\x22\x0d\x0a guideto\ -lerance=\x2210\x22\x0d\x0a \ - inkscape:page\ -opacity=\x220\x22\x0d\x0a \ - inkscape:pages\ -hadow=\x222\x22\x0d\x0a \ -inkscape:window-\ -width=\x221860\x22\x0d\x0a \ - inkscape:wind\ -ow-height=\x221017\x22\ -\x0d\x0a id=\x22named\ -view8\x22\x0d\x0a sho\ -wgrid=\x22false\x22\x0d\x0a \ - inkscape:zoo\ -m=\x229.8333335\x22\x0d\x0a \ - inkscape:cx=\ -\x2230.969878\x22\x0d\x0a \ - inkscape:cy=\x223\ -4.947767\x22\x0d\x0a \ -inkscape:window-\ -x=\x2260\x22\x0d\x0a ink\ -scape:window-y=\x22\ -26\x22\x0d\x0a inksca\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1860\x22\x0a inksc\ +ape:window-heigh\ +t=\x221017\x22\x0a id\ +=\x22namedview8\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x229.833333\ +5\x22\x0a inkscape\ +:cx=\x2230.969878\x22\x0a\ + inkscape:cy\ +=\x2234.947767\x22\x0a \ + inkscape:windo\ +w-x=\x2260\x22\x0a in\ +kscape:window-y=\ +\x2226\x22\x0a inksca\ pe:window-maximi\ -zed=\x221\x22\x0d\x0a in\ -kscape:current-l\ -ayer=\x22g897\x22\x0d\x0a \ - inkscape:docum\ -ent-rotation=\x220\x22\ - />\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \x0a\ + \x0a \x0a \ + \x0a \ +\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a <\ -path\x0d\x0a sty\ -le=\x22fill:#ffffff\ -;stroke:#feffff;\ -stroke-width:1.6\ -1445;stroke-line\ -cap:round;stroke\ --linejoin:round;\ -stroke-miterlimi\ -t:4;stroke-dasha\ -rray:none;stroke\ --opacity:1;fill-\ -opacity:1\x22\x0d\x0a \ - d=\x22m 28.13427\ -5,14.535605 2.90\ -0459,2.70152 -0.\ -145932,-5.618557\ - z\x22\x0d\x0a id=\x22\ -path884\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0c\xe4\ +c\x22 />\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0c\xd4\ \x00\ -\x00\x80\xb9x\xda\xed]\xdb\x8e\xdb\xc6\x19\xbe\x0f\x90w\ -`\xe5\x8b\xd8\xa8H\xcd\xf9 \xef:h\x12\xa4\x08\x90\ -\x00E\x9b\xa2\xe9U\xc1\x95\xa8]\xc6ZqAq\xbd\ -^\xbfU_\xa4\xcf\xd4ox\xe6\x8a\x1b\xf3\x82r\x91\ -z\x14\x18\x11\xff9\xfd\xf3\xfd\x87\x99\x8f\xa4v.\xbe\ -~\x7f\xbb\x0f\xde%\xf91\xcd\x0e\x97\x0b\x1a\x91E\x90\ -\x1c6\xd96=\x5c_.\xfe\xfe\xf3\xf7\xa1Y\x04\xc7\ -\x22>l\xe3}vH.\x17\x87l\xf1\xf5\x9b/\xbf\ -\xb8\xf8C\x18\x06\xdf\xe6I\x5c$\xdb\xe0!-n\x82\ -\x1f\x0eo\x8f\x9b\xf8.\x09^\xde\x14\xc5\xddz\xb5z\ -xx\x88\xd2Z\x18e\xf9\xf5\xeaU\x10\x86h\x8a\xc6\ -\xc7w\xd7_~\x11\x04\x01\xc6>\x1c\xd7\xdb\xcd\xe5\xa2\ -nsw\x9f\xef\xcb\xba\xdb\xcd*\xd9'\xb7\xc9\xa18\ -\xaehDW\x8b^\xfdMW\x7f\xe34H\xdf%\x9b\ -\xec\xf66;\x1c\xcb\xa6\x87\xe3\x8b~\xed|\xbbk\xab\ -;\x95\x1exY\x8bZkW\x84\xad\x18\x0bQ#<\ ->\x1e\x8a\xf8}\xf8\xa4-\xf4\x1ck\xcb\x08!+\x94\ -\xf5\xaaN\xac\xb6>\x02\xd9;\xfck\xeb7\x82\xe8\x98\ -\xdd\xe7\x9bd\x87\x86ItH\x8a\xd5w?\x7f\xd7\x16\ -\x86$\xda\x16\xdb~?\x0d\xb0\x83q\x07h\x1f\xe2\xdb\ -\xe4x\x17o\x92\xe3\xaa\x91W\x1d\xf4\x8cM+I\xba\ -\xbd\x5c@OV]=\xa4\xdb\xe2\x06\xa5\xb6\xbe\xbeI\ -\xd2\xeb\x9b\xa2'x\x97&\x0f\xdfd\xef/\x17$ \ -\x01\xa4A[\xd2\xe8\xbb\xdef\x1b7\xfe\xe5\xe2\xae\xd8\ -\xee\xfeU\x1c\xa3\x16\x86F\x97u\xab\x06\x89,\x8bd\ -\xf0\x92\x11E\x92\x0d\xdd\xd9\xdd2`\x84\x91\x90\x88\x90\ -\x98W\x8b7\xae\xdd\xc5mR\xc4\xdb\xb8\x88\xcbN*\ -\x95\x1b\x91\xa9\xaa\xa0\x12,\xb9\xfe\xebw\xdf\xd7\x97\x10\ -l6\xeb\x7fd\xf9\xdb\xe6\x1a\x1fW%\xbe\xca\xee1\ -\xa1\xc5\x9bN~\xb1\xdd\xac\x81\xfdm\x5c\xbcIo\xe3\ -\xeb\xc4\xd9\xed\x8f\x80\xfab\xd5\x15\x0ck\x17\x8fwI\ -\xaf\xdf\xaa\xe7<\xa9\xcc8\xea\xd0\xdb\xcdm\xeaZ\xad\ -\xfeV\xa4\xfb\xfd\x0fn\x98E\xb0z\xdamZ\xec\x93\ -\x9e\xf4bU\xcf\xa1\x99\xe3\xaa?\xc9\x8bU\x03Bu\ -\xb9Mv\xc7\x1eB\xeeR\xb5\xe8\xdc\xc6\xf9\xdb$o\ -\x87k-\x91\x1e\x8fE\xb6y{\xb9(\xf2\xfb\xdaG\ -\xdc\xe7X<\xee1\x91\x0c\x86\xda\xed\xb3\x87\xf5\xbb\xf4\ -\x98^\xed{\x15\xdc\x08\x7f\xca\xf3\xec\x81\xfe\x88\x0c\x91\ -\x17]I\x9e\xec~q\x86%\x03\xd1?\x9f\x88\xb2<\ -E|_.\xe2\xfb\x22[\x9c\xaaU*u2F\x07\ -\xcc]\x5c\xdc\xf4\x0cP\xe4\xf1\xe1\xe8,\x05_\xde\xc4\ -\xfb\xe4%\x89\xcc\xabJ\xbaG\x96zI\xe1dK\xf2\ -j\xd1kR\xcfp\x07k\x84\xf9\xfd>Y'\xef\x92\ -C\xb6\xdd\xbe>\x16y\xf66Y\xbf \xe5\xa7\xbe\x0c\ -\xcb\xc0X#E\xde\x15\xfd^\xa0\xe1O\x01&\xb6\xc4\ -\xbf\xe0\xc7@\xe2[(\xcb\xafa5f+\xae\xa4M\ -\xd5\x0fA\xbf\x177Q7#!\xad\xe9\xbc\x02\xf6-\ -\x8dV\x1b\xdb\xd9\xb3\xfa\xdaF\x9a\x0b\xb3\xad\x8b\xc8\xba\ -\xaf;x\xd5&\xdbg\xf9\xe5\xe2\xc5\xae\xfc4\xa3\x5c\ -e\xf96\xc9\x9b2U~\x86e\x19\xd2\x05<\x14\xa1\ -\xde\xc8\xb3\xab_\x93MQd\xfb\x048:\xb7\xa6\xad\ -\xfd\xaes\xc01Zp\x9fn\x93\xd1\x92\xd6\xb4N\xc9\ -v\xb0\xf1\xe2\xe3M\xbc\xcd\x1e.\x17\xec\xa4\xf4!=\ -\xa0$l\xd2\x94\x11\xe6\xb9*m\xe6\x22\xb4\xab\x03\x9c\ -[\xccD#=\xded\x0fnBp\x86x\x7fLN\ -:\xfc\x90e\xf0+\x161\xca\xb9\xa5\xf2\xa4|\x83l\ -\x182\x12)I\xb4\x12\xa7\xc5\x8fe\xfa\x8c\xb4\xa5\x5c\ -=\xa7-\xba\xd0\xcf\xce\x16\x1d0\xf9\x5c\xe1m\xfc>\ -\xbdM?$\xdb\x9e\xe5\xba\xb1\xef\xf3\x1ca\x16\xee\xe3\ -\xc7$\xef\xe7\xf9~\xa8\x1d\xe2\xbb\xf0\xea\xca\xe5\xf42\ -\x07\xd4\xfewq]W\x8c\xf34F\x07W\xc9\xfer\ -\xf1\x9f\x7f\x9f4oC/\xdc`\xa4$/\xa7\x12\x11\ -E\x8d\xe5\xf4\xe3\xb51\xb7\x10k\x91V\xd6\xf0\xce\x22\ -ulfP\xbd\xfc\xbe>\xb8,\xbc\x7f]J\x1eJ\ -\xcb\x0eDG\x00\xb0f\x5cGF\x08a\x98`w\xef\ -_\xef\xd3CR{\x01\xe2\x96\xc9\xaa\xe6.\xbeM\xf7\ -\x8f\xeb#\xd4\x08\x8fI\x9e\xee^\xef\x93\xc2)\xe2\x96\ -K\xec{\xd6\x04M\x1f\x10\x11\x03\x81\xcb\x12.#l\ -E\x1c\x97\x17a\xed\xc1k\xda\xe4\x8b\x03vH\xc3d\ -!#+\x14\xa5\x9c\xd2\xbe\xff\x15\xc9\xfbBH&B\ -\xdb\xe6\xe6A2sk[@\x15\x89\xa8PF-\xa9\ -\xe4\x91t\x8e\x17\x84<\x22\x96Z\xbd\x0c\x05$\x96\xc8\ -`\x13\x84n\xc6\xc6\xe8\xa5\x8e\xb8\xe6\xd4 \xeb\xa0\xba\ -\xd4T,m\xc4\xb4\xb4\x02\x12\x1d)Bd'\xe0\x91\ -!R\xd2%\x09B\x15\x19\xab\x85]b\x8f\xa1)\x97\ -\xae6\x89\x18CW.\x8d1\xce\xa4i\xc65\xdd\xb8\ -\xed\xa8!\x85\x88\x18\xc9\xfa\xed\x18\x8d\x94\xe0F\x06\xfb\ -n\xa8\x90:\x1b\x1be\xa1s\x0d\xcb2\xb4nb\xda\ -\x04(\x13TI\x8eZ6\xb2\xda@G\xf4K83\ -\x0c\xbdA\x0dJ%U\x01\x8b\x14U\xcc:5\xac\x15\ -\x9a\x8b\xa0\xee\xa0l\xc7\x94\x14\x84Cd\xd1\x1e\x9a1\ -\xf4\xc0\x18\xb3\x1c\xaaE\x960\xad +{0%\x94\ -\x9cY\xd7\xbd\x88\xb4TNR\xcfv\x19\x1a\x14\x09@\ -\x18\x00\x13\x8b\xfe\x8d\x03G\xd4\xb5Z(0\x1dc\xd1\ -\x7f\x80\x1e\x88\xe0\x5c:\x91R\xc2R\x1a`\x1ch%\ -\xe4\x12jiA\x89-k\x95\xd0-\x99\x8a\x04!\x9a\ -\xa3\xfb\x0a\x12\xbd\x14\xe8\x1e\x1dT#:+\xf0%\x00\ -a\x9a\xe8\x0e\xbf\xd6\xbc\x0dx5f\x02K\x8a5\x88\ -6\x0b\x95\x97\xcaF\x9c*!\x82o\x03\xeb\xa6\xaf\x88\ -\xb5Ki0k\x0e\x83\x04\xc6Y\xdb\xa5\xa8\xa5\x84K\ -(l\xb9\x02\x03\xa5\xa5\xa1Fv\x22\xad05\xad\x15\ -s\x22\x83\x8d2\x0c\xaeL$\xb5\xd2\xdc.\x15\xc0\x14\ -\x9c)\x1a\xe0\x9b\xd2\x96\xc1y\xdaa%&'\x94\x82\ -7b\xba\xc2\x22\xf1\x06\x92EF[B\xf8\xd2`r\ -\x00]\xcb@\x00\x16\xa3\x09\x93Kc\x22\x8aL\x81i\ -\x08\x86\xf9p#\xe0\xf0\xc49\xaa\xe04\xe0\xe8\x97Q\ -\xa3\xcc\x12V\x86\x02\xdaPWO\xc1\x19,\xe2B\xc1\ -\xad%W\xf0\xa8\x0a.7n\xe5\x97\x81\x8e\x1c\x8c0\ -\x0a\x855\xa9\xf3\x0b,\xc6FpEX'\x82\x16\xe8\ -\x89\x09\xc4\x01\x052pNi;\x87`\x88#\xcc\x85\ -\x88e\xeb\xdahA\xb8!\xd6\xf9\x88D\xc3\xa0\xee\x8a\ -\xc9\xd6\x03i\x00\xbf\xd3\x5c\x22\x05\xc1\xdd\xa04\x00T\ -\xb5:b\xd9\x945\xe3\xa9\xa5\xcbXT3\x1d\xd4~\ -!:\x89\x84\xd3\x11\xc1\x9cv\xf0'@M\x97\xb5\xaf\ -)\xec\xb9\x11v\xbc\x1c\x17N*\x10\x81\xd8P\xdc\xc2\ -;\x0c\x1cN;/\x86\xfapAQ\xe6\x08\x19ib\ -\x98^\xc2O\x8c\xd2\xb4\xf4<\xe8\xca\xe1\xff\x14n\xcf\ -\x98\x0bid\x09\xca\x84q.\x8a\xe9R\x85\xb8Dv\ -P\xd2*\xd8\xc4\xb9\x04\xc7D\x5cv\xe1X\xcb\xa0K\ -\x15&\xaalh\xb8\x81V\x9d\xa8NT\xd6e\x98:\ -X\xa1j\x15s\xdcu\xebz\x93\xba\xcb\x00mdb\ -B\xadFu/.\xef`\x92\x88\x22\x194!\xb6\x0c\ -U\xb9\xdcr\x01,\xca\xe8\x96\x08\xef\xca\xfa\xca\x04m\ -VC\x1a\xd1B\x01\xf2\x16C\xde\x17VQU\xea\x09\ -\x1c5\xe1\x04\xfe!\x22f(#\xb4\xcdA\xf0\xa2\xb6\ -\xc5\x87\x93\x1d\xf23k\xd4;\xb7j\x1e\x8a\x8f\xae[\ -E\x9e\x14\x9b\x9b\x81\xac^\xa1\xbe\xfa9\xf9%\xf8\xf3\ -c\x9e\x04\x7f\xc1\x8eh\xbf\x8f\x83\x9f\xb0L|\xf5:\ -l\xd6\xd2\xb0\xea\xe1.\xd9\xa4\xbbt\x03&\x9c\x1d\x9e\ -m\xf4\xf1\xf5\xeb\xd95\xab\xdb\x9dZ\xd2nN/V\ -\xd7\xc3M\x82\xabsM\x81e\xd3\xac\xb7#\x07}\xca\ -\xd3\xf7\xd8\x92\xc3&\x9cP\x09\x9fv\xffu\x97!3\ -\x02\xde\xce\xca\xc4ZZ\x82\x89W\x1d\xaf\xc3&\xb4\xd5\ -\xc5\xed\xa5$\xdc\x06-T\xa7!\xb6\x1c\xf0|\x97!\ -\x94\xe9\xa4\xed\x0eP\xc1E\x88P\xba+j\xf6\x8fu\ -\x89\x1dN\xd6\x8dh\xa88eC-f\x0d\x9eWp\ -\xb8g\xf6\x03M\xe9\x00^\xe7\xd3V\xc2\xabD#w\ -\xbb\x14Xs\x9dg\xf7\x87m_\xf8k\x96\x1e\xd6W\ - %\xfbF\x0a\x02\x99\xe4{l\xf6\x8au\xdb|\x1b\ -c\xaf\x9c\xe7\xf1\xe3`\xff\xe1\xa4\xd9nwL\x8au\ -K`:\x05\xef\xe2\x14\x8eSn\xfa\xd7Ua\xe0\xa6\ -\x10Tl\xe3\xd8# c\xd0\x0b`l\x07\xd0\xb3\x06\ -\xfb\xf9\xa0\x0f\xb9\x07\x7f\x0c|%\xa81\x03\xf0\xc5\x19\ -\xc0W\x1e\xfciIGU\xe0\xdb\x19\xb1\xd7\x1e\xfb1\ -\xec\xb5\x94l\x98u\xcc\xfc\xd8K\x8f\xfd4\xbf\xa7d\ -~\xf0\xb9G\x7f*\xfa\xcd\x82;g\xcag\x1e\xfd\x89\ -\xe8\x8b\xf9\xd1\xb7\x1e\xfciI\x9f\xaa3\x80\x1fR\x0f\ -\xff\x09\xfc\xdc\x82\xa5\xab\xf3\x93\xac\xd0'\x9eq\xf0\x85\ -\xf8\x04,\xcbo7\xc7\xd1g\xd6~\x0a\x9e\x15\x12\x0f\ -\xff\xb4\xcc\xd3\xe4}6'\xd5\xf2\xeb\xee8\xfc\x82r\ ->\xc6\xb5fE_\xfa{\x9e\xfc\x85\xd8\ -\x9a\xe7\xf1\xafK?\x03\xfc\xd9\xfc\xf8\x83\x7f)\x8f\xff\ -D\xfc\xeb\xd5W\xcd\xbb\xf9\x97\x1e\xffi\xe9\x9f\xaa\xf9\ -\xfd\xdf\x91/o\x80\x13\x03H\x1di\xab\x05\xa3g\xa7\ -^\xcc?\x03\x18\x87_J#\xd5'\xe0^\xda\xff\xf8\ -k\xd4\x00\x16\xdb\x1dn?\x01\xfb\x22\x9e\x7fMM@\ -\xf5\x020\xeb\x0fO\xddS0\x7f\x03\xfa\xd4\x00&\x22\ -L0i\xc6\x18\xd8\xac\x06pO\xc1\xfc\x8b\x88\x13#\ -\xa0\xe1`j\xee\xa7`\xd6o\x82&Z\x80\xcdo\x81\ -\xf2)\x18\xf7\x16\x98h\x81\xb3\xf005a\x1f\xf4\xf9\ -\x19`t\x158\x17\x11\x9b\xc2\x05>;\x13p\x1dq\ -\xf7\xe6\xe10\x06\x5c`\x10\xae\xc9\xac\xaf\xa3\xf8_#\ -\x8d\xa2/\xe5\xe0\xc57\xc7\xc4j\xf8\xe9\xacL\xcc\xff\ -\xe5\xab1\xf8%%v\x88\xbe8\x03\xfa\xca\xdf\x86\x98\ -\x9azT\x0d\xbf\x9c\x95\x84\xf9\x17\x11\xc7\xe0WLp\ -\xfd\x84\x82\x9d\x01~\xe9_\x82\x9b\xea\xfd\x94\xd4\xf8\xcf\ -K\xc0\xfc\xc6g*\xfel~\xfc\x15\xf3\xe4k2\xfe\ -\xf5\xea;/\xf9\xfa\xf83`C\x92\xdf\x80\xbf.\xfd\ -\xff\xcf\xfeT\x9d\x03~:a\xf9\xfd\xec\x0c@uD\ -$>\xfc\xec\xc4\x8b\xf9?D0\x0e?\xe5O\xff\xfe\ -\xdey\x98\x97\xf6\x8f`F\x0d@\x95\xb1\x9a}\x02\xf2\ -E|\x04LM@\xcd\x02\xa0g~\x06\xe6\x7f\x884\ -f\x00f\x18\xb7t\x8c\x80\xcdj\x00\xf7\x0c\xccS\xb0\ -\x89\x11\xd0P\xb0\xd9\x9f\x81y\x120\xd5\x02l~\x0b\ -\x94\xcf\xc0\xa8\xb7\xc0D\x0b\x9c\x85\x86M\xb9\x0b\xfa9\ -\xf2\x80\x91U\xe0\x5cD\x8cMx\x12\x7fev\xbfa\ -\x82\xba\xf4wk\x82\xf1C\xc5\x04\x95\xe4\xf9C\xc5d\ -D\x88\x96\xccVg\x8auW\xa1P$\x12\x82)w\ -\xce$\x8d$Q\xe8\xa7;S\xecz`\x06\x8c!z\ -\xfe\xdf\x1b\xa5w\x820\xbaV\x9a\x19^\x1eIi\x8c\ -f\xd6\xbe\xea9\xcf\xf5X\xf3\xee\xe43F\xe1I\xaa\ -=\xf9\xac\xb9\xb4\xeed9,\xedj\xc9`)-\x94\ -\x14\xaf\x16OtS\xd4\xfd\xa9\xde\xee\xe8\xe3\x81\x9b\x0e\ -\xce1^\xbf\xb0\xdcn\xe3M\xeb\x11\x83\xcb\xda#H\ -d\xb94\x00\x84M\xf3\x88\x81t\xbaG\x8c[\xbf\xb6\ -xe\xfe\xaa\xe6\xd3s\x90\xdd\xf4\x84\xb4\x83\xa7\xf2m\ -\x1cqw\xf0\xa1\xe1\xfd\xf7\xb3\xbb\xf0s\x87*\x12\xad\ -\xed\xa0!\x22\x96G\x9as.i_\x5c?b\x22F\ -\xd0\x81x\x1a\xd9\xe2\xcel\xc4\ -\xa8\x18\x90\xbf>\xee\x9a+\xab\xfa\x8fJ+\xc6\x08\x1e\ -O,#r\x04xCx\xff-\x82\x06x\x83l\xc5\ -\xa9\xec\x9f\x81}\xdd\xcb\x0d\x17\xeedv\xfc\xff\xbf)\ - \xadJ\ -\x00\x00\x06\x01\ +\x00~Rx\xda\xed\x9d[\x8f\xdb\xc6\x15\xc7\xdf\xfd)\ +X\xf9!6*Rs\xbf\xc8\xbb\x0e\xda\x04)\x02$\ +@\xd1\xa6h\xfaTp%j\x97\xb1V\x5c\x90\x5c\xaf\ +\xd7\xdf\xaa_\xa4\x9f\xa9\xff\xe1]\x97\x8d\xf8@\xa1H\ +<2\x0c\x88gng~s\xe6\xcc\x1c\x92\xda\xb9\xfa\ +\xfa\xd3\xfd6\xf8\x98\xe4E\x9a\xed\xaeg4\x22\xb3 \ +\xd9\xad\xb2u\xba\xbb\xbd\x9e\xfd\xe3\xa7\xefB3\x0b\x8a\ +2\xde\xad\xe3m\xb6K\xaeg\xbbl\xf6\xf5\xfbWW\ +\x7f\x08\xc3\xe0\x9b<\x89\xcbd\x1d<\xa5\xe5]\xf0\xfd\ +\xeeC\xb1\x8a\x1f\x92\xe0\xcd]Y>,\x17\x8b\xa7\xa7\ +\xa7(m\x84Q\x96\xdf.\xde\x06a\xf8\xfe\xd5\xab\xab\ +\xe2\xe3\xed\xab \x08\xd0\xee\xaeX\xaeW\xd7\xb3\xa6\xc0\ +\xc3c\xbe\xad2\xaeW\x8bd\x9b\xdc'\xbb\xb2X\xd0\ +\x88.f}\xf6U\x9f}\xe5ZO?&\xab\xec\xfe\ +>\xdb\x15U\xc9]\xf1z\x909_o\xba\xdcN\x9b\ +'^e\xa2\xd6\xda\x05a\x0b\xc6B\xe4\x08\x8b\xe7]\ +\x19\x7f\x0a\xf7\x8bB\xc7SE\x19!d\x81\xb4>\xe7\ +\xb8\x5c\xcb\x02@\x1f\xf0\xbf\xcb\xde\x0a\xa2\x22{\xccW\ +\xc9\x06\xe5\x92h\x97\x94\x8bo\x7f\xfa\xb6K\x0cI\xb4\ +.\xd7\x83jZ\x9e{\xad\xeeA\xde\xc5\xf7I\xf1\x10\ +\xaf\x92b\xd1\xca\xab\xf2\x83\x11\xa6\x95 ]_\xcf\xa0\ +#\xab.\x9e\xd2uy\x874[_\xde%\xe9\xed]\ +\xd9_\x7fL\x93\xa7?g\x9f\xaeg$ \x01\x84A\ +\x9b\xd0*\xba\x5cg+\xd7\xf2\xf5\xec\xa1\x5co\xfe]\ +\x16Q\xdb\xfdV\x89e\xa7\x00\x89,\x8bd\xf0\x86\x11\ +E\x92\x15\xdd\xd8\xcd<`\x84\x91\x90\x88\x90\x98\xb7\xb3\ +\xf7(vu\x9f\x94\xf1:.cWE\xadk+1\ +U\x06d\xc1\xd8-\xff\xf6\xedw\xf5\x15\xaeW\xab\xe5\ +?\xb3\xfcCs\x89\x8f\xcb\x10\xdfd\x8f\xe8\xc8\xec}\ +'\xbeZ\xaf\x96\xa0}\x1f\x97\xef\xd3\xfb\xf86q\x03\ +\xf5G\xd0\xbdZ\xf4\x09{\x99\xcb\xe7\x87\xa4\xaf\xb4\xae\ +6O\xeaa;i\xbb\xeb\xd5}\xea\x0a-\xfe^\xa6\ +\xdb\xed\xf7\xae\x91Y\xb08\xa84-\xb7I/\xbcZ\ +4\xda7}[\x0c:w\xb5h\xbb^]\xad\x93M\ +\xd1SqW\xaa%r\x1f\xe7\x1f\x92\xbcm\xa7#\x9f\ +\x16E\x99\xad>\x5c\xcf\xca\xfc\xb16\x06\xf7)\xca\xe7\ +-\xf4\xcf0.\x9bm\xf6\xb4\xfc\x98\x16\xe9\xcd\xb6O\ +w\xb5\xff)\xcf\xb3'\xfa\x03\xa6\x7f^v\x09y\xb2\ +\xf9\xd9\x8d\x22\x19J\xfe\xb5/\xc9\xf2\x14\xb3\xf7z\x16\ +?\x96\xd9\xecH\xa1J\x9d\xa3\xfa;\x16\x0fqy\xd7\ +\x03/\xf3xW\xb8q\x81\xb9\xae\xe2m\xf2\x86D\xe6\ +m-\xdd\xc2\xfb\xbc\xa10\xa69y;\xebK4=\ +\xdb\x00~\x98?n\x93e\xf21\xd9e\xeb\xf5\xbb\xa2\ +\xcc\xb3\x0f\xc9\xf25\xa9>\xcdeX\xd9\xfe\x12\x8e\xef\ +\xa1\x1cT\x02\xed~\x0c\xd0\xa59\xfe\x07?\x04\x12\xdf\ +BY}\x0d\xeb\x16;q-m\xb3~\x0e\x06\x95\xb8\ +>\xba\xde\x08iMg\x02\x18\xcfj\x9c\xea\xb1u\x03\ +X}\xeb\xa6\x92\x9bGk7\xe3\xeaz\x1e`>\xab\ +l\x9b\xe5\xd7\xb3\xd7\x9b\xea\xd34p\x93\xe5\xeb$o\ +\x93T\xf5\xd9K\xca\xe0\x06`\x88\x98\xc6\x8d8\xbb\xf9\ +%Y\x95e\xb6M@\xcf\x19/mG\xec6\x07\x84\ +S\xf2\xc7t\x9d\x9cJ\xe8\xc6\xd2\xa9\xd75t2\xb5\ +\xb8\x8b\xd7\xd9\xd3\xf5\x8c\x1d&>\xa5;$\x84\xad\xef\ +1\xc2\xbc\x90\xa3sG\x84vY@\xb6\x03%\x1aa\ +q\x97=\xb9\x9e`\xec\xe3m\x91\x1c\xd6\xf69\xcb`\ +D,b\x94sK\xe5a\xf2\x0a\xfe-d$R\x92\ +h%\x8eR\x9f+w\x18iK\xb9zAOT\xa0\ +_\xea%\x8a3\xf9B\xda}\xfc)\xbdO?'\xeb\ +~\xa8\xfav\x1f\xf3\x1cS)\xdc\xc6\xcfI>\xf0\xd8\ +\xc3\xe9\xb4\x8b\x1f\xc2\x9b\x1b\xe7\x9f\xab\x19^\x1b\xda\xd5\ +m\x9d-\xce\xd3\x18\xa5o\x92\xed\xf5\xec\xbf\xff9,\ +\xdb\xcd\xaep\x85V\x92\xbc\xeaCD\x145\x96\xd3\xb3\ +\x99\xd1\xa9\x10\xeb\x89V\xd6\xf0n\x10\x9a\xd9\x97A\xe9\ +\xea\xfbr\xe7\x9c\xea\xf6]%y\xaa\x86rOT\xa0\ +\xe7K\xc6ud\x84\x10\x86\x09\xf6\xf0\xe9\xdd6\xdd%\ +\xcd\xb0cf2Y\xe7\xdc\xc4\xf7\xe9\xf6yY@\x8b\ +\xb0H\xf2t\xf3n\x9b\x94N\x0f\xb7\xe0a\xbf\xb2$\ +(\xfa\x04\xdb\xdf\x138?\xe0\xe6\xfcZ\xc4qu\x11\ +6\xf6\xba\xa4\xadG\xd8ag\xb3\xef\x0edd\x85\xa2\ +\x94S:0\xb82\xf9T\x0a\xc9Dh[\x8f;t\ +Un\x8d\x0a\xa8\x22\x11\x15\xca\xa89\x95<\x92\xce\xd2\ +\x82\x90G\xc4R\xab\xe7\xa1\x80\xc4\x12\x19\xac\x82\xd0u\ +\xd7\x18=\xd7\x11\xd7\x9c\x1ax\x15d\x97\x9a\x8a\xb9\x8d\ +\x98\x96V@\xa2#E\x88\xec\x05<2DJ:'\ +A\xa8\x22c\xb5\xb0s\xec\x104\xe5\xd2\xe5&\x11c\ +\xa8\xca\xb9)\xc6\x994m\xbb\xa6o\xb7k5\xa4\x10\ +\x11#\xd9\xb0\x1c\xa3\x91\x12\xdc\xc8`\xdb7\x15R7\ +\xbeFY\xe8\xdc0\x99\x87\xd6uL\x9b\x00i\x82*\ +\xc9\x91\xcbFV\x1b\xe8\x88z\x09g\x86\xa16\xa8A\ +\xa9\xa4*`\x91\xa2\x8aY\xa7\x86\xb5Bs\x114\x15\ +T\xe5\x98\x92\x82p\x88,\xcaC3\x86\x1a\x18c\x96\ +C\xb5\xc8\x12\xa6\x15dU\x0d\xa6B\xc9\x99u\xd5\x8b\ +HK\xe5$Mo\xe7\xa1A\x92\x00\xc2\x00L,\xea\ +7\x0e\x8ehru(\xd0\x1dcQ\x7f\x80\x1a\x88\xe0\ +\x5c:\x91R\xc2R\x1a\xa0\x1dh%\xe4\x1cjiA\ +\x89\xadrU\xe8\xe6LE\x82\x10\xcdQ}\x8dD\xcf\ +\x05\xaaG\x05u\x8bn\x14\xf8\x1c@\x98&\xba\xe7\xd7\ +\x0do\x0b\xafa&\xb0dX\x83\x89f\xa1\xf2\x5c\xd9\ +\x88S%D\xf0M`]\xf7\x15\xb1v.\x0dz\xcd\ +1 \x81q\xa3\xed\x9c\xd2\x5c\xc2$\x146N\x81\x81\ +\xd2\xd2P#{\x91V\xe8\x9a\xd6\x8a9\x91\xc1\x1e\x17\ +\x03\xaeL$\xb5\xd2\xdc\xce\x15`\x0a\xce\x14\x0d\xf0M\ +i\xcb`<]\xb3\x12\x9d\x13J\xc1\x1a\xd1]a\xe1\ +f\x03\xc9\x22\xa3-!|n\xd09@\xd72\x10\xc0\ +b4arnLD\xe1$\xd0\x0d\xc1\xd0\x1fn\x04\ +\x0c\x9e8C\x15\x9c\x06\x1c\xf52j\x94\x99c\x94\xa1\ +\x806\xd4\xe5S0\x06\x8by\xa1`\xd6\x92+XT\ +\x8d\xcb\xb5[\xdbe\xa0#\x87\x11\x83B1\x9a\xd4\xd9\ +\x05\x16[#\xb8\x22\xac\x17A\x0b\xd4\xc4\x04\xe6\x01\x05\ +\x19\x18\xa7\xb4\xbdA0\xcc#\xf4\x85\x88yg\xda(\ +A\xb8!\xd6\xd9\x88D\xc1\xa0\xa9\x8a\xc9\xce\x02i\x00\ +\xbb\xd3\x5c\xc2\xff\xc0\xdc\xa04\x00\xaaF\x1d1o\xd3\ +\xda\xf6\xd4\xdc\xb9+\xaa\x99\x0e\x1a\xbb\x10\xbdD\xc2\xe8\ +\x88`N;\xd8\x13P\xd3yck\x0a\xfbfL;\ +^\xb5\x0b#\x15\x98\x81\xd80\xdc\xc3:\x0c\x0cN;\ ++\x86\xfa0AQ\xf9\x08\x19ib\x98\x9e\xc3N\x8c\ +\xd2\xb4\xb2<\xe8\xcaa\xff\x14f\xcf\x98\x9b\xd2\xf0\x12\ +\x94\x09\xe3L\x14\xdd\xa5\x0a\xf3\x12\xdeAI\xab0&\ +\xce$8:\xe2\xbc\x0b\xc7\xf2\x05]\xeai\xa2\xaa\x82\ +\x86\x1bh\xd5\x8b\x1aGe\x9d\x87i&+T\xad\xe7\ +\x1cw\xd5\xba\xda\xa4\xee=@73\xd1\xa1N\xa3\xa6\ +\x16\xe7w\xd0I\xcc\x22\x19\xb4Sl\x1e\xaaj\x81\xe5\ +\x02,\xaa\xd9-1\xbd\xeb\xd1W&\xe8\xbc\x1a\xdc\x88\ +\x16\x0a\xc8;\x86|(\xacgU\xa5'8j\xc2\x09\ +\xecCD\xccPFh\xe7\x83`E]\x89\xcf\x87\xfb\ +\xde\x17\xd6\xa7\x8fn\xb9\xdc\x95g\xd7\xac2O\xca\xd5\ +\xdd\x9e\xacY\x9d\xbe\xfa)\xf99\xf8\xcbs\x9e\x04\x7f\ +\xc5\xe6g\xbb\x8d\x83\x1f\xb1H|\xf5.l\x97\xd1\xb0\ +\xae\xe1!Y\xa5\x9bt\x85\x106\xdb\xbdX\xe8\xfc\xda\ +\xf5\xd2z\xd5o>-i\xf7\x9eW\x8b\xdb\xe1\xce\xc0\ +e\xb8\xa5\xc0\xd8\x14\x19\xec\xb4\x11\x04\xe5\xe9'l\xb5\ +1\x1a\x9cP\x09kv\xff\xfa\xcb\x90\x19\x01;g\x95\ +K\xad\xc6\x80\x89\xb7]d\x86]f\xab\x85\xdb6I\ +\x98\x0b\xf2\xabN5l2`\xf0\xce1(\xd3\x09\xbb\ +]\x9e\x82a\x10\xa1t\x97\xd2\xee\x10\x9b\x04\xbb\xd7E\ +\xd7\x98\xa1\xe2(\xae\xe98\xb5\x0co`c/\xac\xff\ +m\xea\x1eRg\xc6V\xc2\x90D+w\xbb\x12\x8c\xe0\ +2\xcf\x1ew\xeb\xa1\xf0\x97,\xdd-o\x10fl[\ +)\x22\xc0$\xdfbWW.\xbb\xe2\xeb\x18[\xe1<\ +\x8f\x9f\xf7\xf6\x1bN\x9am6ER.\xbb\x90\xa4W\ +\xf0!Na,\xd5v~Y'\x06\xae\x0bA\x1dB\ +\x14}Pq\x82\xb9\x00];d\xceZ\xe8\x131\x0f\ +\xb9\xa7~D]\x09j\xcc\x90\xba\x98\x9a\xba\xf2\xd4\xcf\ +\xfb\x17US\xb7SA\xd7\x1e\xfa\x11t-%\xdbs\ +0fb\xe8\xd2C?o\xe9\x94LL\x9d{\xecc\ +\xb0\xb7\xab\xe9dn\x9dy\xec#\xb0\x8b\x89\xb1[O\ +\xfd\xbcc\xa7jj\xea!\xf5\xdc\xf7\xb9s\x8b\xf0Z\ +]6J\x0a\xbd\x8f9A]\x88\x0b\x87I~\xf7x\ +\x02;\xb3\xf6\xd2\x81RH<\xf7\xf3N\xa6\xf5\xedl\ +\xb2X\xc9/\xaa'\xb8\x0b\xca\xf9\x89`i:\xec\xd2\ +\xdf\x8f\x19c\xeem\xbcd\xa6\x8b\x97\xfc-\x99Q\xe0\ +\xa7\x8f\x98\xbc\x83\x1f\x05~\xf2\x98\xc9\x1b\xfc\x08\x07\x7f\ +\x89\xa0\xc9o\xe0\x0f\xc1S\x13\x19C\xd9A\xd8$8\ +\xb5Z\x8a\xc9\xc8{\xec'\xb0s\xab\x0e\x03\xa7\x8a\xbb\ +\x98.p\xf2\xdc\x8f\xb9[;\x04Y\x07N\x15\xf7\x09\ +\x03'\xe3\xb9\x9fw3jj\xee\x08\x9cF\xdc)X\ +\xb9\x97W_\x06o\x0e_m\xfd\x8d\x83\xc7\x86\x86\x18\ +b\x0eB\xa7i\xc1#tR\x1e\xfcy\x8bw\xb1\x93\ +#?e\xecD=\xf8\x11\xe0\xd9\xc4\xe0\x11;1\x0f\ +~\x04x11x;\xe6\xe6\x98w\xf1TM\xce\x9d\ +\x8e\xb9?\xf6E\x91\xb7&\x92\xdc2E/\x1a<1\ +\xff\xac\xef\x98\xbb\xb0Z\x13q\xe1\xe8\xc9\xdf\x88?A\ +^I\xa6\xb4\xbdp\xfcDB\xffF\xea\x08_\xd38\ +ye'\x8c\xa0B\x1fB\x1d\x91\xd7J\x11{*\x84\ +\x9a\x8e\x9a\xe9\xc9\x1c\x8e\x0f\xa5\x8e\xb0\ +\x13\xab\x8d\xd0\x07\xa1T\xcd}\xbaP\xca\xbfhp\xc4\ +\x9dIf8=\x08\xa4\xa6\xe5\xae\xfc\x8b\x06c\xdc\x8c\ +j\xb8O\xf8 \xca\xbb\xf7#\xee\x5c)&\x0e\x7f\xef\ +4-w\xe9o\xca\x8f\xb1w\x17B9\xf0S\x86P\ +g\x1d\xbc\x10k\xf32\xf8&\xf5\xf7\x0e\x9eM\x0c\x1e\ +\x01\x94\xf2\xe0G\x80o\x96V5\xe1&^z\xf0\xe7\ +]\x85\xf2\xbf\xc99\ +\x22\xcf\x0c\xe3\x96\x9e\x88\xa0\xa6#\xef\x9eB\xf9\x18j\ +\x84\xcd\xb71\xd4\xb4O\xa1\xfcf~\x0cz61\xfa\ +\xea)\x14\xf5\xe8G\xa0\x9f>\x8e\x1aq\x8f\xf2\xcb\xdb\ +\xcf\x1f{\xfa\x8bDR\xec\xfcc\xef\x1b\xb3\xf9\x15\xf6\ +M\xeao\x95\xfd\xa9\x83\xa5\x04\x95\xe4\xc5\x83\xa5dD\ +\x88\x96\xcc\xd6\xe7J\xf5W\xa1P$\x12\x82)w\xca\ + \x8d$Q\xa8\xa6;W\xeav\xc8\x1f\x0d\x88\xde\xe2\ +\x07M\x0c\x8e\x86E\xbdJ3\xc3\xab\xd3\x08\x8d\xd1\xcc\ +\xda\xb7\xbd\xb9\xdc\x9e(\xdc\x1f|\xc5(lGu\x07\ +_\xb5\x97\xd6\x1d)\x86U[\xcd\x19\x06H\x0b%\xc5\ +\xdb\xd9\xbe^\x8a\xba?\x08\xdb\x1dg;\xb4\xca\xbd\xc3\ +i\x97\xaf-\xb7\xebx\xd5Y\xc1\xdeec\x05$\xb2\ +\x5c\x1a\x80`\xe3\xac`O:\xde\x0aN\x8fx3\xca\ +\xf5\x90\xd79\x0fN\xb7u\x9d\x13\xd2\x0e\x1f\x81w\xf3\ +\x86\xbb\xc3\xee\x0c\x1f\xbc\xc8\xdcO6w\x8e\x1e\xd1\xda\ +\x0e\x8bav\xf2Hs\xce%\x1dH\x9bg<\xc4\x08\ +:\x14\xe7n\x82\xbb\xf319\xb3rp\xbc\xf2\xaf\xe1\ +n\xceQ{\xf1\xd0O\x0c\xb3ULH-\xff\x0f\xac\ +\xdb\xa3\xe4\xf6\x1c\xc4K\xb4\x87\xcf\x01;\xde\xccF\x8c\ +\x8aa\xe06\xe4\xad\xb9\xb2j\xf0x\xb2\x8e\xf5\x10y\ +\x13\xcb\x88<\x06n\x08\x1f<\xaao\x81\x1b\xf8$N\ +\xe5\xe00\xe3\xdb\xce\x01\x5c\xb9\xa3\xb4\xdf\xbf\xfa\x1fY\ +H\x8e\x0f\ +\x00\x00\x05\xf9\ \x00\ -\x00\x16\x08x\xda\xedX\xddo\xdb6\x10\x7f/\xd0\xff\ -AP^\x12\xcc\x92\xf8)\x91\xaa\xddbCQt@\ -\xf7\xb2u\x9fo\x8cD;jd\xd1\xa0\xe48\xe9_\ -\xbf\xa3l\xc9\xb2-g\x19\xda\xae\xd80'N\xc4\xbb\ -#y\xf7\xbb/R\xd3W\xf7\xcb\xd2\xbb\xd3\xb6.L\ -5\xf3q\x88|OW\x99\xc9\x8bj1\xf3\x7f~\xff\ -&\x10\xbeW7\xaa\xcaUi*=\xf3+\xe3\xbfz\ -\xf9\xfc\xd9\xb4\xbe[<\x7f\xe6y\xde\xa6\xc8\x9b\x9b\x99\ -\xcf\x84\xdf\x0eot\xb1\xb8i\xf6\xe3\xbbBo\xbe3\ -\xf73\x1fy\xc8c\xc2\xeb\xe8E>\xf3a\x09\xb2\x93\ -\xda\xef\x8fw\xfc\xea\xb6\xce\xd4J\xa7CVH\xbcK\ -\xa4\x10\xca\xe6\x9cR9\xf1\x08\x22$@\xf0\xcb\xae\xb6\ -\xb3j\xd0{\x05\xdf47Y\xa5\x96\xa0\xeej\x1e\xc2\ -6[.XZ\xd5i\xb7\xf2\xcc\xbfi\x9aU\x1aE\ -\x9b\xcd&\xec\x88\xa1\xb1\x8b\xc8\xcd\xacW*\xd3u\xd4\ -\xd1\x87\x0bt\x9b\xf4\x0bt\x84\xb06k\x9b\xe99\xac\ -\xa1\xc3J7\xd1\xeb\xf7\xaf{f\x80\xc2\xbc\xc9\x07\xeb\ -\x1c\xec\xbf\xa1\xed\xce\x04!\x14\x1d\xe9\x0b\xc3\xa7\x8a\xda\ -|>&\x8a\xa5\x94\x11\x22\x11\x80\x05\x12A\xfdP5\ -\xea>\xa8\xea\x8b\xe1\xdc,\xeb\xa7fV\xab\xa6\xb8\xd3\ -\x99Y.MUo19\x94\xce\xf7\xd2\xab\xb5-[\ -\x91<\x8bt\xa9\x97\xbaj\xea\x08\x9c\x15\xf9/\xdd\x84\ -\xe9R7*W\x8djgo\x1d\xdf\x910\xd9\xca\x80\ -\x14(\x96\xfe\xf8\xfa\xcdn\x08\x84,K\x7f5\xf6\xb6\ -\x1b\xc3\xc7\x89\xa8k\xb3\x86\xe8\xf2_\xee\xe9\xd3C,\x8e\xd2\x13J\xbb-\xee/\ -!\x83\x13*\x89d\x13Pq\xb2\x1f\xc52\x84\xce\xc7\ -1\x9f\x90$\xc4\x82H\x8a\xaf\x0e:\xc7\x91\xf5\x7f\xcb\ -\x86\x01X8\xc1\x87\x9c\x16\xae\x80\xd30A\x82\xc5b\ -\x82Q\x08\xfa`\x1c{\x01#\xa1L\x92$\xc6\xa0\xa7\ -\xe0\x5c\xc8\x98\x1e\xce\x1dbs\xa1c\xf7\xf3\xe2|A\ -#\x99B\x5c\x1d\x164\x12&\x922\xd1\x11\xcb\x02,\ -Q\xab\xf4z\xdd4C\xda\x07ST)\xb45m;\ -j;(!H\x9b\x94u\xb4\x5cA\x8e[\xab\x1eZ\ -Gu\xd4]YH\xf1\xd0s\x9f\x13Pz\x02\xe8\x12\ -\x00e!a\x8c\xc7\xf1$\x90!\x151\xa7\x9cx\xf0\ -\xc4\x05Fr\xd2> \x99\x08\xfc?\xa0\xa7\x80\xf2\xb1\ -\x08\xa5\x10\x83\x09\x22q2\x090\x0e%M\x08K\xda\ -\x10E\x22\x89\x1d\xccP\x0d\x19\xa6D\x22\xf9\xaf\xc6\xf4\ -P\xf7\xbe)\x1b\xe8\x80p\xa8\x83\x93x\x96\xfd\x15\xee\ -gf}\x16\xdf$c\xc1\x0e^H\x04\x89)\x9b\x10\ -\xa8]\x08s\x0f\xce\x1d\x09\xa78\x89]=I\xc0+\ -\xff\xa18\xd7eY\xac\xea\xa3S9\xb4S\x1a\x22.\ -\x13\x88\xd0C[\xed\xbdcaNEB\x8e\x22\xdbu\ -q\x08\xe6D\x0a&\x8f<\xef\xfa\x7f\xc0yH\x09A\ -49\xe7\x0e\x1a\x07q0^\x94{\xed_lQ\xa6\ -I&\x92\xed 8\xe4\x8d\x82>\x04\xa2G\x5c\xc0Y\ -\xe4\x04]k\xd6U\xfe\xe5\xd1u\xbd\x88\x09LG\xd1\ -E1\x04\xdf\xfe\xf09@\x97\xba3\x12\x17|\x04]\ -\x22CX/\xa6\xf8\x11t\xf1\x93\xb0EH)\xc6>\ -\x01[\x1aR,$\xfeZ\xd8B\xafJ\xe0\xecA\xd9\ -)\xb6,\x84\xb3\x00\x96x$r]\x1d\x8e!\xef\xe5\ -\x18\xb8\x94\x841\x8byB\x1e\x0b\xdd'\x82\x9b3\xa5\ ->\x09\x5c\x01M!\xfeZ\xe0\xd2\x90\x098\xe2\x13:\ -\x16\xb8\x5c@\x19\x1b\xc3V\xc2\xf1\x01\x0e\x86r\xac*\ -PH\x05D\xf0#q\xfb\xe4\xa8\x15\xe2\x93\x80eB\ -\xb2\xe4\xeb\x01+\x10\xa0G\xc5\x18\xb0\x92p\x8c\xf0H\ -A\x80s.\x00$\xc5\x08\xb0\x0c\x0c\x82\xcb\x1f{,\ -f\xd1?Sl]A\xa0R~Qh\xa7\xd1\xa2\x7f\ -)\xb08\xbd\x82\x0d\xee.\x83\xf7\x09!BqB\x04\ -\x9d\x04\x84\xbb\xeb)\x84\xe8\x95\x7ftm\xc3pm\xdb\ -\xbfp8\xbe\xd4\xc5\xc3Z2\xba\x09\x0a9n\xa3\xbf\ -\x7fo\xb1Up\xea^\x97\xc1\xff?\x01\xf4\xd1!u\ -\ -\x00\x00\x07~\ +\x00\x15xx\xda\xedXmo\xdb6\x10\xfe\xde_!\ +(_\x12\xcc\x92\xf8*\x91\xae\x9dbCQt@\xf7\ +e\xeb^\xbf1\x12m\xab\x91E\x83\x92\xe3\xa4\xbf~\ +G\xd9\x92%[\xee:\xb4]\xb1aJl\x88wG\ +\xf2\xee\xb9\x87G\xd2\xb3\x17\x8f\xeb\xc2{\xd0\xb6\xcaM\ +9\xf7q\x88|O\x97\xa9\xc9\xf2r9\xf7\x7f~\xfb\ +*\x10\xbeW\xd5\xaa\xccTaJ=\xf7K\xe3\xbf\xb8\ +}6\xab\x1e\x96\xcf<\xcf\xdb\xe5Y\xbd\x9a\xfbL\xf8\ +\xae\xb5\xd2\xf9rUw\xcd\x87\x5c\xef\xbe3\x8fs\x1f\ +y\xc8c\xc2;\x88\xf3l\xeeCw\xb2\xb79\xce\x8c\ +\xf7\xda\xf2\xbeJ\xd5FO\xfb\x9a\x90x\xd7H!\x94\ +.8\xa5r\xe2\x11DH\x80\xe0\x9f\xdd4\x9d*\xf0\ +w\x03\x9fif\xd2R\xad\xc1\xcd\xcd\x22\x849\x1a%\ +\x04XV\xd3v\xdc\xb9\xbf\xaa\xeb\xcd4\x8av\xbb]\ +\xd8\x0aCc\x97\x91\xebXmT\xaa\xab\xa8\x95\xf7\xfa\ +\xb7St\xfd[AX\x99\xadM\xf5\x02\x86\xd0a\xa9\ +\xeb\xe8\xe5\xdb\x97\x9d2@aVg\xc7a\x06\xb3\xef\ +h3/A\x08ECg\xa1\xf5\x91\x966[\x8cY\ +b)e\x84H\x040\x81EP=\x95\xb5z\x0c\xca\ +\xea\xaa\xd75M\xbb\x9e\xa9\xd5\xaa\xce\x1ftj\xd6k\ +SV{8\x06\xc6\xd9\xd1x\xb3\xb5Ec\x91\xa5\x91\ +.\xf4Z\x97u\x15A\x92\x22\xff\x16\xecgk]\xab\ +L\xd5\xca\xf5\xdd'\xbb\x95`\xd2X\x80\x0d\xf84\xfd\ +\xf1\xe5\xab}\x0b\xdai:\xfd\xd5\xd8\xfbC\x13\x1eg\ +\xa0\xee\xcc\x16\xc8\xe4\xdfv\xe2Y\x96N\x01\xe7\xb5\xaa\ +o\xf3\xb5Zj\x87\xc57\xe0\xdf,:*\x06\xc6\xf5\ +\xd3F\x1f\x07\xdd\x0fk\xf5>a\xa3\xf1d\xe9:w\ +\x9d\xa2\x9f\xea\xbc(\xbew\x93\xf8^\xd4\xf9\x19\x1d\x1c\ +=\x84\x11\xf5\xe2\x98Em\x98M+\xd3\x8b\xea\x88\x80\ +ka\xd4F\xbfV\xf6^\xdb\xd6\xaf\x8e\xf0Um\xd2\ +{g\xfd\xad\xb5f\x87\xdf\xc0\xaa\xb3\xb5\xdf\x9a\x19\x9b\ +\x03\xd0s_mk\xd3\x09\xad^\xfc\x0e\xcb\x0b\x16m\ +O\xf2\xdbPrq\xc4\xaa~*\x00\x05\x03\x0bmQ\ +\x98\xdd\xf4!\xaf\xf2\xbbB\xfbg\x8e\xe5U\xe3\xda\xdc\ +\xaf\xedVw\xe9\x98mT\xbd:\x82\xeb\xa6q\x12\xc6\ +\xa5\xf0\x8fb\x90\xfe\xe0\x81;\x13\xf8xo<\x0eo\ +\x01o^\x03LB\xde\x13\xef\xa5\xad\xe9{\xaf7\xc8\ +\xc1\xd3\x05\xa4$\xb0\xdbBO\xf5\x83.M\x96=\xaf\ +jk\xee\xf5\xf4\x0a5\xcf\xa1\x194Ei\x0a\xa5l\ +S\xf7\x06\xa9\xad*+G\x12\xa8>\xa9*\xf45\x0a\ +\xc5\xcd^Z\xa8Z_\xef\xdd\xb9\xe9\xd2\x0d\x09m\xf2\ +\xb4O\xae\xcb`\xf3\xd6\x95\x1aW.2W\xe2\xf6S\ +l\x80*\xa9)\x8c\x9d\xfbW\x8b\xe69\xcc}gl\ +\xa6m\xab\x8a\x9bg\xa02Ps\x80tP\xe8\x0eb\ +s\xf7N\xa7um\x0a\x0d\xce9\xa2\xe26\x9bK\x0b\ +\xa1\x8d\xc9\xb7y\xa6\xc7\x14]\x0e\x9d{\xddD\xa3\xda\ +j\xa52\xb3\x9b\xfb\xe4T\xb9\xcbKP\x04\x87RO\ +8\xe2\x17,\xda\xf2\x8f\x11n#t\xac\xe8\x80jy\ +Q\xad\xcc\xceE\x02\x19UE\xa5OG{o\x0c\xe4\ +\x08\xd3\x90\x13$(=U\xa7nC\x09\x85H8\x96\ +D\x9ci!<\x02\x04\x12\x08\x13v\xc1O\x18\x80_\ +\x8a\xc1uO.\xe8\xd6\xea1_\xe7\xefuvL\xd5\ +q\xde\xad\xb5\xb0>\x83B=i\xc8\xf3R\x22<\x06\ +r\xba\xd2)p\xea\xce(\x9b\xb9<\xec\xc96[\x1e\ +\xd1Z2\xcc\xbbJ\xb1\xec/\xe2%\xe3\x8c\xfd\xf5\xf2\ +\xa3\xe8l\xf9M\x90\xf7\xdam\xc0\xbf\xb8\xaf\xd7\xb0\x19\ +\xff\xd139\x86`\xca\x12xgl\x00\xc1<\xa8z\ +k\xf5\x91*'\xcbpZ\xc2a\xa0_\x19\x97CW\ +z\xf1\x9f\xac=\xa8\xd16\x7f\xbc\x86\xd5\x99PI$\ +\x9b\x80w\x93c+\x96!l]\x1c\xf3\x09IB,\ +\x88\xa4\xf8\xa6\xbf\x03\x0c\xa3\xfe;\xde\xf70\xc2\x09\x1e\ +(\x1a\x94\x02N\xc3\x04\x09\x16\x8b\x09F!\xf8\x82q\ +\xec\x05\x8c\x842I\x92\x18\x83\x8f\x82s!c:\xe8\ +\xda\xc7\xe4J\xc7\xee\xef\xf9\xe5:ER\x85\xb8\x1a\xd6\ +)\x12&\x922\xd1\x0a\x8b\x1c\xc2P\x9b\xe9\xdd\xb6\xae\ +\xfb\xb2w&/\xa7\xb09i\xdbJ\x9bF\x01\x8c\xac\ +\xa7\xac\x95e\x0a\x96\xb1\xb5\xea\xa9IP+=,\xfc\ +)\xeee\xec\xf3aIO\xb1\x5c\x03\x96,$\x8c\xf1\ +8\x9e\x042\xa4\x22\xe6\x94\x13\x0f\xde\xb8\xc0HN\x9a\ +\x17$\x13\x81\xff\xc7r\x88%\x1f\xe1%\x05\xe6%\x88\ +\xc4\xc9$\xc08\x944!,i\x88\x89D\x12;\x84\ +\xa1\xdc1L\x89D\xf2\xdf\x0c\xe7\xc0\xf5n\x935\xb0\ +\xaf\xc1y\x0c\x0e\xcei\xfaa\xc4/\xf4\xf9\x0cII\ +F\x08\x0e\xf0'\x82\xc4\x94M\x08\x94)\x84\xb9\x07\xe7\ +\x87\x84S\x9c\xc4\xae|$\x90\x8e\xff\x0c\xb7uQ\xe4\ +\x9bjx\x90\x86}\x92\x86\x88\xcb\x04x9\x08\xd4>\ +:\x0d\xe6T$d\xc8f\xb75\x03\x81\x13)\x98\x1c\ +\xa6\xdbm\xe9\x01\xe7!%\x04\xd1\xe4B\x1ah\x1c\xc4\ +\xc1h\xf1\xed\xdc~\xbe\x87\x97&\xa9H\xf6\x8d`\xa8\ +\x1bE\xbb\x8f@\x07\xb5\x80\xc3\xc5\x19\xac\xd6l\xcb\xec\ +K\xc3\xea6\x1c&0\x1d\x83\x15\xc5\xc0\xb8\xee\xf8\xd8\ +\x83\x95\xba\x13\x0f\x17\xfc\x1cV\x22C\x18,\xa6\xf82\ +\xac\xf8c@EH)\xc6>\x01T\x1aR,$\xfe\ +:\xa0\xc2v\x94\xc0\xa9\x82\xb23PY\x08\x1b=\x96\ +\xf8\x9c\xab\xae\xda\xc6\xb0\xc8\xe5\x08\xaa\x94\x841\x8by\ +B>@\xd6\x8fC5cJ}\x12\xaa\x02\xea~\xfc\ +uP\xa5!\x13pD't\x84\xaa\x5c@\xb9\x1a\x01\ +U\xc2\xc1\x00Nzr\xa4\x00P`>\x22\xf82S\ +?\x96\xa7B|\x12\xa2LH\x96|-D\x05\x02\xdc\ +\xa8\x18AT\x12\x8e\x11>_\xfbpj\x05l\xa48\ +G\x94A,p]c\x1f`)\xfaG\x0a\xaa[\xfb\ +T\xca/\x89\xe9,Z\xb6\xf7\xf6\xe5\xe9\xed\xa9w\xfd\ +\xe8\xdd\xf7C\x84\xe2\x84\x08:\x09\x08w\xf7I \xe5\ +\x8d?\xbcpa\xb8pu\xbf\x07\x9c\x5c\xc6\xe2^\xc9\ +\x18\x9d\x00\x85\x1c7\x5co\x7fSh<\x9b\xb9\x1f\xad\ +n\x9f\xfd\x09.-\x1a%\ +\x00\x00\x07z\ \x00\ -\x00)nx\xda\xddZ[\x8f\xa36\x14~\xaf\xd4\xff\ -@\xd9\x97\x1d\x15\x8c\xef\x97t\xb2\x95\xdaU\xa5\xbe\xf6\ -\xa2>V\x0cx\x12\xba\x04\x22 \x93\x99\xfd\xf5=\x86\ -\x90@HF\xd3*\xad\xb2af5k\xfb\xf8\xd8\xe7\ -\xf3\xb9\x1a\xee\xbf\x7f^\xe5\xde\x93\xad\xea\xac,\xe6>\ -A\xd8\xf7l\x91\x94iV,\xe6\xfe\xef\xbf\xfd\x14j\ -\xdf\xab\x9b\xb8H\xe3\xbc,\xec\xdc/J\xff\xfb\x0f_\ -\x7fu\xffM\x18z?V6nl\xeam\xb3f\xe9\ -\xfd\x5c|\xaa\x93xm\xbd\xf7\xcb\xa6Y\xcf\xa2h\xbb\ -\xdd\xa2l\xd7\x89\xcaj\x11\xddya\x08Sar\xfd\ -\xb4\xf8\xfa+\xcf\x83\x89i\xb3\x9c\xfb\x5c\xfbmsi\ -\xb3\xc5\xb29\xb4\x9f2\xbb\xfd\xa1|\x9e\xfb\xd8\xc3\x1e\ -\xd7\xf0\x8b\xb0{H7\x9c\xa5s\x1f8\xd1\x1d\xf1A\ -\x86~|\xb7\xf8l8\x84\xa8\xf7\x1e\xc7\x18'\x8f\x82\ -1\x13x\x14S\x1ab\xf8\xe5w\xdd\xac\x1ad_\xc3\ -\xbfYZ&E\xbc\x02\x91\xebdiWq\x93%q\ -\x9a\xfe\xd9\x94\x08\xd6\xecH\x01\xba\xa2\x9e\xf5\xcb\xcc\xfd\ -s\x82;6\xf5:Nl\x1d\xf5\xfdC\x06\xfd\x8a{\ -\x06}\x07\xaa\xcbM\x95\xd8G\xe0aQa\x9b\xe8\xe3\ -o\x1f\xf7\x83!Fi\x93\x0e\xf8\x8c\xd6\xdf\xb2ve\ -\x0ahEG\xfb\x85\xe6[I\xab\xf4\xf1\x14)1\xc6\ -D\x98F\x80\x1cP\x84\xf5K\xd1\xc4\xcfaQ\xbf\x1b\ -\xceM\x92\xfd\xd4\xc4\xe9I\xf6d\x93r\xb5*\x8b\xba\ -\xc3dL\x9d\x1e\xa8\xd7\x9b*oI\xd2$\xb2\xb9]\ -\xd9\xa2\xa9#8\xb9\xc8\xff\xe0&\xdc\xa7\xf6\xb1ng\ -v\x1a\xe0\x9a\xdc\xf7\xa2np\x7fz\x0e\xf3\xd4)\xd0\ -\x80\xf4!\xaew\xc0{\xde:^\xc0~\xf2\xb2\x9a\xfb\ -\xef\x1e\xdb\xa7\x1fy(\xab\xd4V\xfd\x98l\x9f\xf1X\ -\x09g\x995/\x9d\xb9\xf4\xfc{es\x8c\xf7\x04\xf8\ -\x0cA\xbd\x8c\xd3r;\xf7\xe9d\xf4sY\xae\xc0\x02\ -\x10U\x12s\xa2&\xe3\x09\x98\x83aHp\xce\x85\x9e\ -\x8e\xc2\x9a!\xa1Hq\xc1\xd9\x949\xa8\xf4\xc6\xe1\x19\ -n\x8a\xac\x01\x85Y?O9l\xaa\xcaQ\xe4\xf1\x8b\ -\x05\xf9\x17\x8cs\xd2\x13\xd5\xcbr\xbb\xa8\x1c\x92\x8fq\ -~\x80\xf2<\xb3mV\x80\x98\xe1\xce\xcc\xa9\xc0\xe2\x1c\ -Io\xfa\x04\x13y\x8e\x06$\x17g\x19\x80\xe0T\x9d\ -\x1b\x5c\xc5\xcf\xd9*\xfbla\xe7\xe4\xe4y\x80\x85'\ -\x9fl\xf5P\xc6\x15\xd0\xe0\xbd:\xadl\x13\xa7q\x13\ -\x0f\x94\xa8\xefR\x9d:\x02\x11\xd8\xc0\xec\x97\x8f?\xed\ -\x9a\xd0\x91$\xb3?\xca\xeaS\xdf\x86\xc7\x91\xc4\x0f\xe5\ -\x06$\xf4?\x1c\xfa\xef\xd3d\x06\xd6\x0d\xce\xe5C\xb6\ -\x82m8\xfb\xfb\x16\x0c\xe2>:\x0c\x8c\xa9\x9b\x97\xb5\ -\x1d\xf0\xed8W\xb6s\x14'M(MV\x99\x9b\x15\ -\xfd\xdady\xfe\xb3[\xa6\x17\xafe\x1a\xedv\xdbK\ -\x13\x0d\xc5\xb9\x8fzq\xbb\xe6\xe2\x18\xbc<~\xb0\xf9\ -\xdc\xff1^\xc7\xde\x14\xdaEUn\xd6\xab2\x85\x9d\ -\xb5\xfa\xe4\x0fpl;\xf6S\x9a*.j'\xf1\xdc\ -o\xff\x9bC`y\x8f\x83\x90`\xcc\x11\x93\x94\xde\xed\ -\xe1^\xec\xe5wlF\x0a:\xe2\x03\xe0U\xd9\xf3{\ -\x8c\xb4\x94D2\xc1\x02\xec~\x0eM\x8a\xa4PJ+\ -\x13\x10\xa6\x10Q\x94\x91\xbb\x03\xa7\xbay\xc9a\xdf\x8f\ -\x00\xdal\xe7!\xbe\xab\x9b\xaa\xfcdg\xefx\xea~\ -\xfc\xc1\x89gU\x92\x0f\x0f\xa6r\xceA\xf8\x83\x1eg\ -\x9a \x8dF\x8c\x085\x1a\x00\xbd\xa6\x1c,Z\x18\xad\ -\x87\x03N\xbcu\xdc,\x19cr\xd8\x7fjg\xae\x11\ -\xee\xdc\xce\x8ct\xcdj\x93\xdb\x99}\xb2E\x99\xa6\xfb\ -\xad\x9b\xf6\xd95;\xcb\x9c\x91\xf5s\xdf\x91g\x85\x85\ -\xa3\x9b=l\x9af\xd8\xf7W\x99\x153P$[\xf5\ -\xbd\xfb\xc5F\xda\xf4f \x08C\x84\x99\x09\x10p\x10\ -Xc\x8e\xe99 BvsPP\x09\x1aN\xe41\ -\x14\x9c!\xc3\x0d\xa8\xe7Y(nO+\x98q6\xc9\ -&P`\xc41g\x9c\x9d\x85B\xdd\x1c\x14\x5c!\x85\ -\xf5\xd4Sh@\xc8(q\xde@\xc4\xedA!\xc0i\ -Sr\x0c\x05\x81,IHL^\xf1\x15\xb7\x87\x05\x13\ -\x88\x08\x22\x8e\xb1\x10\x08\x1b\x09\xfa\xa2\xcf;\x0bz{\ -\x8e\x13\x22\xb8\xd4So\x814(\x05W\xe4,\x16\xe6\ -\xf6\xc2)@a\xe4$\x86\x10\x8287\x84\x9eW\x0b\ -r\x8bZ\xc1\xa8\x99X\x08#\xa0\x16\x9a\x8f=\xea\x18\ -\x8a\x10\xdf\x9e\xbb\x80Z\x90\xb2)\x18\xa0.\x907\xbf\ -\xa2\x167h#\x90[jN'\x01\x15h\x15\xa1\x8a\ -\xbe\x82\xc5\x17\x93s\xba=\x0f\xc5\xd8W\xf5e\x01\x8c\ -\x9b\xb2\x0a\xa1\xbe\x7f\x8a\x9bMe]\x99{BbN\ -\xc5\xc8%\xb8\x8a\xd7\x93\x08\x0b\xad\x84\x11\x01\x98\x17$\ -\xeeRPO!*1\x96B\x04\x021e\xf4\x9b \ -z;&\xff\x1c\x91\xb6\x91C\x9d\xdf\xccx\xdf\x97\xc6\ -\xf52\xae\xaa\xf8eV\x94\x85\xfd\x1f\xb0\x13\x13\xec\xa8\ -\xab85Dg\xc0\x8e(d\xa0^\xf5\x18\xc2\x14\x9c\ -2\x0bB\xc8\xe686\x97\xc5\xce-H\x0dST]\ -\x99b\xa9\x098\xee\xaa\x8ab\xd8m\xd0\x860\xca\x89\ -\xf0\x08\x86\xbaGi\xce\x83\x90!H\xfb\xc8\xa5\xd11\ -\x5c\x1a\x22\x95\xbc2t\xcc\x09\xb3c\xa0-B8t\ - \xef\xe3\xc2x\xa4-\x0a\x996$ \xc8\x18e.\ -\x0f\x8e\xbb\x88 \xec\xba\xc0\x91\xe4\x94]\x09\xa5\x8cr\ -v\xc54R\x92\x0b/\x04\x90\xa4\xd6\xcc\x04\x12Q\x8a\ -\xf5\xc5\xed\x0a\x14\xd4\xd0k\xd3\x1c\xc9\xa6\xe0\x80w&\ -B\x1b\x1at\x85$xl/\x84dP\x81\x112\x12\ -\x84\x04I\xa5.\xaf:LpJ\xf4\x95\xa13\xb5+\ -H\x04\x147\x8a\xb8p\x06E$\xc3Jy\x10\xc4\x18\ -\xc5\x1c\xb4\x89 \x06\xb1\xee\xe2\xe0\x10\x02Q\xf2\xcaB\ -\xbd\x9a\x9a\x15\xa7Hh\xf09A{/\x85\x15\xe3^\ -h\x90#\x15\xd49d&\xe4\xc5\x1d\xb22\x98\xc3r\ -W\xa68j\x1a\xcb\xb9;Gw\xe5\xd0\xf9\x1c\x81\x15\ -\xf7 \x82\x19\xc1Z\xa3\x02\x07\x81\xe5\xe5\x9d\x0e\xc3R\ -\x11e\xae\x0c\x9d\x13\xc1\x1c\xbc/\x81\x82\xbc\xf5\xc8\x18\ -\x11\xf0\x05`V\x84\x10\xac\x158d\xae/\x8f\x8d\xe2\ -\x0cj:|ef5N\x86;\x87\x0cU\x06\xc4p\ -\xdaf\x81\xee\x92S+O#C\x85T\x01ED\x09\ -vqh ;\x17\x14\xb3k\xf38\xe14ZA5\ -\xaa!ZI\x17\xad\xa0L\xe7\x8aJ/\x04\xc5'\x12\ -\xa2W\x10B\xd2,\xc5\xe5U\x87a\xa8\xee\x0c\xbd>\ -|\xc6\xf7\xfa\x1dB\x06\x09\xa2\xbax\x0e\x8e\x07\xd2?\ -p\xcb\xce=K\x09\xa8A\xdaC\x09\xff\x02\x10z\xfb\ -u\x96\x81Z`\x9c\xdc\xb6\xb5:\x86\xa2S\x0c^#\ -\x9f\xa8\xd5/\xf7&\x00\xe3\x94\xc7\xf1\x15\x5ch\x19\x84\ -\x898u\xfd\x0d\xe5\x92\x94\xe6\x150\xe4\x97\x02\xc6E\ -*(v*$am0\xe5.\x9dQ.x{\x89\ -\x87!\xe3\xc3\x8a\x80g\xc1\x90\xd8\x80\xaf\xe1\xee*\x83\ -\x10\xea\x5c\x8d P\x9f\x1fw\xfc{\xcb:\x05\x1b$\ -\x11T\x83\x09\x0b~9\xfc\x16G\x88,4;\x95\xa6\ -\xf5\xdbb*\xd1\xf1\xc3\xf1\xe2U\xb9)\xd2\xe9:\x03\ -6\xa7^\xafS\xc8\x17\xb9\xd9\xbf^\xdf7]\xbda\ -\x0cS\xa4-\xee\xdd;NE\xeeF_?\x1c\x1d\xfa\ -\xe0\xdb+\xc0\xd0\xba\x8f\x16\xea\xb9\x9f$\xfe\x88\xe6\x1f\ -\xa8\xc6A9\xf4\xf8%\xd1N;\x8c{kB\x8cb\ -\x81\x90\xee\xfd?\xe5\x0c\x94\x03\x1b\xceU\xa0\x8c\xcb\xeb\ -\xf0\xf8\x0d\xf5\xf8\xf4\xdb+\xa5\xf3G?\xc6xg1\ -\xf2U\xcc\xff\x93\x8b\xad\xff\x1b\xe8q\x80\xef\x0d\x91q\ -\x88\xe2\x04\x80\x05\xd0\x05 \x0c\xf9O\xd8a\x0c\xe9a\ -\xd0\xa2.\xbex\xa8\xef\xa3\xc5\xfe3\x9a\xc5\xee\x03\x1a\ -\xf7\xf7\xde}\xd8\x03\x7f\xff\x06\xe0\xe7\xdc&\ -\x00\x00\x0dU\ +\x00(\x84x\xda\xddZ[o\xe36\x16~\xcf\xaf\xd0\ +j^&\xa8D\xf1\xf0N\xd7N\x81\xed\xa0@_\xb7\ +-\xfa\xb8P$\xc5V\xc7\x96\x0cI\x8e\x93\xfe\xfa=\ +\x94,\xdb\xb2\xadEv\xe1\xeez\xac$\x98!yx\ +\xfb\xf8\x9d\x1b\xa5\xe9\x0fo\xab\xa5\xf7\x9aUu^\x16\ +3\x1f\x08\xf5\xbd\xacH\xca4/\xe63\xff\xb7_\x7f\ +\x0a\x8d\xef\xd5M\x5c\xa4\xf1\xb2,\xb2\x99_\x94\xfe\x0f\ +O\x0f\xd3\xbf\x85\xa1\xf7c\x95\xc5M\x96z\xdb\xbcY\ +x?\x17_\xeb$^g\xde\xe7E\xd3\xac'Q\xb4\ +\xddnI\xbe\xab$e5\x8f\x1e\xbd0|zx\x98\ +\xd6\xaf\xf3\x07\xcf\xc3^i\xb3\x98\xf9\xc2\xf8\xae\xb4\xc8\ +\xf2\xf9\xa2\xd9\x17_\xf3l\xfb\xf7\xf2m\xe6S\x8fz\ +\xc2\xe0/\xa1\xee\x81\xb65Og>\x8e\xc2:\xd1\xc3\ +\xdaw\xad\xbbI'\xc7-\x84y\x9fiLi\xf2\x22\ +9\xb7\x81\xc7(c!\xc5_\xf1\xd8v\xaaq\xc7k\ +\xfc\x9b\xa4eR\xc4+\xdch\x9d,\xb2U\xdc\xe4I\ +\x9c\xa6\xfflJ\x82\x13\xb6\x92\x88WQO\xfaIf\ +\xfe\xd8v\xdd(\xf5:N\xb2:\xea\xeb\x8f\xfa\xf7\xf3\ +\xed\xfb\xf7\x15\xa4.7U\x92\xbd\xe0\x10\x19)\xb2&\ +\xfa\xf2\xeb\x97}cHI\xda\xa4\x87a\x06\xb3oy\ +;/C\x98\xa2\xe1b\xb1\xf4A\xc9*}\xb9$\x09\ +\xd6\xda\x88\xb2\x081C\x89\xb0~/\x9a\xf8-,\xea\ +OG]\x93d\xdf3q\xc4\xc8_\xb3\xa4\x5c\xad\xca\ +\xa2\xee\xe0\x18\x08\xa7\x07\xe1\xf5\xa6Z\xb6\x12i\x12e\ +\xcbl\x95\x15M\x1d\xe1\x89E\xfe\x13\xcaO\xd3\xec\xa5\ +v\xfd\xbaSw%\xe1{Q\xdb\xb4?3\x07u\xea\ +(s\x10|\x8e\xeb\x0en\xcf[\xc7s\x5c\xc9\xb2\xac\ +f\xfe\xa7\x97\xf6\xd95<\x97U\x9aU}\x93j\x9f\ +AS\x89\xc7\x977\xef\x9dZ\xec\xc6\xee\xc9\xe5F\xdd\ +\xb7\xd3\xcb\xed\xf5\x22N\xcb\xed\xccg\xa7\x8d\x7f\x96\xe5\ +\x0a\xb9N\x98VT\x80>mN\x90\xf8\x96\x13)\x84\ +\x90\xe6\xac\x11\xe7\x0b\x81\x11-\xa4\xe0g##}7\ +\x0e\xc2pS\xe4\x0d\xf2c\xfdv\xd6\x7fSUN`\ +\x19\xbfg\xb8\xef9\x17\x02v2\xf5\xa2\xdc\xce+\x07\ +\xdfK\xbc\xdc\xe37:\xd26/p{\xe1N\x91\x99\ +\xa4rD\xa2Wn\xa0\xa0FDp\xc7r\xac;n\ +\x98\xe9\x91\xb6U\xfc\x96\xaf\xf2?3\x5c3\x5c:\x02\ +T\xe2\xe4kV=\x97q\x85\x22\xb4\xa7\xce*k\xe2\ +4n\xe2\x03a\xfa\x1a\xdd\xd2\x0eE\x90\xe8\x93\x7f|\ +\xf9\xa9+a9I&\xbf\x97\xd5\xd7]\x11\x1f'\x10\ +?\x97\x1b\xdc\x98\xff\xb4\xaf\x9e\xa6\xc9\x04\x95\x17-\xc7\ +S\xbe\xc2\x058\x05\xfb\x0eI?\x8d\x0e\x0d\x03\xe1\xe6\ +}\x9d\x1d\x06\xed\x86\xad\xb2\xce\x0a\x5cT\x924Y\xe5\ +\xaeS\xf4K\x93/\x97?\xbbIv\xdbj\x87\x8cv\ +\x0b\xddm#:\xda\xc74\xeaw\xd9\x96\xe6'x-\ +\xe3\xe7l9\xf3\x7f\x8c\xd7\xb1w\x06\xe6\xbc*7\xeb\ +U\x99\xe2\x9aZ\xe6\xf8\x07\xe8\xdar\xdf\xa1\xa9\xe2\xa2\ +v\xfb\x9c\xf9\xed\x7f\x97\xe8\x22>\xd3 \x04J\x05\xe1\ +\x8a\xb1\xc7\x1e\xe0y\xbfk7\xc61\x0d\x07\x83 ^\ +U\xfe\xf6\x99\x12\xa3\x14(.y@\xdd\xcf\xa1\xc8\x88\ +\x92Z\x1bm\x03\xe0\x9a\x80f\x1c\x1e\xf7\x03\xd5\xcd\xfb\ +\x12W\xfc\x82@Mv\xca\xff}\xddT\xe5\xd7l\xf2\ +I\xa4\xee\xc7?\x1cp^%\xcb\xa3\xa3\xa8\x9c\xdeK\ +\xffP\xe14\x0f\xb7a\x08\x07\xa9\x8f\xeb\x91\xbcL\xa0\ +\xbaJk\xccQ\xbd\xdb\xd7:n\x16\x9csuT}\ +iM\xae\x10\xee\xcc\xc9\x04\xbab\xb5Yf\x93\xec5\ ++\xca4\xdd/\xda\xb6\xcf\xae\xd8\xa9\xde\x04\xd6o}\ +\xc52/2<\xae\xc9\xf3\xa6i\x8e\xeb\xfe(\xf3b\ +\x82\xb4\xc9\xaa\xbev?\xd91w>\x08\x01p\x02\xdc\ +\x9eB\x80\xe8SC\x05e#\x10\x84\xfc\xae@`\x0a\ +\xe9\x0c\xea\x04\x04\xc1\x89\x15\x16\xd98\x06\xc2}1\x81\ +[\xa7}\xfc\x14\x04J\x04\x15\x5c\xf01\x10\xf4]\x81\ + 4\xd1\xd4\x9cY\x04\x83\xd0X-G\xd5A\xde\x17\ +\x08\x12M2\x83\x13\x10\x00c\x1c\xa9(\x8c\xdb\x84\xfb\ +B\x81K\x02\x12\xe4\x09\x0a\x92P\xab\x90\x22f\xd4(\ +\xb0\xfb2\x8d\xe8\x93\x959\xb3\x0a\xc4 \x11\x84\x861\ +\x14\xec}9I\x04\xc1\xaaS\xff\x00@\x84\xb0\xc0F\ +\xa9\x00\xf7\xc6\x04\xce\xec\xa9>p@*\x1810\x99\ +C\x10Bz_f\x01\xd35\xc6\xcf`@\x86`\xd4\ +;N\x85;\xd3\x08\x0c\x10\x8d`\xa7n\x12%50\ +\xcd\xc6Q\xf8F\xe2F\xb7\xe2\xa3=\xec\xf3\xed\xb2\xc0\ +a\x9b\xb2\x0a1\xf3~\x8d\x9bM\x95\xb9D\xf4|\xb7\ +\x82\xc9c\xe5w9\xa9\xa7\x08\x95FK+\x03\xd4%\ +\x8c\xba\x95d\x9e&LQ\xaa\xa4\x0c$\xe1\xda\x9a\x8f\ +\xa0\xf3q8\xfes0\xda\xc2\x12\xb3\xf0f\x22\xfa\xba\ +4\xae\x17qU\xc5\xef\x93\xa2,\xb2\xbf\x1a6y\x0a\ +\x1bs\xf9\xa1A\xa7\x8b\xb0\x81&\x16\x93K\x8f\x13\xca\ +\xd0\xee\xf2 \xc4\xc0LP{U\xd8\xdc|\xccr\xcd\ +\xf4-\xd1I\x9f\xe2\xe2\xae\x8d\x18\xc5\x95\x06\xad\x7fb\ +\x02\xa4\x07\x143\x16m\x84\x08BN0\x82\x83+\x03\ +c\x85\xb2\xa0\xb4\xba%`\xec\xb9\x9eq\xe4\x88\x94\x0e\ +\x18\x8c\xe10\x93\xf7\xa0\xcd\xe4\xb8\xb1\x10\x00\xb1V\xdb\ +\xab\xe3\xe2.\x0c\x80\xdf\x10.\x0a.(\x92\xd4\xdaj\ +\xa7H\xdc\x10\xad\x84\xf4B\xc4G\x19\xc3m\xa0\x08c\ +\xd4\x5c[\x91\x90\x95\x96\xdd\x14_\x14?\xc3\x05\x8d0\ +HcY\xd0\xa5\x7fh\x98\xbd\x10c;\x8dJ\xc7!\ +\x08\x81(\xad\xafN\x18.\x05\x03sK\xc0\x9c)\x12\ +\xfax-\xac\x06\xe7\xb00\xf9\xe3Tk\x0f\xdd\x14g\ +T \x87\x80p\xf4f\xd7\xc6\x05\x00\xdd\xe0-\xf9q\ +}\xa6G\x82\x11i\xd0\xbe\x04\xed\xbd\x11\xd5\x5cx\xa1\ +%NR2gw\xb9T\xd7\xb6\xbb\xdaR\x81\xb3\xdd\ +\x12]\xf4\x99\xa3\x16\xee\xf8\xdc\x05Ag_$\xd5\xc2\ +C\x1fe%o\xb5\x08\xad\x01UW70\x9c*\x0d\ +\xda\xde\x120\xe7\x9e\x1a\x8d,`\x12\xdd\x1a^J\x00\ +\x15\x1f\xf5\x08\x00\xa8\xd1hw\x85\xb9:,Zp\xcc\ +\xc9\xe8-\xe9\xd1 \xb6\xed\xec.f\x0b\xe8\xa0Y\x1b\ +\xd8\xb9\xbbG\xa3=C,\x93J\x07\x8c\x80\x96\xfc\xda\ +\xa8`\xa8-\x19\xe57e]\xc23\x7f\x84\xa9\xa4A\ +\x7f\xa4\x9c?\xc2\xecZh\xa6\xbc\x10\xa9\x0e\x0a\xfdS\ +\x10b\x08\xac\xe4\xd5\x09\xc3)&h\x96\xdd\x184\x83\ +\x1b\xf6\x0e\x1cK$\xe8\xceY\xa3\x91\xc1\x88\x0e\xad\xaf\ +\xb3\xc2J!`\x18\xce0\x107\x0f\xceGo\x9d,\ +F\xf5\x83X\xb5M\xb2)\xe6\x8c\xf2\xf0\x82\xf6B\x92\ +}\xb5+yJS\x11\xc7\xff\xef{'K(\xc8\x0b\ +\xb7\xd1\x98\xf1(e\xc7aP\xdf\x06\x0cW\xc8\x81\xf8\ +\x05\x97C\x8d\xa5L\xb8 E;\xbf\xec%\x1e\xc5\x10\ +\x8ej@\x1bB1\x5cA\xab\x22\xdc\xed\x03\x00sF\ +E\x02\xe6\xd5\xa7\x15\xff\xb5\x22]B\x0c\xc3\x03fP\ +a\xa5\xb8\x1at\xf3!\x1as\xc3/D^\xfd\x9a\xb8\ +NL\xfc|:sUn\x8a\xf4|\x92\xc3(\x97\xde\ +_3\x0c\x00\x85\xdd\xbf\xbf\xde\x17]\xda`-\xd7\xd0\ +&\xe5\xee\xa5\xa2\x86\xc7\xe3\x0f\x0a\x86g}\xf4\xa9\x12\ +\xa2\x97\xb9\x0f\x01\xea\x99\x9f$\xfe\xb1\xc8\xc7\x09q\xa0\ +\x84\x19\xbc\xa4\xd9q\xc2\xbaW\x17`5\x0f\xa4r\xef\ +\xd6\x99\xe0H\x09j\x85\xd0\x81\xb6.P\xa3\x83\xf7\xc0\ +\xc33o\xef~\xc6\x0f|\x08\xeeNE\xd4\xbf\x05\xfb\ +\xaf\xb8\x81\xfa\x9fB\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ +no\x22?>\x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \x0d\x0a \ -\x0d\x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +circle\x0a styl\ +e=\x22opacity:1;fil\ +l:none;fill-opac\ +ity:1;stroke:#ae\ +aeae;stroke-widt\ +h:2;stroke-linec\ +ap:round;stroke-\ +linejoin:bevel;s\ +troke-miterlimit\ +:4;stroke-dashar\ +ray:none;stroke-\ +dashoffset:0;str\ +oke-opacity:1;pa\ +int-order:normal\ +\x22\x0a id=\x22path8\ +27\x22\x0a cx=\x2224.\ +984894\x22\x0a cy=\ +\x2234.797325\x22\x0a \ + r=\x227.5508037\x22 /\ +>\x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0cY\ +r-curvature=\x220\x22\x0a\ + sodipodi:no\ +detypes=\x22cc\x22 />\x0a\ + \x0a\x0a\ +\x00\x00\x0c\x08\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a \ + \ +\x0a \x0a \ + \x0a \ + \x0a \x0d\x0a \x0d\x0a \ - \x0a \ +\x0a \x0d\x0a \ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x05n\ +\x0a inkscape:w\ +indow-height=\x2210\ +25\x22\x0a id=\x22nam\ +edview4\x22\x0a sh\ +owgrid=\x22false\x22\x0a \ + inkscape:zoo\ +m=\x221.2291667\x22\x0a \ + inkscape:cx=\x22\ +-192\x22\x0a inksc\ +ape:cy=\x2296.00000\ +6\x22\x0a inkscape\ +:window-x=\x2269\x22\x0a \ + inkscape:win\ +dow-y=\x2227\x22\x0a \ +inkscape:window-\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg2\x22\ + />\x0a \x0a\ +\x0a\ +\x00\x00\x05f\ \x00\ -\x00\x17\xf8x\xda\xddXKo\xdbF\x10\xbe\x07\xc8\x7f\ -`\x99\x8b\x8d\x9a\xcb}\xf3\x11\xd1\x01\x1a#@\xaem\ -\x8a\x1e\x8b\x15\xb9\x92\xd8P\xa4@R\x96\x9c_\xdfY\ -\xbeD\x99\xa6`\x9f\xaa\x86\x8e\xe1\xec\xcc\xb7\xb33\xdf\ -\xce\xcc.\xb9\xf8t\xdcf\xd6\xa3.\xab\xb4\xc8#\x9b\ - l[:\x8f\x8b$\xcd\xd7\x91\xfd\xe7\xb7/\x8eo\ -[U\xad\xf2DeE\xae#;/\xecO\xf7\xef\xdf\ --~q\x1c\xebs\xa9U\xad\x13\xeb\x90\xd6\x1b\xebk\ -\xfe\xbd\x8a\xd5N[7\x9b\xba\xde\x85\xae{8\x1cP\ -\xda\x09QQ\xae\xdd[\xcbq`*L\xae\x1e\xd7\xef\ -\xdfY\x96\x05k\xe7U\x98\xc4\x91\xdd\xcd\xd9\xed\xcb\xac\ -\xc1&\xb1\xab3\xbd\xd5y]\xb9\x04\x11\xd7\x1e\xe1\xe3\ -\x13>6\x1e\xa4\x8f:.\xb6\xdb\x22\xaf\x9a\xa9y\xf5\ -a\x8c.\x93\xd5\x007.\x1dX\x83\x22A\x10\xb8\x98\ -\xba\x94:\x80p\xaa\xa7\xbcVG\xe7\xd9\x5c\xf0\xf3\xa5\ -\xb9\x14c\xec\x82n\x04}%,\xac\x80\xd9\x1d\xfc\x0e\ -\xf8^\x80\xaab_\xc6z\x05\x135\xcau\xed>|\ -{\x18\x94\x0eFI\x9d\x8c\xed\xf4\xc4\x9e\xad{\xc6v\ -\xae\xb6\xba\xda\xa9XWn/o\x0d\x1c\xd2\xa4\xdeD\ -6\xf7\xdb\xe1F\xa7\xebM}\x1a?\xa6\xfa\xf0[q\ -\x8clla\x8b\xfb\xf0\x0fa\xf3\x90V\x9d&\x91\x0d\ -1\xd1\x0e|J\x9c^\xdf\xad\x15\x0e*\x8c\x02\x8a\x84\ -uC\xb1\xc4:&\xab`ugQL\xb1\x83\xb9\x83\ -\xfd\xdbvZ\x1fi\x98\x14\xb1\xf1<\xb2\xe3\x22+\xca\ -\xbf\xd7e\x9aPdH\xbc7\xb8E\xa2WU3\xa1\ -\xf5\xc4\x0c\xb9m\xb9\xadr0b,$&\x90\x11t\ -\xa9\xaa\x8e\x00\xcb\xda\xa9\xb5n\xecG\xf6\x87U\xf3\xf4\ -\x9aeQ&\xba\xecu\xb2y\xceu\x05p\x9a\xd6O\ -m\xad\xf4\xf6\xfb\xa0\x8d\xe1\x01\x80g\x00\xd5F%\xc5\ -!\xb2\xe9D\xfb\xa3(\xb6\x91\xed#/\xe0\x92c9\ -\xd1\xc7\xb0-\x12I&\x03*\xc8T\x0bk2\x8c\x18\ -!\x01\xe7\x13-\x10\xbb7\xf5\xe4\xec\xf3\xb4\x86|\xdd\ -\x1d\xa7\x06\xf6ei\x10\x99z\xd2\x10\xfe\x9aq>\xac\ -Rm\x8a\x83\xd9\x8c\xc8^\xa9\xec\xc4\xe4\xbc\xb1C\x9a\ -C\x94N\x97m\xc4\xef\xf3k\x0a\xe93\x90`\x22\xe7\ -0\x10\xb8G\xe7\x94\x107\xf5\xe6\x94[uL\xb7\xe9\ -\x0f\x0d\x9e\x93!S\xb6\xbaV\x89\xaa\xd5(?z\x91\ -\xd7f\x1a\x80\xa0/\x84\xbf?|\xe9\x86 \x88\xe3\xf0\ -\xaf\xa2\xfc\xde\x8f\xe11\x10\xb5,\xf6\xe0\xbd}\x7f\x92\ -/\x928\x84J\xde\xaa\xfa>\xdd\xc2\x8e\x9b.\xf0+\ -\x14\xee\xc2=)\xce\xd1\xf5\xd3N\x8f\xec\xb6\x96K\xdd\ -6\x85\x17\xdbc\x12oS3\xcb\xfd\xa3N\xb3\xec\xab\ -Y\xa6\x0fod6\xad3=\x92.\xdc.\x86>F\ -w\x1c\xe4\xc2\xedIh\x87\xeb\xe7\x94fj\xa9\xb3\xc8\ -\xfe\xacv\xca\x9a\xe6\xdf\xba,\xf6\xbbm\x91\x80\xbfM\ -\x06\xd9#v\x1b\xc10\xa5.U^\x19\x1e\x22\xbb\xf9\ -o\x06\xc7\xc8\x0d\xbes\x08\xc6\x1c1I\xe9\xed\xb0\x09\ -\xeb! c\xe6,%\xcf\xec\x00\xa5ez\xbc\xc1\xc8\ -\x97\x92H&\xd8\x1d6?\xa7!ERx\x9e\xef\x05\ -w\x84y\x88x\x94\x91\xdb\x93\xa5\xaa~\xca\xc0\xef\x15\ -P\x19v-\xe1cU\x97\xc5w\x1d~\xe0\x89\xf9\xb1\ -Gy\x90\x96q6\xde.(\x16\x8a\x88\xe4\x1e\xa4\xb9\ -=\x92\x9b\x8a\x84\xac&\x882\xc9\xce\x14\x90\xcf\x14*\ -\x19\x5c\x11g3L\x90;Uo\x18cr,\x7f\xe6\ -\x9f\x84\xb3\xe5\xa3\x198]\xb7\x09\xa1\xcb\xc2\xfaX\xf8\ -~+/\xf7\x99\x0e\xf5\xa3\xce\x8b$\x19\x22\xe9&\xb6\ -\xc3\xb64C\x828g\x84\x0b\x16\xec\x8e\xbd&Ks\ -\x0d[\x1a.\xf7u=\x96\xfdS\xa4y\x08i\xa7\xcb\ -^\xda/O\xc6\xb9w\x91 \xfa\x02A\x14Q\xc1\xf8\ -s\x82`\x9bX\x00\xcdN\xce\x11\xe4\xb0Y\x8a<\xd8\ -@ouN\x11\xb9\xc0L\x87\x7f\x91\x19A\xfe3f\ -\xa8@\xdc\x13\x93\xd4\xe1\x1c\xf9L\x12o\x96\x98\xf9\xdc\ -\x09\x96&\x09^OL\x87\xbf6b\x18\x1c\x92\x1e!\ -\x13b\xa0\xd4\x02,\xd9lM9\xde\x85\xaa2\xd7\x9c\ -\xd73\xd3\xe1\xaf\x8d\x19.\x91O\xa9\x98t\x9b\x00\x09\ -.1g\xb3\xcc\x88Yf$]\xad\x82\xe5\xeb\x99\xe9\ -\xf0W\xc7\x0cG\x81'\xfc\xe7\xcc\x10\x81\x08\xa7\x0c\xcf\ -3\xc3\xc4O_N\x1cQ9\xed3\x02\x05>\x85\x17\ -%\x7f\xbe\xd1\xd0\x0b\xf5\xb4\xf4\xdeVO\x0d\xfe\xeaZ\ -0\xf8\x80\x89?\xa5F\xfa\xd0\x99}2KM0\xcb\ -\x0c\xc6K8o^\xcfL\x87\xbf6f\xe0^\xe3\x13\ -\ -\x22\xd4\x0f^\xb8\xd70L\x02y\x81\x1a\xf9\xffj7\ -\x0bw=|\x9b\xd1q\xfd\xe2\xcb{^\xe4\xfa\xf9\x9b\ -\xb1\xcf\x03a\xdepO\xb7\xb0\xe69\xf7\x96!_x\ -\x1cn\x82b\xe2WY\xec\xf3>T\xa7q2K\xe1\ -O\xc8{Y\xa2\xaa\x8d*K\xf5\xd4,o\x9f}\xb2\ -0\x9er2~\x9b\xef?\xc0rs\xef\x14\xfeH3\ -|\x8b\x9d\xaa\xcc\x86\xa2\x80\xfa\x1e\xf6F\xc7g\xb3\xff\ -X\x9a\x97\x9e\xd1\xfe\x97\x8d\x18\x11_z\xe2\xf4\xcd\xab\ -!oa>E\xc1\xdf\x7f\x01\x99a\xaf\xce\ -\x00\x00\x18\xf9\ +\x00\x17]x\xda\xddX\xdfs\xa36\x10~\xcf_A\ +\xb9\x97d\x1a\x84~#q&7\xd3\xcb\xdc\xcc\xbd\xb6\ +\xd7\xe9c\x07\x83l\xd3`\xf0\x00\x8e\x9d\xfb\xeb\xbb\xc2\ +`l\x1cn\x92\xa7\xba\x87\x9d\x89\xb5\xfbI\xda\xfd\xb4\ +\xbb\x92\x98}\xda\xafs\xe7\xd9TuV\x16\x91K\x10\ +v\x1dS$e\x9a\x15\xcb\xc8\xfd\xf3\xdb\x17O\xb9N\ +\xdd\xc4E\x1a\xe7ea\x22\xb7(\xddO\x0f7\xb3_\ +<\xcf\xf9\x5c\x99\xb81\xa9\xb3\xcb\x9a\x95\xf3\xb5x\xaa\ +\x93xc\x9c\xdbU\xd3lB\xdf\xdf\xedv(\xeb\x84\ +\xa8\xac\x96\xfe\x9d\xe3y\x0f77\xb3\xfayy\xe38\ +\x0e\xcc[\xd4a\x9aDn\xd7a\xb3\xad\xf2\x16\x98&\ +\xbe\xc9\xcd\xda\x14M\xed\x13D|w\x80'\x03<\xb1\ +\xb3g\xcf&)\xd7\xeb\xb2\xa8\xdb\x9eE\xfd\xe1\x04\x5c\ +\xa5\x8b#\xdaZ\xb3c-\x88h\xad}L}J=\ +@x\xf5K\xd1\xc4{\xef\xbc+\xd8\xf8ZW\x8a1\ +\xf6A7 \xdf\x86\x0ak t\x03\x7fGx/@\ +u\xb9\xad\x12\xb3\x80~\x06\x15\xa6\xf1\x1f\xbf=\x1e\x95\ +\x1eFi\x93\x9e\x0c\xd3\xf3y6\xeb\x19\xc9E\xbc6\ +\xf5&NL\xed\xf7\xf2\xb6\xff.K\x9bU\xe4r\xd5\ +\xb6V&[\xae\x9ac\xf393\xbb\xdf\xca}\xe4b\ +\x07;\x5c\xc1\x17a\xfb\x90V\x9b\xa5\x91\x0b\xde\xd0\x03\ +t\x88\x94N\xdb\xcd\x12\x1e5\x18i\x8a\x84sK\xb1\ +\xc4&!\x0b\xbd\xb8w(\xa6\xd8\xc3\xdc\xc3\xea\xae\xed\ +\xd5{\x18\xa6ebM\x8e\xdc\xa4\xcc\xcb\xea\xefe\x95\ +\xa5\x14Y\xee\x1e\x006K\xcd\xa2\xb6\xf0\x83\x11\xb6\xc5\ +]\xc7oU\xc7\x11l\xf7\xd4z0\x00\xe7q}\xf0\ +\xdaq6\xf1\xd2\xb4CG\xee\x87E\xfbt\x8ayY\ +\xa5\xa6\xeaU\xb2}\xceT%\xb0\x985/\x87\x9c\xe8\ +\xc6\xee}\xb5\xa3\x1e\xf5\xf8u}\xbd\x8a\xd3r\x17\xb9\ +t\xac\xfc^\x96\xeb\xc8U(\xd0\x5cr,\xc7\xea\x04\ +\xd6A\x22\xc9\xa4\xa6\x82\x5c(a>\x86\x11#Ds\ +>V\x02\x97[\x9b5\xde\xb6\xc8\x1a\x88\xcc\xcd\xfe\xa2\ +\xfb\xb6\xaa, \x8f_\x0c\xb8\xbdd\x9c\xf7S\xd4\xab\ +rg\xd9\x8f\xdcE\x9c\x1f\xe9\x9b\x1ci\x97\x15\xe0\x9d\ +\xd7\x85\x15Q]$]\x22\xfaP#\x98\xc8\x09\x088\ +\x1c\xd0\x09\x1d\xf8K\x83\x09\xdd:\xdeg\xeb\xec\xbb\x01\ +\x9bI\x1f\x16k\xd3\xc4i\xdc\xc4C0\xf4\x92\xa0\x0d\ +)\x80@\xd2\x87\xbf?~9\xb4\xa0\x9d$\xe1_e\ +\xf5\xd45\xe1\xb1\x80x^n\xc1j\xf7\xe1(\x9e\xa5\ +I\x08i\xba\x8e\x9b\x87l\x0d\xebk3\xfcWH\xcb\ +\x99?(\xce\xc0\xcd\xcb\xc6\x0c\x83\x1e\x86\xad\xcc!\xdf\ +_-zi\xb2\xcel'\xff\x8f&\xcb\xf3\xafv\x92\ +\xce\xad\x93A\xb3&7\x83p\xe6w\xd6w\xbe\xf9'\ +\xce\xcd\xfc\xde\xf5\xb6\xb5\x1c\x91\x98\xc7s\x93G\xee\xe7\ +x\x13;\x17q\xb6\xac\xca\xedf]\xa6`h\x1b+\ +\xee\xc0g\xdb\xee;4U\x5c\xd4\xd6\xf9\xc8m\x7f\xe6\ +\xb0!\xdc\xe2{\x8f`\xcc\x11\x93\x94\xde\xf5\xac/{\ +7\xec\x18\xa7\x81w6\x08\x90Xe\xfb[\x8c\x94\x94\ +D2\xc1\xee\xb1\xfd\x0cM\x8a\xa4\x08\x02\x15\xe8{\xc2\ +\x02D\x02\xca\xc8\xddq\xa0\xbay\xc9\xc1\xe2\x05\xb0\x17\ +v\xd9\xfe\xb1n\xaa\xf2\xc9\x84\x1fxj?\xee\xb0\xea\ +Y\x95\xe4'\xeb\x03\xe9@\x11\x91<\x80Xv\x07\xb1\ +M8\x08]\x82(\x93\xecT\x0eAK!M\xc1\x0a\ +q\x8a\xb7\xdem\xe2f\xc5\x18\x93'\xe2\x91e\x12\xb6\ +\x88\x8f\xb6\xe1uU$\x84\xa2\x09sc\xa1\xd4A^\ +ms\x13\x9agS\x94iz\xf4\xa1\xebxh\x1er\ +/$\x88sF\xb8`z\xb3\xef5yV\x18X\xc6\ +p\xbem\x9aS\xd9?eV\x84\x10c\xa6\xea\xa5\xfd\ +\xf4\xe4$\xd0~D\x0d\xbd\xa4\x86\x22*\x18\x1fQ\x03\ +k\xc34\xd409A\x8d\xc7\xa6\xc8\x09`\xd1\x82\xc5\ +99\xe4\x07\x9ct\xf8W9\x11\xe4\xbf\xe1\x84\x0a\xc4\ +\x031\x0e\x17\xce\x91b\x92\x04S\x94L\xc6\x8b\x9e\xdb\ +\x85\x7f;%\x1d\xfe\xaa(a\xb0\xdf\x05\x84\x8c)\x81\ +\xbc\xd2X\xb2\xa9\x0c\xf2\x82\xe9\x1c\xb2\x07\x94\xb7s\xd2\ +\xe1\xaf\x8a\x13.\x91\xa2T\x8c\xab\x8aF\x82K\xcc\xd9\ +\x14'b\x8a\x13I\x17\x0b=\x7f;'\x1d\xfe\xba8\ +\xe1H\x07B\x8d8!\x02\x11N\x19\x9e\xe4\x84\x89\x9f\ +:y8\xa2\xf2\xa2\x9e\x08\xa4\x15\x85\xbb\x8c\x9a,(\ +t:{\xe6\xc1\xfb\xb2\xa7\xc5_W\x91\x05\x030Q\ +\x17\xa4H\x05\xa5W\x91)R\xf4\x14'\x18\xcfa/\ +y;'\x1d\xfe\xaa8\x81s\x8a\x22x\x1c(\xb0E\ +3&8\xd1S\x9c\x90)Nb\xfd\xbe*\xdb\xe1\xaf\ ++N\x18b\x175\x96B\xee\xd8\x03\xd7$#\xd3;\ +\xcf\xcf\x10'\xb45\x80\x8e\x0fmp\xb8\xd6\x1cN\xd7\ +\xd3\xac\xe0iVT\xfa>VZ\xfcu\x95Y\xc8\x1e\ +\x16\x8c\xb3\x871$\x18\xe6\x01\x9dfE\xff\xcc\xa7\x14\ +&\x91\x16\x17;2d\x10\x17\x81\x90l\x9a\x156\xcd\ +\x8a\xa1\xefc\xc5\xd0\xab\xab*\x0a\x11\xaa\xf4\xe59\x85\ +a\xa2\xe54)\xf2\xffTVf\xfe\xb2\x7fgb\x92\ +\xe6\xb5[vQ\x16f|\x91U\x5c\x0b{!\x1d\x8e\ +T\xedsn*CJ\x04\x1c\x0eu\xe2\xc2\xa8\xaa\xdc\ +\x16\xbd\x9f^ka\x9e\xc1\xbf\x90\xf7\xb24\xaeWq\ +U\xc5/\xed\xf4\xee\xe9\x8b\x05k'''W\xef\xfe\ +\xbd'\xb7\x07H\xa1\x06\xc5\xf1\x15\xe8\x85\xc6\xae#\xd2\ +T\x058\x186\xc6v\xd1\xb1\xb4\xd7\x95a\xd1\xabV\ +\x8a\x88\x92\x818\xbe\x81\xb2\x9c\xcd\xec\xcb\xa1\x87\x9b\x7f\ +\x01o!\xa7\xef\ +\x00\x00\x18\x82\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -g\x0d\x0a aria-l\ -abel=\x22\xce\xb1\x22\x0d\x0a \ - inkscape:trans\ -form-center-x=\x227\ -.0618931\x22\x0d\x0a \ - inkscape:trans\ -form-center-y=\x22-\ -1.1769834\x22\x0d\x0a \ - style=\x22font-s\ -tyle:normal;font\ --weight:normal;f\ -ont-size:317.421\ -60034px;line-hei\ -ght:1.25;font-fa\ -mily:sans-serif;\ -letter-spacing:0\ -px;word-spacing:\ -0px;fill:#00d4aa\ -;fill-opacity:1;\ -stroke:none;stro\ -ke-width:7.93554\ -115\x22\x0d\x0a id=\ -\x22text4524-9\x22>\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \ -\x0a <\ +sodipodi:guide\x0a \ + position=\x22\ +-203.24978,577.9\ +9157\x22\x0a ori\ +entation=\x220,1\x22\x0a \ + id=\x22guide9\ +22\x22\x0a inksc\ +ape:locked=\x22fals\ +e\x22 />\x0a \x0a \ +\x0a <\ +g\x0a aria-la\ +bel=\x22\xce\xb1\x22\x0a \ +inkscape:transfo\ +rm-center-x=\x227.0\ +618931\x22\x0a i\ +nkscape:transfor\ +m-center-y=\x22-1.1\ +769834\x22\x0a s\ +tyle=\x22font-style\ +:normal;font-wei\ +ght:normal;font-\ +size:317.4216003\ +4px;line-height:\ +1.25;font-family\ +:sans-serif;lett\ +er-spacing:0px;w\ +ord-spacing:0px;\ +fill:#00d4aa;fil\ +l-opacity:1;stro\ +ke:none;stroke-w\ +idth:7.93554115\x22\ +\x0a id=\x22text\ +4524-9\x22>\x0a <\ +path\x0a d=\ +\x22m 179.26521,143\ +.85114 -4.12649,\ +-6.03101 c -10.4\ +7491,9.84007 -18\ +.09303,12.37944 \ +-23.48919,12.379\ +44 -5.07875,0 -9\ +.20523,-0.95226 \ +-13.64913,-6.983\ +28 -4.12648,-6.0\ +3101 -10.47492,-\ +19.36271 -13.649\ +13,-28.88536 l -\ +5.07875,-14.9188\ +16 c 7.93554,-12\ +.696864 15.23624\ +,-26.663414 18.7\ +2788,-33.64669 3\ +.49163,-6.665853\ + 12.69686,-25.71\ +1149 13.3317,-32\ +.059581 -2.53937\ +,-3.491638 -4.44\ +39,-6.348432 -6.\ +98327,-11.109756\ + -1.26969,-0.634\ +844 -4.12648,-1.\ +587108 -5.39617,\ +-2.221952 -3.174\ +21,26.345993 -6.\ +03101,35.233798 \ +-14.91881,53.961\ +673 -0.95227,1.9\ +04529 -5.07875,9\ +.840069 -7.93554\ +,15.236236 L 96.\ +418167,31.483892\ + C 91.022,17.199\ +919 81.499352,15\ +.930233 74.51607\ +7,15.930233 67.2\ +1538,16.247655 5\ +7.057889,21.6438\ +22 47.852663,31.\ +483892 c -6.9832\ +76,6.983275 -11.\ +7446,15.236236 -\ +15.87108,25.0763\ +06 -9.84007,28.2\ +50522 -13.966551\ +,66.023692 -9.52\ +2648,91.417422 1\ +.904529,10.47491\ + 9.522648,24.441\ +46 17.140766,24.\ +44146 13.014286,\ +0 22.536934,-6.3\ +4843 31.424738,-\ +13.64913 12.0620\ +21,-11.42717 24.\ +441464,-25.71115\ + 33.011851,-36.8\ +209 9.52264,33.0\ +1184 22.53693,50\ +.47003 35.23379,\ +50.47003 7.3007,\ +0 16.50593,-5.39\ +617 26.02857,-14\ +.60139 z m -78.4\ +0314,-31.74216 c\ + -7.618119,10.79\ +233 -15.553659,2\ +0.31498 -22.8543\ +55,26.98083 -8.8\ +87805,8.25297 -1\ +7.77561,11.10976\ + -23.80662,11.10\ +976 -4.126481,0 \ +-6.665854,-4.443\ +9 -8.252962,-12.\ +69686 -3.491638,\ +-20.31499 -4.126\ +481,-54.596519 2\ +.221951,-80.9425\ +12 2.539373,-10.\ +474913 9.205227,\ +-19.680139 16.50\ +5923,-19.680139 \ +9.84007,0 14.283\ +972,5.713589 18.\ +727875,19.680139\ + z\x22\x0a sty\ +le=\x22font-style:n\ +ormal;font-varia\ +nt:normal;font-w\ +eight:normal;fon\ +t-stretch:normal\ +;font-family:'Te\ +X Gyre Pagella M\ +ath';-inkscape-f\ +ont-specificatio\ +n:'TeX Gyre Page\ +lla Math';fill:#\ +00d4aa;fill-opac\ +ity:1;stroke-wid\ +th:7.93554115\x22\x0a \ + id=\x22path\ +823\x22 />\x0a \ +\x0a \x0a \x0a \x0a <\ +path\x0a \ +style=\x22fill:none\ +;fill-rule:eveno\ +dd;stroke:#162d5\ +0;stroke-width:1\ +.55563581;stroke\ +-linecap:round;s\ +troke-linejoin:b\ +evel;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1;\ +paint-order:fill\ + markers stroke\x22\ +\x0a d=\x22M\ + 8.1034569,42.45\ +191 C 15.791519,\ +42.977784 18.461\ +889,10.499044 41\ +.33283,10.900594\ +\x22\x0a id=\ +\x22path825\x22\x0a \ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22\x0a \ + sodipodi:nodety\ +pes=\x22cc\x22 />\x0a \ + \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07Q\ +\x22\x0a id=\x22p\ +ath825-6-7\x22\x0a \ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x07\x1b\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/s\ -vg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0a \x0a \x0a \ +\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x10\xa0\ +\x22 />\x0a \x0a\x0a\ +\x00\x00\x10I\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a <\ -text\x0d\x0a xml:s\ -pace=\x22preserve\x22\x0d\ -\x0a style=\x22fon\ -t-style:normal;f\ -ont-weight:norma\ -l;font-size:31.0\ -2170181px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#2167\ -78;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.775\ -54256\x22\x0d\x0a x=\x22\ --48.97916\x22\x0d\x0a \ - y=\x2236.47298\x22\x0d\x0a \ - id=\x22text4524\ --9-2\x22>\x0a \ +\x0d\x0a \x0a \x0a \x0a \x0a \x0a \x0d\x0a\ - \ +\x0a\x0a\ +\x00\x00\x0f8\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0f\x94\ +troke-opacity:1\x22\ + />\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a\ +\x0a\ +\x00\x00\x0f\xa0\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \ - \x0a \x0a \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\ -\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0f\xf3\ +-dasharray:none\x22\ +\x0a d=\x22M 181.4\ +2373,170.84746 H\ + 16.271186 l 1e-\ +6,-152.135596\x22\x0a \ + id=\x22path812\x22\ +\x0a inkscape:c\ +onnector-curvatu\ +re=\x220\x22\x0a sodi\ +podi:nodetypes=\x22\ +ccc\x22 />\x0a\x0a\ +\x00\x00\x0b\xee\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0cC\ +\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \ + \x0a\x0a\ +\x00\x00\x0a\xc2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ -odipodi:nodetype\ -s=\x22csc\x22\x0d\x0a \ - inkscape:conne\ -ctor-curvature=\x22\ -0\x22\x0d\x0a id=\ -\x22path4140\x22\x0d\x0a \ - d=\x22m 16.067\ -796,70.882731 c \ -10.422221,0 11.3\ -22848,-16.118588\ - 15.206749,-16.1\ -24554 3.99427,-0\ -.0061 3.965545,1\ -6.035528 14.0906\ -55,16.124554\x22\x0d\x0a \ - style=\x22f\ -ill:#e11e5a;fill\ --opacity:1;fill-\ -rule:evenodd;str\ -oke:#e11e5a;stro\ -ke-width:0.5;str\ -oke-linecap:roun\ -d;stroke-linejoi\ -n:miter;stroke-m\ -iterlimit:4;stro\ -ke-dasharray:non\ -e;stroke-opacity\ -:1\x22\x0d\x0a tr\ -ansform=\x22transla\ -te(1.0067283,-25\ -.887299)\x22 />\x0d\x0a \ - \x0a \x0a \x0a <\ +path\x0a styl\ +e=\x22fill:none;fil\ +l-rule:evenodd;s\ +troke:#ff6600;st\ +roke-width:16;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:miter;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1\x22\x0a d=\x22m\ + 95.091973,56.17\ +2243 0.09447,79.\ +795097\x22\x0a i\ +d=\x22path812\x22\x0a \ + inkscape:conn\ +ector-curvature=\ +\x220\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b\x0d\ +/>\x0a \x0a\ +\x0a\ +\x00\x00\x0f\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \ +\x0a \x0d\x0a <\ +tspan\x0a s\ +tyle=\x22fill:#9999\ +99;fill-opacity:\ +1;stroke:#999999\ +;stroke-width:0.\ +29937106px\x22\x0a \ + y=\x2227.66311\ +5\x22\x0a x=\x221\ +5.134903\x22\x0a \ + id=\x22tspan837\x22\ +\x0a sodipo\ +di:role=\x22line\x22>B\ +us\x0a \x0a\x0a\ +\ +\x00\x00\x071\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x10\x06\ +:1\x22\x0a d=\x22M 7.\ +6054021,38.16002\ +8 40.868101,38.4\ +62416 23.631976,\ +9.1307637 Z\x22\x0a \ + id=\x22path4489\x22\x0a\ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22 />\x0a\x0a\ +\ +\x00\x00\x06\xec\ +\x00\ +\x00\x17hx\xda\xe5X\xcbr\xe3\xc6\x15\xdd\xeb+\x10\ +\xccf\xa6B4\xfb\xfd\xa0I\xb9*\x99r\xc5\x8b\xd9\ +\xc4\x8f,S\x10\xd0$a\x91\x00\x0b\x80D\xc9_\x9f\ +\xd3$\xf1\xe0\x88\x94\x1de\xe2Y\x98\x90J\xec\xdb\xb7\ +\xbbo\x9f{\xee\x03\x9a\x7f\xfb\xb4\xddD\x8f\xben\x8a\ +\xaa\x5c\xc4\x8c\xd08\xf2eV\xe5E\xb9Z\xc4?\xfd\ +\xf8]b\xe3\xa8i\xd32O7U\xe9\x17qY\xc5\ +\xdf\xde\xde\xcc\xff\x92$\xd1\xdfk\x9f\xb6>\x8f\xf6E\ +\xbb\x8e\xbe/\xef\x9b,\xdd\xf9\xe8\xfd\xbamw\xb3\xe9\ +t\xbf\xdf\x93\xe2$$U\xbd\x9a~\x88\x92\xe4\xf6\xe6\ +f\xde<\xaen\xa2h|&\x8b\x83\xa0\xc8\x171\xe6\ +\xf8a\xb0/\xf2v\x8d9w\x1c\xae}\xb1Z\xb7\xc3\ +\xf8\xb1\xf0\xfb\xbfUO\x8b\x98F4\x820\xea&\x1a\ +X\xbe\xc3\xef,\xaf\xb22\xdd\xc2\xe0\xb6\xd8\xfa\x7f7\ +\xbe.|C\xb0\xfd\xf1\xa8\x93]\xb3\xb1\x11\x84G\xef\ +iJi\xb6TB\xb8I\xc4)\xe7\x09\xc5\x8f\xfcp\ +X\x04\xa0\xcaf\xd6-]\xc4\xd7\xee\x19\x8emvi\ +\xe6\x9bi'\x1f\xad\xef\x0c\xec\xd7w\x02\xd2T\x0fu\ +\xe6\x97\xd8\xc2\x93\xd2\xb7\xd3\x8f?~\xec'\x13J\xf2\ +6\x1f\xb69;}/\x0e\xe7rJ\xe9\xb4\xbb\xe1\xe9\ +\xb0\xc7\xd5\xef\xd4\xac\xf3\xe5%M\xe6\x9c\x9bR>\x05\ +\x12\xd0H\x9a\xe7\xb2M\x9f\x92\xb2y7Z\x9ae\xfd\ +\xca,0\xa2x\xf4Y\xb5\xddVes\x84\xe3L9\ +\x1f\x94w\x0f\xf5\xe6\xa0\x91gS\xbf\xf1[_\xb6\xcd\ +\x14~\x98\xc6\xb7\xd0\x9fo}\x9b\xe6i\x9b\x86\xb5G\ +rt\x12{P\x80\x0aL\x9a\xfd\xf3\xe3w\xc7\x11\xc6\ +Y6\xfbWU\xdf\x9f\x86\xf8\x04\x85\xf4\xaez\x00s\ +\xe2\xdb^<\xcf\xb3\x19`\xde\xa6\xedm\xb1MW>\ +@\xf1W\x987\x9f\x0e\x13g\xca\xed\xf3\xce\x0f\x9b\x1e\ +\xb7\xad\xfd\xd1_\x17\xaf\x93g\xdb\x22,\x9a\xfe\xd0\x16\ +\x9b\xcd\xf7\xe1\x908\x9a\xf6vNO\x86\x9e\xae1\x1d\ +\xddc>\xedny\x18\xe5~\xd9\x0c\x00\x84\x91>m\ +4\xef\x99\x1e\xf8\x96\x87\x808*\xeepXVm\xaa\ +z\x11\xbf[\x1e>\xf1q\xe2\xae\xaas_wS\xfa\ +\xf09\x9b\xaa@Z\x98\x8d`8\x89\xab\xbb_|\xd6\ +\xb6\xd5\xc6\xd7i\x19\xae\xca\xe8ifU#>/\xc9\ +\x1f\x8a\xdc_\x9a\xe8#.\x98\xd7\x1ftq\xb6Y\xa7\ +y\xb5_\xc4\xfc\xf3\xc9}Qb\x229\xa5\x06\xae\xa8\ +\xba\xa2\xd1g\x0b\xca\xba\x1b\x06\xf8z\xa0\xe4I\xd8\xac\ +\xab}\xb8\xc9\x22^\xa6\x9b\xc6\x7f\xbe\xdb\xafU\xb5\x0d\ +\x99\xc1\x08+\xa8|aN\x86\xf4\xc3\xa9%\x5cZ'\ +_L\xe2v\xd6\x12k\x9c\xe1\xd7\xcc\xc4zum\x0e\ +\xcb\xb9\xb92\xb7M\x9f\x8am\xf1\xab\xcf\x07O\x0d\xe7\ +>\xd45\x02)\xd9\xa4\xcf\xbe\x1e\xe5\xd3\x91J\xb8\xf5\ +\xab8\x1f\x18\xb4\xf6\xd9\xbd\xaf\xef\xaa\xb4\xce/\xf8)\ +\xf7\xcd}\xc7\xa4\x9c\x85\xa7\xa3\xe5j\xc0{\xc5(\xef\ +\x80iA\x88&\xc4\x16\xc28m\xeb\xe2\xe9\xbd \xc6\ +:\xed\x1c\x9bP<\xc3(\xb1\xd4\x10\xa9\xb5\xe2\x93D\ +\x19K\x98d\xd4}\xe8B~\xd5\xc5\xe1\xe1\x00\xeb:\ +\xcb.\x9d@\x09\x1c#\x8c\x16\x87\x13\x86\x11\xe7\xe14\ +k'L#\xe9s\xca\xe4\x87>;\xccwi\xbb\x1e\ +b\xbdi\x9f7\xa0\xf1\x12Q<+Q\xff\xbei\xda\ +\xba\xba\xf7\xb3w 9\x85\xc8\x8c\xc5\ +\x831\xb8\xf1'\x14:\xa2AG\xe6&\x92\x12\xea\xa8\ +\xd2:\xc27\xa9\xb8\x15\x13\xe1\x08@\xb4\x8cEB\x11\ +\x81\xbf\x82O\x84%r\xb4I\xc0-\xdc\x11%n$\ +\x1d\x92I\x85\xf8E\xe6B\x85\xc9\xb2l\x9c\xb4\xfe\x08\ +`\x905}\xfd&`\xb6\x01\x04!85j\x04L\ +\x22I\xc0*\xb8\x9aH\x19d\x97\x90\x90\xec7\x91\xe8\ +\x81\x98OW\xc74\xbdz\xc1v\xab\xe9U\xb2\x83|\ +\x8c\x0aI\xb5\xea\xb8\xd8\x0d\x19\xd1L Q\xd9\x89$\ +J!\x06\xb8\xe9\xc9>\x86|\x0c\xf8;a\xd2\xbb\xcc\ +v\x98\x8f\xe19\x02N\x89\x93F\xb1\xdd\xd3\xe7\xb0\xdf\ +=\xb4\xed\xeb\xa8\xbf\xc4\xf7\x80.\xe3D\x0b\x8d='\ +\x0c$\xb3\x5cr\x11e\x91\x22Z3\xed\xc4$\xe1\x88\ +Y\xc9\xb5\x8d\x90\xf3\xb8Q\x16\xc1\x8b\xf4'\xc1E'\ +\x22\xa6\x89\x00\xfaRCh\x083\x061\x07E\x08\x98\ +\x99\xa0\xb5Q\xdcI&\x22\x03f\x87\xf8\x94\x9ap\xa7\ +\xac9.T\xd8\xe1 \xb3Vj\xa5\x22\x06\xf0(g\ +\x9c\x85\x95\xa08w.b\x8a(f(u\x07C\x10\ +\x02B\xe8\x88[\xa2\x1d\x05' D\x96V\x12\xd9%\ +h:\xe5\xa8\xe3\x00^i\xc3u\xb8\x99u\x0eN\x08\ +\x91\xa2\xb0\x96\x9a\x88;\xe8S\xe7l\x88(c\x985\ +&b\xa0\x90E\xc6\x80\xf3\xa8\x0av`\x862\xa6&\ +\x89\x90\x90\x18\xa3U$8|\xc8\x0cN\x14\x820\x85\ +=\x0e\xfb++\x9c\x0bN\xb7Z\x1aX+\x88\x96\x8e\ +\xebI0[\x0a\x9c\x1d\x162\xe9\x94\x98h\x89\xd4D\ +\x95\x1c\x88\xda\xd1\xd4\xf1!\x8c\xaf\x84k\x965\xd9+\ +\xf9\x10\xbd\x15\xb3\xd4\x19}\xe0\xe00J8\xf0F\xd0\ +\xba\x09|\xe2\x90s\xc1\xc0\x9e\xef\xd78x\x16\xf42\ +\x0f\xcf9\x075A\x97)\xcc\xff1#\x1e\xf3!\x88\ +\xa94\x85\xfb\x98\x81\xd3\xc07\x17\xfd\x1c\xa1h\x04F\ +\x80\xa4\x1b\xb8\x1c\x98J\x8b!\x5c\xa0\x0c\x12\xe5\x05l\ +\xf9\x97\xc6\xed\xb3B\xa5\xcc\xab\x85\x0a=\x04\xd5\x8e\xb3\ +Sv\xe8\x87L\x805\xe8 P\xb4\x04xm\xacv\ +\xbfU\xab:\x9cpW&\xbey\xe9\xab\xe5\x12~\xa1\ +\xe7\xbezKz>\x0c6hD\xda\x99|c\xcav\ +\x88x\x090\x11\x8c\x94\xe1\x9eL\xa8(A(X\xe4\ +\x05d\x1a\x85\xea\xacG\xde\x1a\xfc\x85\x5c\xce\xc7\xe2\xbe\ +\xfb\xa9J\xd8\xdfVu\x82>\xe81m\x1fj\x1f\x9a\ +\x97Q\x15\xf3\x9bM\xb1k\xfcU\xd4\xd8\x08\xb1\xf0m\ +0\xbe\x07\xd0\xd9\xf0\x9c\x03\xc8Q\x81\xb9\x13_\x06\x9b\ +\xe1\x96v|\xcb\xd0o:M\xd4X\x846\xd1)\xa4\ +Y|\xc6\xaa5Tm\xc8$J\xa8\xb1~\xfd\xdc\xcb\ +5\x7fCq\xbftu\x04 \x13\xda}\x0d\x06}\x0a\ +\x0c\x12Z\xe0M\xe0\xc8 \x0bbD\x0a\x18I\xa3\x11\ +=Z\x13\xc4)\x22\xff2\xb8\xf2m\x14\xfa\x1f\xb1\xd2\ +\xf2\xeb@\xc5$J4\x0a\x96\x99h\x81\x8a\x14j\xd7\ +\xa5\x00\xbc\x02U\xa2\xfe\x0b\xb0.h\xf6I/\xc9\xf0\ +z\xe2\xeb\xf0\xf2#\x09\x17(\x7f\xd2\xfe\xae\x05\xa0\xae\ +\xb4D\xf0P/\xbf\x90;P\xef9^\xd0\xbe\x12u\ +\xd1c8-\x03s\x11\x90\x9c\xa1]\xfd9\xf4,B\ +\x89q\xa9?Kz\x7f\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -ellipse\x0d\x0a st\ -yle=\x22opacity:0.8\ -53;fill:#87decd;\ -fill-opacity:1;s\ -troke:none;strok\ -e-width:33.94197\ -845;stroke-linec\ -ap:round;stroke-\ -linejoin:bevel;s\ -troke-miterlimit\ -:4;stroke-dashar\ -ray:none;stroke-\ -dashoffset:0;str\ -oke-opacity:1;pa\ -int-order:normal\ -\x22\x0d\x0a id=\x22path\ -812-3\x22\x0d\x0a cx=\ -\x2230.305187\x22\x0d\x0a \ - cy=\x2219.820175\x22\ -\x0d\x0a rx=\x2212.25\ -7314\x22\x0d\x0a ry=\x22\ -12.652709\x22 />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a Bus\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07m\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#cccccc;f\ -ill-rule:evenodd\ -;stroke:none;str\ -oke-width:2.9734\ -8356;stroke-line\ -cap:butt;stroke-\ -linejoin:round;s\ -troke-miterlimit\ -:4;stroke-dashar\ -ray:none;stroke-\ -opacity:1\x22\x0d\x0a \ - d=\x22M 7.6054021,\ -38.160028 40.868\ -101,38.462416 23\ -.631976,9.130763\ -7 Z\x22\x0d\x0a id=\x22p\ -ath4489\x22\x0d\x0a i\ -nkscape:connecto\ -r-curvature=\x220\x22 \ -/>\x0d\x0a\x0d\x0a\ -\x00\x00\x06\xf1\ -\x00\ -\x00\x17\xf0x\xda\xe5X\xcbr\xe3\xc6\x15\xdd\xbb\xca\xff\ -\x80`63\x15\xa2\xd1\xef\x07M\x8d\xab\x92)W\xbc\ -\x98M\xe28\xcb\x14\x044IX$\xc0\x02 Q\xf2\ -\xd7\xfb4I\x80\x80E\xca\x8e2\x89\x16&\xa4\x12\xfb\ -\xde~\xdds\xcf}@\x8bo\x1f\xb7\x9b\xe8\xc17m\ -YW71#4\x8e|\x95\xd7EY\xadn\xe2\x7f\ -\xfe\xf0]b\xe3\xa8\xed\xb2\xaa\xc86u\xe5o\xe2\xaa\ -\x8e\xbf\xfd\xf8\xf5W\x8b?%I\xf4\xd7\xc6g\x9d/\ -\xa2}\xd9\xad\xa3\xef\xab\xbb6\xcfv>z\xbf\xee\xba\ -\xdd,\xcd\x03A\xca\x07\x9f\xd7\xdbm]\xb5G\ -L\xa6\xb3\x8b\xf3\xec\xdd}\xb39L)\xf2\xd4o\xfc\ -\xd6W]\x9b\xc2\x1di\xfc1,Xl}\x97\x15Y\ -\x97\x1dV\x1f\xa9\xd2\x8b\xecq\x0a&\xe1^\xf3\xbf\x7f\ -\xfa\xee4\x84 \xcf\xe7\xff\xaa\x9b\xbb~\x8cO\x98\x92\ -\xdd\xd6\xf7 R\xfc\xf1,_\x14\xf9\x1c\x88o\xb3\xee\ -c\xb9\xcdV>`\xf2g\x5cr\x91\x9e\x15\xd3\xd9\xdd\ -\xd3\xce\x8f\xf6=\xee\xdc\xf8\xa3\xf3.\x9aU\xe4\xdb2\ -\xacJ\xff\xd1\x95\x9b\xcd\xf7\xe1\x988J\xcf\x97MO\ -\xb7\xed\xadI\xc7\xe6,\xd2\xde\xdc\xe3\xb0\xf0\xcbv\x84\ -E\x18\xea~\xb7\xc5\xc0\xff\xc0\xc1\x22\xc4\xc9i\xea\x0e\ -g\xe6\xf5\xa6nn\xe2w\xcb\xc3'>in\xeb\xa6\ -\xf0M\xaf\xd3\x87\xcfTW\x83\xcb\xb8?\x82\xa4\x97\xd7\ -\xb7?\xf9\xbc\xeb\xea\x8do\xb2*\x18\xcdh\xafZ5\ -\x88\xde\x8b\x8a\xfb\xb2\xf0\x175C4\x86K\x0e\x87]\ -V\xb7\xeb\xac\xa8\xf771\x7f\xa6\xdd\x97\x154\xc9)\ -ypE\xd5\xb5)C>\xa1l\xb04@9`&\ -{i\xbb\xae\xf7\xc1\xa0\x9bx\x99mZ\xffl\xc3\x9f\ -\xebz\x1br\x87\x11VP\xf9\xfcN9r\x14\xa7\x96\ -pi\x9d|\xae\x85\x95\xd6\x12k\x9c\xe1W/\x8b\x1d\ -\xd4U%6\xe0\xe6\x9ar\x9b=\x96\xdb\xf2g_\x8c\ -\x1cw>\xfb\xbei\x10i\xc9&{\xf2\xcd8\xf9\x8e\ -\xe6\x04\xeb_\xc6\xfc\xc0\xaa\xb5\xcf\xef|s[gM\ -q\xc9k\x85o\xefzv\x15,<\x03[W#\xf0\ -W\x8c\xf2\x01\xa2\x0e\x1ciC\xf0!\xd6\xb3\xae)\x1f\ -\xdf\x0bb\xac\xd3\xce\xb1\x19\xc5s\x1e%\x96\x1a\x22\xb5\ -V|\x96(c\x09\x93\x8c\xba\x0fC^X\x0d\x81z\ -8\xc3\xba\xe1~\x97\x0e\xa1\x04n\x12F\x8b\xc3!\xe7\ -\x11\xe7\xe1@kgL\xa3Jp\xca\xe4\x87s\x0aY\ -\xec\xb2n=\xca\x07m\xf7\xb4\x01\xbd\x97\x88\xf4y\x85\ -\xe2\xf9M\xdb5\xf5\x9d\x9f\xbf\xe3yF\xad;\x0d\x8f\ -<\x9d3\xa2z\xc1\xa6\xac<\x00\x9b7\xf5}U\x8c\ -\x85?\xd5e5\x95\x16\x19\x5c\xd24\xd9\xd3\xf8\x80\xe4\ -\x149s\x16\x8fn\x03\xab?\xa3<\x12\x0d\x8227\ -\x93\x94PG\x95\xd6\x11\xbeI\xc5\xad\x98\x09G\x00\xa5\ -e,\x12\x8a\x08\xfc\x15|&,\x91\xe3]\x02x\xc1\ -L\xd4\xc5\xb1\xf8\x9cmj\x846\x12\x1c\x8aR\x9e\xe7\ -\x93\xdc\xf6\x7fA\x07\xe9\xd57\xafCg\x1b\x90\x10\x82\ -S\xa3F\xe8$\x92\x04\xc0\x82\xcb\x89\x94Av\x11\x0e\ -\xc9~\x1b\x8e3\x1a\x8btu\xca\xe8\xab\x0b\xfc\xb7\x9a\ -^\xa7?\xb8\xc8\xa8\x90T\xab\x9e\x9a\xfd\x90\x11\xcd\x04\ -2\x99\x9dI\xa2\x14\xa2\x82\x9b3\xfd'\xe0\x8f\xa1\x7f\ -'Lv\x9b\xdb\x1e\xfd1PG\xe8)q\xd2(\xb6\ -{\xfc\xb5\x03n\xef\xbb\xeee\xfc/ }\xc0\x99q\ -\xa2\x85\xc6\xa63\x06\xceY.\xb9\x88\xf2H\x11\xad\x99\ -vb\x96p\x04\xb2\xe4\xdaFH\x89\xdc(\x8b\x88F\ -v\x94\xa0\xa6\x13\x11\xd3D\xc0\x0fRCh\x083\x06\ -Q\x88\x89\x1003Co\xa4\xb8\x93LD\x06D\x0f\ -\x11+5\xe1NYs\x5c\xa8\xb0\xc3Af\xad\xd4J\ -E\x0c\xf8Q\xce8\x0b+\xc1x\xee\x5c\xc4\x14Q\xcc\ -P\xea\x0e\x17AD\x08\xa1#n\x89v\x14\xec\x80\x10\ -Y\x5cI\xa4\x9c0\xd3)G\x1d\x07\xf6J\x1b\xae\x83\ -e\xd69\xf8!\x04\x8e\xc2Zj\x22\xee0\x9f:g\ -C\x80\x19\xc3\xac1\x11\x03\x99,r\x08\xfcGU\xb8\ -\x074\x9415K\x84\x84\xc4\x18\xad\x22\xc1\xe1Ff\ -p\xa2\x10\x84)\xecq\xd8_Y\xe1\x5c\xf0\xbb\xd5\xd2\ -\xe0\xb6\x82h\xe9\xb8\x9e\x85kK\x81\xb3\xc3B&\x9d\ -\x123-\x91\xac\xa8\x92#\xca\xf6\x84u|\x14\xd6W\ -\xa27\xcf\xdb\xfc\xa5$\x89\xd6\x8cY\xea\x8c>0\xf1\ -9C\ -{\xfbc\xe8l\x84\x12\x93~`\x92\x0c\xdf\x84\xbdo\ -\x89\x13\x8aG\xe8\x0f\xd1m\x9a\xc3k\x1e3(\x19\xd1\ -C\x84f@\xe1\xab\xbe\x86S\xc2\xffhH}>\xb6\ -\x9a\x9a\xe3\x9d\x1b\xe1m\xd1\xc18\x15\xfd\x0d\xe1\x0f\xa4\ -\xa4\xa2\xfc*T\xf2\x8f\x07\x15R\x1f^\x124Z<\ -\x84\xa1\xa6\xda\xe2%\x05PiN\x00\xdaKP%\xe2\ -U`M\xdf1\x17\xe1\xbf\x99\xf8\xfb\x0b;\x08\xb9\xd7\ -\ -\x00\x00\x0a\xde\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g1\ -419\x22\x0d\x0a tra\ -nsform=\x22matrix(0\ -.61848879,0,0,0.\ -61848879,3.18349\ -97,17.72063)\x22>\x0d\x0a\ - \x0d\x0a \x0a \x0a \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x05a\ -\x00\ -\x00\x12.x\xda\xd5X\xdb\x8e\xdb6\x10}\x0f\x90\x7f\ - \xb4/\x09jQ\xbc\x8bT\xec\x0d\xd0\x06\x01\xfa\xda\ -\xa6\xe83W\xe2\xda\xca\xeabH\xda\xf5n\xbe>C\ -\xd9\x92\xecXN6h\x8b&B\x82\x983\xc3\xe1\xcc\ -\x99\x99C)\xcb\xb7\x8fe\x81\x1e\x5c\xd3\xe6u\xb5\x0a\ -(&\x01rUZgy\xb5^\x05\x7f}x\x1f\xea\ -\x00\xb5\x9d\xad2[\xd4\x95[\x05U\x1d\xbc\xbd~\xf9\ -b\xd9>\xac_\xbe@\x08\xed\xf2\xac\xdb\xac\x02\xa1\x83\ -~\xb9q\xf9z\xd3M\xeb\x87\xdc\xed~\xad\x1fW\x01\ -A\x04\x09\x8dF\xf9t\x22\xddK\xf2l\x15\x80S\xb1\ -_\xb5\x10\xc1\x16\xfe&Y\x9dV\xb6\x84\x833[b\ -\xd0\x1f\x8c\xab\xbb6\xb5[\x97\x1c\xfb\xc1\x0c\xbd\x22\x96\ -\x90\xf4Vrn\x16\x88\x11\xc6B\x02\x7f\xc4\xeb\xfd.\ -H\xb5j\x93a\xef*\xd8t\xdd6\x89\xa2\xddn\x87\ -\x07!\xae\x9bu\xe4\x0fl\xb76um4\xc8\x8f\x1d\ -\x0c\xb1\x8d\x0e\x06\x01n\xeb\xfb&u\xb7\xe0\xc3\xe1\xca\ -u\xd1\xbb\x0f\xefFeHp\xd6eG~N\xce\xdf\ -\xf1\xfedF\x08\x89\xc6,\x0f\xc7=\xac\x9fk\xdad\ -\xb7s\xa6\xd4\x18\x13\x11\x16\x01\x1c`\x11\xb6OUg\ -\x1f\xc3\xaa\xbd:\xde\x9b\xa6\xe3\xd6\xb4q\xb6\xcb\x1f\x5c\ -Z\x97e]\xb5{LN\xad\xb3\xc9z{\xdf\x14\xbd\ -I\x96F\xaep\xa5\xab\xba6\x82rD\xc1\xb5\xdf\xb0\ -,]g3\xdb\xd9~\xf7\xbe\xce\x83\x88\x92\xbd\x0dX\ -A`\xc9\x1f\xef\xde\x1f\x96 H\xd3\xe4\xef\xba\xb9\x1b\ -\xd6\xf0x\x13{S\xdfC{\x05\xd7\x93|\x99\xa5\x09\ -@^\xda\xee:/\xed\xdayP~\x81(\x97\xd1\xa4\ -8\xb5\xee\x9e\xb6\xee\xc8\xef\xdes\xe3\xf6\xd5\x9b\xcd+\ -K\xcb\xdc\xef\x8a\xfe\xec\xf2\xa2\xf8\xdd\x1f\x13\xa0h\x0a\ -6:D;d\x13\x1d\xa7\xb3\x8c\x86|\xf7\xcb\xcc\xdd\ -\xb6G`\xf8\xa5\x1e\xbc-\xc7\xc6\xf7M\x98\xf9\xf19\ -\x98n\xe1\xcc\xb4.\xeaf\x15\x5c\xdd\xf6Op\xd0\xdc\ -\xd4M\xe6\x9aA\xa7\xfa\xe7TWC3C\xfc0%\ -\x83\xbc\xbe\xf9\xe8\xd2\xae\xab\x0b\xd7\xd8\xca'\x0d\xa58\ -\xa8\xd6\x0d\x8c\xf4\xac\xe2>\xcf\xdc\xacf\x1cG\x1f\xe4\ -x\xd8\xbc\xba\xdd\xd8\xac\xde\xad\x02v\xa6\xdd\xe5\x15h\ -\xc2\x03\xa30I\xe4%\x93\x81e(\xa1c\xa6\x1e\xca\ -\x11\xb3Q\xdan\xea\x9dOh\x15\xdc\xda\xa2ug\x0e\ -?\xd5u\xb9\x0a4\x8ecE\x04\x8d\xcf\xf4)P\x97\ -\xc1D\xeaX\xf2\x19-d\xc9\x146Bs\xa5/\x05\ -\x0b\x1e\xe4\xc5L\xbc\x83\xf8\x92\xb2\xb4\x8fy\x99\x7fr\ -\xd9Q\xe1\xa6\xb3\xef\x9b\x06F-,\xec\x93k\x8e\xa9\ -\xf3\x0b\xbc\xd3\x8dK\xef\x5csS\xdb&\xf35\x19\x1a\ -m}\x84\xdb\x9a\x13c\xc6\x18;\xa8o\xeb\x07g\x15\ -\xf4?\x0b\xdb\xb9W0\xd0\x8c2\xa9\xf9\xebid\xa1\ -\x83\xc61j\xbb\xa7\x02z\xe2\x16\xc6#\xb9\x22\xc4\xda\ -L\xbc\xf1\x8b\xf0\xd0\x0e\x09}\xd3vM}\xe7F\xed\ -~\xb9/w\xc2\xf0((\xf2\xcaA\xf4IS\xdfW\ -\xd9\xb1\xf0c\x9dW\xa7R\x18J\xd7\x14\x80Q\x97\x8c\ -\xdb3\x0b\x1d\xd64\xf6)\xa9\xe0\xc2\x1a\xa4S\x14[\ -\x9b\x03j\xfdX$\xa5m\x00\x9a\x16\xed\x8d\x90\x8f7\ -\x183\xf2\xc0\xf8\x149\xd1\x94O\xe2C{r\x83c\ -\xa3\xa5a\x93f\xe8J\x05\x1a\x11k\x12O*\xe8\x01\ -\x06R\x80\x90\xd2I\x0a\xc5\xe7\x0cs\xc35\x9d\xd8d\ -\xb9\xb5\xddf\x16\xd6\xa3|\x92+\xde?\xff\x13\x88S\ -\x0a\x9e\xcc\x11%Xh\xc6\x0c_p\x82\xa9\x22\x8a\xc5\ -H\xc0\x0fm\x18_\x84Tc\xc59\x91\x061\x89c\ -\xa5\x18]\x80\x15\xe7Z\xc4(\xe4\x98\x12m$_\x80\ -\x95\x94Z\x12vZ\x00\x0f\x86>\x06y\xe2\xc7\x1a\xc8\ -\x08(\x19\xee\xd1\x14\x9e\xe7\x00\xf8\x8d\xbe\xfc\x91 \x1d\ -\xba\x85-\x86\x0e\xa1(EdA\x10\xc7RH\x90\x87\ -\x0c\x03%1nP\x8c\x95\x01\x14\xa9\xf62\xc69\xd5\ -\x02)L\x88\x14B\x01\xd4Jq\x15k\xa41\xd7L\ -k\xb5`X+!\xb4A\x14\x92\x83.\x05_\xf0\xc3\ -\x10.\x15T\xcd\xf3\xa0\xec+D\x89d\x10\x87\x047\ -\xfe8\x82\xa1\xdb\xa5\xe2\x88R,\xc03W\xfe8\xaa\ -\x819\x0d\xeacQ\xc6x3\x0e\x91s\x01\xe7Q\xcd\ -\xa8\xa2\x0b\x8a\x8d\xaf\xbe:\x97\xcc\x95Z|\xb3\xd4\xed\ -q\xad/s\xd0\xa1\x9a\xb3\xb5>\x147\x86\xe4\x0cQ\ -\xdfS\xe0\xeff\x0f\xa69;#\x0f\x81\x85\x92\xb11\ -\xfa\x9c<\x04&F\x09xs=!\x0f\x98\x0ej\xb8\ -\xd4\xe2\x84<\xa8\xc0\x9c\x1aB\xd9\xcf\x06H\xf8/@\ -\xc2 yhHv\x0eI,5\xf4\xd6\xcf\x06\x89\xfa\ -\xe7\x90\x00\xfb\x02\xbb\x92\x98\x7f\x09\x89\xa0\x14\xde`.\ -Q\xe40|\x0c\x88\xdb\x842\xf8*w~\xed\x12'\ -8\xe6\x5cI\xb9}|\x1e\x5c=M~\xf3r\xf1t\ -\x03\xdf:j\xc1!\x11Ic\xa2\xfd\xb5\x01\xa4\x04\xbf\ -b *B\xa9\x10#9R\xa2\x04\x171\x5c;\x12\ -\x0b.c\xc5\xfc\xf5\xa4ch\x09\xed\xa5\x0ah\xd0\x80\ -\x18\x15\xe8\xe0Dy\xd2\xda;){'\xbf!\x80L\ -\x0a\xf0c\x16\x14^\xfe\xa84B\xcd\xc61#{&\ -\xc8?\x1e\xcc1\x8e\xe1\xe2P\xdc\xa7\x22\xe1\xe3\x92\xf3\ -\x09\xe6\x0b(\xcf\x82\xfc\x5c\x8c\x19l`p\x0d\xa9\x1e\ -c-XLg\x83\x98\x91=\x1b\xe3P\xff`(3\ -\x0e\x97/\xbc I\x9f\x8cRF\xc5\xff1\xc8\xf0q\ -\x123a\xb4\x07\x19^\x0d\x0c4\xedL\x0c\xe7\xa2\xf1\ -3!Z\xfb\xff\xed\xf1\xdf\xd4\xf0\xefg\xe6s\xffy\ -\ -\x00\x00\x09\xfa\ +h882\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x11\xc5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \ -\x0d\x0a \x0a \ +\x0a \ +\x0a \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0e/\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0a \ + \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x12\ +city:1\x22\x0a d\ +=\x22m 2.7912112,32\ +.393811 c 0,0 3.\ +54512,-2.537239 \ +7.6910818,-2.233\ +184 6.005446,0.6\ +63678 8.382886,2\ +.864489 12.48071\ +2,2.490356 4.760\ +451,0.11052 2.55\ +4412,-0.859563 1\ +1.444636,-2.1877\ +69 2.537699,-0.3\ +79134 8.182161,1\ +.930596 8.182161\ +,1.930596\x22\x0a \ + id=\x22path894\x22\x0a \ + sodipodi:n\ +odetypes=\x22cccsc\x22\ + />\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09\xb4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \ -\x0d\x0a \x0a\ + \x0a \ + \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x0f\x93\ +opacity:1\x22\x0a \ +d=\x22M 15.755866,1\ +2.592421 15.5524\ +76,34.965303 35.\ +28129,23.372083 \ +Z\x22\x0a id=\x22path\ +4489-3\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22 />\ +\x0a \x0a\x0a\ +\x00\x00\x0d\xd4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -61\x22 />\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x060\ -\x00\ -\x00\x16\x83x\xda\xedX\xddo\xdb6\x10\x7f\x1f\xd0\xff\ -AP^\x1a\xcc\xa2\xf8)\x91\xaa\xddaCQt\xc0\ -\xf6\xb2u\x9f/\x83\x221\x8e\x16Y4(:N\xfa\ -\xd7\xefh[\xb2l\xcb\x9d\x87\xac(0L\x82\x13\xf1\ -\xeex\xbc\xfb\xdd\x07EM\xbfz\x5c\xd4\xc1\x83\xb6m\ -e\x9aYH\x10\x0e\x03\xdd\x14\xa6\xac\x9a\xf9,\xfc\xe9\ -\xfd\xdbH\x86A\xeb\xf2\xa6\xcck\xd3\xe8Y\xd8\x98\xf0\ -\xab\xd7/\xbe\x98\xb6\x0f\xf3\x17_\x04A\xb0\xaeJw\ -7\x0b\xb9\x0c7\xc3;]\xcd\xef\xdc~\xfcP\xe9\xf5\ -7\xe6q\x16\xe2\x00\x07\x5c\x06\x1d\xbd*g!\xa8\xa0\ -;\xa9\xfd\xfad\xc7o\xee\xdb\x22_\xeal\xc8\x0a^\ -\x16\x89\xd4\x94\x16L\xa6\x93\x80bJ\x22,\x22\xca\xae\ -\xb7sZ\xb0z\x09\xbf\xac4E\x93/\xc0\xd8\xaaY\ -\xae\x5c\xfbG\xde\xe4\xf5S[\xb5\x08V\xdc\x8a\x82\xd3\ -M\x9bu\x8b\xcc\xc2;\xe7\x96Y\x1c\xaf\xd7k\xd4\x11\ -\x91\xb1\xf3\xd8\xabi\x97y\xa1\xdb\xb8\xa3\x0f\x15t+\ -\xf6\x0a:\x02j\xcd\xca\x16\xfa\x16th\xd4h\x17\xbf\ -y\xff\xa6gF\x18\x95\xae\x1c\xe89X\x7f\xcd6+\ -S\x8cq|d/\x0c/\x15\xb5\xe5\xed\x98(QJ\ -\xc5\x98\xc6\x94F \x11\xb5O\x8d\xcb\x1f\xa3\xa6\xbd\x1a\ -\xce-\x8a~jau\xee\xaa\x07]\x98\xc5\xc24\xed\ -\x16\x93C\xe9r/\xbd\x5c\xd9z#R\x16\xb1\xae\xf5\ -B7\xae\x8d!nq\xf8\xdaO\x98.\xb4\xcb\xcb\xdc\ -\xe5\x9b\xd9\xdb\x1c\xe8H\x84ne@\x0a\x0c\xcb~x\ -\xf3v7\x04BQd\xbf\x18{\xdf\x8d\xe1\xf2\x22\xf9\ -\x8dYA\xa2\x85\xaf\xf7\xf4iYd\x00\xf9\x22w\xaf\ -\xabE>\xd7\x1e\x94/\xc1\xcai\xbcg\x1cJ\xbb\xa7\ -\xa5\x1e\xe8\xddj\xb6z\x1b\xbdQ\xbf\xcabQ\xf9Y\ -\xf1\x8f\xae\xaa\xebo\xfd2a\x10\x1f\xab\xad\x5c\xad\x07\ -\xd4i\xbc\xf3\xa1\xf31\x1e:9\x8d;\x14\xb6\xc3R\ -\xdf\xb6\x03\x88\xfc\x90\xe0\x1e\x9eEn\xef\xb5\xed\xd7\xeb\ -\x0b\xa5u\xa6\xb8\xf7\xf2_[k\xd6\xe4;(Z\xeb\ -\xc2^\xce\xd8\x0a\xc21\x0b\xf3\x953{\xaa\xd5\xb7\xbf\ -AmB\xd5\x0fI\xbf\x1e\x91\xcekm\xddS\x0d8\ -\x19\xa8\xd2\xdb\xda\xac\xb3\x87\xaa\xadnj\x1d\x9e\x9aW\ -\xb5\x1b\x03g\xa1\xb3+\xbd\x0f\xdat\x99\xbb\xbbA\x04\ -\xfcR\x9e\xc4\x85\x92\xe1\x80\x0e\xe4\xef\x030j\x02\xbf\ -\xe0\xbb@\xc0S$6\x8f\x11\xa1H\x0c\xc8[j'\ -\xfa!\x18j\xd9\x99{\x0b\x91\x8b\xec\xaa\xd6\x99~\xd0\ -\x8d)\xcbW\xad\xb3\xe6^gWxs\xed\x86\xd1\xa6\ -\xb7e\xd0\x13\x97n\xa8\xc5\xd9\xbci}:A\x0b+\ -\xf2Z\xbf\xc4H^o\xa9u\xee\xf4\xcb\xadA\xd7\xfb\ -\xb4\x80\x00o\x82\xb6\x8b\xb6\x0f\xe8\xf6\xb1\xefX\xbe\xcf\ -\x94\xbeW\xee\x96YBZ\x15\xa66v\x16^\xddn\ -\xae\xce\x80\x1bcKm;^\xb2\xb9\x0ey\x06\xfa\x15\ -\xa4(t\xcc\x8enn\xfe\xd4\x85s\xa6\xd6`\xa3\xcf\ -k\xd2\x07wn\xc1\xc7Q\xc6\xaa*\xf5(\xa7\x0f\xa9\ -7\xb2_l\x9c\xdd\xde\xe5\xa5Y\xcfBz\xc2]W\ -\x0dp\xa2\xdd\xf6A\xa4\x90\xe7D\xba-\x85`\x91\x86\ -\x83\xba\xe81\xebg\xb6wf\xed\x1d\x82\x08\xe7u\xab\ -O\x14~0\x06bF\x18\x12\x14K\xc6N\xf8\x85\xdf\ -\xa7\x90\x14X0\xc5\xc8)\x1b\xdc\xa4\x90T\x12\x13\xca\ -\xcfY\x0b*\xc4Y&(\x88\xce\xfa\xb9\xc8\x1f\xabE\ -\xf5A\x97\x83\xc8\xed\xd7^Y\x0b\xf5\x1b\xd5\xf9\x93\x86\ -\xc0\xcf\x15&\xa3\x80\x17w\xba\x80L\xbb1\xb9-}\ -Pv98\x9d\x0f\x80\x9bs\x22\xf6\xfdd~P\xe6\ -s.8\xbf\xa4<\x19>-\xcf\x09\x0e\xde\xf9M\xfe\ -g\xff\xe7\x1dl\xf8\xbf\x0fe\xf6\xbe\x98\xa6\x81|4\ -6\x02\xaf\x1er\xb7\xb2z\x90?Gu\x9a5\xf0\xda\ -1\xec\xb0\x03\x83w&\x0f\xb08*Oh\xf8\xb6z\ -|\x09\x15\x9c2E\x15\x9f\x80\x89\x93\xfd(Q\x08\xf6\ -CA\xc4\x84\xa6\x88H\x0aA\xbf>\xd8O\x8e\xbc\xff\ -G>\x0c\xc0\x22)9\xe4\xf8\x8d/\x88\x04C)\x96\ -<\x91\x13\x0e\x0f)\x11\x89\x08\x08F)\xc30\x9aD\ -\x12q&)Q\xc9\xe1\xdc!6W\xaa\xf0\xf7\xab\xf3\ -\x0d-\xc7\xfe>lh\x14\xa5\x8a\xf1T\xa5\xb4\xa3\xd7\ -\x158\x93/\xb3\x9b\x95sC\xda\x9f\xa6j2\xd8\xef\ -\xb4\xed\xa8\xbbz\xcfHG\xd8pkH\x5c\x97\xf1\x8e\ -V\xe6P\xf7\xd6\xe6O\x9b\xe0m\xad\xeb'\x1e\xed\x96\ -\xff\x1a\xc4l\x14b\x8e(\xe7\x22I&\x11\xe1H\xa5\ -\x8c+\x11(\xc4\x84$XM6\x0fXI\xfa?\xc2\ -\x97 ,N\x10\xfe>\x88\x18A2\xc54\x81\x84%\ -)4VNq\x1aD\x9cB\x9bL\x13\x8f\xbb@\x09\ -\x95TJ\xf1\xa9@N\xe4?\x07\xf9\x02LO\xc2q\ -\x04\xf2\xa17\xfdFn`\xd7\x84\xd7Cx\xa7/\x8a\ -\xbf\x0b\xc4\x99Y\xffJ\xb0\xd2\xb1r\x80\xb0\xa4\x92&\ -\x8cO\x22\x868N \xf9y\x00\xaf+\xa9`$M\ -&\x9b\xe6C\xd5\x7f\xba\x1at]W\xcb\xf6\xe8\xa5\x1f\ -\xf6e\x86\xb0\x00\x0b\x93#\xdc\xec\xa3g\x11\x01'N\ -z\x94\xc1\xfeu A\x94\x00\x93\x1e\xa5\x83\x7f\x91\x88\ -\x84@\x8cR\xcc\xd2s1bI\x94Dl\x14\xed\xc3\ -\xac\xcb\xaeR\xe1\xef#\xcf\xce\x87a\x98\xc0}\x0c$\ -Q\x94\x09v\x82\xb75\xab\xa6|Fa\x5c\x080\x85\ -\xf6\xcb%a\xa3\x00\xe3\x04\x922IN\x01N\x11W\ -,\xa1\x22\x19\x01\x98*\x04\xfa\x12F>\x020\xb9\x08\ -\xde\x1b\xea\xefg\xc0\xcb\x10#R\x11J\xd3\xcf\x05/\ -lt)\xbc\xca0~\x0a/G\x9c\x10\xa2\xc8H\xfe\ -\xfa\x9eM\x13A\x85\x18\xc1\x97Q\x94\xf0D\xa4\xf4c\ -\x09|\x19\xbe\xda\xdf\xcf\xc2W*\xac\x12\xc0\xf8s\xe1\ -\x0b\xfdR\xc2\xa1\x81\xb2\xb1\xf4\x15\x12:\xdc(\xbc\x1c\ -I\x9f\xbej\xac?0\xa8\x08\x0c\xfd\xe3<\xbc\x17\x81\ -[*\x7f?\x0b\x5c.\x15T_\x92~>p%\x06\ -\x04\x99\x1c\x03WQA0\x19\x01\x17fI!\xa4\x1a\ -\xeb\x0d\x1c\x9c\x82s\x1c\xffX\xee\xe2\x8b\xe0\x95\xb9\xbf\ -\x9f\xd9\x1b\x98\x92R\xd1O\x0a\xef4\x9e\xf7\x9f\x1b\xe6\ -\xa7\x87\xbb\xc1\xa9h\xf0\xa5\x02a\x9c\xa4T\xb2ID\ -\x05\xa0\x99R\xa5\xae\xc3\xa3\x03!\x81\x03\xe1\xfeS\xc6\ -\xf1q1\x19\xb6\x95\xd1E0\x12p^\x86\x03W\xff\ -Edk\xe0\xd4\x7f\x9e\x83\xff\x7f\x01`\x0eI\x0b\ -\x00\x00\x09~\ -\x00\ -\x00G\x98x\xda\xed\x5c[\x8f\xdb6\x16~/\xd0\xff\ - (/\x09\xd6\xa2\xc9\xc3\xbb3N\x81EQt\x1f\ -\xf6e\xb7\xbb\x0b\xecK\xa1H\xb2G\x8dm\x19\x92\xe6\ -\x96_\xbf\x87\x92eK\xb64Pg\x92f\xba\xa3I\ -/\xe2\xe1E\xe4w\xbe\xc3\x8f\x87\x9a\xf6\xea\x87\xfb\xed\ -\xc6\xbbM\xf2\x22\xcdvK\x9f\x11\xea{\xc9.\xca\xe2\ -t\xb7^\xfa\xff\xfa\xe5\xa7\xc0\xf8^Q\x86\xbb8\xdc\ -d\xbbd\xe9\xef2\xff\x87\x0f\xdf\x7fwU\xdc\xae\xbf\ -\xff\xce\xf3<\xec\xbe+\x16q\xb4\xf4\xaf\xcbr\xbf\x98\ -\xcf\xf77\xf9\x86d\xf9z\x1eG\xf3d\x93l\x93]\ -Y\xcc\x19as\xbf\xd5>:\xb5\x8f\xf2$,\xd3\xdb\ -$\xca\xb6\xdblWT]w\xc5\x9bv\xeb<^\x1d\ -\x9b\xdf\xdd\xdd\x91;^\xb5b\xd6\xda9\x859@\x80\ --\x82\xe2aW\x86\xf7\xc1Y_\x9cg__\xa0\x94\ -\xce\xb1\xae\xd5td\xb3E\x81\xe0\xec\xf1\xefc\xfb\xc6\ -@\x8a\xec&\x8f\x92\x15vL\xc8.)\xe7?\xfe\xf2\ -\xe3\xb12\xa0$.\xe3\xf68\xe9\xeeS\x11\x85\xfb\xa4\ -\xf3\xde\xc6X\xc3\x10n\x93b\x1fFI1o\xec\xf5\ -\x00wi\x5c^/}\xc9\x88\x9b e\xb5\xf5:I\ -\xd7\xd7\xe5\x85\xf96M\xee\xfe\x9a\xdd/}\xeaQO\ -\x18\xfc\xab\xb6\xa7\xf1\xd2\xc7\xa5\xc1\xa1\xd5\x89\x02\x87~\ -\xcd+\x17\xc7*J,\x10\xe9\xbd\x05\xaah\x12\xb1\x95\ -]\xcd<\xa0@\x03*\x02j\xde\xd5\xdd\x9a\x05/\xe2\ -,r\x0b\xc0\x97\x94Yt\x1d\x16e\x1a\xfd\xba_\x11\ -\x87\xe6\x07\xd7\xf2j\x9b\x94a\x1c\x96a\xd5\xad\x9eO\ -cbP\xb7\xc1V\xe8\xda\xc5?~\xfc\xe9PDC\ -\x14-\xfe\x93\xe5\x9f\x9a2\xfe\xb8&\xe1\xc7\xec\x06\xd7\ -\xee\x7f8\xd9\xaf\xe2h\x81\xce\xd8\x86\xe5\x87t\x1b\xae\ -\x13\xe7\xc8\xbf \xf6W\xf3SE\xb7u\xf9\xb0OZ\ -\xe3\xd6#\xe7I\xed\xd7^\x86\xc7\xd16u\xbd\xe6\xff\ -,\xd3\xcd\xe6o\xee5\xbe7?\x1f6-7I\xcb\ -z5?\xac\xa1Y\xe3\xbc\xbd\xc8\xaby\x83B]\x8c\ -\x93U\xd1\x82\xc8\x15\x19=\xc2s\xf4\xd2\x1e\xbd\xb4O\ -\x22\x17J\xc7\xb7\x1f}\xe1\xa6\xb8\xf4\xbbm\xf9\x81\x8d\ -^\xc7\xd7\xfb_\x91)\x92\x13\x05\x9a[\xee-<\x86\ -^\xe7\x1a\xb4v\xcf\xfd=\x1e\x1c\xb7\x16\x9eT\x94\x08\ -F\x85\xebE\xfb[~^\xfa\x82\x13\xa1\x14\xa3n<\ -0DK\xae@\x0c\x8c}\x98g\x90\xe5\xe9:E\x02\ -*N\xa4\x91\xc0\x0c\xb6W\xc4\x08\xaa\x8c<\xeb\x8a\x08\ -\xb5\x90\xc0\x89\xb3\xc6\x1f\xe8v\x84\xae~<\x02\xe3\x18\ -\x1a\xbb\x089\x8c\xb0G\x07F\xd9&\xcb\x97\xfe\x9bU\ -\xf5\xd3\x8c\xfd1\xcb\xe3$o\xeaT\xf5\xd3\xad\xcb0\ -T\x91\x0c\x18B\x8d=\xfb\xf8\x1b\xce\xa3\xcc6I\x1e\ -\xee\x1c\x83\xd8\x11\x97u\x8e1\xdc[q\x93\xc6Io\ -\xcd\x09\x16\x9c\xe4\xf1e\xfd\xd5\xc5u\x18gwK\x1f\ -.j\xef\xd2\x1d\xd6\x04\x87-\x84\x99f;\xb8l\xd2\ -\xec'\x8c\xb2S\x1b\xc4\xf7\x88\xd9\xd1Z\x5cgwn\ -AK\x7f\x15n\x8a\xe4b\xc0\xcfY\xb6]\xfa\x86\xa0\ -\xeb\x98\xb1\x17\xd5\x11R\x8e[t-H\xc3/kq\ -\x91\x9ah\xaa)cbh\xae8\x82\x1e\x5c+\x0e\x00\ -r\xa8r\x1b\xde\xa7\xdb\xf4s\x12\xb7\xfcvz\xf7M\ -\x9e\xa3\x80\x05\x9b\xf0!\xc9\x0f\xdbeC\xa7}X^\ -\x1f\xdac\xdf\xbf{tF\xbd\x9f\xdd\x06\xfbo\xf7\x8f\ -\x9fq\xb3\xfdo\x1b5\xd7\xfcr\xfaQ\xb6\xdb!E\ -\xb2<\xc0W\xdd\x86\xe5M\x9e\xb4\x5cZ\x94\x0f\x1b,\ -\xafpkY\xecP~\x8f\xef^\xb7\x06^\x0b&\xcf\ -{\x1c\xd8\xb1\xc0\x80\x14\xc6i\x01\xbc\xaf\x06yCi\ -,\xc2\xf0}Q\xe6\xd9\xa7d\xf1\x06>\xba?\x87b\ -\xd0\xf4:\xe2P\x22\x07\x0b\xb7S\xe2\xce\x1c\x96yz\ -\xff\x96\xa2#0b\xb563\xea\xfe\x10\x0dVq*\ -\xd8,P@\x841\x8a\xeaY\xc0$\xe1\x86\xe1\xe3\xbb\ -\xe3>\xb5>\x86hk\xd0\xeaq\x13\x96\xc9[\ -\x19\xadgga$\xdbvw\xfa\xf7\xf0\x14 \xf0\x14\ -@a\x06\x8c\xa0\xcaH.=t\x10\x03\x83\x02\x83\x0f\ -\x00\xaa2\x08\x0arVy\x8ey\x91WU0Q\x19\ -\xb8\xa9\xea-\xb0\xaah\xab\xa2\xa2L\xcd\xeaqt5\ -\x9e\x01SUK^\x15\x95\xd2u\xd1z\xee-\x98X\ -VE|\x97+r-a\xa6\x08@\x12\x88\xca\xa0\x80\ -A\xd5@\xd4e\x0bU{&\xa4\xb7\xa9\x07\xe0\x87\xe9\ -\x09~9\xfd\xcf\xedU_\xe8\xb5\x01\xde\xa3\xd7\xcfe\ -8\x9e\x9cp\x8d\xe2[R\xbc\x9d\xff|\x11\xf6\xe8K\ -\xf6P\x22\x85\x96V;\xf6`\x86\xc1%8vT\xd0\ -S]y\x9e\xa3\x97\xaa\xb2\xc2\xe3Fe\x90Z\xd7\x06\ -\xd0\x15W\x90Au\x07&*&AM\x0dc]\xc9\ -(Q\xb9\x1a@[\xf45>i\xab*.\x80D\xe6\ -\xb9~\x9aQ;\xc3\x1c\xc7\x91%\xaa,\x82\xe1i\x09\ -\xd0\x09\x0d\x7f\xf0\x5cP\x13\x8ckWfHSY\xd3\ -\xd5\xd4\x0d\x98\x12\x1d\x82\x815\xaa\xa1{\xa7\x8c\x84\x9d\ -\xe8t\x95#g.A\x18\xb1\xb3\xd5\x0br\x5c\xa1\xc8\ -'\xaa\x1f]Pk\xea\xe2\xf1\x99\x9f\x90\xdd\x87)f\ -\x0fUv\xb8\xd8\x86\xf9'\xccL=7/\xafn\xd9\ -v\x9dKR\x04\x9e|\xf1\xd8\xd8a6f6\x00.\ -\xafV\xda\xb6\xedMv\x06\x8es\x8aA\xbb\xee\x90\xdc\ -a\x14h<\xffKs\x1eA\x0e0\xae\xb9\xee\xa0\x98\ -l6\xe9\xbeh\xdf\x7f\xe4.\x97%\x82kEMg\ -\xfc\xfc\xbe\xaa\xc0\xf3\xb8\xd2\x9d\x8a\xa8J\xb5\x08(\xa4\ -\x5cgw\x8f\xeaeh-\xb8\xe4}\x01-d\xd7~\ -\xc6d\xf6\xfe\xcf\xe0\xce\xaf\x02\xa7 \x96Q\xce\xf59\ -\x9c\x82\x13k\x19WCh\x06\x13\x9e\x83x*u\x89\ -'\xc7M[\xe2^)\x07\x01U0!\xda\x83(\xc7\ -m\x8b*.YO\xc0+%\x985\xc3\x14U\x13\xa2\ -\xfd\x88\xe2a])\xd6\x13\xf3(\x10x>\x1dF4\ -\xd0\x13\xa4\x03\x90*wW\xd5\x13\xf6x\x1ck]\x83\ -\xf6\x84} 'L{0\x15\x92\xe0\x11\x1b\xbb<%\ -\xf0'y\x1a\xc2\x14\xcfN\x96\x99\xfe\xd0\x07\xca\x1f\x0b\ -\xfd\x89\xa8\xc3\xa0Z\x80\xa7\xc5~\xf0\x7f$RW\xf3\ -\xf5\xe1c\xd8z\xe0K\xc2)./o\xff\x19\x91\x06\ -\x85\x9eCu\xf9\xcf\x882R2\x83\xf92(b0\ -\x91\xd6\xee\xd1\x10a9(\xf9\xc5\xef\xfe\xd1\x0f\xc3w\ -[\xac\xed\xf5\xbe\xef\x16\x86[\xab\x04\x15\x87\xef\x16\xc7\ -\xa2$\x8cS%\x84{R\x063qx7|\xcfu\ -\xfan\x98\xc5\x89\xfb\xa8Z,\xfd\xa8\x88\xfc\xe7]f\ -\xe0\xe2\xe8\xc5e\x06S\x04Q\xd1V\xcd4\xce\xd6\x80\ -\xe6\xee\xaa\x8bQ\x22\x00\x7f\xd8\x8cz\x8c\x11\x0e\x80\xec\ -\x9d\x05\xd8\x981L\xf4\x8c\xc70\xfb\xc2~\xc2\xd6F\ -@\x16\x0b\xcfe\x0a\xee\x22\xa3\xba\xd7P\xcc\x95\x15\xda\ -\xe5\xcc\xbd\x84K\x09\xd8O\x10j)Zg\xc7n\xfe\ -PN\x9d0\x96\xc8\xdfq\x8bph\x7fv\x8b0\xf2\ -\xc2\xb5\x0a\x87g\xc4F{\x15\xbf\x83~\x8f\x5cW\x9d\ -\x7f\x95{d\xe5\x1f53\xc2\x9e\xaf\x5cX\xca(|\ -\x83\xf5W\xdf)9\x10N\xa5c\x088^Pe\x98\ -\xb3\x01p|\x9a\x09L\x8f\xac\x02=\xc0S\xf3D\xaa\ -\xf7\x06N\xf4UQ\x968[k\xbe\x09\xc8[\x17\x86\ -Lq\xd0z\xe6\xb4\x07\xa3T\x81\x87j\xa3-\xd0\xfa\ -\xea\xaf\x9b-\xb5\x11\xeej\xf8\x17\xc4\xf8\xf1\xbd\x9fQ\ -\xa1\x06\xbf\x22+\xc9\x8f\xbb\xf9\xb9(\x0f\x08\xe2\xc1)\ -g\x9b\xc4\xc1em\x10\x1b\x7fqf\xb5\x06f\xbe\xdd\ -%\xdc\xc5\x09\xb5\x9dKU\xe7Z\x81\xa1\xa3\x15oE\ -Au\xbc\xc0\x98\x01C\xa1e>\x1cG\xa8j_\x83\ -\x1d\x0e/\xda\xe0\xd1\xb8\xfd1\xfak!\x0a\x8c3\xc3\ -\x84|Q\x88\xb6\xe9]aJ\xb8\x90 \xda)\xed#\ -\x98V\xbf\x8ct\x06)\xda\x8cT\x0c0\xb7{\xad\x98\ -\xf2.\xa6\xb8\xe7\x18fh\xfb\xbe\xea\xa9\x98\xda?\x02\ -SL\x165\x8a\xcf\x0b\xe3\xa9\xea\x82\xca0\x01cJ\ -1;2\xf8\x19\xc2\xa0/\xa2\x1f8P&\xcd\xabE\ -\x15\xba\xa0\xa2&ZI1\xfc\xff$\xa0\xbeH\x91\x0a\ -\xd8\x85L!J\xd4\xa8.\xa8\x5c\x11-\xdb\x1f\x91&\ -\x91\x1a\x0e\xfes\xa2\xba\x03\xb2PV\xb3\x11\x98N\x22\ -\xd5/R\xe7\xc7)\x94)DTR\xf5\x5cL_\xb3\ -H\x05\xf4B\xa6\x94UT\x8d\x0b\xfeI\xa4zE*\ -\xb0\x172e\xc0\xaa\xf6oL\xbe`P_\xa6H\xa9\ -Q\x22\x05\x92H\xaa-\x85I\xa6F\xc9\x14\x1d%S\ -\x03\xa8NB5 Tj\x94P=\x05\xd5W-U\ -0J\xaa\x06\xb7\x80I\xac\xfa\xc5J\x8d\x12\xab\x17\x0b\ -\xeb\xcb\x94+3J\xae\x98 \x80'\x00\xca&\xb9\x1a\ -%Wz\x94\x5c\x0d\xa0:\xc9\xd5\x80\x5c\xd9Qr\xf5\ -\x14T_\xb7\x5c\x8dK\xad\x06\xf7\x80I\xaf\xfa\xf5\x0a\ -F\xe9\xd5\x8b\x85\xf5e\xea\x95\xb4\xe3.\x01\xdd\x7fE\ -\x80\xa0N\xf9\xd5\xc8k\xc0\x91\xf7\x80\xfd\xb0N\x8a5\ -\xa0Xf\xdcM\xe0\x13P}\xd5\x8ae\xc7\xdd\x05\x0e\ -\xed\x01\x93`\xf5\x0b\x96\x1ew\x1b\xf8,X\xeb\xdf\xca\ -\xb8r\xff\x93\x12\xfc\xf7\xff\x002\xe0|8\ -\x00\x00\x0aP\ +none;fill-rule:e\ +venodd;stroke:#7\ +f2aff;stroke-wid\ +th:1.55563576;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:bevel;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1;paint-order:\ +fill markers str\ +oke\x22\x0a d=\ +\x22m 8.9284573,21.\ +414399 c 13.3255\ +647,0.250874 22.\ +3140307,0.22166 \ +30.8849637,7.223\ +214\x22\x0a id\ +=\x22path825\x22\x0a \ + inkscape:con\ +nector-curvature\ +=\x220\x22\x0a so\ +dipodi:nodetypes\ +=\x22cc\x22 />\x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#2a2aff;\ +stroke-width:1.5\ +5563576;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22m 8.9\ +284573,21.414399\ + c 6.6627827,0.1\ +25436 13.1892557\ +,1.906635 18.586\ +6507,4.507361 5.\ +397394,2.600727 \ +9.66571,6.020982\ + 11.812176,9.424\ +532\x22\x0a id\ +=\x22path825-3\x22\x0a \ + inkscape:c\ +onnector-curvatu\ +re=\x220\x22\x0a \ +sodipodi:nodetyp\ +es=\x22csc\x22 />\x0a \ +\x0a \x0a \ + \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09\xc9\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ +xml\ -\x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -ellipse\x0d\x0a ry\ -=\x2212.649562\x22\x0d\x0a \ - rx=\x2212.649564\ -\x22\x0d\x0a cy=\x2217.6\ -92028\x22\x0d\x0a cx=\ -\x2224.120813\x22\x0d\x0a \ - id=\x22path883-3-\ -3\x22\x0d\x0a style=\x22\ -fill:none;fill-o\ -pacity:1;stroke:\ -#aeaeae;stroke-w\ -idth:3.7485;stro\ -ke-linecap:round\ -;stroke-linejoin\ -:round;stroke-mi\ -terlimit:4;strok\ -e-dasharray:none\ -;stroke-opacity:\ -1;paint-order:ma\ -rkers stroke fil\ -l\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x0f\xa8\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata12\x22>\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \ - \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x04\xb9\ -\x00\ -\x00\x1f!x\xda\xe5Y[o\x9cF\x14~\x8f\x94\xff\ -@\xc9K\xa2\x96a\xee\x17\xb2\xebH\xad\x15)\xafm\ -\xaa>c\x98\xdd%\x06f\x05\xd8k\xe7\xd7\xf7\xb0\x0b\ -x\x88\xed\xb6\x12/\x95@\xbbZ\xcd9g\xce\xe5\x9b\ -s\x19\xec\xcd\xa7\x87\xaa\x0c\xeem\xd3\x16\xae\xde\x86\x04\ -\xe10\xb0u\xe6\xf2\xa2\xdeo\xc3?\xbf~\x8et\x18\ -\xb4]Z\xe7i\xe9j\xbb\x0dk\x17~\xbaz\xfbf\ -\xf3S\x14\x05\xbf56\xedl\x1e\x9c\x8a\xee\x10|\xa9\ -o\xdb,=\xda\xe0\xfd\xa1\xeb\x8eI\x1c\x9fN'T\ -\x0cD\xe4\x9a}\xfc!\x88\x22\xd8\x0a\x9b\xdb\xfb\xfd\xdb\ -7A\xe0\xdb%\xe1\x99R\xe4\xdb\x10\xb8\xf4\xb2:\x15\ -yw\x00\xae\x19\xd6\x07[\xec\x0f\x9dG\xb8/\xec\xe9\ -W\xf7\xb0\x0dq\x80\x03\xa0\x06\x13\xa7\x85\x10\x8e\xf0M\ -r\x97\xd5i\x05\x9e\xb7\xc7*\xed\x10(\x1f,\x0d\xae\ -%\xbe\x13\x88\x06\xefq\x8aq\xb6\x13\x8c\x99_\x02\x8a\ -)\x8d0|\xf8\x87\xcb.@\xabn\x93q\xef6|\ --\xd6\xded{L3\xdb\xc6#\xddW0z7)\ -\x18\x09\xa8uwMfw\xa0\xc3\xa2\xdav\xf1\xf5\xd7\ -\xeb\x89\x19a\x94w\xb9\xa7gf\xff\xc4\xce\x96)\xc6\ -8\x9e\xa2\x1c\xcc\xdd\xef\xff\xabh\x93\xef^\x12%\xc6\ -\x98\x18\xd3\x18\xe0\x00\x89\xa8}\xac\xbb\xf4!\xaa\xdbw\ -\xfe\xde,\x9b\xb6f}j\x14\xf76sU\xe5\xea\xf6\ -\x82\xc9\x5c:\x7f\x92>\xde5\xe5Y$\xcfb[\xda\ -\xca\xd6]\x1b\xc3q\xc4\xe1U\xbfaS\xd9.\xcd\xd3\ -.=\xef\xbe$\xc9H\xd2\x17\x11\x10\x02\xbf\x92\xdf\xaf\ -?\x0fK dY\xf2\x97kn\xc75<\xbdHz\ -\xe3\xee \x85\xc2\xab'\xfa&\xcf\x12@\x1c\xd2\xe3\xaa\ -\xa8\xd2\xbd\xed1\xf9\x19\x9c\xdc\xc4O\x8c\xb9t\xf7x\ -\xb4\x9e\xde\x8b\xe6\xc6^\x0e\xef\xc5\xb0\xf2\xac*\xfa]\ -\xf1\x1f]Q\x96_z3a\x10?9\x1b\x0f\xde\x8e\ -\xd1\xc4~8\x9bx\x0c\xf7\xb2\xcc\xed\xae\xf5\xb0\xe8\x97\ -r\xd4\xb6\x992\xbf\xcf\xc1\xbc\xaf\x90A\xf4\x0863\ -W\xbaf\x1b\xbe\xdb\x9d\x9fp\xe0\xdc\xb8&\xb7\xcd\xc8\ -\x93\xe7g\xces\x90\xcb\xe0?\x14\xc9Hw7\xdfl\ -\xd6u\xae\xb4MZ\xf7A\x13<\xb2\xf6\x0d\xd4\xed\x8b\ -\x8c\xbb\x22\xb7/r\xa6j\xec\x9d\x9c\x8c\xbd\xccn\x0f\ -i\xeeN\xdb\x90>\xe3\x9e\x8a\x1a8\xd1\xd06\xa8\xc0\ -\xe25\x91\xa9\x93`2E\xdaC9a\xc6Gj{\ -p\xa7>\xa0m\xb8K\xcb\xd6>S\xf8\xdd\xb9\xaa\xef\ -\x1d\x94\x1a\x22\xa5z\xc6\xcf\xa0;ED+D\x88\x96\ -\xfc9\x1b\xc2T\x181E\xb52\xafy\x0b*\xc4\xab\ -\xa1\x80\x02\xaa^cV\xe9CQ\x15\xdfm\xee\x9d\xdc\ -\x93\xed\xbb\xa6\x81R\x8b\xca\xf4\xd16~\xdf\xfd\x01\xf0\ -\xec`\xb3[\xdb\xdc\xb8\xb4\xc9\xfbC\x193\xad\x81\x04\ -\x18Q\xea\x1eK8\xd0\x1d\xe4vR\xc3\xa0\xf8\xd8v\ -\x8d\xbb\xb5\xc9;s~\x86\xe5\xe5d\x12\xc2\x10\x1b)\ -eQ[0\x944\xee\xae\xce}\xe27W\xd4s*\ -\x14\x90mJ\x08\xa7K\xf8H\xcbS\xc8\x86\xa6I\x1f\ -}\xab\xd1\x90@\x09\xf9xL\x0b\x08\xf0\x9c\xc2I\x95\ -6\x10E\x1b\x5c\x84\x82\xdeW\xff\xe8\xfbh\x0c\x9eP\ -\x1ag\x8f\xe4H)#\xa6,\x992Gh\xc4\x95R\ -\xd3\x91\xc2!\x11\x8e\xb4\x94\x94O\xc2}\xc1(\x84\x05\ -\x17\x9a\xfc\x1bl#T\xfd\xc2\x8b\xe0\x9f\x80d\x882\ -\x8e\xc5\xff\x13K)\x0d\xfe\x01L\x89\x94\x14\x86+\xfd\ -#\x98#\x83y`2\x8a\x14\xa7\x8a\x13\x0fL&\x00\ -s\x81\xe5\x1a\xb1\x8c\xc4\x124\xb9F\x02\x13\xce\xb4\x87\ -fO\x13\x9as\xb3J8\xe9\x128%E\xdapc\ -\x98\x07\xa7<',\xd3t\x9dpF\x8b\xaa]kD\ -\x15\xc5\x8az\x80\x0a\x89\xb0\x81\xfc\x94+\x05\x94/\x01\ -T\xc0\xbb\x9c\x14Txxj\x0c\xddS+\xbcV<\ -\xc9\x12<\x0dC\x06.i\xc4\x9f\xedp\xab\xc3J0\ -\xc3W\x09\xa8\x5c\x02\xa7\xd2HaA\x8d\xf1\xe0T\x00\ -'\x8c(\xce\xd69\xde\x97\x0dxB\x08R\x82>\xbd\ -\x0a\xf4\x0d\xd4 J\x14\xd7|\xad\x13iQ\x07\xe5@\ -4J\xceF\x12\xbc/\x22C\x8c\x12+ET\xabE\ -9\xca$\xbc\xe9J\xe3\x0f%\xc9\x101\xc2\x10\xb2\xd6\ -\x1c\xd5\xcb\xaa\x9e\x22\xc6\xe5\xac\x8d\x12L\x91\x90\xcc\xb0\ -\xb5\xe6\xe8\xa2\xa2\x170\x83\x8c`~\x8a\x12\x8a\x11\xd1\ -B\xac\xf5b/\x17\xbd*i\x824\x17\x98\xcdR\x94\ -\x13\x98LX\xac\xf6f\xbf\xac\x8d\xc2\xdd\x9e\x10\x8d3\xfd\xb8\xabJg#uS\ -\xa8z\xe6\x12\x84]G\xd6\x99\xca\x8bz1s\xff\xf8\ -\xfc\xc9\x8b]\xa71\xa2\xceE\xa9j9sk\xe5~\ -\xbc}\xffn\xdal\x16\xef\xdf9\x8e\x03\xc3\xeb&\xcd\ -\xb3\x99\xbb4f\x95\xfa\xfej\xadK\xa4\xf4\xc2\xcf3\ -_\x96\xb2\x92\xb5i|\x82\x88\xef\x8e\xf0\xd9\x11\x9fi\ -)L\xb1\x91\x99\xaa*U7\xed\xd0\xba\xb9\x1a\xa3u\ ->\x1f\xe0\xdb\xed\x16m\x83\x16E\x92$\xf11\xf5)\ -\xf5\x00\xe15\xfb\xda\x88\x9d\xf7d,\xec\xf3\xdcX\x8a\ -1\xf6!6\x82\xbe\x10\x966@\xce\x0a>\x03\xbew\ -\xa0F\xadu&\xe70P\xa2Z\x1a\xff\xee\xf3\xdd\x10\ -\xf40\xcaM>\x9e\xa7\xa8\x1f\x9aL\xac\xe4\xc9\xba\xbd\ -\xb3\xa3AT\xb2Y\x89L6~\xef\xef&\xe8\xadt\ -\x9c8\xe7\x03\xc3A(\xd8\xfc\x9e%\x13\x87b\x8a=\ -\x1cz\x98\x5cwc\xfa\x8d\xa4\xb9\xca\xec\xc43W\xe4\ -\xf9_\xf7\xc2\x184\x1c\xb0\xc8g.\x18Qg\x8d&\ -'\x07O!\xb7?\xab\xdd\xcc\xc5\x0evX\x0c?\x9d\ -\x7f)\x8b\xc5\xd2\xcc\xdc\xde\xde\x16\xb9Y\xb6\xe6\xad\xb5\ -\xa7\x954\x22\x17F\xb4\xc1n\x99\xdeEh\x87\x01\x14\ -$1\xfd\xed\xee\xd3\xc1\x04G\x96\xa5\x7f*\xfd\xd0\xdb\ -\xf0\xb2\x10q\xaf\xd6\xb0\x96{{\xf4O\xf3,\x05\xda\ -+an\x8bJ,\xa4M\xd9O\xc0\xf2\xd4?\x06N\ -\xd1f\xbf\x92\xa3y\xbb\x99\xb5\xec2x\xb6\x96\xf3\xac\ -*\xec(\xffwS\x94\xe5/v\x19\xd7\xf1\x9fN[\ -\x98R\xde\xb6\xcbv\x7f\x0eg\xf1\x0f\x87\xe9\x0f\xeb\x8f\ -O;\xf5{::3\x97\xf3f\xc4\x955\x09\xeeW\ -\x9b\x0e\x99\xb4i\xccmNzl_\x16\x90\xe2\xb5\xbd\ -x\x9eV\x06.\x97\xcd!v\x9f\x82\xb2\xb5\xd6\x16S\ -\x8a\xbd\xd4\xe3\xbc\x8f0\xdb\xa2\xce\xd5\xd6\xab\xc4\xae\xa8\ -\x8aG\x09{!\x970\xfb\x99K/N\x00%\x13\x9d\ -\xd9\x01\x8c\xf1\x08\x0dQ\xccp_:\xe3\xf0\xce\x86\x89\ -\x0d3\x12>\x0b?*U\xd9\xda\xe4A\x1c`F\xfb\ -x\xb3T\xdb\x85\xb6\xb4\xcdE\xd9Hw\xc4\xe3\xc0W\ -|i\x9f}!\x13L\xf8%\xcc\xa1\xb8I|\xe6D\ -+\xa8\x8af)\x00\x06l\x9c\x8d*\xb8\xcfPG\xa3\ -\x84,\xd6E.\x8d*\xa5\x16\xb5\xad=r\x8c\xc01\ -\xce\x06\xd4\xfd\x17\x99\x99\xb3\xa1{\xa5s\xa9\x87U\xc8\ -\xa9?S\xa5\x82\x5c_E\xed\xab\x8f\xd9}\xf5\x91y\ -\xfb\x1ajm%\xcc\xf2\x80\x9aC\xd9[\xfd\xafO8\ -\xb5\x80\xe1\xa4`\xff\x0a\xd2\xb0d\xf1\x86\xc5K\x8f\xc5\ -\x8f\xc3D\x8b\x03\xc4\xc0\x8e\x1b{%A\x02\x84\xd1\xc5\ -\xee\x03F$\x8a1T@0\xc1\xf6}4)E8\ -\xa6<\xa2\x13/B\x11\xe1\x94\x85\xf1\xf5x\xf1E\x1c\ -\x0c\x07l\xcc\xbe\x04&\xec.\xd3+!\xed\xfb\xc6\x1a\ -\xde\x81\x8b\x94\xdc4F\xab\x079D;\xd3+\x8bZ\ -BzR\xad\xd6u\xde;\x87A\x83:\x8d\x98\x18\x89\ -i\xad w\xa0\x0a\xf0\xf4\xc82w\x88\x1fkX\xd5\ -0\xbbQ\xda\x83\xeb\xb6\x11f\xad\xe5(\xf5G\x0ac\ -B\x8fN+\x8fN\x12\x22\x9c\x90\x84\x07\x930Bp\ -v\xca\x02\x07\x83\x8b1>\xe1\x09\xe2I\x88\x13~\x1c\ -\xf3\x82\xe3\xb7\xa6^\x972\x95\x1b\x09\x1b\xcf/\x10\xd2\ -\x16xJ\xa2\x7f$\xc8:\xbf\xa8\xa2NA\x15\xa5\xee\ -\xbd\xadQ\x82V\x98\x94\xf5\xbe\x5c\xc0\x8d\xd0Z\xecS\ -[;\xcf\x09\x1eD\xf4\xfbS\xec\x05OH&\x01C\ -ID\x80R\xa0;\x04nc\xeex\x1d\xbb\x04\xc7\x93\ -\x96\xef\xf0\x0d\x91<\xf5\x17\xcf\xeeu\xcfOB\xc8\xe8\ -\x1eC\x01\x023\x01\x0f\xc2hB\x89-E\x1c\xb6\xf5\ -\x17't\xc2\x10\x08$\xe6\xd1\xab\xef^\xc7\x02EA\ -D\xa3\xe0\x07S\xb1\xf8\xce\xc2\xf1D\xa7\x8e\xb5wN\ -\x02q\x04\x9df\x14\xb1\x83\x04\x0e&0M\x83\x88\xf3\ -pB0\x0a1\x89\x82\xe0\xfa\x82$\xfdgk\xf3U\ -\xba7\xbe\xdd\xd1W\xa8\xc3\x05\x99\xb9$Jo\x84\xe4\ -\x7f\xa9{'\x12\xea\xf1oN\xf3 K\x1a\xe68\x8c\ -\xb1\xfdd\x808\x8db6,\x08\x0d!G\x8c\x051\ -\xc5\xc3\xee\x86\x96\x8d\xa3\x80&\x84\xb1>p\xe8\xd3h\ -\x04\xea\x0226\xbe\x8fv\x99\x84\xd3o$_\xece\ -)<\xf1~E\x0aoV\xa2\x80v\xbd\xed\xe3\xd2J\ -\xe8\x07\xf8z\xe6t\xa0\xb67{Q\xabuIg(\ -C\x8c\xc6\x98\xd3Vg\x92$\xe4\xc9\xf5s\x05\xf3\xc2\ -7\xd3m\xd9:\xf6\xc2\xff\xdb\x81g\xed\xc0\xab\x9f\xe5\ -I\x1c\xd3\x1f\xacjm\xf2\x02\x8c(\x89\x12\x9e\xd8~\ -\x85A\xbe\x92\x04\x1e\x1c\xf05\x8d\x07d\x12 \xc6C\ -6\xfa\x92ylz\xe0\xb1\xd1\xd21\xb5\xff5\x80\xdf\ -\x7f\x03\xe1\x80\xbc\x94\ -\x00\x00\x0b\x1a\ +etypes=\x22cc\x22 />\x0a \ + \ +\x0a\x0a\ +\x00\x00\x0f!\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0aR\ +y=\x22-8\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22g833\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a \ + \x0a \x0a \x0a <\ +path\x0a \ +d=\x22M 231.11788,4\ +78.5796 V 291.11\ +984 c 0,-5.94833\ + -4.81115,-10.75\ +948 -10.75947,-1\ +0.75948 H 32.986\ +119 c -5.948327,\ +0 -10.759473,4.8\ +1115 -10.759473,\ +10.75948 V 478.5\ +796 c 0,5.94832 \ +4.811146,10.7594\ +7 10.759473,10.7\ +5947 H 220.44588\ + c 5.86085,-0.08\ +75 10.672,-4.898\ +62 10.672,-10.75\ +947 z\x22\x0a \ + id=\x22path827-2\x22\ +\x0a styl\ +e=\x22fill:#37c8ab;\ +stroke-width:0.8\ +74754\x22\x0a \ + sodipodi:nodet\ +ypes=\x22ssssssscs\x22\ + />\x0a \x0a \x0a <\ +/g>\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \x0a <\ +g\x0a id=\x22g85\ +7\x22 />\x0a \ +\x0a \x0a \ +\x0a \x0a \x0a\x0a\ +\ +\x00\x00\x06*\ +\x00\ +\x00\x15\xf2x\xda\xedX[o\xeb6\x12~?\xbfB\ +P^N\xb0\x16\xc5\xabD\xaav\x8a]\x1c\x14]\xa0\ +}\xd9\xed^_\x16\x8a\xc48jd\xd1\xa0\xe889\ +\xbf~\x87\xb2u\xf3\xe54EZ\x1c`\xb1\x16\x12\x88\ +3Cr\xe6\x9b\x1b\xa9\xe5\xb7/\x9b:x\xd6\xb6\xad\ +L\xb3\x0a\x09\xc2a\xa0\x9b\xc2\x94U\xb3^\x85\x7f\xfb\ +\xe9\xbbH\x86A\xeb\xf2\xa6\xcck\xd3\xe8U\xd8\x98\xf0\ +\xdb\xbb\x0f\xcb\xf6y\xfd!\x08\x82}U\xba\xc7U\xc8\ +e\xe8G\x8f\xbaZ?\xbaa\xf8\x5c\xe9\xfd\x9f\xcc\xcb\ +*\xc4\x01\x0e\xb8\x0c\x8e\xe4\xaa\x5c\x850\x9d\x1ed\xc6\ +\x9d\xc9\x81\xdb<\xb5E\xbe\xd5\xd9\x94\x13|,\x12\xa9\ +)-\x98L\x17\x01\xc5\x94DXD\x94\xddvSZ\ +\xd0v\x0b\x7fYi\x8a&\xdf\x80\x92U\xb3\xdd\xb9\xf6\ +?y\x93\xd7\xafm\xd5\x22\xd8\xae\x93\x04[\x9b6\xeb\ +\xb7X\x85\x8f\xcem\xb38\xde\xef\xf7\xa8'\x22c\xd7\ +\xb1_\xa5\xdd\xe6\x85n\xe3\x9e>\x99\xdf\xef7\xcc\xef\ +\x09\xa85;[\xe8\x07XB\xa3F\xbb\xf8\xd3O\x9f\ +\x06f\x84Q\xe9\xcaq\x99\xd9\xee{\xd6\xedK1\xc6\ +\xf1\x5cY\x18\xbdQ\xd2\x96\x0f\x97$\x89R*\xc64\ +\xa64\x02\x89\xa8}m\x5c\xfe\x125\xed\xcddjQ\ +\x0c3\x0b\xabsW=\xeb\xc2l6\xa6i\x0fp\xcc\ +\x84\xcbQx\xbb\xb3u'Q\x16\xb1\xae\xf5F7\xae\ +\x8d\xc1_qx\x07\xf2\xcb\x8dvy\x99\xbb\xdc\xcf=\ +\xf8\xbd\xa7\x10\xdaI\x80\x0c\xe8\x94\xfd\xe5\xd3w\x87\x11\ +\x8c\x8b\x22\xfb\x87\xb1O\xc7!\xfc\xbc@~ov\x10\ +W\xe1\xdd@^\x96E\x068orwWm\xf2\xb5\ +\xf6X\xfc\x01\xf4[\xc6#c&\xec^\xb7z\x5c\xf4\ +\xb0\xac\xd5\x07\x87]\xb4\xa7,6\x95\x9f\x14\xff\xd5U\ +u\xfdg\xbfI\x18\xc4'\x8bV\xae\xd6#q\x19\x1f\ +\xb5?\xda\x16O\x8c[\xc6\xbd\xed\xdd\xa8\xd4\x0f\xed\x08\ +\x8b\x1f\x11\xdcC\xb2\xc9\xed\x93\xb6\xfdFCB\xb4\xce\ +\x14O^\xfa\x8f\xd6\x9a=\xf9\x01\xb2\xd2\xba\xb0\x173\ +\xb6\x02\xf4Wa\xbesf Z\xfd\xf0/H?H\ +\xea\x09\xe5\x9fs\xca\xd5\x15[\xf7Z\x034\x06\x12\xf1\ +\xa16\xfb\xec\xb9j\xab\xfbZ\x87g\x8aUm\xa7\xda\ +*tv\xa7\x07\x1f-\xb7\xb9{\x1c\x11\xf7\xdbx\x0a\ +\x17J\x86#\x19\xa8?\x06\xa0\xce\x02\xfe\x82\x1f\x02\x01\ +o\x91\xe8^#B\x91\x98\x90\x0f\xd4^\xf4s0Y\ +\xe4\xa8\xe9\x03\xf8)\xb2\xbbZg\xfaY7\xa6,\xbf\ +i\x9d5O:\xbb\xc1\xdd\xef8\x8c\xba\xa2\x95A\xa9\ +\xdb\xba\xc9\x22\xce\xe6M\xeb#\x07\xaaS\x91\xd7\xfa#\ +F\xf2\xf6@\xads\xa7?\x1e\xd4\xb9\x1db\x00\x1c\xda\ +\xf9\xe9\xe0\x5c\xef\xc1\xeem(F\xbe\x86\x94\xbe\x04\x1e\ +\xb6\xd8B\xfc\x14\xa66v\x15\xdeK\xbf\x05\x0e\xbe\xf7\x0d\xfa\xef\xfe\xdf\xf7\ +\xd0\xac\xff=\x11\x19M0M\x03qgl\x04\xc6<\ +\xe7ng\xf5\x18*'i\x985pX\x98\x94\xcbQ\ +\xd3\xa3\xae\xa3\xfd'\xb9\x07\x85\xdbV/\x1f!;S\ +\xa6\xa8\xe2\x0b\xd0n1\x8e\x12\x85\xa0\x9f\x09\x22\x164\ +EDRp\xf1\xed\xb4-\xcc\xad\xfe5\xdaO0\x22\ +)\x991|\xe3\x0a\x22\xc1P\x8a%O\xe4\x82\xc3K\ +JD\x22\x02\x82Q\xca0\x8c\x16\x91D\x9cIJT\ +2\x9b:\xc5\xe4F\x15\xfe\xf9\xe6z\x9d\xca\xb1\x7f\xe6\ +u\x8a\xa2T1\x9e\xaa\x94\xf6\xf4\xba\x02K\xf2mv\ +\xbfsnJ\xfb\xd9TM\x06MK\xdb\x9ez\xcc\xe8\ +\x8c\xf4\x84\x8e[C\x94\xba\x8c\xf7\xb42\x87\xd4\xb66\ +\x7f\xed\x9cv\xd0n\x988oy\xbf\x11\xba\xec\x12\xba\ +\x1cQ\xceE\x92,\x22\xc2\x91J\x19W\x22P\x88\x09\ +I\xb0Zt/XI\xfa\x7fp\x7f\x09\x5cq\x0a\xee\ +\x8fA\xc4\x08\x92)\xa6\x09\x84)I\xa1nr\x8a\xd3\ + \xe2\x14\xea`\x9ax\xc8\x05J\xa8\xa4R\x8a\xdf\x09\ +\xdfD\xfez|\xdf\x00\xe7\x99'N\xf0\x9d\x1934\ +f\x03\xbd\x10\x0evp\x02/\x8a/\xbb\xe0\xca\x9c\xdf\ +\xc0K\xe9\x85\x14\x00\x7f\xa4\x92&\x8c/\x22\x868N\ + \xe0y\x00\xc7\x8eT0\x92&\x8b\xae\xd6P\xf5?\ +\x9c\x01\xba\xae\xabm;?\xa6C\xc3e\x08\x0b\xd0/\ +\x99cf_<\x87\x08\xb8\x12\xd2y\xd8\xfa\x1e\x9f \ +J\x80G\xe71\xe0\xcf\x06\x91\x10\x88Q\x8aYz\xc5\ +7,\x89\x92\x88]\x82y\x1eg\xd9M*\xfcsb\ +\xd2u\xfc\xa7!;\x80/\x89\xa2L\xb03\xa0\xad\xd9\ +5\xe5;R\xe1M\xc8R(\xb4\x5c\x12v\x09Y\x9c\ +@$&\xc9\x19\xb2)\xe2\x8a%T$\xe7\xc8R\x85\ +`\xb1\x84\x91\xeb\xc8\x92\xb7\xe0zO\xfd\xf3\x0e\x5c\x19\ +bD*Bi\xfaup\x85^\x96\xc2!\x85\xf13\ +\x5c9\xe2\x84\x10E\xce#\xd6Wf\x9a\x08*\xc49\ +\xb0\x8c\xa2\x84'\x22\xa5_\x08\xd97\x01\xab\xfd\xf3.\ +`\xa5\xc2*\x01p\xbf\x0e\xb0P\x17%\x1c\xfa)\xbb\ +\x10\xb0BB%\xbb\x84+G\xd2\x07\xac\xbaP\x0a\x18\ +$\x00\x86Jq\x15\xd7\xb7\xa0Z*\xff\xbc\x0bU.\ +\x15\xe4Z\x92~-T%\x06\xec\x98\xbc\x80\xaa\xa2\x82\ +`r\x8e*\xcc\x91BHu\xa1\x0cp\xb0\x07\xae_\ +\xfc\x0b\xd1\x8a\xdf\x82\xab\xcc\xfd\xf3\xce2\xc0\x94\x94\x8a\ +\xfe\x9e\xb8.\xe3u\xffE`}z/\x9b\x5cl&\ +_\x12\x10\xc6IJ%[DT\x00\x8c)U\xea6\ +\x9c_\xe5\x08\x5c\xe5\x86/\x0d'\xd7\xbcdR=.\ +n\x80\x91\x80\xdb-\xdc\x97\xfa\xaf\x15\x9dfK\xff\x8d\ +\xec\xee\xc3\x7f\x01\x01\xb0A\xae\ +\x00\x00\x09s\ +\x00\ +\x00F\x16x\xda\xed\x5c[\x8f\xdb\xb8\x15~\xcf\xaf\x10\ +\x9c\x97\x04\xb5h\xf2\xf0\xee\x8c\xb3@\x11,v\x1f\xfa\ +\xd2n[\xa0/\x0bE\x92=\xda\xd8\x96!in\xf9\ +\xf5=\xa4,[\x92\xe5D\x93\xcbf\xda\xf1$\xbb\x10\ +\x0f/\x22\xbf\xf3\x1d~<\xd4 W?\xddo\xd6\xc1\ +mZ\x94Y\xbe]L\x18\xa1\x93 \xdd\xc6y\x92m\ +W\x8b\xc9?\x7f\xfb94\x93\xa0\xac\xa2m\x12\xad\xf3\ +m\xba\x98l\xf3\xc9Oo_\x5c\x95\xb7\xab\x17A\x10\ +`\xe7m9O\xe2\xc5\xe4\xba\xaav\xf3\xd9lwS\ +\xacI^\xacfI\xbf\xc1\x15O\xde\x1e\xccW\ +Ii\ +\xab<\x0d@\x22\xe9\x5c?\xcd\xa8\x9db~\xe2x\x12\ +{\x8b`x\x12\x02t@C\x1dT\xfe\x9a[\x5c\xbb\ +2C\x86\xca\x9a\xa9\xa6n\xc0\x94\xe8p\x0b\xacQ\x0d\ +\xd3;e\xe4\xea\xb3gR\x81|9\x81`\xc4nV\ +/\xc7\x11\x85\x22\x97\xa8\xfe\xe4rZ\x13\x17\x9f\x9e\xf7\ +\x11\xd7]\x94a6\xe0\xb3\xbb\xf9&*>`R\x19\ +\xb8y\x05u\xcb\x96\xdf\x5c\xc6!\xf0L\x8b\x87\xc26\ +\xa91I\x01p\xd9\xb0\xd2\xb6en2,plS\ +\x0cZU\xfb\xf4\x0c\xe9\xaf\xf1L/M/p\x1cT\ +\x5cs\xdd\x86/]\xaf\xb3]\xd9\xba\xa6(\x5c\x12J\ +\x04\xd7\x8a\x9a\xf6\xd8\xc5\xbd\xb7\xe3\x19[\xe9\xb6=\xf6\ +\xf9\x12\x01\x85[\x05\x0ai_\x83\x94UT\x8d\x89\xf3\x8b\ +\x02\x9d(Ph\xfb\x1ad\xc0\xaa\xd6/\x1a>Q4\ +\x9f\xa4\x02\xa9\x11\x0a\x04\x92H\xaa-\x85\x8b\x06}N\ +\x83\xe8\x08\x0d\x1a\x86\xf3\xa2B\x03*\xa4F\xa8\xd0\xe3\ +\xe1|\xbe:\x04#t\xe8\x5c\xb4_\x94\xe8T\x89\xd4\ +\x08%z\x92x>I-2#\xb4\x88\x09\x02\xa8\xeb\ +\x94]\xb4\xe8sZ\xa4Gh\xd10\x9c\x17-\x1a\xd0\ +\x22;B\x8b\x1e\x0f\xe73\xd6\xa21I\xd1\xb9p\xbf\ +\x88\xd1\xa9\x18\xc1\x081z\x92x>I1\x92v\xcc\ +\xdd\x9c\xfbUzD\xf3\x92\x19}\xfevn\xd4\xf5\xdc\ + \x9e\x179\x1a\x90#3\xe6\x82\xee\xd1p>_9\ +\xb2c\xae\xe8\xce\x84\xfbE\x8dN\xd5H\x8f\xb9\xa4\xfb\ +r<\xfd\xaf8\x5c\xb9\x7f8\xe3\xed\x8b\xff\x02hI\ +h\x9e\ +\x00\x00\x0a\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x16\xf3\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x08\xf0\ +y:1;paint-order:\ +markers stroke f\ +ill\x22 />\x0a \x0a\x0a\ +\x00\x00\x0f@\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0a\x0a <\ +metadata\x0a id\ +=\x22metadata12\x22>\x0a \ + \x0a \ + \x0a image/svg+\ -xml\x0d\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \x0a \x0a \ +\x0a \ +\x0a \x0a \ + \x0a \x0a \ +\x0a \x0a \ + \x0a <\ +g\x0a id=\x22g\ +901\x22\x0a tr\ +ansform=\x22matrix(\ +1.0739294,0,0,1.\ +0739294,69.94982\ +8,29.759617)\x22>\x0a \ + \x0a \ + \x0a \x0a \ +\x0a \x0a\x0a\ +\x00\x00\x04\xb5\ +\x00\ +\x00\x1egx\xda\xe5YKo\xdbF\x10\xbe\xfbW\xb0\ +\xf4%A\xcb\xe5\xbe\x1f\x8c\xa4\x00m\x10 \xd76E\ +\xcf4\xb9\x92\x18\x93\x5caI[v~}\x86\x12)\ +R\xae\x1d\x14\xd2\xa5\x00\x09\xe9\xb03\xb3;3\xdf\xbc\ +\x96\xd2\xe2\xe3SU\x06\x8f\xd67\x85\xab\x97!A8\ +\x0cl\x9d\xb9\xbc\xa87\xcb\xf0\xef\xaf\x9f#\x1d\x06M\ +\x9b\xd6yZ\xba\xda.\xc3\xda\x85\x1fW7\x8b_\xa2\ +(\xf8\xc3\xdb\xb4\xb5y\xb0/\xdam\xf0\xa5\xbeo\xb2\ +tg\x83w\xdb\xb6\xdd%q\xbc\xdf\xefQ\xd1\x13\x91\ +\xf3\x9b\xf8}\x10E\xab\x9b\x9bE\xf3\xb8\xb9\x09\x82\xa9\ +N\x12v\x84\x22_\x86\xc0\xa3\x87\xc5\xbe\xc8\xdb-\xf0\ +\xccq\xb9\xb5\xc5f\xdb\x8e\xeb\xc7\xc2\xee\x7fwO\xcb\ +\x10\x078\x00b00\x1a\xb0|\x07\xdf$wY\x9d\ +V`p\xb3\xab\xd2\x16\xc1\xc1G%\xbdE\xc9T=\ +\xa2\xc1;\x9cb\x9c\xad\x05c\xe6\xb7\x80bJ#\x0c\ +\x1f\xfe\xfe\xb0\x09 \xaa\x9bd\xd8\xba\x0c\xdf\xf2\xb0S\ +\xd8\xec\xd2\xcc6\xf1@\x9f\xec\x1fL;\xed\x1f\x08\xa8\ +q\x0f>\xb3k8\xc2\xa2\xda\xb6\xf1\xa7\xaf\x9fN\xcc\ +\x08\xa3\xbc\xcd\xc7c\xce\xb4\xef\xd9A/\xc5\x18\xc7\x83\ +\x87\xbd\xb2\xc7\xcd\x7f\x94\xf4\xf9\xfa5Ib\x8c\x891\ +\x8d\x01\x09\x90\x88\x9a\xe7\xbaM\x9f\xa2\xba\xb9\x9dl\xcd\ +\xb2\xd3\xce\xac\xcb\x85\xe2\xd1f\xae\xaa\x5c\xdd\x1c\xe18\ +\x13\xceG\xe1\xdd\x83/\x0f\x12y\x16\xdb\xd2V\xb6n\ +\x9b\x18\xe2\x10\x87+\x90_T\xb6M\xf3\xb4M\xbb\xbd\ +\xc7\xb4\x18(\xfa \x00\x22`R\xf2\xe7\xa7\xcf\xc7\x15\ +\xac\xb3,\xf9\xc7\xf9\xfb~\x09O'\x90\xde\xb9\x07\xc8\ +\x99pu\x22/\xf2,\x01\x98!!VE\x95nl\ +\x07\xc5\xaf`\xde\x22\x1e\x19g\xc2\xed\xf3\xce\x8e\x87\x1e\ +\x8f\xf5\xf6\x18\xafW\xdd\xc9\xb3\xaa\xe86\xc5\x7f\xb5E\ +Y~\xe9\x94\x84A|\xb23\xee\x0d\xed\xdd\x88'~\ +,\xe2\xc1\xcb\xc3*\xb7\xebf\x04\xa0[\xc9\xfe\xa0\xc5\ +)\xc7\xbb|\xcb\xbbR8\x0a\xee@Y\xe6J\xe7\x97\ +\xe1\xed\xfa\xf0\x84G\xc6\x9d\xf3\xb9\xf5\x03K\x1e\x9e3\ +\x96\x83\xa4\x05\xb3\xa1\x18z\xb2\xbb\xfbf\xb3\xb6u\xa5\ +\xf5i\xdd\xb9Jp\xcf\xd9x\xa8\xcc\xd7\xe8\x0fEn\ +_c\x9c*\xae3\xef\xa4\xe8Un\xb3Ms\xb7_\ +\x86\xf4%s_\xd4\xc0\x88\xfa\xa6@\x05\x16oH\x9c\ +\xfa\x04&\x83\x87\x1d|'\xa0xOl\xb6n\xdfy\ +\xb2\x0c\xd7i\xd9\xd8\x97\xa7}w\xae\xea:\x03\xa5\x86\ +H\xa9^\xb23h<\x11\xd1\x0a\x11\xa2%\xff\x17\x17\ +\xdcS\x181E\xb52o\xd8\x09\x07\x88\xb7|\x80\xed\ +T\xbd\xc1\xab\xd2\xa7\xa2*\xbe\xdb|\x0c\xd5\xa8\xf7\xc1\ +{\xa8\xa4\xa8L\x9f\xad\x9f\xb4\xd2\x17 g[\x9b\xdd\ +[\x7f\xe7R\x9fwq\xe8\x93\xcaC\xbc{l\xda\xe7\ +\x12\x02\xb8\x86\xfcMj\xe8\xf9\x1f\x9a\xd6\xbb{\x9b\xdc\ +\x9a\xc3\xd3/\x8f\xc1H\x08Cl\xa0\x94EmAM\ +\xe2\xddC\x9dO\x89\xdf\x5cQ\x9fS\xa1H\xac/\xc1\ +\x956\xe1\x03-O!\xfe\xde\xa7\xcfS\xadQ\x9f1\ +\x09\xf9\xb0K\x0b\xf0\xee\x90\xafI\x95z\xf0\xa1\x09\x8e\ +BAg\xeb$\xdc\x9d/\x06\x0f\x00\x0d\xa3Dr\xa4\ +\x94\x11C^\x9cREh\xc4\x95RC\x1c!4\x84\ +#-%\xe5\x83hW\x18\x0aa\xc1\x85&?\xc7k\ +\xc0\xa8[LL\xff\x19\x82\x0cQ\xc6\xb1\xf8_\x82(\ +\xa5\xc1\xe7(J\xa4\xa40\x5c\xe9\x17(\x0et6\xa2\ +\xc8(R\x9c*NF\x14\x99\x00\xa8\x05\x96\xb3\x031\ +\x12\x17\xc3\xc85\x12\x98p\xa6G\x18;\x92\xd0\x9c\x9b\ +\xf9\xe1H/\xc6QR\xa4\x0d7\x86\x8d8\xcaC\x86\ +2Mg\x88ctyak\x8d\xa8\xa2X\xd1\x11I\ +!\x116\x90\x91r\x8eH\xf2\x8b\x91\x14\xf0\xbe%\x05\ +\x15#\x90\x1aC\x87\xd4\x0a\xcf\x12Hr1\x90\x86!\ +\x03\xf7-2\x99\xd8p=\xc3J0\xc3\xe7\x87\xa4\xbc\ +\x18G\xa5\x91\xc2\x82\x1a3\xe2\xa8\x00G\x18?\x9c\xcd\ +ph_1\xb6\x09!H\x09z\xba\xc9wM\xd2 \ +J\x14\xd7|\x96\xe3\xe6\xf2.\xc9\x81f\x94\x9c\xce\x1b\ +x\xbfC\x86\x18%\xe6\x08\xa5V\x97g%\x93\xf0b\ +*\xcdd\xe2H\x86\x88\x11\x86\x90Yf\xa5\xbe\xa2\xc0\ +)b\x5cN[%\xc1\x14\x09\xc9\x0c\x9beV^^\ +\xdf\x02&\x8c\x11l\x92\x94\x84bD\xb4\x10\xb3\xbc\x99\ +\xcb\xcb_r4A\x9a\x0b\xcc\xa6I\xc9\x09\x8c\x1d,\ +\xe6y5\xbf\xa2U\xc2\xe5\x9c\x10}\xf4\ +\x12\xd7i5o\x0a^\xc9F\xac\xdcF\xba\x1f\xae\xdf\ +-\xdb\xfb\xcd;\xc7q \xb8i\xb3\x22_\xb9[\xad\ +w\x99\xef\xef\xf6\xaaBRm\xfc\x22\xf7E%j\xd1\ +\xe8\xd6'\x88\xf8\xee\xe4\x9eO\xee\xb9\x12\x5c\x97\xf7\x22\ +\x97u-\x9b\xb6\x8bl\xda\x8b\x99\xb3*\xd6\xa3\xf7\xe1\ +p@\x87\xa0s\x22i\x9a\xfa\x98\xfa\x94z\xe0\xe1\xb5\ +\x8f\x8d\xe6\x0f\xdeq(\x9c\xf1T(\xc5\x18\xfb`\x9b\ +<_\xe6\x95\xb5\x80\xca\x0e\xfeGw\xab@\xad\xdc\xab\ +\x5c\xac!N\xa0Fh\xff\xe6\xd3\xcdh\xf40*t\ +1[\xa6l\xee\xda\x9c\xef\xc4\xd1\xaeV\xd9#\xc0k\ +\xd1\xeex.Z\xdf\xea\xbbx+d\xf3|9\xef\x19\ +\x0eB\xce\xd6\xb7,]8\x14S\xec\xe1\xd0\xc3\xe4\xb2\ +\x0b\xb1\xa7\xc8\x0a\x99\x9beW./\x8a\xbfn\xb9\xd6\ +\xc8^\xae,V.\xfc\x8e:a\xb62\xe9\x15\xa58\ +\xfc,\x1fV.v\xb0\xc3\x12\xf8\xeb\xd4[Qn\xb6\ +z\xe5\x0e\xe2\xa1,\xf4\xb6\x93\xaeA\x5c\xd6B\xf3\x82\ +knL\xfd\x06VCh\xe7\x01>\x90\xb6\xec\xb7\x9b\ +\x8f\xbd\x04r\x9eg\x7fJu7\x88\xf01\x0e\xfcV\ +\xeea\x17\xf7zT/\x8b<\x03\xa0k\xae\xaf\xcb\x9a\ +o\x84\xc9\xd1O\x00\xec\xd2\x9f\x0cG\xce\xfaq'\xa6\ +E\xfbe\x95\xe83v\xb2l\x8b\xbc.M\x90\xff\xbb\ +.\xab\xea\x17\xb3\x89\xeb\xf8O\x16-u%\xae\xbb=\ +\xfb\x9f\xf6\x16\xfep\x8d\xe1\x92\xfe\xec\x96K\xdf\x82\xd0\ +I\x85X\xb7\x13>F\x22x\xd8g9f\xcd\xa4\xac\ +0)\x18\x18+1VF\xc2\xa7\xd6\ +/R\xd6\xa6\x02\xe3 \x090\xa3\x83\xb9\xdd\xca\xc3F\ +\x19\xb0\xd6\xbcj\x85;\x817\xa2\x94\x9c9\xa1\xadV\ +\x82I|\xc6e\xa8`\x92<\xbf\xca\x0e*\xa0\xddr\ +\xf0\x02\x10N\x19%\xf4*\x94\xcc\x94\x83\xcd\xbe,\x84\ +\x96\x95P\xbc1UFF\x03\x9c\xff\x94^\xde~\x16\ +\xb9>e\xb9\x95\xaa\x10j\xdc\x81\x1c\xa9sYIH\ +\xedE\xd4}\x06\x939\x915\xac\xbb\x8f-\xab\x1d\xd7\ +\xdb\xdeg\x0d\x95m\xb8\xbc\x99\xc3h\xcc\xf6~ \xfe\ +\x0a\x1d\xbfe\xc9=K\xb6\x1eK\xbe\xd8E6\xbd\x83\ +\x86\x83\xb6\xa6\xdf\xa0\xb7\xb9V\xe5\xc3{\x8cH\x94`\ +\xc8v\xb0\xc0\xe6;\x89\x94\x22\x9c\xd08\xa2\x0b/B\ +\x11\x89)\x0b\x93\xcb\xd9\xc6\x9b$\xb0\xf7j\xf5c\x05\ +\xd77\xe7\xcb.\xb80\xdf+#x\x03\x02\x19\xb9j\ +\xb5\x92wb\xb4\xf6\xa2W\x95\x8d\x80\x84dJ\xee\x9b\ +\xc2*\xc7 K:\x13\x023jl$$\x0b\x1a\x1e\ +\x9e\x03y\xeeZ\xf3T\xab\xb2\x81\xa5\xb5T\x1et\xd4\ +=\xd7{%\xa6LO\xc8%\x84\x8e:CxN\x1a\ +\x22\x9c\x924\x0e\x16a\x84\xe0\xd2\x94\x05\x0e\x06\x15c\ +\xf1\x22NQ\x9c\x868\x8d\xc7\x90\x17\x5c\xbc\x13\xd5\xbe\ +\x12\x99\xb8\x17p\xe8\xe2\x0c\x14])g$\xfaGh\ +\x8c\xf2\xb3,\x9b\x0c\xc8N(\xab\xed\x84\x0a\xc8@g\ +\xcc\xea\x0a\x0e\xc5\xaf\x14\x7f\xccL\xbd<\x87\xd6r\xe3\ +w\x06\xd7\x0b\x8e\xe1%\x01CiD\x00L\x00:\x04\ +T\x93\xd8\xf1z\x5c\x09N\x16\x1d\xd2\xe1\x9b\x81w\xe9\ +o\x9e\xb4\xb0\x85&%d\xeaY\xa8:\x00%\x88\x83\ +0ZPb\xea\x0f\x87]\xd1%)]0\x04\xfc\x87\ +\xe3\xe8\xb5\xad\xd6\x03@Q\x10\xd1(\xf8\xb1(l\xbe\ +/K\x1cS\xd2Xq\xa7\xb8\x0eG0 F\x11\x1b\ +\xb8n\x14\x01d\x1aDq\x1c.\x08F!&Q\x10\ +\x5c\x9ed\x9f\xfflA\xbe\x82\xe4\xe6\xed\x1c}5\x19\ +\x9c\xe1\x94\xd3\xfc\xf36\xe0\xfd:\x92;bK/\xfe\ +\xb6\x00[\x06R\xb0@\x1f`f\xc2\x00\xc54J\x98\ +\xdd\x0b\xc6\xba\x181\x16$\x14\xdbc\x8d\xb3W\x8c\x02\ +\x9a\x12\xc6\x06\xfd0p\xd1\x08x\x04\xf8j\xd6{f\ +\x874\xa6\xdf\x86\xa6\xd8\xcb\xd2v\xa4\xfd\x17i\xbb\xda\ +\xf1\x12f\xedn*\xcbj\xae\xee\xe0=\xca\xe9\x9d\xba\ +a\xeb\x05\xd3\xd39F\xa1\x0c1\x9a\xe0\x98v\x8c\x92\ +\xa6a\x9c^>c*/|\x0b\x03\x94\xa9Z/\xfc\ +\xff9?\xc7\xf9\xd5\x8f\xe94I\xe8\x8f%\xaf.o\ +\x01F\x94Di\x9c\x9aA\x84A\xaa\xd2\x14\x9e\x0c\xf0\ +~\x15\x07d\x11 \x16\x87lz/\x9cf\x19x.\ +\x18$\x96\xe6\xbd\xfe\xfa\xdd\xdf\x9e\xd9\xb6\xb0\ +\x00\x00\x0a\xd7\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \ + \x0a\ + \x0a \ + \x0a image/svg\ ++xml\ \x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ +e\x0a rdf\ +:resource=\x22http:\ +//purl.org/dc/dc\ +mitype/StillImag\ +e\x22 />\x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x07y\ +#666666\x22\x0a bo\ +rderopacity=\x221\x22\x0a\ + objecttoler\ +ance=\x2210\x22\x0a g\ +ridtolerance=\x2210\ +\x22\x0a guidetole\ +rance=\x2210\x22\x0a \ +inkscape:pageopa\ +city=\x220\x22\x0a in\ +kscape:pageshado\ +w=\x222\x22\x0a inksc\ +ape:window-width\ +=\x222495\x22\x0a ink\ +scape:window-hei\ +ght=\x221016\x22\x0a \ +id=\x22namedview4\x22\x0a\ + showgrid=\x22f\ +alse\x22\x0a inksc\ +ape:zoom=\x221.1020\ +922\x22\x0a inksca\ +pe:cx=\x22112.51327\ +\x22\x0a inkscape:\ +cy=\x2287.560732\x22\x0a \ + inkscape:win\ +dow-x=\x2265\x22\x0a \ +inkscape:window-\ +y=\x2227\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22g1179\x22\x0a \ + inkscape:snap\ +-bbox=\x22true\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a\ + \x0a \ + \x0a \ + \x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x0a\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\x05\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221851\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview6\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x224.9166667\x22\x0d\ -\x0a inkscape:c\ -x=\x2224\x22\x0d\x0a ink\ -scape:cy=\x2224\x22\x0d\x0a \ - inkscape:win\ -dow-x=\x2269\x22\x0d\x0a \ - inkscape:window\ --y=\x2227\x22\x0d\x0a in\ -kscape:window-ma\ -ximized=\x221\x22\x0d\x0a \ - inkscape:curre\ -nt-layer=\x22svg4\x22 \ -/>\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xdd\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x00\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \x0a \x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a\ + ~\x0d\x0a\x0d\x0a\ -\x00\x00\x0c0\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a BusBar\x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x0a-\ +y:1;stroke:none;\ +stroke-width:1px\ +;stroke-linecap:\ +butt;stroke-line\ +join:miter;strok\ +e-opacity:1\x22\x0a \ + d=\x22m -113.89\ +831,-16.423729 c\ + 5.28813,3.75833\ +9 6.58476,4.7817\ +23 11.87289,2.59\ +3221 l -3.3305,9\ +.8135589 c -2.07\ +314,-1.9708122 -\ +5.14567,-2.79845\ +53 -10.75425,-1.\ +1949153 z\x22\x0a \ + id=\x22path990\x22\x0a \ + sodipodi:n\ +odetypes=\x22ccccc\x22\ + />\x0a \x0a\x0a\ +\x00\x00\x16t\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \ + \x0a \x0d\x0a\ - \x0d\x0a \x0a \x0a <\ +ellipse\x0a s\ +tyle=\x22opacity:1;\ +fill:none;fill-o\ +pacity:1;stroke:\ +#989898;stroke-w\ +idth:20.4293;str\ +oke-miterlimit:4\ +;stroke-dasharra\ +y:none;stroke-op\ +acity:1\x22\x0a \ +id=\x22path4482\x22\x0a \ + cx=\x2296.5\x22\x0a \ + cy=\x2295.499\ +992\x22\x0a rx=\x22\ +84.785355\x22\x0a \ + ry=\x2284.785362\x22\ + />\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0bd\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0a\ + \x0a <\ +path\x0a styl\ +e=\x22fill:none;str\ +oke:#989898;stro\ +ke-width:8.52797\ +;stroke-linecap:\ +round;stroke-lin\ +ejoin:miter;stro\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a d\ +=\x22M 32.146252,97\ +.880995 H 14.574\ +502\x22\x0a id=\x22\ +path4494-4\x22\x0a \ inkscape:conn\ ector-curvature=\ -\x220\x22 />\x0d\x0a \x0d\x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x06s\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x22826\x22\x0d\x0a \ - inkscape:win\ -dow-height=\x22480\x22\ -\x0d\x0a id=\x22named\ -view6\x22\x0d\x0a sho\ -wgrid=\x22false\x22\x0d\x0a \ - inkscape:zoo\ -m=\x224.9166667\x22\x0d\x0a \ - inkscape:cx=\ -\x222.6440678\x22\x0d\x0a \ - inkscape:cy=\x222\ -4\x22\x0d\x0a inkscap\ -e:window-x=\x2269\x22\x0d\ -\x0a inkscape:w\ -indow-y=\x2227\x22\x0d\x0a \ - inkscape:wind\ -ow-maximized=\x220\x22\ -\x0d\x0a inkscape:\ -current-layer=\x22s\ -vg4\x22 />\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\xcd\ +ill:none;stroke:\ +#989898;stroke-w\ +idth:8.52797;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22\x0a d=\x22M \ +180.56676,99.606\ +813 H 162.99502\x22\ +\x0a id=\x22path\ +4494-4-3\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22 />\x0a \x0a\x0a\ +\x00\x00\x08\xaa\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +g/ns#\x22\x0a xmlns:\ +rdf=\x22http://www.\ +w3.org/1999/02/2\ +2-rdf-syntax-ns#\ +\x22\x0a xmlns:svg=\x22\ +http://www.w3.or\ +g/2000/svg\x22\x0a x\ +mlns=\x22http://www\ +.w3.org/2000/svg\ +\x22\x0a xmlns:sodip\ +odi=\x22http://sodi\ +podi.sourceforge\ +.net/DTD/sodipod\ +i-0.dtd\x22\x0a xmln\ +s:inkscape=\x22http\ +://www.inkscape.\ +org/namespaces/i\ +nkscape\x22\x0a widt\ +h=\x2248\x22\x0a height\ +=\x2248\x22\x0a viewBox\ +=\x220 0 48 48\x22\x0a \ +version=\x221.1\x22\x0a \ + id=\x22svg6\x22\x0a so\ +dipodi:docname=\x22\ +to_transformer.s\ +vg\x22\x0a inkscape:\ +version=\x221.0 (40\ +35a4fb49, 2020-0\ +5-01)\x22>\x0a \x0a \x0a \x0a \ image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a <\ -g\x0d\x0a id=\x22g831\ -\x22\x0d\x0a style=\x22s\ -troke:#b3b3b3;st\ -roke-linecap:rou\ -nd\x22>\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x09*\ +60\x22\x0a inkscap\ +e:window-y=\x2226\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +svg6\x22\x0a inksc\ +ape:document-rot\ +ation=\x220\x22 />\x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + id=\x22path2\x22\x0a \ + fill=\x22none\x22 /\ +>\x0a \ +\x0a \x0a\x0a\ +\x00\x00\x07=\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -rect\x0d\x0a sty\ -le=\x22fill:none;fi\ -ll-opacity:0.849\ -51453;stroke:#99\ -9999;stroke-widt\ -h:3.85741425;str\ -oke-linejoin:rou\ -nd;stroke-miterl\ -imit:4;stroke-da\ -sharray:none\x22\x0d\x0a \ - id=\x22rect41\ -36\x22\x0d\x0a widt\ -h=\x2244.142586\x22\x0d\x0a \ - height=\x2244\ -.142586\x22\x0d\x0a \ - x=\x221.9287071\x22\x0d\x0a\ - y=\x221006.2\ -909\x22\x0d\x0a ry=\ -\x2210.186751\x22 />\x0d\x0a\ - \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0aj\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x14\x89\ -\x00\ -\x00H9x\xda\xed\x5c[\x8f#\xc7u~7\xe0\xff\ -\xd0\x19\xbdH\x08\x9bS\xf7\xaa\x1e\xed\xc8@,\x18\xf1\ -S\x82\xd8B\x9e\xb9Cjg\x22\x0e9 9;\xbb\ -\xfa\xf5>\xb7:UM\xce(\x8a\x93\x18\xb6\xa05\x8c\ -aU\xd7\xf5\x9c\xef\x5c\xfb\xb4\xde\xfd\xee\xd3\xe3v\xf8\ -\xb89\x1c\x1f\xf6\xbb\xdb+\xbb4W\xc3fw\xb7_\ -?\xec>\xdc^}\xf7\xe7?\x8c\xe5j8\x9eV\xbb\ -\xf5j\xbb\xdfmn\xafv\xfb\xab\xdf}\xf3\xdb\xdf\xbc\ -\xfb\xa7q\x1c~\x7f\xd8\xacN\x9b\xf5\xf0\xf2p\xba\x1f\ -\xfe\xb8\xfb\xe1x\xb7z\xda\x0c_\xde\x9fNO7\xd7\ -\xd7///\xcb\x07\xe9\x5c\xee\x0f\x1f\xae\xbf\x1a\xc6\x11\ -\xa6\xc2\xe4\xe3\xc7\x0f\xbf\xfd\xcd0\x0c\xb0\xf7\xeex\xb3\ -\xbe\xbb\xbd\x929O\xcf\x87-\x8d]\xdf]o\xb6\x9b\ -\xc7\xcd\xeet\xbc\xb6K{}\xd5\x8d\xbfk\xe3\xef\xf0\ -\x04\x0f\x1f7w\xfb\xc7\xc7\xfd\xeeHSw\xc7/\xfa\ -\xd1\x87\xf5\xf7:\x1c\x8f\xf4\xe2i\x94\x9d\xa6\xe9\xda\xb8\ -k\xe7F\x181\x1e?\xefN\xabO\xe3\xd9\x5c8\xe7\ -ks\x9d1\xe6\x1a\x9euC\x7f\xe6\xb0\x9b#P\xf6\ -\x09\xfe\xaf\xe3k\xc7\xf2\xb8\x7f>\xdcm\xbe\x87\x89\x9b\ -\xe5ns\xba\xfe\xf6\xcf\xdf\xea\xc3\xd1,\xd7\xa7u\xbf\ -N%\xecl\xdf\x19\xb5w\xab\xc7\xcd\xf1iu\xb79\ -^\xd7~^\xe0\xe5a}\xba\xbf\xbd\x0a\x85\x9b\xf7\x9b\ -\x87\x0f\xf7\xa7\xd6\xfe\xf8\xb0y\xf9\x97\xfd\xa7\xdb+3\ -\x98!\x94\xa5\xc1\x7f\xb6\xfd\xe2Q\x0f\xeb\xdb+\xb8\x9a\ -\x939\x0d?\xf5\xb9ly\xa3\x8f\xccrr\xcb0|\ -\xf9\xbc\xfba\xb7\x7f\xd9}\xc5\xe3\xea\x0do\xd6\xfb;\ -<\xf1\xed\xd5\xe3\xeai\x89D\xfb\x06\x9f\xbf[o\xbe\ -?\xd2@\xde\x12\x9b\x81\x1f\xc1\xc3\xbb\xed\xc3\xd3\xbf\xaf\ -N\xf72`\x18j\xc7w\xbb\x87\x13\xb0\xe4\xf9\xb89\ -\xfc\x09I\xf0o\xbb\xef\x8er\xfb\xbaR\x1dZ\x5c\xac\ -\xeb\xc1\x8a\x87\xcd\xddI\x87\xc1\xe9N\x9f\xb7p\xa4\xef\ -\x1f\xb6\xdb\x9b\x1d\xc0\xffk\xfc5\xeea\xc9\x87\xd3\xe7\ -\x1b\xb3,a\x8a6D\xff\xf5\xf1t\xd8\xff\xb0\xb9\xf9\ -b\xa2\x7f\xd2\x1c\x89\xd27~Yb\x0e6\xb8X\xfb\ -\xb7\x0f\xbb\xcd\x7f\xed\x1fv7\x87\xfd\xf3n]{\x1f\ -\x1fN\x9b\xc3\xf6\x01\xfe\xdc\x84\xda\xb7^\x1d\xefW\x87\ -\xc3\xea3m\x7f\xd5\x1d\x0d\xef\x80\xa7-.\xf7\xdd\x95\ -\xb9a\x89\x1b\x96\xd4?SN\xbf\xf6\xf0\x132or\ -%\x9bl\xfb\xfe\xcf\xd0oLZ\xba\xc9L}\xff\x81\ -\x1e,mI9\xda\xab\xe1\xba\xf2\xe4\xba\x12\x96\xf9w\ -\x8d\x1c\xe3\x9f\xcaj\xe4\xf3\x1aa\xd61\xf6\xfd\xaa1\ -\xe8i\xf5\x01\x04z\xbb?\xdc^}\xf1=\xfd\xabO\ -\xde\xef\x0f\xeb\xcd\xa1>K\xf4o\xfeLx\xc3\x9a\xac\ -\xae_\xb1\x88\x0b\xeb\x00\xf3\xc6\x00 \xf8z\xffr{\ -\xe5.\x9e\xfe\xb8\xdf?\xde^\xf9\xa5\xb5\xd9\x96\x1c/\ -\x9e\xdf\x01\x0d\xc7\x84\xc4\xb5v\xca\x97\x8fa\xd3\x0cO\ -\xad\x9bl\xb9x\x0a\xf8\x7fFu7>3v\x9f>\ -].\xf0|8\xe0\x88\xed\xea\xf3\x06\xeeO\x7f\x94W\ -\xc7\xfb\xfd\xcb\x87\x03\x92\xf2\xfb\xd5\xb6\xd1\xf2\xed\xd5^\ -\x1evp\xcfQ\x00\x03|\xf4o\x0d\xa9\xb8\xb1\xc6\xc5\ -\xb7\xc6\xc0\xd5c~\xeb!\x5c\xdc\xbd\xf9\xf0q\xf5\x09\ -0\xff\xe3\x06N\xae8z\xf7\xb89\xad\xd6\xab\xd3\xaa\ -CH\xed\xca*\xfe\xa0\xb7o\xfe\xe3\xdb?4\xe9\xbd\ -\xbb\xbb\xf9\xcf\xfd\xe1\x87\x1e\xa50d\xf5~\xff\x0c\xa7\ -oR\x8ej\xe5\xee\x064\xed\xe3\xea\xf4\xcd\xc3#\xf0\ -\x1c\xb5\xf4?\x83b\x05\xb8\xea\x83\xf9\xe8\xd3\xe7\xa7M\ -\xb7.\xaf|\xd8\xb0\xd2~\xd5|\xad\xef@\x92a\xd6\ -\xf5\x9fN\xa04\xfe\x88\xdb41\xd1e\x1fN\xdbM\ -\xd7\x0b\xe2\xc3wPq\xea/\xf9\xee\xba\x12\x81\x9b\x1f\ -\xceI\xba]\xbd\xdflo\xaf~\xbfzZ\x0d\xf6\x82\ -\xe0\x1f@\xdd<=\xee\xd7\x1b\xc1\xceUG\xdd9\x98\ -N\x87\xd5\xee\x88t\xb8\xbd\xa2\x9f[0\xf3_\x9a\xc5\ -\x08\x9a ,}r\xee+e\xc2\x87\x99V\xe5eF\ -\xdf\xe9\xda\x9f<\xdb\x1b[\x8d\x09\xa43:\x9b#\xec\ -\x09V\xc3{o\xc2WmR\xaf\x97\xbfx\xef\xf1\x7f\ -\xaa\x82E+4\x92>\xf5\x16\xe2\xf5\xb9\xa4\xd6\x0f\xcf\ -\xdb\xcd\xcd\xe6\xe3f\xb7_\xaf\xcfV\x9b+t\xb3t\ -\xbd&\x87\xdb\xcd\x15\xb9\xaa\xf7\xf7\xb0\xda\xf6\xe7\xab\xf7\ -\xda[\xed\x8b\xfd\xfai\xf5\x00\xf2N\x8a\x0dF\x00,\ -\xb7\xbd\x0aF\xa1\x18\xac\x01M\x17}\x0e\x0b\x10O\xbf\ -\xccS\x18\xc0[\x98L\xf6ya\x97\xb1\xe4i\x00-\ -m}p\x0b\xbf\x9c\xac\x1fF\xbbt!'\x97\x16H\ -\xe3\x8c\xa3}0.9h\xbb\xe2\xe3\xc0\x7f\xa2\x856\ -\x986\x1a\x10\xad\xf1\x93\x87\x8e\x98\xb2\xc5\x15,X\x03\ -\x9b\x16#/\xdd\xad\x01\xbf\xf2\xe4\xa7\xe1^\xf7\xc9\xc3\ -v\x18\xfd\xd2y\x17J\x81#e\xc3\x87\x80\xa3\x952\ -\xf1\x84\x80\x1d)\x848M\xb0\x89\x9f\xb2\xee\x91q@\ -*&\xe2\x1ep'\xe7C\xdf#\x07\x93E\xeaE\x99\ -\x00\xd8n\xcf\xf1\x17t\x94hR\x8c\xb4\x84\xf3D\x1a\ -<\x8f\x95)\x9e\xd6\x84;\x1a\x9a#\xe4!r8Y\ -\x04W\x05\xb2\xa4\x02#\xe0\x12\xde\xba\x81F\xc2\xa4\x05\ -\x93\x81ng\x9c\xc9\x05I\x0c\xdb\x94n\x11YC\xc8\ -\x14\x02\x13=\x11\xcfR0\x19\xa7\xc0\x0f\xdb\x16e2\ -\x0e\xdd\x0ar7?\xa5)c\x9b\x88Q\xef\xae\xc3\xe5\ -bm}\xe5*\x92\x11\xd7s\xa9\x04[\xb9\xae\xfb\x11\ -\x01\x1c\xde\x01\xbc\x01K\x13\x88\x0e\xcc9\xdb_\xa9.\ -@0\xe9`\x84D\xc6\x01\xed\x08.M=i\x91\xb9\ -tE\xbd\x83\x90Zf\xd0%hO\x90{\xef\x116\ -S\x09\x85\x0e\x05\x7f\x13\x8e\x00\x0a\xf7\xa7\xb0\xcb`s\ -\xe9\x80\xd5\x18J\x84\xe9\xe1L\x94\x8e\x8b\x06\xde\x06\x93\ -J\x0bYul\xfcR\xf2\xe3Q\xffu\xc8~\xe93\ -\x5cb;\xdb\x81\xd8\xdfQ\x86\x8e\xd0Q\x86\xe4\xa7\x1b\ -\xcf\x84\xe9\xb1\x8e\x148\xa7\x1d\xdd\x13\xa9n\xbd \x97\ -.\x9ac1\xae\xbbV\xcf\x8f\xd4\x8b1\x0aT\xf7\x18\ -\xf8\xef\x07\xddS\xb6\x14@\xc6\xba\xa3\x10E\xd8\x89\xf3\ -\xf1.)-xb\x8f?a?\xe3\xaf\xea\x08\x9d\xef\ -\xe1GR\xe6\x87&\xdf>A37\x1d\x12\x96\xc5\x19\ -\x9fs\x13#\xb9t\xe8\x19#dh|A\xf4\xbb\xc0\ -\xb4w3m&\xe7\xd2{\x8b\xf4\xd2\xb9}'g4\ -\xc0-\xf8I\x13\xb4\x061\xe5\x05Q\xa2)\x22\xb7L\ -\xa6\xe0\x16Ur\xe8\x08\x9d\xba\x148\xe8\xfc\x8a7\x85\ -9\x5c\x8eH\xab\x80\xcc\xb0\x00P\x18(i\x92\x5c;\ -5\xb5\xa5\x00\xa2\x03D@\x1cd\xfa\xa1-\ -E\x03Q\x22\x06\xaf\xc7\xdb\xab\xbb\x7f\xc8\x7f}\xa8\xfd\ -7\x89\x00\xdf?\x9fN\x17\x01 \xc5|\xff\x8b\x00\xf0\ -\x22\xda\x9b\xfc2\x94i\x02]g\x01\x0e\xcb\x020\xa4\ -@\x0b\x1c\xb1PP\x22\x0c\xbb49O\x99!+q\ -R2F\xfc(\x88\xdeE\x86\x11\xa6\x10\x93%\x12\xdb\ -4\x11n\x9du)QT\x221H\xf2\x04t\xe3\xca\ -<\x14\xb21]v\x90}\xc1\x1dH{A\xd4\xce\xc1\ -\x11,J\xc6:\x13\x82C\x02\xb5B\xdeR*h[\ -a\x0b/\xd6\x9b\xb4\x0d\xc0\x9dDET\x87\xcb)\xb0\ -;g-:W\xc0\x0c\x1fr\xa7i\xa6\xc9\x85Ny\ -4EoH\x9c\x8c\x91\xc8,\x06\xf6\xe3q=\x12M\ -\x22\x96\xc1P\x04\xcc\x19u\xd8\xf2\x96H9\xfb?\x11\ -\xa9_&\xf8\xf2\x84,E\xb7\x05\xc0\x97\x96@O\x0a\ -#\xd1\x98\xe4N\x7f\x19\xf4\x05\xd4w\x1du\x04<)\ -\xe2\xa9\x10\xe7\x09,\xd1\x97L\xc8\xb5@\xfcY\xaaA\ -\xb4\x1f\xaf\xa6\xdc\xf6\x16\x8c_\xaa\xa6\xaew\xad'X\ -\xfc\x0d\xde\xf9_yW@p<\x86\x8b\xc0\xba\x08\x0e\ -\x82e\xbb\x86\xf6KM\x0d2\xc6\x1b\xcf\xc6\x88\xcd\x18\ -8\x18\x91\x85\x91\x03\x15\x07\xd3\xc94[c\xde\x14\x95\ -\xf8\x7fn}~\xa9\x02\x95A\x07\xd9\xe4&\xd6\xe66\ -\xb2\x02+1$\x8e^,gE\x8c7\x86\x1d\x94I\ -\xfdP\xd2\xb8\x10.\xb3,8qlb\xf0\x13w\xb0\ -\xe2\x85(\x01\xe5\x8es-\xb0\x1a\xe5E@f\xe2e\ -\xc7V\x00\xc1y\x09\x1b)\xa5\x14A>I:\x0b\x1c\ -\xed\x0dv\xe7_\xa5\xab\xc4\xe5\x14\x89I\xcc\xc8)R\ -0D\xd2B\x9aq\xb2\xe4\x89\x82-\xe2h\x09\xa3J\ -\x91&V\x9d\xd1\x22\xebM2\x16S\xde\x00\x0br]\ -\x91\xec\x1c\x1ayLE(\xe7\x03D\xa9Q\x5cX\xc7\ -\x1e\xfed\xc1\xeaROp~\x06\x1aI_9#a\ -\xb6s\x9c\x9d;\xeb\x91\xa5S$@\xca\x91F6\xc7\ -\x1c\x1b@\x98\xc6\xce\xb0\xa1\x04\x0ck\x08W\x0c\x8c@\ -\x88\xf8\xd7:\x08Uxx\xc3N\x82\xe1Au\x0d\x08\ -\x854\xa0\xf0\x10\xd5d\x04[\x0c\xd6\xcf\xdaD\xbdE\ -\xf5e\xea\xdc\x948\xafd\x02m\x97\xc1\xedE\x12\xe2\ -\x16\xb8\xbb\x93\x9d8GV2\xd3\xa9o\xbe\x81\xe7\xe9\ -W<\x97\xb4L\x06\xbc\xa4\x8cx\x06JK\xb6V\x14\ -\x0e\x06JB\x5cg\x0cB\x03\xf1(\xa9\xb7\xc29\xd2\ -\xd4\x81UY\x92\x19\x8a\x82^\xf4\x14%\xf7A\xb0G\ -Wn\xa8\xb8\x85M\x83MC\xe3v\x8e\x96\xbc=\xd9\ -\xd1r:_\xedQq\xce^\xb41\xba\xf2\xd9L\xae\ -\xd4\xdd{,\xa246\x99#\xe4\x93G\x91\x08P\xac\ -m\xe9\xbc|~\x14\x05\xc7>\x8a\xa29\xbe\xa9\x15\xfd\ -\xdf\xb5\xbf\xf8\xff\xf3\xba\xea\x02F\xa9,\x8b5\x98\xdc\ -\x01n\xc1\xefH\xa9\xab\x98l`z\x92\x8c*K\xa4\ -]\xd5A)Nr\xa0\xf8\x0b\xe3\x046g\xa3B\x03\ -\x87\x93\xe8\xbb@\xeaTf\xb0\x0a\xbaho\xdb\x8c\x91\ -\x0f\x81*\xba`\x17\x9d%I`\xce\xc7\xa3\xe1`\x0b\ -=#7q\x1e,\xe0\x0fU\xc7\x0c\x08\x82#<\xb6\ -\xd0Y\xbc\xe4\x8f&\xcc\x19N\xdey\xc6\x0d\xbdo1\ -\xa8Z\x17\xa2\xab9\x8b \x0a\x8e\xcc\xfa\xd8\x1b\x0c\xb9\ -\x91b3\x10\xba\xc1\x81\x9b$\xd8\x9a(\x87\x15\x14\x9a\ -fn.xv\xb5\x00uC\xbc\x8d\x8b\x92\x17\xe4\x1c\ -\x18\xe9\xea:\xa4\x8a\xd7(:xT\x12\x8cL*\xca\ -\xac\xe1\xadl\x0b-Q\xaeH\xe4\xaa4\xa3\xd8\x88[\ -\xe2\x9btS\xe4Elq\x1eld\xea\xf8\x8f\x22\xce\ -\x12\x99\x0d\xb9\xa5\xe8\x84\xb0u\xb3\xceW\x19\xce\x0b=\ -6\xdd\x93\xd4\x0c_\x8b\x9b\xac\x7f\xa6>\xb8\x05+*\ -\x1b\xa7Y\x87\xb7x\x121\x8e\x1d\xa1\xd0\x1c\x9d5\xc9\ -\x80eksQ(bG@/\xad'\x14\x12\xcep\ -\x12\x0f\xc8\xd3\x0e!\x1a\x09\x09\x98\x99\x80@\xa7\xc4\x5c\ -\x8a\x92\xacd\x1d\xa7\x04K\xe8}\x05\xf5\x1b.{\xe8\ -LA\x0f\x85\x86|\x86\xa7\xda\xd1,\xf23\ -R\xcb\xa0\x096\x11\x9aP\xe7\x16\xe4\xdbB]\xf2\xe6\ -~\xf0\xc6\xe2-3F\xfa\x83\x88\x83\xd6\x92\x03\xf4\x18\ -\xf5\x22\x07\x00\xc2\xc8\xb3\x8em'\x1d\x1434'B\ -}\x86\x9ah\xc6\x9d{\xcb\xa3\x98\x98\xba\xf0\xbd\xf9I\ -tIM\xbb\xcc\xcc\x80\xd4\x9de\x1b$8\x91\xa43\ -\xe6\x82\x99L\x9aa\x96\xb3\x99>\x8dQ\xb7\x84(:\ -p\xa4lE)\x08\x03k\x14&\x99y!N\x9f\xd9\ -\x14\x87E\x15E\x9d\xa1\x1d\x14\x17\xf4KP\xaa\xa9\xf9\ -\x09\x12\xab\xd7\xf5Hw\xf6\x92\x8bI\x87\xce\xd1\x0a\xb3\ -\xe8\xe02\xd4\xaf\xa5\xb6U\x13\xc9\xf9\x95\xe4b#\xe6\ -\x1do\xe4,\xfd\xdf\xb6l\xe4\xf8\x93\xcd7\x1f\x1d\x8f\ -\xaf?=\xfe\x9c\xad~\xa1\x09{\xfc\xea(\xf9\x94\xf1\ -\xd5\xbcO\xf8\x0a\x91\xd2,\xfaz|\xe0\xca83\xe9\ -{y\xae=m5K?U\xfe&E\x90g\x1d\xe2\ -Kp\xad\xa1\xb9(C\x9bUbP\x9b\xde\xddK\xf0\ -M\x0eB\x00\x1d\xeb\xfa\xd2\x81\xee\x08\x85\xfcg\xac\x08\ -\xe6J?v\xa0[\xe5\xbdM\x8e%\x17+P8q\ -\xc1\xc9\xf9\xba\x8bT\x8b]\xf6l\xbb\x85\xa5\x18^\xd3\ - z\xc2T8\x03\xa1'\xcc)\xa6\x8b\x13\x8e\xad \ -\xa1\x16#^\xf4l\xbb\xda\xe7\xee{\x09\xa98m_\ -\x19\xcc\x8a6\xed\xacL\x1dW\xec\x86\xe0;\xb92\xaf\ -\xc0.\xaf\xdd\x81\xa9N\xd5\x17\xdd\xc7\x1e\xb5\x92\xe4I\x18\ -lK\x10#\x81\xbf\xa4X\xcb\x04.=h\xba\xca\xa0\ -\xb2\x95\x8a9)6\x88!\xf4\x85D\x5c\xf3\xc7O\xd8\ -\x83)V\x22w\xf9\xe8\x02td-H\xe4%P\xd6\ -8_\xccN^\x88\xc5\xe7\xce\xe9\xeb\xdb?\xce?\xe6\ -f\x1c\xe4W\xbe:\xfc\xef\x9c\x977]\x97\xe3\xdc[\ -\xf8\xbb\xc0H\xfb0\xf0\xaf\xf8d\x9c12!\x9ds\ -&\x8c$\xe0V\xe6\xba\x14\xe0\x0eG\x98\xad\xcc]p\ -\x22\x1a\x17L\x19%\xc7\x88[\x15\x00<\x81\x0a=m\ -\xa6\xa2QO\x15\xf0gmy\xad\x84e\x9e\x04C\xaa\ -$c\xc4H\x93=p\xacEb\xdf8s\x0c\xcf\x8c\ -\x0f~\x8a\xa6E\xbcf\x02\x15,\x03\x13e\xf18\x09\ -\xc8oPC\xa2\xfah\x1a\xd6*\xdcZ\xfd\xaa\xc2\x10\ -\xces\xf9Y\xd7\xd8\x9d+y\xad\x7fU\xf5T\xaf\xcd\ -\xdf`T\x9a\x88\x9dM\x93\xa7K\x93\xe4t\x9f!\x81\ -\xf8\x85A/\xb84\x5c\xa70q%\x10\x9b\x19\xd1\xea\ -\xa3<\xa5\xaa\xdc\xd9-\xba*\xdc\xfe\x8b\x19P\xa6\xbc\ -U\x96\x97C8\x135\x7f\x11QIfJ\x97\xed\x9a\ -\xc8$]L\xa1\xcaT\xe6\xdfH\xd4\x1e\xb1\x8e\x9c\xdb\ -\x05\xa6\xb2\x80f1\xfb\xb5n\x16B\xd4\xa9\xd9N\x19\ -!\xc7\xe2\xd5\x5c\xbel\xcb;\xc0\xaa9\xbc\x9d\xce\xbe\ -\xa4\xcc~\xaeI\xf8\xf2L\xb9Q\xcb\x89\xcf:\xb6\xb3\ -91\xfa\x9e~\x10\xa1uo\x1f\xeb\xa0\xea9\x02\xcb\ -\x0d\x7f=\x0ad\x9c\xe6$\x12(&q\x80kS*\ -\x99Y\x0c\xa8\xd2\x18\x15Y/!g\x02\xc3\xc1\xf6\xa2\ -\xdef\xfe\x95_o\x0fQ\xe9\xd2\xb8\x5czX\xba)\ -\xe7\x8b\xb6\xbeN\x15\xd2\x19+\xef\x1b\xa2\xbc|\xac\x8b\ -\xd4R\xe9\x8a}\x86\xec(\x18\x9d\x15G\xd7\xcf\x0ek\ -\xf9\xb4\x5c\xb1z\xdb\xfa\xb8V\x90*\x86\xe4+@\xf9\ -\x8a\x91\xbd\x8cv&\xd4\x08\xfd\x9b,\xbe\x85\x9c\xa7\xe9\ -\x08\xa0;u\xb8\x1cY\xed\xd8\xea\xedKf\x8c?1\ -Ta\xcd\xc6u\xd2ZoS}\x0f\xb1(d\xdcJ\ -}-/u\xee\xe6l\xa8\x90N\xdd@\xd7QN?\ -\x95d[%\xc8\xe9\x94\xa3\xe9c\x04\xcd\xac\xe8-I\ -\xd6M\x98\x92\x93;\xb7\x13\xcb\xba\x82\x12$\xc4\xacr\ -\x9e\xf5\x0d\xe3K\xea\xe0\xfb\x13\xab\x0a\xaf\x1ad\xd6|\ -\xd5XN?\xdfX\xd6\xff(\x039L\xef\xf0\xbf\x95\ -\x00\x7f\xff\x02o\x04b\x13\ -\x00\x00\x09\xb8\ +troke-opacity:1\x22\ +\x0a d=\x22m 14.33\ +9033,12.813563 -\ +0.20339,22.37288\ +2 19.728814,-11.\ +59322 z\x22\x0a id\ +=\x22path4489\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22 />\x0a\x0a\ +\x00\x00\x06\xcf\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a ?\x0d\x0a \ - \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x11U\ +ow-y=\x2227\x22\x0a i\ +nkscape:window-m\ +aximized=\x221\x22\x0a \ + inkscape:curre\ +nt-layer=\x22svg4\x22 \ +/>\x0a \x0a\x0a\ +\x00\x00\x07\xa3\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ @@ -14633,11185 +12650,12945 @@ ed with Inkscape\ (http://www.ink\ scape.org/) -->\x0a\ -\x0a\ -\x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a <\ -text\x0a \ -id=\x22text10\x22\x0a \ - y=\x2217.491\ -526\x22\x0a \ -x=\x2231.84049\x22\x0a \ - style=\x22f\ -ont-style:normal\ -;font-weight:nor\ -mal;font-size:19\ -.5622px;line-hei\ -ght:1.25;font-fa\ -mily:sans-serif;\ -white-space:pre;\ -inline-size:0;fi\ -ll:#00d4aa;fill-\ -opacity:1;stroke\ -:none;stroke-wid\ -th:0.489054\x22\x0a \ - xml:spac\ -e=\x22preserve\x22\x0a \ - transfor\ -m=\x22translate(-37\ -2.2659,-536.7128\ -5)\x22>+\x0a <\ -rect\x0a \ - style=\x22fill:#f\ -9f9f9;stroke-wid\ -th:0.833794\x22\x0a \ - id=\x22re\ -ct7\x22\x0a \ - width=\x222.17343\ -45\x22\x0a \ - height=\x226.14476\ -73\x22\x0a \ - x=\x2283.305809\x22\x0a \ - y=\x222\ -2.977808\x22\x0a \ - rx=\x220.843\ -14221\x22\x0a \ - ry=\x220\x22 />\x0a\ -\x00\x00\x0cr\ -\x00\ -\x00|\x03x\xda\xed][o\xe36\x16~/\xd0\xff\ -`\xb8/3X\x9b&\x0f\xc9\xc3CO2\xc5.\x8a\ -\xa2\x0bt_v\xbb\xd7\x97Bc+\x89;\x8e\x15\xc8\ -J23\xbf~\x0f}\x8bd2r6Mw\xd0\x01\ -\x0d\xcc\xc4\x22)\x89\xfa\xce\xfd\xa3$\x9f}\xfb\xe1z\ -9\xb8+\xeb\xf5\xa2Z\x9d\x0f\x95\x90\xc3A\xb9\x9aU\ -\xf3\xc5\xea\xf2|\xf8\xf7\x9f\xbe\x1f\xd3p\xb0n\x8a\xd5\ -\xbcXV\xab\xf2|\xb8\xaa\x86\xdf\xbe\xfd\xfa\xab\xb3\xf5\ -\xdd\xe5\xd7_\x0d\x06\x03\xde}\xb5\x9e\xceg\xe7\xc3\xab\ -\xa6\xb9\x99N&7\xb7\xf5RT\xf5\xe5d>\x9b\x94\ -\xcb\xf2\xba\x5c5\xeb\x89\x12j2l\x8d\x9f=\x8c\x9f\ -\xd5e\xd1,\xee\xcaYu}]\xad\xd6\x9b]W\xeb\ -o\xda\xa3\xeb\xf9\xc5a\xf8\xfd\xfd\xbd\xb8\xd7\x9bQ\xca\ -{?\x910\x01\x18\xf3\x88\xf1\xfa\xe3\xaa)>\x8c\x8f\ -\xf6\xe5y\xa6\xf6\x05)\xe5\x84\xfbZC\x9f8l\xba\ -fpn\xf8\xdfa\xfc\xbeA\xac\xab\xdbzV^\xf0\ -\x8e\xa5X\x95\xcd\xe4\xbb\x9f\xbe;t\x8e\xa5\x987\xf3\ -\xf6q\x16\xab\xf7\xebYqSv\xce\xbbo\xdc\xc2P\ -\x5c\x97\xeb\x9bbV\xae'\xfb\xf6\xed\x01\xee\x17\xf3\xe6\ -\xea|hh\xbbyU..\xaf\x9a\x87\xed\xbbEy\ -\xff\xa7\xea\xc3\xf9P\x0e\xe4\xc0\xd0`\xdf\xbe\x98\x9f\x0f\ -\xf9b`7\xeaA\xe8j\xd7\xbf;\xc9\xf4\xd0%\x85\ -\x07a\x07\xaf@\xa2,g\xea\xc2_\x8c\x06 A\x8e\ -\xa5\x19Kz\xbd\xddm\x7f\x89\xd3y5\x0bS>\x1f\ -\xde\x5c\xfc\xdc\xac\x7f\x9e-o\xd7MY\x8b\x80\xdf\xdb\ -0\xf2\xec\xbal\x8ay\xd1\x14\x9b\xdd\xb6\xf3\xd97)\ -\xd8\x8e\xe1Q,\xcc\xe9_\xbf\xfb~\xb7\xc9\x0d\xb3\xd9\ -\xf4\x9fU\xfd~\xbf\xcd\x9f0\xa4xW\xdd\xf2E\x0f\ -\xdf>\xb4\x9f\xcdgS\x86\xff\xbah\xde.\xae\x8b\xcb\ -2\x88\xee\x0f\x8c\xf6\xd9\xe4\xa1\xa3;\xba\xf9xS\xb6\ -\x8e\xbb=r]n%\x99\xd4\xe9\xf9\xecz\x11\xf6\x9a\ -\xfc\xadY,\x97\x7f\x0e\xa7\x19\x0e&\xc7\x87]4\xcb\ -\xb2\xd5z6\xd9]\xc3\xfe\x1a'\xed\x8b<\x9b\xecQ\ -\xd8n\xce\xcb\x8bu\x0b\xa2\xb0\xa9\xe4\x01\x9e\xeb\xa2~\ -_\xd6\x87\xf3\x1d\x84\xb6n\xaa\xd9\xfb0\xfe\x8fu]\ -\xdd\xab\x1f\xd9j\xebfx\x18W\xd5\x0b6\xc5\xf3a\ -q\xdbT\x0f\xaduy\xf1\xef f\xd9i\xfa\xd7Q\ -\xd3\xe3G]7\x1f\x97\x8cS\xc5\x1as\xb1\xac\xee\xa7\ -w\x8b\xf5\xe2\xdd\xb2\x1c\xc6\xd3[\xac7\x13<\x1f6\ -\xf5m\xf9 \xb4\xb3\x9b\xa2\xb9jI \x9c*4\x19\ -\xebi\xd8j\xe7\xe6\xbf\x0cxR#\xfe7\xf8q`\ -\xf9\xdb\xd8n\xbe\x8e\x15\xabh\xaby\xdb\xba\x1f\xfai\ -\xd0>\xcan\xba\x17,\xb9q}\xbb,\xa7\xe5]\xb9\ -\xaa\xe6\xf37\xeb\xa6\xae\xde\x97\xd3o\xe4\xe6\xb3\xdb\x1c\ -o\xecl\xcaN\xf1\xa6i\x1f\xa5\xa9\x8b\xd5:\xa8\x13\ -\x9b\xd3\xacX\x96\xaf\xa4\xa0\xd7\xdb\xd6e\xd1\x94\xaf\xb6\ -\x13z\xfd\xa0\x16,\xe0\x8d\xd0v\xd2\x0e\x02\xdd~=\ -\x98N\xb0\x9by\xb0\xdb\xddinX\xadf\xd5\xb2\xaa\ -\xcf\x87\xdf\x5cl>\xfb\x09\xbc\xab\xeayY\xef\xfbp\ -\xf3\xe9\xf6U\xec2XE\xd9\xb0\xf7\xed\xd5\xbb_\xca\ -Y\xd3T\xcb\x92\xe7\x18\xf4Z\x1d\x84{Y\xf35&\ -;n\x17\xf32\xd9s\x10i\x98\xe4\xe1d\xe9\xee\xf5\ -U1\xaf\xee\xcf\x87\x10\xf5\xde/V\xdc3\xde\xb92\ -E\x86\x1e\x1b\xb2woJ\xaa\x871\xac\x0f\x07\xcc\x0e\ -\xad\xeb\xab\xea>\x5c\x10K\xb8X\xae\xcb\xe8\x80\x9f\xaa\ -\x8ae\xa6\x85\xb1\xd6\x81\xd7Q\xff\x8c}\xe6\x98@\x10\ -h\x89q/_%\xa1\x00\xb0\x16\xdcc\x93\xe5#\xb8\ -G/\x96\x0f\x00\xf6\xb1\xce\xeb\xe2\xc3\xe2z\xf1\xa9\x9c\ -\xb7\x04\xf7p\xee\xdb\xbaf\xf3\x1d/\x8b\x8f%\xcb\xfd\ -\xd2\xa0\xb2{\xfd:\xbbl\x81ri\x94}\xf0\x15\x97\ -\x1d\x13\xbe4\xd6\x98\xa7\x98\x9e\x96\xb1\xe9\x8d\xe4\xe0\x87\ -\x10L\xfe\x11\xfe\xfb\x81\x03\xcb\x7f\xdac\x1e&Z\xad\ -V\xackU=\xe6)\xdf\x15\xcdm]\xb6t\xe3\xc8\ -\x06\xa7+\xce)\xda\xde\xb35\xe1\xdd\x94\xbdT\x8f\x98\ -\x1e;\xf3z\xf1\xe1\x15[\xa7\xd3\x1e\xbc\x19\xf1\x14G\ -\x0f[\xca\x0b-=\x90\x1b)\x14\xda\xa14\xf8\xba\x13\ -+\x8e\xae\xfe\x7f\xba\x86\x16X\xca\xa9nO\x08j\x83\ -\xb1\xd5\xc2I2H#\xc3_\x9c\xb2h\x07J\x0a\xa7\ -%o\x8d\xc6$\x8c&P\x1e\xbb\xfb\xb6\xb1a_T\ -\x14\xc6\xbcy\xdcY\xc1\xac\x90\xb6\xe8:+\x10\xcek\ -\xe3<\xd2\xbe}\xb9\xe0\x8b)n\xa6\xefn\x9b\xa6\xdd\ -\xf6K\xb5XM9\x96\x95\xf5\xbeu\xb3\xb1d%l\ -\xa6f\xdf6/\xd8\x84\xeb\xba\xf8\xb8\x91\xd5\xbeug\ -\xf5Su\x14\xfa^\x0cS\x9d\xc4\xd4\x080\xc6\x22\x8e\ -\xc6\xca\x08\xef\xb4\xf1v\xc0b\xb6\xa4\xa4\x1fm\xbeH\ -O\x90!MBjS\x90j%\xc8I@VI\xe5\ -\x84\x05\x03\xd2\x0d\xc6\x9e\xd3>\xab\xd1\x8f\x94b\x8du\ -\x8a\xe1\xfd\xbd\x83\xda\x9d\xfe!\xecV\x1c\xe38\x99\xe3\ -\xe4\x7f6;\x05\xfc#{\xbd\x88p\x5cJ8\x86A\ -\x22@mFc\x8eY\x12Y\xbb\xcd\x80\x93\x0bg\xb5\ -r8\xda\xb8\x13\xf0_\x96\xba\x97\xcb\xe5\xe2f}\x94\ -\x93\x7f\x0cA[Z\xefXQ\xbb\x97[\x7f\x08]\xca\ -jrp\xa4\xe0!\x5cs\xb4V\xdc\x09G\xf2\xdf\xc4\ -yk\x85\x06\x90\xda=&\x14\x8dc\x1c\xeb$\xbc\x87\ -\xd9\xbf\xd9\x02\xad\xdd\x8c\xdcvc\xdc\xedK\xe2\xde\x06\ -\xe2\x00:)\x0f\xda\xea\x08\xe0\xba\xba]\xcd\x7f{\x80\ -\x81\x1d\xaa!\xa5\x93\x00Kd-D\x8c\x01v\xc2x\ -\x8d`1\x010x\xc1\xc7C\xadz\x00VO\x82\xb7\ -\xad\xc7\xcf\x82W\x0b\xad\xc8+\x00\xf7\xb9\xe0\xe5\xd0\xe5\ -\xbcU\xda\xc4\xf0\x1aa\x94R^%\xf478e@\ -\xcb\x19g\x02_\x0d\x02\x0dZ\x07}\x0a\xfcD|\xe7\ -\xa6(~\x15\xbe\xe4\xa5G\xc6\xf8s\xe1\xcb\x0e\x92$\ -i\xd0)\xf5\xb5\xc4.-\x09\xaf\x11\x14\xd4\xd7\xa7\xfc\ -\x83f\x8b\x90\xec?\x1e\x87\xf7\xc9\xcaK\xf4\xab\xc05\ -\xe4\xd9\xfa\xd0}>pI2\x82\x9aR\xe0r\xaa\xa0\ -\xa4J\x80\xcb{\x91\xb5\xe4S\xbe\xc1\x84\x22LZ\xd3\ -\xa7\xbb\xf2\xff\xe3z\x83o\xd0\x9e\xc8\xc3o\x0a\xef\xd9\ -\xe4\xf2\xc0\x06\x5c\xc6\xf5Y\xab\xb0i\x11\x09BJt\ -@z4\x06\xcbhr\xd1\xea_\x0f\x8fj:\xc55\ -\xdd\x03\xd3p\x5c\xf1a\xdb\xad$O\x22\x85U`\xb8\ -fj\x95Gg5\xe7.m\xbe-\xb0\x09\x02\xa5\xe4\ -|\xa3cGA98o\xe4J\xa7k'\x1b\xcdp\ -Zk\xdbi\xde\x97\xf2\xc8\x17#\x9d\xf3\x9d`\xb3\xa3\ -\x02\xb4\x0f\xc7\xd3\xaa\xa3\x1a\xe1b\xc2\x9c\x8c\xed\xaaS\ -7\xddQ\xa8\x0f\xd9\xcc\xd1\xe6N\xd8R\xb0# +\ -\x11\x8e\x93\x9b\x8e\xac_L\x03\xde\xdc\x14\x0b.\xdb7\ -\xbc\xcctK\x02\xad\x07a\xb6\x83\xed\xc8#\xbd\xed(\ -LR\x06\x9c\x03z\xadR2 \xa9\x15\x1d\xc9\xc0\x08\ -\xc9\xb9;H\x9b\x16\x82\xe3\x1c\x1f\x1d&\x84\xc0\xb1\x1b\ -\x94\xd1\xdd\xda\xb6-\x84nbt\x94un\xa2\xc9\xa3\ -\x06\xc7i\xabG0\xd6\xd9\xcf \x83U`\x81\x97\x1d\ -\x9cg\x8bz\xb6,\xe3\xaby\x9a#\xef\xf1+\x5cC\ -\x11\xa2\xd1\x9fQ\xd5\xb6\x836\x1a7LP=\xd4u\ -\xc0\xc15s\xc9\xa7\x90\x9c\xe9\xc87\xf8\xf3\xd0\xe1\xb9\ -T\xec\xecQ\x07\xb2*\x83\xb9\x07\xb3k\x15\x1b89\ -\xb3\xe7\x12\xceC\x04\xa7\x14\xe8\xb8\xa6s\x19\xce\xc7\xe1\ -\xc4\x04\x9cV\xfan\xe6\xb5SN\xc7\xb9\x86Q\x19\xcd\ -\xc7\xd1t\x11\x9a\x9c\x1a{c\xbb\xe1d\x07''\x9c\ -\x06\xb3r\xf6\xc0i\x13\xae\xd3\x22'\x92&\x82\x93\x9d\ -\x00\x12\xd7q\x19\xce\x1e\xd7iS\xc6N\xca\xc9\x18O\ -\xd6[4Fg<\xfb|g\x1c\xda9\x1d\x04\xb2]\ -\xb2q\xa7\x9f\xd6*\x84\xec={\xf0\xf4\x11\x9cV\x18\ -g\x8d\xcd\xb1\xe8\x19h\xaaD,BD\xb2\x14\xc1i\ -8\xe4\x1b\xf2>\xc3\xf98\x9c\xa94\xde\x84\xd5\x1cL\ -\xc0\x89\xc6\xdb\x9cw\xf6fJ2\xe1;\x95\xe4RZ\ -\x1d\xe3\xe9\x05ZG\xdd\x22:\xc3y\xe4:\xa3\xb2\xc8\ -sB$\xb5\x04\x9b\x08E\x08\xda\xa3\xcdx\xf6\x84v\ -\x990\xf7\xcd\xfa\x82?\xc6\x93\x84\xd7\x9c)\xf9\x972\ -\xf7\xd4B\xc1\x17\x90*E\x85\xa6\xd6B\x07\xf7i\x12\ -\x80\x92v\xd4\xa5\xda2\xa0G\xb9|\x1c\xdf\xb5\x11\x1c\ -\xc3]\x5ck\x12\x97\x9a\x01\xe9\xac\xa1}\x1a:\xa6\x04\ -\xa0H\x80\x04qD\xb2aQVA\x06\xb4'\xc2\xc7\ -l\x88\xb6\x1c\x94\x1ci\x8a\x01\x05\xeb=\xa1\xcf\x80\xf6\ -\xb0!q\x81\xc4>\xd4\x19\x00E\x09\xee\xd3r\xb5\xe9\ -\xb2\x86\xf6\xf2!qV\xcf6\xcf\xa5%\x17\xf1\x89\x9a\ -S\xdb\x90\x00dD\xfb\xc2\xfc8J\x9c4\x0a\x90q\ -\xda\xc4\x1a\xaa\x8dU&\xe3\xd9\x97\xd6'\x14\xd4qu\ -I\xce\xe9\x1c\x94\x9eC\x8a\xc4\xebG\x1c\x94\xc8H\xe5\ -|\xa2P\x02OF\xe5\xa0\xd4G\x8b$\xa2|X\xf3\ -pV'\xf0\xe4:II\xccx\xf6\xf1\x22\xf1\xaaG\ -\xf0\xa0.pM\xc7\x88:\xc1\x1eT{k3\xa2}\ -\xd4H\x22oR\x5c\xb4k\x04\x93\x88JF9C\x19\ -\xd1^r$\x11\x96\xc2\xedf@\xf1M\x0d(\x5c\xe0\ -M|\x0eK'\x10M`\x1a\x969\xc0!\xc6\x05\xbd\ -\x95R;\xca\x9e\xf4\x14\xa6qMO\x82\x0d\xff\xe8\x9e\ -\xf4]t\xd2\x9c\x90\xfa\x9c\x8f\x9e\xc24U\x85\xa2\xd6\ -N\xaa\xc4*2W\xf5\xa6\xbb\x5c\x9f1M`\xea\x12\ -\xb6/\xc1\x1f=|\xb2\xc3\x14$8\x951=\x85\xa9\ -N\xe4QD^\xc5\x8csX\x00u\x0e\xba\xc1\xeb\xd9\ -\x98\xa6\xef\x97\xfe\x12(\xfc\xc4\xddbJ\x90\xf2\xa4#\ -\xce\x19,gX\xac\xa7.C\xdaK\xe2'\x97\xe9\xb5\ -\xe3\x14\x14\x13\x90\x1a%\x9d\x84\x0ci/\x8d\x9fX\xaa\ -\xd7B\xa14qI\x0a(\xc2J\xbd\xcdZ\xdaO\xe4\ -'n\xcd\x09O\x0a[\x94\x94\x804,\xeaQ\xd6\xd2\ -~*?y#3(\xce\x97\xa2\x90\x0f\x9b\xe7?\x10\ -\xb3\x96\x9e \xf3\x93\xce\x144\xd7\x9f1\xa6\x5c\x07H\ -cL\xc6\xf4\x04\x9d\x9f4\xfd\xcdM\x8e>\x11\xa0\x00\ -Q*\xcc\x98\xf6R\xfac\x13A\x8aB\x01Z\x93\x03\ -\xd43I\xfd\xc4\x9d\xf7Fh\xe5|\x9c\x98\xfa\xf0\x8a\ -\x8b\xa3g\x813\xa2\x11\xab\x1fS'\x1c\x9f\xa4\xb3:\ -.\xf3\x19RM\x1e\xa5\xca\x90\xf6\x13\xfb\x09\xc3\x0f\xcb\ -\xcd Ul\xf8\xac\xbe\xde\x91\xcfi\xd4\x09j?\xf1\ -\x90H\xe0\xf0\xc3\xb2H\x22\x8f\xd2\xa8=e==E\ -\x9d\xa4\xee~\xe4r\x1eUD\x9d\x80\x16\xe8\xc2+\x83\ -2\xa6\xa7\xe8\xfd8\xe3'\x01\xce\x81\xa5T&%\x15\ -\xd0\x0b\x91|_2\xaa\x94\xe0\xa40\xbc\x15\x85\xa4K\ -\x85~R\x92\xb2\xae\x9e\xa4\xf8\x13\x95\x14\x08\xa5\x94q\ -\xd1\x22\xb4\x96\xc2sB\xe53\xa8\xa78\xfe\xd8\xad\x86\ -\x171\xb8\xe37\xaa\xed@U\xc6C\x8eT'I\xfe\ -\x84\xfd\x1b\xa14\xa3j\x12\xa0\x1aM\x96r\xea\xdf\xc7\ -\xa3D\xec)\xb0\xe5\x03\x91\x8csT)\xa4\x05\x9d\x8b\ -\xd3~\x8e?\xb2\xfa\x903\x11\x1a\x1b\xaf\x97\xb2?\xd0\ -\xe02w\xda\xcf\xf0c\x02P\x83\xde\xc47\x99\xb2\x86\ -\xa2:~3U\x06\xf4\x98\xdf\x8f\x82} \xf15Z\ -\xb4\x09\x0dEo\xad\xcd\x80\xf6\xb2\xfbQM\x0aJX\ -\xa2\xd4\xa2\x1e\x08\x13\xde?\x97}h?\xb7o\x136\ -o\x8dr\xa83\xa2\xcfc\xf6#.\x0a\x8c\xf0D\x18\ -\xbf\xfa\x85\x95\xd7pF\x95)\xd3~^?\xa2\xa0\xc1\ -\x89\xb0l\x97 L\xc3\x8b\x9e\x10)\x97\xf7\xbd\xac>\ -&\xc2\x92\x94\xca\x18L\xb0P\xe4\xb4\xf6\x94\x01\xed#\ -\xf5m\x22\xb5\xe7:\x89\xbcJ\xd0\xcf\xc6\x822\x19\xd0\ -~J?VQ+P{\x97\xb8o\xcf\x09\xceP!\ -\x97\xf4\xa7\x08\xfd\x88%\xe5$\xde\x81\xd4\x08\xa9\xb8D\ -(m\xa6\x9e\xfaY\x12\x970{\xd0\xde:J(\xa9\ -\xf3h\xb5y\xb1wC\xc4/\x95\xfe\xdd#j\x12\xf7\ -?+\xb0R\x9b\xc4\x82\x13\x10\xba\x17{\x93\xc1\x17\x09\ -\xa7N<\xf0d\xc3\xcb\xf8\x95J\xdd\x02\x89\xa4^\xf0\ -EE_ \x9e\x98|\xa8\xd9\x84j\x1e\x12\x0aJ\x16\ - \x03\xda\xcf\x8f\xa4\x9e\xc8s$\xd1\xb8\xc4me\x12\ -\xbd\x86l\xf1\xbd\xfcH\xca\x85r\xe9\xe9%$\xd6\xec\ -\xc89\x0f\x19\xcf^z\xc4=\xf9\x99\xd1\x0c\xe8\xd3\xd8\ -\x11\x93xr,\x94\x98\xf1\x0b\xb54W\xf3\xd29T\ -\x19\xd2>zD?\x19Pv\xa2\xca(t9\x0b\xed\ -\xa5G\x9e\xfa\xa6\x8d\xf0\xb0\xb3\xd4G\xbf\x04\x91\xe1\x8c\ -\xeex\x8c\x9f\x15\x05AR\xb9\x98nbD\xadQ\x04\ -YAO\xb0#\xa9\xc7o\x11\x95%\x9d3\xfbg\xb1\ -#\x94zF\x5c\xa1\xf5)'\xea@\x1a\xd0\x19\xd1^\ -r$\x95\x8a\xc2\xe6w\x0eS7\xe5iI}/z\ -\xdc\xff\xf0\xcc\xf6\xefY\xf8ud\xfe\xfb_\x1e\xdf\xba\ -r\ -\x00\x00\x08\xac\ +#999999;stroke-w\ +idth:1.33333337\x22\ +\x0a d=\x22M 26.44\ +0678,96 V 24 h 7\ +2.000004 71.9999\ +98 v 72 72 H 98.\ +440682 26.440678\ + Z m 64.000004,3\ +2 v -24 h -24.00\ +0004 -24 v 24 24\ + h 24 24.000004 \ +z m 63.999998,0 \ +v -24 h -24 -24 \ +v 24 24 h 24 24 \ +z M 90.440682,64\ + V 40 h -24.0000\ +04 -24 v 24 24 h\ + 24 24.000004 z \ +m 63.999998,0 V \ +40 h -24 -24 v 2\ +4 24 h 24 24 z\x22\x0a\ + id=\x22path817\ +\x22\x0a inkscape:\ +connector-curvat\ +ure=\x220\x22 />\x0a\x0a\ +\x00\x00\x0c\xa5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\xa8\ +-layer=\x22svg6\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:w\ +indow-y=\x2226\x22\x0a \ + inkscape:windo\ +w-x=\x2260\x22\x0a in\ +kscape:cy=\x2224\x22\x0a \ + inkscape:cx=\ +\x22-34.05977\x22\x0a \ + inkscape:zoom=\x22\ +4.9166667\x22\x0a \ +showgrid=\x22false\x22\ +\x0a id=\x22namedv\ +iew8\x22\x0a inksc\ +ape:window-heigh\ +t=\x221017\x22\x0a in\ +kscape:window-wi\ +dth=\x221860\x22\x0a \ +inkscape:pagesha\ +dow=\x222\x22\x0a ink\ +scape:pageopacit\ +y=\x220\x22\x0a guide\ +tolerance=\x2210\x22\x0a \ + gridtoleranc\ +e=\x2210\x22\x0a obje\ +cttolerance=\x2210\x22\ +\x0a borderopac\ +ity=\x221\x22\x0a bor\ +dercolor=\x22#66666\ +6\x22\x0a pagecolo\ +r=\x22#ffffff\x22 />\x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a \ +\x0a ~\x0a\x0a\ +\x00\x00\x0b\xdf\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0a \ +\x0a \ + \ -\x0d\x0a \x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x05\xf6\ -\x00\ -\x00\x15\xe2x\xda\xe5X\xdbn\xdb8\x10}/\xd0\x7f\ -\x10\x94\x97\x04kI\xbc\x8a\xa2j\xa7\xd8E\xb7\xe8\x02\ -\xdd\x97m\xf7\xfa\xa6H\xb4\xa3F\x16\x0d\x8a\x8e\x93~\ -\xfd\x8e,\xebb[\x0e\x5c\xa4E\x81]\x07I\xc4\x99\ -!9s\xe6\xcc\x90\xf2\xf4\xf5\xc3\xb2p\xee\x95\xa9r\ -]\xce\x5c\xec#\xd7Qe\xaa\xb3\xbc\x5c\xcc\xdc\xdf?\ -\xbe\xf5\x22\xd7\xa9lRfI\xa1K5sK\xed\xbe\ -\xbe~\xf9bZ\xdd/^\xbep\x1c\x07\xa6\x97U\x9c\ -\xa53\xf7\xd6\xdaU\x1c\x04\xab\xb5)|m\x16A\x96\ -\x06\xaaPKU\xda*\xc0>\x0e\xdc\x81}\xda\xdb\xa7\ -F%6\xbfW\xa9^.uYm\xa7\x96\xd5\xc5\xd0\ -\xdad\xf3\xce|\xb3\xd9\xf8\x1b\xba\xb5\xc2R\xca\x00\x91\ -\x80\x10\x0f,\xbc\xea\xb1\xb4\xc9\x83w0\x17\xfc\x1c\x9b\ -K\x10B\x01\xe8\x06\xa6g\x9a\xc5\x15\x80\xb3\x82\xdf\xce\ -\xbe\x15\xf8\x95^\x9bT\xcda\xa2\xf2Ke\x837\x1f\ -\xdftJ\x0f\xf9\x99\xcd\x86\xeb\xe4\xe5]\x95&+\xb5\ -\xb7o+l`H\x96\xaaZ%\xa9\xaa\x82V\xde,\ -\xb0\xc93{;sY\xd4\x0coU\xbe\xb8\xb5\xfd\xf8\ ->W\x9b\x9f\xf4\xc3\xccE\x0erX\xe4\xb4\xf2<\x9b\ -\xb9\x10\x0c\xd9Y\xf5I\xc7;\xfdn\x93\xb8S!_\ -\x12\x9f9\x97\xeb\xf2\xae\xd4\x9b\xf2\xaa\xb1kc\x8a3\ -\x9d\xd6>\xce\xdc\x0f?\xfb5J\xd7\xb5z\xbaT6\ -\xc9\x12\x9blm\x9b][\x11&\x8d\x0dXA\xca\xe2\ -\xdf\xde\xbc\xdd\x0dA\x90\xa6\xf1\x9f\xda\xdc\xb5c\xf8\xd4\ -&\xc9\x8d^Ch\xeeu/\x9ffi\x0c /\x13\ -{\x9d/\x93\x85\xaa\x13\xf4\x03`:\x0dz\xc5\xbe\xb5\ -}\x5c\xa9\xc1\xba\xcd\xcaF5\xf9\x1aen\x96.\xf3\ -zV\xf0\xc1\xe6E\xf1K\xbd\x8d\xeb\x04\x87\xcb\xe6\xb6\ -P\x03\xe94\xd8\xc5\xd0\xc6\x18\x0c\x83\x9c\x06-\x0a\xcd\ -0S\xf3j\x00Q=\xc4\xa8\x83g\x99\x98;e\xba\ -\xfd\xba\xd4TV\xa7w\xb5\xfd\x8f\xc6\xe8\x0d~\x0f\xb5\ -i\xac\xdb\xd9i\x93C\xc1\xcd\xdcdmu/5j\ -\xfew\x9dL\xb4'\xfa\xeb@tz\xd5\xca>\x16\x80\ -\x93\x06^\xcc\x0b\xbd\x89\xef\xf3*\xbf)\x94{\xec^\ -^m\x1d\x9c\xb9\xd6\xacU\x9f\xb4\xe9*\xb1\xb7\x83\x0c\ -\xd4[\xd5\x22\xc6e\xe4\x0e\xe4 \xfe\xd5\x01\xa7&\xf0\ -\xeb\xbcw8\xd6\xbc\ -\xc6]r\x17\x06b\x1cU\xac\xf3L\x8dj\xba\x94\xd6\ -Nv\x9b\x8d\xab\xab\xdb$\xd3\x9b\x99K\x8e\xb4\x9b\xbc\ -\x04\x8d\xb7kX8\x0a\xe9)\x93\xb6\x89aD\xb8;\ -\xa8\x8b\x0e\xb3\x8e(\xd5\xad\xde\xd4\x01A\x86\x93\xa2R\ -G\x0b~\xd6\x1ar\x86\xa9\xcf\x09\x8a(;\xd2\xa7\xd0\ -\x19\x09\xf3\x05\x22!9v'\x85(\x09\xf6\x85\xc0<\ -<\x19\x0f\xac\xc0\xc5)e\xbd\xc0I\xe52y\xc8\x97\ -\xf9g\x95\x0d\x12\xd7\xef\xbd6\x06\xca\xd7+\x92G\x05\ -y_H\x84[zM\x17\x03L\x16\x0c\xf3\xbeU,\ -\xf6*x\xc18c\xe7T\x1eE\xc7\x957A\xce\xbb\ -\xfa\xc4\xf8\xa3\xfe\xf3\x0eN\x8f\x7f\x866\xbd\x9f\xba,\ -\x81j\xdax\xe0\xf1}b\xd7F\x0d\xa8qP\x82q\ -\x09\x17\x87a\xf3\x1c8\xbcs\xb9\x8es\xbc\xf2\xa0\x97\ -\x9b\xfc\xe1\x12\x8aSPI$\x9b\x80\x8b\x93~$\xa0\ -&%\x04\x8c'\x14\xf9\x82\x12\x89\xe8\xd5\xdeQq\x10\ -\xfd\x17\xc50\x00\x0b\x0b\xbc\xaf\xa9\xcf4\xc7\xe3\xc4\x97\ -\x1cI\xcc\xa0\x1d\xb1\x90\x09\x8c\xa8#}F\x08A|\ -\xe2\xc1\x13\x22T\xc8\xfd\x99Cd.TX\xff\xbc:\ -\xdd\xa9\x04\xa6\x22\x8d\xf6;\x15\xf1\x85\xa4L\xc8\xb0\x93\ -\x179\x84\x92\xac\xe2\x9b\xb5\xb5C\xd9'\x9d\x971\x1c\ -d\xca\xb4\xd2\xed\xa0\x00\x06\xda\x98\xb5\xb2,\x81\xfa5\ -&y\xdcf\xaa\x95\xeeJ>>\x08\xbc\xefe\x1a\x1a\ -\x07\x9c\x90poJ\xd3\x83\xb3\xf1\xab\xa1NGQg\ ->a\x8c\x87\xe1\xc4\xc3\xcc\x97\x822\xc9\x01v\xca#\ -\x8c\xe4d\xfb\x80dD\xbe\x15\xec\x82|9\xec\x1d\x98\ -\xe7\xe7\xe1[A\xca\xc7 \xa5\xd8\x8f\xea~(\x00R\ -\x01}\x93\x11$\x1c p\x84\x18\x8e\xa2\x09\xc6>c\ -\x119L\xc7\xff\x92\xca'f}\x95\xdc\x88\xb1\xdc0\ -\x00)\x22!e\x13\x8fBG\x09\x81\xdc\xcc\x81\xcb\x87\ -\xe0\x14\x8bp\x82\x9b\xc6\xf7\xdfb\xbb*\x8a|U\x1d\ -\xdc\xd9\xe1\x5c\xa5>\xe2\xe0Rx\x00\x94y\xa8U\x98\ -\xd3H\x90\x03~\xd7\xc7y\xe8\xcbP\xa2\x88\x1f\xcc\xaa\ -\xef\x01u3\xe1!\x90\x9b\x9dJ\x0a\x0d\xbd\xd0\x1b'\ -~\x1fg\x03t\x18\x224\x9f7@\xef\xebFq\x1f\ -R\xb4\x03=\xc2\x92PN\x8f\x006z]f\xcf\xa1\ -\xfey\x00\xc3\x81&X\x04|\x18\x03\x18\x85\xc0\xc2\xfe\ -\x1e\xda\x03,|&iHx8\x020\x81.\x02 \ -R\xfc\x04\xc0\xf8,x\xa5\xe4\xfcY\xf0R\x9f\xe2H\ -bB\xc4\xf7\x82\x17N.!9\xa6\xec\x18^\xe63\ -\x8c\xb1\xc4#\xfc\xad{2\x099\xe1|\x04_J\xfc\ -\x90\x85\x5c\x90\xa7\x08|\x16\xbe\x94\x22\x14\xa1g\xe1\x1b\ -I$C\xc0\xf8{\xe1\x0b\x0d2\x82;?\xa1c\xf4\ -\xe5\x11\xb4\xb4Qx\xb7\xb7\x08)\xc7\xe8\xcb\xa9/B\ -\x1a\xe2'\xe8{\x16\xb8bN\x92g\x92\x97\xc1U\x17\ -^\x03\xc5\xf7\x037B\x80 \x8d\xc6\xc0\x95\x84c\x84\ -G\xc0\x85Y\x11\xe7\xd1(\xb8\x0c\x82\xe2\x88\xb3\xa7\xb8\ -\x8b\xce\x82\x97s\x842\xf6\xcc\xde@e\x14I\xf2M\ -\xe1\x9d\x06\x8b\xee\xdb\x82\xc5\xf1\x0b\xdc\xe0\xcdg\xf0E\ -\x83\x8fP(HD'\x1e\xe1\x80\xa6 R^\xb9\x07\ -/}\x18^\xfa\xdaW\xc5\xed\xca\xd3\xfak1\xf8\xff\ -/\xd8%\x17w\ -\x00\x00\x07\xd6\ +1\x22 />\x0a BusBar\ +\x0a\ + \x0a\x0a\ +\x00\x00\x09\xe9\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x09q\ +dow-height=\x221016\ +\x22\x0a id=\x22named\ +view4\x22\x0a show\ +grid=\x22false\x22\x0a \ + inkscape:zoom=\ +\x221.7383042\x22\x0a \ + inkscape:cx=\x2220\ +8.24894\x22\x0a in\ +kscape:cy=\x2288.87\ +9725\x22\x0a inksc\ +ape:window-x=\x2255\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22\x0a inkscap\ +e:showpageshadow\ +=\x222\x22\x0a inksca\ +pe:pagecheckerbo\ +ard=\x220\x22\x0a ink\ +scape:deskcolor=\ +\x22#d1d1d1\x22 />\x0a <\ +g\x0a id=\x22g1024\ +\x22\x0a transform\ +=\x22matrix(1.11809\ +76,0,0,1.1180976\ +,-2.290899,8.095\ +787)\x22>\x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x0b\x1c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x221.7383042\x22\x0d\ -\x0a inkscape:c\ -x=\x22133.79315\x22\x0d\x0a \ - inkscape:cy=\ -\x2271.379447\x22\x0d\x0a \ - inkscape:windo\ -w-x=\x2257\x22\x0d\x0a i\ -nkscape:window-y\ -=\x2227\x22\x0d\x0a inks\ -cape:window-maxi\ -mized=\x221\x22\x0d\x0a \ -inkscape:current\ --layer=\x22svg2\x22 />\ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a sod\ -ipodi:nodetypes=\ -\x22cc\x22\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path81\ -2-3\x22\x0d\x0a d=\x22\ -m 134.96147,95.5\ -94487 -79.795108\ -,0.0945\x22\x0d\x0a \ - style=\x22fill:#ae\ -aeae;fill-rule:e\ -venodd;stroke:#a\ -eaeae;stroke-wid\ -th:16;stroke-lin\ -ecap:round;strok\ -e-linejoin:miter\ -;stroke-miterlim\ -it:4;stroke-dash\ -array:none;strok\ -e-opacity:1;fill\ --opacity:1\x22 />\x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x05\x14\ -\x00\ -\x00\x13\x92x\xda\xe5XK\x8f\xdb6\x10\xbe\x17\xc8\x7f\ -\x10\x94K\x82Z\x12IQ|(\xf6\x06(\x82\x00=\ -\xf4\xd2\xa6\xe81\xe0J\xb4\xad\xac$\x1a\x94l\xaf\xf3\ -\xeb;\x94\xac\x87c/\xb2m\xd1\x02M\xec],\xe6\ -\xc1\xe1\xcc7\x0f\x0ev\xf9\xf6\xb1*\xbd\x83\xb6Ma\ -\xea\x95\x8fC\xe4{\xba\xceL^\xd4\x9b\x95\xff\xfb\x87\ -\xf7\x81\xf0\xbd\xa6Uu\xaeJS\xeb\x95_\x1b\xff\xed\ -\xdd\x8b\x1f\x96\xcda\xf3\xe2\x07\xcf\xf3\x8a\xfa\xa1\xc9\xd4\ -N\xa73\x1b8$\xde+\xa4\x10\xca\xd6I\x1c\xcb\x85\ -G\x10!\x01\x82\x1f\xfa\xda\xefN5p\xc1\x0e~\xd3\ -\xdcd\xb5\xaa\xc0\xae\xca\xf3\x8f\xfa\xb1\xd5\xb6V\xe5\xc7\ -\x8d-\xf2\x10n\xe8\x95\x8b|\xe5\x03\xc1zj~\xcf\ -\x99S\xe8\xe3O\xe6q\xe5#\x0fyT\xc0O\xcf\xdf\ -\xeab\xb3mW\xfe@\x1f\x8b\xbc\xddN$\x04^7\ -\xe9\xe0\xff\xca\xdf\xb6\xed.\x8d\xa2\xe3\xf1\x18\x0e\xcc\xd0\ -\xd8M\xe4\xfckv*\xd3M4\xf0\xe7\x06\x86PF\ -\x03\x03#l\xcc\xdefz\x0d6tX\xeb6z\xf7\ -\xe1\xdd(\x0cP\x98\xb7\xf9\xcc\xce\xc5\xfd\xc7\xb8\xbb\x99\ - \x84\xa2\x11\x86\xf3u\x87\xcdsUm\xbe\xbe\xa5\x8a\ -\xa5\x94\x11\x22\x11\xa4\x044\x82\xe6T\xb7\xea1\xa8\x9b\ -\x97\xf3\xb3Y6\x1e\xcd\xacVmq\xd0\x99\xa9*S\ -7=&\x97\xda\xf9\xa4\xbd\xdb\xdb\xb2S\xc9\xb3H\x97\ -\xba\xd2u\xdbD\x90\xaa\xc8\xbfs\x07\x96\x95nU\xae\ -Z\xd5\x9d\xees;\xb00\xe9u@\x0b\x1cK\x7f}\ -\xf7\xfeL\x02#\xcb\xd2?\x8c}\x18h\xf88\x15u\ -o\xf6\x90`\xffn\xe2/\xf3,\x05\xc8+\xd5\xde\x15\ -\x95\xdah\x07\xca\x8f\xe0\xe52\x9a\x04\x97\xda\xedi\xa7\ -gv{\xcbV\xf7\xd9\xbb\x19W\x9eU\x85;\x15\xfd\ -\xd6\x16e\xf9\xb3\xbb\xc6\xf7\xa2\xc9\xd9\xe8\xec\xed\x10M\ -4\x0fg\x19\x0d\xf1\xf6d\xae\xd7\xcd\x0c\x0cGb4\ -\x98[\x8e\x8d\xe2\xaa0w\x95>\xe8\x0e}\x07\x1d\xb4\ -w(\x07\xd6\xb4\x90'\xd7\x19\xc8\xffR)\xdb[\xeb\ -tJu\xd2v\xdeM3\x9dcQ\xe7\xe6\x18T\xea\ -\xb1\xa8\x8a\xcf\x1a|\xc1O\xe9\x9cV>\xe1O\x09\xa1\ -\x11Yr\xed\xc1\xc9u,\xe5(\x11\x82\x5cK\xe1P\ -@\xc5Y~%\xfelL\xb5\xf2E8\x9am\xb6\xe6\ -\xe8\x86\xc4\xca_\xab\xb2\xd1\xfe\x0c\xc0\x11(\xf1\x94\x83\ -\xc3\x5c\xc0\x08?\x89\xc2yV\x10*\xafC\xd9A\xbe\ -\x9b\xad\x025P\xb8)50.\xa0Bf\x99\xd8\xec\ -\x8b\x5c\xb7\xa6\xd4V\xd5\xae\xaa\xf0$\x810n\x0a\xcc\ -\xfd'\x9d\xb57E\xf7\xc6\xe6\xda\x8e\xb7\xe0K~f\ -J\x03I~\xc9\xba\xcf s~\x0d\x92u\xf7\xb9\xe9\ -z\xb6\xd5\xd9\x83\xb6\xf7F\xd9\xdc\xf9?\x14\xe2N\xb5\ -\xdb\xb3\xfe\x1a\x8a\xde=\x04\xf5\x05\xeeNaD\x03\xe8\ -_`\x1ao\xa98P\xb1\x85\xcc~\x1e\x0dm\xce*\ --D\xd5\xb8\x86\x84\x01\xa0Z[<\xbeB!f\x02\ -QD\xe3\x05r\xdf\x89$$D\x82pF\x16\x01\x0b\ -\x19\xe6\x84&\xe2\xf5\xfc\xf2\x8d\x88G\x10\x9a\xf6T\x02\ -Z\xce\xcb\xf4\xa5\xd2\xee\xfb\xc6\x11\xc1\x19\xaf\x14\xbfi\ -Zk\x1e\xf4(\xed\xc9\xa0,j\x0d8\xa4\xd6\xec\xeb\ -|`~y\xa8\xaf\x8c\x14\xf3P$DPF\xc5 \ -\x80\x99\xa0m\x09\xbd\xd3\xa6t\xe0\xe5\x0a\x0a\xc5Zu\ -J;\xb8\x86\x810\x03s\xf6\x16\xd6\x06J\x04\xc6\x0a\ -\xbc\x05Y\xe6\x8f\xf2\xa9IL\x0d\x0e\xb6\xc6\x06\xd0\xce\ -\x07\xd5\xee\xad\x9eU\xd8\x94\x05\x81\xc9\xc4t\xf3\xd5\x93\ -I\x88$\x96<^$,\x04\xf8\x08\x8d=\x04,J\ -\xf9\x82\xcb\x90\xcb\x04I>\x9dy\x06\x82\x1di\xf7\xa5\ -N\xf5A\x83\xe3\xf9\x13\x98>\x89\xd6M\xb0\x1d\xf3\x93\ -)\xea\xb4\xc3\xf2\xf9\xc0^%k\x1a\xc7\xff>\xd6A\ -\xfc\x05\xda8\xa6\xa1d\x18\xb0\x05\xdc\x13\x00Yp/\ -\xe8a\xc6H,:\xe0\x93o\x11\xede\xb4\xb9\x1a\x16\ -\x03P\x12\xf1\xd9p\xa8<\x02\x8fA\x9c\x10\xc6\x16,\ -$\x0cq\xc9\x5cEb\x16\x93\x05\xa6\x0e5(\xc9\x7f\ -\xdc\xd1=\x1e4D\x08\x96\x9e\xff\x18\x8b\xdb\x18L\xc5\ -\xe2F\xa4'B\xc6(#\x08/H\x1c\x12,$\x11\ -\x1eT\x8f\x00h\xf8\x82\xc2\xda\xc4\x10\x8b\xd9\xff\x12\x87\ -\xc1\xe7\xdb\x1d\xf75\x94\x82\xabj\xc1\x12\x8b\xee%\xa0\ -q,\x04\xf5\xa0J\x10\xe7\x12\xa0\x93\x80\x17aX|\ -\x8f0\xc5\x170\xf1\x90q*\x09Y\xc4$\x8cc\x9e\ - \x01\xc3($2\x96\xf0t\xca\x90PNP\xf2\x0d\ -\xc3dad\xdf\x88\xae3\xf9\x17B\x8b\x9f\x17\xd4\x05\ -\xf7o\x04\xf5f\xa7\x0a\xd8\xc9\xbb\x9d-\xad\x94\x85\xb5\ -\xab\xf1z\xa5n\xc7\x9a/8.2\x91\x8c8\x0c\xeb\ -\xa9\x0894\x01\x1b\x9beXm\x09,OH\xa0x\ -\x5c\x04`\xbf\xe6\xf0\xf2\xc3SD\xc7\x92q[<\x0e\ -e\x02\xc5\x11\x7f\xbd\xd2.v;7\xa4\x88@(\x8e\ -\xbb\xc1\xc5\xa5\x8c)\x0c3\xd8\xa8\x114)\x0c.B\ -0\xa3\xe4\xbb\x1c\x5c\x01\xbb@\x0a \xe6\xf0\x1a\x93~\ -vI*\xe4\x8d6\xfd.GW\x90\x5c\x96T\x02\x8b\ -\x00\xec\xa8\xb8\x83EB\xb5S\x07\x9e\xe4\x09g\xd2\xd5\ -\x14\xa3\x09\xc7\xf2[\x85j\xe9\xfeS\x01\x7f\xff\x04F\ -\xea\xf2\x89\ -\x00\x00\x15\xb8\ -\x00\ -\x00P\xd9x\xda\xed\x5cYo#Wv~\x1f`\xfe\ -C\x85~q#$u\xf7E\xd3\xf2\x00\x19c\x90y\ -J\x90\x19#\xcfl\x92-)\xa6H\x81\xa4z\xf1\xaf\ -\xcf\xd9\xeeREIn\xc3q\x12\xcfXm\x83\xbc\xb7\ -n\xdd\xe5\x9c\xef\xacu\x8ao\xff\xf8\xe9a7|\xd8\ -\x1eO\xf7\x87\xfd\xcdL/\xd5l\xd8\xee\xd7\x87\xcd\xfd\ -\xfe\xf6f\xf6\xdd\xdf\xfe\xbcH\xb3\xe1t^\xed7\xab\ -\xdda\xbf\xbd\x99\xed\x0f\xb3?~\xf3\xfb\xdf\xbd\xfd\xa7\ -\xc5b\xf8\xd3q\xbb:o7\xc3\xc7\xfb\xf3\xdd\xf0\x97\ -\xfd\xf7\xa7\xf5\xeaq;|}w>?^_]}\ -\xfc\xf8qy/\x9d\xcb\xc3\xf1\xf6\xea\xcd\xb0X\xc0\xad\ -p\xf3\xe9\xc3\xed\xef\x7f7\x0cp\xe3\xe6|w3s\ -iF\xcd\xbb\xed\xfd\xed\xdd\xb9\xb5?\xdco?\xfe\xcb\ -\xe1\xd3\xcdL\x0djpi\xa9\xf0O\xb7o<\xea~\ -s3\x83\x09\x8d\xdc\xd3\x8eR\xae\xcb\x1e\xae\xfbKK\ -3|\xadVJ\xad\xdf{k\xf3|0\xca\x98\x85\x82\ -\xff\xdc\x1b\xbe\xeb\x04$x\x84\xff\xaf7\x87\xf5~\xf5\ -\x00'\x7fX=\x0e_\xaf6\x9b7KX\x8d\x07\x01\ -\xed\xf6\xa7\xeb\xb2\xc0\xcd\xec\xa5\x93\xe3\x04\xa7\xc7\xd5z\ -{\xba*\xfd\xfd\x04e\xad:A\xe9X\x9e\x0eO\xc7\ -\xf5\xf6=\xcc\xb1]\xee\xb7\xe7\xabo\xff\xf6m\xbd\xb8\ -P\xcb\xcdy\xd3\xcd3Z\xff\xa3\xa5\x95\x0d\xd0\xe9j\ -\xb2_h~\xe9\xd0\xe3\xe6\xfdsCu\xce\xf9J\x99\ -+\xa0\x19\x8cX\x9c>\xef\xcf\xabO\x8b\xfd\xe9\xab\xfe\ -\xde\xf5\xba\xde\xbaF\xa0\xdc\x7f\xd8\xae\x0f\x0f\x0f\x87\xfd\ -\x89i2\x1e\xbdi\xa3\x1f\x9f\x8e;\x1a\xb2Y_m\ -w\xdb\x87\xed\xfe|\xba\x02\x9e]\xcd\xbe\xc1\x1b\xden\ -\xb6\xefOt'\xf3\x1e\x9b\x8e/\xc1\xc5\xf5\xee\xfe\xf1\ -\xdfW\xe7;\x190\x0c\xa5\xe3\xbb\xfd\xfd\x19H\xf4t\ -\xda\x1e\xff\x8a\xac\xf8\xb7\xfdw'\xe1B\x99\xa9\x0cM\ -\xc6\x97\xf9`\xc6\xe3v}\xae\xc3\x00\x18\xe7\xcf;`\ -\xf5\xfb\xfb\xdd\xeez\x0f\x22\xf1\x07\xfc\xb68\xc0\x94\xf7\ -\xe7\xcf\xd7j\x99\x5c\xf6\xday\xfb\x87\xd3\xf9x\xf8~\ -{\xfdU\xa6?i.\x08\xf2\xd7v\x99|t\xda\x19\ -_\xfaw\xf7\xfb\xed\x7f\x1d\xee\xf7\xd7\xc7\xc3\xd3~S\ -z\x1f\xee\xcf\xdb\xe3\xee\x1e>\xae]\xe9\xdb\xacNw\ -\xab\xe3q\xf5\x99\x96\x9fu[\xc33\xe0n\x93\x89}\ -w\x912\xb7\xc4\x05S\xe8\xafU\x91{\xee\xe2'\x14\ -\x95lRTQ\xf7\xfd\x9f\xa1_\xa9\xb04Y\xe5\xbe\ -\xffH\x17\x96:\x85\xe8\xf5l\xb8*<\xb9*\x84\xfd\ -\x1ff\xd2B\xfd\xda\xd9\xb4\xb0\xff\x8f\x19\xf5\xf6\x0aE\ -\x8b\xbfVu\x88\xaal\x83\x8a\xb9\x93\xc0w\xab\xc6\xa4\ -\xc7\xd5-\x88\xf9\xeep\xbc\x99}\xf5\x9e\xfe\xca\x95w\ -\x87\xe3f{,\xd7\x02\xfd\x8d\xaf\x09w\xd8\x0c\x95\xf9\ -\x8b\xf6\xc6\x89\xeb\x00\xf5\xc2\x00 \xf9\xe6\xf0\xf1ff\ -.\xae\xfep8<\xdc\xcc\xe22\xeb\xecs\xb8\xb8\xbc\ -\xfeD\x14qIYk/\xaf~F\xa3\x04d\x8cY\ -\xa7\x8b\xab`!\x9ePI-\x9e\x18\xbd\x8f\x9f.'\ -x:\x1eq\xc4n\xf5y\x0b\xa7\xa7\x0f\xdd\x98\x7f\xba\ -;|\xbc=\x22)\xdf\xafv\x8d\x96/\xcf\xf7\xf1~\ -\x0f\xe7\x5c\x08`\x8cW\xfe\xa5!\x057Z\xe9\xf0\xd2\ -\x188\xbb\x7fq\x028zS'\xd3\x8b\x0f\xabO\x80\ -\xfa\x1f\xb6\xb0s\xfd,C\xd6w\xdb\xf5\xf7\xdb\xe3\xbb\ -\xc3\xea\x08cT\xc1\xda\xdb\x87\xedy\xb5Y\x9dW\x1d\ -\x8aJW\xac\xba\x1cl\xcb\xf5\x7f|\xfb\xe7&\xe3\xeb\ -\xf5\xf5\x7f\x1e\x8e\xdf\xf7H\x86!\xabw\x87'8a\ -\xd3\x05h#\xd6\xd7`5\x1fV\xe7o\xee\x1f`\x1b\ -h\xd7\xfe\x19\x0c\x0d@\xba^\x18\x8f>\x7f~\xdcv\ -\xf3\xf2\xcc\xc7-\x1b\xe0gM\xd3f\x0d\xf2\x0ew]\ -\xfd\xf5\x0c\xaa\xe5/\xb8L\x13%\x12&\xdem\x15\xae\ -\xfe8o\xaf\xcaq\xb9y;%\xden\xf5n\xbb\xbb\ -\x99\xfdi\xf5\xb8\x1a.I{\x0b\xea\xe7\xf1\xe1\xb0\xd9\ -\x0a\x96f\x1d\x1d\x19\x5c\xa5\xe7|\x5c\xedOx\xe2\x9b\ -\x19}\xdd\x81\xc7\xf6\xb5\x9a/@/\xb8\xa5\x0d\xc6\xbc\ -\xa9\xe4\xbe\x1d\xe9\xd9)F\x7flo/,\xb5\xf0i\ -\xe9\x823)\xc0\x9a\x0e\x95\x94\xf7\xe9M\xa7\xb7o{\ -\xcd\xf8#+\x8cv6\xb2q\xcf\xae\xed\xf3RG\xed\ -\x9c\x9fk\xbb\x8c\xda\xa8\x1c\xdf\x8cPr;\xe2x\x7f\ -\xea\xb1b\xfe\x92\x9d\xbdt\xfe\x00\xba\xca\x1b\x1d=\x9c\ -\xdf,\x1d\xa8\x97\xeac>g\xab\xbezg\xf1_5\ -K\xa2'\xbf\xe9ox\xfb\xd8\xdb\xce\x97\xe7 \x93w\ -|\xdam\xaf\xb7\x1f\xb6\xfb\xc3f3\x99ul\xec\xd4\ -\xd2\xf4V\x0eN;6r\xd5\xf4\xbd\x83\xd9v_n\ -\xfaJo\xb1\xbd\xfa\x0f\x8f\xab{\xd0\x85\xa4\xf2a\x04\ -\x08\xe3n69\x0d\xaa\x83\x01T\x16\x90\xceF7\xd7\ -\xca\x00\x03\xb3\x1b\xc0\xe7\xcd*\xda8\xd7K\x9fb\x1e\ -\xc0\x86i\xeb\xcc\xdc\x82^\xb7\xc3\x02\xdcz\x17\x83\x09\ -s\xa4y\xc4\xd1\xd6)\x13\x0c\xb4M\xb2~\xe0\x0f\xaf\ -\xa1\x0d\xa6\x9f\x06x\xadl\xb6\xd0\xe1C\xd48\x83\x06\ -[\xa9\x01\xac\x13\x92\xd3\x85\xebu\ -=\x22\x80\xc13\x80\x1a\xd2t\x03\xd1\x819\xa7\xfb#\ -\x95\x09\x08&\x1d\x8c\x90\xc88\xa0m\xc1\x84\xdc\x93\x16\ -\x99KG\xacg\x10R\xcb\x1dt\x08Z\x13\xf4\x80\xb5\ -\x08\x9b\x9c\x5c\xa2M\xc1g\xc0\x11@\xe1~\x17z\xe9\ -tL\x1d\xb0\x1aC\x890=\x9c\x89\xd2~\xde\xc0\xdb\ -`Rh!\xb3.\x1a\xbf*\xf9q\xab\xff:D\xbb\ -\xb4\xe0\xe8 \xb8\xbb\x15\x88\xfd\x1deh\x0b\x1deH\ -~\xba\xf1L\x98\x1e\xebH\x81)\xed\xe8\x9cHum\ -\x05\xb9t\xd0\xe8\x932\xdd\xb1z~\x84^\x8cQ\xa0\ -\xba\xcb\xc0\x7f;\xd45eI\x01\xa4/+\x0aQ\x84\ -\x9dx?\x9e%\x849\xdf\xd8\xe3O\xd8\xcf\xf8+:\ -\xa2\xdeo\xe1K\xa8\xccwM\xbem\x80fl:\xc4\ --\x93Q6\xc6&Frh\xd73F\xc8\xd0\xf8\x82\ -\xe87\x8eioF\xdaL\xf6U\xcf-\xd2K\xfb\xb6\ -\x9d\x9c\xd1\x003\xe7+M\xd0\x1a\xc4*/\x88\x12M\ -\x11\x99eP\x09\x97(\x92C[\xe8\xd4\xa5\xc0\xa1\xde\ -_\xf0Va\x0e\x87#\xd2V@F\x98\x00(\x0c\x94\ -TA\x8e\x1d\x9a\xda\xaa\x00\xa2\x0dx\xdcb\x8c(\xfb\ -D\x04[\xf1SToQ\x8cf\x09DK\xd6\xf1\x16\ -\xfcH1\x12\x1a\xfa\x19\x08^$N\x00\xb09+\xe6\ -\xd0@\xdba\xb4iJ\x22%\xdc\x13a(\xdcc\x96\ -F\xeb8T\x15RF\xd4\x93.&\x8aQ\xf7J\xbd\ --TnB\xe4\xf9n\x1d\xa2O\x14(\xb1 \xe8\xdc\ -8,H+8\xaaJCtZ#O\xb5x\x02\x22\ -\x02\xa5\xeeE\x87TY\x1d\xcf+\x0f|<8y\xa5\ -MS\x17$\xe7\x1d^\xf9\xde\x867\ -\xd2\xe0\x9d\x8a\x17\xaf\xaeJ\x1b\xe2\xdbM\x0d_s\x02\ -\x09\xe0M\xd5\xf1l\x0bi\x17(T\x8fO\xa8\xd3\xec\ -\x90X\xa6\xea#.\xdai\xc8\xb0\x8a\xdb\x92*b\xfb\ -)\x8b\xe1\xaa\x1d\x04\x1dfi\xd5PweQ>}\ -\xd9\xbd\x10\x9f\xb7\xdf\xc4\x11\xa7r\xe2w@\xcbg\x18\ -l<\xf0\x1ex\xfb\xc34&\xc0\xf0\x0c\x03\x9f\xa4\xf3\ -\xc5\xa5\x9ag9\xec!r9\x1f\x8e\x8b\xf5\xd3\xf1\xc3\ -\xea\xfct\xdcb\xd6a\x1a+\xd5d\x16D\xd0\x18\xc2\ -\x9fnf\xeb_\xe5_\x9fp\xf8_\x8d\x0c\xdf=\x9d\ -\xcf\x17\x81!\xc5\x82?#0|6\x0a\xccv\xe9R\ -\xce\xa0\x035\xc0d\x99\x00\x9e\x14\x80\x81\x83\xe6\x12J\ -\x8abW'\xc6\x1c\x19\xca\x12?\x05\xa5\xc4\xbf\x0a\xc6\ -\x88l#|!V\x0b$\xce!\x13\x9e\x8d6!P\ -\xb4\x22\xb1I\xb0$\x00\xca\xa4q\x88\xa4}\xb8\xec \ -\xbb\x83+\x90V\x83\xe8\x9e\x83&\x98\x94\x8cx$d\ -\xbb\x00\xea\x86\xbc\xa8\x90\xd0\xe6\xc2\x12V\xac:i!\ -\x10\x03\x12!Q)&\x06\xc7n\x9e\xd6\xe8t\x01C\ -\xac\x8b\x9d\x06\xca\xd9\xb8N\xa94\x03\xa0H\xcc\x94\x92\ -\x88\xcd;\xf6\xefq>\x12Y\x22\x96\xc2\x10\x05\xcc\x1c\ -u\xe8\xf4\x9a\xa8\x19\xfdSE\xed\xef\x1f\x901#\x9b\ -\xd1\xc5\x01@\x86%\xd0\x98BN4<\xb1\xd3u\x0a\ -\xfd\x86\xea\xe7.\xea\x08\xb8\x92\xc4\xab!4\x10\x80\xbc\ -M\x91\xd0\xac\x81!\xa3\xb4\x84hJ\x9e\xad\x22\xc0j\ -0\x94\xa1\x98\xc5\xde\x0d\xcf0\xf9+\xfc\xb4\xbf\xf1s\ -\xca\xcf\x04\x02f1\xdc\x04vzp04\xdbE\xb4\ -\x7f\xd5T!\xb3\xac\xb2l\xcc\xd8\x0c\x82\x83\xe2Yh\ -9\xd01p;\x99v\xad\xd4\xab\x22\xe5\x7f1\xeb\xf5\ -\x8f |\x11t\x98\x0e&\xb35\xd0\x9e\x15`\xf2.\ -pT\xa49\xdb\xa2\xacR\xec\xf8\xe4\xea\xdf\x92\xc6\x86\ -0\x9c\xe5\xc6\x88\xc3\xe4\x9d\xcd\xdc\xc1\x8a\x1b\xa2\x0f\x94\ -Q\xce\xe1\xc0l\x94o\x01\xf9\xf2\x97\x1d;\x01\x0a\xe7\ -;\xb4\xa7T\x95\x07Y&IN\xb0\xb5W`\x10\x7f\ -\x93\xc4\x0bI\xf4\xcb\xec\x89q\xcc\xdc\xec)\xf0\x22\xc9\ -\x22\xcd\x9a5y\xbd`\xdf82\xc3\x08V$\x8fU\ -\xaf\xd7\x08\x07\x15\x94\xc6t;@\x85\xdcdd\x05\x87\ -a\x16\xd3\x1e\x15\x0d\x0e\x22b/\xee\xb2\xe1h\x22k\ -\xb0\xe4\xd4\xe3\x8c\x1d\x01IReFIHo\x0cg\ -\x02'=2u\xf0\x04R\xd9\xd2\x82M<\xc7!\x10\ -\x12\xb2\xe3\xad(\xd9\xc3\xda\xc4$\x05#\x106\xf6\xb9\ -\x0eB\x1an^\xb1\xe3\xa1xP\x99\x03\xc2\xae\x1a\xbc\ -X\x88\xa0\x22\x02\xd0;mGm\xa2\xde\xbc\xf8G\xe5\ -\xde\x108\x87\xa5\x1c-\x17\xc1\xbdF\x12\xe2\x12\xb8\xba\ -\x91\x958\x1f\x97\x22\xd3\xa9o\xbe\x82\xf1\xfc\x1b\xc6/\ -0\x1e\x96A\x817\x16\x11\xe3@}\xc9\x16\x8bb\xc2\ -@M\x08n\x94B\xb8 F%\xf5\x978G\x1b:\ -\x00W6E\x86\xa7 \x1a=R\xc9\xbd\x90(\xa0\xcb\ -8\x14,\xc3\xa2N\x87\xa1! zM^\xa5\xac\xa8\ -\xf9qB\xb5g\xc9\x18}\xd1\xc6\xe8\xceF\x95M*\ -\xab\xf7\xf8D\x09mrH\xd2@^J \x90\xb1V\ -\xa6\xfd\xf2\xfeQ<\x0c\xfb=\x15\xe1\xfeU\xedi\x7f\ -5~\xe9/\xf3\x08\xedYh\x85\xb4LZa\xc2\x09\ -8\x08\xdf=\xa5\xd3|\xd0\x8eiL\xb2\x5c\xd9$\xed\ -\xa26R2\x92\x97\xc5o\x18\xa3\xb0)\x5cT\xb8\xe0\ -pR\x11\xc6\x91\xda\x95;XU]\xb4w\xed\x8e\x05\ -o\x02Uy\xc2.\xdaK\x90d\x01o\x8f\x86\x83\x1d\ -\xb5\x8c\xe6\xc0\xb99\x87_\xaa\xdaf\x90\x10D\xe1\xb2\ -\x86\xced%\xa7\x951\x8f\x99\xad\xb1\x8c%z\x06\xa4\ -P\x05\xcfE\xa7sfC\x14!\xb9\x04\x8b\xde\xb0\xc8\ -\x89*^\x1d!\x1e\x9c\xc2,\x81^\xa6\xbc\x9a\xabp\ -Uc\xb3\xc2w\x17KQ\x16\xc4\xd3\x18/\xb9J\xce\ -\xcb\x91N/C\x8a\xc8-DW/*\x09\x16L*\ -\xca\xf6\xe1\xa9t\x0bkQ\xd6H\x0c\x8b\x84\xa3(\x89\ -Kc\x9b\xc4S\xd4Gl1\x16li\xe8\xf8\x8fb\ -\xcfR\x1a\x15\xb9\xba\xe8\xc0\xb0\x15\xd4\xc6\x16\xb9\x8e\xf3\ -\xbam:'\xa9\x1e>\x167Y'\xe5>\xb0\x06k\ -+\x0b\x87Q\x87\xd5\xb8\x131\xa2\x1d\xa1\xd0lM\x9a\ -d\xe8\xa2\xd61U(b\x87C\x0f\xaf'\x14\x12N\ -qb\x11\xc8\xd36!Z\x0a\x09\x18\x99\x80@\xa7\xc0\ -\x5c\xf2\x92@e\xbdW\x09\x16\xd0ss\xd5\xbf\xb8\xec\ -\xa1=\xb9\xba)4\xf8#<\x95\x8e\xe6\x09\xb0\xf6\x13\ -U\x06\x0c\x08C\xcfZ\xd2mE\xee0Z\xf0\xdd\xb0\ -\xa2!\x89{=;%_XU(\xf2\xf5\x99\x1e\xf6\ -\x14\xd8Cb\xaf\xb6\xd2\xa6\x9d;\xf5\xd8\xe3\x16\x003\ -\xd1\x86BB\xb6wZ|\xda\xc1)\xd2\x8a*\xa7\xf9\ -\xb1\x82\xc3\x9dr\xc0\xc4\xd8\xc6\x93U\x9e\x13\x16\xe4\xa1\ -#]n\xdb\x06\x9a\xd9\xd1~\x5cq\xfaX\x9a5Y\ -\xa7I\xc7\xae@?\x89\xbc\xb2\x91D\x89-\xcf\x8a(\ -\xdf\xe9\x12\xa2\xb99\xf4\x15\xda\xe2\xd78\x87\xe6\xae\x88\ -\xd3\x18\xcb\xccJ\xdd\xac\xf1B\xechQbD9\x93\ -U4\xb1\xf9\x7f\xd3\x8e;\x8e\xf4U\xee\x94-\xc4\x92\ -\x89\x87h~\x8c\x86\xbb`\xbfSli\x01\x0f_\xad\ -\xb4\xd4\x92\xe0\x07\x09\xe3\xa7\x89\xb8\xaf\xaakB\x8bc\ -\xc0\xcbt\x0ca\xc9\x86\xf5m\xd9\x04\xd3BDd\xe8\ -\xdd\xe1b\xbf\xc1-\xb6\x95%\xdd\xb9\x14\xed\x82\x04 \ -\xca\xf8T\xb0\xac\xc5A5\xa3}\x92:\xeb\x0f^\xb8\ -^\xe1\x1d\xc7\x06C\xd3\xe5I\x07\x83\x1b\xb4I\x94\x87\ -\xab\xc2D\xa6O=;J\x9a\xab\x8en\xca\xc6\xd8\x89\ -\xe3Dh5\x15\x16h\xe9\x08\x16\xac\xb8\x8aW%\x8e\ -\xb2xM\xb0n\x1a9\xdd\xa2>\x8b\xdf$J\x8f\x8d\ -\x02\x1f\xf5\xb2\xa3\xe0\xabt\x96#\xb4\x0e\x8ah\xe7E\ -U\x8a\xa5f\x83(.z\x89<\xa4I\xbc\xab\xf7#\ -\x97zo\x8dW\xad\x87`N\xa2(Q\x00\xc5\x8c\x9c\ -\xb4\x85D\x95w\xacy\xacW\x89\x15\xa0\x1ayj\xe2\ -xV[*,\xe1@\xaa\xca\x0f\xab\x97\xa2\xc4\xd8d\ -\xb5\x93\x88\xb8UC_HLq\x8e\x8c\x8f\x85\x05\x17\ -m!)H\x10{\xd0\xe2\x0b7\x97Z\x1e\xbe\x16z\ -\x8dw\x94'-\xd1o\x05 \xa4\xdc+\xe8\xaa\xb3S\ -o\x08\xfd`\xd9\xdf\xb8\xbd\xeb\xd6\xa6\xd9\x1a\x0a\xd9`\ -\x88\xff\xd1l\x95D\xb6\xd3-\x8b\xf0\xb4\xf0\xafu\xd8\ -\x02\x1a\xdb\x99\x84\x0e\x83\xc5ip\xac'+\xc0\xd3\x88\ -\xfa\xe8\xf6L\xdbb\xa5\xaa\x1c\x8a\x13A\xe8\x08s\xd1\ -\x81\x95\xd4\x02(T$\x86scD\xa0q{'{\ -\xb49qf\x81 :_\xb6Ix\xc8\ -{\xf5\xf3\xea\xe2a\x8a\xa5o3\xceF\xe6\x92\x8f\xdd\ -\xac%\xc3W Fnw'\xe5\x80V\xdd\x5c2\x92\ -$3\x05\x0e{\xafU|k$\x85\x98\xe8\xd2=\x8c\ -8Q\x1e\x82\x81\xb2j\xe4\x8bckW\xf1\xe8^P\ -\xed\xcc\xe9\xa2j\x1a\xb4C\xe7\xb54\xadJ\x0eG\x83\ -[9\xa1\x5c\xae(\xa9\xa6\xb7m\xbb3\xc45\xf7\xd1\ -\xb7w5\xa9\xc6\x85n]\x12\x05=\xd2\xd8\xbc\x07l\ -\xa5\xf98\x9c\xaa*\x98C\xc2j\x13\xbb\xe68%S\ -\x9c\xa2Q\x96\x91\x8e\xd1\xcfiF\x00#\xa7\xa9\xdfe\ -\xf1\x05E\x0f\xc5\xe1\xc2\x9b\xe8\xec|\x1c\xa5x\xd8\xe9\ -.v\xb2\x04r\xa3\xf6\xaey\xedX\x12e;\x92\x88\ -&lQ\x08\xd1(u\x16\xa5\x1e!\x8c\xb9.\x92\xd8\ -&\x90#\x8b2\xaa\xeeBu\x0f\xd8;\x05\x8cP\xda\ -\xaa\x84\xe6\xc5\xa1#X\xb5SQ\x04\xd7\x90]\xd2\xbd\ -B\x1f\xdfC\x86\xd2\xa65l\x90t|ga'\x1a\ -\x0b\xbd\x87\xa1\x8f\xfc\x94\xd4W\xd4\xa4\x9b\x08\x8d+\xf7\ -&\xe4\xdb\xbc\xba\xe4\xcd\xfd\xe0\x85\xc5[f\x8c\xf4\x1b\ -\x11\x07\xad%\x07\xe82\xeaE\x0e\x00\x84\x91\x93\x8e]\ -'\x1d\x1434'\xa2\xfa\x0c%!\x8d+\xf7\x96\xa7\ -b\x22w\xe1{\xf3\x93\xe8\x905\xed22\x03R\x0b\ -\x17\xb5\x93\xe0D\x92\xd3\x983f2\xd5L\xb4\xecM\ -\xf5i\x8c\xb2$D\xd1\x8e#e-JA\x18X\xa2\ -0\xc9\xe0\x0bq\xfal\xa78,UQ\x94;j\x07\ -\xc5\x05\xfd\x14\x94jj~\x82\xc4\xeae>\xd2\x9d\xbd\ -\xe4b\xd2\xa1s\xb4\xdc(:\xb8\x0c\xf5K\xf9o\xd1\ -D\xb2\xffJr\xb1\x11\xe3\x8eW\xf2\x98\xf6\xff\xa6\x94\ -\xe5\xf4j\xf3\xc5K\xa7\xd3\xf3WO_\xb2\xd4?@\ -r?8\x10\x1e\x1b\x22\x96\x06\xd8\x80\x8f%)\xfdR\ -\x1f\xcf\x0f\x5c\xc5\xa7r\xad\x0b\xe0:\xd9V_\xf5Z\ -\xa9\x9e\x14lN:\xc4\xc7\xe0\xbaHuQ27\xaa\ -\x0e\xa16\xd5\x0eHPN\x8e\x83\x03\xddk\xfa\xd2\x85\ -n\x0b\x89\xfcj\xac^\xe6\xaaDv\xac\xdb[\x02:\ -\x18\x96h\xac\x8a\xe1\x84\x06'\xf2\xcb*R\xd9v\xd9\ -\xb3\xeb&\x96\xc2\xfd\x9a\x1e\xa9;\x0c\x893\x13u\x87\ -1\xf8p\xb1\xc3E+\x88(\x85\x93\x17=\xbb\xaeN\ -\xbb{\xb7C\xaac\xdb\x1b\x11\xa3\x02S=*\xa9\xc7\ -\x19\xbb!\xf8L/\x8d\xab\xc5\xd3sg`\xaaS\xf5\ -G\xf7bJ)\xa5\xac/\x99t%\xe7\xe1\xb2\xa3<\ -V\x94\x12q\x0a\x98\x8c1\xf4R\x89\x14*i*\x05\ -n\xedd8yC5\xe9p\x8cl\x9c\xedIVk\ -F\xca\xb9\xc6U\xef}\xd5}y\x0dc\xf4\xd2CW\ -\xb0\x0e\xfcq\x17mN\x9bR\xe1{)\xbflQ\xdd\ -\xa8^\xa5\xe2\xa7\x16-k*\xd1\x9eW\x002\xffe\ -8>O2:\xb0>\xf6\xf5}\x0fS\x0b\x09S\xcc\ -\xe51\x13\x0f\xafE\xbeB\xecZ\x8a#\xef\xb8\xf8\xec\ -\x9d\xcf\x85\xa3\x0c3\x9f\xe7]\xfdl\x94\x84\x84l\x17\ -+w\xe8\x05\x83Z\x14Y\x88?\xa9\x8b\x1fjmO\ -\xdbN\xa9\xe2\x1f\xddWf\x96\xc2\xf3V!:\xee\x10\ -\xfa\xb5\xf2t\xa2@_0\xc4$\xa8e\xfb\xc2\xdbR\ -?\x84\x10\x15\xf2\xca\xb3\xbcQ\x15\xbfT\xf9W\x84S\ -\xc9\xf6\xb4\xfd\x8a9\xf3?\xeb\xb1\xdc\xdb\xab\xdb\xbeu\ -a\x1f~\xad\xd6\x81l\x83\x89\x00\xe3\x80y6|F\ -\x07.T\x8cEMQ\x80\x84\xa9\x8aA\xaa\x0f\xf19\ -\x87\xc7V\xb6\x9e$R\xc2f\x9d\x9c\x18\x0f\xfc&E\ -d\xcaqIC\xd3a\x0a\x95\xb0T\xf7I\x11\x83w\ -\xae/f\xe2\xfaD\xbe\xc2\x1eO\xd2\x12\xe9\xcb\x8b#\ -\xa0;K\xf1$O\x812\xc8\xf9ev\x0a\x9dO6\ -vNb\xdf\x9e \xa4\xe1#\xbe\xf0V\xe5\x978;\ -/\xba:\xa7K\xef\xe2\xef\x0d;\x19\xe9\x1f#a'\ -\x00\x17#\xd7\xc1\x00\xd78Rm%\xfc\x82\x1f\xd1\xd0\ -`\xfa(\xc9F\x5c,\xc0\xe0\x1b\xa8XUG*|\ -\xb5T\xdd?i\xcb\xe3),U%xR\x95\x1b#\ -I\x9a\xec\xc9c=\x14\xfb\xd8\x91s\x01\x0c\x08g\xb3\ -W-rV\x19T\xb6\x0c\x0c\x94\x0d\xe4d\x22?\x89\ -u\x81j\xbfiX\xab\xbek5\xb8\x15\x9e\xb0\x9f\xcb\ -W\xd6\x16\xdd\xbe\x82\xad5\xbcU\x9d\x95c\xf3\xfb%\ -\x85&b\x97C\xb6th\x92\xa8\xee\x15+\x10K7\ -\xd4\x03.\x15\xd7@d\xae\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \ -\x0d\x0a \xce\xb9\x0d\x0a <\ -text\x0d\x0a xml\ -:space=\x22preserve\ -\x22\x0d\x0a style=\ -\x22font-style:norm\ -al;font-weight:n\ -ormal;font-size:\ -22.6018px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#112b\ -00;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.555\ -331\x22\x0d\x0a x=\x22\ -9.1063738\x22\x0d\x0a \ - y=\x2237.0392\x22\x0d\x0a\ - id=\x22text2\ -3940\x22\x0d\x0a tr\ -ansform=\x22scale(0\ -.97491145,1.0257\ -342)\x22>+\x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xb5\ +acity=\x220\x22\x0a i\ +nkscape:pageshad\ +ow=\x222\x22\x0a inks\ +cape:window-widt\ +h=\x221851\x22\x0a in\ +kscape:window-he\ +ight=\x221025\x22\x0a \ + id=\x22namedview4\x22\ +\x0a showgrid=\x22\ +false\x22\x0a inks\ +cape:zoom=\x221.229\ +1667\x22\x0a inksc\ +ape:cx=\x22-123.452\ +97\x22\x0a inkscap\ +e:cy=\x2296.000006\x22\ +\x0a inkscape:w\ +indow-x=\x2269\x22\x0a \ + inkscape:windo\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x221\x22\x0a \ + inkscape:curren\ +t-layer=\x22g820\x22 /\ +>\x0a \x0a \ + \x0a \ +\x0a \ + \x0a <\ +/g>\x0a\x0a\ +\x00\x00\x06=\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04\xb9\ -\x00\ -\x00\x11\xa3x\xda\xddW[o\xdb6\x14~/\xd0\xff\ - (/\x0dfQ$EI\xa4j\xa7\xc0\x10\x14\xd8\ -\xc3^\xb6\x0e{\x1c\x18\x89\xb6\xd5\xc8\xa2A\xd1v\x9c\ -_\xdfC\xcb\x92e\xc7\x0e\xb26-\xb6\xca\x0e\xe2s\ -\xce\xc7\xcb\xf9\xce\x85\xd4\xf8\xc3\xc3\xa2\xf2\xd6\xca4\xa5\ -\xae'>A\xd8\xf7T\x9d\xeb\xa2\xacg\x13\xff\xafO\ -\x1f\x03\xee{\x8d\x95u!+]\xab\x89_k\xff\xc3\ -\xcd\xdb7\xe3f={\xfb\xc6\xf3<\x18^7Y\x91\ -O\xfc\xb9\xb5\xcb,\x0c\x97+S!mfa\x91\x87\ -\xaaR\x0bU\xdb&$\x88\x84\xfe\x00\x9f\x1f\xf0\xb9Q\ -\xd2\x96k\x95\xeb\xc5B\xd7\xcdnh\xdd\x5c\x0d\xd1\xa6\ -\x98\xf6\xf0\xcdf\x836\xd1\x0eE\x84\x10!\xa6!\xa5\ -\x01 \x82f[[\xf9\x10\x9c\x8c\x85}\x9e\x1bK1\ -\xc6!\xd8\x06\xd0\x17\xc2\xb2\x06\xc8Y\xc2_\x8f\xef\x14\ -\xa8\xd1+\x93\xab)\x0cT\xa8V6\xbc\xfdt\xdb\x1b\ -\x03\x8c\x0a[\x0c\xe7)\xeb\xfb&\x97Ku\xb4n\xa7\ -li\x90\x0b\xd5,e\xae\x9a\xb0\xd3\xb7\x13tR6\ -\x0c\x9c\xf7\x8e\xe1(\x96lz\xc7\xc4\xc8\xa3\x98\xe2\x00\ -\xc7\x01&\xd7\xed\x98n#Y\xa1s7\xf1\xc4\x97E\ -\xf1\x0f\x84v\xa6j\xd4\xbbX\x16\x13\x1f\x84\xa4\x95\x06\ -\xd3\x93\xbd\xa6T\x9b_\xf5\xc3\xc4\xc7\x1e\xf6\x18\x87o\ -\xab\x9f\xabr6\xb7\x13\xbf\x937ea\xe7;\xf1\xc6\ -\xc9\xe3\x85\xb2\xb2\x90V\xee\x8c\xed2\x9d\x8a\xd0\x16\x03\ -(\x08c\xf6\xc7\xed\xc7\xbd\x08\x8a<\xcf\xfe\xd6\xe6\xbe\ -\x93\xe1q\x10y\xa7W\xb0\x96\x7fs\xd0\x8f\x8b<\x03\ -\xe2\x17\xd2\xde\x94\x0bp\xc9\x05\xed\x17\xe0y\x1c\x1e\x0c\ -\xc7h\xbb]\xaa\xc1\xbc\xed\xccF\xb51<\x9b\xcdE\ -\xbe(\xdd\xa8\xf0O[V\xd5on\x19\xdf\x0bO\xa7\ --m\xa5nv\xcb\xb6?{_\xc2\xbd3\x9d\xb3\xe1\ -\xd0\xdbq\xd8\xd1\xd1\x8a\x85\x9a6\x03\xae\x9cHp\xb7\ -\xda\xb8\x8f\xa5\x0bd\xe1b\xd2a\xbb\xc4\x80 \xaf\x5c\ -\xe9\x05F[(/\x17C\xec\x9f\x82\xf2\x951\x0eS\ -\xc9\xad2\xc3\xb8\x0f0\x9b\xb2.\xf4&X\xc8\x87r\ -Q>*\xd8\x0b\xb9\x84\xd9N|zq\x02H\x99\xe4\ -\xcc\x0e`\x0cCi$b\xca\x9f\xce\x9b\xc3\xa0\x80\x10\ -\xc8\xed\x08\x93\xf4\x89\xf9Q\xeb\xc5\xc4\x8f\x10K\x93\x04\ -s\xd6\xd9\x9b\xb9\xde\xcc\x8ccm*\xabF\xf9\x03\x1a\ -{\xba\xf8\xa5mvyL\xce-\xb8\xc7\xecs\x9b\xf0\ -3\x0e-!)\x9a\xb9\x04\x18\x90q\xd6\xaa\xa1\xa0!\ -\x8d\x06\xf1\x98\xad\xcaBY])#k\x97z\xe4`\ -\x017\xce\x1a\xf4\xddg\x95\xdb\xb3\xa6;m\x0ae\xfa\ -U\xc8\xb1>\xd7\x95\x86P_%\xbb\xa7\xb3\xb9}u\ -\x96\xe9\xee\xe9Sm)\xed|\x8f\x9aB\xd6\xbb\x03\xa0\ ->\xe2\xd4\x01zOA\xfe\x1d:\xc3\x9c\xf15\xe3\xf3\ -\x80\xf1\xc7~\xa2\xd9\x1eba\xc7\x8d\xabH\xe8\x00\xd2\ -\x9a\xf2\xe1\x1dF$\xe1\x98a\x16\x8d\xb0\xfb\x1cDJ\ -\x11\xe64M\xe8(HPBR\xcab~=\x5c|\ -\xc6\xa3\xde\xc1\xc6n+`\xc2\xed2\xbb\x92\xca}\xde\ -;!\xd8s\x91\x91\xf7\x8d5\xfa^\xf5\xd6V\x0c\xaa\ -\xb2V\x10\x9e\xcc\xe8U]t\xca~P\xdf\x9c\x06L\ -\x0c\xbai\xad!v\xd0\x14\xe0\xf8\xc8s\xbf\xb7\x1fr\ -X\xd70\xbb\xd5&\x80j[K\xbb2j\x10\xfa\x03\ -\x85\x9c\xd0\x83\xd2uGO\xc4\x08\x0b\x22\xd2h\x14'\ -\x08|\xa7,\xf20\xa8\x18KG\xa9@\xa9\x88\xb1H\ -\x0fc^\xe0\xfeN4\xabJej\xad`\xe3\xc5\x05\ -Bv\x09\x9e\x91\xe4Y\x82\x9c\xf2\xb3.\xeb\x0c\x9a\xa2\ -2\x9dv'T\xd0*l\xc6:]!\xa1\x22\x8c\x91\ -\xdb\xcc\xe5\xceS\x82\xfb\x1e\xfa\xfd)\x0e\xa2\x13\x92I\ -\xc4\x90H\x08P\x0at\xc7\xc0-O\xbd\xa0e\x97`\ ->\xda\xf1\x1d\xffD$\x8f\xc3\xd9\x93\xba\xee\xf8\x118\ -\x1d\xd41p\x93 N\x04!\x90nH0\x8a\xb9H\ -\x5c\x02\x12\x9e\xd2\x11\xa1(\xc5q\xca\x04\xfb\xe6\xf2k\ -\x89\x88\x10\xdc\xe6b\xf1\x83\xd98\xcb\x828bA\xa0\ -\x04\xdaQ\x1c'#\x8aQ\x9a\xf0(\x22\x1ea\x88E\ -$J\x05\x1b\xc1\xbd\x0e3\x9a>\xc7\xc2sn\xb3\xaf\ -p\xf8\x94\xd0\x970p\x1c\x89g\xfd'\xe48\x0b\x22\ -D\xa0\x08\x08\x19\xd1\x14\xb18a8\xf68\x02\x97\xa3\ -8\xdey/\xb8\xa0\xaf\x96\x04\x11O8\xfd\x0f$\x01\ -\x89\x8eIH\x11\xc5\x8c\xb8#\x09j\x81r\xce\x85\xe7\ -|'P\x15\xae\x16b\x8c\x09\x89_\xaf\x14(\x13\xe9\ -\x0ffa\xf6\x9d\x8f\xd1\x93S\xfb\xd0\x89\xcf]\x08p\ -\x02/^I\xc2\xf6\x17\x82^\xa4\x08J1\x8d\xe0\x05\ -\x07R\x10\x03K\x82]_8\xa0\xff\xb7\x9d\xfa\x9bn\ -\x01\xc3\xb3.\xf9\x8a\xb3\xf2\xc2\xa1{\xe9\x88\xfeIH\ -\xfe\x97\xb7\x80\xa3\x0bE\x90\xbe:\xcd\xed!=v\xef\ -\xb0\xf0\xff\x0b\x9c\xe0R4\ -\x00\x00\x12\xd3\ +lse\x22\x0a inksca\ +pe:zoom=\x224.91666\ +67\x22\x0a inkscap\ +e:cx=\x222.6440678\x22\ +\x0a inkscape:c\ +y=\x2224\x22\x0a inks\ +cape:window-x=\x226\ +9\x22\x0a inkscape\ +:window-y=\x2227\x22\x0a \ + inkscape:win\ +dow-maximized=\x220\ +\x22\x0a inkscape:\ +current-layer=\x22s\ +vg4\x22 />\x0a \x0a\x0a\ +\x00\x00\x07\x8e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a\ - \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\ - \x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ -tyle=\x22fill:#ff2a\ -2a;fill-opacity:\ -1;stroke:#999999\ -;stroke-opacity:\ -1\x22\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - d=\x22m -28\ -.519885,1068.768\ -8 c 0.90506,1.22\ -12 1.246811,2.67\ -32 1.10285,4.074\ -3 l 15.161239,6.\ -5005 c 0.296039,\ --0.3564 0.63195,\ --0.6925 1.01758,\ --0.9783 0.38563,\ --0.2858 0.804907\ -,-0.5094 1.23194\ -5,-0.689 l -1.78\ -3709,-16.2284 c \ --1.440516,-0.264\ -2 -2.790128,-1.0\ -438 -3.730887,-2\ -.3132 -1.970903,\ --2.6593 -1.41148\ -,-6.4222 1.24778\ -4,-8.3931 2.6592\ -63,-1.9709 6.422\ -1306,-1.4115 8.3\ -930326,1.2478 1.\ -9709022,2.6592 1\ -.4114784,6.4221 \ --1.247785,8.393 \ --0.385631,0.2858\ - -0.804907,0.509\ -5 -1.231945,0.68\ -91 l 1.783709,16\ -.2283 c 1.440516\ -5,0.2642 2.79012\ -83,1.0439 3.7308\ -88,2.3133 1.9709\ -0236,2.6593 1.41\ -15119,6.4221 -1.\ -2477515,8.393 -2\ -.6592635,1.9709 \ --6.4221301,1.411\ -5 -8.3930331,-1.\ -2478 -0.940792,-\ -1.2694 -1.294168\ -,-2.7874 -1.1278\ -76,-4.2425 l -15\ -.161273,-6.5003 \ -c -0.277881,0.33\ -04 -0.595667,0.6\ -406 -0.957189,0.\ -9086 -2.586939,1\ -.9173 -6.237918,\ -1.3745 -8.155238\ -,-1.2124 -1.9173\ -19,-2.587 -1.374\ -518,-6.238 1.212\ -422,-8.1553 2.58\ -6939,-1.9173 6.2\ -37918,-1.3745 8.\ -155237,1.2124 z\x22\ -\x0d\x0a id=\x22p\ -ath2-3\x22 />\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09~\ +ut=\x22\x22>\x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \ + \x0a\x0a\ +\x00\x00\x08\xe2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221858\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22105\ -7\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x221.7383042\x22\x0d\ -\x0a inkscape:c\ -x=\x22-63.567699\x22\x0d\x0a\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x09N\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x0dD\ +/>\x0a \x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a \x0a\ +\x0a\ +\x00\x00\x14\x84\ +\x00\ +\x00G\xb1x\xda\xe5\x5cYs#\xc7\x91~\xd7\xaf\xe8\ +\x85^\xa4X4XWWUS\xc3q\xc4Z\xe1X\ +?\xed\xc6\xda\x8a}\xc6\x00\x18\x12+\x10`\x00\xe0p\ +F\xbf\xdeyUV5@j\xe5=\x1c\xb64\x0e\x07\ +QG\xd7\x91\xf9\xe5\xd9\xd9z\xf7\xbb\xcf\x8f\xbb\xee\xd3\ +\xe6x\xda\x1e\xf6w3\xbb0\xb3n\xb3_\x1d\xd6\xdb\ +\xfd\xfd\xdd\xec\x87?\xff\xa1\xcf\xb3\xeet^\xee\xd7\xcb\ +\xdda\xbf\xb9\x9b\xed\x0f\xb3\xdf\xbd\xff\xea\xdd?\xf5}\ +\xf7\xfb\xe3fy\xde\xac\xbb\x97\xed\xf9\xa1\xfb\xe3\xfe\xc7\ +\xd3j\xf9\xb4\xe9\xbey8\x9f\x9fnon^^^\ +\x16[\xe9\x5c\x1c\x8e\xf77\xdfv}\xff\xfe\xab\xaf\xde\ +\x9d>\xdd\x7f\xd5u\x1d\xec\xbb?\xdd\xaeWw3y\ +\xe0\xe9\xf9\xb8\xa3\x89\xeb\xd5\xcdf\xb7y\xdc\xec\xcf\xa7\ +\x1b\xbb\xb07\xb3:}U\xa7\xafp\xf7\xed\xa7\xcd\xea\ +\xf0\xf8x\xd8\x9f\xe8\xc9\xfd\xe9\xebf\xf2q\xfdQg\ +\xe3i^\x0ag|\xedQg\x8c\xb9\ +\x81\xb1:\xf3\x97\xcd\xba=\x01A\x9f\xe0\xff:\xbdt\ +,N\x87\xe7\xe3j\xf3\x11\x9e\xdb,\xf6\x9b\xf3\xcd\xf7\ +\x7f\xfe^\x07{\xb3X\x9f\xd7\xcd2\x85\x9e\x93]'\ +D\xde/\x1f7\xa7\xa7\xe5js\xba)\xfd\xf4\xfc\xcb\ +v}~\xb8\x9b\x85L\xad\x87\xcd\xf6\xfe\xe1\xac\xcdO\ +\xdb\xcd\xcb\xbf\x1c>\xdf\xcdLg\xba\x90\x17\x06\xff\xd9\ +\xfa\x8b&m\xd7w3\xb8\x94\xe3'*`dT6\ +\xbb\xd5\x11\xb3\x18\xdd\x22t\xdf<\xef\x7f\xdc\x1f^\xf6\ +\xdf\xd2\xb4r\xb3\xdb\xf5a\x85G\xbd\x9b=.\x9f\x16\ +H\xab\xf70\xfcn\xbd\xf9x\xc2i\xbc\x1b\xb6\x02\x0d\ +\xc0\xd0j\xb7}\xfa\xf7\xe5\xf9\x81\x87\xbb\xae\xb4\x7f\xd8\ +o\xcf\xc0\x85\xe7\xd3\xe6\xf8'\xbc\xf7\xbf\xed\x7f8\xf1\ +\x95\xcb2efv\x83,\x06\xcb\x1d7\xabs\x99\x04\ +\xc7:\x7f\xd9\xc1Y>nw\xbb\xdb=\xc0\xfc;\xfc\ +\xd5\x1f`\xbd\xed\xf9\xcb\xadY\xe40\x0e6\x0c\xfe\xbb\ +\xd3\xf9x\xf8qs\xfb\xf5H\xff\xa4\xd9\x13qo\xfd\ +\x22\x0f)\xd8\xe0\x86\xd2\xbf\xdb\xee7\xffu\xd8\xeeo\ +\x8f\x87\xe7\xfd\xba\xf4>n\xcf\x9b\xe3n\x0b\x7fnC\ +\xe9[/O\x0f\xcb\xe3q\xf9\x85\xb6\x9f\xd5\x93\xe1\x05\ +\xf0\xac\xd9\xa5\xa6\xb7p3,p\xbb\x1c\x9b!e\xed\ ++c\x9f\x91_\xa3\xcb\xc9$\xdbt\x7f\x81nc\xe2\ +\xc2\x8dfl\xba\x8f\xd4\xbf\xb09\xa6\xc1\xce\xba\x1ba\ +\xc4M\xa1'q\xec\x06\x99D\xbf\x94\xb5\xc8\xd75B\ +\xaar\xf2\xc3Ry\xf2\xb4\xbc\x07\x91\xdd\x1d\x8ew\xb3\ +\xaf?\xd2?\x19\xf8p8\xae7\xc72\x14\xe9\xdfd\ +H\xd8\xc1JJ\xd6.\xa8\xc3Uu\xdc\xbc>\x0e\x14\ +^\x1f^\xeef\xeer\xf0\xa7\xc3\xe1\xf1n\xe6\x17\xd6\ +&\x9b\xd3p9\xbc\x02\xb2\xf5\x11\xc9i\xed\x98\xaeF\ +a\xc3\x04\x83\xd6\x8d6_\x0e\x02\xca\x9fQ\x8f\xf5\xcf\ +\x8c\xd2\xa7\xcfW\x8f?\x1f\x8f8a\xb7\xfc\xb2\x81{\ +\xd3\x9f\xc2\x9b\xd3\xc3\xe1\xe5\xfe\x88\xf4\xfb\xb8\xdc)\x01\ +\xdf\x5c\xeae\xbb\x87\xfb\xf5\x82\x0d`\x9b\x7fcF\x81\ +\x885nxc\x0a\x5cyHo\x8c\xc1\x85\xdd[c\ +\x8f\xcb\xcf\x00\xec\x9f6p\xe6\x02\x99w\x8f\x9b\xf3r\ +\xbd\x7f\ +y\xda\xd4Ey\xd9\xe3\x86U\xf0\xabvh\xbd\x021\ +\x85\x87n\xfet\x06\x8d\xf0G\xdcD%A\x17\xdd\x9e\ +w\x9b\xda\x09\x02\xc2\xa7/\xf2\xd2\x5c\xee\xddM\xb9:\ +\xb5\xee/\x88\xb8[~\xd8\xec\xeef\xbf_>-;\ +{I\xe1{P\x22O\x8f\x87\xf5FP2\xab\xf4\x9c\ +\xa0\xe6|\x5c\xeeOx\xf9\xbb\x19\xfd\xdc\x81\x8d\xfe\xc6\ +\xcc{\x10\xf1\xb0\xf0\xd1\xb9o\x0b\xd5\xef[-\xc9k\ +\xf4\xbe\xaa\xce\x9f;\xd5\x1b\xdb\xf4\x11dop6\x0d\ +\xb0\x1fh\x7f\xef\xbd\x09\xdf\xea3\xad\x9a\xfd\xfa\x83\xc7\ +\xff\xa9F\x15\x81W*>5\xba\xfe\xf5'IG\x1f\ +\x9fw\x9b\xdb\xcd\xa7\xcd\xfe\xb0^_\xac5\xd5\xcef\ +\xe1Z\xb5\x0c7\x9bje\xd5\xd5\x1f`\xb5\xdd/\xd7\ +\xd5\xa5\xb7\x18\x0b\xfb\xdd\xd3r\x0b\x02M*\x0bf\x00\ +\x08w\x8dRE\xf4w\xd6\x80\x0a\x1b|\x0as\x10A\ +\xbfHc\xe8\xc0\xd4\x8f&\xf94\xb7\x8b!\xa7\xb1\x03\ +\xbdk}ps\xbf\x18\xad\xefz\xbbp!E\x17\xe7\ +H\xdf\x84\xb3}0.:h\xbb\xec\x87\x8e\xff\x0c\x16\ +\xda`\xa6h\xc2`\x8d\x1f=t\x0c1Y\x5c\xc1\x82\ +z\xb7q\xde\xf3\xd2\xcd\x1a\xf0+\x8d~\xec\x1et\x9f\ +\xd4\xed\xba\xde/\x9cw!g8R2|\x088Z\ +\xce#?\x10\xb0#\x860\x8c#l\xe2\xc7\xa4{$\ +\x9c\x10\xb3\x19p\x0f\xb8\x93\xf3\xa1\xed\x91\x83\xc9\x22\xe5\ +\xa2L\x00l\xd7q\xfc\x05\x1dy0q\x18h\x09\xe7\ +\x894x\x1e+\x8fxZ\x13\xeeh\xe8\x19!\x0f\x91\ +\xc3\xc9\x22\xb8*\x90%f\x98\x01\x97\xf0\xd6u4\x13\ +\x1e\x9a3\x19\xe8v\xc6\x99\x94\x91\xc4\xb0Mn\x16\x91\ +5\x84L!0\xd1#\xf1,\x06\x93\xf0\x11\xf8a\xeb\ +\xa2L\xc6\xaeYA\xee\xe6\xc78&l\x131\xca\xdd\ +u\xba\x5c\xac\xae\xaf\x5cE2\xe2z.\xe6`\x0b\xd7\ +u?\x22\x80\xc3;\x80u\xb7\xf4\x00\xd1\x819g\xdb\ ++\x95\x05\x08&\x0d\x8c\x90\xc88\xa1\x1e\xc1\xc5\xb1%\ +-2\x97\xae\xa8w\x10R\xcb\x13t\x09\xda\x13d\xde\ +{\x84\xcd\x98C\xa6C\xc1\xdf\x883\x80\xc2\xed)\xec\ +\x22\xd8\x94\x1b`U\x86\x12aZ8\x13\xa5\x87y\x05\ +o\x85I\xa1\x85\xac\xdaW~)\xf9\xf1\xa8\xff\xda%\ +\xbf\xf0\x09.\xb1\x9b\xec@\xeco(CGh(C\ +\xf2\xd3\xccg\xc2\xb4XG\x0a\x5c\xd2\x8e\xee\x89T\xb7\ +^\x90K\x17MC6\xae\xb9V\xcb\x8f\xd8\x8a1\x0a\ +T3\x0c\xfc\xf7\x9d\xee)[\x0a \x87\xb2\xa3\x10E\ +\xd8\x89\xcf\xe3]b\x9c\xf3\x83-\xfe\x84\xfd\x8c\xbf\xa2\ +#\xf4y\x0f?\xa22?T\xf9\xf6\x11\x9a\xa9\xea\x90\ +\xb0\xc8\xce\xf8\x94\xaa\x18\xc9\xa5C\xcb\x18!C\xe5\x0b\ +\xa2\xdf\x05\xa6\xbd\x9bh39\x97\xde[\xa4\x97\xce\xed\ +\x1b9\xa3\x09n\xce#U\xd0*\xc4\x94\x17D\x89\xaa\ +\x88\xdc\x22\x9a\x8c[\x14\xc9\xa1#4\xeaR\xe0\xa0\xcf\ +\x17\xbc)\xcc\xe1rDZ\x05d\x82\x05\x80\xc2@I\ +\x13\xe5\xda\xb1\xaa-\x05\x10\x1d`\xc0#\xa6\x84\xb2O\ +D\xf0\x8a\x9f\xa2z\x8bbt\x0b Z\xf6\x81\x8f0\ +L\x14#\xa1\xa1]\x81\xe0E\xe2\x04\x00\x9b\xb3b\x8e\ +\x15\xb4\x0dF\xab\xa6$R\xc23\x09\xa6\xc23n\xe1\ +\xc0\x01\xeeT\x85\x94\x19z\xd3\xfeB1\xdaV\xa9\xd7\ +\x8d\xcaC\x88\xbc\xa1\xd9\x87\xe8\x93\x04J,\x08v\xac\ +\x1c\x16\xa4\x15\x1c\xa9\xd2\x10\x9dV\xc9\xa3\x16O@D\ +\xa0\xb4\xad\xe8\x90*\xd3\xf9\xbcs\xc7\xd7\x83\x9b+m\ +\xaa\xba \xe1Q%\xa4\xdaX\xb5\xbd\x5cILH\x85\ +T\x81P!\x0bMpU\xdaT\xfd\xb00\x13 \x02\ +\xde\x88\x10\xf0\xa9+\x9aj\xd7\xb5v\x92\xf0\xf4\xa9\x88\ +\x09+\xab\xcai\xb2\xd4\x8d\xf1\x12\x81\xa9\x9aF\xe8)\ +R(\x8c\xff\xd4\xf1!v\xed\xa9\x04\xa7rj\xc5i\ +\xa5\x0b\x19\xad\xa2\xd0\xd3\x5ct^cfzU4\xad\ +Q/\xae\x04K\x04^@mB\xb9;\xff\x0dc\x9c\ +\xf7\xc5\xbbh!#\x1eQ\xb5\xf3b.\xabU\xe7\xa3\ +\xb5\xb8C\x15\xaf6\xbc<\xb2\xea\xcc\xdcL\xf4\x89\xdc\ +\xb1\xd0`BN\xd1\xedJM\xba\x82\xbfj7D\xec\ +\xc5\xea\xc9\xc6C\x05\x8b\x1cL\xd0\xa7\x9a\x9b)1\x91\ +\x0f<\xb8[$\xe7\xcc8\x80z\xf2np\x0d\x98\x00\ +\xb7pt\x98\x00\xd8\x1eA\x1e\xdc\x02wV!\xbc\xb0\ +OU\xbb`\xaf\xda\xcf\x09\x19\x1a-++\x88\xf1@\ +\x22\xa88\xf0\x0aS\xf9\x9c7x\xe5g+\xdeH\x83\ +7*^\xbc:\x956\xc4w\xb84|\xd5\x09$\x80\ +WU\xc7\xab\xf5\xd2.PP\x8fO\xa8S\xed\x90X\ +&\xf5\x11\xfbz\x1b2\xac\xe2\xb6dEl\xbbd1\ +\x5c\xdaA\xd0a\x96\xaa\x86z(\x9b\xf2\xed\xcb\xe9\x85\ +\xf8|\xfc*\x8e\xb8T\x10\xbf\x03Z\xc3\x08\x93\xdd\x00\ +\xbc\x07\xde\xfet\x91\xde\xc1H'\xdb6\xf3R\xb3\x03\ +\x87=\x84*\xe7\xc3\xb1_=\x1f?-\xcf\xcfG\x08\ +\x82L3\xb3&] 0\xc4@\xf5t7[\xfdC\ +\xfek\xc2\xea\xbfE\xec\xf7\xe1\xf9|\xbe\x0a\xfd(\xda\ +\xfb_\x84~\x97q\xde\xe8\x17!\x8f#h9\x0b@\ +Xd\x00 \x85X\xe0\x82\x85\x8c\xb2`\xd8\x99Ii\ +L\x0cV\x89\x90\xa21\xe2AA\xbc.\xd2\x8b\x00\x85\ +h,\x92\xc0\xc6\x91\x10\xeb\xac\x8b\x91\xe2\x11\x89>\xa2\ +'\x88\x1b\x97\xa7A\x90\x1d\xe2u\x07Y\x16\xdc\x81\xf4\ +\x16\xc4\xea\x1c\x16\xc1\xa2d\xa6\x13a7DP(\xe4\ +'\xc5\x8cV\x15\xb6\xf0b\xb7I\xcf\x00\xd0IHD\ +i\xb8\x14\x03;r\xd6\xa2[\x05\xbc\xf0!5:f\ +\x1c]h\xd4FU\xf1\x86\x04\xc9\x18\x89\xc9\x86\xc0\x1e\ +<\xaeGBI\xc42\x18\x84\x80!\xa3\x0e\x9b\xdf\x10\ +&g\xff\x0aa\xfa\x15\xe2.\x8d\xc8M\xf4U\x00w\ +q\x01\xa4\xa4\xd8\x11-Hj\x94\x96A\x07@\x1d\xd6\ +^g\xc0H\x16\xf7\x84\x98N8\x19|N\x04Z\x0b\ +t\x9f\xe4\x17D\xe5\xf1j\xcaho\xc1\xe2\xc5b\xdf\ +Z\x7fz\x84\xc5_g\x9b\xffm\xb3-\x83\xb8x\x0c\ +\x0f\x81k\x038\x04\x96\xed\x18\xda+5-\xc8\x13o\ +<\x1b\x1f6[\xe0P\x0c,\x82\x1c\x988x\x9cL\ +\xb15\xe6-\x01\x19\xfe\x8f\xad\xcd\xafR\x8a\x12\xe8\x1c\ +\x1b\xdd\xc8\xda\xdb\x0e\xac\xb0\xf2\x10\x22\xc7)\x96\xf3\x1f\ +\xc6\x1b\xc3\xae\xc8\xa8\x1e'iX\x08\x8cY\x00\x9c\xb8\ +0C\xf0#w\xb0\xa2\x85x\x00\x85\x8d\xb3*\xb0\x1a\ +e@@P\x86\xeb\x8e\x9d@\x813\x10v\xa0\xe4\xd1\ +\x00BI\x22\x99\xe1h\xaf3:\xfd\xc6EjX\x8c\ +\x03\xf1\x87y8\x0e\x14\xf1\x90\x88\x90&\x1c-\xb9\x9b\ +`v8$\xc2\xd0QD\x88U\xe5`\x91\xeb&\x1a\ +\x8b9m@\x04\xf9\xa7Hq\x8e\x7f<\xe6\x1b\x94\xe9\ +\x01B\xd1A\xfcT\xc7n\xfch\xc1\xc0ROp~\ +\x82\x17\xc9Q9#\xb1\xb4s\x9c\x82\xbb\xe8\x91\xa5\xe3\ +@X\x94#\xf5ly9\x00\x80X\x8c=^CY\ +\x16V\x0b.\x1b\x98\x81\xe8\xf0\xafu\x10\xa0\xf0\xf0\x86\ +\xfd\x01\xc3\x93\xca\x1a\x10\xefh\xd4\xe0!tI\x88\xb3\ +!X?i\x13\xf5\xe6\xc5m)\xcf\xc6\xc8\xc9#\x13\ +h\xbb\x04\xce-\x92\x10\xb7\xc0\xdd\x9d\xec\xc4\x89\xb0\x9c\ +\x98Nm\xf3u(\x8f\xbfq(\xc7E4\xe0\x0b%\ +\x842\x10Y\xb2\xb1\xa2f0\x10\x12\xba:c\x10\x15\ +\x08EI\xade\xce\x81\xc6\x06\xa7\xca\x8d\xc4(\x14\xe0\ +\xa2?(\xb9\x0dB<:l]\x81,l\x1al\xec\ +*\xa3\xd3`\xc9\xa7\x93\x1d-\xa7\xeb\xd5\xfed\xe7\xec\ +U\x1b\xa3'\x9f\xcc\xe8r\xd9\xbd\x85!\x0ab\x157\ +\x02=9\x0f\x91\xb0\xc4:\x96\xce\xcb\xe7G)p\xec\ +\x8e(\x90\x87\xb7t\xa1\xff\xfb\xf5\x0a\xff\x7f\xdeD]\ +\x22(\xe6E\xb6\x06\xf36\xc0(\xf8=PVj\x88\ +60)I2\x95\x1b\xd2.J g'\xe9M\xfc\ +\x85\x81\x00\xdb\xaf^Q\x81\xd3I\xe0] %*O\ +\xb0\xe2\xb9j\xef\xea\x13=\x1f\x02\x15s\xc6.:K\ +\x94\x98\x9b\x8fG\xd3\xc1\xf8y\x06m\xe4\x14W\xc0\x1f\ +\xaa\x84\x19\x0b\x84D\x18\xb6\xd0\x99\xbd\xa4\x86FL\x07\ +\x8e\xdey\x86\x0c\xbdJ1\xa8P\xe7\xa2\xa19A \ +j\x8d\xecx\xdf\x9a\x09\xb9\x91\xc22\x10\xb0\xc1W\x1b\ +%\x9a\x1a)=\x15\x14\x95fj$\xf8\xe9\xa2\xf7\xcb\ +\x86x\x1b7H\xca\x8f\xd3[\xa4\xa1\xcb\x94\x22Y\xbd\ +h\xde^I\xd03\xa9(i\x86\xb7\xb25vD\x91\ +\x22i+\x82\x8c\x12#~\x88\xaf\x82M\xa1\x15\xb1\xc5\ +y\xb0\x8c\xb1\xe1?J7\x0bc2\xe4\x81\xa2\xd7\xc1\ +6\xcd:_\xc47\xcd\xf5\xd8tO\xd20|-n\ +\xb2\xea\x19\xdb\xe8\x15l\xa7l\x1c'\x1d\xde\xe2I\xc4\ +$6\x84B#t\xd1$\xb3\x95\xacMY\xa1\x88\x1d\ +\x01\xdd\xb2\x96PH8\xc3\xf99 O=\x84(#\ +$`b\x02\x02\x9d\x22si\x90<$\xab7%X\ +Dw+\xa8\xb7p\xddCg\x0az(4\xdf\x13<\ +\x95\x8ej\xd7Y\xc9\x89\xc6\x02\x06\xc4\xaee-\xa9\xb0\ +\x22w\xe8\xc4\x0f\xcd\xb4\xa2\x08\x89{-;%\xed\xa6\ +\x9a\x12\xf9\xfaJ\x0f\xdb}\xf6w\xd8\x15U\xda\xd4{\ +\xe7\x16{\xdc\x02`f:P\xcc\xc8\xf6FY_v\ +p\xa6QQ\x15,g\xe7\x03\x9e\x94\xe3\x18\xc66\xde\ +LyNX\x90ww4\x5c\x8f\x0d4\xf3\x93\xf3\x84\ +\xe2\xc2\xb14[2B\x17\x1d\xbb\x02\xfd,\xf2\xca\xb6\ +\x10%\xb6\xbcr\xa1\xb4a\xc8\x88\xe6\xea\x85+\xb4\xc5\ +K\x09\x01\xadZ\x11\xa7)\x96\x99\x95\xb6\x1a\xdd^\xcc\ +eQbD97\x9a\xe4R\xf5\xe6.;\x1e8\xce\ +6c\xa3l!\xc4\xcb<\xc5\xf2\xdb(<\x05{\x91\ +b2\x0bxxTii%O\x0e\x12\xc6/\xe5\xf0\ +\x5c\xaakb\x0d>\xc0g\x0c\x0caI9\xb5m9\ +\x04\xd3BD\xa4k\x9d\xdbb\xa6\xc1\xc9\xf5\xca\x92\xe6\ +^\x86NA\x02\x90d~.X\xb6\xe2n\xba\xc99\ +I\x9d\xb5\x17/\x5cWx\xa7\xa9\xc1\xb04|\xd1\xc1\ +\xe0\x06m\x92\xe4\x1d\xa50\x91\xe9\xa3wGI\x0b\xea\ +\xb6\xe6\xd19\x7f\xe1\x1f\x11Z\x9d\xc2\x02-\x1d\xc1\x82\ +\x15Wq\x9e\xc4\xed\x15\xe7\x08\xf6\xcd\x13\x17Z\xd4g\ +q\x8fD\xe9\xb1Q\xe0\xab^w\x14|\x95\xcer\x85\ +\xdaAa\xe8\xbc\xa8J\xb1\xd4l\x10\xc5\xe1.q\x84\ +4\x89w\xfah\x98\x02\xa8,\ +\xa5\x12D'U\xb4\x05.\x05PmF\xee\x88\x8aO\ +\xe9\x06\x1d\x98\xdb\xf6\xa5\xe7l^\xeb\x10\xbc\xa9\xa0\x93\ +\x0d\xec\x9bp\x89\x8e\xda\x0aOhc\x16\x88\x95\xc7\xeb\ +6\x09\x0fy\xaf\xc3\x5c]CI/\xe3\xce\xad\ +\xe5QL\x8cM\xf8^\xfd$\xba\xa4\xa6]&f@\ +J\xca\x92\x0d\x12\x9cH\xaa\x193\xc0L&\xcd+\xcb\ +\xd9L\x9b\xc6([B\x14\x1d8R\xb6\xa2\x14\x84\x81\ +%\x0a\x93|\xbc\x10\xa7Mj\x8a\xc3\xa2\x8a\xa2<\xa1\ +\x1d\x14\x17\xb4KP\xaa\xa9\xfa\x09\x12\xab\x97\xf5Hw\ +\xb6\x92\x8bI\x87\xc6\xd1\x0a\x93\xe8\xe0:\xd4/U\xb4\ +E\x13\xc9\xf9\x95\xe4b#\xa6\x1d\xaf\xa7+\xfd\xdf\xb2\ +\x22\xe4\xf4\xb3\xcd7\x87N\xa7\xd7GO\xbfd\xab_\ +c\x96\x1e\xbf\x13\x8a>&|\xf5\xee#\xbe-\xa4\x04\ +\x8b\xbe\xfe\xee\xb8\xdc\xcd\x8c\xfa\xde\x9d\x0bJk!\xd2\ +\xcf\xd5\xb4Ie\xe3E\x87x\x11\x5c@h\xaej\xcb\ +&E\x16\xd4\xa6w\xf3\x12v\x93k\x10@\xbb\xba\xb6\ +4\xa09B&\xcf\x19\xcb|\xb9|\x8f]\xe7ZN\ +o\xa3c\x99\xc5\xe2\x12NYpF\xbe\xec\x22%`\ +\xd7=\xbbfa\xa9p\xd7\x04\x88\x9e0f\xce=\xe8\ +\x09S\x1c\xe2\xd5\x09\xfbZpP*\x0c\xafzvM\ +As\xf3\x11\x84\x94\x91\xd6O\x07&\x95\x98vR{\ +\x8e+6S\xf0\x1d\x5c\x9e\x96U\xe7\xd7\xee\xc0T\xa7\ +\xea\x8a\xe6\x0b\x8eRs\xa8_c4\xb5\xd9\xf1\xba\xa3\ +\xbc\x06\x94Zj\x0a\x89\x9cs\xf4\xf5\x85\xd4\xfbX\xaa\ +\x99\xad\xed\xec8=C\xc5\xdbp\x8d\xd1\x05\xdf\x92L\ +k2\xca\xbd\xa6\xe5\xe1myz\xf9^a\xf2u@\ +S\xd9\x0d\xfc\x09WmN\x8cR\x85x\xa9S\xacq\ +\xdb\xa4\x1eD\xf1\xa3\xd5\xbd\x96j\x99\xe7\x0a@\xe6\xbf\ +L\xc7\x17C\xceF\xd6\xb8\x83~\x18\xe1\xb4\xe2.\xa7\ +\xb1\xbc/\xe2\xe9Z\x0d+\xc4\xd6R\x17\xf9\x18d\x18\ +\x870\x8c\x85\xa3\x0c\xb3a\x9c7\x85\xa6IR\x0er\ +\x5c\xac\x8c\xa1J|\xad\x1e,\xc4\xbf( \xef\xb4v\ +\xa6\x1e\xa7\x94\xbbO\x9e++K\x85v-\xa5\x9cv\ +\x08\xfdj\x1d7Q\xa0-\xc8a\x12h}\xbb\xf0\xb6\ +\xd4\xe7 D\x85\xbc\xf2RnR\xee.\xe5\xf0\x8ap\ +\xaam\xbel\xbfn\xb0\x86\xff\xc1\xfb\xb5w7\xf7\xf2\ +\xa3\xb5\x00\xff\x80\xfa\x9f\xb4\xbfK\x00\xd4\x88\xb92|\ +\xcf\x06nPJE\x11Q\x90\x83\xe9\x86N\xca\xf4\xf0\ +]\xc5\x80\xad\xd1\x0f$s\x12\xfa\xda\x1c\xc4<\xe0/\ +)\xc32\x81\x8b\x0c\xaa\x962\xa8f\xa5\x0cN\xca\x0a\ +\x86\x10\xda:!.\xe4\xe3\x11\xf6Z\xb2\x95h]\xbe\ +\xa1\x00\xedX\xaa\x0cy\x09\x942\xce\x11\xb3c\x17\x86\ +\xecS\xe3\xe8\xb5\xed\x9f&\x1fY3\x02\xd2\xf5\xd7\x83\ +\xff\x8d\xc3\xf2\xa6\xbbr\x9ax\x08\x7f\x0f\xe8\xa8_\xf8\ +\xfd\xf5\x1fr3:F\xa4pJ\x84\x8e\x08|J\x5c\ +{\x02|\xe1x\xb2\xd6\xab\x0bBD\xcb\x82\xf9\xa2T\ +\x18\xf1\xa9\xb0\x9e\x1f\xa0\xbaM\x9b\xa8\x06\xd4S)\xfb\ +E[^\x22a\xd5&\x01\x90J\xc4\x18+\xd2d\x7f\ +\x1bK\x8d\xd8\x13N\x1c\xb13\xcb\x83\x1f\x07S\xe3[\ +3\x82\xda\x95\x89\x91rv\x9c\xf2\xe3\xf7\xa5!R\xa1\ +3M\xab\xa5k\xb5\x1cU\x01\x08\xe7\xb9\xfe>\xabo\ +\xce\x15\xbd\x96\xb3\xaaJ*\xd7\xe6\x8f)\x0aM\xc4\xb6\ +\xc6\xd1\xd3\xa5If\x9a\xef\x89@\xf0B\xa7\x17\x5c\x18\ +.H\x18\xb9\xda\x87M\x8bh\xf2^F\xa9\xc8vr\ +\x8b\xa6\xa8\xb6\xfd\xf4\x05\x14(o\x95\xe4U\x10>\x89\ +\xda>\x8b\x90D3\xc6\xebvI[\x92\xfe\xa5\xc0d\ +\xcc\xd3\x8f\x1dJ\x8fXD\xce\xe4\x02SY4\x93\x98\ +\xfaR\x06\x0b\x01\xe9X\xed\xa5\xcc\x90c\xf1j.]\ +\xb7\xe5\x8d_\xd1\x19\xde\x8e\x17\x9fD&?\xd5!|\ +y\xa6\x5c\xaf\xd5\xc1\x17\x1d\xbb\xc93\xc3\xe0[\xfaA\ +<\xd6\xbck,\x93\x8a\xb7\x08,7\xfc\x19(\x90q\ +\x9c\x92H\xa0\x18\xc5\xe9-M)Lf1\xa0\xc2a\ +Ta\xad\x84\x5c\x08\x0c\x87\xd6\xf3r\x9b\xe9\xe7z\xad\ +\x0dDuK\xf3Rna\xe9\xc6\x94\xae\xda\xfa\xf2T\ +Hg\xac\xbc]\x18\xe4UcY\xa4T>\x17\xec3\ +d{\xc1\xe8\xa4\xd6\xb9|?X\xaa\xa1\xe5\x8a\xc5\xc3\ +\xd6\xe1R\x1a\xaa\x18\x92\xcf\xf9\xe4sD\xf6,\xea\x99\ +P#\xb4\xef\xad\xf8\x16r\x9e\xaa#\x80\xee\xd4\xe1\xd2\ +\xc0j\xc7\x16\x0f_\xf2`\xfc\xad\xa0\x0ak2\xae\x91\ +\xd6r\x9b\xe2o\x88-!\xb3\x96\xcbKx)[7\ +\x17S\x85t\xea\xfa\xb9\x86r\xfa\xcd#[)AN\ +\xa3\x1cM\x1b\x17h\x1eEoI\xb2n\xc2\x18\x9d\xdc\ +\xb9\x9eX\xd6\x15\x94 !&\x85\xf0\xaco\x18_R\ +\xd6\xde\x9eXUx\xd1 \x93\xe6kfr\xfc\xc5f\ +R\xfe\x13\x0a\xe8$\xbd\xc3\xff\xba\xc1\xfb\xaf\xfe\x02p\ +X[+\ +\x00\x00\x0a\x1d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs6\x22 />\x0a \x0d\x0a\ - \x0a \x0a\ + \x0a \ + \x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a B\ -us\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xa3\ -\x00\ -\x00&\xfax\xda\xdd\x9a\xed\x8f\xa3\xb8\x19\xc0\xbf\x9ft\ -\xff\x03e\xbf\xec\xaa\xc1\xf8\xf1\xbb\xd3dO\xea\xadN\ -\xba\xaf\xedU\xfdX\x11 \x19\xba\x04\x22 \x93\x99\xfb\ -\xeb\xfb\x18B\x02C2\xda\xdbI5i\x99\x1d\xed`\ -?6\xf6\xcf\xcf\x9b\x0d\x8b\x9f\x9e\xb6\xb9\xf7\x98Vu\ -V\x16K\x1f\x08\xf5\xbd\xb4\x88\xcb$+6K\xff\x1f\ -\xbf\xfd\x12\x18\xdf\xab\x9b\xa8H\xa2\xbc,\xd2\xa5_\x94\ -\xfeO\x9f\x7f\xfca\xf1\xa7 \xf0~\xae\xd2\xa8I\x13\ -\xef\x905\x0f\xde\xaf\xc5\xd7:\x8ev\xa9\xf7\xf1\xa1i\ -v\xf30<\x1c\x0e$;\x16\x92\xb2\xda\x84\x9f\xbc \ -\xc0\xa6\xd8\xb8~\xdc\xfc\xf8\x83\xe7y\xf8\xec\xa2\x9e'\ -\xf1\xd2?\xb6\xd9\xed\xab\xbc\x95M\xe20\xcd\xd3mZ\ -4u\x08\x04B\x7f \x1f\x9f\xe5c7\x82\xec1\x8d\ -\xcb\xed\xb6,\xea\xb6iQ\x7f\x18JW\xc9\xfa$\xee\ -\x86t\xe0\xad\x14XkC\xcaB\xc6\x02\x94\x08\xea\xe7\ -\xa2\x89\x9e\x82\x17mq\x9c\x97\xda2Ji\x88u\x03\ -\xd1o\x14\x9b\xd7Hv\x87\xbf'\xf9\xbe\x80\xd4\xe5\xbe\ -\x8a\xd356LI\x916\xe1\x97\xdf\xbe\x9c*\x03J\ -\x92&\x19\xf6\xd3\x83\x1d=wD\xbb\x88\xb6i\xbd\x8b\ -\xe2\xb4\x0e\xfb\xf2\xae\x83C\x964\x0fK_\x98\xee\xf6\ -!\xcd6\x0f\xcd\xf9\xfe1K\x0f\x7f-\x9f\x96>\xf5\ -\xa8'\x0c\xfe#\xd4]\xd0Ug\xc9\xd2\xc79\xb1\xa3\ -\xf0Yq\xfa\xfa\xe3\xb3\xe6\xa7*J,#\xdc\xfb\xc8\ -\x04\x95R\xa8\x99\xc7(\x98\x80\xf2\x00\xe0S\xd7\xa6\x9f\ -\xe6<)c7\xec\xa5\x1f\x97yY\xfdkSe\x09\ -q\x00?;\xb1E\x92\xae\xebV\xbe\x1b\x85\xbb\x15\xbe\ -\x17v\x95\xa7>\x5c\x07\x89\x9b\xc4@t\x15\xd5\xc7\xc9\ -{\xde.\xda\xa4m\xf7K\xff\xc3\xba\xbd\xfa\x9aUY\ -%i\xd5\xd7\xa9\xf6\x1a\xd7\x95\xc83k\x9e;;\xe9\ -\xfb\xef'\xec:>\x09\xd0+\x02\xf5C\x94\x94\x87\xa5\ -\xcf&\xb5\xbf\x97\xe5\x16;f\x04\x844\x9cO\xeac\ -\x5c\x12\x90\x843!5Lk\xf1\x99L\x13\x03\x9a\x82\ -\x98\xd4\x22\xd7\xbd\xb3\xa5`_d\x0d\xea\xea\xeei\xda\ -\xc1\xbe\xaa\x9cD\x1e=\xa78\xfd\x0d\x17\xe2\xf4\x94\xfa\ -\xa1<\xb8\xb5X\xfa\xeb(?\x93\xbc\xde\xd9!+p\ -\x96\xc1Q\xd3\xc0(~M\xa4\xd7>\xa0L^\x93\xc1\ -\x89K}\xad\xb2\x9d\xf7\xb5\xcam\xf4\x94m\xb3\xdfS\ -\x1c9\x9c4e\x9b6Q\x125\xd1@?\xfa\x22\xdd\ -i\x1a\x0a\xa1O\x98\xff\xed\xcb/\xc7[,\x88\xe3\xf9\ -?\xcb\xeak\x7f\x8f\x97\x13\x89V\xe5\x1eG\xef\x7f>\ -\x97/\x92x\x8eV\xbc\x8d\x9a\xcf\xd9\x16W\xdcy\x80\ -?\xa3\xd1.\xc2s\xc5X\xbay\xde\xa5\x83~\xbb\x9e\ -\xab\xb4s\x08\x17]c\x12o3\xd7*\xfc{\x93\xe5\ -\xf9\xaf\xee1\xfd\xf4\x06\xddfM\x9e\x0eJ\x17\xe1q\ -\x0e\xfd\x1c\xc3\xe1$\x17a\x0f\xa1\xbb\xdd\xbcD\x9aG\ -\xab4_\xfa?G\xbb\xc8\x9b\xea\xdf\xa6*\xf7\xbbm\ -\x99\xe0x[\x0d\xf2\x07t\xdb\x82S\x93\xa6\x8a\x8a\xda\ -qX\xfa\xed\x9f9\x86\x90\x8ft\x16\x00\xa5\x82p\xc5\ -\xd8\xa7\xd3\x22lN\x13r\xdd\x8cTr\xd4\x0f\x22\xad\ -\xb2\xa7\x8f\x94\x18\xa5@q\xc9g\xd4\xfd\x9co\x19Q\ -Rk\xa3\xed\x0c\xb8&\xa0\x19\xef]O\xab\xde\xcds\ -\x8e\xe3^#\xca\xf9\xd1%\xfc\xa5n\xaa\xf2k:\xff\ - \x12\xf7s^\xdf\xc5.j\x1e\x06\x8bu\xb6\x9f\xb2\ -(\xd2\xb8)\xab\x00-\xe91j\xf6\x15vI\xfd\xa1\ -(\xce\xc1\xb5\x16\xec\xac\xcd\xeer\xfa\xe7\xa1\xddkF\ -\x15\xc3\x11R\xfc\x9b\x09\x90\x1e\xa0\xe7\x14\xda\x081\x0b\ -8Q\x0c`\xd8\xea\xd2\xa0\xddMP\xed\xf3t\x9e>\ -\xa6E\x99$\xa7i\xc4\xca\xb9\xf0\xe3mg\x97s\xd7\ -\xbb\xb2\xa0\xb4\xda=\xf55y\x86\x93\x88v\xf3\xd5\xbe\ -i\x86e\xff.\xb3b\x8e:\x97V}\xe9\xd1\xd3\xcd\ -a\xa8x\xb7\xa1#'t\x98[KC\xadrt4\ -\xb1\xa8\x09\x1e'\x94\x013|\x16\x18\xa2\x04\xb5\xdf\x0f\ -g\xbd\xb6\xab)\x1c\x83\x8b\xc15\xd3w\x06\x07&p\ -\x14\xa1\xd2hi%\xc2a\x9c\x80\x92\xcc\xd3\x84\xe1\x8a\ -+)g\x181\xb45\xdf\x0f\x87\xd2D\x9c\xec\xe1\x08\ -\x07\xfe8\x91\xf6&Gg\xdc\xccE_\x96D\x18\x0d\ -\xab*z\x9e\x17\x98Z\xfe\xf7\xd9\x9d\xa3\xd0Y\xb1\x10\ -\x14Hc\x19\xb2\x13\x9ah\x84\xe7a^\x82\xb6(5\ -\x07tJDi\xfd\xfd\xf0\x14s\xba55;.\x05\ -\x03s_\x9a\xa5\xe0\x92\xd9\xa1\xdb\xb4\xda\x99\x1d7D\ -+\x81t$\x11\xca\x18ng\x8a0F\xdf\xa0Y+\ -\xbd^\x0b51;t}\x96\xdd\x9dO\xb2\x17\xcc\x8e\ -\xa3\x1b\x92\xd2yl\x8eP\xa4\xf5\x80\xe3\xdaZn,\ -\xcc\x80X\xab\xdf\xe4\x93\xf4\xfa\x92\xc3\x96\xf8\x1c\xe0\xf7\ -\x05G_\x08g\x08\x04\x942\xad\xe6PLi\x19x\ -\x92\x00\x005\x1a\x15G\xa07\x7f\x8bK\x1a\x84\xe8\x13\ -\x1b-85\x82\xc2\x9d\xb1\x99\x063\x81\xeb\x08RQ\ -\xe8\xacJR-<\x8c\xfeV\xf2\xd6\xe3\xa0\x09\xd0\xb7\ -\xd0\x89\xd5z\xcd\xcd\xc4\xac8U\x1a\xb4\xbd3\x9f3\ -5+\xcc\xcf\x98\x11\xc0\x84\x0b\xf5\x82Ha-\x9a\x1a\ -\xfan\xc6\xcc\xcceD\x94\xc3\xad\xe1X\xc0\xb4\xd0\xde\ -\x9b\xe6L\xfd\xb1`D\x1at9.\xd0c\xd4\xd7\x5c\ -x\x81%NT2\x97#r\xa9\xe0-.g\xa5\xa7\ -.G[*\xf0qw\x16\xac$\xbf\xe4r\xa8\xb1\xb4\ -U\x1c\x0c\xebhb^\xecQ\xc2)\xd5\x80\x194E\ -NLy\xc2%F\x00\x88K\x13\x09\x98F\xbe,x\ -\x8b[r\xe1~\xa2[\xcc`<\x90\xe2\xbe\xf8\x8d3\ -\xc2.\xd8\x03\xba\x22.Y\x9bc[\xdc0\x19\xed\x19\ -\x1c\xbeT\x1a\xf7O\xa0\xc7\xc8o\x81Fc\x8a*\x19\ -\xbd\xb7h\x06\xc1T\xb98#\x06\xf3D\xe5\xf2D\x0e\ -DhT%T)\x03\x0a\xf3F\xa7:\x16y\xbd\xc5\ -\xf4Lr\xc1\xf48\xe5\x9c[v;>qV\xc5\xf9\ -\xf0\xac\xa1rGY\xa3\x10\xe5\x0e\x92p+n\x08\x87\ -\xf16\xd5\x9d?1\xe7\x90\xa55\xe6\x12:\x1c\xab\xfa\ -&\x04\xa7\xb1\xbdJD\xb1\x97D\xe0\x1d@`J\x07\ -\xdcN@p\x85\xce\x02=\x8b\xbc\x06\x22\xe07C\x81\ -i2&\x83\xef\x8f\x02C\x0eW\xa0^\xa2\x10m\xd2\ -k\xc6\xc9\xee\x08\xc5\xed\xb4\xc2\xae\x9c^\xbc?\x0a\xee\ -\xfc\xa3\xe6\x13\x14\x18d\xa8\xe0\x82_E\xa1oh \ -\xd3\x13\x9d\xf7@\xe1v\xcd\x98\xd4O<\x85ABV\ -Kv\x15\x85\xbc\x19\x8aK\xbb\xecwA!\xdd\xa1\x11\ -\xbcD\x81Y,s\xe9\xfeu\x14\x5c\xfe\xffY\x08\xee\ -\xf6$\xc8\x97,0G\xb3\x0a\xf5\xc5\x5cw\x16\xec\x86\ -&2Mh\xdf\xc5q2\xdc\xd2\x98\x89^\x08\xdc\xe8\ -\xe1>g\x9c\xe7\x8fX\xd8\x9b\xa1\xa0\xd4\x9d\xb6\xdcA\ -8eDY5\x89!\x80)\x95\xb0\xc0\xae\xab\x05\xdc\ -\x0cEd\xef\xc3qb\x8e\x8d\x8bo'\x8e\x93\xe2\x86\ -DJz=\xb3\x80\x1bF\x11\x87\xe2\x1e\xf4\x02M\x84\ -3;q\x17\x98j\x1bj\xc48\xbc\xbc\x80Ao\x08\ -\xc3$\xf7\x00\x83\xbbwA|\x0a\x03mG\x08x\xc5\ -Fn\xe80\xee%\xbd\xe0\x9a\x18\xc1&F\x82\xb2\x1a\ -\x98f\xaf\xb0\xe07d\x91\xde\xc5^\x84YBA^\ -\xca/\x04H\xa5\xec+0\xd4\xffJ$\xb9\xd5\x0e~\ -<\xe3n\x0foq\xcf\xa6\xbbw=\xdc\x10cAx\ -\x81;FS\x0a\xf7\xf5\x81$\x0c\xc4k{\xf8\xd6 \ -\xfe\x98\xc5\xdc|\x0f\xbf\x087\xa7/\x14\x10\xc7\xc5W\ -\xd8\xed\xcb\xb4\xd1zR\xb4!+AH~\xce\x13\xdb\ -k\xbc\x8fd\ -\x18\xb4\x9dn\x0a]\xd9\xc6,\xc3\xc6\x86oo^\xbe\ -X\xb4\xfb\xf5\xcb\x17A\x10\x1c\xca\xa2\xdb,C&\xc3\ -\xe3qc\xca\xf5\xa6;\x9f\xf7\xa59\xfcl\xef\x97!\ -\x0ep\xc0d0\xd0\xcbb\x19\x82\x0a\xdaK\x9d\xed\x93\ -\x9e\xdf\xdc\xb5\xb9\xde\x9al\xcaB4x\x855\xc6\xf9\ -\x8a'\x89\xba\x0e(\xa64\xc2\xf0\xc3^\x9fn\xb5\xe0\ -\xf7\x16~\xb3\xc2\xe6\x8d\xae\xc1\xddM\xd9vv\xedt\ -\x8d\xc0\xdaI\x08\x02n\xdal0\x00\x22]\xb7\xcd\xe2\ -\xf8p8\xa0\x81\x88\xac[\xc7^A\xbb\xd5\xb9i\xe3\ -\x81>U0\xd8\x1a\x15\x0c\x04\xd4\xda\x9d\xcb\xcd\x0at\ -\x18\xd4\x98.~\xf7\xe1\xdd\xc8\x8c0*\xbab\xa2g\ -f\xff\x90\x1c-S\x8cq\xfc\x85\xbfp|\xae\xa8+\ -V\x97D\x89R*\xc64\x06\xcc@\x22j\x1f\x9aN\ -\xdfGM{5\xbd\x9b\xe7\xe3\xd5\xdc\x19\xdd\x95{\x93\ -\xdb\xba\xb6M{\xc2d.]\x9c\xa5\xb7;W\x1dE\ -\x8a<6\x95\xa9M\xd3\xb51\xe4,\x0eo\xfc\x85E\ -m:]\xe8N\x1fo\x9f\xf2?\x90\x08=\xc9\x80\x14\ -8\x96\xfd\xf6\xee}\x7f\x04B\x9eg\x7fZw7\x9c\ -\xe1\xf1\x22\xfa\xd6\xee\xa0\xc8\xc2\x9b3}Q\xe4\x19@\ -^\xeb\xee\xa6\xac\xf5\xdaxP~\x02/\x17\xf1\x991\ -\x97\xee\x1e\xb6f\xa2\xf7\xa4\xd9\x99S\xf6.\xc6U\xe4\ -u\xe9o\xc5\xbfweU\xfd\xe2\xcd\x84A|v6\ -\xee\xbd\x1d\xa2\x89\xa7\xe1,\xe2!\xde\xd3\xb10\xabv\ -\x02\x86?\x12<\xa8[\x8c\x95\xec\xab\xb0\xf0]\xd4\xcb\ -n\xc1hn+\xeb\x96\xe1\xd5\xea\xf8\x84=\xe7\xd6\xba\ -\xc2\xb8\x81\x97\x1e\x9f9\xcfB5C\x00\xd0K\x03\xdd\ -\xde~4y\xd7\xd9\xca8\xdd\xf8\xa8\xc1\x85\x9e\xb5v\ -\xd0\xd9\x17\x19\xbb\xb20\x179c\xd3z'Gc\x97\ -\xd9\xedF\x17\xf6\xb0\x0c\xe9#\xee\xa1l\x80\x13\xf5\x83\ -\x852E\x9e\x12\x19\x86\x0d\xc1d\x8c\xd4c9b&\ -\x07j\xbb\xb1\x07\x1f\xd02\x5c\xe9\xaa5\x8f\x14~\xb2\ -\xb6^\x86\x1c)\xc5S\x91&\x8f\xf89L\xb0(\x15\ -H\x10\xceR\xf6\x98\x0da\xa6Hp&S!\x9e\xf2\ -\x16T\xa4\xea)&(\xa0O\xde\xac\xf5}Y\x97\x9f\ -L1\xc9\xdc\xd9\xf6\xce9h\xb6\xa8\xd2\x0f\x06\x12\xbf\ -f\x84_F<\xdf\x98\xfc\xce\xb8[\xab]\xe1\xb32\ -\x94\xdaVw\x9b^\x1e\xe8\xbf\xc2\xa0\xde0\xb9gr\ -\x131\xf9i\xd0\xb4\x82\x82\xf7\xc3\xbf1S\xa0\xfdU\ -6*ZO837:\xa8\x94\xd6\xf7 \xf4\xbc\xee\ -\x5cy\xff\x8a \xc0\x8ap!\xaf1|\x08J\x19S\ -\x09\x17\xd7\x11\xe5\x88Ixc\xf0*\x11\x91_\x99O\xd7\x1b\xff\x16\xb9]e2\xb37\x8d\ --\x8a7sU\xfd\xf1\xd4o\x19F\x80=\xc1#\xb5\ -*\x1b\x03\x15\x949\xbbk\x8a)\xf1\xa3-\x9b\x0c\xc6\ -\xa1q\x03\xf5x\xa8\xa0P\xbb\x8c\x0d\xb4BC\x9f;\ -\xa7\x1fN\xbe\xf4\xd4~4d$\x9c8\xee\x17B@\ -8\xa28\xe5\x90$\x92\x22,)\x94E\x00+\x13c\ -\xc6\xaf\xa1\x1e$')\x11\xd3[c\x15\x12&g\xf4\ -\xb1=l\x03\x11t\xd6E\xd0({\xdd\xed\x9c\x99\x8c\ -\xa4`\xfa\xa5\x01\xc01~\xbc\xc3N\xce\xf3\xd9`\xff\ -\xdb1&LP\xfa_b\x8c)&\xd7\x8c!\x05\x8d\ -\xc0\xd2 I\x90H\x15N\xe8\xb5\x07\x9b\x93\xa7 \x8e\ -\xf8?\x04\xf2\x22^\x8f\xdf\x01@\xd3\x97\xd5\x7f\x84\xfa\ -\x8a@\x8fp<`;\x8dv\x00V\xc2C\xd8\xf3\x80\ -\x9dQ\x9f\x01\xecV\x970f\x8f\x8b4\xab\xb5\x83Q\ -\xda\x06'\xc9\xe3t\x9c\x8f\x12\x1f\x04\xb4\xd1d \xf4\ -\xfb,AL\x08\xae\xa6\xa3\xe2\xbc\xc6\x90\x12\x82&\x13\ -\x8cagP\x8c\x12\x96P\xa1\xceTX\x16\x09\x85\x99\ -\xa1\x08O\xceT\xf70\x99\xea_\xc5Q\x8a\xbc(\xcc\ -Wq\x14X\x0a\xf2\x03\xe1\x18\xa9oD\x92'\x92\xa9\ -9\x92\x89\x82\x91\xc2\x92)\xbe'$\xa1\x1d\x13\xce\xbf\ -\x07\xc9Y{_@\x12\xbe\x00\x83I\xfe#\x01\x89\xbf\ -\x09H\x81\xb0\xa0b\xba\x15}I\xc2\xc2\x22T$\xe9\ -\x0cH\x0a\x13\x9b%)\xfb\x1e\x1c\x13\xa1o\xf3\xff\x19\ -\x8e\x11\xf9\xebH&\x0c1\xa5X2on\xc0W\xa5\ -\x92\x0a\xf1]%\x99K\xa5\xf1\xd7\xa0\xa4\x92?w\xc1\ -\xff[P\xcao\x81\x92R\xa4\x98 D\xcd\x8bR!\ -!pJ\xe9\x1cJ\x8c\x08\xe7xJ\x9dAy\xda;\ -\x0b\xff\xdf\x22\xfc\xfd\x0c\xef@\xd8N\ -\x00\x00\x0d\x9f\ +1;paint-order:no\ +rmal\x22\x0a id=\ +\x22path833\x22\x0a \ + cx=\x2295.063919\x22\x0a\ + cy=\x2261.41\ +296\x22\x0a rx=\x22\ +8.0538263\x22\x0a \ + ry=\x227.4785528\x22\ + />\x0a \x0a \ +\x0a\x0a\ +\x00\x00\x09n\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\ -\x0d\x0a \x0d\x0a \ - \x0a\x0a\ +\x0a\x0a \x0a \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0a \ +\x0a \x0a \ +\x0a \x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a <\ -text\x0d\x0a xml\ +\x0a inkscape:g\ +roupmode=\x22layer\x22\ +\x0a id=\x22layer1\ +\x22\x0a transform\ +=\x22translate(0,-1\ +004.3622)\x22>\x0a \ +?\x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x1cB\ +:role=\x22line\x22\x0a \ + id=\x22tspan8\ +37\x22\x0a x=\x22\ +19.152025\x22\x0a \ + y=\x221030.7521\ +\x22\x0a style\ +=\x22stroke-width:0\ +.45910597\x22>?\x0a \ +\x0a \ + \x0a\x0a\ +\x00\x00\x0c_\ +\x00\ +\x00y\xa0x\xda\xed][\x8f\xdb6\x16~\xcf\xaf0\ +\xdc\x97\x04k\xd3\xe4!yx\xe8\xcc\xa4\xd8EQ\xb4\ +@\xf7e\xb7{})\x14[3\xe3\xc6c\x0dd\xcd\ +L\x92_\xbf\x87\xf2M\x12%w\xd2N7h@\x03\ +\x93X$%Q\x1f\xcf\xf5#E_|\xfd\xfev=\ +z\xc8\xcb\xed\xaa\xd8\x5c\x8e\x95\x90\xe3Q\xbeY\x14\xcb\ +\xd5\xe6\xfar\xfc\x8f\x1f\xbf\x9d\xd2x\xb4\xad\xb2\xcd2\ +[\x17\x9b\xfcr\xbc)\xc6_\xbfyq\xb1}\xb8~\ +1\x1a\x8d\xf8\xe4\xcdv\xbe\x5c\x5c\x8eo\xaa\xean>\ +\x9b\xdd\xdd\x97kQ\x94\xd7\xb3\xe5b\x96\xaf\xf3\xdb|\ +SmgJ\xa8\xd9\xf8\xd4|qj\xbe(\xf3\xacZ\ +=\xe4\x8b\xe2\xf6\xb6\xd8l\xeb37\xdb\xaf\x1a\x8d\xcb\ +\xe5\xd5\xb1\xf5\xe3\xe3\xa3x\xd4u#\xe5\xbd\x9fI\x98\ +\x01L\xb9\xc5t\xfbaSe\xef\xa7\xedS\xb9\x8f}\ +\xa7\x82\x94r\xc6u\xa7\x96Ok5\xdf2*w\xfc\ +wl~(\x10\xdb\xe2\xbe\x5c\xe4W|^.6y\ +5\xfb\xe6\xc7o\x8e\x95S)\x96\xd5\xb2q\x99\xd5\xe6\ +\xddv\x91\xdd\xe5\xad\xbb\x1e\x0aw\x08d\xb7\xf9\xf6.\ +[\xe4\xdb\xd9\xa1\xbc>\xffq\xb5\xacn.\xc7\x86\xea\ +\xa3\x9b|u}S\x1d\x0f\x1fV\xf9\xe3_\x8a\xf7\x97\ +c9\x92#C\xa3}\xf1jy9\xe6\xc7\x80]\x9b\ +\xd38\xab]\xed\xfe\xf2\xf3c\x8d\x14\x1e\x84\x1d\xbd\x04\ +\x892_\xa8+\x7f5\x19\x81\x049\x95f*\xe9U\ +}\xd6\xe1\xd1\xe6\xcbb\x11\xfaz9\xbe\xbb\xfa\xa9\xda\ +\xfe\xb4X\xdfo\xab\xbc\x14\x01\xb67\xdc\xf0\xe26\xaf\ +\xb2eVe\xe1\xa4]W\x0e%\x0a\xea\x16\xdc\x86\x87\ +o\xfe\xb7o\xbe\xdd\x1d\xf1\xf1b1\xffWQ\xbe\xdb\ +\x1f\xf2'4\xc8\xde\x16\xf7\xfc\xa8\xe37\xc7\xe2\x8b\xe5\ +b\xce\x80\xdff\xd5\x9b\xd5mv\x9d\x87\xb1\xfa\x13\x03\ +|1;U\xb4\x1aW\x1f\xee\xf2\xd3Ew\x97-\xf3\ +\xdd\xc8\xf5\x8a\xefrq\xbb\x0a'\xcd\xfe^\xad\xd6\xeb\ +\xef\xc3M\xc6\xa3Y\xe7\xa2\xabj\x9d\x9f\x0a/f\xfb\ +\xde\xef\x9fm\xd6x\xb8\x8b\xd9\xe1\xd9\xeb\xa3e~\xb5\ +=\xc1\x12\x8e\x94<@r\x9b\x95\xef\xf2\xf2p\xa3\xe3\ +\x18m\xabb\xf1.\xb4\xfesY\x16\x8f\xea\x07V\xcb\ +\xb2\x1a\x1f\x9a\x15\xe5\x8a\x95\xedr\x9c\xddW\xc5\xb1\xb0\ +\xcc\xaf\xfe\x13\xc6T6K\xfe\xdd.\x19\xbc\xe2\xb6\xfa\ +\xb0fh\x0a\x96\x8d\xabu\xf18\x7fXmWo\xd7\ +\xf98\xea\xd8j[w\xedr\x5c\x95\xf7\xf9q\x8c.\ +\xee\xb2\xea\xe6\x84x\xb8M(1\xd6\xd3\xf8T\xcc\xa5\ +\x7f\x1dqw&\xfc7\xfaad\xf9\xdb\xd4\xd6_\xa7\ +\x8a\x05\xb1Q\xbc+=4\xfd8j\x5cd\xdf\xd3+\ +\x1e\xa7iy\xbf\xce\xe7\xf9C\xbe)\x96\xcb\xd7\xdb\xaa\ +,\xde\xe5\xf3\xafd\xfd\xd9\x1fNk=\x9a\xb3\xad\xbb\ +\xab\x1a\x17\xa9\xcal\xb3\x0d\x92\xc3\x0a\xb3\xc8\xd6\xf9K\ +)\xe8\xd5\xaet\x9dU\xf9\xcb]w^\x1de\x80\x07\ +\xb4\x1e\xa7\xdd\xe0\x86\x11\xac\xbf\x1d\x95#h\xc62h\ +\xe5\xee\x16w,?\x8bb]\x94\x97\xe3\xaf\xae\xea\xcf\ +\xfe\xdeo\x8br\x99\x97\x87*\xac?\xad\xaa\x82M\x01\ +K\x22k\xed\xbe\xb8x\xfbs\xbe\xa8\xaab\x9ds\xe7\ +\x82\xf4\xaa\xc3h^\x97\xfch}\xe5\xf7\xabe\xdeW\ +q\x1c\xc3\xd0\xbd\xe3\x8dzk\xb77\xd9\xb2x\xbc\x1c\ +C\xb7\xf2q\xb5\xe1\x8a\xe9\xde:)24\xd0\xe2`\ +\xb1\x94T\xc7&<\xfeG\xa0\x0e\x85\xdb\x9b\xe21<\ +\x09\x8fh\xb6\xde\xe6\xdd\xab},\x0a\x1e#-\x8c\xb5\ +\x0e\xbc\xeeV/\xd8\x06N\x09\x04\x81\x96\x18U\xf2\xd3\ +\x11\x0a\x00k\xc1\x0dt\x93\xcfwC\x0f\xc9\xa7\x83\x1d\ +\xa8\xbb\xcd\xde\xafnW\x1f\xf3\xe5i\xa4N\xf7\xbd/\ +KV\xcf\xe9:\xfb\x90\xf30_\x1bTv/I\x17\ +\xd7'(\xae\x8d\xb2G3p\xdd\xd4\xd0kc\x8d\xf9\ +e\xdd\xd22\xd2\xad\x89\x1c}\x17\x1c\xc2?\xc3?\xdf\ +\xb1s\xf8o\xa3\xc9\xa9\x83\xc5f\xc3BU\x94S\xee\ +\xeaCV\xdd\x97\xf9I\x0e::6\xdfp(\xd0\xb0\ +\x85\xa7\x9e\xee\xfb\xea\xa5\xeaW,\xb6\xca\xe5\xea\xfdK\ +V=\xa7=x3\xe1\xdeMNG\xca\x0b-=\x90\ +\x9b(\x14\xda\xa14\xf8\xaai\xf3\xdbO\xfd)\xbdo\ +`\xa4\x9cjU\x04\xaf4\x9aZ-\x9c$\x8341\ +\xfc\xc5)\x8bv\xa4\xa4pZ\xf2\xd1dJ\xc2h\x02\ +\xe5\xb1uj\x13\x13\xb61Yf\xcc\xeba#\x04\x8b\ +L\xda\xacm\x84@8\xaf\x8d\xf3H\x87\xf2\xf5\x8a\x9f\ +$\xbb\x9b\xbf\xbd\xaf\xaaf\xd9\xcf\xc5j3g\x8f\x94\ +\x97\x87\xd2\xfa`\xcd\x22W\xcd\xcd\xa1l\x99\xb1\x9a\x96\ +e\xf6\xa1\x1e\xa3C\xe9^\xb1\xe7\xaa\xed\xc0\x9e\x09N\ +\xdd\x07\xa7\x11`\x8cE\x9cL\x95\x11\xdei\xe3\xed\x88\ +G\xd7\x92\x92~R\x7f\x91\x9e \xa1\x19\xa1i{\xd0\ +\xd4J\x90\x93\x80,\x88\xca\x09\x0b\x06\xa4\x1bM=\x87\ +jV\xa3\x9f(\xc5r\xea\x14#\xfb\x07\xc7\xb3\xd5\xfb\ +\xa3\x1f-\xd8uq\x1c\xc6a\xfabq\x1e\xf2\x81s\ +\x9eaT\x5c\xcf\xa8\x18\x86\x87\x00\xb5\x99L\xd9\x19I\ +d\x896#\x8e\x12\x9c\xd5\xca\xe1\xa4\xb6\x1e\xe0\xbf$\ +\x11\xcf\xd7\xeb\xd5\xdd\xb6\x1dF\x7f\x08\xaeXZ\xefX\ +<[\xcfZ\xbe\x0f5\xcajr\xd0\x16\xea\xe0\x84\xd9\ +\x07+\xae\x83\xf6\xa0\xd7\xbe\xdbZ\xa1\x01\xa4v\x03\x83\ +\xa1q\x8aS\xdd\x87\xeb\xb1\xdb\xafw\x08k\xb7 \xb7\ +;\x98\xb6\xebz\x01o\x22pD\x9b\x94\x07mu\x84\ +lY\xdco\x96\xbf7\xb2\xc0\xa6\xd3\x90\xd2}\xc8J\ +d\xd1C\x8c\x90u\xc2x\x8d`1F\x16\xbc\xe0\x8b\ +\xa1V\xc3\xc8\xaa\xa7\xe0\xda\x94\xdc_\x85\xab\x16Z\x91\ +W\x00\xee\xf3\xe0\xca\xde\xc9y\xab\xb4\x89p5\xc2(\ +\xa5\xbc\x8a%6\x98^@\xcb\x91c\x0c\xac\x06\x81\x06\ +\xad\x833\x22\xfb4`\x97&\xcb~\x13\xb0\xe4\xa5G\ +\x06\xf7\xf3\x00\xcb\x86\x90$i\xd0=\x02k\x89MW\ +\x1f\xaeFP\x10X\xdfc\x0a4+\x80dK1\x88\ +\xebS\xc5\x95\xe87\xa1j\xc8\xb3\xae\xa1\xfb\x5c\xa8\x92\ +d\xec4\xf5\xa0\xca1\x80\x92*F\x95\xcf!k\xc9\ +\xf7\x98\x01\x13r'i\xcd\x19i\x95\xff\x17\xf3\x1a\xcc\ +\x80\xf6D\x1e~O\x5c/f\xd7\x87\x8c\xfd\xba\x9bZ\ +5r\x93F\xa6/\xa4D\x07\xa4'S\xb0\x0c#g\ +\x99\xfe\xd5\xb8\x9d\x8d)\xce\xc6\x8eL@'S\xc3\x86\ +\xf5\xe8\xbd\x81\x14V\x81\xe1\x94\xe7\x94\xdd\x5c\x94\x1c\x8c\ +\xbch\x8d\xba\x12(%G\x10M\x95\x09\xc2\xc0\x11 \ +g*-\x9d\xa8%\xc1i\xadm\xb3\xf4\x90o#?\ +\x83t\xce7\xbd\xc8>[\xd7>\x5cL\xab\xa6(\x84\ +\x87\x08\xbd1\xb6%<\xed\xd8E\xa1>\x86&\x9d\xc3\ +\xfd\xe0J\xc1\xdaNV\x22t#\x95\xd6\xd8>\xdb\x88\ +\xbf\xbe\xcbV\x9ca\xd7\x94\xc9|G\xcdlG\xa1\xb7\ +\xa3]\xcb\x8e\x9c6\x05\xa4\x0f{\x8e\xe6\xbcV=\xd8\ +\x93\xd4\x8a\xda\xd8\x1b!9\xf8\x06i{\xc1w\x1c\xa3\ +\xa3\xc3\x18|v\xc7\xa0\x8cn\xe5\xa3M\xf0[AN\ +'t\xac\xfd\xc4\xa0bq\xe8\xe9\x11\x8cu\xf63`\ +\xbf\x09\xec\xeb\xba\x89\xefbU.\xd6\xf9\x8b_g\xa7\ +\xcfX\x0fN\x7f\x08\xd1\xe8\xcf(`\xbbF\xb5\x9c\x8d\ +cB\x86Z66\x18_\xce\xd5\x14\x923\xcd\xa1\x0d\ +\xf6:\x94{N\xf1\x9a\xed\xcb@$%\x18k\x18[\ +\xbaP\x03\xc9\xb19'_\x1e\xba@J\x81\x8e\x931\ +\x97\x80\xec\x07\x12c \xad\xf4\xadHj/\x90\x8e\xe3\ +\x07\xa3\x12\x8e\xfd8\xba.\x8e\x1c\xe1zc[.c\ +\x0f$\x87\x8e\x06\x93@\x0e\x00ic\x13i\x91\x83B\ +\xd3\x05\x925\x1e\x893\xb0\x04\xe4\x80\x89\xb4=\xaaM\ +\xca\xc9\x08I\x16U4F'$\x87ld\xe4\xb69\ +\xc4\x03\xb2-\x1ep/\x93\xd6*\x84d%\x07\x90\xf4\ +] \xad0\xce\x1a\x9b\xbc\xcd\xa7\xe1\xa8bo\x83\x88\ +d\xa9\x0b\xa4aon\xc8\xfb\x04d?\x90=\x01\xb9\ +\x09\x13*\x18\x03\x89\xc6\xdb\x14G\x0e\xc6?2\xb6\x91\ +Jr\x1a\xac:Hz\x81\xd6Q+\x01N@6M\ +d7\xb5\xf1\x1c\xe7H-\xc1\xc6\xce\x06A{\xb4\x09\ +\xc9\x01\xb7-c\xe5\xae\x89~\xdfA\x92\x84\xd7\x1c\xff\ +\xf8gQ\xee>\xca\xfe\x8f\x1f\x00u\xd3D\xad\x85\x0e\ +f\xd2\xc4P\x92v\xd4\xa2\xc4\x12\x94\xcd\xa8<\xf2\xdd\ +\xda\x08v\xd0.\xca\x14\x89\x13\xc5\x00q\x92\xca!\xa9\ +\x9cR\x0c%\x12 A\xe4sl\x98\x05U\x90\xa0\x1c\ +\xf0\xde\x11\x7f\xa1-\xbb\x1dG\x9a\x22(\xc1zO\xe8\ +\x13\x94\x03\xfcE\x94\xe4\xb0\xadt\x06@Q\xccMZ\ +\xce\x15]\x92\xcaA\x06#\x8a\xcfY\xc393\xe4\xe4\ +;\xce\x18\xb5\x0d\xbe=a9\xe4\xc2\xa7\xddpH\xa3\ +\x00\x19\x05C,\x95\xdaXe\x12\x92C\x01z,\x94\ +\x8e\x93CrN'\xb7\xf3\x894F4\x8f\xc3n\x87\ +\x8cT\xce\xc7\xc9\x0ex2*\xb9\x9d!\x22#\xf6\xe0\ +a\x06\xc2Y\x1d#\xc9\xb9\x8e\x92\x98\x90\x1cb2\xa2\ +9\x88`)]\xe0\x85:X:\xc1\x96R{k\x13\ +\x96CdF\x1c\x0d)\xce\xb65\x82\x89\xfd\x8eQ\xce\ +P\xc2r\x90\xce\x88\x1dOX\xba\x05\x14-\x1f@\xe1\ +\x02\xd1\xe1\x93\xe39\x83e\x8cf\x98u\x00\x87\x18%\ +\xe2VJ\xed(Y\xccshF\xb98\x09V\xf3\xf6\ +\xba\xed\xbd\xff\xd1\x1c`\xfa\x14_\x9eC\xb3'\x87D\ +\xad\x9dT\xf1\xdc-g\xe3\xa65;\x9e\xd0\xec\xa2\xe9\ +bM\x97\xe0\xdb\xafc\xec\xd1\x04\x09N%4\xcf\xa1\ +\xa9\xe3\xe8\x88\xc8\xab\x88\x0b\x0e\x93\x8f\xceA\xcb;\xfd\ +J4\xfb\xd7\x16\x7f\x01\xb4z\xbc\xfeJ\x09R\x9et\ +\x97\x0d\x06\xcba\x13\xcb\xa6K`\x0e\x12\xeb}\xd3\xe2\ +\xdaqL\x891\x98FI'!\x819H\xad\xc7S\ +\xe3Z(\x94&J(\x01E\x98\x19\xb7I2\x87\xc9\ +\xf5x\xe1Kx#\xd6\xa2\xa4\x18\xcc0\xabFI2\ +\x87\xe9\xf5\xbe\xc5\xbf\xa08\x0c\xea\xbas\xa8\xdf\x8d@\ +L\x92y\x86`\xef3\x9a\xa09}\x8c\xd0\xe4\x80^\ +\x1ac\x12\x9ag(\xf6>E\xaf\x97\x0a\xfa\xd8\x05\x01\ +\xa2T\x98\xd0\x1c\xa4\xd9\xa7\xa6\x0b&\x0a\x05hMr\ +A\x9fN\xb4\xc7+\xd4\x8d\xd0\xca\xf9(\xd0\xf4a\xaf\ +\x86\xf6+\xaf\x09\xcb6\xd3\x1e\x91\x1d\xec\x81\xa4\xb3:\ +J\xcf\x19LM\x1e\xa5J`\x0e\x93\xed\xb1\x9a\x87I\ +^\x90*Rs\x96X\xef\xc8\xa7\xe0\xe8\x0c\xdd\x1e\xbf\ +@\x11\x88\xf50K\x11GG\x1a\xb5\xa7$\x9b\xe7\xc8\ +\x8e\x9e5\x84\x9c\x87\xa3\xea\x92\x1d\xa0\x05\xba\xb0\xc7M\ +B\xf3\x1c\xe5\x1e\xc5\xee$\xc09\xb0\xd4\x13\x1fI\x05\ +\xf4\x1cT\xdc\x17\x8c'\xc5\xfc\x11\x86M=H\xba\x1e\ +\xb7NJR\x92\xcf\xb3\xb4{\x9c\x0d\x81PJ\x19\xd7\ +\x9d\xfa\xd5Rx\x0e\x93|\x82\xf3\x1c\xef\x1e\x99\xcf\xb0\ +\xc1\x80\xeb\xec\xf5\xb5\x87S\x19\x0f\xc9\x17\x9d%\xdec\ +m7Bi\xc6\xd3\xc4p\x1aM\x96R\x10?\xc4|\ +t\xd9M`=\x07\x22\x19\xc5\x9cRH\x0b:\xa5\x96\ +\xc3\xbc{W\xc7C(Dhl4W\xc9\xca\xaf\xc1\ +%ns\x98u\xc7\x18J\x83\xdeD\x8b4Y*Q\ +u\xf6OJP\xb68\xf7\xae#\x0f\xcc\xbaF\x8b6\ +\x96J\xf4\xd6\xda\x04\xe5 \xe3\xde\xcd(A\x09K\xd4\ +3\xad\x06\xc2\x84=\xd1\x92\xad\x1c\xe6\xdbm\xac\xe1\xd6\ +(\x87:a\xf9\xc9l{\x977\x02#<\x11F\x9b\ +\x97\xb0\xbc\x1a\x0e\x93\x12\xa59\xcc\xb5w\xc9ap\x22\ +\xcc\x9c\xc5\x84f\xd8\x98\x08\x91RZ>\xc8\xb4c\xec\ +x\xa4T\xc6`\xcc\x18\x91\xd3\xdaS\x82r\x88h\xb7\ +q\x90\xce\xb9\x0ey\x15\x13\xc3\xc6\x822\x09\xcaa\x9a\ +=\x12K+P{\x17\xaf\x81s\x82\x03NH\xa9\xf8\ +9\x92\xbd\xcbbr<\xee@j\x84\x1e\xcfC(m\ +\xa2\x89\x86y\x0d\x17+9ho\x1d\xc5\x82\xe9\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0a\x0a\ +\x0a\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\x0d\ +\x22 />\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \ +\x0a\ \x0a\ -\x00\x00\x09~\ +\x00\x00\x0dN\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + id=\x22path2\x22\x0a \ + fill=\x22none\x22 /\ +>\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a \ + \x0a\x0a\ +\x00\x00\x05\xee\ +\x00\ +\x00\x15Tx\xda\xe5X\xdbn\xe36\x10}\xdf\xaf\x10\ +\xb4/\x1b\xd4\x92x\x15E\xd5N\xd1b[\xb4@\xfb\ +\xd2n\xafo\x8aD;jd\xd1\xa0\xe88\xd9\xaf\xef\ +P\xb6n\xb1\xbcM\x91.\x16h\x1d8\x10g\x86\xe4\ +\xcc\x993C\xca\xcb/\x1e\xb6\x95w\xafLS\xeaz\ +\xe5\xe3\x10\xf9\x9e\xaas]\x94\xf5f\xe5\xff\xfc\xee\x9b\ + \xf1\xbd\xc6fu\x91U\xbaV+\xbf\xd6\xfe\x17\xd7\ +\xaf\x96\xcd\xfd\xe6\x95\xe7y0\xb9n\xd2\x22_\xf9\xb7\ +\xd6\xee\xd2(\xda\xedM\x15j\xb3\x89\x8a\xce \xbb\xd1{\ +\x08\xc8\xbf\xee\xc5\xcb\x22O\x01\xd6mf\xaf\xcbm\xb6\ +Q.#\x9f\x01\x8c\xcbhPL\x8c\xed\xe3N\x0d\x8b\ +\x1e\x975\xea\x98\x9fY\x92\x16\xf9\xb6t\x93\xa2\x9fl\ +YU\xdf\xb9M|/z\xb2hi+5\x08\x97\xd1\ +\xc9\xfbSl\xd1(\xb8e\xd4\xc5\xde\x8e\x0a\xb5n\x06\ +X\xdc\x08\xa3\x0e\x92mf\xee\x94\xe96\xea3\xd1X\ +\x9d\xdf9\xeb/\x8d\xd1\x07\xfc=\x14\x9f\xb1~g\xa6\ +M\x09%\xb5\xf2\xb3\xbd\xd5\xbd\xd0\xa8\xf5\xef.sh\ +,\xf9m*\xb9\xb8bc\x1f+\x80F\x03\x03\xd6\x95\ +>\xa4\xf7eS\xdeT\xca?s\xaclZ\xd7V\xbe\ +5{\xd5\xe7h\xb9\xcb\xec\xed\x80\xb8\xdb\xc6I\x18\x97\ +\x89?\x88A\xfa\x83\x07\xee,\xe0\xeb}\xefqx\x0a\ +x\xfb\x18`\x12\xf2\x91\xf8(\xedL\xdf{\xa3EN\ +\x9e\xae!O\x81\xd9W*U\xf7\xaa\xd6E\xf1yc\ +\x8d\xbeS\xe9k\xd4~N\xc3\xa0\xad\x96\x14:\xda\xce\ +\x8e\x16\xb1&\xab\x1b\xc7\x1c(\x8b<\xab\xd4\x1b\x14&\ +WGi\x95Y\xf5\xe6\xe8\xceU\xcf\x01Hh\x9b\xa7\ +cr]\x06\xdb\xa7\xbe\x22\x5c9\x14\xae\xf6\x8e[\xec\ +\x80?\xb9\xae\xb4Y\xf9\xaf\xd7\xed\xe7\xb4\xf7\x8d6\x85\ +2\x9d*n?\x13\x95\x86\x82\x07&Bm\x9e\xc4\xfa\ +\xe6O\x95[\xab+\x05\xce9\xf6\xe2.\x9b\x1b\x03\xa1\ +\xcd\xc9\xf7e\xa1\xe6\x14}\x0e\x9d{\xfdF\xb3\xda\xe6\ +6+\xf4a\xe5\x93\xa7\xcaCY\x83\x228\xf5 \x9c\ +\xc4\xf4\x82E\xd7\x970\x22\xdc\x1f\xc8\xdf\x03\xd5\xf1\xa2\ +\xb9\xd5\x07\x17\x09d4\xab\x1a\xf5t\xb5\xf7ZC\x8e\ +0\x0d9A\x09eO\xd59t:\xc2B\x81HL\ +\xce<\xc9!:\x82C!0\x8f/\x05\x02\xf3\xb9\xb8\ +\xa0s\xd3/\xe9\xb6\xd9C\xb9-\xdf\xabb\xc8\xd4\xb0\ +\xef\xde\x18(\xcf\xa0\xca\x1e\x15\xa4y#\x11>\x11i\ +\xb9\x19\x90\xd80\xcc\xfb.\xb0\x19\x17\xe8\x86q\xc6\xfe\ +\xbe\xb4(:+\xad\x05\xf2\xbeu]\xff\x17\xf7\xef[\ +8\x01\xfe\x18\x99\x0c\xfe\xe9\xba\x06Ni\x13\x80\xa7\xf7\ +\x99\xdd\x1b5\xd0\xe0I\x89\xa55\x9c\xf7\xa3V8x\ +z\xf2\xd5\x057[W\xd0\x94M\xf9\xf0\x06*OP\ +I$[\x80w\x8ba$\xa0\xe2$\x04\x8a\x17\x14\x85\ +\x82\x12\x89\xe8\xd5\xb8\xe5O\xa3\xfe'\xde\x8f0\xc2\x02\ +O\x14\xeeP\xf2\x02NB\xc9\x91\xc4\x0c\xda\x0c\x8b\x99\ +\xc0\x88z2d\x84\x10\xc4\x17\x01\ +\x12\xe0\x82\xfcs\xc0{\x18\x9f\x9f\x81\x8f\x82&\x9fA\ +\x93\xe20q\xfdN\x00\x9a\x02\xda\x22#Hx\xc0\xda\ +\x041\x9c$\x0b\x8cC\xc6\x12\xf2$\x11\xff?\xfe^\ +\x98\xf3/$E\xcc$\x85\x01<\x09\x89)[\x04\x14\ +\xfaG\x0c\x84f\x1e\x5c\x22\x04\xa7X\xc4\x0b|lq\ +\xff%\x86\xab\xaa*w\xcd\xf4\x96\x0d\x07&\x0d\x11\x07\ +\x87\xe2)H\xe6\xc1i0\xa7\x89 SN\xbb3:\ +\x0ee,Q\xc2\xa7s\xdc\xd1\xeeZ\x07\x8f\x81\xcf\xec\ +B2h\x1c\xc4\xc1,\xd5\x87\x00\x8f\x08\xc71B\xeb\ +\xf5\x11\xe1\xa9n\x16\xf01){\xb4\x13,\x09\xe5\xf4\ +\x0cY\xa3\xf7u\xf1\x12\xb2?\x07Y8\xb4\x04K\x80\ +\x063\xc8\xa2\x18\xa8\xd7\xdf$\x07dE\xc8$\x8d\x09\ +\x8f\xcf\x91%\xd01\x00>\x8a/#\x8b\x9f\x83\xab\x94\ +\x9c\xbf\x08W\x1aR\x9cHL\x88\xf84\xb8\xc2\xe1$\ +$\xc7\x94\x9d\xe1\xcaB\x861\x96\xf8\x9c\xb1\xae\xf3\x92\ +\x98\x13\xce\xcf\x81\xa5$\x8cY\xcc\x05\xf9\x00e\x9f\x03\ +,\xa5\x08%\xe8E\xc0&\x12\xc9\x18\xc0\xfd4\xc0B\ +#L\xe0\xceN\xe8\x0cay\x02\xadk\x0e\xd7\xf6~\ + \xe5\x0ca9\x0dELc|\x99\xb0\xcfAU\xac\ +I\xf6B\xba2\xb8\xb7\xc2k\x9b\xf8T\xa8&\x08\xb0\ +\xa3\xc9\x0c\xaa\x92p\x8c\xf09\xaa0'\xe1<\x99C\ +\x95A<\x1cq\xf6\x01\xb6\xa2\xe7\xe0\xca9B\x05{\ +a\x1b\xa02I$\xf9\x98\xb8.\xa3M\xf7B\xbfy\ +\xfa\xea5zw\x19\xfd\x10\x10\x22\x14\x0b\x92\xd0E@\ +8\xc0(\x88\x94W\xfe\xf4m\x0d\xc3\xdb\xda\xe9\xfd\xce\ +\xad\xbat?O]\xbf\xfa\x0b\xc9v\x10A\ +\x00\x00\x07\x9c\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x18\x92\ +dth:1.33333337\x22\x0a\ + d=\x22m 37.559\ +322,153.62712 v \ +-8 h 56 55.99999\ +8 v 8 8 h -55.99\ +9998 -56 z m 28,\ +-52.66667 -27.30\ +894,-27.333331 h\ + 15.654471 15.65\ +4469 v -24 -24 h\ + 24 23.999998 v \ +24 24 h 15.65447\ + 15.65446 l -27.\ +30893,27.333331 \ +c -15.01992,15.0\ +3334 -27.619918,\ +27.33334 -27.999\ +998,27.33334 -0.\ +38008,0 -12.9800\ +8,-12.3 -28,-27.\ +33334 z\x22\x0a id\ +=\x22path817\x22\x0a \ +inkscape:connect\ +or-curvature=\x220\x22\ + />\x0a\x0a\ +\x00\x00\x09,\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -image/svg+xm\ -l\ -\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1863\x22\x0a inksc\ +ape:window-heigh\ +t=\x221025\x22\x0a id\ +=\x22namedview4\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x221.738304\ +2\x22\x0a inkscape\ +:cx=\x22133.79315\x22\x0a\ inkscape:cy\ -=\x22-207.85672\x22\x0d\x0a \ - inkscape:win\ -dow-x=\x22-8\x22\x0d\x0a \ - inkscape:window\ --y=\x22-8\x22\x0d\x0a in\ -kscape:window-ma\ -ximized=\x221\x22\x0d\x0a \ - inkscape:curre\ -nt-layer=\x22svg2\x22\x0d\ -\x0a inkscape:s\ -howpageshadow=\x222\ -\x22\x0d\x0a inkscape\ -:pagecheckerboar\ -d=\x220\x22\x0d\x0a inks\ -cape:deskcolor=\x22\ -#d1d1d1\x22 />\ -\ -\x0a \ +\ +\x0a \x0a \ + \x0a <\ +/g>\x0a\x0a\ +\x00\x00\x05\x0e\ +\x00\ +\x00\x13 x\xda\xe5X\xddo\xdb6\x10\x7f\xcf_!\ +\xa8/-fI$EQ\xa4j\xa7\xc0P\x14\xd8\xc3\ +^\xb6\x0e{,\x18\x89\xb6\xd5H\xa2A\xd1v\xdc\xbf\ +~G}YN\x9c.\xdb\xb0\x01k\xed\x04\xc8}\x90\ +\xbc\xfb\xf1\xee\xc7C\x96\xef\x1e\xea\xca;(\xd3\x96\xba\ +Y\xf98D\xbe\xa7\x9a\x5c\x17e\xb3Y\xf9\xbf}\xfc\ +\x10p\xdfk\xadl\x0aY\xe9F\xad\xfcF\xfb\xefn\ +o\x96\xedas\xe3y^\xd9\xdc\xb7\xb9\xdc\xa9l\xb6\ +\x03\x0e\x89\xf7\x1aI\x84\xf2u\x12\xc7b\xe1\x11DH\ +\x80\xe0\x87\xbe\xf1\xdd\xa2\x16v\xdf\xc1oV\xe8\xbc\x91\ +5l*\x8b\xe2\x93z\xb0\xca4\xb2\xfa\xb41e\x11\ +\xc2\xfe\x9doY\xac|\xf8\x9bu\xc2\xfc\x90^Q\xaa\ +\xe3\x8f\xfaa\xe5#\x0fy\x94\xc3O\xa7\xde\xaar\xb3\ +\xb5+\x7f\x10\x8fea\xb7\x93\x04\xf96m6\x06\xbe\ +\xf2\xb7\xd6\xee\xb2(:\x1e\x8f\xe1\xa8\x0c\xb5\xd9D.\ +\xb2v's\xd5F\xa3~\xb6~\xccaZ?*\xc2\ +V\xefM\xae\xd6\xb0\x85\x0a\x1be\xa3\xf7\x1f\xdfO\xc6\ +\x00\x85\x85-\xce\xdb\x5c\x9c~\x8c\xbbs\x09B(\x1a\ +\xd3\x1f\x0e;l^\xe8i\x8a\xf55O,\x84\x88\x10\ +\x89\xe0\x1e\xc0#hO\x8d\x95\x0fA\xd3\xbe\x9a-\xcd\ +\xf3ien\x94\xb4\xe5A\xe5\xba\xaeu\xd3\xf6p\x5c\ +8\x17g\xe7\xdd\xdeT\x9dG\x91G\xaaR\xb5jl\ +\x1b\xc1\x05E\xfe-\xf8/kee!\xadtk\xfb\ +\xeb\x1c5\x98t\x1e\xe0\x031e\xbf\xbc\xff\xd0K \ +\xe7y\xf6\xbb6\xf7\x83\x08\x1f\xe7 \xef\xf4\x1e\xee\xd4\ +\xbf\x9d\xd4\xcb\x22\xcf\x00\xe7Z\xda\xdb\xb2\x96\x1b\xe5\xb0\ +\xf8\x01\xe2[Fg\xc3\x85\xb3=\xed\xd4y\xd3~[\ +\xa3\xfa\x0b\xbb\x9aO\x91\xd7\xa5[\x14\xfdj\xcb\xaa\xfa\ +\xc9\x1d\xe2{\xd1\x14g4\x04:\xa4\x11\xcd\xf2XF\ +c\x9a\x9dT\xa8u{F\xc0I\x18\x0d;-\xa7v\ +p\x15W\xb8\x92\x1e<\xc7\xde\x826\xd9;X\x03\xa3\ +-\xdc\x8bk\x00\xe4?\xf2\xc9\xf7\xc68\x97J\x9e\x94\ +\x99\xb5\xcc\xcc\xe5X6\x85>\x06\xb5|(\xeb\xf2\x8b\ +\x828\xf03.\xa7\x95O\xd2gl\xd0l,yr\ +\xfa\xc9\xf5$MQ\xc29yb\x84%\x01\xe5\x83\xf9\ +\xb1\xf5\x8b\xd6\xf5\xca\xe7\xe1\xb8g\xbb\xd5G\xc7\x00+\ +\x7f-\xabV\xf9g\xd4&x\xf83\xa1\x8dm\x8f\x11\ +~.\xf9\x81\x0a\x08\x15Or\xd8\xc1\xe5\xb6[\x09^\ +`\xbff\xd4@\x06P\x0dg\xf07\xfb\xb2PVW\ +\xca\xc8\xc6\x15\x10\x9e\x0c\x10\xff5\xbd\xbe\xfb\xacr{\ +\xcdr\xa7M\xa1\xcct\x02\xbeP\xe7\xba\xd2p\xa7\xaf\ +X\xf7\x19L.\xa2\xd1\xb0\xee>\xd7b\xce\xb7*\xbf\ +W\xe6NKS\xb8\xc0\x87\x92\xdbI\xbb\xed\xbd\xd7P\ +\xd7\x8e\xd4\x9b9\xd2\xceN\x08c\x0b\x16\x12\x86R\xc1\x5c\x19\ +b\x16\x93\x05\xa6\x0e0\xa8\xc3\x7f\xda\xc0=\x144D\ +\x08\xc6\x96\xff\x16\x86\xab\xf9O5\xe2\xa8\xd0\xe3!c\ +\x94\x11\x84\x17$\x0e\x09\xe6\x82p\x0f\x8a\x86\x03,\xe9\ +\x82\xc2\xdc\xc3\x10\x8b\xd9\xff\x11\x83\x9b\xaf\xf5\xd8\xd7\x01\ +\x0a\x1e\x17\x09\x16\x98wtO\xe3\x98s\xeaAq\xa0\ +4\x15\x80\x9a\x00\xa8\x08\xc3\xfc{C(\x9e#\x94\x86\ +,\xa5\x82\x90EL\xc28N\x13\xc4\x81yB\x22b\ +\x01O\xa3\x08\x09M\x09J\xbeU\x84\x0cP\xf3\xd3\xd4\ +\xba\xfd\xfeB^\xf1\xcb2\xba\xd0\xfe\x8d\x8c\xde\xeed\ +\x09cu7\x87e\xb540L\xb5^\xef\xd4\xcdN\ +\xb3\xe1\xc5\xe5\xc5\x93\x11\x83q\xd2\xe4a\x0a\x95\xcf\xc6\ +\x06\x19gT\x02S\x11\xe2(\x1e\xdfy\x98\x91Sx\ +\xd8\xe1\xbd\xa1c\xa5\xb8)\x1c\x87\x22\x81\x9a\x88\xff\xac\ +\xba\xe6\xd3\x9a\xa3#\xc2\x11\x8a\xe3\x8e\xa2R!b\x0a\ +\xb4\x05S1\x82\x9e\x04\x8a\x22\x043J\xbe;\x8a\x0a\ +\xd8\x1c$\x806\x85\xa7\x96\xf4,%(\x17W\xba\xf2\ +\xbb#\xa9 \xb9(\xa4\x04\x1ey\x18:q\x87\x88\x80\ +\xe2\xa6\x0e7\x91&)\x13\xae\x92\x18MR,\xbeI\ +\x94\x96\xee\xbf\x09\xb77\x7f\x00lU\xec\xbf\ +\x00\x00\x15\xb0\ +\x00\ +\x00P\x22x\xda\xed\x5cYs#Gr~\xd7\xafh\ +S/R\x18\x00\xeb\xea:\xa8\xe1l\x84W\xb1\xe1}\ +\xb2\xc3\xbb\x0a?c\x00\x0cI\x0b\x04\x18\x00\xe6\xd2\xaf\ +w^\x95U\x0d\x90\xe3\x91e\xd9\x96B\xa3\xdd \xaa\ +\xba\xba\x8e\xcc/\xcf\xce\xeeW\x7f\xfa\xf8\xb8\x1d\xdeo\ +\x0e\xc7\x87\xfd\xee\xf6\xca.\xcc\xd5\xb0\xd9\xad\xf6\xeb\x87\ +\xdd\xdd\xed\xd5\x0f\x7f\xff\xcb<_\x0d\xc7\xd3r\xb7^\ +n\xf7\xbb\xcd\xed\xd5n\x7f\xf5\xa7\xd7_\xbd\xfa\x87\xf9\ +|\xf8\xf3a\xb3\x7f\xfd\xd5\ +W\xaf\x8e\xef\xef\xbe\x1a\x06\xb8k}\xba\xbf\xbd\x0a\xf9\ +\x0a[\xf7\x9b\x87\xbb\xfb\x936\xdf?l>\xfc\xd3\xfe\ +\xe3\xed\x95\x19\xcc\x10\xf2\xc2\xe0?\xdb~\xd1\xa0\x87\xf5\ +\xed\x15L\xe6\xf8\x8ev\x04\xb9*k\xdf\xf4W\x16n\ +\xf8\xc6,\x8dY\xbd\x1d\xbd/\xb3\xc1\x19\xe7\xe6\x06\xfe\ +\x17\xbe\xa5\x9b\x8ep\xf0'\xf8\xff\xcdz\xbf\xda-\x1f\ +\xe1\xbc\x8f\xcb\xa7\xe1\x9b\xe5z\xfd\xed\x02\x96\xa21@\ +\xb0\xdd\xf1\xa6N\x7f{\xf5\xd2y\xf1\xfe\xe3\xd3r\xb5\ +9^\xd7\xfe\xee\xfe\xba\x92\xde_;\x16\xc7\xfd\xbb\xc3\ +j\xf3\x16\xa6\xd8,v\x9b\xd3\xf5\xf7\x7f\xff^/\xce\ +\xcdb}Z\xb7i&\xab\x7f\xf0\xb4\xae\x03\x02]O\ +7\x0b\xad/\x1cyX\xbf}n\xa4-\xa5\x5c\x1bw\ +\x0d\xd4\x82\x11\xf3\xe3\xa7\xddi\xf9q\xbe;~\xdd\xdd\ +\xbaZ\xe9\x9d+D\xc6\xc3\xfb\xcdj\xff\xf8\xb8\xdf\x1d\ +\x99\x1c\x93\xc1\xeb6\xf8\xe9\xddaK#\xd6\xab\xeb\xcd\ +v\xf3\xb8\xd9\x9d\x8e\xd7\xc0\xab\xeb\xab\xd70\xfe\xd5z\ +\xf3\xf6\x88\xf71\xbf\xb1\x15\xe8\x02\x5cZm\x1f\x9e\xfe\ +uy\xba\xe7\xcb\xc3P\xdb?\xec\x1eN@\x9aw\xc7\ +\xcd\xe1o\xc8\x80\x7f\xd9\xfdpd\xda\xd7i\xea\xc8\xec\ +F\x99\x0c\xa6;lV\xa7:\x08\xa0p\xfa\xb4\x05\xee\ +\xbe}\xd8nov\x00\xfd\xef\xf0\xd7|\x0f\xf3=\x9c\ +>\xdd\x98E\x0ee\xb4a\xf4\xdf\x1dO\x87\xfd\x8f\x9b\ +\x9b\xaf\x0b\xfd\x93\xe6\x9c\xe0}\xe3\x17yL\xc1\x067\ +\xd6\xfe\xed\xc3n\xf3\x1f\xfb\x87\xdd\xcda\xffn\xb7\xae\ +\xbd\x8f\x0f\xa7\xcda\xfb\x00\x7fnB\xed[/\x8f\xf7\ +\xcb\xc3a\xf9\x89\x96\xbfj;\xc3\x03\xe0^\xb3K]\ +o\x95\xa7\xb0\xc0\xe5r\xec.\xa9p=s\xed#\xca\ +Eq9\x99d\xbb\xeeO\xd0mL\x5c\xb8bJ\xd7\ +}\xa0\xfe\x85\xcd1\x8d\xf6j\xb8\x16F\x5cWz\xfe\ +O2fn~\xd3\xac\x99\xfb\xff\x8f\xccyu\x8d\x12\ +D\xbfT\xd7\xa1\xa2Z\xa3\xc6mb\xf6f\xa9|y\ +Z\xde\x81\x1co\xf7\x87\xdb\xab\xaf\xdf\xd2?\xb9\xf0f\ +\x7fXo\x0e\xf5R\xa4\x7f\x93K\xc2\x10\xb6*2w\ +U\xca8\xab^7\xcf_\x07\x1a\xaf\xf7\x1fn\xaf\xdc\ +\xf9\xc5\x9f\xf6\xfb\xc7\xdb\xab\xb4(\xb6\x8c%\x9e_]\ +}$2\x84l\xbc\xf7\x17\x17?\xa1\x8d\x01\xca\xa5b\ +\xf3\xf9EP\xfa\xefP\xfd\xcc\xdf1N\x9f>^\xdc\ +\xfe\xeep\xc0\x01\xdb\xe5\xa7\x0d\x9c\x9a\xfeX\xe5\xf4\xf1\ +~\xff\xe1\xee\x80\xf4{\xbb\xdc*\x01_\x9c\xec\xc3\xc3\ +\x0e\xce7\x17l\xb8\xd1\x8c/\x8c\xa8\x10\xb1\xc6\xc6\x17\ +\x86\xc0\x99\xc7\x97n\x87#\xab\xa68\xbf\xf6\xb8\xfc\x08\ +\xd0\xfei\x03{\xb6\xcf\xf1`u\xbfY\xfd\xb89\xbc\ +\xd9/\x0f0\xc4\x08\xaa^=nN\xcb\xf5\xf2\xb4l\ +\x88\xa9=\xa9*g\xb0\x137\xff\xf6\xfd_T\x84W\ +\xab\x9b\x7f\xdf\x1f~\xec\xe0\x0a\x03\x96o\xf6\xef\xe0`\ +*\xe8\xa8\xefW7`\xfb\x1e\x97\xa7\xd7\x0f\x8f\xb0\x01\ +\xb4O\xff\x086\x03\x80\xab\x17&\x83O\x9f\x9e6m\ +R\x9e\xf6\xb0a#\xfa\xac\x8dY\xaf@\x96\xe1\xa6\xeb\ +\xbf\x9d@m\xfc\x15\x17Qa!q\xe1\x8dV\xe9\xe9\ +\xce\xf1\xea\xba\x9e\x92Zwg\xf4\xda.\xdfl\xb6\xb7\ +W\x7f^>-\x87\x0bb\xde\x81Ryz\xdc\xaf7\ +\x82\x9a\xabF:F\x91t\x9c\x0e\xcb\xdd\x11\xcfy{\ +E?\xb7\xe0b}cfs\x10\xf8\xb0\xf0\xd1\xb9o\ ++\x81\xefz\xbdy\x86\xc4\xffbW/,3\x1f\xf3\ +\x22\xc4\xe0r\x84\xf5\x02*\x9eq\xcc\xdf6-|\xd7\ +)\xba\xcfO?\xd9To\xa5\x9e]w,\x0b\x9bl\ +\x08\xe3\xcc\xfaE\xb2\xce\x94\xf4m\x0f\x89\xbb\x9e\xbf\xfd\ +i':\xf6\x0b6\xf5\xd2\xb9#h\xa0\xd1\xd94\xc2\ +\xb9\xdd\x22\x80\xde\xa8\x0e\xe1s&\xe7\xeb7\x1e\xffS\ +\xeb\x22\xaa\xefu7\xfe\xd5Sg\xfd^\x9e\x81\xec\xd6\ +\xe1\xddvs\xb3y\xbf\xd9\xed\xd7\xeb\xb39\xa7\x16\xcb\ +,\x5co\xaa\xe0\xa4SK\xa5\xf6\xeb\x0d\xcc\xb6\xfdr\ +\xfbU{\xab\x01\xb5\xdf=-\x1f@\xc9\x91\x12\x87\x11\ + s\xdb\xab\xe9aP\xe0\x07PG@6\x9f\xc2\xcc\ +\x1a\x07\x8c+a\x00\xff\xb4\x98\xe4\xd3\xcc.\xc6\x9c\xca\ +\x00\xd6\xc8\xfa\xe0f\x1et\xb5\x1f\xe6\xe0\x7f\x87\x14]\ +\x9c!\xbd\x13\x8e\xf6\xc1\xb8\xe8\xa0\xed\xb2\x1f\x07\xfe3\ +Zh\x83\xf9\xa6\x01\xa35\xbex\xe8\x18c\xb28\x83\ +\x05\xa3g\x01\xa0\x17s\xb0\x95\xeb\ +\xba\x1e\x11\xc0\xe1\x19@\xf5X\xba\x81\xe8\xc0\x9c\xb3\xfd\ +\x91\xea\x04\x04\x93\x0eFHd\x1c\xd0\xb6\xe0b\xe9I\ +\x8b\xcc\xa5#\xea\x19\x84\xd4r\x07\x1d\x82\xd6\x04\x1d\xe0\ +=\xc2\xa6\xe4\x90iS\xf07\xe2\x08\xa0p\xbf\x0b\xbb\ +\x086\xe5\x0eX\x8d\xa1D\x98\x1e\xceD\xe9q\xd6\xc0\ +\xdb`Ri!\xb3\xce\x1b\xbf\x94\xfc\xb8\xd5\x7f\x1e\x92\ +_xp_\x10\xdc\xdd\x0a\xc4\xfe\x8e2\xb4\x85\x8e2\ +$?\xddx&L\x8fu\xa4\xc09\xed\xe8\x9cHu\ +\xeb\x05\xb9t\xd04f\xe3\xbac\xf5\xfc\x88\xbd\x18\xa3\ +@u\x97\x81\xff~\xd05eI\x01\xe4XW\x14\xa2\ +\x08;\xf1~B35\x1d\ +\x12\x16\xd9\x19\x9fR\x13#9t\xe8\x19#dh|\ +A\xf4\xbb\xc0\xb4w\x13m&\xfb\xd2s\x8b\xf4\xd2\xbe\ +}'g4\xc0\xcd\xf8J\x13\xb4\x061\xe5\x05Q\xa2\ +)\x22\xb7\x88&\xe3\x12Urh\x0b\x9d\xba\x148\xe8\ +\xfd\x15o\x0as8\x1c\x91V\x01\x99`\x02\xa00P\ +\xd2D9vljK\x01D\x1b\x18q\x8b)\xa1\xec\ +\x13\x11\xbc\xe2\xa7\xaa\xde\xaa\x18\xdd\x02\x88\x96}\xe0-\ +\x8c\x13\xc5Hh\xe8g x\x918\x01\xc0f\xac\x98\ +c\x03m\x87\xd1\xa6)\x89\x94pO\x82\xa1p\x8f[\ +8k\xd3\xa0*\xa4\x8e\xd0\x93\xce\xcf\x14\xa3\xed\x95z\ +[\xa8\xde\x84\xc8\x1b\xbbu\x88>I\xa0\xc4\x82`K\ +\xe3\xb0 \xad\xe2H\x95\x86\xe8\xb4F\x1e\xb5x\x02\x22\ +\x02\xa5\xedE\x87T\x99\x8e\xe7\x95\x07>\x1e\x9c\x5ci\ +\xd3\xd4\x05\x09\x8f*!\xd5\xc6\xaa\xed\xe5HbB\x1a\ +\xa4*\x84*Yh\x80k\xd2\xa6\xea\x87\x85\x99\x00\x11\ +\xf0D\x84\x80\xf7C\xd5T\xdb\xa1\xb7\x93\x84\xa7\xf7U\ +LXY5N\x93\xa5\xee\x8c\x97\x08L\xd34BO\ +\x91Ba\xfc\xfb\x817\xb1\xedw%8\x95]+N\ +\x1b]\xc8hU\x85\x9ef\xa2\xf3:33WE\xd3\ +\x1b\xf5\xeaJ\xb0D\xe0\x01\xd4&\xd4\xb3\xf3\xdfP\xd0\ +_\x16\xef\xa2\x87\x8cxD\xcd\xce\x8b\xb9lV\x9d\xb7\ +\xd6\xe3\x0eU\xbc\xda\xf0z\xcbj033\xd1'r\ +\xc6J\x83\x099E\xb7+5\xe9\x08\xfe\xa2\xdd\x11q\ +.VO\x16\x1e\x1bXdc\x82>\xd5\xdcL\x89\x89\ +|\xe0\xc6\xdd\x229\xf0\xdeGPO\xde\x8d\xae\x03\x13\ +\xe0\x16\xb6\x0e\x03\x00\xdb\x05\xe4\xc1-pe\x15\xc23\ +\xfb\xd4\xb4\x0b\xf6\xaa\xfd\x9c\x90\xa1\xd3\xb22\x83\x18\x0f\ +$\x82\x8a\x03\xcf0\x95\xcfY\x87W\xbe\xb7\xe1\x8d4\ +x\xa7\xe2\xc5\xabSiC|\x87s\xc3\xd7\x9c@\x02\ +xSu<\xdb\x5c\xda\x15\x0a\xea\xf1\x09u\x9a\x1d\x12\ +\xcb\xa4>\xe2\xbc\x9d\x86\x0c\xab\xb8-Y\x11\xdbOY\ +\x0d\x97v\x10t\x98\xa5\xaa\xa1\xee\xeb\xa2|\xfa\xba{\ +!>o\xbf\x89#N\x15\xc4\xef\x80\xd6X`\xb0\x1b\ +\x81\xf7\xc0\xdb\x9f\xceB\x02\x8c\xcb0\xea\xc9\xb6\x9c_\ +\xd1\xec\xc9~\x07a\xcbi\x7f\x98\xaf\xde\x1d\xde/O\ +\xef\x0e\x1b\xcc)\x9c\xc5I\x9a\x96\x82`\x19\xe3\xf4\xe3\ +\xed\xd5\xea7\xf9\xaf\xcb*\xfco\xc6\x84o\xde\x9dN\ +\x17!!E\x81\xbf $|.\xfe+~\x11r)\ +\xa0\xfd,\x00d\x91\x01\x98\x14z\x81k\x162\xca\x88\ +a''\xa5\x92\x18\xc4\x129Ec\xc4\xb3\x8a\xce\x89\ +T#p!J\x8b$\xc8\xb1\x10\x92\x9du1R\x9c\ +\x22QI\xf4\x04}\xe3\xf248\xb2c\xbc\xec \x8b\ +\x83+\x90>\x83\x98\x9e\xc3%\x98\x94\xccw\x22L\x87\ +\x08\x8a\x86\xfc\xa7\x98\xd1\xda\xc2\x12^\xec9\xe9\x1f\x10\ +\x00\x12\x1eQ&.\xc5\xc0\x0e\x9e\xb5\xe8n\x01?|\ +H\x9d\xee)\xc5\x85N\x9d4\xd5oH\xc0\x8c\x91X\ +m\x0c\xec\xd9\xe3|$\xacD,\x83\xc1\x09\x188\xea\ +\xb0\xf93B\xe6\xec\xcf\x14\xb2\xdf9\x16SA\x0e\xa3\ +_\x03X\x8c\x0b /\xc5\x99hmR\xa7\xe0\x0c:\ +\x0b\xea\xdc\xceu\x04\x5c\xc9\xe2\xca\x10\x10\x08;\xa3\xcf\ +\x89\x80l\x81\x17\x93\x5c\x84\xa8G\x9eM\x99\xef-X\ +\xc7Xma\xef{\x17\x98\xfceV\xfa?X\xd9\xb3\ +2\x83Xy\x0c/\x81\x93#8\x14\x96\xed \xda;\ +5M\xc8'o<\x1b/6{\xe0\x90\x8c,\xaa\x1c\ +\xd88\xb8\x9dL\xb95\xe6s\x824\xfeJ\xd6\xeaw\ +/q\x09t\x96\x8d\xae\xb0\xf6\xb7#+\xbc<\x86\xc8\ +\xf1\x8f\xe5\xbc\x8a\xf1\xc6\xb0\x8bS\xd4\x93%\x0d\x0d\x01\ +7\x0b\x8b\x13\xd7h\x0c\xbep\x07+j\x883P0\ +9[\x03\xb3Qf\x05\x84j\xbc\xec\xd8\x0aD8\xb3\ +aGJJ\x8d \xc0$\xbe\x19\xb6\xf62\x00\xd2\x1f\ +\xe27\x11\xbfqQF\xe2\x19\xf3\xb5\x8c\x14]\x918\ +\x91&-\x96\x5c[0e\x1c~a\x98*\xe2\xc6\xaa\ +v\xb4\x88\x04\x13\x8d\xc5|:\xa0\x84|a\xe4\x02\xc7\ +Z\x1es\x1b\x0a\x84\x00a\xef(>\xb1\xe3\x90\xa1X\ +0\xda\xd4\x13\x9c\x9f`H\xf2a\xceH\xdc\xee\x1c\xa7\ +\xfb\xcezd\xea8\x12>eKs\xb6\xe6\x1cl@\ +\xdc\xc7\xde\xb5\xa1\x8c\x0e\xab\x10\x97\x0d\x8c@\xc4\xf8\xe7\ +:\x08d\xb8y\xc3>\x86\xe1Au\x0e\x88\xad4B\ +\xf1\x10&%\xc4\xde\x18\xac\x9f\xb4\x89z\xb3\xea\x0a\xd5\ +{c\xe4D\x95\x09\xb4\x5c\x02'\x1aI\x88K\xe0\xea\ +NV\xe2\xa4[NL\xa7\xbe\xf92\xbc\xcb\x1f\xf0\x9e\ +\xc0;.\xa2\x01\x9f+!\xbc\x81\xf0\x92\x0d\x16u\x84\ +\x81\x98\xd0\xda\x19\x83HAxJj/s\x0e6v\ +\xd8U\x0e%F\xa6\x80\x19\xfdN\xc9\xad\x90\x14\xa0c\ +8T\x18\xc3\xa2\xc1\xc6\xa11?\x8d\x96|GY\xd1\ +\xf2\xe3\x02\xb5_\xd99{\xd1\xc6\xe8\xcd'S\x5c\xae\ +\xab\xf7\xd0D\xe1l\x22H\x82@\x0eI$|\xb1.\ +\xa6\xfd\xf2\xfeQ2\x1c\xbb8\x0a\xee\xf1s:\xd3\xff\ +6\xbc\xcf_\xe7\xe9\xd8s\xa8\x8ay\x91\xad\xc1\x5c\x12\ +0\x0f~\x8f\x94)\x1b\xa3\x0dL^\x92`\xe5\x90\xb4\ +\xab\xb2\xc8\xd9I\xca\x15\x7fa\x10\xc2\xb6o\xaeH\xc1\ +\xe1\xa4\x18\x5c e+w\xb0\x82\xbaho\xdb\x1ds\ +\xde\x04*\xf0\x8c]\xb4\x97(y\x00\xde\x1e\x0d\x07\xc3\ +\xe9\x19\xc8\x91\xd3n\x01\x7f\xa8\xb2f|\x10:\xe1\xb2\ +\x85\xce\xec%]U0EY\xbc\xf3\x0c#z\xbcc\ +P\xf1\xceD\x93s\xd2B\xd4\x1f\xf9\x00\xf3\xde\x9c\xc8\ +\x89\x14\xaa\x81\xc0\x0e\xfe_\x91H\xaeP\xca,(R\ +\xcd\xd4\x98\xf0\xdd\xd5>\xd4\x05\xf14n\x944$\xa7\ +\xdcH\x93\xd7!U\xda\xe6\xa2\xa1\xe7J\x829\x93\x8a\ +\x12yx*\xdb\xe2V\x143\x92\xc0*\xdc(E\xe2\ +\xc3\xf8&\xec\x14\xd6\x11[\x9c\x07\x0b\x1a;\xfe\xa3\xc4\ +\xb3\x80&C^-z,l\xfb\xac\xf3U\xa4\xd3L\ +\xb7M\xe7$\xad\xc3\xc7\xe2&\xab\xa3\xd2G\xce`c\ +e\xe18\xe9\xf0\x16w\x22\xa6\xb3#\x14\x1a\xab\xb3&\ +\x99\xb7dm\xca\x0aE\xec\x08\xe8\xd2\xf5\x84B\xc2\x19\ +\xce\x19\x02y\xda&DA!\x01\x13\x13\x10\xe8\x14\x99\ +K\xa3\xe4FY\xe5)\xc1\x22\xbajA\xbd\x8a\xcb\x1e\ +\xdaS\xd0M\xa1\x99\x9f\xe0\xa9v4\xfb\xcf\x8aO\xb4\ +\x180 \x0e=kI\xadU\xb9\xc3\xc0`\xec\x86U\ +\xe5H\xdc\xeb\xd9)\xa9@\xd5\x9e\xc8\xd7gz\xd8?\ +`\xbf\x88\xddX\xa5M;w\xee\xb1\xc7-\x00f\xa6\ +\x0d\xc5\x8cl\xef\x14\xf8y\x07g?\x15U\xc1\xf2\x13\ +\x83\x80;\xe5\xd8\x88\xb1\x8d'S\x9e\x13\x16\xe4y\x22\ +]n\xdb\x06\x9a\xf9\xc9~Bu\xf5X\x9a-\x19\xa6\ +\xb3\x8em\x85~\x16ye\xfb\x88\x12[\x1f\x03Q*\ +3dDs\xf3\xe0\x15\xda\xe2\xcd\x84\x80\x96\xae\x8a\xd3\ +\x14\xcb\xccJ\xdb\x0c\xf1\x5cLhUbD9WL\ +r\xa9y}\xe7\x1d\xf7\x1c\xcf\x9b\xd2)[\x08\x1b3\ +\x0f\xb1\xfc\x84\x0cw\xc1\xde\xa6\x98\xd1\x0a\x1e\xbe\xaa\xb4\ +\xb4\x92\xbb\x07\x09\xe3\x07\x85\xb8/\xd55\xb1\x05.\xe0\ +[\x06\x86\xb0\xa4\xbb\xfa\xb6l\x82i!\x222\xf4N\ +p5\xdd\xe0\x0c{eIw.C\xbb \x01H2\ +>W,[qK\xddd\x9f\xa4\xce\xfa\x83W\xae+\ +\xbc\xd3\xd4`X\xba|\xd6\xc1\xe0\x06m\x92\xe4\xb9\xa9\ +0\x91\xe9\xa3gGI\x0b\xea\xde\xe6\xe2\x9c?\xf3\x99\ +\x08\xadNa\x81\x96\x8e`\xc1\x8a\xab:T\xe2\x1e\x8b\ +\xc3\x04\xeb\xe6\x89\xab-\xea\xb3\xbaL\xa2\xf4\xd8(\xf0\ +Q/;*\xbejg=B\xeb\xa0\x10vVU\xa5\ +Xj6\x88\xe2\x98\xd7xC\x9a\xc4;\xbd\x1f\xb9\xd4\ +;j\xbc\xaa\x1e\x829\x89\xa2Da\x133\xf2\xac-\ +$R\xde\xb1\xe6\xf1\xa3\xc9\xac\x00\xcd\xc4I\x13\x9fS\ +m\xa9\xb0\x84\xc3'\x95\x1fV/U\x89\xb1\xc9j'\ +\x11qSC_IL\xd1\x8d\x8cO\x95\x05\x17m!\ +)H\x10;\xcf\xe2\x067oZ\x9e\xabVzMw\ +T\xceZ\xa2\xdf*@H\xb9+\xe8\xd4\xd9\xd1\x1bb\ +?X\xf67mo\xbb\xb5i\xb6\x86B6\x18\xe2\x7f\ +4[%\xf1\xec\xf9\x96ExZ\xd0\xd7:|\x05\x8d\ +\xefLB\x87\xc1\xea4\x04\xd6\x93\x0a\xf0<\xa1>\xba\ +=\xe7m\xb1R*\x87\xe2D\x10:\xe2Lt\xa0\x92\ +Z\x00\x85\x8a\xc4q\x1a\x8c\x084moe\x8f\xbed\ +\x8e\x82\x89]\x99\xac.v$;^hbq\x22Z\ +\xc0\x89\x1au\xe8B\x9b\xb1*0\xd7`\x84:\x86\xb3\ +q\x9e\xae\xa3>s\xaa\xc5\x09\xd0Ic\xfe^\x9f\xb1\ +\xb2\xaa\xc4/=\xc94h\x17\x00\xa4(\xa9A\xd9H\ +\x05\x9b\x92\xbc\xaa\x0d\xa2\x11=\x04(\xb6\x0b\xb4\x1a\xfd\ +F\x15\xcf\x0a\x0b>aE\xda8t\xd4\x10\xc9hz\ +,\xf6\xbe\x04O\x83.\x12;\x06\xb6eG\xc8F\xc8\ +\x16\xaa7\xab{V\x9b,@V\xd7LL\x9b\x0a\xae\ +<\x92\x87\xbd\xb9\x99\xba\xc7\xd2\x96\xf5'>\x8a\x1a\x86\ +\xd1\xdb\xa9\x0f\x1a\xa6\x00\xaaS\xa9\x04\xd1N\x15m\x81\ +\xcb\x13T\x9b\x91;\xa2\xe2S\xbbA\x07\xe6\xbe}\xee\ +9\x9b\xe7:\x04o*\xe8d\x03\xe7]\xb8D[\xed\ +\x85'\xf41\x0b\xc4\xcf\xe5\xb2M\xc2C\xde\xeb8S\ +\x17\x0f\x13+}\x9bq61\x97|\xecf-\x19\xbe\ +\x021r\xbb;)\x07\xb4\xda\xe6\x92\x91$\xb9s\xe0\ +\xb0\xf7\xaa\xe2\xab\x91\x14b\xa2K\xf20\xe2Dy\x08\ +\x06\xea\xaa\x89/N\xad\x9d\xe21\xbc\xa0\xda\x99\xd3U\ +\xd54h\xc7\xcekiZ\x95\x1c\x8e\x06\xb7zB\xb9\ +\xac(Q\xd3\xdb\xb6\xdd\x19bM{\xf4\xed\xad\xa6\xd2\ +\xb8\x86\xad\xcb\x9f\xa0G\x9a\x9a\xf7\x80\xad<\x9b\x86S\ +\xaa\x829$T\x9b\xd85\xa7\xd9\x98\xea\x14Mr\x8b\ +t\x8c~N7\x01\x189M\xfd.\xab/(z(\ +\x0d\x17\xdeDg\xe7\xd3$\xbb\xc3Nw\xb5\x935\x90\ +\x9b\xb4\xb7\xcdk\xc7j'\xdf\x91D4a\x8bB\x88\ +F\xb9\xb3(z\x848\xe5\xbaHb\x9b@\x8e,\xca\ +H\xdd\x05u\x0f\xd8;\x05\x8cP\xc6\xaa\x86\xe6\xd5\xa1\ +#X\xb5SQ\x04\xd7\x90]\x93\xbcB\x9f\xb1\x87\x0c\ +%K5l\x90\xfc{ga\xcf4\x16z\x0fC\x1f\ +\xf9\x19)\x9d\xd0|\x9b\x08M\xa8\xf7f\xe4\xdbL]\ +\xf2\xe6~\xf0\xc2\xe2-3F\xfa\x8d\x88\x83\xd6\x92\x03\ +t\x19\xf5\x22\x07\x00\xc2\xc8\xb3\x8em'\x1d\x1434\ +'B}\x86\x9a\x86\xc6\x95{\xcb\xa3\x98(]\xf8\xde\ +\xfc$:\xa4\xa6]&f@\xca\xdc\x92\x0d\x12\x9cH\ +J\x1a3\xc5L&\xcd?\xcb\xdeL\x9f\xc6\xa8KB\ +\x14\x1d8R\xb6\xa2\x14\x84\x815\x0a\x93\xbc\xbd\x10\xa7\ +Ot\x8a\xc3\xa2\x8a\xa2\xde\xa1\x1d\x14\x17\xf4SP\xaa\ +\xa9\xf9\x09\x12\xab\xd7\xf9Hw\xf6\x92\x8bI\x87\xce\xd1\ +\x0a\x93\xe8\xe02\xd4\xaf\x95\xbdU\x13\xc9\xfe\x95\xe4b\ +#\xa6\x1d/\xa70\xfd\xffE\x95\xca\xf1\xb3\xcd\x17/\ +\x1d\x8f\xcf_=~\xc9R\xbf\xf7\x8c~\x0c 6>\ +&|\xf4\xef#>\x81\xa4\xc4\x8b>~\x1f\xb84\xcf\ +\x14}\xee\xcf\xc5\xaf\xadh\xeas\xf5wR\x85y\xd6\ +!\xde\x05\x17;\x9a\x8b:\xb8I\xe1\x07\xb5\xa96@\ +\xc2qr\x19\x02h]\xd7\x97&t[\xc8\xe4Qc\ +I2\x97\x1a\xb2K\xddJ\xffmt,\xcbX\xf0\xc2\ +\xa9\x0c\xce\xde\xd7U\xa4\x5c\xed\xb2g\xdbM,\xd5\xf8\ +\x9a\x18\xd1\x1d\xc6\xcc9\x09\xdda\x8ac\xbc\xd8\xe1\xbc\ +\x15<\xd4j\xc8\x8b\x9emW|\xdd\xbd\xb0!%\xaf\ +\xed5\x87I\xd5\xa8\x9d\xd4\xc9\xe3\x8c\xdd\x10|\x86\x97\ +\xa7%\xe0\xf9\xb930\xd5\xa9\xba\xa3{\xdb\xa4\xd6G\ +\xea\x9b#]\x1dy\xbc\xec\xa8\x8f\x11\xa5\xee\x9bB%\ +\xe7\x1c\xbd)\x225H\x96\xea{[;;N\xdbP\ +\xa19\x1c\xa3\xb8\xe0{\x92iMH=\xd7\xb4\x94\xbd\ +/\xa5\xaf\xefVL\xded\xe8\xaa\xd0\x81?\xe1\xa2\xcd\ +\x09S\xaaf\xaf5\x95-\x9e\x9b\xd4\xa3(~\xb4\x12\ +\xd9R\xdd\xf5L\x01\xc8\xfc\x97\xe1\xf8\x10\xc9\xd9\xc8\x9a\ +x\xd4\x978\x9cV\x07\xe6T\xea\xb3%\x1e\xae\x95\xbb\ +Bl-\xb5\x91\x17W\xc62\x86\xb1T\x8e2\xcc\xc6\ +2\xeb\x8ab\x93\xa4\x22d\xbbX\x99Co\x0dh\xa5\ +c%\xfeY\xb1\xfb\xa0\xb5;m;\xb54\x7fr_\ +\x9dY\xaa\xc9[\xd9\xe7\xb4C\xe8\xd7j\xce\x89\x02}\ +A\x10\x93@k\xf1\x85\xb7\xb5>\x08!*\xe4\x95\x07\ +x\x93\xd2|)\xddW\x84S\x1d\xf6y\xfbeC6\ +\xfe\x82gq\xaf\xae\xef\xba\xc6\xb9e\xf8\x8d\xda\x05\xb2\ +\x0a.\x01\x80#\xe6\xd6\xf0\xb9\x1c\xb8M)U\x05E\ +A\x11\xa6'\x06))\xc4g\x1b#\xb6\x8a\x1fI\x16\ +%T\xb69\x88\xd9\xc0_R\x1ef\x02\x17/4\xed\ +eP\xfdJ\xc9\x9e\x94+\x8c!\xf4\xb5J\x5ct\xc8\ +W\xd8\xcb\xc9V\xa2{y\x0f\x04\xb4f\xad\x88\xe4)\ +P\xfa8\xa7\xcc\x8e`\x18\xb3O\x9dc\xd8\xb7\xa7\xd8\ +h\xc8H\xcf\xbf\x1d\xf9\x05\x0e\xce\x8b\xee\xcd\xf1\xc2\xa3\ +\xf8}\xa1\xa6 \xe5S\x22\xd4D\xe0_\xe2Z\x17\xe0\ +\x17\xc7\xa5\xad\x16_\x90#Z\x19\xcc\x1d\xa5\xd4\x88\x7f\ +\x15\x12|\x03\xd5\x9e\xdaDu\xac\x9e\xca\xf4\xcf\xda\xf2\ +0\x0a+O\x09\x98T\xbe\xc6\x18\x92&\xfb\xedX\xee\ +\xc4\x1eu\xe2\xc8\x9f\xa1\x10|\x19M\x8b\x93M\x015\ +-\x03#\xe5\xfe8u\xc8\xcf]C\xa4\x22n\x1a\xd6\ +\xca\xeaZI\xad\x02\x13\xf6s\xf9\xee\xd9\xbc\xdbW\xf4\ +Z\x92\xab*\xac\x1e\x9b_\x14\xa94\x11[\x1c\x8b\xa7\ +C\x93,u\xefJ\x81@\x86A\x0f\xb80\x5c\xecP\ +\xb8\xba\x88M\x91h\xfe\xb9\x5c\xa5B\xe1\xc9)\xba\xc2\ +\xe0\xfe\xb5\x1eP\xb8\xbcT\x92GJx'Z\x87,\ +\xc2\x13M\x89\x97\xed\x9a\xfe$}M\x01N\xc9\xd3\x17\ +9j\x8fXP\xce\x08\x03SYd\x93\xb8\x06\xb5\x94\ +\x17\x02\xdb\xd2\xec\xab\x8c\x90m\xf1l.]\xb6\xe5\xc9\ +a\xd5%\xde\x96\xb3\xd7=\x93\x9f\xea\x16>\x84\x15\xd2\x19+\ +O)FydY'\xa9\xd5\xdb\x15\xfb\x0c\xd9\xb9`\ +tR\xaf]\xdf\x8d\xac\x15\xddr\xc4\xea\x91\xeb\xe5Z\ +\xb6\xaa\x18\x92W\x15\xe5UK\xf6D\xda\x9eP#\xf4\ +\xcf\xbf\xf8\x14\xb2\x9f\xa6#\x80\xee\xd4\xe1\xd2\xc8j\xc7\ +\xd6\x88@\xf2i\xfc\x1e\xa4\x0ak2\xae\x93\xd6z\x9a\ +\xea\x9f\x88\x8d!s\x97\xeb\xc3|)\xbd7gC\x85\ +t\xea*\xba\x8er\xfa>'[/AN\xa7\x1cM\ +\x1fGh>FOI\xb2nB\x89N\xce\xdcv,\ +\xf3\x0aJ\x90\x10\x93b~\xd67\x8c/)\xcd\xefw\ +\xac*\xbcj\x90I\xf3%\xf3Y~\x96\xf9\xec?!\ +q\xf7\xc2\x87k\xa6_h9\xfb\xa0\x8b\xb3\x08\x920\ +\xfd\xfcK\xc4\xc3A\xc4\x11\xbe\xf0\x8b1\x9f\xf9\xd0L\ +\xfd6M\xb0\xbe\xef\xfe\xb9\x1f\xd3\xe9-)\x9bk\xfb\ +\x8b?\xa0\xd3\xd1\xeen\xba\xe1\xbbi\xad\x99l\xb6:\ +\x0f>\xad\xf2\xf2\xcdg\xcb\xbe\x9e3\xf6\xddG \x1e\ +\x97\xa7\xc3\xc3\xc7oP}\xe7\x18)\x8d\x88\xff\xb5f\ +\xf0\x8b\xe8C\xb1X\xd9e\x13V\xd2\x95\xc9\xb7).\ +\xbc\x9fg=\xa7\xff\xb6#\xd6\xde\xaar\x97\xdeJ\x19\ +A\xf0,\xbeQ\xef`\xfej$\ +>\xfb\x9e\x08\x7f\xe5\xc2\x87E\x89\x16H\x0a\xe4\x06\xe7\ +)dP\xbdL]+\xb9\xdd0\xfe\xc6\x89\xac\x1aK\ +~\xd0\x9fW\xf8\xe9\x9d\xd7_\xfd'\xe6x\x8a\xe2\ +\x00\x00\x0do\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0a \x0a \ +<\ -path\x0d\x0a s\ -tyle=\x22opacity:1;\ -fill:#20a867;fil\ -l-opacity:1;stro\ -ke:none;stroke-w\ -idth:0.270178\x22\x0d\x0a\ - d=\x22m 96\ -.602632,-168.129\ -64 v -18.91247 h\ - 24.316028 24.31\ -603 v 18.91247 1\ -8.91247 H 120.91\ -866 96.602632 Z\x22\ -\x0d\x0a id=\x22p\ -ath1777\x22 /><\ -/g>\x0d\ -\x0a\ -\x00\x00\x06\x88\ -\x00\ -\x00\x1f\xe7x\xda\xedY[o\xdb6\x14~/\xd0\xff\ - (/-fI\xbc\x93R\xed\x16\x18\x8a\xa2{\xd8\ -\xcb\xd6m\xc0^\x0aE\xa2\x1d5\xb2dHr\x9c\xe4\ -\xd7\xef\x90\xbaX\xb6\xe5\xa0\xc8\xba+\xec&\x8d\xce\x85\ -\x87<\xdf\xf9\x0eE&\xf3w\xf7\xeb\xdc\xb9\xd3U\x9d\ -\x95\xc5\xc2\xc5>r\x1d]$e\x9a\x15\xab\x85\xfb\xcb\ -\xa7\x0f\x9er\x9d\xba\x89\x8b4\xce\xcbB/\xdc\xa2t\ -\xdf\xbd}\xf9b^\xdf\xad^\xbep\x1c\x07\x86\x17u\ -\x94&\x0b\xf7\xa6i6Q\x10l\xb6U\xee\x97\xd5*\ -H\x93@\xe7z\xad\x8b\xa6\x0e\xb0\x8f\x03w\xe4\x9f\xec\ -\xfd\x93J\xc7Mv\xa7\x93r\xbd.\x8b\xda\x0e-\xea\ -\xab\xb1w\x95.\x07\xf7\xddn\xe7\xef\xa8\xf5\xc2a\x18\ -\x06\x88\x04\x84x\xe0\xe1\xd5\x0fE\x13\xdf{Gca\ -\x9dSc\x09B(\x00\xdb\xc8\xf5+\xdd\xa2\x1a\xc0\xd9\ -\xc0\xf7\xe0\xdf+\xfc\xba\xdcV\x89^\xc2@\xed\x17\xba\ -\x09\xde\x7fz?\x18=\xe4\xa7M:\x8e\x93\x15\xb7u\ -\x12o\xf4\xc1\xbc\xbd\xb2\x85!^\xebz\x13'\xba\x0e\ -z}\x1b`\x97\xa5\xcd\xcd\xc2\xe5\xd87\x0bD\xb8\xd5\ -\xde\xe8lu\xd3\x9c\xa8\xef2\xbd\xfb\xbe\xbc_\xb8\xc8\ -A\x0eS\xf0\xd5\xea\xb3t\xe1Bj\xa4\xf3\xdaS\xa0\ -\x1b\xd7O\x19\x0d&\xe4\x87\xc4g\xce\xabmq[\x94\ -\xbb\xe2u\xeb\xd7g\x18\xa5ebV\xbcps(h\ -\xf1\xf9\xe6a\xa3\xabd{\xad\x89o\x10|k\x9c\xe7\ -k\xdd\xc4i\xdc\xc4vd\xbb\x86^\x85I\xeb\x03^\ -P\xce\xe8\xa7\xf7\x1f:\x11\x14I\x12\xfdVV\xb7\xbd\ -\x0c\x1f\xe3\x12_\x97[\xc8\xd7}\xbb\xd7\xcf\xd3$\x82\ -\x02\xac\xe3\xe6m\xb6\x8eW\xda\x14\xef;\xc0{\x1e\xec\ -\x0d\x87\xde\x0d,s\x14\xb7\x8d\x5c\xe9\xb6\x96\x93\xacN\ -\x93ufF\x05?7Y\x9e\xff`\xa6q\x9d\xe08\ -l\xd6\xe4z\xa4\x9d\x07]\x0e}\x8e\xc18\xc9y\xd0\ -\xa3\xd0\x8a\xa9^\xd6#\x88\x8c\x88\xd1\x00\xcfP\x19\x00\ -\xb8\xde\xe8\xc4\xb4\xcf0\xfbP\x0e\xb3\xc4\x85{\xe8K\ -;\x06:\x07\xf5\xdd|\x06vp\xea\x0b\x22iH\x9d\ -\xc8\xc1Pi*\x89\x94\xe6yz\xc4\x83\xe1S\xe4p\ -\x81|\x86\x113\xa3\xd0\xb4\xe7\xe3\xc2e\xd4gB`\ -d\xe2\x11\xe5KN\x05agbw\xeb\xf4\xca*[\ -e@:A}\xae8\xc1\x0a\xfc\x85\xaf\x18\x12\x8a\x1f\ -\x0d\x05\x84FH\xc0\xc2q_\x0f(;@\xd7>\x0e\ -\xc0\x18\x92\xa6\xa6+\xba\x08\x1b(`R\xe6e\xb5p\ -\xaf\x96\xf6\xd3\xc7\xbe.\xab\x148\xdc\xd9\x84\xfd\x1c\xda\ -JhO \x03\xb4M\xaf/\xaf\xbf\xc0:\x9a2\xd7\ -U\x5c\x18\x06\xe1\x01\x97U\x05};i\xd8f\xa9\x9e\ -\xb4\xeca\x81E\x0e\x93M\x9b\xeb\x9b8-w\x0b\x97\ -\x9cXwY\x01\x16\xaf\xdb6\xb0\x12\xf4\x9cK\xbf\x87\ -`D\xb8;b\xe0\x80\x99\xea\xb5\xf5M\xb93\x09-\ -\xdce\x9c\xd7\xfa$\xe0cY\xae\xed\x0b\x85R\x821\ -;\xb1'\xc09\x8f \xecC\xb9\xa885C\x9a\x94\ -b\xd8q(\x09\xcf\xad\xd6\xd0V\x9e3B\x00r\xd6\ -\xb8\x8e\xef\xb3u\xf6\xa8\xd3Q\xe5\xf6so\xab\x0a^\ -[^\x1e?\xe8\xaa\xdb${Bm\xe2\xe6\xa6\xf3\x87\ -\xb1?:h\x86\x9c\x8ff[\xfd\xd5\xfc\xf7\x11\xb6\xd8\ -\xdf\xc7\xb8\x19\xf7\x89\xdc\xcb\xa2\x00\x92\x94\x95\x07S\xdd\ -\xc5\xcd\xb6\xd2\xa3\xa2\xd6\xcdC\x0e\xf2\x126\x97\xa8\x80\ -\x97\xee0\xf7j\x14x\xc50\x9f\x1cq\x85P\xca\xe2\ -\xf8M\xddT\xe5\xad\x8e\xae\xc8\xb5\xf9\xd7\x89^G\xa1\ -hH\xba\x01\xca\xd5fc\x84\x8d8n\xaa\xec\xfe\x15\ -\xf6\xa1`\x0cQ1\x83\xdcf \x09\xe88\x81gP\ -,\x9fbAQ8\xf3\xb0\xf2\x89\xe2\x5c\xd1\xd7\xc3\xa6\ -\xb4\x1a\xfaq\x14\xd2>\xc2\xeb@CT\x84\x84$\x8a\ -B\x1c\xee+%I\x18\xbe>\xecaH\x89\xb1\xbd\xea\ -9I\x0d\x1b\xee\xb8N\xd3\xa1\x8c\xb0\x1f\xd9\x8a\xd56\ -\xd7\x91\xbe\xd3E\x99\xa6g\xe6\xb2=\x14!\x1f3\xaa\ -\xb0\xa2\xb4\xd7\xe7\x19T4\xdeDU\xb9-\xd2\xb1\xf2\ -K\x99\x15\x87Zx{\xe8*\x07\xfa5\x11F\xbd2\ -\x8d\xa1}\xab*~\xb0%\x1fk\xcb\xe5\xb2\xd6M\x84\ -\xce\x96\xd02\xf1h;\x84\xec\xa9\x0c\xe9\xc4\xfez\x86\ -{\x7f\x1fr\x08I\x85\x09\xff\x17\x03\xa7Px\x01\xee\ -Y\xc0a|\x01\xeey\xc0\xc9\xe7\x00\xb7:\xda?\xe1\ -4\xf6\xe7\xf6\xcf\xfdq\xf5\xa0&_\xfd\xea:j#\ ->\xd6\x9b\xa3\xbeCC\x9f)\xc2\x11\x99\x11\xec\x0b\x09\ -'A\xee@\x810Q\xf0\x82\x81\x07B\x84U08\ -\x7f\xccl\xe5\xb0\x938\xd6\x80\x99UPe\xed!\xc1\ -V\x0c\xad(\x10\x16\xb36\x8e\xb4\xf1\x14Q\xd6\xcc\xa9\ -\x15\x85\x90\xad\x18:f\x16\xb89Z\x11\xe62\x22\x95\ -\x9c\xcc\x84O\x88\xf6\x98U\x08\x82\x89u`\xad\x1c\x12\ -\xeb\x8f\x19w\xf26\x00\xed\x96\xc7\xe8\xe9\xf2\x1f\xc7Y\ -wU\xe8!F\xbe\x22\xd4\x5c\xce\xc8\x9bo\xcap8\ -aA\x8e\xec\x9f\xa4\xf8\xf8\xb2\xf3M\xd8#O\xd9\x83\ -|\xce$\x0f\xa5a\x0f\x5c'('\x86\x1d\x16z$\ -m\xe5)T\xc9\xca\x02\x8e\x1bV\xc1\xa5l\x15DZ\ -\xae\x00\x83\xda\x01\x98Y&\x91\x96\x1a*4\x92\x12\xcc\ -\x96\x9a\x10\x19B\xad\xe1I\x86\xc2r\x81p`\x9e\x19\ -'1\x9c\x80\xe0Bc\xc8\x92X\x0d\xc3R\xcd\x08\x14\ -\xa1\xe7\x0f\x9c\x0bZ\x82Qid\x0c4\xe5-]U\ -\xeb\x80\x05; \x18\x09\x95\xe8\xe9~ \x03a/t\ -\x9aW\xc0\x99S\x10\xbebgk\x132\x5cA\xc0'\ -$\x9fLh\xb4t\xf6\xf4\xca\xf7\xc8n\xe2\x0c.\x0a\ -\xf6*\x18\xad\xe3\xea\x16\xae\xa1\x8eY\x97\xd3z\x8eK\ -g\xee#\x0cN\xbepl<`6\x5cb\x081\x97\ -h!\xc3\xb1\xbe\xbf\x8a\x11\xc39\x81\xc9\xd8\xd6\xdd\xe4\ -\xa0\x0b$c\x8a\xab\xe3\x0e2\x80QI\xe5\x01\x8a:\ -\xcf\xb3M=\xfeeGe.\xae>\xa3R u\x10\ -\xbf\xba\xb7\x068\x8f\xc3\x99}l0\xd728\xbf\x13\ -\x81F\x17Dkh\xd3\x90\x92QN\xa7\x1a\x9a\xf1C\ -\xfd\x11\x93\xf1\x9b\xffB9\xff\x128\x99\x1fb\xb8%\ -\xcbc8\x19\xf5\xc3pt7>F\xd3\xbb\xe0y\x16\ -O!N\xf1\xa4\xb0is\xd8+\xf9Y@\x05\xb9 \ -:\x81(\x85m\x0b\x09\xca\xf1D\xc3\x0b\xc1p\xa8\xce\ -ST\x5c\x10\x9dF\x14\x0e\xebB\xe0\x89\x9e\x87\x17\x04\ -\x9cO\xcf#\xea\xc9\x0b\xa4g \x15$\x14t\xa2\xed\ -\xe18\xa6\x98z\xa2\xed=~\xc1t\x02S\xc6}8\ -b\xc3\x90\xe74\xfe\xe5\xf5t\x0eS8;\x85XM\ -\xb7>A\xf4\xa9\xd6\xbf\x10\xf5<\xa8!!\xcf\xeb}\ -\xef\x7f\xf4\x92\x9a\x07\xab\xee/_\xe6\xe7\xdc\xfc\xfd\x13\ -~\xfe\x01\xa1d\x16\xaa\ -\x00\x00\x0e\xfb\ +oke-width:1.3683\ +3\x22\x0a x=\x2216.\ +495193\x22\x0a y\ +=\x2240.088543\x22\x0a \ + id=\x22text1109\ +0\x22\x0a transf\ +orm=\x22scale(0.966\ +59338,1.0345612)\ +\x22>\xce\xb9\x0a +<\ +/tspan>\x0a \ + \x0a \x0a\x0a\ +\x00\x00\x07{\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -45\x22 />\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00(\x99\ +0/svg\x22\x0a xmlns=\ +\x22http://www.w3.o\ +rg/2000/svg\x22\x0a \ +xmlns:sodipodi=\x22\ +http://sodipodi.\ +sourceforge.net/\ +DTD/sodipodi-0.d\ +td\x22\x0a xmlns:ink\ +scape=\x22http://ww\ +w.inkscape.org/n\ +amespaces/inksca\ +pe\x22\x0a version=\x22\ +1.1\x22\x0a id=\x22svg2\ +\x22\x0a width=\x22192\x22\ +\x0a height=\x22192\x22\ +\x0a viewBox=\x220 0\ + 192 192\x22\x0a sod\ +ipodi:docname=\x22l\ +oadc.svg\x22\x0a ink\ +scape:version=\x220\ +.92.2 (5c3e80d, \ +2017-08-06)\x22>\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x04\xb2\ +\x00\ +\x00\x119x\xda\xddW\xdfo\xdb6\x10~\xcf_!\ +(/\x0dfQ$EI\xa4j\xbb\xc0\x10\x14\xd8\xc3\ +^\xb6\x0e{\x1c\x18\x89\xb6\xd5\xc8\xa2A\xd1v\x92\xbf\ +\xbeGY?\xec\xc4\x09\xd25\xed\xb0\xda\x09\xe0\xbb\xfb\ +\x8e\xe4}w\xc7\x93\xa6\x1f\xee\xd6\x95\xb7S\xa6)u\ +=\xf3\x09\xc2\xbe\xa7\xea\x5c\x17e\xbd\x9c\xf9\x7f}\xfa\ +\x18p\xdfk\xac\xac\x0bY\xe9Z\xcd\xfcZ\xfb\x1f\xe6\ +\x17\xd3f\xb7\xbc\xf0<\x0f\x9c\xeb&+\xf2\x99\xbf\xb2\ +v\x93\x85\xe1fk*\xa4\xcd2,\xf2PUj\xad\ +j\xdb\x84\x04\x91\xd0\x1f\xe1\xf9\x08\xcf\x8d\x92\xb6\xdc\xa9\ +\x5c\xaf\xd7\xbanZ\xcf\xba\xb9<\x02\x9bb1\xa0\xf7\ +\xfb=\xdaG-\x88\x08!BLCJ\x03@\x04\xcd\ +}m\xe5]p\xea\x0ag<\xe7J1\xc6!\xd8F\ +\xe4\xebPY\x03\xacl\xe0\x7f\x80\xf7\x0a\xd4\xe8\xad\xc9\ +\xd5\x02\xfc\x14\xaa\x95\x0d\xaf?]\x0f\xc6\x00\xa3\xc2\x16\ +G\xcb\x94\xf5m\x93\xcb\x8d:\xd9\xb5W\x1e\x18\x90k\ +\xd5ld\xae\x9a\xb0\xd7\xb7\xfe\xbd\x90\x1d\xe7\xcb{\xc7\ +p\x14K\xb6\xb8ab\xe2QLq\x80\xe3\x00\x93\xab\ +\xd6\xa5?EV\xe8\xdc-;\xf3eQ\xfc\x03\x09]\ +\xaa\x1a\xf5\xe1\x95\xc5\xcc\x87\xdfI+\x1c\xadM\x0e\x8a\ +R\xed\x7f\xd5w3\x1f{\xd8c\x1c\xfeZ\xf5J\x95\ +\xcb\x95\x9d\xf9\x9d\xb8/\x0b\xbbj\xa59\x88\xd3\xb5\xb2\ +\xb2\x90V:\xd3a\x83^Ch\x8b\x00\x0c$.\xfb\ +\xe3\xfa\xe3A\x029\xcf\xb3\xbf\xb5\xb9\xedD\xf88\x80\ +\xbc\xd1[\xd8\xc5\x9f\x0f\xeai\x91g@\xf5Z\xday\ +\xb9\x868\x5c\x96~\x01j\xa7\xe1h8\x01\xdb\xfb\x8d\ +\x1a\x17=,k\xd4!gg\x0b\xb7\xc8\xd7\xa5s\x0a\ +\xff\xb4eU\xfd\xe66\xf1\xbd\xf0\xd1\xa2\xa5\xad\xd4\xbc\ +\xdd\xf3\xf0\xb3\x8f\x22\xec\xc2\xe8\x82\x0c\x8f\xa2\x9c\x86=\ +\x09\xadT\xa8E3\xf2\xe3$\x82\xbb}\xa6C\xde\x5c\ +\xd2\x0a\x97\x82\x0e\xd9\x97\x00\xe4s\xeb\xba+0\xdaB\ +\x0b\xb9\x84a\xff\x11&\xdf\x1a\xe3 \x95\xbcW\xe6(\ +\xc5G\x90}Y\x17z\x1f\xac\xe5]\xb9.\x1f\x14\x9c\ +\x83<\x03\xb9\x9f\xf9\xf49w(\x8e\xe4\xe9\xee\xe0\xc1\ +P\x1a\x89\x98\xf2'\x8b\xe6\xe0\x12\x10\x02\xf5\x1ba\x92\ +>\xb6>h\xbd\x9e\xf9\x11bi\x92`\xce:s\xb3\ +\xd2\xfb\xa5q\x5c-d\xd5(\x7f\xe4n \x89?s\ +\xc0\xbeX\xc9\x99\xcd:HW\xc0\x84?\x8dd\x03\x05\ +\xd0\xac$\xa0\x80\x83sF\x0d\xcd\x0a\x153\xa6`\xb9\ +-\x0beu\xa5\x8c\xac]\x91\x91\xc1\x00\xe7?\xa7\xd7\ +7\x9fUn\xcfYn\xb4)\x94\x19v '\xea\x5c\ +W\x1a2{\x99\xb4\x9f\xce\xe4N\xd4\x1b\x16\xed\xa7\xaf\ +\xaa\x8d\xb4\xab\x03f\x01\x85\xed.\xf3\xfa\x98Fg\xee\ +\xe3\x03\xf1wh\xf8\x15\xe3;\xc6W\x01\xe3\x0f\xfd\x22\ +\xcb\x03\xc0\xc2A\x1b\xd7n\xd0\xda\xd2\x9a\xf2\xee\x1dF\ +$\xe1\x98a\x16M\xb0\xfb\x8e\x22\xa5\x08s\x9a&t\ +\x12$(!)e1\xbf:\xdax\xc9\xa3>\xae\xc6\ +\xdeW\x10\xbe;_v)\x95\xfb\xbewB\xd01\x90\ +\x91\xf7\x8d5\xfaV\x0d\xd6\x83\x18Te\xad !\x99\ +\xd1\xdb\xba\xe8\x95\x83S\x7f\xe7\x8c\x0c\x1c\xdd\x8d\xb5\x86\ +dA\xbf\xc3 \xc8s\xbf7\x8f\xb5\xaakX\xdaj\ +\x13@C\xed\xa4\xdd\x1a5fzd\x8e\x13:\xe8\xdc\ +}\xe7\x89\x18aAD\x1aM\xe2\x04A\xd0\x94E\x1e\ +\x06\x15c\xe9$\x15(\x151\x16\xe9\xe0\xf2\x8a\xc0[\ +\xd1l+\x95\xa9\x9d\x82C\x17\xcfP\xd1\x96rF\x92\ +\x17\xa9q\xca\xcf\xba\xac3\xb8\xeb\x94\xe9\xb5\xadP\xc1\ +]`3\xd6\xeb\x0a\x09\xc5o\x8c\xbc\xcf\x5c\xbd<\xa5\ +\xb6\xbf\x1a\xbf3\xb9AtJ/\x89\x18\x12\x09\x012\ +\x81\xe8\x18X\xe5\xa9\x17\x1cx%\x98OZ\xa6\xe3\x9f\ +\x86\xdei\xb8|\xd4\xc2=5\x02\xa7c\xcf\x02-\x09\ +\xe2D\x10\x025\x86\x04\xa3\x98\x8b\xc4U\x1d\xe1)\x9d\ +\x10\x8aR\x1c\xa7L\xb0o\xed\xb6\x03\x07\x11\x82\xc7\xb0\ +X\xfcX\x22\xce1 \x8e\x19\x10(\x81\x8b'\x8e\x93\ +\x09\xc5(Mx\x14\x11\x8f0\xc4\x22\x12\xa5\x82M\xe0\ +\x81\x0c3\x9a\xbe\xc0\xc0K!\xb3\x7f\x11\xecc2_\ +\x13\xfdi\x16^\x88\x9d\x90\x93\xecG\x88@\xdd\x132\ +\xa1)bq\xc2p\xecq\x04\xe1Fq\xdcF.\xb8\ +\xa0o\x95\xfc\x88'\x9c\xfe\xe7\xc9'\xd1\x09\x01)\xa2\ +\x98\x117t\xa0\xfe)\xe7\x5cx.n\x02\x9d\xe0\xea\ +?\xc6\x98\x90\xf8\xcd\xca\x9f2\x91\xfeX\x06\x96\xdfw\ +N\x9e\x0e\xe5\xe1\xce=7\xedq\x02\xefHI\xc2\xba\ +i?\x88\x14A\xf7\xa5\x11\xbc\x8e@\xe5a`H\xb0\ +\xab\xb3\xf3\xf7\x7f{%\x7f\xc3\x98?\x1eh\xc9W\x8f\ +\xc3g\xa6\xea\xf9\x09\xfcs\xd0\xfbuc\xfe\xe4y!\ +H\xdf\x96\xe0v\x06O\xdd\xfb\xe6\xfc\xe2\x0b\xf3\x95L\ +\xd2\ +\x00\x00\x12\x86\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0d\x0a \ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x04\xec\ -\x00\ -\x00\x10\x84x\xda\xe5WK\x8f\xdb6\x10\xbe\x07\xc8\x7f\ -\x10\x94K\x82J\x14_\xe2C\xb17@\x11\x04\xe8\xa1\ -\x976E\xcf\x8aD\xdb\xcaJ\xa2!\xd1k;\xbf>\ -#\xc9\x92\xe5];M\x91 )Pc\x17\xf6\x0c\x87\ -\xe4\xcc\xc7y.\xde\x1c\xaa\xd2{0M[\xd8z\xe9\ -\x13\x84}\xcf\xd4\x99\xcd\x8bz\xbd\xf4\xffz\xff.T\ -\xbe\xd7\xba\xb4\xce\xd3\xd2\xd6f\xe9\xd7\xd6\x7fs\xf7\xfc\ -\xd9\xa2}X?\x7f\xe6y\x1el\xaf\xdb$\xcf\x96\xfe\ -\xc6\xb9m\x12E\xdb]S\x22\xdb\xac\xa3<\x8bLi\ -*S\xbb6\x22\x88D\xfeL>;\xcbg\x8dI]\ -\xf1`2[U\xb6n\xfb\xadu\xfbb.\xdd\xe4\xab\ -I|\xbf\xdf\xa3=\xeb\xa5\x88\xd6:\xc24\xa24\x04\ -\x89\xb0=\xd6.=\x84\x8f\xf6\x82\x9e\xd7\xf6R\x8cq\ -\x04k3\xd1\xaf\x14KZ\x00g\x0b\xff\x93\xfc\xc8@\ -\xad\xdd5\x99Y\xc1F\x83j\xe3\xa2\xb7\xef\xdfN\x8b\ -!F\xb9\xcb\xe7\xe7\x14\xf5}\x9b\xa5[sq\xef\xc8\ -\x1c`H+\xd3n\xd3\xcc\xb4\xd1\xc8\x1f\x0e\x18\xa9d\ -z8\x8c4E\xb1\xf7\x92b\x81MFVz\x15x\ -\x14S\x1cb\x1eb\xf5j\xd86\xea\x92\xe46\xeb\xce\ -^\xfa\xbb\xed*C\x93}E\xbe\xf4\x81\x10\x035s\ -\x0ar\xe2\x14f\xff\xab=\xc0m\x1e\xf6\xb8\x82\xbf\x81\ -\xbf1\xc5z\xe3\x96\xfeH\xef\x8b\xdcmz\xf2\xae\xa3\ -\x17\x83\xa7x\x9ek\xd2\xba\x05x\xaa\xa5_\xa5\xae)\ -\x0e/q\x00\xb8H\x86\xb9R$\x98\xfd\x0a$RT\ -3\xc5\x03N\x91\x90XKy\xb2a\xd0r\xad)\x1d\ -\xe9\xd6\x1dK0\xa5u\x8d\xbd7\xc9\x8bU\xffy\xbd\ -*\xcar$\x065@\x91m\xea6\xa7]\xc39\x1d\ -C1\x11\x0a\x7fb\x03\xf7w\x8fI\xc4\x95\x94A\x18\ -#Ih\xcc5\xedYq,\x03\xae\x11V\x0a\x0bz\ -\xder\xd2`~\xe5\xebG\xea\x0cd\xd8#\x9300\ -\x8ej\xa90\x1d\xf9eQ\x1bx\xd0\xa4\xb1\xbb:\x9f\ -3?\xda\xa2\xbe\xe4V\x853MY\xc0W\xc2G^\ -\x9e\xb6\x9b\xb4i\xd2cRC\x90\x8e\x5c\x0b\xaeS\xb8\ -cB\xce\x9aN\x8e\x93\xd9\x1ant\xb6\x09\xb3]\xf3\ -\x90\xba]\x03\x06@\xecGW\xa1\xfa\xb7\x06\xc2\x9bq\ -\xc5\x09\x17\xe4G\x1b\xd8\xbf\x9eF\x8a3!y@\x10\ -\xe3\x92I\xc2\x80%)\x961\xd5\x81BDsI\xd4\ -\xec\xfd.\x17\xcc\x0f\xbbn\xb0\ -\x0b\xfb\xdc8\x0c \xfec!x\xc9\xa6\x93)\xd3\xa3\ -i.[\xf6If_\xd4\xb9\xdd\x87Uz\x80\xf0\xfc\ -d@\x17rK\x06\xd27\x8do-B\xca\x97OO\ -\xefR>'H\xe9X*\xf6t\xf5\xd0\x95\x5c\x0e\xfd\ -\x16!\xfa\xe9\xb5\x9f\xac\xad\xfa\xd2 \xb1bl\xda\xde\ -n\xec~\xddt\xa8\xad\xd2\xb25\xf3\xa1d\x82K\xdd\ -Rs\x1c\x94\x08&7eN\xc3\x13Q\xfc\xa9\xc8\x16\ -|\x01\xf2\x16\x88\x01\x18WWO\xa1;{\x8f\xf5\xae\ -\x80\x90\xb1\xa5\x81\x8a\xd6y\x1c9\xaf\x80\x19W\x17\xec\ -\x87\x8f\x10\x8cW\x97>\xf4\x85y\xba\x85\x5c\xf23[\ -Zx\xea\x17\xa2\xff\x8ck\x9d^\xe3\xcai \xeb]\ -m\xd1E\x0f|\x7f\x06I\x04\xe4\x11\ -\x00\x00\x0d\xfa\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x07^\ +#999999;fill-opa\ +city:1;stroke:#9\ +99999;stroke-opa\ +city:1\x22\x0a i\ +d=\x22g878\x22>\x0a \ +\x0a <\ +path\x0a st\ +yle=\x22fill:#ff2a2\ +a;fill-opacity:1\ +;stroke:#999999;\ +stroke-opacity:1\ +\x22\x0a inksc\ +ape:connector-cu\ +rvature=\x220\x22\x0a \ + d=\x22m -28.51\ +9885,1068.7688 c\ + 0.90506,1.2212 \ +1.246811,2.6732 \ +1.10285,4.0743 l\ + 15.161239,6.500\ +5 c 0.296039,-0.\ +3564 0.63195,-0.\ +6925 1.01758,-0.\ +9783 0.38563,-0.\ +2858 0.804907,-0\ +.5094 1.231945,-\ +0.689 l -1.78370\ +9,-16.2284 c -1.\ +440516,-0.2642 -\ +2.790128,-1.0438\ + -3.730887,-2.31\ +32 -1.970903,-2.\ +6593 -1.41148,-6\ +.4222 1.247784,-\ +8.3931 2.659263,\ +-1.9709 6.422130\ +6,-1.4115 8.3930\ +326,1.2478 1.970\ +9022,2.6592 1.41\ +14784,6.4221 -1.\ +247785,8.393 -0.\ +385631,0.2858 -0\ +.804907,0.5095 -\ +1.231945,0.6891 \ +l 1.783709,16.22\ +83 c 1.4405165,0\ +.2642 2.7901283,\ +1.0439 3.730888,\ +2.3133 1.9709023\ +6,2.6593 1.41151\ +19,6.4221 -1.247\ +7515,8.393 -2.65\ +92635,1.9709 -6.\ +4221301,1.4115 -\ +8.3930331,-1.247\ +8 -0.940792,-1.2\ +694 -1.294168,-2\ +.7874 -1.127876,\ +-4.2425 l -15.16\ +1273,-6.5003 c -\ +0.277881,0.3304 \ +-0.595667,0.6406\ + -0.957189,0.908\ +6 -2.586939,1.91\ +73 -6.237918,1.3\ +745 -8.155238,-1\ +.2124 -1.917319,\ +-2.587 -1.374518\ +,-6.238 1.212422\ +,-8.1553 2.58693\ +9,-1.9173 6.2379\ +18,-1.3745 8.155\ +237,1.2124 z\x22\x0a \ + id=\x22path2\ +-3\x22 />\x0a \x0a \ + \x0a \x0a\x0a\ +\x00\x00\x09-\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x1a\ +dow-x=\x2254\x22\x0a \ +inkscape:window-\ +y=\x22-8\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22svg2\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a \ + \x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x09\x09\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview8\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x2213.260417\x22\x0d\ -\x0a inkscape:c\ -x=\x2215.581624\x22\x0d\x0a \ - inkscape:cy=\ -\x2222.07805\x22\x0d\x0a \ - inkscape:window\ --x=\x2257\x22\x0d\x0a in\ -kscape:window-y=\ -\x2227\x22\x0d\x0a inksc\ -ape:window-maxim\ -ized=\x221\x22\x0d\x0a i\ -nkscape:current-\ -layer=\x22svg6\x22 />\x0d\ -\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \ + \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x08\xd1\ +acity:1\x22\x0a \ +sodipodi:nodetyp\ +es=\x22cc\x22 />\x0a <\ +path\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path812-\ +3\x22\x0a d=\x22M 1\ +44.62039,46.8043\ +35 46.040128,146\ +.05858\x22\x0a s\ +tyle=\x22fill:none;\ +fill-rule:evenod\ +d;stroke:#b3b3b3\ +;stroke-width:21\ +;stroke-linecap:\ +round;stroke-lin\ +ejoin:miter;stro\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \ +\x0a\x0a\ +\x00\x00\x0c\xed\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x0d\x8c\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ \ image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1863\x22\x0a inksc\ ape:window-heigh\ -t=\x221018\x22\x0d\x0a i\ -d=\x22namedview8\x22\x0d\x0a\ - showgrid=\x22f\ -alse\x22\x0d\x0a inks\ -cape:zoom=\x226.260\ -4167\x22\x0d\x0a inks\ -cape:cx=\x220.27801\ -26\x22\x0d\x0a inksca\ -pe:cy=\x2243.968298\ -\x22\x0d\x0a inkscape\ -:window-x=\x2272\x22\x0d\x0a\ - inkscape:wi\ -ndow-y=\x2225\x22\x0d\x0a \ +t=\x221025\x22\x0a id\ +=\x22namedview6\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x223.390625\ +\x22\x0a inkscape:\ +cx=\x22-152.89201\x22\x0a\ + inkscape:cy\ +=\x2282.051545\x22\x0a \ inkscape:windo\ -w-maximized=\x221\x22\x0d\ -\x0a inkscape:c\ -urrent-layer=\x22g4\ -544\x22 />\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04U\ +w-x=\x2257\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg4\x22 />\x0a \ +\x0a \x0a \x0a \ +\x0a \ + Bus\x0a \ +\x0a\x0a\ +\x00\x00\x07\x9e\ \x00\ -\x00\x13#x\xda\xed\x97M\x8f\xdb6\x10\x86\xef\x01\xf2\ -\x1fT\xed%AW\x14I}+\xd6\x06h\x17\x01r\ -\xe8\xa5MQ\xa0\x97\x80+\xd1\xb6\xb2\x92(P\xf4\xda\ -\xce\xaf\xefP\x12eym\x03Aa\x14=X\xc0b\ -\xcdw\x86\xe4\xcc3#\xda\x5c|\xdc\xd5\x95\xf5\xc2e\ -W\x8a&\xb3\x09\xc2\xb6\xc5\x9b\x5c\x14e\xb3\xca\xec?\ -\xbf|rb\xdb\xea\x14k\x0aV\x89\x86gv#\xec\ -\x8f\x0fo\xdf,~r\x1c\xebW\xc9\x99\xe2\x85\xb5-\ -\xd5\xda\xfa\xdc~y\x9c\x8c\x0eF\x85*\xe6\xeb\x18\xb0G\xfb\x1e\ -\xd1nX\xcd\xbb\x96\xe5\xbcs\x8d>,0+6\x19\ -\x94\xb2\xc8l\x88\x93\x0e\xa3mY\xa85X\x93q\xbc\ -\xe6\xe5j\xadf\xc2K\xc9\xb7\xbf\x88]fc\x0b[\ -\xa0Z\x93\xc5\xc4\x9b\x16\x22\xd7\xfbg6\xeb\xbar\xd5\ -|U\xe2k+\xc5\xb2\xac8\x9a\x80\x98\xa8\xd2) \ -\x8c\x12\x8a\x02\xeb\x1d\xc5!\xe69Y&\xcb{\x8bb\ -\x8a\x1d\xec;8~o?\xe8y\x8b\x9a+V0\xc5\ -\xfaE\x86\xe0\x8d\x14\x0f.\xe0\x045M\x7f\x7f\xfc4\ -\x0eA\xc8\xf3\xf4/!\x9f\xcd\x18\x1e\xed\xc2\x9e\xc4\x06\ -R\xb3\x1f\x0e\xfa\xa2\xc8S\xa8B\xcd\xd4CY\xb3\x15\ -\xd7\x15\xfc\x19\xa0/\xdc\x83\xe1\xd8[\xed[>[w\ -XY\xf2\xa1\xa0g[\xbb\xc8\xebR\xcfr\xffPe\ -U}\xd6\xdb\xd8\x96\xfbz\xd9RU|\xa6.\xdc1\ -\x07\x93\xa3;Or\xe1\x1a\x08\xc3\xb0\xe0\xcbnFH\ -\x0fC\xb3\xc7b\xaa\x93.R\xa1\xeb9\xba\xb6\x10I\ -.*!3\xfbn\xd9?\xf6hy\x12\xb2\xe0\xd2\xd8\ -\xc2\xfe9\xb6\x09h6\xc8\x0a\x1a\xc5\xe8\xe2\xe9\x1b\xcf\ -\x95\x12\x15\x97\xac\xd1(\x086\xa6\x95\x84.;k\xd8\ -\x94\x05?k\x99\xfaE\x079mv\xde\xdc\xadY!\ -\xb6\x99MO\xac\xdb\xb2\x01\x8bc\x9a<\xf6\xe3K.\ -S\xdfcr\xf0\x01\x94\x133\xdf\xa8\xddZluB\ -\x99\xbddU\xc7O\x16\xfc.D\xad_\xb7 \x0c\x08\ -\xf6Oc\xca\xe1]\xa2~\x84\x02\xeaE\xe4\xd4\xba\xef\ -\xdf=D\x22\x12\x87\x97\x82\x85\x15\xa2\x8b\xc9\xc2\x024\ -\xb8d\xac\xd9\xae\xac\xcb\xef\xbc\x98\x15\xee\xb0\xf7FJ\ -8\x83\x9d\x8a\xed\xb9\x1c\x0f\x09\xd3D\x12jk\x00\xa8\ -}\x05\xb5\x1a\x8b\x92\x92\x0f\xf0\xa6W\xe9]\xd2?\xfd\ -\xc09\xd8:%\xc53O\xefp\xff\x8c\xc3\xa1 \xa9\ -\x87\x12\x1cx\x11N\x02\xa3We\xc3!\x94T\x8aM\ -S\xcc\xc5o\xa2l\x8eUx\xa7\xb8\xac \x19\x95\xfa\ -F+\x18\xb4\x82\x94l\x9f6\xf0\xf5eT\x13\x0c\xfe\ -\xd0\xb2\x12\xd2\xeb\xfb7\xad\x99|\x86\xa3\xc8\x1a\x9c,\ -\x1d\xf6\xbc\xee:\xdf\x98P\xc7s&\x96c\x17Q\x8c\ -\xc20\xc6\xd83\xbai\x9d\x13\x03\x94\x89\xd0\x08Q\xea\ -\x85\x89\xd1\xa0:1\x8a\xbc$\xa2\xf1\xa4I]sD\ -=\xac\xe5\x1bq'p\xa2k3\xf7|D<\xea{\ -7\xe6\x17\x99\x93k3\x0f\x128\xe3\x02\xe2{7\xe6\ -\x97\x98\xe3\xab\x9f->JH\x14\x07\xfe\x8d\xf9%\xe6\ -\xf4\xda\xcc\x09\xc1\xc8#8\x08n\xcc/2w\xbc\xab\ -S\xf7\x02\x14a\x8f\x867\xea\x97\xa9\x87W\xa7\x1e\x12\ -\x04y'\xf1\x7fO=D~\xe2G>\xf5\x92\xff\xf9\ -\x99~\xf2\xeb\x05~|\xc0O}?\x0a^S?1\ -\xe8\xabA\x88\xe0\x9aB\x03oF=\x8a\xa0\xd5\x01\xfb\ -\x11u\x8a\xb0\x1f\x92\x18\x8e\x1dC\xbdej}L\xfd\ -GX\x8f\xd6#\xd6PQ\x1cD4\xf2\xc3v\xf7/\ -hO\x9b\x98x\x01\xd1oV\x0c\xed\x84\xc3\x90\x90{\ -\xf8\x96\x8a\xa30H\x22\xady\x90n\x14\xde\xc3\x01\x8a\ -\xfc0\xa2\xc4\xd2\x9fB\x12\xe0\xe4>\x09\x90\xe7\x93$\ -\xf1\xad\xbf\xe7\xb4u\x9e\x09>s\xb3\x12\x0d\x84\xa8\x84\ -t\xe0&\xf3\xc2\xd4F\xf2\xd9\x95\xf1p\x0d\x16p\xe7\ -\x84\xfbx\x97\xd99<\x03\xbe\x85\xbe\xf9\xc3\xff\x7f\x00\ -\xa3\x8a\x9bn\ -\x00\x00\x08\x17\ +\x00&\x19x\xda\xddZ\xdd\x93\xe2\xb8\x11\x7f\x9f\xbf\xc2\ +\xf1\xbe\xecV\xb0\xac\xd6\xb7\x08\xccU\xe5\xb6\xae\xea^\ +\x93\xbb\xba\xc7\x94\xb1\x0d\xe3\xac\xb1)\xdb\x0c3\xf7\xd7\ +\xa7e\xb0\x01\x1b\xae\xf6v\xc8\x0e\x89\x99\xa9B\xea\x96\ +\xd4\xfa\xa9?ef?\xbc\xacs\xef9\xad\xea\xac,\ +\xe6>\x10\xea{i\x11\x97IV\xac\xe6\xfe\xaf\xbf\xfc\ +\x14\x18\xdf\xab\x9b\xa8H\xa2\xbc,\xd2\xb9_\x94\xfe\x0f\ +\x8f\x0f\xb3\xbf\x04\x81\xf7c\x95FM\x9ax\xbb\xacy\ +\xf2~.\xbe\xd4q\xb4I\xbd\x8fOM\xb3\x99\x86\xe1\ +n\xb7#\xd9\xa1\x93\x94\xd5*\xfc\xe4\x05\xc1\xe3\xc3\xc3\ +\xac~^=x\x9e\x87\xeb\x16\xf54\x89\xe7\xfea\xc0\ +f[\xe5-c\x12\x87i\x9e\xae\xd3\xa2\xa9C \x10\ +\xfaG\xf6\xf8\xc8\x1e\xbb\xd5\xb3\xe74.\xd7\xeb\xb2\xa8\ +\xdb\x91E\xfd\xe1\x84\xb9J\x96=\xb7\x93f\xc7[&\ +\xb0\xd6\x86\x94\x85\x8c\x05\xc8\x11\xd4\xafE\x13\xbd\x04\xe7\ +CQ\xc6KC\x19\xa54D\xda\x91\xf3\xeb\xb8\xa65\ +\x02\xba\xc1\xff\x9e\xbd\xeb u\xb9\xad\xe2t\x89\xe3R\ +R\xa4M\xf8\xf9\x97\xcf=1\xa0$i\x92\x93i:\ +<\xcfV=\x03\xb9\x88\xd6i\xbd\x89\xe2\xb4\x0e\xbb\xfe\ +v\xfc.K\x9a\xa7\xb9/L\xdbzJ\xb3\xd5S\xd3\ +7\x9f\xb3t\xf7\xf7\xf2e\xeeS\x8fz\xc2\xe0\x1f\xa1\ +\xee\x81\x96\x9a%s\x1fw\xc3\xf6\xacGM9P\x0f\ +\xabL{\x0a%\x96\x11\xee}d\x82J)\xd4\xc4c\ +\x14L@y\x00\xf0\xa9\x1d\xd2mo\x9a\x94\xb1\x93w\ +\xee\xc7e^V\xffZUYB\x1cn\x8f\xc85K\ +\xd2e\xed\xb8\xf7\x02\xb8\x96\xf0\xbd\xb0%\xf5\x13\xb8\xd1\ +\x89\x93\xfe\xc8\xb8\x88\xea\xfd\x8e=o\x13\xad\xd2v\xe6\ +\xb9\xffa\xd9>\x07\xc2\xa2\xac\x92\xb4\xeaH\xaa}\xce\ +H%\x22\x985\xaf{{8\xcc\xdd\xed\xd3\xcd\xda\xd3\ +\xe9ez\xfd\x14%\xe5n\xee\xb3!\xf1\xf7\xb2\x5c\xe3\ +\xac\x8c\x80\x90\x86\xf3!9\xc63\x00I8\x13R\xc3\ +\x88\x88\xeb1M\x0ch\x0abHD(\xb7\xceb\x82\ +m\x915\xa8\x95\x9b\x97\xd1\xf0mU9\x86\xd2\ +I\x00\x94\x0a\xc2\x15c\x9f:\xd4W\xdd6\xdc\x1c\xa7\ +\x8aw6\x09\x82Xe/\x1f)1J\x81\xe2\x92O\ +\xa8\xfb\x1c\x9b\x8c(\xa9\xb5\xd1v\x02\x5c\x13\xd0\x8c\x1f\ +\x1cJ\xab\xc3\xcdk\x8e\x12/\x11\xbd\xe9\xc1\xda\xffV\ +7U\xf9%\x9d~\x10\x89\xfb\xf4\xe79\xdbD\xcd\xd3\ +\xf1t\x8e\x16R\x16E\x1a7e\x15\xa0\xad)\xb8`g\xe8\ +\x1d\xadvv\xc6\x0d\xd1J 0\x92\x08e\x0c\xb7\x13\ +E\x18\xa3\xdf\xaeO\x0b\xbd\x5c\x0a5\xb23\xf4r\x96\ +\xdd\x97\xff\xb1c;\xe3\xe8r\xa4t\x8e\x99#\x1e\xd2\ +z\xc0\xf1H-7\x16&@\xac\xd5o\xf1?zy\ +\xc9/K\x5c\x06\xf8\x1d\xe1\xa2\xc7\x01\x0b\xb1\x00\xa5L\ +\xab/\x14\x13R\x06\x9e$\x00@\x8dFu\x11\xe8\xb4\ +\xdf\xe0~N\xe2o\x0f\x8b\x16\x9c\x1aA\xe1\x9e`\x19\ +\x85+\x81\xc7\x07RQ\xd8\x9b\x91\xa4Zx\x18\xda\xad\ +\xe4\xadwA\xa5\xa7o\x00&V\xcb%7#;\xe2\ +Ti\xd0\xf6\x9e\xfc\xcb\xc8\x8e0\xe5bF\x00\x13.\ +\x8e\x0b\x22\x85\xb5h[\xe8\xa1\x193\x13\x97\xe9P\x0e\ +7\xc6\xc5\x02&z\xf6\xae\xf4e\xe4v\x05#\xd2\xa0\ +{qQ\x1cC\xba\xe6\xc2\x0b,q\x9c\x92\xb9\xb4\x8f\ +K\x05op/\x0b=v/\xdaR\x81\xab\xddS8\ +\x92\xfc\x82{\xa1\xc6\xd2V]0f\xa3My\xb1G\ +\x09\xa7T\x03\xe6\xc3\x14!b\xca\x13.\xe1\x01@\xa4\ +4\x91\x80\x99\xe1\xb0\xe3\x0d.\xc8\xc5\xf2\x91F1\x83\ +^_\x8a;\x82\xee,\xcb\xdbGr@\xb7\xc3%k\ +3f\x8bE\x8f\xd1\x9eA\xd1\xa5\xd2X\x03\x81>\x03\ +\xfb\x16\xa8hL:%\xa3w\x15\xaf \x18\xa9\x14g\ +\xc4`\xea\xa7\x5c\xea\xc7\x81\x08\x8d\x0a\x84\x8ad@a\ +*\xe8\x14\xc6\x22To\xb05\x93\x5c\xb05N9\xe7\ +\x96\xdd\x0c\x9a8\xab\xe2\xfc\xe4n\xa0r\x97L\xa7Q\ +\xc8]\xf3`\x09m\x08\x87\xb3*\xd3\xdd\x0d1\xe7w\ +\xa55\xe6\x02f(\xa6\xfa\x9a\xcd\xf7R\xfd!\x16\x8a\ +\x0d\xb1\x80\xef\x0d\x01fi\xc0\xed\x10\x02\xae\xd0/\xa0\ +\x13\x91W \x08\xf8\xad@\xc0\x94\x17\xb3\xbbw\x06\x01\ +c\x0aW\xa0\x06 \x886\x815g\x89\xeb\x19\x087\ +\xd3\x04\xbbp\xba\xf0\xce p\xe7\x045\x1f\x82\x801\ +\x84\x0a.\xf85\x10\xf4\xed\xcca|\xfb\xf2\xddAp\ +\xc5.\xa6\xe6C\x8f`\x10\x1a\xab%\xbb\x06\x82\xbc\x15\ +\x08\x97J\xe3\xef\x0f\x82t\x97;0\x00\x01\xd3Q\xe6\ +R\xf6\xab p\xf9\xffe\x0fX\xa7I\x90\x03\x140\ +\xe1\xb2\x0aU\xc4\x5cu\x0a\xecv\x061\xceK\xbf\xbf\ +kdX\x90\x98\xa1.\x08,\xd0\xb0H9K\xd4\xcf\ +P\xb0\xb7\x02\x81Rw+\xf2\xdeA\x92\x11e\xd50\ +>\x00fG\xc2\x02\xbb\xaa\x0ap+\x10\x22{\x07\xae\ +\x11\x93d\xfc\x07\xcd\xfd\x1aD\ +\x00\x00\x10\x95\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#5555ff;s\ -troke-width:4;st\ -roke:none;stroke\ --opacity:1;strok\ -e-miterlimit:4;s\ -troke-dasharray:\ -none\x22\x0d\x0a d=\x22m\ - 37.559322,153.6\ -2712 v -8 h 56 5\ -5.999998 v 8 8 h\ - -55.999998 -56 \ -z m 28,-52.66667\ - -27.30894,-27.3\ -33331 h 15.65447\ -1 15.654469 v -2\ -4 -24 h 24 23.99\ -9998 v 24 24 h 1\ -5.65447 15.65446\ - l -27.30893,27.\ -333331 c -15.019\ -92,15.03334 -27.\ -619918,27.33334 \ --27.999998,27.33\ -334 -0.38008,0 -\ -12.98008,-12.3 -\ -28,-27.33334 z\x22\x0d\ -\x0a id=\x22path81\ -7\x22\x0d\x0a inkscap\ -e:connector-curv\ -ature=\x220\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x07\xd4\ +69\x22\x0a inkscap\ +e:window-y=\x2227\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +g4150\x22\x0a inks\ +cape:pagechecker\ +board=\x220\x22 />\x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + fill=\x22none\x22\x0a \ + id=\x22path4\x22 /\ +>\x0a \x0a <\ +g\x0a transfo\ +rm=\x22translate(1.\ +0067283,-25.8872\ +99)\x22\x0a id=\x22\ +g4144\x22\x0a st\ +yle=\x22stroke:#1a1\ +a1a\x22 />\x0a \x0a \x0a \x0a \x0a \ + \x0a \ + \x0a\ + \x0a\ + \x0a \x0a \x0a\x0a\ +\x00\x00\x0d;\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0a\ + \x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \ + \x0a \ + \x0a \x0a <\ +/g>\x0a ?\x0a \x0a\x0a\ +\x00\x00\x1b\xfb\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \ + \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xb9\ +indow-y=\x2227\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +6\x22\x0a inkscape\ +:pagecheckerboar\ +d=\x220\x22 />\x0a \x0a\x0a\ +\x00\x00\x09@\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ +g/ns#\x22\x0a xmlns:\ +rdf=\x22http://www.\ +w3.org/1999/02/2\ +2-rdf-syntax-ns#\ +\x22\x0a xmlns:svg=\x22\ +http://www.w3.or\ +g/2000/svg\x22\x0a x\ +mlns=\x22http://www\ +.w3.org/2000/svg\ +\x22\x0a xmlns:sodip\ +odi=\x22http://sodi\ +podi.sourceforge\ +.net/DTD/sodipod\ +i-0.dtd\x22\x0a xmln\ +s:inkscape=\x22http\ +://www.inkscape.\ +org/namespaces/i\ +nkscape\x22\x0a widt\ +h=\x2248\x22\x0a height\ +=\x2248\x22\x0a viewBox\ +=\x220 0 48 48\x22\x0a \ +version=\x221.1\x22\x0a \ + id=\x22svg4\x22\x0a so\ +dipodi:docname=\x22\ +Catalogue.svg\x22\x0a \ + inkscape:versi\ +on=\x220.92.3 (2405\ +546, 2018-03-11)\ +\x22>\x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0bc\ +width=\x221851\x22\x0a \ + inkscape:windo\ +w-height=\x221025\x22\x0a\ + id=\x22namedvi\ +ew6\x22\x0a showgr\ +id=\x22false\x22\x0a \ +inkscape:zoom=\x222\ +.4583333\x22\x0a i\ +nkscape:cx=\x22-87.\ +829627\x22\x0a ink\ +scape:cy=\x2265.809\ +318\x22\x0a inksca\ +pe:window-x=\x2269\x22\ +\x0a inkscape:w\ +indow-y=\x2227\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +4\x22 />\x0a \x0a <\ +path\x0a style=\ +\x22fill:none;fill-\ +rule:evenodd;str\ +oke:#999999;stro\ +ke-width:2.35818\ +648;stroke-linec\ +ap:round;stroke-\ +linejoin:bevel;s\ +troke-miterlimit\ +:4;stroke-dashar\ +ray:none;stroke-\ +opacity:1\x22\x0a \ +d=\x22M 3.8266767,1\ +0.457984 C 9.759\ +9467,8.637125 15\ +.594417,9.4085 2\ +4.006067,12.8984\ +61 l 0.23736,25.\ +43598 C 15.02184\ +7,34.983742 9.39\ +67067,34.390537 \ +3.6910067,35.962\ +096 Z\x22\x0a id=\x22\ +path816-3-7-5\x22\x0a \ + inkscape:con\ +nector-curvature\ +=\x220\x22\x0a sodipo\ +di:nodetypes=\x22cc\ +ccc\x22 />\x0a\x0a\ +\x00\x00\x18\x18\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0a\xc1\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\ +image/svg+xml\ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x07\x22\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a<\ +g\x0a id=\x22g2678\ +\x22\x0a transform\ +=\x22matrix(0.55320\ +042,0,0,0.598469\ +42,8.6310018,192\ +.67497)\x22><\ +rect\x0a \ +style=\x22fill:#fff\ +fff;stroke:none\x22\ +\x0a id=\x22\ +rect1013-4-6\x22\x0a \ + width=\x22\ +48.907463\x22\x0a \ + height=\x2238\ +.208954\x22\x0a \ + x=\x22-310.2811\ +9\x22\x0a y=\ +\x22-174.56882\x22 /><\ +rect\x0a \ +style=\x22fill:#fff\ +fff;stroke:none\x22\ +\x0a id=\x22\ +rect1013-1\x22\x0a \ + width=\x2248\ +.907463\x22\x0a \ + height=\x2238.2\ +08954\x22\x0a \ + x=\x22-365.81845\x22\ +\x0a y=\x22-\ +130.41977\x22 />\ +\x0a\ +\x00\x00\x06\x80\ +\x00\ +\x00\x1f6x\xda\xedYKo\xdbF\x10\xbe\xe7W\x10\ +\xf4%AEr\xdf\xbbd$\x07(\x82 =\xf4\xd2\ +\xa6-\xd0K@\x93+\x991E\x0a$e\xd9\xfe\xf5\ +\x9d]\x92\x22\xa9G\x10\xa7A\x9fRb\x873;\xb3\ +\x8fo\xbe\x19\xceF\xf37\x0f\xeb\xdc\xb9\xd7U\x9d\x95\ +\xc5\xc2\xc5>r\x1d]$e\x9a\x15\xab\x85\xfb\xcb\x87\ +w\x9er\x9d\xba\x89\x8b4\xce\xcbB/\xdc\xa2t\xdf\ +\x5c\xbf\x98\xd7\xf7\xab\x17\x8e\xe3\x80sQGi\xb2p\ +o\x9bf\x13\x05\xc1f[\xe5~Y\xad\x824\x09t\ +\xae\xd7\xbah\xea\x00\xfb8p\x07\xf3d0O*\x1d\ +7\xd9\xbdN\xca\xf5\xba,j\xebY\xd4W#\xe3*\ +]\xee\xadw\xbb\x9d\xbf\xa3\xd6\x08\x87a\x18 \x12\x10\ +\xe2\x81\x85W?\x16M\xfc\xe0M]a\x8f\xa7\x5c\x09\ +B(\x80\xb1\xc1\xf2\xcb\xac\xa2\x1aP\xd9\xc0\xcf\xde\xbc\ +W\xf8u\xb9\xad\x12\xbd\x04?\xed\x17\xba\x09\xde~x\ +\xbb\x1f\xf4\x90\x9f6\xe9h\x9a\xac\xb8\xab\x93x\xa3'\ +\xab\xf6\xca\x16\x81x\xad\xebM\x9c\xe8:\xe8\xf5\xd6\x7f\ +\x97\xa5\xcd\xed\xc2\xe5\xd87\xbbC\xd8*ou\xb6\xba\ +m\x0e\xb5\xf7\x99\xde}_>,\x5c\xe4 \x87)\xf8\ +k\xd5Y\xbap\xe1P\xa4\xb5\x19\xa2\xde:\xf5\x8bE\ +\xfb\x11\xe4\x87\xc4g\xce\xcbmqW\x94\xbb\xe2\x955\ +\xebO\x16\xa5eb\xb6\xbaps\x08b\xf1\xf1\xf6q\ +\xa3\xabd{\xa3\x89o\x80\xbb\x06\xdb\xf9Z7q\x1a\ +7\xb1\xf1k\x97\xef5\x98X\x0b\xb0\x81\x00F?\xbd\ +}\xd7J 'I\xf4[Y\xddu\x22|\x8cA|\ +Sn\xe1\x94\xee\xf5^=O\x93\x08 _\xc7\xcdu\ +\xb6\x8eW\xdaD\xeb;\x80x\x1e\x0c\x03\x13\xe3\x06\xf6\ +7L\xdaN[\xe96v'\x09\x9c&\xeb\xcc8\x05\ +?7Y\x9e\xff`\x16q\x9d\xe0`\xd2\xac\xc9\xf5\xa0\ +\x9c\x07\xdd\xee\xbb\xb3\x05\xa3\xc3\xcd\x83\xfe\xecVJ\xf5\ +\xb2\x1e`1\x12F=$\xfbH\x00\xa2\xf5F'&\ +G\xfae\xf7\xf0\x9b\xad-\xdc\xa9)m\x99\xe6L\xa2\ +\xb9\xf9\x08D\xe0\xd4\x17D\xd2\x90:\x91\x83!\xaeT\ +\x12)\xcd\xf3I\x87G\xc3\x9c\xc8\xe1\x02\xf9\x0c#f\ +\x9c\xd0I\xc3\xa7\x85\xcb\xa8\xcf\x84\xc0\xc8\xccF\x94/\ +9\x15\x84\x9d\x9e\xb9\xdb\xa3WV\xd9*\x03~\x09\xea\ +s\xc5\x09V`.|\xc5\x90P|\xea\x09\xd0\x8c0\ +\x80M\xe3.\x04\x10f\x80\xcc>\xed\x111lL\x0d\ +\xf5[\xf7\x0d\x04,)\xf3\xb2Z\xb8WK\xfb\xe9\xe6\ +\xbd)\xab\x14\xa8\xda\x0d\x09\xfb\x99\x0c\x95\x90}\x10z\ +H\x8dN]\xde|\x82\x1d4e\xae\xab\xb80t\xc1\ +=\x1c\xab\x0a\xb2\xf2\x94~\x9b\xa5\xfa\xd4\xc0\x00\x06l\ +o\xbf\xd0\xc9\xd1\xfa6N\xcb\xdd\xc2%\x87\x83\xbb\xac\ +\x80\x01\xaf+\x08X\x09z\xc6\xa2\xaf\x0e\x18\x11\xee\x0e\ +l\xdb\x03\xa5:e}[\xee\xccI\x16\xee2\xcek\ +}8\xdbSY\xae\xed\xdb\x81R\x821;\x1cN\x80\ +_\x1eA\xd8\x87\xf0Pq4\x0a\xc7\xa3\x14C)\xa1\ +$<\xb3OCPyf\x0c\xdc\xc9\xb9\xb1u\xfc\x90\ +\xad\xb3'\x9d\x0e\xa1\x1a\xd6\xddV\x15\xbc\x7f\xbc<~\ +\xd4UW\xf7:\xeel\xe2\xe6\xb6\xb5\x06\xc7\x1f\x1d4\ +C\xce{S&\x7f5\xbf\xdeC\xc9\xfc}\x04\x961\ +>>rY\x14\xc0\x88\xb2\xf2`\x99\xfb\xb8\xd9Vz\ +\x08b\xdd<\xe6 .\xa1jD\x05\xbc6\xfbeW\ +\xc3\xa4+\x86\xf9)\xf3+\x84R\x16\xc7\xaf\xeb\xa6*\ +\xefttEn\xcc\x9fN\xf4:\xbaD\xfdY\x1b \ +Wmj\x1d\xd4\xd5\xb8\xa9\xb2\x87\x97\xd8\x87\x081D\ +\xc5\x0c\x0e5\x03I@J\x09<\x83\xf0\xf8\x14\x0b\x8a\ +\xc2\x99\x87\x95O\x14\xe7\x8a\xbe\xea\xeb\xcd\xaa\xcf\xb7\xd1\ +\x84\xf6\x11*\xbb\x869\x11\x12\x92(\x0a\xb3p_)\ +I\xc2\xf0\xd5$E\xe14\x8c\xed5_s\x9e\xbe\x84\ +\x8eBsz\x22#\x0c~\xadXms\x1d\xe9{]\ +\x94izf%\x9b*\x11\xf21\xa3\x0a+J{}\ +\x9eA\x18\xe3MT\x95\xdb\x22\x1d+?\x95Y1\xd5\ +\xc2\xcb@W9\xd0\xad\x890\xea\x95i\x0cIZU\ +\xf1\xa3\x0d\xf4X[.\x97\xb5n\x22t.v\x96{\ +\xd3B\x07G\xa72\xa4\xc7u\xf3\x0c\xdb\xfe*\xd0\x10\ +\x92\x0a\x13\xfe\x8f\xc5L\xa1\xf0\x82\xd9s1\xc3\xf8\x82\ +\xd9\xb31\x93\xcf\xc7l5-\x94\xd0R\xfd\xa9B\xb9\ +\xef4\xc7\xb1\xf8\xd2\x17\xd3A\xd6\xf0\x91\xda\xb4\xe6\x0e\ +\x0d}\xa6\x08GdF\xb0/$\xb4r\xdc\x81\xb0`\ +\xa2\xe0\x0d\x02\x0f\x84\x08\xab`\xd0N\xccl\xbc\xb0\x93\ +8v\x003\xab\xa0\xca\x8e\x87\x04[1\xb4\xa2@X\ +\xcc\xday\xa4\x9dO\x11e\x879\xb5\xa2\x10\xb2\x15C\ +\xc7\xac\x02\x97;+\xc2ZF\xa4\x92\x93\x99\xf0\x09\xd1\ +\x1e\xb3\x0aA0\xb1\x06\xac\x95Cb\xed1\xe3N\xde\ +N@\xbb\xed1z\xbc\xfd\xa7\xd1\xa1\xbb\x00\xf4\xe8\x22\ +_\x11j.Q\xe4\xf57\xa55\xb4LpD\xf6w\ +\xf2ztE\xf9\x06\xc4\x91G\xc4A>g\x92\x87\xd2\ +\x10\x07\xae\x02\x94\x13C\x0c\x8b:\x926\xe8\x14\x02d\ +e\x01\xcd\x84Up)[\x05\x91\x96&@\x9e\xd6\x01\ +3K\x22\xd2\xb2B\x85FR\x82\xd9(\x13\x22C\x08\ +3<\xc9PX\x1a\x10\x0e\xa43~\x12Cw\x03\x97\ +\x11\xc3\x93\xc4j\x18\x96jF \x00=u\xe0\xcd\xdf\ +r\x8bJ#c`(o\x99\xaaZ\x03,\xd8\x84[\ +$T\xa2g\xfaD\x06\xae\xfe\xef\x99T\x01_\x8e \ +\xf8\x82j\xd6\x1e\xc7\x10\x05\x01\x97\x90\xfc\xecqF\x1b\ +g\x9f\xdf\xf7\x80\xeb&\xce\xa0\xf1\xb7W\xb9h\x1dW\ +wp\x83t\xcc\xbe\x9c\xd6r\x147s\xb9`\xd0\xd3\ +BS8&5\xdcG\x081W_!\xc3\x91\xba\xbf\ +N\x11\xc36\x81\xc9h\xa8\xbb\x8b\x01\xfd%c\x8a\xab\ +\x83\xc41PQI\xe5\x18>\x9d\xe7\xd9\xa6\x1e\xfd\x9f\ +Den\x9c>\xa3R 5\x9e\xbbz\xb0z\xe8\xb1\ +\xa1\x0d\x1f\xe9\xcd\xcd\x0a:r\x22\xd0p\xbd\xb3\xfav\ +\xfbR2\xca\xe9\x89\x0cf|\xa2>\xe0.~\xfdo\ +\x08\xe17\xc7\x91\xf9!\x86\xfb\xad<\xc0\x91Q?\x0c\ +\x87[\xed!\x8c\xde\x05\xc8S@\x0aq\x04$\x85\xca\ +\xcc\xa1\x22\xf2sH\x0ar\x81r\x0a%\x85\xca\x84\x04\ +\xe5\xf88\xb7\x85`8TgI).P\x1eA\x09\ +\xad\xb7\x10\xf88\xbd\xa1\xf6C\xc7y\x16JO^\xb0\ +<\xc6R\x90P\xd0\xe3\x0c\x87\xf6J1u>\xc3=\ +~\x01s\x0a&\xe3>4\xcb\xe0\xf0\xfc\x1c\xbf\xbc{\ +N\x80\x09\xadP\x88\xd5\xc9,'\x88~&\xcb/\xd4\ +<\x89fH\xc8\xd7\xa4\xb9\xf7\x9fy\x03\xcd\x83U\xfb\ +}\x13\xfc37_2^\xbf\xf8\x03\xd0\xde\x0d\xad\ +\x00\x00\x0e\x8f\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a <\ -ellipse\x0d\x0a st\ -yle=\x22fill:#33333\ -3;fill-opacity:1\ -;stroke:#000000;\ -stroke-width:2.4\ -;stroke-linecap:\ -round;stroke-lin\ -ejoin:round;stro\ -ke-opacity:1;pai\ -nt-order:markers\ - stroke fill\x22\x0d\x0a \ - id=\x22path848\x22\ -\x0d\x0a cx=\x2224.28\ -3655\x22\x0d\x0a cy=\x22\ -25.593718\x22\x0d\x0a \ - rx=\x226.8985863\x22\x0d\ -\x0a ry=\x227.1584\ -754\x22 />\x0d\x0a\x0d\ -\x0a\ -\x00\x00\x14\xf8\ -\x00\ -\x01\xaf\xa5x\xda\xed]\xddnc9r\xbe_`\xdf\ -AP\xdf\xcc`-\x9aU\xc5\x9f\xa2\xa6=\x0b\x04\x8b\ -Mr\xb1\x08\x90\x9dI\x80\xdc\x04\x1a\xe9\xd8\xd6\x8e,\ -\x19\x92\xba\xed\xdeW\xcb;\xe4\x99R\x94-K\xf2\xa1\ -'\xddC/\x86f\xd3\xdd\x8d\xb6x\x8e\xce\xcf\xf7\x91\ -\xfc\x8adU\xf1\xfd\x1f\xefo\x16\x83\x8f\xddz3_\ --/\x86\xa0\xf4p\xd0-\xa7\xab\xd9|yu1\xfc\ -\xf1\x87?\x8fx8\xd8l'\xcb\xd9d\xb1Zv\x17\ -\xc3\xe5j\xf8\xc7\xef\x7f\xff\xbb\xf7\x9b\x8fW\xbf\xff\xdd\ -`0\xb8\x9b\xcf\xb6\xd7\x17C\xc3\xc3\xdd\xc7\xebn~\ -u\xbd=|\xfe8\xef\xee\xfeiu\x7f1\xd4\x03=\ -0<\xd8\x97\xcfg\x17C\xb9\x04>\x9eu\xb8?<\ -\x1e_\xfe\xbc\x99Nn\xbb\xf1\xf1!\x85\x83o\xf4D\ -\xeb\xe9\xa5%\x0ag\x03\xd4\x88#-\x7f\xcd\xb7\x0f\xdf\ -\xda\xc8s\xdf\xca\xbf\xf1l5]Nn\xe4q\xbb\xfb\ -\xdb\xc92^\xe0\xbfo\x17\x93\xe5R\xdeJ\xc9m\x1f\ -\xce\x967_n\xc6\xfb;]\x0c\xaf\xb7\xdb\xdb\xf1\xf9\ -\xf9\xdd\xdd\x9d\xda\x17\xaa\xd5\xfa\xea<^is;\x99\ -v\x9b\xf3}\xf9\xf1\x05\xf67}\xba\xc0\xbe@mV\ -\x1f\xd6\xd3\xeeR\xae\xd1\xa9e\xb7=\xff\xd3\x0f\x7fz\ -:8\xd2j\xb6\x9d\x1d_\xe7~!W?y\x8a;\ -\xda\xdd\x1fB\x08\xe7\xbb\xa3G\xa7\xa7ND\xad\xf5\xf9\ -\xb3\xd7\x93\x8f\x9f{\xeazv\xf9\xe2\xed5\x9e\x0b\xd6\ -r\xc6h\xf3i\xb9\x9d\xdc\x8f\x96\x9bw\xc7\xdf\x9dN\ -\x9f\xbe:]w\x93\xed\xfcc7]\xdd\xdc\xac\x96\x9b\ -\x07\x08O\xcf\x9e\x1d\xce\xbe\xfd\xb0^\xecN\x99M\xcf\ -\xbbEw\xd3-\xb7\x9bs\xe1\xfa|\xf8}\xfc\xc2\xfb\ -\x9bn;\x99M\xb6\x93\xdd\xb7\x1f\xea\xcd\xbe\x08\xf0\xe1\ -\x1c9K\x1el\xfc\xef\x7f\xfa\xf3\xe3G)\x98N\xc7\ -\xff\xb9Z\xff\xbc\xff,?\xf1\x94\xc9O\xab\x0fR9\ -\x87\xdf\x1f\xca\xdf\xcf\xa6ca\xe8f\xb2\xfd~~3\ -\xb9\xea\x22(\x7f\x90\xa7|\x7f~8pz\xf6\xf6\xd3\ -mwt\xdd\x87+\xaf\xbb\x07\xb2\x93\xef5\x9b\xde\xcc\ -\xe3\xb7\xce\xff\xba\x9d/\x16\xff\x1ao3\x1c\x9c\x1f\x1e\ -\xf6\xfc\xf1i\xf7os~\xfc:\xef\xcf\xf7\xef\xfb\xf0\ -q\xd6]n\x8e\xc0\x88\x1fA?\x01!\xb5\xa4\x9b\xac\ -\xffy=\x99\xcd\x05\xc9\xa7\xc7|jN\xd3\xd5b\xd1\ -M\x05\x83\xc9\xe2n\xf2i3<\x9c!\xd7:\xfd\xb2\ -\x0b\x00\x07\xa4\xdeo\xb6\xab\xdb\xa3\xd7\xdel?-\xe4\ -mc\xe9H.\xbaZ\x8f\xdf\xe1T\x93\x9d|\xb7+\ -ZI{\x91w\x1e\xc3\xf0\xe8;\xab\xcb\xcbM'\xf7\ -\xd6\xc7\x85\xbb\x9e@\xbe\xe2\x82\xf6'\xa8\xfc\xff7$\ -?e\x0f\x9fqCx\xe1\x86\xe1p\xc3\xf7\xe7\xa7o\ -\x9f\x0d\xe8\xae\xc1\x8e\xaf\xd7\x9d4\xaaw\x09d\x7f\x01\ -yC\x9e\xcd\xe1\x84\xab\xc7\xe2\x1f\x97\xf3\xad\xb4\xfb\x0f\ -\x9bn\xfd\xd7\xd8\x1d\xfd\xdb\xf2\xc7MwtC\xb8\x18\ -Z\x05\x0e\x19\x9d=\x14\x7f\x92b \xa5\x03\x1bwt\ -\xd1{\x94NZ\xba{\xf6\x1a\x8f\x1e\xe6\x93\x14SP\ -\xce{\xb2t\x84\xceo\x02\x83\x0d\x1eK\x80\xa1\xf7\x08\ -?\xacETb\xe7p1\xdc\xc6_\x17\x93m\xf7\x8d\ -\xf4\xe8\xc1\x80TH\xa23T\xd6{\xadA\x84\xe9\xb7\ -\xc7\xd0\xbc\x1d\x0c\x057\xb9\x06\x07w\xa6\x15;k\xc8\ -2\x96\x00\xa1{;\x10\xcaU\xac\xb1R\xf5\xce\xe47\ -\xa3\xd1\x04[\x02\x82\xfcv\x104\xca y\xd2pf\ -\x95\x0bN\xd8/\xa1\x0e\xb2~[]!!\xc4\xbeG\ -j\xa15\x86\xbd-\xa1+\xe4\xb7%'\x0e=\x05\xab\ -\xad\xc8\x0901\x19.\x01\xc37$'#\x19H\x00\ -Y\xbfC\xd0\x06\xe9\x17]\x09\x08\xbe!5\x19\x09p\ -\xdaC\xd0\xee\x8c\x94\x17\xb3\xd4\x17!'\xcco\xaa!\ -{c\x0d\x831R\x0d\x0dx\x0c\xc1\xff\xe6\x18J\xdf\ -\xf2\x96:CR\xd6\xa2\xd5LgF!:\x19\xbb\xb9\ -\x12 4\x0d\xc2\x5c\x08]\x830\x17Bn\x10fB\ -\xf8\xa6\x8c\xebB!lr\x92\x0d\xe1[\x92\x13\xabd\ -\x88,#\xbbp\xe6\x94\x07\x0a\x0e\x8a\x80\xb0\xc9I6\ -\x84MN\xf2 \xf4Z\xbf\xad\xb9\x1a\x8d\xde\xa2\xa3\x87\ -Q2\x85\x80\xb6\x04\x0c\xb1a\x98\x8d\xa1i\x18fc\ -\xe8\x1a\x86\xd9\x18r\xc30\x17Ch\x9a\x92\x8fa\xd3\ -\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\ -b\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\ -\xf9\x186M\xc9\xc6\x90\x9a\xa6\xe4c\xd84%\x1f\xc3\ -\xa6)\xf9\x186M\xc9\xc7\xb0iJ6\x86\xa6iJ\ ->\x86MS\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\ -\xa6dch\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xf9\ -\x186M\xc9\xc7\xb0iJ6\x86\xaeiJ>\x86M\ -S\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6dc\ -\xe8\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xf9\x186M\ -\xc9\xc7\xb0iJ6\x86\xdc4%\x1f\xc3\xa6)\xf9\x18\ -6M\xc9\xc7\xb0iJ>\x86MS\xb21\x0cMS\ -\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6\xe4c\xd8\ -4%\x17Chq\xf4\xaf\x80a\xd3\x94|\x0c\x9b\xa6\ -\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\xb68\xfaW\xc0\ -\xb0iJ>\x86MS\xf21l\x9a\x92\x8fa\xd3\x94\ -l\x0c[\x1c\xfd+`\xd84%\x1f\xc3\xa6)\xf9\x18\ -6M\xc9\xc7\xb0iJ6\x86-\x8e\xfe\x150l\x9a\ -\x92\x8fa\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1b\xc3\ -\x16G\xff\x0a\x186M\xc9\xc7\xb0iJ>\x86MS\ -\xf21l\x9a\x92\x8da\x8b\xa3\x7f\x05\x0c\x9b\xa6\xe4c\ -\xd84%\x1f\xc3\xa6)\xf9\x186M\xc9\xc6\xb0\xc5\xd1\ -\xbf\x02\x86MS\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\ -\x9b\xa6dc\xd8\xe2\xe8_\x01\xc3\xa6)\xf9\x186M\ -\xc9\xc7\xb0iJ>\x86MS\xb21lq\xf4\xaf\x80\ -a\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\ -\xd9\x18\xb68\xfaW\xc0\xb0iJ>\x86MS\xf21\ -l\x9a\x92\x8fa\xd3\x94\x5c\x0c\xb1\xc5\xd1\xbf\x02\x86M\ -S\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6dc\ -\xd8\xe2\xe8_\x01\xc3\xa6)\xf9\x186M\xc9\xc7\xb0i\ -J>\x86MS\xb21lq\xf4\xaf\x80a\xd3\x94|\ -\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\xb68\ -\xfaW\xc0\xb0iJ>\x86MS\xf21l\x9a\x92\x8f\ -a\xd3\x94l\x0c[\x1c\xfd+`\xd84%\x1f\xc3\xa6\ -)\xf9\x186M\xc9\xc7\xb0\x1aMy\x7f>\xeb.7\ -\x0f\xbfnV\xb3\xf9\xad\xfc\x1b/'7\xdd\xec\xe3\xbc\ -\xbb{\xbc\xc3\xed\xe4\xaa\x13$Wk\xc1\xear\xf7\xb3\ -\xbf\xf7O\xab\xf5\xac[\xef\x8f\xb9\xdd\xcf\xe9\xb1\x95`\ -1\xdf~\x92\xb7\xdc\x97\xaf~\xfa\x9bP\xb2]-:\ -y\xc6i'G\x9e\xd4\xe5j=\x9f\xa5\x0f|\x98\xcf\ -\xba\xe4\x91'\xaa\xe3C>\xdd,}xs=\x99\xad\ -\xee.\x86\xd8;z7_\xca\x91\xd1\x9d\xdc\xfeZ\x8e\ -\x9b`_:\xe5\xba\x9b_]o\xe3\x13\x1c&\x91c\ -\x1dy\xc2\xec\xa9jl\xaeWw\xf1\x85.\x86\x97\x93\ -\xc5\xa1*<]\xf0\xef\xab\x95\x10\x05\xa0B\x80#:\ -\x0fu\xf7\xfeb8be\xb5\x03<8'\x1d\x0eG\ -L\x83b\x0eD/\xbe\x90\x5c\xc2\xbd\xf8*r\x01\xf4\ -/\x1d\xbc\x99\xdc\xcfo\xe6\x7f\xeffG\xcc\x1d\xee\xfd\ -a\xbd\x96\xfa6ZL>uB\xfc\x95\x0b\xda&\x11\ -\x9f^w\xd3\x9f\xbb\xf5O\xab\xc9z\x16Y\xd9\xd7\xba\ -\xab\xc7\x93'\xeb\xf9D\xae\xf2S\xb7\xb8\x18\xfe\xef\xff\ -\xec\xea\xa9\x1d\x1f\xa3\xf1\ -\x87\xd3.(~\x0f\xedq\xc7t\x02R|\x7f\xd0A\ -\x09\x0f\xa9w\xff\xfc\x97$?e\x0f/\xbc\xe4\xfe\xe8\ -\xc9{\xa2\xf2\xc6s\xd8\x17\xc6{\x0b\xfd\xe3\xf5\xea\xc3\ -rv\x5c\xf8\xb7\xd5|yZz3\x97\x87ZH-\ -\xdb\x8e\xcd\xbel6\x91F\xba^O>\x9d \xfa\xf4\ -$\x87\xd7\xdf\x1e\xfa\xba\x9b\xc9v=\xbf\xffF+\xa1\ -\x9e5\x22\x9f\xe9\xf8\xe7\xf0qd\x9d\x22&\x0cg\x80\ -\x0a]\x08\xc6\x7f\xbb\x87_\x08\xb8\x9dl\xaf\x9f\xae;\ -\x18\x08\xda\x7f\x19\x18\xa7\x1c\x1a <\xf3\xd2\x0d;6\ -\x06\x07\xff1\x00-\xac\xda\xe0\x06\xd7\x03\x94\xa6'B\ -a\xed\xe0\xe3 (@\x0c~\xf0/\x87\xafI\xe9\xfe\ -\x0c)&\xaf\x9cf\xc3\x1c\xaf\x01\xd2!3\xdax\xba\ -W\x1e<\x11\xd9\xe3k\x9f\x9e~\xb8\xfd\x7f\x0d\x8f\x1e\ -2\xd6\x89\xf8\xdc\xce\xb0?.\xdf\xd7\x8a7A\xe6A\ -\xc7\xcf\xaf\xfa\xad!\xbe\xe2\x15\x0a]i\xd6\x8f\x14\xce\ -\xb2bk\x91\xfd\xd9\x08\x94Am\x89O\x08^\x8b\xde\ -$0\xfaU\xdd\xcb?\xa6k\x99N\xb4\x9d\xbcD\xd4\ -\xe3\xd1\x13\xa2@\x09M\x8c\xbf\x82\xa8\xc3\xf5o's\ -y\xee\x9dJ\x8fo&k\xe9\xa77\x83\x87\x93\x06\xf1\ -I\x9eW\xb7\x88\x22\xea\xe0q\x04\xc7\x87\x1e5\x93\x94\ -E\x04\x03\xe1\xf8\xd8\x93XJ\x85\x86\xa8T\xc7\x07\xef\ -\xa3\xd0\xca\xb7\x0c\xf0\xc9\x97\xa2,9\xc5\x06)\xe0\xa1\ -\x8a\xd4Jc\xec9\xdcoD\xe3\x08\x13D\x0a%A\ -#\x1d\x87\x1c\x1e\x884*xg\xad\x09\xcf\x89$\xb1\ -b\xb4\xd0\xff\x8cH\x90\x96\xa9O\xc2h\x07\x83u,\ -W^\xbb\x10\xc7\x22\x9f\xd1\x07\x1c[\x17'=\xdc\x11\ -\x08;\x02>\xac\x17\xdf<3\xe6\x0dy6\xc7}\xc1\ -t\xbe\x9e.\xba\x17z\xcc\xd4\x05\xbc\xd6\xfa\xdb\xcfV\ -}\xab\x9ct\xe2_\xc2\xe7\x17\xd2\x17;}>\xceA\ -5\x18DC1\x0e\x16Pks\xc2Z4\x11\x0dJ\ -}\xf7\xe1D$\xd6\xd1\xa6;nY/\x82RL\xdb\ -z\x81\x19,\x8f\x99\x11?\xe7\x86Xy\xa9\x85\x80\x09\ -n\xd0\x06\x0e\xb6NrL\x81\xe4\xf8\x1e9\xa4\xd8\xcb\ -\x10*\xc1\x0dh:1>j\xe2\xc6\x15\xc8Mx\xce\ -\x0dZ\xc5h\xcc\xf1J\xd2#9Z9\x06o+m\ -8\x5c 9\xae\x91\xb3#\x07\x0a4\x06F:AN\ -\x08p\xe2\x1b\xf5D\x8e!\xb0\xa7\xd6]%\xe4\x88\x94\ -\x96H\x8eyN\x0e\x80r\x96\x9e\x19\xd1\x91\x1c\x02E\ -(Z\xe4\xeal9%\x1ak\xf0\x9c\x1c\xaf\x8cA\xc3\ -\x8e\x9f\x93\x03A\xac8\x198Q\x9d\xe4\x94h\xaci\ -\xd3g\xc7\xa2\x15{-|M\xecX\x19s\x978\xce\ -\xe9\xd9\xd2\x10M\x02\x87\xde\xf6:6R:F!U\ -\xdavJdG\xf7\x87\xa1\x02\x81\xb1Z\xf7z6\x01\ -,\x08bP);EZ\xd3\x98`\x87\x91\xbdKY\ -l\xd2;;]\xa7Q\x80EZl\xfeK\xd8Ag\ -=\xa8\xbc\x0f\xce\xf5\xcd\x02+\x83\xd1\x80:\xd4\ -IO\x89f\x81\xef\xb9|\x00\x89\xf2\x90\xc1\x049\x86\ -\xac\xa3:m6[\xa2Y\xc0\xfd\xb1\xa8Q\xc8\xda\x1b\ -N\xb0\x83\x8e\xf9\xf4@=\xec\x149S\x10\x12\xec\x88\ -Am)\xd5\xb1\x01[c\xeb\x9c*\xb0E:\xe82\ -&\xe8\xb1\xa4\x03\xf2\xd75\xe2\xb1%\x9a\x05\x96\x12\xec\ -x\x06\xd0\xbd\x05\x04\x94\x81\xaa\xbcD\xa5\x93\x05\x96\x8b\ -\x1c\xf1\xf4\xcc\x02\x12\x81\x89!}\x89\xc572\x0c\xbe\ -N\x9b\xcd\x95h\x16`\x9f\x1c\xa7,x\xa3S\xd1\x07\ -H\xd1l\xab\x93\x9d\x22=A\xfb\xe1\x07\xac(h\xe7\ -S\x0eS(=\x1b\xd59Y\xe0L\x91\x0eS}\x9b\ -\xda)\x1f\x9d\xdc\xfbk\xa3\xa8\x8c\x1c\xe1:mj\xe7\ -\x8a\xec\xda\xfa3\xa1A9\x91\x97>=\x18C\x10\xa4\ -\xbc\xd2\xd6S\xa2]\xd07\xda\xbc\x18m\x84}/\xf7\ -h\xb4q\xd0\xb6\xce\xb6\xe3K4\x0b\x00\x126[\x00\ -\xab)$\xbc>\x02is\xeacU\x0f;E\xce\x16\ -\xe8D\xdb\x09\xce'\xfc\xd9\x08\x94'\xa8t\xa2\xcd\x17\ -\xe9W\xe0\x12\xa3Q\x17\xbc\x87\x94\xea\xa0GS\xa9c\ -A\x91\x01\x22\xde7v\x1e\xd8)r\xae@\xa7\xd8\x01\ -C\x08_\x17;E\x06\x8d\x06\xb2\xfdxx@\xa5\xad\ -\xf5\xbe\x97\xe4\x03A9\xb2\x84u\xceS3\x16\xb9\x00\ -\xd7\xcf%!\xfc8\x0a\x960\xc1\x0fi\xf0\x95\xae\xf2\ -\xb0)r\x0d\xae\x9f\x88\x05HY\xeb8\xd5|\x80L\ -pu\x9a\xd5\x5c\xa4{AH8\x85\x92\x8a)\xcfM\ -\x8a\x1fm\xa1V\xf7\x0f\xe62\x97\xe1\x12\xb3\x06\xa4X\ -\xc6\xd0\xfdq)\xa2\xf4oh*%(\x14\xe9zH\ -\xa3\xd4R\x9c\xb6\x1e\xa1\xcf\x8fU\xc1\x83\xaft\xb1'\ -`\x993\xa2\x09\x01b\xc5\xc1\xe8\xbe\xa3\x01:i@\ -\x96*\xcd\x99\x13J4\x10(9+\xaam \x86\x04\ -=bx?\xcfcX\x0d=E:\x1a\xb8\x84}M\ -\xd2\x8d\x11c\xaa\xf9\x00\xb1\xad\xd4\xd5 \x14i \xf8\ -\xc4\xf8\xf4\xab\xe4\x07t\x919\x0ct\xda~\x0b\xda$\ -\xc6\xa7u\xf3S\xa2}\xe0z\xb9\x8dH\xac7\xd6\xc4\ -\x94\xca\x00\x12\xb8Nj\x8atA4\x09O\x10Ob\ -W\xf7\xbd\xa8@\x00\x93\x9fP';E\xa60\xb0\xa9\ - y4\xc1Q\x82\x1df\x82:\xbd\xa8\xa0\xc84\xa1\ -}\xef\xdd\xb8x\x00\x14\xa0\x9f`\x22z&\x1ao\xaa\ -\x9c\xb4\x86\x22\xf3\x84:\x9d\x08\xb9\xe2\xc8AjE\x8e\ -\x0c\xf8:sQB\x91\xb9(]?\xc7.(\xef|\ -?\xd4\x97P\x05\x8d\xe0L\x9d\xe4\x14\x19\xad\xe8\x12\x93\ -9\x8e\x03\xf5czb\xa2=\xb4V\xd7i\xb2\x15\x99\ -\xed\x10{Sm\x88\xd1U\xca\xf9\xbe\xecxy(C\ -u.fC\x91\xd9\x0e\x83K\xb1c\xf1do\xd6'\ -\xd7jp\xd6Wj\xb2\x15\x99\xed\xb0\xef\xba\x8bVA\ -\xdc\x03\x06\x12\xfe\x87(\xe5l\xeb\xcc\x1e^fN0\ -\xddO\x82\xcc\x865\xa4fql\xc0\x00u\xf6lE\ -\xe6\xa2\x84\xde\x1c\x1b+\x8f\x8c\x89\xc1ht2\xd0\x14\ -\xa8\xce\xa9\x82\x22sQz\x9f\xca\x9e\xe3\xc4\xfa7}\ -z\xa2k\xa2s\xbaN\x93\xba\xc8d\x94\x90\xf4\xa0B\ -K\xde\x99T\xdf\xc6\xc2\x9c\xaf\x93\x9e\x22\x95\xc7$\x16\ -\xb0Q\x11y\xb0\xfe\xeb\xe2\xa7\xd0|\x94\xa3T\x06~\ -\x19y\x06J\xad`\x83\x0b`*\xe5\xa7\xcc\x8c\x94\x89\ -\xad_~\x81\x1f\xcd2\xee\xa9S~\xcaLJ\xd9\xdf\ -\xfc\xe5ez\xacb\xb2\xd6\xd7\xb9@ZhZ\xcaQ\ -*Q\x0b\x13\x87\x84y`\x94\x01\xcf\x5c\xa7q]f\ -b\xca\xfe\xaec\xd2|\xb4\xb6\xfd\xed_\x90\x04\x1bM\ -\xbe\xce\x09\xd1B3S&Z\x8fU\xe0\xc5\xbcv\x09\ -~\xc0\xb9\xc0u\xf6n\xa5\xe6\xa6LX\xd7/\xcaO\ -\xdd\x04\x95\x99\x9d2\xc1\x8fSf\x97\x96%\xc1\x8f\x16\ -\xfb\xa0\xce\xcdb\xa1\xd4\xfc\x94\x89\x08\x12\x1f7/\x0f\ -\xfd$\x88\x882<%\xa4:}\x0d\x0a\xcdP\x99\xf4\ -\x7f\x07o\x5c\xe0\x04?\xd1\x83\xc7\xd6i\xbf\x15\x9a\xa4\ -21<\x0dJ\x07\xd4\xe8\x12\xfc\xe8\xb8\x89\x0f\xd6\xc9\ -O\x99i*\x13\x0e\xbcA@`\x86T\x80i\x08\xc1\ -\xf8:\xa7w\x8aLTi)1\x7f\x10\xe2\x0a\x1cq\ -j\xfa:@p\x95\x8eOm\xa1)\xa9\x12\x0d(\xae\ -/\x04NX\xd8F\x99`]\xa5\xf3\xd7E&\xab\xa4\ -QrC%\x8c\x19\x11\x13\xf4\xa0\xb1\xcf\xdc\x14\xab\xa1\ -\xa7\xc8l\x95\xd6%&x\xa4\x7f\xd3\x1cB\xbf\xf9x\ -\xb1\x0f\x9c\xa9t~\xb4\xc8|\x951\x00\xcb'\x1cF\ -5h\xed\xfb\xcb\xdbAyk\xb5\xab\xd3\xaf\xaa\xc8\x94\ -\x95F\xf7\xa7\xe0\xa4\x1f\x83\x10\xd7\xab\x12\x1e\xbd\x0e\xbd\ -\xd6u\xea\x8f+u\x06!\xb5\xc6\xe0\x14\xbb\x98\xba\xbe\ -\xd7\x84X\x19\x13\xa8\xd2%TW\xe8\x1c\x82O\x86i\ -\x1b\x91!\x1d\x12\x0c\x01X_\xe9(\xd5\x17:\x8b\xc0\ -\x89=\xcaX\x91c \x9f\xb0\x13\x82\xe1P\xe7\x96\xbf\ -\xe0\x0b\x9dG\xb0\x89\x99\x1eV\x96L*;\xaf\x97\xee\ -\xcf\xd6:\x95\xedM\xa9\xb9v\x12\xdd\x1c+\x072T\ -\xf5\x09[\x0e\xc4\xe4\xa9\x95\x22Wd\xe0\x5c\xc2\xd7\xca\ -)g\xd9\xa7\xc6B`\xad\xaf\xb1\x8b\x13\x13\xb5\xd8\x5c\ -;Ig8rA[\x93\xb0\x13\xc8\xb3\xae\xd2\xd9J\ -(*4\xdbN2\xe1\x9b\x88P\x8a\x1e@\xff\xace\ -\xd5C\x8f+\xd4\x97t\xe4\x12\xc1\xc1\x9et\xe8G8\ -\x0aCh\x80M\xa5}\x1c\x17\xeaM\x9a0\xe3~\x81\ -!\xb0\x5c\xe7\xcee\x0e\x8bL\xd9kG\xf0%MH\ -FB\x9a\xd1\xd7\xa9AE\xa6\xec\x8d+v\x093\xdb\ -)\xed\xbc\xd1\xa9\xf9\x9e\x10\x17\xf3\xb8N\x86L\xa1k\ -\x0e\xc9\xb4o\xac\x9dv!\x11h\xef\x8c3\xa6\xd26\ -\xe4\x8a\x9dMH\xfa\x96j\x1dR\x9eWA\x05b\x0c\ -uR\xc4\x85\x8eU\x93\x8d\x08\x88<\x86\x04A(\xbd\ -A\x9d;\xfe@\x91\xb6\x1c\xa4\x5cG\xe2X(\xa4\x9c\ -\xe7\xc5P\x00\xff,\xa0\xb8\x9e\x98\xfb27.\xc1\xc4\ -\x9c6)2\xc8\xb6\xe7\x1bG\xb1e\xd9ZC\x1f\x8b\ -4\xb5\x9dImN\xcf\x10\x10S\xed\xc7[\xf4un\ -\xcb\x04\x5c\xe6|\x5cj\x0fgMD\xfd\xd6#\xf2C\ -\xa4M\x95q\xf76\x149\x17\x17tH%\xe9\xd3\x81\ -\xfa\xeaCVy\x0f\xb6R\xf1)r\xbd\xae7\xc9\x13\ -\x94'c@\xa7\x9cz\xd0\xb2\xae2\xa5\x88\xb0S\xe4\ -\x085\xe5\xf3\xab\xbd\xb5}\x9fl\x8a3H\xf0\xc3\xe8\x13Y\xfa\ -\xea\xa6\xc7\x14\x9b\xa5\xaf\xbf\x81\xb0W\xe8\xd8\xf73\xc5\ -\x92S\xc6Z\x80:gH\x8b\xdc\xa9i\x97\xa5/\xc5\ -\x10[\xb4\x89M\x84\x9d\x02\x84:w:\xc3\x22\xb7j\ -zH\xd2\xd7\xef\xe5X\xf9\xb8\xa9LHts\xc1\x9a\ -J7\xa3\xc3\x22\xf7k\xda\xc5\xd5\x87\x04C\x81\x9c3\ -.\xc1\x10\xc7}\xdb\xea\x9cG(r\xc7\xa6\x87,}\ -.a*h\xd4\xcf\x02\x15\x1e\xc3\x7f\x00eDW)\ -EeF0\xf4g\x12bfr\xa7M\xd2\x96\x03\x07\ -\x95\xae\xd4\x15\xb9e\x13$2\xfe#\xa98O\x1aR\ -=\x5c@\xf2T)?\x5ch\xda\x03\x9dp\xb5b\xe9\ -\x90\xfb\x89]\x043\x0b\x8e\xc2/\x1b\xda\xf1\xda\x09z\ -\x222Go:~\xc7:\xfe9}q\x10\x0c?\xeb\ -\xado\xe6\xc2\xc5\xbe\xf4\x09\xd1\xe3\xe7\x92\xb7\xfc\xcb\x00\ -\x95\xd7\x80\xce\x9f\xb1\xe2\x80VdU\x8a\x02\x04\xb93\ -\x9e\x19\x1b#\xa0\xd9\xdb\x81\x89\xda\x1a`WD^N\ -\xa4\x14`\xc6\xc9 \xe3\xf0\xaa\xef\xcf\xafv\xbf=\xfd\ -\xbf\xed\xee\xb7\x8f_\xbb\xbfY\x8cc\xbd\x90\x17\xbf]\ -wR\x7f>v\xfb+\xfe\xca\xea\x0a\xa29\xe0\xff\x11\ -\xd5\xf5\x1d\x82\xf3\x9e?\xbbrj\xe5\xbd\xb5\x87\x01\xb1\ -\xd4\x98\x91\xe1\x18sy\x18\x81=\x8e\xca<\x1e\xe6\x0b\ -#\x8a\x11!c\xd1\xc8\xf0\x0e\x1f\x80|\x7f\xbe\xf9\x18\ -\xe1\xfb?x\x12\xa3W\ -\x00\x00\x07$\ -\x00\ -\x00\x1b\xd3x\xda\xedYY\x8f\xdbF\x12~\x0f\x90\xff\ -@\xd0/\x1e,\xd9\xec\xfb\x90\xa5\x09v\xe1\x0d\xb2\x80\ -\xf3\x92d\x8f\xecK\xc0![\x1af(\xb6@R\xa3\ -\x19\xff\xfa-\x92\xe2!\x89r\x9c\x8c\xd7@v\xa3\xc1\ -\xd8\xec\xaab\x1f\xdfWU]\xa5Y~\xf5\xb4\xcd\xbd\ -G[V\x99+V>A\xd8\xf7l\x91\xb84+6\ -+\xff\xef?|\x1dj\xdf\xab\xea\xb8H\xe3\xdc\x15v\ -\xe5\x17\xce\xff\xea\xf6\xcb/\x96\xd5\xe3\xe6\xcb/<\xcf\ -\x83\xd7\x8bj\x91&+\xff\xbe\xaew\x8b(\xda\xed\xcb\ -\x1c\xb9r\x13\xa5Ids\xbb\xb5E]E\x04\x91\xc8\ -\x9f\xd8'\xa3}R\xda\xb8\xce\x1em\xe2\xb6[WT\ -\xed\xabE\xf5jj]\xa6\xeb\xc1\xfcp8\xa0\x03k\ -\xad\x881&\xc24\xa24\x04\x8b\xb0z.\xea\xf8)\ -<{\x17\xf69\xf7.\xc5\x18G\xa0\x9b\x98~\xa4\xd9\ -\xa2\x02pv\xf0;\xd8\xf7\x02T\xb9}\x99\xd85\xbc\ -hQa\xeb\xe8\xed\x0fo\x07e\x88QZ\xa7\xd3y\ -\xb2\xe2\xa1J\xe2\x9d=Y\xb7\x17v0\xc4[[\xed\ -\xe2\xc4VQ/\xef&8di}\xbf\xf2\xb9\xee\x86\ -\xf76\xdb\xdc\xd7\xe3\xf81\xb3\x87\xbf\xb8\xa7\x95\x8f=\ -\xecq\xed\xf5\xf2,]\xf9p\x18z\xb4\x1aI'G\ -\xfdq\x91\xc5\xa0\xc2\xc8P\xc4\xbd\xd7\xfb\xe2\xa1p\x87\ -\xe2\xa6\xb3\xeb\xcf\xb4H]\xd2\xecq\xe5\x7f\xff\xd7\x9f\ -\xdeeUm\x0b\xd4\x80u\xdbX-\xb7\xb6\x8e\xd3\xb8\ -\x8e\xdbW\xba\xc5{\x11\xa1\x9d\x0dX\x01s\x8b\xef\xde\ -~}\x1c\x82 I\x16\xfft\xe5C?\x86Oc\x12\ -\xdf\xb9=\x9c\xd0\xbf\x1d\xe5\xcb4Y\x00\xd6\xdb\xb8\xbe\ -\xcd\xb6\xf1\xc66<\xfd\x09\xa0]F\xa3\xe2\xd4\xba~\ -\xde\xd9\xc9\xbc\xdd\xcc\xa5\xedh\x9bu\xe04\xd9f\xcd\ -[\xd1\xf7u\x96\xe7\x7fk\x96\xf1\xbd\xe8|\xda\xac\xce\ -\xedm\xbbl\xf78\x9c%:\x1e\xa6?l4=\xed\ -2\xea\xe1\xe8\x86\xa9]W\x13\xac\x9a!\xc1\x03N\xdb\ -\xb8|\xb0\xe5\xb0\xf0@UU\xbb\xe4\xa1\xb1\xffsY\ -\xba\x03y\x07\xb1Z\xd6\xfe`\xe7\xca\x0c\x02p\xe5\xc7\ -\xfb\xda\x8d\xd2\xd2\xae\x7fl\xc8\xc5'\xa2\x7f\x9d\x89\xae\ -\xcfZ\xd5\xcf9\x00\xe6\xc0O\xd6\xb9;,\x1e\xb3*\ -\xbb\xcb\xad\x7f\xb9\xbd\xacj7\xb8\xf2\xebroG\xf6\ -\x96\xbb\xb8\xbe\x9fP\xd1,\xd5\x88\xb80\xda\x9f\xc8A\ -\xfc\xad\x07\x9b\x0a\xe0\xd7{\xe7\x09x\x0aE\xfb\x18\x12\ -\x8a\xc4D\xdcI{\xd3\xf7\xdet\x96\xe3v\xd7@a\ -X\xees\xbb\xb0\x8f\xb6pi\xfa\xa6\xaaK\xf7`\x17\ -\xafp\xfb9\x0e\xc36\xba\x16\x90\x0aw\xf5t\x96\xba\ -\x8c\x8b\xaa\xf1+\x08\xa2$\xce\xedk\x8c\xf4M'\xcd\ -\xe3\xda\xbe\xee6t3\xfa\x07\x10\xdc\x92vd\xbb!\ -\xb4{\x1c\xe2\xa7\x09\x9e\xb4\x89\xd6\xe32;\xf0\xaf\xc4\ -\xe5\xae\x5c\xf9\xaf\xd6\xed\xa7\xdf\xc0\x9d+S[\xf6:\ -\xd9~Nu\x0e\x12\x05\xf8*\x84s/ww?\xdb\ -\xa4\xae]na\x8f\x8d\x83\x93\x81\xdcM\x09g\x9cU\ -\xec\xb3\xd4\xcej\x06J\x9bM\x0e\x8b\xcd\xab\xab\xfb8\ -u\x87\x95O/\xb4\x87\xac\x00MxL`DKv\ -\xcd\xa4Oj\x04S\xe1O\xe2b\xc0lp\x94\xea\xde\ -\x1d\x9a\x03\x01\xc3q^\xd9\x8b\x09\xdf;\x07\x9c1\xc4\ -4\xa6X\x8b\x0b}\x02\x99\x12\xd23!R\x1a\xc1\xc8\ -\xa5\x1e\xce\xc9\x0cbLJe\xaem\x17\xe6\x10\xea\x9a\ -\x12&\xa0W\x95\xdb\xf8)\xdbf\xefm:\xa1n\x5c\ -{_\x96\x10\xc0a\x1e?[`~c0\xe9\x1dl\ -\xb9\x99\xa0\xb2\xe1D\x8c\xc9bs\x12\xc3\x1b.8\xff\ -\x98\xd8c\xf82\xf6\x02\xec}\xd3\xdc!\xffh\xfe\xf9\ -\x06\xee\x93\x7fOm\xc6}\xba\xa2\x00gse\x08;\ -~\x8c\xeb}i'\xceq\x16\x84\x8b\x02J\x89i\x1e\ -\x9dl\xf8\xb8\xe5\xe6\x9c\xf3\xb1\x07i\xbd\xcc\x9e^C\ -x*f\xa8\xe1\x01l1\x18G\x0a\xa2\xd2\xc0\x81I\ -\xc00R\x8c\x1a\xccnNn\x8d\xcd\xc9\x0d\xd0.\xa6\ -\x8d\xf0O\xa4\x97\xcba$%\xe7\x98s\xd1\xae7\x19\ -\x86\x06QA\x14g*\x08)\xa2\x8a(X\xfed\xc9\ -K\xc8\xbd\xe9%\x0a\x99\xc86w\x0c\x14 I\xe2\x9f\ -[MP{ee\xf3\xf3\xe6z\x1eS\x84\xa9D\x9f\ -\xe61\x8a\x94a\x5c\x199\xc8\xf3\x0c\xa8\x8aw\x8b\xbb\ -}]Oe?\xbb\xacX\xc0}g\xcb^\xda\x0er\ -\xf0\xcez\xc1{Y\x1aCt\x97e\xfc\xdc\xb2\xd8K\ -\x8f\x09aA\xce\x0f\xd0\xdc\xfa^((2\x02\x1b\xc2\ -!Os\xc9\x15\xc1\xcc3\x88SJq\x8b \xc7\x94\ -\x8d\xb1u\xe1\x99D]\xcc\xfbK\x9ewrK_a\ -\xe0\x7f\x04[\x8e(8\xa2\x94AH82\x8aq#\ -\x00\x5c&4\xc1&h\x1f\xb0\xd1\xf4\x03\xe0\xb2\xff\x06\ -\xb8\xffO\xee\xcd\x08\xd2\x0aS\x09)\x80($(\xa7\ -Xy\xe0\xd6\x1as\xa2u@\x08\xe2\x5c\xd3\x19\x9cG\ -\x0e\xc4\x1f\x0e~\x0d]\x0e\xbb\xd0T2\x1e\x84\x0c2\ -\x85\x04w\xe6\x1eT[\x0a.k%\x03\xd2\xe5\xf9\x0f\ -`\xab~-\xb6\x1f\xe7\xcb\xe7\x0c\xd8<\xcfv\x95\x9d\ -'a8\xe3\x9b\x8e\x0e)1^\xaf;:Nu\xb3\ -\xecL\xe1\x1a\xa8\xd1\xc4P&\xd8\x05\x0d\xa5\xdb\x17\xe9\ -'\xa4a\x84\x92\xc9P\x86\x17n\xdc\x16P\x90\x86\x04\ -\xdc\x89\x9a_h\xa1\xfa\x91\xc8H\x03\xb5\xd7\x05\x13\xe5\ -SS\x99\x11\xc1\xb4\xa2\x17!P6\x85\x17\xc2\xc2(\ -\x08\xad\x97\xc1m\x8c\x10/\x82\x1b\xcaG\xa2\x0d\xa1T\ -}^\xb8\xc9,\xd8\x14r\x0bh\x19\x99\x03[!n\ -\x98\xa4B\xce\x83\x8d%\x84\x92\x94s`\xc3-\xad8\ -L\xfcB\xb0\x19\xc3X\xe3\x17\x81\xad\x0d6\x12\x00\xff\ -\xcc\xbe=\x0b6\xa3Hr)\x14\x9d\x03\xbbI\xf8T\ -\x0a*\xc4\x1c\xda\x1cqB\x88!\xb3\xae\x0d\xf7\xb62\ -\x820\xfe2\xb4\xd5\x9a\xc6/tm\x0e%34\x94\ -\x9f\xd7\xb5\xe7\xb3\x08CJ2I\xc8<\xd6m}c\ -\xcc\x15\xcf\x16\x1an\xab+Y\x84k\xac\x19e/\x83\ -Z\x08\x8cS\xfe\xc2,\xc2\x8c\xd6\x86~^\xc7\xc6\xb3\ -`s\x80E`\xc1\xe7\x1d\x1b\x82P\x0b\xa1\xaf\x81m\ -\xa0\xeb\xc1d\x1el\x8d\x81\x08\xa6\xcf\xbe*\x8b6\xbf\ -\xd4\x87\x9d_\x1e\x93>l\xfc\x9e\x05#\xa0\xc1\x00\x9f\ -,\x80\xae\x1d\x0a\x03h#\x18\xfdd\x1d\xd7\xaf\xac\x0d\ -z\x98\xb5\xd0\xf3\xd5\x8b\x84\xec\xc1\x0c\xdcaP\x1b\x1a\ -\xd4\xb4\x8c\xd4K<\x8e\x08\xf4\x8c\x98\x04\x1a\x09\x0e\xb5\ -\xa3\xf4\x14\xc2\x06J\xf6\x00\xf2\x09\x83\xec\x0d\x15\x0d4\ -\xdfT#\xca$\xbe\xe4\xe0\xbc\x9b\xfe@]g\x98I\ -\xe3\xe4\xd4\x0f12\x8c\x10a\x0c\xd9=\x9dWv'\ -\x8e8_\xda\x8dN\xf7\xc9:\x81\xdf\x0e\xfbe=r\ -\xec\x8b\x14\xd2\xe0\xde\xb8\xe9\x8b$\x82^\x88H\x0e\xc8\ -C\x82Q\x0c\x0b\x0d\xc8CE\x0e8k\x10AJ\x81\ -\xfa# \x0cIh\x87\x18\xa3\x1eF\x8cs\xc6I@\ -)\x14\xf4\x18cC\xff\xe0\xe0:\x07\xf2\x0a\x07\x90a\ -\x98\xe2\x94\xb4\xbd)\xe6\x8c\x80\xa7'\x1eEp\xb5c\ -M\x03\x81\xa4\x90\x94J\x09\x22(<$1M9\x0f\ -\xb8p\xa1\x19p\x00\xa5\x88b\xd0@A\x94@=\xc3\ -(\xff]p0\xcdt\xe3\xf3\xe4i\xcc}\xb3\x19\x8e\ - \xf0ZE5$8* \x0b+j\xcc\x8d\x7f\xf6\ -\x9d\x1e\xe1C\xdd\xd0\xcd\xbcl\xfe\x00\x02\xff\xff\x07\x13\ -\xd8\x93\xea\ -\x00\x00\x08B\ +indow-y=\x2225\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22g83\ +3\x22\x0a inkscape\ +:pagecheckerboar\ +d=\x220\x22\x0a inksc\ +ape:showpageshad\ +ow=\x222\x22\x0a inks\ +cape:deskcolor=\x22\ +#d1d1d1\x22 />\x0a \x0a \ +\x0a \x0a \ + \x0a \x0a <\ +path\x0a \ +d=\x22m 112.27805,4\ +08.44003 h 264.5\ +8966 c 8.39574,0\ + 15.18643,-6.790\ +68 15.18643,-15.\ +18644 V 128.7874\ + c 0,-8.39575 -6\ +.79069,-15.18643\ + -15.18643,-15.1\ +8643 H 112.27805\ + c -8.39576,0 -1\ +5.186441,6.79068\ + -15.186441,15.1\ +8643 v 264.58966\ + c 0.12347,8.395\ +75 6.914151,15.0\ +6297 15.186441,1\ +5.06297 z M 127.\ +46448,143.97384 \ +H 361.80473 V 37\ +8.19063 H 127.46\ +448 Z\x22\x0a \ + id=\x22path831\x22\x0a \ + style=\ +\x22fill:#37c8ab;st\ +roke-width:1.234\ +67\x22 />\x0a \x0a \x0a <\ +g\x0a id=\x22g83\ +7\x22 />\x0a \ +\x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \x0a\x0a\ +\x00\x00(a\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22 />\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x0b\xcf\ -\x00\ -\x00g\xbdx\xda\xed]mo\xe3\xc6\x11\xfe^ \xff\ -\x81P>$AEjw\xf6ut\xf6\x05(\x82\x14\ -\x05Z\xa0hS\xb4\xdf\x02\x1eE\xdb\xca\xc9\xa2A\xd1\ -\xe7s\xfeZ\xffC\x7fS\x9f\xa5D\x89\xbb\xf6%q\ -\x8a\x22\x80)\x1d\x02K\xb3\xcb}yv\xe6\xd9\x99\xe1\ -\x92\xb9\xf8\xfa\xe3\xed&\xfbP\xb7\xbbu\xb3\xbd\x9c\xc9\ -B\xcc\xb2z[5\xab\xf5\xf6\xfar\xf6\x8f\xef\xbe\xcd\ -\xfd,\xdbu\xe5vUn\x9am}9\xdb6\xb3\xaf\ -\xdf~\xf6\xbb\x8b\xdd\x87\xeb\xcf~\x97e\xd9\xc3z\xd5\ -\xdd\x5c\xce\xb4\x9f\xf5?o\xea\xf5\xf5Mw\xfa\xfda\ -]?\xfc\xa1\xf9x9\x13\x99\xc8\xb4\xcf\x06\xf9zu\ -9C\x13t\xa8u\xea_\x1e\xca\xb7\xefwUyW\ -/\xc7E\xd9\x97\x95\xf55Q\xa5\xbc\x9bg$H\xe6\ -\xc2\xe4\xa4\xbe\xda_\xb3\xc3\xa8\xef\xf0\xdfr\xd5T\xdb\ -\xf2\x16\x83-\xbb\xea\xfbn\xf7}\xb5\xb9\xdfuu\x8b\ -)\x15\xe8s_\x19\xd3\xde\xee\x96C7\x97\xb3\x9b\xae\ -\xbb[.\x16\x0f\x0f\x0f\xc5 ,\x9a\xf6z\x11\x1a\xda\ -\xdd\x95U\xbd[\x0c\xf2q\x03C\x9f\xc7\x06\x06A\xb1\ -k\xee\xdb\xaa\xbeB\x1bu\xb1\xad\xbb\xc57\xdf}s\ -,\xccE\xb1\xeaV\xa3v\xa2\xfe\x1fT\xdf3\x09!\ -\x16\xc9x\xf1\xf3\x97VmWW\xcfU\x95\xcc\xbc\x10\ -\xb4 \xcaQ#\xdf=n\xbb\xf2c\xbe\xdd}>\xbe\ -\xb6\xaa\x8e\x97Vm]v\xeb\x0fu\xd5\xdc\xde6\xdb\ -\xdd\x1e\x93\xb8\xf6\xeaT\xfb\xee\xbe\xdd\xf4UV\xd5\xa2\ -\xde\xd4\xb7\xf5\xb6\xdb-\xb0r\x8b\xd9\xdbp\xc1\xc5m\ -\xdd\x95\xab\xb2+\xfb\xab\xf7Z0\x88$\xed\xeb\xa0\x16\ -\x06\xb6\xfc\xdb7\xdf\x1e~BPU\xcb\x7f6\xed\xfb\ -\xe17>\xa1J\xf9\xae\xb9\x87\xaa\xcd\xde\x9e\xe4\x17\xab\ -j\x09\xc8o\xcb\xee\xed\xfa\xb6\xbc\xae\x03(\xbf\xc7(\ -/\x16\xa7\x82\xb8v\xf7xW\x8f\xda\xdd\xb7\xdc\xd6\xfb\ -\xd5{v^\xab\xeav\x1d\xaeZ\xfc\xbd[o6\x7f\ -\x0a\xdd\xcc\xb2E\xda\xec\xba\xdb\xd4#\xe9\xc5\xe20\x87\ -a\x8e\x8b\xf1$/\x16\x03\x0a\xfb\x9f\xab\xfaj7\x82\ -(\xfc\x94b\xe8\xe4\xe2\xa8\xe7A7W\xc1\xc2\x0eu\ -\xef0\x94\xaa\xd94\xed\xe5\xec\xf3\xab\xfe3;\x94\xbc\ -k\xdaU\xdd\x0ee\xb6\xff\xc4e\x0dt\x1c\xd3\x82\x9d\ -\x0d\xf2\xe6\xdd\x0fu\xd5u\xcd\xa6n\xcbm\xc0\x02C\ -8\x14]\xb7\xb0\xfag\x0b\xee\xd7\xab\xfa\xd9\x92\xa3A\ -\x87A\x1e;{\xbexwS\xae\x9a\x87\xcb\x19=)\ -}XoQ\x92\x1fHGz\xe3?Ue \x22)\ -\x8c\x9b\x8d\xb0\x02\xd7=n\xb0\ -\xc6W\x0dz\xe8\xbf/\xb7\xc1\xc26oz\xc9C\xbf\ -\x00\x91h\x87q.\xb5*\x88\xb4\xbe\xfb\xf8f\xb3\xde\ -\xd6\x87uZ\xca\x82\xcc\xbe\xd2Uy\xbb\xde<.w\ -\xe5v\x97\xef@\xdaWo6u\x07\xf6\xce\x03\x0b\x83\ -\xc2\x97\x02\x97>@g#\xc1\x15Lq\x09\xa5wW\ -T\xf6?\xf2\x83\x8e-\xe5\x9b]\xd76\xef\xc3\xe0\xb6\ -\xf5\xe1\xfb^\x81\xd0\xa9\xf0\xc2\xca\xb1zt\xf5\xc7N\ -\x1b\xd29\x0f\xd2\x0e\xaa\xbc\x0b\xd4\x81\xc2\xf0uSv\ -\xf5\x97\xba`\xcdN;\x9a\xe7Rcq\xa1\x1a\xee\xab\ -#\x7f\xdd\x95\xdd\xcd\x91\x0e\x02\xc5e\xca\x17,\xb5\xd3\ -v\xae\xb8`E\xde\xa8\x0c\x9b\x80\xb1\x92\xa5\x9b\xe3\x9b\ -s^(\xcer\x0cI9\xe5\xed\x1c\x22\xa5\xbd\xd4Y\ -\x15\x84\xd2:a<\x84\xdej\xed}\x96\xa3O+I\ -\xf2\x1c\xc0\xb1u\x8a\x82\xc8\x18Aj,\x12\x85t\xe4\ -\xd9\xcdE\xf8\xae\xb4ql\xf6\xdf\x995\x1a\x08={\ -\x92d\xfb\xd1h\x15\x16&\xc8\x8c\xf4\x96{\xd9\xbe?\ -\xcc\x12\x8d[\xe1\xfa\x11\xf6\xdf S\x85 \xe3\x84\xcf\ -\xfe\x9c\x91-\x0c\xa3u='\xc2Jj\xe1l\x188\ -\xbekg-\xea\xdaB\x18\xa9\xa5\xc9r](\x0bS\ -Q\xf3\x9c\x81\x9bP\xdaf(E;R\xb8 S\x8e\ -\xfb\xbeGH\xb0\x11\xac\x5ch\xce*\xb4\xe6\xe7\x842\ -i4D0;!\xa5\xb3\xf3\xa1,\xdbd\xa2\x10a\ -*\xf3\xa1\x05\x8c\xe40\xcd~r*\x8cZfh\x03\ -\x0b\xe8N\x18h\x88\xb4E\xf7c\x11\xb0\x94\x82\xbc\x02\ -jT8RRY\xb4\xcb\x1a#\xf2\x99B\x9f\xc2k\ -\x9e\xeb\x02:#\xa5\x0aH\xe8B*\x9a\x87?\x8c\xb5\ -\xed\xd7o\x00\x0a\xf50DR:\xcb}\xe1\xa5s\x18\ -\xb74@\xdb\x19\x83\xb9H\x00\xaf\xad3\x189\xd4\x05\ -2\x11fsP\xd2\x13\x0ca6\xbdn\x98~6\x9e\ -\x05\xa1\x92R\xcc\xc6\x06\x89\x0dH\x13\x86\xab\x1c\xaaQ\ -\x10\x1d\xae\xc4r\xb0\xf0La9\x0c\x01,5L!\ -\xac0z\x17\xca\x90\xcb\x1c\x9ap\x9a\xb1B\xd2aD\ -,\x85\xc28l\xa1\xb0B\x18\x08\x84\xd2\x0a\x5c\xd4\x8f\ -\x84\x0cc\x09O\xeazT\x99\x03ral\x86\x19\xa0\ -\x8f%\xe0K\xaft\x0fj\x7f\xbd>\x8e\xd2\x86\x8e\x8c\ -b,\xeaIp\xaa\xb1\xcf`\x97\x11\xfe\ -\xb8\xf6\xc1\x95v\xf0R\x847'\xbf\xbf\x0d~\xef\xe4\ -p:\xa9x\x8f\x94\x07G\x19\xa7\xcc\x18)\x0b3\x83\ -_j\xf5\xc4\x91\xb2\x09RpS\xe0k\xc6:\xc5\x0c\ -\xab\x9f\xbaJ\xb9\x08(\x86\xa1)\x84)1PN8\ -aOA\xf0D\x912\x09Mi\x11\x9c\xfa1R\x0c\ -\xeab2f\xea\xc6\xa7Lb}\x1a!\x80V1T\ -^ \xf0\x90S7?K\x89\xfdy\xebN\x8eh@\ -\xca\x17\x10\xe03q\xa0x\x8c\x13!\xf2\x95\xday>\ -\x13\xfa\x13\xa0d\xa2P\x06\x11&G>\x02b~\xa7\ -\x8d\x998N\xa9\xd7IV\x99\x14&\xcf\x88\x00\xe5\xd4\ -=\x04\x91h\x14kA6\xe2(\x03\xa4|\xc8\xf9M\ -\x9d\xa4b\x07\xdd\x84\x1c\x98\xd51\x9b\xc377V\xf1\ -\xd4\xf7=\x91\x98\x9f\x94~t_g\xafT\xd2\xc1E\ -\xd0/'*fc^\x93\x8b\x10\x073\xbap\xde\x12\ -E\xc1\x8c\x92\xa0t\xe1=O\x1c+\x95l\x7f\x16\x81\ -\x1f\x06L\x09V@OI\x9a\xba^\x9dn/\x1e\xb0\ -\x92d\xbd\x8a|*E\x85\x12V\xdb\xa9\xdb\xa0K\xe2\ -d\xb8\x0bR2\xeb\x04+!\x9d\x98\xba\x09\x9a\xd8U\ -\xc7&(\xbdU.r\xad\x94\x82\xff\xce\xe4\xa6\xaeV\ -\xca$n\xa8\xed\xef\x1f\xfaX\xaf46G#\xccy\ -\x1f\xccS\xa7\x01\xcc4:\xe8q\xd0,)\x88&\xef\ -4p\x9e&\x16\x04\x13\xab3\xb7?\x130'iu\ -p\xbb\xd7J\xd9\x08+S\xc0\x00\x8d\x9c:\xb9\xa7\xf9\ -b\xc0\xa2\xa5\x8do\xd6\x00+\x12\x02\xfb\xe3\xd4}\x06\ -\xf1$e\xec$\xfc\xab\xd8\xc1\x12\x00\xcbk\xf6S\xe7\ -+\x95\xb8\x0d*\x1cdq\x9eRrw\xda\xf0\xd45\ -\xcb\x8a\x84\xddu\xe1\xd9r\xacY\xc4\x85\xf6F\xfc\x8a\ -;\x81\xaf\x0f\xac\x04.\xa8\x11\xe0\x22\x93F\x85\xc6i\ -o\xcfpQ\x12\x18r\xe1\xbc\x90\x89\xf3\x00\xe6gi\ -\xf9\xac]9=\x09x\x04\x88+\xcee)[8c\ -\xce\xba\xf5\xc4\x81\xa0B\x87#\x84\xa9n\xb1aOg\ -\xb4\x9e\x9e\xf8P\xf8$\xa9?\x07\xa1V\xfa\xa5\xb7\xe7\ -\xcbRk!^U\x9a4>\xf5A\xa6p,8>\ -\xf5\x81\x08\xdb[g\x1cO\x1c-\x85\xb0'J\x95\x92\ -\x0bgdLr\x0b,\xe4O\xbd\x10r\xea\xba\x95\xfb\ -\xd8\x85\x00ZRI\x13[b8\x13\xa2\x94\xb4SG\ -\xcb\xe1_|\xbb\xde\x17$\xadu*AKj\x85\x8d\ -r\xe2h\x99\x9cc\x96\xa7\x90\x04\x94\x22\xb1D_h\ -D>n\xea\xba\x152\xa6O\x88\x8b\x84\xf26V.\ -.H#V\xec\x8b>\xe1\ -y\x11\x9e<\x93\x09Z\x8a\xac\xe7\xa9\xfb\xa7!y\x1a\ -\x9b\x22\x94\xcb\x91\x12qF\x10\xc1\xb6R\xe6\xe5g\xb4\ -^\x1dq)pW\x94m&](O:>\xa7\x15\ -\x02H!i\xf2\xd1O\x1fZ\x8b$X\x04qY\x1f\ -em\xa4.\xac\x94\xee\xc5y\x9bW\x09W\x92\x8b\x08\ -O\xfcj\xaf\x88\x13s\xe4\xf0d.\x9d\x01#\x84\x8c\ -6q%\x9c\xd7\xc9Y$\xd0=I\xaf\xfcY\xc3B\ -\x1a5q\xec\xb1?z2:\x06L\x16\x1e\xde\x84\xf7\ -g\xc0\x82C\x11s\x98*\xb4\xf3\xd2\x9a\x040\xe1\xad\ -9\x9bd\x9fMM2\x84\xbe\x90\xc2K\x9b\xe0\xa5\x9c\ -\xf1\xfe\xa5\x91\xe3J\x1b\xf3\xaa\x02mJ\x90R$\x93\ -'\xe8`\xa0>\xbc~@N\x1d\xaa\xc4\x0c\xb9\xf0\x8e\ -\x95\xe6\x04+\xe5\x98\xbd\x9e8Vi\x8e\x9e\x0bkI\ -%\x11#\xe2k0\x96\xb2\x13\xc7\xca\xc5\xfb\xa1\xa2B\ -\x13k\x93\xea\x15vHg\xa6NW&\x89~\x1c\x9c\ --\xa9|r \x82\x9cr\xc4S\xa7\xab\x14+\x0eo\ -q\xb1\xf19\xca3X\xc7\x04j\x9c\x10\x94\x85\xf4\xd2\ -\xc4\xcf\xfd\x86\xbc\x97\x15L\x13\xc7\x8a\xe3l\xa0\xc2\x80\ -\x1d\xeb\xf8\xd9C@%\xb4\xf2~\xea\xdc.\x93\xe0\x90\ -\x0a\xc9Zi\x9d\x9c\x0dt$\xcc\x8b\xcf\x06\xbe6\xac\ -\x92G\xef\xfb,\xb3sq\xaa&\x1c\xdfbV\xa77\ -\x17L\xd5g\x10\x89b!^V4~\x84\xec\xb1\xcf\ -\x0d\x02>MSwFC\xd64\xbd\xf5\xcaR\x91I\ -\xd9=\x1c\xba\x99|\x98\x83\x08:\xbd\xdb\xa3\x15\xe9$\ -\xa1\xa5\x0b\xab\x95{\xf9\xb1@k_\x13V:}\x01\ -\x86\xf1\xa3\xac\xfb\x01(\x02\xdf\x93\x9a8R*!\xf7\ -\xf0JAV6N4Pa\x89\x7f\xcda\xd3\xd7\x85\ -\x95}\xf2P\x8fc\xef\xd9%z\xe5\x05>f\xe2X\ -\xb9D\xaf\xe0`!\x1e\x8c_\xadB\xa6\x7fb\xf3W\ -\xbc2\xe4ua\x95\xdci\x0d\x87gHHm\xd3d\ -\x1f\x19KS\xb7AD\xcf.y\x15Mxoj\xfc\ -\x08\xd4\x19\xacS\xf4\xac\x93\xbb\xd2\xc2:i9\x8d\x09\ -\x8d\xd1v\xeaf\x98\x9e\x03|\x16+P\x96\xe7\xc93\ -\x96LR\xee\xb20\xcaH\x9d\xa6\x1a\xbc\x91dh\xe2\ -Xa/\xf4\x89;*\x95\xe6'y\x19\xedy\x94\xd7\ -\x9a\xaa\xdb\x80\xf8\xd9'7U\x99\xb5'wvH\x9f\ -\x0d\xa0}\xfa\xf2\xd6\xf0rd\x99P\x96\xb5^*9\ -\xf5\xcdP<\x09\x0b\x8de\x91$\x1bd\xc1\xce\xdb\xe7\ -\x9e\xb8\xb8\x08\xff[\x13\xfc\xfd/\xad+\x06\xd3\ -\x00\x00\x09\xba\ +indow-maximized=\ +\x221\x22\x0a inkscap\ +e:current-layer=\ +\x22svg6\x22\x0a inks\ +cape:pagechecker\ +board=\x220\x22 />\x0a <\ +path\x0a style=\ +\x22fill:#37c8ab;fi\ +ll-opacity:1;str\ +oke-width:0.0679\ +173\x22\x0a d=\x22M 3\ +.0617407,44.6410\ +32 C 2.3120712,4\ +4.489468 1.80044\ +08,43.918187 1.7\ +903834,43.221449\ + c -0.00475,-0.3\ +15441 0.030818,-\ +0.424415 0.23502\ +85,-0.723853 0.1\ +723954,-0.252793\ + 0.323261,-0.387\ +001 0.5333455,-0\ +.474445 0.282964\ +9,-0.117782 1.02\ +00745,-0.12198 2\ +1.6320716,-0.123\ +191 l 21.339129,\ +-0.0014 0.305915\ +,0.13935 c 0.375\ +203,0.170914 0.6\ +48986,0.496459 0\ +.760779,0.90463 \ +0.109833,0.40100\ +8 0.07707,0.6187\ +38 -0.147328,0.9\ +79037 -0.218499,\ +0.350836 -0.6776\ +83,0.643949 -1.1\ +61862,0.741654 -\ +0.535806,0.10812\ +9 -41.6881069,0.\ +08635 -42.225721\ +3,-0.02237 z m 2\ +.1150144,-5.4166\ +5 C 4.8178042,39\ +.124701 4.500127\ +5,38.901966 4.36\ +42388,38.654686 \ +4.181278,38.3217\ +67 4.2734089,37.\ +825137 4.7102642\ +,36.789445 c 0.2\ +128054,-0.504508\ + 0.9268989,-2.28\ +1057 1.5868735,-\ +3.947881 0.65997\ +45,-1.66682 1.36\ +931,-3.430823 1.\ +5762984,-3.91999\ +7 0.2069932,-0.4\ +89175 0.4729489,\ +-1.128047 0.5910\ +163,-1.419716 0.\ +2134275,-0.52724\ +8 0.4615952,-0.8\ +28552 0.8454616,\ +-1.026499 0.1323\ +273,-0.06823 0.6\ +2352,-0.09546 2.\ +012945,-0.111576\ + l 1.837899,-0.0\ +2132 0.0014,-0.3\ +4103 c 9.5e-4,-0\ +.190867 0.0588,-\ +0.457075 0.13158\ +7,-0.604564 0.16\ +2641,-0.329581 2\ +.409907,-2.46897\ + 2.755619,-2.623\ +335 0.272651,-0.\ +121743 0.984769,\ +-0.149508 1.2648\ +33,-0.04931 0.27\ +1136,0.097 0.672\ +302,0.461277 0.8\ +31639,0.755173 0\ +.18222,0.336101 \ +0.191769,0.84777\ +4 0.02165,1.1613\ +72 -0.06833,0.12\ +5974 -0.472802,0\ +.562573 -0.89882\ +6,0.97022 l -0.7\ +74585,0.741179 h\ + 7.54616 7.54616\ +6 L 31.378068,26\ +.1051 c -0.11458\ +2,-0.135879 -0.4\ +47174,-0.461876 \ +-0.739095,-0.724\ +431 -0.668939,-0\ +.601644 -0.77506\ +4,-0.784424 -0.7\ +7477,-1.334394 2\ +.8e-4,-0.511968 \ +0.181907,-0.8895\ +09 0.557687,-1.1\ +59207 0.202638,-\ +0.145438 0.34261\ +1,-0.184271 0.75\ +3663,-0.209092 0\ +.349715,-0.02113\ + 0.579981,-9.5e-\ +4 0.749508,0.066\ +09 0.224222,0.08\ +848 1.801667,1.4\ +16292 2.496819,2\ +.101681 0.430409\ +,0.424367 0.6021\ +98,0.77723 0.572\ +792,1.176548 l -\ +0.0243,0.329952 \ +0.315069,0.006 c\ + 0.173288,0.0033\ + 1.008937,0.0107\ +3 1.856998,0.016\ +43 1.497584,0.01\ +007 1.551744,0.0\ +1515 1.883182,0.\ +175496 0.187688,\ +0.09081 0.400871\ +,0.240252 0.4737\ +39,0.332089 0.07\ +287,0.09184 0.30\ +748,0.610476 0.5\ +21363,1.152535 0\ +.213883,0.542054\ + 0.530411,1.3413\ +22 0.703396,1.77\ +6145 0.172984,0.\ +434823 0.403616,\ +1.027767 0.51251\ +4,1.317646 0.228\ +137,0.607294 1.0\ +38012,2.687259 1\ +.551979,3.985883\ + 0.560045,1.4150\ +52 1.108715,2.96\ +964 1.108715,3.1\ +41414 0,0.267898\ + -0.268578,0.670\ +744 -0.573942,0.\ +860866 l -0.2911\ +14,0.181251 -4.6\ +2608,0.01097 c -\ +4.994916,0.01187\ + -5.132276,0.058\ +3 -5.335627,-0.2\ +88036 -0.105402,\ +-0.179509 -0.165\ +422,-1.036153 -0\ +.896355,-3.84060\ +2 -0.325825,-1.2\ +50117 -0.704738,\ +-2.673176 -0.842\ +037,-3.16235 -0.\ +137299,-0.489175\ + -0.396983,-1.46\ +0117 -0.57708,-2\ +.157647 l -0.327\ +445,-1.268238 h \ +-2.574088 -2.574\ +088 l 0.01439,1.\ +652394 0.01439,1\ +.652389 1.384244\ +,-0.0078 c 1.221\ +194,-0.0069 5.39\ +789,-0.192093 5.\ +659136,-0.08154 \ +0.162869,0.06892\ + 1.112626,0.4633\ +52 1.194524,0.54\ +9799 0.480556,0.\ +507257 -0.101635\ +,1.347044 -0.711\ +161,1.607444 -0.\ +257769,0.110118 \ +-4.763786,0.0928\ +5 -6.066698,0.09\ +412 l -1.480591,\ +0.0014 -0.0062,1\ +.558587 -0.0062,\ +1.558586 1.76757\ +4,0.0014 c 1.463\ +35,9.49e-4 6.382\ +434,-0.0043 6.59\ +9131,-0.01505 9.\ +170427,-0.09908 \ +0.76699,1.261684\ + 1.444024,1.5690\ +99 1.64907,0.748\ +772 -3.831652,0.\ +538968 -9.711857\ +,0.562079 -3.505\ +854,0.01377 -12.\ +714004,0.0092 -1\ +2.714004,0.0092 \ +-8.8656853,-0.76\ +2571 0.354356,-1\ +.928188 1.225293\ +,-1.959999 l 4.2\ +40112,-0.06377 2\ +.570655,-0.02502\ + 2.419104,-0.131\ +6 0.01121,-1.531\ +743 0.01121,-1.5\ +31743 -1.78539,-\ +0.0014 c -1.6006\ +3,-0.0014 -1.798\ +245,-0.01282 -2.\ +241877,-0.01966 \ +-0.363737,-0.005\ +6 -5.820616,0.21\ +5365 -5.912434,-\ +0.169152 -0.1266\ +1,-0.53024 1.328\ +857,-1.881144 1.\ +880907,-2.030125\ + 0.969913,-0.045\ +92 5.387755,0.04\ +625 6.317418,0.0\ +4625 h 1.6903 l \ +0.03101,-1.59764\ +8 c 0.01705,-0.8\ +78706 0.0188,-1.\ +61988 0.0038,-1.\ +647056 -0.01491,\ +-0.02716 -1.3270\ +24,-0.04942 -2.9\ +15787,-0.04942 h\ + -2.888659 l -0.\ +323617,1.235297 \ +c -0.177989,0.67\ +941 -0.455085,1.\ +768937 -0.615761\ +,2.421176 -0.160\ +681,0.652234 -0.\ +48123,1.867763 -\ +0.712327,2.70117\ +3 -0.231102,0.83\ +3414 -0.55837,2.\ +034118 -0.727261\ +,2.668237 -0.168\ +896,0.634119 -0.\ +364507,1.227058 \ +-0.4347,1.317646\ + -0.07019,0.0905\ +9 -0.23433,0.215\ +873 -0.364758,0.\ +278416 -0.217906\ +,0.104477 -0.580\ +356,0.112497 -4.\ +4670424,0.09882 \ +-2.8681646,-0.01\ +011 -4.3152793,-\ +0.03861 -4.49512\ +99,-0.08854 z m \ +33.0964419,-2.13\ +2504 2.812554,-9\ +.49e-4 -0.274298\ +,-0.576472 C 40.\ +660589,36.197398\ + 40.36638,35.522\ +926 40.157656,35\ +.015631 l -0.379\ +499,-0.92235 -2.\ +762055,-0.01724 \ +-2.762056,-0.017\ +24 0.09145,0.280\ +747 c 0.0503,0.1\ +54413 0.25877,0.\ +852931 0.463268,\ +1.552266 0.33981\ +4,1.16208 0.3838\ +66,1.268475 0.51\ +1845,1.23619 0.0\ +7702,-0.01942 1.\ +40568,-0.03571 2\ +.952585,-0.03623\ + z M 12.708561,3\ +6.712153 c 0.102\ +877,-0.330678 0.\ +666503,-2.249208\ + 0.740329,-2.519\ +998 0.02351,-0.0\ +8628 -0.298782,-\ +0.101015 -2.5383\ +22,-0.116101 l -\ +2.5652562,-0.017\ +28 -0.046061,0.1\ +72785 c -0.02535\ +7,0.09503 -0.105\ +802,0.295506 -0.\ +1787917,0.445507\ + -0.2030994,0.41\ +7391 -0.9809941,\ +2.282761 -0.9809\ +941,2.352389 0,0\ +.03704 1.0841417\ +,0.06152 2.72562\ +79,0.06152 h 2.7\ +256331 z m 1.577\ +447,-5.715293 c \ +0.145163,-0.4710\ +59 0.342303,-1.1\ +08469 0.43809,-1\ +.416468 0.09578,\ +-0.308004 0.1953\ +12,-0.656356 0.2\ +21172,-0.77412 l\ + 0.04701,-0.2141\ +16 H 12.756377 1\ +0.52048 l -0.282\ +172,0.576467 c -\ +0.155201,0.31706\ + -0.3052881,0.65\ +0592 -0.3335276,\ +0.741179 -0.0282\ +54,0.09059 -0.18\ +49267,0.490823 -\ +0.3481812,0.8894\ +1 C 9.39334,31.1\ +97803 9.238837,3\ +1.605835 9.21326\ +14,31.705953 l -\ +0.046488,0.18203\ + 2.4276526,-0.01\ +733 2.427658,-0.\ +01733 z m 24.710\ +409,0.869028 c 0\ +,-0.03049 -0.568\ +092,-1.477301 -0\ +.955275,-2.43291\ +9 l -0.340009,-0\ +.839189 -2.47275\ +8,-9.49e-4 c -2.\ +3225,-9.5e-4 -2.\ +470535,0.0062 -2\ +.436164,0.114482\ + 0.03041,0.0958 \ +0.576894,2.04890\ +1 0.820319,2.931\ +762 l 0.06812,0.\ +247061 h 2.65788\ +4 c 1.461836,-5e\ +-6 2.657884,-0.0\ +092 2.657884,-0.\ +02037 z M 23.523\ +029,24.86296 c -\ +3.105932,-0.3339\ +17 -5.278902,-2.\ +181969 -5.91588,\ +-5.031296 -0.402\ +704,-1.801384 -0\ +.0033,-3.614358 \ +1.118403,-5.0748\ +02 2.239938,-2.9\ +16756 6.547563,-\ +3.548349 9.62853\ +2,-1.411752 1.62\ +376,1.126042 2.5\ +10511,2.612057 2\ +.739233,4.59038 \ +0.177899,1.53873\ +3 -0.433356,3.33\ +4927 -1.572348,4\ +.620415 -0.89290\ +4,1.007743 -2.70\ +2939,1.969605 -4\ +.157414,2.209264\ + -0.487883,0.080\ +39 -1.501457,0.1\ +34245 -1.840526,\ +0.09779 z m 1.73\ +2312,-2.299125 c\ + 0.674372,-0.149\ +621 1.542873,-0.\ +573271 2.035927,\ +-0.993121 1.6522\ +28,-1.406919 1.9\ +92261,-3.411938 \ +0.880891,-5.1942\ +04 -0.561951,-0.\ +901176 -1.348611\ +,-1.526259 -2.33\ +8623,-1.858266 -\ +0.632072,-0.2119\ +75 -1.833806,-0.\ +287875 -2.539329\ +,-0.160391 -1.47\ +6375,0.266777 -2\ +.839293,1.469323\ + -3.343321,2.949\ +92 -0.523027,1.5\ +36396 -0.109734,\ +3.037986 1.15747\ +8,4.205393 0.542\ +823,0.500073 1.2\ +28915,0.885107 1\ +.863204,1.045636\ + 0.495633,0.1254\ +37 1.728822,0.12\ +8158 2.283773,0.\ +005 z M 9.886532\ +8,18.778772 C 8.\ +8271499,18.53442\ +7 8.4575623,17.2\ +56854 9.2173367,\ +16.465516 c 0.40\ +07949,-0.417443 \ +0.6477375,-0.456\ +951 2.8533873,-0\ +.456523 1.073828\ +,1.99e-4 2.0068,\ +0.02953 2.15268,\ +0.06766 1.344964\ +,0.351505 1.7402\ +65,1.936802 0.63\ +5343,2.547957 l \ +-0.332686,0.1840\ +19 -2.205484,0.0\ +1144 c -1.213017\ +,0.0063 -2.30833\ +6,-0.0123 -2.434\ +0442,-0.04126 z \ +M 33.85029,18.74\ +463 c -0.931355,\ +-0.312315 -1.167\ +979,-1.60751 -0.\ +421935,-2.309519\ + 0.421611,-0.396\ +72 0.623376,-0.4\ +26498 2.889729,-\ +0.426498 h 1.950\ +685 l 0.370237,0\ +.173601 c 0.6329\ +98,0.296817 1.00\ +8078,0.978259 0.\ +847438,1.539621 \ +-0.100534,0.3513\ +15 -0.466648,0.7\ +82961 -0.805096,\ +0.949208 -0.2639\ +22,0.129639 -0.4\ +03124,0.138429 -\ +2.415529,0.15253\ +2 -1.702295,0.01\ +192 -2.192277,-0\ +.0043 -2.415529,\ +-0.07895 z M 16.\ +648264,12.823493\ + c -0.373172,-0.\ +131069 -3.163651\ +,-2.677069 -3.30\ +9141,-3.0192201 \ +-0.270481,-0.636\ +089 -0.0095,-1.4\ +256702 0.578323,\ +-1.7498381 0.397\ +97,-0.2194581 0.\ +96313,-0.2452284\ + 1.355606,-0.061\ +812 0.50691,0.23\ +68994 3.068253,2\ +.4991042 3.29418\ +8,2.9094582 0.26\ +4646,0.48067 0.1\ +61754,1.111375 -\ +0.25104,1.538823\ + -0.36492,0.3778\ +79 -1.161272,0.5\ +60545 -1.667936,\ +0.382589 z m 14.\ +241901,-0.0082 c\ + -0.418815,-0.12\ +303 -0.777913,-0\ +.400135 -0.93180\ +9,-0.719018 -0.1\ +55386,-0.321974 \ +-0.173231,-0.880\ +691 -0.03765,-1.\ +179179 0.05296,-\ +0.1166 0.75503,-\ +0.824008 1.56015\ +8,-1.5720151 1.5\ +02742,-1.39613 1\ +.661659,-1.50513\ +25 2.194396,-1.5\ +051325 0.83355,0\ + 1.610352,0.6791\ +301 1.610352,1.4\ +078725 0,0.55747\ +3 -0.100441,0.67\ +2349 -2.500493,2\ +.8598831 -0.8312\ +54,0.757647 -1.2\ +24684,0.904567 -\ +1.894944,0.70762\ +2 z m -6.8927,-2\ +.511602 c -0.405\ +079,-0.117242 -0\ +.797977,-0.48005\ +81 -0.897867,-0.\ +8291081 -0.04483\ +,-0.15663 -0.064\ +9,-0.9709844 -0.\ +05224,-2.1183148\ + l 0.02056,-1.86\ +38646 0.201922,-\ +0.2266141 c 0.30\ +7681,-0.3453084 \ +0.632077,-0.5348\ +982 0.978012,-0.\ +5715854 0.689145\ +,-0.073094 1.369\ +818,0.2459311 1.\ +657721,0.7769593\ + 0.126995,0.2342\ +402 0.137969,0.3\ +926275 0.137608,\ +1.9865667 -2.09e\ +-4,1.0603705 -0.\ +03039,1.8342339 \ +-0.07776,1.99556\ +99 -0.105641,0.3\ +59825 -0.528431,\ +0.7263921 -0.984\ +926,0.8539571 -0\ +.434875,0.121519\ + -0.552325,0.121\ +092 -0.983036,-0\ +.0038 z\x22\x0a id\ +=\x22path887\x22\x0a \ +sodipodi:nodetyp\ +es=\x22ccssccsssscc\ +csssssssccssssss\ +cccssssccssccsss\ +ssssssccsssscccc\ +ccsssccccscsscsc\ +cccccsscscccscss\ +sssccccccsscccss\ +sccccsccsssccsss\ +cccscsscccscsccs\ +scsccsscssssssss\ +sssssscsscsccccc\ +sscsssscssssssss\ +sssssssscsscsssc\ +sscc\x22 />\x0a\x0a\ +\ +\x00\x00\x10\x1e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \x0a \x0a \x0a \ + \x0a \x0d\x0a <\ -path\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path44\ -89-3\x22\x0d\x0a d=\ -\x22m -225.0508,25.\ -423733 0.20339,-\ -22.3728818 -19.7\ -2881,11.5932198 \ -z\x22\x0d\x0a style\ -=\x22fill:#00aad4;f\ -ill-rule:evenodd\ -;stroke:#00aad4;\ -stroke-width:2;s\ -troke-linecap:bu\ -tt;stroke-linejo\ -in:round;stroke-\ -miterlimit:4;str\ -oke-dasharray:no\ -ne;stroke-opacit\ -y:1\x22 />\x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x22q\ +ity:1;paint-orde\ +r:markers stroke\ + fill\x22\x0a id\ +=\x22path4541-7\x22\x0a \ + cx=\x225.06146\ +43\x22\x0a cy=\x22-\ +22.144968\x22\x0a \ + r=\x226.2550402\x22\x0a\ + transform\ +=\x22rotate(90)\x22 />\ +\x0a \x0a \ + \x0a <\ +path\x0a styl\ +e=\x22fill:none;str\ +oke:#ffffff;stro\ +ke-width:1.36894\ +774px;stroke-lin\ +ecap:round;strok\ +e-linejoin:miter\ +;stroke-opacity:\ +1\x22\x0a d=\x22m 2\ +1.694675,13.4406\ +39 v 23.035387 l\ + 8.541337,-0.076\ +\x22\x0a id=\x22pat\ +h4596\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22\x0a \ + sodipodi:n\ +odetypes=\x22ccc\x22 /\ +>\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\x9f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -inkscape:path-ef\ -fect\x0d\x0a eff\ -ect=\x22simplify\x22\x0d\x0a\ - id=\x22path-\ -effect2631\x22\x0d\x0a \ - is_visible=\x22\ -true\x22\x0d\x0a lp\ -eversion=\x221\x22\x0d\x0a \ - steps=\x221\x22\x0d\x0a\ - threshold\ -=\x220.000736842\x22\x0d\x0a\ - smooth_an\ -gles=\x22360\x22\x0d\x0a \ - helper_size=\x22\ -0\x22\x0d\x0a simpl\ -ify_individual_p\ -aths=\x22false\x22\x0d\x0a \ - simplify_ju\ -st_coalesce=\x22fal\ -se\x22 />\x0d\x0a \x0d\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\ -\x0a \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x09\xd3\ +ageshadow=\x222\x22\x0a \ + inkscape:wind\ +ow-width=\x221848\x22\x0a\ + inkscape:wi\ +ndow-height=\x22101\ +8\x22\x0a id=\x22name\ +dview8\x22\x0a sho\ +wgrid=\x22false\x22\x0a \ + inkscape:zoom\ +=\x225.6568542\x22\x0a \ + inkscape:cx=\x22-\ +50.415625\x22\x0a \ +inkscape:cy=\x22-5.\ +3462143\x22\x0a in\ +kscape:window-x=\ +\x2272\x22\x0a inksca\ +pe:window-y=\x2225\x22\ +\x0a inkscape:w\ +indow-maximized=\ +\x221\x22\x0a inkscap\ +e:current-layer=\ +\x22g868\x22 />\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#00d4aa;\ +stroke-width:1.5\ +5563581;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22M 8.0\ +626459,39.461131\ + C 29.913216,40.\ +812005 30.019945\ +,8.7555352 41.29\ +2019,7.9098146\x22\x0a\ + id=\x22pat\ +h825-6\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \ + \x0a\ + \x0a\x0a\ +\x00\x00\x07#\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b[\ +6\x22\x0a showgrid\ +=\x22false\x22\x0a in\ +kscape:zoom=\x222.4\ +583333\x22\x0a ink\ +scape:cx=\x22-50.44\ +0679\x22\x0a inksc\ +ape:cy=\x2274.64406\ +9\x22\x0a inkscape\ +:window-x=\x2255\x22\x0a \ + inkscape:win\ +dow-y=\x2227\x22\x0a \ +inkscape:window-\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg4\x22\ +\x0a inkscape:p\ +agecheckerboard=\ +\x220\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x09\xd1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title>\x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#999999;s\ -troke-width:1.33\ -333337\x22\x0d\x0a d=\ -\x22m 53.118644,179\ -.49816 c -1.4666\ -6,-0.62009 -4.16\ -666,-2.7414 -6,-\ -4.71401 l -3.333\ -33,-3.58656 V 10\ -8.66398 46.13037\ -9 l 4.35897,-4.3\ -58975 4.35898,-4\ -.358974 h 50.615\ -376 50.61539 l 4\ -.35897,4.358974 \ -4.35897,4.358975\ - v 62.615381 62.\ -61539 l -4.35758\ -,4.35897 -4.3576\ -,4.35897 -48.975\ -74,0.27327 c -26\ -.936656,0.15029 \ --50.175736,-0.23\ -409 -51.642406,-\ -0.8542 z m 93.99\ -9996,-70.7524 V \ -52.745763 h -44 \ --43.999996 v 55.\ -999997 56 h 43.9\ -99996 44 z M 11.\ -412064,73.437035\ - l 0.37325,-59.3\ -08728 4.35767,-4\ -.3579395 4.35768\ -,-4.3579381 51.3\ -0899,-0.3786652 \ -51.308986,-0.378\ -6654 v 8.0453322\ - 8.045332 h -47.\ -999996 -48 v 56 \ -55.999997 h -8.0\ -3992 -8.03991 z\x22\ -\x0d\x0a id=\x22path8\ -17\x22\x0d\x0a inksca\ -pe:connector-cur\ -vature=\x220\x22 />\x0d\x0a \ - \x0d\x0a \ - \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0a\xc3\ +re=\x220\x22\x0a sodi\ +podi:nodetypes=\x22\ +cc\x22 />\x0a \x0a\x0a\ +\ +\x00\x00\x08\x8d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \ -\x0d\x0a \x0d\x0a x\x0d\x0a\ -\x0d\x0a\ -\x00\x00\x06\xdc\ -\x00\ -\x00\x1fax\xda\xd5Y[\x8f\xdb\xb6\x12~/\xd0\xff\ -\xa0\xa3\xbcdQ\x8b\xe2\x9d\xa2\xb3N\x816(\xd0\xa7\ -s\xd068\x8f\x07\x5c\x89k\xab\x91%C\x92\xd7\xde\ -\xfe\xfa\x0e%\xcb\xd6\xc5\xde\xec\x9en\xd1\xb5\x93\xc0\x16\ -g8\xe4|\x9c\xf9\x86\x9a\xdc~\xbf_g\xde\x83-\ -\xab\xb4\xc8\x17>A\xd8\xf7l\x1e\x17I\x9a/\x17\xfe\ -\xe7\xdf~\x0a\x22\xdf\xabj\x93'&+r\xbb\xf0\xf3\ -\xc2\xff\xfe\xe3\xb7\xdf\xdc\xfe+\x08\xbc\x1fKkj\x9b\ -x\xbb\xb4^y?\xe7_\xaa\xd8l\xac\xf7~U\xd7\ -\x9by\x18\xeev;\x94\x1e\x06QQ.\xc3\x1b/\x08\ -`*L\xae\x1e\x96\xdf~\xe3y01\xa9W\x0b\x9f\ -G~\xf3\xb8\xb2\xe9rU\x9f\x9e\x1fR\xbb\xfb\xa1\xd8\ -/|\xeca\x8fG\x08\xbb\x0f9\xfdj\xb5\xd2d\xe1\ -\x83Az\x98sr\xa5\x93\x1f\xf60\xef\x8b\x10\xf5\xde\ -c\x83q|/\x18\xd33\x8fbJ\x03\x0c\x7f\xf9M\ -;\xab\x02\x086\xf0o\x9e\x14qn\xd6\xe0\xb9I\x92\ -\xffU\xdb;\x00\xa3\x06+\x08\x96l5\x01\xc0\xbc\x9a\ -w\xab,\xfcK\xee;+\xd5\xc6\xc4\xb6\x0a\xbb\xf1\xbe\ -\x81n\xc1\xa3\x81n\x00U\xc5\xb6\x8c\xed=\xd8\xb0(\ -\xb7u\xf8\xe9\xb7OGa\x80QR'=;\x83\xf5\ -w\xacY\x99\x02X\xe1h\xbf\xf0\xf8\x5c\xd52\xb9?\ -\xa7J\xb4\xd6!\xa6!\x00\x07\x1aA\xf5\x98\xd7f\x1f\ -\xe4\xd5\xbb\xfe\xdc8>N\x8d]\xb4\xa4\x0f6.\xd6\ -\xeb\x22\xafZL\x86\xda\xc9I{\xb3-\xb3F%\x89\ -C\x9b\xd9\xb5\xcd\xeb*\x84\x83\x0b\xfd\x8fn\xc2mb\ -\xef\xabff\x1b\x00\xee\x91\xb7\x22\x10\xc6Y\xba\xf9\x8f\ -\xa9W\x07\x05\xcf\xeb\x06>\xe7i\x0d\x10m+[\xfe\ -\xea\x8e\xe2\xdf\xf9\xe7\xeap\x0a\x9d\xa5N5\xa2\xa2\xb3\ -\x07\x16K\x1b\xd7G5\x88\x8e\xfa1\x83\xa3\xbeO\xb3\ -l\x9eC^|p\xbf\x82\x02L\xa6\xf5\xe3\x1c\xa3\x88\ -kA\xb8`\x1f\xaa\xba,\xbe\xd8\xf9;\xdd|\x0e\x8f\ -A\x13\xf7s\x86\x22\xa18\xe1Tt\xe3Y\x9a\xdb\xdf\ -\x8b4\x9f\x97\xc56O\xba\xd1uZ\xdb2K\xe1k\ -\xce\xbb\xb1\xc4T+S\x96\xe6\xb1Y\xde\xefm\xcd\xf9\ -\xe0v\x1bQ\xd5\x1f\xeeR\x8d#\xb7`$\xfb\xb2c\ -\xde\x9d\x13\xee]\xbeh\x1a)\xacH\x7f\xfc\x11\xc61\ -\x96\x88j\xac\xfb\xe3e#@$\x92J\x10\xdf\x0b\xbb\ -3\x09;`\xdb\xf3\x0b\xdd\x89\xb5?\x8f\xa9\xe62$\ -qI\xdf;\xd8;s:\xa0\x8dYB\xf4dE\xb9\ -\xf0\xdf\xdd7\x9fNrW\x94\x89-;\x99l>C\ -\xd9\xe1lZ\x8a\xeb\xecw\xcc\xe0\x0c\x1f\x15\xf0\x05\x05\ -\x00<)v\x0b\x9fN\xa4\x7f\x14\xc5z\xe1\x0b$'\ -\x92x\xdf\xa0\xca%\xa7\x91\x98Ja5\x85D\x04\xe8\ -\x0a5\x91\x02\xf1l]\xd8\x07\xdb6h7\xfb\xa9\x81\ -mY:\x8d\xcc\x9c\xb9|^\ -\x16\x0f\xf8\xea\xeb\x910=\xb2\xaf\x91\xec\xdf\x08t\xc0\ -\xce@M\x18GZ\x12\x00\x16@\x17\x80p\xa4\xbc\xa0\ -\xc5\x98\xc0\xbb_\x83\xba\xb8z\xa8OT\xd6\xfdj\xbf\ -o\xdd\xff\x0d\xc0\xf7\x9f\x9e\xe4{*\ -\x00\x00\x05\xbd\ -\x00\ -\x00\x14Vx\xda\xddX[o\xdb6\x14~/\xd0\xff\ - \xa8/\x0dfQ\xbcJ\xa4j\xa7\xd8P\x14-\xd0\ -\xbel\xdd\xf5M\x91hG\x8d,\x1a\x14\x1d'\xfd\xf5\ -;\xb4,Y\xbed\xc8\x86\xac\xc3*\xc0\xb1\xf5\x9dC\ -\xf2\xf0;Wd\xfa\xfanY\x07\xb7\xda\xb6\x95if\ -!A8\x0ctS\x98\xb2j\x16\xb3\xf0\xe7Oo#\ -\x19\x06\xad\xcb\x9b2\xafM\xa3gac\xc2\xd7\x97\xcf\ -\x9fM\xdb\xdb\xc5\xf3gA\x10\xc0\xf2\xa6\xcd\xcab\x16\ -^;\xb7\xca\xe2x\xb5\xb652v\x11\x97E\xack\ -\xbd\xd4\x8dkc\x82H\x1c\x8e\xf4\x8b\xbd~au\xee\ -\xaa[]\x98\xe5\xd24\xedvi\xd3\xbe\x18k\xdbr\ ->\xa8o6\x1b\xb4a[-\xa2\x94\x8a1\x8d)\x8d\ -@#j\xef\x1b\x97\xdfEGk\xc1\xcesk)\xc6\ -8\x06\xd9H\xf5\x91jY\x0b\xe4\xac\xe03\xe8\xf7\x00\ -j\xcd\xda\x16z\x0e\x0b5j\xb4\x8b\xdf|z3\x08\ -#\x8cJW\x8e\xf7\xa9\x9a\x9b\xb6\xc8W\xfa\xe0\xdc\x1e\ -\xech\xc8\x97\xba]\xe5\x85n\xe3\x1e\xef6\xd8T\xa5\ -\xbb\x9e\x85\x5cv\xaf\xd7\xbaZ\x5c\xbb\xfd\xfbm\xa57\ -?\x98\xbbY\x88\x03\x1cp\x19\xf4xU\xceB\xb8\x0c\ -\xddi\xed\x9dNv\xf2\xdd!\xd9 \xc2HQD\x83\ -\x97\xa2`Z\xe2r\x12PL\xd2\x08\xcb\x08'\x17\xdd\ -\x9a\xfe~Yi\x0ao\xef,\xbc\xaa\xf3\xe2\xc6\xac\x1d\ -\xf2\xbc]z\xa5\xe9R\xbb\xbc\xcc]\xbe]\xd1\xd9\xd1\ -C\x84v:\xa0\x05N\xcc~|\xf3v\xf7\x0a@Q\ -d\xbf\x1a{\xd3\xbf\xc3\xe3U\xf2+\xd8|\x16\x86\x97\ -{|Z\x16\x19\xd0\xbe\xcc\xdde\xb5\xcc\x17\xda\xbb\xec\ -;`y\x1a\xef\x05\x87\xda\xee~\xa5G\xfbv;[\ -\xddy\xf0l,\x97\xc5\xb2\xf2\xab\xe2\x9f\x5cU\xd7\xef\ -\xfd1a\x10\x1fo[\xb9Z\x8f\xd0i\xbc\xbbC\x7f\ -\xc7x|\xc9i\xdc\xb3\xd0\xbd\x96z\xde\x8e(\xf2\xaf\ -\x04\x0f\xf4,s{\xa3\xedp\xde\xe0\xac\xd6\x99\xe2\xc6\ -\xeb\x7fo\xad\xd9\x90\x0f\x90\xad\xd6\x85\x83\x9e\xb1\x15\xa4\ -\xe0,\xcc\xd7\xce\xecQ\xab\xe7\xbf{\xf7\xe2\x03\xe8\xb7\ -#\xe8\xe1][w_\x03O\x06\x22e^\x9bMv\ -[\xb5\xd5U\xad\xc3S\xf3\xaavk\xe0,tv\xad\ -\xf7N\x9b\xaerw=\xf2\x80?\xcaC\x5c(\x19\x8e\ -p\x80?\x06`\xd4\x04>\xc1\x87@\xc0\xafHl\x7f\ -F\x84\x221\x82;\xb4W\xfd\x12\x8cw\xd9\x99;\x07\ -\xcfEv]\xebL\xdf\xea\xc6\x94\xe5\xab\xd6Ys\xa3\ -\xb3\x17x\xfb\xec^\xa3m~eP\x0cWn\xbc\x8b\ -\xb3y\xd3\xfap\x824*\xf2Z\xbf\xc4H^th\ -\x9d;\xfd\xb23\xe8b\x1f\x16\xe0\xe0\xad\xd3v\xde\xf6\ -\x0e\xed~\x0eY\xe3S\xa6\xf4\xf9\xba;f\x05aU\ -\x98\xda\xd8Y\xf8b\xbe}z\x03\xae\x8c-\xb5\xede\ -\xc9\xf69\x94\x19(\x15\x10\xa2\x90\xd0=n\xae>\xeb\ -\xc29Sk\xb0\xd1\xc75\x19\x9c\xbb\xb0p\xc7\xb3\x82\ -uU\xea\xb3\x92\xc1\xa5\xde\xc8\xe1\xb0\xf3\xe2\xf6:/\ -\xcdf\x16\xd2\x13\xe9\xa6j@\x12\xedJ\x18\x91\x09{\ -H\xa5/k\x04S\x11\x8e\xf2b\xe0l\x08\x94\xf6\xda\ -l\xfc\x85\xc0\xc3y\xdd\xea\x93\x0d\xbf\x18\x03>KP\ -\x9a`N\x92\xf4D^@\xad\x8c\xb8@\x09cT\x92\ -S1\x5c\x93BxI\xc9\x94x\xc8Z\xd8B\xa4\x0f\ -\x09\xfd\x06\x0f\x0a\x97\xf9]\xb5\xac\xbe\xe8r\xe4\xb9\xfd\ -\xd9kk!\x7f\xa3:\xbf\xd7\xe0\xf8\x05\x17\x9c\xf7\x01\ -6]\x8cXYp\x22\xf6\xc5bq\x90\xc3\xdd\xaaG\ -\xe4\x1e\xc3\xa7\xb97\xc1\xc1;\xdfE~\xf1\x7f\xdeA\ -G\xf9c\xac\xb37\xd44\x0d\x04\x9b\xb1\x11\x98|\x9b\ -\xbb\xb5\xd5\xa3\xe08J\xc2\xac\x81ab\x5c>\x8fM\ -:\xd6}\xf5p\xea\xce\xe7Eq\x92\xba\xab\xbb\x1e\xa8\ -+0+_eWk\xe7\xc6\xd8gS5\x19\x94t\ -m{t\x17\xd2\x199\xe2`\x190\xc41%\x22%\ -\x13\xc6\x10N0V, \x02I\x9ar\x9a\xa8I\xc4\ -\x10\x15\x9c2\x19(\x081\x9a\x12:\x898\x22\x9c\xa4\ -\x22\x09$\x92\xa9 \x0a\xa0\x14Q.q\xca\x01\xa2\x92\ -\x09\xc2\x91P\xac\x84\x10\xe7\xe9\xe5\ -_\x9f\xde\xb3m\xe6+\xd0\x0b\xdc`\xca\x13\x0e\xf4\xee\ -\xd8\x09|\xb3J\x19QC\xa8\xa6A\x8a\xbc\x0f\x08\xf7\ -\x10\x95*I\x07\xc6\xc5$\xda\x11\xad\xces\x99|}\ -.K\xfe/s\xf9\xf1<\x97\x12q\xa9\x94\x14\x13\x9a\ - !HBd\xc0\x08\xa2\x84`\xc5' M\x094\ -5\x110\xa8\x05\x0as\x9eN\x14R\x12\xc6\x1a\xf2\x00\ -u\xf2\x1fQ7\x8d\x17\xa7\xb5~4\xa0\x8c\xa6\x12\x84\ -q\x92B\xc5\x99D\xd0\xc4\xa4L\xa9R\x17\xe1Q\x7f\ - \xfb\xaer\xae{\xa8\x91\x7fG\x87\xc0\x5cm\xab;\ -8\x01n\x9c\xf2\x84N\xa0YL\x88\xaf\x87i\xca0\ -\xa3\xc9\xb6\xe8Q\xf8A\xc5\xc5\xe9\xf08\xf0\xbe\x0f\x07\ -\x0bw\x1e\xd1\x01}\x93C\x9c\x02\xef\xea\x80=h\xb6\ -\x0c1\x0c\x9c\x1e\x04^?1HD\xa8H\x85`c\ -a?q\xc0t\xa8\xd4\x99\x9a\xeb\x8f\xe6\x5c\xca3-\ -k\xb0t\x1b\x8eG-\xa7\x8b\xd3\xa3\xc91e\x14\x83\ -\xd9\xc7\xc1h\xcd\xba)\xff:\x1a\xb7/5\x0c\x04.\ -\xe3H\xa8\xed\xd3\xcb\xca\x1c\xe6*k\xf3\xfb\x833\xf7\ -\xd6\xad\xf2\x0aF\x85\xed0\x98u\x93g\x1bx\x8b\x83\ -N\xf3 \xf1\x1e\xcf4\xf1i\xe0\x1b\xd6\x93S\x1d\xb1\ -G\x91=jI\xdf<\xd9\x94\x01\x9e\x0a,\x9e\x9e\xec\ -\xe4\x11d\x1f\x14\xd5o\x9el\xa8\xea\x09N\x92\xc3\xa6\ -\xf6DdG\xe2\x11t\x1f\xcc\x03\xffG\xba\xfb6\xd4\ -}O\xfd?^\xe0\xfbO\xce\x08\xa3\x90\ -\x00\x00\x06\xc0\ -\x00\ -\x00\x19\x01x\xda\xedX[\x8f\xe3\xb6\x15~\x0f\x90\xff\ - h_vP\x8b\xe2\xfd\xa2\xb57h\xb1\x08\x12 \ -yI\xd36\xc9K\xa1\x918\x1eed\xd1\x90\xe4\xf1\ -\xcc\xfe\xfa\x1e\xca\x96,\xd9\xf2f\x92\xddt\x81\xa2\x02\ -f,\x9esD\x1e~\xe7J.\xbfz\xda\x94\xc1\xa3\ -\xad\x9b\xc2U\xab\x90 \x1c\x06\xb6\xca\x5c^T\xebU\ -\xf8\x8f\x1f\xbf\x8et\x184mZ\xe5i\xe9*\xbb\x0a\ -+\x17~\xf5\xf6\xcb/\x96\xcd\xe3\xfa\xcb/\x82 \x80\ -\xcf\xab&\xc9\xb3Ux\xdf\xb6\xdb$\x8e\xb7\xbb\xbaD\ -\xae^\xc7y\x16\xdb\xd2nl\xd561A$\x0eG\ -\xf2\xd9I>\xabm\xda\x16\x8f6s\x9b\x8d\xab\x9a\xee\ -\xd3\xaay5\x96\xae\xf3\xbbA|\xbf\xdf\xa3=\xeb\xa4\ -\x881&\xc64\xa64\x02\x89\xa8y\xae\xda\xf4):\ -\xfb\x16\xf4\x9c\xfb\x96b\x8cc\xe0\x8dD_(\x964\ -\x00\xce\x16\xfe\x06\xf9\x9e\x80\x1a\xb7\xab3{\x07\x1fZ\ -T\xd96~\xf7\xe3\xbb\x81\x19a\x94\xb7\xf9x\x9e\xa2\ -zh\xb2tk'\xeb\xf6\xc4\x03\x0c\xe9\xc66\xdb4\ -\xb3M\xdc\xd3\x0f\x13\xec\x8b\xbc\xbd_\x85\x5c\x1f\x86\xf7\ -\xb6X\xdf\xb7\xa7\xf1ca\xf7\x7fsO\xab\x10\x078\ -\xe0:\xe8\xe9E\xbe\x0aa3\xf4(u2:9\xf2\ -\x8f\x8b$\x03\x0b#C\x11\x0f^\xef\xaa\x87\xca\xed\xab\ -\x9b\x83\x5c\xbf\xa7$w\x99\xd7q\x15n\xef\xfe\xdd6\ -\xc8\x03\xf5\xd6K,7\xb6M\xf3\xb4M;\xf1\xc3\xc2\ -=\x89\xd0\x83\x0cH\x81\xd5\x92\x1f\xde}}\x1c\x02!\ -\xcb\x92\x7f\xb9\xfa\xa1\x1f\xc3\xe3E\xd2[\xb7\x83\xdd\x85\ -oO\xf4e\x9e%\x80\xf3&m\xdf\x16\x9btm\xbd\ -\x8d\xfe\x02\xb0.\xe3\x13c*\xdd>o\xedh\xde\xc3\ -\xcc\xb5=\x98l\xd6y\xf3lS\xf8\xaf\xe2\xbf\xb7E\ -Y~\xeb\x97\x09\x83\xf8|\xda\xa2-\xed\x88\xba\x8c\x8f\ -{\xe8\xf7\x18\x8f7\xb9\x8c{\x14\x0e\xc3\xdc\xde5#\ -\x88\xfc\x90\xe0\x01\x9eMZ?\xd8zXo\xb0N\xd3\ -\xba\xec\xc1\xcb\xff\xb5\xae\xdd\x9e|\x07\xe1Y\xb7\xe1 \ -\xe7\xea\x02bn\x15\xa6\xbb\xd6\x9d\xa8\xb5\xbd\xfb\xd9\xdb\ -\x13OH?\x9d\x91\xae\xcf\xda\xb4\xcf%\xe0\xe4\xc05\ -\xeeJ\xb7O\x1e\x8b\xa6\xb8-mx\xa9^\xd1t\x0a\ -\xae\xc2\xb6\xde\xd9\x93\xd1\x96\xdb\xb4\xbd\x1fY\xc0/\xe5\ -I\x5c\x18\x1d\x8e\xe8@\xfe>\x00\xa5\x16\xf0\x17|\x17\ -\x08x\x8bD\xf7\x1a\x11\x8a\xc4\x88|\xa0\xf6\xa2\xef\x83\ -\xf1,Gu\xef\xc0rQ\xbd+mb\x1fm\xe5\xf2\ -\xfcM\xd3\xd6\xee\xc1&\xafp\xf7\x1c\x87Q\x17P\x09\ -d\xbfm;\x9e\xa5\xad\xd3\xaa\xf1\xee\x04q\x93\xa5\xa5\ -}\x8d\x91\xbe9P\xcb\xb4\xb5\xaf\x0f\x0a\xdd\x9c\xdc\x02\ -\x0c\xdc\x19\xedhmo\xd0\xc3\xeb\x102>^r\x1f\ -\xa0\xc7e\xb6\xe0V\x99+]\xbd\x0a_\xdduO\xaf\ -\xc0\xad\xabs[\xf7<\xd9=S\x9e\x83\xdc\x00.\x0a\ -\x11\xdc\xd3\xdd\xed\xaf6k[WZ\xd0\xd1\xfb5\x19\ -\x8c\xbb\xaea\x8f\xb3\x8c]\x91\xdbY\xce`R\xaf\xe4\ -\xb0\xd8<\xbb\xb9Os\xb7_\x85\xf4\x82\xbb/*\xe0\ -D\xc7\x9cE\xb4d\xd7D\xfav\xd1\ -\x01tM\x0ce\x82]\x00\x5c\xbb]\x95\x7f\x8c\xeb\xbf\ -\x0c`\x0a\x09\x95k\xc2f\x01\xc6\x12\xbcP\xcaK\x80\ -\x15\xe2\x86I*\xe4\x0c\xc0Pwa>\xc9\xc8\x07\x00\ -&/\x82w\xec\xc7\x7f\x08^\x86\x18\xd1\x86P\xaa>\ -\x17\xbcP\xba\x94\x11\x84\xf1Kx9\xe2\x84\x10Cf\ -\xfc\xd7'e*\x05\x15b\x06_F\x91\xe4\x12Z\xd9\ -\x0f9\xf0\x0b\xf1\xcdy\x9a~\x14\xbe\xda`h\xb1\xb4\ -\xf9\x5c\xf8B\x82\xd4\x18\xfar6\xe7\xbeBCJ\x9b\ -\x85\x97#\xed\xdd\xd7\xcc\xe5\x07\x06\x11\x81!\x7f\x5c\x87\ -\xf7\xc5\xce\xab\xf5G\x81\xcb\xb5\x81\xe8\x93\xea\xf3\x81\xab\ -1 \xc8\xf4\x1c\xb8\xd0*\x10Lf\xc0\x85\xaf\xb4\x10\ -\xda\xcc\xe5\x06\xeeOaX\xf0\x0f\xf9.\xfe\xef\xa4^\ -\x9f\x1b\x98\xd1\xda\xd0?\x15\xdee\xbc\x1e\xae\x03\xd6\x97\ -\xe7\xb3\xd1\xc1ft\x93\x800\x96\x8aj\xb6\x88\xa8\x00\ -4\xe1\xd4jn\xc2\xb33\x1d\x813\xdd\xe9\xaa\xe1\xfc\ -\xc4'\xc7iev\x11\x8c\x04\xa1\x1c\xceL\xa3\xe3\xd1\ -\xb2\x86\xdee|\xe1\xe6\x8f\xbeHb\x0c\xfd\xc6$\x8e\ -\xbcs@\xdf\x08'\x9di\x9ct\x9e\xa1\x18cbB\ -\xee\xcf\xf2\x126\x83\x15\xf4\x18c\xe6\xf1.\x80\x19?\ -\x1f#\x13\xd7\xf0\x9b\xf1:q1u\xa7i\xbbC$\ -\x1b\xba\x99\xb3\xe1\xd1\xd8\x18A\x22\xd0\x02\xcb\x8b\xe6f\ -b\xebO\xe6\x01o\xb6i\x01\xc7\xf6\xeeb&9\xdc\ -\x025\x81\xd768H\x9e\xf9\xed\xc4afm\x00=\ -\xa0ad\xce\x06\x1aC\x8d;\xb3\x01G\x18zw\x8a\ -\xc5\xbc\x11\x14\xf4\xf8R\xc9\x19#@\xed\xa6\x84\xb3\xe9\ -\xd9vl\x84ict\xd6uv\xd5\xe4j\xc0A\xdb\ -j$\xe5B\x89\xcf`\x83\xca_\x03\x97\xe3\xbb\xb9\xf5\ -\xf1Z\xce\xff.\xfd\x951\xfc\xfe\x07O\xe1\xf2c\ -\x00\x00\x13\x09\ +ht=\x221025\x22\x0a i\ +d=\x22namedview8\x22\x0a \ + showgrid=\x22fa\ +lse\x22\x0a inksca\ +pe:zoom=\x226.95321\ +69\x22\x0a inkscap\ +e:cx=\x2214.633173\x22\ +\x0a inkscape:c\ +y=\x221.9112621\x22\x0a \ + inkscape:wind\ +ow-x=\x2257\x22\x0a i\ +nkscape:window-y\ +=\x2227\x22\x0a inksc\ +ape:window-maxim\ +ized=\x221\x22\x0a in\ +kscape:current-l\ +ayer=\x22svg2\x22 />\x0a \ + \x0a \ +\x0a \x0a\ + \x0a \ +\x0a\x0a\ +\x00\x00\x0d8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \ -image/svg+xm\ -l\ -\x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22>\x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x04P\ +\x00\ +\x00\x12\xa8x\xda\xedW\xddo\xdb6\x10\x7f\xcf_\xc1\ +)/-\x16Q$\xf5I\xd5r\x81\xad(\xd0\x87\xbd\ +l\x1d\x06\xec\xa5`$\xdaV#\x89\x02E\xc7q\xff\ +\xfa\x1ee}\xd8\x8e\x03\x14\x831\x0cX\x08\x04\xc8\xfd\ +\xee\x8e\xbc\xfb\xdd\x91\xd6-\xde?\xd5\x15z\x94\xba+\ +U\x939\x14\x13\x07\xc9&WE\xd9\xac3\xe7\xcf\xcf\ +\x1f\xdd\xc4A\x9d\x11M!*\xd5\xc8\xcci\x94\xf3~\ +y\xb3\xf8\xc9u\xd1\xafZ\x0a#\x0b\xb4+\xcd\x06}\ +j\x1e\xba\x5c\xb4\x12\xbd\xd9\x18\xd3\xa6\x9e\xb7\xdb\xedp\ +9\x80X\xe9\xb5\xf7\x16\xb9\xee\xf2\xe6f\xd1=\xaeo\ +\x10Bpn\xd3\xa5E\x9e9\x83C\xbb\xd5UoX\ +\xe4\x9e\xacd-\x1b\xd3y\x14S\xcf\x99\xcd\xf3\xd9<\ +\xb7\xa7\x97\x8f2Wu\xad\x9a\xae\xf7l\xba\xdb#c\ +]\xac&k\x1b\xcd\xce\xef\x8d(\xe7\xdc#\xccc\xcc\ +\x05\x0b\xb7\xdb7F<\xb9\xa7\xae\x10\xe3%WF\x08\ +\xf1@7[\xfe\x98U\xda\x01\xa1-\xfcM\xe6#\x80\ +;\xb5\xd5\xb9\x5c\x81\x9f\xc4\x8d4\xde\x87\xcf\x1f&\xa5\ +Kpa\x8a\xa3mF>ON=!\xb9\x11\xb5\xec\ +Z\x91\xcb\xce\x1b\xf1\xde\xff\xa8\xc2\xb4\x07\xca\x22s \ +F\xd6\x0b\xbb\xb20\x1b\xd0\xf1\x83\xb8\x91\xe5zcf\ +\xf9\xb1\x94\xbb_\xd4S\xe6\x10D\x10\x80hT\x8c\x81\ +\xa6\x85\xca\xed\xc9\x99#\xba\xae\x5c7_\x8c\xfa\xd2j\ +\xb5*+\x89G\x22\xc6p\xd2)\x14\x829\xc3!z\ +\xc3HDdNW|u\x87\x18a\xc4%\x81K\x92\ +\xb7\xce\x12\xdc\x16\xb54\xa2\x10F\xd8-\x0eQ\x8fH\ +\xd2\x1b\x80\x09T1\xfd\xfd\xc3\xc7\x83\x04r\x9e\xa7\x7f\ +)\xfd0\x88\xb0\xac\x81\xb8W[H\xc9YN\xf0\xa2\ +\xc8S\xe0\xbd\x16fY\xd6b-m\xc9~\x06\x9e\x17\ +\xde\xac816\xfbV\xce\x9b\x1e\xb6\xd5\xf2P\xc0\x8b\ +]\x5c\xe4ui\x9d\xbc?LYU\x9f\xec!\x0e\xf2\ +\xce6-M%gp\xe1\x0d\xd1\x0f\xb9yG\xc9-\ +\xbc1\xf5^*\xe4\xaa\x9bY\xb1R4\xec\xbe\x98\xea\ +b\x8bR\xd8\xf2\x1d\x0c[\x88 W\x95\xd2\x99s\xbb\ +\xea\x97sP\xdc+]H=\xaa\xa2~\x9d\xa8\x14\xf4\ +\x14\xe4\x02=1\xc0\xea\xfe\xab\xcc\x8dQ\x95\xd4\xa2\xb1\ +\xf9S2h\xd6\x1a\xba\xe9\x12\xbe-\x0byI1u\ +\x86\x0do:\xe8\xa2\xb6\xdb\x88B\xed2\x87\x9d+w\ +e\x03\x0awl\xe4$H^\xb0\x98z\x9b\xd0\xc9\x04\ +\xe8\x9b\x88\x0a\x06\xb0\xdb\xa8\x9d\xcd$sV\xa2\xea\xe4\ +\xf9n\xdf\x94\xaa\xede\x0a\xa3\x90\x92\xe0Y89\x5c\ +\x16\x16\xc48d~L\x9f)\xf7\xfd\xd5\xc24\xa6I\ +\xf4B\x98\xe0\x1f\xbf\x94$\xb8\xb3\xf0\x05]-\x9e\xca\ +\xba\xfc&\x8b\xb9R\xf3\xb9[\xad\xe1Qu+\xb1\x97\ +z\xb8\xfdC\xc3h\xa8\xe5\x90\xb7\xd9WP\x9c\xa1\x0c\ +)}\x07\x97\xb8Joy\xbfz\xc1\x9du\x9d\xd1\xea\ +A\xa6\xb7\xa4_\x83x(B\xeacNB?&<\ +\x1c\xf1\xaal$\x04\x92j\xb5m\x8ac\xf0\xab*\x9b\ +S\x14\xee\x8d\xd4\x15db\xd2`\xc4\x0a\x01\xd5\xd7Z\ +\xec\xd3\x06~\x89Ft\x0c\x86\xbckE\x09\xc9\xf5\xdd\ +\x9a\xd6B?\xc03\x83\x0eF\xc8\x86}Tl\x9bm\ +B\x99\xeb\xbb#\x8dC\xdf0\x82\xa3(!\xc4\x1f\xe0\ +\xb1Y\xceq\xa8\x0ee1f\xcc\x8f\xf8\x00AQ\x12\ +\x1c\xfb\xc2\ +0^\xb0\xd0\x9f\xd9\x8echm\xa0\xfb\x98m\x86I\ +\x10\xd1\x04^\x97\x81\xedV\x98\xcd\x09\xdb?\xc2\xf1\xa0\ +=\xe1\x18\xeaH\xc2\x98\xc5A\xd4>\xfd\x03\x96\xa7C\ +\x86`\x81\x9a\xdfP\x02\x1dD\xa2\x88\xd2;\xf8\x05J\ +\xe2(\xe4\xb1\xc5|\xc84\x8e\xee\xe0\x91\xc4A\x143\ +\x8a\xec\x7f\x11\x0d\x09\xbf\xe3!\xf6\x03\xcay\x80\xfe>\ +\x22\xd9&\xc9\xc9\xf3yH5\x10\x9fQ\xda\x85!\xe4\ +Q\x98\xad\x96\xf3\x847O\xab\x0a\x06D\x98\x97\xbb\xcc\ +\xc9a\xf5\xc4-\xecX\xbe\xbc\xf9\x0ev\x1b\x95/\ +\x00\x00\x07\xdd\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x07\x95\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a\ + \x0a \x0a \x0a\x0a\ +\x00\x00\x07\x7f\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0b\x13\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0ap\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \x0a\ + \ +\x0a \x0a\x0a\ +\x00\x00\x06\xe8\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x14\xd4\ +\x00\ +\x01\xa6;x\xda\xed]\xddnc9r\xbe\xdf\xa7\x10\ +473X\x8bfU\xf1\xa7\xa8i\xcf\x02\xc1`\x93\ +\x5c,\x02dg\x12 7\x81F:\xb6\xb5#K\x86\ +\xa4n\xbb\xf7\xd5\xf2\x0ey\xa6\x14e[\x7f<\xce\xf4\ +2\xd8\x98f\xb3{\x1ac\x9f\x7f~\x1f\xc9\xafHV\ +\x15?\xfc\xe1\xf1n1\xf8\xd4\xad7\xf3\xd5\xf2j\x08\ +J\x0f\x07\xddr\xba\x9a\xcd\x977W\xc3\x9f\x7f\xfa\xe3\ +\x88\x87\x83\xcdv\xb2\x9cM\x16\xabew5\x5c\xae\x86\ +\x7f\xf8\xe1w\x1f6\x9fn~7\x18\x0c\x1e\xe6\xb3\xed\ +\xed\xd5\xd0\xf00\xfev\xdb\xcdon\xb7\xfb_?\xcd\ +\xbb\x87\x7fX=^\x0d\xf5@\x0f\x0c\x0f\x9e\x0f\xcfg\ +WC\xb9\x1d\x9f\xae9\xbc\x19\x9e\xce.\x7f\xddL'\ +\xf7\xdd\xf8\xf8\x8c\xc2\xc1\xb7z\xa2\xf5\xf4\xda\x12\x85\x8b\ +\x01j\xc4\x91\x96\xff\xccw\xbb\x9b6\xf2\xbd\xf7\xf2o\ +<[M\x97\x93;\xf9\xcc\xee\xf1~\xb2\x8c\xf7\xff\xe7\ +\xfdb\xb2\x5cJi\x94\xbcsw\xb1\x14x\xb9\x19\xbf\ +\xbc\xe7jx\xbb\xdd\xde\x8f//\x1f\x1e\x1e\xd4\xcbA\ +\xb5Z\xdf\x5c\xc6\x07m\xee'\xd3ns\xf9r\xfc\xe8\ +\xfe\x97W\xee\xef\x7f9\xa06\xab\x8f\xebiw-\x8f\ +\xe8\xd4\xb2\xdb^\xfe\xf8\xd3\x8f\xfb\x93#\xadf\xdb\xd9\ +\xd1c\x1e\x17\xf2\xec\x93ox\xa0\xdd\xdb!\x84p\xb9\ +;{\xb8\xba\xef:\xd4Z_\x9e\x16M~\xfb\xc2+\ +\xd7\xb3\xebW\xdf\xad\xf1R@\x96+F\x9b\xcf\xcb\xed\ +\xe4q\xb4\xdc|st\xebt\xba\xbfs\xba\xee&\xdb\ +\xf9\xa7n\xba\xba\xbb[-7O\xe0\x9d\x5c<;\x5c\ +|\xffq\xbd\xd8]1\x9b^v\x8b\xee\xae[n7\ +\x97B\xf1\xe5\xf0\x07\xb9\xfe\xc3]\xb7\x9d\xcc&\xdbI\ +\xbc\xf7\xa9\xaa\xbc\x1c\x01\xdc]!\xd7\xc87\x8d\xff\xf5\ +\xc7?>\xfd&\xbfO\xa7\xe3\x7f_\xad\x7f}\xfeU\ +\xfe\xc4\x0b&\xbf\xac>JU\x1c\xfe\xb0?\xfca6\ +\x1d\x0b+w\x93\xed\x0f\xf3\xbb\xc9M\x17\xb1\xf8\xbd|\ +\xdf\x87\xcb\xc3\x89\x93\x8b\xb7\x9f\xef\xbb\xc3C\x9f\x1e\xbb\ +\xee\x9e\xe8\xed-\xcflz7\x8f7]\xfey;_\ +,\xfe9\xbed8\xb8\xdc\x7f\xe7\xe5\xf3\x87>\x17\xe3\ +\xf2\xa8\x1c\x1f._\x8a\xb9\xfbm\xd6]o\x0e\x08\xc4\ +\xdf@\xbf\x94^\xaaD7Y\xff\xe3z2\x9b\x0bv\ +/\xdf\xb7o6\xd3\xd5b\xd1M\xa5\xe4\x93\xc5\xc3\xe4\ +\xf3f\xb8\xbf@\x1etz\xab\x0b\x00{x>l\xb6\ +\xab\xfbCa7\xdb\xcf\x0b)c<8\x92'\xae\xd6\ +\xe3op\xaa\xc9N\xbe\xdf\x1dZI\xb3\x90\x92\x8ea\ +x\xb8eu}\xbd\xe9\xe4\xbd\xfa\xe8\xd8\xae\xa9\xcb\x0d\ +.h\x7f\x8c\xc4o\xbe\x8c\xfc\x94=\xfc\xf6\xcb\xa0\xff\ +ea\xff\xb2\x0f\x97\xa7\x85\xfe\xbf\x81\xb8k\x8f\xe3\xdb\ +u'\xcd\xe6\x9b\x1e4_\x07\xdb\x90g\xb3?\x7f\xf3\ +|\xf4\xe7\xe5|+\xad\xfa\xe3\xa6[\xff9\xf64\xff\ +\xb2\xfcy\xd3\x1d\xde\x06WC\xab\xc0!\xa3\xb3\xfb\xa3\ +\x9f\xe5(\x90\xd2\x81\x8d;<\xf1\x11\xa5\xdb\x95\xde\x9b\ +\xbd\xc6\xc3w|\x96\xa3\x14\x94\xf3\x9e,\x1d0\xf9\xff\ +/\xbd\x0d\x1e\xdf\xb8\xf4\xe7o\xffi-\x02\x11\x9b\xfd\ +\xd5p\x1b\x7f\x5cL\xb6\xdd\xb7\xd2?\x07\x03R\xf5\x88\ +.PY\xef\xb5\x06\xd1\x98\xb7E\xce\xbc\x07\xe4\x04-\ +y\x02\x07w\xa1\x15;k\xc82\xbe5p\xee=\x00\ +'\xcf\xb0\xc6J5\xbb\x90\x9f\x8cF\x13\xec[\xe3\xc6\ +\xef\x017\xa3\x0c\x92'\x0d\x17V\xb9\xe0\x84\xed\xb7\xae\ +o\xac\xdfK\x17G\x08\xb1_\x91\x1ag\x8dao\xdf\ +\xba\x8b\xe3\xf7\x22\x0e\x0e=\x05\xab\xad\x88\x0301\x19\ +~k\xe4\xde\x858\x8c\xc4\xc0\x07\xb2~\x87\x9b\x0d\xd2\ +\xdf\xb9\xb7\xc6\xed]h\xc3H\xe0\xd2\x1e\x82v\x17\xa4\ +\xbcX\x90\xfe\xcd\xc5\x81\xf9\x9d4Uo\xaca0F\ +\xaa\x9c\x01\x8f!\xf87ENz\x8e\xf7\xd1\xc9\x91\xb2\ +\x16\xadf\xba0\x0a\xd1\xc9h\xca\xbd5p\xa6\x01\x97\ +\x07\x9ck\xc0\xe5\x01\xc7\x0d\xb8,\xe0\xde\x89\x09\x5c \ +pM\x1c2\x81{\x1f\xe2`\x95\x0cUe\xac\x15.\ +\x9c\xf2@\xc1\xc1\x9b\x03\xd7\xc4!\x13\xb8&\x0e9\xc0\ +y\xad\xdf\xcb\xfc\x88Fo\xd1\xd1\xd3h\x95B@\xfb\ +\xd6\xc8aC.\x139\xd3\x90\xcbD\xce5\xe42\x91\ +\xe3\x86\x5c\x1er\xd0\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\ +\xc8E\xae)D.rM!2\x91\xc3\xa6\x10\xb9\xc8\ +5\x85\xc8E\xae)D.rM!r\x91k\x0a\x91\ +\x89\x1c5\x85\xc8E\xae)D.rM!r\x91k\ +\x0a\x91\x8b\x5cS\x88L\xe4LS\x88\x5c\xe4\x9aB\xe4\ +\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\xc8D\xce6\ +\x85\xc8E\xae)D.rM!r\x91k\x0a\x91\x8b\ +\x5cS\x88L\xe4\x5cS\x88\x5c\xe4\x9aB\xe4\x22\xd7\x14\ +\x22\x17\xb9\xa6\x10\xb9\xc85\x85\xc8D\xce7\x85\xc8E\ +\xae)D.rM!r\x91k\x0a\x91\x8b\x5cS\x88\ +L\xe4\xb8)D.rM!r\x91k\x0a\x91\x8b\x5c\ +S\x88\x5c\xe4\x9aBd\x22\x17\x9aB\xe4\x22\xd7\x14\x22\ +\x17\xb9\xa6\x10\xb9\xc85\x85\xc8E\xae)D\x1er\xd0\ +b\xaa\xb3\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\xe4\ +\x22\xd7\x14\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\x5c\xe4\x9a\ +B\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\x99\xc8\xb5\x98\xeal\ +\xe4\x9aB\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\ +\xc8D\xae\xc5Tg#\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc8\ +5\x85\xc8E\xae)D&r-\xa6:\x1b\xb9\xa6\x10\ +\xb9\xc85\x85\xc8E\xae)D.rM!2\x91k\ +1\xd5\xd9\xc85\x85\xc8E\xae)D.rM!r\ +\x91k\x0a\x91\x89\x5c\x8b\xa9\xceF\xae)D.rM\ +!r\x91k\x0a\x91\x8b\x5cS\x88L\xe4ZLu6\ +rM!r\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\ +d\x22\xd7b\xaa\xb3\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\ +\x9aB\xe4\x22\xd7\x14\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\ +\x5c\xe4\x9aB\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10y\xc8a\ +\x8b\xa9\xceF\xae)D.rM!r\x91k\x0a\x91\ +\x8b\x5cS\x88L\xe4ZLu6rM!r\x91k\ +\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aBd\x22\xd7b\xaa\xb3\ +\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\xe4\x22\xd7\x14\ +\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\x5c\xe4\x9aB\xe4\x22\ +\xd7\x14\x22\x17\xb9\xa6\x10\x99\xc8\xb5\x98\xeal\xe4\x9aB\ +\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc8\xbd\x7f\x85\xf8p\ +9\xeb\xae7\xbb\x9f6\xab\xd9\xfc^\xfe\x8d\x97\x93\xbb\ +n\xf6i\xde=<=\xfe~r\xd3\x09|\xab\xb5 \ +t\xbd\xfb\xf3\xfc\xde_V\xebY\xb7~9\xe5v\x7f\ +NN\xad\x04\x81\xf9\xf6\xb3\x94\xee\xf9\xf0\xea\x97\xbf\x08\ +\x09\xdb\xd5\xa2\x93\xaf\x9bvr\xe2E)n\xd6\xf3Y\ +\xef\xf1\x8f\xf3Y\xd7wb\xcfl\xfc\xbc\xfd\x8bz\xcf\ +nn'\xb3\xd5\xc3\xd5\x10\xcfO>\xcc\x97rb\xf4\ + \xaf\xbe\x95\xd3&\xd8W\xae\xb8\xed\xe67\xb7\xdb\xf8\ +\xf6\xfd\x94l\xac\x10{\xa0^\xea\xc1\xe6v\xf5\x10K\ +r5\xbc\x9e,\xf6\xbc\xef\x9f\xf6\xd7\xd5J\x98\x01P\ +!\xc0\x81\xbeC\x1d}\xbc\x1a\x8eXY\xed\x00\xf7\x8e\ +7\x87\xb3\x11\xc7\xa0\x98\x03\xd1k%\x91\x07\xb8\xd7\xca\ + \xb7\xa3\x7f\xe5\xdc\xdd\xe4q~7\xffk7;P\ +ux\xef\xc7\xf5Z\xaa\xd6h1\xf9\xdc\x09\xcf7.\ +h\xdb\x87\xf2\xf4\xb6\x9b\xfe\xda\xad\x7fYM\xd6\xb3H\ +\xc4s\xfd\xbay\xbat\xb2\x9eO\xe4\x11\xbft\x8b\xab\ +\xe1\x7f\xff\xd7\x0b\x5c\xdb\xcf\x0b\xe1\xf4z%\x8f\xdf\xfd\ +<^J\xdd\x9d,\xbe\xdf\x1dy\xd8\x81~rh#\ +\xdf8\x96\xeaO c)\xed\xe1\xfe\xf1\xfb\xd8(\x9f\ +\xf9\x19\x83B\xfbt\xe1\xf5\xe4n\xbe\xf8<\xdeH\x1b\ +\x18IS\x9c_\x7f\xbf\xe8\xb6\xdbn=\xda\xc4\x9a\xb2\ +\xbc\x19k\xb9\xf5A*\xe9\xc9\x81\xeb\xf9b1\xfe\x06\ +'^\xea\xf8\xee\x97\xd1s\xc5\x1a\xc3\xf7\x9b\xedz\xf5\ +k\xfc\xc0e\xf7\xfc\xf3S\xbd\x19k\x15\x18Y\xf3\x01\ +\x15)\xfe\xb6{\xdc\x1a\x8bf\x14\x86\xcf\xfd\xd3\xcdK\ +[=F\xe2\xf7'\xfdK\xbc\x09\xedQ\xa7s\x82O\ +,:\xe8\xa0\x04\xfe\xbeb\x7fy\xf9\xc8O\xd9\xc3+\ +\xe5{9{RDT\xdex\x0e/\x07\xe3\xbb\x85\xf6\ +\xf1z\xf5q9;>\xf8\x97\xd5|yz\xf4n.\ +\x1f\xb5\x90\xba\xb5\x1d\x9b\x97c\xb3\x894\xc8\xf5z\xf2\ +\xf9\x04\xcc\xfd\x97\xecK\xbf=tfw\x93\xedz\xfe\ +\xf8\xadVB:kD\xbe\xd0\xf1\xef\xe1\xd7\x91u\x8a\ +\x980\x5c\x00*t!\x18\xff\xdd3\xf2\x82\xfd\xfdd\ +{\xfb\xf2\xd4\xc1@\x90\xfe\xd3\xc08\xe5\xd0\x00\xe1\x85\ +\x97>\xd6\xb118\xf8\xb7\x01ha\xd3\x067\xb8\x1d\ +\xa045\x11\x00k\x07\x9f\x06A\x01b\xf0\x83\x7f:\ +\xdc&G_\xae\x90\xc3\xe4\x95\xd3l\x98\xe33@\xfa\ +[F\x1b/\xf7\xca\x83'\x22{\xfc\xec\xd3\xcb\x0f\xaf\ +\xff\x8f\xe1\xe1\x1bcu\x88_\xed\x0c\xfb\xa3\xc3/\x15\ +\xe2]\xf0\xb8\x97\xe6\xcb\x9b\xf36\x10\x8bw\x83\xc2S\ +/\xdbG\xd2eY\xb1\xb5\xc8\xfeb\x04\xca\xa0\xb6\xc4\ +\xc7\xc4\xaeEMRt\xb2\xba\x93\xbfOW2\x9dh\ +;y\x8d\xa2\xe7\xb3'\x14\x81\x12\x82\x183(:<\ +\xff~2\x97\xef\xde)\xf0\xf8n\xb2\x96Ny3x\ +\xbah\x10\xbf\xe4\xac\x9aE\x0cQ\x07\x8f#8:\xf3\ +\xac\x89\xa4,\x22\x18\x08G\xa7\xf6b(\xb5\x18\xa2\x1c\ +\x1d\x9d{\x8c2*\xf7\x18\xe0\xe3[\xa2\xf68\xc5\x06\ +)\xe0\xbe^T\xca_\xec*\xdc\xdb\xf07\xc2\x94A\ +a#h\xa4\xa3\x90\xb6\x03\x83F\x05\xef\xac5\xe1\x8c\ +A\x12\x03E\x0b\xeb\xa7\x0c\x82\xb4E}\x1c\x8f9\x18\ +\xac\xe3a\xe5\xb5\x0bq\x14\xf1[\x0d\xfe\xc8r8\xe9\ +\xca\x8e\x8a\xbe\x83\xfd\xe3z\xf1\xed\x99-n\xc8\xb39\ +j\xf8\xd3\xf9z\xba\xe8\xfa;\xc6\xbe\xdb\xbd\xd6\xfa\xbb\ +/\x96t\xab\x9c\xf4\xd4\x7f\x0b\x87\x7f\x1be\xb1g\xe7\ +\xa3\xb4B\x83A4\xfd\xa2\xb1\x8fZ\x9bc\xa6\xa2\xd1\ +gP*\xb8\x0f\xc7:\xb0\x8ev\xdaQ;z\x0d\x8e\ +bZ\xd2+\x9c`q\x9c\x8c\xf8\x8c\x15b\xe5\xa5\xee\ +\x01\xa6\xac\xa0\x0d\x1cl\x85\xb4\x98\xf2h\xf1\xe7\xb4\x90\ +b/#\xa1\x94\x15\xd0tlW\xd4\xc3\x8a+\x8f\x95\ +p\xc6\x0aZ\xc5h\xcc\xd1j\xcd3-Z9\x06o\ +kl,\x5c\x1e-\xae\xd1\x02\xe5\xc9\xfdH\xa7\xb4\x84\ +\x00\xc7~C{Z\x0c\x81=1\xd9\xaa\xa0E\xf4\xb2\ +@Z\xcc\x19-\x00\xcaY:\xb5\x8a#-\x04\x8aP\ +$\xc7U\xd8Z\x0a4\xc4\xe0\x8c\x16\xaf\x8cA\xc3\x8e\ +\xcfh\x81 \x06\x9a\x0c\x80\xa8BZ\x0a4\xc4\xb4I\ +x\xb1h\xc5\x16\x0b_\x0b/V\x06\xcd\x05\x8e[\xce\ +-d\x88\xa2\xef\xd0\xdb\xf3n\x8c\x94\x8e!45\xb6\ +\x97\x02y\xd1\xc9\x80R\x000V\xeb\xf3~L\xd0\x0a\ +\x02\x17\xd4\xc8K\x8962\xa6\xbc0\xb2w=\xd6\x98\ +t\xc4NW(\xfbX\xa25\xe6\xbf\x9c\x17t\xc6s\ +\x8d\xbc\x14h\x8e\x9d\xe8\xf8\xd7\xcaK\x81\xf6X\xc0\xc6\ +\x0b\x96h\x8f%\xedE\xcbh\xdf0\xfaT\xf7\x85\x17\ +\xed*\x9c\x84\xc1\x02u_C\x0f/\x00\xe9\xe4X\x9c\ +\xf8w\xe4k\xd4}*P\xf7\xfd\xb9\x9d\x0cZ\x06\xfc\ +\xc6YJ\xc7\x95d\xed\xf1>\x9c\xf5\xf0R\xa2\xee\xc3\ +\x97\xf3\x82\xd1\xdb\xa5BZ\x0a\x94}\xfb\xe5\xach\x04\ +i/\x15\xd2R\xa0\xea\x9b\x90\xf2\xa2\xd1;>\x9f\x85\ +\x89\xce3\x9a\xb8F\xd5\xa7\x02U\x1fSZ \x18\xe3\ +\xe1\x9c\x16\xa7\x0c9\xb2\x15\x8a\x8b)P\xf4\xadOy\ +!\x07h9\xe5\x85,\x06Wa7f\xb0\xc4n,\ +|\xa9\xbeTLL\x81\xb2ol\xcfb% \xf45\ +\x18\x94Or\x15z\x8d\x99\x12\x1da(!\x06\x95\xf7\ +\xc1\xb9D\xf8\xad\x0c+\x03\xeaP!1\x05\x0a\xbf?\ +w\xba\x00\x12\x85!\x83)-\x86\xac\xa3\x0a\xed1[\ +\xa0\xf0s2\xaa4\x0aY{\xc3)/\xe8\x98O\x8e\ +\xd7\xc2K\x89\xa3\xfd\x90\xf2\x22f\xb2\xa5\x9en\x0c\xd8\ +\x1a[\xe1p\xdf\x96\xe8\xfe\xca\x98\x12cI\x07\xe4\xaf\ +g\x04c\x0b\x14~K)/\x9e\x01\xf4\xf94?\xca\ +\x88SJP\xe3\x80\xdfr\x89#\x98s\xe1'Q\x92\ +\x18\xfd\x96.\x8b\x91a\xf0\x15\xdac\xae@\xe1\xc7\x84\ +\x16\xa7,x\xa3{<\xf9\x91\xa2IV!/%z\ +[&\xae\xfc\xac(h\xe7{\xdc\x94P\xfa1\xaap\ +\xc0\xefL\x89nJ\x89\xa5\xec\x94\x8fn\xe3\xc9z%\ +*#'\xb8BK\xd9\xb9\x12;\xb2d\xee2('\ +:\x92\x10\x83\xd1\x9d_\x0e\xd7\xd8b\x0aT\xfe\xc4 \ +\xf3b\x90\x11&~\xe3\xd1 \xe3\xa0m\x85\xed\xc5\x17\ +(\xfc\x00\xa9=\x16\xc0j\x0a\xa9\xdfE mN\xfc\ +\x9aj\xe1\xa5\xc4\x11\xbfN\xdbKp>\xf5\x1f#P\ +\x9e\xa0\xc6\x092_\xe2\xfa\xbeK\xc7\x95.x\x0f=\ +\xea\x82\x1eM\x8d\x0b\xfc%\x86Yx\xdfx\xf1%\x8e\ +\xf7u\x0f/`\x08\xe1\xeb\xe1\xa5\xc4\xe0\xca@6\x89\ +\x12\x07T\xdaZ\xef\xcf\x13] (G\x96\xb0\xc29\ +e\xc6\x12\x97\xc6\x92\xac\x0a\xc2\x8c\xa3`\x09SfH\ +\x83\xafq\x15\x86M\x89\xabcI\x1a\x12 e\xad\xe3\ +\x9e&\x03d\x82\xab\xd0X\xe6\x12\x97\xf9C\xeaxI\ +*&\xd96=\xcch\x0bU:`0\x17\xb9@\x96\ +\x8e\xfcI\xb1\x8c\x85\x93\x11&\xa2\xf4fhj\xa4&\ +\x94\xe8\xe4G\xa3\x9eE2m=B\xc2\x8cU\xc1\x83\ +\xafq1&`\x91s\x98\xa9\xd0\xb0\xe2`t\xb2\xe0\ +\x8fN\x1a\x8d\xa5\x1as\xc5\x84\x02M\x00\xea\x9b\xc7\xd4\ +6\x10CJ\x8cX\xd3gy\xf9*!\xa6\xc4\x05\x7f\ +\x97Z\xcd$\xbd\x161\xf64\x19 \xb65.\xf9\x87\ +\x12M\x00\x9f\x8e4\xbf:f@\x97\x18\xd3\xaf{m\ +\xb3\xa0M:\xd2\xac\x98\x99\x02-\x00w\x9e\xcd\x87\xc4\ +2cML=Y0\x02WHJ\x89\xce~&\xf5\ +\xc5\xf0$\xd6r\xe2\xbb\x04\x82\x96\xfc\x09\x15\xf2Rb\ +H\xbf\xed\x09\x1dG\x13\x1c\xa5\xbc0\x13T\xe8\xbb\x04\ +%\xa6\xbbL|c\xe3\x1c?P\x80$\xd5Bt\x01\ +4\xde\xd47\xc1\x0c%\xe6\xbbt:\x0dV\xe2\x08\x7f\ +\xcfZ\x19\x19\xf0\x15fV\x84\x123+\xba$?,\ +(\xef|\x12\x0cK\xa8\x82Fp\xa6BZJ\x8c\xed\ +s\xe9T\x8c\xe3@ILL\xcc \x87\xd6\xea\x0a\xcd\ +\xb1\x123\xf8\xe1\xf9\x14\x19b\xf4Pr>\x91\x17/\ +_d\xa8\xc2\xa5e(1\x83_p=\xbcX<\xde\ +\xb7s\xef\xb2\x0c\xce\xfa\x1a\xcd\xb1\x123\xf8%\x8e\xb1\ +h\x15\xc4=H \xf5\xf4C9\xcc\xb6\xc2<\xd7E\ +f\xbe\xd2I\xea^6\xac\xa1g\x0e\xc6\x06\x0cPa\ +?VbfE8\x9f\x1b\x93\xd1>2\xa6\xc3\xca\xb8\ +\xd8\xaf)P\x85\xc3\xfd\x123+z\xdf\x935\xc6\x89\ +Eo\x12b\xa2\x0f\xa0s\xbaBC\xb9\xc4\xd4\x8a\xd0\ +\xe7\xb7\x84\x96\xbc3==\x19\x0be\xbeBbJT\ +\x18\x93.'\xa3\x22\xf2`\xfd\xd7\xc3L\x99\xd9\x15G\ +=\xf9\xe1e\x10\x19\xa8g=\x19\x5c\x00S#3E\ +\xe6WL7 y\x9d\x19\xcd2\x8e\xa9Pf\x8aL\ +\xb1\x98lA\xf2*1V1Y\xeb+\x5c\xb4,3\ +\xc9\xe2\xa8'M\x09\x13\x87\xd4\x000\xca\x80g\xae\xd0\ +d.2\xcdb\xb2\xc7\x954\x19\xadm\xb2\x09\x09\x92\ +\x00\xa3\xc9W8\x85Yf\x9e\xc5\xb4\xc5X\x05^\x8c\ +f\x972\x03\xce\x05\xae\xb0/+4\xd3bj3\xbf\ +&3\x15SSd\xae\xc5\x94\x19\xa7\xcc.+I\xca\ +\x8c\x16\x0b\xa0\xc2mG\xa1\xd0l\x8bi\x1c\x86\x8f\x1b\ +]\x87$\xb1\x1f\xa2\x0c4\x09\xa9\xc25\xff2\xf3-\ +\xf6y\x94\x837.p\xcaLt\x9e\xb1\x15\xdafe\ +\xa6\x5cL\x07\x9aA\xe9\x80\x1a]\xca\x8c\x8e{\xc8`\ +\x85\xcc\x14\x99t1u\x8f\x0d\x02\x013\xf4\x04b\x86\ +\x10\x8c\xafpr\xa6\xc4\xb4\x8b\x96\xd29\x80\x10\x17\xc7\ +\x88{\xa6\x9a\x03\x04W\xe3H\xd3\x96\x99~)m4\ +q\x15 pj7\x1be\x82u5\xce5\x97\x98z\ +\x91F}[\xf9`\xcc\xf2\x97\x12\x83\xc6\x9e\xfa\x03V\ +BL\x89\xb9\x17\xadK\xa7g\xa47\xd3\x1cB\xd2d\ +\xbcX\x00\xce\xd48\xa3Yb\xf6\xc5\x18\xba\xe4S\xa7\ +L\x0dZ\xfbd\xb19(o\xadv\x15z3\x95\x98\ +\x80\xd1\xe8d\xeaL\xba-\x08q5)\xf5\x97u\xe8\ +\xb5\xaePg\x5c\xa1\xb3\x00=+\x01N\xb1\x8b\xc9\xd5\ +\xcf\x9b\x0d+c\x02\xd5\xb8\xac\xe9\xca\x9c\x07\xf0}!\ +\xccF\xe4F\x87\x94\x1b\x00\xebk\x1co\xfa2g\x02\ +8\xdd\x11\x8b\x159\x06\xf2\xa9%\x10\x0c\x87\x0a\xb7\x8d\ +\x05_\xe6\x5c\x80M\xe7iXY2=\x99e\xbd\xf4\ +u\xb6\xcaigo\x0a\xcd1\x93vj\xac\x1c\xc8\xa0\ +\xd3\xa7v\x1a\x88ES%9\xae\xc4`\xb3\xd4\xc3\xc9\ +)g\xd9\xf7\x8cm\xc0Z_]\x87&\xb6g\xa99\ +f\xfa\x9c\xcf\xc8\x05mMj\x09\x90g]\x9f\x8b\x93\ +\x90Sf\x96\x99\xbe\x84f\x226=\xc4\x00\xfa\xd3\xc6\ +T\x0b1\xaeL\x7f\xcd\x91K\xc3g=\xe9\x90\xc4\x03\ +\x0a7h\x80M\x8d=\x1a\x97\xe9\xb1\x99\x9ah\xafs\ +\x03\x96+\xdc'\xcba\x89\xe9f\xed\x08\xbe\xbc\xd9\xc8\ +\xc8F3\xfa\x0a\xb5\xa6\xc4t\xb3q--5\x9e\x9d\ +\xd2\xce\x1b\xdd3[\x13\xe2*\x1bW\xc8\x8d)se\ +\xa0/\xad\x19k\xa7]H\xc3\xcf\x9dq\xc6\xd4\xd8n\ +\x5c\xa93\x02}\xfe\x9bZ\x87\x1e\x7f\xa7\xa0\x021\x86\ +\x0a\xc9\xe12G\x9d}\x0d\x07\x88<\x86\x94\x1a\x94\xe6\ +_\xe1\x8e3P\xa2\x9d\x06=\xce\x1bql\x13z\xdc\ +\xd1\xc5\x14\x00\x7f\x1aq[K$z\x91\x9bh`:\ +\xffL\x8a\x0c\xb2=\xf7E\xa3\xd8\x98l\x95\x81\x82%\ +\x1a\xd0\xce\xf4ld\xce\x10\x10{\xda\x8c\xb7\xe8+\xdc\ +\x10\x08\xb8\xc8y\xb4\x9e\x1d\x805\x11%-Fd\x86\ +H\x9b\xfa\xa2\xd1m(q\x0e-\xe8\xd0\x93~N\x07\ +JT\x86\xac\xf2\x1el\x8d\x22S\xe2J\xda\xf9\x14M\ +P\x9e\x8c\x01\xdd\xe3P\x83\x96u}i5\x84\x97\x12\ +\xc7\x9a=\x1e\xb5\xda[\x9b\xf8:S\x9c\x9fq\xda\xd4\ +\xd8\x8f\x15\xd8^4\xa5#\xcc\xe0\x83\xd7=\xdd\x18\x05\ +\xe0\xfa\x16\xd0\x84\x97\x22w6\xe1\x9e\x1dM\xa5#\xf3\ +\xc9\xc4\x8cQ6\xf6o\x15\xba\xa0\x97\xd8\x91\x9d\xe6\xfb\ +y\xf6s\xb6:\xfaf\xa6\xb1\x01L\x86}\x851h\ +%\x0e/\xdd\xf9\x84L\x84_\x8b\xc6P\x1a\xb6I\x8c\ +\x1ek\xe4\xa5\xc8\xc9\xb2sKY\xde\x0c\xce\x1as\xee\ +;#&ApHP\xe1\xd8\xb2\xc4\x1d\x9a\xfc\xf9\x98\ +\xdf(\xcf\xda\x9d\xceT\xeexqJ\xcb \xac\xc6`\ +\xda\x12\xf7g\x82d\x96\x0cQ9kEJz\xa4_\ +l\xb2\x1aS\x03\x94\xb8;\x936I$\x8d0\xe3\x89\ +\x99\xbf\x22b\xca\xf4\x9b\xc14\xfb\xac\xb3\xde%\x01\x01\ +\xc2\x0cx\x13\xaa\xd4\x982\xbdf\xe0\xcb\x99\xd1\xc2\x0b\ +\xd6\xe7r\x8e\xbaH\x9f\x19\xff\xa5\xc4\x90b\x035\xc6\ +\xd0\xa0.27P\xe2\x9c\x89q\x07\x13\xed\xd8\xa6\xa1\ +g\x06\xc9\xd9\x1a\x9b\x8c)1\xcfY\xdf\xca\xb2g\x97\ +L\x96\x01+\xa35U8'\x83%n\xd1d{\xbd\ +1\xbc\xb1\x94\x848\xc7\x80'p\xc1\xd4\xd8d\xb8\xcc\ +Dg\xa6\xc7\xc3\x0c\xd9'\xbb\x9aWLM\x89\xfb4\ +\x99\x9eL\xa7F\x85\xe0\xb0\xaf\xd1 \x91\xado\x0dS\ +\x98\xc12C\x9c{&3\x03\x83\x09\x89\xd2x\xa5\x0d\ +b\x85;gb\x89\xbb5y\x9d4\x1a\xaf\x0cCH\ +M\x00\xa7\xbcfWa \x96\xb8]\x13\xa7\x03M\ +i\x1aN{\x9bx2\xc7D\x0e\x0e)\x98\x0a\x99\xe1\ +\x22=\x99!\xf5\xc9p\x0e\x1c\xf5\xe4\x06\x8c&\x1bU\ +\xd8fP\x97\x19\xd9\xec\x93]h\x9c\x09\x06\x10S\x9d\ +\xf1ZNT\xc8L\x99Q3\xc9Ls\x10\xdb\xcc@\ +\xb2\xcaLb\xb3\xa15\xb6\xc2\xd9\x99\x12\xb7\x07\x8a\x81\ +\xcd&i3\x14\x13\x03%\xdd\x19\xc4\xb9f\xa80d\ +F\xa8q%\x865\xf7\xe49C\xe3)\xc9AK$\ +p\xc9X\x93+$\x86\x8b\x8c3\xe3\x9e\xde\x0c\xb4\x07\ +J\xbd\xcct@\xacp\xaff,r\x83 \x9f\xce5\ +\x7f\x85\xcc`\x91\x09\xe8 e\x86\xd1\xa7\xf9\xe7*&\ +\xc6\x94\x9a\x7f.\xd9\x84\xd6+t\xec\x93\x5c\xa7\xe4\x94\ +\xb1\x16\xa0\xc29\xcd\x12\xf7\x08\xda\xe5\x9f\xeb\xe1\x86-\ +\xdat#Z\xa7\x00\xa1\xc2}\xb5\xb0\xc4M\x82\x9e\xd2\ +\xcf%}\x1a+\x1f\xf76\x09i\xa7\x16\xac\xa9q\xd3\ +3,q\xa7\xa0]\xb4yH\xb9\x09\xe4\x9cq)7\ +\x1c\xb7\x08\xabp.\xa0\xc4\xbd\x82\x9e\xf2\xcf\xb9\xd4\x18\ +\xd0\xa8O\xbd\xfe\x9f\xc3g\x00exV#9EF\ +\x03$\xb3\x011\x89\xb6\xd3\xa6\xcfN\x03\x075\xae\xa1\ +\x95\xb8Y\x10\xa4\xf9\xe8\x91T\x9c\xd9\x0c=\xfdY@\ +\xf2T#3\x5cf\x1a\x00\x9d:8\xb1t\xbeIZ\ +\x13\x01\xcc\x82\xa3\xf0\xbf\x99\xcf\xf1\xb9)1\x11\x93\xa3\ +2\x8e\xbfa\x1d\xff\x9e\x16\x19\x04\xbd/*\xef\xdd\x5c\ +Xx9\xba\xc7\xf2\xe8\xa3\xa4|\x7f\x1a\xa0\xf2\x1a\xd0\ +\xf9\x0bV\x1c\xd0\x8ar\xca\xa1\x00A^\x8c\x17\xc6\xc6\ +\xf0`\xf6v`\xa2~\x06\xd8\x1d\x22/\x17R\x0fR\ +\xc6\xc9\xa8a_\xcc\x0f\x977\xf1\x87\x97\xffm\xbb\xc7\ +\xed\xd3-\x8fw\x8bq\xac\x0bR\xe4\xfbu'u\xe6\ +S\xf7\xfc\xb0\xcc\x1a\x0a\x22+\xe0\xff\x1e5\xf4\x1b\x04\ +\xe7=\x7fq}\xd4\xca{k\xf7\xc3Z\xa9%#\xc3\ +16q?\x98z\x1e_y\xdcO\xf0E\xf4\x228\ +\xc6\xa2\x91Q\x1a\xee\x00\xfcp\xb9\xf9$\xb8\xfd\x0f\x00\ +\xbe(\xf5\ +\x00\x00\x07\x19\ +\x00\ +\x00\x1b+x\xda\xedYYo\xe3F\x12~\x9f_A\ +p^\xc6\x88\xd8\xec\xfb\xd0H\x0ev1\x09\x12`\xf6\ +%\xe7n^\x02\x9al\xc9\x8c)\xb6\xd0\xa4,{~\ +\xfd\x16)\xf1\x90D\xe5\xf2`\x80\xecF\x86\x0dvU\ +\xb1\x8f\xaf\xbe\xaa\xae\x92\x17\x9f?m\x8a\xe0\xd1\xfa*\ +w\xe52$\x08\x87\x81-S\x97\xe5\xe5z\x19~\xff\ +\xdd\x97\x91\x0e\x83\xaaN\xca,)\x5ci\x97a\xe9\xc2\ +\xcfo_-\xaa\xc7\xf5\xab \x08\xe0\xe5\xb2\x9ag\xe9\ +2\xbc\xaf\xeb\xed<\x8e\xb7;_ \xe7\xd7q\x96\xc6\ +\xb6\xb0\x1b[\xd6UL\x10\x89\xc3\xc1<\x1d\xccSo\ +\x93:\x7f\xb4\xa9\xdbl\x5cY\xb5o\x96\xd5\xeb\x91\xb1\ +\xcfV\xbd\xf5~\xbfG{\xd6\x1a\x11cL\x8ciL\ +i\x04\x16Q\xf5\x5c\xd6\xc9St\xfa*\xecq\xeaU\ +\x8a1\x8eA7X\xfe>\xaby\x05\xa8l\xe1\xb77\ +\xef\x04\xa8r;\x9f\xda\x15\xbcgQi\xeb\xf8\xddw\ +\xefze\x84QVg\xa3i\xf2\xf2\xa1J\x93\xad=\ +Y\xb5\x13\x1e\x10H6\xb6\xda&\xa9\xad\xe2N\xde\xbe\ +\xbf\xcf\xb3\xfa~\x19r\xdd\x8e\xeem\xbe\xbe\xaf\xfb\xe1\ +cn\xf7\xfftO\xcb\x10\x078\xe0:8\x8a\xf3l\ +\x19\xc21\xe8\xc1f\xf039h\x8f\xd3\xcf{\x0dF\ +\x86\x22\x1e\xbc\xd9\x95\x0f\xa5\xdb\x977\xadYw\x96y\ +\xe6\xd2fs\xcb\xf0\xdb/~~\x9fW\xb5-Q\x83\ +\xd1-\x18-6\xb6N\xb2\xa4N\x9a\x17\x0e\xebv\x12\ +B[\x0b\xb0\x01_\xcd\xbfy\xf7\xe5a\x04\xe34\x9d\ +\xff\xe8\xfc\xc3q\x08\x9f\xc6 \xb9s;8Wx\xdb\ +\x8b\x17Y:\x07t7I}\x9bo\x92\xb5m\x1c\xf3\ +\x19\xa0\xb9\x88\x07\xc5\x89q\xfd\xbc\xb5\xc3\xa4\x87i\xbd\ +=\xb8i\x92\xabY\xba\xc9\x9b\x97\xe2o\xeb\xbc(\xbe\ +n\x16\x09\x83\xf8l\xd2\xbc.\xecm\xbb\xe6\xe1\xb1;\ +E|<\xc6\xf1\x90\xf1\xe8\x94\x8b\xb8\x03\xa1\x1dev\ +U\x0d\xf84#\x82;l6\x89\x7f\xb0\xbe[\xb1\xf7\ +LU\xbb\xf4\xa1\xb1\xfe\x87\xf7nO\xdeC0\xfa:\ +\xec\xcc\x9c\xcf!\xc4\x96a\xb2\xab]/\xf4v\xf5\x9f\ +\xc6\x93x,\xf9\xf7\xa9\xe4\xea\x8cU\xfd\x5c\x00F\x0e\ +\x18\xb1*\xdc~\xfe\x98W\xf9]a\xc3\x8b\x8d\xe5U\ +\xbb\xb5eX\xfb\x9d\xed\x9d\xb5\xd8&\xf5\xfd\x00}\xb3\ +L#\xe1\xc2\xe8p\x10\x83\xf4_\x01lg\x06\xbf\xc1\ +\xfb@\xc0S$\xda\xc7\x88P$F\xe2\x83\xb43\xfd\ +\x10\x8c&9\xeet\x05\x0e\x8b\xfc\xae\xb0s\xfbhK\ +\x97eo\xab\xda\xbb\x07;\x7f\x8d\xdb\xcfq\x18\xb5\xd1\ +3\x87\x0c\xb7\xadG\x93\xd4>)\xab\x86B\x10&i\ +R\xd87\x18\xe9\x9b\x83\xb4Hj\xfb\xe6\xb0\x9d\x9b\x9e\ +\x0c\xe0\xd0\xd6O\x07\xe76\x1el\x9f\xfa\x08i\xc2#\ +kb\xf1\xb0\xc4\x16\x88\x94\xba\xc2\xf9e\xf8z\xd5~\ +\x8ek\xdf9\x9fY\xdf\xa9d\xfb9Q9H\x00@\ +I\x88\xd5\xa3\xd8\xdd\xfdb\xd3\xbav\x85\x85\xcd54\ +&\x9d7\xd7\x1e\x8e6%\xdf\xe5\x99\x9dR\xf4>l\ +\xb6\xd7/4\xa9\xad\xee\x93\xcc\xed\x97!=W\xee\xf3\ +\x12\x14\xd11'\x11-\xd9\x15\x8b.O\x11LE8\ +\x90\xbf\x07\xaa\xe3Eu\xef\xf6\xcdI\xc0\xa3IQ\xd9\ +\xf3\xd9>8\x07>b\x88iL\xb1\x16\xe7\xea\x142\ +\x1f\xa4ZB\xa44\x82\x91\x0b5\x9c\x8f\x19\xc4\x98\x94\ +\xca\x5c\xd9(\xcc \xd4\x15\x1d\xbcN\xaf\xe96\xc9S\ +\xbe\xc9?\xd8l\xf0\xd5\xb0\xee\xce{\x08\xd0\xa8H\x9e\ +-8zm09Ri\xb1\x1e\xb0Xs\x22\xfa<\ +\xb0\x1e\x87\xe8\x9a\x0b\xce\x7f;\xb8\x18\xbe\x08\xae\x19\x0e\ +\xbej\xee\x81\x1f\x9a?_\xc1\x9d\xf0\xd3\xc8d\xd8\x9f\ ++K`\x95\xf3\x11\xec\xf41\xa9w\xde\x0eD8\x0b\ +\xb2y\x09\x15\xc0(+\x0e;=\xee\xb59\xdcdd\ +A~\xf6\xf9\xd3\x1b\x88=\xc5\x0c5|\x06\xbb\x9b\x0d\ +#\x051g\xe0\xa0d\xc60R\x8c\x1a\xccn\xc6\xd9\ +\x7f=N\xe5\xedJ\xda\x88p,\xbc\x5c\x0b#)9\ +\xc7\x9c\x8bv\xb1\xd102\x88\x0a\xa28S\xb3\x88\x22\ +\xaa\x88\x82\xb5\xc7\xeb]\xe0\x1c\x8c\xaf@\xc80\xb6\xb9\ +)\xa0jH\xd3\xf0\xcch\x04\xd6k+\x9b\x9f\xb7\xd7\ +\xd3\x93\x22L\xa5\xfa4=Q\xa4\x0c\xe3\xca\xc8^^\ +\xe4\xe0\xa0d;\xbf\xdb\xd5\xf5X\xf6\x8b\xcb\xcb9\x5c\ +Z\xd6w\xd2vP\x00\x15\xeb9\xefdY\x02\x01\xec\ +}\xf2\xdc:\xaf\x93\x1eC~N\xce\xf6\xdf\xdc\xd9A\ +$(2\x02\x1b\xc2!\xf9r\xc9\x15\xc1,0\x88S\ +Jq\x8b\x1e\xc7\x94\xf5At\xc1E\xa2\xceg\xfd-\ +\xb2\x8d\xef\xd9i\xec\xff7`\xe5\x88\x02\xff\xa4\x9cE\ +\x84#\xa3\x187\x02peB\x13lf\xed\x036\x9a\ +^\xc7\x95}t\x5c\xff\x7f8\xcd\x08\xd2\x0aS\x091\ +O\x14\x12\x94S\xac\x02\xe0\xb2\xc6\x9ch=#\x04q\ +\xae\xe9%\xc4\x03\xfa\xe2oVO\x01\xcba\x13\x9aJ\ +\xc6g\x11\x83\xcc \x81\xc3<\x80\xa2I\xc1%\xac\xe4\ +\x8c\x1c\x12\xfauX\xd5\x1f\x84\xf5w1\xf8\x0c{[\ +\x14\xf9\xb6\xb2\x93\xf0\xf7\xa7{{p\x84\x94\x18\xafV\ +\x07G\x9c\xea&\xfd2\x06\xaaw\x8a&\x862\xc1.\ +\x1c\xe0\xdd\xae\xcc>\x9e\x03\x06\x14\x99\x8cdt\xce\xdd\ +\xb6\x22\x82\xa4#\xe0\xe2\xd3\xfc\x5c\x09\x05\x8dDF\x1a\ +(\xa5\xce]\xe0\x9f\x9a:\x8b\x08\xa6\x15=g\xbdo\ +\xea(\x84\x85Q\x10K/\xc1\xd9\x18!^\x843T\ +\x82D\x1bB\xa9\xfa\xa48\x93)\x94)$\x12P2\ +2\x81\xb2B\xdc0I\x85\x9cD\x19K\x08\x1d)'\ +P\x86KXq\x98\xf5E(3\x86\xb1\xc6/BY\ +\x1bl$ \xfdi\xd9<\x852\xa3Hr)\x14\x9d\ +@\xb9\xc9\xeaT\x0a*\xc4\x04\xcc\x1cqB\x88!S\ +d\x86KY\x19A\x18\x7f\x09\xccjE\x93\x17\x92\x99\ +C\x05\x0c-\xe0'%\xf3d\xc2`HI&\x09\x99\ +\x04\xb9\xad[\x8c\x99\xe6\xb2\xd0p\x1dM'\x0c\xae\xb1\ +f\x94\xbd\x04c!0\xce\xf8\x0b\x13\x063Z\x1b\xfa\ +I\xa9\x8c\xa7P\xe6\x00\x89\xc0\x82OR\x19bN\x0b\ +\xa1\xaf\xa0l\xa0y\xc1d\x12e\x8d\xc1\x01L\x9f~\ +q\x15\xaf\x7f\xbd\x93:\xbb\x1aF\x9d\xd4\xf0%\x08F\ +\x80\xbe\x01'\xb2\x19\xf4\xd8p\xddC3\xc0\xe8\xc7\xe9\ +\x99\xfe\xd8\x85\xdfA\xab\x85\x9e,G$\xe4\x08f\xe0\ +z\x82:\xcf\xa0\xa6\xdf\xa3A\x1apD\xa0\xe1\xc3d\ +\xa6\x91\xe0P\x07\xca@!l\xa0\xf0\x9eA\xda`\x90\ +\x9d\xa1D\x81\x8e\x99jD\x99\xc4\x17\xc0\x9f\xf7\xc0\xbf\ +R\xa6\x19f\xb2$=%\x1eF\x86\x11\x22\x8c!\xdb\ +\xa7\xf3B\xed\x84y\xd3\x95\xda\xc0\xb2\x8fS\xd0\xffi\ +\xc0/*\x8cc_\xa3\x90\x062\xe3\xa6\xaf\x91\x08z\ +\x19\x229`\x0eyD1,4`\x0eu5 \xac\ +A\x04\xa9\x03j\x8a\x19aHB?\xc3\x18\x0d0b\ +\x9c3h\xfd)\x85\xb2\x1ccl\xe8\xdf\xe8O\xa2/\ +\xa7\xd1\x87L\xc2\x14\xa7\xa4\xed*1g\x04\xd8\x9d\x06\ +\x14\xc1\x95\x8d5\x85\x16^\x0aI\xa9\x94 \x82rB\ +\x12\xd3\xd4\xe4\x00\x09\x17\x9a\x01\xfaP`(\x06\x0d\x10\ +D\x06\xd4(\x8c\xf2\xbf\x00\xfa\xa3\x9c\xd6?\x0e\x0f}\ +\x8e\x9bLe\x04\x01S\x15\xd5\x90\xc9\xa8\x80D\xab\xa8\ +17\xe1\xe9Wn\x84w\xd5@;\xeb\xa2\xf9w\xc3\ +\xed\xab\xff\x02\xc2&\x8bb\ +\x00\x00\x08\x03\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a\x0a\ +\x00\x00\x0b\xbc\ +\x00\ +\x00e\xa7x\xda\xed]mo\xe3\xc6\x11\xfe\x9e_A\ +(\x1f\x92\xa0\x22\xb5;\xb3o\xa3\xb3/@\x11$(\ +\xd0\x02E\x9b\xa2\xfd\x16\xf0(\xdaVN\x96\x0c\x8aw\ +>\xe7\xaf\xf5?\xf47\xf5YJ\x94\xb8\x8c\x9d\xc4(\ +\x8a\x00\xa6u8\x9c8\xbb\xdc\x97gg\x9e\x9d\x19.\ +u\x17_\x7f\xba\xddd\x1f\xebf\xbf\xdem/g\xba\ +P\xb3\xac\xdeV\xbb\xd5z{}9\xfb\xc7\xf7\xdf\xe6\ +a\x96\xed\xdbr\xbb*7\xbbm}9\xdb\xeef_\ +\xbf\xfd\xecb\xff\xf1\xfa\xb3,\xcb\xee\xd7\xab\xf6\xe6r\ +f\xc2,^\xdd\xd4\xeb\xeb\x9b\xf6t\xf9q]\xdf\xff\ +q\xf7\xe9r\xa62\x95\x99\x90\x1d\xc5\xeb\xd5\xe5\x0c\xb7\ +\xd3\xa1\xce\xb9g}(\xdd\xbe\xdfW\xe5]\xbd\x1c\x96\ +d_V.\xd4D\x15\x07?\xcfH\x91\xce\x95\xcd\x89\ +\xbf\xean\xd9c\xb4w\xf8\xbb\x5c\xed\xaamy\x8bA\ +\x96m\xf5C\xbb\xff\xa1\xda|\xd8\xb7u\x83\xa9\x14\xe8\ +\xb0\xab\x8b\xd9n\xf7\xcb\xbe\x93\xcb\xd9M\xdb\xde-\x17\ +\x8b\xfb\xfb\xfb\xa2\x17\x16\xbb\xe6z\x11\xdb\xd9\xdf\x95U\ +\xbd_\xf4\xf2\xc1\xfd}\x8f\xa7\xfb{A\xb1\xdf}h\ +\xaa\xfa\x0aM\xd4\xc5\xb6n\x17\xdf|\xff\xcd\xa90W\ +\xc5\xaa]\x9d\x9bIz\xbf\xe7\xae_RJ-\xd2\xc1\ +\xe2\xea7\xd6lVW\x8f\xd5\xd4\x22\xb2P\xb4 \xca\ +Q#\xdf?l\xdb\xf2S\xbe\xdd\x7f>\xb8\xb5\xaaN\ +wVM]\xb6\xeb\x8fu\xb5\xbb\xbd\xddm\xf7\x078\ +\x92\xca\xabs\xe5\xbb\x0f\xcd\xa6\xab\xb1\xaa\x16\xf5\xa6\xbe\ +\xad\xb7\xed~\x81\x15[\xcc\xde\xa2\xfe\xc5m\xdd\x96\xab\ +\xb2-\xe3\xbd\x87\x95\xef%\x9a\xba\x1a\xa8\x831-\xff\ +\xf6\xcd\xb7\x87+\x5cW\xd5\xf2\x9f\xbb\xe6\xfd\xf1\x12\x9f\ +X\xa1|\xb7\xfb\x00\xcd\x9a\xbd=\x89/V\xd5\x128\ +\xdf\x96\xed\xdb\xf5my]G,\xfe\x80\xf1],\xce\ +\x05I\xe5\xf6\xe1\xae>7zh\xb6\xa9\x0f\x0b\xf6\xe8\ +|V\xd5\xed:\xde\xb4\xf8{\xbb\xdel\xfe\x14;\x99\ +e\x8bQ\xa3\xebvS\x9f\x85\x17\x8b\xe3\xe8\x8fs[\ +\x0c&w\xb1\xe8\xe7\xde]\xad\xea\xab\xfd\x19\x96x\xa5\ +\xd5\xb1\xf9\x8b\x93FG5\x5cE;:\xd4\xbc\xc3\x10\ +\xaa\xddf\xd7\x5c\xce>\xbf\xea>\xb3C\xc1\xbb]\xb3\ +\xaa\x9b\xbe\xc8u\x9f\xa4h\x07]\xc6d`MG\xf1\ +\xee\xdd\x8fu\xd5\xb6\xbbM\xdd\x94\xdb\x08\x00z?\x94\ +\x5c70\xea\xc7\xe4\x1f\xd6\xab\xfa\xb1\x82\x93\xc9\xc6\xe1\ +\x9d:z\xb4t\x7fS\xaev\xf7\x973\x1a\x17\xde\xaf\ +\xb7(\xc8\x8f|\xa2\x83\x0dO\xd4\xe89F+\xebg\ +g\xfcN@\xf5\xf7\xedov\xf7q&\x97\xb3\xabr\ +\xb3\xaf\xc7\xad\xfd\xb4\xdb\xddb\x18E\xa0`\xc8\x8fK\ ++\x90V\xae\x89\x0b\xeb\x9c\xfcl\xac\x15f\x97\x0b\x15\ +Z)\xe7\x9e\x9a\x09Z\xb0\xe6\x89\xb2x\xffS\xf3\xbb\ +-?\xado\xd7?\xd5\xab\xf3R\x9d;\xfe\xd040\ +\xb0|S>\xd4\xcd\x80DG W7u\xf5\xben\ +\xde\xed\xcaf\x15\xd7\xe1\xa8T\xd7\x87\xaae\xb3.\xd1\ +\xc2\xbbzs9\xfb\xcf\xbf{\xb4\xda\x87\x0d\x96\xf4j\ +\x87\xd6\xbb\xef\xcbm\xb4\xa0\xcd\x9bNr\xdfa\x9e\x88\ +\xf6\x18\xe2\xd2pAd\xcc\xdd\xa77\x9b\xf5\xb6>.\ +\xcdR\x17d\x0f\x95\xae\xca\xdb\xf5\xe6a\xb9/\xb7\xfb\ +|\x0f\x1e\xbez\xb3\xa9[\x10r\x1e\x99\x15\xac\xbcT\ +\xb8\xf5\x1e\xfa\x99\x08\xae`lK\xa8\xb7\xbf\xa2\xb2\xbb\ +\xc8\x8f:\xb5\xd4o\xf6m\xb3{\x1f\x07\xb7\xad\x8f\xdf\ +\x0f*\x83NUPN\x0f4\xa2\xad?\xb5\xc6\x92\xc9\ +\xe5(l\xa1\xb7\xfbH\x0c(\x8b_7e[\x7fi\ +\x0a1\xe2\x8d\xa7y\xae\x0d\x96\x14\xea\xe0\xbf\xea\x99\xe9\ +\xaelozk\x8f\xd4\x95q(D\x1bo\xdc\x9c\xa5\ +\x10\xa6`9\x03\xab[\xa7E\xfb9\xbey\x1f\x14K\ +\x96c8\xec9\xb89Dl\x826Y\x15\x85\xday\ +e\x03\x84\xc1\x19\x13B\x96\xa3G\xa7I\xcb\x1c\xa0\x89\ +\xf3LQd\xad\x22\x1e\x8aT\xa1=\x05\xf1s\x15\xbf\ +\xb3\xb1^\xec\xe1\xbb\x88A\x03\xb1\xe7@\x9a\x5c7\x1a\ +\xc3qQ\xa2\xcc\xea\xe0\xa4\x93\x1d\xfa\xc3\x1c\xd1\xb8S\ +\xbe\x1ba\xf7\x0d2.\x14Y\xafB\xf6\xe7\x8c\x5ca\ +\x05\xad\x9b9\x11V\xd1(\xef\xe2\xc0\xf1\xddx\xe7P\ +\xd7\x15\xcaj\xa3m\x96\x9b\x82\x1d\xac\x83\xe7\xb9\x005\ +\xc5\xc6e(E;Z\xf9(c/]\xdf\x03$\xc4\ +*a\x1f\x9bs\x8c\xd6\xc2\x9cP\xa6\xad\x81\x08\x96\xa6\ +\xb4\xf6n\xde\x97e\x9bL\x15*Ne\xde\xb7\x80\x91\ +\x1c\xa7\xd9M\x8e\xe3\xa8u\x866\xb0|\xfe\x8c\x81\x81\ +\xc88t?\x14\x01K\xad(0P\xa3\xc2\x13kv\ +hW\x0cF\x142F\x9f*\x18\x99\x9b\x02\x0a\xa35\ +G$L\xa1\x99\xe6\xf1\x1f\xc1\xdav\xeb\xd7\x03\x85z\ +\x18\x22\xb1\xc9\xf2P\x04\xed=\xc6\xad-\xd0\xf6\xd6b\ +.\x1a\xc0\x1b\xe7-F\x0eu\x81L\xc5\xd9\x1c\x15\xf4\ +\x0cC\x9cM\xa7\x1b\xb6\x9bM\x10E\xa8\xc4,b]\ +\x94\xb8\x884a\xb8\xecQ\x8d\xa2\xe8x'\x96CT\ +\x10\x8a\xcba\x09`q?\x85\xb8\xc2\xe8]\xb1%\x9f\ +y4\xe1\x8d`\x85\xb4\xc7\x88D+\xc68\x5c\xc1X\ +!\x0c\x04B\xed\x14n\xeaFBV\xb0\x84gu=\ +\xa9\xcc\x11\xb986+\x02\xd0\x87\x12Pd`\xd3\x81\ +\xda\xddoN\xa3t\xb1#\xcb\x82\x85\x87\xaa(\x8cN\ +(\xfbi\xd6[\xd3/\xf3\xcd\xc7\xc8Q\xdb\xf6W9\ +\xa8m\xea\xb6\xbaIdG\xca\xf9\xe2\xfb\xfa_\xd9w\ +\x0fM\x9d\xfd\x15\x84\xb8\xd9\x94\xd9_`\xcb_\xbc\xc9\ +{\xa2\xcc\x0f-\xdc\xd5\xd5\xfaj]\xc1\xdf\xd9m\x9f\ +\xbc\xe9\xd7\x09\xe9Q\x12:\xd0P\xe4\x10l2=\x09\ +/\xae\xbb\x7f\x229\x1dj\xc1cYv\x8e&\xaa\xc2\ +\x1b\xa9\x9b\x8f\xf5\xff\xc4\xc9\x8cA\x90\xf6\xff\x17N&\ +\xf0\x97\x0f\xbf\x99\x93#\x1dZk\xf88\x9f\xb8\xa7\x9a\ +h\x11\xa2{\xdf\x04\x1b!\xbb\x02\xec+\xe1Q\xe6\xce\ +\xa9\xc7\xad\x81\xb3r\xa8\xd1D'\x06\xea\x16\x04\xa67\ +h\x07\xa6h@\x9bt\xee\xcd\x80\x98\x83V\xba\xdf\x00\ +z\xd7\xc1\x15\x01v\x01\xa2?\xca\xfb \x06\x84\x03J\ +7\xc3\xa1\xc4n\x8d\x157Z\x92\x0e\x0d\xb0\xf4J\xbb\ +'\xd0\xe8KG\x80D\xba66\xf4\xe2\xb8D\xd0\xc6\ +e\xb3\xfb\xb0]\x0d\x85?\xee\xd6\xdbT\x0aW\xb4n\ +6p\x0d\xda\xa5\xe9e\xab\x12\xfeT\xd3\x94\x0f\x09\xf8\ +\xe7\xb1\xdc\x95k\xacx\xe7\xff-o\xcb\x06>\xc1>\ +\x8b\xc3\xcd\x0e5\x9f\xc26\x80\x14\x94\xa7\x04[l{\ +\xb0\xf5!\xb6 L\xb6'\x1f\xec\x8c\xadgM`\xa9\ +\x14[\x12\x90\x11\x9d[\x18b\x9b\xf3c\xe8\x1e\xcd\xed\ +\x17\x94+t;\x86\xe1\xdf\x01\xcc\xde\xea\x92\xa5\xef\xe1\ +\xac\xd6M\xb5\xa9\x9f\x9e\xd2o5\x1f8W\x16\xf1\xee\ +\xef\xa8+\x87J\x9d\xca\x0c\xd6\xadc4\xd3\xabGt\ +\x95\xb1\x95`#Q\xa1_\xf4\xe8 {\xf8!*\xd8\ +\x93\x1f\xdfD\x7fvZ\x08\x9d\x14\xbb\xc3(\x80\x8d\xac\ +g;\xc0\xc8\xc1\xac\xe0q:3a\x8c\x5c\x8a\x11\xbc\ +\x0f\xb8\x90\x89\x1e\x89\xc0\xc8\xa7\xacF~\x08\x91\xc0\xae\ +\x18qG\x02\x91W^\xb9S\x18;E\x8clJG\ +FE\xff|\x80\x91\x80\xa1\x84\xac\x9d\xb2\xa9\xb1Mm\ +\xcd\xc0\x8f7\x9c\x80\x14\x14\x82\x07=ecs\x94Z\ +[p\xfe\xe4SF\x8cB\x81k|&\x0c\x91\x0c\x10\ +\x22\x84\xac\xda\xf8 \xaf\x94=\x84H\xa7Jd\x11\x15\ +\xcap\xe7G\x94\xee\x8d\xb5\x13Fh\xe4?\x92c;\ +\x02(\x08B7=\xe5}_\xa5Z$F\x91\x1br\ +\x91\x05F!f\xe6\xa6LF\x89\x93mc\x92\xca\x99\ +\x84\xaf\xe1_[\xc72\xe5=M\xa5\xc6\xa6u8?\ +`9(\x92\xf6\xd8\xf8\xcd3\x09I\xc4\xda\x17\xb4\xf1\ +'\xa1\x88)|pD\xc3P\x845H[\x85 \x13\ +F\x89\xd3\xad\xcd!`\xc3p)E\x09\xb0\xb1\xa6)\ +\xeb\xd2\xe9\xf1\xde\x11%M.\xf0\xd0Gb*X9\ +\xe3\xa6lq>\x8dl\xe1\x04h-bR\x94\x94\xf6\ +j\xca\x06g\x13w\x1b\x1b\x9c\x0e\x8e\xfd\xd0Ub\x86\ +\x0b.\xe4\xa7\xacJlS\x87\xd2u\x8f\xedB\xa2K\ +\x06\xfb\x9eUv\xda{\x5c>r\x05@A\xe7\x83\x14\ +Gm\xd2\x8ah\xd2\xae\x80\xe4\xa3$\x80\x12\x12~e\ +\xef4\xc4M\xd3\xdb`\xef`\x98\xdd\x10%[\xc0\xdc\ +\xac\x9e2}\x8f\xb2\xb7@\xc4h\x97<(\x01J\xa4\ +\x14\xb6\xbe){\x02j\x9c\xc0\xf5\x1a\xfeR\xe20)\ +\xc0\x14\x8c\x84)\xf3\x12\xa7\xce\x00\xc7\xb3!>\xd0\x88\ +\xbe\xbd\xb12emr*\xe5oS\x04q\x92h\x13\ +Ia\x82U\xcf}\xf2\xf6\xe2`J\x81\x82\xee\x00(\ +\xb2\xa3h\xcez\x13\xdc\xd4\x81\x0a\xa9G\xe0\x83\xd2\xa9\ +K\x00j\x17\xedd\xf2\x1a5\x0aW\x14\x08*\xc95\ +\xb1+\xbc\xb5\x93\xd7\xa7\xc4-\xa0\xc2\xc4sw#}\ +\x12+\x81\xa6\x8e\xd3\xe8\x0c\x05\xe3\x93&\xe5\x98\xf4D\x0f\x08\x9dt\xe00\ +y\xad\x92\xd49\xc7\xde\x17\xc8\x9a\x04*]\x04\xf8\x08\ +!L\x1d*\x9fr\x15\x17\xc6\x07\xedl\x0a\x95\x0a\xce\ +\xbe\x1a \xa7\xb9\xbbPh\x15\xb4K\x91boCx\ +V\xc4\xb72\xd6\xbe\xa4\xd0\x98R\x8c\x98t\xfa\x9e\x18\ +\xac1\xc4W\xe7\xf5\x94AJ\x8dN\x8a\xe0\x85\x8d\xa4\ +(\xb1\x17\x09f\xc2(\x8dr\xe5R8G\x9cFz\ +\x88\x88\xc1L\xec&\x8c\x92O\xf6:\xa6\xc2\x90\x18;\ +\xd2%l~\xdeN\x99\x96l\x1a\xbbx8O\x9aC\ +z\xd0\x80<{\x92)\xd3\xd2\x08%\x89?2\xe2\x92\ +S\x87\xaf0uI\xcd$U\xa7\x0b\x1d\xb4M\xdeb\ +\x8di)\xa7\x84&\x8c\x92$y:\xc6p\xbd\x98\xe4\ +\xdd:\x80\xa4\x0c\x870e\xf6\xd6iPG\x85\x16\xc3\ +\xc6\xa4\xe7\xe9<)\xfb\xbc\xf3t/\x0c\xa5\xf4\xb5\xf1\ +.\xe7\xeb}\x92P\x89\xc7\x9fD\xf8\xf4\xba\xfd$=\ +\x01\x95*\x13B\x5c\xa6\xc1\xdbR\x0f]\xd2\x0e\xb8\x19\ +\x9a\xb2[\x193\x99\xa3\x87\x9c\xa2\x99\xec\x88\xbf\xe3\xf9\ +\x95I\x07)\x88yGOZ\x0c\x93I\x13N\xa6p\ +\x86\xfd3\x8f\xd29\xf7\x82P2\xa3\x9fj\xb0\xe1\x9c\ +\xfe>BD t\xe2\x09c\xc4)}\xc7\xdf\xae\x13\ +vIR\x80\x0aG\xf2\xecC\x99/\x0a%7~\x99\ +\xc5K\x08\xe2S]\x0a\x0a\x1f;a\x94|\xaaKp\ +\x98\x10\xc7%?\xfcA\xb6{\x17\xf1\xb9?k\xf1\xa2\ +PJ\x9fi\xc6\x93(\xa4\xb4q\xa34\x1cYGS\ +\xb68\xc4\xbb>\xfd\x89\x94\xf8C\x9c\xc9K?\xaf0\ +\x1d\xe2]\x93>\xf9U\xcek'\xa3X\xceZ\xe3\xa6\ +lt\xa3\xb3s\x8f\xa1\x04j\x0a2if\xd2i\xea\ +[\x17\x96\xad6\xa3\xb4@\xb0\x9a,M\x18%\xecs\ +!u,5\x1b\x19gOL\x90s\xdai\x92\xce\x00\ +\x22\xde\x90>\xbe\x141\x81\xfc\xabk9\x0ey\xc3\xe8\ +g@\xe3\xef\xea\xea\x94\x9a\x9c\x0b\x9a\xf5\x947:5\ +\x0e\xe7\xac\x13\x95&\x06t!>\xb8\x9f\xbfup\x11\ +\xff[\x8b\xb7\x9f\xfd\x17-<\xeb\xa6\ +\x00\x00\x09s\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\ + \x0a \x0a \ + \x0a <\ +path\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path4489\ +-3\x22\x0a d=\x22m \ +-225.0508,25.423\ +733 0.20339,-22.\ +3728818 -19.7288\ +1,11.5932198 z\x22\x0a\ + style=\x22fi\ +ll:#00aad4;fill-\ +rule:evenodd;str\ +oke:#00aad4;stro\ +ke-width:2;strok\ +e-linecap:butt;s\ +troke-linejoin:r\ +ound;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1\x22\ + />\x0a \x0a\x0a\ +\x00\x00!\xea\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a <\ +inkscape:path-ef\ +fect\x0a effe\ +ct=\x22simplify\x22\x0a \ + id=\x22path-ef\ +fect2631\x22\x0a \ + is_visible=\x22tru\ +e\x22\x0a lpever\ +sion=\x221\x22\x0a \ +steps=\x221\x22\x0a \ + threshold=\x220.00\ +0736842\x22\x0a \ +smooth_angles=\x223\ +60\x22\x0a helpe\ +r_size=\x220\x22\x0a \ + simplify_indiv\ +idual_paths=\x22fal\ +se\x22\x0a simpl\ +ify_just_coalesc\ +e=\x22false\x22 />\x0a <\ +/defs>\x0a \ -\x0d\x0a\ -\x00\x00\x0e\x03\ +urrent-layer=\x22g9\ +22\x22\x0a inkscap\ +e:window-maximiz\ +ed=\x221\x22\x0a inks\ +cape:window-y=\x222\ +7\x22\x0a inkscape\ +:window-x=\x2255\x22\x0a \ + inkscape:cy=\ +\x2230.785047\x22\x0a \ + inkscape:cx=\x2220\ +.411215\x22\x0a in\ +kscape:zoom=\x228.9\ +166667\x22\x0a sho\ +wgrid=\x22false\x22\x0a \ + id=\x22namedview\ +8\x22\x0a inkscape\ +:window-height=\x22\ +1016\x22\x0a inksc\ +ape:window-width\ +=\x222505\x22\x0a ink\ +scape:pageshadow\ +=\x222\x22\x0a inksca\ +pe:pageopacity=\x22\ +0\x22\x0a guidetol\ +erance=\x2210\x22\x0a \ + gridtolerance=\x22\ +10\x22\x0a objectt\ +olerance=\x2210\x22\x0a \ + borderopacity\ +=\x221\x22\x0a border\ +color=\x22#666666\x22\x0a\ + pagecolor=\x22\ +#ffffff\x22\x0a in\ +kscape:pagecheck\ +erboard=\x220\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x09\x91\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x0b\x13\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0ay\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a\ +\x0a\x0a \ + \x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\x1d\ +shadow=\x222\x22\x0a \ +inkscape:window-\ +width=\x221848\x22\x0a \ + inkscape:windo\ +w-height=\x221018\x22\x0a\ + id=\x22namedvi\ +ew4\x22\x0a showgr\ +id=\x22false\x22\x0a \ +inkscape:zoom=\x221\ +.2291667\x22\x0a i\ +nkscape:cx=\x22-197\ +.28813\x22\x0a ink\ +scape:cy=\x2296.000\ +006\x22\x0a inksca\ +pe:window-x=\x2272\x22\ +\x0a inkscape:w\ +indow-y=\x2225\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +2\x22 />\x0a \x0a \x0a \ +\ +x\ +\x0a\x0a\ +\x00\x00\x06\xd2\ +\x00\ +\x00\x1e\x98x\xda\xd5X\xdbn\xdbF\x10}\xf7W\xb0\ +\xccK\x8c\x8a\xcb\xbd/W\xb1\x1c\xa0\x0d\x02\xe4\xa9E\ +\x93\xa0\x8f\x05M\xae%6\x14)\x90\x94%\xe7\xeb;\ +\xcb\x9bHJr\xec&Em&\x86\xb8;\xb3\x979\ +;3g9Wo\xf7\xeb\xd4\xb93E\x99\xe4\xd9\xc2\ +%\x08\xbb\x8e\xc9\xa2\xbd\xeb\x85\ +\x1eFq\x15\x1f\xa6\x19\xad\xbec\xf5\xba\x14P\xf2\xc7\ +\x9b\x85\xd6#5\x8b\xf8\xf6\x94&\xd1Z\xfb\x98\xfa\x00\ +\x19hx\xe5}V\x85{/+_\x0d\x86FQ?\ +2\xb2\xee\x91\xdc\x99(_\xaf\xf3\xacl\xe0\x18)\xc7\ +\x07\xe5\xcd\xb6Hk\x8d8\xf2Mj\xd6&\xabJ\x1f\ +\x0e\xccw\xafA\xff*6\xb7\xa5\x1d\xd7\x1c\xbam\xf1\ +Z\x00\xa2(M6\xbf\x87\xd5\xaa\x11;N\xd7\xfe\x9c\ +%\x15@\xb3-M\xf1\xd1\x1e\xc0o\xd9\xe7\xb2\xc1\xbe\ +\x9b\xa6\xd3\x0c\xa8h'\x83\xe9\x0a\x13U\x9d\x12\xf8C\ +u\x9f\xc2\xe9\xde&i:\xcf\xc0\xff\xdf\xd87/\x87\ +\xf9\x92\xea~\x8eQ\xc0\xb5 \x5c\xb07eU\xe4_\ +\xcc\xfc\x95\xae\x9f\xb6\xe9\xd5>>g(\x10\x8a\x13N\ +E\xd7\x9f&\x99\xf9;O\xb2y\x91o\xb3\xb8\xeb]\ +'\x95)\xd2\x04~\xe6\xbc\xeb\x8b\xc3r\x15\x16Ex\ +_/\xef\x1evf\x0d\xb0{\x0d\xa8\x1a\xf4vA\xc5\ +\x91].\x90\x03Q\x1fa'd{\x1b\x1c\x9a\x06\x0a\ ++2\xe8\xbe\x87n\x8c%\xa2\x1a\xebAwQ\xf7#\ +\x12H%\x88\xeb\xf8\xedA\xf8\x1d\x9e\xf5\x89\xf9\xf6\x90\ +\xea\xb7>\xa6l,\xc46\xb2\x0f'y\x13\xf6g\xb2\ +\x09\x97\xe0*i^,\xdcW\xb7\xf5\xd3\x0an\xf2\x22\ +6E'\x92\xf53\x12\xb5\xc7\xd1d\xafv\xee.\xf8\ +\xed\xac\xbd\x1c\x9f\x96\x03\xc2q\xbe[\xb8t*\xfc\x9a\ +\xe7\xeb\x85+\x90\x9c\x0a\xa2}\x8d#\x97\x9c\x06\xe2H\ +\x08+)$\x02\xc0S\xa8\xa9\x10\xf2\xca\xd6:\xb7\xb7\ +m\xdcs\xb3?\x1a\xbe-\x0a\xab\x90\x86\xf7\x06\x0c\xae\ +\x7f\x88\xc7Z\xb5r\x95\xef\x96\x85\x85\xee6L{\xec\ +\xceN\xb6K20\xcdk\xdd\x82\x0a,\xceht\xde\ +A0\x91gT\xc0fqn8\x98L\xd5\x19\xd9:\ +\xdc\x83O\x7f5\xb0gr\x0a\xfehe\xa2/\xa6\xb8\ +\xc9\xc3\x02Tp\xebPWkS\x85qX\x85\x07g\ +\xe9zT\x17\xfa\x90\x85\xe6\x7f\xbc{\xdf\xc7n\x14\xcd\ +\xff\xcc\x8b/\x03O\x05\x85\xf0&\xdf\x82a}\x84\xdb\ +l\x12\xcd!\xb3\xae\xc3\xea:Y\xc3\x06l\xf6\xfb\x19\ +2\x12\xf8l/\x18)W\xf7\x1bs\x98\xb4\x99\xb60\ +M\x8a>\x99\xc1\xe2\x08\x82\x18\x06\xf9\x1f+\xc8\x17\x1f\ +\xec\x22}\x9c\xd4\x91\xd2l\xb4\x0b\x9c\x81\x1dW~g\ +e\xddZN\xf0J\xc3\x1b\x93.\xdc_\xc3M\xe8\x1c\ +\x81\xb9\x84l\xb2Y\xe7\xb1i\xbd\xc6=@\xd7xQ\ +\xdbQ\x15aVZ;\x17n\xfd\x9a\x02\x8b\xbf\xc63\ +\x0fb\x9d#&)\xbd\xec\x00^\x0e\xd3\xe5\xc4\x13\xbf\ +\xb1\xab3\xcbx\x22h\xc2F\xc2z\xdc\xe6\x1c!\x82\ +\xcbC\xfa]\x8e3\xdc\x92\x08=\xcco\x839\xe1\x94\ +\x8ad\xff\x1a(]\x0aB\x03=\xc3\xf0\xef\xd0\x0a\x04\ +$(\x1c\x105\xf3\xa8\x02\x22a\x92\xf1\xcb\xa1\x13,\ +\x87'\xda\xac\xc5\xd90\xfb\x9d\xb3\xc0N\x06+h;\ +3\xac\x019\x10\xeb\xe1\xccG$2%\x92W4\x0a\ +t\x88;\xce\xa8yeD\x18\x14)A\x0f,b\xd9\ +\x02p\x1e\x93\xc5\x84B6a\x029\xa3N\x87\xf3u\ +X@<\x95N\xa3\xe9\xd85\xdd\xf1n:\xf2\xd0}\ +@O\x08d\xda\xdd\xa5\x87i?\xe4\x04\x8f\x08D9\ +\x16$\x98\xc8j\x96\xa0\x12\x11*\xd5\xc0\xfb_\x1a@\ +\x9e\xfc!\x10q\xc2\x18\x95\xa7 b\x01\xa2\xe0\xa7\xff\ +\x0e\xa2\xd1}\x84<\x13\xc4\xf0\x0fA\x8cA8\x12}\ +\x0a1\x81\x11W\x84N\x11\xdb\x0cn\x81g\xaeo\x0f\ +]\xd3\xc8f?\x85\xe7f[UG\xe8\xd4\xd7\xb4\xae\ +\xb7\x87~\xb2OKW\x8eG(\x12\x9a2\xa5fp\ +\xccp;\x09\xb0t\xe0\x12B\xb0\x923\x85(\x15\xf4\ +\x04\x8a\xd6\x0cB\x08~\x11\xe6IM\xb5\xe4`\x1eg\ +\x90z\xb1z\xbcy\x1e\x1f\x19x\xe5/\x07\x8d\xa9\xad\ +\xff\x97\xa5\xad\x9d\x041M\xa5\xa4\xb3:\xa1\x09-\x95\ +S\xdbG,\x0bX\x8b\xc7\xa3\xc6fB\x02\x19\x19\xfa\ +\xacl\xb3\x9f0\x9cK`\xca\xd66\xc9Io\x9b\xa6\ +\x8f0\xce\x1b\xc7\xe1I^\xa5\xfc\xdb\xbc\x8a\x91\xc6R\ +a\xad9\xdc\x0c [\x11A^.\xabz\xe4\xbbS\ +\xa0BD\xc9\x80\x10z\x86V1\xd3\xecE\xd3\xea\x0f\ +\xa0\x09\x85\xe0\xca\x8a\xf1Y^%\x9a\xbfh\x8cl\x92\ +\xfc\x01\x18)N\xc1e\xce0)\x0bX\xf0\xec\xa9F\ +\xa3\x80r-l\x02f\x90(4\xa3O \x9a\x97`\ +\x9e\xa2\x9cI\xd1\xf0(Q\x8c=\x85G=\xf5\x00\x93\ +N\xdd\xfd99\xfb\xd8\xd5\xc7\xdf\x0f'\x1d\xfd\xb4\x9b\ +\xdb\xfb\x22GD0\x06\x1f\x96#I\x93+m\xc1k\ +\xe2\xe3\xcf\xef\x82\xc1%\x11\xf5\x05\x03B2\xa0\x8c7\ +$\xfc(\x02\xe6\xcf\xfa~\xa1\x94\x10\x12rLc\x9a\ +\xd28x\xea\xfdb\xea\xdf/\xc8\xa5=\xfd}NM\ +\xe1\x91\x9c\x1d;5\x0f\x10SX\x8c\xaaJ\xcb3E\ +\xecq\xbdvR\xde\xa5\x04Q\xa0\xc9q1Xb{\ +\xe1\xd5\xa3\xee\x87\xea\xc7\x0f\x94\x9d;@\xe0\xfbw\xd8\ +\xfd\xd4\xc2\xfa\xf1A\x92\xef.\xa6\x0f\xb0\x9b\x96\x9d\x82\ +Q%\xa8\xddl\x177LEAx\xf3\xa0\x07\x9d\x8a\ +\x88\xe3\xda\x15\xa0\xcc\x02\xf8\xac\x804o\x8bW\x83&\ +\xb0\x80d\x5c\x13\x02QC\x14\x92\x10-\xa3\xe2\xd5Q\ +\x8c\xf75\xf6<6\xb6\xf2X.\xdc(\x1a{f_\ +`\xce3\xd8q\x95\x17^\xb4-\xee\xc2j[\x18[\ +v=\x15\x83\xc1\xe4\xf6\xd9\x90\x95@X\x13\xad\xd8L\ +H\xe0*\x0a\xcce\xd9Js\xaef\x0a\x98L\x0b<\ +\xaa\xd9\x9d;\xecb\x9b\x9a\xb9\xb93\xb0\xe5\xf8\xcdi\ +l\xdb\x93\x96\x8f\x8b\xd6QN\xfa\xf6\xf9\x1f\x9f\xd5\xc3\ +i\xf4?\x83\xd8c\xc7 \x13\xc6\x91\x96\x04 \x05\xb8\ +\x05`\x1b(\xc7k\xd0%\xf0\xadV\xe3-^8\xc8\ +}\xc6j_\xea\x9f+[\x8d\xbf\xbe\xf8\x07\xea\x88p\ +\xf5\ +\x00\x00\x05\xb7\ \x00\ -\x00'\x01x\xda\xddZ\xdfo\xe36\x12~_`\xff\ -\x07\x9d\xf6e\x17\xb5(\x0e\x7fS\xb5\xb7@\xbb(\xd0\ -\xd7^\x0f}<(\x92b\xebV\x96\x0cI\x8e\x93\xfe\ -\xf5\x1dJ\x96-Gv\x90\x03\x8c\x83\xcf\xce\x06Yr\ -\x86\x14\xf9q\xe6\x9b\x19\xca\xf3\x9f\x9e\xd7\x85\xf7\x94\xd5\ -M^\x95\x0b\x1f\x08\xf5\xbd\xacL\xaa4/\x97\x0b\xff\ -_\x7f\xfc\x1a\x18\xdfk\xda\xb8L\xe3\xa2*\xb3\x85_\ -V\xfeO_?~\x98\xff#\x08\xbc_\xea,n\xb3\ -\xd4\xdb\xe5\xed\xca\xfb\xad\xfc\xde$\xf1&\xf3>\xaf\xda\ -v\x13\x85\xe1n\xb7#\xf9\xbe\x93T\xf52\xfc\xe2\x05\ -\x01\x0e\xc5\xc1\xcd\xd3\xf2\xe3\x07\xcf\xf3\xf0\xd9e\x13\xa5\ -\xc9\xc2\xdf\x8f\xd9l\xeb\xa2\xd3M\x930+\xb2uV\ -\xb6M\x08\x04B\x7f\xa4\x9f\x1c\xf5\x13\xb7\x82\xfc)K\ -\xaa\xf5\xba*\x9bnh\xd9|\x1ak\xd7\xe9\xe3A\xdd\ --i\xc7;-\xb0\xd6\x86\x94\x85\x8c\x05\xa8\x114/\ -e\x1b?\x07\xaf\xc6\xe2:\xcf\x8de\x94\xd2\x10e#\ -\xd5w\xaaE\x0d\x22\xbb\xc1\xdf\x83\xfe\xd0A\x9aj[\ -'\xd9#\x0e\xccH\x99\xb5\xe1\xb7?\xbe\x1d\x84\x01%\ -i\x9b\x8e\xe7\x19\x80=y\xee\x09\xdae\xbc\xce\x9aM\ -\x9cdM8\xf4\xf7\x13\xec\xf2\xb4]-|a\xfa\xe6\ -*\xcb\x97\xab\xf6\xd8~\xca\xb3\xdd\xcf\xd5\xf3\xc2\xa7\x1e\ -\xf5\x84\xc1\x7f\x84\xba\x0f\xf4\xe2<]\xf8\xb8'\xb6W\ ->\x1a\xce \xdf?+:\x88(\xb1\x8c0\xef\xb3L\ -xfh:\xf3\x18\x05\x1dP\x13P\xf5\xa5\x1f3l\ -3J\xab\xc4-{\xe1\xc7\xdb\xb6Z\xe3\xc9&\xff.\ -\xe2\x97j\xdb\x12\x07\xe3W\xa7\xc4\xcd\x1e\x02\xcf\xdb\xc4K4\x9a\xa2\xaa\x17\xfe\xa7\ -\xc7\xee3H\x1e\xaa:\xcd\xeaA\xa6\xba\xcf\xa9\xacB\ -T\xf3\xf6\xa5\xf7\x96a\xfea\xdbn\xe2\x83\x02\xbd\xa0\ -\xd0\xac\xe2\xb4\xda-|6\x91\xfeUUk<\x0b\xa2\ -\x8d\x12\xd2\xf0\x89<\xc1\x83\x09\xf0H,\x05e\xcdT\ -\x8c\x0fe@4\xe3LL\x07#\xbc[\xe7R\xc1\xb6\ -\xcc[4\xd9\xcd\xf3t\x82m];\x0d\x84=\xc3\xfd\ -/\xb9\x100(5\xabj\xb7\xac\x1d\x92\x8fqq\x84\ -\xf2\xf2d\xbb\xbc\xc4m\x06{\x83\x03\xa3\xf8%\x95\xc1\ -\x08\x812yI\x07w.\xf5%\xa1\xdb\xf7E\xe1:\ -~\xce\xd7\xf9_\x19\xae\x1c\x0e\xa6\xb2\xce\xda8\x8d\xdb\ -xd C\x97\xeeM\x0d\x95\x90\x1a\xa2\xdf\xbf\xfd\xba\ -obG\x92D\x7fV\xf5\xf7\xa1\x8d\x1f\xa7\x12?\xa0\ -\x8d.|\xff\xeb\xb1\x7f\x9e&\x11:3\x1a\xf1\xd7|\ -\x8dG\xee\x88\xe0\x07\xf4\xddyx\x14\x9cj\xb7/\x9b\ -l4o?s\x9d\xf5\xbcp\x96!\xd3d\x9d\xbbQ\ -\xe1?\xdb\xbc(~s\x8f\x19\xb67\x9a6o\x8bl\ -\xd4;\x0f\xf7{\x18\xf6\x18\x8e79\x0f\x07\x10\xfa\xe6\ -\xf25\xa4E\xfc\x90\x15\x0b\xff\x97x\x13{0\x01|\ -YW\xdb\xcd\xbaJq\xbd\x9d\x05\xf9#t\xbb\x8e\xc3\ -\x90\xb6\x8e\xcb\xc6\xe1\xb0\xf0\xbb\xff\x16\x18I>\xd3Y\ -\x00\x94\x0a\xc2\x15c_\x0e\x87\xb0\xc9'PP\x22\xa8\xe0\x82\ -_\x84B\xdf\x1d\x14B\x13M\xcd\x94)\x0c\x22d\xb5\ -\xbc\xec \xf2\xfe\xa0\x90H\xda\x0c^C\x01\x820\xa9\ -(\xbc\xc1\x15\xf7\x87\x05\x97\x04$\xc8\xd7XHB\xad\ -B{1\x97\xc9\x82\xdd\x1fqb\x04Wf\xca\x16\xc4\ -\xa0Q\x08\x0d\x17\xb1\xb0\xf7\x17N\x11\x0a\xab&1\x04\ -\x80\x08a\x81]6\x0b\xb8?(,\xc1\xc3\xb7\x13\xe2\ -\xa4\x84))\xa9\xbc\x0c\xc5\x1dF\x11t\x11\xce\xec\x84\ -.8\xa0\x8f\x18q\x1a^^\x81A\xef\x8f;\x99+\ -\x85\xa7`\xa0\xef`\x11\xf1\x86\x8f\xdc!a`\xa2m\ -\x04\x9b8\x09\xeaj`\x9a\xbd\x81\xc5\x1d&\xe0\x96P\ -\x0c\xaag\xf2\x0b\x01R)\xfb\x06\x18\xff7)\xb8[\ -\xf3x\x1b\x87\x1b\x9e\xaa\xc4\x89\xdb\xaa\x0e\x92m\xfd\x14\ -\xb7\xdb\x1aw@\xcf\xedX\xb0S\x88\xdc\x0d\x89\xa7\x08\ -\x95FK+g\x08#\x96tJ2O#\xd1R\x8a\ -\x5c;\x93\x84kk\xde\x05\xd1\xfb1\xf9\xef\x11\xe9\x1a\ -E\x8e\x7f\x221\xf4\xa5q\xb3\x8a\xeb:~\x89\xca\xaa\ -\xcc\xfe\x07\xd8\xf1\x09v\x80I\x9b\xb1\x94\x09\x87\x9d&\ -\x16\xa4\x97x\x94pJ5\x88Y\x805\x0fc\xca\x13\ -\x0eM\x006\x0b4\x91 \xc4\xa4\xe3\xba\xf0\xba\xebY\ -cp-\xe2\xc6lON\xf0c\xee.\xc7`\xde\x8b\ -\xf8\x01\xe2\xc7\x11\x1cN(\xc3t\x87\xcf\x02\xac\x93\x04\ -\xb5\xd7\x06\x07\xeb\x10\xcb5\xd37\x06\x8e\x9e\x1a\x97\x8b\ -u\x14W;\xeb\x92C\x86L\xe6\x01\x1e\xae\xd0F\xa0\ -qq\x82\x05\x15\x5c\xddt\x84\xb2\xa0\xb4\xba1t\xec\ -\x19\xda\xe2h-R:t\xb0\xa2\x12\xd2z\xd0]\xb7\ -p4\xfd\x19\x10k\xb5\xbd>8\xee\x8a\x0f\xf8m\x81\ -\xa3\xe0\x9c_I\xad\xadv~\xc5\x0d\xd1JH/@\ -\x90\x941\xdc\xce\x14a\x8c\x9a\xab\xfb\x15\x1a\xa8e\xb7\ -f9jJ\xdaH\xd4\x0c\xa4\xb1l\xd6_\xd1`\xc4\ -\xf3\x02p\xefX\xa4\xe60\x0b\x80(\xad\xafo:\x5c\ -\x0a\x06\xe6\xc6\xd0\x99\xfa\x15f\x95ZX\x0d.\x1d\xc0\ -\xf4\x89S\xad=L\x028\xa3\x02\xad\x09\x08\xc7\x5c\xe1\ -\xea\xe0\x00`\x96qc\xa9\x92\x9e\xba\x95`D\x1a\xe4\ -\x9cYw\xe3K5\x17^`\x89S\x95\xcc\x112\x97\ -\xea\xea\x84\xac-\x15\xf8\xb8\x1b3\x1c=\x8d\xe5\xc2\x9d\ -\xa3\xbb\xcc\xeb9GR-<\x8c`V\xf2\xce\xa9\x90\ - \xa8\xba>\xe9p\xaa4h{c\xe8\xe8s\x99\xa2\ -\x00\xa5L\xc7\xc8\x94\x00r\x01\xba\x15\x00P\xa3\x91\x90\ -\x85\xb9>6Zpj\x04\xbd1\xb7:-&zB\ -\xc6\x92\x0ec8\xeb\xb2@\xf7\xfa\xc0h\xcf`\x12+\ -\x95\x9e1\x02Z\xf2\xabC\x83\xd5\x8dd\x94\xdf\x1a\xe3\ -\x04\xd3h\xc5\x191\x18\xad\x94\x8bV\x1c\x88\xd0XP\ -`aa@a\xf4r\x05\x84E\xbc\xae\x8e\x0f\xa7X\ -\x1d[v{\xf8\x9c\x96\xeb=B\x16\x8b(\xdd\xc7s\ -$\x1eL\xff\x90\x96\x1d=+\x85\xa8a\xda\xc3@\xdc\ -:B\xf3py\xf8\x86\x02\xc2q\xf6\x15vW\xe5\x9e\ -\x5cF\xa0\x19\x08\x8b\x05\xa4\xe4o\xae\x96\x13#\xb5@\ -\xca\x91\x93u\xd5\xd5\xb6L\xdf_d\xfb'/\xee\xdd\ -J\x05\x8c\xdfl\x0f\xdfD\x12\x8e\xe0\xd0h\x8f\x92\xc3\ -\x97\x92\xa6\x22wO\xe3JVM\xc7!\xb7\x7f\xd7\x8e\ -\xa9\xaa\x1d\x97\x80u\xd7M\xc0(-\x8f\xdf\xfc\xe8\xc0\ -\x9b\xbb/d\xe0\xdf\xbf\x01t\xb6\x1fy\ -\x00\x00\x07t\ +\x00\x13\xd1x\xda\xddX[o\xdb6\x14~\xef\xaf\x10\ +\xd4\x97\x06\xb3(^%R\xb5Sl(\x8a\x0eh_\ +\xb6\xee\xfa\xa6H\xb4\xa3F\x16\x0d\x8a\x8e\x93\xfe\xfa\x1d\ +\xca\xd6\xc5\x8e\xb3vC\xdba\x15`[\xfc\xce!y\ +\xf8\x9d\x1b\xe1\xf9\x8b\xbbu\x1d\xdcj\xdbV\xa6Y\x84\ +\x04\xe10\xd0Ma\xca\xaaY-\xc2_\xde\xbd\x8ad\ +\x18\xb4.o\xca\xbc6\x8d^\x84\x8d\x09_\x5c>\x99\ +\xb7\xb7\xab'A\x10\xc0\xe4\xa6\xcd\xcab\x11^;\xb7\ +\xc9\xe2x\xb3\xb552v\x15\x97E\xack\xbd\xd6\x8d\ +kc\x82H\x1c\x8e\xea\xc5\xa8^X\x9d\xbb\xeaV\x17\ +f\xbd6M\xdb\xcdl\xda\xa7\x13e[.\x07\xed\xdd\ +n\x87v\xacS\x22J\xa9\x18\xd3\x98\xd2\x084\xa2\xf6\ +\xbeq\xf9]t<\x15l<7\x95b\x8cc\x90\x8d\ +\x9a\x9f\xa6\x95\xb5\xc0\xca\x06>\x83z\x0f\xa0\xd6lm\ +\xa1\x970O\xa3F\xbb\xf8\xe5\xbb\x97\x830\xc2\xa8t\ +\xe5d\x99\xaa\xb9i\x8b|\xa3\x8fv\xed\xc1=\x03\xf9\ +Z\xb7\x9b\xbc\xd0m\xdc\xe3\xdd\xfc]U\xba\xebE\xc8\ +e7\xba\xd6\xd5\xea\xda\x0d\xc3\xdbJ\xef~0w\x8b\ +\x10\x078\xe028\xc0U\xb9\x08\xe1\x18t\xaf3\xfa\ +\x99\xec\xa5\x87\xe5\xb3A\x82\x91\xa2\x88\x06\xcfD\xc1\xb4\ +\xc4\xe5,\xa0\x98\xa4\x11\x96\x11N.\xba)\xfd\xb9\xb2\ +\xd2\x14\xde\xd0ExU\xe7\xc5\x8d\xd9:\xe4\xe9\xba\x04\ +\x9d\xf9Z\xbb\xbc\xcc]\xee\xf5\xf7&\xf4\x08\xa1\x9d\x06\ +\xe8\x80\xdb\xb2\x9f^\xbe\xda\x8f`\x5c\x14\xd9o\xc6\xde\ +\x1c\x86\xf0x\x85\xfc\x0a\xd6]\x84\xe1\xe5\x00\xcf\xcb\x22\ +\x03\xa2\xd7\xb9\xbb\xac\xd6\xf9J{\x1f}\x07\xc4\xce\xe3\ +Qp\xa4\xec\xee7z\x5ct\xbf\xac\xd5{\x8f\x9d\x0d\ +\xdb\xb2XW~R\xfc\xb3\xab\xea\xfaG\xbfI\x18\xc4\ +'\x8bV\xae\xd6#8\x8f\x0f\xd6\x1f\xce\x16O\x0e7\ +\x8f\xfb\xb3w\xa3R/\xdb\x91\x16?\x22\xb8\xa7d\x9d\ +\xdb\x1bm\xfb\x8d\x06\xdf\xb4\xce\x147^\xfb{k\xcd\ +\x8e\xbc\x81t\xb4.\xec\xd5\x8c\xad \xc9\x16a\xbeu\ +f\x00\xad^\xfe\xe1}\x89\xa7\xc8\xef\xc7\xc8\xa3+\xb6\ +\xee\xbe\x06j\x0c\xc4\xc4\xb26\xbb\xec\xb6j\xab\xabZ\ +\x87\x0f\x0c\xab\xda\xce\xb4E\xe8\xecV\x0f>\x9aor\ +w=2\xee\xb7\xf1\x08\x17J\x86#\x0c\xe8\xdb\x00\xcc\ +\x99\xc1'x\x13\x08x\x8bD\xf7\x1a\x11\x8a\xc4\x04\xde\ +\xa3\xbd\xea\x87`\xb2\xc8\xc1\xd2%\xf8)\xb2\xdbZg\ +\xfaV7\xa6,\x9f\xb7\xce\x9a\x1b\x9d=\xc5\xdds\x18\ +F]\xfedP\xe36n\xb2\x88\xb3y\xd3\xfa\xc8\x81\ +D)\xf2Z?\xc3H^\xec\xd1:w\xfa\xd9\xde\x9c\ +\x8b!\x06\xc0\xa1\x9d\x9f\xf6\xce\xf5\x1e\xec\xde\x86\xbc\xf0\ +IQ\xfal\xdco\xb1\x81\xf8)Lm\xec\x22|\xba\ +\xec\x9e\xc3\xdeW\xc6\x96\xda\xf6\xa2\xa4{\x8eD\x06J\ +\x00D\x22d\xeb\x016W\xefu\xe1\x9c\xa95\x18\xe7\ +\xa3\x97\xf4\xde\x5cY8\xda9|[\x95\xfa\x9c`\xf0\ +\xa17o\xd8\xe8\xac\xb4\xbd\xceK\xb3[\x84\xf4T\xb8\ +\xab\x1a\x10D\x87\xaaDd\xc2\x1e\xd1\xe8+\x15\xc1T\ +\x84c\xf0\x0fD\xf5q\xd1^\x9b\x9d?\x09x4\xaf\ +[}\xba\xda\x07c\xc0G\x09J\x13\xccI\x92\x9e\x8a\ +\x0b\xa8}\x11\x17(a\x8cJ\xf2@\x0a\xc7\xa3\x10J\ +R2%\x1e\xb1\x13\x16\x10\xe9#2?\xfd1\xd9:\ +\xbf\xab\xd6\xd5\x07]\x8e\xae\x1a\xf7\xddZ\x0b\xf9\x19\xd5\ +\xf9\xbd\x06?\xaf\xb8\xe0\xfc\x10J\xf3\xd5\xc8\xc5\x8a\x13\ +1\xd4\x81\xd54E\xf73>\x9a\x5c\x0c?H\xae\x19\ +\x0e^\xfbN\xf0\xab\xffz\x0d]\xe1\xcf\x89\xcah\xa0\ +i\x1a\x88*c#0\xf56w[\xab\xc7@8I\ +\xb2\xac\x81;\xc0\xa4\x18\x9eXs\xaa\xf9\xfc\xf1\xc4\x5c\ +.\x8b\xe2Abn\xeez\xa0\xae\xc0\xa6|\x93]m\ +\x9d\x9bb\xefM\xd5dP\x9e\xb5\xed\xd1C\xecf\xe4\ +\xf8\xf8\xeb\x80!\x8e)\x11)\x991\x86p\x82\xb1b\ +\x01\x11H\xd2\x94\xd3D\xcd\x22\x86\xa8\xe0\x94\xc9@A\ +@\xd1\x94\xd0Y\xc4\x11\xe1$\x15I \x91L\x05Q\ +\x00\xa5\x88r\x89S\x0e\x10\x95L\x10\xe6!\x821\x11\ +<|\xe8\x06\xc9\xe8?\xa0\xf8\xf3\xf0\x98$\xff\x01\x8f\ +\x181\xc1\x99\xc2j\xa0C\x00C\x22UL0(\xd8\ +\x0a\xd2S%\xbezSE\xd3d\x16)\xc4\x88T\x02\ +f\xc2\xf5\x82*!\xfd\xbcD\x11\xc9\x18Tv\x0fp\ +_\xfe\x13\x8a\x95\x10\xe2,\xb3\xfc+3{\xb6u|\ +yf\x81\x16Ly\xc2\x81\xd9\x031\x81o@)#\ +j\x08\xd04H\x91\xa7\x9fp\x0fQ\xa9\x92t [\ +\xcc\xa2\x03\xc7\xea,\x8d\xc9W\xa6\xb1\xe4_\x96\xc6\xb7\ +\xe7i\x94\x88K\xa5\xa4\x98\xd1\x04\x09A\x12\x22\x03F\ +\x10%\x04+>\x03iJ\xa0_\x89\x80A\xf2+\xcc\ +y:SHI\xb8\xa2\x90\xf3\xac\xc9\x7f\xc1\xda<^\ +\x9d\xd6\xf3\xc9Ucr\xbf@\x18')T\x97Y\x04\ +\x0dJ\xca\x94*u\x11\x1e\xb7\x0024\x8d3\xedA\ +\x8d>\x9dl\x00\x17a[\xdd\xc1\xeap\xd0\x94't\ +\x06\xfd`F|\xddKS\x86\x19M\xba\xe2F\xe1\x85\ +\x8a\x8b\x07w\xbf\x81\xec!\x02,\x1cu$\x01\xda!\ +\x87\xb0\x04\xae\xd5\x941\xe8\xa0\x0c1\x0c4N\xe3\xac\ +\xef\xff\x12\x11*R!\xd8D\xd6\xdf\x1e\xe0n\xa7\xd4\ +\xc3\xaa\xeaw\xe5\x5c\xca\x87\xfdh0\xb1\x0b\xbe\x93\x8e\ +\xb2\x8f\xca\x93k_\xca(\x06\x8bOC\xcf\x9amS\ +\xfe}\xecu\x83\x1az\xbc\xcb8\x12\xaa{zY\x99\ +\xc3\x05\xc9\xda\xfc\xfeh\xcf\xd1\xbaM^A\xfb\xef.\ +t\xd9\xfe\xe2\xd8\x06\xde\xe2`\xaf9M\xb2O\xa5\x98\ +\xf8\x90\xf7\xdd\xe8\xf3r\x1c\xb1Oay\xd2o\xbem\ +\x96)\x038\x15X|f\x96\x93\x8f\xb3|T4\xbf\ +m\x96\xa1f'8I\x8e\xba\xd5ga9\x12\x1f\xe7\ +\xf9\xa8\xc7\xff\x0fy>\xb4\x98\xeeg\xee\xff\x09\xb9|\ +\xf2\x17\xfb}\x9c\xcf\ +\x00\x00\x06\xb6\ +\x00\ +\x00\x18`x\xda\xedX\xeb\x8f\xe3\xb6\x11\xff~\x7f\x85\ +\xa0\xfbr\x8bZ\x14\xdf\x22u\xf6\x06-\x0eA\x02\xa4\ +_\xda$}|)\xb4\x12\xd7\xab\xac,\x1a\x92\xbc\xde\ +\xbd\xbf\xbeC\xc9z\xd9\xf2e\xd3\xbb\xf4\x80\xa2\x02\xbc\ ++\xce\x0c\xc9\xe1o\x1e\x9c\xd1\xfa\x9b\xe7]\xe1=\x99\ +\xaa\xcem\xb9\xf1\x09\xc2\xbeg\xca\xd4fy\xb9\xdd\xf8\ +?\xfd\xf8m\xa0|\xafn\x922K\x0a[\x9a\x8d_\ +Z\xff\x9b\xdb7\xeb\xfai\xfb\xc6\xf3<\x98\x5c\xd6q\ +\x96n\xfc\x87\xa6\xd9\xc7a\xb8?T\x05\xb2\xd56\xcc\ +\xd2\xd0\x14fg\xca\xa6\x0e\x09\x22\xa1?\x8a\xa7\xa3x\ +Z\x99\xa4\xc9\x9fLjw;[\xd6\xed\xcc\xb2~;\ +\x11\xae\xb2\xfbA\xfax<\xa2#k\x85\x88\xd6:\xc4\ +4\xa44\x00\x89\xa0~)\x9b\xe49\x98O\x05\x1d\x97\ +\xa6R\x8cq\x08\xbcQ\xf2uRq\x0d\xa8\xec\xe17\ +\x88\xf7\x04T\xdbC\x95\x9a{\x98gPi\x9a\xf0\xc3\ +\x8f\x1f\x06f\x80Q\xd6d\x93e\xf2\xf2\xb1N\x93\xbd\ +\x99\xed\xda\x13;\x04\x92\x9d\xa9\xf7Ij\xea\xb0\xa7\xb7\ +\xf3\x8fy\xd6\x1e8\x18\ +i\x8a\xb8\xf7\xeeP>\x96\xf6X\xde\xb4b\xfdY\xe2\ +\xcc\xa6N\xb9\x8d\xbf\xbf\xffWS#\x87\xcf-\x08\xac\ +w\xa6I\xb2\xa4I\x9cp\xb7gO!\xb4\x95\x00\x19\ +\xb0S\xfc\x97\x0f\xdfv#\x18\xa7i\xfc7[=\x9e\ +\x86\xf08\x81\xe4\xce\x1e\xe0L\xfe\xed@^gi\x0c\ +\xc8\xee\x92\xe66\xdf%[\xe3\x8c\xf2\x07@r\x1d\x8e\ +\x8c\x99p\xf3\xb27\xe3\xa2\xdd\xb2\x95\xe9L\xb4\xe8\xa7\ +Y\xba\xcb\xdd\xa4\xf0\xafM^\x14\xdf\xbbM|/<\ +[4o\x0a3\x12\xd7\xe1I\xfb\xd3\xd9\xc2\xc9\xe1\xd6\ +a\x7f\xf6v\x94\x99\xfbz\x84\xc5\x8d\x08\xee!\xd9%\ +\xd5\xa3\xa9\xfa\x8d\x06c\xd4\x8dM\x1f\x9d\xf4\x1f\xab\xca\ +\x1e\xc9\x0f\x10\x7fU\xe3\xf7b\xb6\xca!\xaa6~r\ +h\xec@\xac\xcc\xfd?\x9c\xf1\xf0\x94\xf2\xf79\xe5\xea\ +\x8au\xf3R\x004\x16\x9c\xe0\xbe\xb0\xc7\xf8)\xaf\xf3\ +\xbb\xc2\xf8\x17\x8a\xe5u\xab\xda\xc6o\xaa\x83\x19l\xb4\ +\xde'\xcd\xc3\x88\xb8\xdb\xc6Q\xb8\xd0\xca\x1f\xc9@\xfd\ +\xb3\x07\xea\xac\xe0\xe7\xfd\xe0\x09x\x0bD\xfb\x1a\x10\x8a\ +\xc4\x84\xdcQ{\xd1\x8f\xded\x91\x93\xa6\xf7`\xa7\xa0\ +:\x14&6O\xa6\xb4Y\xf6\xben*\xfbh\xe2\xb7\ +\xb8}N\xc3\xa0\x0d\x98\x18\x92\xda\xbe\x99,\xd2TI\ +Y;\xcf\x81\xc8H\x93\xc2\xbc\xc3H\xddt\xd4\x22i\ +\xcc\xbbN\x9d\x9b\xc1\x07\xc0\xa0\xad\x9d:\xe3:\x0b\xb6\ +oCP\xb8\x88\xc8\x5c\xf8u[\xec\xc1\x7fR[\xd8\ +j\xe3\xbf\xbdo\x9f\xd3\xdew\xb6\xcaL\xd5\xb3d\xfb\ +\xccX\x16b\x1e<\x11\xc2\xf3D\xb6w\xbf\x98\xb4i\ +la@9\xe7\xbd\xa4\xb7\xe6\xb6\x82\xa3-\xd1\x0fy\ +f\x96\x18\x83\x0d\x9dz\xc3F\x8b\xdc\xfa!\xc9\xecq\ +\xe3\xd3s\xe61/\x81\x11\x9c\xd2\x10Q\x92]\x91\xe8\ +S\x13\xc1T\xf8\xa3\xf3\x0f@\xf5~Q?\xd8\xa3;\ +\x09X4)js\xbe\xdaGk\xc1F\x0cq!\x22\ +\xaa/6K!\xd9\x05D!\x81\xb5\x12\xfc\x82\xebp\ +\x04W\xd2Z\xb1k'\x81\x05Dt\x85\x07\xd3\xe95\ +\xde.y\xcew\xf9G\x93\x8d\xa6\x1a\xf7=T\x15\xc4\ +gP$/\x06\xec\xbc\xe5\x92\x88\x93+\xad\xb7#\x16\ +[N\xc4\x90\x07\xb6\xd3\x10\xddr\xc1\xf9\xaf\x07\x17\xc3\ +\x17\xc1\xb5\xc2\xdew.\xf5\xff\xec\xfe|\x07\xd7\xc0?\ +'\x22\xa3\x82\xb6,\xc1\xabl\x15\x80\xaaOIs\xa8\ +\xcc\xe8\x08gA\x16\x97p\xe9O\x92\xe1\xa8\xe9IW\ +\x8d\xc9rdAZ\xae\xf2\xe7w\x10{\x11\xd3T\xf3\ +\x15h\xb7\x1aGR#\xcd\xb5\xa2jE5\x8a\x84\x96\ +$\xba\x99&\xfd\xf9\xa9\x7f\x8b\xf6\x13\x8cHDf\x0c\ +w-y\x81`(\xc2\x8aK\xb5\xe2\xf0\x12\x11!\x85\ +G0\x8a\x18\x86\xd1*P\x883E\x89\x96\xb3\xa9S\ +L \xc9$\x09\xe7\xef\xafg!\x9a&X$\xf3,\ +DQ\xa4\x19\x8ftD{z\x91\xc3I\x92}|w\ +h\x9a)\xed\x17\x9b\x971\x5cI\xa6\xea\xa9\xa7x\x8d\ +IOh\xb9\x05\xf8`\x13\xf3\x9e\x96%\x10\xb8U\x95\ +\xbc\x9c\x1b\xed\xcb\xc1\xc9\x96\xe0\xe4\x88r.\xa4\x5c\x05\ +\x84#\x1d1\xae\x85\xa7\x11\x13\x8a`\xbdj_ >\ +\xe9\xff\xd1\xbc@S,\xa0\xc9\x08R\x11\xa6\x12\x1c\x91\ +DHPNq\xe4\x05\x10,T0\xa9W\x84\x80\x9f\ +F\x04\x90\xfd\x9d\xf0\x94\xea\xb7\xe3\xf9\xeb\xf0] ?\ +\xd7~\xb8H-\xdc]P\x88AA\x9e\xa6\x9f\x86\xfc\ +\xca\x9c/`\x95h\xc1*\x1c\xe0QT2\xbe\x0a\xe0\ +6\xc2\x12<\x9a{P&D\x82\x91H\xae\xda\xecA\ +\xf5\xff\x92\x8b\x9b\xa2\xc8\xf7\xf5\xbc\x8e~qw1\x16\ +\xa0\x90\x9c\x83T=;\x0e\x11LEt\xee\xd4\xee\x12\ +\x96\x88\x12\xe0\xd1\xb9\xd1\xdb\xcb[\x08\xc4(\xc5,\xba\ +b\x0c&\x03\x19\xb0%\x5c\xc7\x03v\x08\xb3(UQ\ +7\x08\xe6\xbcE\xc0\xa7N9\xa0\xad\x88\xa6L\xb0\x0b\ +d+{(\xb3\xcfq\xf6\xd7 K!urE\xd8\ +\x12\xb2X\x82\xebIy\x81l\x84\xb8f\x92\x0ay\x89\ +,\xdc\xaa\xb0\x98d\xe4:\xb2\xe45\xb8N=\xf7?\ +\xc2\x95!F\x94&\x94F_\x07W\xb8\x9d\x22-\x08\ +\xe3\x17\xb8r\xc4\x09!\x9a\x5cz\xacK\xbdT\x0a*\ +\xc4%\xb0\x8c\x22\xc9%\xd4\xa3\x9fp\xd9\xd7\x01\x9b\xf1\ +$\xf9,`\x95\xc6P7)\xfdu\x80\x85D\xa80\ +\x94\xd6l\xc1a\x85\x82\xd4\xb5\x84+G\xca9\xac^\ +H\x05\x0c\x02\x00C\xa6\xb8\x8a\xebk\xddU\xa9\xcfB\ +\x95+\x0d\xb1&\xa3\xaf\x85\xaa\xc2\x80\x1dS\x0b\xa8B\ +\x0d@0\xb9D\x15\xe6(!\x94^H\x03\xdc5O\ +X\xf0Ox+\xfe\xaf\xa4W\x97\x06\x98VJ\xd3\xdf\ +\x13\xd7u\xb8\xed[\xf6\xedyk5\xe9M&\xad>\ +\xc2XFT\xb1U@\x05\xc0\x08m\xa6\xbe\xf1\xe7\xdd\ +\x18\x81nl\xf8\x14p\xd6\xa9\xc9I\xf6X\xdc\x00#\ +A(\x87\x96g\xecn\xd6\x15\x14#ofV'H\ +b\x0c\x15\xc44d\x9c3@\x05\x08\x9d\xca,&Z\ +O\x88\x18cbJ\xed\x1bn\x09g\xc0\x11\xd4\x0c\x13\ +\xde\xa9]g\xda-\xc6\xc8\xd4\x15\xdc!\x9c6\x5c\xcc\ +\x9cg^\xbb\x10\xc9\x86\xd2\xe4lx2.F\x10\xed\ +J`yQ\xa9\xccl\xfb\xc5,\xfe~\x9f\xe4\xd0a\ +\xb7\xdfL\xe2\xee\xdbL\xed9m\xbdN\xf2\xccO\xa7\ +\x0e\xb2\x84=Ts\x9a\x91\x05\xec\x15\x86\xbbk\x8e=\ +G\x18\x8ao\x8a\xc5\x22\xf8\x11\xd4\xe82\x92\x97\xe0\xc3\ +uL\x09g\xb3~t\x0a\xfe\xac\xc89+\x1d\xdb{\ +\xe2j`A\xe9\xa9%\xe5\x22\x12_\x01\xfb\xd2}~\ +-&\x1f\xca\xb6\xdd72\xf8\xb7v\xdfio\xdf\xfc\ +\x1bu\x80\xea6\ +\x00\x00\x12\xa1\ <\ ?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a<\ +metadata\x0a id\ +=\x22metadata8\x22>\ +image/svg+xml\ +\ -\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08\xd9\ -\x00\ -\x00Lzx\xda\xed\x5c[o\xdb8\x16~/\xd0\xff\ - \xa8/\x0d6\xa2y\xbfx\xe2\x0cvQ\x0cf\x80\ -\x99\x97\xdd\xd9\xeb\x9b\x221\x8e&\xb2dHr\xdc\xf4\ -\xd7\xef\xa1\x1c\xdb2\xe5\xd4jw\x1e\x8a\x1d\xbau`\ -\x1fR\xbc|l`?\x8aC\ -\x03{\x02j\xebM\x93\xd9{h\xc3\xa2\xcav\xb3\x0f\ -\xbf~8\x14&\x18\xe5]>h\xe7\xa4\xff-\xeb{\ -\xa6\x18\xe3\xd9p\x22\xae\xbb\xa7\xe5\xd4\xaaM~\x7f\xae\ -*1\xc6\xcc0\x9d\x01\x9aP#i\x9f\xab.\xfd\x98\ -T\xed\xbb\xe1\xb3Yvx4kl\xda\x15O6\xab\ -W\xab\xbajw\x98\x9c\xd6\xce\x8f\xb5\xd7\x9b\xa6\xec\xab\ -\xe4\xd9\xcc\x96ve\xab\xae\x9d\xc1B\xcf\xe2\xdb\x9b\x95\ -\xed\xd2<\xed\xd2\xfe\xc9\x1dW\xecI\x84B9\x0cg\ -\xfe\xd7\x0f?\xdc\xded\xd9\xfc\x9fu\xf3\xf8R\xcf\xbd\ -\x5cQzWo\x80\xd9\xa0b\x9e\xcd\x01\xd6U\xda\xdd\ -\x16\xabti\xdd\xc4\xff\x04#\xb9\x99\x1d\x0b\x5c\x9d\xee\ -ym\x07m\xecZ\x01\x1e\xe8\xd7\xe5\xec\x88\xf3lU\ -\xb8\xa7f\x7f\xeb\x8a\xb2\xfc\xc95\x1eG\xb3]cE\ -WZ\xf7y\xf62:\xf8t\x18\xf0l?\x0f\xa8j\ -\xef\xdb\xc1\x04\xddW\x82\xdd\xe4\xd3\xe6\xd16\x87\xe1\x1c\ -X\xbe\xed\xea\xec\xd1\xd5\xfcs\xd3\xd4[\xf23\x88_\ -\xd3\xc5\x87zuS\x00\x84\x8b8\xddt\xf5\x91\xda\xd8\ -\xfb\x7f\x83\x94\x81\xfc\x0eI\xff\xf2H\xaf\xb7\xdav\xcf\ -% P\x83\xbc\xdd\x97\xf5v\xfeT\xb4\xc5]i\xe3\ -\xf1\xf0\x8a\xb6\x1f\xe0\x22\xee\x9a\x8d\x85i\xac\xd3\xeea\ -\x80\xa9\xeb\xc2\x91\xb80:\x1e\xd0\x81\xfcK\x04\x83\xb9\ -\x86w\xf4s$\xe0S\x22\xfa\x8f\x09\xa1H\x0c\xc8;\ -\xea\xbe\xea\xa7h\xd8\xca\xcb0\xefa-\x92fS\xda\ -\xb9}\xb2U\x9d\xe7\xdf\xb5]S?\xda\xf9;\xdc\xbf\ -^\xbe&\xbdv\x9a\x83V[w\xc3V\xba&\xadZ\ -\xc7\x16\xa0\x84\xb2\xb4\xb4\xef1\xd2W;j\x99v\xf6\ -\xfdn@W\xfdB\xcfv\xcb\x04\x1f\xdc\xc2\xdd\xde\x1c\ -t\x8c\xd3\x02\xb9\xd3o/\x0d\xaf\x815\xb2\xba\xac\x9b\ -E\xfc\xee\xbe\x7f\xed\xbb\xbc\xab\x9b\xdc6\xfb2\xd9\xbf\ -N\xcbj\xd0&\xc0f\xa0\xe5\xf6\xf4\xfa\xee7\x9bu\ -]]Z\x18\x95\xe3MrX\xc6e\x03\xb3:[\xb0\ -)r{\xb6\xe4\xb0xn\x90\x87\xce\xce\x17\xb7\x0fi\ -^o\x171\x1d\x95n\x8b\x0aJ\x92\x17\x95O\xf9q\ -\x81\xfd*{3@\xb0P\xf1\x80\xf7\x0f\x98\x1d\x9el\ -\x1f\xea\xad\x9b\x10\xaciZ\xb6v\xd4\xe0\xa7\xba\x86U\ -\xd2\x88jB\xc5\xa84\x03\xcbB8b\xd8p\xc6\xc7\ -\xa50Gf\x10\xc6L)\xfe\xdaP\xa1\x05\xf1j!\ -4\x90\xbc:\xc9U\xfa\xb1X\x15\x9fl>X\xb6c\ -\xdf\x9b\xa6\x011M\xca\xf4\xd9\xc2\xaa/9\x11c\xb8\ -\xdd\xe4?\x0fy\xcfT\x0f6\x03\x0e\xbc\xab\xd3&?\ -\xb7h\xb9m\x1f\xf7\xcc\x95\x13\xf7\xafg\xdc\xe5\x00\xf7\ -]\xf7G\xda\x9e*8?\xca\xc5@*\x8e\xa2\x90\x10\ -$\xa4\xd1\x84\xb0\xab\xcf\xc9:\xc3cY\xbf\xc6\xd1\x8f\ -\xce\xe6\xff\xc3\xfd\xf9\x11\xec\xff\x7f\x86u\x8eH\xd5U\ -\x05\xac^7\x09`\xf6\x94v\x9b\xc6\x0ef\xe9\x09\xfd\ -\xbc\x02/d'\x97\xcb\xe1t\xce\x8e\x1d\xe4\x1eKE\ -5\xbbN\xa8@Z+j\xccU\xecA@\x00\x02\xd7\ -\x9e-\xcbb\xddZ_!\xf6\x9d\xbe\xa3\x99HS\xfc\ -]\xafv^\xc4gN\xf6:\xc7\x0d\xe9T\xe1\x08$\ -\x98\xc1bO,\x0b\x98`\xba\x9e7\xf5\xa6\xca\x87\xc4\ -\xdf\xea\xa2:\xa5\x82\xb1\xb1M\x09l\xd5\xcd\xf9\x9e\x96\ -\xa7\xc0\x1fM\x93>\x9f\xf4t\x1c\xc6:-\x80\xd1z\ -=2\xdf)\xab6\xdaU\x8a\xdc\x80O'\xec\x96K\ -s\x9aH*\x8f\x05N\x8c\xa8\x931\xca8\x1b\x90\x81\ -\xfdA|\xa4\x14L\x0c\xcc\x8a\x939$\x157\x5c\xab\ -\x01\xd9i/\xa4\x18\x06\x99\xff#\x02\xca\x12r\x0a(\ -\x03\xa3b\x08\xa3\xe2\x14P\x8d\x88T\x92H\x1d\x10\xbd\ -\xc4\xa2\x89\x1e!*\xa8\xd2X\x9d\x22J\xc0M\xe0\x02\ -\xfe\x07D/ \xaa\x12\xe5!J\x11\x03\xe5\xad\x95/\ -\xf4`\x18\x98\x91< z\x01Q\x91\x98\x91\x1a5\x82\ -\x0aM<\x1e\x05\x90\x8cbD\x05D/\xe9Q\x91\xd0\ -\x91\xd8K\xae\x8d\xf6\x14)a\x88(\x8e\x8d\x0c\x90^\ -\xb4\xf5\x09\xf6 e\x08+\xca\x89\x1eq)\xa7D3\ -\x12 \xbd\x00\xa9\x191\xa9@\xdc\x08-X\xb0M_\ -\x87(I\xd8\xc86qp=G\x88r\xa41\xa18\ -\x88\xfd%D\xa9o\xed\xc16)\x82)\xe3\x1e\xa2\x02\ -aA\x868\x07@\xcf\xbbO8\x11#=J\x0c\x13\ -\xdaCT\x22\x88\xb7\xc1\xb1\x0a\xd6\xfe\xa2\x1ee#\x07\ -J C\x19Uc\x07JpiL\xe0\xd2\x8b\xd6\x1e\ -\xfb\xb6\x09\xe4\x9eK\xa5\xcd)\xa2\x02\x02Q\x06N\x80\ -\x09\x88N@t\x84\xa9@\x92b\xc6\xb5\x1f\xddS\x80\ -)\xf8\xa4\xd30\xf5\xe3{\x09\x8e\xbe4Z\x8f->\ -p\xaa\x0e\xa0N\x02u\x1c\x90*\x855\xf1\xa4\x9f(\ -\xa48\x15$\x80:\x09T\xdf\x93\xe2\x88c`J\x0f\ -S\x89\x98\x14*\x98\xa8I\x90\xfa\xee>G\x942\xc1\ -\xfd(\x1f\xd8\x97\xb3\x93\x9c\xdf\xef\x02*S\x99N\xef\ -\xbe\x00Tb8\xe5\xdfxF?\xf1r\xfa\x061\xa6\ -\x0c\x04\xf4\xa7\x98R\x88\xfe\xc59\x8f_P\xa39\x1e\ -a\x0aQ\x98\x22\x9c\xfc\x11Ae\x10\x97zy}\x97\ -\xca\xa3X+\x8fQ)ED\x1bi\x02\xa8S\x12\xfb\ -\xbe;\x05\xa02\xad57#N5FQ!\x02\xa8\ -\x13r\xfb\xbe\xe9' \xe7\x1cxR\x8c@\x05\xe1\xa7\ -L\x06P'\xa4\xf7};e\x90\x11\x18k\xe3\x83\x0a\ -\xf1\x80\xe6\x0c\x07N\x9d\x94\xe1?\xa3T\xb91\xe2d\ -S\xda\xa1\xaa\x10\xc6\x80\x1f\x0f\xa8NI\xf2\x8f\x14\x00\ -E\x8aH\xe3\xfbT\x94 p\x9d\xa4V\x01\xd5\x09y\ -\xfe\x84{\xa0\xba\x04\x95\xe4F\x04S\xf5\xf5\xa9~?\ -\xa0r\x9by\xc2H\xe6\x83\xaa\x91P\x92\x99\xc0\xa9S\ -\xb2\xfd~>\xc5\x80\xa3\xaa!\xca\x97#P\xb5\xdb9\ -\xa5\x01\xd4)\x19\xff\x91\xfc3\xa4\xc1y\xf2s\xfe\x14\ -#\x81A/\x04T'%\xfd\xfd\x9d\x14\x05\xd1\x13\xa3\ -\xd4\x8c\xbc*\xceY\x08\xa9\xa6eT\xb0/\xfe\x02+\ -f\xfc\x8d\x14\x83\xa8Q\x12\x07\x97jb\xde\x7f\x94\xa8\ -B.\xa3\xc2\xfdSh\xd4!(\x0d\x0d\xb8N\xcc\xfd\ -\xfb\xc9*\x22\x91QJ\x1b=\xb2V\x92I\xc9C\xb4\ -:1\xfd\xef\x87V\xe0\x058\x9c\xa4\xc7\xaf\x8c\xb8\x14\ -\xf6\xc9a\x80\x80\xeb\xe7v\x00|\xf5*\x90\x02\x87\x7f\ -t,\x8da\x04\xb0J\x13\xe2\x80\x89\xdb\x00#=@\ -\x91\xd6\xd4\x089\xc2UH\xae\xc8\xef\xee\x0c`\x9c\xa6\ -9\xff\x02\x5c\xc1\xa6R\xf6-\xe3\xca\xcf\x1cI\xe5\xd4\ -\xf8\x80R``\xcd\xf9x\xbb\xca`&N\x8e\x05\xf4\ -\x80\x02\xc8\x5cO\xf9\xb1\xc4\xff\x1f\xa0lt\xee\x07x\ -\x94`B}\x1f\xc0\x00J\xdc\x08\x13 \xbd\xbc\x07\xe0\ -\x1f\xa0$\x88R\xcc\x89\xafN!\xdab\x86i\x1a \ -\xbd\xbc\x03 FgR\x09cByA\x95\xdbie\ -\xfa\xe4D@\x80\xf4\xb5\xfc?\x1f\x9dE\xa7\x9c\x12\xea\ -\xed\xa82\x05\xc6I\x09\x12t\xe9\x94\xec\xbf\x1a\xef\xfc\ -+%\xa4\x09\x98~}\xee\x9f\xfb\x8c\xaa\x11g\x82\xf9\ -Q*\x03\x0b\xc5\xc0r\x05P'\xa4\xfe\xd94H9\ -b\x8a\x18%\x02\xa4\x97\x13\xffx$\xfaD\x08\xea\x1f\ -M\xe5\xe0\x0b@\x00\xc0\x02\xa4S\xd2\xfez|\xda\x17\ -+\xed\xff\xee\x94c$\xa9188RS\xb2\xfeR\ -\x8fd\x9f\x11\x86}\xbb\x1f\x1c\xfe/I\xfa\xfb\x8c*\ -\x91P\xa0P\xa9\xa7O\x05\xa8Yu\xee\xf7(\x01\xd3\ -q\x02\xc5\x8f\xf5\x15\xe2\x02\x1b\xa5\xc6IT.%\xfb\ -\x1aL\xbd;#(\xc1ftm\xcc\xfe\xf6\x15\xd3\xbf\ -\xfe\x97+%\xfc\xbb\x1e^Y\xae\x97\x9eNW\x8c~\ -v\xadNW\xc0\xbb\xaeb\x15\x11\xb7\x7f'\xa4\xbc\x06\ -\xae\xa4X\x09\xae\x22w\xf0\x1c\x8c\x13#\xd7\x04\x88\x9c\ -1#YD\x0c\x8c\x9eR\xc9\xaeO\xee\xa8\xd8/\x0b\ -9\xd9\xc3\x1a\x5cIU\xd5\xb9u\x17\x09\xb5\x8b8\xcb\ -\xb2\x1e\xd9oc\xea\xbfDT \xf7\x1b&C\xae\xdd\ -\xc9P\x0918q\xd3\xe4\xee\xd2\x10s\xdd\x1bc\xb7\ -Z\xe7\xa6K1\x9e0\xdd\xc3\x85\x1d\xfd\xbb}Z\xde\ -\xbe}\xf3_\xcf\x03\xd5\x0e\ -\x00\x00\x0ep\ +urrent-layer=\x22g2\ +568\x22\x0a inksca\ +pe:showpageshado\ +w=\x222\x22\x0a inksc\ +ape:pagecheckerb\ +oard=\x220\x22\x0a in\ +kscape:deskcolor\ +=\x22#d1d1d1\x22 />\ +<\ +/g>\x0a\ +\ +\x00\x00\x0d\xaa\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x09\x03\ +dasharray:none;f\ +ill-opacity:1\x22 /\ +>\x0a\x0a\ +\x00\x00\x07\x14\ \x00\ -\x00-\xd3x\xda\xedZY\x8f\xa3V\x16~\x8f\x94\xff\ -\x80\xe8\x97\xb4\xc6\x5c\xdf}q\x97;\x9aQ+\xcaH\ -3/\x93d\xb67\x0a\xb0\x8b4\x06\x0bp\xb9\xaa\x7f\ -\xfd\x9c\x0b\x06\x03\x06/\xe9\xee\xf4T+.\x95\xcc]\ -\xb9\xe7;\xeb\x87\xb9\xfb\xfei\x938\x8fQ^\xc4Y\ -\xbat\x09\xc2\xae\x13\xa5A\x16\xc6\xe9z\xe9\xfe\xf2\xf3\ -\x0f\x9ev\x9d\xa2\xf4\xd3\xd0O\xb24Z\xbai\xe6~\ -\xff\xf6\xdbo\xee\x8a\xc7\xf5\xb7\xdf8\x8e\x03\xcb\xd3b\ -\x11\x06K\xf7\xa1,\xb7\x8b\xf9|\xbb\xcb\x13\x94\xe5\xeb\ -y\x18\xcc\xa3$\xdaDiY\xcc\x09\x22s\xb73?\ -8\xce\x0f\xf2\xc8/\xe3\xc7(\xc86\x9b,-\xaa\xa5\ -i\xf1\xaa;;\x0fW\xed\xf4\xfd~\x8f\xf6\xac\x9aE\ -\x8c1sL\xe7\x94z0\xc3+\x9e\xd3\xd2\x7f\xf2\x06\ -k\xe1\x9cck)\xc6x\x0ec\x9d\xa9WN[\x14\ -\x00\xce\x16\xfe\xdb\xf9M\x07*\xb2]\x1eD+X\x18\ -\xa14*\xe7\xef~~\xd7\x0ez\x18\x85e\xd8\xdd'\ -N\xdf\x17\x81\xbf\x8dz\xf7m:k\x18\xfcMTl\ -\xfd *\xe6M\x7f\xbd\xc1>\x0e\xcb\x87\xa5kd\xdd\ -|\x88\xe2\xf5C\xb9t\xb9\xae\xdb\x8fq\xb4\xffK\xf6\ -\xb4t\xb1\x83\x1d#\x9d\xa6?\x0e\x97.\x08C\x0f\xb3\ -\x8eJ'\x87\xf1\xc3M\x16\xed\x10F\x86\x22\xe6|G\ -9\x16\x82\xcb\x99C1\xd1\x1ef\x1e!\xaf\xeb5\x8d\ -|\x8b0\x0b\xecy\x97n\x18d\xdb\x15-\x0bdq\ -{k'\xddm\xa2\xd2\x0f\xfd\xd2\xafV\xd4\xe7h\xba\ -\x08\xad\xe7\xc0,P\xe2\xe2\x1f\xef~84\xa1#\x08\ -\x16\xff\xca\xf2\xf7M\x1b>v\x8a\x7f\x9f\xed@X\xf7\ -\xed\xb1\xff.\x0c\x16\x00\xfb\xc6/\xdf\xc6\x1b\x7f\x1dY\ -\x95\xfd\x09P\xbe\x9b\x1f\x07\xfa\xb3\xcb\xe7m\xd4\xd9\xb7\ -\xde9\x8fj\x0d\x8e\xdar\x18lb\xbbj\xfeS\x19\ -'\xc9_\xedm\x5cg>\xdc6.\x93\xe8mu\xdb\ -\xfa\xb2\x95e~\x10\xa6\x11v\xde\x95\xf6n\xde\xc0Q\ -7\xc3hUt\xb0\xb2M\x82[\x9c6~\xfe>\xca\ -\xdb\x1b\xb7Z+\xca,xo\xe7\xff9\xcf\xb3=\xf9\ -\x1b\xb8m^\xba\xed\xbc,\x8f\xc1\x17\x97\xae\xbf+\xb3\ -co\x1e\xad\xfe\x03z\xeeu\xfc\xbb\xd71\xbdcQ\ ->'\x00V\x06\xe6\xb2J\xb2\xfd\xe21.\xe2\xfb$\ -rO\x8f\x16\x17\xd5\xe1\x96n\x99\xef\xa2\xa3\xe6\xee\xb6\ -~\xf9\xd0Q\x83\xbd\x95\xed\xe2\xc2h\xb7\xd3\x0f\xdd\x7f\ -w\xf0\x0c;b\xe6\x09\xc7#\x14\x89\xaa!\x9c\xffv\ -\xa7\x1d\xce\xb3\x02\xfdx\xf9.\x89\x16\xd1c\x94fa\ -\xf8\xa6(\xf3\xec}\xb4x\x85\xab\xcf\xa1\xe9U^\xb4\ -\x80\x90W\x7f\xd8\xb6\xecnV\xe6~ZX\xdb\x01[\ -\xf5\xcb<~\xfa\x0e#=\xc3\xf6\x0f\xbe\x09|\xbd\xee\ -NoE\x0d\xb24\x8d\x822\xcb\xbd`\x97?\xfa\xe5\ -.\x8f,\x9c\xad\xa9\x80\xae+\xfd\x1d\x14ou[_\ -\xb6\x9ed\xdd(\xb4>|\xd8~\x0b\xa6\x16dI\x96\ -/\xddW\xab\xea\xd3\xdc\xf8>\xcb\xc3(o\xc6d\xf5\ -\xe9\x8fe\x10>\xc0l\xc1\xc9\x9b\xfe\xec\xfeW8^\ -\x99%\x11\x08hm\x9d\xb4\xba^\xe7\x80\xc8\xe8\xc0.\ -\x0e\xa3\xd1\x91Vl{\xc8\xf6f\xe3\xc3\xc5\x83\x1ff\ -\xfb\xa5KOF\xf7q\x0a#\xde!\xac\x11-\xd8\xd4\ -\x94&\xd4\x11L\x85\xdbq\x91\x16\xb3\xd6n\x8a\x87l\ -o\x05\x02{\xf0\x93\x22:\xd9\xf0C\x96\x81j%\xa2\ -DJ\xae\xc8\xc9x\x00\xf1\x93\x1bd\x187\x9a\x9f\x8e\ -\x82\x94T\x22\xcd9\x15d\xea\xb0\xb0\x83TS\x83v\ -\x83\xc9\xc1\x8d\xff\x14o\xe2\x0fQ\xd8Q\xdc\xf1\xde\xbb\ -<\x07O\xf6\x12\xff9\x02\xbd\xaf\xb9\xe0\xbc\xb1\xaf\xbb\ -u\x07\x945'\xe2\x186\xd6=\x8f\xaeW]\xe1\x89\ -\x0c\x9fx\xa2G\xc1\xfb~t\xb8t\xfe\x09\xb9\x05\xae\ -<\xdaw\xc4K\xce0\xee\xb3\x8b\x14*\x8cnL\xed\ -\x1c\xf9ph\x83\xc9y\x1f\x05oV\xccP\xc3+O\ -=\xb6\x14A\xca\x08\xc5\xc5\x8c\x1aD\xa42L\xbd\xee\ -e\x90\x81\xfc7\xc9\xd0\x81\x8b(\xd2\x1f\xb1\xa9\xce\xf1\ -\x84@Ba\xa5\xf5\x8c#\xf8&B\x0a\x87`\xa4\x18\ -\x86\xd6\xcc\xd3\x883M\x89\x91\xfd\xb5]l^E\xd2\ -\xfe\xbd\x99\x0en4\x10\xbe?\x08n\x14\xa4f\x5c\x19\ -\xa9\x9b\xfe$\x06a\xfc\xed\xe2~W\x96\xdd\xbe_\xb3\ -8]@\x86\x8b\xf2\xa6\xb7j$`\x86\xe5\x827}\ -\xa1\x0fN\x9c\xe7\xfes\xa5\xab\xa6\xf7\xe0\xf7\x0b2H\ -\x88\x9f\x0cS6\x8a\xa9D\x04K\xad\xe5\xcc#\x1c\x19\ -\x05\x8e*\x1c\x83\x98\xd0\x04\x9bYu\x81\x8d\xa6\x7f@\ -:\x0a\xa9\x18\x83\x9410I*4\x98$QHP\ -N\xb1r<\x83\x84QBSHz\x10\x0ea\xa9!\ -/\x1d\xd4\xfe\xf1\xdb\xc4\x9bA\x96\x83\x12\x0f\xa8@\x10\ -\x5c\x02~b\xd5'Q\x8e\x1aS\x0e\xe7Hr\xb0q\ ->\xf3\x18\xe2`\xf9\xd8p\x07J!%@'rV\ -\x85\x13j\xbe.s\x8f\x92$\xde\x16\x83J\x1d2'\ -C\x18l\x92\xca\x01P\xf9\x93\x1d\x22\x82iE\x07\x06\ -n\x13\xb6M\xf60H\x07\xfa\xb7\x99\xde\x13\x0a\x11\xcd\ -\x99PSJa\xd2\x93\x1e\x1b\x85\xb7=\xfd\x9b\x1ah\ -\x01\x9f\xd5\xaa\x06\xba?6\x8a{\x17\x88\x16tM\x0c\ -e\x82\x9d\x00\x9cg\xbb4\xfc\xfc\x00S\x08\xa8\x5c\x13\ -6\x0a0\x96\x92q)O\x01V\x88\x1b&\xa9\x90#\ -\x003\x82$\x84\x0en\xce\x00L\xae\x83w\xa5\xc3\x90\ -}\x04\xbc\x0c1\xa2\x0d\xa1T})x9\xa2P\x8e\ -\x10\xc6O\xe1\xe5\x88\x13B\x0c\x19\xb1_\x1b\x94\xa9\x14\ -T\x881|9\x12XkC\xcf\x19\xf0\x95\xe6k\xcc\ -G\x99/C\xda`#\x01\xe3/\x85/\x04H\x8d5\ -\xa3l\xcc|!\xbf\x196\x0aoUF\x183f\xbe\ -P\xc1\x81aC\xfa\x9b\x86\xf7*p\x99\xf2\xef\x03\xfd\ -Q\xe0rm\xc0\xfb\xa4\xfar\xe0j\x0c\x082=\x06\ -\xae\x01>\x84\xc9\x08\xb8\xb0J\x0b\xa1G\xc1\xe5\x02<\ -\x92jy\xcev\xf1U\xf0R_\xad>\xd2v\x19a\ -\xc6\xfa\xd1\xe7\x86w}\x22k\xc5\xc9\x869f\xec9\ -\x04\x98!\x01'%\x87\xc7\x11m\xd3\xa3\x14A\xfd\xc6\ -8\x85KHh\x12c\xc2{\x0f\xd2\ -l\xe8>\x1d\xa4!\xe9r.\xe4M|\xf1\x0f\xa0'\ -\x80\x16\xd3&\x0d\x95\x9eV\x18\x8a\xf3\x01\x8b\x84\xd4\xc0\ -\xa4\x99\x11\x02\xd6\xad\x08\x80\xfe5@}*\xc2\x15l\ -rZ%\xd7\xb0\xca\x8fU\x9d\xf2\xe4\x94\xea\xb8e\x1e\ -\x14\xaa\xfb\x1b8\xe6\xd7\xe2\x22c\xe5\xce\x05\xbey\x81\ -s^\xe0\x9d\xdd\xda\x92Q\x8a\x99:\xa7\xb6\x9a\x7fz\ -\xd3\xf1\xe9\xb4\xd2\x0c\xb4\x22/\x81\x85^\x84\x7f\x82\x8d\ -^`\xa4\x17Xi\x0b?T\x02\xb0\xb7d\xe4\x02\xfc\ -\xc43W\x83\x8f\xb1\xefs\xfe\x128\xeaE\xf0'\xb8\ -\xea\x05\xbez\x89\xb3\x1ey+E\x92K\xa1\xe8E\xe3\ -'7\xa0\x1fr\xdf\x7f\x09\x0c\xf6\x8a\xc83\xcad\xcf\ -\xb3\xd9.\xa3\xd5\xd6\xf4\xcdT\xe4\x01\xc2\x06\xa9\x9a\x5c\ -2}z\x93\xe1\xeb\x17\xc1o\xaf\x80~\x94\xe7\x9e\xe7\ -\xba\x97\xf8\xee\x91\xf3\x82\xa0\x02\x0b~\xc9\xee\xb1\xa7~\ -\xbf\x90\xff\xbb\xb1_\xfb\xd3\xf7\xba\xcb\x86\xfb\xad\xf5o\ -\xa7\xc0\xc4 \x1bm\x0cT\x9f\x82T\xa1\x87\x9a\xd7\xee\ -\x08\xd7&\xc0\xb5\xf1\x15\x9c\x5c\x121\x0c\xfc\xb7qr\ -(\x87!yQs\x86\x93\xe7P\xc2\x0d\x94l-\x90\ - \x98\x0d\x05\xd7\x89{[\xebT\xf6y\x1f?u\xdd\ -\xca4\x15cL\x9c\x0c5\xbf\x9eK\xb0M\xac\x949\ -\xb1\xac\xc3/\xf0\xcc\xd8\xbd\x199\xb1M\x8b\x88=+\ -\x07\xe6\xec1y\x8e\xd2\xbf2\xcc\x84~\xd0\x16}\xbd\ -\xe6\xc1\xdc,LB\x0b,\xe9\xb0\xe8\xebY\xdb'\xb3\ -\xc17[?NK\xafz3bQ\xbf\x86Q8\xf6\ -\xb4N=\xf3\xc4F'\xf5\x02\x851hxJ/\x1a\ -C\xf2\x1e\xd1\x0bG\x18h\x0f\xc5bZ1\x0a(\x92\ -TrB1P\xaaP\xc2\x99\x22\xe7\x15\xe3\x9d}\xd8\ -\xd2\xa4\xc7\xc9(\x00U\xbe\x91\x94\x0b%\xbe\x80ZR\ -\xfb\xbaV2\xf0\xcbNt\xe8]\x0f8TOJ\x1e\ -\xda\xbf\xd6\xfez\xcd\xe6\xdd\x9f\xed\xd3\xedlc\x94\xfb\ -U\xf4\x09T\x8f9 Gg\x94#\x06.F\x9c\x07\ -\x87@\x9e0XP\xe2$\x0e\x06\x1a!\xed\xaf\xabP\ -\xd0b\xcc\x15w$\x92\x82c\x88\x0d\x90\x0d\xa4!\x86\ -9\x1e\xd8\x00\x18\x09&\xd0%\xa8\xc4Ru\x97IE\ -\x8d\x96\x8eM\xec\xb0\x9e\x196;\x0c:\x1f\xdc\x91\xd7\ -7\xb4\xd2\xbf\xf5\xbd\x8cQ\x22Z\x7f\xba/3\xadO\ -_/\xe9D\xc7\xea2\xf1\xcb\xc8>\x90\x03Q\xa8f\ - \x85\x80\xf0\x03rt\xc3r\x1b\x92;{\x0f_X\ -\x91]\x7f\x1b\xbd\x89G\xa0xP\x02w\x9f\xe9\x0d}\ -x2\xaeN\xc5\xd4\x89xz6\x96\x9e\x8b\xa3]W\ -\x9dz\x13\xe6\xa5\x07\xcfq\xd0G\x82\xe6T\xc0\x9c\x0a\ -\x96g\x03\xe5\xb9 \xd9\x0f\x90\x93\xb8\x83\x91\xca\xd5\xea\ -\x85\x84\xc6\xc6\xfb\xea\xef;\xfb\xd6+|\xff\x0f\x81\x9d\ -j\x01\ -\x00\x00\x0b\x15\ +\x00& x\xda\xddZ[o\xa3H\x16~\xcf\xaf`\ +\xe8\x97n\x8d)\xea\xd4\xbdX;#\xcd\xb4F\x9a\xd7\ +\xb9h\x1fW\x04\x88\xcd6\x06\x0bp\x9c\xf4\xaf\x9fS\ +\xd8\xe0\x0ba\x95\x95\xbc\x92\xd78QRuN]\xce\ +W\xe7Zx\xfe\xd3\xeb\xba\xf0^\xb2\xba\xc9\xabr\xe1\ +\x03\xa1\xbe\x97\x95I\x95\xe6\xe5r\xe1\xff\xf5\xe7\xaf\x81\ +\xf1\xbd\xa6\x8d\xcb4.\xaa2[\xf8e\xe5\xff\xf4\xf8\ +0\xff!\x08\xbc_\xea,n\xb3\xd4\xdb\xe5\xed\xca\xfb\ +\xad\xfc\xd6$\xf1&\xf3>\xaf\xdav\x13\x85\xe1n\xb7\ +#\xf9\xa1\x93T\xf52\xfc\xe2\x05\xc1\xe3\xc3\xc3\xbcy\ +Y>x\x9e\x87\xeb\x96M\x94&\x0b\xff0`\xb3\xad\ +\x8b\x8e1M\xc2\xac\xc8\xd6Y\xd96!\x10\x08\xfd#\ +{rdO\xdc\xea\xf9K\x96T\xebuU6\xdd\xc8\ +\xb2\xf9t\xc2\x5c\xa7\xcf\x03\xb7\xdb\xcd\x8ewL`\xad\ +\x0d)\x0b\x19\x0b\x90#h\xde\xca6~\x0d\xce\x87\xe2\ +\x1e\xdf\x1b\xca(\xa5!\xd2\x8e\x9c\x1f\xe3\x8a\x1a\x04t\ +\x83\xbf\x03{\xdfA\x9aj['\xd93\x8e\xcbH\x99\ +\xb5\xe1\xd7?\xbf\x0e\xc4\x80\x92\xb4MO\xa6\xe9\xf1<\ +[\xf5\x0c\xe42^g\xcd&N\xb2&\xec\xfb\xbb\xf1\ +\xbb\xfa\xfd\xeb\xaf\xfb\x16\xb6\x93$\xfagU\x7f;4\ +\xf1q\x0c\xf1\x13j\xe2\xc2\xf7\x1f\x87\xeey\x9aDh\ +\xa9\xa8\xa9\x8f\xf9\x1a\x0f\xd8\x19\xf9\x8fh\x99\xf3\xf0H\ +8cn\xdf6\xd9q\xd2\xfd\xb4u\xb67\xf9w\xfd\ +^\x9a\xacs7(\xfc\xa3\xcd\x8b\xe27\xb7\xc8A\xac\ +\x93I\xf3\xb6\xc8\x8e\x9d\xf3\xf0\xb0\xfb\x83l\xe1\x89p\ +\xf3\xb0\x17\xbdk-/@,\xe2\xa7\xacX\xf8\xbf\xc4\ +\x9b\xd8\x83K\x84\x97u\xb5\xdd\xac\xab\x147\xda\xe9\x8a\ +\x7f\xc4\xb3k\xf7\x03\xda:.\x1b'\xfc\xc2\xef\xfe-\ +0&|\xa6\xb3\x00(\x15\x84+\xc6\xbe\xf4\xa8/{\ +1\xdc\x1c\xa7\x8aw6\x09\x82X\xe7\xaf\x9f)1J\ +\x81\xe2\x92\xcf\xa8\xfb\x1c\x9b\x8c(\xa9\xb5\xd1v\x06\x5c\ +\x13@C\x80/\xc3DM\xfbV\xe0\x8e\x9f\x11\xbd\xe8\ +`\xee\xffh\xda\xba\xfa\x96E\x9fD\xea>\xfe\xf1\xd4\ +\xf3:)N\xce\xa7v\x96.\xfdc\x8735\x14\xc3\ +\x10\x0e\x83vv\xfd\xa8\xaeL\x10)\xa45\xe6\xa4\xdf\ +\xc9\xb5\x89\xdb\x15\xe7\x5c\x9dt\xbf\xb7'\xd7\x08\x0e\x0e\ +$\x82}\xb3\xde\x16Y\x94\xbdde\x95\xa6\xc3\xa6m\ +\xf7\x1c\x9a{c\x8b`\xf3\xdaw\x14y\x99\xe1qE\ +O\xdb\xb6=\xed\xfbw\x95\x97\x11\xeaRV\xf7\xbd\xc3\ +b'\x0a\xf5Q\x08\x80\x13\xe0\xf6\x12\x02D\x9f\x1a*\ +(\x9b\x80 \xe0w\x05\x02S\xa8\xce\xa0.@\x10\x9c\ +XaQ\x1b\xa7@\xb8/M\xe0\xd6Y\x1f\xbf\x04\x81\ +\x12A\x05\x17|\x0a\x04}W \x08M45#\x8f\ +`\x10\x1a\xab\xe5\xa49\xc8\xfb\x02A\xa2Kfp\x01\ +\x02\x08\xc2\xa4\xa20\xed\x13\xee\x0b\x05.\x09H\x90\x17\ +(HB\xadB\x151\x93N\x81\xdd\x97k\xc4\x98\xac\ +\xcc\xc8+\x10\x83\x8a 4L\xa1`\xef+H\x22\x08\ +V]\xc6\x07\x00\x22\x84\x056\xa9\x0ap_ X\x82\ +'n/]#%LII\xe5$\x08w\x16!\xd0\ + 8\xb3\x97n\x81\x03Z\x84\x11g\x91\xe3\x02\x06z\ +_\xde\x91\xb9:u\x04\x03\x1a\x0a&\xff\xd3\x16qg\ +\x8e\x01\xf3d#\xd8\xa5I \xa7\x06\xa6\xd94\x0aw\ +\x96>[B1T\x8e\xf3\x05\x01R);\x0d\xc3\xff\ +I\x02\xedv|\x22\xc3p\xdfR\x958m[\xd5A\ +\xb2\xad_\xe2v[\xe3\xfe\xe9;\xd2\x0av\x06\x8e\xbb\ +\xb6\xf0\x14\xa1\xd2hi\xe5\x0c\xf1\xc3\x1aLI\xe6i\ +t\xa5\x94\xa27\x9dI\xc2\xb55\x1fA\xe7\xe3p\xfc\ +\xf7`t\x8d\x22\xc7?\x91\xe8\xfb\xd2\xb8Y\xc5u\x1d\ +\xbfEeUf\xffk\xd8\xf8%l\x80\xf9\x97\xb1\x94\ +\x09\x07\x9b&\x16\xa4\x97x\x94pJ5\x88Y\x80\xc5\ +\x0ac\xca\x13\x0eH\x006\x0b4\x91 \xc4\xa8\xe3\xaa\ +\xc8\xba[Qcp+\xe2\x964N^B\xc7\xdcE\ +\x8b\xc1\xec\x15\xa1\x03\x84\x8e#.\x9cP\x86\x09\x0c\x9f\ +\x05X\xe1\x08j\xaf\x8c\x0bV\x11\x96k\xa6o\x09\x17\ +=R)\x17\xc9(\xeet\xd6%z\x0c\x9d\x96\x07x\ +\xa6B\x1b\x81*\xc5\x09\x96Bpm\x85\x11\xca\x82\xd2\ +\xea\x96\x80\xb1c\x17\xc5QG\xa4t\xc0`1$\xa4\ +\xf5\xa0\xbb\x12\xe1\xa8\xec3 \xd6j{u\x5c\xdc\xcd\ +\x1b\xf0\x1b\xc2E\xc1;\x86$\xb5\xb6\xda\x19\x127D\ ++!\xbd\x00\xf1Q\xc6p;S\x841j\xaemH\ +\xa8\x95\x96\xdd\x94\xbe\xa8\x91oF\x7f\xcc@\x1a\xcbf\ +\xfb{\x14\x8ci^\x00\xee}\x86\xd4\x1cf\x01\x10\xa5\ +\xf5\xd5\x15\x86K\xc1\xc0\xdc\x120#C\xc2,Q\x0b\ +\xab\xc1\xc5z\xcc\x8a8\xd5\xda\xc3\x08\xcf\x19\x15\xa8C\ +@8&\x02\xd7\xc6\x05\x003\x88[J\x81\xf4\xc8\x8e\ +\x04#\xd2\xa0\x7f\x99u\x17\xb0Ts\xe1\x05\x968N\ +\xc9\x9c\xdf\xe5R]\xdb\xefjK\x05\xaevK\xea\xa2\ +G\x81Z\xb8\xe3s7m{\xff\x22\xa9\x16\x1e\xc6(\ ++ygE\xe8\x0d\xa8\xba\xba\x83\xe1Ti\xd0\xf6\x96\ +\x80\xd1\xef$\x7f\x02\x942\x9d\xe3\xa5\x04\xd0\xf0\xd1\x8e\ +\x00\x80\x1a\x8d~W\x98\xab\xc3\xa2\x05\xc7\xaa\x9e\xde\x92\ +\x1d\x9d\x95\x05{\xbf\x8b5\x19\x06h\xd6%v\xee\x12\ +\xdfh\xcf`N*\x95\x9e1\x02Z\xf2k\xa3\x82U\ +\x8ad\x94\xdf\x94w\x09F\xf1\x883b0\x1e)\x17\ +\x8f8\x10\xa1\xb12\xc0\x0a\xc1\x80\xc2\xf8\xe4*\x01\x8b\ +P]\x1b\x1aN\xb1\xb6\xb5\xec\xc6\xa09\xab\xb4\xf7\xe0\ +X,\x84\xf4>X\xa3\x93\xc1\x8c\x0e\xbd\xaf\xf3\xc2J\ +!`\x98\xce0\x10\xb7\x0d\xce<\x5c\xf6\xef\xfc\x11\x89\ +\xf7\xde\x12w\x15\xea\xd9\x1d\x02\x9e\xbe\xb0X\x00J\xfe\ +\x1f\xb7\xca\x89\x91Z\xa0\x7f\x91\xa3M\xd5\xd5\xb6L?\ +^ \xfb\xa7/\xc6\xdd>\x05\x9c\xbc@\xee\xbf\xba#\ +\x9c/CM\x1d\x08\xc3\xb7xF\x14w\xb1\xe2\xeaM\ +MO\x02\xea\xfee6f\x9e\xf6\xa4\x84\xab\xbb^\x02\ +Fi9|\x83\xc2a6w_nx|\xf8\x1b\x9b\ +j\x14\x0c\ +\x00\x00\x078\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0a\ + \x0a \x0a\ +\x0a\ +\x00\x00\x08\xce\ +\x00\ +\x00K\x0ax\xda\xed\x5c[o\xe36\x16~\x9f_!\ +h^&\xd8\x88\xe6\xfd\xe2\xc6)v1(\xba@\xfb\ +\xb2\xdbv/o\x8a\xc48jd\xc9\x90\xe4x2\xbf\ +~\x0f\xe5\xc8\x96h\xc7\xce\x0c\xfa0\xd8\xd23\x0e\xec\ +\xc3\xdb\xe1\xc7s\xe3!\xad\x9b\xef?\xad\xca\xe8\xc96\ +mQW\x8b\x98 \x1cG\xb6\xca\xea\xbc\xa8\x96\x8b\xf8\ +\xd7_~Ht\x1c\xb5]Z\xe5iYWv\x11W\ +u\xfc\xfd\xed\xbb\x9b\xf6i\xf9.\x8a\xa2m\x91w\x0f\ +\x8b\x98\xeb\xd8}{\xb0\xc5\xf2\xa1\xdb\x7f}*\xec\xf6\ +o\xf5\xa7E\x8c#\x1cq\x1d\xbd\x90\x8b|\x11Cs\ +\xba\xabs\x18\x99\xecJ\xab\xc76K\xd7v>*\xa1\ +\x88D\x1fL&sN,'\xf8:\xa2\x98\xd2\x04\xab\ +\x84\xf0\xab\xbeQ\x0b\xfc\xae\xe1=\xcf\xeb\xacJW\xc0\ +fVn\xda\xce60\x0b\x04c\xf5\x95`\xa2\xf3v\ +\x9dfP\xbanlk\x9b';\xd0\xabv>\x8c\xbb\ +\x88\x1f\xban=\x9f\xcd\xb6\xdb-\x1a\x88\xa8n\x963\ +\xd7q\xdf\xbe\x9d\x0d\xf4Q\xfb\x81\x85}\xfb\x81\x80\xda\ +z\xd3d\xf6\x1e\xba\xb0\xa8\xb2\xdd\xec\xe3/\x1f\xf7\x85\ +\x09Fy\x97\x1f\xba\x99\x8c\xbee\xfd\xb8\x14c<\x1b\ +M\xc2\x0d\xf6\xb4|c\xcd&\xbf?U\x93\x18cf\ +\x98\xce\x00F\xa8\x91\xb4\xcfU\x97~J\xaa\xf6\xfd\xa8\ +i\x96\xed[f\x8dM\xbb\xe2\xc9f\xf5jUW\xed\ +\x0e\x8eI\xe5\xfcPy\xbdi\xca\xbeF\x9e\xcdli\ +W\xb6\xea\xda\x19,\xef,\xbe\xbdY\xd9.\xcd\xd3.\ +u\x0dw\x920P\x08\x85b\xe0e\xfe\x8f\x8f?\xdc\ +\xded\xd9\xfc_u\xf3\xb8\xab\xe6^\xae$\xbd\xab7\ + ]P/\xcf\xe6\x80\xe7*\xedn\x8bU\xba\xb4n\ +\xce\x7f\x01>nf\x87\x02W\xa7{^\xdbC\x17\xbb\ +N`\xe5\xfb\xf58\xc9n\x9e\xad\x0a\xd7h\xf6\xcf\xae\ +(\xcb\xbf\xbb\xbe\xe3h\xb6\xeb\xab\xe8J\xeb>\xcf^\ +x\x83O{vg\xc3,\xa0\xaa\xbdo\x0f\xb3s\xdf\ +\x08v\x13O\x9bG\xdb\x0c\xcc\xec\x85\xbc\xed\xea\xec\xd1\ +U\xfck\xd3\xd4[\xf2\x13hZ\xd3\xc5C\xb5\xba)\ +\x00\xbcE\x9cn\xbazOl\xec\xfd\x7f@\xa5@Q\ +G\x94\x7fO)\xaf\xf6\xd8v\xcf%L\xbd\x06\xe5\xba\ +/\xeb\xed\xfc\xa9h\x8b\xbb\xd2\xc6G\x8c\x15m\xcf\xda\ +\x22\xee\x9a\x8d\x05\xfe\xd7i\xf7p\x80\xd2\xf5\xef(\x5c\ +\x18\x1d\x1f\xc8@\xfd9\x02>\xae\xe1\x1d\xfd\x14\x09\xf8\ +\x94\x88\xfecB(\x12#\xf2\x8e:T\xfd\x1c\x8d:\ +ya\xf1\x1e\x16 i6\xa5\x9d\xdb'[\xd5y\xfe\ +]\xdb5\xf5\xa3\x9d\xbf\xc7\xfd\xeb\xe5k\xd2[\xa09\ +\xd8\xadu7\xea\xa4k\xd2\xaau\x92\x00\xa6&KK\ +\xfb\x01#}\xb5\xa3\x96ig?\xec\xd8\xb9\xea\x17w\ +\xb6[\x1b\xf8\xe0V\xeb\xf6foL\x9c\xc2\xe7\xce\x88\ +\xed\xfa]\x834duY7\x8b\xf8\xfd}\xffz\x19\ +\xf0\xaenr\xdb\x0cE\xb2\x7fM\x8aj\xb0\x1a W\ +`\xca^\xc8\xf5\xdd\xef6\xeb\xba\xba\xb4\xc0\x91\x93E\ +2\xac\xdd\xb2\x81\xf9\x9c\xa2o\x8a\xdc\x9e*\xd8\xaf\x98\ +co?\xd0\xc9\xd2\xf6!\xcd\xeb\xed\x22\xa6~\xe1\xb6\ +\xa8\xa0 y1\xe6\x94\xef\x17\xd5\xaf1\x18x\x82\x85\ +\x8a\x0fR\xbe\x07jh\xd7>\xd4[7\x13X\xc6\xb4\ +l\xad\xdf\xdb\xe7\xba\x86\x85\xd1\x88jB\x85_\x98\x81\ +\xc3 \x1c1l8\xe3G\x8507f\x10\xc6L)\ +\xfe\x0a\x93\xd0^\xbcV\x06\xcd\x93\xd7&\xb7J?\x15\ +\xab\xe2\xb3\xcd\x0f\xebt\x18w\xd34\xa0\x8aI\x99>\ +[X\xe4%'\xe2\x08b7\xe9\xb30\xf7\x02\xf4`\ +3\x10\xb6\xbb:m\xf2\x13\xcb\x94\xdb\xf6q\x10\xa4\x9c\ +\xb8\x7f\xbd\x88.\x0fX\xef\x86\xde\x93\x06\xa2\xe0|/\ +\xfe#\xe1?H|B\x90\x90F\x13\xc2\xae\xce\xa83\ +\xc3G\xea|\x8d\xa3\x1f\x9d\xf7\xfe\xcd\xfd\xf9\x11<\xf9\ +\x7fGU\x0e\x00\xd5U\x05\x22]7\x09@\xf5\x94v\ +\x9b\xc6\x1e\xa6\xe7\xa9\xf5\xbc\x82Hb\xa7z\xcb\xd1D\ +N\xb2\x0d\x8a\x8d\xa5\xa2\x9a]'T \xad\x155\xe6\ +*\x9e\xce\x9d\xc0\xdc]o\xb6,\x8buk\xdf\x9d\x18\ +\xf1=\xcdD\x9a\xe2\xefz\xab\xf2\xa2%s2\x98\x14\ +\xc7\xcf\xd4\x9e\x08$\x98\xc1b \x96\x05L.]\xcf\ +\x9bzS\xe5c\xe2\xefuQM\xa9\xe0@lS\x82\ + us>\xd0\xf2\x14d\xa2i\xd2\xe7\xc9H\x076\ +\xd6i\x01\xb2\xd5\x9b\x8a\xf9\xce\x18\xb5\xd1\xaeR\xe4\x18\ +\x9eL\xd7\xad\x93\xe64\x91T\xee\xe9Ne\xa8S'\ +\xca8;PA\xd8AU\xa4\x14L\x1c|\x85\xd3.\ +$\x157\x5c\xab\x03\xd5\xd9&\xa4\x18\x06\xc5\xfe\xf3A\ +\xc9\x122\x81\x92\x81\xb30\x84Q1\x81R#\x22\x95\ +$R\x07,\xcf\x89e\xa2},\x05U\x1a\xab\x09\x96\ +\x04\xbc>\x17\xf0?`y\x06K\x95\xa8)\x96\x141\ +0\xd1Zy*\x0e\xb6\x9f\x19\xc9\x03\x96g\xb0\x14\x89\ +\xf1\xcd\xa5\x11Th2\x95K\x00\xc8(FT\xc0\xf2\ +\x9c\xbd\x14\x09\xf5\x95\x5crm\xf4\xd4`\x12\x86\x88\xe2\ +\xd8\xc8\x00\xe6Y?\x9e\xe0)\x98\x0caE9\xd1\xbe\ +drJ4#\x01\xcc3`\x1a_0\x05\xe2Fh\ +\xc1\x82\xf7\xf9b,I\xc2|\xef\xc3!\x96\xf4\xb1\xe4\ +HcBqP\xf2sXR\xcf\x93\x83\xf7Q\x04S\ +\xc6\xa7X\x0a\x84\x05\x19\x01\x1c\xa0<\x11\x14\xe1D\xf8\ +\xf6\x92\x18&\xf4\x14K\x89`\x9f\x0c\xd1R\xf0\xe4g\ +\xed%\xf3\xc3\x22\x81\x0ceT\x1d\x85E\x82Kc\x82\ +d\x9e\xf5\xe4\xd8\xf3>\xa0\xe5\x5c*m&X\x0a\xd8\ +F2\xf0\xef&`y\x01K\x1fM\x81$\xc5\x8ck\ +oWN\x01\xa2\x10c^F\xd3\xdb\x97K\x08\xd9\xa5\ +\xd1\xfa\xc8\x9b\x83t\xea\x00\xe7E8\x8f\xb6\x93Ja\ +M\xa6\xbaN\x14R\x9c\x0a\x12\xe0\xbc\x08\xa7\x17\x1fq\ +\xc41H\xe2\x14M\x89\x98\x14*8\xa1\x8b`z\x81\ +;G\x942\xc1\xbd\xdd9H,g\xe3\xc4\xdc\x1f\x00\ +'S\x99N\xef\xbe\x00Nb8\xe5\xdfv\x96=\x99\ +\xe6\xd9\x0dbL\x19\xd8\x89O\xd0\xa4\xb0i\x17'b\ +wA\x8d\xe6\xd8G\x13\xb6Q\x8ap\xf2\xe7\x83\x93\xc1\ +\xaer\x9akw\x197\x8a\xb5\x9a\x0a'\xa5\x88h#\ +M\x80\xf3R\xb2\xdd\x0b\x92\x00N\xa6\xb5\xe6\xc6\x97N\ +c\x14\x15\x22\xc0y!\xdf\xee\xb9u\x02j\xcdA\x10\ +\x85\x0f'\xa8:e2\xc0y!\xe5\xeey\x22\x83\x8c\ +\xc0X\x1b\x0fN\x08\xec5g8H\xe7\xc5\xac\xfb\xb1\ +\xf1\xe4\xc6\x88\xf1I\xb0\xc3S!\x8c\x01:\x1e\xf0\xbc\ +\x94x\xf7\xd5\x9d\x22E\xa4\xf1\x22%J\x10DDR\ +\xab\x80\xe7\x85\xdc{\xc2\xa7p\xbad\x92\xe4F\x04g\ +\xf4U\xe9woS\xe4\xce\xd3\x84\x91\xcc\x83S#\xa1\ +$3A:/e\xe0\xbd\x0c\x88\x81\xc0S\xc3\xf6\x5c\ +\xfapjwjI\x03\x9c\x97\xb2\xf0\xbe\xb63\xa4!\ +&\xf2\xf2\xf0\x14#\x81\xc1\x08\x04\ +\x8c\x5c\x13 r\xc6\x8cd\x111\xc0;\xa5\x92]\x8f\ +\x9f\xba0,\x06\x19\x1f$\x8d\x9e\x97T\xd5\xb9u\x0f\ +\xbci\x17q\x96e=\xa4\xdf\xc2\xb4\x7f\x8e\xa8@\xee\ +7=\x86\x5c\xbb\xab\x95\x12\xf6\xce\xc4M\x91\xbb\xa7_\ +\x98\xeb\xde\xd3\xbau:1U\x8a\xf1\xe5\xa9\xee\x9f>\ +\xd1\xbf\xdb\xa7\xe5\xed\xbb\xff\x01\xc1\x93\xc2^\ +\x00\x00\x0e\x11\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \ + \x0d\x0a \ - \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x8e\ +rvature=\x220\x22\x0a \ + id=\x22path109\ +5\x22\x0a d=\x22m\ + 316.74974,562.7\ +9153 16.99663,17\ +.62227\x22\x0a \ + style=\x22fill:#b3\ +b3b3;fill-rule:e\ +venodd;stroke:#9\ +99999;stroke-wid\ +th:7;stroke-line\ +cap:round;stroke\ +-linejoin:miter;\ +stroke-miterlimi\ +t:4;stroke-dasha\ +rray:none;stroke\ +-opacity:1\x22 />\x0a \ + \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x08\xfc\ +\x00\ +\x00,\xcex\xda\xedZ[o\xa3H\x16~\xef_\x81\ +\xc8\xcb\xb4\xd6\x94\xeb~q\xc7\x19\xed\xaa5\x9a\x95v\ +_ff\xafo\x04\xb0\xc3\x04\x83\x058N\xfa\xd7\xef\ +)l0`\xc0\xc9\xa4{z\xd3\x1aG\x91\xa9+U\ +\xdf\xf9\xce\xa9\xf3a\xae\xbf\x7f\xdc$\xceC\x94\x17q\ +\x96.]\x82\xb0\xebDi\x90\x85q\xba^\xba\xff\xf8\ +\xe5\x07O\xbbNQ\xfai\xe8'Y\x1a-\xdd4s\ +\xbf\xbfyw]<\xac\xdf9\x8e\x03\x83\xd3b\x11\x06\ +K\xf7\xae,\xb7\x8b\xf9|\xbb\xcb\x13\x94\xe5\xeby\x18\ +\xcc\xa3$\xdaDiY\xcc\x09\x22s\xf7\xd4=8u\ +\x0f\xf2\xc8/\xe3\x87(\xc86\x9b,-\xaa\x91iq\ +\xd5\xea\x9c\x87\xab\xa6\xf7~\xbfG{Vu\x22\xc6\x98\ +9\xa6sJ=\xe8\xe1\x15Oi\xe9?z\xdd\xa1\xb0\ +\xc6\xa1\xa1\x14c<\x87\xb6S\xcf\xe7\xf5Z\x14\x80\xca\ +\x16\xfe\x9b\xeeu\x05*\xb2]\x1eD+\x18\x17\xa14\ +*\xe7\x1f\x7f\xf9\xd84z\x18\x85e\xd8\x9a&N\xef\ +\x8b\xc0\xdfF\x9d\xbb\xd6\x95\x07\x04\xfcMTl\xfd \ +*\xe6u}5~\x1f\x87\xe5\xdd\xd25\xb2*\xddE\ +\xf1\xfa\xae\x5c\xba\x5cW\xc5\x878\xda\xff%{\x5c\xba\ +\xd8\xc1\x8e\x91\xce\xb1:\x0e\x97.l\x83\x1e\xfa\x9c\xec\ +L\x0e\xad\xc7\xe9\x17M\x0bF\x86\x22\xe6|G9\x16\ +\x82\xcb\x99C1\xd1\x1ef\x1e!\xef\xab!\xf5\xbe\x16\ +a\x16\xd8\x85.\xdd0\xc8\xb6+Z\x16\xc8\xc2u\x03\ +}\xae7Q\xe9\x87~\xe9\xdb\xfe\x87%\xd45\x84V\ +=\xa0\x0f\x98m\xf1\xd3\xc7\x1f\x0e%(\x07\xc1\xe2_\ +Y~\x7f,\xc2\xc7v\xf0o\xb3\x1dl\xd1\xbdi\xaa\ +\xaf\xc3`\x01@o\xfc\xf2&\xde\xf8\xeb\xc8\xda\xe8O\ +\x00\xec\xf5\xfc\xd4\xd0\xe9\x5c>m\xa3\xd3\xa4\x87i\xf3\ +\xe8`\xb1A\xda\x86\xc1&\xb6\x83\xe6?\x97q\x92\xfc\ +\xd5\xde\xc4u\xe6\xbdI\xe32\x89n\xaa{\x1e.\xeb\ +]\xcc\x8f\xdb8nr\xde\xda\xe5\xf5\xbc\x06\xa1*\x85\ +\xd1\xaa8\xe1cK\x04\xd7\xd8l\xfc\xfc>\xca\xeb;\ +6F*\xca,\xb8\xb7\xbd\xff\x9c\xe7\xd9\x9e\xfc\x0d\xfc\ +2/\xdd\xba[\x96\xc7\xe0mK\xd7\xdf\x95YS\x99\ +G\xab\xff\x80Q\xdb\xe5\x7f\xb7\xcb\xa3\xb3\x15\xe5S\x02\ +\xf8d@\x8cU\x92\xed\x17\x0fq\x11\xdf&\x91{\xb6\ +\xa8\xb8\xa8\x96\xb5t\xcb|\x175\x86\xba\xde\xfa\xe5\xdd\ +\x09v{\x1b[\xc3\x85\xd1\xee\xa9\x1aj\xff\xee\xe0\x19\ +v\xc4\xcc\x13\x8eG(\x12UA8\xffm\xf5:.\ +e\x05\xd6\xf0\xf2]\x12-\xa2\x87(\xcd\xc2\xf0CQ\ +\xe6\xd9}\xb4\xb8\xc2\xd5\xe7X\xf4*/Y@$;\ +|\xd8\xb6l\xcdU\xe6~ZX\x9a\x00%\xfd2\x8f\ +\x1f\xbf\xc3H\xcf\xb0\xfd\x83o\x02_\xef[\xbd\x9bM\ +\x06Y\x9aFA\x99\xe5^\xb0\xcb\x1f\xfcr\x97G\x16\ +\xc5\x9a\x16`\xda\xcab\x073[[VW\x8d\xabX\ +?\x09\xad\x83\x1e\xa6\xde\x02\xa5\x82,\xc9\xf2\xa5{\xb5\ +\xaa>\xc7{\xdefy\x18\xe5u\x93\xac>\x9d\xa6\x0c\ +\xa2\x02\x90\x13\x1c\xf8X\x9d\xdd\xfe\x0a\xeb*\xb3$\x82\ +\x8dYB\x93\xda\xb6\xeb\x1cp\x18\xaa\xdf\xc5a4\xd4\ +\xd0l\xd6.\xaf\xb9\xd1`kq\xe7\x87\xd9~\xe9\xd2\ +~\xe3>N\xa1\xc1;\x06*\xa2\x05\x1b\xe9Q\x07/\ +\x82\xa9pOn\xd0\x00U\xb3\xa4\xb8\xcb\xf6v'`\ +~?)\xa2\xfel\x9f\xb2\x0c,)\x11%RrE\ +\xfa\xcd\x01\x84Cn\x90a\xdch~\xd6\x08\xbb\xa3\x12\ +i\xce\xa9 #\xcb\x84\xf1R\x8d\xb4\xd9\xe1cm\x1b\ +\xff1\xde\xc4\x9f\xa2\xf0d\xa9\xd3}wy\x0e\x8e\xea\ +%\xfeS\x04f^s\xc1\xf9\x91I\xd7\xeb\x13\x14k\ +ND\x13\x10\xd6m\x7f=\x8c\xb8\xe8i\x0c\xf7=\xcd\ +\xa3\xe0]?:\x5c:\xff\x84\xe3\x01\xae<\xdaq\xb4\ +Kt\x1ft\xc9E\x0ayA+@\x9e\xd6z\x5c\xad\ +\xc1d\xd2\x01\xc1S\x153\xd4\xf0\xca\x0dO%E\x90\ +2Bq1\xa3\x06\x11\xa9\x0cS\xef\xdb\x07Aw\xdf\ +/Y}\x0b%\xa2H\xa7\xc1\x1eU\x8e'\x04\x12\x0a\ ++\xadg\x1c\xc17\x11R8\x04#\xc50\x94f\x9e\ +F\x9ciJ\x8c\xec\x0cmcr\x15I\xfb\xf7a<\ +f\xd1@\xf8~/fQ\xd80\xe3\xcaH]\xd7'\ +1\xec\xc4\xdf.nwe\xd9\xae\xfb5\x8b\xd3\x05\x1c\ +SQ^\xd7V\x85\x04HW.x]\x17\xfa\xe0\xa8\ +y\xee?U6\xaak\x8f\xae\xbd \xddS\xed3\xc1\ +\xc9\x86\xe0\x94\x88`\xa9\xb5\x9cy\x84#\xa3\xc0\x1d\x85\ +c\x10\x13\x9a`3\xab.\xb0\xd1\xf4\x0f4\xcf\xd0\x14\ +\x03h2\x06D\xa4B\x03\x11\x89B\x82r\x8a\x95\xe3\ +\x19$\x8c\x12\x9a\xc2\x19\x06\xf1\x0eF\x1a\xf2\xc6\xf1\xec\ +\xac\xbe9I38\xbc 9\x83\x9c=\x08\xa6!\x1f\ +\x19\xf3\x19\xac\xa2\x06\xac\xc29\x92\x1cx\xcdg\x1eC\ +\x1c\xd8\x8e\x0dw \xa1Q\x02\x8c!gU\xf4\xa0\xe6\ +[\xa2x\x94$\xf1\xb6\xe8\xe6\xd6p&2\x84\x81\x89\ +TvA\xca\x1fm\x0b\x11L+\xda%\xb5=\x86\xed\ +\x01\x0em\xb4kt{z{B!\xa29\x13j\xc4\ +\x18Lz\xd2cC\xb86\xcb\xfep@X\xc0g\xb5\ +: \xdcm\x1b\x04\xbc\x8d@\x83\xb6&\x862\xc1\xce\ +\x90\xcd\xb3]\x1a~id)\x84N\xae\x09\x1bB\x16\ +K\xc9\xb8\x94g\xc8*\xc4\x0d\x93T\xc8sd\x19A\ +\x12\xc2\x047\xe3\xc8\x92g\xe1\xba\xd2a\xc8^\x81+\ +C\x8chC(U_\x07W\x8e($\x1a\x84\xf13\ +\x5c9\xe2\x84\x10C\xce\x19kC/\x95\x82\x0a1\x00\ +,G\x02km\xe8\x04e\x9fGXc^EX\x86\ +\xb4\xc1F\x02\xb8_\x07X\x08\x84\x1akF\xd9\x00a\ +\xe1\xfc2l\x08\xd7*A0f\x80\xb0\x90\x95\x01\x93\ +\xe1p\x1b\xc5\xf59\xa82\xe5\xdf\x06\xfaU\xa8rm\ +\xc0\xd7\xa4\xfaZ\xa8j\x0c\xd81=\x80\xaa\x01)\x83\ +\xc99\xaa0F\x0b\xa1\x87P\xe5\x02\xdc\x8fj9\xc1\ +V\xfc\x1c\x5c\xa9\xafV\xafd+#\xccX\xbf\xf9\xc2\ +\xb8\xae\xfb\x1b\xad\x04U\xef\x10\x19zP\x00\xd4#\xe0\ +\x93\xe4\xf8\xbc\xa0)z\x94\x22\xc8\xc8\x18\xa7p\x09\xe7\ +\x95\xc4\x98\xf0\xb6V\x19\xc8N\xbaJ\xad\x17\x10ZO\ +F~\xb4J\xed(\xd7pG\xad\xbd4\x81\x99Tm\ +\xe7\xc0\x9c\xd4\x9b\xa7z\xf3<_\xc3I\x10\xdf\xa0\xbd\ +\xa9\xb6\x1a\x0e\x0e\x1bIT\x17\x97Ad^\xba\xaf\xae\ +\x9e\xf3\xc4Y\xf3Q\x86@\xe2\x8c5\x97/Ru/\ +O\xd40\x16\x82\xd2\xff\x9fD\xedK\x80\xccz\xde\xd2\ +\x02\x19NS\xce\x85|\x89\xd6\xfb\x03\xe3A\xed7J\ +d\xc8\xdc\xb4\xc2\x90b\xf7\x14 D\x7f&\xcd\x8c\x10\ +\xe0\xb4\x22\x80\xf77\x80\xf2\xd9\x0e.+\xc1Qc<\ +C\x11\xbe\xd2f\xca\x93#6\xe3V=PH\xd2\x9f\ +\xaf\x0f\xbf\x11\xb7\x18Hc\xa6\xb5\xe2\xb4^\x9c\xd6\x8c\ +\xedd\x91Q\x8a\x99\x9a0\xd7A;z\xa3\xc1\xe8<\ +u\x0c\xb4\x22o@A^\xc2}XIN\xab\xc9i\ +E\xd9\xe0\x0e\xe7\x97\x8e?p3c\ +'f\xa4\xcfE\x8b\x84]%\x07\xc5\xeb19!\xc3\ +\xaf\x0c3\xa1\x1f4\x19\x5c\xa7x\xa4\x97\x85Gh\x81\ +%\xedgp\x1dv}6\xce}\xd8\xfaqZz\xd5\ +\x0b\x07\x8b\xc3\x8b\x0d\x85cW\xeb\x1cz\xf699f\ +\x0fHq\xc1\xae#\xf6\xd0\x18\x0e\xe5s{p\x84A\ +\xb7P,F\x0d\xa2@\xe2H%\x87\x0d\x02\xd9\x07%\ +\x9c)2i\x10o\xea\xc1H}\xf0\x8dz;d\xea\ +FR.\x94\xf8\x0a\xe6H\xed\x1bNI\xd7\x09Oa\ +\xa0}\xd9\x15@\x9d\x1d\xf2\xd0\xfe5\x9c\xeb\x14\xeb\xd7\ +g\xb6\x8f/\x97\x0bC\xaa\xadR?`p\xcc\x014\ +:\xa3\x1c1p)\xe2\xdc9\x04\x8e\x01\x83\x05%N\ +\xe2`\x10\x02\xd2\xfe\xa2\x09\x99)\xc6\x5cqG\x22)\ +8\x860\x00\xe1^\x1ab\x98\xe3\x81\xed\x81\x1b\x98@\ +\x95\xa0\x12K\xd5\x1e&\x155Z:\xf6\xc4\x86\xf1\xcc\ +\xb0\xd9\xb1\xd1\xf9\xe4\x9e\xbf\x1d\xa1\x95\xfem\xef=\x0c\ +*\xc8\xc3\xa7\xf56\xd0\xba\xff\xdaF+\x04V\x97\x89\ +_F\xf6\xa1\x19l\x82j\x06\xeb\x17\x10h`\x07\xad\ +\xb8\xdb\xc4\xdc\xd3\xbc\xbd\xb7@d\xcb\xb7\x06o\xe0\x11\ +H\x07\x94\xc0\xadgn=g\x1d\x0b\x9c#As8\ +`N\x05\xcb\x89@\xd9\xf6\xc9\x91WK\xdext\x1c\ +\x04\xfb<*\x8eD\xc4\x91h8\x15\x09'\xa2`7\ +\x02\x8e\xe1\x0d\x84\x94\xab\xd5\xdb\x88}G7\xab\xbe\xae\ +\xedk\xa07\xef\xfe\x07F\x13\x5c\xc0\ +\x00\x00\x0a\xca\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0aH\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0a <\ +path\x0a style=\ +\x22fill:#999999;st\ +roke-width:1.333\ +33337\x22\x0a d=\x22m\ + 11.559322,153.6\ +2712 v -8 h 56 5\ +5.999998 v 8 8 h\ + -55.999998 -56 \ +z m 28,-52.66667\ + -27.30894,-27.3\ +33331 h 15.65447\ +1 15.654469 v -2\ +4 -24 h 24 23.99\ +9998 v 24 24 h 1\ +5.65447 15.65446\ + L 95.55932,100.\ +96045 c -15.0199\ +2,15.03334 -27.6\ +19918,27.33334 -\ +27.999998,27.333\ +34 -0.38008,0 -1\ +2.98008,-12.3 -2\ +8,-27.33334 z\x22\x0a \ + id=\x22path817\x22\ +\x0a inkscape:c\ +onnector-curvatu\ +re=\x220\x22 />\x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\x83\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x08\xb0\ +roke-opacity:1\x22\x0a\ + d=\x22m 105.63\ +227,107.57797 15\ +.93533,0.15034 -\ +0.30066,-19.9943\ +27 z\x22\x0a id=\x22p\ +ath814\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22\x0a \ + sodipodi:node\ +types=\x22cccc\x22 />\x0a\ +\x0a\ +\x00\x00\x07G\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08T\ -\x00\ -\x00\x1epx\xda\xed\x19io\xe3\xc6\xf5{\x80\xfc\x07\ -\x82\xfe\xb2FEj\xeeC\x96\x1c\xb4X\x04)\x90\x22\ -@\xb2\xdb\xebKA\x93#\x991E\x0a$%\xd9\xfb\ -\xeb\xfb\x86\xe2M\xca\xebE\xb6\x01\x8aV\x86m\xce{\ -\xc37\xef>F\xeb\xef\x9e\xf7\x89s2y\x11g\xe9\ -\xc6\xc5>r\x1d\x93\x86Y\x14\xa7\xbb\x8d\xfb\xf1\xc3\xf7\ -\x9er\x9d\xa2\x0c\xd2(H\xb2\xd4l\xdc4s\xbf\xbb\ -\xff\xf6\x9buq\xda}\xfb\x8d\xe38\xe78*\x1f7\ -.Sn\xb5|4\xf1\xee\xb1\xec\xd6\xa7\xd8\x9c\xff\x94\ -=o\x5c\xe4 \x87)\xa7\x81\xc7\xd1\xc6\x05\x12\xa4\xde\ -\xd5\x9d\x8fk|\xfaT\x84\xc1\xc1\xac\xfa(\xe7](\ -\x94!$\xa4J.\x1c\x82\x08\xf6\x10\xf7\x08\xbd\xbd\xbc\ -S\x00\xd7\x07\xf8]EY\x98\x06{`6N\x0f\xc7\ -\xb2\xf8W\x90\x06\xc9K\x11\x17\x0e\xf1\xe1\xcc\xcbf\x10\ -;-V\xcd1\x1b\xf7\xb1,\x0f\xab\xe5\xf2|>\xfb\ -\x0d\xd0\xcf\xf2\xdd\xd2\x12*\x0eAh\x8ae\x03\xef\x13\ -h\xcel\x094\x00\xbf\xc8\x8eyh\xb6@\xc3\xf8\xa9\ -)\x97\xef?\xbco\x91\x1e\xf2\xa32\xea\xd1\x19\x9c\x7f\ -\xa6\xd5\xc9\x04!\xb4\x1c\xf1\x0b\xcb\xb7n\xcd\xa3\xed\xdc\ -V\xac\xb5^\x22\xb2$\xc4\x83\x1d^\xf1\x92\x96\xc1\xb3\ -\x97\x167\xfdw\xc3\xb0}5\xccMP\xc6'\x13f\ -\xfb}\x96\x16\x17\x9d\x0cwG\xdd\xee\xc31O\xaa-\ -Q\xb84\x89\xd9\x9b\xb4,\x96`\xb9\xa5{o_X\ -\xefM\x19DA\x19To_\xbc\xa0\x01ar\xd9\x03\ -\xbb\x80\xb1\xd5\xcf\xef\xbf\xaf\x97\x00\x08\xc3\xd5\xdf\xb2\xfc\ -\xa9Y\xc3\xc7n\x09\x1e\xb2#\xb8\x9a{\xdf\xc1\xd7Q\ -\xb8\x02\x95\xef\x83\xf2>\xde\x07;c\x95\xf2\x07\xe0r\ -\xbd\xec\x10\xc3\xdd\xe5\xcb\xc1\xf4\xe8^(\xe7\xe6b\xbd\ -Y\xb9\xa2p\x1f\xdb\xb7\x96\xbf\x94q\x92\xfc\xd9\x1e\xe3\ -:\xcb\x8e\xd9e\xcdm#\xcd\xb2/\xcez\xd9\xc8{\ -YFf[\xf4\x94a\x97\x18\xb5\x8a\xd8\x07\xf9\x93\xc9\ -[\xf6\xda\xa0(\xca,|\xb2\xfb\xff\x98\xe7\xd9\x19\xff\ -\x08\x01\x9a\x97n\xbb/\xcbcP\xfc\xc6\x0d\x8ee\xd6\ -As\xb3\xfd\x07\xc4!Dx\x1f\xf4\xf7\x11\xe8:\xd5\ -\xa2|I@#\x19D\xe46\xc9\xce\xabS\x5c\xc4\x0f\ -\x89q\xa7\xec\xc5E\xc5\xe0\xc6-\xf3\xa3\xe9\xcc\xb3>\ -\x04\xe5cO\xd7\xf6(\x0bb\x5c+\xb7\x07\x07\xf0_\ -\x1c`j\x01\xbf\xce\x8f\x0e\x87'\x8fW\x8f\x1e&>\ -\xef\x81/\xd0f\xeb'\xa7O\xa5fw\x0b6\xf2\xf2\ -cbV\xe6d\xd2,\x8a\xee\x8a2\xcf\x9e\xcc\xea\x06\ -U\x9fz\xe9Uyl\x05\xf9\xefP\xf6\xa9\x94y\x90\ -\x16\xd6q ]\x85Ab\xde!_\xdd^\xa0IP\ -\x9aw\x17\x86n;\x07\x00\x03WFk\x96 `i\ -\xf2\xb4%Y\xaf?\xa6q\x09Q\x7f,L\xfe\x8b\xcd\ -.?\xa5\x1f\x8b\x9e*\xeb\xacJ}\x8a\x18\x91Dt\ -\x986\xc1\xfa\x9ak\x81Q\x0fU\x93\xfe\xd0\xb1\xdc\xf1\ -)}!\xb8\xd6\x92/\xb4\xcf\xa8\x04\xb2\xeavh\xf4\ -\xfam\xbb\xa9g\xb2\xd2<\x97=u@(\xad\xaal\ -\x08\xfb!HL~2s:\xcf\xd2\xd2\xab\x9eW\xa9\ -\x8d\xb9\xe4\xae\x82\x9c+\xd6\x07\xa0\x22\xfedV\xc2\xe7\ -\x5cRrx\xbeK\xe2\xd4x\x17\x09\xc1\x14\x84_6\ -m\x83}\x9c\xbc\xac\x0a\x90\xc5\x83#\xe3\xed\x9d5\xea\ -\xea\xe6\x81\xda\x9fj\xe1e\xc0\x14D\xe5\x0a7\xe6M\ -\xa1Z\x0dm\x8b|,\xa8\xa6\xb4\xcf0\x14&\xc8\xc5\ -\x8c\x12\xc2\x98\x16}\xcc\x8bU\xb1\x12Br\xa9\xdd\x91\ -\xd3Z\xa5`.\x85{\xbf.A\x1b\xe9 \x7f\xb4U\ -(\xcf\xac.\xacH\xee`CE\xc1\xbe\x06$\xd8\x10\ -\xd5\xf3\xd9\xd7\xc5{E\xa4\xd7\x84\x1a\x89u\x8f\xd6\xcb\ -\x8a\x93{\xf8\x0f2\xb5.\x5c\xfbB\x9d\xb1lR\xba\ -<\xb6\xb2\xd9\xaa\x18\xd9\xda^\x13?@\x12\x0c\xb3$\ -\xcb7\xee\xcd\xb6\xfa4\xc7>dyd\xf2\x06'\xaa\ -\xcf\x10W\xcb\x06\x15\xbe\x81g\x0f\xbf\x9a\xb0,A\x7f\ -\xe0\xbf\xd6\xd7p\x9b\xa0v9\x08>\x8b8\xc6\x91\x99\ -\xc5\xb4i\xc92\xd9\x1e6\x8f.\x1e\x83(;o\x5c\ -2\xc1\x9e\xe3\x140^\x1d\x98XqumK\x13\xa1\ -\x18q\xe9\xf6r{\xab\xb3\xf6\xcd\xe21;[\x81\xc0\ -\xe2A\xd2\x85\x7fK\xf0S\x96A\x10c\xeas\x82T\ -g\xe5\x16\x1f\x82\xa5\xa9\x86\x1c\xa1%\x9a\xb2\x13\x82\x94\ -\x14\xfbBcE\xd95f\x81\x02\xbf\x8a\x04\x02\xdeU\ -1\xf7\xc1s\xbc\x87\xf0\x8dz\x86\xeb\xce>\xe69\x94\ - /\x09^\x0c\xd8}\x87\x09\x9fWx\xf8hB\xc8\ -\x96\x0fY\x90G\xd6(u\x1e]\xefz\x8a\xdb1\xcc\ -\xbb\x9a\xb8\x1bd\xad\x1d\xe3\x8c\xbd\xa5\xc4P4-1\ -\x0b\xe4\xfc`\x9b\xd2\xbf\xda??@\x83\xfa\xcfA\xa4\ -\xb7\xc2di\x0a\xfe\x98\xe5\x1e\x88u\x0a\xcacnz\ -\xfe3\x8e[\x9bx\x06\xfd\xc0n\xc4\xcfN#|\xa5\ -\xc4@{\x92\xc7\xcf\xef\xa0\x0aI\xaa\x89f\x0b`q\ -\xd1\xad\x84\xf6\xa1{\xe3\x98/\x88\xf4\xb1\x22\x9a\xe2\xdb\ -A\xf7\x93\x03\x9bW\x13J/#\xaent\xf5\x19f\ -\x13\xf03\xaa\x18\x92\x827p\x9b\xbc@\x05\x90\xca\x8e\ -i\xd4\x07\xfe\x9a\xc5\xe9\x10\x0a=\x91\xc9\x13\xf0\x88r\ -\xc5\x1aX\x14@<\xe5y\xf02\xc8\xc6m.\x9b\xa6\ -E\xcb\xbff\xa3\x94\xd5\xd4B\xe1\x0bJ\x85\x1e\xa5\xcc\ -&\xda(\xf71Ut\x9cQm.\x14\xc8\x97\x12i\ -\xca'\xa9\xd0\xc3\xda\x87\xe0\x80\xf7\x86\xa8\x1cp\xdc\xa7\ -Zj.X\xdf\x98#s\xd6\x06\x95L\xcb!\x81r\ -\xae\x06#\x9f+\x88U\x84\xf5\xc0j\x13\x9a5\xd5~\ -\xcc\x5c\xf7\x15\xea#\x84\x11\xe4\xfa\xcaW\xa0\x1b\xe1\x1a\ -\x11\xc4\x17\x18\x83B\xa4\xc2\xca\xfa\x8a@\x9a\x102:\ -u\x1a-CC\x08\x84\xb0;\xc1^\xf1\xa8\xb6 )\ -\xa9\xb4\xa6\xd3\xf7l\xa7\xefx\x5cZ\x06\xa9\x12\x0b\x0f\ -K\x9f`\x8c\x98v\x1ea.\xd3\x881J\x9d\x93\xc3\ -|\xca\xc1\x05\x04@\xbd\x16\xfcih\x83\xd7y\x87\x9e\ -JB\x87\xf3\xdf\xcb:\xffO\xb2\x8e|!\xa1z\xe1\ -Y\xd6)\xff\x8d\xbc\xab\xaf\xcf;\xf6)C\x0c\xcbY\ -\xde\xd9\x15\xde\xd9,\xef\xbb\xc9\x19A\x1e\x07P\xa4\x1e\ -L\xd2\xabb\xce\xb4\xd9\x93J\xbc\x12\x0b\xbdN\x96R\ -\xce\xe8l'[\xf5t\x08E,\x08&M\x1c\xe4\x05\ -%\xa6\xf4\xa7\xd1\x0e\x99\x8cr\x0ay\xf0R\x1azK\ -;\x1a\x09\xa2\x95\xa4\x90\x04\xa4\x14\x90e\xe8$\xe0\xaf\ -\xd9\xafU6\x851\x81\x10\x0a\xd4\x98/\xa1\xb5\xc4\x0a\ -\x94\x0a\x05\x08\xfa\x0f&@\xd7\x9e\xedE(\x13\xccI\ -`\x18\xf3!\x088\x17\xc0\x06d\x17i\xfd\x08\xfaN\ -\x0e\x0d\x87\xd6\x80\x074b\x90\xb0\x17^\x83\x7f\x84Q\ -M\x10\xa6\x14\xa9\xcc\x06II\x08\xda\x1d\xc0\x01\x0a\xef\ -\x13\xae\xf4\xc5\x94B \xd0\x0b\x98r\x86\xe1\xb6\xb2S\ -L\xd4\x8c\xad\x97\xbb1d4\xca\xbci\xa0\xf9-c\ -\x8d\xf5K\xa1\xe8\x17\x8f5ui\xfe\x82\xb1\x06)M\ -\xa6\x5c\xdb\xd2\xc7\x05\x84\x17\x16LN\xd1\xb6\xfc\x09_\ -\x0b\x81\x99\xd0\xd7]\x1f\xf2\x00\x9d\x1ft\xde8\xee\x8c\ -\x86\x1eK\x8f\xcd\xed\x18\xcc>\xaf\xe9\xe0sr\x7fV\ -\xf2\xb1\xecW\xc6\xa0\xffu\xc7\x91\xa0\x1b<\xef7\x90\ -k\x14\xf4\x89\x88\xbd\xea7\x0c}e\xbfQ\xbf\x8f\xdf\ -\x5c\x11|,\xfa\xff\xddfF{\xd8g\xb6\x03\x15W\ -\xfd\x06\xda_&\xd5g\xfc\xc6\xfb\xda\x19Gy\xbfK\ -\xce\xb9.\xfdX\xfeW\x9dg\x5c\xbc\xae\xcd\x07\x82}\ -~>\xa8*.&P\x8a\xeb\x8e\xa1]z\xdc^\x1f\ -q\x8c\x17\x9e\xf2\xb1\x96\x8ap\xf6\xc6\x11\xe1-\xe3\xf3\ -\xb0L\xcf\xe8\xcc*\xda~\x9f4\x1c\x97\x9b\x1b\xff8\ -\x0f\x13s-2:\xf3t]\xe5\xbc\xff\xcev\x5c\x10\ -)\x92b\xfa\xb6)\xf7\xc1\x9cL\xf2\xe5S\xae\x85f\ -\xdbma\xca\x15\x9aL\xbew\x87 \x86\x88\xac\xae\xbf\ -\xea@\xbe\xae:\x8c\xe6\xbac{\xf7\x03\xd3+\xd5\x82\ -\xf0\x19\xdf\xb6\x97?X\xf9\x12\x11\xc9ft\x9f\x03\x96\ -Af\xa0\xd0w\xbd\xb5\xc9\x1f\x04K\xad\xd6\xd7n\xd7\ -\xa7z\x97>\xd4[\xc1\xde\xa6\xf7J\xd5_\xedv\xa1\ -\xedq\x09\xe8\x8c\x11hL\x17\x14F\x0f\xa2a0v\ -@O\xd0EKm\xef\xc61BL\xbdj\x8c\x99\x11\ -\xe7\x0b\xae\x8aF9\x0ctf\xec\x97I\xc5\xc6\x0d\xc3\ -\xb1%\x86y\xa0\xbf\xea\x9e{O]\x96\x98\xbd~\x80\ -.\x1b\x09I\x14t\xf7\x84\xfbJI\x10~\xf4\x1d\xc0\ -\x8ea\xd6\xbb\xef\x98\xdc\xb5\x09\xdc\x13\xfe\xda\x1d\x07&\ -L\x13\xdd~%rapm\xbf\x89\x83\xff\xff\x06\x09\ -\xcd\xbf;\ -\x00\x00\x06\xd1\ -\x00\ -\x00%\xc4x\xda\xddZ\xdbn\xe36\x10}/\xd0\x7f\ -P\xb5/\xbb\xa8Eqx\xa7jo\x81vQ\xa0\xaf\ -\xbd\xa0\xcf\x8a\xa4\xd8\xea\xca\x92!\xc9q\xb2_\xdf\xa1\ -d9rd\x07ia\x14^\xcb\x09\x12r\x86\x14y\ -8sf\x86\xc9\xfc\xc7\xc7u\xe1=du\x93W\xe5\ -\xc2\x07B}/+\x93*\xcd\xcb\xe5\xc2\xff\xf3\x8f_\ -\x02\xe3{M\x1b\x97i\x5cTe\xb6\xf0\xcb\xca\xff\xf1\ -\xe3\xb7\xdf\xcc\xbf\x0b\x02\xef\xe7:\x8b\xdb,\xf5vy\ -\xbb\xf2~-?7I\xbc\xc9\xbc\xf7\xab\xb6\xddDa\ -\xb8\xdb\xedH\xbe\xef$U\xbd\x0c?xA\x80Cq\ -p\xf3\xb0\xfc\xf6\x1b\xcf\xf3\xf0\xdde\x13\xa5\xc9\xc2\xdf\ -\x8f\xd9l\xeb\xa2\xd3M\x930+\xb2uV\xb6M\x08\ -\x04B\x7f\xa4\x9f<\xeb'n\x05\xf9C\x96T\xebu\ -U6\xdd\xd0\xb2y7\xd6\xae\xd3\xfb\x83\xba[\xd2\x8e\ -wZ`\xad\x0d)\x0b\x19\x0bP#h\x9e\xca6~\ -\x0c^\x8c\xc5u\x9e\x1a\xcb(\xa5!\xcaF\xaaoT\ -\x8b\x1aDv\x83\xdf\x07\xfd\xa1\x834\xd5\xb6N\xb2{\ -\x1c\x98\x912k\xc3O\x7f|:\x08\x03J\xd26\x1d\ -\xcf3\x00{\xf4\xde#\xb4\xcbx\x9d5\x9b8\xc9\x9a\ -p\xe8\xef'\xd8\xe5i\xbbZ\xf8\xc2\xf4\xcdU\x96/\ -W\xeds\xfb!\xcfv?U\x8f\x0b\x9fz\xd4\x13\x06\ -\xbf\x08u\x0f\xf4\xe2<]\xf8\xb8'\xb6W~6\x9c\ -A\xbe\x7fWt\x10Qb\x19\xe1\xde{&\xa8\x94B\ -\xcd\ -\x0b\x8e\xb5\xdb\xa7M6\x9a\xb7\x9f\xb9\xcez>8\xc9\ -\x8ci\xb2\xce\xdd\xa8\xf0\xf76/\x8a_\xddk\x86\xed\ -\x8d\xa6\xcd\xdb\x22\x1b\xf5\xce\xc3\xfd\x1e\x86=\x86\xe3M\ -\xce\xc3\x01\x84\xbe\xb9|\x09i\x11\xdfe\xc5\xc2\xff9\ -\xde\xc4\xde\xf48\x97u\xb5\xdd\xac\xab\x14\xd7\xdbY\x90\ -?B\xb7\xeb8\x0ci\xeb\xb8l\x1c\x0e\x0b\xbf\xfb\xb5\ -\xc0\x08\xf2\x9e\xce\x02\xa0T\x10\xae\x18\xfbp8\x84\xe5\ -aCn\x9a#\x93<\x9a\x07!\xad\xf3\xc7\xf7\x94\x18\ -\xa5@q\xc9g\xd4}\x9e\x9b\x8c(\xa9\xb5\xd1v\x06\ -\x5c\x13\xd0\x8c\x0f\xcc\xd3\x99w\xfbT\xe0\xba\xef\x11\xca\ -hO\x09?4m]}\xce\xa2w\x22u\x1f\x7fd\ -\x07y\x9d\x14\xe3\xe3\xaa\x1d\x1bH\x7f\xd4\xd3\xf9\x22\xa5\ -\x86p\x90\xfaH\x80\x96\xcc\x04\x91BZc\xc6\x02\xb7\ -\xbdM\xdc\xae8\xe7j\xdc\x7fje\xae\x11\xecy&\ -\x82\xbeYo\x8b,\xca\x1e\xb2\xb2J\xd3\xc3\xd2m\xf7\ -\xec\x9b\xbd/F\xb0y\x1c:\x8a\xbc\xcc\xf0\xe8\xa2\xbb\ -m\xdb\x8e\xfb\xfe\xae\xf22B\xf3\xca\xea\xa1\xf7\xf0\xb2\ -\xb1\x8d\xbd\x1d\x08\xe0\x04\xb8\x9d\x00\x81\x07A\x0d\x15\x94\ -\x9d\x03\x22\xe07\x07\x05Sh\xe1\xa0^B!8\xb1\ -\xc2\xa2y\x9e\x85\xe2\xf6\xac\x82[\xe7\x93|\x02\x05%\ -\x82\x0a.\xf8Y(\xf4\xcdA!4\xd1\xd4L\x99\xc2\ - BV\xcb\xf3\x0e\x22o\x0f\x0a\x89\xa4\xcd\xe0%\x14\ - \x08\x93\x8a\xc2+\x5cq{XpI@\x82|\x89\ -\x85$\xd4*\xb4\x17s\x9e,\xd8\xed\x11'Fpe\ -\xa6lA\x0c\x1a\x85\xd0p\x16\x0b{{\xe1\x14\xa1\xb0\ -j\x12C\x00\x88\x10\x16\xd8y\xb3\x80[\xb4\x0a\xce\xec\ -\xc4C8\xa0Y\x18q\xcc\xa8\xc7P\x04\xf4\xf6\xe8\x82\ -\x11\xcck\xa7`\xa0\xb9`\xde\xfc\x8aY\xdc\xa0\x8f`\ -ni\x04\x9b\x04TW=\x03\xd3\xec\x15,\xbe\x9a\x9c\ -\xd3\xady\xbc\x8dC\x1d_\x958q[\xd5\x01V\xf4\ -\x0fq\xbb\xadq\x07\xf4\xd4\x8e\x05\x93G\x94\xe0\xea`\ -O\x11*\x8d\x96V\xce\xd0\xbd0qW\x92y\x9a0\ -E\xa9\x92r&\x09\xd7\xd6\xbc\x09\xa2\xb7c\xf2\xef\x11\ -\xe9\x1a\x05V\xf6m$\x86\xbe4nVq]\xc7O\ -QY\x95\xd9\xff\x80\x9d\x9c`\xc7\x5c\xc5i0:#\ -v\xa0\x89\xc5z\xd5\xe3\x842$e>\x0b0\x9b\x13\ -\xd4^\x16;\xf7Bf\xb9f\xfa\xca\x0cKO\xc0\x01\ -GO\x14W;\xebB\x18\x13 =\xa0X\xf7h#\ -\xc4,\xe0\x04\xd3>\xb84:V(\x0bJ\xab+C\ -\xc7\x9ep;\x8e\xd6\x22\xa5C\x07\xf3>!\xad\x07]\ -Q\xc8\x8d\x85\x19\x10k\xb5\xbd<8\xee\x22\x02\xf8u\ -\x81\xa3\xe0\x94_I\xad\xadv~\xc5\x0d\xd1JH/\ -@\x90\x941\xdc\xce\x14a\x8c\x9a\x8b\xfb\x15\x1a\xa8e\ -\xd7f9\x8aO\xc1Av\x06i,\x9b\xf5\x85$2\ -\xb6\x17`2\xa8\xd1\x099\xcc\x02 J\xeb\xcb\x9b\x0e\ -\x97\x82\x81\xb92t\xa6~\x85\x89\x80\x16V\x83\x0bg\ -XDr\xaa\xb5\xe7n\xc9\x19\x15hM@8\xc6\xba\ -\x8b\x83\x03\x80Q\xf2\xcaB\xbd\x9e\xba\x95`D\x1a\xe4\ -\x9cYw/E5\x17^`\x89S\x95\xcc\x112\x97\ -\xea\xe2\x84\xac-\x15\xf8\xba+3\x1c=\x8d\xe5\xc2\x9d\ -\xa3\xbbr\xe89GR-<\x8c`V\xf2\xce\xa9\x90\ - \xa8\xba<\xe9p\xaa4h{e\xe8\x9c\x08\xe6\xc8\ -\xbe\x80\x05y\xc7\xc8\x94\x00r\x01\xba\x15\x00P\xa3\x91\ -\x90\x85\xb9<6Zp\xac\xe9\xe8\x95\xb9\xd5q2\xdc\ -\x132V\x19\x18\xc3Y\x97\x05\xbaKN\xa3=C,\ -\x93J\xcf\x18\x01-\xf9\xc5\xa1\xc1\xec\x5c2\xca\xaf\x8d\ -q\x82i\xb4\xc2j\xd4`\xb4R.Za\x99.4\ -S^\x80\x86\x0f\x0a\xa3\xd7,\xc0\xa4\x19\xf1\xba8>\ -\x9cbug\xd9\xf5\xe1s|\xaf\xdf#d\x89\x04\xdd\ -\xc7s$\x1eL\xff\x90\x96\x1d=+\x85\xa8a\xda\xc3\ -@|\x05\x08\xbd\xfd:\xcbb-p\x9c\xdcv\xb5:\ -\xc5\xa2SJ*_\xa9\xd5/\xf7\x97\x00JS\x11\xc7\ -Wp\xa1e\x09\x05y\xea\xfa\x1b\xcb%\xa5\xec+`\ -\xa8\xaf\x05\x8c\x8bTP\xfcTH\xa2\xc6R&\x5c:\ -\xa3]\xf0\xf6\x12\x8fb\xc6G5 \xb3PLl\x90\ -k\x84\xbb\xca\x00`\x8ej$`}\xfe\xb2\xe3\xbf{\ -\xd6)\xd8\xdc\x7f\xbe\x18ta).\x84\xdf<\x5c\xee\ -\xffZ\xef~\xce\xdd\xff\x16\xe0\xcf\x7f\x00\x93\x13\xca\xa6\ -\ -\x00\x00\x0a\xb8\ -\x00\ -\x001 x\xda\xedZ\xdb\x8e\xdb\xc8\x11}_`\xff\ -\x81\x91_l\x84M\xf5\xfd\x22\x8f\xbc@\xd6X`_\ -\x93\x0d\xf2\x18\xd0\x12=\xa3X\x22\x07\x14\xc7c\xfb\xeb\ -s\xaay\x19\x8a\x94\xbc\x13o\x02\xc4\xf6\xc8\xd8U\xb3\ -\xaf\xd5\xa7O\x9f\xaa\xa2\xe6\xea\xa7\x0f\x87}\xf2\xbe\xa8\ -\x8f\xbb\xaa\x5c/D\xc6\x17IQn\xaa\xed\xae\xbc^\ -/\xfe\xfe\xdb/\xcc/\x92c\x93\x97\xdb|_\x95\xc5\ -zQV\x8b\x9f^\xfd\xf8\xc3\xd5\x9f\x18K~\xae\x8b\ -\xbc)\xb6\xc9\xfd\xae\xb9I~-\xdf\x1d7\xf9m\x91\ -<\xbfi\x9a\xdb\xd5ry\x7f\x7f\x9f\xed\xba\xca\xac\xaa\ -\xaf\x97/\x12\xc60\x14\x83\x8f\xef\xaf\x7f\xfc!I\x12\ -\xac]\x1eW\xdb\xcdz\xd1\x8d\xb9\xbd\xab\xf7\xb1\xefv\ -\xb3,\xf6\xc5\xa1(\x9b\xe3Rdb\xb9\x18\xf5\xdf<\ -\xf4\xdf\x90\x05\xbb\xf7\xc5\xa6:\x1c\xaa\xf2\x18\x87\x96\xc7\ -g\xe3\xde\xf5\xf6\xed\xd0\x9dL\xbaW\xb1\x97\x08!,\ -\xb9\x5cJ\xc9\xd0\x83\x1d?\x96M\xfe\x81M\xc6\xc2\xce\ -sc%\xe7|\x89\xb6Q\xd7Gv[\x1d\x81\xec-\ -\xfe\x1b\xfa\xf7\x15\xd9\xb1\xba\xab7\xc5[\x0c,\xb2\xb2\ -h\x96\xaf\x7f{=42\x9em\x9b\xedx\x9e\x1e\xd8\ -\x93uO\xd0.\xf3Cq\xbc\xcd7\xc5q\xd9\xd7\xb7\ -\x13\xdc\xef\xb6\xcd\xcdz\xa1}\xfbxS\xec\xaeo\x9a\ -\x87\xe7\xf7\xbb\xe2\xfe/\xd5\x87\xf5\x82'<\xd1>\xe3\ -\xf4\x11\x0f\xa5\xb6\xd7n\xbb^`k\xb2\x1b\xf3\xc0\x9f\ -\xbe\xbd[r54\xf1,\xc8L%\xcf\xa5\xe6\xc6h\ -\x9b&\x92\x0b\xcf\xb8bB\xbch\xc7\xf4\xbb]m\xab\ -\x0dY\xbf^\x5c\xd7\xbb\xed?w\x9b\xaa\xcc\x08\xc6W\ -\xd4\xebj[\xbc=\xc6\xee\xad\x11\xf4\xa8\x17\xc9\xb2m\ -\x1c\xa6\xa0\xf1[\xda\xca\xa8\xeb\x9b\xfc\xd8A\x90$\xb7\ -\xf95H\xb3\xaf\xea\xf5\xe2\xd9\xdb\xf8\xe9[\xdeT\xf5\ -\xb6\xa8\xfb6\x1b?\xa7m\x15P\xdd5\x1f\xdb\xdb\xd2\ -\xcf\xdf\xef\x97&\x1e:\xf0\x0b\x1d\x8e7\xf9\xb6\xba_\ -/\xe4\xac\xf5SU\x1dhb\xa3e\xb0\xde\xcf\xda7\ -8\x18&\xb4\xc9\xb8\x11F\xcc\x9b\xc9*!2\x15\xac\ -\xd3\xb3V\xe0zGW\x8a\xdd\x95\xbb\x06\x94\xbd\xfd0\ -\x9f\xe0\xae\xae\xa9\xc7>\xffX`\xff\xf1kX\xe6x\ -S\xdd\xd3\x91\xac\x17o\xf3\xfd\x03\x96\x97g\xbb\xdf\x95\ -\xd8'\xeb\x18'\xfc\x19\x8b\xbb.=\x0b\x05\x97\xe6R\ -\x1fl\xdd\x86K\x8d\xd8\xb8t\x97\x1a\x0f\xf9\x87\xdda\ -\xf7\xa9\x80\xe5b\xe0\xca\xa1h\xf2m\xde\xe4#\x86\xf4\ -U\xae\xe5\x1a:A\x1bV\x7f}\xfdK\xf7\x88\x8a\xcd\ -f\xf5\x8f\xaa~\xd7?\xe3C]\xf27\xd5\x1d\xac_\ -\xbcz\xa8\xbf\xdanV\xb8\xcd\x87\xbcy\xb5;\xe0\xcc\ -I\x09\xfe\x8c\xcb{\xb5|h8\xed\xdd|\xbc-F\ -\xf3\xb63\xd7E+\x0cg%r\xbb9\xech\xd4\xf2\ -o\xcdn\xbf\xff\x95\x96\xe9\xb77\x9av\xd7\xec\x8bQ\ -\xed\xd5\xb2\xdbC\xbf\xc7\xe5x\x93W\xcb\x1e\x84\xf6\xf1\ -z\x0a\xe9>\x7fS\xec\xd7\x8b\x9f\xf3\xdb<\x99\x1f\xe7\ -u]\xdd\xdd\x1e\xaam\xd1qg1B\xf7\x94LM\ -\x9d\x97G\xc2a\xbd\x88\xc5=\x5c\xc9s\x9e2\xc1\xb9\ -\xce\x94\x95\xf2\xc5p\x08\xd7\xc3\x86h\x9ak\xef\xd4b\ -\xa89;\x0d\xf3\xb8 \x82+\xc8\x0c\xd32\xf3\xda{\ -\xff\xe2a\xcc\xb1\xf9\xb8\x87\x81\xc7\xa6\xae\xde\x15\xabg\ -!~^\xb6\x8f\xac\xbb\xbc+\xf1p\x98W\xc5~\xbf\ -\xbb=\x8e\x0f\xa7\x06\xdft\x16\xbc\xb3\xd2/\xc6\xf5 \ -\xa9\xc9\x84\x16<(7n\x887\x93\x0b\x99\x09\x13N\ -\x1b0\x22@[\xbdU\xf2\xa4\x81\xf6z\x9b77Z\ -(;\xae\xef\xac\x1f\xec|\xf9\x16g?\xec\x82\x1e\xd8\ -i\x1b\xab\xef\xf6\xc5\xaax_\x94\xd5v\xfb\xf2\xfc\xae\ -\xe3\x15]\x99\xfeq\xbf+\x8b\x7fU\xbbr\x85\xe3,\ -\xfb1\x0cd+\xea=nR\xb3\xd2}\xdd6\x87\x98\ -\xd5u\xfeqU\x22>\x98\x838&\xde%\x18\xb5\x17\ -\x16xMq\xd4\x99\x15\xc1p\xa3\xe78j\x9e\x09\xe9\ -\xd4\x14G\xaa\x16Nku\x09G&\xbee$M\xa6\ -CP\x9c\x9b9#\xad\x85\xf8\xf23H\xc2Yh\xe3\ -\xed\x14I\x152k\x84\x94\xf6\x22\x92\xdf4'm\xa6\ -\x9c5\xde\x85)\x9263N\xba \xc4\x19N\xca\xcc\ -\x085\xe3\xa4\xcb\xac\xb6\xdc}\x86\x93\xf2\xdb\xe6\xa4\xd3\ -F\xeaS\x22\xb5\x9c\x0c\x12!`0s$\xa5\x03\xfc\ -:L\x91\x94&\x83\x8e{{\x99\x93\xfc\xdb@\x92\xf6\ -3\xde\xc8\x10\xd4\xc2\xaf\x92\xbbG\xb0\xb5\xd9\x9c\x800\ -\x84oUY\x16\x9b\xa6\xaa\x19\x02\xb9\xf7ysW\x03\ -\x01~\x1e/w\xc2a\x8a~\x12\x88\x81\xf5\x92\x07\x9d\ -\xc2y\x06h\xa9\x17\x89P\x885%\xa2\xcd\x94\x85L\ -;~\x8e\xadsd\x1f\x0d\xa5\x1eC\x89=\x9c\x229\ -\xe0\x1b!\xfd\xca\xf0Us|9\x18,\x0d\xc1\x0bX\ -\x11\xa3K\x82\xd7\x06%dH\x11\x1b8\x88\xce\x13\xbc\ -\x8f\x84\xd7\xcc\xe0U>S\xdc*%[|\xads\x22\ -a\x94\x0d)a\x8c \x80\x8d\x15\xf6\x09\xe0G\x02\xec\ -f\x00C\x98%\xc2.\x01\xb2r\x19\xb2\x80P\x9d4\ -C9\xaf\xb4K!\x18\xd2\x87\xaf\x1c\xde\xab\xe5\xf5\xa5\ -\xb4\xc3\xbb\xdfI;\x10\xf4#%\xb0Z\xa5\x1e\xe9G\ -\xf0Z\xbfX\x5c<\xb5/8\x13/\xe7\x92-e\x86\ -\x13\x09\xd2\xa71\xbb0<\x98D!\xc9\xd0\xd2\x98T\ -AQ\xa4JD\xe6U\x08^\xa4p\xc6\x5c\xeb\xc4!\ -\xdd\x08\xda\xb8\x94a\x80\xb3\xe2\xd2\x91E\xa8.\x9f\x97\ -\xe7\xf4\xef\xf4\xbc\xd4\xe3\xce\xeb\xabs\x97^\x86GA\ -\xcf\x1c\x92?\xcd\x83\xc7m\xd0\x81\x87o\x0b\xda/\x01\ -N\x89\xb32b\x91\xf3\x91\x1f\x94\x82\xae\x8cL\x90\xbb\ -(\x89\x0c8uY\x80\x8c$\x0c\xd95\xb7Vx\x90\ -\x96\xdb\xd3\xcc\xe5;\x05R=\x8a\x81\x22\x13*p\x85\ -\xcb\xad \xd6\x5c}\x0f\x97\xfb\x8f_o5\x8f&\x84\ -\x81?\x0b^\x11I%\xbd\xfc\xd6\x09\x05\x10\xce\xe8\x00\ -\x92z)u\xb2I\x18\x87\xf7\x93\xde9h\xadR\xce\ -%\x1cl56\x95\x19\xa8k\x11}P\x10mcD\ -\x02\x97\xa0\x92=\xc4\xd9p\x8d\x1c\x12\xbc6\x92\x9b'\ -^\xaby\x9c\xa1\x10\x0a\x03\xef \xda8\xc3\x87\x90X\ -\x223\x5cp\xaa3\xae\xbd\x22\x18\x83\xa4\xa8\xc3f\xdc\ -\xc9'\x18\xbdV\xe7t\xd6\x05\xe5\x1dQXAOM\ -\xd0\xe0'\x22g\xa9\x88~Zz\xf3\xe4\xfa\x1f\x81\xac\ -9\x97\xc8\xd1\xebZ\x19\x09\xea\xe1\xba\x80,\xb3\x99\x16\ -\xda\xc1\xe9\x03[\xcb\xc3\x93\xef\xf7\xfaL\x0a\x11y'\ -\xa2\xac\x0a\x5cj\x14\xe1\xfb=\xe2Rz\xc3 3x\ -3$\xc5\xa4\xb7\xcaz\xe4\x19\x99\xd3^>!\xa9\xe7\ -\xe1'n\xb4t\xceF\x0e\x0aD\x9b\xf8\x7fBIo\ -\x08\xc6C%\x0d\xf7:\xd1\x19\xb25\xe5u\x8ak\x8f\ -\x1c\xe0)\x16x\x0c\xd6\xe6Q\xb1\x00\x02T\x1d\x1cR\ ->x \xdc\xff\x04\xdc\x15B#\xe7\xa3\x10\x16x\x09\ -\xea\x11\xd1\x17\x16\xc9\x00\xc8\xee\x9ehl\xce\xbeS\x08\ -6\x08b\xb1F0\xe5]@\x08+\xa5\xb5F\x22\x8d\ -\x16\xde\xdb\xef\x82\xb5\x7f\xd8I96\x0f\x00tFy\ -\xbf4\xed\xfb0a\x94I\x88\xb5\xc6xm\xe1\xa4\xbc\ -\xb1\x9e\x02+\xa5\xb5\xe4\x1a1k\x08\xfc\xab~\x19\xf0\ -\x99\x977\xce\xcf~\xff\xfd\xdc\xef\x01\xbf\xf7\xdb\xf0\xb9\ -\x17A\x87\xbc\xa9w\x1f\x9es$\x09A\x07\x84\xaa\x9c\ -\xfe\x0dO \xba5\xdas\x99j\xf2o\x1a\x87\xf0\xb9\ -\xd7C\xdd\xc1\xca\xb9\x16\xd9\x0c9\x88\x95\x94S\x04\x91\ -i\x8d\xb4bC\x99\x06.\x0c'\x19\x82\xdb\xc4\xaaP\ -$\x95\x05(Vf4\xd2\x0e&\xe0.\x0c\xfd\x05\x8f\ -J\x99\xcf\x94\xc0\x18\xfa\xb54E\x06\xa3\x0d\x15=\x15\ -\x83\xec\x8a\x988\xe1\xb1\xd1S\x92\xc3]l5T\xee\ -\x9b\xf7\x09\xe6\x14|\x98S\x92\x1d\x82\xba\x0a\xca\x94\xb0\ -2\xf2z\x84\xeb\xbe-!A\x120\xd0\x92\x97\xb7\x81\ -\xbe-\xad@\xd5I\xac\xa2\x0a\x16\xabY\xd7\x97\xc5D\ -*\xd07\xf5\x8d\xc6D[\xa2)\xd1\x92\xd6\x106\xb2\ -\xa43\x84EKX\x9c\xdb\x90\xc10\x81Ek\xba2\ -\xd6\xe0t\xb8\x8e\x162Y{\xd2\xae[\xf0\xe1\x99\x16\ -\x8e6F\x13m2n\x01\xb6\x1e\xa3\x15\xd4\x9d\xe0\xe9\ -\xb7\xdb.\x10\xe1\xe9!\xef\x10'\xf4h\x1b2\x96,\ -\x8a\x94$\xc6\xa2\xa0\x1e\xb4\x14\xe2\x1f\xca\x1e\xe9~*\ -\x0a\x8dT[\xa2\x06\xac\x15+\x08.\xd1\x15c#o\ -\xb3\xfd\x88\xa3\xe8\xea\xd8\xa8\xfd\xd3\x17\xca\xcb\x7f\xe1\xa6\ -|\xce\x83\xf4\x1c?#]\x0ca\xb5\x11\xc1{\x12/\ -\xeb3g\xbd\x8f\x94\x0d\xdcpBKJ!\xc9Sh\ -\xeb\xc1b\xec\xdb)z\xa6x\xdcP\x92\xe84e\xdb\ -\xe4\xb8\xad\x90\x8a\xbc4\x8e\xc2\xc4)d\xb0\x1c5\x94\ -\xbb\x1bK)\x91U\x22\x98x\x82A\xd2\x1b\x14\x8e\x1c\ -\xa9\xbd\x0e\x8e\xc0\x85W2V\xd13\xe6&\x06z\xe4\ -\xa6\xed\x8d0\x1c\x91?\xac\xc0\x04\xba\x9d\xc1\x87\xc8\xc7\ -\x0c#\x1d\x82\x03FA\xae\xf4\xbae\xa4\xd6\xdc\xe0\xac\ -i&\xab\xe3q!_\x102R\x86k\xe5\x89\x95N\ -\xc5<\x97ba\x81-\xa1%`\x22\xde\x9e\xba\x09*\ -\xceC\xa1FJ\x19\x87\x94-\x0a\xce!\xca\xa3\x8b\x1d\ -Z\xaa\x22;&\x93\xdb\xc1I\xec(\x14\x80k\x07\x9b\ -$\xf6\xe4JF(\xb5\xf3I\xb7\x0cH\xd6\x8eN\xda\ -Uh\xdav4\xad\x1b\xd71i\x1c\x1c\xdf}\x100\ -\xc4\xe8\x08\x0c\x1b\x90\xe1\xdd\xdb\xd0\x01\x99\x08\x8c\xa0\x03\ -\xe9\x81iqi%\xa3\x85\x85zEXzTH\xbc\ -8\xc5V\x1d(>\x8d\x98\xa8\xc1Ve\xd3\x0e\x93v\ -WB\x84\x89\xb1\xf4\xbbegm\x0f\x0a\x09S\x04\x85\ -\xf5\xa8\x88\xb4\x03\x85u\xa8`K\xac\x83\x85H\xa0\xb9\ -\x0b2\xd6X\xca\xf3\xf0\x1d\xb4\xb0\x9e\x0e\xc4y\x17k\ -\x84D\x89\xfe\xda\x08\xa3@!b@\xcb<$\xdf,\ -RO\xb5\xd7\x1f!\xbb\xf7\x84\x98R\x14D\x92P\x1b\ -k\x091\xaby\xd4\x82`\x9c\x88\x12\x1e8\x89\x03\xd4\ -\xcb\xdb\xa0(\x15\x0a\xc2)\xb2\x1a\xe9{\x88\xd2\xa7\x9c\ -\x8eF\x0b\x83\x94>\x92\x08\x97\x22\xdaC]\x01F\x1c\ -\xed\xa8\x82\xba\x8aH\x19\xf4L\xda\x8e8\xebv\xb0J\ -\x86U\xba\xb1\xc9\xb0J76\xe9Vqi\xb7\xc8\xff\ -\xa9\xa4\xfc\xe7\xa1\x13\xd4\xe7\xf4\x8fY\x06\xfd\xe1VX\ -\xf2^<\xc0u+gG\xfa\xc3\xa6\x02\xc4&\x0a\xc4\ -\xceH\x10\x9bk\xd0D\x82&\x0a4\x11\xa0S\xfd\xb1\ ->=\xd5\x1f\xed\xd3\xa9\xfe\xe0\xca\x9c\xd3\x9f\x99\xfc\xcc\ -\xd4g&>S\xed\x99J\xcfTyN\x85g\xb8a\ -\xfd\x05\x1b\xeeW\x7f\x95;u{\x90\x9dN\xdd\xc6\xb2\ -\xc3\xa6\xba\xc3f\xc2\xc3f\xca\xc3\xe6\xd2\xc3f\xda\xe3\ -\x06I\x9e(\xf2H{\xd8D|\x101\xb3S\xf5\x91\ -S\x9b\x8d\x18l\xee\x80\xd1\x83$\xb3\x01\x1a6Q\x1f\ -\x9d\xce\xb4g&=3\xe59'<3\xdd\x89.o\ -\xac;\xd1\x15\x9d\x08O\xeb\xf6N\x95\x87\xcd\xa4\x87\xcd\ -\xb4g&=S\xe5\x99\x08\xcfTw\xa6\xb2s\xaa:\ -v\xd0\xb6O\xff+-\xe9s\x87\xf6\xfb\x8a\xfe\x5c\x17\ -\xdf\xff\x06=GYN\ -\x00\x00\x0bM\ +y=\x2227\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22svg6\x22 />\x0a\ + \x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x08v\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x08L\ +\x00\ +\x00\x1d\xa9x\xda\xedYY\x8f\xdb\xc8\x11~\xf7\xaf \ +8/\x1eD\xa4\xfa>4\xd2,\x12\x18\x8b\x0d\xb0A\ +\x80]{s\xbc\x04\x1c\xb2\xa5\xe1\x0eE\x0aMJ\x9a\ +\xf1\xafO5\xc5S\xa2\xc6c\xac\xb3@\x90\xc8\xb0\xad\ +\xae\xea\xa3\xce\xaf\xaa[\xcb\xef\x9e\xb7\x99w0\xb6L\ +\x8b|\xe5\xe3\x10\xf9\x9e\xc9\xe3\x22I\xf3\xcd\xca\xff\xf4\ +\xf1\xfb@\xf9^YEy\x12eEnV~^\xf8\ +\xdf\xdd\xbf[\x96\x87\xcd;\xcf\xf3\x8eiR=\xae|\ +\xa6|7z4\xe9\xe6\xb1\xea\x86\x87\xd4\x1c\xffT<\ +\xaf|\xe4!\x8f)\xaf!\xa7\xc9\xca\x87\xe5\xe44\xa7\ +?\x19\x9f\xb8\xf9S\x19G;\xb3\x18r\xbc\xf7\xb1P\ +\x86\x90\x98*9\xf3\x08\x228@< \xf4\xb6^R\ +\x82\xb4;\xf8\xbbH\x8a8\x8f\xb6 d\x9a\xef\xf6U\ +\xf9\xaf(\x8f\xb2\x972-=\x12\xc2\x81\xf5\x5c\xd06\ +/\x17\xed!+\xff\xb1\xaav\x8b\xf9\xfcx<\x86-\ +1,\xecf\xee\xf6)wQl\xcayK\x1f\xaco\ +O\xec\xd6\xb7\x84\xb0,\xf666k\xd8\xc2\x84\xb9\xa9\ +\xe6\x1f>~\xe8\x98\x01\x0a\x93*\xe9\xb7\x19\x9d~\xa4\ +\xf5\xb9\x04!4\x1f\x0b\x0b\xa37\xce\xb4\xc9zj&\ +\xd6Z\xcf\x11\x99\x13\x12\xc0\x8c\xa0|\xc9\xab\xe89\xc8\ +\xcb\x9b\xc1\xd28\xeeV\xc6\xd6DUz0q\xb1\xdd\ +\x16yy2\xc7hr\xd2O\xde\xedmV\xcfH\xe2\ +\xb9\xc9\xcc\xd6\xe4U9\x07\x8f\xcd\xfd{\x98\xbf\xdc\x9a\ +*J\xa2*rkO\x9eo)\x98\xd43`\x0e\xc8\ +\xb4\xf8\xe9\xc3\xf7\xa7\x11\x8c\xe3x\xf1\xb7\xc2>5C\ +\xf8\xb8\x09\xd1C\xb1\x87\xc8\xf2\xef;\xf22\x89\x17`\ +\xe7mT\xdd\xa7\xdbhc\x9c-\xfe\x00\xf2-\xe7=\ +c4\xb9z\xd9\x99~\xd3\xd3\xb6\xd6\x9c\x1c6\xa9O\ +\x12oS\xb7h\xfes\x95f\xd9\x9f\xdd!\xbe7\xef\ +\xe4\x9c7\x826j\xcc\x07z,\xe7\xad\x9a\xf5(1\ +\xeb\xb2\xb7\x80\x1ba\xd4j\xbf\x8d\xec\x93\xb1\xad\x5c]\ +\xf4\x97U\x11?\xb9\xd9\x7f\xb4\xb68\xe2\x1f!\x05m\ +\xe5\xb7\xd3\x0a\x9b\x82\xa1W~\xb4\xaf\x8a\x8eh\xcd\xfa\ +\x1f\x90k\x90\xc1\x03\xca\xdf\xc7\x94\xab;\x96\xd5K\x06\ +V( \xeb\xd6Yq\x5c\x1c\xd22}\xc8\x8c\x7f!\ +XZ\xd6\xa2\xad\xfc\xca\xeeM\xe7\x8e\xe5.\xaa\x1e{\ +\xe3\xbac\x1c\x85q\xad\xfc\x9e\x0c\xd4\xbfx \xce\x0c\ +\xfez?z\x1c\xbe\x05\xbc\xfe\x1a`\x12\xf2\x01\xf9D\ +m\xa7~\xf6\x06\x9b4\x92\xae\xc1%\x81\xddgfa\ +\x0e&/\x92\xe4\xae\xacl\xf1d\x167\xa8\xfe4\xc3\ +\xa0F\xa8\x05\xe0\xda\xae\x1alR\xd9(/]\x90\x00\ +\x14\xc5Qf\xde\xa3P\xdd\x9e\xa8YT\x99\xf7'q\ +n;w\x83Ck?5#\xd0\xad26o\xf7k\ +\x86\x9f\xf2\xb4\x82\xa4\xde\x97\xc6\xfe\xec\xa0\xe3\xaf\xf9\xa7\ +\xb2\xb7`\x03\x954\xa4\x88\x11ID\xc7\xe8P3\xd4\ +\x5c\x0b\x8czN\xb3\xef\xc7^\xd8^B\x19\x0a\xc1\xb5\ +\x96|\xa6CF%l\xaanGnn\x16\xbb9\xbd\ +\x9b*\xf3\x5c\xf5V\x80lY\xd4 \x07\xb3!\x13\x8c\ +=\x98\x09C\x17y\x15\xd4\xdf\x17\xb9\xcb\xaa\xec\xae\xa6\ +\x1ck\xa9G\xa42\xfdl\x16\x22\xe4\x5cR\xb2{\xbe\ +\xcb\xd2\xdc\x04'\xe5\xc0\xfe\x84\x9f&\xad\xa3m\x9a\xbd\ +,J\xd0#\x80\x13\xd3\xf5\x9d\xf3\xe4\xe2\xe6\x81\xba?\ +\xf5 (@&\xc8\xbc\x05n}\x9aC\xe9\x19;\x14\ +\x85XPM\xe9@^(4\x80\xb0\x8c\x12\xc2\x98\x16\ +\x03\xc6\x8b\xb3\xad\x12Br\xa9\xfdq\x90:{`.\ +\x85\x7f\xbf\xac\xc0\x12\xf9\x10\x1f\xba\xb2b\x0bg\x07\xa7\ +\x8e?\xe4\xd7\xeb\xdd\x22\xd8\x80\x8d8\x83\x10}]\xb1\ +\xeb\xca\xbc\xa2\xce\x99B\xf7h9\xaf\xc5\xb8\x87\xffA\ +\x9d6`\x1b\xff\x9f\xe0\xc8aN\xfd\xadS\xca\x15\xb8\ +\xc4U\xe8wM\xa8m\x00\xf0\xb3\xc2\xae\xfc\x9bu\xfd\ +iN|(lbl\xcb\x12\xf5g\xc4jt\x82:\ +\xdd\x90\x8b\x87_M\x5cU`4\x08V\x17[\xb8\xc5\ +\x9f\x8d\x05u\xa7\xe8\xfb41S\x8c\x0eu\x9cx\xdd\ +A\x93\xdc\xf21J\x8a\xe3\xca'\xe7\xccc\x9a\x03#\ +h\xd2\x0f+\xae\xae\xcch\xf3\x10#.\xfd\x1e\xae;\ +C\xb5\xeb\xca\xc7\xe2\xe84\x01\x07GY\x97\xe0\xddn\ +\x9f\x8b\x02\x12\x15\xd3\x90\x13\xa4:\x9fv\xec\x18\xfcJ\ +5\x80\x80\x96\xe8B\x92\x18\xb4\xa38\x14\x1a+\xca\xae\ +\x88\x09\xeb\xf95\x1e,\x0f\xae\xa9\xb7\x8d\x9e\xd3-d\ +h\xd2{\xaa?wo-\x14\x94 \x8b^\x0c\xb8y\ +\x83\x09\x9f4r\xfchb@\xc1\x87\x22\xb2\x89\xf3\xc3\ +\x09\x1e\x97\x9b\xdeZ\x1b\x86yW\xdb6C<\xda0\ +\xce\xd8\x97\x0b\x06E\x17\x05c\x86\xbc\x1f\x5c\xff\xf8\x8b\ +\xfb\xe7\x07\xe8%\xff9\xcc\xe2N\x87\x22\xcf!\xee\x0a\ +\x1b\x806\x87\xa8\xda[\xd3\x87\xcayV:@\x19\xd6\ +\xf2\xcdX\x94\x8dFx\xbaZ@Wa\xd3\xe7\xf7P\ +O$\xd5D\xb3\x19H7\xebGB\x87\xd0lq\xcc\ +gD\x86X\x11M\xf1\xed\xb0g\xb1 \xe15\xa4\x18\ +\x80\xdc\xe2F\xd7\x9f1L@HQ\xc5\x90\x14\xbc\xa5\ +;L\x02\xe5\x01\xa1\xf6y2$\xfeZ\xa4\xf9\x98\x0a\ +\xad\x8c\xb1\x19D@\xb5`--\x89 k\xac\x8d^\ +F\x00\xdb\x81\xd4\x05\xda9\xe95\x1bcQ[\xd6D\ +((\x15z\x0c\x84mJQ\x1eb\xaa\xe8\x19L:\ +\x84\x13(\x94\x12i\xca\xcf\x01.\xc0:\x84$\x80U\ +#\x8e\x05\x16\x0f\xa9\x96\x9a\x0b6\xf0\xe0\xd8\x87\x8d\x17\ +%\xd3r\xb4\xba\x9a\xaa\xa4(\xe4\x0a\xd2\x11a=t\ +\xd5\xf9\x86\xcd\x96\x83\xcc\xb8\x1e\x1d4D\x08#@\xee\ +::\xa0\x95\xe0\x1a\x11\xc4g\x18\x83\x1d\xa4\xc2\xcaE\ +\x87@\x9a\x102>\xf2\x22/\xc6\xb6\x17\x08a\xff\x9c\ +y%\x84\xba\xd2\xa2\xa4\xd2\x9a^,s\xad\xb8\x17p\ +\xe9\x84\xa3J\xcc\x02,C\x821b\xda{\x84\xfb\x92\ +F\x8cQ\xea\x1d<\x16R\x0e>\x17@\x0d:\xf2\xe7\ +\x91\xe5_\x95\x1b\xba!\x09\xed\xc9\x7f\xa7\xd8\xfc?'\ +6\x0a\x85\x84b\x84'\xc5\xa6\xfc7\xc9\xad\xbe\xb5\xdc\ +8\xa4\x0c1,'\xe5fW\xe4fSro\xceO\ +\x88l\x1aA\xddy0Y_\x97\xbc\xcb\x1eM*q\ +=\xf4\x07\xcd'\xa5\x9c\xd1\xc9\xe6\xb3n\xc6\x10JX\ +\x14]t_\x00\x00J\x5cl\x7f\x99\xd8\x00V\x94S\ +\x00\xba\x13\xee\x0f\x86\xee\x02#\x88V\x92B\xbeK)\ +\x00M\xe8yn_q[ge\x0a-=!\x14\xf6\ +b\xa1\x84\x86\x10+\xb0&\xd4\x16\xe8#\x98\x00#\x07\ +\xae\xa7\xa0L0/\x83\x0bS\x08Q\xcf\xb9\x00!\x00\ +F\xa4\x0b\x1eh\x179\xb4\x0eZ\x03\x1f\xd8\x88\x01\x1e\ +\xcf\x82\x96\xff\x08\xd7)A\x98R\xa4\xf6\x17\xa0\x8f\x10\ +\xb4?\x80\x03\x15\xd6\x13\xae\xf4\xc9\x87B 0\x0a\xf8\ +\xf0R\xde\xaeZSL\xd4\xa5\x8f\xe7\x9b3\xc2\xf8\xd6\ +\xf1\x96\xbb\xc7o\xb9\x81\xb8X\x14\x8a~\xf5\x0d\xa4)\ +\xb9_q\x03AJ\x93\x0b\xa1]U\xe3\x02\x12\x0a\x0b\ +&/\xb8\xae\xb2\x89P\x0b\x81\x99\xd0W\xc3\x1d\x92\x9e\ +N\xdeI\xdev39\xbb\x9f\xb8\xdd\xd8\xc4\x84\xd15\ +\xe55\xed\xbf\xa0\xf1\x97t>\xd7z\xfa\xc6\xf2?\x1d\ +-\x12\xec\x82'\x83\x05pEA\xcb\x87\xd8k\xc1\xc2\ +\xd07\x0d\x16\xf5{\x04\xcb\xb4\xca\xe7J\xff?V\xce\ +\x0c\x87C\xe6\xdaIq-X\xa0\x8feR\xbd\x1e,\ +\xc1\xb7\xc5\x16\x15\xfc\x0e\xe8rU\xefs\xcd_\x8b\x98\ +\xb3\xd2t\xa5\xc3\x17\xec\x8b\x1d~]J1\x81\x1a\xdb\ +4\x02\xdd0\xe0\xee5\x87c<\x0bT\x88\xb5T\x84\ +\xb375\xf9o\xb8\xeb\x8e\xab\xef\xa5\xa9\x9cy\xdd/\ +4\xa3\xbbm\xfb\xaa\x9e\xda83W\xf2\xa0wI\xdf\ + NG\xebd\x07\x05y!)\xa6o\xbb\x95>\x98\ +\x83\xc9\xbe\xfeV\xea\xa8\xc5z]\x9aj\x81.n\xaa\ +w\xbb(\x85\xfc\xab\xdf\xa3\x9a\xb4\xbdj6\x8c&\xfa\ +\x5c\xf7*\x03\x17N\xaa\x05\xe1\x97\xc1\xec\x9ee\xb0\x0a\ +%\x22\x92]Z\xdd\x02\x93\x01\x06Ph\xa3\xde\xd6\xa8\ +\x8fR\xa31\xe8k\xef\xd9\x97\x16\x97!TR\xc1\xde\ +f\xf1\xda\xc8\xdf\xea\x1d\xa0\xebW\x09\x98\x8b\x11h2\ +g\x14\xae\x0fD\xc3m\xd6\x03\x1bA?,\xb5{\x93\ +\xc6\x081\xf5\x9a\x17./)o\x7f\xcb9\xc3*\xb0\ +\x97q\xbf\xd4\x94+?\x8e\xcf|0\xca\xf9\xc1\xa0\xfb\ +\xda\x7f\xe9\xe0`\xf2\x9d\x00\x1ae$$Q\xd0\xa0\x13\ +\x1e*%A\xe7\xf1\x93\xfb\x86a\xd6?J\x9c?\x7f\ +\x09\xdck|\xed!\x02\x13\xa6\x89n\x7fw\xa8%[\ +\xba\x1f\xb6\xee\xdf\xfd\x1b\xda\x80\xb5 \ +\x00\x00\x06\xc6\ +\x00\ +\x00$\xebx\xda\xddZYo\xe36\x10~\xcf\xafP\ +\xb5/\xbb\xa8EqxS\xb5S\xa0],\xd0\xd7\x1e\ +\xe8\xb3\x221\xb6\xba\xb2dHr\x9c\xf4\xd7w(\xdf\ +\x87\x80\xb4pQ\xd7r\x82\x84\x9c\xe1\xf5\xe9\x9b\x8b\xc9\ +\xf8\xfb\xd7y\x19\xbc\xb8\xa6-\xeaj\x12\x02\xa1a\xe0\ +\xaa\xac\xce\x8bj:\x09\x7f\xfb\xf5Kd\xc2\xa0\xed\xd2\ +*O\xcb\xbar\x93\xb0\xaa\xc3\xef\x1f\x1f\xc6\xdfDQ\ +\xf0c\xe3\xd2\xce\xe5\xc1\xaa\xe8f\xc1O\xd5\xd76K\ +\x17.\xf88\xeb\xbaE\x12\xc7\xab\xd5\x8a\x14\x9bNR\ +7\xd3\xf8S\x10E\x8f\x0f\x0f\xe3\xf6e\xfa\x10\x04\x01\ +\xae[\xb5I\x9eM\xc2\xcd\x80\xc5\xb2){\xc5<\x8b\ +]\xe9\xe6\xae\xea\xda\x18\x08\xc4\xe1^=\xdb\xabg~\ +\xf5\xe2\xc5e\xf5|^Wm?\xb2j?\x1c(7\ +\xf9\xf3N\xdb\xeff\xc5{%\xb0\xd6\xc6\x94\xc5\x8cE\ +\xa8\x11\xb5oU\x97\xbeF\xc7Cq\x8f\x97\x862J\ +i\x8c\xb2\xbd\xe6\xfb\xb4\x92\x16\x01]\xe0\xf7N}\xdb\ +A\xdaz\xd9d\xee\x19\xc79R\xb9.\xfe\xfc\xeb\xe7\ +\x9d0\xa2$\xef\xf2\x83i\xb6x\x1e\xadz\x04r\x95\ +\xce]\xbbH3\xd7\xc6\xdb\xfe~\xfc\xaa\xc8\xbb\xd9$\ +\x14\xa6o\xcd\x5c1\x9du\xbb\xe6K\xe1V?\xd4\xaf\ +\x93\x90\x064\x10\x06\xbf\x08\xf5\x0f\xf4\xd2\x22\x9f\x84x\ +\x1a\xb6V\xdd3e#\xdd\xac\x92\xec$\x94XFx\ +\xf0\x91\x09*\xa5P\xa3\x80Q0\x11\xe5\x11\xc0\xa7~\ +\xc8\xf6xI^g~\xbf8}6ss|\x9b\x19\ +\xf1\xb0=\xa2\xd28w\xcf\xadW^\xaf\xef[\x22\x0c\ +\xe2^\xb4\x1b\xef\x07\xe7~\xf3{\xc5\xa7\xb4]\x1f8\ +\x08\x16\xe9\x14\xc9Q\xd6\xcd$\xfc\xf0\xdc?\x1b\xc1S\ +\xdd\xe4\xae\xd9\x8aT\xff\x1c\x89j\x04\xb0\xe8\xde\xd6\xe6\ +\xb0\x99{{L?\xebNN/\xcb\xdbY\x9a\xd7\xab\ +I\xc8N\x85\x7f\xd6\xf5\x1cQ'\xda(!\x0d?\x15\ +g\xf8\x0a\x04\x10\xa9\xad\xa5\xfaL\xe8\xf7#\x09\xe7\x16\ +@\x9e\x0a\x11\xc9\xa57\x98hY\x15\x1d\x92r\xf1z\ +6|\xd94^\xa1L\xdf\x1c\x1e{\xca\x85\x80\x8dN\ +;\xabW\xd3\xc6\xa3\xf7\x9c\x96;\xf8\x06gZ\x15\x15\ +\x9e.\xda0\x0a\x8c\x84\x01\x8d-\xcb\x8029\xa0\x82\ +\x07Vv@\x86\xe7ez@6O_\x8by\xf1\xa7\ +\xc3=\xc3\x96\x16s\xd7\xa5y\xda\xa5{2l{t\ +O)TA{O~\xfe\xfce\xdd\xc2v\x96%\xbf\ +\xd7\xcd\xd7M\x13\x1f\xaf\x90>\xd5K\xdcu\xf8\xb8\xeb\ +\x1e\xe7Y\x82\x16\x8a\x0c},\xe6\xf8~\xbdq\x7f\x8b\ +\x169\x8e\xf7\x82#\xe5\xeem\xe1\xf6\x93\xae\xa7m\xdc\ +\xda\xd4/\xfa\xbb<\x9b\x17~P\xfcKW\x94\xe5O\ +~\x91\xcd\xb1\x0e&-\xba\xd2\xed;\xc7\xf1f\xf7\x9b\ +\xb3\xc5\x07\x87\x1b\xc7\xdb\xa3\xf7\xad\xe9\x09\x88e\xfa\xe4\ +\xcaI\xf8c\xbaH\x83\xb3\x977m\xea\xe5b^\xe7\ +\xb8\xd1\x9e+\xe1\x1e\xcf\xbe\xbd\x1d\xd05i\xd5\xfa\xc3\ +O\xc2\xfe\xd7\x12c\xc1G:\x8a\x80RA\xb8b\xec\ +\xd3\x16\xf5\xe9\xf6\x18~\x8eC\xe2\x1dM\x82 6\xc5\ +\xebGJ\x8cR\xa0\xb8\xe4#\xea?\xfb&#Jj\ +m\xb4\x1d\x01\xd7\x044\xe3\x1b\x7f\xd2s\xb8{+q\ +\xc7\xcf\x88^\xb2\xb1\xf6\xef\xda\xae\xa9\xbf\xba\xe4\x83\xc8\ +\xfd'\xdc\xbf\xf5\xa2\xc9\xca\x83\xf7\xd3xC\x97\xe1\xbe\ +\xa375J\x0d\xe1 \xf5a?\xd2\x95\x09\x22\x85\xb4\ +\xc6\x1c\xf4\xfbs-\xd2n\xc69W\x07\xdd\x97\xf6\xe4\ +\x1b\xd1\xc6\x7f$\xb0n6\xcb\xd2%\xee\xc5Uu\x9e\ +\xef6m\xfbg\xd3\x5c\x1b[\x02\x8b\xd7mGYT\ +\x0e_W\xf2\xb4\xec\xba\xc3\xbe?\xea\xa2J\x90K\xae\ +\xd9\xf6\xee\x16; \xd4{!\x00N\x80\xdbS\x08\x10\ +}j\xa8\xa0l\x00\x82\x88\xdf\x15\x08L!\x9dA\x9d\ +\x80 8\xb1\xc2\x22\x1b\x87@\xb8/&p\xeb\xad\x8f\ +\x9f\x82@\x89\xa0\x82\x0b>\x04\x82\xbe+\x10\x84&\x9a\ +\x9a3\x8f`\x10\x1a\xab\xe5\xa09\xc8\xfb\x02A\xa2K\ +fp\x02\x02\x08\xc2\xa4\xa20\xec\x13\xee\x0b\x05.\x09\ +H\x90'(HB\xadB\x8a\x98A\xa7\xc0\xee\xcb5\ +bLV\xe6\xcc+\x10\x83D\x10\x1a\x86P\xb0\xf7\x15\ +$\x11\x04\xabN\xe3\x03\x00\x11\xc2\x02\x1b\xa4\x02\xdc\x1b\ +\x138\xb3\xa7\xf6\xc0\x01\xa9`\xc4\x91\xcb<\x06!\xa2\ +\xf7\xe5\x16\x18\xc1\xbc\xf4\x0c\x06d\x08f\xbd\xc3T\xb8\ +3\x8b\xc0\x04\xd1\x08v\x1a&}a\x0bL\xb3a\x14\ +\xfe'y\xa3\xdf\xf1\xc1\x19v\x15v]\xe1\xb4]\xdd\ +DXk\xbf\xa4\xdd\xb2\xc1\xfd\xd3\x0b\xa7\x15L\x1e\x1a\ +\xbf/T\x03E\xa84ZZ9B[\xc2\xac[I\ +\x16h\xc2\x14\xa5J\xca\x11\x96\xfd\xda\x9a\xf7\xa0\xf3~\ +8\xfe>\x18}\xa3\xc4\xba\xbbK\xc4\xb6/O\xdbY\ +\xda4\xe9[R\xd5\x95\xfb\xb7a\x93\xa7\xb01_\x1f\ +\x1a\x0c\xba\x08\x1bhb\xb1\xb8\x0c8\xa1\x0c\xfd.\x1f\ +E\x98\x98\x09j\xaf\x0a\x9b_\x8fY\xae\x99\xbe%:\ +\xe9S\x5c\xc0\xfb!\x8a;\x1d\xf5\xf1\x89\x09\x90\x01P\ +\xacX\xb4\x11b\x14q\x82\x19\x1c\x5c\x19\x18+\x94\x05\ +\xa5\xd5-\x01c\xcf\xed\x8c#G\xa4\xf4\xc0`\x0e\x87\ +\x95|\x00}%\xc7\x8d\x85\x11\x10k\xb5\xbd:.\xfe\ +\xc2\x00\xf8\x0d\xe1\xa2\xe0\x82!I\xad\xad\xf6\x86\xc4\x0d\ +\xd1J\xc8 B|\x941\xdc\x8e\x14a\x8c\x9ak\x1b\ +\x12\xb2\xd2\xb2\x9b\xe2\x8b\xe2g\xb8\xa0\x13\x06i,\x1b\ +\xad\xcb?t\xccA\x84\xb9\x9dF\xa3\xe30\x8a\x80(\ +\xad\xafN\x18.\x05\x03sK\xc0\x9c\x19\x12\xc6x-\ +\xac\x06\x1f\xb0\xb0\xf8\xe3T\xeb\xc0\xdfN3*\x90C\ +@8F\xb3k\xe3\x02\x80a\xf0\x96\xe2\xb8>\xb3#\ +\xc1\x884\xe8_F\xfd\xbd\x11\xd5\x5c\x04\x91%^S\ +2\xefw\xb9T\xd7\xf6\xbb\xdaR\x81\xab\xdd\x12]\xf4\ +Y\xa0\x16\xfe\xf5\xf9\x0b\x82\xb5\x7f\x91T\x8b\x00c\x94\ +\x95\xbc\xb7\x22\xf4\x06T]\xdd\xc1p\xaa4h{K\ +\xc0\x9cGjt\xb2\x80Et\xefx)\x014|\xb4\ +#\x00\xa0F\xa3\xdf\x15\xe6\xea\xb0h\xc1\xb1&\xa3\xb7\ +dGG\xb9\xed\xda\xefb\xb5\x80\x01\x9a\xf5\x89\x9d\xbf\ +{4:0\xc42\xa9\xf4\x88\x11\xd0\x92_\x1b\x15L\ +\xb5%\xa3\xfc\xa6\xbcKt\x16\x8f\xb0\x944\x18\x8f\x94\ +\x8fGX]\x0b\xcdT\x10!\xd5Aa|\x1aE\x98\ +\x02#T\xd7\x86\x86S,\xd0,\xbb1h\x8en\xd8\ +\xd7\xe0X\x22A\xaf\x835:\x19\xcc\xe8\xd0\xfbz/\ +\xac\x14\x02\x86\xe9\x0c\x03q\xf3\xe0\xbc\xf7\xd6\xc9bV\ +\x7f\x94\xab\xf6E6\xc5\x9aQJ*\x87\x8b\xec\xab]\ +\xc9S\x9a\x8b4\xfd\xaf\xef\x9d,\xa1 /\xdcFc\ +\xc5\xa3\x94\x1d\x86A\xfd?`\xb8B\x0d\xc4/\x84\x1c\ +j,e\xc2')\xda\xc7\xe5 \x0b(\xa6pT\x03\ +\xfa\x10\x8a\xe9\x0az\x15\xe1o\x1f\x00\x98w*\x12\xb0\ +\xae>\xed\xf8\xc7\x86t\x091\xffO#\x06\x0dV\x8a\ +\xeb@7\x8e\xa7\xeb?\x84\xe3\x8f\xb1\xff{\xfd\xe3\xc3\ +__|\xbf\xa1\ +\x00\x00\x0a\xb1\ +\x00\ +\x000Hx\xda\xedZk\x8f\xdb\xc6\x15\xfd\xee_\xc1\ +*_l\x943\x9a\xf7C^9@\x13\x04\xc8\xd76\ +E?\x16\xb4D\xef\xaa\x96\xc8\x85\xc4\xf5\xda\xfe\xf59\ +w\xf8\x90DJ\xb1\x93\xb4@\xbd\xb6\x16\xb6\x86\xf3\xbc\ +s\xe6\xcc\xb9\xf7r\xf7\xe6\xfb\xf7\xbbm\xf6\xae\xdc\x1f\ +6u\xb5\x9cI.fYY\xad\xea\xf5\xa6\xba]\xce\ +\xfe\xf9\xcbO,\xcc\xb2CST\xebb[W\xe5r\ +V\xd5\xb3\xef_=\xbb\xf9\x0bc\xd9\x0f\xfb\xb2h\xca\ +u\xf6\xb8i\xee\xb2\x9f\xab\xb7\x87Uq_f\xcf\xef\ +\x9a\xe6~1\x9f?>>\xf2MW\xc9\xeb\xfd\xed\xfc\ +E\xc6\xd8\xabg\xcfn\x0e\xefn\x9feY\x86u\xab\ +\xc3b\xbdZ\xce\xba\x01\xf7\x0f\xfbm\xea\xb8^\xcd\xcb\ +m\xb9+\xab\xe60\x97\x5c\xceg\xc7\xee\xabc\xf7\x15\ +\xad\xbeyW\xae\xea\xdd\xae\xae\x0eidu\xf8\xee\xa4\ +\xf3~\xfdf\xe8M\xd6<\xea\xd4I\xc6\x18\xe7B\xcd\ +\x95b\xe8\xc1\x0e\x1f\xaa\xa6x\xcf\xce\x87\xc2\xc6KC\ +\x95\x10b\x8e\xb6c\xcf\xcf\xeb\xb58\x00\xd0{\xfc\x1b\ +\xba\xf7\x15\xfcP?\xecW\xe5\x1b\x8c+yU6\xf3\ +\x1f\x7f\xf9qhd\x82\xaf\x9b\xf5\xc94=\x9eg\xab\ +\x9e\x81\x5c\x15\xbb\xf2p_\xac\xca\xc3\xbc\xafO\xe3\x1f\ +7\xeb\xe6n93!=\xdd\x95\x9b\xdb\xbbfx|\ +\xb7)\x1f\xffV\xbf_\xceD&2\x13\xb8\xa0\x8f<\ +\x96R\xa7\xcdz9\xc3\xa6T;\xe2H\x98\xae\xb5[\ +l1\xb4\x08\x1e\x15\xd7\xd9se\x84\xb5\xc6\xe5\x99\x12\ +20\xa1\x99\x94/\xd2\x90~\x97\x8bu\xbd\x22\xb3\x97\ +\xb3\xdb\xfdf\xfd\xef\xcd\xaa\xae8\xa1\xf7\x0a\x9dn\xd6\ +\xe5\x9b\x03un\xd7\xa7'3\xcb\xe6\xa9i\x18O\x83\ +\xd7\xb4\x87c\xc7\xd7\xc5\xa1\xddw\x96\xdd\x17\xb7\xe0\xc8\ +\xb6\xde/g\xdf\xbdI\x9f\xae\xe1u\xbd_\x97\xfb\xbe\ +\xc9\xa5\xcfYS\x0d\x1c7\xcd\x87\xf6Vts\xf7\xdb\ +\xa4Y\x87vq\xb9\xfdpW\xac\xeb\xc7\xe5L\x8d\x1b\ +?\xd6\xf5\x8ef\xb5FE\x17\xc2\xb8y\x85\x93`\xd2\ +X.\xac\xb4r\xd2J\x06I\xc9ut\xde\x8c\x1b\x01\ +\xe5\x03]\x1c\xf6Pm\x1a\x90\xf3\xfe\xfdd\xf8\xc3~\ +O\x1d\xb6\xc5\x87\x12\xfbN_\xfd\x1a\x87\xbb\xfa\x91\xce\ +`9{Sl\x07\x00\xafN\xf5\xb8\xa9\xb0?\xd6Q\ +K\x86\xa9\xad]\x8f\x9enR({\xa5\x0b\xb6\xec\xe2\ +\x956lX\xf9+m\xbb\xe2\xfdf\xb7\xf9X\xc2f\ +\xd9\x13cW6\xc5\xbah\x8a#\x1d\xfa\x1a\x9fH\x85\ +.\xb8\xf8\x8b\xbf\xff\xf8S\xfb\x84\xe7\xd5j\xf1\xafz\ +\xff\xb6{\xc4\x87:\x14\xaf\xeb\x07X={5T\xdf\ +\xacW\x0b\x5c\xd5]\xd1\xbc\xda\xecp\xc2t\xcb\xff\x8a\ +\xaby3?6\x9cun>\xdc\x97\xc7I\xdbi\xf7\ +e{\xe7/\x0a\xdfz\xb5\xdb\xd0\xa0\xf9?\x9a\xcdv\ +\xfb3-\xd2m\xebd\xd2M\xb3-\x8f\x957\xf3\xce\ +\xfano\xf3\x93\xcd\xdd\xcc\xfb\xad\xa7\xa7\xdb\x11\x88\xdb\ +\xe2u\xb9]\xce~(\xee\x8blrx\xb7\xfb\xfa\xe1\ +~W\xaf\xcb\x8e%\xb3#\x9eg\xaci\xf6Eu\xa0\ +\xcd/g\xa9\xb8\x85Sx.r&\x850\x5c;\xa5\ +^\xf4\xa8\xdf\xf6\xdb\xa09n\x83\xd7\xb3\xbe\xe2\xe2\x1c\ +,\xe0\x0aH\xa1!\x1e\xcc(\x1eL\x08\xe1\xc50\xe4\ +\xd0|\xd8\xc2\xb4C\xb3\xaf\xdf\x96\x8b\xefb\xfa\xbcl\ +\x1fYw5\x17r8\xbc\x9br\xbb\xdd\xdc\x1fNN\ +c\x0f^\x19\x1e\x83w*\xccN\xaaAE\xcb\xa5\x91\ +\x22j\x7fR\x9f\xee\x9d\x90\x8aK\x1b\xcf\xea\xd1?B\ +(\x83\xd3\xea\xb4\x9e\xf6x_4wFjwR\xdd\ +\x99=\x18\xf8\xf2\x0d\xcey0\x9f\x1e\xd8y\x1b\xdb?\ +l\xcbE\xf9\xae\xac\xea\xf5\xfa\xe5\xe5\xed\xa6+\xb8\xb0\ +\xfd\xe3vS\x95\xff\xa97\xd5\x02'X\xf5c\x18\x88\ +U\xee\xb7\xb8-\xcd\xc2\xf4u\xeb\x02\x22\xb5\xdf\x17\x1f\ +\x16\x15\xbc\xfb\x14\xbd\x13\x96]\xc1\xcf\x04\xe9\x80\xd4\x08\ +@\xc3\x9d\x8cVX3\x01\xd0\x08.\x95\xd7#\x00\xa9\ +Vzc\xf4\x15\x00\x99|\xb2\x10Znb\xd4B\xd8\ +\x09\x07\x9d\x83\xa4\x8a)\x84\x10\x7fc\x83\x1bA\xa8#\ +wV*\xe5\xaeA\xf8tY\xe8\xb8\xf6\xce\x06\x1fG\ +\x10:n\xbd\xf2Q\xca)\x0b\x15\xb7R\x8fY\xe8\xb9\ +3N\xf8\xeb,TO\x98\x85\xdeXe\xce\xd8\xd3\xb2\ +0*\x04n\xd1N T\x1e\xa8\x9b8\x82PY\x0e\ +\x95\x0e\xee*\x0b\xc5S\x80\x90vs\xb2\x8d!\x10\x85\ +\xb3$\xe7\x8dhi\xb5:\x05`\x08\xbe\xea\xaa*W\ +M\xbdg\x08\xc3\xde\x15\xcd\xc3\x1e\xdb\x17\x17\xa1\xf2\xa7\ +\xa4\xa5\x10&\xc3\xb5wA\x89hr\xf8\xc4\x08\xbd\x0c\ +2\x93\x1aA\xa2B\x98\x98\xb3\xc8\x8d\x17\x17\x08:\xc5\ +\xf4\xb3A4\xa7 b\x03\xe7\x18\x0e\xc8&0\xbf \ +d\xf5\x04Y\x01\xd2*K\xc0\x02P\xc4\xd5\x8a\x80u\ +QK\x15sx|\x0fu\xf9\x06\xec\xa7\x81\xb5c`\ +u\xe0Z8\xadU\x8b\xac\xf3^f\x8cr\x17-\xad\ +\x95\x04\xadu\xd2}\x83\xf6\xd3\xd0\xfa1\xb4\x90_\x85\ +8J\x82\xa0BE\x1e\x11l\x93Bh\x1f\xb4\xf19\ +\xe4A\x85\xf8E\x03{3\xbf\xbd\x9c6\x04\xff\xdbi\ +\x03\x02wD\xf5\xce\xe8< }\x88\xc1\x98\x17\xb3+\ +g\xf5\xfb\x8f\x22\xa8\x89.+\xc5q\x10Q\x85<\xa5\ +\x07VD\x9bid\x09FY\x9bk\x88\x87\xd2\x99\xe4\ +A\xc7\x18d\x0e?+\x8c\xc9<\x12\x86h\xac\xcf\x19\ +\x06x'\xaf\x9cTB\xe8\xfa1\x05A?\xe7\xc7\xa4\ +?\xef\x98\xbe(o\x18T\xfc\x1c\xd0\x99G\xdafD\ +\x0c\xa0\xbf\x89\x22>!P\xff\x00fZ^\x92\x0c\x87\ +t\x8d\xfc\x9c\x92tGT\x86\xecC+$\xae\xb9\xe7\ +\x11\x92\x911d\xc4\xc29\x19\xc0T\xe1\xce\x92\x8f\xaf\ +\x11C\xfd9\xbc\x93\x5c\xea(4.\xb3\x86&\x0b\xfd\ +\xe4/\xf3\x9f\xbd\xcez\x12(H\x0b\x87\x15\x83&f\ +*z\xebl2\x8a\x0d\xbc5\x11\xcc\x0cJ\x99l\x95\ +1\x01\xf7\xa6\x82\xf7PU\xad\xbd\xcf\x04(j]\xae\ +8\xf8\xea\x10XPL\xecR\xb0\x01\xe1\xd7\xd9\x162\ +l\x85A\x0a\x082[%\xecWN\xe6I\x0c\xa1\x11\ +\xda\x02\xea(\xdb\x18\x22\xc4\x989b0\x5cln\xb8\ +0A\x13\x82QQD\xe1\xb8\xf0\xea+G\xd0\xe8\x0b\ +\x92\xea\xa3\x0e\x9e\x88\xab!\x9d6\x1a\xb0\x12\x91\xb0\xd2\ +D:\xa3\x82\xfd\xe6\xda\x7f\x1bS{!\x1b\xa3W\xa9\ +*\xb12\xc0?\x01S\xe6\xb8\x91\xc6\xc3\xa9\x03U'\ +\xe2W\xee\xdb\xcd4\x1dHd\x93IA%.1\x8a\ +\xf0\xed\x01\xc1&\xbd\x1bP\x1c.\x0bI-I\xabv\ +\x019\x03\xf7&\xa8\xaf\x1c\xc4IP\x89\x1b\xac\x90\xeb\ +'\xe6I\xc4\x90\xf8?\xa3\xac5F\x1b \x88V\x04\ +\x93\x19\x8e\xa4K\x07\x93\xe3\x9a#\xa6\xff\xe6\xeb?\x81\ +\xb2\xfd\x1c_\x8f\xa8\xd3D\x8f\xc4\x0dn\x06\xf7=\x03\ +a\xa54\xc8\xdc(.\x05T\x92z$\xdc\xa5Cp\ +\x0f\x86\xfb\xaf\x9b\xbb\xf6\xd2\xfb\x80\xe8\xa2$\xea\x1a\xc4\ +I\xc1G\xc4\xa5J9g\x15\xf2`\x19\x82{\xfaT\ +\xfd\x93\x9e\xc8\xb3\x89\x7f7\x9c\xd2ve\xdb\xf7W\xd2\ +j\x9b\x11U\xad\x0d\xc6\xc1\x13\x05\xeb\x02\x85L\xda\x18\ +%\x0c\x02\xd1\x18\xc5\x17\x9c\xcb_}\xe5\xe2\xc3\xf8\xd7\ +\xae\xbf\xf5\xa6\xfeS\xbf\x92\xbd\xf0\xf6fW4\xfb\xcd\ +\xfb\xe7\x021\x7f4\x11\xe1\xa7\xa0\x9f\xe1\x09\xe4v\xd6\ +\x04\xa1rC>\xcc\x00\xfe\xeb\xeft\xba\xf3T\x13\xdd\ +q\x1c\xf9\x84S\x94\x1fD\xc9\x8dA\x8a\xb0\xa2\xac\x01\ +7D\x90\xe4\xc0/bI\xa8\x8f\xe6\x11\xea\xc4\xadA\ +\x0a\xc1$\x9c\x82\xa5?\x83\xd19\x0b\x5cK\x8c\xa1_\ +V\xe6\xc8F\x8c\xa5b\xa0bT]\x11\x13g\x225\ +\x06JX\x84O\xad\x96\xca}\xf36\xc3\x9cR\x0cs\ +*\xb2CRWIY\x0fVFb\x8e\xf8;\xb4%\ +$;\x12\x06:r\xe3.\xd2\xb7\xa3\x15\xa8:KU\ +T\xc1R5\xeb\xfa\xb2\x94\x14E\xfa\xa6\xbe\xc9\x98d\ +K2%Y\xd2\x1a\xc2N,\xe9\x0ca\xc9\x12\x96\xe6\ +\xb6d0L`\xc9\x9a\xae\x8c5\x04\x1d\xac\xa7\x85,\ +oO\xd9w\x0b\x1e\x9fi\xe1dc2\xd1e\xa7-\ +\xc06`\xb4\x86\x92\x13<\xfdv\xdb\x05\x12<=\xe4\ +\x1d\xe2\x84\x1emC\xa5\x92C\x91\x12\xbeT\x94\xd4\x83\ +\x96B\x80C\x99 ]KM\xb1\x8fnK\xd4\x80\xb5\ +R\x05\xc1%\xbbbj\x14m\xce\x9ep\x94]\x1d;\ +i\xff\xf8\x87$\xe5\xbfpG\xae;\x8b\x9e\xdeS\xb1\ +b\x88\x96\xad\x8c!\x90\x5c\xb9\xc0\xbd\x0b!\xb15\x0a\ ++\x08(\xa5\xa4\x22\xaf`\x5c\x00\x81\xb1e\xaf\xe9\x99\ +\xc2lK\x09\x9f7\x944\x93\x7fvRir\xc68\ +\x05\x9b\xa6P\xd1\x09\xd4P\x0an\x1d\xe58N\xcbh\ +\xd3\xe1EE\xaf@\x04\x92\x9e\xf6&x\xc2\x15\x1e\xc8\ +:M\xcf\x98\x9b\xc8\x17\x90g\xb6\x97\xc1\x0a\x04\xf4\xb0\ +\x02\x13\x98v\x86\x10\x13\x159Fz\xc4\x00\x8c\x02X\ +\x15LKFc\x84\xc51\xd3L\xce\xa4\x93B\x1a \ +Ub\x8b0:\x10!\xbdN9+\xc5\xb9\x12[B\ +K\xc4D\xa2=p\x1bu\x9a\x87\x22\x8a\x9c\x12\x09\xa5\ +Z\x14\xbcG\x18Gw:\xb6,E\xa6K&\xb7\x83\ +\xb3\xd4Qj\x00\xd7\x0e\xb6Y\xea)\xb4JP\x1a\x1f\ +\xb2n\x19\xf0\xab\x1d\x9d\xb5\xab\xd0\xb4\xedhZ7\xad\ +c\xf348\xbd\xc2 `\x88\xcc\x09\x186 #\xba\ +\x97\x98\x032\x09\x18I\x07\xd2\x03\xd3\xe2\xd2\xaaE\x0b\ +\x0b\xf5J\xb0\xf4\xa8\x90n\x09\x0a\xa1:PB\x9e0\ +\xd1\x83\xad\xda\xe5\x1d&\xed\xae\xa4\x8c#c\xe9\xb7\x89\ +\x9d\xb5=(\xa4I\x09\x14\xd6\xa3\x22\xf3\x0e\x14\xd6\xa1\ +\x82-\xb1\x0e\x16\x22\x81\x11>\xaaT\xe3(}\xc3w\ +4\xd2\x05:\x10\x1f|\xaa\x91\x0a%\xfa\xd3\x1e\x8c\x02\ +\x85\x88\x01-\xf3\x90M\xb3D=\xdd\xde|\xc4\xe4!\ +\x10bZS\xacH\x1am\x9d#\xc4\x9c\x11I\x06\xa2\ +\xf52\xa9w\x14\xa4\x0b\x10\xae\xe0\xa2\xa64'J\xaf\ +\xc9j\xe4\xe31\xa9\x9e\xf6&\x19--r\xf4D\x22\ +\x5c\x8ad\x0fu\x05\x18i\xb4\xa7\x0a\xea*\x13e\xd0\ +3k;\xe2\xac\xdb\xc1:\x1bV\xe9\xc6f\xc3*\xdd\ +\xd8\xac[\xc5\xe7\xdd\x22\xff\x87j\xf2\xbb\xc3$\xe8\xce\ +\xd9_\x92\x0c\xca#\x9ct\xe4\xb2D\x84\xb3\xd6\xde\x9d\ +(\x0f\x1bK\x0f\x1bi\x0f\xbb >l\xaa>#\xf1\ +\x19i\xcfHz\xce\x95\xc7\x85\xfc\x5cyL\xc8\xc7\xca\ +\x83\xcbrIy&\xc23\xd1\x9d\x89\xec\x8cUg,\ +:c\xcd9\x97\x9c\xe1n\xf5Wk\xb8Y\xfd%\xee\ +t\xed(8\x9d\xae\x9d\x0a\x0e\x1b+\x0e\x9bH\x0e\x9b\ +h\x0e\x9b\x8a\x0e\x9b\xa8\x8e\x1f\xc4x\xa4\xc5'\xaa\xc3\ +F\xb2\x83\xe8\x98\x9d\xeb\x8e\x1a\xdbl\xe5`s\x07\x8c\ +\x19\xc4\x98\x0d\xd0\xb0\x91\xee\x98|\xa2:\x13\xd1\x99h\ +\xce%\xc9\x99(Nrv\xa7\x8a\x93\x9c\xd0\x99\xe4\xb4\ +\x0e\xef\x5cs\xd8Dt\xd8Du&\xa23\xd6\x9c\x91\ +\xe4\x8c\x15g,8\xe7z\xe3\x06U\xfb\xf8\xbf\x91\x91\ +.OH_7\xf47\xb0\xaf\x9e\xfd\x0a,nNV\ +\ +\x00\x00\x0b\x05\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04V\ +ature=\x220\x22\x0a \ + style=\x22fill:non\ +e\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x04Q\ \x00\ -\x00+\xa6x\xda\xedZ\xdbn\xe36\x10}_`\xff\ -AU^\x12tE\x91\xd4\xc5\x92je\x816X`\ -_\xdb-\xfa\xcc\x88\xb4\xad\x8d$\x1a\x14\x1d\xc7\xfb\xf5\ -;\x94us\xe2\x14i\x03\x08\x01\x22\x01A\xcc3C\ -rxf\xc8c\x0a^~~(\x0b\xeb^\xa8:\x97\ -Uj\x13\x84mKT\x99\xe4y\xb5N\xed\xbf\xbf}\ -q\x22\xdb\xaa5\xab8+d%R\xbb\x92\xf6\xe7\xeb\ -\x8f\x1f\x96\xbf8\x8e\xf5\x87\x12L\x0bn\xeds\xbd\xb1\ -\xbeVwu\xc6\xb6\xc2\xba\xdch\xbdM\x5cw\xbf\xdf\ -\xa3\xbc\x05\x91Tk\xf7\xcar\x1c\xe8\x0a\x9d\xeb\xfb\xf5\ -\xc7\x0f\x96e\xc1\xdcU\x9d\xf0,\xb5\xdb>\xdb\x9d*\ -\x1a_\x9e\xb9\xa2\x10\xa5\xa8t\xed\x12D\x5c{\xe4\x9f\ -\x0d\xfe\x99\x89 \xbf\x17\x99,KY\xd5M\xd7\xaa\xbe\ -\x18{+\xbe\xea\xddMH{\xaf\xf1\x22q\x1c\xbb\x98\ -\xba\x94:\xe0\xe1\xd4\x87J\xb3\x07\xe7Q_\x88\xf3\x5c\ -_\x8a1v\xc16r}\xa1[R\x03\xb3[\xf8\xeb\ -\xfd;\x00\xd5r\xa72\xb1\x82\x8e\x02UB\xbb7\xdf\ -nz\xa3\x83\x11\xd7|\x08\x8cb\x8a\x02\xeb\x92\xe2\x10\x8b\x8c\xac\ -\xe2\xd5'\x8bb\x8a\x1d\xec;8\xba\xb2\xafM\xbfe\ -)4\xe3L\xb3f\x90c\xc0\x1d\x14\x1d]\xc0\x09\xf2\ -\x98\xfcy\xf3\xa5m\x02\x90e\xc9?R\xddumx\ -\x8c\x0b\xbb\x95;X\x8e}=\xe0K\x9e%\xc0|\xc9\ -\xf4u^\xb2\xb50Y\xfb\x15\x88^\xba\x83\xe1\xd4[\ -\x1f\xb6b4\xeeqd%\x8eI<[\xce<+s\ -\xd3\xcb\xfdK\xe7E\xf1\xd5Lc[\xee\xe3as]\ -\x88\x11\xbat\xdb5tkt\xc7\x8b\x5c\xba\x1d\x09\xc7\ -&\x17\xabz\xc4\x90i\x86\xdd\x1c\xcb>7&1\xdc\ -\xe4\xb0u\xddB$\x99,\xa4J\xed\x8bU\xf3\xd8\xad\ -\xe5V*.Tg\x0b\x9b\xe7\xd4&\xa1\xc0`UP\ -\x1c\x1d.o\xbf\x8bLkY\x08\xc5*C\x05\xc1\x9d\ -i\xad\xa0\xb2\xce\x1av9\x17g-}\xbd\x98 \xfb\ -\xc9\xce\x9b\xeb\x0d\xe3r\x9f\xda\xf4\x89u\x9fW`q\ -\xba\xc2\x8e\xfc\xe89\x97\xbe\xd61\x19|\x80\xca\x9e3\ -\xbfC\xeb\x8d\xdc\x9b\x05\xa5\xf6\x8a\x15\xb5x2\xe0\x0f\ -)K\x88\x05\xf9A\xe4\xc1\xf3\xc4\x9e\xc1\xfeq\x08E\ -q\xec\x07\x1eyj\x86e\xc6!\xa2a\xe4\xf9\xe4\xb9\ -ha\x88\xc5\xb3\xab\x85\x01h\xf0\x9c\xb1d\x0fy\x99\ -\xff\x10|\x94\xb9a\xee\x9dRp\xf0:\x05;\x08\xd5\ -\x9e\x0c]\x15\xadG\xa4\xacc\xaf\xcf\x84\x86\xd4\xd5f\ -\xa7\xa4v\xf3\xb1\x00a\xb8$(&\x01\x0dH\xb7\x8d\ -\xcd\x1e\x85\xe2\xe8K^\x1d\x9aC(\xc6a\xcf\x8fe\ -\x19,Fa\xec\xc7\xc4\x1f\xd0\x87\x06%$\x0a\xfd\x91\ -o\x97.\x8a\x07\xac\xcd\xf2\x182\xc1\x9a\x89#B\x07\ -\xb0\xd6\x87\x02j\xad-\xaa\x84\xfc\xb6\x82m\x99\x5c\xc4\ -\xcd\xd34\x9c\xc1Vk%\xefDR\x81\x04\xb6\x9f\x8f\ -\xd5\x94xh\xb1\x88\x03\xba\x08\xc3\x0e/\xf2J\x00\x8d\ -\x89\x92\xbb\x8a\x8f\xc1\xef2\xafNQ8\x10\x84* \ -\x11:\xf1;\x8c3\xa8csh\x9eL6D\xb2e\ -9\xa4\xa6\xd9|I\xc9\xd4\x1d\x9c\xa3\xd6\xd1\xc921\ -\x0fG\xcak\xa8\x0e(\xa2\x86\xeb\xe85T;\xdeL\ -\xf6K\xc8\x8e\x02\xe4\xe1\x00G\xfe\xeb\xc8v\xc2\x99\xee\ -\x17\x1d#$B^\x1c\x0dg\xee\xff\xa4{1\xd3\xfd\ -\x22\xba\x03\x82\x00\x0c\xbcW\xd2\x1d\xbc\x17\xba\x97\xee\xfa\ -Tj\xff]Z?y\x1e\xf2\x82 \xf6\xbc+\xfb\x91\ -6;\xf1\x9b\x91]g\x16\xde)\x85w\xa6{b\xe9\ -u\xa2\x99\xf0I\xc5\x17\xce\xb6\x99\xf0)\xe5\xf7\xfd|\ -\xdf\xf9\xaf\x02\x1c\x86h\xd1(\xe4S\x01\xf6\xde\x8e\x00\ -\xcf\xb7\x83I\x05\x98\xcctO+\xc0\xf37\x9e\xa9\x05\ -x~\xbd3\xb1\x02\x93Y\x81\xcf+0\xc1\x18\xe1p\ -\x11\x9d\xb9\x01\xfboG\x81\xe7\x17F\x93*\xf0|#\ -\x9bX\x81\xfd\x99\xf0i\x158\x98\x09\x9fV\x80\xf1,\ -\xc0\xcf\x08\xb0\xe7!\x9fz\x8b3\xef\xa0\xbd\xf0\xed(\ -\xf0|)\x9bT\x81\xf1L\xf7\xb4\x0a<\xbf\xe3\x99X\ -\x81\xe7+\xf0\xc4\x0aL\xdf\x97\x02/\xcd\x0f\x11\xe1\xff\ -O\x84\x93\xbf\xc0\ -\x00\x00\x0e\xc9\ +\x00*\x95x\xda\xedZ]o\xa38\x14}\xcf\xaf`\ +\xe9K\xab\x1d\x8c\xcdW\x80\x85\x8c\xb4[\x8d4\xaf\xbb\ +3\x9ag\x17;\x09S\xc0\x91q\x9af~\xfd^\x13\ +>\x92&\xdd\xeev$\xb6R\xb1T)>\xf7\xda\xbe\ +>\xf7\xda\x07P\x93\x8f\x8fea\ +\x8f|g\x1e\x04\x1d^\xe4\x15\x07\xeeb)\xb6\x15;\ +\x06\xbf\x8b\xbc:E\xe1\xacsY\x00\xf9*\xf6:\x8c\ +Q\xa8X}\x0d\x9e,6D\xb2\xa19\xe4\xa39a\ +qI\xe5=\x5c\x8d\xc6\xc1\xc9\xd01\xf7\xb7\xc5\xab)\ +\xf6\x1d\xe4h\x8e\xc3WSl\xb9\x13\xc9/\x90\x1c\xfa\ +\xc8\xc5>\x0e\xbd\x9f \xd9\x0a&\x9a_\xba.H\x88\ +\xdc(\xec\xef\xd3W\xd1<\x9fh~\x89f\x9f \xc0\ +|\xf7gh\xf6\xdf\x07\xcd\x89\xbd:\x96\xcf\x7f\xd6\xcb\ +\x0f\xae\x8b\x5c\xdf\x8f\x5c\xf7\xc6<\x95[+\xfa\xff\xa5\ +\xd4\x9a\xc4t\x0c1\x9dh\x1eIN\xadp\x22z\x14\ +A\x85\xcbk\x22z\x0cI}/\xcf.\xffMT\x83\ +\x00\xcd\x1b\xe9;\x13U\xf7\x0d\x88\xea\xf4T?\x8a\xa8\ +\x92\x89\xe6qDuzz\x19KT\xa7\xcf.#\xa9\ +*\x99T\xf5\x5cU\x09\xc6\x08\x07\xf3\xf0\xfcM\xd5{\ +\x03\xaa:}\xc4\x19EU\xa77\xa8\x91T\xd5\x9b\x88\ +\x1eGU\xfd\x89\xe8qD\x15O\xa2zAT]\x17\ +y\x8e;?\xff\xfe\xeb\x06o@U\xa7\x97\xa8QT\ +\x15O4\x8f\xa3\xaa\xd3\xb7\x97\x91TuzU\x1dI\ +U\x9dw\xa4\xaa\x89\xfe\x7f\xbc\xc5\xeco-U\xb1\xe3\ +\ +\x00\x00\x0ee\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + \x0d\x0a \ -\x0d\x0a\ - \ -\x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\ -\x0a \x0d\x0a \x0a \ + \x0a <\ +rect\x0a st\ +yle=\x22fill:#99999\ +9;stroke:none;st\ +roke-width:2;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:round;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;paint-order:ma\ +rkers stroke fil\ +l;fill-opacity:1\ +\x22\x0a id=\x22r\ +ect846-5-0\x22\x0a \ + width=\x2270.5\ +59952\x22\x0a \ +height=\x2223.64993\ +3\x22\x0a x=\x22-\ +341.26895\x22\x0a \ + y=\x22-172.0720\ +2\x22 />\x0a \x0a \ + \x0a \ + \x0d\x0a \ - \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09U\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a <\ -g\x0d\x0a id=\x22g831\ -\x22\x0d\x0a style=\x22s\ -troke:#37c8ab;st\ -roke-width:21;st\ +nejoin:miter;str\ +oke-miterlimit:4\ +;stroke-dasharra\ +y:none;stroke-op\ +acity:1;fill-opa\ +city:1\x22\x0a \ + sodipodi:nodety\ +pes=\x22cc\x22 />\x0a \ + \x0d\x0a <\ -path\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path81\ -2\x22\x0d\x0a d=\x22M \ -59.837063,61.191\ -958 134.85037,13\ -5.42536\x22\x0d\x0a \ - style=\x22fill:non\ -e;fill-rule:even\ -odd;stroke:#ff80\ -80;stroke-width:\ -15.57077312;stro\ -ke-linecap:round\ -;stroke-linejoin\ -:miter;stroke-mi\ -terlimit:4;strok\ -e-dasharray:none\ -;stroke-opacity:\ -1\x22\x0d\x0a sodip\ -odi:nodetypes=\x22c\ -c\x22 />\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x83\ -\x00\ -\x00\x85\xa0x\xda\xed]\xebn\xe3\xc6\x15\xfe_ \xef\ -@h\x7fd\x8d\x8a\xd4\xdc/Zk\x83\xb6A\x9a\x00\ -\x09\x0a4\x9b6\xed\x9f\x80&)YYI\x14H\xda\ -\xb2\xf7\xb5\xfa\x1e}\xa6\x9e\xa1x\x95H\xd9\xd6\x8eQ\ -`E!\x17\xf1\xccp.\xe7\x9bs\xf944\xe7\xfa\ -\x9b\x87\xf5\xca\xb9\x8f\x92t\x19of#\xec\xa1\x91\x13\ -m\x828\x5cn\x16\xb3\xd1/\x1f\xbes\xd5\xc8I3\ -\x7f\x13\xfa\xabx\x13\xcdF\x9bx\xf4\xcd\xfb\xaf\xfep\ -\x9d\xde/\xbe\xfa\x83\xe38\xbbe\x98\xdd\xceFL\x8d\ -\xf2\xcb\xdbh\xb9\xb8\xcd\xea\xeb\xfbe\xb4\xfbs\xfc0\ -\x1b!\x079L9\xa5|\x19\xceF\xd0\x04)j\xd5\ -\xfd\xe3\xa2|\xf31\x0d\xfcm4m\x16y\xc4y\x8b\ -|\x84\x829\xa7T\x8f\x1d\x82\x08q\x11\xfc\xc3\xae\xf6\ -w\xa50\xee-\xfc;\x0d\xe3`\xe3\xafa\xb8q\x16\ -\xce\x7f\xcbR\x0f\xfa\xdaW\x81\xe9n\xd2i\xd9\xfcl\ -t\x9be\xdb\xe9d\xb2\xdb\xed\xbcR\xe8\xc5\xc9bb\ -nO\xb7~\x10\xa5\x93R\xdel\xa0\xec\xa9j\xa0\x14\ -xi|\x97\x04\xd1\x1c\xda\x88\xbcM\x94M\xbe\xfd\xf0\ -mU\xe8\x22/\xcc\xc2f;\x0f+h\xbd5\x8a\x1d\ -\xcd\xfb\xc7Z\xebI^\xda\xa8\xdeU\x91 \x84&\x07\ -\xd3\x83\xcb\xe7VM\xc2yo\xf7\x88L@\xc1P\xc3\ -M\x1f7\x99\xff\xe0n\xd27\xcd{\x83\xa0\xba5H\ -\x22?[\xdeGA\xbc^\xc7\x9bt\xaf\xc2v\xed\xb0\ -\xae\xbd\xbdKVy\x950\x98D\xabh\x1dm\xb2t\ -\x02\x00OF\xef\xcd\x0d\xd7\xeb(\xf3C?\xf3\xf3\xbb\ -\xf7\x8b\xa5\x14a\xb2\xaf\x03\xb5``\xd3\xbf\x7f\xfb]\ -q\x09\x82 \x98\xfe3N>\x96\xd7\xf01U\xfc\x9b\ -\xf8\x0eV\xe4\xe8}-\xbf\x0e\x83) \xb4\xf6\xb3\xf7\ -\xcb\xb5\xbf\x88\x8cR\xfe\x08\xa3\xbc\x9e\xd4\x05\xed\xda\xd9\ -\xe36j\xb4\xbbo9\x89\xf6`w\xce+\x0c\xd6K\ -s\xd7\xe4\xe7l\xb9Z\xfd`\xba\x199\x93z\xb0\x93\ -b\xb4\xe5l&\xcd\xe9\x5cO\xca\xf9\xee/\xc3h\x9e\ -6\x94a.1\xaa\x14\x01\xab$\xf2\x93\xbf&~\xb8\ -\x04MV\xc3\xacl(\x88W\xab(\x00\x1d\xf8\xab\x9d\ -\xff\x98\x8e\xea\x1a\xd0V\xfbfL4\xa95u\x9df\ -\xf1\xb61\xed4{\x5c\xc1l\x8d\xd4\x85F\xe3d\xfa\ -&\x08\x10\x9a\xcf\xdf\xe5\xa2\x18\xec\x05\xe6<\xc5\xa3\xc6\ -=\xf1|\x9eF\xd07j\x0as\xf3\x87[0Q\xaa\ -\xa5\x15\x8b\x1d\xe2\xee\x0e5\xaa;\xbc\x9e\xb4g_\x8a\ -\xd7~\xf21J\x8e\x15\x09-\x04\x1fMS\x7fJ\x92\ -x\x87\x7f\x04\xc7\x98du7qb\x1a\x015\xdfe\ -q-M\xa2\xf9\xbf`\xfa\x1ej\x89~=\x10\xf5\xb7\ -Z\xe8 \x06O8_\xc5\xbb\xe9\xfd2]\xde\xac\xa2\ -\xd1\xf1\xf0\x96i>\xc0\xd9(K\xee\xa2\x06\x8a[?\ -\xbb=\xd0\x85\x111\xaeUSG \xfe\xc9\x81A\x8d\ -\xe1_\xe7G\x87\xc37\x97\xe7_]L<\xde\x10\xef\ -\xa5e\xd5O\xce\xe8\x18\xb29,z7\xb9[E\xd3\ -\xe8>\xda\xc4a\x08\x88%\xf1\xc7h\xfa\x06\xe5\x9f\xe2\ -\xd2\xcd\xe3\xc7\x14\xe2\xce6k\xb6\x92%\xfe&5\x96\ -\x08\xb0\x05\xfe*z\x8b\xbc\x05l\x10E\x94\xc81\xa8x\x0cW\x92)0\ -\xc81\xe4d\x84\x08\x84\x04&c\x97z\x18S\xcc\x18\ -\xad<\x0b\xa4\x04\x10l\xf7_+\x832\xc9ahR\ -\xdb\xa2\xdf-\x04\xf7<<\x81\xfa\xe6\xf9\xa7\x1c\xd1M\ -\x9c\x84QR\x96\x89\xfc\xd3.+bX#^\xc57\ -\xbf\x03JY\xbc\x8a`\x12&\xbb\xc0\x95a,\x12X\ -g\x9d\x05w\xcb0\xea,\xa9\xcd\x1e\x06Yu\xd6]\ -\x9c\xde\xfaa\xbc\x9b\x8d\xc8Q\xe9n\xb9\x81\x12\xb7\xc8\ -\xf6\x09\xd3\xbc\xafJ\xc9\x000\xc2\xd5L\xcd\xb2\xa9t\ -V\x81\x9a\xde\xc6;3!\xb02\x7fU\x83X5\xf8\ -)\x8e\xd7f9i\x8c\x19W\xe2\xa8<\x007\xe82\ -0#\xaa\x10g\xc7\xc50M*<\xaa\x94b\xa2o\ -\xb4\xd0\x84\xe8\x9d\x0a4@d_\xe1\xda\x7fX\xae\x97\ -\x9f\xa2\xb0\x81\x5c\xdd\xf7]\x92\xc0*tW\xfec\x94\ -4\x99\xce\x81\xc2\x83\xdb(\x00\x03\xbe\x89\xfd$4\xa0\ -\x94\x8bnQT\xf6\x93\xa5\x0f\x8d\xdcD\xab\xd9\xe8\xbf\ -\xff\xa9\x14W\xf8\xa6\x18z\xc8\xbfO7&g]\xbd\ -\xcb%\xbb\x1c\x80\x96(\x85qNASZ@\xf8\xa2\ -Rm\x1f\xde\x19+.\xb0\x02\xb7E\xf8\xbe\xe2\xdc_\ -/W\x8f\xd3\x14\x8c\xc7\x05\x0b[\xce\xdf\xad\xa2,\x8b\ -\x12\xd7P!\xa0\x84S\x04\xb7\xee`\xdd\xb6\x04\xc6I\ -N\xdf\x84\x0c!\xce\xf3\x8b:1+\xdd\xe5\x06\xc8\xe3\ -\x91\xaf\x94\x0cST\xdb\xbeY\x09Y\xf4\x90)\xc0\xba\ -ti-Gnh\x80C\xa9\x87`\x16b\x8c\xb9'\ -0\x04W\xe9\xdc:.\xf3H>9ge\xbe3\xa1\ -\xa8\xa2\xa6\x06\x16B\x12\xe7/\x0e\x81\xd8\xad\xb5\xc2t\ -L\xa4\x87\x14\x91J\x1b\x19&\x12\xeb\xbc)\x8a\xc17\ -8Xy\x98QBq-\x0a\x1c\x97@\xa8EJ\xaa\ -1r\xc0CH*\xb5dc\xeaQ\xa4(!\x0d\x91\ -\xf0\xa4R\x1c1\x18\x10\xf2\x04cL*\xb8\x1dAE\ -$\xb9\x1cC;\x5cJ\x8d\xa9\x83!\x91\xd0\x12\x06c\ -\xeeUHS\x18\x8c\xc74\xd6\xaa)b0P,4\ -D\x09\x88\x10\x84a\xc9a\xa4\xd8\xd3\x08S\xc1A\x04\ -\xc9\x08\xf4`F\x8a\x14\x92\xda\x01O\xc6$\x11\x18D\ -P\x1d\xa6\x0bc\x03-S\x0cJ\x18\x97\xed\x1b\x114\ -\x05\xaeo\x5cu\x047r\xcc\xb9\x22p\xa3\xa0D\xc0\ -\xb0A$%\xa5\xd2\xd4\xc2R3\x22\x1a\x22P6F\ -\x5cc\x07\xd57\xc0\x84\x95\x04\xc7\x09\x1di@\x87r\ -\x98\x11T\x220\xfc\xa6\x84)\x18 L\xa8R)(\ -\x05am&T\x8b\x0a0\x09\xb4\x0f\xa3U\x1a1\x91\ -\x0f\x922\xc8rr/\xad\x11L\x85\x19\x99@\x98\x1b\ -E\x82\x12\x84V\x9a;\x9f\x8e\xf2\x94\x1e;\xb97\xc6\ -\xb5\xc9\x9e\xb4\x9d,\x89\xb2\xe0\xb6%+\xcc\xe4\xeb\x9f\ -?\xfc\xf0\xab\xf3\x13,\xd1\xaf\xdf\xb9\xa5]\xbb\xfb\xbb\ - \xb5\x5c\xce\x97\x01\x90\xe2x\xd3\xaa\xb87\x96\x82\xc5\ -t\x1aK\xaf\x81\xd4\x99\x80\xa6\xb5\xaf\x98,\xda>#\ -;\x0a}\xc8\xc3\x0a\x16#e*\x8f}\xe6\x12#\x04\ -\xb0\x8d])`\xa1j\xa2\xe1\xabY\xfb\x84\x12\xa5\xaf\ -\x9a\x06\xb9\xc0\x00\xbf[\x1bd\x02\xa1\xe9(\x11\xac&\ -\xb0\x9f\x1c\xe7\x08\x85\xac\xc7\x13\x94\xa5\xad\xb9\x82Mk\ -\xcd\xa1\xf3Jn\xfc\x13\xa8s\x9a\xc4w\x9b\xb0)\xfc\ -=^n\xa67\x90\x8d\xadJ)\xf0\xec(Y\x813\ -\xce\xa6\xd5\xed\xa1\x0f\xb1,I\xfc\xc7\x96\xe71\xd2=\ -=\x9cV\x99[=\xc0\xad\xbf\x04\xe4\xf2\xa0<\xdd\x17\ -:f\x0a\xce>\xc9:\xa0\xcdF\x0f\x0a3W6\x12\ -\x9d\x22:b\x08Y\xc8\xac\xd9\xba\xa4\x0a\x8aE\x91l\ -\xa4A\xb3\x91\xa1\x06R*\xd1HwL>\xc0\xb5\xc7\ -\x89\x89]u\xc27h\xbf\xad}\x0a\xe9\xf0g\xab\x9f\ -\x94\xfa?R?\x03L\xf4\xa0\xfe^\xf5\x0b\xd7\xc2\xea\ -g\xbd\xea\x17\x0c7\x7f\x1e\x1a\xd4\x7f\xe8{\x5c\xf1\xf9\ -\xea\x17{\xf5\xeb\xc1\xf7\xbcP\xfb\xdc%\xda\x82\xef\xef\ -S\xbf\xe4\x90<\x0d\xea\xefw\xfd\xdc\xc5\xe4\xf3\xf5\x8f\ -\xd1\xb0\xfe\xcft\xfe\xc4\x95\x16\xf4_F\xdfA\xff/\ -\xd4\xbfv\x91\x05\xff\x83\xd9\xa0\xffs\xf5\x8f]j!\ -\x00c\xd1\x87\xc0\x10\x02N#@\x5c\xf4j\xe4\x8bj\ -\xcf\xfc0=\x18\xc0)\xf2\x05\x09(y5\xfee\x10\ -`lX\xff\xa7\xe8\x17r\x05~5\x06\x06\x00\x10\xad\ -\x07\x06v\x92\x81iWIk$L\x91\xc1\x09\xbd\x98\ -\x85Q\xd7\x1e\x0d\xeb\x00\x80aJ\x07\xfd\x9f\xa2a\xc2\ -\xb5\xc8\xc3\x860|\x06\x0fC6\x12\xa1\x1e&6 \ -\xf0\x0c&`\xc7\x04\xd8\x00\xc0\xf9T\x8c\xb8T\xbe\x1a\ -\x19\x1b\xe2\xc0\x93\x10\x10\xd7\xcaN\x18\xa3XK\xce\xda\ -\xea\xc7\xcaS\x0a\x93\xc1\x04N\x911b#\x0f\x22\x05\ -\x02\x1d\x00P-\x062v\x8a\x8c)\x1bA\x80\x15\x00\ -\x88#\x00\xb46u_\x06\x80\x9c\x13\xbf\xef1\x83\xaa\ -\xf4\xcb\xe1b\xd2\x06\x02\xa2\x17\x81s|\xd0%!\x00\ -\x5c\x0c\xac\xc0\x0a\x19\xebD\x00\x12!\xa4\x90\x1a\x108\ -\xb9)f#\x0c\x186f P\x83\x0d\xbc\x9c\x8dY\ -\xdb\x17\x1b\x108\x8f\x0ch\x1bO\x05a6\x00\xf0\x19\ -\x1bc\xae\xa5\x9d\xb1.\x08\xce\x8b\x03\x97\xb53\x86]\ -\xfcZtL+\x8fSM\x04\x1e\x008\xb97\xa6]\ -\xf2Z\x84\x0c `ZJ\xc4\x06\x08N\xee\x8e1\x1b\ -\xc9P7%\x03\x08\x04'B\xea!\x12\x9c\xdc\x1e\x93\ -6\x82q\x11\x08\x84\xb6\xe2\x88.\x8c\x93\xb9\xcaJ,\ -\xe8\x83@\x0a\x81\xf4@\xca\x9e\xd8\x22c\xafG\xcb\x06\ -3x\xe6&\x19w\xd9k\x11\xb3\x01\x83\xe7m\x93!\ -+\xdc\x98\x0d\x10|\xd6F\x99\x8d\x1f\xe9\xba\xc9\xd9\xb9\ -\xf1\xe0\xa2\x12Sl\xc3\x0f)\x0f\xc3G\x12\xd9\xd2\xbf\ -\x041\xd5\x0c\x93A\xff'\xb8\x19\xb2\xb1WIJ\x04\ -\x0e\x01@Z*&\x07\x00N03a\xe3\x81\x15\xd6\ -\x07\x00\xe1D\xd1!\x0c\x9c\xe2e\xd4\x12+\xcb\x01\x10\ -V\x5c\xd0e\xb12b\xe3\x07R\xd5\x07\x00\x15\x82\xbc\ -\xf8\xd1i\xd0%\xef\x07\xa0(\xfdr8\x19\xb2\xc1\x8a\ -\x0d#3\x10(+&pI\x08\x00#\x13\xb6\x1e[\ -\x1c\x108\x93\x0cp+\xdb4E \x16\x03\x02g\xd0\ -1ne\xb3R\xf4\x18\xc1Y\x81\xe0\xb2v\xca\x98\x8d\ -m\x9an6\xc6\xa5g^\x0cD\x86\x9d\xb2\xd3;e\ -\xd2F \xe8\xe6c\x06\x02\xce\x15\x1f\x9e\x1d}\xe2\xef\ -\xc8lD\x02\xd6\x07\x81\x86<\x89\x0e;e\xa7w\xca\ -\xb8\x8d\x84\xb4\x08\x04\x07\x7f\xcez\xae#\xba\xb4\x9d2\ -+/\xb4Q\xdd\x10(\x0f\x11F\xb8\x1a\xf2\xa1\xd3;\ -e\xda\x06\x06%/\x13V\xcc\xe0\xc2x\x19\x02K`\ -\xf6\x98\xd9\x80\xc19;e\xd2\xd6N\xd9\x00\xc1\xf9;\ -e\xcc\xd6c\x8c\xc7\xe4\xec\xdcxpQ\x7f\xdcm\xe5\ -\x8f\xca\xccjGT\xa2\xf6\x93+Tz\xd4<\xda8\ -p\xb3S\xdc\xcc\xca\x0fD\xa4@\x00\x1f\x01\xc0\xb9y\ -\xacn\x00\xa0\x9f\x99\xd9y\x82\xb1\x0f\x00\x8e\x91\x1e\x1e\ -e?E\xcb\xec<\xbeX\xe8\x9f[\xf1@\x97E\xca\ -\x98\x8d\x19\xb3\ -\xc1\x8aU\x1f\x04D\x11\xaa\x07J\xf0\xc4>\x19\xb5\xf2\ -\xf4\x1c\xeaJ\x88\xce5\x83\x8b\xdb'\xc3v^\xf5a\ -\x13\x83\xcb\xe2\x05\xe6\x07R\xf5Z\xd4\xec\x5c\x08\x82\xc0\ -?\x11\x0d\x8a\xd2/j\x9fL\xdb\xd9'\xeb\x01\xa1\x1d\ -\x0f\x8e\x0e<\xcb\x8f)c\x98W\xee\xb0\xeb\x044\x85\ -0`\x89Hq\x02\x9aT\xdc\x9c G\xc7\xae\x94\x9e\ -bX2\x91\x9f\x80\xa69C\x14_U\xc7\x9d-\xaa\ -\xa14\x1am\x1c\x1c\xeb!$$1\xc7\xf6\x11\xee)\ -%\x89\xd6WmE\xc1\xc8X\xf35\x0d\x8bv\xa9n\ -N7\xeb:\xb54?3\xb4:\xb5\xb4\xb8r\xa9Y\ -\x9b\xe6\xb5\xa0\xe6\x88<\xc9 \xcf\x16\xf4\xaaq\x02\xee\ -\xe2\xe0\xfc\xd8\x85f\xb8\xe7\x80\xe5\xc6t\x90\x06\x16\xc0\ -)\x1d\x13\xf3\x8e\x15B$\xbbj\x9d\x9b\xbeh\x9d\x81\ -\xde\xa5gM%\xd3Z\xcbB\xcf\xd5\xa5+\x99G@\ -S\x9c\x83\xaa\xa49\x17\x99\x1a=\xb7\xda\xab\x80\xac\xcf\ -\x9b\xeb\xec\xb7\xac\xc9A\xb1\xef\xdb%\x87'\xff\x1e\x1e\ -\xa0K\xd1\xe8\xa8t\x7fH\xef\x189\xdf;L9\xff\ -0\xff\xf9\xdeA\xce\xbf\x8fk6N\xd2\xdd\x80yf\ -q\xe2\x06w\xc9\xbd\x9f\xdd%\xd1\xc1\x09\xe7G\xa7\x08\ -\xe7\x86\xd8<\xeb|\x7f\x82\xef\xe2\xf4D\xcfYu\x07\ -k\xcf%G\xbdv\xabS`\xde\xdcl\xea_\x92`\ -IHb^B\xac)\xd3J\xe0\xfc(G\x22%\x96\ -\xe6\x10H\xae0!\x08\x1f\x0d\xab:\xd1\xbd\x8b \xd6\ -\xe7\xb9\xb7F\xdc\xd4R\xfd\xbd\xf2\x03\xe5\xff\x1b\xae9\ -1\x8e\xc3#L\x0b\xce\xaa\xf0\x002\x86=J)\xa9\ -\x0fnz\xc8\xcf+V\x1c\xc6Ze\xb4\xa5\x97\xe2\x1e\ -\x95\x14\xe1\xfa\xfd\xee\x85c\xa3\xcc\xd3\x12\xd2V\xdc<\ -'\xd1t\xce\xb8\x16\xf53|M\xec!\xf71\x9f\xfe\ -\xcc(/m\x85\x04s\xda\xa6B\x12|\xec\xf3BB\ -K\xfa\xfc\x90\xd0\xed\xfe\x0b\x97\xbf\xf7\xff\xfb\x9a\x95\xfb\ -=R3\x87\xb5\xc0\xe9\x81\x9a1\xd1\x98\xa8\x96\x9a\xa9\ - H\xd4\xaa\xaf\xd5\xac\x00'Y?\x1eQ\x1e2\x0c\ -w\x80\xfaQ\xb7\x9ai\xfd\x8blS\xd1w\xc9\xea\xed\ -\xf1\x09\xd6\xec\xea\xd9\xc7\xd2\x82\xda\x11\xa3\x8a\xfe\x1f\x94\ -\xbe?at\xaf\xe7\xebIzo\x96\xf5\xff\x00\xa5\x8f\ -&^\ -\x00\x00\x0d\x0a\ +ay:none;stroke-o\ +pacity:1;fill-op\ +acity:1\x22\x0a \ + sodipodi:nodet\ +ypes=\x22cc\x22 />\x0a \ + \x0a \x0a\x0a\ +\x00\x00\x09\x10\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0a \x0a \x0a \ +\x0a \x0a\x0a\ +\x00\x00\x0do\ +\x00\ +\x00\x82\xfbx\xda\xed]\xe9\x8e\xe3\xc6\x11\xfe\xef\xa7 \ +\xb4?\xbc\x83\x88T\xdf\x87v\xb4F\x92\x85\x0f\xc0F\ +\x80x\x9d8\xf9cpHJC\xaf$\x0a$5\x9a\ +\xd9\xd7\xca{\xe4\x99RM\xf1\x94HyF\xd4 \xc0\ +\x8a\xc2\x1ed\xf5\xfdu\xf5\xd7Uj\x8au\xfb\xcd\xe3\ +ji=\x04q\x12F\xeb\xd9\x08;hd\x05k/\ +\xf2\xc3\xf5b6\xfa\xe5\xe3\xb7\xb6\x1aYI\xea\xae}\ +w\x19\xad\x83\xd9h\x1d\x8d\xbey\xff\xd5m\xf2\xb0\xf8\ +\xca\xb2\xac]\xe8\xa7\xf7\xb3\x11S#sw\x1f\x84\x8b\ +\xfb\xb4\xbc}\x08\x83\xdd_\xa2\xc7\xd9\x08Y\xc8b\xca\ +\xca\xc5\xa1?\x1bAq\xb2\xcfS\xb5\x8c\xf7\xa9\xebO\ +\x89\xe7n\x82i=\xc5!\xd6[\xe4\x22\xe4\xcd9\xa5\ +zl\x11D\x88\x8d\xe0\x0f\xbb\xc9\x0a%\xd0\xdf\x0d\xfc\ +\x9d\xfa\x91\xb7vW\xd0\xcd(\xf5\xe7\xbf\xa5\x89\x03\x0d\ +e9`\x94\xebdZT>\x1b\xdd\xa7\xe9f:\x99\ +\xecv;\xa7\x10:Q\xbc\x98\x98\xd2\xc9\xc6\xf5\x82d\ +R\xc8k\xe5\x8bv\xca\xf2\x85\xc0I\xa2m\xec\x05s\ +\xa8\x22p\xd6A:\xf9\xf0\xf1C\x99h#\xc7O\xfd\ +Z5\x8fK\xa8\xbb\xd1\x87\x1d\xcdZ\xc7Z\xebI\x96\ +Z\xe5n\xcbG\x10B\x93\xe6\xd0\xe0\xee\x999c\x7f\ +\xde\xd96\x22\x13@\x16r\xd8\xc9\xd3:u\x1f\xedu\ +\xf2\xa6V\xd4\xf3\xca\x92^\x1c\xb8i\xf8\x10x\xd1j\ +\x15\xad\x93=x\x8d\xcc~\x95y\xb3\x8d\x97Y\x0e\xdf\ +\x9b\x04\xcb`\x15\xac\xd3d\x02\xf3:\x19\xbd\x87\xfc\xb7\ +\xab u}7uM\xd9\xbd~\x14\x12L\xb2\x1c\x90\ +\x07\xfa4\xfd\xfb\x87o\xf7wp\xefy\xd3\x7fF\xf1\ +\xa7\xfc\x16>&\x83{\x17mA\xffF\xefK\xf1\xad\ +\xefMaVVn\xfa>\x5c\xb9\x8b\xc0`\xf1'\xe8\ +\xdf\xed\xa4JhdN\x9f6AU\xe9\xbe\xda8\xd8\ +Oo\xebx|o\x15\x9aB\x93\x9f\xd3p\xb9\xfc\xc1\ +42\xb2&e?'yG\xf3aLj\xe3\xb8\x9d\ +\x14\xc3\xcc\xee\xfc`\x9eT\x08\x98;\x8c\x8a\xd1\x83J\ +\x04n\xfc]\xec\xfa!`W\xf4\xaf\x5c+^\xb4\x5c\ +\x06\x1e\x8c\xdc]\xee\xdc\xa7dTf\x80\x8a\x9aE1\ +\xd1\xa4\x84\xe76I\xa3M5\xd8$}Z\xc2\x18\x8d\ +\xd0\x86\x1a\xa3x\xfa\xc6\xf3\x10\x9a\xcf\xdfe\xa2\x08\x96\ +\x05\x8ct\x8aGU\x91h>O\x02h\x17\xd5d\xd9\ +\xfa\x86\x02\x98(UG\xe2b\x8d\xe1\xd6\xc64*\x1b\ +\xbb\x9d4\x07\x9dKWn\xfc)\x88\x8f\xc0\x83\xe2\xde\ +'S\xcf\x9f\xe38\xda\xe1\x1f\x81\xed\xe2\xb4l\x22\x8a\ +M\x0d\x80\xec6\x8dJa\x1c\xcc\xff\x05\x83vP]\ +\xf2kS\xd2Yc>\xf2\x08\x08n\xbe\x8cv\xd3\x87\ +0\x09\xef\x96\xc1\xe8\xa8ca\x92um6J\xe3m\ +PM\xda\xc6M\xef\x9b\x00\x18\x09\xe3Z\xd5p\x01\xe9\ +O\x16tg\x0c\x7f\xad\x1f-\x0eW6\xcf.mL\ +\x1c^\x13\xef\xa5E\xd6\xcf\xd6\xe8h\x8e\xe6\xa0\xd7v\ +\xbc]\x06\xd3\xe0!XG\xbe\x0fS\x14G\x9f\x82\xe9\ +\x1b\x94}\xf2[;\xdb\x0c\xa6\xb0\x85l\xd2Z%i\ +\xec\xae\x13\xb3\xd2`\xa2\xc8\x01\xc8\xde}\xe0\xc1\x02\xbd\ +\x8b\xdc\xd87\xf3\x90\xab\xd7b\x9f\xd5\x8dC\x17j\xb8\ +\x0b\x96\xb3\xd1\x7f\xffS\xa0\x95\xb3N\x04\xb5g\xd7\xd3\ +\xb51-\x97\xef2\xc9.\xc3\xbc!J\xa0\x8bS\x00\ +H\x0b\xd8\x89\xa8T\x9b\xc7wf\x99\xe6\xd3\x03\x84D\ +\xf8>\xe3\xdc]\x85\xcb\xa7i\x02k\xc4\x86u\x14\xce\ +\xdf-\x834\x0db\xdb8)\xe0\xa3M\x11\x14\xdd\x81\ +\x8e6\x04\x86\xfe\xa6o|\x86\x10\xe7\xd9MeO\x15\ +D\xb8\x06o\xee\x88\x05%\xc3\x14\x95\xeb\xdb\xcc~\x1a\ +<\xa6\x0a&8\xa7\xab:=\x1b3\xdd\xa2\xd4A0\ +\x041\xc6\xdc\x11\x18vIi\xdd[6sH62\ +ki\xae\x99PTQ\x93\x03\x0b!\x89\xf5W\x8b\xc0\ +\x1e\xac\xb5\xc2tL\xa4\x83\x14\x91J\x1b\x19&\x12\xeb\ +\xac*\x8aa\xfd[X9\x98QBq%\xf2,\x9b\ +\xc0\xae\x89\x94Tcd\x01\x0bH*\xb5dc\xeaP\ +\xa4(!5\x91p\xa4R\x1c1\xe8\x10r\x04cL\ +*(\x8e #\x92\x5c\x8e\xa1\x1e.\xa5\xc6\xd4\xc2`\ +\x10h\x09\x9d1e\x15\xd2\x14:\xe30\x8d\xb5\xaa\x8b\ +\x18t\x14\x0b\x0d\xec\x0f\xccO\x18\x96\x1cz\x8a\x1d\x8d\ +0\x15\x1cD`T@\x0b\xa6\xa7H!\xa9-`+\ +&\x89\xc0 \x82\xec0\x5c\xe8\x1b@L1\x800.\ +\xea7\x22\xa8\x0a\xe8m\x5c6\x04\x059\xe6\x5c\x11(\ +((\x11\xd0m\x10II\xa94\xb9\xb0\xd4\x8c\x88\x9a\ +\x08\xc0\xc6\x88kl\xa1\xaa\x00\x0cXI GhH\ +\xc3\xecP\x0e#\x82L\x04\xba_\x970\x05\x1d\x84\x01\ +\x95\x90\x02(\x08k3\xa0J\x94O&\x81\xfa\xa1\xb7\ +J#&\xb2NR\x06\x06K\xc6\xc4\x1a\xc1P\x98\x91\ +\x09\x84\xb9\x01\x12@\x10Zin}>\xb4::\xd6\ +\xc8\x83YW\xeb\xf4\x0f\xd7M\x1a\x07\xa9w\xdf\x90\xe5\ +K\xe4\xeb\x9f?\xfe\xf0\xab\xf5\x13(\xe8\xd7\xef\xecb\ +A\xdb\xfbR` \x86\xf3\xd0\x03\x875Z72\xee\ +\x17J\xeex\xb4.\x94\xae\xc5Qm\xf0\x9a\x96\x1c1\ +Y\xd4\xa9\x22=\xda\xd9\x90\x83\x15\xe8!e*\xdb\xda\ +\xcc-F\x08fllK\x01:\xaa\x89\x86K\xa3\xf6\ +\x84\x12\xa5oj\x0bq\x81a\xe2\xedr!\xc6\xb0\xfb\ +\x1c\xdase\xcf\xf7\xa3\xe2\x1c!\x9fu,\xff\x22\xb5\ +1HX\xcbZsh\xb9\x94\x1bR\x02\x1c\xa7q\xb4\ +]\xfbu\xe1\xefQ\xb8\x9e\xde\x81q\xb5,\xa4\xe0\x05\ +\x07\xf1\x12\xc87\x9d\x96\xc5}\x17v\xac8v\x9f\x1a\ +tc\xa4{_nZ\x1abU\x077n\x08S\x96\ +\xed\xba\xd3}\xa2e\x86`\xed\xcd\xa6\xa6okPP\ +\x98\xd9\xb22_\xf2-\x10\xc3\xde\x84\x8c\xa6\x96\x09\xe5\ +\xce\x97\xa7\xc8\xca\xb6\x99\x8d\x8c]/\xa5\x12\x95\x11c\ +\xf6z\xae\x1dN\xcc\x1eU\x1ao\x03\xecu\xd8)\xd8\ +\xb5\xfdp'\x05\xf0\x87\xb83\x98\x0b=\xe0\xde\x8e\xbb\ +\xb0\xfb\xea;\xeb\xc2]0\x5c\xfb\xd6f\xc0\xbdI3\ +\xb6\xe8\x89\xbb\xd8\xe3\xae\x07\x9ay\x01\xec\xdc&\xba/\ +\xbfw\xe0.9\xd8D\x03\xee\x1d\xf4\xcemLz\x02\ +\x8f\xd1\xa0\xf1g\x10<\xb1e_\xe0\x8b\xadu\x00\xfe\ +\x05\xc0k\x1b\xf5\xa5\x1a\xcc\x06\xe0\xcf\x01\x1e\xdb\xb4\xef\ +\xee\x8aE\x07\xf4\x03\xcd\x9f\x80\x9e\xd8\xe8U\xbc'\xaa\ +\x1d\xf3m\xf1\xa0\xf2\x9d\xde\x13\xd8\x93\xe4U\x1c(\x03\ +=c\x83\xc6w\xfaO\xc8\x16\xf8U\x5c(@\x9eh\ +=\xb8P\xdd.\x94\xb6\x95\xbc\x8c\x17\xa5\xc8\xc07/\ +r\xa3\xa8}!?\xea\x18y\x86)\x1d\x80\xef\xf4\xa3\ +\x84})Gj\xd8c_\xe8H\xa1\xde\xe6M\xbb+\ +5@\xffG\x16\xfd\x05\x94\x9e\x0d\xc8\x9f\xe7K\x11\x9b\ +\xcaW\xf1\xa6\x06\xae?\x8d=\xb1\xfb\x9fE1\x8a\xb5\ +\xe4\xac\x81;V\x8eR\x98\x0cJ\xdf\xe9M\x91\xde\xd6\ +\x0d\xc9\xa1?F\x9ej1xS\x9d\xde\x94\xeaM\xf4\ +,G^\x1c\x22\xaf\xb5\xc9\xf9\x12\xe4\xe5\x9c\xb8]\x87\ +\xf9e\xea\x17\xe3L\xc9\xde\xd0\x8b.\xe8_N7W\ +\x04=8S\xa0\xf7\xfd\xbd\xa96\xe8\xc1\xbcA\x0a\xa9\ +\x01\xfa\xeec\xa9\xdeTo\xdc)\x83\xbd\x1a\xb4\xfee\ +\xee\xd4eN\xa6\x06\xe8_n\xd4\xeb\xdeO\xdb`6\ + \x7f\xe6\xd1\x94}\x89\xb3\xa9\x16\xec\xcf\xe1\xfa\xab:\ +\x9b\xc26~\x0d\x7fJ+\x87SM\x04\x1e\x90\xef>\ +\x9d\xd26y\x0d\x8f\x0a\xb0gZJ\xc4\x06\xec\xbb\xcf\ +\xa7Xo\x13\xa7\xd5\xa7\x02\xec\x05'B\xea\x81\xed\xbb\ +\x0f\xa8d\xef\x9d6'{\xa1\xfbs\xceu9U\xb6\ +\xea\xcf\xf7\x1d\xd8K!\x90\x1e\xbc\xaaS\x87T\xecu\ +\xfc\xaaA\xf1\x9fsL\xc5m\xf6\x1a\x9e\xd5\x00\xfe3\ +\x0e\xaaP\x7f\xaf\x96\x0d\xd8\x9f}T\xd5\xfb\x9b\xb4V\ +\xef\xea<\xce\xbf&;\x13\xf7\xa6\x1c\xe5`\xf8H\x22\ +\xeb\xc0K\x90R\xcd0\x19\x80\xefr\xaeP\xefcB\ +R@\x7f\x80<\xd2R19 \xdf\xe5Z\x89\xde\xcf\ +\x83\xb0\x0e\xe4\x09'\x8a\x0eT\xdf\xe9X\xd1K\xb8U\ +\x19\xf2\xa2?\xdb\x5c\x95[Ez\x7f}\xa9:\x90\xa7\ +B\x90\x17>h\x0c \xf2n\xe4\xf3\xd4/\xc6\xa9B\ +\xbd\xfdY\xe3R\x19\xecU\x7f\xa5\xbf\x22\xe8\xc1\xa5\x12\ +\x17y\xf2o\x80\xfe\x0c\xa3\x9e\xf7?/\xc9wY1\ +@\xffB\x7f\x8a\xf7?'\x14\xedj\x7f\x06\xd9_\xd5\ +Y\x15\xeb}^\xd2\xeaNq\xe9\x98\x17\xda\x90\xe1\xac\ +\xea\xc4Y\x95\xecM\xf6\xad\x0e\x95\xc1\x9es\xc5\x87\xe7\ +.O\xfd\x96\xaa7\xdb\xb3\x0e\xec5\x18?t8\xab\ +:qV\xc5{\xdb\x979\xd97\x7f\xbdy\x1e\xe7\x5c\ +\xd9YU\xff\xf7\xb0\xa8V\xec\x95\x83\x08#\x5c\x0dV\ +\xce\x89\xb3*\xdd\x1b\xfc\xc2\xb1\x12\xfd\x15\xff\xba\x1c+\ +\x04\xba\xcf.\xe4Z\x0d\xe0\xbf\xf4\xacJ^\xe4\xacj\ +\xc0\xfe\xbc\xb3*v\x91'\x01\x8f\xbc\xab\xf38\xff\x9a\ +~\xbd\xdc\xff\x87UF\xc1\x11\x95\xa8\xf1`\x08\x95\x0e\ +5\x0f\x07\x0e\xceU\xa7s\xd5\xff\xcb\x1c\x92C\x8f\x0f\ +\x91\xe7\xdc<\x9f6 \xdf\xe1Z]\xe0!\xc0\x0e\xe4\ +9Fzx\xe2\xbb\xd3\xaf\xba\xc0\x13\x809\xf0\xbc?\ +\xd9\x5c\x95W\xc5z[7\xaa\x03yA\x18\x95\x83O\ +\xd5\xedS\xb1\xfeF=\xca\xb1\xef\xaf\xf4\xd7\xe5Q\xd1\ +\xfe\xce,\xb9\x18\xf4wT\xa1n\xe8\xf3\xd4/\xe6}\ +\x7f\x17xI\xc5\x1ey1 \xffBoJ\xf6\xd7z\ +\xd1\x8e\xfd\x19\x5c\x7fU'U\xaa7\xd5\xb7:SX\ +:\x88\xc3gx=\xc8\xa9w\xfe\xf5\xb6pZ\xdd)\ +\x83=\xa6\xc3\xab\xe7N\x9eT\xf5\xd7{\xd6\x81=\x16\ +J\xcb\xe1\x11\xb4S\xaf\xfd\xeb\x8d}A\xf6\xb2?\xe7\ +\x5c\xd9I\x15\xeb\xed\xcf\xaa\x0e\xec\x89\x22T\x0f\xa6\xfd\ +\xa9\x93*\xda\xff94\xd4b\xe6\x9c\xa7\xf8\xd7vR\ +\x85/\xf0\xbe\x8a\x8b\x81\x7fU\xf6\xbd\xf9\xfaR\xbd\x86\ +ou\x1e\xf6\x9e\xe7\x9e`\xfc<\xf5K:\xa9\xd2\x17\ +8\xa9jG\xbf\xc1\xf9\x07A\xaf\xb2XU\x0c\xf3\x82\ +\xf2\xda\x82`)\x84a\x02\x11\xc9\x83`I\xc5M\xfc\ +0:\xb6\xa5t\x14\xc3\x92\x89,\x08\x96\xe6\x0cQ|\ +S\x84\xbcZ|u\x1c\x15\xb4\x16\x0a\xd4AHHb\ +B\xb6\x11\xee(%\x89\xd67\x0dt\xa0W\xac\xf6\xca\ +\x81E#M\xd7\x06\x99\xb6E\xa4\xccbB\x96\x11)\ +\xf3;\x9b\x1aU4\xef\xa24\xa1\xd1$\x03sY\xd0\ +\x9b*\x9a\xe9\xa2\x19\x0et\xa1\x19n\x8f\x8c[\x1b\x07\ +\xd2`\xc7sJ\xc7\xc4\xbc\x1b\x84\x10\xc9n\xea\xf1\xac\ +\x17\xf5\xe0\xd4m\xe0j*\x99\xd6Z\xe6\xe0\x96\xb7\xb6\ +d\x0e\x01\x808\x07\x84\xa4\x89iK\x0d\xb8\xf5\xea\xca\ +\xb9+\xe3\x8c\xb55Z\xe4\xe3\x80\xe6\xfbF\xc2A\xf4\ +\xd6\xc38\xa8\x14\x8d\x0e\x13\xf7\x91V\xc7\xc8\xfa\xde\x04\ +\x88\xff\x87\xf9\xe7{\x0bY\xff>\xcaX\x8b\x88\xba\x86\ +5\x98F\xb1\xedm\xe3\x077\xdd\xc6A3\xfc\xf4Q\ +\x1c\xd8l\xb1\xd5\x02Q\xef\xa3\xb0.N\x0d\xf0\x0c\x0d\ +;\xd03\x9b\x1c\xb6\xd8\x8a\xa1\xc0\xbcv\xc4\xd3\xad~\ +\xb0^\x90\xc4\xbc\x98SM\x99V\x02g\xe1\xfa\x88\x94\ +X\x9a@\x7f\x5caB\x10>\xecR\x19h\xbb\xcd\xa5\ +\xab\xc2l\xd7{[C\xa7\xbc,\x96y\xfe_E\xb8\ +\xb1\xe1\x04\x870-8+\xe8\x1eD\x0c;\x94RR\ +F\xeey\xcc\x22\xcd*\x0e],L\xd1\x82{\xb8C\ +%E\xb8|-xNV\x949Z\x82\xc1\x89kQ\ +\xf0L\xb3\x8ckQ>\xf4V\x9fg\xb0^\xcc\xa7\xdb\ +\xb6\xc9R\x1b\x14o\x82(*$\x814\x9fG\xf1\x0d\ +\xe9\xf3)\xbe\x9d\xces\x0a\xdf\xf3\xf9>g\xc1\xa9\x87\ +\xf0r\x98|N\x9b\xf0b\xa21Qux\xa9 H\ +\x94\x88W\xf0*\x98\x1cY>oP\x04\x89\x85\xfc\x80\ +:j\x85\x97\x96\xdf\x8a\xd6\x01\xde\xc6\xcb\xb7\xc7\xd1\x86\ +\xd9\xcd\xb3C\x8c\x02\xdc\x88QE\xff\x0f`\xef#F\ +f\xf8\xdeN\x92\x07\xd0\xe2\xff\x01R3\x03\xfd\ +\x00\x00\x0c\xb1\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \ -\x0d\x0a \x0d\x0a \x0a\ + \x0a \xce\xb7\ -\x0d\ -\x0a \x0d\x0a \x0d\x0a\ - \ -\x0d\x0a \x0a\ + \x0a \x0a \xce\xb7\ -\x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0a\x95\ +ily:sans-serif;l\ +etter-spacing:0p\ +x;word-spacing:0\ +px;fill:#0088aa;\ +fill-opacity:1;s\ +troke:none;strok\ +e-width:0.982808\ +\x22\x0a id=\x22g6094\ +3\x22\x0a transfor\ +m=\x22translate(-10\ +9.2077,-9.468178\ +2)\x22>\x0a \ +\xce\xb7\x0a \x0a\x0a\ +\ +\x00\x00\x0aB\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ -\x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a <\ +ellipse\x0a i\ +d=\x22path12-3\x22\x0a \ + cx=\x2230.65420\ +5\x22\x0a cy=\x2210\ +29.3185\x22\x0a \ +rx=\x2214.376685\x22\x0a \ + ry=\x2213.796\ +513\x22\x0a styl\ +e=\x22fill:none;str\ +oke:#999999;stro\ +ke-width:3.31116\ +295;stroke-miter\ +limit:4;stroke-d\ +asharray:none;st\ +roke-opacity:1\x22 \ +/>\x0a <\ +tspan\x0a s\ +odipodi:role=\x22li\ +ne\x22\x0a id=\ +\x22tspan837\x22\x0a \ + x=\x2219.404564\ +\x22\x0a y=\x2210\ +36.9392\x22\x0a \ style=\x22stroke-\ width:0.45910597\ \x22>?\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08\xed\ +t>\x0a \x0a\ +\x0a\ +\x00\x00\x08\xa8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x0b(\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a\ + \x0a\ + \x0d\x0a\ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0bw\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a d=\x22M0\ - 0h48v48h-48z\x22\x0d\x0a\ - id=\x22path2\x22\x0d\ -\x0a fill=\x22none\ -\x22 />\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a sodip\ -odi:nodetypes=\x22c\ -c\x22\x0d\x0a inkscap\ -e:connector-curv\ -ature=\x220\x22\x0d\x0a \ -id=\x22path812-3\x22\x0d\x0a\ - d=\x22M 25.553\ -478,18.109299 9.\ -9652983,18.12775\ -9\x22\x0d\x0a style=\x22\ -fill:#37c8ab;fil\ -l-rule:evenodd;s\ -troke:#aeaeae;st\ -roke-width:3.125\ -64;stroke-lineca\ -p:round;stroke-l\ -inejoin:miter;st\ -roke-miterlimit:\ -4;stroke-dasharr\ -ay:none;stroke-o\ -pacity:1\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x06\xfd\ +0\x22\x0a sodipodi\ +:nodetypes=\x22cc\x22 \ +/>\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x06\xc2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x87\ +x=\x22-82.372882\x22\x0a \ + inkscape:cy=\ +\x2224\x22\x0a inksca\ +pe:window-x=\x2269\x22\ +\x0a inkscape:w\ +indow-y=\x2227\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +4\x22 />\x0a \x0a\ +\x0a\ +\x00\x00\x0d;\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \ - \x0a \ +\x0a \ +\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xa8\ +0\x22\x0a id=\x22pa\ +th812\x22\x0a d=\ +\x22M 59.837063,61.\ +191958 134.85037\ +,135.42536\x22\x0a \ + style=\x22fill:#\ +ff0000;fill-rule\ +:evenodd;stroke:\ +#ff8080;stroke-w\ +idth:15.5708;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x07n\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0e\x1e\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/s\ -vg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x09$\ +4\x22 />\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\xd1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a <\ +/g>\x0a \x0a \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x08\xdf\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\xd9\ +x=\x2257\x22\x0a inks\ +cape:window-y=\x222\ +7\x22\x0a inkscape\ +:window-maximize\ +d=\x221\x22\x0a inksc\ +ape:current-laye\ +r=\x22g831\x22 />\x0a \x0a \ +\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\x92\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0a \x0a\ + \x0a \ + \x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09h\ +\x0a sodipodi\ +:role=\x22line\x22\x0a \ + id=\x22tspan452\ +2-0-3\x22\x0a x=\ +\x22-48.97916\x22\x0a \ + y=\x2264.775017\x22\ +\x0a style=\x22f\ +ont-style:normal\ +;font-variant:no\ +rmal;font-weight\ +:normal;font-str\ +etch:normal;font\ +-family:sans-ser\ +if;-inkscape-fon\ +t-specification:\ +sans-serif;fill:\ +#216778;fill-opa\ +city:1;stroke-wi\ +dth:0.77554256\x22 \ +/>\x0a\ +\x0a\ +\x00\x00\x09^\ \x00\ -\x00Qox\xda\xed\x9cY\x8f\xdb8\x12\x80\xdf\x03\xe4\ -?\x08\xcaK\x82\xb5h\xde\x87\xa7\xdd\x83]\x04\x83Y\ -`\xf6ew\xf6|Y\xa8%\xb6[\xd3\xb6dHr\ -\xbb\x93_\xbfE\xf9\x92Mvbe3@\x80\xc8}\ -\xc0&i\x1e\x1f\x8b\xc5\x22\x8b\xe2\xcd\x8f\xcf\xabe\xf4\ -d\xeb\xa6\xa8\xcayL\x10\x8e#[fU^\x94\x8b\ -y\xfc\xf7_\x7fJt\x1c5mZ\xe6\xe9\xb2*\xed\ -<.\xab\xf8\xc7\xdb\xd7\xafn\x9a\xa7\xc5\xebWQ\x14\ -m\x8b\xbc}\x98\xc7\x5c\xc7\xdd\xc7\x07[,\x1e\xda\xd3\ -\xe7\xa7\xc2n\xffT=\xcfc\x1c\xe1\x88\xeb\xe8\x10^\ -\xe4\xf3\x18\xb2\xa0\xfbT\xa7\xf2\xc9>\xbe|l\xb2t\ -mg\xfd(D\xa3\xb78\xc58\xbb\x17\x8c\x99ID\ -1\xa5\x09\x86_\xfen\xf7\xad\x06\xea\xbd\x86\xbfY^\ -ee\xba\x82\xeaf\xcbM\xd3\xda\x1aZ\xf3\xdfMc\ -\x11\x14\xb9K\x09\xad\x9e5\xeb4\x83$\xeb\xda6\xb6\ -~\xb2\xc7\x88\xb2\x99\x1d\x8a\x9f\xc7\x0fm\xbb\x9eM\xa7\ -\xdb\xed\x16\x1d\x02QU/\xa6.\xfb.\x83fz\x08\ -\xefgp\xa8\xc91\x83C\x00j\xaaM\x9d\xd9{\xc8\ -\xc3\xa2\xd2\xb6\xd3\xf7\xbf\xbe?F&\x18\xe5m\xde\xcb\ -\xe7\xac\xfc-\xebJ\xa6\x18\xe3i\xbf!\xae\xb8\xa7\xc5\ -\xb5I\xeb\xfc>\x94\x94\x18c\xa6\x98N\x81(\xa4H\ -\x9a\x0fe\x9b>'e\xf3\xa6\xff\xdd,;~5\xab\ -m\xda\x16O6\xabV\xab\xaalvL\xceS\xe7\xa7\ -\xd4\xebM\xbd\xec\x92\xe4\xd9\xd4.\xed\xca\x96m3\x85\ -\x1e\x9d\xc6\xb77+\xdb\xa6y\xda\xa6\xdd7w\x92q\ -\x08\x22\x14\xe2\xa1:\xb3\xbf\xbe\xff\xe9\xf6&\xcbf\xff\ -\xac\xea\xc7}:\xf7rQ\xe9]\xb5\x01\x81\x83\x84y\ -6\x03\xac\xab\xb4\xbd-V\xe9\xc2\xba\x86\xff\x01jr\ -3=E\xb84\xed\x87\xb5\xed\xe5\xb1\xcb\x05d\xa0\xeb\ -\x97`\x8d\xf3lU\xb8oM\xff\xd6\x16\xcb\xe5\x9f]\ -\xe6q4\xbd\xbd\x99\xeek\x04\xef\x8e\x95\x9c\x1e\xea\x0e\ -e\xd9\xfb\xa6\xd7(\xf7\x91`\xd7\xe0\xb4~\xb4\xf5\xb1\ -\x0aGQo\xda*{t)\xffX\xd7\xd5\x96\xfc\x02\ -\xc3\xaen\xe3c\xba\xaa.\x00\xdbM\x97\x8d\xf52\xfcX\ -U\xd0K\x1cQ%1'\xca\x8b\xcf`NI(G\ -J\x1b\xaa\x89\x1f\x0d\xcdd\x1a\x19\xa6t v_[\ -\xc8B\xbc\xd8\x14\xc8\x80\xaa\x97\x22W\xe9s\xb1*>\ -\xda\xbc\xd7s\xa7\xb27u\x0d#5Y\xa6\x1f,t\ -\xfc\x82\x13\xe1\x13w\xed\xff4\xf5N\xae\x1el\x06B\ -xW\xa5u\x1e\xea\xb7\xdc6\x8f\x07\xf9\xca\x89\xfb\xe9\ -dw\xd1C\xbf+\xfe\x14v\x08\x15\x9c\x9f\x86Fo\ -`\x9cFCB\x90\x90F\x13\xc2\xde}j\xb83\xec\ -\x0f\xf7\x09\x8e~v\xd3\xfd?\xdc\xbf\x9fa\xea\xffO\ -?\xcd\x89TU\x96 \xedU\x9d\x00\xb3\xa7\xb4\xdd\xd4\ -\xb6\xd7\xca\x8bq?+\xc1\x00\xd9\x0d\xcdE\xbf9\xc1\ -\xba\xc3\xd0\xc7RQ\xcd&\x09\x15HkE\x8dy\x17\ -_ \x80\xa0\x8fk\x1fN)\x0e\x92\x81\x09\xa4.\ -\x9eAg(.\x95dRM\xb0\xfb\xe9}D \xab\ -Zp\xe3\xdeji\x04Q\x1d:\xbb\x5c\x16\xeb\xc6\xbe\ -\xd0\xac74\x13i\x8a\x7f\xe8t\xdb~\x8c\xce\xc8A\ -\xb1\xb9F\x9fk5\x81\x043X\x1c\x02\x97\x05 L\ -\xd7\xb3\xba\xda\x94y?\xf0\xb7\xaa(\xcfCa\x16\xb3\ -\xf5\x12\x04\xb7\x9d\xf1CX\x9e\x82\x04\xd6u\xfa\xe1\xac\ -\xa4S5\xd6i\x01\xa2\xdc)\xab\xd9N#6\xd1.\ -Q\xe4*\x1c\x07DBs\x9aH*\xfbQn\xb4R\ -\x8d\xa8\xa6\x8c\xb3\xb3\x08\x18f\x06a)\x05\x13\xfd\xf0\ -\xfa\xd9Y|Rq\xc3\xb5:\x8bp\xca\x12)\x86\x09\ -h!\xd7y\xdf!\x5c\x96\x90K\xb8\x0c\x04\xce\x10F\ -\xc5%\x5c\x8d\x08H'\x91z\xa4{\xad\xe8&:@\ -WP\xa5\xb1\xba\xa4K\xc0R\xe1\x02~G\xbaW\xd2\ -U\x89\xf2\xe8R\xc4`\x1a\xd1\xcaW\x0c0I1#\ -\xf9H\xf7J\xba\x221\x01\xb5k\x04\x15\x9ax\xb2\x0b\ -\xb0\x8cbD\x8dt\xaf\xd5\xbb\x22\xa1\x01\xd5 \xb96\ -\xdaS\xbc\x84!\xa286r\xc4{\xb5\xcd\x90`\x0f\ -/CXQNt@z9%\x9a\x91\x11\xef\x95x\ -M@x\x05\xe2Fh\xc1\xc6y\xed\xff\xa5K\x12\x16\ -\x98\xd78\x18\xb6\x01\xba\x1ciL(\x1eU\xc3\xb5t\ -\xa9o5\xc0\xbc\xa6\x08\x86\xf5\x84GW ,\xc89\ -\xf5\x11\xee\xa7L2\x9c\x88\x80\xde%\x86\x09\xed\xd1\x95\ -\x88\x03[.F\xab\xe1j\xbd\xcb\x02F\x99@\x862\ -\xaaBF\x99\xe0\xd2\x98Qz\xaf\xb6\x1a\xb0?\xaf\x81\ -n\xe0RisIW\xc0b\x98\x819aF\xba\x03\ -\xe8\x06\xf8\x0a$)f\x5c\xfb\xbb\x0d\x14p\x8d6\xef\ -0\xbe\xfe~\x83\x84E\x854Z\x87,\x07\x90`=\ -\x02\x1e\x048\xb4(V\x0ak\xe2i\x08\xa2\x90\xe2T\ -\x90\x11\xf0 \xc0\xbeu\xc6\x11\xc7 \xaa\x1e_\x89\x98\ -\x14j\x9c\xde\x06\xe1\xf5\x97\x16\x1cQ\xca\x04\xf7w\x1d\ -@\xb09\xbb\xd8\xa9\xfcj\x80\x99\xcatz7\x000\ -1\x9c\xf2o\xdeS\x91x\xbe\x0a\x83\x18S\x86hO\ -~)\x83\xc5Exu!\xa8\xd1\x1c\x07\xf8\xc2\x1aP\ -\x11N\xbeW\xc0\x0c\xd6\xc6\x9e\xbf\xc2m>R\xac\x95\ -'\xc0\x94\x22\xa2\x8d4#\xe0!\x0e\x0b\xdfD\x03\xc0\ -Lk\xcdM@\x82\x8dQT\x88\x11\xf0\x00\x9f\x85o\ -B\x10\xd0\x04\x1c$U\x04\x00\x83\x82\xa0L\x8e\x80\x07\ -\xb8-\xfc9\xce #0\xd6\xc6\x07\x0c\xab\x0f\xcd\x19\ -\x1e%x\x90\xe7\x22\xa8\x84\xb91\xe2\xc2U\xdf\x1d|\ -A\x18\x03I>\x12\x1e\xe2\xbc\x08(\x09\x8a\x14\x91\xc6\ -\xb7\xd3(A`\x8cI\xadF\xc2\x03\xfc\x17\x09\xf7\x00\ -\xbb\x8d4\xc9\x8d\x18\xa7\xb9\xaf\xe1\xc2\xf0\x17r\xce\x8d\ -)\x8cd>`\x8d\x84\x92\xcc\x8c\x12<\xc4\x8b\xe1\xef\ -\xf5\x180\x84\xb5\xe2\x01%\xac\x91v\x1ed:\x02\x1e\ -\xe2\xc9\x08\xe8\x08\x864\x98c\xbe/\x83b$0h\ -\x8f\x91\xf0 g\x86\xef-R\xb0fc\x94\x9a\x80\xa5\ -\xc69\x1b\x97r\xc3v{\xb0\xaf\x22\x04V\xcc\xf8\xce\ -\x22\x83\xa8q\xe7\xa3G\xc0\xc3\xfc\x19\x81\x0d5\xe4v\ -{\xb8\x7f\xc2\x8f:\x96\xd2\xd0\x91\xf1@\x9f\x86\xbf\xa9\ -F$2Ji\xa3\x033\x9ddR\xf2q\xc5<\xd0\ -\xad\xe1/\xe9\xc0\x9ap\xbc\xa4'\xc7\x8c\xb8\x0d\xf9\x8b\ -\xe3\x12#\xe3\xcf{6|u,\x90\x82\xa5E\xe0\xc8\ -\x1f\xc3\x08\x10K3\xae9\x06\xba7\x02\xba\x82\x22\xad\ -\xa9\x112\xc0XH\xae\xc8\xefdT`\x9c\xa69\x1f\ -\xc0\x18\xe6e\xca\xbem\xc6\x8f\xe1Lp\xdcet\xb7\xaf\ -_\xfd\x0fR\xaa\xd9\x91\ -\x00\x00\x0b\xf1\ +\x00O\xf4x\xda\xed\x5cY\x8f\xdb8\x12~\xcf\xaf\x10\ +\x94\x97\x04k\xd1\xbc\x0fO\xbb\x07\xbb\x08\x06\xb3\xc0\xec\ +\xcb\xee\xec\xf9\xb2PKl\xb7\xa6m\xc9\x90\xe4>\xf2\ +\xeb\xb7([\xb6$\xaa\x13u\xb2\x03\x04\x88\xdc\x07\xec\ +\x22E\xb2>~,\x16Y4\xaf~|\xdam\x83\x07\ +[VY\x91\xafC\x82p\x18\xd8<)\xd2,\xdf\xac\ +\xc3\xbf\xff\xfaS\xa4\xc3\xa0\xaa\xe3<\x8d\xb7En\xd7\ +a^\x84?^\xbf\xb9\xaa\x1e6o\x82 x\xcc\xd2\ +\xfan\x1dr\x1d\xbaOw6\xdb\xdc\xd5\xe7\x8f\x0f\x99\ +}\xfcS\xf1\xb4\x0eq\x80\x03\xae\x83\x938K\xd7!\ +\xae\xef.\xf0\xb9\xf2\ +\x9d\x84\x0b\xa3\xc3\x8b\x18\xa4\x7f\x09\xa0\x1d\x0b\xf8\x0b~\ +\x09\x04\xbc\x8bD\xf36\x22\x14\x89\x8e\xf8(m\xb3~\ +\x0c:\x85\x9c\x9ax\x0b\xa0G\xe5akW\xf6\xc1\xe6\ +E\x9a\xfeP\xd5eqoWoq\xf3:}\x8c\x1a\ +\xcb\xb3\x02{\xb5\xaf;\x85\xd4e\x9cW\xae\xf7\xc1\xc4\ +$\xf1\xd6\xbe\xc3H\xbf?J\xb7qm\xdf\x1d\x9b\xf3\ +\xfe\xd8\xa1\xc7\xbe\x817\xae\xb7\xae\xaf\xceF\xc4\x0d\xf2\ +\xd4\x19\xafc\xb9{`@Rl\x8br\x1d\xbe\xbdm\ +^\xa7\x0ao\x8a2\xb5e\x9b$\x9bW/\xa9\x00K\ +\x01\x5c\x02\x13v\x12\x177\xbf\xd9\xa4\xae\x8b\xad\x85\x16\ +9\xfe\x91\xb6\xef6%\xe83&?d\xa9\x1dK8\ +\xf7\x98k\xde\xb9\xa2\xd1\xd4\xea.N\x8b\xc7uH\x87\ +\x89\x8fY\x0e\x09\xd1\xc9\x88S\x81\xc5\x0b9Z\xc3N\ +0i5tT8\x03\xd5\x92\xa1\xba+\x1e\x9d&\xd0\ +\x8d\xf1\xb6\xb2\xc3\xd2>\x16\x05t\x0cGTI\xcc\x89\ +\x1a&'0UD\x94#\xa5\x0d\xd5\xc4K\x05\xf5\x98\ +F\x86)\xed'\x9e\xda\x09\x05\x88\x97t\x80\xc7\xa9z\ +!m\x17?e\xbb\xec\xa3M/]u\xa9\xf7P\x96\ +0\x1a\xa3m\xfcl\xa1\x9f7\x9c\x08\x0fe\xa7\xf7'\ +\x91n8tg\x13\xe0\xdbM\x11\x97\xe9HO\xa5\xb6\ +\xbao\xb9\x94\x12\xf7\xd3\xb0ts\x81\xfbX\xf5Y\xd4\ +\x0a\x05\xe7\xe7\x11\xd0\xe1\xff\x85\xf4\x11AB\x1aM\x08\ +{\xff\x89\x11\xcd\xb07\xa2\x178\xf8\xd9M\xdc\xffp\ +\xff~\x86I\xfc?\x9d,\x17\x80\x8a<\x07V\x17e\ +\x04P=\xc4\xf5\xa1\xb4\x17\xf5\x06#{\x95\x83\x13q\ +\x1c}\x9b\x8e\x22\xa3\xcd\x86\xb1\x8d\xa5\xa2\x9a-\x22*\ +\x90\xd6\x8a\x1a\xf3>\xec\xebN@\xf7\x0eJ'1\xa5\ +x\x0c\x11\x98\x12\xca\xec\x09L\x82\xe2RI&\xd5\x02\ +\xbb\x9f\xceG\x04\xbc\xd4\x82\x1b\xf7VK#\x88j \ +\xb3\xdbm\xb6\xaf\xec\xb8Foi\x22\xe2\x18\xff\xd0\x18\ +\xae\xd3@\x5c\x91\xd6j9}\xfb&K \xc1\x0c\x16\ +\xadp\x9b\x01x\xf1~U\x16\x87<\xed\x0a\x7f+\xb2\ +\xbc/\x85y\xc9\x96[ j\xbd\xe2\xad,\x8d\x81s\ +e\x19?\xf7j\xba4c\x1fg\xc0\xdd\xc6\x1a\xad\x8e\ +\xf6\xae\x0a\x8e\x99\x02\xd7\xe0\xd0g\x82\xe64\x92Tv\ +R\xdc\xb8\xa4\x1aQM\x19g]9\x0c)\x83\xb0\x94\ +\x82\x89\x8e\xb8|r>\x9bT\xdcp\xad\xbarg\x08\ +\x91b\x98\x80\x9dq\x9d\xf6\xdd\xc1\xca\x222\x80\x95\x01\ +\xcf\x0caT\x0c`\xd5\x88\x00'\x89\xd43\xaeS\xe8\ +\x1ai\x1fWA\x95\xc6j\x80+\x01\xb7\x83\x0b\xf8\x9d\ +q\x9d\x80\xab\x8a\xd4\x10W\x8a\x18L\x15Zyf\x00\ +f!f$\x9fq\x9d\x80\xab\x88\x8co^\x8d\xa0B\ +\x93!_\x01(\xa3\x18Q3\xaeS\xec\xab\x88\xa8o\ +\x08$\xd7F\x0f\x0d,a\x88(\x8e\x8d\x9c\x81\x9d\xe4\ +\x0fDx\x08,CXQN\xb4\xcfXN\x89fd\ +\x06v\x02\xb0\xc6'\xac@\xdc\x08-\xd8\xb2\x02I\x8a\x19\xd7\xde.\x01\x05\ +\xa8f\x1fv:\xb2\xde>\x81\x84\xe5\x814Z\x8fx\ +\x05\xc0Z=C;\x19\xda\x91%\xadRX\x93\xa1=\ + \x0a)N\x05\x99\xa1\x9d\x0c\xad\xe7sq\xc41\xf0\ +s\x88\xacDL\x0a5O`\x93\x81\xf5\x16\x09\x1cQ\ +\xca\x04\xf7v\x0b\x80\xcb\x9c\xf5\xb7\x13\xffO\xd02\x95\ +\xe8\xf8\xe6\x15\xd0\x12\xc3)\xff\xd6\xa3\x07\xd10~`\ +\x10c\xca\x10=\xe4,e\xb0L\x18]'\x08j4\ +\xc7>\xb2\xb0\x88S\x84\x93\xef\x13Z\x06+\xdba\x0c\ +\xc1\xed\x11R\xac\xd5\x90\xb4\x94\x22\xa2\x8d43\xb4S\ +\x83\x08\x9e\xe3\x05\xd02\xad57>k\x8dQT\x88\ +\x19\xda\x89q\x04\xcf= 0\xf09\xd0S\xf8\xd0\x82\ +9\xa0L\xce\xd0N\x0c%x\xb3\x98AF`\xac\x8d\ +\x07-,#4gxf\xed\xe4h\xc2\x98\xb1\xe5\xc6\ +\x88~|\xbc9Z\x820\x06\x10\xf9\x8c\xed\xd4\x80\x82\ +o\x12(RD\x1a\xcf\xfb\xa2\x04\x81\x8f%\xb5\x9a\xb1\ +\x9d\x18S\x88\xf8\x10Z\xb7\xe9%\xb9\x11\xf3D\xf6\x95\ +a\x05o1\xe6\x22\x89\xc2H\xe6A\xab\x91P\x92\x99\ +\x99\xb5S#\x0b\xde\xee\x8c\x01\xc7V+\xee\x1b[\x8d\ +\xb4\x8b\xde\xd2\x19\xda\xa9\xd1\x05\xdf\x220\xa4\xc1\xcb\xf2\ +\xe2\x0b\x14#\x81\xc1T\xcc\xd8N\x0e0x\xb1\x1b\x05\ +\x0b/F\xa9\xf1\xfd/\xce\xd9\xbc\x1c\x9b\xbe?\x83=\ +\x83 \xb0b\xc6\x0b\xdd\x18D\x8d;S\x14R.\x80\xa3\x14+\xc1U\ +@\x05r\xdfc2d\xe1\x0e{JX\xdf\x92\xe0.\ + \x06\x14\xa0\xb4w\x88\xf9\xd2?\xa4\x1f=\xeb\xdc\xf0\ +\x95\x17\xa9u\xd73U\xeb0I\x92\x06\xdfoG\xfb\ +1UAQ\xee.n1\x8bf\xbav]6\xaa2\ +\xc5x\x8a\xca\xe7\xcbSz\x17\xa84\xbc\xd2\x06{\x5c\ +\xf0\xb0h\x95\xa7I\x8c\xb5\x19\xde\xa6\xf4%g\xb6?\ +3:\x87\xb7\xca\x00\x1eR\xbb\xaf\xad,`\x92\xc5\xc6\ +\x91%\x80w\x5c\xb8\x9b^\xc0\x077\x0d\xad\x030f\ +\xccaE\x17\xce\xad\x1c\x19\xc2\x8c\xf5\x06\xd1d~\xfc\ +>\x884f\xeb\x8b\x10\xd99\xed\x19s\x83\xa5\x83H\ +\xc4\x91\x03I\xeb\x05\x01\xfa8\xd9\x18\x04\x9c|\x16\x82\ +\x1e_\xdc%i\xd7o\xfe\x07\x154\xc6R\ +\x00\x00\x0b\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs8\x22 />\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a Bus<\ -/tspan>\x0d\x0a\ - \x0d\x0a\x0d\x0a\ +\x22\x0a borderopa\ +city=\x221\x22\x0a ob\ +jecttolerance=\x221\ +0\x22\x0a gridtole\ +rance=\x2210\x22\x0a \ +guidetolerance=\x22\ +10\x22\x0a inkscap\ +e:pageopacity=\x220\ +\x22\x0a inkscape:\ +pageshadow=\x222\x22\x0a \ + inkscape:win\ +dow-width=\x221863\x22\ +\x0a inkscape:w\ +indow-height=\x2210\ +25\x22\x0a id=\x22nam\ +edview6\x22\x0a sh\ +owgrid=\x22false\x22\x0a \ + inkscape:zoo\ +m=\x223.390625\x22\x0a \ + inkscape:cx=\x22-\ +113.52136\x22\x0a \ +inkscape:cy=\x2282.\ +051545\x22\x0a ink\ +scape:window-x=\x22\ +57\x22\x0a inkscap\ +e:window-y=\x2227\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +svg4\x22 />\x0a \x0a \x0a\ + \ +\x0a <\ +tspan\x0a s\ +tyle=\x22fill:#9999\ +99;fill-opacity:\ +1;stroke-width:0\ +.29937106px;stro\ +ke:#999999\x22\x0a \ + y=\x2227.66311\ +5\x22\x0a x=\x221\ +5.134903\x22\x0a \ + id=\x22tspan837\x22\ +\x0a sodipo\ +di:role=\x22line\x22>B\ +us\x0a \x0a\x0a\ \ -\x00\x00\x08\x97\ +\x00\x00\x08]\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x1a\x1d\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a <\ +/linearGradient>\ +\x0a \x0a \ + \x0a \ +\x0a \x0a <\ +linearGradient\x0a \ + inkscape:c\ +ollect=\x22always\x22\x0a\ + xlink:hre\ +f=\x22#linearGradie\ +nt842\x22\x0a id\ +=\x22linearGradient\ +917\x22\x0a x1=\x22\ +-1032.6266\x22\x0a \ + y1=\x2268.369415\ +\x22\x0a x2=\x22-98\ +2.63611\x22\x0a \ +y2=\x2268.369415\x22\x0a \ + gradientUn\ +its=\x22userSpaceOn\ +Use\x22 />\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xe3\ -\x00\ -\x00\x1a\xc9x\xda\xe5X[o\xdbF\x16~/\xd0\xff\ -\xc0\xca/1JRs\xbf(r\x0al\x83.\xfa\xb4\ -\xc06\xd9\x05\xf6\x8d&G\x12\x1b\x894H\xca\xb2\xf3\ -\xeb\xf7\x1bJ\xbcYr\xe0 .\x02\xec\xd2\xb0=<\ -sf\xe6\x5c\xbes\x19.\x7fy\xd8m\x83{W\xd5\ -yY\xdc\xcchLf\x81+\xd22\xcb\x8b\xf5\xcd\xec\ -\xe3\x87\xdf\x223\x0b\xea&)\xb2d[\x16\xeefV\ -\x94\xb3_\xde\xfd\xf8\xc3\xf2\xa7(\x0a~\xad\x5c\xd2\xb8\ -,8\xe4\xcd&\xf8\xbd\xf8T\xa7\xc9\x9d\x0b\xdel\x9a\ -\xe6n1\x9f\x1f\x0e\x878?\x11\xe3\xb2Z\xcf\xaf\x83\ -(\xc2R,\xae\xef\xd7?\xfe\x10\x04\x01\xce.\xeaE\ -\x96\xde\xccNk\xee\xf6\xd5\xb6\xe5\xcd\xd2\xb9\xdb\xba\x9d\ -+\x9azNc:\x9f\x8d\xf8\xd3\x81?\xf5\x12\xe4\xf7\ -.-w\xbb\xb2\xa8\xdb\xa5E}5\xe6\xae\xb2U\xcf\ -\xeeE:\xf0\x96\x8bZk\xe7\x84\xcd\x19\x8b\xc0\x11\xd5\ -\x8fE\x93\x8f\xfc\xa3\xf8X\xbbs\xb6\ -\x0fUR\xd4>N\x10\x96IS\xe5\x0fo|Ls\ -\xc2\x15\xe1!\xc1\x0f\x8d\x99\xc2\xf1\xd4\x86\x86\xe8X\x1a\ -.5h\x12\xd2X)\xafG\xd6\xfe\x1ef\x95\xe6U\ -\x157\x9akK4k\x15'\xb1\xb6FS\x0d;h\ -#b\x8d\x8a\xc0a\x83Xj\xc4\x84\xba\xfe\x8b\xfd\xf9\ -}\xed\xaa\xc8\xeb\x02\x8a\x08\xa34\x97c@1\x1a\x1a\ -JbN\x8d\x91!l\x11k&\x99\xfe\x9f6\xab\xa5\ -\xf2\x89z\x94p\xa0N\x1a6\xd5O\xc2dVq+\ -\x9f\xe8G\x09B\x90C\x91\xa9~\x17\xd8_\xc1i\xda\ -Hf\xa4B0\xc4\x94ie\x8d\xd0!:\x19\xca\xa9\ -\x8f\x00\x1a\x8e8\x22Fll\xb9\x114\xa4\x02}\x09\ -\x95\xca^\x7fo[\xebs[\xb3X1\xa5\xa6\xb6V\ -&\xe6\xca\x0a\xfa\xd4\xd6\xd6\x80\x1b\xf0\xa3S[_`\ -\xff\xb2\xad\xbf\xaf\x15\x04\xfd?D\x1cz?\xf4O\xc7\ -a\xdf\xd3\xfa\x866\xf3\xbd\xefI\x94;tqm\xcf\ -\x01\x9b\xae\xda\xa7\x13\xf2\xb6\xac2Wus\xaa}\xa6\ -s\xa7\xc6d\xd4\x84\x94\xb7\x7f\xc2uM\xb9u\xd0\xcb\ -\xb7\x91\xb4\xcf\xa0\xeb\x0a\x1d\xf9\xc5\x89}\x9e\xb9\x8b3\ -=$\xbc\x90\xfda\x97\xa7\xebM\x92\x95\x87\x9b\x19;\ -\x9b=\xe4\x05f\xa2\xeeB`$\x7f\x8e\xa5\xbf#\x10\ -\xd6{\xd4\x83\xa9\xb7Y\xdf\xbd\xd4\x9b\xf2\xe0\x15\xba\x99\ -\xad\x92\xed\xe0\xd7~\xc3\xcfe\xb9k\xaf&\x04\x0eb\ -\xe72\xa5\xb8w0.P\x02\xd4\x80\xa9a\x16ZF\ -\x1a\xb5V\x13m\x9e\x13\x16;(\xfd\xdc$6`\xcf\ -N\xee\x92\x87|\x97\x7fv\xd9\xc8q\xc3\xd9\xfb\xaa\x02\ -.\xa3m\xf2\xe8\xaa\xd3\x85\xaa\xc3\xd3zd\x93\xb51\ -\xb6[\xdc\x5c\x041`I\x95\xea{\x08m(\x1a\x86\ -\x90Z\x0fd\x22\xac\x1fq\xca\xa5\xd2\xd7}\x87\x7f\x97\ -4\x9bK\x09\xa1(\x80\xaa\xb2\x8a \xdc}\xd2\xec+\ -7\xe9\xb3\xbd8~%\x22b \xfa\xfbU 8\xc5\ -\x19\x96\x98\x90\xa1\xb0*.Yp\x1f\xa0\xdaRb\x89\ -4\xfdH\x05\x9b\x00\xa1\xacPze70\xc1\xbf\x02\ -$J\x83\xa16A\xbf|\x13D=\xc3\xe7\xe1\xb4S\ -\x07\xbf\xc2\xbdh\x81\x1b\xd3\x9b\xab\xb3F\xe2\xfa\xad\x9f\ -\x1c]\x1e\xea\xa6*?\xb9EQ\x16\xee4>Bt\ -\x01Th\xcd8U\xb6\xa3\xe3\xda\xe5\xaa-|\xd6,\ -DG\xcb\x12 \xbe\xaa\x92\xc7\xc9\x0e\xc3Ua\xc8\xb7\ -\x13\xa3\x0ey\xa0D\xd0\xe12\x87\x1c\x95\x0e\xcf\xec[\ -\xac/\x9eZ_\xa1=Q\xb0`(U\xac\xa4\xa2\x8a\ -\x06i\x10QdR\xa3\x98\x08\xa9D;\xc2\x04\x0f\x22\ -\xee\xb3\x9b\xe6,d:F\xc4\x18\x1dD\x02\x05\x86\x19\ -\xcaC\xc1\xb1\x89`\xcc\x06@\x0e|\x09D\x05\xd4\xc4\ -\x0c\xe8B*\x0c\xb0\x02\xad8\xd5\x18\xa2\xa7\x82\x9b\xb4\ -\x15\x1aC&c)\x8d\x95\x18rl\xe5Sd\x10\x0d\ -;D\xa3-\xa2\xd1\x1e\x14\x92\xa2Z\x98\x90\xf2\xd8X\ -\xa6m\x00\x08\x11\xa99\x0d!$\xb7\x84\xd3`*\x1a\ -S\x00\x92WI\x9a0:\xa9D\x83V#e\x91\xb8\ -\x8f*Q5,\x8b\xfau'\x81\xe4 \x10\xb1#\x81\ -d\xabTt\xd2J\xf9\xf1I-\xe1\xc7\xbd^g\x86\ -\x19\xec\xe2\xb7\xf85\x10\x16\xb1\x86\xba/B\xa3b\xc1\ -\xe0\x0b\x0dq\x04*\x875*T(!\xcch\xc3/\ -z\xec?/G\xb94/G9\x8f\xb9\xa0J@\xd8\ -\xbf\x00\xe5_\x0f\xdeq\x9bt\x04/Cm\xd7\xdc\xa2\ -\xb0\xc2P\xdcpk\x87\xdc!\xba\x81\xf1\x99\x03\xad\xb9\ -=\xfe%\x84\x83)\xea'\xa3\x9e\xdf\xe7\x8d\x8e\xe3+\ -\xf2\x86\x10_\x937\x90\xea\xac4\xaf\x927\x96\xf3\xf5\ -\xf1\xff\xc8\xaeca\xcf\x8fg1\xb1\x8ah\xce\xedy\ -M\xf9\xa2\x17ZsG\x00gl)c\x08\x22\x81 \ -\xa2L\x22\xd26\xb03\xb2-\xda\x1a\x8et,\x81}\ -k\xac\xd5\xde\x9a\xc3\xc4\xe7q\xa9\xf6\xe2>W\xb0\x18\ -y\xbe`E\xbe\x1b\x94D\xa3\xdd:U,\xdc\xd4\xac\ -\xa2\x04\x11\xac\x91\x0b(\xc2\x87\x86J\xc4(b\xa8_\ -\xfd\xfd\xac\xfft\xd3:\xe5\x8a\x90$\xc9D_\xcf\xd6\ -\x13\xa0\xad\xad\x185\x8a\xe72\xb4m\xb9\x06\xdcZ\x09\ -\x867\xdc\xbd\x81E\x8a\xa8\x8c(G\xdc\x10c\xd8\xf5\ -\xe8\xf3\xd5\x04\xfa\x17\xdc\xd4\x02\xa8\xdao\xdd\xc2\xdd;\ -\xe4\xfd\xac\xc3\xd0\x05\xc4\xe1\x98\xeb\xa9_Ml\x85\xb0\ -\xc4\xf6q\xea\x17\xc0\xad\x8b\xaa\xdc\x17\xd9\x98\xf8g\x99\ -\x17\x8b\x16s\xdf\x02\xc0\x91&Gd\xa0\x872\xc8J\ -Z\x86\xb8t\xe0\xf2\xca\xa8A\x19\xf1\xf7a&CF\ -cA\xb90\xd6'\xb3\ -\x1d\xb3\x86\x9a\x90_\x9au\x9e)\xc3u:\xf9H\xf8\ -\x05\xb7^r\x9c\xa0g\xa9\xe2\xeb\x1c/\x9f8\x9e\x22\ -\xda\xa8A\x97\xaa\x9ez\xfev\xdf4g\x8e\x9f\xc0\xe1\ -\x95\x1cO|eS\xbe\x18A\x0a$\xb76\xa1r\xff\ -\x05%\xa2\xc2\x7f\x84C\x83\xd9\xd2\x00[4\x94\xc6\xb7\ -k\x80\xcb8\xc3\x0e\xde\x12@I\xc4_\xd3a\xbea\ -\x1a}f]\x8f2\xe7\xd2\x7f\x80\xc7\xff\xff\x02\x1e\xf0\ -+C\ -\x00\x00\x07\xb3\ +\x22 />\x0a \ +\x0a \ +\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +g\x0a id=\x22g820\x22\ +\x0a transform=\ +\x22matrix(-0.85507\ +769,0,0,0.867961\ +07,-713.13031,64\ +.155131)\x22\x0a s\ +tyle=\x22stroke:#00\ +aad4\x22>\x0a \x0a \x0a <\ +path\x0a st\ +yle=\x22fill:url(#l\ +inearGradient941\ +);fill-opacity:1\ +;fill-rule:eveno\ +dd;stroke:url(#l\ +inearGradient915\ +);stroke-width:1\ +.59182346;stroke\ +-linecap:butt;st\ +roke-linejoin:ro\ +und;stroke-miter\ +limit:4;stroke-d\ +asharray:none;st\ +roke-opacity:1\x22\x0a\ + d=\x22m -1\ +009.116,56.34619\ +9 -10.3735,-14.5\ +83166 -10.9179,1\ +8.872102 z\x22\x0a \ + id=\x22path448\ +9-3\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22\x0a \ + sodipodi\ +:nodetypes=\x22cccc\ +\x22 />\x0a \x0a \ +\x0a\x0a\ +\x00\x00\x07\xad\ \x00\ -\x00+[x\xda\xe5ZK\x8f\xe3\xb8\x11\xbe/\xb0\xff\ -A\xd1\x5cf\x10\x8bb\xf1M\xaf=\x0bd\x07\x0b\xec\ -!\x97d\x83\x1c\x03\xb5\xc4\xb6\xb5cK\x86$\xb7\xbb\ -\xf7\xd7\xa7([j\xd9V;3\xd8\xee\xc4\xe3\xd8\xdd\ -0X\xc5G\xf1c\xbdX\xd2\xec\xc7\xc7\xf5*xp\ -U\x9d\x97\xc5<\x04B\xc3\xc0\x15i\x99\xe5\xc5b\x1e\ -\xfe\xe3\xd7\x9f#\x13\x06u\x93\x14Y\xb2*\x0b7\x0f\ -\x8b2\xfc\xf1\xe3\xf7\xdf\xcd\xfe\x14E\xc1O\x95K\x1a\ -\x97\x05\xbb\xbcY\x06\xbf\x14\x9f\xeb4\xd9\xb8\xe0\xfd\xb2\ -i6\xd38\xde\xedv$?\x10IY-\xe2\x0fA\ -\x14\xe1P\x1c\x5c?,\xbe\xff.\x08\x86\xebB\xd8R\ -\xf2l\x1e\x22\x97\xed[\xbb\ -\xcb\xd2)\x22\x8e\x0a\xf21_'\x0b\xe71\xf93\x0a\ -9\x8b\x9f\x19\xc7\xbd\x9b\xa7\x8d\x1b\xcc\xbb\x9f\xb9r\xfb\ -\xc3\x1b\xddV\x96\xaes?*\xfe{\x93\xafV\xbf\xf8\ -e\xc2 ~\x166>H\xdb\xed&\x1eng\x16w\ -\xdb\xdd73w_\x0f\xb0\xf0M\xd5\xcd6\xeb\x8d\xc0\ -\xeb`\xe6\x8d\xe5\xd0u\x83k\xa6\xe5\xaa\xac\xe6\xe1\xbb\ -\xfb\xf6\x13\x1e8we\x95\xb9\xaa\xe3\xa9\xf6s\xcc+\ -Q\x97Q~4\x92\x8e^\xde\xfd\xe6\xd2\xa6)W\xae\ -J\x0a\xbfi\xa0\x1dkQ\xa1\x09\x8f2\xb6y\xe6F\ -9\xbd5z!\xfb\xc5\xc6\xd9\xf52\xc9\xca\xddY\xd5\xeel\xbe\xdf\xcbr\xed]\x87\xe6\x86Sq\ -.R\x8a~\x8aq\x22\x8dbT\x9esq\x93h\xd5\ -\xc8\xb4\xd4Z\xf5\x92\xb48\x87\xb4\xf4%\xae?\x15m\ -_\xe2\xae\x93\xc7|\x9d\xff\xee\xb218\xd3mU\xa1\ -\xb1E\xab\xe4\xc9\xe1\xd1/\x0c\x87Q\xc8\xd1}\xa6\x9f\ -]uW&U;O\xa7k\x8b\x01v\xc3\xc1u\xf3\ -\xb4\xc2\xf3\xad\x9b\xaa\xfc\xec\xa6\xef\xb8NMr\xf7\xc3\ -\xbe\xb9?\x9e)\x83\xae\x8d\x86\xe1\xaa\x15\x0a\xd9LE\ -G\xcb\x12<\xe5\xaaJ\x9e\xa6\x05F\xa0\xde\xc6\x17\xbd\ -\xd1\xf5\xe2\xad\x92;\xb7\x9a\x87?%\x9b$\xe8\xd7\xdf\ -K\xd4\xeej@kP\xedjo\xcf\xe8>\x92\xa6\xca\ -\x1f\xdfsb\xc1(\xca\xd4\x84\xe2\xf7\xb9\x15\x81\xd6x\ -*\x82\x9bI\xc4\xadf\xc4Zf><\xfb\x8c\x81 \ -\x87\xcds!\x06+\x8d\xad\xe5\x8fY\x81\xe2\x92\xb7\x8b\ -\x0d\x9aB\x13\xc6\xb9\x011\x01\xa1\x08\xd3\x18{>\x0c\ -\xe7:\xa0y\x8f\x8ecz\xb0\xdc\x1f:hE\xe6\xbf\ -\x7f\x1c\xda\xbd\xc7\xcc\xabtu\xe2\xd8\xbcr\xcb\xf0\x88\ -\xe6\xb5\x16(gD3~\xcaBUE\x86B4\xcc\ -1\xc7\xa3\xb4I\x9a%\xe7\x5cE\x10\xd9c\xee\xd8\x16\ -}#:\xf8\x82)\xec\x9b\xd5v\xe5\xa6\xee\xc1\x15e\ -\x96\xf5\x18d\x02\x03\x19=\xc6\x006\x8f\x1da\x95\x17\ -\x0eUez\xb7m\x9a!\xed\xb72/\xa6-B\x1d\ -\xb5_l\xe8\x9a\x11\x17/\xf7\xf1fz\x03*\x0b\x9c\ -\xbc)\xab\x08M\xe9!i\xb6\x95\x1b\xd8\xd9\xf1\xce\x05\ -\xd3\x10\xf1c\x9e\x8fd\x01\x02f\xc0{\x88\x09\xa2\x0a\ -Dh\xa6\x02\xef\x15@\x01\x15\x93H\x13\xab\xa4\xf9B\ -\xbc\xbe\x18 \x8a.\x8br.\xae\x11'\x09#()\ -B\xa5\xd1\xd2JD\x09=*(\xc9\x024\x1cE\xa9\ -\x92r\x22\x09\xd7\xf6\xd5A\x82\xaf\xc7\xe6?\x9b\xdc\x7f\ -\x0bE5\x86\x22\xa3Djm\xb5\xf2\xbaf\x88VB\ -\x06\x91$B\x19\x83\x09/z\x1fF\xdf@\xd5\x0c\x13\ -`\xf95\xaa\x9a\x1a3H\x86z\x85\x06i\xbdA\xa2\ -s\xd6\xa8kA\x04\x18\xe4\x99\xd4\x1c0:\x10\xa5\xf5\ -\xeb\xa3d\x05\x97\x82]#J\xa7\x96\xb5G\x09\x03\x03\ -\xe5\x92yU\x02K\xd0G\xe9\xc0\x10\xcb\xa4\xd2\x13F\ -\x00\xc3\xd8\x05\x88l\xfb\xf9r\x1f\x7f\xe8\x7f\xea\xc2\xd0\ -\xfa%\xbbVW\x1f\xa91go\x89\x04\xbd\xd7-4\ -@cA\x04\x11\xfa6\x8d97\x9b\xa0)2\x10\xdf\ -\x84\xb3\xff\xaad\x81\x1a\xc21\x1f?O\x16\x98 R\ -Hk.d\x0b\xaf\x98)\x8ci\x11\xfc\xcf@\x01\x8c\ -b\x98]\x8edP\x9aPC\x05e\x17R(~\xb3\ -\xb00E8f\xc6\xe7\xb0\x08L\xd0\x855\xda^\x80\ -\xe5v\xb5\x85{\x17\xab\xf9\x08,\x94\x08*\xb8\xe0\x17\ -`\xd17\x0b\x8b\x8f\xcf\xd4\x8cy\x16\x83x\xd9\xc1\x05\ -\x7f\x04\x16y\xbb\xb0H_U\x80sX@\x10\x8c\xd0\ -\x14.\xfa\x16\xf9-\xdd\xce\xbe\xce\x8a$\x01\x09#\xb7\ -VI\xa8U\xa8I\x97\xae\xad\x8a\xdd\xae\xd3ex\x81\ -bb\x14\x17\xc6\x19\xb5\xea\x02.\xf6f\xd5\x05\x18Q\ -V\x8d\xc4\x22\xbc\x0d\x08a\x81]\xacr\xdcn\xe6b\ -\x09\x13\xa7q\xb8u\xba\x14o\xe4RRy\xb1\xf8\xa3\ -o\xda\x8c\x98\x1d+\x8a\x011\xd4\x88\xd3@u\x02\x0c\ -\xbd\xdd\xecE\x13#\xd8\x88\xc2`\x7f\x0dL\xb3\x8b\xb8\ -\xdcp\xb2k\x09\x059\x1e\xa7\x05H\xa5\xecE`\xbe\ -\xa9t\xf7\xd5\xca\x83c5\x1b\xc0@e,e\xc2\x97\ -\x075\xb1 \x834\xa0\x84S\xaaAL\x22\xcc\x91\x19\ -S\x81\xf0\x05C\x00\xe6\xab\xaa\x12\x848#\xfc\x91\x9b\ -\xf7x\x8d\xc22\x83\xb7\xfd\xab\xc4Q\x8e\x17\x08\x8d2\ -\x18\xef}U\x07q\xe4\x08\x12\xc7\x1c\x00C\x1d\x9fD\ -\x98S\x0bj_\x1f$\xff\x04\x8c\xeb\xab\x04I\x8f)\ -\x9b\x7f\xf6AQ\xe6I\x9b\x220\xb4\xd4\x00|\x01O\ -\x1b\x81\xca\xc6\x09\xa6\xde\xf0\x06\xaa$\x94\x85\xebD\xc9\ -\x8eV\xec9j\x8f\x94\x1e%\xcc\xbb\x85\xb4\x01\xb4W\ -xn,L\x80X\xab\xed[\x80\xe4\x0bJWYk\ -\x1e\x03\x09\x03\xa3\x16V\x83\x7f\xac\x81>\x9fS\xad\x03\ -\x89\xc01*\xd0\x04\x81p\xa3\xe5\x1b\x80\x04\xc0\xb5\xbd\ -\xce\xc2\xe9\x08H\x82\x11iP\x93&mu\x88j.\ -\x82\xc8\x12\xdfY2on\x5c\xaa707m\xa9\xb8\ -\xce\xe7\x88c\x8e[\xf8S\xf57\xfb}aYR-\ -\x02tSV\xf2\xf6\x91\x05\xfaX\xaa\xcc\x1bxnN\ -\x95\xbe\xce\x12\xbc\x1eO\x13\x04(e\xda\xe7_\x94\x80\ -`\x80\xe6\x06\x00\xd4\xe8\x89\x22\xc2\xbc\x05FZp\xcc\ -\xfd_\x0d\xa3Y\xbc\xe8_\x13Z\x8c\xbc\x1a\xe1\xdfG\ -@gr\xf1\xcd\x07\xef'1\x5c)\x03\x87\xb7\x11\xfa\ -&G\x14\x14gj\x82\x9eI\x00\x8an\x07/#\x1c\ -\xa1qtU\xf7\xe0\xe0\x0d\x87\x9eK\xfe,\xf7\xc9\xc9\ -~\xc5\xb9v\xa7j\x8e\xebVH\xfdk -*\xa1\ -\xa6\x8aO\x14\x10\xb0`\xa5\xc18#\x88\x91x\xeb\x98\ -\x80\x8f<\x982\xaa\x17\xdf\xa88l\xe3\xe5C=\xde\ -\xd8!1\x96xo\xa1\xe6\xf4D\xabr[d\xaf\xff\ -\x80x(z\xffzW\x999\xffFY=\x0f\xd3\xf4\ -H=^\x05\xe6\xe3;W\x0b4pN0\xc5V\xc2\ -\x03-\x01\x8cR\x81\xf2nRi\xdb\xe2\x0c\x14C\xef\ -\xff\x09\xce\x9d\xe9\xed\x7fg\xfe\x9dA\xfc\xfd7\x87\xde\ -8R\ +\x00*mx\xda\xe5Z\xddo\xe36\x12\x7f\xcf_\xa1\ +\xd3\xbe\xec\xe2,\x9a\xc3o\xbav\x0a\x5c\x17\x05\xfap\ +/\xd7\x16\xf7xP$\xc6V\xd7\x96\x0cI\x89\x93\xfe\ +\xf57\x94%\xf9K\xceeQ\xf7\xce\xebS\x12\x04\xe4\ +P\xe4\xcc\x8f\xf3\xc5\xa1\xa6\xdf\xbf\xac\x96\xc1\xb3+\xab\ +\xac\xc8g!\x10\x1a\x06.O\x8a4\xcb\xe7\xb3\xf0\xd7\ +_~\x8cL\x18Tu\x9c\xa7\xf1\xb2\xc8\xdd,\xcc\x8b\ +\xf0\xfb\xfb\xbb\xe9_\xa2(\xf8\xa1tq\xed\xd2`\x93\ +\xd5\x8b\xe0\xa7\xfcK\x95\xc4k\x17|\x5c\xd4\xf5z2\ +\x1eo6\x1b\x92\xb5\x9d\xa4(\xe7\xe3OA\x14\xdd\xdf\ +\xddM\xab\xe7\xf9]\x10\xec\xaf\x09\xa1\xef\xc8\xd2Y\x88\ +4\xd646YZ/\x90f\xb7\xcd\x85\xcb\xe6\x8bz\ +\xd7~\xce\xdc\xe6o\xc5\xcb,\xa4\x01\x0d\xb03\xe8\x08\ +\x15r\xbe\xc6\xbfIZ$y\xbcB\x86S\xb7t\xb5\ +\xfbW\x95,\xdc*\xae\xb3\x84\xe0\x1a\xdb\xf5Z\xe6&\ +\xfb\x9c\x10\x16|\xa41\xa5\xc9\xa3\xe4\xdc\x8e\x02F\x19\ +\x8b(\xfe\x8aO\xcdK\x88V^M\xbaWg\xe19\ +a\xfd\xda\xd5:N\x5c5\xee\xfa\xf7\xde\xef\xb8\xec\xdf\ +\xef:HU<\x95\x89{\xc4)\x1c\xc9]=\xfe\xfc\ +\xcb\xe7\x9e\x18Q\x92\xd6\xe9n\x9a\x83\xd57\xbcY\x97\ +QJ\xc7\x9d\x84\xedb\xcf\xf3w\x8e,\xd3\xc7\xa1\x91\ +`\xad\x1dS6F$pDT\xbd\xe6u\xfc\x12\xe5\ +\xd5\x87\xbdW\x93\xa4\x7f3\xf1j\x91=\xbb\xa4X\xad\ +\x8a\xbc\xda\xc2q08\xdd\x0d^?\x95\xcbfD\x9a\ +\x8cq\xa3V.\xaf\xab1\xee\xc38\xbc\xc7\xf1\xd3\x95\ +\xab\xe34\xaec\xff\xeeVC\xba\x1e\xd3\x0c\xc0!\xc8\ +\xd2\xe4\x1f\x9f\x7f\xdc\xb6\xb0\x9d$\x93\x7f\x16\xe5\x97\xb6\ +\x89\x8f\x1f\x10?\x14O\xa8>\xe1}\xdf=M\x93\x09\ +\xc2\x8c*q\x9f\xad\xe2\xb9\xf3P\xfc\x15\xd9\x9b\x8ew\ +\x84\x83\xc1\xf5\xeb\xda\xed&\xddN[\xba\xed~\x0d\x8a\ +\x93&\xab\xcc\xbf4\xfe\xb9\xce\x96\xcb\x9f\xfc\x22a0\ +\xee\xf9\x1c\xb7\x8c\xb6b\x8c\xf7\xe4\x98\x8e;)\x9bV\ +\xea\x1e\xab\x1d\x00\xbe\xa5\xda\x89\xa6\xbd\xba{}K\xbd\ +Ul\x07\xaeq\xb1\xa4X\x16\xe5,\xfc\xf0\xd8<\xe1\ +\x96\xf0P\x94\xa9+;\x92j\x9e\x03R\x81J\x8bl\ +\xa31\xb4\xdd\xc5\xc3o.\xa9\xebb\xe9\xca8\xf7\xa2\ +\x02m)\xf3\x12\x8dt\xa8\xff)K\xdd\x10\xa1\xb78\ +\xcf^\xbf\xd0 \xb5Z\xc4i\xb1\x99\x85\xec\x98\xb8\xc9\ +r$D\x9d\x7f\x90\x1a\xce\x8c\xe8\x5c\x86\x96\xfd\x1c\x88\ +^\x8f\x93h;\xabE\xb1\xf1\x82\xcc\xc2\xc7xY\xb9\ +\xe3\xc9~/\x8a\x95w\x0c\x9a\x1bN\xc5\x097\x09\xba\ + \xc6\x894\x8aQyBD\xe1\xd0f\x91f\xa9\xb5\ +\xea\x0c\x9f8\x83\xb4\xf4\x0c\xd1\xef\x83\xb6g\x88\xab\xf8\ +%[e\xbf\xbbt\x00\xc3\xe4\xa9,\xd1\x96\xa2e\xfc\ +\xeap\xa7\xe7\x86\xc3\x10\xcc\xe8\x14\x93/\xae|(\xe2\ +\xb2\x99\xa5U\xab\xf9\x0e\xb0\xbd7\xab\xfau\x89\xdbY\ +\xd5e\xf1\xc5M>p\x9d\x98\xf8\xe1\xbbms\xbb!\ +\x13\x06]\x1bu\xdf\x95K\xe4\xaf\x9e\x88\xae/\x8dq\ +[\xcb2~\x9d\xe4\x18K:\x03\x9ewV\xd5s\xb6\ +\x8c\x1f\xdcr\x16\xfe\x10\xaf\xe3\xa0[|\xcbM#\xce\ +\xae\xabF\x0d\xab\xbc\xb1\xa2_\x88\xeb2{\xf9\xc8\x89\ +\x05\xa3(S#\x8a?\xbbV\x04Z\xe3N\x08nF\ +\x11\xb7\x9a\x11k\x99\xf9\xd4\xfb\x83\x1d\x13\xad\xd4\x5c\x88\ +\xdd2C\x0b\xf9}U\xa0\xb8\xe4\xcdJ{M\xa1\x09\ +\xe3\xdc\x80\x18\x81P\x84i\x0c$\x9f\xf6\xa6jQ|\ +D\x9f0im\xf3\xbb\x0eR\x91\xfa\x9f?\x0c\xe9\xd6\ +\x0ffe\xb2<\xf4X^\x91e\xb8\xdf\xe5U\x14(\ +gD3~DA\xbd\xc4~\x858\x98\x03\x82\x87g\ +\x1d\xd7\x0b\xce\xb9\x8a \xb2\x07\xc4!\xe1|#j\xad\ +}\x02\xdbf\xf9\xb4t\x13\xf7\xec\xf2\x22M{\xe9S\ +\x81!\x89\x1eJ\x0f\xeb\x97\xaec\x99\xe5\x0e\xd5c\xf2\ +\xf0T\xd7\xfb}\xbf\x15Y>i\xb0\xe9z\xfb\xc5\xf6\ +\xfc-\x22\xe2\xb9>\x90\xa47\x96\x22\xc7\xa9\xeb\xa2\x8c\ +\xd0l\x9e\xe3\xfa\xa9t;\x93:\x94Z0\x0d\x11?\ + \xf9\xa0\x14 T\x06\xbc\x1b\x18!\x9c@\x84f*\ +\xf0\xb6\x0f\x0a\xa8\x18E\x9aX%\xcd\xfb\xa0z76\ +\x14\xbd\x12\xe5\x5c\x5c\x1dD\x12N\x01R\x84J\xa3\xa5\ +\x95\x08\x10zLP\x92\x05h(\x8aR%\xe5H\x12\ +\xae\xed\xa5\xf1\x81\xaf\x87\xe5?\x9b\xd8\x7f\x05@5\x00\ + \xa3Djm\xb5\xf2\x1af\x88VB\x06\x91$B\ +\x19\x83\x89*:\x1aF/\xaf`\x86\x09\xb0\xfc\xea\x14\ +L\x0dX CmB\x0b\xb4\xde\x02\xd1\x05k\xd4\xb0\ + \x02\x8c\xdcLj\x0e\x18\x00\x88\xd2\xfa\xe2\x00Y\xc1\ +\xa5`W\x07\xd0\x91-m\x01B\xe7O\xb9d^\x81\ +\xc0\x12\xf4G:0\xc42\xa9\xf4\x88\x11\xc08u\x1e\ +\x1d\xdb<\xefw\xe5\xed\xf8cw\x85\xd6.\xd9Uz\ +\xf4H\x0d\xf8tK$\xe8\xadF\xa1\xc5\x19\x0b\x22\x88\ +\xd0\x8fi\xcc\x99\xd9\x08m\x8f\x81\xf8\x06|\xfaW$\ +\x02\xd4\x10\x8e)\xf5I\x22\xc0\x04\x91BZs>\x13\ +\xb8\x5c\x160\xa4:\xf0\xbf\x81\x030Na\xb2x\x9a\ +\x17iB\x0d\x15\x94\x9dO\x8c\xf8M\x02\xc2\x14\xe1\x98\ +\xe5\x9e\x00\x220\xd1\x16\xd6h{\x1e\x90\xdb\xd4\x10\xee\ +\xfd\xa8\xe6\xa7\x80P\x22\xa8\xe0\x82\x9f\x07D\xdf$ \ +>\xf2R3\xe0A\x0c\x02ewg\xf1\x01@\xe4m\ +\x02\x22}\x01\x00N\x00\x01A0\xf2Rx\xcb\x87\xc8\ +o\xe7l\xf556#\x09H8=mJB\xadB\ +\xe5y\xe3\xb8\xa9\xd8m\xbaU\x86\xc7\x1f&\x86\x10a\ +\x9cQ\xab\xce#boRE\x80\x11e\xd5i\x9c\xc1\ +t^\x08\x0b\xec\xad\x8a\xc4mf\x22\x960q\x14^\ +\x1b\xb7J\xf1\x08-%\x95o\x95h\xf4\xcd\x1a\x0d\xb3\ +\x03E+ \x86\x1aq\x14\x83\x8e \xa1\xb7\x99\x8dh\ +b\x04;U\x12\x1c\xad\x81i\xf6\x16\x227\x9a\xb0Z\ +BA\x0eF_\x01R)\xfb\x16$\xdfP\xcaz\xa1\ +\xba\xdd@Y\x050\x08\x19K\x99\xf0u;M,\xc8\ + \x09(\xe1\x94j\x10\xa3\x08\xf3\x5c\xc6T |%\ +\x0f\x80\xf9J\xa7\x04!N:\xfe\xc01y\xb8\x96`\ +\x99\xc1\x93\xf9\xf5A(\x07+wF\x19\x0c\xe3\xbe\xf0\ +\x82\x10r\xc4\x87ch\xc78\xc6G\x11&\xc6\x82\xda\ +\x8b\xe3\xe3o\x9d\xb8\xbe>|\xf4\x80\x8a\xf9\xeb\x07\x8a\ +\xfc\x8e\x9a\xc8\xcf\xd02\x03\xf0\xa55m\x04\xaa\x18'\ +\x98?\xc3\xe5\x15H(\x0bW\x08\x90\x1d\xaa\x9ds\xd4\ +\x19)=@\x98=\x0bi\x03hN\xdc\xdcX\x18\x01\ +\xb1V\xdb?\x01\x1f_\xf2\xb9\xbe\xd2\xef\x00>\x18\xf7\ +\xb4\xb0\x1a\xfc\xdd\x02zvN\xb5\x0e$b\xc6\xa8@\ +\x9b\x03\xc2\x8d\x96\x97\xc7\x07\x80k{\x85\xc5\xccS|\ +\x04#\xd2\xa0\xfe\x8c\x9a\x0a\x0e\xd5\x5c\x04\x91%~\xac\ +d\xde\xbe\xb8T\x97\xb7/m\xa9\xb8\xc2\xdb\xbb\x01\xff\ +,\xfcf\xfa\xb3\xf8\xb6\xce+\xa9\x16\x01\xba$+y\ +so\x80\xbe\x94*sy\x07\xcd\xa9\xd2WX\x0c\xd7\ +\x839\x80\x00\xa5Ls\xf5D\x09\x08\x06h_\x00@\ +\x8d\x1e)\x22\xcc\x9f\x00\x8f\x16\x1c\xb3\xf8K\xc13\x1d\ +\xcf\xbb\xefl\xe6'\x9f\x1d\xf8\xfb~t\x1co}V\ +\xe0\xdd!\xc6#e\xa0\xbd\xed\xef\x9b\x1c\xe5W\x9c\xa9\ +\x11:!\x01\xc8\xb5\xdd]\xf6\x1f\xe0pp\xbc\xf6\xb0\ +\xe0)\x85\x9e\xf2\xdcs|\xb8\x9d\xef\xdf\xccn+\xcd\ +Ai\x09;\xff\x1eH\x8bZ\xa7\xa9\xe2#\x05\x04,\ +Xi0\x90\x08b$\x1e\x1dF\xe0C\x0b\xe6\x80\xea\ +\xdc\xc7\x0a\xad\x04\xe7w\xf2P\xa66\xcb\x95x\xf8\xa0\ +\xe6x\x1b\xcb\xe2)O/\x7f\x17\xbb\xc7y\xffeT\ +\x91:\xff\x19V5\x0b\x93d_%.\x00\xf0\xc1\xa9\ +\xa9\x81\x188'\x98.+\xe1!\x96\x00F\xa9@y\ +g\xa8\xb4m\x10\x06\x8aa\xf5\xff\x01\xe1\xd6\xd2\x9a\x7f\ +S\xffu\xdd\xfd\xdd\xbf\x01\xcb`,<\ " qt_resource_name = b"\ @@ -30224,23 +30211,18 @@ \x06\xf4\x91\x87\ \x00c\ \x00o\x00n\x00s\x00o\x00l\x00e\x00.\x00s\x00v\x00g\ -\x00\x0a\ -\x0f\xad;G\ -\x00d\ -\x00i\x00v\x00i\x00d\x00e\x00.\x00s\x00v\x00g\ \x00\x07\ \x03\x83Z'\ \x00m\ \x00a\x00p\x00.\x00s\x00v\x00g\ +\x00\x0a\ +\x0f\xad;G\ +\x00d\ +\x00i\x00v\x00i\x00d\x00e\x00.\x00s\x00v\x00g\ \x00\x0b\ \x05dO\xa7\ \x00r\ \x00a\x00t\x00e\x00_\x00b\x00r\x00.\x00s\x00v\x00g\ -\x00\x14\ -\x0dK\x88'\ -\x00C\ -\x00a\x00t\x00a\x00l\x00o\x00g\x00u\x00e\x00P\x00r\x00i\x00v\x00a\x00t\x00e\x00.\ -\x00s\x00v\x00g\ \x00\x11\ \x09\xaa9g\ \x00p\ @@ -30603,329 +30585,327 @@ \x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00.\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x90*\xaa\xec\x0f\ -\x00\x00\x00T\x00\x02\x00\x00\x00\xa0\x00\x00\x00\x05\ +\x00\x00\x01\x8b\xd7}+v\ +\x00\x00\x00T\x00\x02\x00\x00\x00\x9f\x00\x00\x00\x05\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x0d\xb6\x00\x00\x00\x00\x00\x01\x00\x05\x18\x9b\ -\x00\x00\x01\x90*\xaa\xecB\ -\x00\x00\x0bV\x00\x00\x00\x00\x00\x01\x00\x04-,\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x13\xb4\x00\x00\x00\x00\x00\x01\x00\x07\x11^\ -\x00\x00\x01\x90*\xaa\xec\x5c\ -\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x98\xae\ -\x00\x00\x01\x90*\xaa\xec!\ -\x00\x00\x0a(\x00\x00\x00\x00\x00\x01\x00\x03\xc8\xf9\ -\x00\x00\x01\x90*\xaa\xecK\ -\x00\x00\x11\xe6\x00\x00\x00\x00\x00\x01\x00\x06t\xd3\ -\x00\x00\x01\x90*\xaa\xec7\ -\x00\x00\x13\xee\x00\x01\x00\x00\x00\x01\x00\x07%\xee\ -\x00\x00\x01\x90*\xaa\xecW\ -\x00\x00\x07\x88\x00\x00\x00\x00\x00\x01\x00\x02\xd7T\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x05~\x00\x00\x00\x00\x00\x01\x00\x028S\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x00\x80\xd8\ -\x00\x00\x01\x90*\xaa\xecO\ -\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01\x0f\xe1\ -\x00\x00\x01\x90*\xaa\xec0\ -\x00\x00\x0f2\x00\x00\x00\x00\x00\x01\x00\x05\xa1\xf2\ -\x00\x00\x01\x90*\xaa\xec'\ -\x00\x00\x13$\x00\x00\x00\x00\x00\x01\x00\x06\xe2\xcb\ -\x00\x00\x01\x90*\xaa\xec\x1e\ -\x00\x00\x0d.\x00\x00\x00\x00\x00\x01\x00\x04\xf5\xc2\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x0cx\x00\x00\x00\x00\x00\x01\x00\x04\x99\xb8\ -\x00\x00\x01\x90*\xaa\xec[\ -\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x02 \xfb\ -\x00\x00\x01\x90*\xaa\xecV\ -\x00\x00\x0fT\x00\x00\x00\x00\x00\x01\x00\x05\xab\xc9\ -\x00\x00\x01\x90*\xaa\xec/\ -\x00\x00\x0f\x88\x00\x01\x00\x00\x00\x01\x00\x05\xc1\xef\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x12h\x00\x00\x00\x00\x00\x01\x00\x06\xa7\x8e\ -\x00\x00\x01\x90*\xaa\xec8\ -\x00\x00\x05\x12\x00\x00\x00\x00\x00\x01\x00\x02\x11\x04\ -\x00\x00\x01\x90*\xaa\xecK\ -\x00\x00\x09F\x00\x01\x00\x00\x00\x01\x00\x03h\xb1\ -\x00\x00\x01\x90*\xaa\xecA\ -\x00\x00\x07<\x00\x01\x00\x00\x00\x01\x00\x02\xc2\x9e\ -\x00\x00\x01\x90*\xaa\xecT\ -\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x01\xf0\xc8\ -\x00\x00\x01\x90*\xaa\xecE\ -\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x01\x00\x04\x07\x81\ -\x00\x00\x01\x90*\xaa\xec5\ -\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00'\xd4\ -\x00\x00\x01\x90*\xaa\xecK\ -\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x02\x01l\ -\x00\x00\x01\x90*\xaa\xec>\ -\x00\x00\x0e\xfe\x00\x00\x00\x00\x00\x01\x00\x05\x7f}\ -\x00\x00\x01\x90*\xaa\xecY\ -\x00\x00\x07T\x00\x01\x00\x00\x00\x01\x00\x02\xc7[\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x11\x86\ -\x00\x00\x01\x90*\xaa\xec-\ -\x00\x00\x0bv\x00\x01\x00\x00\x00\x01\x00\x04:t\ -\x00\x00\x01\x90*\xaa\xec*\ -\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00f\x18\ -\x00\x00\x01\x90*\xaa\xec[\ -\x00\x00\x01|\x00\x00\x00\x00\x00\x01\x00\x00\xa7K\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x10\xee\x00\x00\x00\x00\x00\x01\x00\x060r\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x10\xb2\x00\x01\x00\x00\x00\x01\x00\x06\x1cR\ -\x00\x00\x01\x90*\xaa\xec3\ -\x00\x00\x0aL\x00\x01\x00\x00\x00\x01\x00\x03\xd2n\ -\x00\x00\x01\x90*\xaa\xec\x1f\ -\x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x03\xady\ -\x00\x00\x01\x90*\xaa\xec^\ -\x00\x00\x0dn\x00\x01\x00\x00\x00\x01\x00\x05\x0c'\ -\x00\x00\x01\x90*\xaa\xec!\ -\x00\x00\x04\x18\x00\x01\x00\x00\x00\x01\x00\x01\xa9\xcc\ -\x00\x00\x01\x90*\xaa\xecR\ -\x00\x00\x09Z\x00\x00\x00\x00\x00\x01\x00\x03}>\ -\x00\x00\x01\x90*\xaa\xecM\ -\x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x03%\x00\ -\x00\x00\x01\x90*\xaa\xec%\ -\x00\x00\x0d\xdc\x00\x00\x00\x00\x00\x01\x00\x05 s\ -\x00\x00\x01\x90*\xaa\xec>\ -\x00\x00\x0a\x00\x00\x01\x00\x00\x00\x01\x00\x03\xbb%\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x013B\ -\x00\x00\x01\x90*\xaa\xec(\ -\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xf8\xa1\ -\x00\x00\x01\x90*\xaa\xecY\ -\x00\x00\x08\xf8\x00\x00\x00\x00\x00\x01\x00\x03MD\ -\x00\x00\x01\x90*\xaa\xecB\ -\x00\x00\x06\xac\x00\x01\x00\x00\x00\x01\x00\x02\x98\xe8\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x0ex\x00\x01\x00\x00\x00\x01\x00\x05Z~\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00C\x97\ -\x00\x00\x01\x90*\xaa\xecN\ -\x00\x00\x0eF\x00\x01\x00\x00\x00\x01\x00\x05E\x82\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x22{\ -\x00\x00\x01\x90*\xaa\xecZ\ -\x00\x00\x12\x22\x00\x01\x00\x00\x00\x01\x00\x06\x8c\xf9\ -\x00\x00\x01\x90*\xaa\xecG\ -\x00\x00\x03\xea\x00\x01\x00\x00\x00\x01\x00\x01\x96\xdf\ -\x00\x00\x01\x90*\xaa\xecM\ -\x00\x00\x03\xbe\x00\x01\x00\x00\x00\x01\x00\x01\x82(\ -\x00\x00\x01\x90*\xaa\xec2\ -\x00\x00\x0b\x98\x00\x01\x00\x00\x00\x01\x00\x04B\x1b\ -\x00\x00\x01\x90*\xaa\xec<\ -\x00\x00\x03R\x00\x00\x00\x00\x00\x01\x00\x01a\x9e\ -\x00\x00\x01\x90*\xaa\xec.\ -\x00\x00\x13n\x00\x00\x00\x00\x00\x01\x00\x06\xfa\x15\ -\x00\x00\x01\x90*\xaa\xecE\ -\x00\x00\x12\x88\x00\x00\x00\x00\x00\x01\x00\x06\xb2'\ -\x00\x00\x01\x90*\xaa\xecN\ -\x00\x00\x13\x0a\x00\x00\x00\x00\x00\x01\x00\x06\xdb\x1f\ -\x00\x00\x01\x90*\xaa\xec<\ -\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x017\xa9\ -\x00\x00\x01\x90*\xaa\xec2\ -\x00\x00\x02\xa8\x00\x01\x00\x00\x00\x01\x00\x01\x1bJ\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x0f\xd0\x00\x01\x00\x00\x00\x01\x00\x05\xce\x90\ -\x00\x00\x01\x90*\xaa\xecI\ -\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\xb1/\ -\x00\x00\x01\x90*\xaa\xec\x22\ -\x00\x00\x0c\xbc\x00\x01\x00\x00\x00\x01\x00\x04\xd1T\ -\x00\x00\x01\x90*\xaa\xec]\ -\x00\x00\x12>\x00\x00\x00\x00\x00\x01\x00\x06\x9a\x80\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00 \x16\ -\x00\x00\x01\x90*\xaa\xec8\ -\x00\x00\x12\xa2\x00\x00\x00\x00\x00\x01\x00\x06\xbb\x18\ -\x00\x00\x01\x90*\xaa\xec_\ -\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x03U\x15\ -\x00\x00\x01\x90*\xaa\xec,\ -\x00\x00\x04h\x00\x00\x00\x00\x00\x01\x00\x01\xbe\xa7\ -\x00\x00\x01\x90*\xaa\xecJ\ -\x00\x00\x10\x10\x00\x00\x00\x00\x00\x01\x00\x05\xe8a\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x01\xe2\x00\x01\x00\x00\x00\x01\x00\x00\xd7\xb1\ -\x00\x00\x01\x90*\xaa\xecE\ -\x00\x00\x06\x9a\x00\x00\x00\x00\x00\x01\x00\x02\x89Q\ -\x00\x00\x01\x90*\xaa\xecC\ -\x00\x00\x10\xd0\x00\x00\x00\x00\x00\x01\x00\x06%Y\ -\x00\x00\x01\x90*\xaa\xecC\ -\x00\x00\x04\x06\x00\x01\x00\x00\x00\x01\x00\x01\xa3\xc7\ -\x00\x00\x01\x90*\xaa\xecH\ -\x00\x00\x11\x92\x00\x01\x00\x00\x00\x01\x00\x06Zl\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x07\xa2\x00\x00\x00\x00\x00\x01\x00\x02\xe1\xaa\ -\x00\x00\x01\x90*\xaa\xecX\ -\x00\x00\x0ft\x00\x00\x00\x00\x00\x01\x00\x05\xb7(\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xe3\x9c\ -\x00\x00\x01\x90*\xaa\xec%\ -\x00\x00\x0a\xc6\x00\x00\x00\x00\x00\x01\x00\x03\xfb\x0b\ -\x00\x00\x01\x90*\xaa\xec?\ -\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x02H]\ -\x00\x00\x01\x90*\xaa\xec\x5c\ -\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x01?\xd5\ -\x00\x00\x01\x90*\xaa\xec\x1c\ -\x00\x00\x07\x00\x00\x00\x00\x00\x00\x01\x00\x02\xa8\x9e\ -\x00\x00\x01\x90*\xaa\xecZ\ -\x00\x00\x0e\x98\x00\x00\x00\x00\x00\x01\x00\x05a\xa6\ -\x00\x00\x01\x90*\xaa\xec&\ -\x00\x00\x12\xc0\x00\x00\x00\x00\x00\x01\x00\x06\xc6\x93\ -\x00\x00\x01\x90*\xaa\xec[\ -\x00\x00\x0c\xe6\x00\x00\x00\x00\x00\x01\x00\x04\xe4B\ -\x00\x00\x01\x90*\xaa\xecQ\ -\x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x03\x10\x1b\ -\x00\x00\x01\x90*\xaa\xecU\ -\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x02q\x08\ -\x00\x00\x01\x90*\xaa\xec.\ -\x00\x00\x11\xce\x00\x01\x00\x00\x00\x01\x00\x06py\ -\x00\x00\x01\x90*\xaa\xec!\ -\x00\x00\x13\xd8\x00\x00\x00\x00\x00\x01\x00\x07\x1dS\ -\x00\x00\x01\x90*\xaa\xec#\ -\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x03F\xcd\ -\x00\x00\x01\x90*\xaa\xec1\ -\x00\x00\x03>\x00\x00\x00\x00\x00\x01\x00\x01K2\ -\x00\x00\x01\x90*\xaa\xec\x22\ -\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x0314\ -\x00\x00\x01\x90*\xaa\xecX\ -\x00\x00\x0b$\x00\x00\x00\x00\x00\x01\x00\x04\x1aX\ -\x00\x00\x01\x90*\xaa\xecU\ -\x00\x00\x0a\x12\x00\x00\x00\x00\x00\x01\x00\x03\xc1\x1f\ -\x00\x00\x01\x90*\xaa\xecP\ -\x00\x00\x10^\x00\x00\x00\x00\x00\x01\x00\x05\xfd\x89\ -\x00\x00\x01\x90*\xaa\xecL\ -\x00\x00\x0c\x98\x00\x00\x00\x00\x00\x01\x00\x04\xa8\xb7\ -\x00\x00\x01\x90*\xaa\xecT\ -\x00\x00\x0a\xde\x00\x01\x00\x00\x00\x01\x00\x04\x02\xc4\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x11\xb2\x00\x00\x00\x00\x00\x01\x00\x06e(\ -\x00\x00\x01\x90*\xaa\xec0\ -\x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x03\x01\x95\ -\x00\x00\x01\x90*\xaa\xecP\ -\x00\x00\x14\x04\x00\x01\x00\x00\x00\x01\x00\x07-\xd5\ -\x00\x00\x01\x90*\xaa\xec7\ -\x00\x00\x03\xa0\x00\x00\x00\x00\x00\x01\x00\x01v\xc2\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x13P\x00\x00\x00\x00\x00\x01\x00\x06\xf0\xed\ -\x00\x00\x01\x90*\xaa\xecC\ -\x00\x00\x04|\x00\x01\x00\x00\x00\x01\x00\x01\xcb\x04\ -\x00\x00\x01\x90*\xaa\xec+\ -\x00\x00\x0c\xd2\x00\x00\x00\x00\x00\x01\x00\x04\xd6D\ -\x00\x00\x01\x90*\xaa\xec&\ -\x00\x00\x09\xa4\x00\x01\x00\x00\x00\x01\x00\x03\x98S\ -\x00\x00\x01\x90*\xaa\xecI\ -\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x001\x03\ -\x00\x00\x01\x90*\xaa\xec$\ -\x00\x00\x11r\x00\x01\x00\x00\x00\x01\x00\x06S\x97\ -\x00\x00\x01\x90*\xaa\xecR\ -\x00\x00\x05`\x00\x00\x00\x00\x00\x01\x00\x02-B\ -\x00\x00\x01\x90*\xaa\xec?\ -\x00\x00\x0a\x9c\x00\x00\x00\x00\x00\x01\x00\x03\xedB\ -\x00\x00\x01\x90*\xaa\xec\x1f\ -\x00\x00\x10\x96\x00\x00\x00\x00\x00\x01\x00\x06\x0d\xde\ -\x00\x00\x01\x90*\xaa\xec4\ -\x00\x00\x12\x06\x00\x00\x00\x00\x00\x01\x00\x06\x83\xa0\ -\x00\x00\x01\x90*\xaa\xec5\ -\x00\x00\x05\xf8\x00\x01\x00\x00\x00\x01\x00\x02a\xa5\ -\x00\x00\x01\x90*\xaa\xec1\ -\x00\x00\x09\xcc\x00\x00\x00\x00\x00\x01\x00\x03\xa4\xc9\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x02V\xc3\ -\x00\x00\x01\x90*\xaa\xecW\ -\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x9f\x1c\ -\x00\x00\x01\x90*\xaa\xecU\ -\x00\x00\x0cJ\x00\x01\x00\x00\x00\x01\x00\x04\x93,\ -\x00\x00\x01\x90*\xaa\xec>\ -\x00\x00\x08(\x00\x00\x00\x00\x00\x01\x00\x03\x09\x12\ -\x00\x00\x01\x90*\xaa\xecG\ -\x00\x00\x07r\x00\x00\x00\x00\x00\x01\x00\x02\xcc6\ -\x00\x00\x01\x90*\xaa\xecG\ -\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x01\xd0v\ -\x00\x00\x01\x90*\xaa\xecM\ -\x00\x00\x0e*\x00\x00\x00\x00\x00\x01\x00\x05>\x5c\ -\x00\x00\x01\x90*\xaa\xec*\ -\x00\x00\x0c\xfe\x00\x00\x00\x00\x00\x01\x00\x04\xeb\xa4\ -\x00\x00\x01\x90*\xaa\xec@\ -\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xcfT\ -\x00\x00\x01\x90*\xaa\xec9\ -\x00\x00\x01\xaa\x00\x01\x00\x00\x00\x01\x00\x00\xcab\ -\x00\x00\x01\x90*\xaa\xec&\ -\x00\x00\x100\x00\x01\x00\x00\x00\x01\x00\x05\xf6h\ -\x00\x00\x01\x90*\xaa\xec#\ -\x00\x00\x0f\xe8\x00\x00\x00\x00\x00\x01\x00\x05\xd5T\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00s@\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x028\x00\x01\x00\x00\x00\x01\x00\x00\xef\xad\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x01\xe9s\ -\x00\x00\x01\x90*\xaa\xecJ\ -\x00\x00\x0e\xe8\x00\x00\x00\x00\x00\x01\x00\x05u\xbf\ -\x00\x00\x01\x90*\xaa\xecO\ -\x00\x00\x10t\x00\x01\x00\x00\x00\x01\x00\x06\x05\x01\ -\x00\x00\x01\x90*\xaa\xec)\ -\x00\x00\x03h\x00\x01\x00\x00\x00\x01\x00\x01j\xc4\ -\x00\x00\x01\x90*\xaa\xec3\ -\x00\x00\x0f\xb2\x00\x01\x00\x00\x00\x01\x00\x05\xc8\xcf\ -\x00\x00\x01\x90*\xaa\xec$\ -\x00\x00\x07(\x00\x00\x00\x00\x00\x01\x00\x02\xb2\xf2\ -\x00\x00\x01\x90*\xaa\xec9\ -\x00\x00\x0d\xf2\x00\x00\x00\x00\x00\x01\x00\x05(0\ -\x00\x00\x01\x90*\xaa\xecX\ -\x00\x00\x0e\x0e\x00\x00\x00\x00\x00\x01\x00\x053\x97\ -\x00\x00\x01\x90*\xaa\xecJ\ -\x00\x00\x11,\x00\x00\x00\x00\x00\x01\x00\x06B\x8b\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x0b<\x00\x00\x00\x00\x00\x01\x00\x04#\xda\ -\x00\x00\x01\x90*\xaa\xec4\ -\x00\x00\x0d\x9e\x00\x00\x00\x00\x00\x01\x00\x05\x10\x80\ -\x00\x00\x01\x90*\xaa\xecQ\ -\x00\x00\x02l\x00\x00\x00\x00\x00\x01\x00\x01\x05B\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02O\xce\ -\x00\x00\x01\x90*\xaa\xecW\ -\x00\x00\x11\x16\x00\x00\x00\x00\x00\x01\x00\x06;\x04\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x01\xb1N\ -\x00\x00\x01\x90*\xaa\xecB\ -\x00\x00\x11B\x00\x01\x00\x00\x00\x01\x00\x06K?\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x09v\x00\x00\x00\x00\x00\x01\x00\x03\x86\xfa\ -\x00\x00\x01\x90\xe4\x1d\xbaE\ -\x00\x00\x0b\xdc\x00\x00\x00\x00\x00\x01\x00\x04T\xce\ -\x00\x00\x01\x90*\xaa\xec^\ -\x00\x00\x0a|\x00\x01\x00\x00\x00\x01\x00\x03\xd7\x86\ -\x00\x00\x01\x90*\xaa\xec@\ -\x00\x00\x08\x5c\x00\x00\x00\x00\x00\x01\x00\x03\x17\xfc\ -\x00\x00\x01\x90*\xaa\xec\x1f\ -\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\x88$\ -\x00\x00\x01\x90*\xaa\xec]\ -\x00\x00\x03\x86\x00\x01\x00\x00\x00\x01\x00\x01q\x90\ -\x00\x00\x01\x90*\xaa\xecZ\ -\x00\x00\x0b\xfe\x00\x00\x00\x00\x00\x01\x00\x04q\x14\ -\x00\x00\x01\x90*\xaa\xec\x1c\ -\x00\x00\x0dV\x00\x00\x00\x00\x00\x01\x00\x04\xfe\x97\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x0b\xb8\x00\x00\x00\x00\x00\x01\x00\x04G+\ -\x00\x00\x01\x90*\xaa\xecV\ -\x00\x00\x0e\xb8\x00\x01\x00\x00\x00\x01\x00\x05i\xec\ -\x00\x00\x01\x90*\xaa\xec#\ -\x00\x00\x01>\x00\x00\x00\x00\x00\x01\x00\x00\x8dd\ -\x00\x00\x01\x90*\xaa\xec'\ -\x00\x00\x13\x8a\x00\x01\x00\x00\x00\x01\x00\x07\x07\xf2\ -\x00\x00\x01\x90*\xaa\xec)\ -\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x02g\x0a\ -\x00\x00\x01\x90*\xaa\xecP\ -\x00\x00\x08\xc2\x00\x00\x00\x00\x00\x01\x00\x03;e\ -\x00\x00\x01\x90*\xaa\xec0\ -\x00\x00\x0c\x1e\x00\x00\x00\x00\x00\x01\x00\x04z\x96\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x09,\x00\x00\x00\x00\x00\x01\x00\x03^C\ -\x00\x00\x01\x90*\xaa\xec8\ -\x00\x00\x06l\x00\x00\x00\x00\x00\x01\x00\x02\x7f;\ -\x00\x00\x01\x90*\xaa\xec?\ -\x00\x00\x12\xe4\x00\x00\x00\x00\x00\x01\x00\x06\xcd\x94\ -\x00\x00\x01\x90*\xaa\xecC\ +\x00\x00\x0d\x88\x00\x00\x00\x00\x00\x01\x00\x05\x10\xca\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b(\x00\x00\x00\x00\x00\x01\x00\x04\x12\xc1\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x86\x00\x00\x00\x00\x00\x01\x00\x06\xffv\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x95\xa7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09\xfa\x00\x00\x00\x00\x00\x01\x00\x03\xb0[\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x11\xb8\x00\x00\x00\x00\x00\x01\x00\x06f\x8c\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x13\xc0\x00\x00\x00\x00\x00\x01\x00\x07\x13|\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x07\x88\x00\x00\x00\x00\x00\x01\x00\x02\xd5I\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05~\x00\x00\x00\x00\x00\x01\x00\x02-H\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x00~d\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01\x0a\xa7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\x04\x00\x00\x00\x00\x00\x01\x00\x05\x97~\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\xf6\x00\x00\x00\x00\x00\x01\x00\x06\xd1\xc6\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x01\x00\x04\xee\xc8\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0cJ\x00\x00\x00\x00\x00\x01\x00\x04\x89\x0f\ +\x00\x00\x01\x8d\x0d\x8c\x812\ +\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x02\x16\x90\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0f&\x00\x00\x00\x00\x00\x01\x00\x05\xa1\x13\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0fZ\x00\x01\x00\x00\x00\x01\x00\x05\xb6\xa7\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x12:\x00\x00\x00\x00\x00\x01\x00\x06\x981\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\x12\x00\x00\x00\x00\x00\x01\x00\x02\x06\xec\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x09,\x00\x01\x00\x00\x00\x01\x00\x03X\x83\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07<\x00\x01\x00\x00\x00\x01\x00\x02\xc0\xe3\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x01\xe7c\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\xd2\x00\x00\x00\x00\x00\x01\x00\x03\xed\xf9\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00'2\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x01\xf7\xb0\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0e\xd0\x00\x00\x00\x00\x00\x01\x00\x05u\x90\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x07T\x00\x01\x00\x00\x00\x01\x00\x02\xc5\x9c\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x11y\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0bH\x00\x01\x00\x00\x00\x01\x00\x04\x1f\xb2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00d4\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01|\x00\x00\x00\x00\x00\x01\x00\x00\xa3\xc2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\xc0\x00\x00\x00\x00\x00\x01\x00\x06#N\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\x84\x00\x01\x00\x00\x00\x01\x00\x06\x0f\x80\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\x1e\x00\x01\x00\x00\x00\x01\x00\x03\xb9\x8b\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x09\xb6\x00\x00\x00\x00\x00\x01\x00\x03\x95w\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0d@\x00\x01\x00\x00\x00\x01\x00\x05\x04\x95\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04\x18\x00\x01\x00\x00\x00\x01\x00\x01\xa1\xcc\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x09Z\x00\x00\x00\x00\x00\x01\x00\x03w,\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x03 \xda\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0d\xae\x00\x00\x00\x00\x00\x01\x00\x05\x18c\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09\xd2\x00\x01\x00\x00\x00\x01\x00\x03\xa2\xc9\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x01-S\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xf5\xc8\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08\xf8\x00\x00\x00\x00\x00\x01\x00\x03H\x0b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06\xac\x00\x01\x00\x00\x00\x01\x00\x02\x97\xf3\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0eJ\x00\x01\x00\x00\x00\x01\x00\x05Q5\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00B:\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x0e\x18\x00\x01\x00\x00\x00\x01\x00\x05<]\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x1c\xf5\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x11\xf4\x00\x01\x00\x00\x00\x01\x00\x06~\x09\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x03\xea\x00\x01\x00\x00\x00\x01\x00\x01\x8e\xf7\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\xbe\x00\x01\x00\x00\x00\x01\x00\x01z\xa0\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0bj\x00\x00\x00\x00\x00\x01\x00\x04'T\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03R\x00\x00\x00\x00\x00\x01\x00\x01Z\xb2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13@\x00\x00\x00\x00\x00\x01\x00\x06\xe8~\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12Z\x00\x00\x00\x00\x00\x01\x00\x06\xa2w\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x12\xdc\x00\x00\x00\x00\x00\x01\x00\x06\xcaT\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x011\xb4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x02\xa8\x00\x01\x00\x00\x00\x01\x00\x01\x15\xc8\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\xa2\x00\x01\x00\x00\x00\x01\x00\x05\xc38\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\xadk\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0c\x8e\x00\x00\x00\x00\x00\x01\x00\x04\xc0\x07\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x12\x10\x00\x00\x00\x00\x00\x01\x00\x06\x8b|\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xb1\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12t\x00\x00\x00\x00\x00\x01\x00\x06\xab#\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x03O\x9d\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04h\x00\x00\x00\x00\x00\x01\x00\x01\xb6H\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0f\xe2\x00\x00\x00\x00\x00\x01\x00\x05\xdc\x97\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xe2\x00\x01\x00\x00\x00\x01\x00\x00\xd3*\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06\x9a\x00\x00\x00\x00\x00\x01\x00\x02\x88\xce\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\xa2\x00\x00\x00\x00\x00\x01\x00\x06\x18\x80\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04\x06\x00\x01\x00\x00\x00\x01\x00\x01\x9b\xcf\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x11d\x00\x01\x00\x00\x00\x01\x00\x06Ly\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xa2\x00\x00\x00\x00\x00\x01\x00\x02\xdfP\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x0fF\x00\x00\x00\x00\x00\x01\x00\x05\xac*\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xdf\x03\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\x98\x00\x00\x00\x00\x00\x01\x00\x03\xe1\xc4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x02<\xed\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x019\xa4\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x07\x00\x00\x00\x00\x00\x00\x01\x00\x02\xa7\x98\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0ej\x00\x00\x00\x00\x00\x01\x00\x05XR\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\x92\x00\x00\x00\x00\x00\x01\x00\x06\xb6O\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0c\xb8\x00\x00\x00\x00\x00\x01\x00\x04\xdd\xcc\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x03\x0c\x8a\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x02q)\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\xa0\x00\x01\x00\x00\x00\x01\x00\x06b7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\xaa\x00\x00\x00\x00\x00\x01\x00\x07\x0b\x1b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x03A\xca\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03>\x00\x00\x00\x00\x00\x01\x00\x01D\xb7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x03,\xbd\ +\x00\x00\x01\x8e.\xfc\xa1\x87\ +\x00\x00\x0a\xf6\x00\x00\x00\x00\x00\x01\x00\x04\x00\x83\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x03\xa8\xbb\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x100\x00\x00\x00\x00\x00\x01\x00\x05\xf1]\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0cj\x00\x00\x00\x00\x00\x01\x00\x04\x97\xa2\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0a\xb0\x00\x01\x00\x00\x00\x01\x00\x03\xe9C\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\x84\x00\x00\x00\x00\x00\x01\x00\x06W.\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x02\xfev\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x13\xd6\x00\x01\x00\x00\x00\x01\x00\x07-\x9d\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x03\xa0\x00\x00\x00\x00\x00\x01\x00\x01o\x88\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x22\x00\x00\x00\x00\x00\x01\x00\x06\xdf\x9b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04|\x00\x01\x00\x00\x00\x01\x00\x01\xc2T\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0c\xa4\x00\x00\x00\x00\x00\x01\x00\x04\xd0)\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09v\x00\x01\x00\x00\x00\x01\x00\x03\x80\x9e\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x000\x1c\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x11D\x00\x01\x00\x00\x00\x01\x00\x06E\xaf\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x05`\x00\x00\x00\x00\x00\x01\x00\x02\x22\x82\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0an\x00\x00\x00\x00\x00\x01\x00\x03\xd4Q\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10h\x00\x00\x00\x00\x00\x01\x00\x06\x01k\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\xd8\x00\x00\x00\x00\x00\x01\x00\x06t\xf5\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xf8\x00\x00\x00\x00\x00\x01\x00\x02U\xa8\ +\x00\x00\x01\x8d\x0d\x8c\x812\ +\x00\x00\x09\x9e\x00\x00\x00\x00\x00\x01\x00\x03\x8d\x01\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x02K\x12\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x9e!\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0c\x1c\x00\x01\x00\x00\x00\x01\x00\x04\x82\x8b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08(\x00\x00\x00\x00\x00\x01\x00\x03\x05\xb7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07r\x00\x00\x00\x00\x00\x01\x00\x02\xcan\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x01\xc7\xbe\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0d\xfc\x00\x00\x00\x00\x00\x01\x00\x055q\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x04\xe4\xf3\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xcb\x07\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xaa\x00\x01\x00\x00\x00\x01\x00\x00\xc6\x1d\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x10\x02\x00\x01\x00\x00\x00\x01\x00\x05\xeaE\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\xba\x00\x00\x00\x00\x00\x01\x00\x05\xc9\xf2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00q\x06\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x028\x00\x01\x00\x00\x00\x01\x00\x00\xea\xc3\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x01\xe0D\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0e\xba\x00\x00\x00\x00\x00\x01\x00\x05l\x19\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x10F\x00\x01\x00\x00\x00\x01\x00\x05\xf8\x99\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x03h\x00\x01\x00\x00\x00\x01\x00\x01c\x9e\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\x84\x00\x01\x00\x00\x00\x01\x00\x05\xbd}\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07(\x00\x00\x00\x00\x00\x01\x00\x02\xb1\x9f\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0d\xc4\x00\x00\x00\x00\x00\x01\x00\x05\x1f\xe6\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0d\xe0\x00\x00\x00\x00\x00\x01\x00\x05*\xfd\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x10\xfe\x00\x00\x00\x00\x00\x01\x00\x064\xe5\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\x0e\x00\x00\x00\x00\x00\x01\x00\x04\x09\xb4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0dp\x00\x00\x00\x00\x00\x01\x00\x05\x08\xe9\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x02l\x00\x00\x00\x00\x00\x01\x00\x01\x00R\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02D\x22\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x10\xe8\x00\x00\x00\x00\x00\x01\x00\x06-\x9a\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x01\xa9J\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\x14\x00\x01\x00\x00\x00\x01\x00\x06=_\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\xae\x00\x00\x00\x00\x00\x01\x00\x04E,\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0aN\x00\x01\x00\x00\x00\x01\x00\x03\xbe\x9d\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x08\x5c\x00\x00\x00\x00\x00\x01\x00\x03\x141\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\x80\x94\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\x86\x00\x01\x00\x00\x00\x01\x00\x01j^\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0b\xd0\x00\x00\x00\x00\x00\x01\x00\x04a+\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x0d(\x00\x00\x00\x00\x00\x01\x00\x04\xf7Y\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0b\x8a\x00\x00\x00\x00\x00\x01\x00\x047\xed\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0e\x8a\x00\x01\x00\x00\x00\x01\x00\x05`Y\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01>\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x97\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x5c\x00\x01\x00\x00\x00\x01\x00\x06\xf6\x14\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x02gq\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08\xc2\x00\x00\x00\x00\x00\x01\x00\x036\xaa\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\xf0\x00\x00\x00\x00\x00\x01\x00\x04jo\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09@\x00\x00\x00\x00\x00\x01\x00\x03m\x0b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06l\x00\x00\x00\x00\x00\x01\x00\x02\x7f\x01\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\xb6\x00\x00\x00\x00\x00\x01\x00\x06\xbd\x15\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ " def qInitResources(): diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index ab5896cd6..cf0f56508 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -320,6 +320,13 @@ def get_dc_indices(self) -> IntVec: """ return np.where(self.dc != 0)[0] + def get_series_admittance(self) -> CxVec: + """ + + :return: + """ + return 1.0 / (self.R + 1.0j * self.X) + def get_linear_series_admittance(self) -> Vec: """ Get the linear version of the series admittance for ACDC systems diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 60267f594..eb030e7f9 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -20,6 +20,7 @@ import scipy.sparse as sp from typing import List, Tuple, Dict, Union, TYPE_CHECKING + from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.basic_structures import Vec, IntVec, CxVec @@ -770,7 +771,7 @@ def branch_rates(self): @property def ac_indices(self): """ - Array of indices of the AC Branches + Array of indices of the AC buses :return: array of indices """ if self.simulation_indices_ is None: @@ -781,7 +782,7 @@ def ac_indices(self): @property def dc_indices(self): """ - Array of indices of the DC Branches + Array of indices of the DC buses :return: array of indices """ if self.simulation_indices_ is None: @@ -1477,92 +1478,104 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'Jacobian': - from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian + # from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian # compute admittances - Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) - Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( - Cf=self.Cf, - Ct=self.Ct, - C_bus_shunt=self.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=self.shunt_data.Y, - shunt_active=self.shunt_data.active, - ys=Ys, - B=self.branch_data.B, - Sbase=self.Sbase, - tap_module=self.branch_data.tap_module, - tap_angle=self.branch_data.tap_angle, - Beq=self.branch_data.Beq, - Gsw=self.branch_data.G0sw, - virtual_tap_from=self.branch_data.virtual_tap_f, - virtual_tap_to=self.branch_data.virtual_tap_t, - ) - - idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] - idx_dvm = np.r_[self.pq, self.p] - idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_v_m] - idx_dtau = np.r_[self.k_pf_tau, self.k_pf_dp] - # idx_dbeq = np.r_[self.k_qf_beq, self.k_vf_beq] - idx_dbeq = np.r_[self.k_qf_beq] - - idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] - idx_dQ = np.r_[self.pq, self.pqv, self.i_vt_m] - idx_dQf = np.r_[self.k_qf_m, self.k_qf_beq] - idx_dQt = self.k_qt_m - idx_dPf = self.k_pf_tau - idx_dPdp = self.k_pf_dp - - J = fubm_jacobian( - nbus=self.nbus, - idx_dtheta=idx_dtheta, - idx_dvm=idx_dvm, - idx_dm=idx_dm, - idx_dtau=idx_dtau, - idx_dbeq=idx_dbeq, - idx_dP=idx_dP, - idx_dQ=idx_dQ, - idx_dQf=idx_dQf, - idx_dQt=idx_dQt, - idx_dPf=idx_dPf, - idx_dPdp=idx_dPdp, - F=self.F, - T=self.T, - Ys=Ys, - kconv=self.branch_data.k, - complex_tap=tap, - tap_modules=self.branch_data.tap_module, - Bc=self.branch_data.B, - Beq=self.branch_data.Beq, - Kdp=self.branch_data.Kdp, - V=self.Vbus, - Vm=np.abs(self.Vbus), - Ybus_x=self.Ybus.data, - Ybus_p=self.Ybus.indptr, - Ybus_i=self.Ybus.indices, - yff=self.admittances_.yff, - yft=self.admittances_.yft, - ytf=self.admittances_.ytf, - ytt=self.admittances_.ytt - ) - - cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] - cols += ['2) dVm {0}'.format(i) for i in idx_dvm] - cols += ['3) dm {0}'.format(i) for i in idx_dm] - cols += ['4) dtau {0}'.format(i) for i in idx_dtau] - cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] - - rows = ['1) dP {0}'.format(i) for i in idx_dP] - rows += ['2) dQ {0}'.format(i) for i in idx_dQ] - rows += ['3) dQf {0}'.format(i) for i in idx_dQf] - rows += ['4) dQt {0}'.format(i) for i in idx_dQt] - rows += ['5) dPf {0}'.format(i) for i in idx_dPf] - rows += ['9) dPfdp {0}'.format(i) for i in idx_dPdp] - - df = pd.DataFrame( - data=J.toarray(), - columns=cols, - index=rows, - ) + # Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) + # Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( + # Cf=self.Cf, + # Ct=self.Ct, + # C_bus_shunt=self.shunt_data.C_bus_elm.tocsc(), + # shunt_admittance=self.shunt_data.Y, + # shunt_active=self.shunt_data.active, + # ys=Ys, + # B=self.branch_data.B, + # Sbase=self.Sbase, + # tap_module=self.branch_data.tap_module, + # tap_angle=self.branch_data.tap_angle, + # Beq=self.branch_data.Beq, + # Gsw=self.branch_data.G0sw, + # virtual_tap_from=self.branch_data.virtual_tap_f, + # virtual_tap_to=self.branch_data.virtual_tap_t, + # ) + + # idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] + # idx_dvm = np.r_[self.pq, self.p] + # idx_dm = self.k_v_m + # idx_dtau = self.k_pf_tau + # idx_dbeq = self.k_qf_beq + # + # idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] + # idx_dQ = np.r_[self.pq, self.pqv] + # idx_dPf = self.k_pf_tau + # idx_dQf = self.k_qf_beq + + # J = fubm_jacobian( + # nbus=self.nbus, + # idx_dtheta=idx_dtheta, + # idx_dvm=idx_dvm, + # idx_dm=idx_dm, + # idx_dtau=idx_dtau, + # idx_dbeq=idx_dbeq, + # idx_dP=idx_dP, + # idx_dQ=idx_dQ, + # idx_dQf=idx_dQf, + # idx_dPf=idx_dPf, + # F=self.F, + # T=self.T, + # Ys=Ys, + # kconv=self.branch_data.k, + # complex_tap=tap, + # tap_modules=self.branch_data.tap_module, + # Bc=self.branch_data.B, + # Beq=self.branch_data.Beq, + # Kdp=self.branch_data.Kdp, + # V=self.Vbus, + # Vm=np.abs(self.Vbus), + # Ybus_x=self.Ybus.data, + # Ybus_p=self.Ybus.indptr, + # Ybus_i=self.Ybus.indices, + # yff=self.admittances_.yff, + # yft=self.admittances_.yft, + # ytf=self.admittances_.ytf, + # ytt=self.admittances_.ytt + # ) + from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import \ + PfAdvancedFormulation + from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions + formulation = PfAdvancedFormulation(V0=self.Vbus, + S0=self.Sbus, + I0=self.Ibus, + Y0=self.YLoadBus, + Qmin=self.Qmin_bus, + Qmax=self.Qmax_bus, + pq=self.pq, + pv=self.pv, + pqv=self.pqv, + p=self.p, + nc=self, + options=PowerFlowOptions()) + + # J = formulation.Jacobian(autodiff=True) + # + # cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] + # cols += ['2) dVm {0}'.format(i) for i in idx_dvm] + # cols += ['3) dm {0}'.format(i) for i in idx_dm] + # cols += ['4) dtau {0}'.format(i) for i in idx_dtau] + # cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] + # + # rows = ['1) dP {0}'.format(i) for i in idx_dP] + # rows += ['2) dQ {0}'.format(i) for i in idx_dQ] + # rows += ['5) dPf {0}'.format(i) for i in idx_dPf] + # rows += ['3) dQf {0}'.format(i) for i in idx_dQf] + # + # df = pd.DataFrame( + # data=J.toarray(), + # columns=cols, + # index=rows, + # ) + + df = formulation.get_jacobian_df(autodiff=True) elif structure_type == 'Qmin': df = pd.DataFrame( diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index a0bbe82fb..57b399d31 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -207,8 +207,10 @@ def __init__(self, self.regulation_bus: Bus = regulation_bus self.regulation_cn: ConnectivityNode = regulation_cn - self.register(key='R', units='p.u.', tpe=float, definition='Total positive sequence resistance.') - self.register(key='X', units='p.u.', tpe=float, definition='Total positive sequence reactance.') + self.register(key='R', units='p.u.', tpe=float, definition='Total positive sequence resistance.', + old_names=['R1', 'Rl']) + self.register(key='X', units='p.u.', tpe=float, definition='Total positive sequence reactance.', + old_names=['X1', 'Xl']) self.register(key='G', units='p.u.', tpe=float, definition='Total positive sequence shunt conductance.') self.register(key='B', units='p.u.', tpe=float, definition='Total positive sequence shunt susceptance.') self.register(key='R0', units='p.u.', tpe=float, definition='Total zero sequence resistance.') @@ -225,9 +227,11 @@ def __init__(self, 'is expected for transformers0% for lines.') self.register(key='tap_module', units='', tpe=float, definition='Tap changer module, it a value close to 1.0', - profile_name='tap_module_prof', old_names=['tap']) - self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value') - self.register(key='tap_module_min', units='', tpe=float, definition='Tap changer module min value') + profile_name='tap_module_prof', old_names=['tap', 'm']) + self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value', + old_names=['m_max']) + self.register(key='tap_module_min', units='', tpe=float, definition='Tap changer module min value', + old_names=['m_min']) self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, definition='Control available with the tap module', @@ -235,7 +239,7 @@ def __init__(self, self.register(key='vset', units='p.u.', tpe=float, definition='Objective voltage at the "to" side of the bus when regulating the tap.', - profile_name='vset_prof') + profile_name='vset_prof', old_names=['Vdc_set']) self.register(key='regulation_bus', units='', tpe=DeviceType.BusDevice, definition='Bus where the regulation is applied.', editable=False) @@ -244,9 +248,11 @@ def __init__(self, definition='Connectivity node where the regulation is applied.', editable=False) self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', - profile_name='tap_phase_prof', old_names=['angle']) - self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) - self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) + profile_name='tap_phase_prof', old_names=['angle', 'theta']) + self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', + old_names=['angle_max', 'theta_max']) + self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', + old_names=['angle_min', 'theta_min']) self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, definition='Control available with the tap angle', old_names=['tap_angle_control_mode'], @@ -254,7 +260,7 @@ def __init__(self, self.register(key='Pset', units='p.u.', tpe=float, definition='Objective power at the "from" side of when regulating the angle.', - profile_name='Pset_prof') + profile_name='Pset_prof', old_names=['Pdc_set']) # self.register(key='regulation_branch', units='', tpe=DeviceType.BranchDevice, # definition='Branch where the controls are applied.', editable=False) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index d9928a6ff..9d49b6cc2 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -26,7 +26,7 @@ from GridCalEngine.Devices.Parents.editable_device import GCProp from GridCalEngine.Devices.profile import Profile from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import (DiagramType, DeviceType, SubObjectType) +from GridCalEngine.enumerations import (DiagramType, DeviceType, SubObjectType, TapPhaseControl, TapModuleControl) def get_objects_dictionary() -> Dict[str, ALL_DEV_TYPES]: @@ -866,6 +866,37 @@ def parse_object_type_from_dataframe(main_df: pd.DataFrame, if property_name in ['is_controlled', 'Bmin', 'Bmax', 'Vset']: skip = True + if template_elm.device_type == DeviceType.VscDevice: + if property_name == 'control_mode': + if "Pdc" in property_value: + elm.tap_phase_control_mode = TapPhaseControl.Pf + skip = True + if "Vac" in property_value: + elm.tap_module_control_mode = TapModuleControl.Vm + elm.regulation_bus = elm.bus_to + skip = True + if "Vdc" in property_value: + elm.tap_module_control_mode = TapModuleControl.Vm + elm.regulation_bus = elm.bus_from + skip = True + elif property_name == 'Vac_set': + elm.vset = property_value + skip = True + + elif property_name == 'Vdc_set': + elm.vset = property_value + skip = True + + if template_elm.device_type == DeviceType.Transformer2WDevice: + if property_name == 'control_mode': + if "Pf" in property_value: + elm.tap_phase_control_mode = TapPhaseControl.Pf + skip = True + if "V" in property_value: + elm.tap_module_control_mode = TapModuleControl.Vm + elm.regulation_bus = elm.bus_to + skip = True + if property_name == 'contingency_enabled': # this is a branch with the legacy property "contingency_enabled", hence, create a contingency on_the_fly.create_contingency(elm=elm) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 5c335721b..cc667802a 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -16,12 +16,14 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Tuple import numpy as np +import pandas as pd from numba import njit -from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices +from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices, compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit import GridCalEngine.Simulations.derivatives.csc_derivatives as deriv +from GridCalEngine.Utils.NumericalMethods.autodiff import calc_autodiff_jacobian from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method @@ -151,9 +153,8 @@ def get_Sf(k: IntVec, Vm: Vec, V: CxVec, yff: CxVec, yft: CxVec, F: IntVec, T: I class PfAdvancedFormulation(PfFormulationTemplate): - def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, # Pset: Vec, + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, - # k_pf_tau: IntVec, k_v_m: IntVec, k_qf_beq: IntVec, nc: NumericalCircuit, options: PowerFlowOptions): """ @@ -167,9 +168,6 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: :param pv: :param pqv: :param p: - :param k_pf_tau: - :param k_v_m: - :param k_qf_beq: :param nc: :param options: """ @@ -322,59 +320,178 @@ def fx(self) -> Vec: ] return self._f - def Jacobian(self) -> CSC: + def fx_diff(self, x: Vec): """ - Get the Jacobian + + :param x: :return: """ - # Assumes the internal vars were updated already with self.x2var() - if self.adm.Ybus.format != 'csc': - self.adm.Ybus = self.adm.Ybus.tocsc() - - n_rows = len(self.idx_dP) + len(self.idx_dQ) + len(self.idx_dQf) + len(self.idx_dPf) - n_cols = len(self.idx_dVa) + len(self.idx_dVm) + len(self.idx_dm) + len(self.idx_dtau) + len(self.idx_dbeq) - - if n_cols != n_rows: - raise ValueError("Incorrect J indices!") + a = len(self.idx_dVa) + b = a + len(self.idx_dVm) + c = b + len(self.k_pf_tau) + d = c + len(self.k_v_m) + e = d + len(self.k_qf_beq) - # NOTE: beq, m, and tau are not of size nbranch + # update the vectors + Va = self.Va.copy() + Vm = self.Vm.copy() m = np.ones(self.nc.nbr, dtype=float) tau = np.zeros(self.nc.nbr, dtype=float) beq = np.zeros(self.nc.nbr, dtype=float) - m[self.k_v_m] = self.m - tau[self.k_pf_tau] = self.tau - beq[self.k_qf_beq] = self.beq - tap = polar_to_rect(m, tau) - - J = adv_jacobian(nbus=self.nc.nbus, - idx_dtheta=self.idx_dVa, - idx_dvm=self.idx_dVm, - idx_dm=self.idx_dm, - idx_dtau=self.idx_dtau, - idx_dbeq=self.idx_dtau, - idx_dP=self.idx_dP, - idx_dQ=self.idx_dQ, - idx_dQf=self.idx_dQf, - idx_dPf=self.idx_dPf, - F=self.nc.F, - T=self.nc.T, - Ys=1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X), - kconv=self.nc.branch_data.k, - complex_tap=tap, - tap_modules=m, - Bc=self.nc.branch_data.B, - Beq=beq, - V=self.V, - Vm=self.Vm, - Ybus_x=self.adm.Ybus.data, - Ybus_p=self.adm.Ybus.indptr, - Ybus_i=self.adm.Ybus.indices, - yff=self.adm.yff, - yft=self.adm.yft) + Va[self.idx_dVa] += x[0:a] + Vm[self.idx_dVm] += x[a:b] + tau[self.k_pf_tau] += x[b:c] + m[self.k_v_m] += x[c:d] + beq[self.k_qf_beq] += x[d:e] + + # compute the complex voltage + V = polar_to_rect(Vm, Va) + + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, + Ct=self.nc.Ct, + C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=self.nc.shunt_data.Y, + shunt_active=self.nc.shunt_data.active, + ys=self.nc.branch_data.get_series_admittance(), + B=self.nc.branch_data.B, + Sbase=self.nc.Sbase, + tap_module=m, + tap_angle=tau, + Beq=beq, + Gsw=self.nc.branch_data.G0sw, + virtual_tap_from=self.nc.branch_data.virtual_tap_f, + virtual_tap_to=self.nc.branch_data.virtual_tap_t) + + Sbus = compute_zip_power(self.S0, self.I0, self.Y0, Vm) + Scalc = compute_power(Ybus, V) + + dS = Scalc - Sbus # compute the mismatch + + Pf = get_Sf(k=self.k_pf_tau, Vm=Vm, V=V, yff=yff, yft=yft, F=self.nc.F, T=self.nc.T).real + + Qf = get_Sf(k=self.k_qf_beq, Vm=Vm, V=V, yff=yff, yft=yft, F=self.nc.F, T=self.nc.T).real + + f = np.r_[ + dS[self.idx_dP].real, + dS[self.idx_dQ].imag, + Pf - self.Pset, + Qf # Qf - 0 + ] + return f + + def Jacobian(self, autodiff: bool = False) -> CSC: + """ + Get the Jacobian + :return: + """ + if autodiff: + J = calc_autodiff_jacobian(func=self.fx_diff, x=self.var2x()) + + else: + # Assumes the internal vars were updated already with self.x2var() + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + tau[self.k_pf_tau] = self.tau + m[self.k_v_m] = self.m + beq[self.k_qf_beq] = self.beq + + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, + Ct=self.nc.Ct, + C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=self.nc.shunt_data.Y, + shunt_active=self.nc.shunt_data.active, + ys=self.nc.branch_data.get_series_admittance(), + B=self.nc.branch_data.B, + Sbase=self.nc.Sbase, + tap_module=m, + tap_angle=tau, + Beq=beq, + Gsw=self.nc.branch_data.G0sw, + virtual_tap_from=self.nc.branch_data.virtual_tap_f, + virtual_tap_to=self.nc.branch_data.virtual_tap_t) + + n_rows = len(self.idx_dP) + len(self.idx_dQ) + len(self.idx_dQf) + len(self.idx_dPf) + n_cols = len(self.idx_dVa) + len(self.idx_dVm) + len(self.idx_dm) + len(self.idx_dtau) + len(self.idx_dbeq) + + if n_cols != n_rows: + raise ValueError("Incorrect J indices!") + + # NOTE: beq, m, and tau are not of size nbranch + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + m[self.k_v_m] = self.m + tau[self.k_pf_tau] = self.tau + beq[self.k_qf_beq] = self.beq + tap = polar_to_rect(m, tau) + + J = adv_jacobian(nbus=self.nc.nbus, + idx_dtheta=self.idx_dVa, + idx_dvm=self.idx_dVm, + idx_dm=self.idx_dm, + idx_dtau=self.idx_dtau, + idx_dbeq=self.idx_dtau, + idx_dP=self.idx_dP, + idx_dQ=self.idx_dQ, + idx_dQf=self.idx_dQf, + idx_dPf=self.idx_dPf, + F=self.nc.F, + T=self.nc.T, + Ys=1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X), + kconv=self.nc.branch_data.k, + complex_tap=tap, + tap_modules=m, + Bc=self.nc.branch_data.B, + Beq=beq, + V=self.V, + Vm=self.Vm, + Ybus_x=Ybus.data, + Ybus_p=Ybus.indptr, + Ybus_i=Ybus.indices, + yff=yff, + yft=yft) return J + def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: + """ + Get the Jacobian DataFrame + :return: DataFrame + """ + J = self.Jacobian(autodiff=autodiff) + + idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dvm = np.r_[self.pq, self.p] + idx_dm = self.k_v_m + idx_dtau = self.k_pf_tau + idx_dbeq = self.k_qf_beq + + idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dQ = np.r_[self.pq, self.pqv] + idx_dPf = self.k_pf_tau + idx_dQf = self.k_qf_beq + + cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] + cols += ['2) dVm {0}'.format(i) for i in idx_dvm] + cols += ['3) dm {0}'.format(i) for i in idx_dm] + cols += ['4) dtau {0}'.format(i) for i in idx_dtau] + cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] + + rows = ['1) dP {0}'.format(i) for i in idx_dP] + rows += ['2) dQ {0}'.format(i) for i in idx_dQ] + rows += ['5) dPf {0}'.format(i) for i in idx_dPf] + rows += ['3) dQf {0}'.format(i) for i in idx_dQf] + + return pd.DataFrame( + data=J.toarray(), + columns=cols, + index=rows, + ) + def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: """ Get the problem solution diff --git a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py index ba7c08f47..fd0612e4c 100644 --- a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py @@ -871,9 +871,7 @@ def fubm_jacobian(nbus: int, idx_dP: IntVec, idx_dQ: IntVec, idx_dQf: IntVec, - idx_dQt: IntVec, idx_dPf: IntVec, - idx_dPdp: IntVec, F: IntVec, T: IntVec, Ys: CxVec, @@ -903,9 +901,7 @@ def fubm_jacobian(nbus: int, :param idx_dP: :param idx_dQ: :param idx_dQf: - :param idx_dQt: :param idx_dPf: - :param idx_dPdp: :param F: :param T: :param Ys: @@ -926,7 +922,7 @@ def fubm_jacobian(nbus: int, :param ytt: :return: """ - n_rows = len(idx_dP) + len(idx_dQ) + len(idx_dQf) + len(idx_dQt) + len(idx_dPf) + len(idx_dPdp) + n_rows = len(idx_dP) + len(idx_dQ) + len(idx_dQf) + len(idx_dPf) n_cols = len(idx_dtheta) + len(idx_dvm) + len(idx_dm) + len(idx_dtau) + len(idx_dbeq) if not np.all(idx_dtau == idx_dPf): @@ -946,39 +942,39 @@ def fubm_jacobian(nbus: int, dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dtheta) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dtheta) + dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real dQf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag # dQt_dVa_ = deriv.dSt_dVa_csc(nbus, idx_dQt, idx_dtheta, ytf, V, F, T).imag - dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real # dPdp_dVa = deriv.dSf_dVa_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, V, F, T).real dP_dVm__ = sp_slice(dS_dVm.real, idx_dP, idx_dvm) dQ_dVm__ = sp_slice(dS_dVm.imag, idx_dQ, idx_dvm) + dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real dQf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag # dQt_dVm_ = deriv.dSt_dVm_csc(nbus, idx_dQt, idx_dtheta, ytt, ytf, V, F, T).imag - dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real # dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) - dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real - dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) - dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real - dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag + dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag # dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag - dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real # dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag # dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real # dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real + dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag + dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag + # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) + # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real + # compose the Jacobian # J = csc_stack_2d_ff(mats= # [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, @@ -990,10 +986,10 @@ def fubm_jacobian(nbus: int, # n_rows=6, n_cols=5) J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, - dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, - dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, - dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_], + [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, + dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, + dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, + dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_,], n_rows=4, n_cols=5) if J.n_cols != J.n_rows: diff --git a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py index 1cb2372db..606f9908c 100644 --- a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py @@ -1175,7 +1175,7 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo # from side if f_idx >= 0: - dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k], 2.0) + dyff_dBeq = 1j / (1j * kconv[k] * kconv[k] * tap_module[k] + 1e-20) Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) Ti[nnz] = f_idx Tj[nnz] = k_counter @@ -1219,7 +1219,7 @@ def dSf_dbeq_csc(sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec f = F[k] # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq - dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k], 2.0) + dyff_dBeq = 1j / (1j * kconv[k] * kconv[k] * tap_module[k] + 1e-20) # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index b2b1df998..727195ec9 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -39,7 +39,8 @@ def __init__(self, ytf: CxVec, ytt: CxVec, Yshunt_bus: CxVec, - Gsw: Vec): + Gsw: Vec, + beq: Vec): """ Constructor :param Ybus: Admittance matrix @@ -76,6 +77,8 @@ def __init__(self, self.Gsw = Gsw + self.beq = beq + def modify_taps(self, m: Vec, m2: Vec, tau: Vec, tau2: Vec, idx: Union[IntVec, None] = None) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix]: """ @@ -115,6 +118,23 @@ def modify_taps(self, m: Vec, m2: Vec, tau: Vec, tau2: Vec, return self.Ybus, self.Yf, self.Yt + def copy(self) -> "AdmittanceMatrices": + """ + Get a deep copy + """ + return AdmittanceMatrices(Ybus=self.Ybus.copy(), + Yf=self.Yf.copy(), + Yt=self.Yt.copy(), + Cf=self.Cf.copy(), + Ct=self.Ct.copy(), + yff=self.yff.copy(), + yft=self.yft.copy(), + ytf=self.ytf.copy(), + ytt=self.ytt.copy(), + Yshunt_bus=self.Yshunt_bus.copy(), + Gsw=self.Gsw.copy(), + beq=self.beq.copy()) + def compute_admittances(R: Vec, X: Vec, @@ -411,7 +431,8 @@ def compile_y_acdc(Cf: sp.csc_matrix, Beq: Vec, Gsw: Vec, virtual_tap_from: Vec, - virtual_tap_to: Vec) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec, CxVec, CxVec, CxVec, CxVec]: + virtual_tap_to: Vec) -> Tuple[ + sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec, CxVec, CxVec, CxVec, CxVec]: """ Compile the admittance matrices using the variable elements :param Cf: Connectivity branch-bus "from" with the branch states computed diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index df4bfb466..557c26a0f 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -98,33 +98,32 @@ def __init__(self, # master aray of bus types (nbus) self.bus_types = bus_types - # master array of branch control types (nbr) + # arrays for branch control types (nbr) self.tap_module_control_mode = tap_module_control_mode self.tap_controlled_buses = tap_controlled_buses - self.tap_phase_control_mode = tap_phase_control_mode - self.is_converter = is_converter # AC and DC indices self.ac: IntVec = np.where(~is_dc_bus)[0] self.dc: IntVec = np.where(is_dc_bus)[0] - # bus type indices - self.pq: IntVec = np.zeros(0, dtype=int) - self.pqv: IntVec = np.zeros(0, dtype=int) - self.pv: IntVec = np.zeros(0, dtype=int) # PV-local - self.p: IntVec = np.zeros(0, dtype=int) # PV-remote - self.vd: IntVec = np.zeros(0, dtype=int) - self.no_slack: IntVec = np.zeros(0, dtype=int) - # branch control indices self.any_control: bool = False # indices of the Branches controlling Pf flow with tau + self.k_pf_tau: IntVec = np.zeros(0, dtype=int) + self.k_qf_beq: IntVec = np.zeros(0, dtype=int) + self.k_v_m: IntVec = np.zeros(0, dtype=int) self.k_pf_tau, self.k_qf_beq, self.k_v_m = self.analyze_branch_controls() # determine the bus indices + self.pq: IntVec = np.zeros(0, dtype=int) + self.pv: IntVec = np.zeros(0, dtype=int) # PV-local + self.p: IntVec = np.zeros(0, dtype=int) # PV-remote + self.pqv: IntVec = np.zeros(0, dtype=int) # PV-remote pair + self.vd: IntVec = np.zeros(0, dtype=int) # slack + self.no_slack: IntVec = np.zeros(0, dtype=int) # all bus indices that are not slack, sorted self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=Pbus, types=self.bus_types) @property From ff30e33ef5d9d35ddcd65d51086ba1a3dd303e41 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 30 Jul 2024 08:40:52 +0100 Subject: [PATCH 018/218] Plenty of small refactors --- .idea/workspace.xml | 276 +++++++---- .../Compilers/circuit_to_data.py | 27 +- .../DataStructures/numerical_circuit.py | 91 +--- .../continuation_power_flow.py | 2 +- .../{derivatives => Derivatives}/__init__.py | 0 .../ac_jacobian.py | 4 +- .../acdc_jacobian.py | 2 +- .../csc_derivatives.py | 2 +- .../csr_derivatives.py | 0 .../matpower_derivatives.py | 0 .../LinearFactors/linear_analysis.py | 4 +- .../OPF/NumericalMethods/ac_opf.py | 6 +- .../NumericalMethods/ac_opf_derivatives.py | 464 ++++++++++-------- .../generalised_power_flow.py | 6 +- .../iwamoto_newton_raphson.py | 2 +- .../NumericalMethods/levenberg_marquardt.py | 2 +- .../levenberg_marquardt_acdc.py | 2 +- .../NumericalMethods/newton_raphson.py | 2 +- .../NumericalMethods/newton_raphson_acdc.py | 2 +- .../NumericalMethods/newton_raphson_fx.py | 4 +- .../NumericalMethods/newton_raphson_ode.py | 2 +- .../pf_advanced_formulation.py | 77 +-- .../NumericalMethods/pf_basic_formulation.py | 2 +- .../Topology/admittance_matrices.py | 2 +- .../Utils/NumericalMethods/autodiff.py | 2 +- src/tests/newton_equivalence_utils.py | 2 +- src/tests/test_derivatives.py | 137 ++++-- src/trunk/acopf/jacobian.py | 2 +- src/trunk/pf/power_flow_research.py | 2 +- src/trunk/pf/power_flow_research_hvdc.py | 2 +- src/trunk/pf/power_flow_research_sinj.py | 2 +- 31 files changed, 606 insertions(+), 524 deletions(-) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/__init__.py (100%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/ac_jacobian.py (98%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/acdc_jacobian.py (99%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/csc_derivatives.py (99%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/csr_derivatives.py (100%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/matpower_derivatives.py (100%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d1a70b669..136e45e5d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,22 +28,38 @@ - + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + + - + - - - @@ -696,19 +672,19 @@ - - - + + + - - - + + + @@ -1457,13 +1433,6 @@ - - - - - - - 1656059954202 @@ -1808,7 +1777,7 @@ - @@ -1841,7 +1810,7 @@ - @@ -1854,6 +1823,13 @@ + + + + + + + @@ -1872,14 +1848,7 @@ - - - - - - - - @@ -2352,17 +2321,17 @@ file://$PROJECT_DIR$/src/tests/test_derivatives.py - 480 + 514 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 476 + 510 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py - 931 + 932 @@ -2373,12 +2342,12 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py - 987 + 988 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py - 997 + 998 @@ -2409,42 +2378,52 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 132 + 134 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 458 + 461 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py - 1227 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py - 1232 + 1255 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 266 + 276 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 285 + 296 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 247 + 256 + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py + 251 + + + file://$PROJECT_DIR$/src/tests/test_derivatives.py + 229 + + + file://$PROJECT_DIR$/src/tests/test_derivatives.py + 475 + @@ -2572,9 +2551,10 @@ - + + @@ -2805,7 +2785,7 @@ - + @@ -2845,13 +2825,13 @@ - + - + diff --git a/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py index 5c8357fd3..182f85391 100644 --- a/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py @@ -863,6 +863,7 @@ def fubm_jacobian_old(nb, nl, # @nb.njit() def fubm_jacobian(nbus: int, + nbr: int, idx_dtheta: IntVec, idx_dvm: IntVec, idx_dm: IntVec, @@ -956,22 +957,22 @@ def fubm_jacobian(nbus: int, dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag - dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real - dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag + dPf_dm_ = deriv.dSf_dm_csc(nbr, idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real + dQf_dm_ = deriv.dSf_dm_csc(nbr, idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag # dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag # dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real - dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + dPf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + dQf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag # dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag # dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag + dPf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dQf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 221c9a88c..0142cd9a6 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -614,6 +614,8 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbus: + :param nbr: :param iPxsh: array of indices {iPfsh or iPfdp} :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices @@ -711,15 +713,15 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) - j_lookup = make_lookup(nbus, bus_indices) + i_lookup = make_lookup(nbus, bus_indices) nnz = 0 # for j_counter, j in enumerate(bus_indices): # para cada columna j ... for k_counter, k in enumerate(tau_indices): f = F[k] t = T[k] - f_idx = j_lookup[f] - t_idx = j_lookup[t] + f_idx = i_lookup[f] + t_idx = i_lookup[t] # from side if f_idx >= 0: @@ -744,12 +746,13 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV @njit() -def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSf_dtau_csc(nbr, sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: number of branches :param sf_indices: array of sf indices :param tau_indices: array of branch indices with tau control (must be equal to sf_indices) :param F: Array of branch "from" bus indices @@ -767,19 +770,24 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(tau_indices): - f = F[k] - t = T[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) + i_idx = i_lookup[k] - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) - Ti[nnz] = k_idx - Tj[nnz] = k_idx - nnz += 1 + if i_idx > -1: + f = F[k] + t = T[k] + + # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) + + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -788,12 +796,13 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv @njit() -def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSt_dtau_csc(nbr, sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: number of branches :param sf_indices: array of sf indices :param tau_indices: array of branch indices with tau control :param F: Array of branch "from" bus indices @@ -813,22 +822,23 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(tau_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] - t = T[k] + if i_idx > -1: + f = F[k] + t = T[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) + # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift + ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -933,7 +943,7 @@ def dSbus_dm_csc(nbus, bus_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, :param Ys: Array of branch series admittances :param Bc: Array of branch total susceptance values (sum of the two legs) :param Beq: Array of regulation susceptance of the FUBM model - :param k2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param tap_module: Array of tap modules :param V: Array of complex voltages @@ -982,7 +992,7 @@ def dSbus_dm_csc(nbus, bus_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, @njit() -def dSf_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec, Beq: Vec, +def dSf_dm_csc(nbr, sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec, Beq: Vec, kconv: Vec, tap: CxVec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) @@ -1006,25 +1016,26 @@ def dSf_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(m_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] - t = T[k] + if i_idx > -1: + f = F[k] + t = T[k] - YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) + YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) - # Partials of Ytt, Yff, Yft and Ytf w.r.t.ma - dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) - dyft_dma = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) + # Partials of Ytt, Yff, Yft and Ytf w.r.t.ma + dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) + dyft_dma = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(dyff_dma * V[f] + dyft_dma * V[t]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(dyff_dma * V[f] + dyft_dma * V[t]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -1033,13 +1044,14 @@ def dSf_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec @njit() -def dSt_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, +def dSt_dm_csc(nbr, sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: :param sf_indices: array of sf indices :param m_indices: array of branch indices with tau control :param F: Array of branch "from" bus indices @@ -1060,21 +1072,22 @@ def dSt_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Ve Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(m_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] - t = T[k] + if i_idx > -1: + f = F[k] + t = T[k] - dytf_dma = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) + dytf_dma = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[t] * np.conj(dytf_dma * V[f]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[t] * np.conj(dytf_dma * V[f]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -1175,7 +1188,15 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo # from side if f_idx >= 0: - dyff_dBeq = 1j / (1j * kconv[k] * kconv[k] * tap_module[k] + 1e-20) + """ + # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq + dyff_dBeq = 1j / np.power(kconv[idx] * tap_module[idx], 2.0) + + # Partials of S w.r.t.Beq + val_f = V[f] * np.conj(dyff_dBeq * V[f]) + """ + + dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k] + 1e-20, 2.0) Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) Ti[nnz] = f_idx Tj[nnz] = k_counter @@ -1190,12 +1211,13 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo @njit() -def dSf_dbeq_csc(sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: +def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: Number of branches :param sf_indices: array of sf indices :param beq_indices: array of branch indices with tau control :param F: Array of branch "from" bus indices @@ -1211,21 +1233,22 @@ def dSf_dbeq_csc(sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(beq_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] + if i_idx > -1: + f = F[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq - dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k] + 1e-20, 2.0) + # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq + dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k] + 1e-20, 2.0) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) diff --git a/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py index ac3fefcaf..1672f3956 100644 --- a/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py @@ -18,7 +18,7 @@ import numpy as np from typing import Tuple from scipy.sparse import diags, csc_matrix, vstack, hstack -from GridCalEngine.basic_structures import CxVec, IntVec +from GridCalEngine.basic_structures import CxVec, IntVec, Vec def dSbus_dV_matpower(Ybus: csc_matrix, V: CxVec) -> Tuple[csc_matrix, csc_matrix]: @@ -147,6 +147,144 @@ def dSt_dV_matpower(Yt, V, T, Ct, Vc, diagVc, diagE, diagV): return dSt_dVa.tocsc(), dSt_dVm.tocsc() +def dS_dm_matpower(V: CxVec, Cf: csc_matrix, Ct: csc_matrix, + R: Vec, X: Vec, B: Vec, Beq: Vec, k2: Vec, m: Vec, tau: Vec): + """ + + :param V: + :param Cf: + :param Ct: + :param R: + :param X: + :param B: + :param Beq: + :param k2: + :param m: + :param tau: + :return: + """ + diagV = diags(V) + Vf = Cf @ V + Vt = Ct @ V + diagVf = diags(Vf) + diagVt = diags(Vt) + + ys = 1.0 / (R + 1j * X + 1e-20) + + dyff_dm = (-2.0 * (ys + 1.0j * B / 2.0 + 1.0j * Beq)) / (np.power(k2, 2) * np.power(m, 3)) + dyft_dm = ys / (k2 * np.power(m, 2) * np.exp(-1j * tau)) + dytf_dm = ys / (k2 * np.power(m, 2) * np.exp(1j * tau)) + dytt_dm = np.zeros(len(m)) + + dYf_dm = diags(dyff_dm) @ Cf + diags(dyft_dm) @ Ct + dYt_dm = diags(dytf_dm) @ Cf + diags(dytt_dm) @ Ct + + dY_dm = Cf.T @ dYf_dm + Ct.T @ dYt_dm + + dS_dm = diagV @ np.conj(dY_dm @ diagV) + dSf_dm = diagVf @ diags(np.conj(dYf_dm @ V)) + dSt_dm = diagVt @ diags(np.conj(dYt_dm @ V)) + + return dS_dm, dSf_dm, dSt_dm + + +def dS_dtau_matpower(V: CxVec, Cf: csc_matrix, Ct: csc_matrix, + R: Vec, X: Vec, k2: Vec, m: Vec, tau: Vec): + """ + Ybus = Cf' * Yf + Ct' * Yt + diag(Ysh) + + Yf = Yff * Cf + Yft * Ct + Yt = Ytf * Cf + Ytt * Ct + + Ytt = Ys + 1j*Bc/2 + Yff = Gsw+( (Ytt+1j*Beq) ./ ((k2.^2).*tap .* conj(tap)) ) %%< csc_matrix: """ Computes the system Jacobian matrix in polar coordinates diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index e27d8fd05..9989e6035 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -35,6 +35,7 @@ # @njit() def adv_jacobian(nbus: int, + nbr: int, idx_dva: IntVec, idx_dvm: IntVec, idx_dm: IntVec, @@ -62,6 +63,7 @@ def adv_jacobian(nbus: int, """ :param nbus: + :param nbr: :param idx_dva: :param idx_dvm: :param idx_dm: @@ -109,18 +111,18 @@ def adv_jacobian(nbus: int, dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag - dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real - dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag + dPf_dm_ = deriv.dSf_dm_csc(nbr, idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real + dQf_dm_ = deriv.dSf_dm_csc(nbr, idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real - dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + dPf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + dQf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag + dPf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dQf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag # compose the Jacobian J = csc_stack_2d_ff(mats= @@ -431,6 +433,7 @@ def Jacobian(self, autodiff: bool = False) -> CSC: tap = polar_to_rect(m, tau) J = adv_jacobian(nbus=self.nc.nbus, + nbr=self.nc.nbr, idx_dva=self.idx_dVa, idx_dvm=self.idx_dVm, idx_dm=self.idx_dm, diff --git a/src/tests/test_derivatives.py b/src/tests/test_derivatives.py index 8acc03be4..86bf32c9e 100644 --- a/src/tests/test_derivatives.py +++ b/src/tests/test_derivatives.py @@ -227,6 +227,15 @@ def test_tau_derivatives() -> None: # tap=nc.branch_data.tap, # V=nc.Vbus) + # dSbus_dtau1, dSf_dtau1, dSt_dtau1 = mdiff.dS_dtau_matpower(V=nc.Vbus, + # Cf=nc.Cf, + # Ct=nc.Ct, + # R=nc.branch_data.R, + # X=nc.branch_data.X, + # k2=nc.branch_data.k, + # m=nc.branch_data.tap_module, + # tau=nc.branch_data.tap_angle) + # check_dSbus_dtau(dSbus_dtau1, br_idx, bus_idx, Ys, nc) dSbus_dtau2 = cscdiff.dSbus_dtau_csc(nbus=nc.nbus, @@ -239,7 +248,7 @@ def test_tau_derivatives() -> None: tap=nc.branch_data.tap, V=nc.Vbus) - dSbus_dtau3 = dSbus_dtau1.tocsc()[bus_idx, :] + dSbus_dtau3 = dSbus_dtau1[bus_idx, :] # print(f"dSbus_dsh1 (matpower):\n {dSbus_dsh1.real.toarray()}") # print(f"dSbus_dsh3 (matpower):\n {dSbus_dsh3.real.toarray()}") @@ -249,7 +258,8 @@ def test_tau_derivatives() -> None: # check_dSf_dtau(dSf_dtau1, sf_idx, br_idx, Ys, nc) - dSf_dtau2 = cscdiff.dSf_dtau_csc(sf_indices=sf_idx, + dSf_dtau2 = cscdiff.dSf_dtau_csc(nbr=nc.nbr, + sf_indices=sf_idx, tau_indices=tau_idx, F=nc.F, T=nc.T, @@ -258,7 +268,7 @@ def test_tau_derivatives() -> None: tap=nc.branch_data.tap, V=nc.Vbus) - dSf_dtau3 = dSf_dtau1.tocsc()[sf_idx, :] + dSf_dtau3 = dSf_dtau1[sf_idx, :] # print(f"dSf_dtau1 (matpower):\n {dSf_dtau1.real.toarray()}") # print(f"dSf_dtau3 (matpower):\n {dSf_dtau3.real.toarray()}") @@ -268,7 +278,8 @@ def test_tau_derivatives() -> None: # check_dSt_dtau(dSt_dtau1, sf_idx, br_idx, Ys, nc) - dSt_dtau2 = cscdiff.dSt_dtau_csc(sf_indices=sf_idx, + dSt_dtau2 = cscdiff.dSt_dtau_csc(nbr=nc.nbr, + sf_indices=sf_idx, tau_indices=tau_idx, F=nc.F, T=nc.T, @@ -277,7 +288,7 @@ def test_tau_derivatives() -> None: tap=nc.branch_data.tap, V=nc.Vbus) - dSt_dtau3 = dSt_dtau1.tocsc()[sf_idx, :] + dSt_dtau3 = dSt_dtau1[sf_idx, :] # print(f"dSt_dtau1 (matpower):\n {dSt_dtau1.real.toarray()}") # print(f"dSt_dtau3 (matpower):\n {dSt_dtau3.real.toarray()}") @@ -321,31 +332,43 @@ def test_m_derivatives() -> None: bus_idx = dta["bus_idx"] sf_idx = dta["sf_idx"] - # dSbus_dm1, dSf_dm1, dSt_dm1 = cscdiff.derivatives_ma_csc_numba(nbus=nc.nbus, - # nbr=nc.nbr, - # iXxma=m_idx, - # F=nc.F, - # T=nc.T, - # Ys=Ys, - # kconv=nc.branch_data.k, - # tap=nc.branch_data.tap, - # tap_module=nc.branch_data.tap_module, - # Bc=nc.branch_data.B, - # Beq=nc.branch_data.Beq, - # V=nc.Vbus) - - (dSbus_dm1, dSf_dm1, dSt_dm1, - dSbus_dtau1, dSf_dtau1, dSt_dtau1) = compute_branch_power_derivatives(all_tap_m=nc.branch_data.tap_module, - all_tap_tau=nc.branch_data.tap_angle, - V=nc.Vbus, - k_m=m_idx, - k_tau=np.empty(0, dtype=int), - Cf=nc.Cf, - Ct=nc.Ct, - F=nc.F, - T=nc.T, - R=nc.branch_data.R, - X=nc.branch_data.X) + dSbus_dm1, dSf_dm1, dSt_dm1 = cscdiff.derivatives_ma_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iXxma=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + V=nc.Vbus) + dSbus_dm1, dSf_dm1, dSt_dm1 = mat_to_scipy(dSbus_dm1), mat_to_scipy(dSf_dm1), mat_to_scipy(dSt_dm1) + + # (dSbus_dm1, dSf_dm1, dSt_dm1, + # dSbus_dtau1, dSf_dtau1, dSt_dtau1) = compute_branch_power_derivatives(all_tap_m=nc.branch_data.tap_module, + # all_tap_tau=nc.branch_data.tap_angle, + # V=nc.Vbus, + # k_m=m_idx, + # k_tau=np.empty(0, dtype=int), + # Cf=nc.Cf, + # Ct=nc.Ct, + # F=nc.F, + # T=nc.T, + # R=nc.branch_data.R, + # X=nc.branch_data.X) + + # dSbus_dm1, dSf_dm1, dSt_dm1 = mdiff.dS_dm_matpower(V=nc.Vbus, + # Cf=nc.Cf, + # Ct=nc.Ct, + # R=nc.branch_data.R, + # X=nc.branch_data.X, + # B=nc.branch_data.B, + # Beq=nc.branch_data.Beq, + # k2=nc.branch_data.k, + # m=nc.branch_data.tap_module, + # tau=nc.branch_data.tap_angle) dSbus_dm2 = cscdiff.dSbus_dm_csc(nbus=nc.nbus, bus_indices=bus_idx, @@ -359,10 +382,11 @@ def test_m_derivatives() -> None: tap=nc.branch_data.tap, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSbus_dm3 = dSbus_dm1.tocsc()[bus_idx, :] + dSbus_dm3 = dSbus_dm1[bus_idx, :] assert np.allclose(dSbus_dm3.toarray(), dSbus_dm2.toarray()) - dSf_dm2 = cscdiff.dSf_dm_csc(sf_indices=sf_idx, + dSf_dm2 = cscdiff.dSf_dm_csc(nbr=nc.nbr, + sf_indices=sf_idx, m_indices=m_idx, F=nc.F, T=nc.T, @@ -373,10 +397,11 @@ def test_m_derivatives() -> None: tap=nc.branch_data.tap, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSf_dm3 = dSf_dm1.tocsc()[sf_idx, :] + dSf_dm3 = dSf_dm1[sf_idx, :] assert np.allclose(dSf_dm3.toarray(), dSf_dm2.toarray()) - dSt_dm2 = cscdiff.dSt_dm_csc(sf_indices=sf_idx, + dSt_dm2 = cscdiff.dSt_dm_csc(nbr=nc.nbr, + sf_indices=sf_idx, m_indices=m_idx, F=nc.F, T=nc.T, @@ -385,7 +410,8 @@ def test_m_derivatives() -> None: tap=nc.branch_data.tap, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSt_dm3 = dSt_dm1.tocsc()[sf_idx, :] + dSt_dm3 = dSt_dm1[sf_idx, :] + assert np.allclose(dSt_dm3.toarray(), dSt_dm2.toarray()) @@ -431,6 +457,13 @@ def test_beq_derivatives() -> None: kconv=nc.branch_data.k, tap_module=nc.branch_data.tap_module, V=nc.Vbus) + dSbus_dbeq1, dSf_dbeq1, dSt_dbeq1 = mat_to_scipy(dSbus_dbeq1), mat_to_scipy(dSf_dbeq1), mat_to_scipy(dSt_dbeq1) + + # dSbus_dbeq1, dSf_dbeq1, dSt_dbeq1 = mdiff.dS_dbeq_matpower(V=nc.Vbus, + # Cf=nc.Cf, + # Ct=nc.Ct, + # k2=nc.branch_data.k, + # m=nc.branch_data.tap_module) dSbus_dbeq2 = cscdiff.dSbus_dbeq_csc(nbus=nc.nbus, bus_indices=bus_idx, @@ -439,16 +472,17 @@ def test_beq_derivatives() -> None: kconv=nc.branch_data.k, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSbus_dbeq3 = mat_to_scipy(dSbus_dbeq1)[bus_idx, :] + dSbus_dbeq3 = dSbus_dbeq1[bus_idx, :] assert np.allclose(dSbus_dbeq3.toarray(), dSbus_dbeq2.toarray()) - dSf_dbeq2 = cscdiff.dSf_dbeq_csc(sf_indices=sf_idx, + dSf_dbeq2 = cscdiff.dSf_dbeq_csc(nbr=nc.nbr, + sf_indices=sf_idx, beq_indices=m_idx, F=nc.F, kconv=nc.branch_data.k, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSf_dbeq3 = mat_to_scipy(dSf_dbeq1)[sf_idx, :] + dSf_dbeq3 = dSf_dbeq1[sf_idx, :] assert np.allclose(dSf_dbeq3.toarray(), dSf_dbeq2.toarray()) # dSt_dbeq is zero @@ -483,7 +517,7 @@ def test_jacobian(): if __name__ == '__main__': # test_branch_derivatives() - # test_tau_derivatives() - # test_m_derivatives() - # test_beq_derivatives() - test_jacobian() + test_tau_derivatives() + test_m_derivatives() + test_beq_derivatives() + # test_jacobian() From f1cf310529d43d124f7b1c51041b1f470f77c74d Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 31 Jul 2024 16:40:35 +0100 Subject: [PATCH 020/218] Added Pt and Qt derivatives --- .idea/workspace.xml | 303 +++---- src/GridCal/Gui/Main/MainWindow.py | 11 +- src/GridCal/Gui/Main/MainWindow.ui | 6 +- src/GridCal/Gui/Main/icons.qrc | 1 + src/GridCal/Gui/Main/icons_rc.py | 795 ++++++++++++------ .../Compilers/circuit_to_data.py | 2 + .../DataStructures/branch_data.py | 3 + .../DataStructures/numerical_circuit.py | 2 +- .../Devices/Branches/transformer.py | 2 + src/GridCalEngine/Devices/Branches/vsc.py | 2 + src/GridCalEngine/Devices/Branches/winding.py | 2 + .../Parents/controllable_branch_parent.py | 27 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 33 +- .../Derivatives/csc_derivatives.py | 22 +- .../NumericalMethods/common_functions.py | 39 +- .../pf_advanced_formulation.py | 205 ++--- .../Topology/simulation_indices.py | 55 +- src/GridCalEngine/enumerations.py | 5 +- src/tests/test_ac_opf.py | 5 +- src/tests/test_admittance_tap_derivatives.py | 22 +- src/tests/test_derivatives.py | 4 +- 21 files changed, 1005 insertions(+), 541 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 36e949659..456c0c0bd 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,12 +28,27 @@ - + + - - - - - - - - - - - - - - - - - - - - + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.test_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - + - + @@ -697,19 +682,19 @@ + - - + - + - - + + @@ -1459,6 +1444,7 @@ + 1656059954202 @@ -1803,7 +1789,7 @@ - @@ -1849,8 +1835,6 @@ - - @@ -1874,7 +1858,9 @@ - @@ -2433,17 +2419,17 @@ - - + - + + - + @@ -2466,8 +2452,8 @@ - + @@ -2476,13 +2462,13 @@ - - + + - + @@ -2509,10 +2495,10 @@ - - + + @@ -2549,13 +2535,14 @@ - + + @@ -2567,8 +2554,8 @@ - + @@ -2619,8 +2606,8 @@ - + @@ -2830,7 +2817,7 @@ - + diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py index 3261b2d83..6c37db899 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py @@ -52,6 +52,8 @@ def __init__(self, self._callbacks: List[Callable[[float, float], None]] = list() + + def add_position_change_callback(self, fcn: Callable[[float, float], None]): """ Add callable function diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py index 938c4f3ed..d4d5ad30d 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py @@ -88,7 +88,9 @@ def __init__(self, # self.resize(r) self.setAcceptHoverEvents(True) # Enable hover events for the item # self.setFlag(QtWidgets.QGraphicsItem.GraphicsItemFlag.ItemIsMovable) # Allow moving the node - self.setFlag(self.GraphicsItemFlag.ItemIsSelectable) # Allow selecting the node + self.setFlag( + self.GraphicsItemFlag.ItemIsSelectable | QGraphicsRectItem.ItemIsMovable) # Allow selecting the node + self.setCursor(QCursor(Qt.PointingHandCursor)) # Create a pen with reduced line width @@ -230,7 +232,6 @@ def deSelectItem(self): self.itemSelected = False self.setDefaultColor() - def mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent): """ Event handler for mouse release events. @@ -295,8 +296,6 @@ def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent): icon_path="", function_ptr=self.new_substation_diagram) - - menu.exec_(event.screenPos()) def create_new_line(self): @@ -338,7 +337,7 @@ def add_function(self): pass - def remove_function(self): + def remove_function(self) -> None: """ Function to be called when Action 1 is selected. """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py index 2b58e58e0..1db3cb589 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py @@ -136,6 +136,9 @@ def __init__(self, self.selectedItems = list() + self.setDragMode(QGraphicsView.DragMode.RubberBandDrag) + self.setRubberBandSelectionMode(Qt.IntersectsItemShape) + def mousePressEvent(self, event: QMouseEvent): """ diff --git a/src/trunk/qt_related/multi_select.py b/src/trunk/qt_related/multi_select.py new file mode 100644 index 000000000..a2500c6de --- /dev/null +++ b/src/trunk/qt_related/multi_select.py @@ -0,0 +1,34 @@ +from PySide6.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsRectItem +from PySide6.QtGui import QPen, QBrush, QColor, QPainter +from PySide6.QtCore import Qt + + +class MultiSelectScene(QGraphicsScene): + def __init__(self, parent=None): + super().__init__(parent) + + # Add items with default flags to the scene + for i in range(5): + item = QGraphicsRectItem(i * 30, i * 30, 50, 50) + item.setFlags(QGraphicsRectItem.ItemIsSelectable | QGraphicsRectItem.ItemIsMovable) + item.setPen(QPen(Qt.black)) + item.setBrush(QBrush(QColor(255, 0, 0, 127))) # Semi-transparent red + self.addItem(item) + + +class MultiSelectView(QGraphicsView): + def __init__(self, scene, parent=None): + super().__init__(scene, parent) + self.setRenderHint(QPainter.Antialiasing) + self.setDragMode(QGraphicsView.DragMode.RubberBandDrag) + + +if __name__ == "__main__": + app = QApplication([]) + + scene = MultiSelectScene() + view = MultiSelectView(scene) + view.setWindowTitle("QGraphicsScene Multi-Selection with Default Flags") + view.show() + + app.exec() From 4707c5b7a863dcdbbf1bfc6e4be8914c8f6f0bfb Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 1 Aug 2024 15:30:13 +0100 Subject: [PATCH 022/218] Made regulation bus and cn editable Added ability to set the voltage control from the pertinent branches Removed redundant control catch code --- .../Gui/Diagrams/MapWidget/map_widget.py | 4 +-- .../Branches/transformer2w_graphics.py | 28 ++++++++++++++++- .../SchematicWidget/Branches/upfc_graphics.py | 30 ++++++++++++++++++- .../SchematicWidget/Branches/vsc_graphics.py | 29 ++++++++++++++++++ .../Gui/Main/SubClasses/Model/diagrams.py | 11 +++++-- .../Parents/controllable_branch_parent.py | 4 +-- src/GridCalEngine/IO/gridcal/pack_unpack.py | 14 ++------- 7 files changed, 101 insertions(+), 19 deletions(-) diff --git a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py index 1db3cb589..ccd6f1843 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py @@ -30,7 +30,7 @@ from __future__ import annotations from typing import List, Union, Tuple, Callable, TYPE_CHECKING from enum import Enum -from PySide6.QtCore import Qt, QTimer, QEvent, QPointF, QRectF +from PySide6.QtCore import Qt, QTimer, QEvent, QPointF from PySide6.QtGui import (QPainter, QColor, QPixmap, QCursor, QMouseEvent, QKeyEvent, QWheelEvent, QResizeEvent, QEnterEvent, QPaintEvent, QDragEnterEvent, QDragMoveEvent, QDropEvent) @@ -497,7 +497,7 @@ def tile_src(self, tile_src: Tiles): while abs(self.view.schema_zoom - 0.015625) > 0.00001: self.view.schema_zoom = self.view.schema_zoom / self.view.map_widget.zoom_factor self.view.scale(1.0 / self.view.map_widget.zoom_factor, 1.0 / self.view.map_widget.zoom_factor) - self.GotoLevelAndPosition(level=0, longitude=None, latitude=None) + self.GotoLevelAndPosition(level=0, longitude=0, latitude=0) @property def max_level(self): diff --git a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py index b35a979f6..07f719108 100644 --- a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +++ b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py @@ -24,7 +24,7 @@ from GridCal.Gui.Diagrams.SchematicWidget.Branches.transformer_editor import TransformerEditor from GridCal.Gui.Diagrams.SchematicWidget.Branches.transformer_taps_editor import TransformerTapsEditor from GridCalEngine.Devices.Branches.transformer import Transformer2W, TransformerType -from GridCalEngine.enumerations import DeviceType +from GridCalEngine.enumerations import DeviceType, TapModuleControl if TYPE_CHECKING: # Only imports the below statements during type checking from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget @@ -107,6 +107,16 @@ def contextMenuEvent(self, event): function_ptr=self.tap_down, icon_path=":/Icons/icons/down.svg") + add_menu_entry(menu=menu, + text="Control V from", + function_ptr=self.control_v_from, + icon_path=":/Icons/icons/edit.svg") + + add_menu_entry(menu=menu, + text="Control V to", + function_ptr=self.control_v_to, + icon_path=":/Icons/icons/edit.svg") + menu.addSeparator() add_menu_entry(menu=menu, @@ -240,3 +250,19 @@ def tap_down(self): Set one tap down """ self.api_object.tap_down() + + def control_v_from(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_from + self.api_object.tap_module_control_mode = TapModuleControl.Vm + + def control_v_to(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_to + self.api_object.tap_module_control_mode = TapModuleControl.Vm diff --git a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py index b268f5de8..6ee55efed 100644 --- a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +++ b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py @@ -21,6 +21,7 @@ from GridCal.Gui.GuiFunctions import add_menu_entry from GridCal.Gui.Diagrams.SchematicWidget.terminal_item import BarTerminalItem from GridCalEngine.Devices.Branches.upfc import UPFC +from GridCalEngine.enumerations import TapModuleControl from GridCal.Gui.Diagrams.SchematicWidget.Branches.line_graphics_template import LineGraphicTemplateItem if TYPE_CHECKING: # Only imports the below statements during type checking @@ -90,6 +91,18 @@ def contextMenuEvent(self, event): menu.addSeparator() + add_menu_entry(menu=menu, + text="Control V from", + function_ptr=self.control_v_from, + icon_path=":/Icons/icons/edit.svg") + + add_menu_entry(menu=menu, + text="Control V to", + function_ptr=self.control_v_to, + icon_path=":/Icons/icons/edit.svg") + + menu.addSeparator() + ra6 = menu.addAction('Plot profiles') plot_icon = QIcon() plot_icon.addPixmap(QPixmap(":/Icons/icons/plot.svg")) @@ -108,7 +121,22 @@ def contextMenuEvent(self, event): ra5.setIcon(ra5_icon) ra5.triggered.connect(self.assign_status_to_profile) - menu.exec_(event.screenPos()) else: pass + + def control_v_from(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_from + self.api_object.tap_module_control_mode = TapModuleControl.Vm + + def control_v_to(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_to + self.api_object.tap_module_control_mode = TapModuleControl.Vm diff --git a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py index f572c9f2a..aed61cf4c 100644 --- a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +++ b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py @@ -21,6 +21,7 @@ from GridCal.Gui.GuiFunctions import add_menu_entry from GridCal.Gui.Diagrams.SchematicWidget.terminal_item import BarTerminalItem, RoundTerminalItem from GridCalEngine.Devices.Branches.vsc import VSC +from GridCalEngine.enumerations import TapModuleControl from GridCal.Gui.Diagrams.SchematicWidget.Branches.line_graphics_template import LineGraphicTemplateItem if TYPE_CHECKING: # Only imports the below statements during type checking @@ -95,6 +96,18 @@ def contextMenuEvent(self, event): menu.addSeparator() + add_menu_entry(menu=menu, + text="Control V from", + function_ptr=self.control_v_from, + icon_path=":/Icons/icons/edit.svg") + + add_menu_entry(menu=menu, + text="Control V to", + function_ptr=self.control_v_to, + icon_path=":/Icons/icons/edit.svg") + + menu.addSeparator() + ra6 = menu.addAction('Plot profiles') plot_icon = QIcon() plot_icon.addPixmap(QPixmap(":/Icons/icons/plot.svg")) @@ -125,3 +138,19 @@ def mouseDoubleClickEvent(self, event): """ pass + + def control_v_from(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_from + self.api_object.tap_module_control_mode = TapModuleControl.Vm + + def control_v_to(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_to + self.api_object.tap_module_control_mode = TapModuleControl.Vm diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 30c03d4aa..a20b09d02 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -800,7 +800,6 @@ def colour_diagrams(self) -> None: """ Color the grid now """ - print("Colour!") if self.ui.available_results_to_color_comboBox.currentIndex() > -1: current_study = self.ui.available_results_to_color_comboBox.currentText() @@ -1825,6 +1824,14 @@ def set_diagrams_palette(self): cmap = self.cmap_dict[cmap_text] diagram_widget.diagram.palette = cmap + current_study = self.ui.available_results_to_color_comboBox.currentText() + val = self.ui.diagram_step_slider.value() + t_idx = val if val > -1 else None + + self.grid_colour_function(diagram=diagram_widget, + current_study=current_study, + t_idx=t_idx) + def set_diagrams_map_tile_provider(self): """ Set the size constraints @@ -1836,4 +1843,4 @@ def set_diagrams_map_tile_provider(self): if isinstance(diagram_widget, GridMapWidget): tile_name = self.ui.tile_provider_comboBox.currentText() tile_src = self.tile_name_dict[tile_name] - diagram_widget.map.tile_src = tile_src \ No newline at end of file + diagram_widget.map.tile_src = tile_src diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index 5c6c1ea0d..26bed87f4 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -250,10 +250,10 @@ def __init__(self, profile_name='Qset_prof') self.register(key='regulation_bus', units='', tpe=DeviceType.BusDevice, - definition='Bus where the regulation is applied.', editable=False) + definition='Bus where the regulation is applied.', editable=True) self.register(key='regulation_cn', units='', tpe=DeviceType.ConnectivityNodeDevice, - definition='Connectivity node where the regulation is applied.', editable=False) + definition='Connectivity node where the regulation is applied.', editable=True) self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', profile_name='tap_phase_prof', old_names=['angle', 'theta']) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 4f1b6255d..03f969081 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -820,17 +820,9 @@ def parse_object_type_from_dataframe(main_df: pd.DataFrame, prof.fill(val) except ValueError: - skip = False - if property_name == 'control_mode': - if property_value == "1:Pt": - # elm.set_snapshot_value(gc_prop.name, TransformerControlType.Pf) - # TODO: handle this - skip = True - - if not skip: - logger.add_error(f'Cannot cast value to {gc_prop.tpe}', - device=elm.name, - value=property_value) + logger.add_error(f'Cannot cast value to {gc_prop.tpe}', + device=elm.name, + value=property_value) else: raise Exception(f'Unsupported property type: {gc_prop.tpe}') From a0a9a4e07c1a55f053a6daad193cb58567351715 Mon Sep 17 00:00:00 2001 From: C Date: Fri, 2 Aug 2024 09:45:41 +0100 Subject: [PATCH 023/218] Addition of possible associations circuit to data --- src/GridCalEngine/Compilers/circuit_to_data.py | 7 +++++++ src/GridCalEngine/Devices/Branches/line.py | 4 ++-- src/GridCalEngine/Devices/Branches/wire.py | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 129a51250..441cf75bd 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -781,6 +781,10 @@ def get_branch_data(circuit: MultiCircuit, data.control_mode[i] = TransformerControlType.fixed + data.possible_tower_types[i] = elm.possible_tower_types + data.possible_sequence_line_types[i] = elm.possible_sequence_line_types + data.possible_underground_line_types[i] = elm.possible_underground_line_types + ii += 1 # DC-lines @@ -905,6 +909,9 @@ def get_branch_data(circuit: MultiCircuit, data.Pfset[ii] = elm.Pset data.control_mode[ii] = elm.control_mode + + data.possible_transformer_types[i] = elm.possible_transformer_types + data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() data.contingency_enabled[ii] = int(elm.contingency_enabled) diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index ac5c6ffd4..dd95e1c64 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -140,7 +140,7 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi # association with various templates self.possible_tower_types: Associations = Associations(device_type=DeviceType.OverheadLineTypeDevice) - self.possible_undergroud_line_types: Associations = Associations(device_type=DeviceType.UnderGroundLineDevice) + self.possible_underground_line_types: Associations = Associations(device_type=DeviceType.UnderGroundLineDevice) self.possible_sequence_line_types: Associations = Associations(device_type=DeviceType.SequenceLineDevice) # Line locations @@ -183,7 +183,7 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi definition='Possible overhead line types (>1 to denote association), - to denote no association', display=False) - self.register(key='possible_undergroud_line_types', units='', tpe=SubObjectType.Associations, + self.register(key='possible_underground_line_types', units='', tpe=SubObjectType.Associations, definition='Possible underground line types (>1 to denote association), - to denote no association', display=False) diff --git a/src/GridCalEngine/Devices/Branches/wire.py b/src/GridCalEngine/Devices/Branches/wire.py index 4cbcf56c2..1920a8b84 100644 --- a/src/GridCalEngine/Devices/Branches/wire.py +++ b/src/GridCalEngine/Devices/Branches/wire.py @@ -54,8 +54,8 @@ def __init__(self, name='', idtag: Union[str, None] = None, gmr=0.01, r=0.01, x= self.register(key='x', units='Ohm/km', tpe=float, definition='reactance of the conductor') self.register(key='gmr', units='m', tpe=float, definition='Geometric Mean Radius of the conductor') self.register(key='max_current', units='kA', tpe=float, definition='Maximum current of the conductor') - self.register(key='stranding', tpe=float, definition='Stranding of wire') - self.register(key='material', tpe=float, definition='Material of wire') + self.register(key='stranding', tpe=str, definition='Stranding of wire') + self.register(key='material', tpe=str, definition='Material of wire') self.register(key='diameter', units='cm', tpe=float, definition='Diameter of wire') def copy(self): From 812245b0979305da9570245cd8f897e4d3dc7071 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Fri, 2 Aug 2024 11:05:56 +0200 Subject: [PATCH 024/218] Add file to test associations --- Grids_and_profiles/grids/simple1.gridcal | Bin 0 -> 60427 bytes examples/associations_templates.py | 17 +++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 Grids_and_profiles/grids/simple1.gridcal create mode 100644 examples/associations_templates.py diff --git a/Grids_and_profiles/grids/simple1.gridcal b/Grids_and_profiles/grids/simple1.gridcal new file mode 100644 index 0000000000000000000000000000000000000000..68a4eda7de1dc5b614f7d17df02632425f78a67e GIT binary patch literal 60427 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 z%0D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 EAL0dRMgRZ+ literal 0 HcmV?d00001 diff --git a/examples/associations_templates.py b/examples/associations_templates.py new file mode 100644 index 000000000..cc57a9745 --- /dev/null +++ b/examples/associations_templates.py @@ -0,0 +1,17 @@ +import os +import numpy as np +import GridCalEngine.api as gce + +# fname = os.path.join('C:/Users/J/Downloads/simple1.gridcal') +# main_circuit = gce.open_file(fname) +folder = os.path.join('..', 'Grids_and_profiles', 'grids') +fname = os.path.join(folder, 'simple1.gridcal') +main_circuit = gce.open_file(fname) + + +results = gce.power_flow(main_circuit) + +print(main_circuit.name) +print('Converged:', results.converged, 'error:', results.error) +print(results.get_bus_df()) +print(results.get_branch_df()) From 1d2254b7436caf263f5ec9010cae1ef7ffcaa6dd Mon Sep 17 00:00:00 2001 From: C Date: Fri, 2 Aug 2024 11:21:53 +0100 Subject: [PATCH 025/218] Debug associations --- examples/associations_template.py | 15 ++ .../Compilers/circuit_to_data.py | 4 +- .../DataStructures/branch_data.py | 5 + .../Devices/Associations/association.py | 151 ++++++++---------- 4 files changed, 94 insertions(+), 81 deletions(-) create mode 100644 examples/associations_template.py diff --git a/examples/associations_template.py b/examples/associations_template.py new file mode 100644 index 000000000..6ada528a6 --- /dev/null +++ b/examples/associations_template.py @@ -0,0 +1,15 @@ +import os +import GridCalEngine.api as gce +import pandas as pd + +folder = os.path.join('..', 'Grids_and_profiles', 'grids') +fname = os.path.join(folder, 'simple2.gridcal') + +main_circuit = gce.open_file(fname) + +results = gce.power_flow(main_circuit) + +print(main_circuit.name) +print('Converged:', results.converged, '\nerror:', results.error) +print(results.get_bus_df()) +print(results.get_branch_df()) diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 441cf75bd..dcf739411 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -16,6 +16,8 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from __future__ import annotations from typing import Dict, Union, TYPE_CHECKING, Tuple + +from GridCalEngine.Devices import Associations from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Aggregation.area import Area @@ -910,7 +912,7 @@ def get_branch_data(circuit: MultiCircuit, data.control_mode[ii] = elm.control_mode - data.possible_transformer_types[i] = elm.possible_transformer_types + data.possible_transformer_types[ii] = elm.possible_transformer_types data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index bfcdc96b0..30e773943 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -118,6 +118,11 @@ def __init__(self, nelm: int, nbus: int): self.original_idx: IntVec = np.zeros(nelm, dtype=int) + self.possible_transformer_types = np.ones(self.nelm, dtype=list) + self.possible_tower_types = np.ones(self.nelm, dtype=list) + self.possible_underground_line_types = np.ones(self.nelm, dtype=list) + self.possible_sequence_line_types = np.ones(self.nelm, dtype=list) + def size(self) -> int: """ Get size of the structure diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index eb4bb397e..6db7b1aa6 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -1,19 +1,3 @@ -# GridCal -# Copyright (C) 2015 - 2024 Santiago Peñate Vera -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 3 of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from __future__ import annotations from typing import TYPE_CHECKING, Dict, Union, List, Iterator from GridCalEngine.enumerations import DeviceType @@ -23,35 +7,57 @@ from GridCalEngine.Devices.types import ASSOCIATION_TYPES, ALL_DEV_TYPES +from typing import List, Union, Dict + +class ASSOCIATION_TYPES: + def __init__(self, idtag: str): + self.idtag = idtag + class Association: """ GridCal relationship object, this handles the unit of association """ - def __init__(self, api_object: Union[None, ASSOCIATION_TYPES] = None, value: float = 1.0): - - self.api_object: ASSOCIATION_TYPES = api_object - + def __init__(self, api_objects: List[Union[None, ASSOCIATION_TYPES]] = None, value: float = 1.0): + """ + Constructor + :param api_objects: List of ASSOCIATION_TYPES + :param value: float + """ + self.api_objects: List[ASSOCIATION_TYPES] = api_objects if api_objects is not None else [] self.value = value def to_dict(self) -> Dict[str, Union[str, float]]: """ + Convert the association to a dictionary. + :return: Dict with the first api_object's idtag and the value. + """ + if self.api_objects: + return { + "elm": self.api_objects[0].idtag, + "value": self.value + } + else: + return { + "elm": None, + "value": self.value + } - :return: + def to_dict_list(self) -> List[Dict[str, Union[str, float]]]: + """ + Convert the list of api_objects to a list of dictionaries. + :return: List of dictionaries with each api_object's idtag and the value. """ - return { - "elm": self.api_object.idtag, - "value": self.value - } + return [{"elm": obj.idtag, "value": self.value} for obj in self.api_objects if obj is not None] def parse(self, data: Dict[str, Union[str, float]], elements_dict: Dict[str, ALL_DEV_TYPES]) -> str: """ - - :param data: - :param elements_dict: - :return: + Parse data to fill the association + :param data: dictionary data + :param elements_dict: elements dictionary + :return: idtag """ idtag = data['elm'] self.api_object = elements_dict.get(idtag, None) @@ -61,22 +67,19 @@ def parse(self, def __eq__(self, other: "Association") -> bool: """ Equal? - :param other: - :return: + :param other: Association + :return: is equal? """ - if self.api_object.idtag != self.api_object.idtag: - # Different refference objects + if self.api_object.idtag != other.api_object.idtag: return False - if self.value != self.value: - # different values + if self.value != other.value: return False - return True class Associations: """ - GridCal associations object, this handless a set of associations + GridCal associations object, this handles a set of associations """ def __init__(self, device_type: DeviceType): @@ -85,22 +88,21 @@ def __init__(self, device_type: DeviceType): :param device_type: DeviceType """ self._data: Dict[str, Association] = dict() - self._device_type = device_type @property def device_type(self) -> DeviceType: """ Device Type - :return: + :return: DeviceType """ return self._device_type def add(self, val: Association): """ Add Association - :param val: - :return: + :param val: Association + :return: None """ if val.api_object is not None: self._data[val.api_object.idtag] = val @@ -108,19 +110,19 @@ def add(self, val: Association): def add_object(self, api_object: ASSOCIATION_TYPES, val: float) -> Association: """ Add association - :param api_object: - :param val: - :return: + :param api_object: ASSOCIATION_TYPES + :param val: float + :return: Association """ - assoc = Association(api_object=api_object, value=val) + assoc = Association(api_objects=[api_object], value=val) self.add(assoc) return assoc def remove(self, val: Association): """ Remove Association - :param val: - :return: + :param val: Association + :return: None """ if val.api_object is not None: del self._data[val.api_object.idtag] @@ -128,26 +130,33 @@ def remove(self, val: Association): def remove_by_key(self, key: str): """ Remove Association by key - :param key: - :return: + :param key: str + :return: None """ if key in self._data.keys(): del self._data[key] def at_key(self, key: str) -> Union[Association, None]: """ - Remove Association by key - :param key: - :return: + Get Association by key + :param key: str + :return: Association or None """ return self._data.get(key, None) + def to_list(self) -> List[float]: + """ + Convert associations to a list of values + :return: list of floats + """ + return [val.value for val in self._data.values()] + def to_dict(self) -> List[Dict[str, Union[str, float]]]: """ Get dictionary representation of Associations - :return: + :return: List of dictionaries """ - return [val.to_dict() for _, val in self._data.items()] + return [val.to_dict() for val in self._data.values()] def parse(self, data: List[Dict[str, Union[str, float]]], @@ -160,18 +169,12 @@ def parse(self, :param elements_dict: dictionary of elements of the type self.device_type :param logger: Logger :param elm_name: base element name for reporting + :return: None """ - for entry in data: - assoc = Association() - associated_idtag = assoc.parse( - data=entry, - elements_dict=elements_dict - ) - + associated_idtag = assoc.parse(data=entry, elements_dict=elements_dict) if assoc.api_object is not None: - # add the entry self.add(assoc) else: logger.add_error(f'Association api_object not found', @@ -181,7 +184,8 @@ def parse(self, def append(self, item: Association) -> None: """ Add item - :param item: + :param item: Association + :return: None """ self.add(item) @@ -198,6 +202,7 @@ def __repr__(self) -> str: def clear(self) -> None: """ Clear data + :return: None """ self._data.clear() @@ -209,26 +214,12 @@ def __eq__(self, other: "Associations") -> bool: """ if not isinstance(other, Associations): return False - if len(self) != len(other): - # different length return False - for key, val in self._data.items(): - val2 = other._data.get(key, None) - if val2 is None: - # a key was not found, these are not equal return False - else: - if val != val2: - # the associations are different - return False - - return True - - - - - + if val != val2: + return False + return True \ No newline at end of file From 6f89d82eceb5c22250cdd82c5c5e273727a0df75 Mon Sep 17 00:00:00 2001 From: C Date: Fri, 2 Aug 2024 11:24:09 +0100 Subject: [PATCH 026/218] Debug associations --- Grids_and_profiles/grids/simple1.gridcal | Bin 60427 -> 10178 bytes Grids_and_profiles/grids/simple2.gridcal | Bin 0 -> 9947 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Grids_and_profiles/grids/simple2.gridcal diff --git a/Grids_and_profiles/grids/simple1.gridcal b/Grids_and_profiles/grids/simple1.gridcal index 68a4eda7de1dc5b614f7d17df02632425f78a67e..76c2886a06af0f95ead1576154f86b5749dbc31e 100644 GIT binary patch literal 10178 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 z%0D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 EAL0dRMgRZ+ diff --git a/Grids_and_profiles/grids/simple2.gridcal b/Grids_and_profiles/grids/simple2.gridcal new file mode 100644 index 0000000000000000000000000000000000000000..cc015e165133c7310f245d19f96db753ccc2c0cc GIT binary patch literal 9947 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 AU;qFB literal 0 HcmV?d00001 From 39c69dbaeabaecd6057da2b0443ec56a30384acb Mon Sep 17 00:00:00 2001 From: Santi Date: Fri, 2 Aug 2024 18:15:53 +0100 Subject: [PATCH 027/218] Some minimal fixes to the map behaviour --- .idea/workspace.xml | 1136 ++++++++--------- .../MapWidget/Branches/map_line_container.py | 4 +- .../Substation/substation_graphic_item.py | 42 +- .../Gui/Diagrams/MapWidget/grid_map_widget.py | 59 +- .../Gui/Diagrams/MapWidget/map_widget.py | 27 +- .../Gui/Main/SubClasses/Model/diagrams.py | 1 - 6 files changed, 594 insertions(+), 675 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c2bbaae99..8b243f156 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,12 @@ - - + - - - - + @@ -90,13 +87,6 @@ - - - @@ -171,14 +161,14 @@ "Python tests.pytest in test_topology_processor.py.executor": "Run", "Python tests.pytest in tests.executor": "Run", "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", + "Python.ExecuteGridCal.executor": "Debug", "Python.associations_templates.executor": "Debug", "Python.cgmes_rdfs_graph.executor": "Run", "Python.multi_select.executor": "Run", "Python.new_circuit_objects.executor": "Run", "Python.pymoo_example.executor": "Debug", "Python.raw_imp_exp_test.executor": "Run", - "Python.tallr_table_headers.executor": "Run", + "Python.tallr_table_headers.executor": "Debug", "Python.test_derivatives.executor": "Run", "Python.update_gui_file.executor": "Run", "Python.upload_to_pypi.executor": "Run", @@ -699,8 +689,8 @@ - + @@ -1798,7 +1788,7 @@ @@ -1844,7 +1834,6 @@ - @@ -1869,7 +1858,8 @@ - diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index 482b6f424..f82218cb4 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -225,10 +225,10 @@ def __init__(self, # type template self.template = template - self.data = {'possible_transformer_types': Associations(DeviceType.TransformerTypeDevice)} # association with transformer templates self.possible_transformer_types: Associations = Associations(device_type=DeviceType.TransformerTypeDevice) + self.data = Associations(device_type=DeviceType.TransformerTypeDevice) # register self.register(key='HV', units='kV', tpe=float, definition='High voltage rating') @@ -248,6 +248,19 @@ def __init__(self, definition='Possible transformer types (>1 to denote association), - to denote no association', display=False) + def apply_templates_to_transformers(self, obj, Sbase, logger=Logger()): + """ + Apply the given template to all possible transformer types in the main circuit. + + :param self: The main circuit containing possible transformer types. + :param obj: The template object to apply. + :param Sbase: The base power for the template. + :param logger: Logger for capturing errors and information. + """ + for transformer_type in self.possible_transformer_types: + if transformer_type in self.data: + self.data[transformer_type].apply_template(obj, Sbase, logger) + def set_hv_and_lv(self, HV: float, LV: float): """ set the high and low voltage values @@ -271,50 +284,6 @@ def set_hv_and_lv(self, HV: float, LV: float): else: self.LV = LV - # def copy(self, bus_dict=None): - # """ - # Returns a copy of the branch - # @return: A new with the same content as this - # """ - # - # if bus_dict is None: - # f = self.bus_from - # t = self.bus_to - # else: - # f = bus_dict[self.bus_from] - # t = bus_dict[self.bus_to] - # - # # z_series = complex(self.R, self.X) - # # y_shunt = complex(self.G, self.B) - # b = Transformer2W(bus_from=f, - # bus_to=t, - # name=self.name, - # r=self.R, - # x=self.X, - # g=self.G, - # b=self.B, - # rate=self.rate, - # tap_module=self.tap_module, - # tap_phase=self.tap_phase, - # active=self.active, - # mttf=self.mttf, - # mttr=self.mttr, - # vset=self.vset, - # temp_base=self.temp_base, - # temp_oper=self.temp_oper, - # alpha=self.alpha, - # template=self.template, - # opex=self.opex, - # capex=self.capex) - # - # b.regulation_bus = self.regulation_bus - # b.regulation_cn = self.regulation_cn - # b.active_prof = self.active_prof - # b.rate_prof = self.rate_prof - # b.Cost_prof = self.Cost_prof - # - # return b - def get_from_to_nominal_voltages(self) -> Tuple[float, float]: """ @@ -373,7 +342,7 @@ def apply_template(self, obj: TransformerType, Sbase, logger=Logger()): """ if isinstance(obj, TransformerType): - + print(f"Applying template to {self.name}") VH, VL = self.get_sorted_buses_voltages() # get the transformer impedance in the base of the transformer @@ -404,10 +373,6 @@ def apply_template(self, obj: TransformerType, Sbase, logger=Logger()): else: self.template = obj - for transformer_type in self.data['possible_transformer_types'].data.values(): - if isinstance(transformer_type.api_object, TransformerType): - transformer_type.api_object.apply_template(obj, Sbase, logger) - def get_save_data(self): """ Return the data that matches the edit_headers @@ -538,3 +503,48 @@ def get_transformer_type(self, Sbase: float = 100.0) -> TransformerType: name='type from ' + self.name) return tpe + + + # def copy(self, bus_dict=None): + # """ + # Returns a copy of the branch + # @return: A new with the same content as this + # """ + # + # if bus_dict is None: + # f = self.bus_from + # t = self.bus_to + # else: + # f = bus_dict[self.bus_from] + # t = bus_dict[self.bus_to] + # + # # z_series = complex(self.R, self.X) + # # y_shunt = complex(self.G, self.B) + # b = Transformer2W(bus_from=f, + # bus_to=t, + # name=self.name, + # r=self.R, + # x=self.X, + # g=self.G, + # b=self.B, + # rate=self.rate, + # tap_module=self.tap_module, + # tap_phase=self.tap_phase, + # active=self.active, + # mttf=self.mttf, + # mttr=self.mttr, + # vset=self.vset, + # temp_base=self.temp_base, + # temp_oper=self.temp_oper, + # alpha=self.alpha, + # template=self.template, + # opex=self.opex, + # capex=self.capex) + # + # b.regulation_bus = self.regulation_bus + # b.regulation_cn = self.regulation_cn + # b.active_prof = self.active_prof + # b.rate_prof = self.rate_prof + # b.Cost_prof = self.Cost_prof + # + # return b diff --git a/src/GridCalEngine/Devices/multi_circuit.py b/src/GridCalEngine/Devices/multi_circuit.py index 6d3028052..c4af9a3c6 100644 --- a/src/GridCalEngine/Devices/multi_circuit.py +++ b/src/GridCalEngine/Devices/multi_circuit.py @@ -406,6 +406,8 @@ def apply_all_branch_types(self) -> Logger: for branch in self._transformers2w: if branch.template is not None: branch.apply_template(branch.template, self.Sbase, logger=logger) + # for transformer types found in associations, where to put this + branch.apply_templates_to_transformers(branch.template, self.Sbase, logger=logger) return logger From 5dad9d76fba505875eb54f33443fd7c22f144174 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Tue, 6 Aug 2024 12:38:22 +0200 Subject: [PATCH 034/218] Adding template to investment table --- .../Devices/Aggregation/investment.py | 34 +++++++++---------- .../Devices/Branches/transformer.py | 1 - src/GridCalEngine/Devices/Parents/__init__.py | 1 - src/GridCalEngine/enumerations.py | 1 + 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 39e5c4d7e..687b01404 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,21 +1,5 @@ -# GridCal -# Copyright (C) 2015 - 2024 Santiago Peñate Vera -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 3 of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - from typing import Union + from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup @@ -60,6 +44,7 @@ def __init__(self, self.OPEX = OPEX self._group: InvestmentsGroup = group self.status: bool = status + self._template = None self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='Me', tpe=float, @@ -68,6 +53,7 @@ def __init__(self, definition='Operation expenditures. Maintenance costs among other recurrent costs.') self.register(key='status', units='', tpe=bool, definition='If true the investment activates when applied, otherwise is deactivated.') + self.register(key='template', units='', tpe=DeviceType.OverheadLineTypeDevice, definition='', editable=False) self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') @property @@ -92,5 +78,17 @@ def category(self): @category.setter def category(self, val): - # self.group.category = val + # The category is set through the group, so no implementation here pass + + @property + def template(self): + """ + Template of component + :return: + """ + return self._template + + @template.setter + def template(self, val): + self._template = val diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index f82218cb4..76103a273 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -342,7 +342,6 @@ def apply_template(self, obj: TransformerType, Sbase, logger=Logger()): """ if isinstance(obj, TransformerType): - print(f"Applying template to {self.name}") VH, VL = self.get_sorted_buses_voltages() # get the transformer impedance in the base of the transformer diff --git a/src/GridCalEngine/Devices/Parents/__init__.py b/src/GridCalEngine/Devices/Parents/__init__.py index e3101ac1e..f9abe3e7c 100644 --- a/src/GridCalEngine/Devices/Parents/__init__.py +++ b/src/GridCalEngine/Devices/Parents/__init__.py @@ -14,4 +14,3 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index 0183a77bd..e3f0c9767 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -959,6 +959,7 @@ class DeviceType(Enum): LoadLikeDevice = 'Load like' BranchGroupDevice = 'Branch group' LambdaDevice = r"Loading from the base situation ($\lambda$)" + Template = 'Template' PiMeasurementDevice = 'Pi Measurement' QiMeasurementDevice = 'Qi Measurement' From 019d44ea7ea8cb352ed1046a9e4533e9ace0bd5b Mon Sep 17 00:00:00 2001 From: cristinafray Date: Tue, 6 Aug 2024 15:27:24 +0200 Subject: [PATCH 035/218] Adding template to investment table --- examples/try_investment_optimization.py | 6 +++++- src/GridCalEngine/Devices/assets.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index e7113526d..f5ffa39fd 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -1,5 +1,7 @@ import os import random +from typing import Union + import pandas as pd import numpy as np import matplotlib.pyplot as plt @@ -40,7 +42,9 @@ def add_investments_to_grid(grid): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group) + group=inv_group, template=line.possible_tower_types[:]) + # template = Union[dev.OverheadLineType(name='Template' + str(i)), dev.TransformerType(name='Template' + str(i)), dev.UndergroundLineType(name='Template' + str(i))] + # grid.add_template(template) grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/src/GridCalEngine/Devices/assets.py b/src/GridCalEngine/Devices/assets.py index 3fef2db54..86860d326 100644 --- a/src/GridCalEngine/Devices/assets.py +++ b/src/GridCalEngine/Devices/assets.py @@ -3254,6 +3254,21 @@ def add_investment(self, obj: dev.Investment): """ self._investments.append(obj) + # def add_template(self, obj: Union[dev.OverheadLineType, dev.TransformerType, dev.UndergroundLineType]): + # """ + # Add template + # :param obj: Template + # """ + # if isinstance(obj, dev.TransformerType): + # for elm in self.transformers2w: + # elm.template = obj + # elif isinstance(obj, dev.OverheadLineType): + # for elm in self.overhead_line_types: + # elm.template = obj + # elif isinstance(obj, dev.UndergroundLineType): + # for elm in self.underground_cable_types: + # elm.template = obj + def delete_investment(self, obj: dev.Investment): """ Delete zone From 7f160f0b0089cccdeb973ee709e374cda5a11f46 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Tue, 6 Aug 2024 16:01:54 +0200 Subject: [PATCH 036/218] Adding template to investment table --- examples/try_investment_optimization.py | 4 +- .../Gui/Main/SubClasses/Model/diagrams.py | 55 ++++++++++++++++--- .../Devices/Aggregation/investment.py | 35 ++++++------ 3 files changed, 65 insertions(+), 29 deletions(-) diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index f5ffa39fd..47456b38a 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -42,9 +42,7 @@ def add_investments_to_grid(grid): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group, template=line.possible_tower_types[:]) - # template = Union[dev.OverheadLineType(name='Template' + str(i)), dev.TransformerType(name='Template' + str(i)), dev.UndergroundLineType(name='Template' + str(i))] - # grid.add_template(template) + group=inv_group) # , template=line.possible_tower_types[:] grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 30c03d4aa..2477a24f9 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -28,7 +28,7 @@ from GridCal.Gui.GeneralDialogues import (CheckListDialogue, StartEndSelectionDialogue, InputSearchDialogue, InputNumberDialogue) from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import SimulationTypes +from GridCalEngine.enumerations import SimulationTypes, DeviceType from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram import GridCalEngine.Devices as dev @@ -1580,13 +1580,50 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group) - self.circuit.add_investment(con) + if elm is DeviceType.TransformerTypeDevice: + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_transformer_types[:]) + self.circuit.add_investment(con) + elif elm is DeviceType.OverheadLineTypeDevice: + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_sequence_line_types[:]) + self.circuit.add_investment(con) + elif elm is DeviceType.UnderGroundLineDevice: + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_underground_line_types[:]) + self.circuit.add_investment(con) + elif elm is DeviceType.LineTypeDevice: + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_tower_types[:]) + self.circuit.add_investment(con) + else: + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group) + self.circuit.add_investment(con) else: info_msg("Select some elements in the schematic first", "Add selected to investment") @@ -1836,4 +1873,4 @@ def set_diagrams_map_tile_provider(self): if isinstance(diagram_widget, GridMapWidget): tile_name = self.ui.tile_provider_comboBox.currentText() tile_src = self.tile_name_dict[tile_name] - diagram_widget.map.tile_src = tile_src \ No newline at end of file + diagram_widget.map.tile_src = tile_src diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 687b01404..e9f14ebda 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,4 +1,4 @@ -from typing import Union +from typing import Union, Any from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup @@ -18,6 +18,7 @@ def __init__(self, OPEX=0.0, status: bool = True, group: InvestmentsGroup = None, + template: DeviceType = None, comment: str = ""): """ Investment @@ -27,7 +28,7 @@ def __init__(self, :param CAPEX: Float. Capital expenditures :param OPEX: Float. Operating expenditures :param status: If true the investment activates when applied, otherwise is deactivated - :param group: ContingencyGroup. Contingency group + :param group: InvestmentGroup. Investment group :param comment: Comment """ @@ -44,16 +45,16 @@ def __init__(self, self.OPEX = OPEX self._group: InvestmentsGroup = group self.status: bool = status - self._template = None + self.template = template self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') - self.register(key='CAPEX', units='Me', tpe=float, + self.register(key='CAPEX', units='M€', tpe=float, definition='Capital expenditures. This is the initial investment.') - self.register(key='OPEX', units='Me', tpe=float, + self.register(key='OPEX', units='M€', tpe=float, definition='Operation expenditures. Maintenance costs among other recurrent costs.') self.register(key='status', units='', tpe=bool, definition='If true the investment activates when applied, otherwise is deactivated.') - self.register(key='template', units='', tpe=DeviceType.OverheadLineTypeDevice, definition='', editable=False) + self.register(key='template', units='', tpe=template, definition='Possible templates of each component') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') @property @@ -81,14 +82,14 @@ def category(self, val): # The category is set through the group, so no implementation here pass - @property - def template(self): - """ - Template of component - :return: - """ - return self._template - - @template.setter - def template(self, val): - self._template = val + # @property + # def template(self): + # """ + # Template of component + # :return: + # """ + # return self.template + # + # @template.setter + # def template(self, val): + # self.template = val From ef89d862bdb76f2284358c04f235b64699bcfe85 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Tue, 6 Aug 2024 16:57:34 +0200 Subject: [PATCH 037/218] Templates added to investments --- examples/try_investment_optimization.py | 5 +++-- .../Gui/Main/SubClasses/Model/diagrams.py | 19 ++++++++++--------- .../Devices/Aggregation/investment.py | 2 +- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index 47456b38a..284e1d7fe 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -9,7 +9,7 @@ from GridCalEngine.IO.file_handler import FileOpen import GridCalEngine.Devices as dev import GridCalEngine.Simulations as sim -from GridCalEngine.enumerations import InvestmentEvaluationMethod, ResultTypes +from GridCalEngine.enumerations import InvestmentEvaluationMethod, ResultTypes, DeviceType from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.PowerFlow.power_flow_worker import multi_island_pf_nc @@ -41,8 +41,9 @@ def add_investments_to_grid(grid): for i, line in enumerate(lines_list): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) + # templ_group = dev.TemplateGroup(name='Tg' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group) # , template=line.possible_tower_types[:] + group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 2477a24f9..419cf0881 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -24,11 +24,12 @@ from pandas.plotting import register_matplotlib_converters import GridCalEngine.Devices.Diagrams.palettes as palettes +from GridCalEngine.Devices import TransformerType, OverheadLineType, SequenceLineType, UndergroundLineType from GridCalEngine.IO.file_system import get_create_gridcal_folder from GridCal.Gui.GeneralDialogues import (CheckListDialogue, StartEndSelectionDialogue, InputSearchDialogue, InputNumberDialogue) from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import SimulationTypes, DeviceType +from GridCalEngine.enumerations import SimulationTypes from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram import GridCalEngine.Devices as dev @@ -1580,41 +1581,41 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm is DeviceType.TransformerTypeDevice: + if elm.type_name == 'Transformer': con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_transformer_types[:]) + template=list(elm.possible_transformer_types.data)) self.circuit.add_investment(con) - elif elm is DeviceType.OverheadLineTypeDevice: + elif elm.type_name == 'Sequence line': con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_sequence_line_types[:]) + template=list(elm.possible_sequence_line_types.data)) self.circuit.add_investment(con) - elif elm is DeviceType.UnderGroundLineDevice: + elif elm.type_name == 'Underground line': con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_underground_line_types[:]) + template=list(elm.possible_underground_line_types.data)) self.circuit.add_investment(con) - elif elm is DeviceType.LineTypeDevice: + elif elm.type_name == 'Tower': con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_tower_types[:]) + template=list(elm.possible_tower_types.data)) self.circuit.add_investment(con) else: con = dev.Investment(device_idtag=elm.idtag, diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index e9f14ebda..6264da5ea 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -18,7 +18,7 @@ def __init__(self, OPEX=0.0, status: bool = True, group: InvestmentsGroup = None, - template: DeviceType = None, + template: DeviceType.TransformerTypeDevice = None, comment: str = ""): """ Investment From 6e90e3ad5c5213593ca8697ba145fc91e0be1ff7 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Tue, 6 Aug 2024 17:32:28 +0200 Subject: [PATCH 038/218] Line implemented properly in investments templates --- .../Gui/Main/SubClasses/Model/diagrams.py | 59 ++++++++++--------- src/GridCalEngine/enumerations.py | 4 +- 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 419cf0881..c5c169d29 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1582,6 +1582,7 @@ def add_selected_to_investment(self) -> None: for i in self.investment_checks_diag.selected_indices: elm = selected[i] if elm.type_name == 'Transformer': + print('trafo') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, @@ -1590,33 +1591,37 @@ def add_selected_to_investment(self) -> None: group=group, template=list(elm.possible_transformer_types.data)) self.circuit.add_investment(con) - elif elm.type_name == 'Sequence line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template=list(elm.possible_sequence_line_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Underground line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template=list(elm.possible_underground_line_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Tower': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template=list(elm.possible_tower_types.data)) - self.circuit.add_investment(con) + elif elm.type_name == 'Line': + print('seq line') + if elm.type_name == 'Sequence line': + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=list(elm.possible_sequence_line_types.data)) + self.circuit.add_investment(con) + elif elm.type_name == 'Underground line': + print('und line') + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=list(elm.possible_underground_line_types.data)) + self.circuit.add_investment(con) + elif elm.type_name == 'Tower': + print('tower') + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=list(elm.possible_tower_types.data)) + self.circuit.add_investment(con) else: con = dev.Investment(device_idtag=elm.idtag, code=elm.code, diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index e3f0c9767..57ca45fc8 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -932,8 +932,8 @@ class DeviceType(Enum): """ Device types """ - NoDevice = "NoDevice" - TimeDevice = "Time" + NoDevice = 'NoDevice' + TimeDevice = 'Time' CircuitDevice = 'Circuit' BusDevice = 'Bus' BranchDevice = 'Branch' From 98257d122143f1762c2a03e8e549ce00fe0cba2d Mon Sep 17 00:00:00 2001 From: cristinafray Date: Wed, 7 Aug 2024 12:36:18 +0200 Subject: [PATCH 039/218] New capex scores file to be used later --- examples/try_investment_optimization.py | 1 - .../Gui/Main/SubClasses/Model/diagrams.py | 4 - src/GridCalEngine/Utils/acciona_capex.py | 414 ++++++++++++++++++ 3 files changed, 414 insertions(+), 5 deletions(-) create mode 100644 src/GridCalEngine/Utils/acciona_capex.py diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index 284e1d7fe..f549e44dc 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -41,7 +41,6 @@ def add_investments_to_grid(grid): for i, line in enumerate(lines_list): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) - # templ_group = dev.TemplateGroup(name='Tg' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] grid.add_investment(investment) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index c5c169d29..c3d8d7182 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1582,7 +1582,6 @@ def add_selected_to_investment(self) -> None: for i in self.investment_checks_diag.selected_indices: elm = selected[i] if elm.type_name == 'Transformer': - print('trafo') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, @@ -1592,7 +1591,6 @@ def add_selected_to_investment(self) -> None: template=list(elm.possible_transformer_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Line': - print('seq line') if elm.type_name == 'Sequence line': con = dev.Investment(device_idtag=elm.idtag, code=elm.code, @@ -1603,7 +1601,6 @@ def add_selected_to_investment(self) -> None: template=list(elm.possible_sequence_line_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Underground line': - print('und line') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, @@ -1613,7 +1610,6 @@ def add_selected_to_investment(self) -> None: template=list(elm.possible_underground_line_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Tower': - print('tower') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, diff --git a/src/GridCalEngine/Utils/acciona_capex.py b/src/GridCalEngine/Utils/acciona_capex.py new file mode 100644 index 000000000..a118fc66c --- /dev/null +++ b/src/GridCalEngine/Utils/acciona_capex.py @@ -0,0 +1,414 @@ +# GridCal +# Copyright (C) 2015 - 2023 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from cmath import log +import numpy as np +import numba as nb +from typing import Union +from GridCalEngine.basic_structures import Vec, CxVec, CxMat + + +# Double check units! +# Eng + Management (CEngManag) +def calculate_eng_management_cost(K: float, X: float, CEngManag: float) -> float: + """ + Calculate the cost for engineering and management. + :param K: multiplication factor + :param X: add on to total + :param CEngManag: cost for engineering and management + :return: total cost + """ + return K * CEngManag + X + + +# Turbine (Cturbine) +def calculate_turbine_cost(K: float, X: float, power: float, category: str) -> float: + """ + Calculate the cost for the turbine. + :param K: multiplication factor + :param X: add on to total + :param power: power of the turbine + :param category: category of the turbine + :return: total cost + """ + if category == "Scope A": + cost_turbine = 3.5 # M€/MW + + elif category == "Scope B": + cost_turbine = 2.7 # M€/MW + + else: + raise ValueError("Category of the turbine is not valid") + + return cost_turbine * power * K + X + + +# IAC (CcablesIAC) +def calculate_cables_iac_cost(K: float, X: float) -> float: + """ + Calculate the cost for the IAC cables. + :param K: multiplication factor + :param X: add on to total + """ + cost_cables_iac = 0.22 # M€/MW + return cost_cables_iac * K + X + + +# OFFSET (CssOff) +def calculate_offset_cost(K: float, X: float) -> float: + """ + Calculate the cost for the offset. + :param K: multiplication factor + :param X: add on to total + """ + cost_offset = 0.18 # M€/MW + return cost_offset * K + X + + +# EXC (Ccablesoff) +def calculate_exc_cost(L, A, V, K, X): + """ + Calculate the cost for the EXC. + :param L: length of the cable + :param A: cross-section of the cable + :param V: voltage of the cable + :param K: multiplication factor + :param X: add on to total + """ + # cost for cross-section + CA = 355 * 1e-6 # M€/m + cost_cross_section = CA * (A / 240) ** log(1.2) # M€/m + # cost for voltage + cost_voltage = cost_cross_section * (V / 66) ** log(1.2) # M€/m + # total cable cost + cost_cable = cost_voltage * L + # cost for installing length + cost_installation = 580 * 1e-6 * L # M€/m + return X + (cost_cable + cost_installation) * K + + +# Onshore cables (Ccableson) +def calculate_onshore_cable_cost(L, A, V, num_circuits, num_trenches, cable_type, K, X): + """ + Calculate the cost for the onshore cables. + :param L: length of the cable (in meters) + :param A: cross-section of the cable (in mm^2) + :param V: voltage of the cable (in kV) + :param num_circuits: number of circuits + :param num_trenches: number of trenches (only for buried cables) + :param cable_type: type of cable ('buried' or 'overhead') + :param K: multiplication factor + :param X: fixed additional cost + """ + if cable_type == "buried": + CA = 1.0 + CT = 1.0 + known_A = 1.0 + ratio = 1.0 + + if V == 132: + known_A = 1000 # mm^2 + CA = 90 * 1e-6 # M€/m + ratio = 1.25 + CT = 275 * 1e-6 # M€/m trench cost per meter for 1 circuit + elif V == 220: + known_A = 800 + CA = 98 * 1e-6 + ratio = 1.25 + CT = 375 * 1e-6 + elif V == 380: + known_A = 630 + CA = 215 * 1e-6 + ratio = 1.15 + CT = 475 * 1e-6 + + ratio_price = 1.2 + ratio_installation = 1.2 + multiplier = 1.57 # Multiplier for two circuits + + # Calculate cost for cross-section + cost_cross_section = CA * (A / known_A) ** log(ratio) # €/m + # Calculate total cable cost + cost_cable = cost_cross_section * L # €/m + # Calculate cost with supplies + cost_with_supplies = cost_cable * ratio_price # €/m + # Calculate cost for installation + cost_installation = cost_with_supplies * ratio_installation # €/m + # Calculate cost for trench + cost_trench = CT * L * num_trenches * num_circuits # €/m + if num_trenches == 2: # or > 1 ??? + cost_trench *= multiplier # €/m + # Total cost for buried cables + total_cost = cost_installation + cost_trench + + elif cable_type == "overhead": + cost_per_km = 1.0 + + if V == 132: + cost_per_km = 0.175 # M€/km + elif V == 220: + cost_per_km = 0.25 + elif V == 380: + cost_per_km = 0.375 + + multiplier = 1.57 # Multiplier for two circuits + cost_per_meter = cost_per_km / 1000 + # Calculate overhead cable cost + cost_cable = cost_per_meter * L # M€/m + if num_circuits == 2: # or > 1 ??? + cost_cable *= multiplier # Factor for 2 circuits + total_cost = cost_cable + + else: + raise ValueError("Cable type is not valid.") + + return K * total_cost + X # €/m + + +# ONSSET (CssOn) +def calculate_onshore_substation_cost(mw_transformer, num_transformers, num_lines, mvar_shunt_reactor, mvar_statcom, + mvar_harmonic_filter_banks, K, X, Y): + """ + Calculate the cost for the onshore substation. + :param mw_transformer: power of the transformers + :param num_transformers: number of transformers + :param num_lines: number of lines + :param mvar_shunt_reactor: number of shunt reactors + :param mvar_statcom: number of statcom + :param mvar_harmonic_filter_banks: number of harmonic filter banks + :param K: multiplication factor + :param X: add on to total + :param Y: factor GIS + """ + if 100 <= mw_transformer <= 200: + cost_transformer = 0.014 + cost_civil_works = 0.3 + cost_indoorequip_transformer = 0.4 + cost_indoorequip_line = 0.825 + cost_busbar = 0.12 + cost_cable = 0.06 + cost_metal_structure = 0.15 + cost_lighting = 0.075 + cost_scada = 0.3 + cost_building = 0.25 + cost_eng = 0.18 + cost_misc = 0.075 + + elif 200 < mw_transformer <= 500: + cost_transformer = 0.012 + cost_civil_works = 0.5 + cost_indoorequip_transformer = 0.7 + cost_indoorequip_line = 0.9 + cost_busbar = 0.175 + cost_cable = 0.2 + cost_metal_structure = 0.22 + cost_lighting = 0.1 + cost_scada = 0.3 + cost_building = 0.6 + cost_eng = 0.3 + cost_misc = 0.15 + + elif mw_transformer > 500: + cost_transformer = 0.01 + cost_civil_works = 0.8 + cost_indoorequip_transformer = 0.8125 + cost_indoorequip_line = 1.25 + cost_busbar = 0.2 + cost_cable = 0.3 + cost_metal_structure = 0.35 + cost_lighting = 0.12 + cost_scada = 0.4 + cost_building = 1.2 + cost_eng = 0.4 + cost_misc = 0.25 + else: + raise ValueError("Power of the transformers is not valid.") + + cost_shunt_reactor = 0.05 + cost_statcom = 0.13 + cost_harmonic_filter_banks = 0.05 + + total_cost_transformer = mw_transformer * cost_transformer * num_transformers + total_cost_civil_works = cost_civil_works * num_transformers + total_cost_indoorequip_transformer = cost_indoorequip_transformer * num_transformers + total_cost_indoorequip_line = cost_indoorequip_line * num_lines + equipment_installation = 0.2 + total_cost_installation = equipment_installation * ( + total_cost_indoorequip_transformer + total_cost_indoorequip_line) + total_cost_busbar = cost_busbar * num_lines + total_cost_cable = cost_cable * num_transformers + + total_cost_shunt_reactor = cost_shunt_reactor * mvar_shunt_reactor + total_cost_statcom = cost_statcom * mvar_statcom + total_cost_harmonic_filter_banks = cost_harmonic_filter_banks * mvar_harmonic_filter_banks + total_cost_additional = (cost_lighting + cost_scada + cost_building + + cost_eng + cost_misc + + total_cost_shunt_reactor + total_cost_statcom + + total_cost_harmonic_filter_banks) + + total_cost = (total_cost_transformer + total_cost_civil_works + cost_metal_structure + + total_cost_indoorequip_transformer + total_cost_indoorequip_line + + total_cost_installation + total_cost_busbar + total_cost_cable + total_cost_additional) + + # Where do we multiply Y?? + return K * total_cost + X + + +# POI (CPOI) +def calculate_poi_cost(K: float, X: float, CPOI: float) -> float: + """ + Calculate the cost for the POI. + :param K: multiplication factor + :param X: add on to total + :param CPOI: cost for the POI + """ + return K * CPOI + X + + +# Other costs (Cothers) +def calculate_other_costs(K: float, X: float, cost_others: float) -> float: + """ + Calculate the cost for other costs. + :param K: multiplication factor + :param X: add on to total + :param cost_others: cost for other factors + """ + return K * cost_others + X + + +K = 1.0 +X = 0.0 +Y = 1.0 +L = 1.0 # length m +A = 1.0 # input cross section mm^2 +V = 1.0 # voltage kV +num_circuits = 2 +num_trenches = 1 +ratio = 1.0 +mw_trafos = 300 # MW +num_trafos = 2 +num_lines = 4 +num_shunt_reactor = 1 +num_statcom = 1 +num_harmonic_filter_banks = 1 + +# Calculate all costs +cost_onshore_substation = calculate_onshore_substation_cost(mw_trafos, num_trafos, num_lines, num_shunt_reactor, + num_statcom, + num_harmonic_filter_banks, K, X, Y) +cost_onshore_cable = calculate_onshore_cable_cost(L, A, V, num_circuits, num_trenches, "buried", K, X) +cost_exc = calculate_exc_cost(L, A, V, K, X) +cost_offset = calculate_offset_cost(K, X) +cost_cables_iac = calculate_cables_iac_cost(K, X) +cost_turbine = calculate_turbine_cost(K, X, 100, "Scope A") +cost_eng_management = calculate_eng_management_cost(K, X, 0.0) +cost_poi = calculate_poi_cost(K, X, 0.0) +cost_others = calculate_other_costs(K, X, 0.0) + +capex = cost_onshore_substation + cost_onshore_cable + cost_exc + cost_offset + cost_cables_iac + cost_turbine + \ + cost_eng_management + cost_poi + cost_others + +print(f"Capex: {capex}") + +# @nb.njit(cache=True) +# def get_overload_score(loading: Union[CxMat, CxVec], branches_cost: Vec, threshold=1.0) -> float: +# """ +# Compute overload score by multiplying the loadings above 100% by the associated branch cost. +# :param loading: load results +# :param branches_cost: all branch elements from studied grid +# :param threshold: threshold for overload +# :return: sum of all costs associated to branch overloads +# """ +# cost_ = float(0.0) +# +# if loading.ndim == 1: +# for i in range(loading.shape[0]): +# absloading = np.abs(loading[i]) +# if absloading > threshold: +# cost_ += (absloading - threshold) * float(branches_cost[i]) +# +# elif loading.ndim == 2: +# +# for i in range(loading.shape[0]): +# for j in range(loading.shape[1]): +# absloading = np.abs(loading[i, j]) +# if absloading > threshold: +# cost_ += (absloading - threshold) * branches_cost[j] +# +# return cost_ +# +# +# @nb.njit(cache=True) +# def get_voltage_module_score(voltage: Union[CxVec, CxMat], vm_cost: Vec, vm_max: Vec, vm_min: Vec) -> float: +# """ +# Compute voltage module score by multiplying the voltages outside limits by the associated bus costs. +# :param voltage: voltage results +# :param vm_cost: Vm cost array +# :param vm_max: maximum voltage +# :param vm_min: minimum voltage +# :return: sum of all costs associated to voltage module deviation +# """ +# cost_ = 0.0 +# +# if voltage.ndim == 1: +# for i in range(voltage.shape[0]): +# vm = np.abs(voltage[i]) +# if vm < vm_min[i]: +# cost_ += vm_cost[i] * (vm_min[i] - vm) +# elif vm > vm_max[i]: +# cost_ += vm_cost[i] * (vm - vm_max[i]) +# elif voltage.ndim == 2: +# for i in range(voltage.shape[0]): +# for j in range(voltage.shape[1]): +# vm = np.abs(voltage[i, j]) +# if vm < vm_min[j]: +# cost_ += vm_cost[j] * (vm_min[j] - vm) +# elif vm > vm_max[j]: +# cost_ += vm_cost[j] * (vm - vm_max[j]) +# +# return cost_ +# +# +# @nb.njit(cache=True) +# def get_voltage_phase_score(voltage: Union[CxMat, CxVec], va_cost: Vec, va_max: Vec, va_min: Vec) -> float: +# """ +# Compute voltage phase score by multiplying the phases outside limits by the associated bus costs. +# :param voltage: voltage results +# :param va_cost: array of bus angles costs +# :param va_max: maximum voltage angles +# :param va_min: minimum voltage angles +# :return: sum of all costs associated to voltage module deviation +# """ +# cost_ = 0.0 +# +# if voltage.ndim == 1: +# for i in range(voltage.shape[0]): +# va = np.angle(voltage[i]) +# if va < va_min[i]: +# cost_ += va_cost[i] * (va_min[i] - va) +# elif va > va_max[i]: +# cost_ += va_cost[i] * (va - va_max[i]) +# +# elif voltage.ndim == 2: +# for i in range(voltage.shape[0]): +# for j in range(voltage.shape[1]): +# va = np.angle(voltage[i, j]) +# if va < va_min[j]: +# cost_ += va_cost[j] * (va_min[j] - va) +# elif va > va_max[j]: +# cost_ += va_cost[j] * (va - va_max[j]) +# +# return cost_ From 0766b5d694bbb9020faaa8cadcd07b72c39859de Mon Sep 17 00:00:00 2001 From: santi Date: Fri, 9 Aug 2024 11:03:54 +0100 Subject: [PATCH 040/218] Fixed k_mtau as the intersection instead of the union --- .../Parents/controllable_branch_parent.py | 39 ++- .../pf_advanced_formulation.py | 3 +- .../Topology/simulation_indices.py | 4 +- src/tests/test_admittance_tap_derivatives.py | 47 ++-- .../acopf/acopf_admittance_tap_derivation.py | 225 +++++++++++------- 5 files changed, 189 insertions(+), 129 deletions(-) diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index 26bed87f4..71de998dd 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -184,7 +184,7 @@ def __init__(self, self.tap_module_max = tap_module_max self.tap_module_min = tap_module_min - self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode + self._tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode self._tap_phase_control_mode_prof = Profile(default_value=tap_phase_control_mode, data_type=TapPhaseControl) self.Pset = Pset @@ -200,7 +200,7 @@ def __init__(self, self.tap_phase_max = tap_phase_max self.tap_phase_min = tap_phase_min - self.tap_module_control_mode: TapModuleControl = tap_module_control_mode + self._tap_module_control_mode: TapModuleControl = tap_module_control_mode self._tap_module_control_mode_prof = Profile(default_value=tap_module_control_mode, data_type=TapModuleControl) self.vset = vset @@ -417,6 +417,32 @@ def temp_oper_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a temp_oper_prof') + @property + def tap_phase_control_mode(self) -> TapPhaseControl: + """ + Get the tap phase control mode + :return: TapPhaseControl + """ + return self._tap_phase_control_mode + + @tap_phase_control_mode.setter + def tap_phase_control_mode(self, val: TapPhaseControl): + assert isinstance(val, TapPhaseControl) + self._tap_phase_control_mode = val + + @property + def tap_module_control_mode(self) -> TapModuleControl: + """ + Get the tap module control mode + :return: TapPhaseControl + """ + return self._tap_module_control_mode + + @tap_module_control_mode.setter + def tap_module_control_mode(self, val: TapModuleControl): + assert isinstance(val, TapModuleControl) + self._tap_module_control_mode = val + @property def R_corrected(self): """ @@ -453,3 +479,12 @@ def flip(self): """ F, T = self.bus_from, self.bus_to self.bus_to, self.bus_from = F, T + + def set_tap_controls(self, tap_phase_control_mode: TapPhaseControl, tap_module_control_mode: TapModuleControl): + """ + Set both tap controls + :param tap_phase_control_mode: TapPhaseControl + :param tap_module_control_mode: TapModuleControl + """ + self.tap_phase_control_mode = tap_phase_control_mode + self.tap_module_control_mode = tap_module_control_mode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index f31b64f8b..945758575 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -204,8 +204,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.m: Vec = np.ones(len(self.idx_dm)) self.tau: Vec = np.zeros(len(self.idx_dtau)) - self.beq: Vec = np.zeros(len(self.idx_dbeq)) - self.beq += 0.001 # some initial value + self.beq: Vec = np.full(len(self.idx_dbeq), 0.001) # some initial value self.Ys = 1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X) diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index dc57fbb40..066256aab 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -148,10 +148,10 @@ def k_tau(self): @property def k_mtau(self): """ - Return a composition of all indices affected by m|tau + Return a composition of all indices affected by the intersection of "m" and "tau" :return: """ - return np.r_[self.k_m, self.k_tau] + return np.intersect1d(self.k_m, self.k_tau) def analyze_branch_controls(self) -> None: """ diff --git a/src/tests/test_admittance_tap_derivatives.py b/src/tests/test_admittance_tap_derivatives.py index 6bdd8a9ea..ab2c90175 100644 --- a/src/tests/test_admittance_tap_derivatives.py +++ b/src/tests/test_admittance_tap_derivatives.py @@ -20,14 +20,13 @@ import GridCalEngine.api as gce from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at, NumericalCircuit -from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import ac_optimal_power_flow, NonlinearOPFResults from trunk.acopf.acopf_admittance_tap_derivation import (compute_finitediff_admittances, compute_finitediff_admittances_2dev, compute_analytic_admittances, compute_analytic_admittances_2dev) -def case_3bus(): +def case_3bus() -> NumericalCircuit: """ :return: @@ -67,7 +66,7 @@ def case_3bus(): return nc -def case_5bus(): +def case_5bus() -> NumericalCircuit: """ Grid from Lynn Powel's book """ @@ -110,19 +109,19 @@ def case_5bus(): grid.add_line(gce.Line(bus1, bus3, name='line 1-3', r=0.05, x=0.11, b=0.02, rate=1000)) grid.add_line(gce.Line(bus1, bus5, name='line 1-5', r=0.03, x=0.08, b=0.02, rate=1000)) - tr1 = gce.Transformer2W(bus1, bus2, name='Trafo1', tap_phase_control_mode=TapPhaseControl.fixed, + tr1 = gce.Transformer2W(bus1, bus2, name='Trafo1', tap_module=1.1, tap_phase=0.02, r=0.05, x=0.11, b=0.02) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(bus2, bus3, name='Trafo2', tap_phase_control_mode=TapPhaseControl.fixed, + tr2 = gce.Transformer2W(bus2, bus3, name='Trafo2', tap_module=0.98, tap_phase=-0.02, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr2) - tr3 = gce.Transformer2W(bus2, bus5, name='Trafo3', tap_phase_control_mode=TapPhaseControl.fixed, + tr3 = gce.Transformer2W(bus2, bus5, name='Trafo3', tap_module=1.02, tap_phase=-0.04, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr3) tr4 = gce.Transformer2W(bus3, bus4, name='Trafo4', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=0.04, r=0.06, x=0.13, b=0.03) grid.add_transformer2w(tr4) - tr5 = gce.Transformer2W(bus4, bus5, name='Trafo5', tap_phase_control_mode=TapPhaseControl.fixed, + tr5 = gce.Transformer2W(bus4, bus5, name='Trafo5', tap_module=0.97, tap_phase=-0.01, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr5) @@ -166,8 +165,7 @@ def case14() -> NumericalCircuit: grid = gce.FileOpen(file_path).open() for l in grid.get_transformers2w(): - l.tap_phase_control_mode = TapPhaseControl.Pt - l.tap_module_control_mode = TapModuleControl.Qt + l.set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) nc = gce.compile_numerical_circuit_at(grid) @@ -184,25 +182,18 @@ def case_pegase89() -> NumericalCircuit: file_path = os.path.join('data', 'grids', 'case89pegase.m') grid = gce.FileOpen(file_path).open() - grid.get_transformers2w()[3].tap_phase_control_mode = TapPhaseControl.Pt - grid.get_transformers2w()[3].tap_module_control_mode = TapModuleControl.Qt - - grid.get_transformers2w()[7].tap_phase_control_mode = TapPhaseControl.Pt - grid.get_transformers2w()[7].tap_module_control_mode = TapModuleControl.Qt - - grid.get_transformers2w()[18].tap_module_control_mode = TapModuleControl.Vm - - grid.get_transformers2w()[21].tap_phase_control_mode = TapPhaseControl.Pt - grid.get_transformers2w()[21].tap_module_control_mode = TapModuleControl.Qt - - grid.get_transformers2w()[36].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[3].set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) + grid.get_transformers2w()[7].set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) + grid.get_transformers2w()[18].set_tap_controls(TapPhaseControl.fixed, TapModuleControl.Vm) + grid.get_transformers2w()[21].set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) + grid.get_transformers2w()[36].set_tap_controls(TapPhaseControl.Pf, TapModuleControl.fixed) nc = gce.compile_numerical_circuit_at(grid) return nc -def test_case_3bus(): +def test_case_3bus() -> None: nc = case_3bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -231,7 +222,7 @@ def test_case_3bus(): assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) -def test_case_5bus(): +def test_case_5bus() -> None: nc = case_5bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -260,7 +251,7 @@ def test_case_5bus(): assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) -def test_pegase89(): +def test_pegase89() -> None: nc = case_pegase89() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -289,7 +280,7 @@ def test_pegase89(): assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) -def test_case14(): +def test_case14() -> None: nc = case14() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -317,9 +308,3 @@ def test_case14(): assert np.allclose(Q.toarray(), Q_.toarray(), atol=1e-1) assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) # pass - - -# def test_ieee14(): - - -# def test_pegase89(): diff --git a/src/trunk/acopf/acopf_admittance_tap_derivation.py b/src/trunk/acopf/acopf_admittance_tap_derivation.py index 5baf00031..7ad27b8ac 100644 --- a/src/trunk/acopf/acopf_admittance_tap_derivation.py +++ b/src/trunk/acopf/acopf_admittance_tap_derivation.py @@ -1,9 +1,24 @@ -import os +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import GridCalEngine.api as gce -from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf, ac_optimal_power_flow -from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl -from scipy.sparse import csc_matrix as csc +from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at, NumericalCircuit +from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf +from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions +from GridCalEngine.enumerations import TapPhaseControl from scipy import sparse as sp import numpy as np @@ -57,12 +72,21 @@ def example_3bus_acopf(): # print('\n\n', grid.name) # print('\tConv:\n', power_flow.results.get_bus_df()) # print('\tConv:\n', power_flow.results.get_branch_df()) + opf_options = OptimalPowerFlowOptions() pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, verbose=3) - run_nonlinear_opf(grid=grid, pf_options=pf_options, plot_error=True) + run_nonlinear_opf(grid=grid, + opf_options=opf_options, + pf_options=pf_options, + plot_error=True) -def compute_analytic_admittances(nc): +def compute_analytic_admittances(nc: NumericalCircuit): + """ + + :param nc: + :return: + """ k_m = nc.k_m k_tau = nc.k_tau k_mtau = nc.k_mtau @@ -114,40 +138,51 @@ def compute_analytic_admittances(nc): return dYbusdm, dYfdm, dYtdm, dYbusdt, dYfdt, dYtdt -def compute_finitediff_admittances(nc, tol=1e-5): - k_m = nc.k_m - k_tau = nc.k_tau - - Ybus0 = nc.Ybus - Yf0 = nc.Yf - Yt0 = nc.Yt +def compute_finitediff_admittances(nc: NumericalCircuit, tol=1e-5): + """ - nc.branch_data.tap_module[k_m] += tol - nc.reset_calculations() + :param nc: NumericalCircuit + :param tol: tolerance + :return: + """ + indices = nc.get_simulation_indices() + k_m = indices.k_m + k_tau = indices.k_tau - dYfdm = (nc.Yf - Yf0) / tol - dYtdm = (nc.Yt - Yt0) / tol - dYbusdm = (nc.Ybus - Ybus0) / tol + # base values + adm0 = nc.get_admittance_matrices() + # Modify tap modules + nc.branch_data.tap_module[k_m] += tol + adm1 = nc.get_admittance_matrices() nc.branch_data.tap_module[k_m] -= tol + dYf_dm = (adm1.Yf - adm0.Yf) / tol + dYt_dm = (adm1.Yt - adm0.Yt) / tol + dY_dm = (adm1.Ybus - adm0.Ybus) / tol + + # modify tap angles nc.branch_data.tap_angle[k_tau] += tol - nc.reset_calculations() + adm2 = nc.get_admittance_matrices() + nc.branch_data.tap_angle[k_tau] -= tol - dYfdt = (nc.Yf - Yf0) / tol - dYtdt = (nc.Yt - Yt0) / tol - dYbusdt = (nc.Ybus - Ybus0) / tol + dYf_dt = (adm2.Yf - adm0.Yf) / tol + dYt_dt = (adm2.Yt - adm0.Yt) / tol + dY_dt = (adm2.Ybus - adm0.Ybus) / tol - nc.branch_data.tap_angle[k_tau] -= tol - nc.reset_calculations() + return dY_dm, dYf_dm, dYt_dm, dY_dt, dYf_dt, dYt_dt - return dYbusdm, dYfdm, dYtdm, dYbusdt, dYfdt, dYtdt +def compute_analytic_admittances_2dev(nc: NumericalCircuit): + """ -def compute_analytic_admittances_2dev(nc): - k_m = nc.k_m - k_tau = nc.k_tau - k_mtau = nc.k_mtau + :param nc: + :return: + """ + indices = nc.get_simulation_indices() + k_m = indices.k_m + k_tau = indices.k_tau + k_mtau = indices.k_mtau tapm = nc.branch_data.tap_module tapt = nc.branch_data.tap_angle @@ -161,103 +196,109 @@ def compute_analytic_admittances_2dev(nc): tau = tapt[k_m] ylin = ys[k_m] - dYffdmdm = np.zeros(len(tapm), dtype=complex) - dYftdmdm = np.zeros(len(tapm), dtype=complex) - dYtfdmdm = np.zeros(len(tapm), dtype=complex) - dYttdmdm = np.zeros(len(tapm), dtype=complex) + # primitived + dyff_dmdm = np.zeros(nc.nbr, dtype=complex) + dyft_dmdm = np.zeros(nc.nbr, dtype=complex) + dytf_dmdm = np.zeros(nc.nbr, dtype=complex) + dytt_dmdm = np.zeros(nc.nbr, dtype=complex) - dYffdmdm[k_m] = 6 * ylin / (mp * mp * mp * mp) - dYftdmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(-1.0j * tau)) - dYtfdmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(1.0j * tau)) + dyff_dmdm[k_m] = 6 * ylin / (mp * mp * mp * mp) + dyft_dmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(-1.0j * tau)) + dytf_dmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(1.0j * tau)) - dYfdmdm = (sp.diags(dYffdmdm) * Cf + sp.diags(dYftdmdm) * Ct) - dYtdmdm = (sp.diags(dYtfdmdm) * Cf + sp.diags(dYttdmdm) * Ct) + dYf_dmdm = (sp.diags(dyff_dmdm) * Cf + sp.diags(dyft_dmdm) * Ct) + dYt_dmdm = (sp.diags(dytf_dmdm) * Cf + sp.diags(dytt_dmdm) * Ct) - dYbusdmdm = (Cf.T * dYfdmdm + Ct.T * dYtdmdm) + dY_dmdm = (Cf.T * dYf_dmdm + Ct.T * dYt_dmdm) # Second partial derivative with respect to tap angle mp = tapm[k_tau] tau = tapt[k_tau] ylin = ys[k_tau] - dYffdtdt = np.zeros(len(tapm), dtype=complex) - dYftdtdt = np.zeros(len(tapm), dtype=complex) - dYtfdtdt = np.zeros(len(tapm), dtype=complex) - dYttdtdt = np.zeros(len(tapm), dtype=complex) + # primitives + dyff_dtdt = np.zeros(nc.nbr, dtype=complex) + dyft_dtdt = np.zeros(nc.nbr, dtype=complex) + dytf_dtdt = np.zeros(nc.nbr, dtype=complex) + dytt_dtdt = np.zeros(nc.nbr, dtype=complex) - dYftdtdt[k_tau] = ylin / (mp * np.exp(-1.0j * tau)) - dYtfdtdt[k_tau] = ylin / (mp * np.exp(1.0j * tau)) + dyft_dtdt[k_tau] = ylin / (mp * np.exp(-1.0j * tau)) + dytf_dtdt[k_tau] = ylin / (mp * np.exp(1.0j * tau)) - dYfdtdt = sp.diags(dYffdtdt) * Cf + sp.diags(dYftdtdt) * Ct - dYtdtdt = sp.diags(dYtfdtdt) * Cf + sp.diags(dYttdtdt) * Ct + dYf_dtdt = sp.diags(dyff_dtdt) * Cf + sp.diags(dyft_dtdt) * Ct + dYt_dtdt = sp.diags(dytf_dtdt) * Cf + sp.diags(dytt_dtdt) * Ct - dYbusdtdt = Cf.T * dYfdtdt + Ct.T * dYtdtdt + dY_dtdt = Cf.T * dYf_dtdt + Ct.T * dYt_dtdt # Second partial derivative with respect to both tap module and angle mp = tapm[k_mtau] tau = tapt[k_mtau] ylin = ys[k_mtau] - dYffdmdt = np.zeros(len(tapm), dtype=complex) - dYftdmdt = np.zeros(len(tapm), dtype=complex) - dYtfdmdt = np.zeros(len(tapm), dtype=complex) - dYttdmdt = np.zeros(len(tapm), dtype=complex) - - dYftdmdt[k_mtau] = 1j * ylin / (mp * mp * np.exp(-1.0j * tau)) - dYtfdmdt[k_mtau] = -1j * ylin / (mp * mp * np.exp(1.0j * tau)) + # primitives + dyffdmdt = np.zeros(nc.nbr, dtype=complex) + dyft_dmdt = np.zeros(nc.nbr, dtype=complex) + dytf_dmdt = np.zeros(nc.nbr, dtype=complex) + dyttdmdt = np.zeros(nc.nbr, dtype=complex) - dYfdmdt = sp.diags(dYffdmdt) * Cf + sp.diags(dYftdmdt) * Ct - dYtdmdt = sp.diags(dYtfdmdt) * Cf + sp.diags(dYttdmdt) * Ct + dyft_dmdt[k_mtau] = 1j * ylin / (mp * mp * np.exp(-1.0j * tau)) + dytf_dmdt[k_mtau] = -1j * ylin / (mp * mp * np.exp(1.0j * tau)) - dYbusdmdt = Cf.T * dYfdmdt + Ct.T * dYtdmdt + dYf_dmdt = sp.diags(dyffdmdt) * Cf + sp.diags(dyft_dmdt) * Ct + dYt_dmdt = sp.diags(dytf_dmdt) * Cf + sp.diags(dyttdmdt) * Ct - dYfdtdm = dYfdmdt.copy() - dYtdtdm = dYtdmdt.copy() - dYbusdtdm = dYbusdmdt.copy() + dY_dmdt = Cf.T * dYf_dmdt + Ct.T * dYt_dmdt - return (dYbusdmdm, dYfdmdm, dYtdmdm, dYbusdmdt, dYfdmdt, dYtdmdt, - dYbusdtdm, dYfdtdm, dYtdtdm, dYbusdtdt, dYfdtdt, dYtdtdt) - - -def compute_finitediff_admittances_2dev(nc, tol=1e-5): - k_m = nc.k_m - k_tau = nc.k_tau + dYf_dtdm = dYf_dmdt.copy() + dYt_dtdm = dYt_dmdt.copy() + dY_dtdm = dY_dmdt.copy() - dYb0dm, dYf0dm, dYt0dm, dYb0dt, dYf0dt, dYt0dt = compute_finitediff_admittances(nc) + return (dY_dmdm, dYf_dmdm, dYt_dmdm, dY_dmdt, dYf_dmdt, dYt_dmdt, + dY_dtdm, dYf_dtdm, dYt_dtdm, dY_dtdt, dYf_dtdt, dYt_dtdt) - nc.branch_data.tap_module[k_m] += tol - nc.reset_calculations() - dYbdm, dYfdm, dYtdm, dYbdt, dYfdt, dYtdt = compute_finitediff_admittances(nc) +def compute_finitediff_admittances_2dev(nc: NumericalCircuit, tol=1e-5): + """ - dYfdmdm = (dYfdm - dYf0dm) / tol - dYtdmdm = (dYtdm - dYt0dm) / tol - dYbusdmdm = (dYbdm - dYb0dm) / tol + :param nc: + :param tol: + :return: + """ + indices = nc.get_simulation_indices() + k_m = indices.k_m + k_tau = indices.k_tau - dYfdtdm = (dYfdt - dYf0dt) / tol - dYtdtdm = (dYtdt - dYt0dt) / tol - dYbusdtdm = (dYbdt - dYb0dt) / tol + # Refference + dY0_dm, dYf0_dm, dYt0_dm, dY0_dt, dYf0_dt, dYt0_dt = compute_finitediff_admittances(nc) + # Modify the tap module + nc.branch_data.tap_module[k_m] += tol + dY_dm, dYf_dm, dYt_dm, dY_dt, dYf_dt, dYt_dt = compute_finitediff_admittances(nc) nc.branch_data.tap_module[k_m] -= tol - nc.branch_data.tap_angle[k_tau] += tol - nc.reset_calculations() + dYf_dmdm = (dYf_dm - dYf0_dm) / tol + dYt_dmdm = (dYt_dm - dYt0_dm) / tol + dY_dmdm = (dY_dm - dY0_dm) / tol - dYbdm, dYfdm, dYtdm, dYbdt, dYfdt, dYtdt = compute_finitediff_admittances(nc) + dYf_dtdm = (dYf_dt - dYf0_dt) / tol + dYt_dtdm = (dYt_dt - dYt0_dt) / tol + dY_dtdm = (dY_dt - dY0_dt) / tol - dYfdmdt = (dYfdm - dYf0dm) / tol - dYtdmdt = (dYtdm - dYt0dm) / tol - dYbusdmdt = (dYbdm - dYb0dm) / tol + # Modify the tap angle + nc.branch_data.tap_angle[k_tau] += tol + dY_dm, dYf_dm, dYt_dm, dY_dt, dYf_dt, dYt_dt = compute_finitediff_admittances(nc) + nc.branch_data.tap_angle[k_tau] -= tol - dYfdtdt = (dYfdt - dYf0dt) / tol - dYtdtdt = (dYtdt - dYt0dt) / tol - dYbusdtdt = (dYbdt - dYb0dt) / tol + dYf_dmdt = (dYf_dm - dYf0_dm) / tol + dYt_dmdt = (dYt_dm - dYt0_dm) / tol + dY_dmdt = (dY_dm - dY0_dm) / tol - nc.branch_data.tap_angle[k_tau] -= tol - nc.reset_calculations() + dYf_dtdt = (dYf_dt - dYf0_dt) / tol + dYt_dtdt = (dYt_dt - dYt0_dt) / tol + dY_dtdt = (dY_dt - dY0_dt) / tol - return (dYbusdmdm, dYfdmdm, dYtdmdm, dYbusdmdt, dYfdmdt, dYtdmdt, - dYbusdtdm, dYfdtdm, dYtdtdm, dYbusdtdt, dYfdtdt, dYtdtdt) + return (dY_dmdm, dYf_dmdm, dYt_dmdm, dY_dmdt, dYf_dmdt, dYt_dmdt, + dY_dtdm, dYf_dtdm, dYt_dtdm, dY_dtdt, dYf_dtdt, dYt_dtdt) if __name__ == '__main__': From 12bd48dab193da51f23e8d4329e77f9df8821ff8 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Fri, 9 Aug 2024 12:11:03 +0200 Subject: [PATCH 041/218] Capex class set up Python version --- .idea/workspace.xml | 19 +- .../Methods/mixed_variable_NSGA_2.py | 3 +- src/GridCalEngine/Utils/acciona_capex.py | 591 +++++++++--------- 3 files changed, 299 insertions(+), 314 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e0c19faec..4156b4dac 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,10 @@ - - + - - - + + + @@ -1789,7 +1785,7 @@ - @@ -1837,7 +1840,8 @@ - @@ -2377,11 +2381,6 @@ 229 - + - + @@ -2445,23 +2439,23 @@ - + - + - - + + + - @@ -2484,18 +2478,18 @@ - - + + - - + + @@ -2523,8 +2517,8 @@ - + @@ -2588,8 +2582,8 @@ - + @@ -2613,8 +2607,8 @@ - + @@ -2786,7 +2780,7 @@ - + diff --git a/src/GridCal/Session/results_model.py b/src/GridCal/Session/results_model.py index 6fe176d43..290a3eca3 100644 --- a/src/GridCal/Session/results_model.py +++ b/src/GridCal/Session/results_model.py @@ -65,6 +65,23 @@ def __init__(self, table: ResultsTable, parent=None): self.units = table.units + # flag for the headers text wraper: HeaderViewWithWordWrap + self._hide_headers_mode = False + + def hideHeaders(self): + """ + + :return: + """ + self._hide_headers_mode = True + + def unhideHeaders(self): + """ + + :return: + """ + self._hide_headers_mode = False + def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlag: """ @@ -135,6 +152,9 @@ def headerData(self, :param role: :return: """ + if self._hide_headers_mode is True: + return None + if role == QtCore.Qt.ItemDataRole.DisplayRole: if orientation == QtCore.Qt.Orientation.Horizontal: if len(self.table.cols_c) > section: diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index a62f0d465..b5eba1278 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -173,13 +173,6 @@ class NumericalCircuit: 'k_qf_beq', 'k_v_m', 'k_v_beq', - 'idx_dPf', - 'idx_dQf', - 'idx_dPt', - 'idx_dQt', - 'idx_dm', - 'idx_dtau', - 'idx_dbeq', ], "System matrices": [ 'Ybus', @@ -195,8 +188,21 @@ class NumericalCircuit: "B''", 'Yshunt', 'Yseries', - 'Jacobian', ], + "Power flow arrays": [ + 'idx_dPf', + 'idx_dQf', + 'idx_dPt', + 'idx_dQt', + 'idx_dVa', + 'idx_dVm', + 'idx_dm', + 'idx_dtau', + 'idx_dbeq', + 'x', + 'f(x)', + 'Jacobian', + ] } def __init__(self, @@ -1369,13 +1375,30 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: if self.simulation_indices_ is None: self.simulation_indices_ = self.get_simulation_indices() - idx_dm = np.r_[self.simulation_indices_.k_v_m, self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qt_m] - idx_dtau = np.r_[self.simulation_indices_.k_pf_tau, self.simulation_indices_.k_pt_tau] - idx_dbeq = self.simulation_indices_.k_qf_beq - idx_dPf = self.simulation_indices_.k_pf_tau - idx_dQf = np.r_[self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qf_beq] - idx_dPt = self.simulation_indices_.k_pt_tau - idx_dQt = self.simulation_indices_.k_qt_m + # idx_dm = np.r_[self.simulation_indices_.k_v_m, self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qt_m] + # idx_dtau = np.r_[self.simulation_indices_.k_pf_tau, self.simulation_indices_.k_pt_tau] + # idx_dbeq = self.simulation_indices_.k_qf_beq + # idx_dPf = self.simulation_indices_.k_pf_tau + # idx_dQf = np.r_[self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qf_beq] + # idx_dPt = self.simulation_indices_.k_pt_tau + # idx_dQt = self.simulation_indices_.k_qt_m + + from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import ( + PfAdvancedFormulation) + from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions + + formulation = PfAdvancedFormulation(V0=self.Vbus, + S0=self.Sbus, + I0=self.Ibus, + Y0=self.YLoadBus, + Qmin=self.Qmin_bus, + Qmax=self.Qmax_bus, + pq=self.pq, + pv=self.pv, + pqv=self.pqv, + p=self.p, + nc=self, + options=PowerFlowOptions()) if structure_type == 'V': df = pd.DataFrame( @@ -1545,25 +1568,21 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: index=self.bus_data.names, ) - elif structure_type == 'Jacobian': + elif structure_type == 'x': + df = pd.DataFrame( + data=formulation.var2x(), + columns=['x'], + index=formulation.get_x_names(), + ) - from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import ( - PfAdvancedFormulation) - from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions - - formulation = PfAdvancedFormulation(V0=self.Vbus, - S0=self.Sbus, - I0=self.Ibus, - Y0=self.YLoadBus, - Qmin=self.Qmin_bus, - Qmax=self.Qmax_bus, - pq=self.pq, - pv=self.pv, - pqv=self.pqv, - p=self.p, - nc=self, - options=PowerFlowOptions()) + elif structure_type == 'f(x)': + df = pd.DataFrame( + data=formulation.fx(), + columns=['f(x)'], + index=formulation.get_fx_names(), + ) + elif structure_type == 'Jacobian': df = formulation.get_jacobian_df(autodiff=False) elif structure_type == 'Qmin': @@ -1711,79 +1730,93 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: ) elif structure_type == 'idx_dPf': df = pd.DataFrame( - data=idx_dPf.astype(int).astype(str), + data=formulation.idx_dPf.astype(int).astype(str), columns=['idx_dPf'], - index=self.branch_data.names[idx_dPf], + index=self.branch_data.names[formulation.idx_dPf], ) elif structure_type == 'idx_dQf': df = pd.DataFrame( - data=idx_dQf.astype(int).astype(str), + data=formulation.idx_dQf.astype(int).astype(str), columns=['idx_dQf'], - index=self.branch_data.names[idx_dQf], + index=self.branch_data.names[formulation.idx_dQf], ) elif structure_type == 'idx_dPt': df = pd.DataFrame( - data=idx_dPt.astype(int).astype(str), + data=formulation.idx_dPt.astype(int).astype(str), columns=['idx_dPt'], - index=self.branch_data.names[idx_dPt], + index=self.branch_data.names[formulation.idx_dPt], ) elif structure_type == 'idx_dQt': df = pd.DataFrame( - data=idx_dQt.astype(int).astype(str), + data=formulation.idx_dQt.astype(int).astype(str), columns=['idx_dQt'], - index=self.branch_data.names[idx_dQt], + index=self.branch_data.names[formulation.idx_dQt], + ) + + elif structure_type == 'idx_dVa': + df = pd.DataFrame( + data=formulation.idx_dVa.astype(int).astype(str), + columns=['idx_dVa'], + index=self.bus_data.names[formulation.idx_dVa], + ) + + elif structure_type == 'idx_dVm': + df = pd.DataFrame( + data=formulation.idx_dVm.astype(int).astype(str), + columns=['idx_dVm'], + index=self.bus_data.names[formulation.idx_dVm], ) elif structure_type == 'idx_dm': df = pd.DataFrame( - data=idx_dm.astype(int).astype(str), + data=formulation.idx_dm.astype(int).astype(str), columns=['idx_dm'], - index=self.branch_data.names[idx_dm], + index=self.branch_data.names[formulation.idx_dm], ) elif structure_type == 'idx_dtau': df = pd.DataFrame( - data=idx_dtau.astype(int).astype(str), + data=formulation.idx_dtau.astype(int).astype(str), columns=['idx_dtau'], - index=self.branch_data.names[idx_dtau], + index=self.branch_data.names[formulation.idx_dtau], ) elif structure_type == 'idx_dbeq': df = pd.DataFrame( - data=idx_dbeq.astype(int).astype(str), + data=formulation.idx_dbeq.astype(int).astype(str), columns=['idx_dbeq'], - index=self.branch_data.names[idx_dbeq], + index=self.branch_data.names[formulation.idx_dbeq], ) elif structure_type == 'Pf_set': df = pd.DataFrame( - data=self.branch_data.Pset[idx_dPf], + data=self.branch_data.Pset[formulation.idx_dPf], columns=['Pf_set'], - index=self.branch_data.names[idx_dPf], + index=self.branch_data.names[formulation.idx_dPf], ) elif structure_type == 'Pt_set': df = pd.DataFrame( - data=self.branch_data.Pset[idx_dPt], + data=self.branch_data.Pset[formulation.idx_dPt], columns=['Pt_set'], - index=self.branch_data.names[idx_dPt], + index=self.branch_data.names[formulation.idx_dPt], ) elif structure_type == 'Qf_set': df = pd.DataFrame( - data=self.branch_data.Pset[idx_dQf], + data=self.branch_data.Pset[formulation.idx_dQf], columns=['Qf_set'], - index=self.branch_data.names[idx_dQf], + index=self.branch_data.names[formulation.idx_dQf], ) elif structure_type == 'Qt_set': df = pd.DataFrame( - data=self.branch_data.Qset[idx_dQt], + data=self.branch_data.Qset[formulation.idx_dQt], columns=['Qt_set'], - index=self.branch_data.names[idx_dQt], + index=self.branch_data.names[formulation.idx_dQt], ) else: diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 5b16edbbb..94e7266b3 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -970,17 +970,17 @@ def dSbus_dm_csc(nbus, bus_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, # from side if f_idx >= 0: YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) - dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) - dyft_dma = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) - Tx[nnz] = V[f] * np.conj(dyff_dma * V[f] + dyft_dma * V[t]) + dyff_dm = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) + dyft_dm = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) + Tx[nnz] = V[f] * np.conj(dyff_dm * V[f] + dyft_dm * V[t]) Ti[nnz] = f_idx Tj[nnz] = k_counter nnz += 1 # to side if t_idx >= 0: - dytf_dma = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) - Tx[nnz] = V[t] * np.conj(dytf_dma * V[f]) + dytf_dm = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) + Tx[nnz] = V[t] * np.conj(dytf_dm * V[f]) Ti[nnz] = t_idx Tj[nnz] = k_counter nnz += 1 diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 2b5f9e5e3..5ec5a9800 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -17,7 +17,8 @@ from typing import Tuple import numpy as np import pandas as pd -from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices, compile_y_acdc +from numba import njit +from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices, compile_y_acdc, compute_admittances from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit @@ -32,7 +33,7 @@ from GridCalEngine.basic_structures import Vec, IntVec, CxVec -# @njit() +@njit() def adv_jacobian(nbus: int, nbr: int, idx_dva: IntVec, @@ -143,17 +144,31 @@ def adv_jacobian(nbus: int, # compose the Jacobian J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dtau__, dP_dbeq__, dP_dm__, - dQ_dVa__, dQ_dVm__, dQ_dtau__, dQ_dbeq__, dQ_dm__, - dPf_dVa_, dPf_dVm_, dPf_dtau_, dPf_dbeq_, dPf_dm_, - dQf_dVa_, dQf_dVm_, dQf_dtau_, dQf_dbeq_, dQf_dm_, - dPt_dVa_, dPt_dVm_, dPt_dtau_, dPt_dbeq_, dPt_dm_, - dQt_dVa_, dQt_dVm_, dQt_dtau_, dQt_dbeq_, dQt_dm_], + [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, + dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, + dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, + dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_, + dPt_dVa_, dPt_dVm_, dPt_dm_, dPt_dtau_, dPt_dbeq_, + dQt_dVa_, dQt_dVm_, dQt_dm_, dQt_dtau_, dQt_dbeq_], n_rows=6, n_cols=5) return J +def expand(n, arr: Vec, idx: IntVec, default: float) -> Vec: + """ + + :param n: + :param arr: + :param idx: + :param default: + :return: + """ + x = np.full(n, default) + x[idx] = arr + return x + + class PfAdvancedFormulation(PfFormulationTemplate): def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, @@ -203,22 +218,38 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.idx_dPt = self._indices.k_pt_tau self.idx_dQt = self._indices.k_qt_m - self.m: Vec = np.ones(len(self.idx_dm)) - self.tau: Vec = np.zeros(len(self.idx_dtau)) - self.beq: Vec = np.full(len(self.idx_dbeq), 0.001) # some initial value + self.m: Vec = self.nc.branch_data.tap_module[self.idx_dm] + self.tau: Vec = self.nc.branch_data.tap_angle[self.idx_dtau] + self.beq: Vec = self.nc.branch_data.Beq[self.idx_dbeq] self.Ys = 1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X) - # if not len(self.pqv) >= len(self._indices.k_v_m): - # raise ValueError("k_v_m indices must be the same size as pqv indices!") - - @property - def adm(self) -> AdmittanceMatrices: - """ + self.adm = compute_admittances( + R=self.nc.branch_data.R, + X=self.nc.branch_data.X, + G=self.nc.branch_data.G, + B=self.nc.branch_data.B, + k=self.nc.branch_data.k, + tap_module=expand(self.nc.nbr, self.m, self.idx_dm, 1.0), + vtap_f=self.nc.branch_data.virtual_tap_f, + vtap_t=self.nc.branch_data.virtual_tap_t, + tap_angle=expand(self.nc.nbr, self.tau, self.idx_dtau, 0.0), + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), + Cf=self.nc.Cf, + Ct=self.nc.Ct, + G0sw=self.nc.branch_data.G0sw, + If=np.zeros(len(self.nc.branch_data)), + a=self.nc.branch_data.a, + b=self.nc.branch_data.b, + c=self.nc.branch_data.c, + Yshunt_bus=self.nc.Yshunt_from_devices, + conn=self.nc.branch_data.conn, + seq=1, + add_windings_phase=False + ) - :return: AdmittanceMatrices - """ - return self.nc.admittances_ + if not len(self.pqv) >= len(self._indices.k_v_m): + raise ValueError("k_v_m indices must be the same size as pqv indices!") def x2var(self, x: Vec): """ @@ -227,26 +258,49 @@ def x2var(self, x: Vec): """ a = len(self.idx_dVa) b = a + len(self.idx_dVm) - c = b + len(self.idx_dtau) - d = c + len(self.idx_dbeq) - e = d + len(self.idx_dm) + c = b + len(self.idx_dm) + d = c + len(self.idx_dtau) + e = d + len(self.idx_dbeq) # update the vectors Va = self.Va.copy() Vm = self.Vm.copy() - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - Va[self.idx_dVa] += x[0:a] - Vm[self.idx_dVm] += x[a:b] - tau[self.idx_dtau] += x[b:c] - beq[self.idx_dbeq] += x[c:d] - m[self.idx_dm] += x[d:e] + Va[self.idx_dVa] = x[0:a] + Vm[self.idx_dVm] = x[a:b] + + self.m = x[b:c] + self.tau = x[c:d] + self.beq = x[d:e] # compute the complex voltage self.V = polar_to_rect(self.Vm, self.Va) + # recompute admittances + self.adm = compute_admittances( + R=self.nc.branch_data.R, + X=self.nc.branch_data.X, + G=self.nc.branch_data.G, + B=self.nc.branch_data.B, + k=self.nc.branch_data.k, + tap_module=expand(self.nc.nbr, self.m, self.idx_dm, 1.0), + vtap_f=self.nc.branch_data.virtual_tap_f, + vtap_t=self.nc.branch_data.virtual_tap_t, + tap_angle=expand(self.nc.nbr, self.tau, self.idx_dtau, 0.0), + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), + Cf=self.nc.Cf, + Ct=self.nc.Ct, + G0sw=self.nc.branch_data.G0sw, + If=np.zeros(len(self.nc.branch_data)), + a=self.nc.branch_data.a, + b=self.nc.branch_data.b, + c=self.nc.branch_data.c, + Yshunt_bus=self.nc.Yshunt_from_devices, + conn=self.nc.branch_data.conn, + seq=1, + add_windings_phase=False + ) + def var2x(self) -> Vec: """ Convert the internal decission variables into the vector @@ -255,9 +309,9 @@ def var2x(self) -> Vec: return np.r_[ self.Va[self.idx_dVa], self.Vm[self.idx_dVm], + self.m, self.tau, self.beq, - self.m, ] def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: @@ -350,9 +404,9 @@ def fx_diff(self, x: Vec): """ a = len(self.idx_dVa) b = a + len(self.idx_dVm) - c = b + len(self.idx_dtau) - d = c + len(self.idx_dbeq) - e = d + len(self.idx_dm) + c = b + len(self.idx_dm) + d = c + len(self.idx_dtau) + e = d + len(self.idx_dbeq) # update the vectors Va = self.Va.copy() @@ -361,11 +415,11 @@ def fx_diff(self, x: Vec): tau = np.zeros(self.nc.nbr, dtype=float) beq = np.zeros(self.nc.nbr, dtype=float) - Va[self.idx_dVa] += x[0:a] - Vm[self.idx_dVm] += x[a:b] - tau[self.idx_dtau] += x[b:c] - beq[self.idx_dbeq] += x[c:d] - m[self.idx_dm] += x[d:e] + Va[self.idx_dVa] = x[0:a] + Vm[self.idx_dVm] = x[a:b] + m[self.idx_dm] = x[b:c] + tau[self.idx_dtau] = x[c:d] + beq[self.idx_dbeq] = x[d:e] # compute the complex voltage V = polar_to_rect(Vm, Va) @@ -415,28 +469,20 @@ def Jacobian(self, autodiff: bool = False) -> CSC: return scipy_to_mat(J) else: # Assumes the internal vars were updated already with self.x2var() - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - - tau[self.idx_dtau] = self.tau - m[self.idx_dm] = self.m - beq[self.idx_dbeq] = self.beq - - Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, - Ct=self.nc.Ct, - C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=self.nc.shunt_data.Y, - shunt_active=self.nc.shunt_data.active, - ys=self.nc.branch_data.get_series_admittance(), - B=self.nc.branch_data.B, - Sbase=self.nc.Sbase, - tap_module=m, - tap_angle=tau, - Beq=beq, - Gsw=self.nc.branch_data.G0sw, - virtual_tap_from=self.nc.branch_data.virtual_tap_f, - virtual_tap_to=self.nc.branch_data.virtual_tap_t) + # Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, + # Ct=self.nc.Ct, + # C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), + # shunt_admittance=self.nc.shunt_data.Y, + # shunt_active=self.nc.shunt_data.active, + # ys=self.nc.branch_data.get_series_admittance(), + # B=self.nc.branch_data.B, + # Sbase=self.nc.Sbase, + # tap_module=m, + # tap_angle=tau, + # Beq=beq, + # Gsw=self.nc.branch_data.G0sw, + # virtual_tap_from=self.nc.branch_data.virtual_tap_f, + # virtual_tap_to=self.nc.branch_data.virtual_tap_t) n_rows = (len(self.idx_dP) + len(self.idx_dQ) @@ -454,15 +500,9 @@ def Jacobian(self, autodiff: bool = False) -> CSC: if n_cols != n_rows: raise ValueError("Incorrect J indices!") - # NOTE: beq, m, and tau are not of size nbranch - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - - m[self.idx_dm] = self.m - tau[self.idx_dtau] = self.tau - beq[self.idx_dbeq] = self.beq - tap = polar_to_rect(m, tau) + tap_modules = expand(self.nc.nbr, self.m, self.idx_dm, 1.0) + tap_angles = expand(self.nc.nbr, self.tau, self.idx_dtau, 0.0) + tap = polar_to_rect(tap_modules, tap_angles) J = adv_jacobian(nbus=self.nc.nbus, nbr=self.nc.nbr, @@ -482,34 +522,39 @@ def Jacobian(self, autodiff: bool = False) -> CSC: Ys=self.Ys, kconv=self.nc.branch_data.k, complex_tap=tap, - tap_modules=m, + tap_modules=tap_modules, Bc=self.nc.branch_data.B, - Beq=beq, + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), V=self.V, Vm=self.Vm, - Ybus_x=Ybus.data, - Ybus_p=Ybus.indptr, - Ybus_i=Ybus.indices, - yff=yff, - yft=yft, - ytf=ytf, - ytt=ytt) + Ybus_x=self.adm.Ybus.data, + Ybus_p=self.adm.Ybus.indptr, + Ybus_i=self.adm.Ybus.indices, + yff=self.adm.yff, + yft=self.adm.yft, + ytf=self.adm.ytf, + ytt=self.adm.ytt) return J - def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: + def get_x_names(self): """ - Get the Jacobian DataFrame - :return: DataFrame + Names matching x + :return: """ - J = self.Jacobian(autodiff=autodiff) - cols = [f'dVa {i}' for i in self.idx_dVa] cols += [f'dVm {i}' for i in self.idx_dVm] + cols += [f'dm {i}' for i in self.idx_dm] cols += [f'dtau {i}' for i in self.idx_dtau] cols += [f'dBeq {i}' for i in self.idx_dbeq] - cols += [f'dm {i}' for i in self.idx_dm] + return cols + + def get_fx_names(self): + """ + Names matching fx + :return: + """ rows = [f'dP {i}' for i in self.idx_dP] rows += [f'dQ {i}' for i in self.idx_dQ] rows += [f'dPf {i}' for i in self.idx_dPf] @@ -517,10 +562,18 @@ def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: rows += [f'dPt {i}' for i in self.idx_dPt] rows += [f'dQt {i}' for i in self.idx_dQt] + return rows + + def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: + """ + Get the Jacobian DataFrame + :return: DataFrame + """ + J = self.Jacobian(autodiff=autodiff) return pd.DataFrame( data=J.toarray(), - columns=cols, - index=rows, + columns=self.get_x_names(), + index=self.get_fx_names(), ) def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index e48f3f388..7a347f53e 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -243,10 +243,11 @@ def compute_admittances(R: Vec, raise Exception('Unsupported sequence when computing the admittance matrix sequence={}'.format(seq)) else: # original - Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f) - Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t) - Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f) - Ytt = (ys + bc2) / (vtap_t * vtap_t) + with np.errstate(all='raise'): + Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f) + Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t) + Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f) + Ytt = (ys + bc2) / (vtap_t * vtap_t) # compose the matrices Yf = sp.diags(Yff) * Cf + sp.diags(Yft) * Ct diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 4debd63c1..f2daf74d5 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -294,7 +294,7 @@ def imag(self) -> CSC: A = CSC(self.n_rows, self.n_cols, self.nnz, False) A.indptr = self.indptr A.indices = self.indices - A.data = self.data.real + A.data = self.data.imag return A def resize(self, nnz: int32): From c94f58ab940249b212145c8fe19fab3aa27af42e Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 13:57:17 +0100 Subject: [PATCH 050/218] branch voltage control working --- .idea/workspace.xml | 42 ++++++--- src/GridCal/__version__.py | 2 +- .../pf_advanced_formulation.py | 91 ++++++++----------- .../NumericalMethods/pf_basic_formulation.py | 7 +- .../PowerFlow/power_flow_results.py | 12 ++- src/GridCalEngine/__version__.py | 2 +- src/GridCalServer/__version__.py | 2 +- 7 files changed, 84 insertions(+), 74 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a37e5beb0..5da4a7f4d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,14 @@ - + + - - - - - - + - + @@ -204,7 +201,7 @@ - + - + @@ -669,17 +666,17 @@ - + + - @@ -1425,7 +1422,7 @@ - + 1656059954202 @@ -1770,7 +1767,7 @@ - @@ -1816,7 +1813,6 @@ - @@ -1841,7 +1837,8 @@ - @@ -2408,23 +2405,8 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 582 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py - 386 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py - 542 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py - 788 - @@ -2668,6 +2650,7 @@ + @@ -2800,7 +2783,7 @@ - + diff --git a/src/tests/data/grids/5Bus_LTC_FACTS_Fig4.7.gridcal b/src/tests/data/grids/5Bus_LTC_FACTS_Fig4.7.gridcal new file mode 100644 index 0000000000000000000000000000000000000000..207e6cd187ccc2c3a9d7c9397561d0dd2322d096 GIT binary patch literal 14105 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 literal 0 HcmV?d00001 diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index cfccc0a24..18170a88d 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -211,8 +211,7 @@ def test_controllable_shunt() -> None: def test_voltage_remote_control_with_generation() -> None: """ - - :return: + Check that a generator can perform remote voltage regulation """ fname = os.path.join('data', 'grids', 'RAW', 'IEEE 14 bus.raw') @@ -235,3 +234,29 @@ def test_voltage_remote_control_with_generation() -> None: assert np.isclose(vm[6], grid.generators[4].Vset, atol=options.tolerance) print(solver_type) + + +def test_voltage_control_with_ltc() -> None: + """ + Check that a transformer can regulate the voltage at a bus + """ + fname = os.path.join('data', 'grids', '5Bus_LTC_FACTS_Fig4.7.gridcal') + + grid = gce.open_file(fname) + bus_dict = grid.get_bus_index_dict() + ctrl_idx = bus_dict[grid.transformers2w[0].regulation_bus] + + for solver_type in [SolverType.NR]: + options = PowerFlowOptions(solver_type, + verbose=0, + control_q=False, + retry_with_other_methods=False) + + results = gce.power_flow(grid, options) + + vm = np.abs(results.voltage) + + assert results.converged + + # check that the bus voltage module is the the transformer voltage set point + assert np.isclose(vm[ctrl_idx], grid.transformers2w[0].vset, atol=options.tolerance) From 2380fe4b95b728a42cb6dc926d9a7b4c9057d797 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 15:51:28 +0100 Subject: [PATCH 052/218] Fixed bug in Pset and Qset values not being scaled to per unit --- .idea/workspace.xml | 21 +++++++++---------- .../Compilers/circuit_to_data.py | 15 ++++++++----- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7e688a942..568093a30 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,9 @@ - + - - + - + - + @@ -665,17 +664,17 @@ + - + - @@ -1421,7 +1420,7 @@ - + 1656059954202 @@ -1766,7 +1765,7 @@ - @@ -1812,7 +1811,6 @@ - @@ -1837,7 +1835,8 @@ - diff --git a/src/tests/data/grids/5Bus_PST_FACTS_Fig4.10.gridcal b/src/tests/data/grids/5Bus_PST_FACTS_Fig4.10.gridcal new file mode 100644 index 0000000000000000000000000000000000000000..90e76d482638c854a8a44677122d91a3209fc7bd GIT binary patch literal 14151 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 None: # check that the bus voltage module is the the transformer voltage set point assert np.isclose(vm[ctrl_idx], grid.transformers2w[0].vset, atol=options.tolerance) + + +def test_power_flow_control_with_pst() -> None: + """ + Check that a transformer can regulate the voltage at a bus + """ + fname = os.path.join('data', 'grids', '5Bus_PST_FACTS_Fig4.10.gridcal') + + grid = gce.open_file(fname) + + for solver_type in [SolverType.NR]: + options = PowerFlowOptions(solver_type, + verbose=0, + control_q=False, + retry_with_other_methods=False) + + results = gce.power_flow(grid, options) + + assert results.converged + + # check that the bus voltage module is the the transformer voltage set point + assert np.isclose(results.Sf[7].real, grid.transformers2w[0].Pset, atol=options.tolerance) From 9e354cf065f36cd5c7f2ed99e457e607b6e00cd3 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 16:19:38 +0100 Subject: [PATCH 054/218] Fixed PST Pt control and added test --- .idea/workspace.xml | 35 ++++++++++-------- .../Topology/simulation_indices.py | 7 +++- .../grids/5Bus_PST_FACTS_Fig4.10(Pt).gridcal | Bin 0 -> 14127 bytes src/tests/test_power_flow.py | 23 ++++++++++++ 4 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 src/tests/data/grids/5Bus_PST_FACTS_Fig4.10(Pt).gridcal diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 66a664f55..9c3393952 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,9 @@ - + - + + + + + + - + @@ -1813,7 +1819,6 @@ - @@ -1838,7 +1843,8 @@ - @@ -2404,9 +2410,9 @@ @@ -2570,6 +2576,7 @@ + @@ -2784,7 +2791,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 8794649f1..fbf9dd367 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -1034,7 +1034,7 @@ def get_branch_data(circuit: MultiCircuit, ysh1 = elm.get_ysh1() data.Beq[ii] = ysh1.imag - data.Pset[ii] = elm.Pfset / Sbase + data.Pset[ii] = elm.Pfset / circuit.Sbase data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index b5eba1278..d9334f240 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1807,7 +1807,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'Qf_set': df = pd.DataFrame( - data=self.branch_data.Pset[formulation.idx_dQf], + data=self.branch_data.Qset[formulation.idx_dQf], columns=['Qf_set'], index=self.branch_data.names[formulation.idx_dQf], ) diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index ac5c6ffd4..048b60fc1 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -16,7 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import numpy as np -from typing import Union +from typing import Union, Tuple from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode @@ -385,6 +385,31 @@ def fill_design_properties(self, r_ohm, x_ohm, c_nf, length, Imax, freq, Sbase): self.rate = np.round(Imax * Vf * 1.73205080757, 6) # nominal power in MVA = kA * kV * sqrt(3) self.length = length + def get_virtual_taps(self) -> Tuple[float, float]: + """ + Get the branch virtual taps + + The virtual taps generate when a line nominal voltage ate the two connection buses differ + + Returns: + + **tap_f** (float, 1.0): Virtual tap at the *from* side + + **tap_t** (float, 1.0): Virtual tap at the *to* side + + """ + # resolve how the transformer is actually connected and set the virtual taps + bus_f_v = self.bus_from.Vnom + bus_t_v = self.bus_to.Vnom + + if bus_f_v == bus_t_v: + return 1.0, 1.0 + else: + if bus_f_v > 0.0 and bus_t_v > 0.0: + return 1.0, bus_f_v / bus_t_v + else: + return 1.0, 1.0 + def set_data_from(self, second_Line: "Line"): """ Set the data from another line diff --git a/src/GridCalEngine/Devices/Branches/vsc.py b/src/GridCalEngine/Devices/Branches/vsc.py index 039b7f02a..96bee0c3e 100644 --- a/src/GridCalEngine/Devices/Branches/vsc.py +++ b/src/GridCalEngine/Devices/Branches/vsc.py @@ -300,3 +300,5 @@ def plot_profiles(self, time_series=None, my_index=0, show_fig=True): if show_fig: plt.show() + + diff --git a/src/GridCalEngine/Devices/Parents/branch_parent.py b/src/GridCalEngine/Devices/Parents/branch_parent.py index 627375135..6060c8903 100644 --- a/src/GridCalEngine/Devices/Parents/branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/branch_parent.py @@ -362,28 +362,10 @@ def get_sorted_buses_voltages(self): def get_virtual_taps(self) -> Tuple[float, float]: """ - Get the branch virtual taps - - The virtual taps generate when a line nominal voltage ate the two connection buses differ - - Returns: - - **tap_f** (float, 1.0): Virtual tap at the *from* side - - **tap_t** (float, 1.0): Virtual tap at the *to* side - + Always unit vitual taps (unless proven otherwise) + :return: tap_f, tap_t """ - # resolve how the transformer is actually connected and set the virtual taps - bus_f_v = self.bus_from.Vnom - bus_t_v = self.bus_to.Vnom - - if bus_f_v == bus_t_v: - return 1.0, 1.0 - else: - if bus_f_v > 0.0 and bus_t_v > 0.0: - return 1.0, bus_f_v / bus_t_v - else: - return 1.0, 1.0 + return 1.0, 1.0 def get_coordinates(self): """ diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 5c578cbbd..00f6deb05 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -374,13 +374,13 @@ def fx(self) -> Vec: yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real Qf = get_Sf(k=self.idx_dQf, Vm=self.Vm, V=self.V, - yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real + yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).imag Pt = get_St(k=self.idx_dPt, Vm=self.Vm, V=self.V, ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T).real Qt = get_St(k=self.idx_dQt, Vm=self.Vm, V=self.V, - ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T).real + ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T).imag self._f = np.r_[ dS[self.idx_dP].real, From aa4064ad85b6e747e4f4c63d5e916b3961532e9e Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 17:56:33 +0100 Subject: [PATCH 056/218] Added Qf and Qt control tests All pf tests passing --- .idea/workspace.xml | 91 +++++++++--------- .../grids/5Bus_PST_FACTS_Fig4.10(Qf).gridcal | Bin 0 -> 14121 bytes src/tests/test_power_flow.py | 47 ++++++++- 3 files changed, 89 insertions(+), 49 deletions(-) create mode 100644 src/tests/data/grids/5Bus_PST_FACTS_Fig4.10(Qf).gridcal diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a1dc037bd..a66a8c6eb 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,10 @@ - - + - + - + - - - - + - + - + @@ -662,20 +639,38 @@ + + + - - + + + + - - @@ -1421,7 +1416,7 @@ - + 1656059954202 @@ -1766,7 +1761,7 @@ - @@ -1812,8 +1807,6 @@ - - @@ -1837,7 +1830,9 @@ - @@ -2403,9 +2398,9 @@ @@ -2606,6 +2601,7 @@ + @@ -2792,7 +2788,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 4e75343e0..2c3b46c1b 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -24,6 +24,7 @@ from GridCalEngine.enumerations import (BusMode, BranchImpedanceMode, ExternalGridMode, TapModuleControl, HvdcControlType) from GridCalEngine.basic_structures import BoolVec +from GridCalEngine.Devices.types import BRANCH_TYPES import GridCalEngine.DataStructures as ds if TYPE_CHECKING: # Only imports the below statements during type checking @@ -689,8 +690,7 @@ def get_battery_data(circuit: MultiCircuit, def fill_parent_branch(i: int, - elm: Union[dev.Line, dev.DcLine, dev.Transformer2W, - dev.Winding, dev.VSC, dev.UPFC, dev.SeriesReactance], + elm: BRANCH_TYPES, data: ds.BranchData, bus_dict: Dict[Bus, int], apply_temperature: bool, @@ -781,6 +781,7 @@ def fill_controllable_branch(ii: int, time_series: bool, opf_results: Union[OptimalPowerFlowResults, None], use_stored_guess: bool, + bus_voltage_used: BoolVec, Sbase: float, logger: Logger): """ @@ -796,6 +797,7 @@ def fill_controllable_branch(ii: int, :param time_series: :param opf_results: :param use_stored_guess: + :param bus_voltage_used: :param Sbase: :param logger: :return: @@ -868,13 +870,20 @@ def fill_controllable_branch(ii: int, if not use_stored_guess: if elm.tap_module_control_mode == TapModuleControl.Vm: - if 0.9 <= elm.vset <= 1.1: - bus_data.Vbus[t] = elm.vset - else: - logger.add_warning("Branch control voltage out of bounds", - device_class=str(elm.device_type.value), - device=elm.name, - value=elm.vset) + bus_idx = data.tap_module_buses[ii] + if not bus_voltage_used[bus_idx]: + if 0.9 <= elm.vset <= 1.1: + bus_data.Vbus[bus_idx] = elm.vset + else: + logger.add_warning("Branch control voltage out of bounds", + device_class=str(elm.device_type.value), + device=elm.name, + value=elm.vset) + elif elm.vset != bus_data.Vbus[bus_idx]: + logger.add_error(msg='Different control voltage set points', + device=bus_data.names[bus_idx], + value=elm.vset, + expected_value=bus_data.Vbus[bus_idx]) def get_branch_data(circuit: MultiCircuit, @@ -952,6 +961,7 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, opf_results=opf_results, use_stored_guess=use_stored_guess, + bus_voltage_used=bus_voltage_used, Sbase=circuit.Sbase, logger=logger) @@ -975,6 +985,7 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, opf_results=opf_results, use_stored_guess=use_stored_guess, + bus_voltage_used=bus_voltage_used, Sbase=circuit.Sbase, logger=logger) @@ -999,6 +1010,7 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, opf_results=opf_results, use_stored_guess=use_stored_guess, + bus_voltage_used=bus_voltage_used, Sbase=circuit.Sbase, logger=logger) data.Kdp[ii] = elm.kdp From 9a5647eccfbd46d8c281932fbecd4999869a6162 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 19:13:06 +0100 Subject: [PATCH 059/218] Fixed CGMES conversion bug creating rates = None --- .../Devices/Parents/branch_parent.py | 57 ++++++++++++++++++- .../IO/cim/cgmes/cgmes_to_gridcal.py | 2 +- 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/GridCalEngine/Devices/Parents/branch_parent.py b/src/GridCalEngine/Devices/Parents/branch_parent.py index 6060c8903..3146be9c4 100644 --- a/src/GridCalEngine/Devices/Parents/branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/branch_parent.py @@ -120,13 +120,19 @@ def __init__(self, self.build_status = build_status # line rating in MVA - self.rate = rate + if not isinstance(rate, Union[float, int]): + raise ValueError("Rate must be a float") + self._rate = float(rate) self._rate_prof = Profile(default_value=rate, data_type=float) - self.contingency_factor = contingency_factor + if not isinstance(contingency_factor, Union[float, int]): + raise ValueError("contingency_factor must be a float") + self._contingency_factor = float(contingency_factor) self._contingency_factor_prof = Profile(default_value=contingency_factor, data_type=float) - self.protection_rating_factor = protection_rating_factor + if not isinstance(protection_rating_factor, Union[float, int]): + raise ValueError("protection_rating_factor must be a float") + self._protection_rating_factor = float(protection_rating_factor) self._protection_rating_factor_prof = Profile(default_value=protection_rating_factor, data_type=float) # List of measurements @@ -334,6 +340,51 @@ def Cost_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a Cost_prof') + @property + def rate(self): + """ + Rate (MVA) + :return: + """ + return self._rate + + @rate.setter + def rate(self, val: float): + if isinstance(val, float): + self._rate = val + else: + raise ValueError(f'{val} is not a float') + + @property + def contingency_factor(self): + """ + Rate (MVA) + :return: + """ + return self._contingency_factor + + @contingency_factor.setter + def contingency_factor(self, val: float): + if isinstance(val, float): + self._contingency_factor = val + else: + raise ValueError(f'{val} is not a float') + + @property + def protection_rating_factor(self): + """ + Rate (MVA) + :return: + """ + return self._protection_rating_factor + + @protection_rating_factor.setter + def protection_rating_factor(self, val: float): + if isinstance(val, float): + self._protection_rating_factor = val + else: + raise ValueError(f'{val} is not a float') + def get_max_bus_nominal_voltage(self): """ GEt the maximum nominal voltage diff --git a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py index b628b99db..bffd5d2df 100644 --- a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +++ b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py @@ -767,7 +767,7 @@ def get_gcdev_ac_transformers(cgmes_model: CgmesCircuit, # windings = get_windings(cgmes_elm) # windings: List[PowerTransformerEnd] = list(cgmes_elm.references_to_me['PowerTransformerEnd']) - rate_mva = rates_dict.get(cgmes_elm.uuid, None) # min PATL rate in MW/MVA + rate_mva = rates_dict.get(cgmes_elm.uuid, 9999.0) # min PATL rate in MW/MVA if len(windings) == 2: calc_nodes, cns = find_connections(cgmes_elm=cgmes_elm, From 780ac13eebb270b78de9e4253ce04aa336f7a208 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 14 Aug 2024 18:12:42 -0100 Subject: [PATCH 060/218] Delete an important file --- .idea/workspace.xml | 150 +++++---- src/GridCalEngine/Utils/acciona_capex.py | 399 ----------------------- 2 files changed, 74 insertions(+), 475 deletions(-) delete mode 100644 src/GridCalEngine/Utils/acciona_capex.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e286c4dde..cd74d2e8d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,8 @@ - + + + + + + - + + + + + + + - - - - + @@ -621,24 +656,6 @@ - - - - - + + + - + + + - - - @@ -1416,7 +1433,8 @@ - + + 1656059954202 @@ -1761,7 +1779,7 @@ - @@ -1807,8 +1825,6 @@ - - @@ -1832,7 +1848,9 @@ - @@ -2402,15 +2420,41 @@ 24 - + - + @@ -2435,23 +2479,23 @@ - + - + - - + + - + @@ -2474,18 +2518,18 @@ - - + + - - + + @@ -2513,8 +2557,8 @@ - + @@ -2564,8 +2608,8 @@ - + @@ -2580,8 +2624,8 @@ - + @@ -2714,6 +2758,7 @@ + @@ -2725,7 +2770,7 @@ - + @@ -2782,13 +2827,13 @@ - + - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 2c3b46c1b..36ce627da 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -872,7 +872,7 @@ def fill_controllable_branch(ii: int, if elm.tap_module_control_mode == TapModuleControl.Vm: bus_idx = data.tap_module_buses[ii] if not bus_voltage_used[bus_idx]: - if 0.9 <= elm.vset <= 1.1: + if elm.vset > 0.0: bus_data.Vbus[bus_idx] = elm.vset else: logger.add_warning("Branch control voltage out of bounds", diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 94e7266b3..90a56c06d 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -1161,7 +1161,7 @@ def derivatives_Beq_csc_numba(nbus, nbr, iBeqx, F, V, tap_module, kconv): return dSbus_dBeq, dSf_dBeq, dSt_dBeq -@njit() +# @njit() def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ @@ -1214,7 +1214,7 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo return mat -@njit() +# @njit() def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) @@ -1260,7 +1260,7 @@ def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module return mat -@njit() +# @njit() def dSt_dbeq_csc(sf_indices, beq_indices) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 00f6deb05..2bc7bfd23 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -33,7 +33,7 @@ from GridCalEngine.basic_structures import Vec, IntVec, CxVec -@njit() +# @njit() def adv_jacobian(nbus: int, nbr: int, idx_dva: IntVec, @@ -208,6 +208,11 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: # self.k_v_m: IntVec = nc.k_v_m # self.k_qf_beq: IntVec = nc.k_qf_beq + # self._idx_dVa = np.r_[self.pqv, self.pv, self.pq, self.p] + # self._idx_dVm = np.r_[self.pq, self.p] + # self._idx_dP = self._idx_dVa + # self._idx_dQ = np.r_[self.pq, self.pqv] + self.idx_dm = np.r_[self._indices.k_v_m, self._indices.k_qf_m, self._indices.k_qt_m] self.idx_dtau = np.r_[self._indices.k_pf_tau, self._indices.k_pt_tau] self.idx_dbeq = np.r_[self._indices.k_qf_beq, self._indices.k_v_beq] diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py index d745e2a8b..fb3a15da1 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -201,6 +201,11 @@ def solve_step_from_f(self, f: Vec) -> Tuple[Vec, bool]: # Solve the sparse system dx, ok = spsolve_csc(J, f) + if self.options.verbose > 1: + print("J:\n", J.toarray()) + print("F:\n", f) + print("dx:\n", dx) + return dx, ok def solve_step(self) -> Tuple[Vec, bool]: diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index f2daf74d5..388efd59c 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -176,6 +176,9 @@ def __matmul__(self, B: "CSC" | np.ndarray) -> "CSC" | np.ndarray: else: raise TypeError + # def __repr__(self): + # return f"CSC ({self.n_rows}x{self.n_cols}) nnz:{self.nnz}" + @jitclass([ ('n_rows', int32), diff --git a/src/trunk/acdc_pf/fubm_example.py b/src/trunk/acdc_pf/fubm_example.py index e1eec9041..d37d323ae 100644 --- a/src/trunk/acdc_pf/fubm_example.py +++ b/src/trunk/acdc_pf/fubm_example.py @@ -1,11 +1,19 @@ import GridCalEngine.api as gce +import numpy as np -fname = '/home/santi/Documentos/Git/GitHub/GridCal/Grids_and_profiles/grids/fubm_caseHVDC_vt.gridcal' +# Set the printing precision to 4 decimal places +np.set_printoptions(precision=4) + +fname = '/home/santi/Descargas/matpower-fubm-master/data/fubm_caseHVDC_vt.m' grid = gce.open_file(fname) -results = gce.power_flow(grid) +opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=2) +driver = gce.PowerFlowDriver(grid=grid, options=opt) +driver.run() +results = driver.results print(results.get_bus_df()) print() print(results.get_branch_df()) print("Error:", results.error) +driver.logger.print() From 8e12ec5eeba796f4151efd7dcbb7a41418e782ad Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 15 Aug 2024 13:54:38 +0100 Subject: [PATCH 064/218] Fixed critical bug in the CSC matrix stacking --- .../Simulations/Derivatives/csc_derivatives.py | 2 +- .../NumericalMethods/pf_advanced_formulation.py | 12 ++++++------ .../NumericalMethods/pf_formulation_template.py | 4 ++++ src/GridCalEngine/Utils/Sparse/csc2.py | 2 +- src/trunk/acdc_pf/fubm_example.py | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 90a56c06d..9dd11a177 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -1029,7 +1029,7 @@ def dSf_dm_csc(nbr, sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: f = F[k] t = T[k] - YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) + YttB = Ys[k] + 1j * ((Bc[k] / 2.0) + Beq[k]) # Partials of Ytt, Yff, Yft and Ytf w.r.t.ma dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 2bc7bfd23..d06059ec5 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -81,11 +81,11 @@ def adv_jacobian(nbus: int, :param idx_dQt: :param F: :param T: - :param Ys: + :param Ys: Series admittance 1 / (R + jX) :param kconv: :param complex_tap: :param tap_modules: - :param Bc: + :param Bc: Total changing susceptance :param Beq: :param V: :param Vm: @@ -208,10 +208,10 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: # self.k_v_m: IntVec = nc.k_v_m # self.k_qf_beq: IntVec = nc.k_qf_beq - # self._idx_dVa = np.r_[self.pqv, self.pv, self.pq, self.p] - # self._idx_dVm = np.r_[self.pq, self.p] - # self._idx_dP = self._idx_dVa - # self._idx_dQ = np.r_[self.pq, self.pqv] + self._idx_dVa = np.r_[self.pqv, self.pv, self.pq, self.p] + self._idx_dVm = np.r_[self.pq, self.p] + self._idx_dP = self._idx_dVa + self._idx_dQ = np.r_[self.pq, self.pqv] self.idx_dm = np.r_[self._indices.k_v_m, self._indices.k_qf_m, self._indices.k_qt_m] self.idx_dtau = np.r_[self._indices.k_pf_tau, self._indices.k_pt_tau] diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py index fb3a15da1..6ad0c53b4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -16,6 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Tuple import numpy as np +import pandas as pd from GridCalEngine.basic_structures import Vec, IntVec, CxVec from GridCalEngine.Utils.Sparse.csc2 import CSC, spsolve_csc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults @@ -205,6 +206,9 @@ def solve_step_from_f(self, f: Vec) -> Tuple[Vec, bool]: print("J:\n", J.toarray()) print("F:\n", f) print("dx:\n", dx) + if self.options.verbose > 2: + Jdf = pd.DataFrame(J.toarray()) + Jdf.to_csv('J.csv', index=False, float_format='%.4f') return dx, ok diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 388efd59c..45020e57c 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -730,7 +730,7 @@ def csc_stack_2d_ff(mats: List[CSC], n_rows: int = 1, n_cols: int = 1) -> CSC: res.data[cnt] = A.data[k] cnt += 1 - offset_row += A.n_rows + offset_row += A.n_rows res.indptr[offset_col + j + 1] = cnt offset_col += n diff --git a/src/trunk/acdc_pf/fubm_example.py b/src/trunk/acdc_pf/fubm_example.py index d37d323ae..e52d663d1 100644 --- a/src/trunk/acdc_pf/fubm_example.py +++ b/src/trunk/acdc_pf/fubm_example.py @@ -7,7 +7,7 @@ fname = '/home/santi/Descargas/matpower-fubm-master/data/fubm_caseHVDC_vt.m' grid = gce.open_file(fname) -opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=2) +opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=3) driver = gce.PowerFlowDriver(grid=grid, options=opt) driver.run() results = driver.results From c661aba415645af34704fdb5e4729f70e556ac3e Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 15 Aug 2024 16:29:49 +0100 Subject: [PATCH 065/218] Searching for the bug...WIP --- .idea/workspace.xml | 42 +++++++++------ .../Compilers/circuit_to_data.py | 3 ++ .../DataStructures/branch_data.py | 8 +-- .../DataStructures/numerical_circuit.py | 6 +-- .../Methods/helm_contingencies.py | 6 +-- .../NumericalMethods/common_functions.py | 34 +++++++++++++ .../NumericalMethods/newton_raphson_fx.py | 51 ++++++++++--------- .../pf_advanced_formulation.py | 46 ++++++++++------- .../pf_formulation_template.py | 2 +- .../short_circuit_worker.py | 24 ++------- .../Topology/admittance_matrices.py | 14 ++--- .../Topology/simulation_indices.py | 7 +++ 12 files changed, 137 insertions(+), 106 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e431e4687..e2f16d78e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,19 @@ - + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.associations_templates.executor": "Debug", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.multi_select.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tallr_table_headers.executor": "Debug", - "Python.test_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "204__investments__evaluation", - "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -1818,7 +1822,7 @@ - @@ -1831,9 +1835,6 @@ - - - @@ -1856,7 +1857,10 @@ - @@ -2326,23 +2330,48 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1152 + 1175 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1166 + 1189 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1180 + 1203 - file://$PROJECT_DIR$/examples/associations_templates.py + file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py + 1132 + + + file://$PROJECT_DIR$/examples/try_template_loading.py + 12 + + + file://$PROJECT_DIR$/examples/try_template_loading.py + 28 + + + file://$PROJECT_DIR$/examples/try_template_loading.py + 27 + + + file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py + 1064 + + + file://$PROJECT_DIR$/examples/try_template_loading.py 11 - diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index c1122c773..3908df05c 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -29,7 +29,7 @@ from GridCal.Gui.GeneralDialogues import (CheckListDialogue, StartEndSelectionDialogue, InputSearchDialogue, InputNumberDialogue) from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import SimulationTypes +from GridCalEngine.enumerations import SimulationTypes, DeviceType from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram import GridCalEngine.Devices as dev @@ -1581,51 +1581,24 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm.type_name == 'Transformer': + if elm.device_type in [DeviceType.Transformer2WDevice, DeviceType.SequenceLineDevice, + DeviceType.UnderGroundLineDevice, DeviceType.OverheadLineTypeDevice]: con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, + CAPEX=elm.capex, + OPEX=elm.opex, group=group, - template_src=list(elm.possible_transformer_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Line': - if elm.type_name == 'Sequence line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_src=list(elm.possible_sequence_line_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Underground line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_src=list(elm.possible_underground_line_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Tower': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_src=list(elm.possible_tower_types.data)) - self.circuit.add_investment(con) + template_src=elm) else: con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, + CAPEX=elm.capex, + OPEX=elm.opex, group=group) - self.circuit.add_investment(con) + + self.circuit.add_investment(con) else: info_msg("Select some elements in the schematic first", "Add selected to investment") diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 53666cdb2..d12b4ca5f 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -58,9 +58,15 @@ def __init__(self, if template_src is not None: if template_src.device_type == DeviceType.Transformer2WDevice: - self.template = template_src.possible_transformer_types + self.template = template_src.possible_transformer_types.data + elif template_src.device_type == DeviceType.SequenceLineDevice: + self.template = template_src.possible_sequence_line_types.data + elif template_src.device_type == DeviceType.UnderGroundLineDevice: + self.template = template_src.possible_underground_line_types.data + elif template_src.device_type == DeviceType.OverheadLineTypeDevice: + self.template = template_src.possible_tower_types.data else: - raise TypeError(f'Templates for {template_src.type} not recognized') + raise Exception(f'Templates for {template_src.type} not recognized') else: self.template = None diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index d7f400d76..7dc3942ec 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -920,7 +920,7 @@ def search_and_apply_json_profile(json_entry: Dict[str, Dict[str, Union[str, Uni property_value: Any, collection: Union[None, Dict[str, Any]] = None) -> None: """ - Search fro the property profiles into the json and apply it + Search from the property profiles into the json and apply it :param json_entry: Json entry of an object :param gc_prop: GCProp :param elm: THe device to set the profile into @@ -1054,10 +1054,27 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, ) elif gc_prop.tpe == SubObjectType.ObjectsList: - prop_name = elm.get_snapshot_value(gc_prop) - print('xkk') - if prop_name == 'Investment': - print('xkk') + + val = property_value + elm.set_snapshot_value(gc_prop.name, val) + search_and_apply_json_profile(json_entry=json_entry, + gc_prop=gc_prop, + elm=elm, + property_value=val) + + print('enter investments unpack') + + # if collection is not None: + # ref_idtag = str(property_value) + # ref_elm = collection.get(ref_idtag, None) + # + # if ref_elm is not None: + # elm.set_snapshot_value(gc_prop.name, ref_elm) + # search_and_apply_json_profile(json_entry=json_entry, + # gc_prop=gc_prop, + # elm=elm, + # property_value=ref_elm, + # collection=collection) else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") From 50c752beff1601403ba332c4f50cd1d01da55b07 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Thu, 15 Aug 2024 20:22:47 -0100 Subject: [PATCH 067/218] Create new template link category in enums --- .idea/workspace.xml | 40 +++++++++---------- examples/try_investment_optimization.py | 2 +- examples/try_template_loading.py | 9 +++-- .../Gui/Main/SubClasses/Model/diagrams.py | 31 +++++++------- .../Devices/Aggregation/investment.py | 23 +++-------- src/GridCalEngine/IO/gridcal/pack_unpack.py | 3 ++ src/GridCalEngine/enumerations.py | 1 + 7 files changed, 50 insertions(+), 59 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f27448765..a275f9d5c 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,14 @@ - + - - - - - @@ -1792,7 +1787,7 @@ @@ -1825,7 +1820,7 @@ - @@ -1838,7 +1833,6 @@ - @@ -1863,7 +1857,8 @@ - @@ -2338,28 +2333,18 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1114 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1057 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1047 - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1054 - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1048 - diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 6455218b1..9eda5aa8f 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -14,8 +14,8 @@ def __init__(self, device_idtag: Union[str, None] = None, name="Investment", code='', - CAPEX=0.0, - OPEX=0.0, + CAPEX: float = 0.0, + OPEX: float = 0.0, status: bool = True, group: InvestmentsGroup = None, template: SubObjectType.Associations = None, From bac3e31c8a7363e83a224abc0a7e44b47ea109e5 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 17:21:50 -0100 Subject: [PATCH 070/218] Better template init but fix the reading --- .idea/workspace.xml | 174 +++++++++++------- examples/try_template_loading.py | 3 +- .../Gui/Main/SubClasses/Model/diagrams.py | 12 +- .../Devices/Aggregation/investment.py | 92 +++++---- src/GridCalEngine/IO/gridcal/pack_unpack.py | 2 - 5 files changed, 167 insertions(+), 116 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 818625aa0..b5b637abf 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,12 @@ - + - - - + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.acciona_capex.executor": "Run", - "Python.associations_templates.executor": "Debug", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.multi_select.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tallr_table_headers.executor": "Debug", - "Python.test_derivatives.executor": "Run", - "Python.try_template_loading.executor": "Debug", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "da64cd0f", - "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -1837,7 +1837,6 @@ - @@ -1862,7 +1861,8 @@ - @@ -2337,27 +2337,17 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1050 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1051 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1338 + 1312 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1275 + 1249 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1230 + 1204 @@ -2380,6 +2370,41 @@ 167 + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 78 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 79 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 80 + + + file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/Model/objects.py + 388 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 61 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 67 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 65 + diff --git a/src/GridCal/Gui/Main/SubClasses/Model/objects.py b/src/GridCal/Gui/Main/SubClasses/Model/objects.py index f4e88c57f..29af089e4 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/objects.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/objects.py @@ -376,7 +376,13 @@ def display_associations(self): gc_prop = elements[0].get_property_by_name(prop_name=association_prperty_name) associations: dev.Associations = elements[0].get_snapshot_value_by_name(name=association_prperty_name) - associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) + if elements[0].device_type == DeviceType.InvestmentDevice: + associated_objects = [] + for dev_type in [DeviceType.TransformerTypeDevice, DeviceType.OverheadLineTypeDevice, + DeviceType.UnderGroundLineDevice, DeviceType.SequenceLineDevice]: + associated_objects += self.circuit.get_elements_by_type(device_type=dev_type) + else: + associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) self.ui.association_units_label.setText(gc_prop.units) if len(associated_objects) > 0: diff --git a/src/GridCal/Gui/associations_model.py b/src/GridCal/Gui/associations_model.py index 2f6937130..a81439a87 100644 --- a/src/GridCal/Gui/associations_model.py +++ b/src/GridCal/Gui/associations_model.py @@ -21,6 +21,7 @@ from PySide6 import QtCore, QtWidgets from GridCal.Gui.GuiFunctions import (FloatDelegate) +from GridCalEngine.enumerations import DeviceType from GridCalEngine.Devices.Associations.association import Association, Associations from GridCalEngine.Devices.Parents.editable_device import GCProp from GridCalEngine.Devices.types import ASSOCIATION_TYPES, ALL_DEV_TYPES @@ -84,7 +85,7 @@ def __init__(self, self._decimals = decimals - # flag for the headers text wraper: HeaderViewWithWordWrap + # flag for the headers text wrapper: HeaderViewWithWordWrap self._hide_headers_mode = False def hideHeaders(self): diff --git a/src/GridCalEngine/Devices/types.py b/src/GridCalEngine/Devices/types.py index 91df2486c..a574877f0 100644 --- a/src/GridCalEngine/Devices/types.py +++ b/src/GridCalEngine/Devices/types.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from typing import Union +from typing import Union, List from GridCalEngine.Devices.Aggregation import * from GridCalEngine.Devices.Associations import * from GridCalEngine.Devices.Branches import * diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index efd590ef2..d94187869 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1062,9 +1062,9 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, if associations.device_type is None: type_dicts = next((elements_dict_by_type.get(key) for key in [DeviceType.TransformerTypeDevice, + DeviceType.SequenceLineDevice, DeviceType.OverheadLineTypeDevice, - DeviceType.UnderGroundLineDevice, - DeviceType.SequenceLineDevice] + DeviceType.UnderGroundLineDevice] if key in elements_dict_by_type), {}) update_assoc_type = True From 216a12be3350c0ec898749b715207b5f72cfffb8 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 19 Aug 2024 12:52:19 +0100 Subject: [PATCH 076/218] FUBM working on the 6 bus HVDC_vt case --- .idea/workspace.xml | 163 +++++++++--------- .../Derivatives/matpower_derivatives.py | 2 +- .../NumericalMethods/newton_raphson_fx.py | 40 ++++- .../pf_advanced_formulation.py | 131 +++++++++----- .../pf_formulation_template.py | 16 +- .../Topology/admittance_matrices.py | 26 ++- src/GridCalEngine/Utils/Sparse/csc2.py | 26 ++- 7 files changed, 258 insertions(+), 146 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e2f16d78e..29d5c4406 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,19 +28,14 @@ - + + + + + + + + + + - - - - - - + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", - "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.GridCalMain.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.fubm_example.executor": "Debug", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - + @@ -677,17 +683,17 @@ + - + - @@ -1436,7 +1442,7 @@ - + 1656059954202 @@ -1781,7 +1787,7 @@ - @@ -1827,7 +1833,6 @@ - @@ -1852,7 +1857,8 @@ - @@ -2650,6 +2656,7 @@ + @@ -2787,7 +2794,7 @@ - + @@ -2844,7 +2851,7 @@ - + diff --git a/src/tests/data/grids/fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp.m b/src/tests/data/grids/fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp.m new file mode 100644 index 000000000..0c2b2c430 --- /dev/null +++ b/src/tests/data/grids/fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp.m @@ -0,0 +1,3986 @@ +function mpc = fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp +%FUBM-CASE1354PEGASE Power flow data for medium part of European system (Modified). +% Please see CASEFORMAT for details on the case file format. +% +% This case accurately represents the size and complexity of part of the +% European high voltage transmission network. The network contains 1,354 +% buses, 260 generators, and 1,991 branches and it operates at 380 and +% 220 kV. Please note that the data are fictitious and do not correspond +% to real world data. They can thus be used to validate methods and tools +% but should not be used for operation and planning of the European grid. +% +% The data stems from the Pan European Grid Advanced Simulation and State +% Estimation (PEGASE) project, part of the 7th Framework Program of the +% European Union (https://www.fp7-pegase.com/). +% +% When publishing results based on this data, please cite: +% +% C. Josz, S. Fliscounakis, J. Maeght, and P. Panciatici, "AC Power Flow +% Data in MATPOWER and QCQP Format: iTesla, RTE Snapshots, and PEGASE" +% https://arxiv.org/abs/1603.01533 +% +% S. Fliscounakis, P. Panciatici, F. Capitanescu, and L. Wehenkel, +% "Contingency ranking with respect to overloads in very large power +% systems taking into account uncertainty, preventive and corrective +% actions", Power Systems, IEEE Trans. on, (28)4:4909-4917, 2013. +% https://doi.org/10.1109/TPWRS.2013.2251015 +% +% Remarks: +% +% 1. Line flow limits are 100 MVA (at 1 p.u. voltage) lower than the +% current flow limits found in PEGASE data. +% +% 2. PEGASE data contains asymmetric shunt conductance and susceptance in +% the PI transmission line model of branches. Thus total line charging +% susceptance of branches is set to 0 p.u. and the nodal representation +% of shunt condutance and susceptance is used. As a result, power flow +% equations are left unchanged compared with original PEGASE data. +% However, line flow constraints in the optimal flow problem are +% modified. +% +% 3. Identical linear costs are used for all generators to form a loss +% minimizing OPF objective function. +% +% 4. Since some parts of the network are aggregated, some generators +% (e.g. with negative PMIN) represent aggregations of multiple loads +% and generators. +% +% Contacts: +% Cédric Josz, Stéphane Fliscounakis, Jean Maeght, Patrick Panciatici +% firstname.lastname@rte-france.com +% Réseau de Transport d'Electricité (French Transmission System Operator) +% Département Expertise Système, Immeuble "Le Colbert" +% 9 rue de la Porte de Buc, 78000 Versailles Cedex, France +% +% This file has been modified to include 1 HVDC link and 1 MTDC grid. +% Also control variables in the indicated buses are now automatic to meet +% a setting. + +% ABRAHAM ALVAREZ BUSTOS +% This code is based and created for MATPOWER +% This is part of the Flexible Universal Branch Model (FUBM) for Matpower +% For more info about the model, and modifications to this case, email: +% snoop_and@hotmail.com, abraham.alvarez-bustos@durham.ac.uk + +% May 15th, 2020 + +% MATPOWER +% Copyright (c) 2015, 2016 by Cédric Josz, Stéphane Fliscounakis, Jean Maeght, +% and Patrick Panciatici +% Licensed under the Creative Commons Attribution 4.0 International license, +% https://creativecommons.org/licenses/by/4.0/ + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin +mpc.bus = [ + 3 1 151 48.8 0 4.69 0 1.016674 -21.761632 220 5 1.1 0.9; + 4 1 171.41 23.4 0 2.1 0 1.026472 -7.007354 220 5 1.1 0.9; + 10 1 134 24.7 0 12.44 0 1.038534 -24.281644 220 5 1.1 0.9; + 21 1 161.2 39.3 0 30.71 0 1.036195 -21.958828 220 5 1.1 0.9; + 22 1 0 -0 0 0.85 0 1.035058 -18.483339 220 5 1.1 0.9; + 26 1 167.3 54.8 0 110.54 0 1.032267 -3.318448 380 5 1.1 0.9; + 29 1 152.9 49.4 0 27.65 0 0.994409 -13.816418 380 5 1.1 0.9; + 44 1 -0 0 0 7.27 0 1.045829 -22.181066 220 5 1.1 0.9; + 53 1 48.65 16.1 0 7.14 0 1.063422 -9.070013 220 5 1.1 0.9; + 58 1 0 0 0 2.31 0 0.983702 -21.159412 380 5 1.1 0.9; + 59 1 119.2 20.7 0 3.31 0 1.036808 -23.631999 220 5 1.1 0.9; + 90 1 363.25 115.39 0 3.95 0 1.042187 -27.546292 220 5 1.1 0.9; + 96 1 -8.4 28.66 0 3.49 0 1.030441 -15.689479 220 5 1.1 0.9; + 113 1 -0 -0 0 6.532711 0 1.030718 -14.242909 380 5 1.1 0.9; + 115 1 0 -0 0 4.21 0 1.066797 -19.783678 220 5 1.1 0.9; + 118 1 704.53 -35.33 0 13.102834 0 1.020256 -11.430028 380 5 1.1 0.9; + 124 2 0 0 0 0 0 1.081537 8.330657 220 5 1.1 0.9; + 128 1 23.73 12.7 0 0.52 0 1.020482 -16.063366 220 5 1.1 0.9; + 145 1 38.34 5.6 0 7.64 0 1.039096 -8.903623 220 5 1.1 0.9; + 148 1 32.34 12 0 6.1 0 1.041568 -7.991267 220 5 1.1 0.9; + 150 2 0 0 0 0 0 1.062805 2.531831 220 5 1.1 0.9; + 163 1 147.76 32.73 0 8.34 0 1.047047 -10.672351 220 5 1.1 0.9; + 171 1 100.8 13.2 0 5.24 0 1.069649 -25.153324 220 5 1.1 0.9; + 174 1 370.5 -17 0 9.91 0 1.074846 -27.942789 220 5 1.1 0.9; + 184 1 -0 -0 0 2.42 0 1.042771 -11.94851 220 5 1.1 0.9; + 188 1 36.84 13.9 0 3.3 0 1.018752 -19.550413 220 5 1.1 0.9; + 195 1 73.14 21.55 0 8.52 0 1.056337 -8.791116 220 5 1.1 0.9; + 196 1 0 -0 0 12.48 0 1.074825 -26.319857 220 5 1.1 0.9; + 198 1 39.74 11.8 0 1.44 0 1.01673 -16.306681 220 5 1.1 0.9; + 207 1 321.98 84.4 0 1.34 0 1.026604 -13.457588 220 5 1.1 0.9; + 216 1 155.6 54.7 0 2.21 0 1.039362 -24.590496 220 5 1.1 0.9; + 217 1 105.2 0.1 0 7.36 0 1.042762 -2.603638 220 5 1.1 0.9; + 218 1 69.83 15.12 0 2.23 0 1.045923 -13.114892 220 5 1.1 0.9; + 221 2 0 0 0 0 0 0.984682 -21.807603 380 5 1.1 0.9; + 225 1 0 0 0 1.15 0 1.063761 -20.174043 220 5 1.1 0.9; + 280 1 119.6 29.6 0 5.34 0 1.035725 -11.193679 220 5 1.1 0.9; + 283 1 27.33 11.9 0 1.17 0 1.035204 -12.094637 220 5 1.1 0.9; + 292 1 13.82 1.4 0 0.7 0 1.047544 -14.765137 220 5 1.1 0.9; + 305 1 103 12 0 0.63 0 1.067188 -32.434719 220 5 1.1 0.9; + 306 1 -0 0 0 4.76 0 1.030032 -18.823594 220 5 1.1 0.9; + 314 1 163.1 46.3 0 10.6 0 1.005548 -16.020947 220 5 1.1 0.9; + 333 1 524.5 43 0 6.85 0 1.014579 -42.137692 220 5 1.1 0.9; + 338 2 0 0 0 0 0 1.048249 -6.162533 220 5 1.1 0.9; + 346 1 197.5 48.3 0 0.71 0 1.040694 -21.298393 220 5 1.1 0.9; + 350 1 110.4 26.2 0 5.62 0 1.043185 -24.295117 220 5 1.1 0.9; + 352 2 0 0 0 0 0 1.055378 0.262953 380 5 1.1 0.9; + 367 1 65.17 -51.5 0 4.85 0 1.07164 -23.599251 220 5 1.1 0.9; + 401 1 56.5 36.29 0 3.08 0 1.026548 -14.262083 220 5 1.1 0.9; + 408 1 129.1 7.4 0 0.04 0 1.039791 -11.549917 220 5 1.1 0.9; + 410 1 170.89 50.38 0 6.44 0 1.041564 -26.439994 220 5 1.1 0.9; + 413 2 0 0 0 0 0 1.05013 -6.606455 220 5 1.1 0.9; + 416 1 70.68 13.5 0 6.96 0 1.0458 -6.728632 220 5 1.1 0.9; + 426 1 123.1 6.5 0 3.25 0 1.040489 -18.395441 220 5 1.1 0.9; + 432 1 -0 -0 0 68.517663 0 1.047774 2.403578 380 5 1.1 0.9; + 444 1 0 -0 0 2.45 0 1.036267 -12.201434 220 5 1.1 0.9; + 449 1 0 0 0 29.42 0 1.021739 -8.489958 380 5 1.1 0.9; + 453 2 0 0 0 0 0 1.018914 -7.857046 380 5 1.1 0.9; + 455 1 274.32 5.66 0 13.24 0 1.045882 -30.596498 220 5 1.1 0.9; + 490 1 20.52 4 0 2.77 0 1.036451 -23.014287 220 5 1.1 0.9; + 500 1 144.4 35.5 0 7.66 0 1.040423 -15.042452 220 5 1.1 0.9; + 502 1 -0 0 0 1.96 0 1.043564 -6.675538 220 5 1.1 0.9; + 506 1 -0 0 0 0.4 0 1.063297 -9.078728 380 5 1.1 0.9; + 513 1 57.46 17.1 0 1.61 0 1.038461 -7.443414 220 5 1.1 0.9; + 516 2 0 0 0 0 0 1.075592 -33.453515 220 5 1.1 0.9; + 520 1 118.5 20.4 0 2.57 0 1.048239 -27.108761 220 5 1.1 0.9; + 549 1 0 -0 0 5.15 0 1.074517 -10.959606 220 5 1.1 0.9; + 554 1 0 -0 0 1.97 0 1.024071 -20.793083 220 5 1.1 0.9; + 556 1 16.52 9 0 1.17 0 1.03694 -22.762979 220 5 1.1 0.9; + 561 1 0 -0 0 0.32 0 1.055451 -11.021763 220 5 1.1 0.9; + 564 2 0 0 0 0 0 1.069817 -47.078276 220 5 1.1 0.9; + 575 1 0 -0 0 0.67 0 1.04436 -11.163788 220 5 1.1 0.9; + 583 2 0 0 0 0 0 1.045397 -15.568574 220 5 1.1 0.9; + 594 1 67.57 17 0 5.75 0 1.036683 -8.869667 220 5 1.1 0.9; + 601 1 140.6 42.6 0 5.71 0 1.040685 -14.418335 220 5 1.1 0.9; + 604 1 33.24 4.4 0 24.54 0 0.996939 -12.93567 380 5 1.1 0.9; + 608 1 150.9 10.4 0 4.77 0 1.071753 -32.66829 220 5 1.1 0.9; + 609 1 -0 -0 0 5.67 0 1.025344 -14.779536 220 5 1.1 0.9; + 615 2 0 0 0 0 0 1.063876 -10.607341 220 5 1.1 0.9; + 616 2 0 0 0 0 0 1.048713 -12.997468 220 5 1.1 0.9; + 619 1 72.88 14.4 0 2.96 0 1.046742 -25.252227 220 5 1.1 0.9; + 639 2 0 0 0 0 0 1.051376 -29.999643 220 5 1.1 0.9; + 641 1 45.32 18.5 0 0.74 0 1.03515 -13.956622 220 5 1.1 0.9; + 658 1 258.4 66.7 0 5.87 0 1.033849 -17.442414 220 5 1.1 0.9; + 661 1 -0 -0 0 0.6 0 1.040021 2.414523 380 5 1.1 0.9; + 666 1 -5.61 -2.79 0 150.93 0 1.03076 -5.413919 380 5 1.1 0.9; + 678 1 232.1 89.8 0 0.09 0 0.986375 -18.62447 220 5 1.1 0.9; + 682 2 0 0 0 0 0 1.0691 -10.045044 220 5 1.1 0.9; + 687 1 -0 0 0 5.6 0 1.05742 -4.068613 220 5 1.1 0.9; + 707 1 83.99 21.2 0 5.36 0 1.054495 -25.620212 220 5 1.1 0.9; + 718 1 135.11 41 0 5.31 0 1.031148 -24.884639 220 5 1.1 0.9; + 720 1 -0 -0 0 23.554121 0 0.981824 -26.763103 380 5 1.1 0.9; + 726 1 400.3 189.9 0 0.53 0 1.048069 -4.933448 220 5 1.1 0.9; + 742 1 0 -0 0 2.83 0 1.05759 -4.070122 220 5 1.1 0.9; + 747 1 69.58 16 0 3.03 0 1.073922 -26.380554 220 5 1.1 0.9; + 749 2 0 0 0 0 0 1.057884 -28.950791 220 5 1.1 0.9; + 750 1 -0 -0 0 18.63 0 1.041141 -24.444747 220 5 1.1 0.9; + 757 2 0 0 0 0 0 1.017567 -13.765564 380 5 1.1 0.9; + 766 1 -0 0 0 7.85 0 1.047952 -19.8489 220 5 1.1 0.9; + 769 1 152.57 40 0 6.12 0 1.024104 -10.886119 220 5 1.1 0.9; + 772 1 343.9 141.9 0 5.55 0 1.034361 -14.167643 220 5 1.1 0.9; + 776 2 0 0 0 0 0 1.026368 -13.331099 220 5 1.1 0.9; + 778 2 0 0 0 0 0 1.049411 -6.680953 220 5 1.1 0.9; + 789 1 -0 -0 0 6.63 0 1.051689 -5.954643 220 5 1.1 0.9; + 795 2 0 0 0 0 0 1.035522 -15.484388 220 5 1.1 0.9; + 800 1 50.56 18 0 0.11 0 1.034778 -12.128589 220 5 1.1 0.9; + 803 2 0 0 0 0 0 1.041369 -24.768342 220 5 1.1 0.9; + 804 1 -0 -0 0 7.26 0 1.05585 -7.563603 220 5 1.1 0.9; + 805 1 124.5 29.6 0 15.4 0 1.05673 -11.12828 220 5 1.1 0.9; + 809 1 0 -0 0 58.088687 0 1.027525 -0.064839 380 5 1.1 0.9; + 819 1 0 -0 0 0.22 0 1.052169 -0.720463 220 5 1.1 0.9; + 823 2 0 0 0 0 0 1.044097 -2.229251 380 5 1.1 0.9; + 839 1 -0 -0 0 8.17514 0 1.024385 -1.386321 380 5 1.1 0.9; + 851 2 0 0 0 0 0 1.00025 -17.401395 220 5 1.1 0.9; + 858 2 0 0 0 0 0 1.031745 1.110134 380 5 1.1 0.9; + 870 1 110 3.4 0 11.95 0 1.040762 -24.602002 220 5 1.1 0.9; + 871 1 108.89 -21.76 0 3.72 0 1.056945 -11.955754 220 5 1.1 0.9; + 883 1 192.5 78.3 0 6.65 0 1.017176 -10.133417 220 5 1.1 0.9; + 891 2 0 0 0 0 0 1.064525 -18.97841 380 5 1.1 0.9; + 892 1 -0 -0 0 9.1 0 1.069234 -34.99461 220 5 1.1 0.9; + 900 1 0 0 0 0.15 0 1.050278 -15.385577 220 5 1.1 0.9; + 903 1 82.69 20.1 0 1.36 0 1.073885 -26.405705 220 5 1.1 0.9; + 905 1 631.71 -54.16 0 7.534129 0 1.035643 -15.075813 380 5 1.1 0.9; + 907 1 -0 -0 0 0.05 0 1.038555 -9.767436 220 5 1.1 0.9; + 908 1 125.9 -0.5 0 0.21 0 1.065214 -7.929625 220 5 1.1 0.9; + 920 1 34.44 8.5 0 1.11 0 1.045537 -20.769903 220 5 1.1 0.9; + 923 1 62.07 14.7 0 4.84 0 1.035596 -23.090183 220 5 1.1 0.9; + 933 1 -0 0 0 22.75 0 1.019946 -21.525393 220 5 1.1 0.9; + 935 1 -0 0 0 9.46 0 1.049182 -24.470238 220 5 1.1 0.9; + 953 1 108.7 -12.15 0 37.11 0 1.065973 -13.014498 380 5 1.1 0.9; + 954 1 66.27 13.6 0 0.67 0 1.044324 -21.525875 220 5 1.1 0.9; + 960 1 -0 -0 0 108.728602 0 1.063295 -9.078724 380 5 1.1 0.9; + 964 1 88.5 16.5 0 146.44 0 1.015553 -11.659761 380 5 1.1 0.9; + 972 2 0 0 0 0 0 1.072621 5.35893 380 5 1.3 0.7; + 980 1 14.71 4.6 0 7.88 0 1.047164 -25.138433 220 5 1.1 0.9; + 1001 2 0 0 0 0 0 1.074143 -33.62199 220 5 1.1 0.9; + 1002 2 0 0 0 0 0 1.041506 -20.086455 220 5 1.1 0.9; + 1005 1 0 0 0 0.81 0 1.053955 -12.379476 220 5 1.1 0.9; + 1015 1 44.55 0 0 4.78 0 1.056277 -5.398682 220 5 1.1 0.9; + 1026 1 201.4 53 0 9.67 0 1.028182 -29.352232 220 5 1.1 0.9; + 1027 1 -5.91 -2.33 0 30.393595 0 0.990542 -18.181223 380 5 1.1 0.9; + 1033 1 26.33 5.3 0 4.31 0 1.040934 -24.521854 220 5 1.1 0.9; + 1035 1 382.5 57.9 0 8.16 0 1.067815 -32.322562 220 5 1.1 0.9; + 1039 1 34.64 -0 0 0.91 0 1.034441 -19.543294 220 5 1.1 0.9; + 1040 1 31.94 8.8 0 3.79 0 1.038913 -9.027471 220 5 1.1 0.9; + 1043 2 0 0 0 0 0 1.028946 -3.693426 380 5 1.1 0.9; + 1051 1 -0 0 0 3.79 0 1.041627 -12.829065 220 5 1.1 0.9; + 1077 1 -0 0 0 0.1 0 1.035206 -12.094658 220 5 1.1 0.9; + 1078 1 -0 -0 0 4.74 0 1.061509 -3.472987 220 5 1.1 0.9; + 1081 1 277.86 58.95 0 182.880644 0 1.038644 -10.509999 380 5 1.1 0.9; + 1083 2 0 0 0 0 0 1.049472 -8.613737 220 5 1.1 0.9; + 1090 1 56.06 18.7 0 4.24 0 1.0101 -21.692579 220 5 1.1 0.9; + 1093 2 0 0 0 0 0 1.027056 -8.507308 380 5 1.1 0.9; + 1096 1 0 -0 0 0.16 0 1.050189 -1.116839 220 5 1.1 0.9; + 1100 2 0 0 0 0 0 1.042801 -4.348181 220 5 1.1 0.9; + 1101 1 -0 -0 0 2.05 0 1.033508 -14.209132 220 5 1.1 0.9; + 1102 2 0 0 0 0 0 1.049879 -6.64195 220 5 1.1 0.9; + 1105 1 29.83 7.3 0 6.49 0 1.074759 -26.325932 220 5 1.1 0.9; + 1111 1 0 0 0 1.1 0 1.036823 -8.871578 220 5 1.1 0.9; + 1129 1 190.47 55.03 0 6.7 0 1.003325 -22.532961 220 5 1.1 0.9; + 1136 1 16.22 2 0 0.71 0 1.034786 -18.539009 220 5 1.1 0.9; + 1137 1 -0 -0 0 0.05 0 1.048666 -24.42816 220 5 1.1 0.9; + 1146 1 32.84 -0 0 1.41 0 1.032638 -5.627486 220 5 1.1 0.9; + 1151 1 -0 -0 0 18.82 0 1.043354 -20.606997 220 5 1.1 0.9; + 1153 1 12.41 3.9 0 2.23 0 1.034654 -6.058841 220 5 1.1 0.9; + 1156 1 65.67 24 0 9.95 0 1.038055 -22.501868 220 5 1.1 0.9; + 1159 1 112.4 13 0 3.99 0 1.052615 -36.244174 220 5 1.1 0.9; + 1172 1 -0 -0 0 2.3 0 1.074468 -25.55724 220 5 1.1 0.9; + 1179 1 86.6 23.4 0 0.39 0 1.040896 -2.802576 220 5 1.1 0.9; + 1183 1 199.4 -19.9 0 6.68 0 1.066643 -33.081849 220 5 1.1 0.9; + 1187 1 67.57 21.2 0 5.71 0 1.039857 -4.955282 220 5 1.1 0.9; + 1188 1 30.93 6.6 0 9.09 0 1.054495 -14.222981 220 5 1.1 0.9; + 1194 1 129.6 13.3 0 13.98 0 1.03896 -15.127161 380 5 1.1 0.9; + 1198 1 0 0 0 30.637696 0 0.987964 -14.637206 380 5 1.1 0.9; + 1201 1 114.1 23.5 0 1.08 0 1.050304 -19.627666 220 5 1.1 0.9; + 1216 1 0 0 0 4.93 0 1.040626 -10.966354 220 5 1.1 0.9; + 1233 1 0 -0 0 1.72 0 1.037981 -22.526704 220 5 1.1 0.9; + 1234 1 71.78 17.9 0 1.96 0 1.022628 -16.524518 220 5 1.1 0.9; + 1237 2 0 0 0 0 0 1.108028 -6.285992 380 5 1.3 0.7; + 1248 1 0 0 0 1.17 0 1.047205 -10.673893 220 5 1.1 0.9; + 1249 1 348.93 26.47 0 9.36 0 1.019402 -11.26449 380 5 1.1 0.9; + 1251 2 0 0 0 0 0 1.027102 -8.516785 380 5 1.1 0.9; + 1262 1 -0 0 0 10.73 0 1.038607 -22.034538 220 5 1.1 0.9; + 1265 1 173 -21.3 0 5.93 0 1.066705 -50.057306 220 5 1.1 0.9; + 1275 1 52.46 2.9 0 0.35 0 1.032647 -18.856368 220 5 1.1 0.9; + 1295 2 0 0 0 0 0 1.03682 -8.643487 220 5 1.1 0.9; + 1301 1 479 99.2 0 10.68 0 1.05167 -28.720012 220 5 1.1 0.9; + 1305 1 -0 -0 0 4.34 0 1.038253 -22.269637 220 5 1.1 0.9; + 1311 1 37.94 15.2 0 35.31 0 1.033986 -21.654604 380 5 1.1 0.9; + 1326 1 0 0 0 0.98 0 1.069384 -34.995605 220 5 1.1 0.9; + 1334 1 0 0 0 0.59 0 1.025188 -16.314102 220 5 1.1 0.9; + 1341 2 0 0 0 0 0 1.032899 -14.204982 220 5 1.1 0.9; + 1343 1 -0 -0 0 58.3 0 0.996377 -14.200565 380 5 1.1 0.9; + 1354 2 0 0 0 0 0 1.041045 -7.375163 220 5 1.1 0.9; + 1355 1 -3.29 -1.32 0 190.704588 0 1.0328 -8.554156 380 5 1.1 0.9; + 1364 1 40.85 14.5 0 0.59 0 1.039851 -12.092524 220 5 1.1 0.9; + 1380 1 145.2 21.4 0 1.09 0 1.033661 -22.574327 220 5 1.1 0.9; + 1394 1 30.93 7.6 0 4.69 0 1.074659 -26.314245 220 5 1.1 0.9; + 1397 1 0 -0 0 2.14 0 1.037924 -12.820941 220 5 1.1 0.9; + 1398 1 196.7 44.2 0 0.1 0 1.017322 -19.003234 220 5 1.1 0.9; + 1401 1 11.91 2.9 0 5.27 0 1.038647 -14.758146 220 5 1.1 0.9; + 1414 1 144.7 20.3 0 6.35 0 1.022683 -27.895964 220 5 1.1 0.9; + 1415 1 0 -0 0 0.3 0 1.032141 -11.506028 220 5 1.1 0.9; + 1422 2 0 0 0 0 0 1.04353 -20.966559 220 5 1.1 0.9; + 1435 1 -0 0 0 3.85 0 1.044674 -24.345986 220 5 1.1 0.9; + 1436 2 0 0 0 0 0 1.047684 -12.917585 220 5 1.1 0.9; + 1448 1 0 0 0 9.49 0 1.075069 -15.319825 220 5 1.1 0.9; + 1459 1 -0 -0 0 3.38 0 1.042934 -21.817757 220 5 1.1 0.9; + 1462 1 -0 0 0 0.42 0 1.043552 -20.967069 220 5 1.1 0.9; + 1465 1 -11.03 -5.11 0 29.706803 0 0.988454 -15.339654 380 5 1.1 0.9; + 1478 2 0 0 0 0 0 1.048068 -15.82908 220 5 1.1 0.9; + 1483 1 0 0 0 4.86 0 1.064156 -26.867437 220 5 1.1 0.9; + 1486 1 79.59 18.8 0 6.78 0 1.034956 -23.34269 220 5 1.1 0.9; + 1494 1 -1.85 -1.63 0 31.424588 0 1.034255 -11.521816 380 5 1.1 0.9; + 1502 1 -0 0 0 37.116157 0 1.027764 -26.693479 380 5 1.1 0.9; + 1504 1 0 -0 0 1.84 0 1.025322 -14.28951 220 5 1.1 0.9; + 1526 1 -10.86 -5.93 0 12.54 0 1.042753 -11.9479 220 5 1.1 0.9; + 1538 1 36.34 15.2 0 0.3 0 1.033256 -8.75699 220 5 1.1 0.9; + 1539 1 73.58 3.24 0 52.35 0 1.059384 -15.296455 220 5 1.1 0.9; + 1541 1 125.4 45.8 0 0 0 1.039282 -23.538177 220 5 1.1 0.9; + 1545 1 42.55 8.2 0 2.06 0 1.042222 -23.472695 220 5 1.1 0.9; + 1547 1 -0 -0 0 1.02 0 1.040481 -15.042995 220 5 1.1 0.9; + 1551 1 -0 -0 0 7.99 0 1.043158 -20.41875 220 5 1.1 0.9; + 1552 1 20.42 8.1 0 35.15 0 1.042604 -16.620759 380 5 1.1 0.9; + 1554 1 0 -0 0 4.96 0 1.020729 -16.043428 220 5 1.1 0.9; + 1556 1 -0 -0 0 0.95 0 1.061796 -11.391738 220 5 1.1 0.9; + 1562 1 77.39 24.1 0 2.67 0 1.042236 -25.854486 220 5 1.1 0.9; + 1566 1 156.9 -4 0 2.48 0 1.036219 -24.756749 220 5 1.1 0.9; + 1568 1 69.08 21.5 0 1.65 0 1.046858 -25.154702 220 5 1.1 0.9; + 1578 1 0 -0 0 1.38 0 1.040417 -12.029853 220 5 1.1 0.9; + 1584 1 0 -0 0 3.24 0 1.026871 -14.239921 220 5 1.1 0.9; + 1592 1 28.33 44.8 0 0.51 0 1.037512 -2.335282 220 5 1.1 0.9; + 1595 1 71.77 13.57 0 3.84 0 1.01584 -29.283839 220 5 1.1 0.9; + 1604 2 0 0 0 0 0 1.043862 -6.640235 220 5 1.1 0.9; + 1605 1 -0 0 0 0.05 0 1.076968 -24.357645 220 5 1.1 0.9; + 1607 1 73.78 -0 0 2.69 0 1.030671 -5.514136 380 5 1.1 0.9; + 1609 1 0 0 0 6.55 0 1.05016 -20.676376 220 5 1.1 0.9; + 1625 1 73.18 22.3 0 8.77 0 1.047827 -19.847235 220 5 1.1 0.9; + 1629 1 41.95 8.5 0 1.05 0 1.043667 -11.062381 220 5 1.1 0.9; + 1642 2 0 0 0 0 0 1.028554 0.427747 380 5 1.1 0.9; + 1643 1 95.71 25.9 0 11.38 0 1.042277 -25.887944 220 5 1.1 0.9; + 1644 1 449.56 245.72 0 94.55 0 1.054472 3.4279 380 5 1.1 0.9; + 1662 1 3.67 -1.86 0 3.89 0 1.046228 -20.80193 220 5 1.1 0.9; + 1672 1 -28.13 -0.83 0 0.1 0 1.061821 -11.405066 220 5 1.1 0.9; + 1680 2 0 0 0 0 0 1.04395 -2.225166 380 5 1.1 0.9; + 1692 1 83.19 25.8 0 0.33 0 1.047275 -10.47462 220 5 1.1 0.9; + 1704 1 62.16 8 0 2.99 0 1.038923 -13.052366 220 5 1.1 0.9; + 1708 2 0 0 0 0 0 1.037938 -13.186223 380 5 1.1 0.9; + 1709 1 -15.38 -4.94 0 33.241519 0 1.007462 -14.734072 380 5 1.1 0.9; + 1711 1 25.13 -61.6 0 3.68 0 1.052686 -29.767092 220 5 1.1 0.9; + 1721 2 0 0 0 0 0 1.062238 2.466713 220 5 1.1 0.9; + 1730 1 -17.18 -4.35 0 44.419365 0 1.025799 -14.51076 380 5 1.1 0.9; + 1742 1 0 0 0 6.68 0 1.030326 -32.491405 220 5 1.1 0.9; + 1746 1 -0 0 0 1.86 0 1.049354 -24.089302 220 5 1.1 0.9; + 1750 1 58.46 6.6 0 10.13 0 1.036578 -19.191311 220 5 1.1 0.9; + 1754 2 0 0 0 0 0 1.04286 -17.149587 380 5 1.1 0.9; + 1758 1 0 -0 0 121.29 0 1.03465 -4.424306 380 5 1.1 0.9; + 1763 1 -0 -0 0 0.28 0 1.034875 -30.808254 380 5 1.1 0.9; + 1767 1 333.5 -1.4 0 8.37 0 1.049612 -45.569227 220 5 1.1 0.9; + 1768 1 73.98 22.5 0 1.15 0 1.042927 -11.13756 220 5 1.1 0.9; + 1775 1 -0 0 0 1.64 0 1.05106 -25.97492 220 5 1.1 0.9; + 1794 2 0 0 0 0 0 1.05295 -0.236871 380 5 1.1 0.9; + 1798 1 -0.63 -0.83 0 22.810288 0 0.987325 -7.424983 380 5 1.1 0.9; + 1803 1 -0 -0 0 0.05 0 1.038883 -22.036572 220 5 1.1 0.9; + 1808 2 0 0 0 0 0 1.046224 -0.834506 220 5 1.1 0.9; + 1813 1 88.92 19.79 0 2.81 0 1.029057 -7.519944 220 5 1.1 0.9; + 1817 1 108.91 33.7 0 56.24 0 1.069539 -12.567622 380 5 1.1 0.9; + 1833 1 0 0 0 3.33 0 1.036371 -22.480232 220 5 1.1 0.9; + 1838 1 0 -0 0 3.02 0 1.037419 -22.162507 220 5 1.1 0.9; + 1844 1 -28.14 -0.76 0 0.1 0 1.061839 -11.404513 220 5 1.1 0.9; + 1851 2 0 0 0 0 0 1.04762 -12.927099 220 5 1.1 0.9; + 1852 2 0 0 0 0 0 1.054325 -25.744509 220 5 1.1 0.9; + 1857 1 0 0 0 1.53 0 1.028608 -11.055937 220 5 1.1 0.9; + 1860 1 88.8 -3.2 0 13.63 0 1.060858 -25.532569 220 5 1.1 0.9; + 1866 1 209.2 23.5 0 6.44 0 1.04474 -28.285319 220 5 1.1 0.9; + 1868 1 11.71 3.8 0 2.96 0 1.035258 -15.877966 220 5 1.1 0.9; + 1876 1 -0 -0 0 6.273568 0 1.030797 -14.242223 380 5 1.1 0.9; + 1883 1 27.33 5 0 6.77 0 1.029787 -16.425673 220 5 1.1 0.9; + 1888 2 0 0 0 0 0 1.039377 -2.376673 220 5 1.1 0.9; + 1895 1 20.82 -0 0 0.14 0 1.070353 7.588403 220 5 1.1 0.9; + 1896 1 -0 -0 0 1.18 0 1.021131 -6.153674 380 5 1.1 0.9; + 1910 1 -0 0 0 2.68 0 1.049243 -6.695385 220 5 1.1 0.9; + 1914 2 0 0 0 0 0 1.035636 -20.619184 220 5 1.1 0.9; + 1917 1 197.5 -31 0 17.34 0 1.050486 -25.132946 220 5 1.1 0.9; + 1923 1 192.11 45.5 0 68.04 0 1.002407 -11.646061 380 5 1.1 0.9; + 1940 1 0 0 0 1.19 0 1.03614 -18.037347 220 5 1.1 0.9; + 1959 2 0 0 0 0 0 1.064692 -10.511132 220 5 1.1 0.9; + 1965 1 248.7 8.1 0 12.46 0 1.066548 -49.702693 220 5 1.1 0.9; + 1973 1 210.1 66.2 0 59.36 0 1.074741 -26.300211 220 5 1.1 0.9; + 1979 1 0 0 0 0.14 0 1.074144 -33.621995 220 5 1.1 0.9; + 1980 1 177.3 36.4 0 0.7 0 1.040983 -21.42173 220 5 1.1 0.9; + 1998 1 25.73 7.3 0 2.82 0 1.033294 -20.141362 220 5 1.1 0.9; + 2012 1 41.45 4.9 0 18.43 0 1.038506 -18.675791 220 5 1.1 0.9; + 2019 1 72.08 21.3 0 7.19 0 1.044528 -21.078894 220 5 1.1 0.9; + 2020 1 0 0 0 9.98 0 1.051074 -24.096673 220 5 1.1 0.9; + 2021 1 3.9 1 0 3.81 0 1.050096 -24.96566 220 5 1.1 0.9; + 2035 2 0 0 0 0 0 1.03088 0.693557 380 5 1.1 0.9; + 2042 1 14.02 6.5 0 0.09 0 1.037536 -5.903671 220 5 1.1 0.9; + 2043 1 3.2 1.7 0 0.05 0 1.043517 -20.967534 220 5 1.1 0.9; + 2044 1 0 0 0 0.14 0 1.032138 -12.426968 220 5 1.1 0.9; + 2050 2 0 0 0 0 0 1.009914 -1.144693 380 5 1.1 0.9; + 2056 1 -0 0 0 7.338808 0 1.038215 -9.076082 380 5 1.1 0.9; + 2057 1 120.2 20.5 0 19.94 0 1.04971 -30.773674 220 5 1.1 0.9; + 2072 1 101.2 2.1 0 38.43 0 1.065746 -17.405584 380 5 1.1 0.9; + 2078 1 77.19 18.6 0 2.22 0 1.020675 -14.721188 220 5 1.1 0.9; + 2079 1 0 -0 0 13.94 0 1.050272 -12.128304 220 5 1.1 0.9; + 2083 1 121.4 20.2 0 16.61 0 1.035 -18.482915 220 5 1.1 0.9; + 2085 2 0 0 0 0 0 1.040351 2.467063 380 5 1.1 0.9; + 2088 1 -0 0 0 6.02 0 1.052176 -12.052739 220 5 1.1 0.9; + 2089 1 199.86 56.93 0 46.83 0 1.04312 -25.770522 220 5 1.1 0.9; + 2093 1 -5.64 -2.84 0 34.582195 0 1.016671 -8.086067 380 5 1.1 0.9; + 2101 1 -0 -0 0 38.32 0 1.02998 -5.549174 380 5 1.1 0.9; + 2128 1 79.09 18.7 0 10.8 0 1.035961 -23.062582 220 5 1.1 0.9; + 2129 1 0 0 0 56.686515 0 1.016495 -8.242431 380 5 1.1 0.9; + 2132 1 107.3 14.2 0 20.23 0 1.039669 -15.783021 220 5 1.1 0.9; + 2142 1 0 -0 0 7.63 0 1.050391 -7.902365 220 5 1.1 0.9; + 2155 1 63.67 20.2 0 6.13 0 1.037645 -5.893797 220 5 1.1 0.9; + 2161 1 35.66 -9.39 0 7.89 0 1.048364 -28.662661 220 5 1.1 0.9; + 2166 1 20.92 7.7 0 1.21 0 1.052887 -14.673236 220 5 1.1 0.9; + 2174 1 0 0 0 61.795782 0 1.011944 -13.202451 380 5 1.1 0.9; + 2177 2 0 0 0 0 0 1.07333 -28.416356 220 5 1.1 0.9; + 2183 1 0 0 0 32.849821 0 0.995876 -16.181883 380 5 1.1 0.9; + 2189 1 -0 0 0 0.18 0 1.047761 -6.28234 220 5 1.1 0.9; + 2197 2 0 0 0 0 0 1.035528 -6.012095 380 5 1.1 0.9; + 2208 1 74.98 26.9 0 2.96 0 1.051126 -13.420372 220 5 1.1 0.9; + 2229 1 0 -0 0 2.91 0 1.062959 -13.080678 220 5 1.1 0.9; + 2230 1 0 -0 0 1.71 0 1.036513 -22.481463 220 5 1.1 0.9; + 2231 1 0 0 0 0.45 0 1.049391 1.166976 220 5 1.1 0.9; + 2242 1 -0 -0 0 2.76 0 1.02489 -19.020985 220 5 1.1 0.9; + 2252 1 100.7 -4.2 0 1.57 0 1.068023 -47.917821 220 5 1.1 0.9; + 2273 1 141.3 32.4 0 7.29 0 1.074359 -26.339387 220 5 1.1 0.9; + 2276 2 0 0 0 0 0 1.05324 -23.758819 220 5 1.1 0.9; + 2286 1 208.88 60.8 0 6.68 0 1.023269 -8.717089 220 5 1.1 0.9; + 2288 1 170.9 39 0 11.25 0 1.034468 -8.57662 220 5 1.1 0.9; + 2291 2 0 0 0 0 0 1.072528 -10.610728 220 5 1.1 0.9; + 2303 1 0 -0 0 7.94 0 1.03744 -15.856049 220 5 1.1 0.9; + 2304 1 88.7 -0.1 0 2.83 0 1.058495 -25.832763 220 5 1.1 0.9; + 2308 1 32.04 6.6 0 0.44 0 1.038612 -24.078628 220 5 1.1 0.9; + 2313 1 0 -0 0 0.41 0 1.046654 -21.265608 220 5 1.1 0.9; + 2319 1 39.64 20.9 0 0.65 0 1.061069 -8.962289 220 5 1.1 0.9; + 2327 1 114.5 25.2 0 17.57 0 1.047194 -25.133812 220 5 1.1 0.9; + 2328 1 -0 0 0 0.4 0 1.017489 -14.250876 220 5 1.1 0.9; + 2337 1 103.4 27 0 1.41 0 1.045493 -29.7818 220 5 1.1 0.9; + 2340 1 96.91 13.9 0 3.98 0 1.03958 -12.236094 220 5 1.1 0.9; + 2341 1 -0 0 0 3.28 0 1.065118 -26.070582 220 5 1.1 0.9; + 2359 2 0 0 0 0 0 1.024884 -9.921886 380 5 1.1 0.9; + 2360 1 215.5 31.3 0 14.23 0 1.044563 -21.085033 220 5 1.1 0.9; + 2361 1 16.9 3.85 0 25.09 0 1.052288 -29.004707 220 5 1.1 0.9; + 2365 1 37.94 15.4 0 117.386167 0 1.033702 -22.17424 380 5 1.1 0.9; + 2372 1 0 -0 0 14.490904 0 0.991274 -17.482034 380 5 1.1 0.9; + 2377 1 101.7 17.6 0 13.14 0 1.036655 -14.897845 220 5 1.1 0.9; + 2393 1 20.82 0 0 0.13 0 1.070495 7.700354 220 5 1.1 0.9; + 2406 1 0 0 0 1.69 0 1.048666 -24.428158 220 5 1.1 0.9; + 2421 2 0 0 0 0 0 1.047766 -23.702161 220 5 1.1 0.9; + 2424 1 44.55 16.8 0 2.31 0 1.034979 -22.416002 220 5 1.1 0.9; + 2425 2 0 0 0 0 0 1.041186 -9.882232 220 5 1.1 0.9; + 2426 2 0 0 0 0 0 1.037687 -13.762974 220 5 1.1 0.9; + 2430 1 -0 0 0 6.21 0 1.041369 -11.921713 220 5 1.1 0.9; + 2432 1 291.2 35.4 0 21.87 0 1.030479 -32.300033 220 5 1.1 0.9; + 2438 1 -0 0 0 0.64 0 1.046626 -21.265307 220 5 1.1 0.9; + 2446 2 0 0 0 0 0 1.06157 7.557722 380 5 1.1 0.9; + 2457 1 30.73 9.6 0 2.75 0 1.040059 -24.619174 220 5 1.1 0.9; + 2458 1 132 26 0 27.18 0 1.006537 -13.460583 380 5 1.1 0.9; + 2467 1 0 -0 0 11.65 0 1.018095 -14.100158 220 5 1.1 0.9; + 2468 2 0 0 0 0 0 1.048132 -6.215141 220 5 1.1 0.9; + 2475 1 0 0 0 0.21 0 1.065573 -7.808732 220 5 1.1 0.9; + 2479 1 -2.65 -1.17 0 65.673108 0 1.008158 -2.627166 380 5 1.1 0.9; + 2481 2 0 0 0 0 0 1.042777 -18.185589 220 5 1.1 0.9; + 2489 2 0 0 0 0 0 1.049366 1.167288 220 5 1.1 0.9; + 2503 1 -0 0 0 2.09 0 1.012856 -21.48175 220 5 1.1 0.9; + 2510 1 115.87 29.41 0 7.92 0 1.028486 -12.08393 220 5 1.1 0.9; + 2518 1 -5.29 -1.91 0 42.622979 0 0.999088 -11.536983 380 5 1.1 0.9; + 2526 1 238.45 46.86 0 125.534496 0 1.044376 -19.855823 380 5 1.1 0.9; + 2527 1 59.77 16.7 0 0.64 0 1.043988 -4.63491 220 5 1.1 0.9; + 2535 1 51.56 2.1 0 0.18 0 1.037544 -2.896669 220 5 1.1 0.9; + 2550 2 0 0 0 0 0 1.049384 -6.666685 220 5 1.1 0.9; + 2558 1 159.27 38.31 0 2.18 0 1.023305 -16.640241 220 5 1.1 0.9; + 2563 1 52.86 13 0 6.04 0 1.046977 -4.707678 220 5 1.1 0.9; + 2575 1 62.97 17.4 0 0.3 0 1.04159 -2.724929 220 5 1.1 0.9; + 2591 1 253.77 84.6 0 20.71 0 1.030923 -15.233022 220 5 1.1 0.9; + 2597 1 14.72 5.4 0 0.72 0 1.033106 -10.863404 220 5 1.1 0.9; + 2598 1 25.63 12.7 0 8.42 0 1.040506 -15.286014 220 5 1.1 0.9; + 2600 2 0 0 0 0 0 1.038821 -13.64341 220 5 1.1 0.9; + 2627 2 0 0 0 0 0 1.061488 7.521439 380 5 1.1 0.9; + 2629 1 203.1 65.2 0 0.64 0 1.045498 -24.492103 220 5 1.1 0.9; + 2641 1 0 0 0 1.72 0 1.042124 -11.251293 220 5 1.1 0.9; + 2644 1 0 0 0 0.19 0 1.07369 -24.808555 220 5 1.1 0.9; + 2653 2 0 0 0 0 0 1.036517 -23.007774 220 5 1.1 0.9; + 2654 1 207.1 50.4 0 4.93 0 1.019228 -18.770253 220 5 1.1 0.9; + 2656 1 -0.72 0 0 69.582294 0 1.034308 -22.749906 380 5 1.1 0.9; + 2676 1 123.24 23.65 0 6.44 0 1.035697 -14.93988 220 5 1.1 0.9; + 2689 1 0 0 0 0.45 0 1.034001 -3.213772 220 5 1.1 0.9; + 2695 1 16.22 8.9 0 2.2 0 1.038344 -21.004788 220 5 1.1 0.9; + 2702 1 151.7 27.6 0 6.49 0 1.043222 -25.609448 220 5 1.1 0.9; + 2719 2 0 0 0 0 0 1.035384 -15.495326 220 5 1.1 0.9; + 2721 1 -0 0 0 10.040547 0 0.983623 -22.371652 380 5 1.1 0.9; + 2732 1 85.59 20.72 0 142.79 0 1.013054 -10.064991 380 5 1.1 0.9; + 2749 1 55.56 26.5 0 1.09 0 1.049925 -30.124895 220 5 1.1 0.9; + 2751 1 34.54 8.6 0 5.05 0 1.042162 -21.896741 220 5 1.1 0.9; + 2754 1 -0 0 0 3.72 0 1.051994 -13.365671 220 5 1.1 0.9; + 2770 1 85.39 14.3 0 0.35 0 1.047946 -9.667144 220 5 1.1 0.9; + 2782 1 -28.13 -0.81 0 0.1 0 1.06184 -11.404239 220 5 1.1 0.9; + 2786 2 0 0 0 0 0 1.073795 6.427789 380 5 1.3 0.7; + 2794 1 0 -0 0 0.39 0 1.035004 -18.482955 220 5 1.1 0.9; + 2795 1 -0 -0 0 1.94 0 1.070164 -32.44656 220 5 1.1 0.9; + 2797 2 0 0 0 0 0 1.042226 -4.483231 220 5 1.1 0.9; + 2799 2 0 0 0 0 0 1.05396 -12.355638 220 5 1.1 0.9; + 2801 1 0 -0 0 12.17 0 1.041023 -24.502823 220 5 1.1 0.9; + 2806 1 -0 -0 0 0.39 0 1.050477 0.170291 220 5 1.1 0.9; + 2815 1 25.33 14.2 0 4.05 0 1.03655 -22.984441 220 5 1.1 0.9; + 2816 2 0 0 0 0 0 1.053944 -0.390904 380 5 1.1 0.9; + 2841 2 0 0 0 0 0 1.08248 -26.223645 220 5 1.1 0.9; + 2842 2 0 0 0 0 0 1.043712 -6.650222 220 5 1.1 0.9; + 2847 1 40.14 8.8 0 0.82 0 1.050663 -3.956106 220 5 1.1 0.9; + 2848 1 453.23 139.16 0 25.583218 0 0.998047 -7.830482 380 5 1.1 0.9; + 2850 1 -0 -0 0 4.76 0 1.03307 -18.741426 220 5 1.1 0.9; + 2854 1 -12.33 -2.65 0 69.323028 0 1.044838 -10.677353 380 5 1.1 0.9; + 2863 1 37.73 13.84 0 0.09 0 1.028402 -11.074681 220 5 1.1 0.9; + 2866 1 -0 0 0 4.21 0 1.03784 -7.272198 220 5 1.1 0.9; + 2872 2 0 0 0 0 0 1.063841 -10.631082 220 5 1.1 0.9; + 2877 1 29.93 -0 0 0.46 0 1.041807 -14.920901 220 5 1.1 0.9; + 2878 2 0 0 0 0 0 1.057626 -10.952158 220 5 1.1 0.9; + 2886 2 0 0 0 0 0 1.055151 -14.128145 220 5 1.1 0.9; + 2888 1 -0 0 0 0.22 0 1.013722 -21.258074 220 5 1.1 0.9; + 2889 1 -0 0 0 3.2 0 1.050185 -1.116811 220 5 1.1 0.9; + 2898 1 56.76 13.4 0 1.18 0 1.035844 -23.070363 220 5 1.1 0.9; + 2902 2 0 0 0 0 0 1.059072 -23.273273 220 5 1.1 0.9; + 2910 1 -0 0 0 2.87 0 1.040554 -2.262281 220 5 1.1 0.9; + 2918 1 0 0 0 53.25003 0 1.02385 -28.205516 380 5 1.1 0.9; + 2919 1 -0 0 0 32.049116 0 0.991588 -18.308905 380 5 1.1 0.9; + 2924 1 19.92 7.4 0 17.28 0 1.057573 -33.080856 220 5 1.1 0.9; + 2928 1 0 -0 0 92.38 0 1.074568 -26.335879 220 5 1.1 0.9; + 2930 2 0 0 0 0 0 1.047695 -12.912307 220 5 1.1 0.9; + 2931 1 230.7 19.3 0 4.56 0 1.043622 -32.26389 220 5 1.1 0.9; + 2934 2 0 0 0 0 0 1.051149 -6.52803 220 5 1.1 0.9; + 2938 1 0 -0 0 137.29 0 1.005521 -7.42176 380 5 1.1 0.9; + 2940 1 103 28.7 0 2.88 0 1.01671 -14.352513 220 5 1.1 0.9; + 2949 1 -0 -0 0 11.03 0 1.050433 -4.837602 220 5 1.1 0.9; + 2961 1 159.9 53.2 0 7.99 0 1.041215 -24.387727 220 5 1.1 0.9; + 2967 1 0 -0 0 0.19 0 1.046973 -17.07434 220 5 1.1 0.9; + 2968 1 112.51 16.51 0 1.63 0 1.044527 -8.952764 220 5 1.1 0.9; + 2972 1 97.82 20.59 0 6.67 0 1.038342 -15.064035 220 5 1.1 0.9; + 2980 1 -0 0 0 0.42 0 1.063297 -9.078731 380 5 1.1 0.9; + 2981 1 -0 0 0 1.68 0 1.075422 -15.322665 220 5 1.1 0.9; + 2985 2 0 0 0 0 0 1.053607 -8.47854 220 5 1.1 0.9; + 2995 1 0 -0 0 3.9 0 1.051891 -3.763961 220 5 1.1 0.9; + 3013 1 2.2 1.1 0 0.67 0 1.049575 -5.241034 220 5 1.1 0.9; + 3018 2 0 0 0 0 0 1.041705 -12.798969 220 5 1.1 0.9; + 3019 1 0 -0 0 1.37 0 1.036837 -22.763335 220 5 1.1 0.9; + 3021 1 74.38 8.8 0 6.1 0 1.042535 -11.458053 220 5 1.1 0.9; + 3022 1 149 19.8 0 23.89 0 1.038441 -14.928463 380 5 1.1 0.9; + 3028 2 0 0 0 0 0 1.030654 0.605264 380 5 1.1 0.9; + 3036 1 116.93 33.6 0 3.35 0 1.046808 -25.175878 220 5 1.1 0.9; + 3037 1 221 146.8 0 8.35 0 1.04857 -6.585978 220 5 1.1 0.9; + 3044 1 29.33 5.6 0 6.56 0 1.044991 -21.014316 220 5 1.1 0.9; + 3051 1 0 0 0 0 0 1.031148 -24.884639 220 5 1.1 0.9; + 3069 1 89.6 22.7 0 4.06 0 1.033466 -8.740353 220 5 1.1 0.9; + 3070 1 0 -0 0 4.27 0 1.013716 -21.258029 220 5 1.1 0.9; + 3071 1 0 -0 0 2.83 0 1.044715 -7.284056 220 5 1.1 0.9; + 3072 1 92.9 27.7 0 5.22 0 1.050676 -30.097241 220 5 1.1 0.9; + 3075 1 30.33 10.5 0 0.33 0 1.020662 -16.898848 220 5 1.1 0.9; + 3082 1 0 0 0 75.076038 0 0.998938 -15.122127 380 5 1.1 0.9; + 3083 1 567.97 130.73 0 1.09 0 1.068389 -27.641331 220 5 1.1 0.9; + 3085 1 64.67 24.5 0 1.46 0 1.067218 -27.697899 220 5 1.1 0.9; + 3112 1 -0 0 0 0 0 1.057299 2.403578 220 5 1.1 0.9; + 3114 2 0 0 0 0 0 1.071964 -11.598423 220 5 1.1 0.9; + 3121 1 242.16 73.64 0 12.79 0 1.031627 -7.214885 220 5 1.1 0.9; + 3126 1 104.78 20.92 0 6.17 0 1.021547 -17.925447 220 5 1.1 0.9; + 3133 2 0 0 0 0 0 1.065372 -9.169038 220 5 1.1 0.9; + 3134 2 0 0 0 0 0 1.023117 -15.704702 220 5 1.1 0.9; + 3137 1 0 -0 0 0.03 0 1.065118 -26.070583 220 5 1.1 0.9; + 3145 1 860.95 -182.67 0 18.309116 0 0.993017 -41.441031 380 5 1.1 0.9; + 3166 1 184.91 32.8 0 8.35 0 1.039048 -17.527734 220 5 1.1 0.9; + 3183 2 0 0 0 0 0 1.055515 -11.832574 220 5 1.1 0.9; + 3184 1 14.12 7.7 0 1.42 0 1.040299 -21.338667 220 5 1.1 0.9; + 3187 1 107 34.7 0 1.54 0 1.042404 -12.953299 220 5 1.1 0.9; + 3191 1 127.8 15.2 0 9.34 0 1.040776 -12.071062 220 5 1.1 0.9; + 3200 1 86.2 19.9 0 5.43 0 1.036168 -23.053307 220 5 1.1 0.9; + 3204 1 8.51 3.2 0 0.96 0 1.017023 -10.267075 220 5 1.1 0.9; + 3205 2 0 0 0 0 0 1.041982 -1.292668 380 5 1.1 0.9; + 3218 2 0 0 0 0 0 1.028507 -11.253521 220 5 1.1 0.9; + 3221 1 76.38 24.8 0 3.24 0 1.047766 -12.146786 220 5 1.1 0.9; + 3231 1 251.3 42.6 0 5.47 0 1.025161 -14.287368 220 5 1.1 0.9; + 3239 1 -5.06 -1.84 0 187.327025 0 1.056229 -11.611515 380 5 1.1 0.9; + 3240 2 0 0 0 0 0 1.050305 -1.129073 220 5 1.1 0.9; + 3241 1 132 27 0 4.66 0 1.030192 -17.957576 220 5 1.1 0.9; + 3243 1 -0 0 0 1.18 0 0.990554 -18.181283 380 5 1.1 0.9; + 3246 1 20.9 -171.5 0 0.21 0 1.080513 7.863586 220 5 1.1 0.9; + 3248 1 84.19 17.3 0 6.2 0 1.05498 -11.325947 220 5 1.1 0.9; + 3255 1 0 0 0 1.44 0 1.038882 -22.03657 220 5 1.1 0.9; + 3276 1 -0 -0 0 0.13 0 1.050076 -7.893785 220 5 1.1 0.9; + 3293 1 33.14 11.6 0 4.51 0 1.038075 -11.39812 220 5 1.1 0.9; + 3306 2 0 0 0 0 0 1.071978 8.08029 220 5 1.1 0.9; + 3324 2 0 0 0 0 0 1.014126 -16.129669 220 5 1.1 0.9; + 3325 1 -0 0 0 0.91 0 1.033998 -20.055869 220 5 1.1 0.9; + 3327 1 -0 -0 0 2.27 0 1.038066 -12.156606 220 5 1.1 0.9; + 3331 1 -0 -0 0 4.56 0 1.0175 -10.215862 220 5 1.1 0.9; + 3344 1 83.29 24.1 0 1.23 0 1.039524 -16.595479 220 5 1.1 0.9; + 3346 2 0 0 0 0 0 1.01594 -12.063974 380 5 1.1 0.9; + 3353 2 0 0 0 0 0 1.045739 -3.042188 220 5 1.1 0.9; + 3364 2 0 0 0 0 0 1.0538 -12.359552 220 5 1.1 0.9; + 3377 1 77.49 21.4 0 0.05 0 1.018192 -10.51029 220 5 1.1 0.9; + 3390 2 0 0 0 0 0 1.039984 -11.495624 220 5 1.1 0.9; + 3391 1 302.5 65.1 0 8.87 0 1.059691 -20.937372 220 5 1.1 0.9; + 3400 1 0 0 0 17.31 0 1.047571 -25.085016 220 5 1.1 0.9; + 3401 1 23.22 6.3 0 0.66 0 1.034711 -14.123031 220 5 1.1 0.9; + 3412 1 -0 0 0 0 0 1.057299 2.403578 220 5 1.1 0.9; + 3422 2 0 0 0 0 0 1.063657 -10.680951 220 5 1.1 0.9; + 3430 1 125.1 44 0 6.04 0 1.015255 -16.040907 220 5 1.1 0.9; + 3435 1 -0 0 0 10.13 0 1.043606 -25.55539 220 5 1.1 0.9; + 3436 2 0 0 0 0 0 1.060777 -13.286433 220 5 1.1 0.9; + 3445 1 45.14 -6.64 0 88.82001 0 0.999706 -5.879329 380 5 1.1 0.9; + 3450 1 78.99 16.2 0 1.97 0 1.046643 -21.48337 220 5 1.1 0.9; + 3481 1 142.5 23.6 0 4.24 0 1.023602 -20.789174 220 5 1.1 0.9; + 3483 1 157.78 276.03 0 91.192543 0 1.051877 2.264367 380 5 1.1 0.9; + 3485 1 -0 0 0 6.501668 0 0.991148 -16.268999 380 5 1.1 0.9; + 3486 1 101.5 -18.3 0 8.47 0 1.037237 -20.871205 220 5 1.1 0.9; + 3488 1 55.66 4.5 0 1.33 0 1.038891 -12.374272 220 5 1.1 0.9; + 3492 2 0 0 0 0 0 1.04852 -8.570568 220 5 1.1 0.9; + 3496 1 99.3 23.3 0 1.88 0 1.03602 -21.337931 220 5 1.1 0.9; + 3498 1 138.5 19.3 0 5.26 0 1.04022 -10.181185 220 5 1.1 0.9; + 3499 1 180.4 71.6 0 81.042938 0 1.035853 -3.63424 380 5 1.1 0.9; + 3502 1 98.2 19.1 0 10.92 0 1.020854 -10.552336 220 5 1.1 0.9; + 3503 1 -0 0 0 1.93 0 1.032128 -11.505891 220 5 1.1 0.9; + 3513 2 0 0 0 0 0 1.028771 -3.782955 380 5 1.1 0.9; + 3519 1 -0 0 0 68.053762 0 1.033967 -22.784898 380 5 1.1 0.9; + 3520 1 -0 0 0 2.47 0 1.037612 -5.896123 220 5 1.1 0.9; + 3526 1 33.34 13.2 0 0.76 0 1.056871 -4.128916 220 5 1.1 0.9; + 3535 1 -0 0 0 0.49 0 1.035787 -24.451001 220 5 1.1 0.9; + 3541 1 0 -0 0 3.34 0 1.039193 -23.983552 220 5 1.1 0.9; + 3543 1 -0 -0 0 14.079026 0 0.991625 -17.553669 380 5 1.1 0.9; + 3545 1 20.12 7.6 0 0.89 0 1.049206 -8.009952 220 5 1.1 0.9; + 3557 1 87.2 31.8 0 5.96 0 1.048975 -30.444694 220 5 1.1 0.9; + 3558 1 -0 0 0 2.51 0 1.062152 2.457422 220 5 1.1 0.9; + 3565 2 0 0 0 0 0 1.081614 -26.430835 220 5 1.1 0.9; + 3577 1 -38.7 -12.99 0 13.47383 0 1.031951 -5.185856 380 5 1.1 0.9; + 3579 1 277.72 7.35 0 3.58 0 1.072032 -39.86741 220 5 1.1 0.9; + 3580 2 0 0 0 0 0 1.07602 -33.404876 220 5 1.1 0.9; + 3589 1 37.54 18.3 0 0.22 0 1.042938 -6.728326 220 5 1.1 0.9; + 3594 1 31.43 6.6 0 3.32 0 1.034276 -19.803995 220 5 1.1 0.9; + 3601 1 0 0 0 0.23 0 1.040409 -21.360272 220 5 1.1 0.9; + 3602 1 86.6 14.9 0 1.34 0 1.032076 -18.933744 220 5 1.1 0.9; + 3608 1 0 -0 0 58.146813 0 1.00943 -41.64982 380 5 1.1 0.9; + 3609 1 -28.13 -0.82 0 0.1 0 1.061834 -11.405533 220 5 1.1 0.9; + 3610 1 185.8 31.8 0 3.73 0 1.03662 -22.744804 220 5 1.1 0.9; + 3611 2 0 0 0 0 0 1.03905 -18.955066 220 5 1.1 0.9; + 3613 1 152.5 14.4 0 24.61 0 1.03039 -28.045674 380 5 1.1 0.9; + 3643 1 24.23 6.4 0 3.9 0 1.033238 -19.364356 220 5 1.1 0.9; + 3645 1 42.55 17.6 0 17.28 0 1.057259 -33.103595 220 5 1.1 0.9; + 3649 1 -0 -0 0 4.86 0 1.049277 -36.568687 220 5 1.1 0.9; + 3654 1 20.72 5 0 6.64 0 1.074155 -26.393413 220 5 1.1 0.9; + 3656 2 0 0 0 0 0 1.070983 -11.746409 220 5 1.1 0.9; + 3657 1 131 1.3 0 120.45 0 1.075593 -26.08278 220 5 1.1 0.9; + 3661 2 0 0 0 0 0 1.059676 4.513427 380 5 1.1 0.9; + 3670 1 28.03 6.5 0 6.32 0 1.036121 -21.979516 220 5 1.1 0.9; + 3672 1 82.99 25.9 0 0.23 0 1.032626 -12.873557 220 5 1.1 0.9; + 3674 1 155.05 39.56 0 6.27 0 1.042158 -14.835571 220 5 1.1 0.9; + 3680 1 -0 -0 0 12.4 0 1.035367 -15.507057 220 5 1.1 0.9; + 3697 1 -32.71 -13.76 0 135.136611 0 1.04888 -20.581455 380 5 1.1 0.9; + 3698 2 0 0 0 0 0 1.041813 -24.312887 220 5 1.1 0.9; + 3701 1 -0 0 0 0.43 0 1.048029 -25.022699 220 5 1.1 0.9; + 3707 1 77.49 17.3 0 0.1 0 1.050811 -15.306372 220 5 1.1 0.9; + 3718 1 179.4 58.3 0 0.64 0 1.04576 -25.247909 220 5 1.1 0.9; + 3737 1 42.48 10.36 0 0.37 0 1.036909 -2.934488 220 5 1.1 0.9; + 3740 1 0 -0 0 13.03 0 1.03798 -21.218929 220 5 1.1 0.9; + 3741 2 0 0 0 0 0 1.031629 0.717314 380 5 1.1 0.9; + 3749 1 115.1 16.4 0 7.67 0 1.041217 -17.23173 220 5 1.1 0.9; + 3758 1 83.49 17.4 0 19.32 0 1.023928 -19.012865 220 5 1.1 0.9; + 3760 1 163.5 44.9 0 1.17 0 1.058074 -20.932224 220 5 1.1 0.9; + 3768 1 19.82 10.9 0 0.05 0 1.042031 -21.905161 220 5 1.1 0.9; + 3775 1 55.54 15.06 0 6.28 0 1.001347 -23.504647 220 5 1.1 0.9; + 3786 1 -0 -0 0 26.98 0 1.052535 -19.650048 220 5 1.1 0.9; + 3793 1 197.7 67.65 0 13.58 0 1.034254 -20.635259 220 5 1.1 0.9; + 3794 1 165.3 7.4 0 28.32 0 1.030869 -28.137864 380 5 1.1 0.9; + 3809 2 0 0 0 0 0 1.084785 -33.980103 220 5 1.1 0.9; + 3814 1 130.5 24.7 0 0.4 0 1.041172 -21.968498 220 5 1.1 0.9; + 3817 1 0 -0 0 1.02 0 1.089268 -15.202915 220 5 1.1 0.9; + 3818 1 44.45 10.9 0 2.23 0 1.042892 -25.785119 220 5 1.1 0.9; + 3825 2 0 0 0 0 0 1.026994 -8.529973 380 5 1.1 0.9; + 3830 1 -0 0 0 97.326028 0 0.99448 -13.765558 380 5 1.1 0.9; + 3834 1 160 69.2 0 0.19 0 1.036267 -22.248651 220 5 1.1 0.9; + 3855 1 -38.73 -15.32 0 97.23 0 1.07551 -26.170776 220 5 1.1 0.9; + 3857 1 -0 -0 0 11.68 0 1.081278 -23.127573 220 5 1.1 0.9; + 3865 1 -0 -0 0 2.26 0 1.027017 -14.866102 220 5 1.1 0.9; + 3866 1 201.06 19.46 0 2.87 0 1.048033 -27.549636 220 5 1.1 0.9; + 3869 2 0 0 0 0 0 1.031907 1.193974 380 5 1.1 0.9; + 3876 2 0 0 0 0 0 1.044501 -9.587109 220 5 1.1 0.9; + 3880 1 -28.13 -0.82 0 0.09 0 1.061821 -11.404764 220 5 1.1 0.9; + 3894 1 0 0 0 4.77 0 1.02402 -15.319245 220 5 1.1 0.9; + 3903 1 0 0 0 4.36 0 1.051358 -24.515174 220 5 1.1 0.9; + 3906 1 0 0 0 98.2 0 1.037271 -13.381903 380 5 1.1 0.9; + 3912 1 0 -0 0 19.73 0 1.038244 -21.078792 220 5 1.1 0.9; + 3916 2 0 0 0 0 0 1.043758 -14.004059 220 5 1.1 0.9; + 3918 1 -11.8 -5.47 0 88.050735 0 1.02393 -1.867594 380 5 1.1 0.9; + 3919 1 -0 0 0 39.95 0 1.024896 -6.075842 380 5 1.1 0.9; + 3925 1 89.3 25.1 0 2.98 0 1.026482 -13.116396 220 5 1.1 0.9; + 3928 1 105.2 24.2 0 0.25 0 1.046535 -4.757211 220 5 1.1 0.9; + 3929 1 48.95 11.6 0 2 0 1.03267 -20.217595 220 5 1.1 0.9; + 3951 2 0 0 0 0 0 1.027439 -12.908691 220 5 1.1 0.9; + 3956 1 -0 -0 0 1.18 0 1.049338 -24.08911 220 5 1.1 0.9; + 3962 1 19.42 11.8 0 2.6 0 1.041036 -23.700249 220 5 1.1 0.9; + 3969 1 -0 -0 0 0.84 0 1.018397 -10.494183 220 5 1.1 0.9; + 3971 2 0 0 0 0 0 1.063145 -8.854993 220 5 1.1 0.9; + 3975 1 148 26.1 0 9.44 0 0.986357 -24.771259 220 5 1.1 0.9; + 3985 1 77.19 26.5 0 6.2 0 1.047148 -0.061532 220 5 1.1 0.9; + 3994 1 36.34 10.4 0 2.67 0 1.035393 -2.725702 220 5 1.1 0.9; + 3997 1 26.13 9.7 0 2.37 0 1.042584 -11.956467 220 5 1.1 0.9; + 3999 1 110.8 36.9 0 23.2 0 1.051666 -6.639084 220 5 1.1 0.9; + 4000 1 -0 0 0 24.103274 0 0.991622 -15.520854 380 5 1.1 0.9; + 4005 1 171.18 28.49 0 0 0 1.067869 -31.620043 220 5 1.1 0.9; + 4024 2 0 0 0 0 0 1.040328 2.440561 380 5 1.1 0.9; + 4025 1 0 0 0 2.67 0 1.035538 -2.7146 220 5 1.1 0.9; + 4031 1 0 -0 0 6.42 0 1.063769 -10.640029 220 5 1.1 0.9; + 4032 1 265.7 113.5 0 1.85 0 0.999578 -11.699686 220 5 1.1 0.9; + 4039 1 -0 -0 0 1.18 0 1.037985 -22.526852 220 5 1.1 0.9; + 4049 1 -0 -0 0 0.89 0 1.017178 -10.133503 220 5 1.1 0.9; + 4054 1 0 -0 0 2.71 0 1.035023 -18.483102 220 5 1.1 0.9; + 4056 2 0 0 0 0 0 1.038526 -9.78553 220 5 1.1 0.9; + 4060 1 -0 0 0 2.08 0 1.066903 -14.674014 220 5 1.1 0.9; + 4084 2 0 0 0 0 0 1.063234 -8.796721 220 5 1.1 0.9; + 4100 1 -0 -0 0 1.23 0 1.063607 -10.700214 220 5 1.1 0.9; + 4103 1 81.09 12.5 0 2.4 0 1.037109 -21.700054 220 5 1.1 0.9; + 4110 1 13.01 3.8 0 3.59 0 1.048623 0.630118 220 5 1.1 0.9; + 4114 1 9.91 5.4 0 4.6 0 1.048622 -24.482065 220 5 1.1 0.9; + 4118 2 0 0 0 0 0 1.027195 -14.802318 220 5 1.1 0.9; + 4125 2 0 0 0 0 0 1.003502 -8.417156 380 5 1.1 0.9; + 4127 1 39.14 7.7 0 11.68 0 1.033235 -20.156948 220 5 1.1 0.9; + 4128 2 0 0 0 0 0 1.019761 -15.71382 220 5 1.1 0.9; + 4134 1 -0 0 0 0.09 0 1.074144 -33.622001 220 5 1.1 0.9; + 4141 1 -0.62 0 0 75.020288 0 1.032772 -21.096452 380 5 1.1 0.9; + 4143 1 11.11 4.1 0 0.8 0 1.05009 -1.152786 220 5 1.1 0.9; + 4144 1 310.2 4.5 0 8.51 0 1.048354 -19.735876 220 5 1.1 0.9; + 4157 1 0 0 0 1.2 0 1.074571 -26.335983 220 5 1.1 0.9; + 4185 1 87.5 21.3 0 7.52 0 1.042708 -25.806182 220 5 1.1 0.9; + 4186 1 -0 0 0 5.06 0 1.036176 -23.132591 220 5 1.1 0.9; + 4189 1 200.65 30.72 0 9.72 0 1.037191 -26.003681 220 5 1.1 0.9; + 4196 1 -3.2 -1.05 0 48.471563 0 1.029571 -7.552855 380 5 1.1 0.9; + 4197 1 9.01 4.9 0 0.64 0 1.06874 0.692131 220 5 1.1 0.9; + 4205 1 5.81 1.7 0 0.42 0 1.052019 -12.684377 220 5 1.1 0.9; + 4215 1 -0 -0 0 17.29 0 1.046292 -23.032269 220 5 1.1 0.9; + 4231 3 0 0 0 0 0 1.049182 0 380 5 1.1 0.9; + 4234 1 0 0 0 8.95 0 1.046192 -17.159976 220 5 1.1 0.9; + 4235 1 -0 -0 0 12.68 0 1.053821 -19.119448 220 5 1.1 0.9; + 4239 1 190.7 52 0 20.57 0 1.052709 -13.186066 220 5 1.1 0.9; + 4245 1 24.93 9.6 0 0.09 0 1.041034 -9.897904 220 5 1.1 0.9; + 4251 1 47.15 15.7 0 5.41 0 1.026731 -17.726744 220 5 1.1 0.9; + 4267 1 70.78 19.6 0 7.9 0 1.038616 -8.918342 220 5 1.1 0.9; + 4281 1 -0 -0 0 11.4 0 1.05107 -11.692848 220 5 1.1 0.9; + 4300 1 81.49 25.1 0 0.36 0 1.00381 -16.189999 220 5 1.1 0.9; + 4301 1 -0 -0 0 2.27 0 1.038253 -21.079157 220 5 1.1 0.9; + 4306 1 0 -0 0 0.3 0 1.034875 -30.808256 380 5 1.1 0.9; + 4313 1 133.4 29.4 0 10.87 0 1.043554 -21.132272 220 5 1.1 0.9; + 4314 1 26.13 2.7 0 1.7 0 1.044059 -14.213235 220 5 1.1 0.9; + 4324 1 307.42 -38.3 0 0 0 1.06402 -29.724601 220 5 1.1 0.9; + 4331 2 0 0 0 0 0 1.028646 -11.048944 220 5 1.1 0.9; + 4339 1 -0 -0 0 42.345005 0 0.994972 -15.805227 380 5 1.1 0.9; + 4353 1 165.8 44 0 6.15 0 1.055169 -26.615369 220 5 1.1 0.9; + 4355 1 65.07 15 0 1.37 0 1.07349 -26.435642 220 5 1.1 0.9; + 4357 1 235 58.9 0 14.47 0 1.046909 -15.944189 220 5 1.1 0.9; + 4368 1 90.6 15.8 0 7.99 0 1.060945 -25.082183 220 5 1.1 0.9; + 4395 2 0 0 0 0 0 1.039834 -20.6569 220 5 1.1 0.9; + 4402 1 -0 0 0 1.02 0 1.089271 -15.202973 220 5 1.1 0.9; + 4410 1 45.05 13.2 0 44.93 0 1.046754 -36.877378 220 5 1.1 0.9; + 4418 1 -0 0 0 0.05 0 1.076968 -24.357646 220 5 1.1 0.9; + 4419 2 0 0 0 0 0 1.059565 4.496453 380 5 1.1 0.9; + 4426 1 485.5 -63.38 0 34.92 0 1.068079 -46.755413 220 5 1.1 0.9; + 4432 1 -0 0 0 0.8 0 1.07457 -26.335948 220 5 1.1 0.9; + 4435 1 -0 -0 0 102.217726 0 1.006778 -8.596561 380 5 1.1 0.9; + 4454 1 -0 -0 0 1 0 0.987785 -18.481884 220 5 1.1 0.9; + 4480 2 0 0 0 0 0 1.071852 7.973164 220 5 1.1 0.9; + 4482 2 0 0 0 0 0 1.049914 -6.455681 220 5 1.1 0.9; + 4484 1 69.78 25 0 14.24 0 1.051896 -13.325368 220 5 1.1 0.9; + 4491 1 0 -0 0 1.75 0 1.032064 -28.901791 220 5 1.1 0.9; + 4494 1 -0 0 0 55.514618 0 1.024773 -0.869931 380 5 1.1 0.9; + 4504 1 170.1 -9.3 0 5.97 0 1.072324 -42.518571 220 5 1.1 0.9; + 4505 1 95.51 17.1 0 8.5 0 1.047176 -15.911012 220 5 1.1 0.9; + 4506 2 0 0 0 0 0 1.036047 -5.941934 220 5 1.1 0.9; + 4511 1 81.89 19.9 0 5.1 0 1.041941 -25.929686 220 5 1.1 0.9; + 4513 1 92.1 29.5 0 3.14 0 1.030552 -9.829625 220 5 1.1 0.9; + 4520 1 -0 -0 0 0.94 0 1.017179 -10.133508 220 5 1.1 0.9; + 4525 1 -0 0 0 6.12 0 1.060611 -8.826883 220 5 1.1 0.9; + 4529 1 48.48 8.7 0 10.14 0 1.055612 -15.125162 220 5 1.1 0.9; + 4541 1 0 -0 0 150.797812 0 1.023455 -9.910829 380 5 1.1 0.9; + 4544 1 -0 -0 0 14.64 0 1.047769 -14.697837 220 5 1.1 0.9; + 4549 1 0 -0 0 0.3 0 1.03214 -11.506046 220 5 1.1 0.9; + 4550 1 0 -0 0 124.2 0 1.019271 -10.38876 380 5 1.1 0.9; + 4554 1 119 21.9 0 0.95 0 1.041048 -9.799798 220 5 1.1 0.9; + 4562 1 130.5 25.7 0 2.27 0 1.02147 -16.819485 220 5 1.1 0.9; + 4566 2 0 0 0 0 0 1.073282 -27.676255 220 5 1.1 0.9; + 4580 1 11.01 3.9 0 7.98 0 1.045713 -12.00096 220 5 1.1 0.9; + 4594 1 -1.73 -1.71 0 22.062314 0 0.998779 -5.591046 380 5 1.1 0.9; + 4598 1 -0 0 0 52.958443 0 1.024757 -7.997137 380 5 1.1 0.9; + 4615 1 42.55 17.6 0 1.2 0 1.066957 -25.393864 220 5 1.1 0.9; + 4623 1 0 -0 0 80.388213 0 0.9943 -16.866228 380 5 1.1 0.9; + 4624 2 0 0 0 0 0 1.042135 -15.685962 220 5 1.1 0.9; + 4656 1 93.9 -0.4 0 3.66 0 1.052781 -19.605607 220 5 1.1 0.9; + 4661 2 0 0 0 0 0 1.049813 -26.16746 220 5 1.1 0.9; + 4674 1 124 29.2 0 0.53 0 1.032396 -12.4247 220 5 1.1 0.9; + 4679 1 102.7 17.8 0 48.05 0 1.042344 -20.616305 220 5 1.1 0.9; + 4683 1 38.84 8.5 0 7.31 0 1.052059 -3.729961 220 5 1.1 0.9; + 4685 1 46.15 11.2 0 10.16 0 1.042999 -25.790941 220 5 1.1 0.9; + 4689 1 109.7 15 0 30.97 0 1.048918 -30.792772 220 5 1.1 0.9; + 4701 2 0 0 0 0 0 1.043063 -9.879302 380 5 1.1 0.9; + 4710 1 195.4 76.84 0 8.59 0 1.026719 -9.176978 220 5 1.1 0.9; + 4711 1 -0 0 0 16.11 0 1.042937 -11.415152 220 5 1.1 0.9; + 4725 1 4.91 1.6 0 4.15 0 1.014202 -10.601951 220 5 1.1 0.9; + 4728 1 3.1 0.1 0 1.34 0 1.040401 -21.360189 220 5 1.1 0.9; + 4729 1 0 0 0 2.38 0 1.032006 -8.433928 220 5 1.1 0.9; + 4734 1 0 0 0 25.339116 0 1.014516 -10.190708 380 5 1.1 0.9; + 4738 1 101.89 25.72 0 5.11 0 1.06866 -10.715961 220 5 1.1 0.9; + 4747 1 93.3 27.8 0 6.1 0 1.035644 -12.325346 220 5 1.1 0.9; + 4748 1 -0 -0 0 1.49 0 1.032136 -12.426948 220 5 1.1 0.9; + 4765 1 33.04 10.1 0 0.43 0 1.03734 -12.246628 220 5 1.1 0.9; + 4783 2 0 0 0 0 0 1.071981 8.277038 220 5 1.1 0.9; + 4787 1 71.98 27.1 0 7.2 0 0.99123 -14.709219 380 5 1.1 0.9; + 4816 2 0 0 0 0 0 1.067305 -23.812093 220 5 1.1 0.9; + 4819 2 0 0 0 0 0 1.031907 1.213157 380 5 1.1 0.9; + 4823 2 0 0 0 0 0 1.067114 -14.648331 220 5 1.1 0.9; + 4826 1 103.6 16 0 11.22 0 1.076968 -24.357644 220 5 1.1 0.9; + 4829 1 171.9 39.1 0 4.23 0 1.020877 -5.66958 220 5 1.1 0.9; + 4831 1 130.4 44.33 0 5.22 0 1.023656 -15.867691 220 5 1.1 0.9; + 4850 2 0 0 0 0 0 1.054975 -13.889155 220 5 1.1 0.9; + 4852 1 45.55 -59.9 0 30.04 0 1.040672 -20.328499 220 5 1.1 0.9; + 4864 1 -28.21 -6 0 0.05 0 1.037977 -12.814047 220 5 1.1 0.9; + 4867 1 65.77 27.3 0 0.49 0 1.031537 -3.407292 220 5 1.1 0.9; + 4874 1 -0.58 -53.03 0 6.85 0 1.07611 -39.379591 220 5 1.1 0.9; + 4880 2 0 0 0 0 0 1.034991 -15.897969 220 5 1.1 0.9; + 4885 1 166.4 50.4 0 1.23 0 1.074189 -26.349591 220 5 1.1 0.9; + 4889 1 74.98 19.8 0 6.47 0 1.034333 -12.232863 220 5 1.1 0.9; + 4907 1 125.16 29.2 0 2.69 0 1.041821 -13.302552 220 5 1.1 0.9; + 4908 1 50.06 9.9 0 11.56 0 1.037684 -21.273347 220 5 1.1 0.9; + 4914 1 14.91 -8.73 0 34.66 0 1.036628 -22.980806 220 5 1.1 0.9; + 4918 2 0 0 0 0 0 1.057325 -11.046567 220 5 1.1 0.9; + 4925 1 -0 0 0 0.3 0 1.036525 -22.48156 220 5 1.1 0.9; + 4936 1 312.2 28 0 48.6 0 1.049019 -30.699604 220 5 1.1 0.9; + 4939 1 56.76 31.1 0 0.37 0 1.043989 -4.549265 220 5 1.1 0.9; + 4942 1 109.9 33.6 0 3.72 0 1.028311 -12.898354 220 5 1.1 0.9; + 4950 1 218.7 -9.1 0 49 0 1.036717 -40.104666 220 5 1.1 0.9; + 4951 1 183.95 -6.47 0 5.74 0 1.053531 -1.663312 220 5 1.1 0.9; + 4952 2 0 0 0 0 0 1.045386 -17.502534 220 5 1.1 0.9; + 4970 1 -0 -0 0 171.931977 0 1.064315 -17.672609 380 5 1.1 0.9; + 4974 1 89.08 26.9 0 4.68 0 1.023886 -13.4778 220 5 1.1 0.9; + 5002 1 -0 0 0 4.34 0 1.071581 -8.674239 220 5 1.1 0.9; + 5003 1 17.87 -8.59 0 0.21 0 1.042135 -9.676575 220 5 1.1 0.9; + 5004 2 0 0 0 0 0 1.0663 -15.374553 220 5 1.1 0.9; + 5007 1 0 0 0 40.291745 0 1.021829 -15.303707 380 5 1.1 0.9; + 5016 1 -0 0 0 8.347383 0 1.02139 -5.019103 380 5 1.1 0.9; + 5019 2 0 0 0 0 0 1.047693 -12.9179 220 5 1.1 0.9; + 5049 1 136.6 29 0 2.05 0 1.01997 -20.429759 220 5 1.1 0.9; + 5051 2 0 0 0 0 0 1.037373 -16.452704 220 5 1.1 0.9; + 5067 2 0 0 0 0 0 1.021924 -7.972254 380 5 1.1 0.9; + 5077 1 30.93 5.8 0 4.45 0 1.055018 -26.635396 220 5 1.1 0.9; + 5083 1 80.39 10.8 0 0.35 0 1.039314 -12.19306 220 5 1.1 0.9; + 5093 1 70.78 28 0 1.49 0 1.010775 -14.861295 220 5 1.1 0.9; + 5099 1 0 0 0 9.34 0 1.058325 1.539585 220 5 1.1 0.9; + 5106 1 39.94 13 0 2.47 0 1.071273 -31.590024 220 5 1.1 0.9; + 5110 2 0 0 0 0 0 1.032061 -10.28337 220 5 1.1 0.9; + 5120 2 0 0 0 0 0 1.055539 -23.597086 220 5 1.1 0.9; + 5131 1 -0 0 0 7.84 0 1.074641 -26.336733 220 5 1.1 0.9; + 5137 1 16.92 0 0 0.57 0 1.025017 -16.369795 220 5 1.1 0.9; + 5144 2 0 0 0 0 0 1.035201 -3.127844 380 5 1.1 0.9; + 5146 1 229.9 48.9 0 8.36 0 1.01309 -34.0847 220 5 1.1 0.9; + 5174 1 0 -0 0 8.19 0 1.045055 -21.030104 220 5 1.1 0.9; + 5179 1 179.8 5.67 0 12.83 0 1.049521 -30.437104 220 5 1.1 0.9; + 5182 1 0 0 0 0.18 0 1.04247 -7.991956 220 5 1.1 0.9; + 5212 1 -0 0 0 0.2 0 1.043532 -11.000335 220 5 1.1 0.9; + 5213 1 246.8 36.3 0 16.01 0 1.046557 -26.37211 220 5 1.1 0.9; + 5215 1 -0 -0 0 0.89 0 1.029858 -5.840941 220 5 1.1 0.9; + 5233 1 -0 -0 0 14.04 0 1.040607 -10.965139 220 5 1.1 0.9; + 5237 2 0 0 0 0 0 1.052719 -14.75067 220 5 1.1 0.9; + 5241 1 0 -0 0 70.905048 0 1.030298 -3.61649 380 5 1.1 0.9; + 5256 1 91 36 0 5.47 0 1.00434 -16.654648 220 5 1.1 0.9; + 5257 1 -0 0 0 0.18 0 1.04776 -6.282341 220 5 1.1 0.9; + 5270 1 -0 -0 0 7.4 0 1.040679 -21.118583 220 5 1.1 0.9; + 5278 2 0 0 0 0 0 1.042037 -24.259299 220 5 1.1 0.9; + 5286 1 17.22 5.1 0 0.99 0 1.037376 -22.164674 220 5 1.1 0.9; + 5288 1 -0 -0 0 3.06 0 0.998946 -15.122249 380 5 1.1 0.9; + 5297 1 55.26 11 0 7.68 0 1.041403 -24.362719 220 5 1.1 0.9; + 5300 1 -0 -0 0 1.3 0 1.045246 -10.990672 220 5 1.1 0.9; + 5308 1 0 -0 0 42.19206 0 0.984486 -18.190432 380 5 1.1 0.9; + 5317 1 293.2 87.4 0 26.36 0 1.028707 -44.346536 220 5 1.1 0.9; + 5334 1 17.52 6.6 0 3.79 0 1.033829 -12.746707 220 5 1.1 0.9; + 5340 2 0 0 0 0 0 1.054941 -11.154638 220 5 1.1 0.9; + 5341 1 64.27 17.5 0 0.43 0 1.011142 -21.65338 220 5 1.1 0.9; + 5350 1 0 0 0 28.208233 0 0.981529 -24.398889 380 5 1.1 0.9; + 5351 1 0 0 0 3.28 0 1.034562 -14.13742 220 5 1.1 0.9; + 5354 1 70.18 19.5 0 3.59 0 1.045497 -8.643995 220 5 1.1 0.9; + 5362 1 152.73 -17.2 0 45.85 0 1.043688 -24.235922 220 5 1.1 0.9; + 5365 2 0 0 0 0 0 1.061754 -11.4194 220 5 1.1 0.9; + 5379 2 0 0 0 0 0 1.107976 -6.815844 380 5 1.3 0.7; + 5383 1 0 -0 0 24.7 0 1.048549 -24.463345 220 5 1.1 0.9; + 5388 1 159.5 42 0 2.3 0 1.013391 -14.763695 220 5 1.1 0.9; + 5393 1 -0 0 0 9.43 0 1.065867 -15.42107 220 5 1.1 0.9; + 5395 2 0 0 0 0 0 1.048137 -27.33134 220 5 1.1 0.9; + 5400 1 241.62 52.78 0 0.82 0 1.025608 -14.012865 220 5 1.1 0.9; + 5410 1 69.78 26 0 5.18 0 1.045719 -21.375392 220 5 1.1 0.9; + 5413 1 -0 -0 0 5.57 0 1.036008 -18.03631 220 5 1.1 0.9; + 5417 1 32.74 5.3 0 3.07 0 1.057776 -12.050099 220 5 1.1 0.9; + 5418 1 -0 0 0 3.96 0 1.037717 -21.273778 220 5 1.1 0.9; + 5419 1 349.3 144.3 0 0.54 0 1.021201 -15.134475 220 5 1.1 0.9; + 5420 1 56.96 1.94 0 26.48 0 1.024419 -22.859247 380 5 1.1 0.9; + 5421 1 -0 -0 0 0.92 0 0.998945 -15.122174 380 5 1.1 0.9; + 5441 1 138.01 34.55 0 8.44 0 1.037781 -2.820227 220 5 1.1 0.9; + 5455 1 -0 -0 0 5.27 0 1.042465 -7.991918 220 5 1.1 0.9; + 5458 1 0 0 0 9.09 0 1.038913 -21.424694 220 5 1.1 0.9; + 5460 1 -15.89 -6.42 0 38.657071 0 0.992989 -17.9255 380 5 1.1 0.9; + 5461 2 0 0 0 0 0 1.06213 -18.41436 380 5 1.1 0.9; + 5469 1 106.6 -18.8 0 4.1 0 1.067374 -38.727555 220 5 1.1 0.9; + 5477 1 -0 -0 0 18.02 0 1.075392 -26.166931 220 5 1.1 0.9; + 5481 2 0 0 0 0 0 1.063711 -8.933875 380 5 1.1 0.9; + 5482 2 0 0 0 0 0 1.044486 -7.317519 220 5 1.1 0.9; + 5486 2 0 0 0 0 0 1.059636 4.495854 380 5 1.1 0.9; + 5488 2 0 0 0 0 0 1.041881 -29.8855 220 5 1.1 0.9; + 5490 2 0 0 0 0 0 1.068845 -15.202054 380 5 1.1 0.9; + 5502 1 -0 -0 0 0.58 0 1.038483 -20.512891 220 5 1.1 0.9; + 5519 1 0 -0 0 1.98 0 1.048798 -24.5238 220 5 1.1 0.9; + 5522 1 -0 -0 0 1.18 0 1.068862 0.701223 220 5 1.1 0.9; + 5525 1 236.33 59.35 0 18.71 0 1.03913 -14.017648 220 5 1.1 0.9; + 5529 1 0 0 0 0.36 0 1.037801 -2.820407 220 5 1.1 0.9; + 5533 2 0 0 0 0 0 1.038212 -13.663692 220 5 1.1 0.9; + 5546 2 0 0 0 0 0 1.05378 -23.67431 220 5 1.1 0.9; + 5550 1 0 -0 0 10.83 0 1.051152 -25.756092 220 5 1.1 0.9; + 5564 2 0 0 0 0 0 1.04123 -12.598948 220 5 1.1 0.9; + 5567 1 0 0 0 3.59 0 1.017813 -18.930548 220 5 1.1 0.9; + 5571 1 -0 0 0 1.01 0 1.036516 -22.481578 220 5 1.1 0.9; + 5573 1 0 -0 0 2.94 0 1.05903 -23.279891 220 5 1.1 0.9; + 5574 1 99.7 6 0 2.06 0 1.03922 -11.857544 220 5 1.1 0.9; + 5586 1 -0 0 0 0 0 1.057299 2.403578 220 5 1.1 0.9; + 5589 1 0 0 0 173.904854 0 1.034874 -30.808253 380 5 1.1 0.9; + 5610 1 99.5 9.2 0 27.55 0 1.045824 -24.167858 220 5 1.1 0.9; + 5616 1 225.2 35.2 0 11.99 0 1.076287 -35.225281 220 5 1.1 0.9; + 5627 1 -0 -0 0 0.53 0 1.030337 -32.491502 220 5 1.1 0.9; + 5630 1 0 0 0 11.52 0 1.043599 -4.085534 220 5 1.1 0.9; + 5641 1 -0 -0 0 5.98 0 1.049836 -26.047052 220 5 1.1 0.9; + 5648 1 -0 -0 0 115.528858 0 0.995233 -13.451687 380 5 1.1 0.9; + 5653 1 96.59 7.28 0 2.52 0 1.045504 -7.661043 220 5 1.1 0.9; + 5658 2 0 0 0 0 0 1.017689 -23.66504 380 5 1.1 0.9; + 5664 2 0 0 0 0 0 1.070507 0.956534 220 5 1.1 0.9; + 5666 1 124.8 34.7 0 3.66 0 1.046065 -10.74401 220 5 1.1 0.9; + 5686 1 52.26 19.6 0 2.64 0 1.030503 -10.223727 220 5 1.1 0.9; + 5688 1 14.12 5.2 0 1.44 0 1.033877 -8.079704 220 5 1.1 0.9; + 5691 1 195.1 -14.2 0 12.89 0 1.061392 -45.226837 220 5 1.1 0.9; + 5695 1 142.8 20.3 0 6.77 0 1.047646 -27.137982 220 5 1.1 0.9; + 5699 1 -0 0 0 0.59 0 1.049081 -6.522248 220 5 1.1 0.9; + 5709 2 0 0 0 0 0 1.027078 -8.525839 380 5 1.1 0.9; + 5712 1 183.07 44.65 0 2.77 0 1.0445 -4.578143 220 5 1.1 0.9; + 5720 1 337.6 -15.4 0 6.27 0 1.045667 -24.989207 220 5 1.1 0.9; + 5723 1 141.2 45.4 0 7.55 0 1.045129 -9.640756 220 5 1.1 0.9; + 5735 1 161.3 10.04 0 4.38 0 1.060348 -26.902429 220 5 1.1 0.9; + 5738 1 -0 -0 0 8.13 0 1.013795 -10.544291 220 5 1.1 0.9; + 5743 1 -0 0 0 4.28 0 1.052165 -24.123493 220 5 1.1 0.9; + 5753 1 -0 -0 0 1.81 0 1.033984 -3.213627 220 5 1.1 0.9; + 5764 1 99.4 4.3 0 3.69 0 1.034962 -25.335623 220 5 1.1 0.9; + 5781 2 0 0 0 0 0 1.0396 -11.754534 380 5 1.1 0.9; + 5789 1 0 0 0 0.35 0 1.005562 -16.021128 220 5 1.1 0.9; + 5799 1 -0 -0 0 1.38 0 1.043907 -32.265811 220 5 1.1 0.9; + 5803 1 0 -0 0 0.35 0 1.043774 -14.004171 220 5 1.1 0.9; + 5814 2 0 0 0 0 0 1.044051 -11.822108 220 5 1.1 0.9; + 5836 1 244.09 48.92 0 5.96 0 1.040266 -12.0279 220 5 1.1 0.9; + 5837 1 -0 -0 0 132.04744 0 1.019818 -10.148769 380 5 1.1 0.9; + 5853 1 122.5 38.9 0 0.84 0 1.042789 -7.464608 220 5 1.1 0.9; + 5856 2 0 0 0 0 0 1.038417 -11.615407 220 5 1.1 0.9; + 5857 1 78.39 21.2 0 0.97 0 1.057665 -21.071135 220 5 1.1 0.9; + 5881 2 0 0 0 0 0 1.065605 -10.395605 220 5 1.1 0.9; + 5891 1 14.02 5.5 0 3.3 0 1.036617 -12.108533 220 5 1.1 0.9; + 5907 1 186.1 14.8 0 17.28 0 1.046917 -8.47729 220 5 1.1 0.9; + 5918 1 73.83 16.41 0 15.77 0 1.053364 -25.787722 220 5 1.1 0.9; + 5926 1 0 -0 0 3.98 0 1.072067 -47.920607 220 5 1.1 0.9; + 5935 1 -0 0 0 5.75 0 1.065025 -22.144776 220 5 1.1 0.9; + 5940 2 0 0 0 0 0 1.030075 -14.582177 220 5 1.1 0.9; + 5944 1 71.88 21.7 0 9.63 0 1.059622 -25.872698 220 5 1.1 0.9; + 5957 1 208.06 36.6 0 3.55 0 1.025527 -16.209872 220 5 1.1 0.9; + 5971 2 0 0 0 0 0 1.070056 4.938459 380 5 1.3 0.7; + 5983 2 0 0 0 0 0 1.066029 -14.886912 380 5 1.1 0.9; + 5987 1 24.04 1.68 0 4.02 0 1.036825 -13.937479 220 5 1.1 0.9; + 5990 1 0 -0 0 4.53 0 1.023107 -10.218557 220 5 1.1 0.9; + 5993 1 0 -0 0 2.75 0 1.043528 -11.000279 220 5 1.1 0.9; + 5994 2 0 0 0 0 0 1.029184 -15.420668 220 5 1.1 0.9; + 6010 1 0 0 0 1.35 0 1.08135 -23.128077 220 5 1.1 0.9; + 6031 1 0 0 0 2.22 0 1.041572 -15.751421 220 5 1.1 0.9; + 6036 2 0 0 0 0 0 1.043738 -0.899698 380 5 1.1 0.9; + 6041 1 0 0 0 0.53 0 1.072109 -47.920883 220 5 1.1 0.9; + 6053 1 412.1 79.3 0 7.73 0 1.058134 -26.592239 220 5 1.1 0.9; + 6071 1 163.5 35.6 0 4.59 0 1.035726 -16.340255 220 5 1.1 0.9; + 6101 1 103 40.2 0 1.13 0 1.02679 -10.858615 220 5 1.1 0.9; + 6104 1 93.12 4.99 0 0.18 0 1.056405 -12.076426 220 5 1.1 0.9; + 6110 1 78.59 16 0 1.87 0 1.056871 -35.945281 220 5 1.1 0.9; + 6112 1 45.28 15.27 0 7.88 0 1.024189 -9.306431 220 5 1.1 0.9; + 6114 1 0 0 0 8.78 0 1.048769 -10.298802 220 5 1.1 0.9; + 6115 1 -0 -0 0 1.18 0 1.02848 -11.273668 220 5 1.1 0.9; + 6119 1 221.25 72.56 0 8.23 0 1.039102 -15.995867 220 5 1.1 0.9; + 6146 1 0 -0 0 3.15 0 1.028373 -12.079992 220 5 1.1 0.9; + 6151 1 60.67 33.2 0 0.31 0 1.032517 -24.013495 220 5 1.1 0.9; + 6153 2 0 0 0 0 0 0.988112 -14.90068 380 5 1.1 0.9; + 6163 1 0 -0 0 4.96 0 1.036223 -21.959198 220 5 1.1 0.9; + 6168 2 0 0 0 0 0 1.040343 -13.438292 220 5 1.1 0.9; + 6178 1 91 28.4 0 10.57 0 1.040244 -24.602196 220 5 1.1 0.9; + 6194 1 0 -0 0 3.14 0 1.026211 -16.329018 220 5 1.1 0.9; + 6199 1 -4.82 -0.88 0 224.85 0 1.072632 -12.599054 380 5 1.1 0.9; + 6203 1 14.02 5.6 0 2.34 0 1.070264 -27.353716 220 5 1.1 0.9; + 6206 1 -7.62 -2.52 0 33.197994 0 1.037591 0.03956 380 5 1.1 0.9; + 6219 1 -0 -0 0 0.22 0 1.033837 -12.746776 220 5 1.1 0.9; + 6220 1 231.9 27.6 0 0.36 0 1.055297 -22.931727 220 5 1.1 0.9; + 6224 1 0 0 0 58.990785 0 1.000545 -12.907246 380 5 1.1 0.9; + 6231 1 -0 0 0 11.5 0 1.034263 -8.032463 220 5 1.1 0.9; + 6232 1 49.25 12 0 7.28 0 1.042941 -25.794518 220 5 1.1 0.9; + 6240 1 0 -0 0 6.31 0 1.075696 -34.242457 220 5 1.1 0.9; + 6246 1 1769.94 -353.95 0 62.59 0 1.045739 -36.412972 380 5 1.1 0.9; + 6252 1 164.7 44.5 0 3.67 0 1.020382 -29.885564 220 5 1.1 0.9; + 6253 1 128.8 29.3 0 26.74 0 1.04318 -25.753603 220 5 1.1 0.9; + 6267 1 91.3 18.1 0 3.05 0 1.041192 -24.394509 220 5 1.1 0.9; + 6271 1 3.7 2.6 0 4.45 0 1.054472 -20.10439 220 5 1.1 0.9; + 6290 1 47.65 20.4 0 3.63 0 1.062557 -12.82926 220 5 1.1 0.9; + 6291 2 0 0 0 0 0 1.040598 -23.840293 220 5 1.1 0.9; + 6306 1 0 -0 0 2.13 0 1.077228 -24.297873 220 5 1.1 0.9; + 6308 1 0 -0 0 0.05 0 1.044666 -25.545467 220 5 1.1 0.9; + 6313 1 48.95 14.9 0 4.04 0 1.033893 -23.915745 220 5 1.1 0.9; + 6331 2 0 0 0 0 0 1.052181 -0.845895 220 5 1.1 0.9; + 6332 2 0 0 0 0 0 1.062214 -11.259336 220 5 1.1 0.9; + 6337 1 0 0 0 8.26 0 1.090736 -9.663194 380 5 1.1 0.9; + 6351 2 0 0 0 0 0 1.064446 -16.194964 220 5 1.1 0.9; + 6357 1 430.8 107.9 0 11.64 0 0.986449 -24.787083 220 5 1.1 0.9; + 6368 2 0 0 0 0 0 1.043835 -8.297319 220 5 1.1 0.9; + 6371 1 -0 -0 0 0.35 0 1.04624 -0.834636 220 5 1.1 0.9; + 6376 2 0 0 0 0 0 1.046714 -0.304027 220 5 1.1 0.9; + 6382 1 75.43 10.49 0 7.91 0 1.042008 -9.653397 220 5 1.1 0.9; + 6384 1 159.9 47.4 0 3.65 0 1.042953 -1.650086 220 5 1.1 0.9; + 6405 1 76.48 19.8 0 5.41 0 1.016603 -16.051975 220 5 1.1 0.9; + 6416 1 67.67 16.4 0 3.7 0 1.044399 -9.544276 220 5 1.1 0.9; + 6426 1 10.21 3.8 0 4.6 0 1.054991 1.525091 220 5 1.1 0.9; + 6427 1 83.19 22.9 0 28.5 0 1.00477 -13.123224 380 5 1.1 0.9; + 6429 2 0 0 0 0 0 1.039574 -18.343476 220 5 1.1 0.9; + 6430 1 0 -0 0 6.03 0 1.052192 -28.928753 220 5 1.1 0.9; + 6450 1 5.51 2.1 0 1.92 0 1.010198 -10.933937 220 5 1.1 0.9; + 6455 1 20.52 13.3 0 0.17 0 1.038267 -22.056487 220 5 1.1 0.9; + 6472 1 0 -0 0 9.93 0 1.042806 -24.004462 220 5 1.1 0.9; + 6474 2 0 0 0 0 0 1.06557 -7.808697 220 5 1.1 0.9; + 6475 1 -0 0 0 149.047157 0 1.026549 -8.701988 380 5 1.1 0.9; + 6478 1 141.2 34.8 0 2.37 0 1.012128 -14.390515 220 5 1.1 0.9; + 6486 1 31.74 17.4 0 0.89 0 1.048545 -3.989815 220 5 1.1 0.9; + 6495 1 49.66 12.3 0 2.2 0 1.043059 -21.768062 220 5 1.1 0.9; + 6510 1 88.2 26.7 0 8.91 0 1.050118 -26.338765 220 5 1.1 0.9; + 6516 2 0 0 0 0 0 1.052452 -3.60194 220 5 1.1 0.9; + 6521 1 0 0 0 2.3 0 1.046651 -4.738353 220 5 1.1 0.9; + 6532 1 120.69 18.1 0 15.46 0 1.075728 -31.435419 220 5 1.1 0.9; + 6552 2 0 0 0 0 0 1.048796 -21.140924 220 5 1.1 0.9; + 6555 1 -37.81 -21.64 0 83.362314 0 1.008884 -43.693382 380 5 1.1 0.9; + 6556 1 -0 -0 0 4.61 0 1.052054 -12.679594 220 5 1.1 0.9; + 6563 1 0 -0 0 8.94 0 1.040617 -24.64966 220 5 1.1 0.9; + 6565 1 0 -0 0 4.05 0 1.033616 -7.247992 220 5 1.1 0.9; + 6570 1 -0 0 0 32.43 0 1.045563 -20.766442 220 5 1.1 0.9; + 6581 1 153.8 23.4 0 87.73 0 1.042943 -2.447442 380 5 1.1 0.9; + 6612 1 41.14 15.25 0 3.96 0 1.047964 -31.701384 220 5 1.1 0.9; + 6616 1 -0 -0 0 3.06 0 1.044855 -15.904052 220 5 1.1 0.9; + 6619 1 -0 -0 0 10.67 0 1.050275 -15.385558 220 5 1.1 0.9; + 6624 1 -37.33 -11.88 0 145.18 0 1.058707 4.26077 380 5 1.1 0.9; + 6629 1 62.63 16.3 0 2.03 0 1.054419 -11.400101 220 5 1.1 0.9; + 6630 1 134.1 24.8 0 13.73 0 1.039511 -24.152951 220 5 1.1 0.9; + 6636 1 -0 0 0 0.31 0 1.036596 0.577218 220 5 1.1 0.9; + 6638 1 61.65 10.24 0 3.48 0 1.020424 -14.95076 220 5 1.1 0.9; + 6639 1 388.04 52.61 0 2.87 0 1.050408 -2.453064 220 5 1.1 0.9; + 6648 1 -26.03 -0.84 0 0.1 0 1.06183 -11.406171 220 5 1.1 0.9; + 6664 1 -0 0 0 10.68 0 1.06971 -46.294482 220 5 1.1 0.9; + 6675 1 37.94 7.5 0 11.89 0 1.035344 -23.290216 220 5 1.1 0.9; + 6684 1 -0 0 0 9.84 0 1.044665 -25.545459 220 5 1.1 0.9; + 6691 1 42.55 12.5 0 1.26 0 1.083988 -34.063221 220 5 1.1 0.9; + 6692 1 10.33 3.3 0 4.65 0 1.02441 -15.580999 220 5 1.1 0.9; + 6697 1 309 74.5 0 3.69 0 1.0463 -37.100468 220 5 1.1 0.9; + 6714 1 -0 -0 0 0.3 0 1.046238 -0.834605 220 5 1.1 0.9; + 6723 1 0 0 0 1.58 0 1.032514 -9.464819 220 5 1.1 0.9; + 6730 1 -0 0 0 2.18 0 1.038253 -21.079078 220 5 1.1 0.9; + 6734 2 0 0 0 0 0 1.061492 -3.472634 220 5 1.1 0.9; + 6735 1 -0 -0 0 0.4 0 1.041984 -1.292675 380 5 1.1 0.9; + 6737 1 0 -0 0 9.74 0 1.021139 -10.532887 220 5 1.1 0.9; + 6738 1 -4.91 -2.53 0 120.576812 0 1.029435 -24.781868 380 5 1.1 0.9; + 6742 1 137.4 23.9 0 7.26 0 1.037902 -21.502542 220 5 1.1 0.9; + 6744 1 244.12 95.29 0 7.55 0 1.033513 -10.221422 220 5 1.1 0.9; + 6757 1 0 0 0 6.57 0 1.040789 -1.178761 380 5 1.1 0.9; + 6763 1 0 -0 0 5.46 0 1.043751 -24.236704 220 5 1.1 0.9; + 6772 1 61.37 23.2 0 0.22 0 1.045385 -24.09701 220 5 1.1 0.9; + 6773 1 0 -0 0 2.18 0 1.041981 -24.273746 220 5 1.1 0.9; + 6785 1 0 0 0 8.9 0 1.054082 -0.784591 220 5 1.1 0.9; + 6791 1 46.35 9.1 0 18.2 0 1.04692 -25.227196 220 5 1.1 0.9; + 6802 1 -0 0 0 7.43 0 1.034691 -6.054841 220 5 1.1 0.9; + 6806 1 135.84 15.97 0 4.57 0 1.046591 -21.264934 220 5 1.1 0.9; + 6807 2 0 0 0 0 0 1.006037 -16.618507 220 5 1.1 0.9; + 6816 2 0 0 0 0 0 1.053803 -24.150678 220 5 1.1 0.9; + 6820 2 0 0 0 0 0 1.049557 -6.650937 220 5 1.1 0.9; + 6828 1 58.16 16.5 0 6.24 0 1.037156 -13.39716 220 5 1.1 0.9; + 6831 2 0 0 0 0 0 1.031347 -9.785828 220 5 1.1 0.9; + 6837 1 47.75 11 0 0.05 0 1.050311 -7.914424 220 5 1.1 0.9; + 6842 1 98 21.7 0 6 0 1.037762 -8.446373 220 5 1.1 0.9; + 6844 1 -0 -0 0 1.04 0 1.015966 -29.284947 220 5 1.1 0.9; + 6845 2 0 0 0 0 0 1.055216 -11.135397 220 5 1.1 0.9; + 6846 1 44.35 19.3 0 3.25 0 1.053078 -4.617698 220 5 1.1 0.9; + 6852 2 0 0 0 0 0 1.031296 -19.801967 220 5 1.1 0.9; + 6854 1 0 0 0 0 0 1.054902 -11.343079 220 5 1.1 0.9; + 6857 2 0 0 0 0 0 1.021411 -8.599284 380 5 1.1 0.9; + 6880 1 0 0 0 1.36 0 1.045265 -4.460667 220 5 1.1 0.9; + 6887 1 -0 -0 0 3.13 0 1.045229 -3.097099 220 5 1.1 0.9; + 6888 2 0 0 0 0 0 1.039234 -13.670722 220 5 1.1 0.9; + 6889 1 -12.49 -5.83 0 6.235224 0 1.040018 2.414551 380 5 1.1 0.9; + 6891 1 135.61 26.86 0 1.93 0 1.042154 -14.327292 220 5 1.1 0.9; + 6897 1 176.8 39.4 0 28.24 0 1.05642 -16.592196 380 5 1.1 0.9; + 6901 1 -37.84 -19.23 0 28.140258 0 1.010989 -32.14614 380 5 1.1 0.9; + 6908 1 0 0 0 3.01 0 1.037832 -40.113954 220 5 1.1 0.9; + 6909 1 122.5 8.7 0 15.85 0 1.036123 -23.128738 220 5 1.1 0.9; + 6921 1 -37.34 -13.33 0 251.529665 0 1.036075 -1.608828 380 5 1.1 0.9; + 6922 1 113.6 44.7 0 1.91 0 1.036504 -8.622098 220 5 1.1 0.9; + 6926 1 124.5 101.4 0 0.53 0 1.033188 -12.416059 220 5 1.1 0.9; + 6940 1 0 -0 0 10.46 0 1.057214 -27.586432 220 5 1.1 0.9; + 6947 2 0 0 0 0 0 1.051367 -3.749893 220 5 1.1 0.9; + 6952 1 180.9 33.2 0 29.17 0 1.074941 -25.158601 220 5 1.1 0.9; + 6954 1 18.12 10 0 1.03 0 1.033937 -20.057453 220 5 1.1 0.9; + 6961 1 56.56 18.4 0 3.29 0 1.046702 -0.041292 220 5 1.1 0.9; + 6969 2 0 0 0 0 0 1.059486 -23.158005 220 5 1.1 0.9; + 6982 2 0 0 0 0 0 1.036531 -20.798066 220 5 1.1 0.9; + 6989 1 0 0 0 1.91 0 1.046262 -24.006134 220 5 1.1 0.9; + 6990 1 -0 0 0 4.54 0 1.049424 -24.091607 220 5 1.1 0.9; + 7014 1 0 0 0 0.3 0 1.042775 -2.603788 220 5 1.1 0.9; + 7019 1 52.56 12.8 0 2.87 0 1.042599 -25.81851 220 5 1.1 0.9; + 7021 1 226.8 53.3 0 3.26 0 1.00593 -17.187001 220 5 1.1 0.9; + 7030 1 0 0 0 0.19 0 1.065574 -7.808728 220 5 1.1 0.9; + 7036 2 0 0 0 0 0 1.041241 -12.591424 220 5 1.1 0.9; + 7042 1 220.98 91 0 1.16 0 1.05498 -30.089269 220 5 1.1 0.9; + 7047 1 339.9 70.5 0 28.91 0 1.036489 -21.901119 220 5 1.1 0.9; + 7049 2 0 0 0 0 0 1.049669 -14.344403 220 5 1.1 0.9; + 7050 1 120 26 0 22.01 0 1.037777 -21.239311 220 5 1.1 0.9; + 7052 1 111 36.6 0 2.21 0 1.047794 -12.393218 220 5 1.1 0.9; + 7056 2 0 0 0 0 0 1.006597 -4.279873 380 5 1.1 0.9; + 7069 1 258.79 42.82 0 9.28 0 1.041721 -7.971411 220 5 1.1 0.9; + 7070 1 142.9 25.8 0 24.18 0 1.051529 -13.392684 220 5 1.1 0.9; + 7076 1 0 -0 0 0.36 0 1.032543 -12.400826 220 5 1.1 0.9; + 7092 1 44.65 8.8 0 20.17 0 1.048118 -25.098572 220 5 1.1 0.9; + 7098 1 0 -0 0 7.17 0 1.040402 -2.260554 220 5 1.1 0.9; + 7115 2 0 0 0 0 0 1.008722 -16.289324 220 5 1.1 0.9; + 7119 1 149.53 34.9 0 8.9 0 1.011547 -16.3375 220 5 1.1 0.9; + 7124 1 -0 0 0 16.73 0 1.071843 -27.185513 220 5 1.1 0.9; + 7129 1 33.34 5 0 0.38 0 1.03765 -2.840915 220 5 1.1 0.9; + 7132 1 222 90.5 0 0.16 0 1.017449 -15.909765 220 5 1.1 0.9; + 7133 1 102.3 19 0 1.84 0 1.034901 -14.267058 220 5 1.1 0.9; + 7144 1 8.48 -1.82 0 0.37 0 1.03015 -13.008541 220 5 1.1 0.9; + 7148 1 -0 -0 0 10.89 0 1.050811 -23.312468 220 5 1.1 0.9; + 7159 2 0 0 0 0 0 1.059575 4.500856 380 5 1.1 0.9; + 7162 1 -0 0 0 2.48 0 1.051693 -13.395189 220 5 1.1 0.9; + 7163 1 -0 0 0 2.9 0 1.04999 -24.866445 220 5 1.1 0.9; + 7164 1 -18.6 -6.72 0 152.683271 0 1.027379 -22.063848 380 5 1.1 0.9; + 7165 1 -0 -0 0 9.26 0 1.071048 -34.202221 220 5 1.1 0.9; + 7178 1 -0 -0 0 2.45 0 1.017469 -14.250696 220 5 1.1 0.9; + 7183 2 0 0 0 0 0 1.107733 -6.868685 380 5 1.3 0.7; + 7202 1 18.62 6.1 0 2 0 1.050711 -3.937783 220 5 1.1 0.9; + 7209 2 0 0 0 0 0 1.051113 -6.533675 220 5 1.1 0.9; + 7222 1 0 -0 0 5 0 1.068964 -23.827934 220 5 1.1 0.9; + 7226 1 144 31.3 0 3.18 0 1.022196 -15.530828 220 5 1.1 0.9; + 7231 1 0 0 0 0.05 0 1.039985 -11.495627 220 5 1.1 0.9; + 7253 1 7.51 3.1 0 0 0 1.048698 -2.446191 220 5 1.1 0.9; + 7256 1 392.25 92.02 0 9.45 0 1.022568 -35.394958 220 5 1.1 0.9; + 7259 1 82.39 0 0 0.15 0 1.06537 -7.876917 220 5 1.1 0.9; + 7264 1 0 -0 0 3.42 0 1.042846 -10.973594 220 5 1.1 0.9; + 7266 1 -0 -0 0 2.12 0 1.032954 -5.485507 220 5 1.1 0.9; + 7267 2 0 0 0 0 0 1.010817 -7.692119 380 5 1.1 0.9; + 7273 1 219.6 36.4 0 17.89 0 1.042886 -24.322652 220 5 1.1 0.9; + 7274 1 54.93 16.5 0 6.75 0 1.040156 -3.899721 220 5 1.1 0.9; + 7282 2 0 0 0 0 0 1.034538 -4.68119 380 5 1.1 0.9; + 7284 1 0 0 0 0 0 1.094644 -0.869931 220 5 1.1 0.9; + 7289 1 0 -0 0 26.5 0 1.054049 -6.174395 220 5 1.1 0.9; + 7309 1 0 -0 0 1.32 0 1.054902 -11.343079 220 5 1.1 0.9; + 7316 1 -0 0 0 0.09 0 1.044717 -7.284069 220 5 1.1 0.9; + 7325 1 0 0 0 0.41 0 1.052061 -12.679657 220 5 1.1 0.9; + 7327 2 0 0 0 0 0 1.043172 -18.073929 220 5 1.1 0.9; + 7328 2 0 0 0 0 0 0.999675 -14.476061 380 5 1.1 0.9; + 7338 1 0 -0 0 2.98 0 1.045891 -14.743514 220 5 1.1 0.9; + 7341 1 37.44 0 0 0.67 0 1.040136 -2.402429 220 5 1.1 0.9; + 7342 1 169 70.8 0 5.23 0 1.018398 -16.108009 220 5 1.1 0.9; + 7351 1 61.67 16.3 0 0.05 0 1.037551 -2.8443 220 5 1.1 0.9; + 7353 1 127.3 26.7 0 7.02 0 0.985936 -22.42059 220 5 1.1 0.9; + 7361 1 -0 -0 0 14.29 0 1.053815 -15.271705 220 5 1.1 0.9; + 7367 1 1.5 0.4 0 0.15 0 1.028631 -18.905659 220 5 1.1 0.9; + 7373 1 0 -0 0 1.81 0 1.071954 -23.60091 220 5 1.1 0.9; + 7377 1 0 0 0 0.63 0 1.014168 -16.130077 220 5 1.1 0.9; + 7380 1 105.67 0.56 0 18.05 0 0.992016 -14.57117 380 5 1.1 0.9; + 7396 1 -0 0 0 5.68 0 1.019741 -19.557023 220 5 1.1 0.9; + 7422 1 65.67 25.6 0 2.34 0 1.033674 -10.805957 220 5 1.1 0.9; + 7437 1 18.32 5.3 0 7.32 0 1.04383 -25.64578 220 5 1.1 0.9; + 7438 1 121.3 20.7 0 2.39 0 1.035924 -12.727575 220 5 1.1 0.9; + 7464 1 197.65 28.23 0 5.87 0 1.041056 -12.617278 220 5 1.1 0.9; + 7466 2 0 0 0 0 0 1.057257 -34.871885 220 5 1.1 0.9; + 7471 1 -18.95 -6.93 0 33.11439 0 1.020554 -6.279485 380 5 1.1 0.9; + 7473 1 113.44 71.42 0 11.08 0 1.035336 -16.025005 220 5 1.1 0.9; + 7474 2 0 0 0 0 0 1.027108 -14.200631 220 5 1.1 0.9; + 7485 1 44.35 10.8 0 8.72 0 1.042606 -25.826706 220 5 1.1 0.9; + 7491 1 0 -0 0 4.29 0 1.012242 -21.474958 220 5 1.1 0.9; + 7495 2 0 0 0 0 0 1.035256 -15.196734 220 5 1.1 0.9; + 7507 1 4 0.8 0 17.65 0 1.04914 -24.08765 220 5 1.1 0.9; + 7513 1 0 -0 0 38.549494 0 0.993009 -15.030612 380 5 1.1 0.9; + 7519 1 97.97 31.8 0 5.02 0 1.036786 -10.798224 220 5 1.1 0.9; + 7520 2 0 0 0 0 0 1.037447 -9.123264 380 5 1.1 0.9; + 7522 2 0 0 0 0 0 0.99994 -10.953994 380 5 1.1 0.9; + 7523 1 -0 0 0 2.11 0 1.052161 -0.72038 220 5 1.1 0.9; + 7530 1 0 0 0 31.242294 0 1.046869 -19.820201 380 5 1.1 0.9; + 7537 1 0 0 0 17.184121 0 0.989983 -15.6248 380 5 1.1 0.9; + 7539 1 40.85 15.7 0 2.08 0 1.053724 -12.373239 220 5 1.1 0.9; + 7541 1 346.42 89.04 0 43.55 0 1.054084 -16.465783 380 5 1.1 0.9; + 7571 1 -0 -0 0 13.9 0 1.044943 -13.985525 220 5 1.1 0.9; + 7576 1 0 0 0 0.5 0 1.04028 -12.028046 220 5 1.1 0.9; + 7577 1 0 0 0 6.69 0 1.0481 -10.467484 220 5 1.1 0.9; + 7579 1 136.9 11.4 0 3.05 0 1.048022 -26.50227 220 5 1.1 0.9; + 7580 1 0 0 0 0.17 0 1.05695 -11.9558 220 5 1.1 0.9; + 7582 1 0 -0 0 3.44 0 1.035758 -24.450751 220 5 1.1 0.9; + 7583 1 5.01 1.8 0 3.68 0 1.04744 -0.936009 220 5 1.1 0.9; + 7599 1 0 -0 0 2.13 0 1.034704 -6.055108 220 5 1.1 0.9; + 7624 1 32.74 10.5 0 1.78 0 1.01592 -20.903943 220 5 1.1 0.9; + 7626 1 78.89 45.6 0 0.04 0 1.032312 -12.417124 220 5 1.1 0.9; + 7635 1 0 0 0 1.86 0 1.050003 -7.891572 220 5 1.1 0.9; + 7640 1 68.78 35 0 34.52 0 1.033083 -6.005598 380 5 1.1 0.9; + 7641 2 0 0 0 0 0 1.051427 -6.243524 220 5 1.1 0.9; + 7647 1 -0 -0 0 0.1 0 1.063763 -20.174055 220 5 1.1 0.9; + 7653 1 33.94 11.4 0 0 0 1.0368 -22.767059 220 5 1.1 0.9; + 7663 1 37.14 2.7 0 2.33 0 1.042204 -11.956017 220 5 1.1 0.9; + 7691 1 0 -0 0 96.48 0 1.026843 -3.944271 380 5 1.1 0.9; + 7694 1 -14.96 -4.7 0 0.04 0 1.027078 -14.861465 220 5 1.1 0.9; + 7697 2 0 0 0 0 0 1.052424 -3.583012 220 5 1.1 0.9; + 7700 1 66.17 27.4 0 14.12 0 1.018432 -10.528155 220 5 1.1 0.9; + 7702 1 -0 -0 0 11.68 0 1.025153 -16.313747 220 5 1.1 0.9; + 7726 1 0 0 0 2.03 0 1.018323 -10.493485 220 5 1.1 0.9; + 7738 1 31.84 9.2 0 5.23 0 1.027755 -21.847912 220 5 1.1 0.9; + 7752 1 524.5 126 0 7.45 0 1.03043 -18.412915 220 5 1.1 0.9; + 7766 1 78.89 25.6 0 1.6 0 1.033279 -12.689648 220 5 1.1 0.9; + 7770 1 207.9 32.36 0 8.31 0 1.031073 -44.333742 220 5 1.1 0.9; + 7772 1 223.6 51.8 0 18.45 0 1.053846 -25.615931 220 5 1.1 0.9; + 7775 1 151.5 7.9 0 5 0 1.054984 -28.678026 220 5 1.1 0.9; + 7776 2 0 0 0 0 0 1.072261 6.181044 380 5 1.3 0.7; + 7778 1 153 21.5 0 28.85 0 1.057591 -16.510132 380 5 1.1 0.9; + 7791 1 -0 0 0 1.33 0 1.03015 -12.988362 220 5 1.1 0.9; + 7797 1 -0 -0 0 2.09 0 1.051084 -24.096828 220 5 1.1 0.9; + 7808 2 0 0 0 0 0 1.054562 -0.188042 380 5 1.1 0.9; + 7809 1 169.5 27.7 0 3.04 0 1.024952 -11.538551 220 5 1.1 0.9; + 7824 1 9.21 3.4 0 2.63 0 1.047756 -6.282298 220 5 1.1 0.9; + 7831 1 -17.17 -7.1 0 57.019803 0 1.011199 -11.417611 380 5 1.1 0.9; + 7840 1 -19.28 29.9 0 1.6 0 1.049049 -2.414341 220 5 1.1 0.9; + 7842 2 0 0 0 0 0 1.001912 -12.534976 380 5 1.1 0.9; + 7847 1 0 -0 0 1.55 0 1.040499 -8.878125 220 5 1.1 0.9; + 7857 1 0 0 0 2.36 0 1.050458 0.170436 220 5 1.1 0.9; + 7862 1 0 0 0 9.74 0 1.040593 -21.115869 220 5 1.1 0.9; + 7865 1 84.99 19.6 0 4.32 0 1.074298 -26.36902 220 5 1.1 0.9; + 7873 1 -20.94 -6.16 0 11.99 0 1.021235 -15.229234 220 5 1.1 0.9; + 7881 1 -0 -0 0 7.99 0 1.055617 -14.956341 220 5 1.1 0.9; + 7883 1 47.55 17.8 0 0.32 0 1.050929 -28.78941 220 5 1.1 0.9; + 7885 1 142.4 20 0 2.42 0 1.037839 -21.110646 220 5 1.1 0.9; + 7886 1 162.5 42.7 0 12.79 0 1.018149 -19.303853 220 5 1.1 0.9; + 7892 1 36.94 11 0 0.52 0 1.053815 -11.294264 220 5 1.1 0.9; + 7895 1 338.7 52.5 0 11.36 0 1.059845 -19.561088 220 5 1.1 0.9; + 7903 1 0 -0 0 7.78 0 1.072768 -41.998744 220 5 1.1 0.9; + 7905 1 347.1 87.2 0 88.35 0 1.046655 -17.893306 380 5 1.1 0.9; + 7913 2 0 0 0 0 0 1.063764 -8.906151 380 5 1.1 0.9; + 7923 1 0 -0 0 0.97 0 1.038632 -22.138858 220 5 1.1 0.9; + 7937 1 56.06 17 0 2.4 0 1.040168 -7.402075 220 5 1.1 0.9; + 7943 1 38.44 2 0 0.56 0 1.047179 -16.175311 220 5 1.1 0.9; + 7945 1 17.92 5.8 0 0.84 0 1.031087 -5.74962 220 5 1.1 0.9; + 7955 1 111.6 8.9 0 16.19 0 1.068312 -23.349161 220 5 1.1 0.9; + 7961 1 50.56 8.1 0 8.02 0 1.034289 -8.616758 220 5 1.1 0.9; + 7967 1 0 -0 0 5.97 0 1.043007 -11.416934 220 5 1.1 0.9; + 7972 1 237.9 68.5 0 5.12 0 1.035175 -19.298443 220 5 1.1 0.9; + 7974 1 234 13.1 0 51.03 0 1.033995 -20.055775 220 5 1.1 0.9; + 7982 1 112 19.7 0 38.04 0 1.036111 -23.13213 220 5 1.1 0.9; + 7988 1 -3.55 -1.43 0 11.834121 0 1.0339 -2.136803 380 5 1.1 0.9; + 7989 1 0 0 0 0.27 0 1.052062 -3.729978 220 5 1.1 0.9; + 7994 1 11.91 3.3 0 6.84 0 1.015764 -16.263273 220 5 1.1 0.9; + 7998 2 0 0 0 0 0 1.048854 4.223749 380 5 1.1 0.9; + 8005 1 -0 -0 0 16.77 0 1.027697 -13.719399 220 5 1.1 0.9; + 8030 1 -0 0 0 122.13 0 1.034376 -4.451962 380 5 1.1 0.9; + 8035 1 -0 0 0 4.22 0 1.023645 -16.359288 220 5 1.1 0.9; + 8043 2 0 0 0 0 0 1.066913 -11.239517 220 5 1.1 0.9; + 8057 1 69.18 9.5 0 3.67 0 1.045952 -8.643584 220 5 1.1 0.9; + 8060 1 0 -0 0 9.54 0 1.05168 -13.395033 220 5 1.1 0.9; + 8104 1 127.2 40.8 0 0.2 0 1.070946 -25.178857 220 5 1.1 0.9; + 8107 1 68.18 16.1 0 3.35 0 1.034732 -23.363006 220 5 1.1 0.9; + 8109 2 0 0 0 0 0 1.067387 -21.117921 380 5 1.1 0.9; + 8112 1 87.9 29.3 0 1.21 0 1.031544 -3.541639 220 5 1.1 0.9; + 8128 1 -0 0 0 8.1 0 1.090736 -9.663123 380 5 1.1 0.9; + 8151 1 0 0 0 14.23 0 1.044491 -25.577335 220 5 1.1 0.9; + 8158 2 0 0 0 0 0 1.052602 -0.559615 220 5 1.1 0.9; + 8165 1 0 -0 0 2.42 0 1.061504 -3.473077 220 5 1.1 0.9; + 8180 1 291.6 47 0 2.38 0 1.075394 -30.774767 220 5 1.1 0.9; + 8189 1 0 -0 0 9.54 0 1.042203 -18.144075 220 5 1.1 0.9; + 8190 1 0 -0 0 0.32 0 1.048784 -10.298904 220 5 1.1 0.9; + 8191 1 0 0 0 11.38 0 1.051859 -15.264149 220 5 1.1 0.9; + 8195 1 -101.01 -129.29 0 37.176703 0 1.02377 -17.045599 380 5 1.1 0.9; + 8200 1 0 -0 0 39.58 0 1.021119 -6.153606 380 5 1.1 0.9; + 8209 1 83.39 16.5 0 16.43 0 1.033486 -20.136338 220 5 1.1 0.9; + 8214 1 58.97 11.1 0 1.05 0 1.04259 -11.470366 220 5 1.1 0.9; + 8222 2 0 0 0 0 0 1.02335 -10.438616 380 5 1.1 0.9; + 8225 2 0 0 0 0 0 1.071504 -11.705551 220 5 1.1 0.9; + 8250 1 196.1 32.1 0 3.86 0 1.04037 -25.998622 220 5 1.1 0.9; + 8255 1 39.04 13.1 0 3.22 0 1.021879 -13.796655 220 5 1.1 0.9; + 8265 1 40.44 20.5 0 0.85 0 1.066641 -23.859918 220 5 1.1 0.9; + 8267 2 0 0 0 0 0 1.043326 -9.93055 380 5 1.1 0.9; + 8291 1 0 -0 0 6.52 0 1.043396 -7.697439 220 5 1.1 0.9; + 8293 1 112.7 14.5 0 1.24 0 1.048233 -24.806368 220 5 1.1 0.9; + 8294 1 14.22 6.3 0 0.38 0 1.043617 -11.857424 220 5 1.1 0.9; + 8307 1 -0 0 0 0.14 0 1.051092 -3.882875 220 5 1.1 0.9; + 8310 1 -0 0 0 2.46 0 1.049352 -8.638203 220 5 1.1 0.9; + 8311 2 0 0 0 0 0 1.035451 -15.519296 220 5 1.1 0.9; + 8312 2 0 0 0 0 0 1.07814 -12.220054 380 5 1.1 0.9; + 8316 1 0 0 0 0.72 0 1.084023 -26.486866 220 5 1.1 0.9; + 8328 1 82.39 14.4 0 13.37 0 1.041343 -24.415623 220 5 1.1 0.9; + 8331 1 -0 -0 0 0.05 0 1.047611 -12.932386 220 5 1.1 0.9; + 8334 1 263.96 -98.64 0 27.848535 0 1.034142 -14.749149 380 5 1.1 0.9; + 8347 1 -2.09 -1.43 0 48.358243 0 0.988493 -18.64268 380 5 1.1 0.9; + 8361 1 126.54 29.1 0 12.55 0 1.073653 -26.422933 220 5 1.1 0.9; + 8367 1 77.99 19.3 0 3.04 0 1.034784 -6.699666 220 5 1.1 0.9; + 8369 1 -0 -0 0 1.23 0 1.02695 -9.179276 220 5 1.1 0.9; + 8373 1 216.3 -6.9 0 2.44 0 1.071546 -48.132392 220 5 1.1 0.9; + 8397 1 -0 0 0 4.05 0 1.042817 -25.347834 220 5 1.1 0.9; + 8405 1 40.75 12.5 0 2.61 0 1.036479 -12.357404 220 5 1.1 0.9; + 8406 1 0 0 0 14.38 0 1.050892 -25.13855 220 5 1.1 0.9; + 8411 1 39.64 9.6 0 1.8 0 1.042819 -25.804727 220 5 1.1 0.9; + 8439 1 380.8 62.8 0 7.11 0 0.998187 -23.461096 220 5 1.1 0.9; + 8448 1 286.1 89.3 0 8.89 0 1.018069 -20.595036 220 5 1.1 0.9; + 8458 2 0 0 0 0 0 1.042925 -9.400848 380 5 1.1 0.9; + 8466 1 0 -0 0 1.97 0 1.045302 -4.473537 220 5 1.1 0.9; + 8467 1 216.2 75.3 0 2.74 0 0.98622 -22.981008 220 5 1.1 0.9; + 8468 1 21.42 11.8 0 28.85 0 1.005238 -14.948026 380 5 1.1 0.9; + 8473 2 0 0 0 0 0 1.039202 -8.879096 220 5 1.1 0.9; + 8475 1 -0 0 0 8.35 0 1.072229 -47.841521 220 5 1.1 0.9; + 8477 1 0 0 0 2.46 0 1.068335 -10.11476 220 5 1.1 0.9; + 8478 1 -0 0 0 3.01 0 1.04799 -8.490097 220 5 1.1 0.9; + 8485 1 149 99.8 0 9.27 0 1.039726 -7.369105 220 5 1.1 0.9; + 8486 2 0 0 0 0 0 1.04752 -19.530978 380 5 1.1 0.9; + 8487 1 44.45 7.68 0 17.83 0 1.003338 -3.846694 380 5 1.1 0.9; + 8494 1 235.97 34.52 0 7.15 0 1.08964 -9.846898 380 5 1.1 0.9; + 8497 1 38.84 14.2 0 3.5 0 1.046629 -14.553599 220 5 1.1 0.9; + 8507 1 37.44 9.1 0 7.87 0 1.074417 -26.347125 220 5 1.1 0.9; + 8511 1 93.6 -43.5 0 33.51 0 1.04106 -24.505876 220 5 1.1 0.9; + 8515 2 0 0 0 0 0 1.053872 -12.378436 220 5 1.1 0.9; + 8522 2 0 0 0 0 0 1.019671 -15.723378 220 5 1.1 0.9; + 8535 1 72.68 24.3 0 3.12 0 1.036308 -21.925576 220 5 1.1 0.9; + 8542 1 87.7 26 0 47.58 0 1.044937 -21.028222 220 5 1.1 0.9; + 8546 1 5.01 1.8 0 0.77 0 1.038205 -11.643532 220 5 1.1 0.9; + 8560 1 -0 0 0 1.11 0 0.984498 -18.190495 380 5 1.1 0.9; + 8564 2 0 0 0 0 0 1.019727 -19.556828 220 5 1.1 0.9; + 8568 1 175.7 56.2 0 0.13 0 1.027945 -6.041782 220 5 1.1 0.9; + 8578 1 0 -0 0 4.55 0 1.049043 -21.931929 220 5 1.1 0.9; + 8592 1 -0 0 0 0.43 0 1.051916 -3.764146 220 5 1.1 0.9; + 8626 1 136 36.1 0 6.07 0 0.99463 -17.562106 220 5 1.1 0.9; + 8627 1 -0 0 0 4.26 0 1.048517 -26.395781 220 5 1.1 0.9; + 8628 1 277.1 37 0 21.03 0 1.042001 -23.598682 220 5 1.1 0.9; + 8636 1 31.43 10.6 0 1.61 0 1.041292 -21.579777 220 5 1.1 0.9; + 8651 1 162.49 45.11 0 5.38 0 1.024808 -17.313776 220 5 1.1 0.9; + 8653 1 44.55 7.5 0 0.6 0 1.036488 -16.021006 220 5 1.1 0.9; + 8656 1 5.51 1.3 0 0.09 0 1.031987 -8.436898 220 5 1.1 0.9; + 8669 1 74.98 10.5 0 12.96 0 1.050943 -15.2714 220 5 1.1 0.9; + 8670 2 0 0 0 0 0 1.049066 -6.522112 220 5 1.1 0.9; + 8672 1 -0 -0 0 28.515005 0 1.023418 -20.934804 380 5 1.1 0.9; + 8676 2 0 0 0 0 0 1.018762 -21.841814 220 5 1.1 0.9; + 8677 1 0 0 0 2.29 0 1.018085 -10.22697 220 5 1.1 0.9; + 8683 2 0 0 0 0 0 1.041975 -24.273671 220 5 1.1 0.9; + 8689 1 42.65 18.2 0 0 0 1.036224 -20.697926 220 5 1.1 0.9; + 8691 1 305.04 77.16 0 17.43 0 1.047013 -33.585967 220 5 1.1 0.9; + 8704 1 180.7 71.8 0 2.46 0 1.039389 -7.999499 220 5 1.1 0.9; + 8707 1 101.9 24.3 0 8.53 0 1.032359 -11.707737 220 5 1.1 0.9; + 8711 1 0 0 0 3.9 0 1.040912 -12.07314 220 5 1.1 0.9; + 8721 2 0 0 0 0 0 1.054052 -15.864679 380 5 1.1 0.9; + 8722 1 -0 0 0 2.13 0 1.072192 -25.045427 220 5 1.1 0.9; + 8732 1 66.27 19.3 0 12.94 0 1.038041 -21.15003 220 5 1.1 0.9; + 8743 1 11.61 7.6 0 6.21 0 1.035613 -34.477305 220 5 1.1 0.9; + 8748 1 279.7 4.6 0 3.77 0 1.067084 -49.622846 220 5 1.1 0.9; + 8763 1 -233.23 29.6 0 207.55 0 1.04005 2.599263 380 5 1.1 0.9; + 8765 1 -0 -0 0 11.69 0 1.051157 -15.257422 220 5 1.1 0.9; + 8787 1 22.83 8 0 3.71 0 1.066984 -16.98525 220 5 1.1 0.9; + 8788 1 143.8 46.45 0 3.26 0 1.046176 -5.977711 220 5 1.1 0.9; + 8791 1 -0 -0 0 0.36 0 1.057978 -22.356166 220 5 1.1 0.9; + 8795 2 0 0 0 0 0 1.054157 -0.136311 220 5 1.1 0.9; + 8804 1 22.02 4.4 0 4.83 0 1.049065 -9.481469 220 5 1.1 0.9; + 8807 2 0 0 0 0 0 1.05109 -3.882868 220 5 1.1 0.9; + 8808 1 203.6 19.81 0 15.46 0 1.060353 -25.817931 220 5 1.1 0.9; + 8809 1 101.2 -2.9 0 0.51 0 1.029974 -32.515321 220 5 1.1 0.9; + 8818 2 0 0 0 0 0 1.050791 0.636035 220 5 1.1 0.9; + 8825 1 406.04 95.5 0 35.34 0 1.014963 -2.776003 380 5 1.1 0.9; + 8829 1 91.6 27.1 0 10.95 0 1.044583 -21.076938 220 5 1.1 0.9; + 8834 1 -0 0 0 1.52 0 1.003582 -22.536497 220 5 1.1 0.9; + 8835 1 113.7 22.3 0 15.55 0 1.036698 -22.906459 220 5 1.1 0.9; + 8843 1 208.7 63 0 3.45 0 1.054844 -11.164607 220 5 1.1 0.9; + 8846 1 20.82 0 0 0.17 0 1.070172 7.811263 220 5 1.1 0.9; + 8853 1 410.3 91.6 0 13.25 0 1.052314 -36.519464 220 5 1.1 0.9; + 8854 1 69.18 35.1 0 12.59 0 1.027794 -44.429467 220 5 1.1 0.9; + 8860 1 57.16 19.7 0 22.17 0 1.020431 -10.190501 220 5 1.1 0.9; + 8864 1 63.31 -9.8 0 5.36 0 1.048228 -31.670524 220 5 1.1 0.9; + 8872 2 0 0 0 0 0 1.053844 -15.88923 380 5 1.1 0.9; + 8873 1 0 -0 0 1.87 0 1.071142 -27.284425 220 5 1.1 0.9; + 8874 1 285.2 61.4 0 26.04 0 1.046146 -20.00976 220 5 1.1 0.9; + 8877 1 -0 0 0 1.03 0 1.039567 -20.646198 220 5 1.1 0.9; + 8879 1 0 0 0 1.47 0 1.036915 -22.747121 220 5 1.1 0.9; + 8886 1 0 -0 0 -1.392036 0 0.983701 -3.785162 380 5 1.1 0.9; + 8887 1 0 0 0 102.70867 0 1.045962 1.729833 380 5 1.1 0.9; + 8893 1 278.3 33.6 0 25.9 0 1.05128 -15.163258 220 5 1.1 0.9; + 8900 1 3.1 1.6 0 0.09 0 1.047741 -23.703947 220 5 1.1 0.9; + 8903 2 0 0 0 0 0 1.020268 -11.421507 380 5 1.1 0.9; + 8906 1 91 21 0 11.23 0 1.036 -23.062052 220 5 1.1 0.9; + 8913 1 -0 0 0 1.13 0 1.040075 -20.555337 220 5 1.1 0.9; + 8930 1 139.4 21.2 0 6.21 0 0.991658 -18.577239 220 5 1.1 0.9; + 8931 1 -0.56 -0 0 108.21 0 1.090352 -9.661963 380 5 1.1 0.9; + 8947 1 3.7 0.2 0 0.05 0 1.03998 -11.496674 220 5 1.1 0.9; + 8950 2 0 0 0 0 0 1.047268 -14.839334 220 5 1.1 0.9; + 8961 2 0 0 0 0 0 1.035459 -14.187287 220 5 1.1 0.9; + 8975 1 0 -0 0 11.04 0 1.04225 -24.276259 220 5 1.1 0.9; + 8976 2 0 0 0 0 0 1.046972 -17.074322 220 5 1.1 0.9; + 8980 1 63.97 12.8 0 0.17 0 1.042994 -11.072487 220 5 1.1 0.9; + 8989 1 88.5 24.5 0 2.23 0 1.043398 -25.575347 220 5 1.1 0.9; + 8992 1 -0 -0 0 14.64 0 1.051114 -3.785395 220 5 1.1 0.9; + 8997 2 0 0 0 0 0 0.997131 -13.27089 380 5 1.1 0.9; + 8999 1 41.15 10.3 0 2.41 0 1.044391 -21.558302 220 5 1.1 0.9; + 9002 1 119.02 12.54 0 23.45 0 1.021009 -10.528192 220 5 1.1 0.9; + 9011 1 88.4 25.2 0 12.9 0 1.036275 -23.026084 220 5 1.1 0.9; + 9012 1 25.63 6.5 0 0.52 0 1.048758 1.093286 220 5 1.1 0.9; + 9014 1 70.78 19.6 0 8.1 0 1.051072 -6.681904 220 5 1.1 0.9; + 9018 1 55.46 16.9 0 1.92 0 1.022715 -6.602667 220 5 1.1 0.9; + 9019 1 91.4 18.1 0 4.89 0 1.040421 -24.677298 220 5 1.1 0.9; + 9021 1 152.18 21.63 0 1.91 0 1.035437 -6.308005 220 5 1.1 0.9; + 9033 1 76.88 16.4 0 6.61 0 1.049786 -26.382004 220 5 1.1 0.9; + 9045 1 60.57 18.9 0 1.46 0 1.039905 -24.629587 220 5 1.1 0.9; + 9051 1 0 -0 0 2.15 0 1.036594 0.577238 220 5 1.1 0.9; + 9059 1 0 -0 0 2 0 1.072487 -27.192131 220 5 1.1 0.9; + 9065 1 -0 -0 0 0.59 0 1.040021 2.414524 380 5 1.1 0.9; + 9066 1 23.26 3.01 0 9.29 0 1.019989 -20.806005 220 5 1.1 0.9; + 9067 2 0 0 0 0 0 1.040924 1.549232 220 5 1.1 0.9; + 9091 1 0 0 0 3.65 0 1.038554 -9.767436 220 5 1.1 0.9; + 9101 2 0 0 0 0 0 1.02885 -21.628013 380 5 1.1 0.9; + 9108 2 0 0 0 0 0 1.046626 -16.441009 220 5 1.1 0.9; + 9109 1 0 -0 0 0.31 0 1.036596 0.577218 220 5 1.1 0.9; + 9112 1 0 -0 0 19.71 0 1.047611 -12.93238 220 5 1.1 0.9; + 9119 1 -0 0 0 1.24 0 1.04289 -20.527494 220 5 1.1 0.9; + 9128 1 50.56 8.7 0 0.19 0 1.042244 -2.676445 220 5 1.1 0.9; + 9130 1 245.51 9.17 0 24.25 0 1.049965 -30.721639 220 5 1.1 0.9; + 9131 1 -0 -0 0 6.62 0 1.051124 -24.097314 220 5 1.1 0.9; + 9137 2 0 0 0 0 0 1.049768 -26.378636 220 5 1.1 0.9; + 9140 2 0 0 0 0 0 1.049624 -5.232971 220 5 1.1 0.9; + 9150 2 0 0 0 0 0 1.037969 -13.200551 380 5 1.1 0.9; + 9155 1 -0 -0 0 5.01 0 1.02382 -20.860292 220 5 1.1 0.9; + 9158 1 54.96 9.42 0 5.92 0 1.025798 -14.56483 220 5 1.1 0.9; + 9164 1 7.71 2.4 0 6.93 0 1.001887 -19.403088 220 5 1.1 0.9; + 9173 1 66.07 15.6 0 5.57 0 1.032906 -20.202148 220 5 1.1 0.9; + 9174 2 0 0 0 0 0 1.03623 -32.377948 380 5 1.1 0.9; + 9176 1 -0 0 0 1.28 0 1.047842 -12.93497 220 5 1.1 0.9; + 9180 2 0 0 0 0 0 1.061189 -8.603491 220 5 1.1 0.9; + 9181 1 2.43 1.35 0 0.1 0 1.032498 -9.466095 220 5 1.1 0.9; + 9185 1 66.97 18.6 0 18.5 0 1.051815 -6.62338 220 5 1.1 0.9; + 9189 1 62.57 -61 0 55.14 0 1.048019 -25.022568 220 5 1.1 0.9; + 9191 1 -0 -0 0 2.34 0 1.073685 -24.80852 220 5 1.1 0.9; + 9203 1 627.36 -73.13 0 27.185221 0 1.001613 -12.605605 380 5 1.1 0.9; + 9213 1 -0 -0 0 10.210952 0 1.023742 -4.653017 380 5 1.1 0.9; + 9217 1 -0 0 0 6.33 0 1.040155 -8.875709 220 5 1.1 0.9; + 9222 1 -5.15 -2.04 0 154.446402 0 1.053345 -16.073005 380 5 1.1 0.9; + 9231 1 242.08 59.98 0 5.6 0 1.029833 -19.150137 220 5 1.1 0.9; + 9241 1 0 -0 0 0.36 0 1.049081 -9.481609 220 5 1.1 0.9; +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin +% FUBM BUSES + 10001 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10002 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10003 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10004 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10005 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + ]; + +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + 124 861.3 56.53 440.32 -172.59 1.081537 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 150 67.29 -7.99 77.09 -22.54 1.062805 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 221 -155.39 97.68 183.92 -65.3 0.984682 100 1 100 -207.18 0 0 0 0 0 0 0 0 0 0 0; + 338 83.7 2.5 55.54 -19.16 1.048249 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 352 1250.4 278.94 926.35 -297.68 1.055378 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 413 231 19.11 124.12 -49.84 1.05013 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 453 260.1 57.98 257.23 -74.4 1.018914 100 1 540 0 0 0 0 0 0 0 0 0 0 0 0; + 516 539.4 190.43 261.79 -106.67 1.075592 100 1 600 200 0 0 0 0 0 0 0 0 0 0 0; + 564 -51.67 -3.31 18.47 -19.35 1.069817 100 1 100 -68.89 0 0 0 0 0 0 0 0 0 0 0; + 583 -270 3.65 17.88 -7.03 1.045397 100 1 100 -360 0 0 0 0 0 0 0 0 0 0 0; + 615 38.2 -0.39 17.09 -7.79 1.063876 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 616 379.2 37.76 217.9 -81.16 1.048713 100 1 480 160 0 0 0 0 0 0 0 0 0 0 0; + 639 -46.2 112.55 135.52 -38.9 1.051376 100 1 100 -61.6 0 0 0 0 0 0 0 0 0 0 0; + 682 37.4 8.53 38.77 -11.06 1.0691 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 749 198.88 -11.17 105.69 -43.84 1.057884 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 757 116.7 13.66 51.3 -23.41 1.017567 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 776 -111.4 3.36 18.16 -6.73 1.026368 100 1 100 -148.53 0 0 0 0 0 0 0 0 0 0 0; + 778 16.5 -0.67 12.37 -9.36 1.049411 100 1 33.58 0 0 0 0 0 0 0 0 0 0 0 0; + 795 58.4 7.75 36.75 -13.04 1.035522 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 803 -89.2 -1.52 74.03 -25.54 1.041369 100 1 100 -118.93 0 0 0 0 0 0 0 0 0 0 0; + 823 1274.2 289.74 926.68 -298.31 1.044097 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 851 59.56 50.82 96.64 -27.81 1.00025 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 858 855.6 147.86 440.67 -172.15 1.031745 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 891 1702.8 651.53 1097.41 -373.91 1.064525 100 1 2400 800 0 0 0 0 0 0 0 0 0 0 0; + 972 1221.2 393.14 934.73 -291.52 1.072621 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1001 92.1 25.97 55.02 -19.81 1.074143 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 1002 171 10.89 89.55 -35.15 1.041506 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 1043 829.5 49 387.88 -163.4 1.028946 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 1083 91.8 9.85 54.91 -19.88 1.049472 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 1093 837 83.03 550.69 -185.15 1.027056 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 1100 58.2 5.6 36.8 -13.01 1.042801 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1102 -124.15 7.32 38.05 -11.59 1.049879 100 1 100 -165.54 0 0 0 0 0 0 0 0 0 0 0; + 1237 1504.8 364.78 906.61 -319.44 1.108028 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1251 837 77.94 550.69 -185.15 1.027102 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 1295 -124.1 4.52 36.92 -12.88 1.03682 100 1 100 -165.47 0 0 0 0 0 0 0 0 0 0 0; + 1341 67.2 29.74 57.03 -17.62 1.032899 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 1354 -246.5 13.72 38.08 -11.73 1.041045 100 1 100 -328.67 0 0 0 0 0 0 0 0 0 0 0; + 1422 -101 2.33 18.09 -6.79 1.04353 100 1 100 -134.67 0 0 0 0 0 0 0 0 0 0 0; + 1436 49.4 2.95 37.72 -12.09 1.047684 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1478 62.6 7.49 36.4 -13.44 1.048068 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1604 50.6 13.86 37.66 -12.17 1.043862 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1642 50.4 11.76 37.74 -12.11 1.028554 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1680 1250.4 274.36 928.89 -296.1 1.04395 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1708 860.8 121.94 439.37 -173.3 1.037938 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 1721 28.1 1.73 18.52 -6.39 1.062238 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 1754 40 3.62 16.99 -7.92 1.04286 100 1 41.06 0 0 0 0 0 0 0 0 0 0 0 0; + 1794 1250.4 253.94 926.35 -297.68 1.05295 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1808 -0.6 -13.17 111.23 -38.16 1.046224 100 1 100 -0.8 0 0 0 0 0 0 0 0 0 0 0; + 1851 15.6 -1.26 11.76 -8.89 1.04762 100 1 31.92 0 0 0 0 0 0 0 0 0 0 0 0; + 1852 -241.8 10.63 58.16 -16.52 1.054325 100 1 100 -322.4 0 0 0 0 0 0 0 0 0 0 0; + 1888 573.68 42.43 396.02 -155.83 1.039377 100 1 912.78 312.78 0 0 0 0 0 0 0 0 0 0 0; + 1914 115.5 -45.22 160.36 -150.95 1.035636 100 1 472.16 39.35 0 0 0 0 0 0 0 0 0 0 0; + 1959 31 0.56 18.14 -6.75 1.064692 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 2035 855.6 149.85 441.85 -171.27 1.03088 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 2050 836.2 -16.43 962.2 -263.65 1.009914 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2085 176 31.77 88.39 -36.19 1.040351 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 2177 -121.3 13.33 58.35 -16.26 1.07333 100 1 100 -161.73 0 0 0 0 0 0 0 0 0 0 0; + 2197 -53.29 -1.42 19.51 -14.74 1.035528 100 1 100 -71.05 0 0 0 0 0 0 0 0 0 0 0; + 2276 38.9 -22.64 41.67 -36.5 1.05324 100 1 119.3 0 0 0 0 0 0 0 0 0 0 0 0; + 2291 110.5 13.69 95.69 -28.93 1.072528 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 2359 78.2 7.2 34.35 -15.5 1.024884 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2421 -320.4 4.66 37.39 -12.45 1.047766 100 1 100 -427.2 0 0 0 0 0 0 0 0 0 0 0; + 2425 -100.5 5.31 54.3 -20.49 1.041186 100 1 100 -134 0 0 0 0 0 0 0 0 0 0 0; + 2426 -43.2 -30.65 105.34 -99.02 1.037687 100 1 100 -57.6 0 0 0 0 0 0 0 0 0 0 0; + 2446 1367 286.48 921.62 -304.73 1.06157 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2468 46.8 5.15 38.02 -11.81 1.048132 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2481 31.8 11.5 39.12 -10.71 1.042777 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2489 286.5 -15.8 162.4 -61.79 1.049366 100 1 360 0 0 0 0 0 0 0 0 0 0 0 0; + 2550 54.3 4.31 58.23 -16.49 1.049384 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2600 76.48 16.9 76.08 -23.59 1.038821 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 2627 1367 302.84 921.52 -304.79 1.061488 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2653 41.92 3.94 51.94 -22.8 1.036517 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2719 77.6 -15.35 70.15 -58.1 1.035384 100 1 196.72 0 0 0 0 0 0 0 0 0 0 0 0; + 2786 1221.2 372.42 934.81 -291.47 1.073795 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2797 -95.1 -11.62 88.33 -36.33 1.042226 100 1 100 -126.8 0 0 0 0 0 0 0 0 0 0 0; + 2799 66.8 -1.21 77.91 -21.66 1.05396 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 2816 1250.4 270.9 926.26 -297.74 1.053944 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2841 80.7 -3.29 55.98 -18.76 1.08248 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2842 31.6 5.75 18.19 -6.74 1.043712 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 2872 4.5 0.33 3.31 -2.54 1.063841 100 1 9.05 0 0 0 0 0 0 0 0 0 0 0 0; + 2878 8.95 -11.72 72.95 -68.71 1.057626 100 1 214.86 0 0 0 0 0 0 0 0 0 0 0 0; + 2886 60.9 10.71 57.69 -17.02 1.055151 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2902 20.9 1.11 19.19 -5.72 1.059072 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 2930 53.2 2.49 37.24 -12.54 1.047695 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2934 3.4 -0.16 2.51 -1.91 1.051149 100 1 6.83 0 0 0 0 0 0 0 0 0 0 0 0; + 2985 46.6 -69.84 184.46 -132.67 1.053607 100 1 493.35 0 0 0 0 0 0 0 0 0 0 0 0; + 3018 162.5 -4.77 89.61 -34.82 1.041705 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 3028 855.7 146.13 441.85 -171.27 1.030654 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3114 38.6 4.12 17.33 -7.61 1.071964 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 3133 85.54 0.39 113.97 -35.56 1.065372 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 3134 -136.3 -11.71 70.25 -29.33 1.023117 100 1 100 -181.73 0 0 0 0 0 0 0 0 0 0 0; + 3183 98.7 -3.57 53.7 -20.98 1.055515 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 3205 416.7 119.72 243.61 -88.46 1.041982 100 1 540 0 0 0 0 0 0 0 0 0 0 0 0; + 3218 -107.4 4.44 36.79 -13 1.028507 100 1 100 -143.2 0 0 0 0 0 0 0 0 0 0 0; + 3240 -42.3 -25.61 62.23 -51.37 1.050305 100 1 100 -56.4 0 0 0 0 0 0 0 0 0 0 0; + 3306 861.3 143.67 439.2 -173.43 1.071978 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3324 -26.48 12.72 38.13 -11.64 1.014126 100 1 100 -35.3 0 0 0 0 0 0 0 0 0 0 0; + 3346 56.8 11.49 37.1 -12.76 1.01594 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 3353 19.07 5.42 38.2 -11.61 1.045739 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 3364 44.5 -21.96 47.19 -41.44 1.0538 100 1 135.27 0 0 0 0 0 0 0 0 0 0 0 0; + 3390 2.4 12.68 54.59 -20.19 1.039984 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 3422 53.7 -3.24 58.19 -16.5 1.063657 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 3436 521 217.43 550.97 -184.89 1.060777 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 3492 -370.8 2.02 53.75 -21.08 1.04852 100 1 100 -494.4 0 0 0 0 0 0 0 0 0 0 0; + 3513 829.8 51 387.88 -163.4 1.028771 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 3565 15.88 2.27 38.83 -10.97 1.081614 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 3580 539 189.12 261.7 -107.36 1.07602 100 1 600 0 0 0 0 0 0 0 0 0 0 0 0; + 3611 -125.4 3.51 54.59 -20.12 1.03905 100 1 100 -167.2 0 0 0 0 0 0 0 0 0 0 0; + 3656 -26.2 12.26 116.07 -33.32 1.070983 100 1 100 -34.93 0 0 0 0 0 0 0 0 0 0 0; + 3661 861.2 118.75 441.04 -172.05 1.059676 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3698 -12.58 3.09 36.34 -13.47 1.041813 100 1 100 -16.78 0 0 0 0 0 0 0 0 0 0 0; + 3741 854.7 190.06 548.57 -187.16 1.031629 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 3809 257 122.15 313.01 -116.73 1.084785 100 1 700 233.33 0 0 0 0 0 0 0 0 0 0 0; + 3825 837.3 54.8 388.17 -163.4 1.026994 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 3869 855.6 148.23 440.69 -172.14 1.031907 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3876 -25.1 6.45 34.27 -15.52 1.044501 100 1 100 -33.47 0 0 0 0 0 0 0 0 0 0 0; + 3916 -21.27 11.22 38.02 -11.77 1.043758 100 1 100 -28.37 0 0 0 0 0 0 0 0 0 0 0; + 3951 -27.1 -74.05 126.16 -127.56 1.027439 100 1 100 -36.13 0 0 0 0 0 0 0 0 0 0 0; + 3971 -134.5 9.64 55.67 -19.09 1.063145 100 1 100 -179.33 0 0 0 0 0 0 0 0 0 0 0; + 4024 89.5 40.38 97.07 -27.44 1.040328 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 4056 -76.9 3.73 38.05 -11.77 1.038526 100 1 100 -102.53 0 0 0 0 0 0 0 0 0 0 0; + 4084 366.1 46.44 264.94 -103.74 1.063234 100 1 600 0 0 0 0 0 0 0 0 0 0 0 0; + 4118 41 5.09 38.37 -11.4 1.027195 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4125 59.6 16.3 36.89 -13 1.003502 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4128 67.5 24.27 57.03 -17.63 1.019761 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 4231 2641.24 771.6 Inf -Inf 1.049182 100 1 4188.95 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 4331 60.2 6.92 36.73 -13.12 1.028646 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4395 -129.1 6.73 38.48 -11.33 1.039834 100 1 100 -172.13 0 0 0 0 0 0 0 0 0 0 0; + 4419 861.3 121.55 441.04 -172.05 1.059565 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4480 861.3 143.79 439.2 -173.43 1.071852 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4482 35.2 13.53 38.85 -10.95 1.049914 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4506 -171.8 12.84 37.86 -11.95 1.036047 100 1 100 -229.07 0 0 0 0 0 0 0 0 0 0 0; + 4566 -30.39 6.81 37.94 -11.87 1.073282 100 1 100 -40.51 0 0 0 0 0 0 0 0 0 0 0; + 4624 68 8.25 35.62 -14.19 1.042135 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4661 -78.9 2.19 19.14 -5.77 1.049813 100 1 100 -105.2 0 0 0 0 0 0 0 0 0 0 0; + 4701 93.2 -41.31 98.4 -86.29 1.043063 100 1 281.85 0 0 0 0 0 0 0 0 0 0 0 0; + 4783 861.3 141.62 439.2 -173.43 1.071981 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4816 -26.08 10.07 38.37 -11.44 1.067305 100 1 100 -34.77 0 0 0 0 0 0 0 0 0 0 0; + 4819 855.6 150.1 440.69 -172.14 1.031907 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4823 10.3 1.59 4.44 -2.07 1.067114 100 1 10.46 0 0 0 0 0 0 0 0 0 0 0 0; + 4850 88.8 11.86 76.52 -23.19 1.054975 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 4880 -40.3 5.06 75.62 -23.96 1.034991 100 1 100 -53.73 0 0 0 0 0 0 0 0 0 0 0; + 4918 41.69 8.64 37.27 -12.57 1.057325 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4952 -12.57 4.47 37.23 -12.61 1.045386 100 1 100 -16.77 0 0 0 0 0 0 0 0 0 0 0; + 5004 54.3 4.85 74.73 -70.41 1.0663 100 1 220.12 0 0 0 0 0 0 0 0 0 0 0 0; + 5019 49.4 2.95 37.72 -12.09 1.047693 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5051 83.48 -1.38 74.55 -24.97 1.037373 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 5067 542 142.39 258.91 -109.58 1.021924 100 1 600 0 0 0 0 0 0 0 0 0 0 0 0; + 5110 -52.51 8.27 38.28 -11.5 1.032061 100 1 100 -70.01 0 0 0 0 0 0 0 0 0 0 0; + 5120 75.6 -5.04 56.35 -18.42 1.055539 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 5144 1713.6 139.22 882.86 -343.24 1.035201 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5237 106.8 10.9 75.02 -24.74 1.052719 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 5278 119.4 -0.06 51.3 -23.49 1.042037 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 5340 -159 11.05 36.37 -13.43 1.054941 100 1 100 -212 0 0 0 0 0 0 0 0 0 0 0; + 5365 19.59 1.13 18.14 -6.75 1.061754 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 5379 1250.6 358.22 926.47 -297.63 1.107976 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5395 -395.8 3.01 58.06 -16.66 1.048137 100 1 100 -527.73 0 0 0 0 0 0 0 0 0 0 0; + 5461 43.4 10.92 38.26 -11.55 1.06213 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5481 1368.6 146.68 920.31 -305.64 1.063711 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5482 56.8 -22.21 101.32 -48.12 1.044486 100 1 249.06 0 0 0 0 0 0 0 0 0 0 0 0; + 5486 861.3 119.59 441.04 -172.05 1.059636 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 5488 -96.4 14.63 37.49 -12.33 1.041881 100 1 100 -128.53 0 0 0 0 0 0 0 0 0 0 0; + 5490 3424.8 295.7 1765.36 -686.67 1.068845 100 1 4000 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 5533 173 14.6 88.87 -35.71 1.038212 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 5546 21.5 1.97 19.16 -5.75 1.05378 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 5564 57.6 11.81 36.8 -12.99 1.04123 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5658 229.8 77.84 103.18 -46.25 1.017689 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 5664 128 14.87 72.71 -27.05 1.070507 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 5709 837 75.6 550.69 -185.15 1.027078 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 5781 1102.83 396.26 779.29 -324.79 1.0396 100 1 1800 600 0 0 0 0 0 0 0 0 0 0 0; + 5814 181.2 41.72 196.98 -77.17 1.044051 100 1 440 146.67 0 0 0 0 0 0 0 0 0 0 0; + 5856 305.7 19.99 214.13 -85 1.038417 100 1 480 160 0 0 0 0 0 0 0 0 0 0 0; + 5881 60 7.13 36.72 -13.13 1.065605 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5940 -74.9 4.51 17.21 -7.73 1.030075 100 1 100 -99.87 0 0 0 0 0 0 0 0 0 0 0; + 5971 1221.2 370.23 934.54 -291.64 1.070056 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5983 -102.5 3.55 37.27 -12.59 1.066029 100 1 100 -136.67 0 0 0 0 0 0 0 0 0 0 0; + 5994 -87.3 -16.58 60.51 -61.08 1.029184 100 1 100 -116.4 0 0 0 0 0 0 0 0 0 0 0; + 6036 820.2 300.86 390.4 -161.16 1.043738 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 6153 94.3 -78.07 249.65 -261.82 0.988112 100 1 769.94 32.08 0 0 0 0 0 0 0 0 0 0 0; + 6168 26.3 0.4 19.86 -14.93 1.040343 100 1 53.76 0 0 0 0 0 0 0 0 0 0 0 0; + 6291 55.5 24.55 58.12 -16.6 1.040598 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 6331 48.8 5.01 37.76 -12.05 1.052181 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 6332 96 -9.58 96.56 -27.95 1.062214 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 6351 22.08 14.99 38.29 -11.56 1.064446 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 6368 -145.3 3 51.11 -23.46 1.043835 100 1 100 -193.73 0 0 0 0 0 0 0 0 0 0 0; + 6376 -27.8 -23.17 148.65 -50.73 1.046714 100 1 100 -37.07 0 0 0 0 0 0 0 0 0 0 0; + 6429 171 18.2 88.83 -35.69 1.039574 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 6474 718.5 -12.86 438.72 -174.15 1.06557 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 6516 228.2 12.73 126.73 -47.83 1.052452 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 6552 -204.2 5.93 37.58 -12.16 1.048796 100 1 100 -272.27 0 0 0 0 0 0 0 0 0 0 0; + 6734 382.7 -77.78 311.52 -132.09 1.061492 100 1 720 0 0 0 0 0 0 0 0 0 0 0 0; + 6807 44.07 31.99 77.14 -22.46 1.006037 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 6816 16.53 -8.62 77.35 -22.26 1.053803 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 6820 15.9 -0.62 11.99 -9.06 1.049557 100 1 32.53 0 0 0 0 0 0 0 0 0 0 0 0; + 6831 -57.5 4.01 35.62 -14.25 1.031347 100 1 100 -76.67 0 0 0 0 0 0 0 0 0 0 0; + 6845 102.9 17.09 53.24 -21.47 1.055216 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 6852 -344.9 1.84 18.56 -6.34 1.031296 100 1 100 -459.87 0 0 0 0 0 0 0 0 0 0 0; + 6857 2463.6 391.48 1865.83 -585.95 1.021411 100 1 4000 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 6888 133 6.97 189.31 -59.87 1.039234 100 1 300 88.67 0 0 0 0 0 0 0 0 0 0 0; + 6947 227.5 5.93 126.09 -48.29 1.051367 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 6969 39.8 -1.81 38.53 -11.27 1.059486 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 6982 -12.6 9.53 56.22 -18.44 1.036531 100 1 100 -16.8 0 0 0 0 0 0 0 0 0 0 0; + 7036 65.8 11.07 36.16 -13.72 1.041241 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 7049 55.5 16.47 58.18 -16.56 1.049669 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 7056 448.85 137.55 267.36 -100.98 1.006597 100 1 600 200 0 0 0 0 0 0 0 0 0 0 0; + 7115 65.87 13.66 95.06 -83.34 1.008722 100 1 272.28 0 0 0 0 0 0 0 0 0 0 0 0; + 7159 861.3 121.21 441.04 -172.05 1.059575 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 7183 1250.6 358.08 926.47 -297.63 1.107733 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7209 7.3 0.36 3.12 -1.46 1.051113 100 1 7.35 0 0 0 0 0 0 0 0 0 0 0 0; + 7267 -39.7 22.41 89.84 -34.84 1.010817 100 1 100 -52.93 0 0 0 0 0 0 0 0 0 0 0; + 7282 2340.4 94.47 1862.29 -588.16 1.034538 100 1 4000 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 7327 59.06 19.56 76.11 -23.62 1.043172 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 7328 53 24.18 37.45 -12.39 0.999675 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 7466 -202.53 33.59 75.85 -77.06 1.057257 100 1 100 -270.04 0 0 0 0 0 0 0 0 0 0 0; + 7474 76.5 8.44 56.27 -18.41 1.027108 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 7495 75.8 67.52 214.23 -59.77 1.035256 100 1 200 50.53 0 0 0 0 0 0 0 0 0 0 0; + 7520 702.4 277.3 350.36 -140.73 1.037447 100 1 800 266.67 0 0 0 0 0 0 0 0 0 0 0; + 7522 508 235.59 371.11 -119.67 0.99994 100 1 800 266.67 0 0 0 0 0 0 0 0 0 0 0; + 7641 769.2 22.2 378.21 -162.35 1.051427 100 1 880 200 0 0 0 0 0 0 0 0 0 0 0; + 7697 228.2 12.72 126.73 -47.83 1.052424 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 7776 1221.2 354.58 934.73 -291.52 1.072261 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7808 1250.4 279.8 926.35 -297.68 1.054562 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7842 165 23.34 90.08 -34.56 1.001912 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 7913 1368.6 146.28 920.41 -305.58 1.063764 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7998 811.8 175.43 391.57 -160.95 1.048854 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 8043 -27 4.11 75.67 -23.96 1.066913 100 1 100 -36 0 0 0 0 0 0 0 0 0 0 0; + 8109 992 864.28 Inf -Inf 1.067387 100 1 1041.6 0 0 0 0 0 0 0 0 0 0 0 0; + 8158 153 -2.71 91.67 -33.01 1.052602 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 8222 66.8 17.58 35.76 -14.05 1.02335 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 8225 17 6.35 19.49 -5.42 1.071504 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 8267 203.4 -3.04 106.84 -42.56 1.043326 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 8311 -8.75 3.43 17.8 -7.13 1.035451 100 1 100 -11.66 0 0 0 0 0 0 0 0 0 0 0; + 8312 1702.2 433.08 1096.33 -374.64 1.07814 100 1 2400 800 0 0 0 0 0 0 0 0 0 0 0; + 8458 517.1 -58.18 474.42 -138.49 1.042925 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 8473 -135 -7.13 90.21 -34.45 1.039202 100 1 100 -180 0 0 0 0 0 0 0 0 0 0 0; + 8486 78.8 9.58 34.16 -15.67 1.04752 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 8515 32.3 -18.17 93.03 -31.43 1.053872 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 8522 -75.69 1.02 3.61 -1.69 1.019671 100 1 100 -100.92 0 0 0 0 0 0 0 0 0 0 0; + 8564 -65 20.7 51.91 -22.86 1.019727 100 1 100 -86.67 0 0 0 0 0 0 0 0 0 0 0; + 8670 -138.3 10.82 37.4 -12.46 1.049066 100 1 100 -184.4 0 0 0 0 0 0 0 0 0 0 0; + 8676 -259.1 12.69 34.92 -14.96 1.018762 100 1 100 -345.47 0 0 0 0 0 0 0 0 0 0 0; + 8683 -37.28 0.32 54.32 -20.39 1.041975 100 1 100 -49.7 0 0 0 0 0 0 0 0 0 0 0; + 8721 1232.6 152.55 932.68 -293.14 1.054052 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 8795 166.2 -6.14 111.7 -37.85 1.054157 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 8807 -304 3.53 35.84 -14.07 1.05109 100 1 100 -405.33 0 0 0 0 0 0 0 0 0 0 0; + 8818 44.66 -2.57 76.87 -22.75 1.050791 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 8872 1232.6 140.05 932.68 -293.14 1.053844 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 8903 17 -1.08 28.99 -28.41 1.020268 100 1 86.73 0 0 0 0 0 0 0 0 0 0 0 0; + 8950 -255.7 7.67 38.23 -11.61 1.047268 100 1 100 -340.94 0 0 0 0 0 0 0 0 0 0 0; + 8961 -61.8 -11.18 53.52 -50.38 1.035459 100 1 100 -82.4 0 0 0 0 0 0 0 0 0 0 0; + 8976 110 15.22 95.65 -28.95 1.046972 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 8997 78.2 -5.23 107.59 -101.48 0.997131 100 1 317.09 0 0 0 0 0 0 0 0 0 0 0 0; + 9067 369.6 48.34 198.07 -76.34 1.040924 100 1 440 146.67 0 0 0 0 0 0 0 0 0 0 0; + 9101 698.8 0.54 442.99 -169.92 1.02885 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 9108 -239.23 -1.6 18.65 -14.16 1.046626 100 1 100 -318.97 0 0 0 0 0 0 0 0 0 0 0; + 9137 42.7 18.81 335.96 -93.23 1.049768 100 1 100 28.47 0 0 0 0 0 0 0 0 0 0 0; + 9140 -37.2 28.17 73.19 -26.48 1.049624 100 1 100 -49.6 0 0 0 0 0 0 0 0 0 0 0; + 9150 860.8 117.32 439.38 -173.28 1.037969 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 9174 -331.4 142.7 175 -49.16 1.03623 100 1 100 -441.87 0 0 0 0 0 0 0 0 0 0 0; + 9180 72 7.71 77.69 -21.97 1.061189 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; +]; + +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ + %Pegase System +7351 5441 0.00018 0.000781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4314 7571 0.002961 0.01669 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5803 3916 0.00056 0.00432 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6757 6036 0.0002 0.00246 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6757 6921 0.0003 0.00377 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5019 9112 0.00014 0.00057 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2930 9112 0.00013 0.000729 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1436 9112 0.00012 0.000581 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1851 9112 0.00011 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8331 9112 0.00019 0.00056 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6220 8791 0.00062 0.004909 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 7842 7.00E-05 0.00076 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 8997 0.00066 0.00622 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 2129 0.00054 0.00752 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 29 0.00105 0.00877 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +118 8903 8.00E-05 0.00091 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +118 4598 0.00056 0.00719 0 953 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 5533 0.000531 0.002039 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 4831 0.008659 0.03769 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 8961 0.003849 0.021099 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 8522 0.00688 0.035969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 6888 0.006729 0.03713 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 3401 0.00111 0.006651 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 641 0.0023 0.008909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 2600 0.000841 0.00313 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 5351 0.003521 0.017479 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3051 718 3.90E-05 0.00025 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3036 2327 0.000159 0.000729 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8651 7473 0.005281 0.032099 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8651 7473 0.005651 0.029419 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +903 3654 0.000271 0.00036 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8732 7050 0.00044 0.00143 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8732 3912 0.000159 0.00074 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2273 1973 0.00019 0.000591 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5131 2928 0.00019 0.00087 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6629 4918 0.002591 0.013659 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6629 7309 0.00305 0.01168 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +413 1102 0.000159 0.000599 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +413 1102 0.000159 0.00062 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3248 4918 0.00101 0.004229 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3248 4281 0.00319 0.018651 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3248 7309 0.000729 0.00337 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1146 1187 0.002961 0.012831 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1146 7945 0.000591 0.00339 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8900 2421 0.00024 0.001219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6071 2972 0.006219 0.036341 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6071 6031 0.001841 0.01193 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 7264 0.001409 0.01113 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 283 0.00151 0.00768 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 3069 0.00599 0.03313 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 3390 0.001771 0.010151 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4689 4936 0.00074 0.00311 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4689 4936 0.000729 0.003159 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3218 7809 0.005271 0.01906 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3218 5455 0.00906 0.053151 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3218 1857 0.00405 0.0153 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 5410 0.00055 0.003961 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 5410 0.00055 0.003729 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 1609 0.00107 0.007789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 1609 0.00112 0.00775 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 1609 0.001031 0.00775 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 2438 0.00062 0.003219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 954 0.00068 0.002659 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 502 0.00193 0.012479 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 3013 0.001159 0.007229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 2949 0.00137 0.008729 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 2949 0.001401 0.00855 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 2949 0.001331 0.008521 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 2208 0.00031 0.00081 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 8060 0.000341 0.00119 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 4484 0.00031 0.001281 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 4239 0.00094 0.0035 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8535 7047 7.00E-05 0.000651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5477 3657 0.00019 0.00124 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5477 2928 0.000331 0.002539 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3145 2918 0.0016 0.02113 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7770 5317 0.000909 0.004711 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7770 5317 0.00088 0.004969 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3 8676 0.001841 0.0088 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3 8189 0.01013 0.04238 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 2938 0.00059 0.00802 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 2938 0.00054 0.0079 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 3918 0.00171 0.02128 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 3918 0.00174 0.02084 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 6581 0.00086 0.01433 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 6581 0.00087 0.01404 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 3830 0.00126 0.01447 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 5648 0.00122 0.01509 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 5648 0.00154 0.019 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4918 4907 0.00474 0.03564 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4918 5957 0.006 0.047849 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4918 5233 0.008039 0.03375 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6854 7309 2.10E-05 0.000211 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8311 3680 0.00045 0.002341 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2770 8804 0.000669 0.004281 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9241 8804 0.00068 0.00419 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3083 7124 0.000729 0.00431 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3083 7124 0.000591 0.004651 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3083 8873 0.00099 0.005081 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1566 7582 0.00212 0.013031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1566 3541 0.002159 0.01275 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 3698 0.00025 0.00095 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 3698 0.000271 0.00089 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 2801 0.001961 0.012409 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 8328 0.00044 0.00207 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 8511 0.000469 0.00143 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 6570 0.001271 0.01406 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 6570 0.00124 0.013021 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 8975 0.000409 0.00239 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 216 0.00094 0.005 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 2961 0.000219 0.0007 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 6773 6.00E-05 0.00025 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 5278 5.00E-05 0.000229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3768 2751 0.00019 0.000909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2276 5546 0.001711 0.00782 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2276 6816 0.002651 0.01176 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7766 444 0.001409 0.010599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7766 5334 0.001419 0.010219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 3918 0.00013 0.00212 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 809 0.00026 0.00313 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4506 2286 0.0047 0.0318 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4506 6802 0.00136 0.00768 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4506 3520 0.005669 0.027789 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 6271 0.004409 0.033091 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 1435 0.01056 0.044469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 7148 0.01963 0.07736 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 7437 0.01157 0.04694 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6104 871 0.000479 0.00255 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7580 871 0.000469 0.00236 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1188 1539 0.01237 0.067039 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1188 8515 0.0132 0.056229 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3971 4084 0.00026 0.001711 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3971 4084 0.000271 0.001669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6845 5340 0.000211 0.000401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8294 5814 0.00105 0.005159 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7115 6807 0.00212 0.00931 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +619 6791 0.000151 0.00068 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5418 4908 0.00019 0.00082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5120 6816 0.003219 0.01405 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6692 9158 0.007271 0.033159 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6692 8035 0.006659 0.03132 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 2848 0.00057 0.00668 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 7056 0.00057 0.00758 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 7056 0.00039 0.00607 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 1642 0.00155 0.0179 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 4594 0.00036 0.00485 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 1692 0.000581 0.004229 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 8190 0.00056 0.00431 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 5836 0.003099 0.020531 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 3191 0.00118 0.016919 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 5300 0.00188 0.01407 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 4889 0.00545 0.04082 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7264 444 0.00214 0.01639 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7264 4747 0.002479 0.01549 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 9011 0.000159 0.001229 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 6675 0.00026 0.00162 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 6909 0.000159 0.00113 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 8835 0.000461 0.003219 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 4186 0.000159 0.001229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1604 502 0.000229 0.00139 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2842 502 0.0002 0.00156 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1354 513 0.00145 0.00824 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1354 502 0.00069 0.005 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +891 3697 0.00036 0.00455 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +891 3697 0.00036 0.00453 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8312 7541 0.00066 0.00997 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8312 7541 0.00064 0.01016 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6306 4826 9.90E-05 0.00044 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 4418 6.00E-05 0.000469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 1605 3.90E-05 0.000341 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 6952 0.002531 0.01943 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 7124 0.00945 0.06418 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9128 217 0.000591 0.002831 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7014 217 0.00087 0.00387 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 5350 0.0015 0.01785 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 5350 0.00147 0.0182 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 639 0.00151 0.0113 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 639 0.001479 0.011521 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 9130 0.00174 0.010341 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 9130 0.001659 0.01206 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8209 1998 0.00069 0.000479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8209 7974 0.00044 0.00139 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 8180 0.002039 0.01601 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 7466 0.01349 0.05662 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 305 0.00082 0.00438 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 305 0.0008 0.004461 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 5106 0.001091 0.00888 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 5106 0.00111 0.007039 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2527 8466 0.000849 0.00537 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8669 8893 0.00061 0.00275 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 7691 0.00141 0.0188 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 6624 0.00121 0.01427 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 8158 0.001711 0.007159 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 8795 0.00545 0.02381 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 4143 0.000771 0.004331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 2797 0.00414 0.03282 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 6331 0.00264 0.011521 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 6384 0.00261 0.011 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 7523 0.00239 0.00919 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 2889 0.000539 0.00226 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 6887 0.00325 0.017979 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1249 4541 0.00076 0.0071 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +819 7523 0.000651 0.00343 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2304 4353 0.001219 0.00812 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2304 4816 0.00243 0.01439 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 6246 0.0006 0.00839 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 6246 0.00059 0.00856 0 1085 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 5658 0.00087 0.01328 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 5658 0.00073 0.01595 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2924 3645 0.00163 0.002039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2924 3645 0.001659 0.002 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +59 5764 0.00339 0.019669 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +59 2360 0.00239 0.017281 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6510 9033 0.00032 0.00112 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6510 5918 0.0018 0.01401 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6510 5918 0.00212 0.012469 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1275 2850 0.00063 0.00411 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6426 4110 0.009729 0.03505 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6426 3558 0.01007 0.03056 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 2816 0.00042 0.00623 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 352 0.00036 0.00722 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 6581 0.00053 0.0078 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 1923 0.00109 0.0173 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 5837 0.00071 0.01144 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 3830 0.00157 0.01884 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 3577 0.00032 0.00384 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 1794 0.00041 0.00649 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 7808 0.0004 0.00658 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 6581 0.00054 0.00763 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 1923 0.00107 0.01602 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 5837 0.0007 0.01165 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 5648 0.0016 0.01844 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 3577 0.00032 0.00376 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4615 171 0.00212 0.01207 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3137 2341 5.00E-05 0.00037 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6271 8787 0.00355 0.024651 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6252 9137 0.00675 0.04145 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5533 7133 0.00195 0.014341 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8361 4355 0.00018 0.00043 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8361 2928 0.00037 0.000969 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 1341 0.00257 0.017169 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 5419 0.00076 0.00399 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 5419 0.00075 0.00406 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 2079 0.003901 0.023961 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 772 0.00249 0.019211 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3654 2928 0.00025 0.001159 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 7282 0.00195 0.02924 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 2197 0.00152 0.01527 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 7640 0.00149 0.01558 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 1081 0.00253 0.0276 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 1081 0.00263 0.02648 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 2359 0.00077 0.0092 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 4196 0.00112 0.01705 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 8546 0.00226 0.01101 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 5987 0.004531 0.029039 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 8005 0.002081 0.030409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 3925 0.0053 0.03257 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 3324 0.00513 0.041901 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 4748 0.001461 0.01056 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8265 4816 0.0005 0.002591 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6151 6313 0.00055 0.0033 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4005 6532 0.002289 0.01763 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4005 2177 0.0075 0.043531 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5723 2079 0.00138 0.019961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5723 789 0.00126 0.018729 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2327 9189 0.00038 0.001331 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2327 3400 0.00019 0.001461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +207 4747 0.002151 0.013401 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +207 7791 0.000789 0.005669 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 6735 3.00E-05 0.00042 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 666 0.00079 0.00899 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 666 0.0008 0.00879 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 4435 0.00334 0.03393 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 1644 0.00063 0.00789 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 3483 0.0006 0.00842 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 7989 0.00011 0.00125 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 6516 0.00012 0.001091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 7697 9.90E-05 0.00125 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 416 0.00294 0.02443 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2847 0.00144 0.011151 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2563 0.001831 0.010849 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2563 0.001599 0.01055 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2995 0.00144 0.019591 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5691 1001 0.0133 0.09551 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5691 4426 0.009591 0.073961 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2721 0.0007 0.00671 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2721 0.00072 0.00658 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2361 4936 0.001901 0.00964 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2361 5179 0.001711 0.01189 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2044 4748 0.00025 0.00187 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4197 5522 0.00043 0.002211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5699 8670 0.000401 0.00243 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7809 5110 0.00336 0.017 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7222 4816 0.005521 0.031031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4402 3817 9.90E-05 0.00026 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 2732 0.00045 0.00718 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 4550 0.00044 0.00665 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 4339 0.00103 0.01516 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 7513 0.00101 0.01546 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 26 0.00045 0.00608 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 9213 0.0004 0.00501 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 9002 0.001729 0.01337 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 6231 0.00264 0.01489 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 883 0.002341 0.018961 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 5738 0.001841 0.01363 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 7700 0.001219 0.00949 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 9002 0.002271 0.01151 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 5990 0.010781 0.05775 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 6450 0.00251 0.013919 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 7726 0.00101 0.007331 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2489 4110 0.00061 0.003909 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 6376 0.004289 0.019331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 4110 0.0008 0.004401 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 4829 0.008099 0.03519 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 7857 0.00063 0.004591 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2806 7857 0.000651 0.00456 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2489 9012 0.00114 0.00581 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2489 2231 0.001211 0.00538 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +658 3793 0.00418 0.030159 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +658 8497 0.00324 0.02413 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +658 8497 0.003169 0.024591 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3502 9002 0.000219 0.00088 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3502 9002 0.000289 0.00095 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6313 44 0.0035 0.022211 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6313 7582 0.00313 0.02256 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5944 8808 0.000831 0.00162 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3183 8515 0.002099 0.01068 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1005 8515 0.00224 0.00976 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8787 1448 0.00169 0.01231 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6636 9051 0.00011 0.00076 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9109 9051 0.00011 0.00068 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6961 6376 0.005479 0.021909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6961 8818 0.003331 0.017039 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5077 4353 0.000479 0.001271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 5241 0.00109 0.01629 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 8200 4.00E-05 0.00063 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 6290 0.0053 0.024531 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 2291 0.004659 0.021919 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 3656 0.001659 0.01043 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5002 4144 0.006961 0.053539 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1888 5441 0.00036 0.00288 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1888 5441 0.00038 0.003 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 4970 0.00048 0.00643 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 4970 0.00051 0.0066 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 4970 0.00046 0.00729 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 5461 0.0006 0.00868 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 7778 0.00068 0.01076 0 1842 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 6897 0.00066 0.01096 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3075 4562 0.00101 0.005099 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +564 8475 0.003901 0.02437 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +564 2252 0.00276 0.016461 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +564 7903 0.00588 0.047081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4331 1857 3.90E-05 0.000219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2877 3674 0.00131 0.00538 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2854 1081 0.00679 0.04679 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2854 8267 0.00138 0.01466 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 9176 0.003531 0.01724 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1422 0.01324 0.06936 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 8515 0.00363 0.01743 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 8515 0.00257 0.01662 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 5051 0.01399 0.056289 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1051 0.00343 0.01751 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1397 0.00301 0.015409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1584 0.00857 0.033091 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6168 6888 0.003341 0.01689 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7653 3019 3.90E-05 0.000219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7341 7098 0.00087 0.00714 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4701 8267 0.00011 0.001 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1672 5365 0.000219 0.00101 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3880 5365 0.000219 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6648 5365 0.000271 0.00101 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3609 5365 0.000271 0.000979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2782 5365 0.000289 0.00107 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1844 5365 0.000289 0.00105 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4353 6053 0.001591 0.012289 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2166 5237 0.000271 0.001901 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2166 2886 0.00186 0.010711 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1043 3513 1.00E-05 0.0002 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4049 883 0.000169 0.000271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4520 883 0.000169 0.00031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1704 5814 0.00526 0.03787 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8107 1486 0.000229 0.000599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5664 5522 0.00089 0.004091 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4482 8670 0.00093 0.004 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8795 7523 0.00289 0.013099 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2337 6430 0.002599 0.016479 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 7775 0.00369 0.02712 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 3857 0.0062 0.04864 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 333 0.008021 0.059031 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 6940 0.004979 0.0295 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8225 3656 0.001159 0.005281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5413 7752 0.00361 0.01824 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5413 1940 0.001521 0.01075 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5413 4234 0.00868 0.041711 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 6828 0.01118 0.05986 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7571 0.003229 0.02543 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7571 0.00218 0.01869 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7571 0.001901 0.021909 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7994 0.00974 0.043969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7226 0.003461 0.01814 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 1554 0.00487 0.027669 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9011 1156 0.000651 0.003961 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8689 5502 0.00169 0.00887 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3085 8873 0.001711 0.01336 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1568 980 0.00031 0.000539 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3204 3331 0.0027 0.01157 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3557 639 0.000909 0.006901 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3557 4936 0.001729 0.01214 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +416 3492 0.00614 0.03106 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +416 7937 0.00418 0.02388 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3255 1262 0.00238 0.017771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3255 1803 8.10E-05 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7373 367 0.001599 0.01618 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4251 2132 0.00532 0.026961 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4251 2132 0.00361 0.02814 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4251 5567 0.002469 0.01025 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6376 1808 0.005229 0.02675 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6376 1808 0.00512 0.02726 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6376 7857 0.00355 0.01694 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9185 7289 0.00139 0.007659 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9185 3999 0.000169 0.000669 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8653 2303 0.00111 0.00712 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +908 6474 0.00031 0.001901 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7030 6474 0.000281 0.002091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4205 6556 0.000281 0.001651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7325 6556 0.000271 0.00169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5857 3391 0.001521 0.00843 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5857 3760 0.000841 0.0062 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3707 8765 0.00019 0.00126 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +900 6619 0.000219 0.00143 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 8109 0.00121 0.01796 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 8109 0.0014 0.01512 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 2177 0.008409 0.063651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 5317 0.00918 0.07344 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 608 0.004219 0.0345 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 608 0.0042 0.031651 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4494 8763 0.00121 0.01381 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4494 7056 0.00107 0.01326 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6828 5814 0.003401 0.02607 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3670 21 0.000289 0.00138 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5137 7702 0.001031 0.006039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1334 7702 0.00105 0.005909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 7624 0.001091 0.007901 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 1129 0.00332 0.024021 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 3070 0.00344 0.021419 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 306 0.00095 0.010419 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 306 0.00093 0.01062 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 7491 0.00474 0.025409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4685 2089 0.000271 0.000841 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7485 6253 0.000271 0.00119 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7485 1562 0.000289 0.00076 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7776 1644 0.00031 0.00454 0 1842 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5971 3483 0.00032 0.0044 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2786 1644 0.00028 0.00494 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +972 3483 0.00028 0.00508 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8906 923 0.000531 0.00093 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8906 4914 0.0003 0.001031 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2656 9101 0.00139 0.02163 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2656 7164 0.00164 0.02321 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3519 9101 0.00136 0.02205 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3519 7164 0.0016 0.02367 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1775 9137 0.002091 0.01174 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1775 9137 0.001719 0.00961 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5641 1026 0.012341 0.076781 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5641 9137 0.00176 0.009419 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1096 2889 0.00031 0.00182 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7380 2732 0.00386 0.02348 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7380 4787 0.00017 0.00104 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 5308 0.00061 0.00808 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 3830 0.00059 0.0067 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 1027 0.00059 0.00748 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 5648 0.00061 0.0063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +367 1172 0.001031 0.008789 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +367 9191 0.00051 0.006169 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +367 8722 0.0005 0.00619 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 3610 0.00049 0.00376 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 3610 0.000539 0.003229 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 3962 0.001031 0.00882 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 1838 0.000711 0.00463 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 2230 0.000711 0.004539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5388 2467 0.00206 0.015341 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5388 2467 0.002021 0.01564 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6110 8853 0.00094 0.005781 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6110 1001 0.002219 0.016969 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7583 1808 0.00238 0.01187 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7583 2889 0.00707 0.03095 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 6624 0.00256 0.03401 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 2479 0.00203 0.02416 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 4598 0.001 0.01459 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 4231 0.00103 0.00987 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 5144 0.00038 0.00483 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 5144 0.00041 0.00398 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 2479 0.00167 0.01721 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 2129 0.00098 0.01487 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 9213 0.00042 0.00342 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 9213 0.00019 0.00248 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 4231 0.00105 0.00966 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 3513 0.00043 0.00473 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 3513 0.00041 0.00397 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1876 3906 0.00051 0.00514 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +113 3906 0.00053 0.00503 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7752 3758 0.00455 0.022771 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7752 3758 0.00557 0.02055 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7752 3758 0.00339 0.02026 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4952 8976 0.00237 0.01068 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4952 8189 0.0037 0.019479 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6119 7886 0.01407 0.056849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6119 4544 0.001669 0.015409 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6119 4544 0.001711 0.015091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 3697 0.00172 0.01619 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 7541 0.00029 0.00447 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 7541 0.00033 0.00387 0 1019 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 4141 0.00079 0.01154 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 4141 0.00077 0.01177 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 3022 0.00127 0.01498 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1768 163 0.00214 0.012599 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4245 2425 0.000159 0.00125 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3698 5297 0.000211 0.000669 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +750 8328 0.000341 0.001169 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +750 870 0.00024 0.001469 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +750 2961 0.00018 0.000669 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7988 0.00033 0.00683 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 2197 0.00121 0.01211 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7640 0.00123 0.01185 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 4231 0.00058 0.0097 0 1085 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 5144 0.00103 0.01292 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 3513 0.00116 0.01266 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7289 3999 0.0013 0.006841 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3018 1051 6.00E-05 0.000349 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2702 3435 0.000169 0.0007 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9131 2020 0.000169 0.000719 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6308 6684 0.000271 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4831 3680 0.008271 0.036841 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5410 2751 0.002969 0.02299 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 4623 0.00124 0.01273 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 4339 0.00106 0.00989 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 5288 7.00E-05 0.00029 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 5421 9.00E-05 0.00079 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 6475 0.00196 0.02049 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 8468 0.00158 0.01519 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 2732 0.00172 0.01811 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 7513 0.00096 0.01121 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 6475 0.00147 0.01707 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 4623 0.00129 0.0129 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 4550 0.00179 0.01737 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 6475 0.00131 0.01935 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 9231 0.003901 0.01614 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 9231 0.002591 0.014771 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 9231 0.00224 0.0173 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 4054 0.00012 0.000849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 3481 0.00394 0.03039 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 3602 0.00189 0.01 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 2794 0.00032 0.00257 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 2794 0.00038 0.00224 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 8467 0.00751 0.03955 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 1136 0.00086 0.006531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 22 0.00087 0.006591 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 1001 0.003031 0.02276 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 4950 0.006331 0.03911 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 4410 0.00605 0.02986 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 6697 0.003919 0.01612 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 1159 0.002039 0.0108 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 7165 0.006289 0.026271 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 2848 0.00042 0.00547 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 2848 0.00043 0.00536 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 7522 0.00147 0.01373 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 7522 0.00131 0.01555 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 1642 0.00221 0.02217 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 809 0.00224 0.0217 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 6791 0.00095 0.003289 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 3400 0.000229 0.00082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7092 0.00068 0.00306 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 3718 0.00049 0.00256 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 3701 0.000531 0.0022 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7507 0.00136 0.00956 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7507 0.0012 0.010729 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7507 0.00105 0.00861 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 2406 0.000591 0.006969 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2801 8511 0.00025 0.0008 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2801 216 0.00113 0.00632 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +453 2129 0.0003 0.00275 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 6952 0.00836 0.051659 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 6952 0.01338 0.073469 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 1183 0.0027 0.02089 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 4410 0.003419 0.02636 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 8743 0.009531 0.033711 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2446 8763 0.0004 0.00707 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2627 8763 0.00035 0.00701 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4951 6785 0.00194 0.01751 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4951 6785 0.00156 0.01936 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 964 0.00078 0.00941 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 964 0.00074 0.00969 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 8347 0.00042 0.00532 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 8347 0.0004 0.00473 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 8347 0.0006 0.00499 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1609 6552 0.00086 0.00638 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1609 6552 0.000969 0.00625 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1609 8999 0.002781 0.01725 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4368 4816 0.005031 0.028081 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5481 960 1.00E-05 0.00021 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7913 960 1.00E-05 0.00025 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +506 960 2.00E-05 0.00031 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2980 960 3.00E-05 0.0004 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4554 6382 0.000841 0.00474 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4554 6382 0.00082 0.00487 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6844 1595 0.00186 0.011979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3672 5334 0.00056 0.003021 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6219 5334 0.00055 0.003081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8997 6153 0.00114 0.01063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1852 5935 0.003719 0.02295 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1852 5695 0.006669 0.04288 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2931 5799 0.00243 0.0198 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2931 7124 0.00845 0.04339 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2598 3674 0.00219 0.015169 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2598 2132 0.00357 0.0302 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2558 7571 0.005849 0.032419 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8834 1129 0.00406 0.01688 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7377 3324 0.00113 0.0065 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1265 4426 0.0068 0.04613 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1265 1965 0.00337 0.02011 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8060 7162 0.00011 0.0005 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6922 5482 0.003711 0.018521 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6922 1295 0.000271 0.00145 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8369 4710 0.00326 0.01824 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8961 7133 0.00118 0.00712 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8961 6888 0.00482 0.02232 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4185 7019 0.00013 0.000469 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4185 6253 0.000229 0.00075 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 3391 0.004591 0.035021 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 1448 0.005469 0.03924 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 1448 0.00536 0.0403 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 115 0.00424 0.033031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 4306 2.00E-05 0.00024 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1763 1.00E-05 0.00021 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3697 0.00286 0.03653 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3794 0.00117 0.01183 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3613 0.00103 0.01336 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1502 0.00156 0.01969 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 6555 0.00449 0.05772 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3608 0.00259 0.03469 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 4134 0.000219 0.00118 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 1979 6.00E-05 0.00095 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 516 6.00E-05 0.000651 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 3580 8.10E-05 0.000841 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 3809 0.00274 0.020831 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 5616 0.004781 0.027729 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 5616 0.002849 0.02093 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 6697 0.00513 0.03014 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 7165 0.00113 0.00651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 892 0.00125 0.00707 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7438 5334 0.003349 0.01463 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7438 1526 0.00245 0.0122 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6952 0.00587 0.036521 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6952 0.00569 0.03774 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6952 0.006031 0.03545 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 7883 0.000531 0.00301 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6430 0.00076 0.006099 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 7209 0.008841 0.028919 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 1910 0.00169 0.007091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 6820 0.001031 0.00361 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 3071 0.00813 0.030961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5297 6267 0.00013 0.00068 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 3855 0.000211 0.000729 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 3855 0.000169 0.000669 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 2928 0.000669 0.00251 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 2928 0.000711 0.00238 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 1172 0.000229 0.00238 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 9191 0.0007 0.0065 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 8722 0.00061 0.006031 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6472 5362 0.000281 0.0018 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6472 3962 0.000211 0.002409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 1343 0.00056 0.00773 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 29 0.0023 0.01581 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7473 3680 0.005039 0.032151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7473 96 0.00364 0.01713 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7473 1868 0.002169 0.012409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +346 3184 0.00113 0.004719 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +346 6570 0.00113 0.004979 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3184 4728 0.00264 0.01174 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2654 7886 0.00494 0.03181 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2654 2132 0.003711 0.023961 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 8874 0.001409 0.01101 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 1625 0.001169 0.00593 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 1625 0.00118 0.00587 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 3786 0.00264 0.012469 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 3786 0.002349 0.01414 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3422 4100 0.00014 0.0007 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 4419 3.00E-05 0.00054 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 7159 3.00E-05 0.00055 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 3661 4.00E-05 0.00058 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 5486 4.00E-05 0.00054 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 4231 0.00171 0.02197 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 4231 0.00164 0.02064 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 6921 0.00136 0.01756 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 432 0.00097 0.00942 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 432 0.00086 0.01109 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 432 0.00085 0.0113 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3353 6887 0.000979 0.0058 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 2050 0.00052 0.00593 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 2050 0.00046 0.00672 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 8704 0.001151 0.00636 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 8704 0.001031 0.007211 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 4710 0.002341 0.02286 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 1295 0.002281 0.02518 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 1910 0.005479 0.02114 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 2985 0.011159 0.08856 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 5853 0.000669 0.00249 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 7824 0.00193 0.01643 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 3071 0.00024 0.0017 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4525 195 0.010159 0.065849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9066 7367 0.00294 0.02131 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9066 9155 0.018841 0.07469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9066 6357 0.015599 0.052169 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7886 3126 0.005831 0.03969 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7886 8564 0.00087 0.00661 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7886 5567 0.00637 0.024659 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 3069 0.0027 0.020419 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 3876 0.000409 0.00314 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 8804 0.001669 0.01301 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 8804 0.00164 0.01325 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 4550 0.00089 0.00556 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 4125 0.00186 0.01809 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 3346 0.00381 0.02853 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 2377 0.012419 0.072151 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 1401 0.0042 0.02556 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 2850 0.010771 0.0493 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 2430 0.010159 0.04995 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 9164 0.013169 0.05113 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8511 1033 0.000469 0.001159 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8511 6178 0.000229 0.00105 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3400 980 0.000271 0.001271 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2101 4598 0.00099 0.01194 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2101 4541 0.00077 0.01184 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2101 5144 0.00034 0.00426 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3919 2129 0.00101 0.01168 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3919 4541 0.00086 0.01046 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3919 3513 0.00035 0.00417 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6675 1486 0.000159 0.00069 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 5836 0.000781 0.00488 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 575 0.000781 0.00511 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 8214 0.00064 0.003539 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 8214 0.00057 0.003781 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 3021 0.000531 0.00111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 7967 0.000521 0.00113 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 5993 0.00176 0.00843 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 8804 0.002461 0.01975 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4513 6831 0.000591 0.00105 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2043 1422 0.00012 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6714 1808 0.000581 0.004419 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6371 1808 0.000651 0.004331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +513 2866 0.001289 0.008289 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 9222 0.00233 0.03502 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 9222 0.00238 0.03781 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 2072 0.00052 0.00605 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 5461 0.00023 0.00275 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 8109 0.00134 0.01343 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 8109 0.00116 0.01552 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 707 0.004169 0.027919 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 4816 0.00063 0.008 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 1866 0.004841 0.028581 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 5488 0.007419 0.05787 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5093 2467 0.002719 0.020331 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2328 7178 0.000789 0.005 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9180 195 0.00238 0.013219 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9180 3133 0.003771 0.02701 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +292 4544 0.001271 0.00939 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9002 6737 0.000841 0.00131 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8439 3758 0.005711 0.043039 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8439 3758 0.00562 0.041901 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4974 2940 0.00356 0.019781 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4974 163 0.004841 0.03149 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +747 8507 0.00057 0.00107 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6909 4914 0.000539 0.00213 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +444 4747 0.0007 0.00425 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1459 6495 0.0012 0.009531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1459 2751 0.00206 0.015901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3601 4728 0.00063 0.00312 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1251 6475 3.00E-05 0.00041 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1093 6475 2.00E-05 0.00043 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5709 6475 3.00E-05 0.00039 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3825 6475 3.00E-05 0.00038 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1415 3503 0.0008 0.004151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4549 3503 0.000901 0.00381 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3072 639 0.000591 0.004341 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3072 639 0.000591 0.00405 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5007 4541 0.00218 0.0275 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5007 8195 0.00184 0.01677 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 964 0.00058 0.00807 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 964 0.00056 0.00823 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 3906 0.00123 0.01146 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 3906 0.0011 0.01298 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 8347 0.00156 0.01585 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 2919 0.00226 0.02781 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3758 188 0.00614 0.02831 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3758 2242 0.00513 0.03401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3903 4114 0.013219 0.0597 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5743 6990 0.012969 0.06087 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8626 8930 0.00437 0.032831 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8626 2467 0.005651 0.033229 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2161 5488 0.008969 0.03625 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2161 7772 0.012409 0.05645 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5003 6382 0.00038 0.002271 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 4084 0.00138 0.01089 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 4084 0.001539 0.012521 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 53 0.00205 0.014229 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 7259 0.00026 0.00164 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 2475 0.000289 0.00169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5334 7577 0.003349 0.051211 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7961 2288 0.00038 0.001479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1592 7098 0.00082 0.00625 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3187 2079 0.00275 0.015581 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6041 5926 0.000909 0.00739 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 8486 0.00082 0.01038 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 7530 0.00093 0.01017 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 1502 0.00137 0.01431 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 1552 0.00215 0.02021 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6952 3793 0.01189 0.058841 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2526 0.00104 0.01241 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2526 0.00092 0.014 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2365 0.00055 0.00845 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2365 0.00054 0.00861 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 3794 0.00105 0.01057 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 3613 0.00089 0.01122 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 6901 0.00223 0.02584 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8180 5106 0.00101 0.007841 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8180 5106 0.001081 0.008099 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6240 7165 0.011081 0.068479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 8721 2.00E-05 0.00033 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 8872 1.00E-05 0.00029 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 8672 0.00071 0.00892 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 7164 0.00136 0.01526 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5935 7772 0.005401 0.036021 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3134 3430 0.00437 0.033719 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3134 1051 0.005151 0.034919 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +283 800 0.00038 0.00139 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +283 1077 0.00037 0.0015 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +283 4747 0.00069 0.004461 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3391 5213 0.00688 0.040591 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3391 115 0.001341 0.008349 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3391 115 0.001229 0.009669 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4867 5753 0.00137 0.006039 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7539 6556 0.001919 0.01261 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7539 871 0.00163 0.0095 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 8874 0.00488 0.0497 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 4505 0.001289 0.0087 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 3436 0.00211 0.01524 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 3436 0.00206 0.015539 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 3436 0.00276 0.01631 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 6556 0.00305 0.019521 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 8765 0.000409 0.0023 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 6619 0.00036 0.00268 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8165 6734 0.00032 0.00049 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1078 6734 0.00013 0.000349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7988 4231 0.0002 0.00327 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 2142 0.000919 0.00561 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 2142 0.00094 0.00549 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 7519 0.00175 0.01976 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 6744 0.001729 0.019331 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2286 6802 0.00406 0.02581 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2286 769 0.00526 0.025961 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 1081 0.00179 0.02098 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 5983 0.00162 0.02148 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 8267 0.00492 0.04991 0 953 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 960 0.00109 0.01361 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 960 0.00097 0.0153 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 3906 0.00322 0.03022 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 7361 0.032831 0.074151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 6852 0.01411 0.058711 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 8515 0.02725 0.102979 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 3166 0.012229 0.04049 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 2676 0.01994 0.066719 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 3793 0.018591 0.07462 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 4529 0.008979 0.03251 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 4234 0.016531 0.086031 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 44 0.003591 0.02137 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 6630 0.00124 0.008 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 6630 0.001271 0.007831 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 1545 0.000469 0.00294 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 4215 0.000841 0.003289 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7163 1917 0.00219 0.016539 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7163 5519 0.002901 0.020901 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7647 225 0.0002 0.001211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4864 1397 9.10E-05 0.000479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7021 7119 0.005461 0.029469 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7021 3324 0.001979 0.011289 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1248 163 0.0023 0.01289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9045 2457 0.000159 0.00037 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8874 3786 0.002789 0.01562 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5891 5574 0.002531 0.012331 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5891 7663 0.00357 0.023289 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5891 4889 0.00076 0.006039 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3997 1526 0.000469 0.00075 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +184 1526 0.00044 0.00069 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2972 2088 0.00561 0.035521 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8676 933 0.004539 0.03468 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8676 933 0.00175 0.0067 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8676 3643 0.007461 0.031419 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8704 6723 0.00224 0.012909 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 21 0.0003 0.000961 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 21 0.00032 0.001409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 1551 0.002031 0.0157 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 4103 0.00038 0.00306 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 7862 0.00118 0.0083 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 5458 0.001229 0.00787 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5574 5666 0.00301 0.01538 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6742 5458 0.00063 0.00114 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5270 7862 0.00064 0.00111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7775 3857 0.004919 0.03837 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6290 3436 0.001831 0.008349 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3430 401 0.00536 0.03188 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2967 8976 0.00038 0.001461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2967 8976 0.000289 0.001521 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8976 2481 0.00305 0.016841 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8976 9108 0.001781 0.012729 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 7520 0.00041 0.00461 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 7520 0.0004 0.0047 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4084 5340 0.00213 0.01401 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4084 2319 0.001271 0.00887 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4084 2878 0.00462 0.02743 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2597 7422 0.001539 0.00776 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7183 8931 0.00025 0.00478 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5379 8931 0.00025 0.00487 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8128 8931 0.00025 0.00435 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6337 8931 0.00026 0.00426 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1237 8931 0.00025 0.00479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4127 9173 0.000169 0.00076 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4127 7974 0.00039 0.00126 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 4816 0.011229 0.074659 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 1866 0.014521 0.058081 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 8809 0.00064 0.003919 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 5146 0.014789 0.07768 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 6940 0.00938 0.05355 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 1742 0.00124 0.004289 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5213 8627 0.00968 0.04388 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5213 174 0.008531 0.067151 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5213 7437 0.00731 0.04106 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7342 5940 0.004349 0.02555 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7342 7495 0.00599 0.03462 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8808 4816 0.002961 0.021591 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8808 4816 0.002901 0.02206 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8808 6053 0.002979 0.016969 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5764 4189 0.00312 0.020021 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8507 1973 0.000219 0.000909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1394 1973 0.000219 0.00093 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2898 2128 0.000151 0.000289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4942 8255 0.00563 0.043599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4942 4748 0.000969 0.00612 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3486 3594 0.005021 0.020719 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3486 4679 0.00988 0.041039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4656 4235 0.003159 0.02011 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4656 4235 0.003219 0.01969 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7129 5441 0.00049 0.00238 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7129 5441 0.000479 0.002419 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8250 5720 0.00264 0.019729 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8250 5720 0.002581 0.02011 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6831 6723 0.00037 0.002831 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6831 5686 0.00213 0.012789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2377 805 0.018669 0.092281 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +907 9091 3.90E-05 0.000401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4056 9091 6.00E-05 0.00044 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6837 2142 6.00E-05 0.0005 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 2641 0.001271 0.007031 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 7577 0.00055 0.003159 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 7577 0.00055 0.00338 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 7577 0.00105 0.004771 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 1629 0.003289 0.015039 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +726 687 0.00036 0.004349 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3526 687 0.00038 0.003669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 2425 0.00118 0.00701 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 2425 0.001229 0.00686 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 5907 0.00301 0.0217 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 5907 0.003409 0.01924 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 5907 0.003409 0.01938 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7847 9217 0.002719 0.02131 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2981 1448 0.00295 0.01956 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5110 5686 0.001091 0.00831 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2968 5907 0.00111 0.008211 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 2155 0.002469 0.015271 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 8112 0.00212 0.01601 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 2535 0.00037 0.0028 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 7098 0.00162 0.01238 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 7098 0.001909 0.01162 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 7098 0.001909 0.010729 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 3737 0.00089 0.00526 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 5529 0.00087 0.00536 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 5753 0.001521 0.01176 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9019 6563 0.00014 0.000591 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1341 1101 0.003531 0.028781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 8291 0.004599 0.03657 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 8367 0.00307 0.019159 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 1100 0.000581 0.004461 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 6887 0.00164 0.01161 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4939 6880 0.00057 0.003281 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7738 6982 0.020419 0.063669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6565 3121 0.01424 0.04751 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8707 280 0.00157 0.008849 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8707 2510 0.01218 0.07524 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1625 766 0.00037 0.00151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8411 6232 0.000219 0.000531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3951 1397 0.002849 0.0137 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 7282 0.00116 0.01692 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 7282 0.00133 0.01462 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 6475 0.00063 0.00821 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 6475 0.00064 0.00804 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 5420 0.00126 0.01272 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 8267 0.00337 0.0494 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 7328 0.0014 0.0214 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 7328 0.00137 0.02182 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 7164 0.00212 0.02063 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 410 0.00186 0.01045 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 7579 0.00426 0.021771 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 7579 0.002659 0.020539 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 4189 0.00606 0.049919 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7282 4196 0.00109 0.01192 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1526 3916 0.013021 0.049219 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1526 4747 0.00236 0.01239 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1526 4747 0.0027 0.015169 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 3346 0.00285 0.03283 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 3346 0.00529 0.03969 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1343 3346 0.00254 0.03721 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 2719 0.000159 0.00069 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 2719 0.000229 0.000979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 2719 0.00024 0.00082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 795 0.000169 0.00075 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 4880 0.00368 0.01756 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 1868 0.002599 0.020659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 5564 0.00018 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 7036 0.000159 0.000771 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 5940 0.00357 0.01981 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 7495 0.006021 0.03205 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4850 2886 0.001781 0.01164 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4850 7049 0.002781 0.018831 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2510 6146 0.000349 0.00281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +90 1860 0.00313 0.02444 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +90 1860 0.00368 0.02074 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 3276 9.10E-05 0.001539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 3545 0.00251 0.01111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 6842 0.003081 0.017961 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 6744 0.005341 0.030419 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 7635 9.90E-05 0.00126 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9091 1040 0.002169 0.017901 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2457 6178 0.00011 0.00038 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1422 1462 0.00212 0.00494 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1422 7772 0.018901 0.077349 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7881 5365 0.00957 0.0395 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7881 6982 0.02324 0.063469 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6926 3327 0.000531 0.004331 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1959 615 0.002581 0.006229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6455 1262 0.00031 0.002211 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +803 6982 0.01087 0.06114 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +803 5918 0.011581 0.061099 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7624 3070 0.002099 0.016271 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 1547 0.00093 0.005461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 5237 0.009591 0.037039 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 772 0.002591 0.017211 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 8950 0.00164 0.013651 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2754 2079 0.003219 0.014719 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2754 2229 0.00401 0.022229 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2754 7049 0.00126 0.010211 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4118 7873 0.009169 0.03993 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4118 3865 0.001349 0.006081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 8486 0.00156 0.01931 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 7530 0.00152 0.01968 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 7778 0.00094 0.01433 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 6897 0.00092 0.01461 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 960 0.00137 0.02012 0 1019 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 960 0.00134 0.02051 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3857 4491 0.00314 0.042151 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3857 6010 0.000651 0.00494 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3857 6940 0.003961 0.02426 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +858 1642 0.00013 0.0015 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3028 809 0.00013 0.00147 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4819 1642 0.00011 0.00172 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2035 809 0.00012 0.00166 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3869 1642 0.00012 0.00168 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3741 809 0.00012 0.00172 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +742 687 0.00093 0.005669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2910 7098 0.00105 0.00506 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5688 6231 0.00113 0.006539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5182 5455 0.00037 0.002919 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +707 5695 0.005169 0.03738 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3814 954 0.00125 0.006669 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2313 2438 0.001281 0.00661 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +195 2985 0.00226 0.0138 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 3513 0.00213 0.02677 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 3346 0.00154 0.01919 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4544 601 0.00687 0.04413 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4544 3241 0.0045 0.04725 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4544 7338 0.00138 0.00837 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3069 1538 0.000419 0.001901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3069 1538 0.00043 0.00186 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6115 4729 0.003331 0.015099 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3344 6616 0.002099 0.01631 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3809 5616 0.001331 0.01082 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3809 6691 0.00199 0.00818 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3809 6691 0.00169 0.008831 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1326 892 0.001771 0.014281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +601 616 0.003099 0.01844 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3496 1551 0.003409 0.01819 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4925 2230 0.00057 0.00369 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8057 5907 0.001081 0.00468 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5354 5907 0.00105 0.004771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3674 616 0.001979 0.01549 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3674 7338 0.001469 0.015151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 5083 0.000711 0.003969 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 7576 0.00051 0.00274 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 3191 0.000521 0.00306 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 3488 0.00188 0.011841 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 1578 0.002469 0.010539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +575 5300 0.00045 0.00351 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3929 9173 0.00037 0.000659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 3818 0.000401 0.0007 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 6232 0.00014 0.000531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 1643 0.000289 0.0013 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 6253 7.00E-05 0.000289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 6684 0.00051 0.002151 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 8151 0.00037 0.00157 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5067 449 0.00022 0.00277 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5067 449 0.00025 0.00271 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7641 3037 0.000271 0.002081 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7641 3037 0.00025 0.00231 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3191 2340 0.00095 0.00331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3191 8711 0.00093 0.00336 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8104 8722 0.000341 0.002211 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2644 9191 0.00032 0.00232 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4128 8522 3.90E-05 0.000271 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +604 7522 0.00075 0.0101 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +604 4000 0.00118 0.01455 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 9021 0.0017 0.0098 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 9021 0.001521 0.01111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 2042 0.000169 0.001401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 687 0.002591 0.01725 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 3520 0.000169 0.001159 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 4729 0.00307 0.01339 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2641 4889 0.002591 0.013521 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9067 9051 0.000581 0.005031 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6969 5573 0.001419 0.00595 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 1494 0.00205 0.02664 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 2732 0.00295 0.03721 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 4550 0.00335 0.03648 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 1607 0.00022 0.00251 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 2093 0.00059 0.00651 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3565 2177 0.008539 0.041979 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3565 2841 0.001349 0.0052 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3611 7972 0.00245 0.013909 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3611 2481 0.001469 0.008419 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5420 7164 0.00084 0.00836 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7119 2078 0.002591 0.017789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7119 7873 0.009651 0.05968 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7422 7519 0.00143 0.00799 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7422 6744 0.001969 0.014909 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1026 1860 0.01039 0.06406 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4765 3327 0.000719 0.005331 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6036 6921 0.00052 0.00565 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8670 7069 0.002409 0.019479 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8670 7069 0.00256 0.019151 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8670 2866 0.00656 0.02288 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4032 6450 0.0027 0.014901 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4032 5738 0.003591 0.01362 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7327 2481 0.002211 0.01188 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7327 8189 0.00068 0.00357 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7474 1584 0.000211 0.000969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8947 3390 9.90E-05 0.000539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1808 6384 0.00645 0.0263 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4624 6031 0.00063 0.001901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1721 3558 0.000281 0.000669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7694 3865 0.000219 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9181 6723 0.00014 0.00105 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8373 8748 0.003219 0.020729 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8373 8475 0.00051 0.003151 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8373 8475 0.000409 0.00331 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 6639 0.002289 0.017479 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 1187 0.002831 0.01895 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 7274 0.006289 0.036521 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 8992 0.005651 0.032169 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 7266 0.00414 0.02262 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3492 6734 0.01095 0.05814 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3492 1015 0.009 0.0368 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3492 8310 0.000229 0.00181 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1980 6570 0.00119 0.00726 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9137 749 0.011771 0.051669 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 2183 0.00209 0.02279 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7571 3916 0.002031 0.01443 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7571 6891 0.00145 0.008479 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2526 6199 0.00124 0.01433 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2526 6199 0.00127 0.01402 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1483 3649 0.013039 0.052841 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 6199 0.00235 0.02739 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 6199 0.0024 0.02681 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 4141 0.00135 0.02056 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 1311 0.00087 0.01124 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8316 174 0.0012 0.00818 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +174 6430 0.006961 0.05561 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 7892 0.00105 0.00763 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 561 0.000219 0.00182 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 8843 3.90E-05 0.0002 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 8843 4.50E-05 0.000195 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 4239 0.0035 0.022651 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3866 1860 0.004281 0.02319 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3866 5395 0.003729 0.014021 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7042 2177 0.00212 0.01582 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8672 7164 0.00056 0.00784 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1860 7772 0.004401 0.01813 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1860 7772 0.005021 0.02144 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4885 2928 0.00018 0.000219 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4157 2928 0.000151 0.000211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4432 2928 0.000151 0.000211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2072 5983 0.00282 0.02591 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3450 6552 0.00131 0.008539 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3956 7507 0.002159 0.015969 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5286 1838 0.00019 0.000281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5571 2230 0.0002 0.000281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2078 8005 0.00139 0.00774 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +639 6351 0.01101 0.06739 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +639 2749 0.00063 0.00463 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +639 9130 0.002341 0.009599 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +410 4189 0.00375 0.021659 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1494 5781 0.00056 0.00749 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +583 6616 0.00118 0.00926 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +583 6031 0.002039 0.013081 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1746 7507 0.00155 0.010961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3276 7635 3.90E-05 0.00036 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1105 196 0.00024 0.000409 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8522 7132 0.000341 0.001659 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8522 5351 0.005461 0.024919 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 7056 0.00158 0.02413 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8825 0.00155 0.02458 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 6889 0.00021 0.00256 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 6889 0.00024 0.00243 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8887 0.00144 0.02266 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8887 0.0014 0.02098 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8487 0.00086 0.01074 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8748 8475 0.003341 0.02611 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 6785 0.00387 0.02063 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 6785 0.00405 0.018271 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 1179 0.00101 0.00462 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 2575 0.00088 0.00389 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 7274 0.005081 0.039 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7972 8189 0.00257 0.0208 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7972 8189 0.00251 0.01926 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7972 1039 0.002531 0.01314 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7253 7840 0.00132 0.00869 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4395 8913 0.00082 0.004021 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4395 4852 0.00143 0.007479 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2795 1183 0.000659 0.005771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2795 1183 0.000591 0.006539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1305 6291 0.00589 0.025599 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1305 6982 0.00614 0.02343 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2732 1798 0.00155 0.01994 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2732 3346 0.00205 0.03218 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4550 3346 0.00233 0.03154 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4725 5738 0.002341 0.01982 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1083 8310 8.10E-05 0.000521 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1398 5567 9.90E-05 0.00069 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4281 4580 0.00276 0.016419 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7050 4908 0.00036 0.001229 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7050 3740 0.000229 0.000711 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6563 870 0.00013 0.00099 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8999 6495 0.001159 0.00689 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6888 5994 0.008531 0.03045 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5400 8005 0.000781 0.004531 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5400 8005 0.00075 0.00474 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5881 4031 0.002159 0.008349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 8334 0.00162 0.01651 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 6357 0.01236 0.044211 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 6357 0.00825 0.03989 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 3775 0.02187 0.066961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 3975 0.01212 0.06661 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3918 1642 0.00036 0.00534 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6802 1153 0.000229 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6802 7599 0.000219 0.000581 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4025 3994 0.000281 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1595 1414 0.005021 0.035659 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3114 3656 0.00174 0.007901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5237 2229 0.003919 0.020581 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5237 9108 0.003341 0.016349 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5237 1478 0.003271 0.016669 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2799 8515 0.000151 0.000659 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6405 7873 0.00736 0.035659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6405 3894 0.00944 0.042169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 4734 0.00068 0.00652 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 3483 0.00188 0.02281 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 7052 0.00168 0.00956 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 7052 0.001669 0.00981 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 772 0.002229 0.01599 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 772 0.00218 0.01631 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1081 6475 0.00238 0.02124 0 953 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1081 6475 0.00194 0.02023 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7361 3166 0.013831 0.05955 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7361 426 0.00876 0.04875 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2863 1857 0.0002 0.00099 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1364 2430 0.00105 0.00826 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2177 749 0.0172 0.06637 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3594 2850 0.00305 0.015781 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6555 3608 0.00208 0.02105 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8475 1965 0.00614 0.043729 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8475 5926 0.000229 0.001849 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5735 6053 0.00386 0.025789 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5735 2341 0.002031 0.012 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2629 7507 0.000591 0.004 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1137 2406 9.10E-05 0.00051 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7577 5814 0.00732 0.039969 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7577 3231 0.004581 0.02031 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7663 5814 0.00132 0.00537 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1183 1159 0.007521 0.0387 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6852 5051 0.005159 0.031281 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8307 8807 9.90E-05 0.001159 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6947 8807 9.90E-05 0.00113 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4505 4357 0.00019 0.000909 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7144 7791 0.00107 0.00413 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 2085 9.00E-05 0.00058 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 4024 9.00E-05 0.00059 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 9065 8.00E-05 0.00053 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 661 8.00E-05 0.00052 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6612 8864 0.000271 0.00151 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00053 0.00585 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00047 0.00663 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00046 0.00676 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00045 0.00689 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 8494 0.00028 0.00338 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 8494 0.0003 0.00319 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1643 4511 0.00025 0.00101 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +196 1973 0.000281 0.00119 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2902 5573 0.00018 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4950 4410 0.00382 0.02868 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4950 333 0.00361 0.0235 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4950 6908 0.00538 0.03569 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3377 7726 6.00E-05 0.000409 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 3243 9.00E-05 0.00102 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 2458 0.0014 0.01649 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 2919 0.00034 0.00427 0 1019 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 8560 0.0001 0.00109 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 6427 0.00137 0.01682 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 8347 0.00131 0.01262 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 5610 0.00262 0.019669 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 2421 0.00082 0.00526 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 2421 0.000841 0.005151 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 2421 0.000669 0.005081 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 6989 0.001919 0.012669 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +44 1545 0.002659 0.02 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +44 3541 0.003031 0.02343 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6231 4710 0.01176 0.059159 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6231 8367 0.002469 0.017531 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6231 2288 0.000669 0.005729 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8291 8473 0.000781 0.00876 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8291 5455 0.00062 0.00482 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8291 7635 0.001349 0.012599 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6842 8473 0.000979 0.0082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6842 883 0.008091 0.028831 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6842 2288 0.000711 0.005969 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3969 7726 0.00145 0.00857 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1090 1129 0.00869 0.03768 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1090 3070 0.001719 0.00837 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 5365 0.01582 0.067349 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 5365 0.01457 0.06469 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 4529 0.021711 0.090539 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 3364 0.00019 0.000729 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +935 5383 0.001271 0.00638 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +920 6570 3.90E-05 0.0002 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6664 4426 0.000281 0.00236 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4339 2183 0.00019 0.00329 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7513 4000 0.00035 0.00324 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 8542 0.00049 0.00349 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 8542 0.000469 0.00331 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 1662 0.00313 0.01324 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 9119 0.001031 0.006719 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 1151 0.00038 0.00401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +502 3589 0.00037 0.002849 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8473 1040 0.00032 0.00256 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8473 145 0.00037 0.00118 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8473 4267 0.00068 0.001151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4936 5179 0.00168 0.009841 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5317 8854 0.000599 0.002401 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9018 4 0.002169 0.00911 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9018 4829 0.002849 0.01282 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6253 5383 0.001229 0.01207 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6253 7507 0.001289 0.01089 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 1644 0.00093 0.01036 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 3483 0.00083 0.01174 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6639 7840 0.00118 0.009469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6639 7840 0.001151 0.009651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 8109 0.00101 0.01327 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6291 4189 0.00364 0.02486 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8405 4747 0.00056 0.00425 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8405 4580 0.00369 0.02681 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +338 7824 0.000531 0.00276 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2468 7824 0.000521 0.00281 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5257 7824 0.000419 0.00232 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2189 7824 0.000409 0.00237 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8458 8267 0.00014 0.00193 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2676 5987 0.003211 0.01481 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1187 5712 0.00381 0.01175 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1187 6521 0.003781 0.02676 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 8636 0.000919 0.005461 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 8829 0.000271 0.001211 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 4235 0.002229 0.017401 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 4235 0.00243 0.017659 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 4235 0.002531 0.01705 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8818 5099 0.012531 0.05451 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 4734 0.00087 0.01212 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 905 0.0006 0.00802 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 8334 0.00072 0.00667 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 2093 0.00234 0.02626 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6772 6989 0.00038 0.002969 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7885 3912 0.00024 0.00045 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6730 3912 0.000229 0.000409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4301 3912 0.000281 0.000401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5362 5610 0.001211 0.005271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5362 350 0.000281 0.00107 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5362 6763 0.00025 0.001091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3855 1973 0.00019 0.00081 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3855 1973 0.00045 0.00136 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3481 554 0.003461 0.023289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 8222 0.0013 0.01609 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 8222 0.00128 0.0164 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 2721 0.00089 0.01082 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 2721 0.00087 0.01102 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3786 8578 0.003349 0.02514 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +490 2653 0.0003 0.00061 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +148 7069 0.000289 0.001211 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7256 8743 0.01301 0.044091 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7256 1742 0.02162 0.065969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8930 314 0.006461 0.05275 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6954 7974 0.0002 0.000271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3325 7974 0.00018 0.00026 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5627 1742 0.00032 0.00188 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5610 6989 0.00105 0.006591 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +21 6163 0.00013 0.00055 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3749 5365 0.006151 0.04013 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3749 6982 0.007159 0.040591 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2291 3133 0.00874 0.048461 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2291 4738 0.004159 0.01606 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2291 3656 0.002919 0.01912 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 4300 0.00094 0.00394 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 5789 0.000901 0.00395 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 2467 0.003159 0.017789 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 2467 0.002419 0.018331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 5256 0.00375 0.018281 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3200 2653 0.00025 0.001031 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4679 4852 0.00264 0.01238 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4679 4852 0.001289 0.00795 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4679 1151 0.00087 0.003081 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8568 5215 0.000401 0.00224 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +58 221 0.0003 0.00385 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6807 851 0.00126 0.008219 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +150 5099 0.01905 0.055729 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +150 3558 0.00201 0.00444 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7209 2934 0.00101 0.00324 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 4787 0.00105 0.00677 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 3830 0.00039 0.00502 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 5648 0.0004 0.00492 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 4000 0.00051 0.00617 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 3485 0.0003 0.00314 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 3830 0.00051 0.00668 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 5648 0.0005 0.00678 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 2424 0.002909 0.017 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 1156 0.00245 0.011281 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 4914 0.0027 0.01532 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 4914 0.00105 0.011151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 3834 0.00036 0.002669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 556 0.0018 0.011169 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 3019 0.000711 0.007771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 7923 0.00036 0.00257 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 4103 0.00201 0.01195 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 7862 0.001091 0.00731 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 5458 0.00105 0.007591 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 1838 0.00299 0.02256 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3070 2888 0.00036 0.00288 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 4504 0.00589 0.045599 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 3579 0.00157 0.0127 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 3579 0.00168 0.011969 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 7903 0.00289 0.021031 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6368 1102 0.00395 0.025211 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6368 9217 0.002771 0.021659 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6368 5653 0.002979 0.016901 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8478 5907 0.007419 0.034021 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5241 6921 0.00056 0.00813 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4 1813 0.00361 0.015211 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8950 7049 0.000409 0.003331 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6846 8788 0.004091 0.019599 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6846 6734 0.00294 0.012841 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4426 5616 0.020771 0.080479 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4426 1965 0.00662 0.0513 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4426 1767 0.00607 0.04581 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3037 1102 0.000669 0.0042 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3037 8485 0.001271 0.007419 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3037 5653 0.001599 0.012271 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 4661 0.009599 0.05024 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 520 0.00149 0.009219 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 6816 0.01488 0.06724 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 5918 0.003599 0.024031 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 5918 0.00519 0.024 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8636 1380 0.003461 0.013349 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3436 4239 0.00105 0.01236 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3436 4239 0.00199 0.012331 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3436 3656 0.00711 0.044711 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6203 7124 0.006729 0.02543 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9059 7124 0.005771 0.02999 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5994 96 0.0048 0.021771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5049 306 0.00286 0.02212 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +718 8397 0.00351 0.02175 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +718 6982 0.008401 0.0448 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7202 8807 0.0018 0.01187 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7202 8807 0.001831 0.01163 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8592 2995 0.00075 0.00538 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6581 823 2.00E-05 0.00033 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6581 1680 1.00E-05 0.00034 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6199 953 0.00023 0.00258 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6199 1817 0.00023 0.00252 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3231 1504 0.002031 0.008531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3231 7226 0.005349 0.020789 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2928 7865 0.0002 0.00082 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3916 6891 0.002091 0.011219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6053 171 0.00262 0.016979 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6053 171 0.002669 0.01663 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8829 3044 0.00025 0.00118 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1552 1194 0.00056 0.00715 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 3740 0.0007 0.00455 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 2695 0.000331 0.001711 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 2695 0.00011 0.000781 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 8877 0.00111 0.00664 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7520 8222 0.00066 0.00838 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7520 8222 0.00064 0.00854 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2421 3610 0.003091 0.017091 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2421 1414 0.00643 0.03687 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8879 3610 0.00275 0.01937 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8397 5918 0.00357 0.021289 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1914 6982 0.000289 0.002789 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7873 6638 0.002531 0.01345 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4562 7702 0.00162 0.012159 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4562 7702 0.00262 0.01168 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8835 1156 0.00099 0.006081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8835 1233 0.000909 0.005979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3390 408 0.00011 0.0008 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3390 7231 0.00011 0.00068 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3390 5993 0.00207 0.008341 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1910 2550 0.00019 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3975 7353 0.014039 0.0667 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3126 7495 0.004961 0.03043 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2689 5753 0.00056 0.003531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1201 4235 0.001461 0.00889 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7626 7076 6.00E-05 0.000419 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4823 4060 0.00139 0.005169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4141 1311 0.00069 0.00825 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7124 4566 0.004969 0.030781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7124 8873 0.00012 0.000969 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6684 5383 0.001091 0.010159 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8151 5383 0.000969 0.00887 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4357 6619 0.00099 0.006789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8191 8765 0.001031 0.00586 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7466 5469 0.00401 0.03345 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3401 5351 9.10E-05 0.000349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3760 225 0.00125 0.00745 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +53 4031 0.003711 0.024219 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6921 0.00169 0.02156 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6921 0.00171 0.02114 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6556 4239 0.00088 0.00562 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6556 4239 0.0008 0.00618 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2940 7178 0.00161 0.01014 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3928 2563 0.00032 0.002031 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3928 6521 0.00011 0.000659 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1923 3830 0.00042 0.00505 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1923 5648 0.00043 0.00494 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2815 4914 0.00038 0.000711 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2815 4914 0.00037 0.000659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 1644 0.00248 0.03096 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +163 3498 0.00375 0.019729 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +163 2430 0.00518 0.020021 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7943 9108 0.000771 0.003711 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7943 1478 0.00076 0.003789 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2308 3541 0.000781 0.00574 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3535 7582 0.00089 0.00562 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2019 8542 0.000331 0.001401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5174 8542 0.000401 0.00137 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7945 5215 0.00051 0.003349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2057 9130 0.000461 0.00168 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2057 9130 0.000469 0.00164 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4661 6816 0.006081 0.03114 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7519 776 0.005831 0.02218 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8989 3435 0.00013 0.000461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7797 2020 0.00013 0.000461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +871 4031 0.00262 0.020289 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +871 2878 0.00164 0.01194 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7353 9164 0.006479 0.02845 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7974 2012 0.00294 0.014419 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7974 2012 0.00238 0.01463 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7974 1750 0.002219 0.00993 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1401 2303 0.008651 0.04886 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4504 7903 0.00464 0.030979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 449 0.00092 0.00889 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 449 0.00093 0.00869 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1817 0.0022 0.03485 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 2458 0.00074 0.00941 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 6427 0.00087 0.00884 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1730 0.00139 0.01662 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9217 594 0.002781 0.022979 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6351 5393 0.000521 0.00407 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6194 7702 0.008479 0.032841 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2503 7491 0.005669 0.02901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4031 2872 0.001031 0.004099 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4031 8043 0.00301 0.018719 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1813 2866 0.00257 0.01713 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5365 5417 0.010461 0.03836 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5365 4100 0.001719 0.011531 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5365 1556 9.10E-05 0.00056 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3894 3865 0.00476 0.025289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +128 1554 0.000219 0.00164 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +198 7994 0.002159 0.01163 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +198 1554 0.00295 0.01539 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2985 3133 0.007789 0.033039 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7316 3071 0.00026 0.0013 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6486 8992 0.00162 0.013229 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8485 594 0.007919 0.04194 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +682 8477 0.001229 0.00401 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5146 5488 0.008021 0.042831 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6638 776 0.007711 0.03006 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8788 789 0.00261 0.015469 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6332 1556 0.00139 0.00536 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6332 1556 0.001419 0.00525 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1883 7702 0.006289 0.032271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1883 2132 0.011031 0.05625 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +171 2341 0.001841 0.01324 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6630 10 0.000599 0.00186 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4484 4239 0.00036 0.001591 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3044 4235 0.003849 0.027651 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +851 4454 0.00186 0.00874 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3485 2183 0.00025 0.00285 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1156 7923 0.00207 0.008841 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1156 1233 6.00E-05 0.00039 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8913 4852 0.002159 0.008909 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4039 1233 0.000219 0.00039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 2653 0.00011 0.000521 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 2653 0.00011 0.00049 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 556 0.000771 0.003789 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 3019 0.000229 0.002849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7994 5256 0.00445 0.027599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 3346 0.00218 0.02 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 8468 0.00074 0.00865 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7702 1234 0.002531 0.019419 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7702 8035 0.003 0.01631 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8677 3331 0.008461 0.025081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8189 3643 0.00382 0.013669 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3133 8477 0.002581 0.01814 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6744 6101 0.00201 0.012219 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8542 4313 0.00087 0.001599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +769 5233 0.00455 0.02394 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1965 5926 0.005651 0.041771 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9014 3999 0.00069 0.001271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1917 8406 0.00068 0.00269 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1917 2021 0.00036 0.00261 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1917 8293 0.001669 0.012031 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4738 3656 0.009669 0.03513 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4738 8477 0.001099 0.00862 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7998 1644 0.0005 0.00711 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6734 1015 0.003919 0.017781 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6734 8992 0.00161 0.019781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6734 789 0.0007 0.01256 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5004 5393 0.000409 0.0018 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1708 3906 2.00E-05 0.00043 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9150 3906 3.00E-05 0.0004 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +280 9158 0.00968 0.056659 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8043 3656 0.003969 0.02925 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5712 8992 0.00219 0.01468 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5712 8466 0.000401 0.003159 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5712 6880 0.000531 0.003 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5215 7266 0.00136 0.00576 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8807 8992 0.000849 0.006289 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8807 8992 0.000841 0.006409 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8807 8992 0.00045 0.00506 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +218 2088 0.003669 0.02988 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +520 5918 0.002 0.01568 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2653 2128 0.00031 0.0008 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1216 5233 0.00043 0.00038 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8980 5993 0.00043 0.002229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5212 5993 0.00049 0.00218 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3656 4060 0.00282 0.01844 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +883 3331 0.00462 0.014849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5144 3346 0.00263 0.04076 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3498 2563 0.01062 0.056719 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1896 8200 0.0001 0.00105 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9130 8864 0.00239 0.017341 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3503 2510 0.001341 0.010581 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3503 6146 0.00101 0.007599 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +401 1584 0.00011 0.000289 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 6921 0.00146 0.01769 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 6921 0.0013 0.02004 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6816 5573 0.007909 0.028349 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7396 8564 0.00012 0.00049 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7396 8564 0.00012 0.000479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.00076 0.01018 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.0009 0.00865 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.00096 0.01294 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.0004 0.00756 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.00039 0.00771 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 8200 0.00163 0.02291 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2949 3121 0.00636 0.03855 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2949 3121 0.00639 0.03863 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +953 1730 0.00113 0.01362 0 690 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1767 892 0.00861 0.05318 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4674 4889 0.0012 0.004669 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4674 7076 0.00018 0.001091 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1234 8035 0.001401 0.00612 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +115 225 0.00068 0.00387 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5720 8578 0.0043 0.033591 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3579 5469 0.003039 0.01911 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3246 124 6.00E-05 0.00111 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8846 4783 5.00E-05 0.001091 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2393 3306 3.90E-05 0.00089 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1895 4480 3.90E-05 0.000901 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +678 4454 0.000169 0.00111 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1002 4852 0.000331 0.0027 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6429 2012 0.00026 0.00369 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4889 7076 0.000341 0.00274 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5341 7491 0.00038 0.00506 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2563 6521 0.00012 0.000831 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1111 594 0.003031 0.0123 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4747 7791 0.001521 0.00774 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3906 3022 0.00059 0.00552 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3906 1194 0.00053 0.00625 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5993 8804 0.00143 0.01076 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1798 8487 0.00056 0.00593 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2467 7178 0.00205 0.01461 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2132 2303 0.01068 0.054521 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8992 8466 0.00194 0.011039 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8992 6880 0.00131 0.010099 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8992 2995 0.001289 0.014229 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 3221 0.00455 0.027031 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 3327 0.00239 0.01414 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 8310 0.004039 0.029669 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 2088 0.001099 0.007771 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 2021 0.00082 0.00762 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 4114 0.000719 0.0033 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 5519 0.000599 0.00361 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 8293 0.000521 0.004039 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 3435 0.000901 0.0088 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7507 6990 0.000781 0.00306 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7507 2406 0.000419 0.00399 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7507 2020 0.000841 0.009841 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6478 6146 0.004021 0.03064 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 2695 0.0023 0.009031 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 2695 0.002081 0.009469 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 5502 0.00164 0.008831 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 8877 0.00094 0.00488 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 9119 0.000901 0.00551 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 1151 0.00051 0.005961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2012 1750 0.00113 0.004349 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1478 6616 0.002081 0.013031 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +809 4594 0.00116 0.01438 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8656 4729 0.00013 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4100 615 0.00036 0.002659 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4060 5393 0.000771 0.004539 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 2426 0.000695 0.049098 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 2426 0.000355 0.024893 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +118 2426 0.000365 0.024372 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3145 7770 0.000411 0.023652 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 4918 0.000386 0.025673 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 4918 0.000344 0.029336 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 4506 0.000653 0.052104 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 4506 0.000767 0.043531 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 6114 0.000323 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 6114 0.000323 0.025999 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 7264 0.000365 0.025478 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +891 6306 0.00086 0.039291 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 1711 0.000355 0.026586 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 1711 0.000375 0.026313 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 3240 0.000344 0.023329 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 3240 0.000302 0.026375 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 2924 0.000788 0.04323 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 2924 0.000767 0.04407 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 5856 0.000767 0.043562 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 5856 0.000788 0.041281 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 5856 0.000892 0.040524 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 4683 0.000975 0.043562 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 4683 0.000757 0.042649 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2361 0.000261 0.030762 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2361 0.000261 0.030088 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 6112 0.000323 0.026447 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 8860 0.000323 0.026885 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 549 0.000323 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 549 0.000292 0.028158 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 5002 0 0.009197 0 567 0 0 0 0.072386 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 3817 0.000736 0.044526 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2854 9112 0.00086 0.039488 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 6532 0.000365 0.024372 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 6532 0.000375 0.023986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4494 7284 0.000386 0.025673 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2656 1775 0.000809 0.042318 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3519 5641 0.000705 0.042038 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 367 0.000334 0.028022 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 1833 0.000353 0.022403 0 591 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 367 0.000313 0.026354 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 367 0.000323 0.025478 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1876 7752 0.000344 0.024622 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +113 7752 0.000355 0.024038 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7289 0.000881 0.038244 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7289 0.000757 0.040959 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 2083 0.000354 0.028765 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 2083 0.000354 0.027114 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 2083 0.000695 0.04748 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 1609 0.000323 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 1609 0.000323 0.026354 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 1609 0.000323 0.025696 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000355 0.027305 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000355 0.026666 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000923 0.037456 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000788 0.035217 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 7473 0.000323 0.026739 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 7473 0.000323 0.02749 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 5482 0.000313 0.027324 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 5482 0.000313 0.028074 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 5525 0.000601 0.024984 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 5525 0.000715 0.022797 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 5525 0.000344 0.024893 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 7955 0.000365 0.024163 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 7955 0.000344 0.02385 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5007 7367 0.000757 0.040182 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 3758 0.000323 0.028937 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000354 0.026958 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000778 0.045656 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000695 0.048932 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000302 0.025926 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 8180 0.000355 0.027328 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 8180 0.000365 0.027156 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 5935 0.000355 0.024299 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7988 804 0.000375 0.026313 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7988 804 0.000375 0.025605 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 1539 0.000334 0.026291 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 1539 0.000705 0.046735 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 4084 0.000313 0.026875 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 4084 0.000302 0.027376 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4598 5110 0.000664 0.044868 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2129 5110 0.000809 0.044526 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 5550 0.00086 0.034253 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 5550 0.000355 0.024372 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2848 1526 0.000365 0.023788 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 7464 0.000375 0.023204 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 7464 0.000302 0.026593 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 3857 0.000323 0.029256 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 3857 0.000334 0.029986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 3857 0.000355 0.030979 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 4544 0.000302 0.025707 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 4544 0.000344 0.025405 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3069 6115 0.00012 0.008908 0 491 0 0 0 -0.072388 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5067 7641 0.000365 0.023715 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6036 8670 0.000365 0.023517 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6036 5522 0.000334 0.026812 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8486 8791 0.000695 0.047253 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7530 8791 0.000778 0.043759 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 7571 0.000313 0.030636 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 7571 0.000313 0.028286 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 7571 0.000344 0.028115 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2526 1483 0.000902 0.039425 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 8316 0.000355 0.024237 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8672 1860 0.000375 0.023986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8672 1860 0.000375 0.023861 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1494 583 0.000819 0.04153 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1494 583 0.000809 0.042701 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1502 2795 0.000334 0.028022 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 933 0.000632 0.048237 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 933 0.000632 0.045159 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 933 0.000715 0.044039 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3918 6802 0.00074 0.044479 0 10000 0 0 0.986547 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3918 4025 0.00074 0.043811 0 10000 0 0 0.986547 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 2079 0.000375 0.02385 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 2079 0.000365 0.023267 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 2079 0.000323 0.026739 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1081 7361 0.000684 0.047025 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9101 2177 0.000313 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6555 8475 0.000323 0.028554 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6555 8475 0.000302 0.026437 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7056 7577 0.000365 0.025551 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7056 7577 0.000344 0.024893 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7056 9051 0.000375 0.024508 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 6785 0.000778 0.041157 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 6785 0.000923 0.03702 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 6785 0.000302 0.026593 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 7148 0.000344 0.029667 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 44 0.000334 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 7148 0.000323 0.030636 0 591 0 0 0.89674 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 44 0.000323 0.028526 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9213 6231 0.000344 0.025332 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9213 8291 0.000334 0.024674 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9213 6842 0.000344 0.02457 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3608 6664 0.000365 0.023788 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4339 6570 0.000365 0.023601 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4339 6570 0.000344 0.02652 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7513 6570 0.000344 0.027272 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7513 6570 0.000334 0.027563 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 6639 0.000313 0.030636 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 6639 0.000313 0.028286 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 4816 0.000881 0.036803 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 4816 0.000902 0.036668 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 4816 0.000881 0.034014 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 3786 0.000365 0.026027 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 3786 0.000386 0.025673 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7256 4491 0.00012 0.011186 0 586 0 0 0 0.084507 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6153 58 0.00017 0.006789 0 1216 0 0 0 -0.086984 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +%CTT T_BUS r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +6153, 6807, 0.000664, 0.047107, 0, 10000, 0, 0, 0.982143, 0, 1, -360, 360, 0, 0, 0, 1.95, 0, 0, 0, 0, 0, 0, 1.22, 0.75, 0, 0, 1, 0, 0, -360, 360, 0, 0, 0, 0, 0; %CTT +1465 1262 0.000313 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 1262 0.000334 0.025707 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 1551 0.000344 0.025478 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 1551 0.000344 0.027236 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 1551 0.000375 0.026518 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6901 4874 0.000386 0.02646 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5241 4 0.000788 0.040317 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7520 561 0.000323 0.025863 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +749 4324 1.00E-05 0.022863 0 948 0 0 0 0.04898 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4141 7124 0.000334 0.030306 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4141 7124 0.000302 0.030636 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +%PST T_BUS r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +7466, 3649, 0.00011, 0.010476, 0, 472, 0, 0, 0, -0.06138, 1, -360, 360, -290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, -100, 100, 0, 0, 0, 0, 0; %PST +8222 6556 0.000344 0.024841 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6556 0.000365 0.025029 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6556 0.000355 0.024101 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 163 0.000344 0.02385 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 163 0.000411 0.02313 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 163 0.000829 0.042764 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 9217 0.000705 0.04748 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1448 0.000323 0.029986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1448 0.000302 0.029952 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8267 5365 0.000746 0.041064 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8267 5365 0.000881 0.042214 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2359 8005 0.00086 0.041209 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2359 8005 0.000912 0.038669 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8109 171 0.000375 0.026244 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8109 171 0.000375 0.025457 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3485 1156 0.000302 0.029096 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4734 2229 0.000302 0.029667 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 7702 0.000334 0.027563 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 7702 0.000323 0.028074 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +905 8189 0.000736 0.041064 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8334 8189 0.001234 0.040109 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8334 8189 0.000757 0.043209 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7998 6734 0.000323 0.026586 0 854 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4196 280 0.000788 0.040296 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4196 280 0.000912 0.040514 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6475 3503 0.000798 0.042183 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6475 3503 0.000778 0.043147 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 4235 0.000323 0.027793 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 4235 0.000302 0.027918 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 4235 0.000302 0.025926 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 2949 0.000344 0.024956 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 2949 0.000355 0.024435 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3830 306 0.000386 0.026392 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5648 306 0.000365 0.025525 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1730 115 0.000344 0.029986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1730 115 0.000323 0.029838 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2721 5720 0.000323 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2721 5720 0.000313 0.028001 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3246 0.000179 0.012988 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 8846 0.000198 0.012724 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 2393 0.000207 0.012469 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 1895 0.000207 0.012206 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3412 0.000217 0.012912 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 5586 0.000217 0.012627 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3112 0.000198 0.014317 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3112 0.000189 0.014592 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 7857 0.000354 0.02725 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +960 8497 0.000628 0.042428 0 10000 0 0 1.009174 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +960 8497 0.000726 0.044039 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3577 5907 0.000365 0.024893 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3577 5907 0.000438 0.02457 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3577 5907 0.000365 0.023986 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7164 5918 0.000375 0.023267 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7164 5918 0.000323 0.026375 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1798 2467 0.000334 0.029735 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1798 2467 0.000313 0.030237 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3346 2132 0.000767 0.044049 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3346 2132 0.000302 0.026072 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3346 2132 0.00085 0.039892 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3483 8992 0.000344 0.024956 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8886 8992 0.000334 0.026666 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2093 805 0.000365 0.023788 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2093 805 0.000365 0.023465 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +221 1541 0.000334 0.026447 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 5383 0.000323 0.027042 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 5383 0.000313 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 5383 0.000302 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 7507 0.000323 0.025853 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 7507 0.000365 0.026197 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 7507 0.000365 0.025165 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4000 4852 0.000355 0.024237 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4000 2012 0.000375 0.024247 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2183 4852 0.000365 0.023267 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2183 2012 0.000342 0.023139 0 591 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1642 7098 0.000344 0.026666 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1642 687 0.000334 0.027021 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +809 7098 0.000302 0.027615 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +809 687 0.000313 0.026135 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4594 8804 0.000365 0.025905 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4594 8804 0.000355 0.025238 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2919 4215 0.000334 0.026814 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +10001 2072 0.0003 0.0355 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.22 0.75 1 0 1 -0.5 0.5 -360 360 0 0.001 0.0015 0.002 0; %vsc1 I +10002 8195 0.0003 0.0355 0 1000 1000 1000 1 0 1 -360 360 50 0 0 0 0 0 0 0 1.01 1.07 1.22 0.75 4 0.02 1 -0.5 0.5 -100 100 0 0.001 0.0015 0.002 0.1; %vsc2 III +10001 10002 0.0005 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +10003 6246 0.00025 0.041 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.0 1.06 1.22 0.75 2 0.5 1 -0.5 0.5 -360 360 0 0.001 0.0015 0.002 0; %vsc3 II +10004 7282 0.00025 0.041 0 1000 1000 1000 1 0 1 -360 360 -500 0 0 0 0 0 0 0 0 1.075 1.22 0.75 1 0.5 1 -0.5 0.5 -100 100 0 0.001 0.0015 0.002 0; %vsc4 I +10005 352 0.00025 0.041 0 1000 1000 1000 1 0 1 -360 360 -450 0 0 0 0 0 0 0 0 0 1 1 1 0.5 1 -0.5 0.5 -100 100 0 0.001 0.0015 0.002 0; %vsc5 I +10003 10004 0.0007 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +10004 10005 0.0007 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +10005 10003 0.0007 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; + +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; +]; diff --git a/src/tests/data/grids/fubm_caseHVDC_qt.m b/src/tests/data/grids/fubm_caseHVDC_qt.m new file mode 100644 index 000000000..9bc962e90 --- /dev/null +++ b/src/tests/data/grids/fubm_caseHVDC_qt.m @@ -0,0 +1,49 @@ +function mpc = fubm_caseHVDC_qt +%%%%%%%%%%%%%%%%%%%%%%%%%% Case HVDC %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin +mpc.bus = [ + 001 3 0 0 0 0 1 1 0 135 1 1.1 0.9; + 002 1 3 0.3 0 0 1 1 0 135 1 1.1 0.9; + 003 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 004 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 005 1 1 0.5 0 0 2 1 0 135 1 1.1 0.9; + 006 2 0 0 0 0 2 1 0 135 1 1.1 0.9 +]; + +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + 001 1 0 2 -2 1 100 1 2 0 0 0 0 0 0 0 0 0 0 0 0 + 006 1 0 2 -2 1 100 1 5 0 0 0 0 0 0 0 0 0 0 0 0 +]; + +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ + 001 002 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 005 0.0500 0.50 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 003 002 0.0001 0.15 0 100 100 100 1 0 1 -360 360 0 0 0 -0.3 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC1 + 003 004 0.05 0 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 005 0.0001 0.15 0 100 100 100 0 0 1 -360 360 -0.5 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.02 0; %VSC2 + 006 005 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ +2 0 0 3 0.02 1.0 1.0; +2 0 0 3 0.01 2.0 1.0; +2 0 0 3 0.01 0.0 0.0; +2 0 0 3 0.01 0.0 0.0; +]; + diff --git a/src/tests/data/grids/fubm_caseHVDC_vt.m b/src/tests/data/grids/fubm_caseHVDC_vt.m new file mode 100644 index 000000000..09b592683 --- /dev/null +++ b/src/tests/data/grids/fubm_caseHVDC_vt.m @@ -0,0 +1,49 @@ +function mpc = fubm_caseHVDC_vt +%%%%%%%%%%%%%%%%%%%%%%%%%% Case HVDC %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin +mpc.bus = [ + 001 3 0 0 0 0 1 1 0 135 1 1.1 0.9; + 002 1 3 0.3 0 0 1 1 0 135 1 1.1 0.9; + 003 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 004 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 005 1 2 0.5 0 0 2 1 0 135 1 1.1 0.9; + 006 2 0 0 0 0 2 1 0 135 1 1.1 0.9 +]; + +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + 001 1 0 2 -2 1.1 100 1 2 0 0 0 0 0 0 0 0 0 0 0 0 + 006 1 0 2 -2 1.12 100 1 5 0 0 0 0 0 0 0 0 0 0 0 0 +]; + +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- +mpc.branch = [ + 001 002 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 005 1.0500 0.50 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 005 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 003 002 0.9 0.15 0 100 100 100 1 0 1 -360 360 0 0.0 0 0 0 0 0 0 0 1.096 2 0.1 1 0 1 -5 5 -360 360 0 0.0001 0.015 0.2 0; %VSC1 + 004 005 0.9 0.35 0 100 100 100 0 0 1 -360 360 -0.35 0.0 0 0 0 0 0 0 1.104 0 2 0.1 2 0 1 -5 5 -50 50 0 0.0001 0.015 0.02 0; %VSC2 + 003 004 2.05 0 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; % DC line +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ +2 0 0 3 0.02 1.0 1.0; +2 0 0 3 0.01 2.0 1.0; +2 0 0 3 0.01 0.0 0.0; +2 0 0 3 0.01 0.0 0.0; +]; + diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1.m new file mode 100644 index 000000000..911652c5f --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt1 +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0.01 0.0001 0.15 2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50.0 50 0.10 0.0001 0.15 2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50.0 50 0.001 0.0001 0.15 2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0.01 0.0001 0.15 2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.038 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0.01 0.0001 0.15 2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.05 0 1 1 2 0 1 -0.5 0.5 -50.0 50 0.01 0.0001 0.15 2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1_pf.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1_pf.m new file mode 100644 index 000000000..f4f370268 --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1_pf.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt1_pf +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50.0 50 0 0.0001 0.015 0.2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50.0 50 0 0.0001 0.015 0.2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.038 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.05 0 1 1 2 0 1 -0.5 0.5 -50.0 50 0 0.0001 0.015 0.2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2.m new file mode 100644 index 000000000..ba9d54716 --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt2 +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.01 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.15 2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.15 2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.15 2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.15 2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.15 2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.07 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.15 2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf.m new file mode 100644 index 000000000..6abee6ddd --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt2_pf +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.01 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.07 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf_dp.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf_dp.m new file mode 100644 index 000000000..cc69a2f2a --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf_dp.m @@ -0,0 +1,201 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt2_pf_dp +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + 4 909; %area 4 Statcom for VSC + 5 910; %area 5 Voltage Droop + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 2) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9;%Wind Farm Injection + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9;%Wind Farm Injection + %Area 4 (Transformer nodes for STATCOMs) + 909 1 0 0 0 0 4 1 0 200 1 1.15 0.9; + %Area 4 (STATCOMs) + 9 1 0 0 0 0 4 1 0 200 1 1.15 0.9;%Fixed Node for STATCOM + %Area 5 (Transformer nodes for VSC DC GRID 3, DROOP) + 910 1 0 0 0 0 5 1 0 200 1 1.15 0.9; + 911 1 0 0 0 0 5 1 0 200 1 1.15 0.9; + %Area 4 (DC GRID 3, VSC DROOP) + 10 1 0 0 0 0 5 1 0 200 1 1.15 0.9;%Droop node + 11 1 0 0 0 0 5 1 0 200 1 1.15 0.9; +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0;%CTT1 + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.01 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0;%CTT2 + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST2 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -3.5 0 0 0 0 0 0 0 1.1 0 1 1 4 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 -0.1; %VSC1droop + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.35 0 0 0 0 0 0 0 1.1 0 1 1 3 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 -0.05; %VSC3droopZ +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.07 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-4 (Transformers for VSC STATCOM) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 124 909 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 4 (VSC of STATCOM) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 009 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC9vdc +%Area 1-5 (Transformers for VSC DC GRID 3) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 123 910 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 911 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 5 (VSC of DC GRID 3) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 010 910 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 2 0 0 0 0 0 0 0 1.0 0 1 1 4 0 1 -0.5 0.5 -100 100 0 0.0001 0.015 0.2 -0.05; %VSC10droop + 011 911 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC11z +%Area 5 (DC GRID 3) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 010 011 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.m b/src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.m new file mode 100644 index 000000000..9cd86d3a6 --- /dev/null +++ b/src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.m @@ -0,0 +1,292 @@ +function mpc = fubm_case_57_14_2MTDC_ctrls +%%%%%%%%%%%%%%%%%%%%%%%%%% IEEE_57_14_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 57 Bus System + 2 201; %area 2 IEEE 14 Bus System + 3 1; %DC area 1 + 4 4; %DC area 2 + ]; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 57 Bus System) + 101 3 55 17 0 0 1 1 0 0 1 1.06 0.94; + 102 2 3 88 0 0 1 1 0 0 1 1.06 0.94; + 103 2 41 21 0 0 1 1 0 0 1 1.06 0.94; + 104 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 105 1 13 4 0 0 1 1 0 0 1 1.06 0.94; + 106 2 75 2 0 0 1 1 0 0 1 1.06 0.94; + 107 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 108 2 150 22 0 0 1 1 0 0 1 1.06 0.94; + 109 2 121 26 0 0 1 1 0 0 1 1.06 0.94; + 110 1 5 2 0 0 1 1 0 0 1 1.06 0.94; + 111 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 112 2 377 24 0 0 1 1 0 0 1 1.06 0.94; + 113 1 18 2.3 0 0 1 1 0 0 1 1.06 0.94; + 114 1 10.5 5.3 0 0 1 1 0 0 1 1.06 0.94; + 115 1 22 5 0 0 1 1 0 0 1 1.06 0.94; + 116 1 43 3 0 0 1 1 0 0 1 1.06 0.94; + 117 1 42 8 0 0 1 1 0 0 1 1.06 0.94; + 118 1 27.2 9.8 0 10 1 1 0 0 1 1.06 0.94; + 119 1 3.3 0.6 0 0 1 1 0 0 1 1.06 0.94; + 120 1 2.3 1 0 0 1 1 0 0 1 1.06 0.94; + 121 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 122 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 123 1 6.3 2.1 0 0 1 1 0 0 1 1.06 0.94; + 124 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 125 1 6.3 3.2 0 5.9 1 1 0 0 1 1.06 0.94; + 126 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 127 1 9.3 0.5 0 0 1 1 0 0 1 1.06 0.94; + 128 1 4.6 2.3 0 0 1 1 0 0 1 1.06 0.94; + 129 1 17 2.6 0 0 1 1 0 0 1 1.06 0.94; + 130 1 3.6 1.8 0 0 1 1 0 0 1 1.06 0.94; + 131 1 5.8 2.9 0 0 1 1 0 0 1 1.06 0.94; + 132 1 1.6 0.8 0 0 1 1 0 0 1 1.06 0.94; + 133 1 3.8 1.9 0 0 1 1 0 0 1 1.06 0.94; + 134 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 135 1 6 3 0 0 1 1 0 0 1 1.06 0.94; + 136 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 137 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 138 1 14 7 0 0 1 1 0 0 1 1.06 0.94; + 139 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 140 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 141 1 6.3 3 0 0 1 1 0 0 1 1.06 0.94; + 142 1 7.1 4.4 0 0 1 1 0 0 1 1.06 0.94; + 143 1 2 1 0 0 1 1 0 0 1 1.06 0.94; + 144 1 12 1.8 0 0 1 1 0 0 1 1.06 0.94; + 145 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 146 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 147 1 29.7 11.6 0 0 1 1 0 0 1 1.06 0.94; + 148 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 149 1 18 8.5 0 0 1 1 0 0 1 1.06 0.94; + 150 1 21 10.5 0 0 1 1 0 0 1 1.06 0.94; + 151 1 18 5.3 0 0 1 1 0 0 1 1.06 0.94; + 152 1 4.9 2.2 0 0 1 1 0 0 1 1.06 0.94; + 153 1 20 10 0 6.3 1 1 0 0 1 1.06 0.94; + 154 1 4.1 1.4 0 0 1 1 0 0 1 1.06 0.94; + 155 1 6.8 3.4 0 0 1 1 0 0 1 1.06 0.94; + 156 1 7.6 2.2 0 0 1 1 0 0 1 1.06 0.94; + 157 1 6.7 2 0 0 1 1 0 0 1 1.06 0.94; + %Area 2 (IEEE 14 Bus System) + 201 2 0 0 0 0 2 1 0 0 1 1.06 0.94; + 202 2 21.7 12.7 0 0 2 1 0 0 1 1.06 0.94; + 203 2 94.2 19 0 0 2 1 0 0 1 1.06 0.94; + 204 1 47.8 -3.9 0 0 2 1 0 0 1 1.06 0.94; + 205 1 7.6 1.6 0 0 2 1 0 0 1 1.06 0.94; + 206 2 11.2 7.5 0 0 2 1 0 0 1 1.06 0.94; + 207 1 0 0 0 0 2 1 0 0 1 1.06 0.94; + 208 2 0 0 0 0 2 1 0 0 1 1.06 0.94; + 209 1 29.5 16.6 0 19 2 1 0 0 1 1.06 0.94; + 210 1 9 5.8 0 0 2 1 0 0 1 1.06 0.94; + 211 1 3.5 1.8 0 0 2 1 0 0 1 1.06 0.94; + 212 1 6.1 1.6 0 0 2 1 0 0 1 1.06 0.94; + 213 1 13.5 5.8 0 0 2 1 0 0 1 1.06 0.94; + 214 1 14.9 5 0 0 2 1 0 0 1 1.06 0.94; + %Area 3 (DC Area 1) + 1 1 0 0 0 0.0 3 1 0 100.0 1 1.06 0.94; %DC A3 + 2 1 0 0 0 0.0 3 1 0 100.0 1 1.06 0.94; %DC A3 + 3 1 0 0 0 0.0 3 1 0 100.0 1 1.06 0.94; %DC A3 + %Area 4 (DC Area 2) + 4 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 5 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 6 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 7 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 8 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 9 1 -20 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 10 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 128.9 -16.1 200 -140 1.04 100 1 575.88 0 0 0 0 0 0 0 0 0 0 0 0; + 102 0 -0.8 50 -17 1.01 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 103 40 -1 60 -10 0.985 100 1 140 0 0 0 0 0 0 0 0 0 0 0 0; + 106 0 0.8 25 -8 0.98 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 108 450 62.1 200 -140 1.005 100 1 550 0 0 0 0 0 0 0 0 0 0 0 0; + 109 0 2.2 9 -3 0.98 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 112 310 128.5 155 -150 1.015 100 1 410 0 0 0 0 0 0 0 0 0 0 0 0; + %IEEE 14 Bus System + 201 232.4 -16.9 10 0 1.06 100 1 332.4 0 0 0 0 0 0 0 0 0 0 0 0; + 202 40 42.4 50 -40 1.045 100 1 140 0 0 0 0 0 0 0 0 0 0 0 0; + 203 0 23.4 40 0 1.01 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 206 0 12.2 24 -6 1.07 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 208 0 17.4 24 -6 1.09 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + %PV Generator is added as a load in bus 9 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.0083 0.028 0.129 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 103 0.0298 0.085 0.0818 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.0112 0.0366 0.038 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 105 0.0625 0.132 0.0258 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.043 0.148 0.0348 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.02 0.102 0.0276 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.0339 0.173 0.047 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 109 0.0099 0.0505 0.0548 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0.0369 0.1679 0.044 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0.0258 0.0848 0.0218 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 112 0.0648 0.295 0.0772 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 113 0.0481 0.158 0.0406 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 113 114 0.0132 0.0434 0.011 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 113 115 0.0269 0.0869 0.023 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 115 0.0178 0.091 0.0988 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 116 0.0454 0.206 0.0546 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 117 0.0238 0.108 0.0286 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 115 0.0162 0.053 0.0544 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 118 0 0.555 0 000 0 0 0.97 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 118 0 0.43 0 000 0 0 0.978 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 106 0.0302 0.0641 0.0124 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 107 108 0.0139 0.0712 0.0194 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 112 0.0277 0.1262 0.0328 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 111 113 0.0223 0.0732 0.0188 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0.0178 0.058 0.0604 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.018 0.0813 0.0216 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 117 0.0397 0.179 0.0476 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.0171 0.0547 0.0148 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.461 0.685 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.283 0.434 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 120 0 0.7767 0 000 0 0 1.043 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.0736 0.117 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 123 0.0099 0.0152 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.166 0.256 0.0084 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0 1.182 0 000 0 0 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0 1.23 0 000 0 0 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 126 0 0.0473 0 000 0 0 1.043 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 126 127 0.165 0.254 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 128 0.0618 0.0954 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 129 0.0418 0.0587 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 107 129 0 0.0648 0 000 0 0 0.967 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 130 0.135 0.202 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 131 0.326 0.497 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 131 132 0.507 0.755 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 132 133 0.0392 0.036 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 134 132 0 0.953 0 000 0 0 0.975 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 134 135 0.052 0.078 0.0032 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 135 136 0.043 0.0537 0.0016 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 136 137 0.029 0.0366 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 137 138 0.0651 0.1009 0.002 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 137 139 0.0239 0.0379 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 136 140 0.03 0.0466 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 138 0.0192 0.0295 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 111 141 0 0.749 0 000 0 0 0.955 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 141 142 0.207 0.352 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 141 143 0 0.412 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 138 144 0.0289 0.0585 0.002 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 145 0 0.1042 0 000 0 0 0.955 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 146 0 0.0735 0 000 0 0 0.9 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 146 147 0.023 0.068 0.0032 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 147 148 0.0182 0.0233 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 148 149 0.0834 0.129 0.0048 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 149 150 0.0801 0.128 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 150 151 0.1386 0.22 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 151 0 0.0712 0 000 0 0 0.93 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 113 149 0 0.191 0 000 0 0 0.895 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 152 0.1442 0.187 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 152 153 0.0762 0.0984 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 153 154 0.1878 0.232 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 154 155 0.1732 0.2265 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 111 143 0 0.153 0 000 0 0 0.958 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 144 145 0.0624 0.1242 0.004 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 140 156 0 1.195 0 000 0 0 0.958 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 156 141 0.553 0.549 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 156 142 0.2125 0.354 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 139 157 0 1.355 0 000 0 0 0.98 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 157 156 0.174 0.26 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 138 149 0.115 0.177 0.003 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 138 148 0.0312 0.0482 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 155 0 0.1205 0 000 0 0 0.94 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 IEEE 14 Bus System rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + 201 202 0.01938 0.05917 0.0528 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 201 205 0.05403 0.22304 0.0492 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 202 203 0.04699 0.19797 0.0438 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 202 204 0.05811 0.17632 0.034 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 202 205 0.05695 0.17388 0.0346 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 203 204 0.06701 0.17103 0.0128 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 204 205 0.01335 0.04211 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 204 207 0 0.20912 0 000 0 0 0.978 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 204 209 0 0.55618 0 000 0 0 0.969 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 205 206 0 0.25202 0 000 0 0 0.932 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 206 211 0.09498 0.1989 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 206 212 0.12291 0.25581 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 206 213 0.06615 0.13027 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 207 208 0 0.17615 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 207 209 0 0.11001 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 209 210 0.03181 0.0845 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 209 214 0.12711 0.27038 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 210 211 0.08205 0.19207 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 212 213 0.22092 0.19988 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 213 214 0.17093 0.34802 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC Area 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A bEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + % DC Grid + 1 2 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 2 3 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 3 1 0.020 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + % DC Converters rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + 1 212 0.0510 0.033 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 1.05 0 0 0 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv1 + 2 150 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv2 + 3 151 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv3 + % DC Transformers +%Area 4 (DC Area 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + % DC Grid + 4 9 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 4 10 0.005 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 5 6 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 5 7 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 6 10 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 7 10 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 8 9 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + % DC Converters rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + 4 101 0.0510 0.033 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 1.01 0 0 0 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv4 + 5 202 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv5 + 6 205 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv6 + 7 115 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv7 + 8 117 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv8 + % DC Transformers + ]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.077579519 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.25 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.0222222222 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.0322580645 20 0; + 2 0 0 3 0.0430292599 20 0; + 2 0 0 3 0.25 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.01 40 0; + %Qg cost + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; +]; diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index 6c3be589c..067596cf6 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -350,3 +350,20 @@ def test_power_flow_control_with_pst_pt() -> None: # check that the bus voltage module is the the transformer voltage set point assert np.isclose(results.St[7].real, grid.transformers2w[0].Pset, atol=options.tolerance) + + +def test_fubm(): + """ + + :return: + """ + fname = os.path.join('data', 'grids', 'fubm_caseHVDC_vt.m') + grid = gce.open_file(fname) + + opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=0) + driver = gce.PowerFlowDriver(grid=grid, options=opt) + driver.run() + results = driver.results + vm = np.abs(results.voltage) + expected_vm = np.array([1.1000, 1.0960, 1.0975, 1.1040, 1.1119, 1.1200]) + assert np.allclose(vm, expected_vm, rtol=1e-4) diff --git a/src/trunk/acdc_pf/fubm_example.py b/src/trunk/acdc_pf/fubm_example.py index e52d663d1..b1949b18a 100644 --- a/src/trunk/acdc_pf/fubm_example.py +++ b/src/trunk/acdc_pf/fubm_example.py @@ -16,4 +16,5 @@ print() print(results.get_branch_df()) print("Error:", results.error) +print("Vm:", np.abs(results.voltage)) driver.logger.print() From 4590c8f1641c8132ca8ccd3878c33972e5da5df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Pe=C3=B1ate=20Vera?= Date: Mon, 19 Aug 2024 14:54:28 +0100 Subject: [PATCH 078/218] Created test for the bus derivatives --- .idea/workspace.xml | 1451 +++++++---------- .../NumericalMethods/common_functions.py | 14 + .../pf_advanced_formulation.py | 16 +- .../Topology/admittance_matrices.py | 3 + src/tests/test_derivatives.py | 42 +- src/trunk/acdc_pf/fubm_example.py | 2 +- 6 files changed, 656 insertions(+), 872 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ba1d0405f..587b74d9a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,18 +28,12 @@ - + - + - - @@ -116,7 +115,7 @@ - { "customColor": "", @@ -137,37 +136,56 @@ "Git.Branch.Popup.ShowAllRemotes": "true", "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Debug", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", "Python tests.pytest in tests.executor": "Run", "Python.AnalysisDialogue.executor": "Run", "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", "Python.cgmes_rdfs_graph.executor": "Run", "Python.fubm_example.executor": "Run", "Python.new_circuit_objects.executor": "Run", - "Python.node_widget.executor": "Run", - "Python.power_flow_research_sinj.executor": "Debug", "Python.pymoo_example.executor": "Debug", - "Python.run.executor": "Run", - "Python.update_gui_file (1).executor": "Run", + "Python.raw_imp_exp_test.executor": "Run", "Python.update_gui_file.executor": "Run", - "Python.wind_power_wizzard.executor": "Run", + "Python.upload_to_pypi.executor": "Run", "RunOnceActivity.OpenProjectViewOnStart": "true", "RunOnceActivity.ShowReadmeOnStart": "true", "WebServerToolWindowFactoryState": "false", "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "C:/Work/git_local/GridCal/doc", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", "node.js.detected.package.eslint": "true", "node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)", "nodejs_package_manager_path": "npm", "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", "vue.rearranger.settings.migration": "true" } @@ -179,21 +197,21 @@ - - - - + + + + + + + + - - - - - + - - + + - - - + + + - - + + - - - + + + - @@ -1337,35 +1350,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1656059954202 @@ -1710,7 +1781,7 @@ - @@ -1737,39 +1808,51 @@ - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1844,6 +1927,11 @@ 55 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 9dd11a177..7ab18c83d 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -1161,7 +1161,7 @@ def derivatives_Beq_csc_numba(nbus, nbr, iBeqx, F, V, tap_module, kconv): return dSbus_dBeq, dSf_dBeq, dSt_dBeq -# @njit() +@njit() def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ @@ -1214,7 +1214,7 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo return mat -# @njit() +@njit() def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) @@ -1260,7 +1260,7 @@ def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module return mat -# @njit() +@njit() def dSt_dbeq_csc(sf_indices, beq_indices) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 2bf679c8b..59722d018 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -36,7 +36,7 @@ from GridCalEngine.basic_structures import Vec, IntVec, CxVec -# @njit() +@njit() def adv_jacobian(nbus: int, nbr: int, idx_dva: IntVec, @@ -63,7 +63,6 @@ def adv_jacobian(nbus: int, Ybus_x: CxVec, Ybus_p: IntVec, Ybus_i: IntVec, - Ybus, yff: CxVec, yft: CxVec, ytf: CxVec, @@ -103,13 +102,13 @@ def adv_jacobian(nbus: int, :return: """ # bus-bus derivatives (always needed) - # dS_dVm_x, dS_dVa_x = deriv.dSbus_dV_numba_sparse_csc(Ybus_x, Ybus_p, Ybus_i, V, Vm) - # dS_dVm = CxCSC(nbus, nbus, len(dS_dVm_x), False).set(Ybus_i, Ybus_p, dS_dVm_x) - # dS_dVa = CxCSC(nbus, nbus, len(dS_dVa_x), False).set(Ybus_i, Ybus_p, dS_dVa_x) + dS_dVm_x, dS_dVa_x = deriv.dSbus_dV_numba_sparse_csc(Ybus_x, Ybus_p, Ybus_i, V, Vm) + dS_dVm = CxCSC(nbus, nbus, len(dS_dVm_x), False).set(Ybus_i, Ybus_p, dS_dVm_x) + dS_dVa = CxCSC(nbus, nbus, len(dS_dVa_x), False).set(Ybus_i, Ybus_p, dS_dVa_x) - dSbus_dVa, dSbus_dVm = mderiv.dSbus_dV_matpower(Ybus, V) - dS_dVa = scipy_to_cxmat(dSbus_dVa) - dS_dVm = scipy_to_cxmat(dSbus_dVm) + # dSbus_dVa, dSbus_dVm = mderiv.dSbus_dV_matpower(Ybus, V) + # dS_dVa = scipy_to_cxmat(dSbus_dVa) + # dS_dVm = scipy_to_cxmat(dSbus_dVm) dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dva) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dva) @@ -554,7 +553,6 @@ def Jacobian(self, autodiff: bool = False) -> CSC: Ybus_x=self.adm.Ybus.data, Ybus_p=self.adm.Ybus.indptr, Ybus_i=self.adm.Ybus.indices, - Ybus=self.adm.Ybus, yff=self.adm.yff, yft=self.adm.yft, ytf=self.adm.ytf, diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index c46d3fe86..cd138a1af 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -55,15 +55,15 @@ def __init__(self, :param Yshunt_bus: array of shunt admittances per bus :param Gsw: Switch losses in the converters """ - self.Ybus = Ybus + self.Ybus = Ybus if Ybus.format == 'csc' else Ybus.tocsc() - self.Yf = Yf + self.Yf = Yf if Yf.format == 'csc' else Yf.tocsc() - self.Yt = Yt + self.Yt = Yt if Yt.format == 'csc' else Yt.tocsc() - self.Cf = Cf + self.Cf = Cf if Cf.format == 'csc' else Cf.tocsc() - self.Ct = Ct + self.Ct = Ct if Ct.format == 'csc' else Ct.tocsc() self.yff = yff @@ -263,7 +263,8 @@ def compute_admittances(R: Vec, if verbose > 0: print('Ybus:', Ybus.toarray()) - return AdmittanceMatrices(Ybus, Yf, Yt, Cf, Ct, Yff, Yft, Ytf, Ytt, Yshunt_bus, Gsw, Beq) + return AdmittanceMatrices(Ybus.tocsc(), Yf.tocsc(), Yt.tocsc(), Cf.tocsc(), Ct.tocsc(), + Yff, Yft, Ytf, Ytt, Yshunt_bus, Gsw, Beq) def compute_passive_admittances(R: Vec, @@ -358,7 +359,7 @@ def compute_passive_admittances(R: Vec, Yt = sp.diags(ytf) * Cf + sp.diags(ytt) * Ct Ybus = Cf.T * Yf + Ct.T * Yt + sp.diags(Yshunt_bus) - return AdmittanceMatrices(Ybus, Yf, Yt, Cf, Ct, yff, yft, ytf, ytt, Yshunt_bus, np.zeros_like(R)) + return AdmittanceMatrices(Ybus, Yf, Yt, Cf, Ct, yff, yft, ytf, ytt, Yshunt_bus, np.zeros_like(R), np.zeros_like(R)) def compute_tap_control_admittances_injectins( From 1bdf88352332a7744e33dd07ce8f7a06f955037f Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 19 Aug 2024 23:07:56 +0100 Subject: [PATCH 082/218] passing al tests --- .idea/workspace.xml | 71 +++++++++---------- .../DataStructures/numerical_circuit.py | 6 +- .../IO/matpower/matpower_parser.py | 3 + .../NumericalMethods/common_functions.py | 2 +- .../pf_advanced_formulation.py | 8 +-- .../NumericalMethods/pf_basic_formulation.py | 20 ++++-- 6 files changed, 58 insertions(+), 52 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3af6577a5..f87bb0a77 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,13 @@ - + - - + + + + + + + + + + - + @@ -89,6 +96,13 @@ + + + @@ -125,72 +139,67 @@ - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.fubm_example.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "199__finalize__cgmes__import", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} - - - + + + @@ -234,50 +243,6 @@ - @@ -1439,14 +1442,15 @@ - - - - - - - - + + + + + + + + + 1656059954202 @@ -1791,7 +1795,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1937,11 +1942,6 @@ 55 + + + + + - - + - @@ -2434,16 +2309,14 @@ - - - + @@ -2454,16 +2327,15 @@ - + - + - @@ -2472,33 +2344,30 @@ - - - - - + + - - - + + + @@ -2524,28 +2393,23 @@ - - + - - - - - + + - @@ -2555,13 +2419,12 @@ - + - @@ -2579,25 +2442,26 @@ + + - - - + + - + - + @@ -2605,10 +2469,10 @@ + - @@ -2618,6 +2482,7 @@ + @@ -2626,14 +2491,15 @@ - + + @@ -2655,19 +2521,19 @@ - + - + - + @@ -2678,36 +2544,34 @@ + - - + - + - + - - + - @@ -2716,28 +2580,28 @@ - + - - + - + + - + @@ -2745,11 +2609,11 @@ - + - + @@ -2759,72 +2623,66 @@ + - - + - - - + - - + - - - + - - + - + - + - + - + - + \ No newline at end of file diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index f549e44dc..d80450121 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -42,7 +42,7 @@ def add_investments_to_grid(grid): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] + group=inv_group) # template=line.possible_tower_types[:] grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/examples/try_template_loading.py b/examples/try_template_loading.py index f5c7dd5b9..9add5fba7 100644 --- a/examples/try_template_loading.py +++ b/examples/try_template_loading.py @@ -24,7 +24,7 @@ def process_dummy_grid(): my_tr = main_circuit.transformers2w[0] inv_group = dev.InvestmentsGroup(name='Ig0') - investment1 = dev.Investment(name='Investment 1x', group=inv_group, template=my_tr) + investment1 = dev.Investment(name='Investment 1x', group=inv_group, device_idtag=my_tr.idtag) main_circuit.add_investment(investment1) main_circuit.add_investments_group(inv_group) gce.save_file(main_circuit, 'C:/Users/J/Downloads/temp_tr1_invested.gridcal') diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 19989f1d8..76e6bffbd 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1580,55 +1580,13 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm.type_name == 'Transformer': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_transformer_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - elif elm.type_name == 'Line': - if elm.type_name == 'Sequence line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_sequence_line_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - elif elm.type_name == 'Underground line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_underground_line_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - elif elm.type_name == 'Tower': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_tower_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - else: - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group) - self.circuit.add_investment(con) + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group) + self.circuit.add_investment(con) else: info_msg("Select some elements in the schematic first", "Add selected to investment") diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 7f4ef7f44..0f568b373 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -16,8 +16,6 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from __future__ import annotations from typing import Dict, Union, TYPE_CHECKING, Tuple - -from GridCalEngine.Devices import Associations from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Aggregation.area import Area diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index c7b69f644..8606dc4c1 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -122,11 +122,6 @@ def __init__(self, nelm: int, nbus: int): self.original_idx: IntVec = np.zeros(nelm, dtype=int) - self.possible_transformer_types = np.ones(self.nelm, dtype=list) - self.possible_tower_types = np.ones(self.nelm, dtype=list) - self.possible_underground_line_types = np.ones(self.nelm, dtype=list) - self.possible_sequence_line_types = np.ones(self.nelm, dtype=list) - def size(self) -> int: """ Get size of the structure diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index e91bddd7d..5062d6c17 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,5 +1,21 @@ -from typing import Union, Any, Dict +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import Union from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup from GridCalEngine.Devices.Associations.association import Associations @@ -19,8 +35,6 @@ def __init__(self, OPEX: float = 0.0, status: bool = True, group: InvestmentsGroup = None, - template_data: SubObjectType.Associations = None, - template_type: DeviceType = None, comment: str = ""): """ Investment @@ -49,11 +63,6 @@ def __init__(self, self.status = status self.group = group - self.template = Associations(device_type=template_type) - if template_data is not None: - for vv in template_data: - self.template.add(val=vv) - self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, definition='Capital expenditures. This is the initial investment.') @@ -63,48 +72,27 @@ def __init__(self, definition='If true the investment activates when applied, otherwise is deactivated.') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') - self.register(key='template', units='', tpe=SubObjectType.Associations, - definition='Possible templates of each component') - - -@property -def group(self) -> InvestmentsGroup: - """ - Group of investments - :return: - """ - return self._group - - -@group.setter - - -def group(self, val: InvestmentsGroup): - self._group = val - - -@property -def category(self): - """ - Display the group category - :return: - """ - return self.group.category + @property + def group(self) -> InvestmentsGroup: + """ + Group of investments + :return: + """ + return self._group + @group.setter + def group(self, val: InvestmentsGroup): + self._group = val -@category.setter -def category(self, val): - # The category is set through the group, so no implementation here - pass + @property + def category(self): + """ + Display the group category + :return: + """ + return self.group.category -# @property -# def template(self): -# """ -# Template of component -# :return: -# """ -# return self.template -# -# @template.setter -# def template(self, val): -# self.template = val + @category.setter + def category(self, val): + # The category is set through the group, so no implementation here + pass diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index 33f55097e..d17117fb0 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -84,9 +84,17 @@ def __init__(self, device_type: DeviceType): Constructor :param device_type: DeviceType """ - self.data: Dict[str, Association] = dict() + self._data: Dict[str, Association] = dict() self._device_type = device_type + @property + def data(self): + """ + + :return: + """ + return self._data + @property def device_type(self) -> DeviceType: """ @@ -114,7 +122,7 @@ def add(self, val: Association): """ if val.api_object is not None: - self.data[val.api_object.idtag] = val + self._data[val.api_object.idtag] = val def add_object(self, api_object: ASSOCIATION_TYPES, val: float) -> Association: """ @@ -134,7 +142,7 @@ def remove(self, val: Association): :return: None """ if val.api_object is not None: - del self.data[val.api_object.idtag] + del self._data[val.api_object.idtag] def remove_by_key(self, key: str): """ @@ -142,8 +150,8 @@ def remove_by_key(self, key: str): :param key: :return: """ - if key in self.data.keys(): - del self.data[key] + if key in self._data.keys(): + del self._data[key] def at_key(self, key: str) -> Union[Association, None]: """ @@ -151,14 +159,14 @@ def at_key(self, key: str) -> Union[Association, None]: :param key: :return: """ - return self.data.get(key, None) + return self._data.get(key, None) def to_dict(self) -> List[Dict[str, Union[str, float]]]: """ Get dictionary representation of Associations :return: """ - return [val.to_dict() for _, val in self.data.items()] + return [val.to_dict() for _, val in self._data.items()] def parse(self, data: List[Dict[str, Union[str, float]]], @@ -206,20 +214,20 @@ def append(self, item: Association) -> None: self.add(item) def __len__(self) -> int: - return len(self.data) + return len(self._data) def __iter__(self) -> Iterator[Association]: - for key, val in self.data.items(): + for key, val in self._data.items(): yield val def __repr__(self) -> str: - return repr(self.data) + return repr(self._data) def clear(self) -> None: """ Clear data """ - self.data.clear() + self._data.clear() def __eq__(self, other: "Associations") -> bool: """ @@ -234,9 +242,9 @@ def __eq__(self, other: "Associations") -> bool: # different length return False - for key, val in self.data.items(): + for key, val in self._data.items(): - val2 = other.data.get(key, None) + val2 = other._data.get(key, None) if val2 is None: # a key was not found, these are not equal diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index dd95e1c64..e6b452e24 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -278,6 +278,20 @@ def apply_template(self, obj: Union[OverheadLineType, UndergroundLineType, Seque else: logger.add_error('Template not recognised', self.name) + def get_line_type(self) -> SequenceLineType: + """ + Get the equivalent sequence line type oof this line + :return: SequenceLineType + """ + return SequenceLineType(name=f"{self.name}_type", + Imax=1, Vnom=self.get_max_bus_nominal_voltage(), + R=self.R / self.length, + X=self.X / self.length, + B=self.B / self.length, + R0=self.R0 / self.length, + X0=self.X0 / self.length, + B0=self.B0 / self.length) + def get_save_data(self): """ Return the data that matches the edit_headers diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index 76103a273..5d76242ff 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -248,19 +248,6 @@ def __init__(self, definition='Possible transformer types (>1 to denote association), - to denote no association', display=False) - def apply_templates_to_transformers(self, obj, Sbase, logger=Logger()): - """ - Apply the given template to all possible transformer types in the main circuit. - - :param self: The main circuit containing possible transformer types. - :param obj: The template object to apply. - :param Sbase: The base power for the template. - :param logger: Logger for capturing errors and information. - """ - for transformer_type in self.possible_transformer_types: - if transformer_type in self.data: - self.data[transformer_type].apply_template(obj, Sbase, logger) - def set_hv_and_lv(self, HV: float, LV: float): """ set the high and low voltage values @@ -502,48 +489,3 @@ def get_transformer_type(self, Sbase: float = 100.0) -> TransformerType: name='type from ' + self.name) return tpe - - - # def copy(self, bus_dict=None): - # """ - # Returns a copy of the branch - # @return: A new with the same content as this - # """ - # - # if bus_dict is None: - # f = self.bus_from - # t = self.bus_to - # else: - # f = bus_dict[self.bus_from] - # t = bus_dict[self.bus_to] - # - # # z_series = complex(self.R, self.X) - # # y_shunt = complex(self.G, self.B) - # b = Transformer2W(bus_from=f, - # bus_to=t, - # name=self.name, - # r=self.R, - # x=self.X, - # g=self.G, - # b=self.B, - # rate=self.rate, - # tap_module=self.tap_module, - # tap_phase=self.tap_phase, - # active=self.active, - # mttf=self.mttf, - # mttr=self.mttr, - # vset=self.vset, - # temp_base=self.temp_base, - # temp_oper=self.temp_oper, - # alpha=self.alpha, - # template=self.template, - # opex=self.opex, - # capex=self.capex) - # - # b.regulation_bus = self.regulation_bus - # b.regulation_cn = self.regulation_cn - # b.active_prof = self.active_prof - # b.rate_prof = self.rate_prof - # b.Cost_prof = self.Cost_prof - # - # return b diff --git a/src/GridCalEngine/Devices/multi_circuit.py b/src/GridCalEngine/Devices/multi_circuit.py index c4af9a3c6..6d3028052 100644 --- a/src/GridCalEngine/Devices/multi_circuit.py +++ b/src/GridCalEngine/Devices/multi_circuit.py @@ -406,8 +406,6 @@ def apply_all_branch_types(self) -> Logger: for branch in self._transformers2w: if branch.template is not None: branch.apply_template(branch.template, self.Sbase, logger=logger) - # for transformer types found in associations, where to put this - branch.apply_templates_to_transformers(branch.template, self.Sbase, logger=logger) return logger diff --git a/src/GridCalEngine/Devices/types.py b/src/GridCalEngine/Devices/types.py index a574877f0..bb7cc8f08 100644 --- a/src/GridCalEngine/Devices/types.py +++ b/src/GridCalEngine/Devices/types.py @@ -49,6 +49,13 @@ SeriesReactance ] +BRANCH_TEMPLATE_TYPES = Union[ + OverheadLineType, + UndergroundLineType, + SequenceLineType, + TransformerType +] + FLUID_TYPES = Union[ FluidNode, FluidPath, diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py index 24a786f04..f9624c0b5 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import List, Dict, Union from pymoo.core.mixed import MixedVariableGA from pymoo.algorithms.moo.nsga2 import RankAndCrowding # from pymoo.decomposition.asf import ASF @@ -24,24 +25,99 @@ from pymoo.core.variable import Real, Integer, Choice, Binary from GridCalEngine.Devices.Aggregation.investment import Investment +from GridCalEngine.Devices.multi_circuit import MultiCircuit +from GridCalEngine.Devices.Branches.transformer import Transformer2W +from GridCalEngine.Devices.Branches.line import Line +from GridCalEngine.Devices.types import BRANCH_TYPES, BRANCH_TEMPLATE_TYPES +from GridCalEngine.enumerations import DeviceType +from GridCalEngine.basic_structures import Logger class MixedVariableProblem(ElementwiseProblem): """ Problem formulation packaging to use the pymoo library """ - def __init__(self, obj_func, n_obj): + + def __init__(self, grid: MultiCircuit, obj_func, n_obj): """ :param obj_func: :param n_obj: """ - self.templates = Investment().template - vars = { - "transformer1": Choice(options=[self.templates[0]]), - "transformer2": Choice(options=[self.templates[1]]), - "n_cables": Integer(bounds=(2, 3))} - super().__init__(n_obj=n_obj, - vars=vars) + + ElementwiseProblem.__init__(self, n_var=n_obj, n_obj=n_obj) + + self.logger = Logger() + + self.grid = grid + + all_dict = self.grid.get_all_elements_dict() + self.device_template_dict: Dict[BRANCH_TYPES, List[BRANCH_TEMPLATE_TYPES]] = dict() + + # create the decission vars + for investment_group, investments_list in self.grid.get_investments_by_groups(): + + if len(investments_list) == 1: + + for investment in investments_list: + + device = all_dict.get(investment.device_idtag, None) + + if device is not None: + if isinstance(device, Transformer2W): + + for ass_key, association in device.possible_transformer_types.data.items(): + template = association.api_object + lst = self.device_template_dict.get(device, None) + if lst is None: + self.device_template_dict[device] = [template] + else: + lst.extend(template) + + elif isinstance(device, Line): + + for association_type in [device.possible_tower_types, + device.possible_sequence_line_types, + device.possible_underground_line_types]: + + for ass_key, association in association_type.data.items(): + template = association.api_object + lst = self.device_template_dict.get(device, None) + if lst is None: + self.device_template_dict[device] = [template] + else: + lst.extend(template) + else: + self.logger.add_error("Investment device not recognized", + device=device.name, + device_class=device.device_type) + else: + self.logger.add_error("Investment device is none", + device=investment.device_idtag) + else: + self.logger.add_error("Only single-investment groups can be considered", + device=investment_group.name, + device_class=investment_group.device_type.value) + + # convert the data to decission vars: the decission vars are + # integers from 0 to the number of templates of each device (the template position in self.data[device]) + self.variables: Dict[str, Integer] = dict() + self.devices = list() # list of devices in sequential order to match the order of the vars + self.default_tamplate = list() # list of templates that represent the devices in their initial state + for elm, template_list in self.device_template_dict.items(): + self.variables[elm.idtag] = Integer(bounds=(0, len(template_list) + 1)) + self.devices.append(elm) + + if isinstance(elm, Line): + default_template = elm.get_line_type() + + elif isinstance(elm, Transformer2W): + default_template = elm.get_transformer_type(Sbase=self.grid.Sbase) + else: + raise Exception('Device not recognized') + + self.default_tamplate.append(default_template) + + super().__init__(n_obj=n_obj, vars=self.variables) self.obj_func = obj_func def _evaluate(self, x, out, *args, **kwargs): @@ -54,21 +130,21 @@ def _evaluate(self, x, out, *args, **kwargs): :return: """ - capex = CapexAcciona() - capex.print_capex() - - # Ideally, we want this to be automatically inputted: - # react1_bi, react2_bi, react3_bi, react4_bi, react5_bi, vol, n_cables, S_rtr, react1, react2, react3, react4, - # react5 = x["react1_bi"], x["react2_bi"], x["react3_bi"], x["react4_bi"], x["react5_bi"], x["vol_level"], - # x["n_cables"], x["S_rtr"], x["react1"], x["react2"], x["react3"], x["react4"], x["react5"] - # def build_grid_data - # then - # def run_pf or now run_opf - # then - # def compute_costs - # then - # obj_func = capex + opex - # to be outputted as out["F"] + for i, xi in enumerate(x): + device = self.devices[i] + if xi > 0: + template = self.data[device.idtag][xi] + + if isinstance(device, Line): + device.apply_template(template, Sbase=self.grid.Sbase, logger=self.logger) + + elif isinstance(device, Transformer2W): + device.apply_template(template, Sbase=self.grid.Sbase, logger=self.logger) + + else: + raise Exception('Device not recognized') + else: + device.apply_template(self.default_tamplate[i], Sbase=self.grid.Sbase, logger=self.logger) out["F"] = self.obj_func(x) From 27fa62cc43bf22bc1a0aca1e76db828e57095712 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 11:27:13 +0100 Subject: [PATCH 084/218] more refactoring --- .../Gui/Main/SubClasses/Model/objects.py | 8 +-- src/GridCal/Gui/associations_model.py | 3 +- .../Compilers/circuit_to_data.py | 4 -- .../DataStructures/branch_data.py | 4 -- .../Devices/Aggregation/investment.py | 12 ++-- .../Devices/Associations/association.py | 9 +-- src/GridCalEngine/Devices/Branches/line.py | 24 +++++++- .../Devices/Branches/transformer.py | 1 - src/GridCalEngine/Devices/Branches/wire.py | 2 +- src/GridCalEngine/Devices/assets.py | 15 ----- src/GridCalEngine/Devices/types.py | 2 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 56 +------------------ src/GridCalEngine/enumerations.py | 2 - 13 files changed, 36 insertions(+), 106 deletions(-) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/objects.py b/src/GridCal/Gui/Main/SubClasses/Model/objects.py index 29af089e4..f4e88c57f 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/objects.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/objects.py @@ -376,13 +376,7 @@ def display_associations(self): gc_prop = elements[0].get_property_by_name(prop_name=association_prperty_name) associations: dev.Associations = elements[0].get_snapshot_value_by_name(name=association_prperty_name) - if elements[0].device_type == DeviceType.InvestmentDevice: - associated_objects = [] - for dev_type in [DeviceType.TransformerTypeDevice, DeviceType.OverheadLineTypeDevice, - DeviceType.UnderGroundLineDevice, DeviceType.SequenceLineDevice]: - associated_objects += self.circuit.get_elements_by_type(device_type=dev_type) - else: - associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) + associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) self.ui.association_units_label.setText(gc_prop.units) if len(associated_objects) > 0: diff --git a/src/GridCal/Gui/associations_model.py b/src/GridCal/Gui/associations_model.py index a81439a87..2f6937130 100644 --- a/src/GridCal/Gui/associations_model.py +++ b/src/GridCal/Gui/associations_model.py @@ -21,7 +21,6 @@ from PySide6 import QtCore, QtWidgets from GridCal.Gui.GuiFunctions import (FloatDelegate) -from GridCalEngine.enumerations import DeviceType from GridCalEngine.Devices.Associations.association import Association, Associations from GridCalEngine.Devices.Parents.editable_device import GCProp from GridCalEngine.Devices.types import ASSOCIATION_TYPES, ALL_DEV_TYPES @@ -85,7 +84,7 @@ def __init__(self, self._decimals = decimals - # flag for the headers text wrapper: HeaderViewWithWordWrap + # flag for the headers text wraper: HeaderViewWithWordWrap self._hide_headers_mode = False def hideHeaders(self): diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 0f568b373..129a51250 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -781,10 +781,6 @@ def get_branch_data(circuit: MultiCircuit, data.control_mode[i] = TransformerControlType.fixed - data.possible_tower_types[i] = elm.possible_tower_types - data.possible_underground_line_types[i] = elm.possible_underground_line_types - data.possible_sequence_line_types[i] = elm.possible_sequence_line_types - ii += 1 # DC-lines diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 8606dc4c1..bfcdc96b0 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -105,10 +105,6 @@ def __init__(self, nelm: int, nbus: int): self.alpha2: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha2) self.alpha3: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha3) self.control_mode: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_tower_types: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_underground_line_types: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_sequence_line_types: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_transformer_types: ObjVec = np.zeros(self.nelm, dtype=object) self.contingency_enabled: IntVec = np.ones(self.nelm, dtype=int) self.monitor_loading: IntVec = np.ones(self.nelm, dtype=int) diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 5062d6c17..e835476eb 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -16,9 +16,8 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Union -from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType +from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup -from GridCalEngine.Devices.Associations.association import Associations class Investment(EditableDevice): @@ -56,12 +55,11 @@ def __init__(self, comment=comment) # Contingency type - self.device_idtag = device_idtag - self.CAPEX = CAPEX - self.OPEX = OPEX + self.device_idtag: str = device_idtag + self.CAPEX: float = CAPEX + self.OPEX: float = OPEX self._group: InvestmentsGroup = group - self.status = status - self.group = group + self.status: bool = status self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index d17117fb0..39ee5c1eb 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -191,15 +191,8 @@ def parse(self, elements_dict=elements_dict ) - if updatable_device_type: - self._device_type = assoc.api_object.device_type - if assoc.api_object is not None: - # Update the device type if needed (as in empty investments) - if updatable_device_type: - self.device_type = assoc.api_object.device_type # use the setter - - # Add the entry + # add the entry self.add(assoc) else: logger.add_error(f'Association api_object not found', diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index e6b452e24..82074032c 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -104,7 +104,7 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi device_type=DeviceType.LineDevice) # line length in km - self.length = length + self._length = length # line impedance tolerance self.tolerance = tolerance @@ -191,6 +191,25 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi definition='Possible sequence line types (>1 to denote association), - to denote no association', display=False) + @property + def length(self) -> float: + """ + Line length in km + :return: float + """ + return self._length + + @length.setter + def length(self, val: float): + if isinstance(val, float): + if val > 0.0: + self._length = val + else: + print('The length cannot be zero, setting it to 1.0 km') + self._length = 1.0 + else: + raise Exception('The length must be a float value') + @property def temp_oper_prof(self) -> Profile: """ @@ -283,6 +302,9 @@ def get_line_type(self) -> SequenceLineType: Get the equivalent sequence line type oof this line :return: SequenceLineType """ + if self.length == 0.0: + raise Exception("Lenght must be greater than 0") + return SequenceLineType(name=f"{self.name}_type", Imax=1, Vnom=self.get_max_bus_nominal_voltage(), R=self.R / self.length, diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index 5d76242ff..229796810 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -228,7 +228,6 @@ def __init__(self, # association with transformer templates self.possible_transformer_types: Associations = Associations(device_type=DeviceType.TransformerTypeDevice) - self.data = Associations(device_type=DeviceType.TransformerTypeDevice) # register self.register(key='HV', units='kV', tpe=float, definition='High voltage rating') diff --git a/src/GridCalEngine/Devices/Branches/wire.py b/src/GridCalEngine/Devices/Branches/wire.py index 92e5eae17..fc04f563b 100644 --- a/src/GridCalEngine/Devices/Branches/wire.py +++ b/src/GridCalEngine/Devices/Branches/wire.py @@ -64,4 +64,4 @@ def copy(self): :return: """ # name='', idtag=None, gmr=0.01, r=0.01, x=0.0, max_current=1 - return Wire(name=self.name, gmr=self.gmr, r=self.r, x=self.x, max_current=self.max_current, stranding=self.stranding, material=self.material, diameter=self.diameter) + return Wire(name=self.name, gmr=self.GMR, r=self.R, x=self.X, max_current=self.max_current, stranding=self.stranding, material=self.material, diameter=self.diameter) diff --git a/src/GridCalEngine/Devices/assets.py b/src/GridCalEngine/Devices/assets.py index eb4447f49..d5b8708c1 100644 --- a/src/GridCalEngine/Devices/assets.py +++ b/src/GridCalEngine/Devices/assets.py @@ -3254,21 +3254,6 @@ def add_investment(self, obj: dev.Investment): """ self._investments.append(obj) - # def add_template(self, obj: Union[dev.OverheadLineType, dev.TransformerType, dev.UndergroundLineType]): - # """ - # Add template - # :param obj: Template - # """ - # if isinstance(obj, dev.TransformerType): - # for elm in self.transformers2w: - # elm.template = obj - # elif isinstance(obj, dev.OverheadLineType): - # for elm in self.overhead_line_types: - # elm.template = obj - # elif isinstance(obj, dev.UndergroundLineType): - # for elm in self.underground_cable_types: - # elm.template = obj - def delete_investment(self, obj: dev.Investment): """ Delete zone diff --git a/src/GridCalEngine/Devices/types.py b/src/GridCalEngine/Devices/types.py index bb7cc8f08..b557d1cde 100644 --- a/src/GridCalEngine/Devices/types.py +++ b/src/GridCalEngine/Devices/types.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from typing import Union, List +from typing import Union from GridCalEngine.Devices.Aggregation import * from GridCalEngine.Devices.Associations import * from GridCalEngine.Devices.Branches import * diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 71e8f1972..49e3f17ee 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -405,9 +405,6 @@ def gridcal_object_to_json(elm: ALL_DEV_TYPES) -> Dict[str, str]: elif prop.tpe == SubObjectType.Associations: data[name] = obj.to_dict() - elif prop.tpe == SubObjectType.TemplateLinks: - data[name] = obj - elif prop.tpe == SubObjectType.Array: data[name] = list(obj) @@ -1047,62 +1044,15 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, elif gc_prop.tpe == SubObjectType.Associations: - """ - There is no way a priori to know the template type when initializing an investment - as its type is not set. Hence, we have to check for two cases: - 1. The investment is empty, in which case we assume all types are possible, and - then update the association type depending on which dictionary it was found - 2. The associations are already set, in which case we just parse the data as we - normally would in the associations of a device - """ + # get the list of associations associations = elm.get_snapshot_value(gc_prop) - update_assoc_type = False - - # 1. Empty investment - if associations.device_type is None: - type_dicts = next((elements_dict_by_type.get(key) for key in - [DeviceType.TransformerTypeDevice, - DeviceType.SequenceLineDevice, - DeviceType.OverheadLineTypeDevice, - DeviceType.UnderGroundLineDevice] - if key in elements_dict_by_type), {}) - update_assoc_type = True - - # 2. Known association type - else: - type_dicts = elements_dict_by_type.get(associations.device_type, {}) - associations.parse( data=property_value, - elements_dict=type_dicts, + elements_dict=elements_dict_by_type.get(associations.device_type, {}), logger=logger, - elm_name=elm.name, - updatable_device_type=update_assoc_type + elm_name=elm.name ) - elif gc_prop.tpe == SubObjectType.ObjectsList: - - val = property_value - elm.set_snapshot_value(gc_prop.name, val) - search_and_apply_json_profile(json_entry=json_entry, - gc_prop=gc_prop, - elm=elm, - property_value=val) - - print('enter investments unpack') - - # if collection is not None: - # ref_idtag = str(property_value) - # ref_elm = collection.get(ref_idtag, None) - # - # if ref_elm is not None: - # elm.set_snapshot_value(gc_prop.name, ref_elm) - # search_and_apply_json_profile(json_entry=json_entry, - # gc_prop=gc_prop, - # elm=elm, - # property_value=ref_elm, - # collection=collection) - else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index ed04930a6..4db0411c9 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -959,7 +959,6 @@ class DeviceType(Enum): LoadLikeDevice = 'Load like' BranchGroupDevice = 'Branch group' LambdaDevice = r"Loading from the base situation ($\lambda$)" - Template = 'Template' PiMeasurementDevice = 'Pi Measurement' QiMeasurementDevice = 'Qi Measurement' @@ -1058,7 +1057,6 @@ class SubObjectType(Enum): Array = "Array" ObjectsList = "ObjectsList" Associations = "AssociationsList" - TemplateLinks = "TemplateLinks" def __str__(self) -> str: return str(self.value) From 2603fecf52d02df8b3eaf4d37c57f398fc33291f Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 11:37:39 +0100 Subject: [PATCH 085/218] Improved the compare_circuits function to handle different property types --- .idea/workspace.xml | 231 ++++++++++----------- src/GridCalEngine/Devices/multi_circuit.py | 21 +- 2 files changed, 130 insertions(+), 122 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index b234ed03e..3a6954fa6 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,20 +28,9 @@ - + - - - - - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", + "Python tests.pytest for src.tests.test_load_save_load.test_load_save_load.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_load_save_load.py.executor": "Debug", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.fubm_example.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "199__finalize__cgmes__import", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} - + @@ -1435,6 +1433,7 @@ + 1656059954202 @@ -1779,7 +1778,7 @@ - @@ -1793,6 +1792,7 @@ @@ -1825,9 +1825,6 @@ - - - @@ -1850,7 +1847,10 @@ - @@ -2288,18 +2288,6 @@ 3485 - + - + + + @@ -2483,33 +2404,36 @@ + + - + - + - - + + - + + @@ -2518,28 +2442,31 @@ + + + - - + + - - + + @@ -2567,15 +2494,19 @@ - + + + + + @@ -2584,6 +2515,7 @@ + @@ -2599,6 +2531,7 @@ + @@ -2618,11 +2551,12 @@ - + + @@ -2634,8 +2568,8 @@ - + @@ -2648,6 +2582,7 @@ + @@ -2670,7 +2605,7 @@ - + @@ -2700,6 +2635,7 @@ + @@ -2725,6 +2661,7 @@ + @@ -2732,6 +2669,7 @@ + @@ -2746,6 +2684,7 @@ + @@ -2761,6 +2700,7 @@ + @@ -2798,36 +2738,45 @@ + + + + + + + + + @@ -2840,13 +2789,13 @@ - + - + diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 75a3987f4..8db60904b 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -23,9 +23,8 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit import GridCalEngine.Simulations.Derivatives.csc_derivatives as deriv -import GridCalEngine.Simulations.Derivatives.matpower_derivatives as mderiv from GridCalEngine.Utils.NumericalMethods.autodiff import calc_autodiff_jacobian -from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, scipy_to_mat, scipy_to_cxmat +from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, scipy_to_mat from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import expand from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method @@ -106,10 +105,6 @@ def adv_jacobian(nbus: int, dS_dVm = CxCSC(nbus, nbus, len(dS_dVm_x), False).set(Ybus_i, Ybus_p, dS_dVm_x) dS_dVa = CxCSC(nbus, nbus, len(dS_dVa_x), False).set(Ybus_i, Ybus_p, dS_dVa_x) - # dSbus_dVa, dSbus_dVm = mderiv.dSbus_dV_matpower(Ybus, V) - # dS_dVa = scipy_to_cxmat(dSbus_dVa) - # dS_dVm = scipy_to_cxmat(dSbus_dVm) - dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dva) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dva) dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dva, yff, yft, V, F, T).real From eb6e18194547a5677bd91bfaf44b8c38b0f1526a Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 14:29:10 +0100 Subject: [PATCH 088/218] Added some functions to CSC --- .../NumericalMethods/levenberg_marquadt.py | 4 +- src/GridCalEngine/Utils/Sparse/csc2.py | 34 +- .../acdc_pf/fubm_caseHVDC_vt run matlab.txt | 411 ++++++++++++++++++ 3 files changed, 445 insertions(+), 4 deletions(-) create mode 100644 src/trunk/acdc_pf/fubm_caseHVDC_vt run matlab.txt diff --git a/src/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py b/src/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py index e99e39ef9..c6b557c5d 100644 --- a/src/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py +++ b/src/GridCalEngine/Utils/NumericalMethods/levenberg_marquadt.py @@ -75,6 +75,7 @@ def levenberg_marquardt(func: Callable[[Vec, bool, Any], ConvexFunctionResult], g = Jt @ ret.f Idn = diagc(n=A.shape[0], value=1.0) mu = 1e-3 * A.diagonal().max() + H = (A + (mu * Idn)).tocsc() error_evolution = np.zeros(max_iter + 1) @@ -98,7 +99,7 @@ def levenberg_marquardt(func: Callable[[Vec, bool, Any], ConvexFunctionResult], # compute update step try: - H = (A + (mu * Idn)).tocsc() + h = linear_solver(H, -g) if np.isnan(h).any(): @@ -135,6 +136,7 @@ def levenberg_marquardt(func: Callable[[Vec, bool, Any], ConvexFunctionResult], ret = func(x_new, True, *func_args) # compute f + jacobian Jt = ret.J.T A = Jt @ ret.J + H = (A + (mu * Idn)).tocsc() g = Jt @ ret.f converged = f_error < tol # or g_error < tol rho = dF / dL diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 8d6ca5af9..62b8df401 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -164,6 +164,37 @@ def dot(self, x: np.ndarray): """ return csc_matvec_ff(self, x) + @property + def T(self) -> "CSC": + """ + Traspose + :return: + """ + return sp_transpose(self) + + def get_diag_max(self) -> float: + """ + Get the maximum value of the diagonal + :return: value + """ + val = -1e20 + for j in range(self.n_cols): + for p in range(self.indptr[j], self.indptr[j + 1]): + if self.data[p] > val: + val = self.data[p] + return val + + def add_val_to_diagonal(self, val: float): + """ + Add value to the diagonal in-place + :param val: some value + :return: Nothing + """ + for j in range(self.n_cols): + for p in range(self.indptr[j], self.indptr[j + 1]): + if self.indices[p] == j: + self.data[p] += val + def __matmul__(self, B: "CSC" | np.ndarray) -> "CSC" | np.ndarray: """ @@ -177,9 +208,6 @@ def __matmul__(self, B: "CSC" | np.ndarray) -> "CSC" | np.ndarray: else: raise TypeError - # def __repr__(self): - # return f"CSC ({self.n_rows}x{self.n_cols}) nnz:{self.nnz}" - @jitclass([ ('n_rows', int32), diff --git a/src/trunk/acdc_pf/fubm_caseHVDC_vt run matlab.txt b/src/trunk/acdc_pf/fubm_caseHVDC_vt run matlab.txt new file mode 100644 index 000000000..84901b94a --- /dev/null +++ b/src/trunk/acdc_pf/fubm_caseHVDC_vt run matlab.txt @@ -0,0 +1,411 @@ +FUBM Formulation +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0811 + 0.1802i -0.9651 + 0.3753i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0811 + 0.1802i -0.9651 + 0.3753i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +-------------------------------------------------------------------------------------------------------------------------------- +Iter: 1 +-------------------------------------------------------------------------------------------------------------------------------- + +J: + 12.6574 0 0 -0.1975 -0.4052 -1.1849 -0.8509 0 0 0 1.1849 + 0 0.4144 0 0 -0.4144 -0.5385 -1.0655 -0.4144 0 0 0 + 0 0 11.1989 0 -11.1989 0 -0.1120 0 0 0 0 + -0.1975 0 0 0.1975 0 1.4144 0 0 0 0 -0.9773 + -0.4052 -0.4144 -11.1989 0 12.0184 0 1.6546 0.4144 0 0 0 + 1.1849 0.5385 0 -1.7234 0 0.1629 0 0 -1.0000 0 -0.1629 + 0.8509 1.0655 0.1120 0 -2.0284 0 9.4696 -1.0655 0 0 0 + 0 0.4144 0 0 -0.4144 0 -1.0655 -0.4144 0 0 0 + 1.1849 0 0 -1.1849 0 0.1629 0 0 -1.0000 0 -0.1629 + 0 -1.6041 0 0.5385 1.0655 0 -0.4144 1.0655 0 -1.2188 0 + -2.1563 0 0 1.1849 0.8509 -0.1975 -0.4052 0 0 0 0.1975 + +F: + 0.2250 0.1668 0.0034 -0.1545 -0.1669 -0.0173 -1.2694 0.1143 -0.0173 0.0431 0.0170 + +dx: + 0.0004 0.0656 -0.0259 0.0656 -0.0269 0.0975 0.1261 0.0440 -0.0781 -0.0499 -0.0038 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0919 - 0.2603i 0.9656 - 0.4252i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0852 + 0.1809i -0.9477 + 0.4174i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0852 + 0.1809i -0.9807 + 0.3326i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1261 1.1200 + +Va + 0 0.0004 0.0656 0.0656 -0.0269 -0.0259 + +tau + 0 0 0 0 0.0440 0 + +beq + 0 0 0 -0.0781 -0.0499 0 + +m + 0 0 0 0.9962 0 0 + +Gsw + 0.0012 0.0002 + + +-------------------------------------------------------------------------------------------------------------------------------- +Iter: 2 +-------------------------------------------------------------------------------------------------------------------------------- + +J: + 12.6690 0 0 -0.1320 -0.4822 -1.1998 -0.8395 0 0 0 1.3218 + 0 0.5242 0 0.0000 -0.5242 -0.5385 -1.0442 -0.5242 0 0 0 + 0 0 12.6116 0 -12.6116 0 -0.1013 0 0 0 0 + -0.3022 -0.0000 0 0.3022 0 1.7549 0 0 0.0000 0 -1.3410 + -0.4300 -0.4079 -12.6114 0 13.4493 0 2.0789 0.4079 0 0 0 + 1.2884 0.5910 0 -1.8795 0 0.2959 0 0 -1.2138 0 -0.3260 + 0.9703 1.2211 0.1382 0 -2.3295 0 12.2556 -1.2211 0 0 0 + 0 0.5242 0 0 -0.5242 0 -1.0442 -0.5242 0 0.0000 0 + 1.2884 0 0 -1.2884 0 0.2959 0 0 -1.2138 0 -0.3260 + 0 -1.7669 0 0.5910 1.1759 0.0000 -0.4655 1.1759 0 -1.2188 0 + -2.3785 0 0 1.3168 0.9454 -0.1203 -0.4282 0 0 0 0.1325 + +F: + 0.0028 0.0044 0.0013 0.0233 0.0258 0.0113 0.1811 0.0044 0.0113 -0.0059 0.0054 + +dx: + -0.0046 0.0085 -0.0385 0.0085 -0.0383 -0.0000 -0.0138 0.0828 -0.0100 0.0352 0.0203 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0475 - 0.2597i 0.9653 - 0.3901i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0636 + 0.1773i -0.9100 + 0.4943i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0636 + 0.1773i -1.0049 + 0.2503i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1123 1.1200 + +Va + 0 -0.0043 0.0740 0.0740 -0.0651 -0.0644 + +tau + 0 0 0 0 0.1268 0 + +beq + 0 0 0 -0.0881 -0.0147 0 + +m + 0 0 0 1.0165 0 0 + +Gsw + 0.0017 0.0001 + + +-------------------------------------------------------------------------------------------------------------------------------- +Iter:3 +-------------------------------------------------------------------------------------------------------------------------------- + +J: + 12.6741 0 0 -0.1125 -0.5074 -1.1773 -0.8246 0 0 0 1.2711 + 0 0.4756 0 -0.0000 -0.4756 -0.5385 -1.0603 -0.4756 0 0 0 + 0 0 12.4565 0 -12.4565 0 -0.1037 0 0 0 0 + -0.3127 0.0000 0 0.3127 0 1.6846 0 0 0 0 -1.2414 + -0.3923 -0.4461 -12.4563 0 13.2947 0 2.0318 0.4461 0 0 0 + 1.2587 0.5910 0 -1.8498 0 0.2851 0 0 -1.1658 0 -0.3079 + 0.9721 1.1908 0.1337 0 -2.2966 0 11.9484 -1.1908 0 0 0 + 0 0.4756 0 0 -0.4756 0 -1.0603 -0.4756 0 0.0000 0 + 1.2587 0 0 -1.2587 0 0.2851 0 0 -1.1658 0 -0.3079 + 0 -1.7704 0 0.5910 1.1794 -0.0000 -0.4276 1.1794 0 -1.2188 0 + -2.3813 0 0 1.2921 0.9172 -0.1025 -0.4562 0 0 0 0.1107 + +F: + -0.0001 0.0007 0.0000 -0.0005 0.0016 0.0001 0.0027 0.0007 0.0001 -0.0002 0.0004 + +dx: + -0.0002 0.0028 -0.0053 0.0028 -0.0053 -0.0000 -0.0004 0.0105 -0.0033 0.0023 0.0004 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0472 - 0.2626i 0.9652 - 0.3878i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0631 + 0.1772i -0.9047 + 0.5038i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0631 + 0.1772i -1.0074 + 0.2398i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1119 1.1200 + +Va + 0 -0.0045 0.0768 0.0768 -0.0704 -0.0697 + +tau + 0 0 0 0 0.1372 0 + +beq + 0 0 0 -0.0914 -0.0124 0 + +m + 0 0 0 1.0169 0 0 + +Gsw + 0.0018 0.0001 + + +-------------------------------------------------------------------------------------------------------------------------------- +Iter: 4 +-------------------------------------------------------------------------------------------------------------------------------- +J: + 12.6745 0 0 -0.1085 -0.5118 -1.1771 -0.8223 0 0 0 1.2705 + 0 0.4726 0 -0.0000 -0.4726 -0.5385 -1.0613 -0.4726 0 0 0 + 0 0 12.4521 0 -12.4521 0 -0.1038 0 0 0 0 + -0.3164 0.0000 0 0.3164 0 1.6852 0 0 0 0 -1.2404 + -0.3872 -0.4488 -12.4519 0 13.2879 0 2.0296 0.4488 0 0 0 + 1.2573 0.5910 0 -1.8483 0 0.2883 0 0 -1.1649 0 -0.3111 + 0.9737 1.1893 0.1336 0 -2.2966 0 11.9417 -1.1893 0 0 0 + 0 0.4726 0 0 -0.4726 0 -1.0613 -0.4726 0 -0.0000 0 + 1.2573 0 0 -1.2573 0 0.2883 0 0 -1.1649 0 -0.3111 + 0 -1.7711 0 0.5910 1.1801 -0.0000 -0.4251 1.1801 0 -1.2188 0 + -2.3813 0 0 1.2919 0.9144 -0.0989 -0.4603 0 0 0 0.1067 + +F: + 1.0e-03 * + + 0.0166 -0.1146 0.0000 0.6129 0.0163 0.0001 0.0072 -0.1146 0.0001 0.0003 0.0074 + +dx: + 1.0e-03 * + + -0.0392 -0.2630 0.2085 -0.2630 0.2085 0.0000 -0.0037 -0.7056 0.1249 -0.2251 0.4370 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0464 - 0.2623i 0.9652 - 0.3880i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0627 + 0.1771i -0.9051 + 0.5032i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0627 + 0.1771i -1.0072 + 0.2405i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1119 1.1200 + +Va + 0 -0.0046 0.0766 0.0766 -0.0702 -0.0695 + +tau + 0 0 0 0 0.1365 0 + +beq + 0 0 0 -0.0913 -0.0127 0 + +m + 0 0 0 1.0173 0 0 + +Gsw + 0.0018 0.0001 + + +-------------------------------------------------------------------------------------------------------------------------------- +Iter: 5 +-------------------------------------------------------------------------------------------------------------------------------- + +J: + 12.6745 0 0 -0.1087 -0.5116 -1.1766 -0.8225 0 0 0 1.2693 + 0 0.4729 0 0.0000 -0.4729 -0.5385 -1.0612 -0.4729 0 0 0 + 0 0 12.4520 0 -12.4520 0 -0.1038 0 0 0 0 + -0.3159 -0.0000 0 0.3159 0 1.6839 0 0 0 0 -1.2382 + -0.3875 -0.4485 -12.4518 0 13.2878 0 2.0295 0.4485 0 0 0 + 1.2568 0.5910 0 -1.8478 0 0.2879 0 0 -1.1639 0 -0.3106 + 0.9736 1.1894 0.1336 0 -2.2966 0 11.9417 -1.1894 0 0 0 + 0 0.4729 0 0 -0.4729 0 -1.0612 -0.4729 0 -0.0000 0 + 1.2568 0 0 -1.2568 0 0.2879 0 0 -1.1639 0 -0.3106 + 0 -1.7710 0 0.5910 1.1799 0.0000 -0.4253 1.1799 0 -1.2188 0 + -2.3813 0 0 1.2913 0.9145 -0.0991 -0.4601 0 0 0 0.1069 + +F: + 1.0e-03 * + + -0.0002 -0.0027 0.0000 0.1519 0.0001 0.0001 0.0000 -0.0027 0.0001 0.0000 0.0001 + +dx: + 1.0e-03 * + + -0.0123 -0.0285 -0.0059 -0.0285 -0.0059 -0.0000 -0.0000 -0.0283 -0.0140 -0.0054 0.1186 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0462 - 0.2623i 0.9652 - 0.3880i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0626 + 0.1771i -0.9051 + 0.5032i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0626 + 0.1771i -1.0072 + 0.2405i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1119 1.1200 + +Va + 0 -0.0046 0.0766 0.0766 -0.0702 -0.0695 + +tau + 0 0 0 0 0.1365 0 + +beq + 0 0 0 -0.0913 -0.0127 0 + +m + 0 0 0 1.0174 0 0 + +Gsw + 0.0018 0.0001 + + +-------------------------------------------------------------------------------------------------------------------------------- +Iter: 6 +-------------------------------------------------------------------------------------------------------------------------------- + +J: + 12.6745 0 0 -0.1087 -0.5116 -1.1765 -0.8225 0 0 0 1.2690 + 0 0.4729 0 0.0000 -0.4729 -0.5385 -1.0612 -0.4729 0 0 0 + 0 0 12.4520 0 -12.4520 0 -0.1038 0 0 0 0 + -0.3159 -0.0000 0 0.3159 0 1.6835 0 0 0.0000 0 -1.2376 + -0.3875 -0.4485 -12.4518 0 13.2878 0 2.0295 0.4485 0 0 0 + 1.2566 0.5910 0 -1.8477 0 0.2878 0 0 -1.1636 0 -0.3105 + 0.9736 1.1894 0.1336 0 -2.2966 0 11.9417 -1.1894 0 0 0 + 0 0.4729 0 0 -0.4729 0 -1.0612 -0.4729 0 0.0000 0 + 1.2566 0 0 -1.2566 0 0.2878 0 0 -1.1636 0 -0.3105 + 0 -1.7710 0 0.5910 1.1799 0.0000 -0.4253 1.1799 0 -1.2188 0 + -2.3813 0 0 1.2912 0.9145 -0.0991 -0.4601 0 0 0 0.1069 + +F: + 1.0e-05 * + + -0.0018 0.0217 0.0000 -0.7867 0.0000 0.0002 0.0000 0.0217 0.0002 0.0000 0.0002 + +dx: + 1.0e-05 * + + 0.0631 0.1600 0.0096 0.1600 0.0096 0.0000 0.0002 0.1960 0.0585 0.0440 -0.6109 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0462 - 0.2623i 0.9652 - 0.3880i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0626 + 0.1771i -0.9051 + 0.5032i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0626 + 0.1771i -1.0072 + 0.2405i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1119 1.1200 + +Va + 0 -0.0046 0.0766 0.0766 -0.0702 -0.0695 + +tau + 0 0 0 0 0.1365 0 + +beq + 0 0 0 -0.0913 -0.0127 0 + +m + 0 0 0 1.0174 0 0 + +Gsw + 0.0018 0.0001 + + +-------------------------------------------------------------------------------------------------------------------------------- +Iter: 7 +-------------------------------------------------------------------------------------------------------------------------------- + +J: + 12.6745 0 0 -0.1087 -0.5116 -1.1765 -0.8225 0 0 0 1.2691 + 0 0.4729 0 0.0000 -0.4729 -0.5385 -1.0612 -0.4729 0 0 0 + 0 0 12.4520 0 -12.4520 0 -0.1038 0 0 0 0 + -0.3159 -0.0000 0 0.3159 0 1.6835 0 0 0 0 -1.2377 + -0.3875 -0.4485 -12.4518 0 13.2878 0 2.0295 0.4485 0 0 0 + 1.2567 0.5910 0 -1.8477 0 0.2878 0 0 -1.1636 0 -0.3105 + 0.9736 1.1894 0.1336 0 -2.2966 0 11.9417 -1.1894 0 0 0 + 0 0.4729 0 0 -0.4729 0 -1.0612 -0.4729 0 -0.0000 0 + 1.2567 0 0 -1.2567 0 0.2878 0 0 -1.1636 0 -0.3105 + 0 -1.7710 0 0.5910 1.1799 0.0000 -0.4253 1.1799 0 -1.2188 0 + -2.3813 0 0 1.2912 0.9145 -0.0991 -0.4601 0 0 0 0.1069 + +F: + 1.0e-07 * + + -0.0005 0.0529 0.0000 0.8407 0.0000 0.0001 0.0000 0.0529 0.0001 0.0000 0.0001 + +dx: + 1.0e-07 * + + -0.0774 -0.0522 -0.2079 -0.0522 -0.2079 0.0000 0.0004 0.2666 -0.2101 0.1073 0.6857 + +Yff + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0462 - 0.2623i 0.9652 - 0.3880i 0.4878 + 0.0000i + +Yft + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0626 + 0.1771i -0.9051 + 0.5032i -0.4878 + 0.0000i + +Ytf + -0.1000 + 9.9990i -0.7763 + 0.3697i -0.1000 + 9.9990i -1.0626 + 0.1771i -1.0072 + 0.2405i -0.4878 + 0.0000i + +Ytt + 0.1000 - 9.9990i 0.7763 - 0.3697i 0.1000 - 9.9990i 1.0811 - 0.1802i 0.9651 - 0.3753i 0.4878 + 0.0000i + + +Vm + 1.1000 1.0960 1.0975 1.1040 1.1119 1.1200 + +Va + 0 -0.0046 0.0766 0.0766 -0.0702 -0.0695 + +tau + 0 0 0 0 0.1365 0 + +beq + 0 0 0 -0.0913 -0.0127 0 + +m + 0 0 0 1.0174 0 0 + +Gsw + 0.0018 0.0001 + + +-------------------------------------------------------------------------------------------------------------------------------- +END +-------------------------------------------------------------------------------------------------------------------------------- +Newton's method power flow converged in 7 iterations. From 150d13600575add43207d39b8de2305c141c8526 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Wed, 7 Aug 2024 12:36:18 +0200 Subject: [PATCH 089/218] New capex scores file to be used later --- .idea/workspace.xml | 19 ++++++++++--------- examples/try_investment_optimization.py | 1 - .../Gui/Main/SubClasses/Model/diagrams.py | 4 ---- .../Methods/mixed_variable_NSGA_2.py | 3 +-- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e0c19faec..4156b4dac 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,10 @@ - - - - + + @@ -1835,7 +1833,6 @@ - @@ -1860,7 +1857,8 @@ - diff --git a/src/GridCalEngine/IO/gridcal/catalogue.py b/src/GridCalEngine/IO/gridcal/catalogue.py index ad6442771..7f05e3cc3 100644 --- a/src/GridCalEngine/IO/gridcal/catalogue.py +++ b/src/GridCalEngine/IO/gridcal/catalogue.py @@ -82,8 +82,8 @@ def get_wires_catalogue_df(grid: MultiCircuit): 'Stranding': elm.stranding, 'Material': elm.material, 'Diameter [cm]': elm.diameter, - 'GMR [m]': elm.gmr, - 'R [Ohm/km]': elm.r, + 'GMR [m]': elm.GMR, + 'R [Ohm/km]': elm.R, 'Rating [kA]': elm.max_current }) return pd.DataFrame(data) diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py index 4652e6ed0..ecf1a1de0 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py @@ -23,6 +23,9 @@ from pymoo.core.problem import ElementwiseProblem from pymoo.core.variable import Real, Integer, Choice, Binary +from GridCalEngine.Utils.acciona_capex import CapexAcciona +from GridCalEngine.Devices.Aggregation.investment import Investment + class MixedVariableProblem(ElementwiseProblem): """ @@ -33,22 +36,11 @@ def __init__(self, obj_func, n_obj): :param obj_func: :param n_obj: """ + self.templates = Investment().template vars = { - "react1_bi": Binary(), - "react2_bi": Binary(), - "react3_bi": Binary(), - "react4_bi": Binary(), - "react5_bi": Binary(), - # "vol_level": Choice(options=["vol132","vol220"]), - "vol_level": Choice(options=["vol220"]), - # "vol_level": Choice(options=["vol132"]), - "n_cables": Integer(bounds=(2, 3)), - "S_rtr": Real(bounds=(500e6, 1000e6)), - "react1": Real(bounds=(0.0, 1.0)), - "react2": Real(bounds=(0.0, 1.0)), - "react3": Real(bounds=(0.0, 1.0)), - "react4": Real(bounds=(0.0, 1.0)), - "react5": Real(bounds=(0.0, 1.0))} + "transformer1": Choice(options=[self.templates[0]]), + "transformer2": Choice(options=[self.templates[1]]), + "n_cables": Integer(bounds=(2, 3))} super().__init__(n_obj=n_obj, vars=vars) self.obj_func = obj_func @@ -62,6 +54,10 @@ def _evaluate(self, x, out, *args, **kwargs): :param kwargs: :return: """ + + capex = CapexAcciona() + capex.print_capex() + # Ideally, we want this to be automatically inputted: # react1_bi, react2_bi, react3_bi, react4_bi, react5_bi, vol, n_cables, S_rtr, react1, react2, react3, react4, # react5 = x["react1_bi"], x["react2_bi"], x["react3_bi"], x["react4_bi"], x["react5_bi"], x["vol_level"], From f229ba212f56e901460338181eafac2e93311517 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 14 Aug 2024 18:12:42 -0100 Subject: [PATCH 091/218] Delete an important file --- .idea/workspace.xml | 150 ++++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e286c4dde..cd74d2e8d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,8 @@ - + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.associations_templates.executor": "Debug", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.multi_select.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tallr_table_headers.executor": "Debug", - "Python.test_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "204__investments__evaluation", - "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -1818,7 +1822,7 @@ - @@ -1831,9 +1835,6 @@ - - - @@ -1856,7 +1857,10 @@ - @@ -2326,23 +2330,48 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1152 + 1175 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1166 + 1189 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1180 + 1203 - file://$PROJECT_DIR$/examples/associations_templates.py + file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py + 1132 + + + file://$PROJECT_DIR$/examples/try_template_loading.py + 12 + + + file://$PROJECT_DIR$/examples/try_template_loading.py + 28 + + + file://$PROJECT_DIR$/examples/try_template_loading.py + 27 + + + file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py + 1064 + + + file://$PROJECT_DIR$/examples/try_template_loading.py 11 - diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index c1122c773..3908df05c 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -29,7 +29,7 @@ from GridCal.Gui.GeneralDialogues import (CheckListDialogue, StartEndSelectionDialogue, InputSearchDialogue, InputNumberDialogue) from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import SimulationTypes +from GridCalEngine.enumerations import SimulationTypes, DeviceType from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram import GridCalEngine.Devices as dev @@ -1581,51 +1581,24 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm.type_name == 'Transformer': + if elm.device_type in [DeviceType.Transformer2WDevice, DeviceType.SequenceLineDevice, + DeviceType.UnderGroundLineDevice, DeviceType.OverheadLineTypeDevice]: con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, + CAPEX=elm.capex, + OPEX=elm.opex, group=group, - template_src=list(elm.possible_transformer_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Line': - if elm.type_name == 'Sequence line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_src=list(elm.possible_sequence_line_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Underground line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_src=list(elm.possible_underground_line_types.data)) - self.circuit.add_investment(con) - elif elm.type_name == 'Tower': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_src=list(elm.possible_tower_types.data)) - self.circuit.add_investment(con) + template_src=elm) else: con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, + CAPEX=elm.capex, + OPEX=elm.opex, group=group) - self.circuit.add_investment(con) + + self.circuit.add_investment(con) else: info_msg("Select some elements in the schematic first", "Add selected to investment") diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 53666cdb2..d12b4ca5f 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -58,9 +58,15 @@ def __init__(self, if template_src is not None: if template_src.device_type == DeviceType.Transformer2WDevice: - self.template = template_src.possible_transformer_types + self.template = template_src.possible_transformer_types.data + elif template_src.device_type == DeviceType.SequenceLineDevice: + self.template = template_src.possible_sequence_line_types.data + elif template_src.device_type == DeviceType.UnderGroundLineDevice: + self.template = template_src.possible_underground_line_types.data + elif template_src.device_type == DeviceType.OverheadLineTypeDevice: + self.template = template_src.possible_tower_types.data else: - raise TypeError(f'Templates for {template_src.type} not recognized') + raise Exception(f'Templates for {template_src.type} not recognized') else: self.template = None diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index d7f400d76..7dc3942ec 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -920,7 +920,7 @@ def search_and_apply_json_profile(json_entry: Dict[str, Dict[str, Union[str, Uni property_value: Any, collection: Union[None, Dict[str, Any]] = None) -> None: """ - Search fro the property profiles into the json and apply it + Search from the property profiles into the json and apply it :param json_entry: Json entry of an object :param gc_prop: GCProp :param elm: THe device to set the profile into @@ -1054,10 +1054,27 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, ) elif gc_prop.tpe == SubObjectType.ObjectsList: - prop_name = elm.get_snapshot_value(gc_prop) - print('xkk') - if prop_name == 'Investment': - print('xkk') + + val = property_value + elm.set_snapshot_value(gc_prop.name, val) + search_and_apply_json_profile(json_entry=json_entry, + gc_prop=gc_prop, + elm=elm, + property_value=val) + + print('enter investments unpack') + + # if collection is not None: + # ref_idtag = str(property_value) + # ref_elm = collection.get(ref_idtag, None) + # + # if ref_elm is not None: + # elm.set_snapshot_value(gc_prop.name, ref_elm) + # search_and_apply_json_profile(json_entry=json_entry, + # gc_prop=gc_prop, + # elm=elm, + # property_value=ref_elm, + # collection=collection) else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") From b93c42a9b814db920f25d80aa2721d2e321eeb51 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Thu, 15 Aug 2024 20:22:47 -0100 Subject: [PATCH 095/218] Create new template link category in enums --- .idea/workspace.xml | 40 +++++++++---------- examples/try_investment_optimization.py | 2 +- examples/try_template_loading.py | 9 +++-- .../Gui/Main/SubClasses/Model/diagrams.py | 31 +++++++------- .../Devices/Aggregation/investment.py | 23 +++-------- src/GridCalEngine/IO/gridcal/pack_unpack.py | 3 ++ src/GridCalEngine/enumerations.py | 1 + 7 files changed, 50 insertions(+), 59 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f27448765..a275f9d5c 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,14 @@ - + - - + @@ -76,7 +75,7 @@ @@ -1825,7 +1825,7 @@ - @@ -1838,6 +1838,7 @@ + @@ -1859,11 +1860,10 @@ - - - - - @@ -2332,44 +2332,34 @@ diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 3d38bbc99..972586a56 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -29,7 +29,7 @@ from GridCal.Gui.GeneralDialogues import (CheckListDialogue, StartEndSelectionDialogue, InputSearchDialogue, InputNumberDialogue) from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import SimulationTypes, DeviceType +from GridCalEngine.enumerations import SimulationTypes from GridCalEngine.Devices.Diagrams.schematic_diagram import SchematicDiagram import GridCalEngine.Devices as dev @@ -1581,25 +1581,51 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm.device_type == DeviceType.Transformer2WDevice: - possible_types = elm.possible_transformer_types.data - elif elm.device_type == DeviceType.SequenceLineDevice: - possible_types = elm.possible_sequence_line_types.data - elif elm.device_type == DeviceType.UnderGroundLineDevice: - possible_types = elm.possible_underground_line_types.data - elif elm.device_type == DeviceType.OverheadLineTypeDevice: - possible_types = elm.possible_tower_types.data + if elm.type_name == 'Transformer': + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_transformer_types) + self.circuit.add_investment(con) + elif elm.type_name == 'Line': + if elm.type_name == 'Sequence line': + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_sequence_line_types) + self.circuit.add_investment(con) + elif elm.type_name == 'Underground line': + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_underground_line_types) + self.circuit.add_investment(con) + elif elm.type_name == 'Tower': + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group, + template=elm.possible_tower_types) + self.circuit.add_investment(con) else: - possible_types = None - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=elm.capex, - OPEX=elm.opex, - group=group, - template=possible_types) - - self.circuit.add_investment(con) + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group) + self.circuit.add_investment(con) else: info_msg("Select some elements in the schematic first", "Add selected to investment") diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 379980054..6455218b1 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,4 +1,4 @@ -from typing import Union, Any, List, Dict +from typing import Union, Any from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup @@ -18,10 +18,10 @@ def __init__(self, OPEX=0.0, status: bool = True, group: InvestmentsGroup = None, - template: Union[Dict, None] = None, + template: SubObjectType.Associations = None, comment: str = ""): """ - Investment object formed by CAPEX, OPEX, status (on/off) and possible template + Investment :param idtag: String. Element unique identifier :param name: String. Contingency name :param code: String. Contingency code name @@ -29,7 +29,6 @@ def __init__(self, :param OPEX: Float. Operating expenditures :param status: If true the investment activates when applied, otherwise is deactivated :param group: InvestmentGroup. Investment group - :param template: DeviceType. Possible templates of each component :param comment: Comment """ @@ -55,11 +54,10 @@ def __init__(self, definition='Operation expenditures. Maintenance costs among other recurrent costs.') self.register(key='status', units='', tpe=bool, definition='If true the investment activates when applied, otherwise is deactivated.') + self.register(key='template', units='', tpe=SubObjectType.Associations, + definition='Possible templates of each component') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') - self.register(key='template', units='', tpe=SubObjectType.TemplateLinks, - definition='Possible templates of each component') - @property def group(self) -> InvestmentsGroup: """ diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index 3aa68acc9..fcb9fbf0d 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -76,7 +76,7 @@ def __eq__(self, other: "Association") -> bool: class Associations: """ - GridCal associations object, this handless a set of associations + GridCal associations object, this handles a set of associations """ def __init__(self, device_type: DeviceType): diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 42712788e..9371769a9 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1048,6 +1048,7 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, elif gc_prop.tpe == SubObjectType.Associations: # get the list of associations + print('Enter associations') associations = elm.get_snapshot_value(gc_prop) associations.parse( data=property_value, @@ -1055,6 +1056,10 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, logger=logger, elm_name=elm.name ) + print('x') + + elif gc_prop.tpe == SubObjectType.TemplateLinks: + print('Stop here') elif gc_prop.tpe == SubObjectType.ObjectsList: From 5be3c8b98534a03c449e8fba28bcd308b0ed943b Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Fri, 16 Aug 2024 08:18:58 -0100 Subject: [PATCH 097/218] Templates as associations but still not working --- .idea/workspace.xml | 47 +++++++------------ .../Devices/Aggregation/investment.py | 4 +- 2 files changed, 18 insertions(+), 33 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a782349c7..818625aa0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,13 +28,9 @@ - + - + + + + + @@ -122,71 +125,46 @@ - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Debug", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.update_gui_file.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "199__finalize__cgmes__import", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/GridCal/Gui/Diagrams/MapWidget2", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - @@ -1432,17 +1372,17 @@ - - - - - - - - - - - + + + + + + + + + + + 1656059954202 @@ -1787,7 +1727,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2246,6 +2186,21 @@ 63 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + - - + + - - + + + + + + + - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + - + + + + + + + + + + + + - - - - - - - - - - - + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + + + + + - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + \ No newline at end of file diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py b/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py index cc61f287d..597c3007e 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py @@ -450,9 +450,6 @@ def split_Line(self, index): # Handle invalid index error_msg("Index out of range or invalid", "split line") - def merge_line(self): - return 0 - def disable_line(self): """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py index c1552ad60..c35208f0e 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_graphic_item.py @@ -88,7 +88,6 @@ def __init__(self, self.hovered = False self.enabled = True - self.itemSelected = False # Create a pen with reduced line width self.change_pen_width(0.001) @@ -173,13 +172,13 @@ def mousePressEvent(self, event: QtWidgets.QGraphicsSceneMouseEvent) -> None: Event handler for mouse press events. """ super().mousePressEvent(event) - + selected_items = self.editor.map.view._scene.selectedItems() + if len(selected_items) < 2: + self.setSelected(True) if self.enabled: self.editor.map.view.disableMove = True if event.button() == Qt.RightButton: pass - elif event.button() == Qt.LeftButton: - self.selectItem() def mouseReleaseEvent(self, event): """ @@ -190,6 +189,10 @@ def mouseReleaseEvent(self, event): self.updateDiagram() self.editor.map.view._scene.update() + selected_items = self.editor.map.view._scene.selectedItems() + if len(selected_items) < 2: + self.setSelected(True) + def hoverEnterEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None: """ Event handler for when the mouse enters the item. @@ -233,24 +236,6 @@ def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent): menu.exec_(event.screenPos()) - def selectItem(self): - """ - - :return: - """ - if not self.itemSelected: - self.editor.map.view.selectedItems.append(self) - self.setNodeColor(QColor(Qt.yellow), QColor(Qt.yellow)) - self.itemSelected = True - - def deSelectItem(self): - """ - - :return: - """ - self.itemSelected = False - self.setDefaultColor() - def AddFunction(self): """ @@ -307,10 +292,7 @@ def setDefaultColor(self) -> None: :return: """ # Example: color assignment - if self.itemSelected: - self.setNodeColor(QColor(Qt.yellow), QColor(Qt.yellow)) - else: - self.setNodeColor(self.colorInner, self.colorBorder) + self.setNodeColor(self.colorInner, self.colorBorder) def getPos(self) -> QPointF: """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py index 938c4f3ed..a6ff4c042 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py @@ -97,7 +97,6 @@ def __init__(self, self.colorBorder = QColor(255, 100, 100, 100) # Assign color to the node - self.itemSelected = False self.setDefaultColor() self.hovered = False self.needsUpdate = False @@ -194,13 +193,13 @@ def mousePressEvent(self, event: QGraphicsSceneMouseEvent): Event handler for mouse press events. """ super().mousePressEvent(event) + selected_items = self.editor.map.view._scene.selectedItems() + if len(selected_items) < 2: + self.setSelected(True) + event.setAccepted(True) self.editor.map.view.disableMove = True - if event.button() == Qt.LeftButton: - self.selectItem() - - print("SE mouse press") if self.api_object is not None: self.editor.set_editor_model(api_object=self.api_object, dictionary_of_lists={ @@ -212,24 +211,6 @@ def mousePressEvent(self, event: QGraphicsSceneMouseEvent): DeviceType.ZoneDevice: self.editor.circuit.get_zones(), }) - def selectItem(self): - """ - - :return: - """ - if not self.itemSelected: - self.editor.map.view.selectedItems.append(self) - self.setNodeColor(QColor(Qt.yellow), QColor(Qt.yellow)) - self.itemSelected = True - - def deSelectItem(self): - """ - - :return: - """ - self.itemSelected = False - self.setDefaultColor() - def mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent): """ @@ -421,10 +402,7 @@ def setDefaultColor(self) -> None: :return: """ # Example: color assignment - if self.itemSelected: - self.setNodeColor(QColor(Qt.yellow), QColor(Qt.yellow)) - else: - self.setNodeColor(self.colorInner, self.colorBorder) + self.setNodeColor(self.colorInner, self.colorBorder) def getPos(self) -> QPointF: """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py index 22468bb7a..33729b6e6 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py @@ -442,11 +442,17 @@ def merge_lines(self): :return: """ - if len(self.map.view.selectedItems) < 2: + + selected_items = self.map.view._scene.selectedItems() + selectedItems = [] + for item in selected_items: + selectedItems.append(item) + + if len(selectedItems) < 2: return 0 - it1 = self.map.view.selectedItems[0] - it2 = self.map.view.selectedItems[1] + it1 = selectedItems[0] + it2 = selectedItems[1] if it1 == it2: return 0 @@ -486,11 +492,17 @@ def createNewLineWizard(self): Create a new line in the map with dialogues """ - if len(self.map.view.selectedItems) < 2: - return None + selected_items = self.map.view._scene.selectedItems() + selectedItems = [] + for item in selected_items: + selectedItems.append(item) + + if len(selectedItems) < 2: + return 0 + + it1: SubstationGraphicItem = selectedItems[0] + it2: SubstationGraphicItem = selectedItems[1] - it1: SubstationGraphicItem = self.map.view.selectedItems[0] - it2: SubstationGraphicItem = self.map.view.selectedItems[1] if it1 == it2: return None diff --git a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py index 2b58e58e0..7b0102064 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py @@ -65,7 +65,7 @@ class MapScene(QGraphicsScene): """ def __init__(self, parent: "MapWidget" = None) -> None: - super().__init__(parent) + super(MapScene, self).__init__(parent) self.setItemIndexMethod(QGraphicsScene.ItemIndexMethod.BspTreeIndex) # For efficient item indexing def mousePressEvent(self, event: QGraphicsSceneMouseEvent) -> None: @@ -134,8 +134,6 @@ def __init__(self, self.scale(initial_zoom_factor, initial_zoom_factor) - self.selectedItems = list() - def mousePressEvent(self, event: QMouseEvent): """ @@ -145,12 +143,7 @@ def mousePressEvent(self, event: QMouseEvent): self.map_widget.mousePressEvent(event) self.pressed = True self.disableMove = False - b = event.button() - if b == Qt.RightButton: - if not self.inItem: - for item in self.selectedItems: - item.deSelectItem() - self.selectedItems.clear() + super().mousePressEvent(event) def mouseReleaseEvent(self, event: QMouseEvent): @@ -162,6 +155,7 @@ def mouseReleaseEvent(self, event: QMouseEvent): self.map_widget.mouseReleaseEvent(event) self.pressed = False self.disableMove = True + super().mouseReleaseEvent(event) def mouseDoubleClickEvent(self, event: QMouseEvent): """ @@ -170,6 +164,7 @@ def mouseDoubleClickEvent(self, event: QMouseEvent): :return: """ self.map_widget.mouseDoubleClickEvent(event) + super().mouseDoubleClickEvent(event) def mouseMoveEvent(self, event: QMouseEvent): """ @@ -602,8 +597,8 @@ def mousePressEvent(self, event: QMouseEvent) -> None: click_y = event.y() # assume we aren't dragging - self.start_drag_x = None - self.start_drag_y = None + # self.start_drag_x = None + # self.start_drag_y = None b = event.button() if b == Qt.MouseButton.NoButton: From b26c88f126704280763ba187580e50ebd1e38122 Mon Sep 17 00:00:00 2001 From: santi Date: Fri, 2 Aug 2024 10:10:23 +0100 Subject: [PATCH 099/218] 5.1.21 --- .idea/workspace.xml | 1109 +- src/GridCal/Gui/Main/ConsoleLog.py | 6 +- src/GridCal/Gui/Main/MainWindow.py | 244 +- src/GridCal/Gui/Main/icons_rc.py | 58723 ++++++++++++++------------- src/GridCal/__version__.py | 2 +- src/GridCalEngine/__version__.py | 2 +- src/GridCalServer/__version__.py | 2 +- 7 files changed, 30238 insertions(+), 29850 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 27c6d9115..c2bbaae99 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,13 +28,8 @@ - + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.multi_select.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tallr_table_headers.executor": "Run", - "Python.test_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + @@ -211,7 +202,7 @@ - + + + - - - + - - - - - - - - - + + + + + + + + + - - - - + + + + - - - + - + + + @@ -1439,16 +1415,8 @@ - - - - - - - - - - + + 1656059954202 @@ -1793,7 +1761,7 @@ - @@ -1839,32 +1807,32 @@ + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - @@ -2252,6 +2220,21 @@ 63 - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + \ No newline at end of file diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py b/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py index 597c3007e..1e43d24b3 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Branches/map_line_container.py @@ -59,12 +59,12 @@ def __init__(self, editor=editor, draw_labels=draw_labels) - self.editor: GridMapWidget = editor # re assign to make clear the editor type + self.editor: GridMapWidget = editor # reassign to make clear the editor type self.nodes_list: List[NodeGraphicItem] = list() self.segments_list: List[MapLineSegment] = list() self.enabled = True - self.original = True + self.original = True # TODO: Que es esto? def setWidthScale(self, val: float): """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py index a6ff4c042..61a9a51d6 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py @@ -18,8 +18,8 @@ from typing import List, TYPE_CHECKING, Tuple from PySide6 import QtWidgets from PySide6.QtWidgets import (QApplication, QMenu, QGraphicsSceneContextMenuEvent, QGraphicsSceneMouseEvent, - QGraphicsRectItem, QGraphicsEllipseItem) -from PySide6.QtCore import Qt, QPointF, QPoint + QGraphicsRectItem) +from PySide6.QtCore import Qt, QPointF from PySide6.QtGui import QBrush, QColor, QCursor from GridCal.Gui.Diagrams.MapWidget.Substation.node_template import NodeTemplate from GridCal.Gui.GuiFunctions import add_menu_entry @@ -136,26 +136,13 @@ def sort_voltage_levels(self) -> None: for i, vl_graphics in enumerate(sorted_objects): vl_graphics.setZValue(i) - def updatePosition(self) -> None: + def update_diagram(self): """ - - :return: - """ - real_position = self.pos() - center_point = self.getPos() - # self.x = center_point.x() + real_position.x() - # self.y = center_point.y() + real_position.y() - self.needsUpdate = True - - def updateDiagram(self): - """ - + Updates the element position in the diagram (to save) :return: """ lat, long = self.editor.to_lat_lon(self.rect().x(), self.rect().y()) - # print(f'Updating SE position id:{self.api_object.idtag}, lat:{lat}, lon:{long}') - self.editor.update_diagram_element(device=self.api_object, latitude=lat, longitude=long, @@ -163,8 +150,8 @@ def updateDiagram(self): def get_center_pos(self) -> QPointF: """ - - :return: + Get the center position + :return: QPointF """ x = self.rect().x() + self.rect().width() / 2 y = self.rect().y() + self.rect().height() / 2 @@ -186,16 +173,16 @@ def mouseMoveEvent(self, event: QtWidgets.QGraphicsSceneMouseEvent) -> None: for vl_graphics in self.voltage_level_graphics: vl_graphics.center_on_substation() - self.updateDiagram() # always update + self.update_diagram() # always update def mousePressEvent(self, event: QGraphicsSceneMouseEvent): """ Event handler for mouse press events. """ super().mousePressEvent(event) - selected_items = self.editor.map.view._scene.selectedItems() - if len(selected_items) < 2: - self.setSelected(True) + # selected_items = self.editor.map.view.selected_items() + # if len(selected_items) < 2: + self.setSelected(True) event.setAccepted(True) self.editor.map.view.disableMove = True @@ -211,14 +198,13 @@ def mousePressEvent(self, event: QGraphicsSceneMouseEvent): DeviceType.ZoneDevice: self.editor.circuit.get_zones(), }) - def mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent): """ Event handler for mouse release events. """ # super().mouseReleaseEvent(event) self.editor.disableMove = True - self.updateDiagram() # always update + self.update_diagram() # always update print("SE mouse release") def hoverEnterEvent(self, event: QtWidgets.QGraphicsSceneHoverEvent) -> None: @@ -252,7 +238,7 @@ def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent): function_ptr=self.add_voltage_level) add_menu_entry(menu=menu, - text="Create line", + text="Create line from here", icon_path="", function_ptr=self.create_new_line) @@ -276,15 +262,13 @@ def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent): icon_path="", function_ptr=self.new_substation_diagram) - - menu.exec_(event.screenPos()) def create_new_line(self): """ Create a new line in the map wizard """ - self.editor.createNewLineWizard() + self.editor.create_new_line_wizard() def add_function(self): """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py index 33729b6e6..641e5f17d 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/grid_map_widget.py @@ -56,6 +56,7 @@ from GridCal.Gui.Diagrams.graphics_manager import ALL_MAP_GRAPHICS from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles from GridCal.Gui.Diagrams.base_diagram_widget import BaseDiagramWidget +from GridCal.Gui.messages import error_msg MAP_BRANCH_GRAPHIC_TYPES = Union[ MapAcLine, MapDcLine, MapHvdcLine, MapFluidPathLine @@ -457,53 +458,60 @@ def merge_lines(self): if it1 == it2: return 0 - newline = Line() - newline.set_data_from(it1.line_container.api_object) + new_line = Line() + new_line.set_data_from(it1.line_container.api_object) # ln1 = self.api_object.copy() - better_first, better_second, busfrom, busto = compare_options(it1, it2) + better_first, better_second, bus_from, bus_to = compare_options(it1, it2) first_list = better_first.line_container.api_object.locations.data second_list = better_second.line_container.api_object.locations.data - newline.locations.data = first_list + second_list + new_line.locations.data = first_list + second_list - newline.bus_from = busfrom - newline.bus_to = busto + new_line.bus_from = bus_from + new_line.bus_to = bus_to idx = 0 for nod in better_first.line_container.nodes_list: - newline.locations.data[idx].lat = nod.lat - newline.locations.data[idx].long = nod.lon + new_line.locations.data[idx].lat = nod.lat + new_line.locations.data[idx].long = nod.lon idx = idx + 1 for nod in better_second.line_container.nodes_list: - newline.locations.data[idx].lat = nod.lat - newline.locations.data[idx].long = nod.lon + new_line.locations.data[idx].lat = nod.lat + new_line.locations.data[idx].long = nod.lon idx = idx + 1 - newL = self.add_api_line(newline, original=False) + self.add_api_line(new_line, original=False) + self.circuit.add_line(new_line) better_first.line_container.disable_line() better_second.line_container.disable_line() - def createNewLineWizard(self): + def get_selected_substations(self) -> List[SubstationGraphicItem]: + """ + Get the selected substations graphics + :return: List[SubstationGraphicItem] + """ + return [s for s in self.map.view.selected_items() if isinstance(s, SubstationGraphicItem)] + + def create_new_line_wizard(self): """ Create a new line in the map with dialogues """ - selected_items = self.map.view._scene.selectedItems() - selectedItems = [] - for item in selected_items: - selectedItems.append(item) + selected_items = self.get_selected_substations() - if len(selectedItems) < 2: - return 0 + if len(selected_items) != 2: + error_msg(text="Please select two substations", title="Create new line") + return None - it1: SubstationGraphicItem = selectedItems[0] - it2: SubstationGraphicItem = selectedItems[1] + it1: SubstationGraphicItem = selected_items[0] + it2: SubstationGraphicItem = selected_items[1] if it1 == it2: + error_msg(text="Somehow the two substations are the same :(", title="Create new line") return None dialog = NewMapLineDialogue(grid=self.circuit, se_from=it1.api_object, se_to=it2.api_object) @@ -512,8 +520,12 @@ def createNewLineWizard(self): bus1 = dialog.bus_from() bus2 = dialog.bus_to() if bus1 is not None and bus2 is not None: - newline = Line(bus_from=bus1, bus_to=bus2) - self.add_api_line(newline, original=True) + new_line = Line(bus_from=bus1, bus_to=bus2) + self.add_api_line(new_line, original=True) + self.circuit.add_line(new_line) + else: + error_msg(text="Some of the buses was None :(", title="Create new line") + return None def removeNode(self, node: NodeGraphicItem): """ @@ -570,8 +582,7 @@ def add_api_line(self, api_object: Line, original: bool = True) -> MapAcLine: # create the nodes line_container.draw_all() - # there is not need to add to the scene - + # there is nt need to add to the scene return line_container def add_api_dc_line(self, api_object: DcLine, original: bool = True) -> MapDcLine: diff --git a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py index 7b0102064..119ed6df5 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py @@ -30,12 +30,12 @@ from __future__ import annotations from typing import List, Union, Tuple, Callable, TYPE_CHECKING from enum import Enum -from PySide6.QtCore import Qt, QTimer, QEvent, QPointF, QRectF +from PySide6.QtCore import Qt, QTimer, QEvent, QPointF from PySide6.QtGui import (QPainter, QColor, QPixmap, QCursor, QMouseEvent, QKeyEvent, QWheelEvent, QResizeEvent, QEnterEvent, QPaintEvent, QDragEnterEvent, QDragMoveEvent, QDropEvent) from PySide6.QtWidgets import (QSizePolicy, QWidget, QGraphicsScene, QGraphicsView, QVBoxLayout, - QGraphicsSceneMouseEvent) + QGraphicsSceneMouseEvent, QGraphicsItem) from GridCal.Gui.Diagrams.MapWidget.Tiles.tiles import Tiles @@ -83,7 +83,7 @@ def mouseReleaseEvent(self, event): :param event: :return: """ - print(f"Scene released at {event.scenePos()}") + # print(f"Scene released at {event.scenePos()}") super().mouseReleaseEvent(event) def mouseMoveEvent(self, event: QGraphicsSceneMouseEvent) -> None: @@ -134,6 +134,13 @@ def __init__(self, self.scale(initial_zoom_factor, initial_zoom_factor) + def selected_items(self) -> List[QGraphicsItem]: + """ + Get the selected items + :return: + """ + return self._scene.selectedItems() + def mousePressEvent(self, event: QMouseEvent): """ @@ -606,6 +613,7 @@ def mousePressEvent(self, event: QMouseEvent) -> None: elif b == Qt.MouseButton.LeftButton: self.left_mbutton_down = True + self.editor.object_editor_table.setModel(None) elif b == Qt.MouseButton.MiddleButton: self.mid_mbutton_down = True @@ -614,7 +622,8 @@ def mousePressEvent(self, event: QMouseEvent) -> None: self.right_mbutton_down = True else: - print('mousePressEvent: unknown button') + pass + # print('mousePressEvent: unknown button') def mouseReleaseEvent(self, event: QMouseEvent) -> None: """ @@ -657,7 +666,8 @@ def mouseReleaseEvent(self, event: QMouseEvent) -> None: self.right_mbutton_down = False else: - print('mouseReleaseEvent: unknown button') + pass + # print('mouseReleaseEvent: unknown button') def mouseDoubleClickEvent(self, event: QMouseEvent): """ @@ -675,7 +685,8 @@ def mouseDoubleClickEvent(self, event: QMouseEvent): elif b == Qt.RightButton: pass else: - print('mouseDoubleClickEvent: unknown button') + pass + # print('mouseDoubleClickEvent: unknown button') def mouseMoveEvent(self, event: QMouseEvent): """ @@ -1816,11 +1827,11 @@ def ChangeTileSet(self, tile_src: Tiles): exist in the new tileset. """ - print('ChangeTileSet: tile_src=%s' % str(tile_src)) + # print('ChangeTileSet: tile_src=%s' % str(tile_src)) # get level and geo position of view centre level, longitude, latitude = self.get_level_and_position() - print('level=%s, geo=(%s, %s)' % (str(level), str(longitude), str(latitude))) + # print('level=%s, geo=(%s, %s)' % (str(level), str(longitude), str(latitude))) # remember old tileset old_tileset = self.tile_src diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 972586a56..e5514dcff 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -801,7 +801,6 @@ def colour_diagrams(self) -> None: """ Color the grid now """ - print("Colour!") if self.ui.available_results_to_color_comboBox.currentIndex() > -1: current_study = self.ui.available_results_to_color_comboBox.currentText() From 100a55f4d4c2f9b23b3eda4d61c4be5f127391f4 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 17:21:50 -0100 Subject: [PATCH 101/218] Better template init but fix the reading --- .idea/workspace.xml | 1225 +++++++++-------- examples/try_template_loading.py | 3 +- .../Gui/Main/SubClasses/Model/diagrams.py | 12 +- .../Devices/Aggregation/investment.py | 92 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 2 - 5 files changed, 735 insertions(+), 599 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8b243f156..b5b637abf 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,12 +28,12 @@ - + - - - + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.acciona_capex.executor": "Run", - "Python.associations_templates.executor": "Debug", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.multi_select.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tallr_table_headers.executor": "Debug", - "Python.test_derivatives.executor": "Run", - "Python.try_template_loading.executor": "Debug", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "da64cd0f", - "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -1837,7 +1837,6 @@ - @@ -1862,7 +1861,8 @@ - @@ -2337,27 +2337,17 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1050 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1051 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1338 + 1312 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1275 + 1249 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1230 + 1204 @@ -2380,6 +2370,41 @@ 167 + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 78 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 79 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 80 + + + file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/Model/objects.py + 388 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 61 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 67 + + + file://$PROJECT_DIR$/src/GridCal/Gui/associations_model.py + 65 + diff --git a/src/GridCal/Gui/Main/SubClasses/Model/objects.py b/src/GridCal/Gui/Main/SubClasses/Model/objects.py index f4e88c57f..29af089e4 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/objects.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/objects.py @@ -376,7 +376,13 @@ def display_associations(self): gc_prop = elements[0].get_property_by_name(prop_name=association_prperty_name) associations: dev.Associations = elements[0].get_snapshot_value_by_name(name=association_prperty_name) - associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) + if elements[0].device_type == DeviceType.InvestmentDevice: + associated_objects = [] + for dev_type in [DeviceType.TransformerTypeDevice, DeviceType.OverheadLineTypeDevice, + DeviceType.UnderGroundLineDevice, DeviceType.SequenceLineDevice]: + associated_objects += self.circuit.get_elements_by_type(device_type=dev_type) + else: + associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) self.ui.association_units_label.setText(gc_prop.units) if len(associated_objects) > 0: diff --git a/src/GridCal/Gui/associations_model.py b/src/GridCal/Gui/associations_model.py index 2f6937130..a81439a87 100644 --- a/src/GridCal/Gui/associations_model.py +++ b/src/GridCal/Gui/associations_model.py @@ -21,6 +21,7 @@ from PySide6 import QtCore, QtWidgets from GridCal.Gui.GuiFunctions import (FloatDelegate) +from GridCalEngine.enumerations import DeviceType from GridCalEngine.Devices.Associations.association import Association, Associations from GridCalEngine.Devices.Parents.editable_device import GCProp from GridCalEngine.Devices.types import ASSOCIATION_TYPES, ALL_DEV_TYPES @@ -84,7 +85,7 @@ def __init__(self, self._decimals = decimals - # flag for the headers text wraper: HeaderViewWithWordWrap + # flag for the headers text wrapper: HeaderViewWithWordWrap self._hide_headers_mode = False def hideHeaders(self): diff --git a/src/GridCalEngine/Devices/types.py b/src/GridCalEngine/Devices/types.py index 91df2486c..a574877f0 100644 --- a/src/GridCalEngine/Devices/types.py +++ b/src/GridCalEngine/Devices/types.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from typing import Union +from typing import Union, List from GridCalEngine.Devices.Aggregation import * from GridCalEngine.Devices.Associations import * from GridCalEngine.Devices.Branches import * diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index efd590ef2..d94187869 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1062,9 +1062,9 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, if associations.device_type is None: type_dicts = next((elements_dict_by_type.get(key) for key in [DeviceType.TransformerTypeDevice, + DeviceType.SequenceLineDevice, DeviceType.OverheadLineTypeDevice, - DeviceType.UnderGroundLineDevice, - DeviceType.SequenceLineDevice] + DeviceType.UnderGroundLineDevice] if key in elements_dict_by_type), {}) update_assoc_type = True From 52854375b50eafaef4753c68b8d50be95be11cd2 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 14 Aug 2024 21:11:34 -0100 Subject: [PATCH 107/218] Fix changes previous to pack/unpack --- src/GridCalEngine/IO/gridcal/pack_unpack.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index d94187869..334519b30 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1080,6 +1080,12 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, updatable_device_type=update_assoc_type ) + elif gc_prop.tpe == SubObjectType.ObjectsList: + prop_name = elm.get_snapshot_value(gc_prop) + print('xkk') + if prop_name == 'Investment': + print('xkk') + else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") From 5646c29fb46fe14bf0c3ff71aeb894faae22a854 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Thu, 15 Aug 2024 19:34:45 -0100 Subject: [PATCH 108/218] Check the investment template type inside --- src/GridCalEngine/IO/gridcal/pack_unpack.py | 25 +++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 334519b30..71e8f1972 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1081,10 +1081,27 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, ) elif gc_prop.tpe == SubObjectType.ObjectsList: - prop_name = elm.get_snapshot_value(gc_prop) - print('xkk') - if prop_name == 'Investment': - print('xkk') + + val = property_value + elm.set_snapshot_value(gc_prop.name, val) + search_and_apply_json_profile(json_entry=json_entry, + gc_prop=gc_prop, + elm=elm, + property_value=val) + + print('enter investments unpack') + + # if collection is not None: + # ref_idtag = str(property_value) + # ref_elm = collection.get(ref_idtag, None) + # + # if ref_elm is not None: + # elm.set_snapshot_value(gc_prop.name, ref_elm) + # search_and_apply_json_profile(json_entry=json_entry, + # gc_prop=gc_prop, + # elm=elm, + # property_value=ref_elm, + # collection=collection) else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") From 4a954398a80f3e04e9463f706ad3a15b371576b6 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 11:10:32 +0100 Subject: [PATCH 109/218] refactoring to allow device_type optimization --- .idea/workspace.xml | 882 ++++++++---------- examples/try_investment_optimization.py | 2 +- examples/try_template_loading.py | 2 +- .../Gui/Main/SubClasses/Model/diagrams.py | 56 +- .../Compilers/circuit_to_data.py | 2 - .../DataStructures/branch_data.py | 5 - .../Devices/Aggregation/investment.py | 88 +- .../Devices/Associations/association.py | 34 +- src/GridCalEngine/Devices/Branches/line.py | 14 + .../Devices/Branches/transformer.py | 58 -- src/GridCalEngine/Devices/multi_circuit.py | 2 - src/GridCalEngine/Devices/types.py | 7 + .../Methods/mixed_variable_NSGA_2.py | 122 ++- 13 files changed, 558 insertions(+), 716 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8918fcd8d..b234ed03e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,12 +28,20 @@ - + - - - - - - - - - - - - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", - "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", - "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.GridCalMain.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.fubm_example.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - - + + - - + + - + - - + + - - + + @@ -690,14 +684,13 @@ - - + + + - - @@ -1450,7 +1443,7 @@ - + 1656059954202 @@ -1795,7 +1788,7 @@ - @@ -1842,8 +1835,6 @@ - - @@ -1867,7 +1858,9 @@ - @@ -2277,6 +2270,11 @@ 1285 @@ -2344,6 +2342,7 @@ + @@ -2496,7 +2495,7 @@ - + @@ -2672,7 +2671,7 @@ - + diff --git a/src/GridCalEngine/Devices/multi_circuit.py b/src/GridCalEngine/Devices/multi_circuit.py index 6d3028052..9d799c647 100644 --- a/src/GridCalEngine/Devices/multi_circuit.py +++ b/src/GridCalEngine/Devices/multi_circuit.py @@ -1735,12 +1735,21 @@ def compare_circuits(self, grid2: "MultiCircuit", v1 = elm1.get_property_value(prop=prop, t_idx=None) v2 = elm2.get_property_value(prop=prop, t_idx=None) - if v1 != v2: - logger.add_error(msg="Different snapshot values", - device_class=template_elm.device_type.value, - device_property=prop.name, - value=v2, - expected_value=v1) + if type(v1) == type(v2): + + if v1 != v2: + logger.add_error(msg="Different snapshot values", + device_class=template_elm.device_type.value, + device_property=prop.name, + value=v2, + expected_value=v1) + else: + # we update the type of the property...no error for now + logger.add_warning(msg="Different snapshot value types", + device_class=template_elm.device_type.value, + device_property=prop.name, + value=str(type(v2)), + expected_value=str(type(v1))) if prop.has_profile(): p1 = elm1.get_profile_by_prop(prop=prop) From 278b648567a5b7ec233ded7f3244162da055155b Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 12:49:30 +0100 Subject: [PATCH 112/218] Fixed the wire material and stranding type change in a more elegant manner --- src/GridCalEngine/Devices/Branches/wire.py | 35 +++++++++++++++++----- src/GridCalEngine/Devices/multi_circuit.py | 21 ++++--------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/src/GridCalEngine/Devices/Branches/wire.py b/src/GridCalEngine/Devices/Branches/wire.py index fc04f563b..b4372dc07 100644 --- a/src/GridCalEngine/Devices/Branches/wire.py +++ b/src/GridCalEngine/Devices/Branches/wire.py @@ -24,7 +24,12 @@ class Wire(EditableDevice): This class represents a wire (an actual wire) to compose towers """ - def __init__(self, name='', idtag: Union[str, None] = None, gmr=0.01, r=0.01, x=0.0, max_current=1, stranding=0.0, material=0.0, diameter=0.0): + def __init__(self, name='', idtag: Union[str, None] = None, + gmr: float = 0.01, r: float = 0.01, x: float = 0.0, + max_current: float = 1.0, + stranding: str = "", + material: str = "", + diameter: float = 0.0): """ Wire definition :param name: Name of the wire type @@ -42,8 +47,8 @@ def __init__(self, name='', idtag: Union[str, None] = None, gmr=0.01, r=0.01, x= device_type=DeviceType.WireDevice) # self.wire_name = name - self.stranding = stranding - self.material = material + self._stranding = str(stranding) + self._material = str(material) self.diameter = diameter self.R = r self.X = x @@ -58,10 +63,26 @@ def __init__(self, name='', idtag: Union[str, None] = None, gmr=0.01, r=0.01, x= self.register(key='material', tpe=str, definition='Material of wire') self.register(key='diameter', units='cm', tpe=float, definition='Diameter of wire') - def copy(self): + @property + def stranding(self) -> str: """ - Copy of the wire + Stranding of wire :return: """ - # name='', idtag=None, gmr=0.01, r=0.01, x=0.0, max_current=1 - return Wire(name=self.name, gmr=self.GMR, r=self.R, x=self.X, max_current=self.max_current, stranding=self.stranding, material=self.material, diameter=self.diameter) + return self._stranding + + @stranding.setter + def stranding(self, value: str): + self._stranding = str(value) + + @property + def material(self) -> str: + """ + Material of wire + :return: + """ + return self._material + + @material.setter + def material(self, value: str): + self._material = str(value) diff --git a/src/GridCalEngine/Devices/multi_circuit.py b/src/GridCalEngine/Devices/multi_circuit.py index 9d799c647..6d3028052 100644 --- a/src/GridCalEngine/Devices/multi_circuit.py +++ b/src/GridCalEngine/Devices/multi_circuit.py @@ -1735,21 +1735,12 @@ def compare_circuits(self, grid2: "MultiCircuit", v1 = elm1.get_property_value(prop=prop, t_idx=None) v2 = elm2.get_property_value(prop=prop, t_idx=None) - if type(v1) == type(v2): - - if v1 != v2: - logger.add_error(msg="Different snapshot values", - device_class=template_elm.device_type.value, - device_property=prop.name, - value=v2, - expected_value=v1) - else: - # we update the type of the property...no error for now - logger.add_warning(msg="Different snapshot value types", - device_class=template_elm.device_type.value, - device_property=prop.name, - value=str(type(v2)), - expected_value=str(type(v1))) + if v1 != v2: + logger.add_error(msg="Different snapshot values", + device_class=template_elm.device_type.value, + device_property=prop.name, + value=v2, + expected_value=v1) if prop.has_profile(): p1 = elm1.get_profile_by_prop(prop=prop) From 204c705bfed32e3b31921a2e80f99ff5248e9345 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 15 Jul 2024 18:59:44 +0100 Subject: [PATCH 113/218] Work in progress towards better ACDC jacobian formulation --- .idea/workspace.xml | 372 +++-- CONTRIBUTING.md | 3 - .../grids/Controllable_shunt_example.gridcal | Bin 0 -> 10807 bytes .../DataStructures/branch_data.py | 6 +- .../DataStructures/numerical_circuit.py | 4 +- .../LinearFactors/linear_analysis.py | 6 +- .../PowerFlow/NumericalMethods/ac_jacobian.py | 19 +- .../NumericalMethods/acdc_jacobian.py | 1275 +++++++++-------- .../PowerFlow/NumericalMethods/derivatives.py | 965 ------------- .../NumericalMethods/helm_power_flow.py | 31 +- .../levenberg_marquardt_acdc.py | 4 +- .../NumericalMethods/newton_raphson_acdc.py | 8 +- .../Simulations/derivatives/__init__.py | 0 .../derivatives/csc_derivatives.py | 1259 ++++++++++++++++ .../derivatives/csr_derivatives.py | 101 ++ .../derivatives/matpower_derivatives.py | 147 ++ src/GridCalEngine/Utils/Sparse/csc2.py | 467 +++++- .../grids/fubm_case_57_14_2MTDC_ctrls.gridcal | Bin 0 -> 40982 bytes src/tests/tests_derivatives.py | 289 ++++ 19 files changed, 3166 insertions(+), 1790 deletions(-) create mode 100644 Grids_and_profiles/grids/Controllable_shunt_example.gridcal delete mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/derivatives.py create mode 100644 src/GridCalEngine/Simulations/derivatives/__init__.py create mode 100644 src/GridCalEngine/Simulations/derivatives/csc_derivatives.py create mode 100644 src/GridCalEngine/Simulations/derivatives/csr_derivatives.py create mode 100644 src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py create mode 100644 src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.gridcal create mode 100644 src/tests/tests_derivatives.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e0c19faec..2e2da3600 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,26 @@ - - - - - - - - + - - + - - - - + + + + + + + @@ -174,9 +173,9 @@ "Python tests.pytest in test_sparse2.py.executor": "Run", "Python tests.pytest in test_topology_processor.py.executor": "Run", "Python tests.pytest in tests.executor": "Run", - "Python tests.pytest in tests_derivatives.py.executor": "Run", + "Python tests.pytest in tests_derivatives.py.executor": "Debug", "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", + "Python.ExecuteGridCal.executor": "Debug", "Python.cgmes_rdfs_graph.executor": "Run", "Python.new_circuit_objects.executor": "Run", "Python.pymoo_example.executor": "Debug", @@ -188,7 +187,7 @@ "RunOnceActivity.ShowReadmeOnStart": "true", "WebServerToolWindowFactoryState": "false", "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", "node.js.detected.package.eslint": "true", "node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)", @@ -206,21 +205,21 @@ - + - + - + @@ -1442,11 +1441,7 @@ - - - - - + 1656059954202 @@ -1791,7 +1786,7 @@ - @@ -1837,6 +1832,7 @@ + @@ -1861,8 +1857,7 @@ - - @@ -2353,20 +2348,35 @@ 56 - + - + - + @@ -2389,23 +2399,23 @@ - + - + - - + + - + @@ -2428,18 +2438,18 @@ - - + + - - + + @@ -2467,9 +2477,9 @@ - - + + @@ -2533,8 +2543,8 @@ - + @@ -2545,8 +2555,8 @@ - + @@ -2620,7 +2630,7 @@ - + @@ -2740,13 +2750,13 @@ - + - + diff --git a/Grids_and_profiles/grids/fubm_case_57_14_2MTDC_ctrls.gridcal b/Grids_and_profiles/grids/fubm_case_57_14_2MTDC_ctrls.gridcal index d7ad5f4f3fe61bca843abc92f5409090aab26938..e1a57de6a55d7aeaa53402610c89196c9f81a2e8 100644 GIT binary patch literal 60276 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 pd.DataFrame: # compute admittances Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) - Ybus, Yf, Yt, tap = ycalc.compile_y_acdc( + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( Cf=self.Cf, Ct=self.Ct, C_bus_shunt=self.shunt_data.C_bus_elm.tocsc(), @@ -1649,16 +1649,17 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: J = fubm_jacobian( nbus=self.nbus, - nl=self.nbr, - k_pf_tau=self.k_pf_tau, - k_pf_dp=self.k_pf_dp, - k_qf_m=self.k_qf_m, - k_qt_m=self.k_qt_m, - k_vt_m=self.k_vt_m, - k_zero_beq=self.k_zero_beq, - k_vf_beq=self.k_vf_beq, - i_vf_beq=self.i_vf_beq, - i_vt_m=self.i_vt_m, + idx_dtheta=np.r_[self.pv, self.pq, self.p, self.pqv], + idx_dvm=np.r_[self.pq, self.p], + idx_dm=np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m], + idx_dtau=np.r_[self.k_pf_tau, self.k_pf_dp], + idx_dbeq=np.r_[self.k_zero_beq, self.k_vf_beq], + idx_dP=np.r_[self.pv, self.pq, self.p, self.pqv], + idx_dQ=np.r_[self.pq, self.pqv], + idx_dQf=np.r_[self.k_qf_m, self.k_zero_beq], + idx_dQt=self.k_qt_m, + idx_dPf=self.k_pf_tau, + idx_dPdp=self.k_pf_dp, F=self.F, T=self.T, Ys=Ys, @@ -1669,13 +1670,14 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: Beq=self.branch_data.Beq, Kdp=self.branch_data.Kdp, V=self.Vbus, - Ybus=Ybus.tocsc(), - Yf=Yf.tocsc(), - Yt=Yt.tocsc(), - Cf=self.Cf.tocsc(), - Ct=self.Ct.tocsc(), - pvpq=pvpq, - pq=self.pq, + Vm=np.abs(self.Vbus), + Ybus_x=self.Ybus.data, + Ybus_p=self.Ybus.indptr, + Ybus_i=self.Ybus.indices, + yff=self.admittances_.yff, + yft=self.admittances_.yft, + ytf=self.admittances_.ytf, + ytt=self.admittances_.ytt ) df = pd.DataFrame( diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py index 0e06b505f..54b176d74 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py @@ -891,7 +891,40 @@ def fubm_jacobian(nbus: int, yft: CxVec, ytf: CxVec, ytt: CxVec) -> CSC: + """ + :param nbus: + :param idx_dtheta: + :param idx_dvm: + :param idx_dm: + :param idx_dtau: + :param idx_dbeq: + :param idx_dP: + :param idx_dQ: + :param idx_dQf: + :param idx_dQt: + :param idx_dPf: + :param idx_dPdp: + :param F: + :param T: + :param Ys: + :param kconv: + :param complex_tap: + :param tap_modules: + :param Bc: + :param Beq: + :param Kdp: + :param V: + :param Vm: + :param Ybus_x: + :param Ybus_p: + :param Ybus_i: + :param yff: + :param yft: + :param ytf: + :param ytt: + :return: + """ # bus-bus derivatives (always needed) dS_dVm_x, dS_dVa_x = deriv.dSbus_dV_numba_sparse_csc(Ybus_x, Ybus_p, Ybus_i, V, Vm) @@ -915,12 +948,12 @@ def fubm_jacobian(nbus: int, dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) - dP_dbeq__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real - dQ_dbeq__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dQf_dbeq_ = deriv.dSf_dm_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag + dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real + dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag + dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) - dPf_dbeq_ = deriv.dSf_dm_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dPdp_dbeq = deriv.dSf_dm_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real + dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 86c259514..142648629 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -106,16 +106,16 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, k_pf_dp=nc.k_pf_dp) # ------------------------------------------------------------------------- # compute initial admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm, - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm, + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus, Yf(br, :) * V; For in-service Branches @@ -170,7 +170,8 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # evaluate Jacobian if update_jacobian: - H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, nc.k_vf_beq, + H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, + nc.k_vf_beq, nc.i_vf_beq, nc.i_vt_m, F, T, Ys, k2, tap, m, Bc, Beq, Kdp, V, Ybus, Yf, Yt, Cf, Ct, pvpq, pq) @@ -236,17 +237,17 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, nu *= 2.0 # compute initial admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, - Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm, - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, + Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm, + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus, Yf(br, :) * V; For in-service Branches diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index 7187bf7ee..630f761e6 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -73,17 +73,17 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, pv = pv_.copy() pqv = pqv_.copy() p = p_.copy() - blck1_idx = np.r_[pv, pq, p, pqv] - blck2_idx = np.r_[pq, p] - blck3_idx = np.r_[pq, pqv] - n_block1 = len(blck1_idx) + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dVm = np.r_[pq, p] + idx_dQ = np.r_[pq, pqv] + n_idx_dtheta = len(idx_dtheta) - if n_block1 > 0: + if n_idx_dtheta > 0: # evaluate F(x0) Sbus = cf.compute_zip_power(S0, I0, Y0, Vm) Scalc = cf.compute_power(Ybus, V) - f = cf.compute_fx(Scalc, Sbus, blck1_idx, blck3_idx) + f = cf.compute_fx(Scalc, Sbus, idx_dtheta, idx_dQ) norm_f = cf.compute_fx_error(f) converged = norm_f < tol @@ -97,7 +97,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, iteration += 1 # evaluate Jacobian - J = AC_jacobianVc(Ybus, V, blck1_idx, blck2_idx, blck3_idx) + J = AC_jacobianVc(Ybus, V, idx_dtheta, idx_dVm, idx_dQ) # compute update step try: @@ -135,8 +135,8 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, logger.add_debug('Va:\n', Va) # reassign the solution vector - dVa[blck1_idx] = dx[:n_block1] - dVm[blck2_idx] = dx[n_block1:] + dVa[idx_dtheta] = dx[:n_idx_dtheta] + dVm[idx_dVm] = dx[n_idx_dtheta:] # set the values and correct with an adaptive mu if needed mu = mu_0 # ideally 1.0 @@ -153,7 +153,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, # compute the mismatch function f(x_new) Sbus = cf.compute_zip_power(S0, I0, Y0, Vm2) Scalc = cf.compute_power(Ybus, V2) - f = cf.compute_fx(Scalc, Sbus, blck1_idx, blck3_idx) + f = cf.compute_fx(Scalc, Sbus, idx_dtheta, idx_dQ) norm_f_new = cf.compute_fx_error(f) # change mu for the next iteration @@ -201,14 +201,14 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, if len(changed) > 0: # adjust internal variables to the new pq|pv values - blck1_idx = np.r_[pv, pq, p, pqv] - blck2_idx = np.r_[pq, p] - blck3_idx = np.r_[pq, pqv] - n_block1 = len(blck1_idx) + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dVm = np.r_[pq, p] + idx_dQ = np.r_[pq, pqv] + n_idx_dtheta = len(idx_dtheta) # recompute the error based on the new Scalc and S0 Sbus = cf.compute_zip_power(S0, I0, Y0, Vm) - f = cf.compute_fx(Scalc, Sbus, blck1_idx, blck3_idx) + f = cf.compute_fx(Scalc, Sbus, idx_dtheta, idx_dQ) norm_f = np.linalg.norm(f, np.inf) # determine the convergence condition diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index fe5e78ad3..622e0b57b 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -29,7 +29,8 @@ compute_power, compute_zip_power) from GridCalEngine.basic_structures import CxVec from GridCalEngine.enumerations import ReactivePowerControlMode -import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp +# import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp +from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc def NR_LS_ACDC(nc: NumericalCircuit, @@ -89,13 +90,11 @@ def NR_LS_ACDC(nc: NumericalCircuit, T = nc.T Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) Bc = nc.branch_data.B - pq = nc.pq.copy().astype(int) - pvpq_orig = np.r_[nc.pv, pq].astype(int) - pvpq_orig.sort() # the elements of PQ that exist in the control indices Ivf and Ivt must be passed from the PQ to the PV list # otherwise those variables would be in two sets of equations i_ctrl_v = np.unique(np.r_[nc.i_vf_beq, nc.i_vt_m]) + pq = nc.pq.copy() for val in pq: if val in i_ctrl_v: pq = pq[pq != val] @@ -103,14 +102,26 @@ def NR_LS_ACDC(nc: NumericalCircuit, # compose the new pvpq indices à la NR pv = np.unique(np.r_[i_ctrl_v, nc.pv]).astype(int) pv.sort() - pvpq = np.r_[pv, pq].astype(int) - npv = len(pv) - npq = len(pq) + + pqv = nc.pqv.copy() + p = nc.p.copy() + + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dvm = np.r_[pq, p] + idx_dm = np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m] + idx_dtau = np.r_[nc.k_pf_tau, nc.k_pf_dp] + idx_dbeq = np.r_[nc.k_zero_beq, nc.k_vf_beq] + idx_dP = np.r_[pv, pq, p, pqv] + idx_dQ = np.r_[pq, pqv] + idx_dQf = np.r_[nc.k_qf_m, nc.k_zero_beq] + idx_dQt = nc.k_qt_m + idx_dPf = nc.k_pf_tau + idx_dPdp = nc.k_pf_dp # -------------------------------------------------------------------------- # variables dimensions in Jacobian - sol_slicer = AcDcSolSlicer(block1=pvpq, - block2=pq, + sol_slicer = AcDcSolSlicer(block1=idx_dtheta, + block2=idx_dvm, k_zero_beq=nc.k_zero_beq, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, @@ -121,16 +132,16 @@ def NR_LS_ACDC(nc: NumericalCircuit, # ------------------------------------------------------------------------- # compute initial admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus, Yf(br, :) * V; For in-service Branches @@ -158,8 +169,8 @@ def NR_LS_ACDC(nc: NumericalCircuit, Vmfset=Vmfset, Kdp=Kdp, F=F, - pvpq=pvpq, - pq=pq, + pvpq=idx_dP, + pq=idx_dQ, k_pf_tau=nc.k_pf_tau, k_qf_m=nc.k_qf_m, k_zero_beq=nc.k_zero_beq, @@ -176,12 +187,39 @@ def NR_LS_ACDC(nc: NumericalCircuit, while not converged and iterations < max_iter: # compute the Jacobian - J = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, nc.k_vf_beq, - nc.i_vf_beq, nc.i_vt_m, - F, T, Ys, k2, tap, m, Bc, Beq, Kdp, V, Ybus, Yf, Yt, Cf, Ct, pvpq, pq) + J = fubm_jacobian(nbus=nc.nbus, + idx_dtheta=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], + idx_dvm=np.r_[nc.pq, nc.p], + idx_dm=np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m], + idx_dtau=np.r_[nc.k_pf_tau, nc.k_pf_dp], + idx_dbeq=np.r_[nc.k_zero_beq, nc.k_vf_beq], + idx_dP=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], + idx_dQ=np.r_[nc.pq, nc.pqv], + idx_dQf=np.r_[nc.k_qf_m, nc.k_zero_beq], + idx_dQt=nc.k_qt_m, + idx_dPf=nc.k_pf_tau, + idx_dPdp=nc.k_pf_dp, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + complex_tap=tap, + tap_modules=nc.branch_data.tap_module, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + Kdp=nc.branch_data.Kdp, + V=V, + Vm=Vm, + Ybus_x=Ybus.data, + Ybus_p=Ybus.indptr, + Ybus_i=Ybus.indices, + yff=yff, + yft=yft, + ytf=ytf, + ytt=ytt) # solve the linear system - dx = gcsp.super_lu_linsolver(J, -fx) + dx = spsolve_csc(J, -fx) if not np.isnan(dx).any(): # check if the solution worked @@ -223,16 +261,16 @@ def NR_LS_ACDC(nc: NumericalCircuit, Sbus = compute_zip_power(S0=S0, I0=I0, Y0=Y0, Vm=Vm) # compute admittances - Ybus, Yf, Yt, tap = compile_y_acdc(Cf=Cf, Ct=Ct, - C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=nc.shunt_data.Y, - shunt_active=nc.shunt_data.active, - ys=Ys, - B=Bc, - Sbase=nc.Sbase, - tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, - virtual_tap_from=nc.branch_data.virtual_tap_f, - virtual_tap_to=nc.branch_data.virtual_tap_t) + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=Cf, Ct=Ct, + C_bus_shunt=nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=nc.shunt_data.Y, + shunt_active=nc.shunt_data.active, + ys=Ys, + B=Bc, + Sbase=nc.Sbase, + tap_module=m, tap_angle=tau, Beq=Beq, Gsw=Gsw, + virtual_tap_from=nc.branch_data.virtual_tap_f, + virtual_tap_to=nc.branch_data.virtual_tap_t) # compute branch power Sf If = Yf * V # complex current injected at "from" bus @@ -260,8 +298,8 @@ def NR_LS_ACDC(nc: NumericalCircuit, Vmfset=Vmfset, Kdp=Kdp, F=F, - pvpq=pvpq, - pq=pq, + pvpq=idx_dP, + pq=idx_dQ, k_pf_tau=nc.k_pf_tau, k_qf_m=nc.k_qf_m, k_zero_beq=nc.k_zero_beq, @@ -319,7 +357,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and npv > 0: + if control_q != ReactivePowerControlMode.NoControl and (len(pv) + len(pqv)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, @@ -328,14 +366,14 @@ def NR_LS_ACDC(nc: NumericalCircuit, if len(changed) > 0: # adjust internal variables to the new pq|pv values - blck1_idx = np.r_[pv, pq, p, pqv] - blck2_idx = np.r_[pq, p] - blck3_idx = np.r_[pq, pqv] - n_block1 = len(blck1_idx) + idx_dtheta = np.r_[pv, pq, p, pqv] + idx_dvm = np.r_[pq, p] + idx_dP = np.r_[pv, pq, p, pqv] + idx_dQ = np.r_[pq, pqv] # re declare the slicer because the indices of pq and pv changed - sol_slicer = AcDcSolSlicer(block1=pvpq, - block2=pq, + sol_slicer = AcDcSolSlicer(block1=idx_dtheta, + block2=idx_dvm, k_zero_beq=nc.k_zero_beq, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, @@ -357,8 +395,8 @@ def NR_LS_ACDC(nc: NumericalCircuit, Vmfset=Vmfset, Kdp=Kdp, F=F, - pvpq=pvpq, - pq=pq, + pvpq=idx_dP, + pq=idx_dQ, k_pf_tau=nc.k_pf_tau, k_qf_m=nc.k_qf_m, k_zero_beq=nc.k_zero_beq, diff --git a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py index 28d07d8e1..aaf619e12 100644 --- a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py @@ -16,10 +16,9 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import numpy as np -from numba import njit, complex128, int32, float64 +from numba import njit, complex128, int32 from typing import Tuple -import scipy.sparse as sp -from scipy.sparse import lil_matrix, diags, csc_matrix, csr_matrix +from scipy.sparse import csc_matrix from GridCalEngine.basic_structures import CxVec, IntVec, Vec from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, make_lookup @@ -416,7 +415,7 @@ def dPfdp_dVm_csc(nbus, br_indices, bus_indices, yff, yft, kdp, V, F, T) -> CSC: # to side if t_idx >= 0: dSf_dvm = Vm_f * np.conj(yft[k]) * ea - Tx[nnz] = - dSf_dvm + Tx[nnz] = - dSf_dvm.real Ti[nnz] = k_counter Tj[nnz] = t_idx nnz += 1 @@ -609,7 +608,7 @@ def dSt_dVa_csc(nbus, br_indices, bus_indices, ytf, V, F, T) -> CxCSC: @njit() def derivatives_tau_csc_numba(nbus, nbr, iPxsh, F: IntVec, T: IntVec, - Ys: CxVec, k2, tap, V) -> Tuple[CxCSC, CxCSC, CxCSC]: + Ys: CxVec, kconv, tap, V) -> Tuple[CxCSC, CxCSC, CxCSC]: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -619,7 +618,7 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param k2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: @@ -651,8 +650,8 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, t = T[idx] # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[idx] / (-1j * k2[idx] * np.conj(tap[idx])) - ytf_dsh = -Ys[idx] / (1j * k2[idx] * tap[idx]) + yft_dsh = -Ys[idx] / (-1j * kconv[idx] * np.conj(tap[idx])) + ytf_dsh = -Ys[idx] / (1j * kconv[idx] * tap[idx]) # Partials of S w.r.t. Ɵ shift val_f = V[f] * np.conj(yft_dsh * V[t]) @@ -687,7 +686,7 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, @njit() def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, - k2: Vec, tap: CxVec, V: CxVec) -> CxCSC: + kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -699,7 +698,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param k2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: dSbus_dsh @@ -724,7 +723,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV # from side if f_idx >= 0: - yft_dsh = -Ys[k] / (-1j * k2[k] * np.conj(tap[k])) + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) Ti[nnz] = f_idx Tj[nnz] = k_counter @@ -732,7 +731,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV # to side if t_idx >= 0: - ytf_dsh = -Ys[k] / (1j * k2[k] * tap[k]) + ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) Ti[nnz] = t_idx Tj[nnz] = k_counter @@ -745,7 +744,7 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV @njit() -def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -756,7 +755,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param K2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: dSf_dsh @@ -777,7 +776,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V t = T[k] # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[k] / (-1j * K2[k] * np.conj(tap[k])) + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) @@ -792,7 +791,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V @njit() -def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh @@ -803,7 +802,7 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances - :param K2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param V: Array of complex voltages :return: dSf_dsh @@ -826,7 +825,7 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V t = T[k] # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - ytf_dsh = -Ys[k] / (1j * K2[k] * tap[k]) + ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) @@ -840,16 +839,16 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, K2: V return mat -@njit(cache=True) -def derivatives_ma_csc_numba(nb, nl, iXxma, F, T, Ys, kconv, tap, tap_module, Bc, Beq, V) -> Tuple[CxCSC, CxCSC, CxCSC]: +@njit() +def derivatives_ma_csc_numba(nbus, nbr, iXxma, F, T, Ys, kconv, tap, tap_module, Bc, Beq, V) -> Tuple[CxCSC, CxCSC, CxCSC]: """ Useful for the calculation of - dSbus_dQfma, dSf_dQfma, dSt_dQfma -> wih iXxma=iQfma - dSbus_dQtma, dSf_dQtma, dSt_dQtma -> wih iXxma=iQtma - dSbus_dVtma, dSf_dVtma, dSt_dVtma -> wih iXxma=iVtma - :param nb: Number of buses - :param nl: Number of Branches + :param nbus: Number of buses + :param nbr: Number of Branches :param iXxma: Array of indices {iQfma, iQtma, iVtma} :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices @@ -867,19 +866,19 @@ def derivatives_ma_csc_numba(nb, nl, iXxma, F, T, Ys, kconv, tap, tap_module, Bc ndev = len(iXxma) # dSbus_dma = lil_matrix((nb, ndev), dtype=complex) - dSbus_dma = CxCSC(nb, ndev, ndev * 2, False) + dSbus_dma = CxCSC(nbus, ndev, ndev * 2, False) # dSbus_dma_data = np.empty(ndev2, dtype=np.complex128) # dSbus_dma_indices = np.empty(ndev2, dtype=np.int32) # dSbus_dma_indptr = np.empty(ndev + 1, dtype=np.int32) # dSf_dma = lil_matrix((nl, ndev), dtype=complex) - dSf_dma = CxCSC(nl, ndev, ndev, False) + dSf_dma = CxCSC(nbr, ndev, ndev, False) # dSf_dma_data = np.empty(ndev, dtype=np.complex128) # dSf_dma_indices = np.empty(ndev, dtype=np.int32) # dSf_dma_indptr = np.empty(ndev + 1, dtype=np.int32) # dSt_dma = lil_matrix((nl, ndev), dtype=complex) - dSt_dma = CxCSC(nl, ndev, ndev, False) + dSt_dma = CxCSC(nbr, ndev, ndev, False) # dSt_dma_data = np.empty(ndev, dtype=np.complex128) # dSt_dma_indices = np.empty(ndev, dtype=np.int32) # dSt_dma_indptr = np.empty(ndev + 1, dtype=np.int32) @@ -1086,19 +1085,19 @@ def dSt_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Ve return mat -@njit(cache=True) -def derivatives_Beq_csc_numba(nb, nbr, iBeqx, F, V, ma, kconv): +@njit() +def derivatives_Beq_csc_numba(nbus, nbr, iBeqx, F, V, tap_module, kconv): """ Compute the derivatives of: - dSbus_dBeqz, dSf_dBeqz, dSt_dBeqz -> iBeqx=iBeqz - dSbus_dBeqv, dSf_dBeqv, dSt_dBeqv -> iBeqx=iBeqv - :param nb: Number of buses + :param nbus: Number of buses :param nbr: Number of Branches :param iBeqx: array of indices {iBeqz, iBeqv} :param F: Array of branch "from" bus indices :param V:Array of complex voltages - :param ma: Array of branch taps modules + :param tap_module: Array of branch taps modules :param kconv: Array of "k2" parameters :return: @@ -1108,7 +1107,7 @@ def derivatives_Beq_csc_numba(nb, nbr, iBeqx, F, V, ma, kconv): ndev = len(iBeqx) - dSbus_dBeq = CxCSC(nb, ndev, ndev, False) + dSbus_dBeq = CxCSC(nbus, ndev, ndev, False) dSf_dBeq = CxCSC(nbr, ndev, ndev, False) dSt_dBeq = CxCSC(nbr, ndev, 0, True) @@ -1119,7 +1118,7 @@ def derivatives_Beq_csc_numba(nb, nbr, iBeqx, F, V, ma, kconv): f = F[idx] # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq - dyff_dBeq = 1j / np.power(kconv[idx] * ma[idx], 2.0) + dyff_dBeq = 1j / np.power(kconv[idx] * tap_module[idx], 2.0) # Partials of S w.r.t.Beq val_f = V[f] * np.conj(dyff_dBeq * V[f]) diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index 3ba7eb119..b2b1df998 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -411,7 +411,7 @@ def compile_y_acdc(Cf: sp.csc_matrix, Beq: Vec, Gsw: Vec, virtual_tap_from: Vec, - virtual_tap_to: Vec) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec]: + virtual_tap_to: Vec) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec, CxVec, CxVec, CxVec, CxVec]: """ Compile the admittance matrices using the variable elements :param Cf: Connectivity branch-bus "from" with the branch states computed @@ -443,17 +443,17 @@ def compile_y_acdc(Cf: sp.csc_matrix, tap = tap_module * np.exp(1.0j * tap_angle) # compose the primitives - Yff = Gsw + (ys + bc2 + 1.0j * Beq + yshunt_f) / (tap_module * tap_module * virtual_tap_from * virtual_tap_from) - Yft = -ys / (np.conj(tap) * virtual_tap_from * virtual_tap_to) - Ytf = -ys / (tap * virtual_tap_from * virtual_tap_to) - Ytt = ys + bc2 + yshunt_t / (virtual_tap_to * virtual_tap_to) + yff = Gsw + (ys + bc2 + 1.0j * Beq + yshunt_f) / (tap_module * tap_module * virtual_tap_from * virtual_tap_from) + yft = -ys / (np.conj(tap) * virtual_tap_from * virtual_tap_to) + ytf = -ys / (tap * virtual_tap_from * virtual_tap_to) + ytt = ys + bc2 + yshunt_t / (virtual_tap_to * virtual_tap_to) # compose the matrices - Yf = sp.diags(Yff) * Cf + sp.diags(Yft) * Ct - Yt = sp.diags(Ytf) * Cf + sp.diags(Ytt) * Ct + Yf = sp.diags(yff) * Cf + sp.diags(yft) * Ct + Yt = sp.diags(ytf) * Cf + sp.diags(ytt) * Ct Ybus = sp.csc_matrix(Cf.T * Yf + Ct.T * Yt) - return Ybus, Yf.tocsc(), Yt.tocsc(), tap + return Ybus, Yf.tocsc(), Yt.tocsc(), tap, yff, yft, ytf, ytt class SeriesAdmittanceMatrices: diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 018ccb12c..e3a4c2c90 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -86,7 +86,7 @@ def fill_from_coo(self, Ti: IntVec, Tj: IntVec, Tx: CxVec, nnz: int): :param nnz: number of non-zeros """ self.nnz = nnz - self.data = np.empty(self.nnz, dtype=np.complex128) + self.data = np.empty(self.nnz, dtype=np.float64) self.indices = np.empty(self.nnz, dtype=np.int32) # self.indptr = np.empty(n_cols + 1, dtype=np.int32) @@ -604,7 +604,7 @@ def sp_slice_rows(mat: CSC, rows: np.ndarray) -> CSC: return sp_transpose(A) -@njit(cache=True) +@njit() def sp_slice(A: CSC, rows: IntVec, cols: IntVec): """ /* @@ -655,8 +655,8 @@ def sp_slice(A: CSC, rows: IntVec, cols: IntVec): return B -@njit(cache=True) -def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: +@njit() +def csc_stack_2d_ff(mats: List[CSC], n_rows: int = 1, n_cols: int = 1) -> CSC: """ Assemble matrix from a list of matrices representing a "super matrix" @@ -670,8 +670,8 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: m_cols = 3 :param mats: list of CSC matrices arranged in row-major order (i.e. [mat11, mat12, mat13, mat21, mat22, mat23] - :param m_rows: number of rows of the mats structure - :param m_cols: number of cols of the mats structure + :param n_rows: number of rows of the mats structure + :param n_cols: number of cols of the mats structure :return: Final assembled matrix in CSC format """ @@ -679,11 +679,11 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: nnz = 0 nrows = 0 ncols = 0 - for r in range(m_rows): - nrows += mats[r * m_cols].n_rows # equivalent to mats[r, 0] - for c in range(m_cols): - col = mats[c + r * m_cols].n_cols # equivalent to mats[r, c] - nnz += mats[c + r * m_cols].nnz + for r in range(n_rows): + nrows += mats[r * n_cols].n_rows # equivalent to mats[r, 0] + for c in range(n_cols): + col = mats[c + r * n_cols].n_cols # equivalent to mats[r, c] + nnz += mats[c + r * n_cols].nnz if r == 0: ncols += col @@ -692,7 +692,7 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: cnt = 0 res.indptr[0] = 0 offset_col = 0 - for c in range(m_cols): # for each column of the array of matrices + for c in range(n_cols): # for each column of the array of matrices # number of columns n = mats[c].n_cols # equivalent to mats[0, c] @@ -702,10 +702,10 @@ def csc_stack_2d_ff(mats: List[CSC], m_rows: int = 1, m_cols: int = 1) -> CSC: offset_row = 0 - for r in range(m_rows): # for each row of the array of rows + for r in range(n_rows): # for each row of the array of rows # get the current sub-matrix - A: CSC = mats[r * m_cols + c] # equivalent to mats[r, c] + A: CSC = mats[r * n_cols + c] # equivalent to mats[r, c] if A.n_rows > 0: diff --git a/src/tests/tests_derivatives.py b/src/tests/tests_derivatives.py index c5d0658af..0ea218825 100644 --- a/src/tests/tests_derivatives.py +++ b/src/tests/tests_derivatives.py @@ -151,111 +151,211 @@ def test_branch_derivatives() -> None: check_dSt_dVa(dSt_dVa1, br_idx, bus_idx, nc) -def check_dSbus_dtau(dSbus_dsh1, br_idx, bus_idx, Ys, nc: NumericalCircuit): +def test_tau_derivatives() -> None: """ - :param dSbus_dsh1: - :param br_idx: - :param bus_idx: - :param Ys: - :param nc: :return: """ - dSbus_dsh2 = cscdiff.dSbus_dtau_csc(nbus=nc.nbus, - bus_indices=bus_idx, - tau_indices=br_idx, - F=nc.F, - T=nc.T, - Ys=Ys, - k2=nc.branch_data.k, - tap=nc.branch_data.tap, - V=nc.Vbus) + # fname = os.path.join("data", "grids", "fubm_case_57_14_2MTDC_ctrls.gridcal") + fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") + grid = gce.open_file(filename=fname) + nc = gce.compile_numerical_circuit_at(grid) - dSbus_dsh3 = mat_to_scipy(dSbus_dsh1)[np.ix_(bus_idx, br_idx)] + Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) - # print(f"dSbus_dsh1 (matpower):\n {dSbus_dsh1.real.toarray()}") - # print(f"dSbus_dsh3 (matpower):\n {dSbus_dsh3.real.toarray()}") - # print(f"dSbus_dsh2 (new):\n {dSbus_dsh2.real.toarray()}") + test_data = [ + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([10, 12, 14]), + "sf_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + }, + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([2, 3, 4]), + "sf_idx": np.array([2, 3, 4]), + }, + { + "bus_idx": np.arange(nc.nbus), + "br_idx": np.arange(nc.nbr), + "sf_idx": np.arange(nc.nbr), + }, + ] - assert np.allclose(dSbus_dsh3.toarray(), dSbus_dsh2.toarray()) + for dta in test_data: + tau_idx = dta["br_idx"] + bus_idx = dta["bus_idx"] + sf_idx = dta["sf_idx"] + dSbus_dtau1, dSf_dtau1, dSt_dtau1 = cscdiff.derivatives_tau_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iPxsh=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) -def check_dSf_dtau(dSf_dtau1, sf_indices, tau_indices, Ys, nc: NumericalCircuit): - """ + # check_dSbus_dtau(dSbus_dtau1, br_idx, bus_idx, Ys, nc) - :param dSf_dtau1: - :param sf_indices: - :param tau_indices: - :param Ys: - :param nc: - :return: - """ - dSf_dtau2 = cscdiff.dSf_dtau_csc(sf_indices=sf_indices, - tau_indices=tau_indices, - F=nc.F, - T=nc.T, - Ys=Ys, - K2=nc.branch_data.k, - tap=nc.branch_data.tap, - V=nc.Vbus) + dSbus_dsh2 = cscdiff.dSbus_dtau_csc(nbus=nc.nbus, + bus_indices=bus_idx, + tau_indices=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) + + dSbus_dsh3 = mat_to_scipy(dSbus_dtau1)[bus_idx, :] + + # print(f"dSbus_dsh1 (matpower):\n {dSbus_dsh1.real.toarray()}") + # print(f"dSbus_dsh3 (matpower):\n {dSbus_dsh3.real.toarray()}") + # print(f"dSbus_dsh2 (new):\n {dSbus_dsh2.real.toarray()}") + + assert np.allclose(dSbus_dsh3.toarray(), dSbus_dsh2.toarray()) + + # check_dSf_dtau(dSf_dtau1, sf_idx, br_idx, Ys, nc) + + dSf_dtau2 = cscdiff.dSf_dtau_csc(sf_indices=sf_idx, + tau_indices=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) + + dSf_dtau3 = mat_to_scipy(dSf_dtau1)[sf_idx, :] + + # print(f"dSf_dtau1 (matpower):\n {dSf_dtau1.real.toarray()}") + # print(f"dSf_dtau3 (matpower):\n {dSf_dtau3.real.toarray()}") + # print(f"dSf_dtau2 (new):\n {dSf_dtau2.real.toarray()}") - dSf_dtau3 = mat_to_scipy(dSf_dtau1)[np.ix_(sf_indices, tau_indices)] + assert np.allclose(dSf_dtau3.toarray(), dSf_dtau2.toarray()) - # print(f"dSf_dtau1 (matpower):\n {dSf_dtau1.real.toarray()}") - # print(f"dSf_dtau3 (matpower):\n {dSf_dtau3.real.toarray()}") - # print(f"dSf_dtau2 (new):\n {dSf_dtau2.real.toarray()}") + # check_dSt_dtau(dSt_dtau1, sf_idx, br_idx, Ys, nc) - assert np.allclose(dSf_dtau3.toarray(), dSf_dtau2.toarray()) + dSt_dtau2 = cscdiff.dSt_dtau_csc(sf_indices=sf_idx, + tau_indices=tau_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + V=nc.Vbus) + dSt_dtau3 = mat_to_scipy(dSt_dtau1)[sf_idx, :] -def check_dSt_dtau(dSt_dtau1, sf_indices, tau_indices, Ys, nc: NumericalCircuit): + # print(f"dSt_dtau1 (matpower):\n {dSt_dtau1.real.toarray()}") + # print(f"dSt_dtau3 (matpower):\n {dSt_dtau3.real.toarray()}") + # print(f"dSt_dtau2 (new):\n {dSt_dtau2.real.toarray()}") + + assert np.allclose(dSt_dtau3.toarray(), dSt_dtau2.toarray()) + + +def test_m_derivatives() -> None: """ - :param dSt_dtau1: - :param sf_indices: - :param tau_indices: - :param Ys: - :param nc: :return: """ - dSt_dtau2 = cscdiff.dSt_dtau_csc(sf_indices=sf_indices, - tau_indices=tau_indices, + # fname = os.path.join("data", "grids", "fubm_case_57_14_2MTDC_ctrls.gridcal") + fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") + grid = gce.open_file(filename=fname) + nc = gce.compile_numerical_circuit_at(grid) + + Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) + + test_data = [ + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([10, 12, 14]), + "sf_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + }, + { + "bus_idx": np.array([1, 2, 3, 4, 5, 6, 7]), + "br_idx": np.array([2, 3, 4]), + "sf_idx": np.array([2, 3, 4]), + }, + { + "bus_idx": np.arange(nc.nbus), + "br_idx": np.arange(nc.nbr), + "sf_idx": np.arange(nc.nbr), + }, + ] + + for dta in test_data: + m_idx = dta["br_idx"] + bus_idx = dta["bus_idx"] + sf_idx = dta["sf_idx"] + + dSbus_dm1, dSf_dm1, dSt_dm1 = cscdiff.derivatives_ma_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iXxma=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + V=nc.Vbus) + + dSbus_dm2 = cscdiff.dSbus_dm_csc(nbus=nc.nbus, + bus_indices=bus_idx, + m_indices=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSbus_dsh3 = mat_to_scipy(dSbus_dm1)[bus_idx, :] + assert np.allclose(dSbus_dsh3.toarray(), dSbus_dm2.toarray()) + + dSf_dm2 = cscdiff.dSf_dm_csc(sf_indices=sf_idx, + m_indices=m_idx, F=nc.F, T=nc.T, Ys=Ys, - K2=nc.branch_data.k, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + kconv=nc.branch_data.k, tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, V=nc.Vbus) + dSf_dtau3 = mat_to_scipy(dSf_dm1)[sf_idx, :] + assert np.allclose(dSf_dtau3.toarray(), dSf_dm2.toarray()) - dSt_dtau3 = mat_to_scipy(dSt_dtau1)[np.ix_(sf_indices, tau_indices)] - - # print(f"dSt_dtau1 (matpower):\n {dSt_dtau1.real.toarray()}") - # print(f"dSt_dtau3 (matpower):\n {dSt_dtau3.real.toarray()}") - # print(f"dSt_dtau2 (new):\n {dSt_dtau2.real.toarray()}") + dSt_dm2 = cscdiff.dSt_dm_csc(sf_indices=sf_idx, + m_indices=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSt_dm3 = mat_to_scipy(dSt_dm1)[sf_idx, :] + assert np.allclose(dSt_dm3.toarray(), dSt_dm2.toarray()) - assert np.allclose(dSt_dtau3.toarray(), dSt_dtau2.toarray()) +def test_beq_derivatives() -> None: + """ -def test_tau_derivatives() -> None: + :return: + """ # fname = os.path.join("data", "grids", "fubm_case_57_14_2MTDC_ctrls.gridcal") fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") grid = gce.open_file(filename=fname) nc = gce.compile_numerical_circuit_at(grid) Ys = 1.0 / (nc.branch_data.R + 1j * nc.branch_data.X) - bus_idx = np.arange(nc.nbus, dtype=np.int32) - br_idx = np.arange(nc.nbr, dtype=np.int32) - # br_idx = nc.k_pf_tau - - dSbus_dtau1, dSf_dtau1, dSt_dtau1 = cscdiff.derivatives_tau_csc_numba(nbus=nc.nbus, - nbr=nc.nbr, - iPxsh=br_idx, - F=nc.F, - T=nc.T, - Ys=Ys, - k2=nc.branch_data.k, - tap=nc.branch_data.tap, - V=nc.Vbus) test_data = [ { @@ -276,14 +376,42 @@ def test_tau_derivatives() -> None: ] for dta in test_data: - br_idx = dta["br_idx"] + m_idx = dta["br_idx"] bus_idx = dta["bus_idx"] sf_idx = dta["sf_idx"] - check_dSbus_dtau(dSbus_dtau1, br_idx, bus_idx, Ys, nc) - check_dSf_dtau(dSf_dtau1, sf_idx, br_idx, Ys, nc) - check_dSt_dtau(dSt_dtau1, sf_idx, br_idx, Ys, nc) + + dSbus_dbeq1, dSf_dbeq1, dSt_dbeq1 = cscdiff.derivatives_Beq_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iBeqx=m_idx, + F=nc.F, + kconv=nc.branch_data.k, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + + dSbus_dbeq2 = cscdiff.dSbus_dbeq_csc(nbus=nc.nbus, + bus_indices=bus_idx, + beq_indices=m_idx, + F=nc.F, + kconv=nc.branch_data.k, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSbus_dbeq3 = mat_to_scipy(dSbus_dbeq1)[bus_idx, :] + assert np.allclose(dSbus_dbeq3.toarray(), dSbus_dbeq2.toarray()) + + dSf_dbeq2 = cscdiff.dSf_dbeq_csc(sf_indices=sf_idx, + beq_indices=m_idx, + F=nc.F, + kconv=nc.branch_data.k, + tap_module=nc.branch_data.tap_module, + V=nc.Vbus) + dSf_dbeq3 = mat_to_scipy(dSf_dbeq1)[sf_idx, :] + assert np.allclose(dSf_dbeq3.toarray(), dSf_dbeq2.toarray()) + + # dSt_dbeq is zero if __name__ == '__main__': # test_branch_derivatives() - test_tau_derivatives() + # test_tau_derivatives() + # test_m_derivatives() + test_beq_derivatives() From 61a00f63c16f3ea8122ac3b82e6ae65714e04009 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 15 Jul 2024 21:09:12 +0100 Subject: [PATCH 115/218] Improved acdc jacobian composition --- .../DataStructures/numerical_circuit.py | 69 ++++++++++--------- .../NumericalMethods/acdc_jacobian.py | 1 + src/GridCalEngine/Utils/Sparse/csc2.py | 2 +- 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index a033cdecb..9ae70f5ae 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1606,28 +1606,6 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian - pvpq = np.r_[self.pv, self.pq] - - cols = ['1) dVa {0}'.format(i) for i in pvpq] - cols += ['2) dVm {0}'.format(i) for i in self.pq] - cols += ['3) dPfsh {0}'.format(i) for i in self.k_pf_tau] - cols += ['4) dQfma {0}'.format(i) for i in self.k_qf_m] - cols += ['5) dBeqz {0}'.format(i) for i in self.k_zero_beq] - cols += ['6) dBeqv {0}'.format(i) for i in self.k_vf_beq] - cols += ['7) dVtma {0}'.format(i) for i in self.k_vt_m] - cols += ['8) dQtma {0}'.format(i) for i in self.k_qt_m] - cols += ['9) dPfdp {0}'.format(i) for i in self.k_pf_dp] - - rows = ['1) dP {0}'.format(i) for i in pvpq] - rows += ['2) dQ {0}'.format(i) for i in self.pq] - rows += ['3) dQ {0}'.format(i) for i in self.k_vf_beq] - rows += ['4) dQ {0}'.format(i) for i in self.k_vt_m] - rows += ['5) dPf {0}'.format(i) for i in self.k_pf_tau] - rows += ['6) dQf {0}'.format(i) for i in self.k_qf_m] - rows += ['7) dQf {0}'.format(i) for i in self.k_zero_beq] - rows += ['8) dQt {0}'.format(i) for i in self.k_qt_m] - rows += ['9) dPfdp {0}'.format(i) for i in self.k_pf_dp] - # compute admittances Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( @@ -1647,19 +1625,31 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: virtual_tap_to=self.branch_data.virtual_tap_t, ) + idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dvm = np.r_[self.pq, self.p] + idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m] + idx_dtau = np.r_[self.k_pf_tau, self.k_pf_dp] + idx_dbeq = np.r_[self.k_zero_beq, self.k_vf_beq] + idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dQ = np.r_[self.pq, self.pqv] + idx_dQf = np.r_[self.k_qf_m, self.k_zero_beq] + idx_dQt = self.k_qt_m + idx_dPf = self.k_pf_tau + idx_dPdp = self.k_pf_dp + J = fubm_jacobian( nbus=self.nbus, - idx_dtheta=np.r_[self.pv, self.pq, self.p, self.pqv], - idx_dvm=np.r_[self.pq, self.p], - idx_dm=np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m], - idx_dtau=np.r_[self.k_pf_tau, self.k_pf_dp], - idx_dbeq=np.r_[self.k_zero_beq, self.k_vf_beq], - idx_dP=np.r_[self.pv, self.pq, self.p, self.pqv], - idx_dQ=np.r_[self.pq, self.pqv], - idx_dQf=np.r_[self.k_qf_m, self.k_zero_beq], - idx_dQt=self.k_qt_m, - idx_dPf=self.k_pf_tau, - idx_dPdp=self.k_pf_dp, + idx_dtheta=idx_dtheta, + idx_dvm=idx_dvm, + idx_dm=idx_dm, + idx_dtau=idx_dtau, + idx_dbeq=idx_dbeq, + idx_dP=idx_dP, + idx_dQ=idx_dQ, + idx_dQf=idx_dQf, + idx_dQt=idx_dQt, + idx_dPf=idx_dPf, + idx_dPdp=idx_dPdp, F=self.F, T=self.T, Ys=Ys, @@ -1680,6 +1670,19 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: ytt=self.admittances_.ytt ) + cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] + cols += ['2) dVm {0}'.format(i) for i in idx_dvm] + cols += ['3) dm {0}'.format(i) for i in idx_dm] + cols += ['4) dtau {0}'.format(i) for i in idx_dtau] + cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] + + rows = ['1) dP {0}'.format(i) for i in idx_dP] + rows += ['2) dQ {0}'.format(i) for i in idx_dQ] + rows += ['3) dQf {0}'.format(i) for i in idx_dQf] + rows += ['4) dQt {0}'.format(i) for i in idx_dQt] + rows += ['5) dPf {0}'.format(i) for i in idx_dPf] + rows += ['9) dPfdp {0}'.format(i) for i in idx_dPdp] + df = pd.DataFrame( data=J.toarray(), columns=cols, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py index 54b176d74..63f0a8789 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py @@ -861,6 +861,7 @@ def fubm_jacobian_old(nb, nl, return J +# @nb.njit() def fubm_jacobian(nbus: int, idx_dtheta: IntVec, idx_dvm: IntVec, diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index e3a4c2c90..bb4ff1011 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -707,7 +707,7 @@ def csc_stack_2d_ff(mats: List[CSC], n_rows: int = 1, n_cols: int = 1) -> CSC: # get the current sub-matrix A: CSC = mats[r * n_cols + c] # equivalent to mats[r, c] - if A.n_rows > 0: + if A.n_rows > 0 and A.nnz > 0: for k in range(A.indptr[j], A.indptr[j + 1]): # for every entry in the column from A res.indices[cnt] = A.indices[k] + offset_row # row index From 5ba01cdf2198dfc0ecdef8b7934987d41655546a Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 16 Jul 2024 18:04:57 +0100 Subject: [PATCH 116/218] Improved voltage collapse with remote control --- .idea/workspace.xml | 193 +++++++++--------- .../grids/Illinois 200 Bus.gridcal | Bin 1619399 -> 1619042 bytes .../continuation_power_flow.py | 186 ++++++++++------- .../continuation_power_flow_driver.py | 6 +- .../LinearFactors/linear_analysis.py | 2 +- .../PowerFlow/NumericalMethods/ac_jacobian.py | 46 ++--- .../NumericalMethods/acdc_jacobian.py | 3 + .../iwamoto_newton_raphson.py | 4 +- .../NumericalMethods/newton_raphson.py | 4 +- .../NumericalMethods/newton_raphson_acdc.py | 4 +- .../NumericalMethods/newton_raphson_ode.py | 3 +- .../Stochastic/reliability_driver.py | 6 +- src/GridCalEngine/Utils/Sparse/csc2.py | 18 +- src/tests/test_sparse2.py | 3 +- 14 files changed, 262 insertions(+), 216 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 79731b50e..c00e188b1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,18 +28,21 @@ - + - + + - - - + + + + + - - - + + + + + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for tests_derivatives.test_tau_derivatives.executor": "Run", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python tests.pytest in tests_derivatives.py.executor": "Debug", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Debug", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.tests_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> @@ -489,7 +500,7 @@ @@ -1446,7 +1457,7 @@ - + 1656059954202 @@ -1791,7 +1802,7 @@ - @@ -1837,7 +1848,6 @@ - @@ -1862,7 +1872,8 @@ - @@ -2344,12 +2355,12 @@ @@ -2480,6 +2516,7 @@ + @@ -2490,6 +2527,7 @@ + @@ -2745,7 +2783,7 @@ - + diff --git a/src/GridCal/__version__.py b/src/GridCal/__version__.py index 93dc5ef42..1c8a40e3d 100644 --- a/src/GridCal/__version__.py +++ b/src/GridCal/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCal_VERSION__ = "5.1.20" +__GridCal_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 9ae70f5ae..053e53116 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1604,7 +1604,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'Jacobian': - from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian + from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian # compute admittances Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) diff --git a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py index 04223786b..1555dcc13 100644 --- a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +++ b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py @@ -18,7 +18,7 @@ import numpy as np from GridCalEngine.enumerations import ReactivePowerControlMode, CpfParametrization, CpfStopAt -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobianVc +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_direct from GridCalEngine.Topology.simulation_indices import compile_types from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (polar_to_rect, compute_power) diff --git a/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py b/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py index 148cde02d..f8017b0ac 100644 --- a/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py +++ b/src/GridCalEngine/Simulations/LinearFactors/linear_analysis.py @@ -26,7 +26,7 @@ from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.Devices.Aggregation.contingency_group import ContingencyGroup from GridCalEngine.Devices.Aggregation.contingency import Contingency -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Simulations.derivatives.csc_derivatives import dSf_dV_csc from GridCalEngine.Utils.Sparse.csc import dense_to_csc import GridCalEngine.Utils.Sparse.csc2 as csc diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py index 1f90f54a3..b362954c9 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py @@ -20,7 +20,7 @@ import numpy as np from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobianVc, CSC +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc, CSC import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.enumerations import ReactivePowerControlMode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py index 1258f5806..d024deea4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py @@ -20,7 +20,7 @@ import numpy as np import scipy.sparse as sp from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobianVc +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.enumerations import ReactivePowerControlMode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 142648629..73d3e3fb1 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -24,7 +24,7 @@ from GridCalEngine.Topology.admittance_matrices import compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian, AcDcSolSlicer +from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian, AcDcSolSlicer from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.basic_structures import CxVec diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index d3470cb23..d17d70dd8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -19,7 +19,7 @@ import scipy import numpy as np from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian, AC_jacobianVc +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.enumerations import ReactivePowerControlMode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 3727ef6ea..6ba64af2d 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -23,7 +23,7 @@ from GridCalEngine.Topology.admittance_matrices import compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian, AcDcSolSlicer +from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian, AcDcSolSlicer from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_acdc_fx, compute_converter_losses, compute_power, compute_zip_power) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py index 4a09eb0d9..7177a94a4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py @@ -20,17 +20,11 @@ import numpy as np from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit -from GridCalEngine.Topology.admittance_matrices import compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.acdc_jacobian import fubm_jacobian, AcDcSolSlicer -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_acdc_fx, - compute_converter_losses, - compute_power, compute_zip_power) +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_power, compute_zip_power) from GridCalEngine.Utils.NumericalMethods.common import (ConvexMethodResult, ConvexFunctionResult) from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson from GridCalEngine.enumerations import ReactivePowerControlMode -import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp from scipy.sparse import csr_matrix, csc_matrix from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec, Logger diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py index 9b45c108c..6d892f4a4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py @@ -20,7 +20,7 @@ import numpy as np from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_sparse_type, get_linear_solver -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py similarity index 96% rename from src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py rename to src/GridCalEngine/Simulations/derivatives/ac_jacobian.py index afcb1f177..ea35018df 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/ac_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py @@ -219,8 +219,8 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # Note: The row and column pointer of of dVm and dVa are the same as the one from Ybus - lookup_pvpq = make_lookup(nbus, pvpq) - lookup_pq = make_lookup(nbus, pq) + lookup_dP = make_lookup(nbus, pvpq) + lookup_dQ = make_lookup(nbus, pq) # get length of vectors npvpq = len(pvpq) @@ -228,6 +228,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # nonzeros in J nnz = 0 p = 0 + J.indptr[p] = nnz # J1 and J3 ----------------------------------------------------------------------------------------- for j in pvpq: # columns @@ -235,7 +236,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J1 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pvpq[i] + ii = lookup_dP[i] if pvpq[ii] == i: J.data[nnz] = dS_dVa_x[k].real @@ -245,7 +246,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J3 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pq[i] + ii = lookup_dQ[i] if pq[ii] == i: J.data[nnz] = dS_dVa_x[k].imag @@ -261,7 +262,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J2 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pvpq[i] + ii = lookup_dP[i] if pvpq[ii] == i: J.data[nnz] = dS_dVm_x[k].real @@ -271,7 +272,7 @@ def create_J_csc(nbus, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, pvpq, pq) -> # J4 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_pq[i] + ii = lookup_dQ[i] if pq[ii] == i: J.data[nnz] = dS_dVm_x[k].imag @@ -337,8 +338,8 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, J = CSC(nj, nj, nnz_estimate, False) # Note: The row and column pointer of of dVm and dVa are the same as the one from Ybus - lookup_block1 = make_lookup(nbus, idx_dtheta) - lookup_block3 = make_lookup(nbus, idx_dQ) + lookup_dP = make_lookup(nbus, idx_dtheta) + lookup_dQ = make_lookup(nbus, idx_dQ) # get length of vectors n_no_slack = len(idx_dtheta) @@ -346,6 +347,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # nonzeros in J nnz = 0 p = 0 + J.indptr[p] = nnz # J1 and J3 ----------------------------------------------------------------------------------------- for j in idx_dtheta: # columns @@ -353,7 +355,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # J1 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_block1[i] + ii = lookup_dP[i] if idx_dtheta[ii] == i: J.data[nnz] = dS_dVa_x[k].real @@ -363,7 +365,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # J3 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_block3[i] + ii = lookup_dQ[i] if idx_dQ[ii] == i: J.data[nnz] = dS_dVa_x[k].imag @@ -377,9 +379,9 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, for j in idx_dVm: # columns # J2 - for k in range(Yp[j], Yp[j + 1]): # rows - i = Yi[k] - ii = lookup_block1[i] + for k in range(Yp[j], Yp[j + 1]): + i = Yi[k] # row at Y + ii = lookup_dP[i] if idx_dtheta[ii] == i: J.data[nnz] = dS_dVm_x[k].real @@ -389,7 +391,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, # J4 for k in range(Yp[j], Yp[j + 1]): # rows i = Yi[k] - ii = lookup_block3[i] + ii = lookup_dQ[i] if idx_dQ[ii] == i: J.data[nnz] = dS_dVm_x[k].imag diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py similarity index 100% rename from src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/acdc_jacobian.py rename to src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py diff --git a/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py b/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py index d4a8b6010..ac3fefcaf 100644 --- a/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/matpower_derivatives.py @@ -17,7 +17,7 @@ import numpy as np from typing import Tuple -from scipy.sparse import diags, csc_matrix +from scipy.sparse import diags, csc_matrix, vstack, hstack from GridCalEngine.basic_structures import CxVec, IntVec @@ -145,3 +145,32 @@ def dSt_dV_matpower(Yt, V, T, Ct, Vc, diagVc, diagE, diagV): dSt_dVm = diagVt * np.conj(Yt * diagE) + diagItc * CVnt return dSt_dVa.tocsc(), dSt_dVm.tocsc() + + +def Jacobian(Ybus, V: CxVec, idx_dP: IntVec, idx_dQ: IntVec, idx_dVa: IntVec, idx_dVm: IntVec) -> csc_matrix: + """ + Computes the system Jacobian matrix in polar coordinates + Args: + :param Ybus: Admittance matrix + :param V: Array of nodal voltages + :param idx_dVa: vector of indices of PV|PQ|PQV|P buses + :param idx_dVm: vector of indices of PQ|P buses + :param idx_dP: vector of indices of PV|PQ|PQV|P buses + :param idx_dQ: vector of indices of PQ|PQV buses + + Returns: + The system Jacobian matrix + """ + assert np.all(idx_dP == idx_dVa) + + dS_dVa, dS_dVm = dSbus_dV_matpower(Ybus, V) + + J11 = dS_dVa[np.ix_(idx_dP, idx_dVa)].real + J12 = dS_dVm[np.ix_(idx_dP, idx_dVm)].real + J21 = dS_dVa[np.ix_(idx_dQ, idx_dVa)].imag + J22 = dS_dVm[np.ix_(idx_dQ, idx_dVm)].imag + + J = vstack([hstack([J11, J12]), + hstack([J21, J22])], format="csc") + + return csc_matrix(J) diff --git a/src/GridCalEngine/__version__.py b/src/GridCalEngine/__version__.py index 3ae429528..e8fc85d17 100644 --- a/src/GridCalEngine/__version__.py +++ b/src/GridCalEngine/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCalEngine_VERSION__ = "5.1.20" +__GridCalEngine_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/GridCalServer/__version__.py b/src/GridCalServer/__version__.py index f50a07746..eb2ada850 100644 --- a/src/GridCalServer/__version__.py +++ b/src/GridCalServer/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCalServer_VERSION__ = "5.1.20" +__GridCalServer_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/tests/newton_equivalence_utils.py b/src/tests/newton_equivalence_utils.py index 85b46ee10..72f212f3e 100644 --- a/src/tests/newton_equivalence_utils.py +++ b/src/tests/newton_equivalence_utils.py @@ -5,7 +5,7 @@ import scipy.sparse as sp from typing import List from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian npa.findAndActivateLicense() diff --git a/src/tests/tests_derivatives.py b/src/tests/test_derivatives.py similarity index 94% rename from src/tests/tests_derivatives.py rename to src/tests/test_derivatives.py index 0ea218825..342c099a5 100644 --- a/src/tests/tests_derivatives.py +++ b/src/tests/test_derivatives.py @@ -1,6 +1,7 @@ import os import numpy as np import GridCalEngine.Simulations.derivatives.csc_derivatives as cscdiff +import GridCalEngine.Simulations.derivatives.ac_jacobian as cscjac import GridCalEngine.Simulations.derivatives.matpower_derivatives as mdiff from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Utils.Sparse.csc2 import mat_to_scipy @@ -410,8 +411,36 @@ def test_beq_derivatives() -> None: # dSt_dbeq is zero +def test_jacobian(): + fname = os.path.join("data", "grids", "RAW", "IEEE 14 bus.raw") + grid = gce.open_file(filename=fname) + nc = gce.compile_numerical_circuit_at(grid) + + idx_dtheta = np.r_[nc.pv, nc.pq, nc.pqv, nc.p] + idx_dVm = np.r_[nc.pq, nc.p] + idx_dP = idx_dtheta + idx_dQ = np.r_[nc.pq, nc.pqv] + + J1 = mdiff.Jacobian(nc.Ybus, nc.Vbus, idx_dP, idx_dQ, idx_dtheta, idx_dVm) + + J3 = cscjac.AC_jacobian(nc.Ybus, nc.Vbus, idx_dtheta, idx_dVm) + + J2 = cscjac.AC_jacobianVc(nc.Ybus, nc.Vbus, idx_dtheta, idx_dVm, idx_dQ) + + ok1 = np.allclose(J1.toarray(), J2.toarray()) + ok2 = np.allclose(J1.toarray(), J3.toarray()) + ok = ok1 and ok2 + + if not ok: + print(f"J1:\n{J1.toarray()}\n") + print(f"J2:\n{J2.toarray()}\n") + print(f"ok {ok}") + assert ok + + if __name__ == '__main__': # test_branch_derivatives() # test_tau_derivatives() # test_m_derivatives() - test_beq_derivatives() + # test_beq_derivatives() + test_jacobian() diff --git a/src/trunk/acopf/jacobian.py b/src/trunk/acopf/jacobian.py index e917a0f48..dc943e6a3 100644 --- a/src/trunk/acopf/jacobian.py +++ b/src/trunk/acopf/jacobian.py @@ -2,7 +2,7 @@ import scipy.sparse as sp from math import sin, cos import GridCalEngine.api as gc -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_power diff --git a/src/trunk/pf/power_flow_research.py b/src/trunk/pf/power_flow_research.py index 643710390..2ef2cec25 100644 --- a/src/trunk/pf/power_flow_research.py +++ b/src/trunk/pf/power_flow_research.py @@ -16,7 +16,6 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Tuple import matplotlib.pyplot as plt -import numpy as np import sys sys.path.append('C:/Users/raiya/Documents/8. eRoots/thesis/code/GridCal/src') import GridCalEngine.api as gce @@ -24,21 +23,14 @@ import numba as nb from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian -from GridCalEngine.Utils.NumericalMethods.common import ConvexFunctionResult, ConvexMethodResult +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson -from GridCalEngine.Utils.NumericalMethods.powell import powell_dog_leg -from GridCalEngine.Utils.NumericalMethods.levenberg_marquadt import levenberg_marquardt from GridCalEngine.enumerations import SolverType -from sympy import symbols, diff, exp, re, im -import time import numpy as np -from typing import Callable, Any from GridCalEngine.basic_structures import Vec from GridCalEngine.Utils.NumericalMethods.common import (ConvexMethodResult, ConvexFunctionResult, check_function_and_args) from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_linear_solver -from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Branches import VSC, Transformer2W from scipy.sparse import csc_matrix from typing import Tuple, Union @@ -3041,7 +3033,6 @@ def run_pf_ver2(grid: gce.MultiCircuit, pf_options: gce.PowerFlowOptions, debug if __name__ == '__main__': - import os # grid_ = HelperFunctions.linn5bus_example() #converges true, and same as traditional powerflow # grid_ = HelperFunctions.linn5bus_example2() #converges true grid_ = HelperFunctions.ieee14_example() #converges true, and same as traditional powerflow diff --git a/src/trunk/pf/power_flow_research_hvdc.py b/src/trunk/pf/power_flow_research_hvdc.py index 67712fe39..2174ca529 100644 --- a/src/trunk/pf/power_flow_research_hvdc.py +++ b/src/trunk/pf/power_flow_research_hvdc.py @@ -22,7 +22,7 @@ from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec import GridCalEngine.Utils.NumericalMethods.autodiff as ad import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Utils.NumericalMethods.common import ConvexFunctionResult, ConvexMethodResult from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson from GridCalEngine.Utils.NumericalMethods.powell import powell_dog_leg diff --git a/src/trunk/pf/power_flow_research_sinj.py b/src/trunk/pf/power_flow_research_sinj.py index f52068037..3aae0fc3e 100644 --- a/src/trunk/pf/power_flow_research_sinj.py +++ b/src/trunk/pf/power_flow_research_sinj.py @@ -23,7 +23,7 @@ from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.ac_jacobian import AC_jacobian +from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobian from GridCalEngine.Utils.NumericalMethods.common import ConvexFunctionResult, ConvexMethodResult from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson from GridCalEngine.Utils.NumericalMethods.powell import powell_dog_leg From 57630cd9936a8e4f01cf19d1e71c313161eb271e Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 16 Jul 2024 19:49:08 +0100 Subject: [PATCH 118/218] Some minor improvements and checks --- .idea/workspace.xml | 64 ++++++------------- .../DataStructures/numerical_circuit.py | 6 +- .../Simulations/derivatives/acdc_jacobian.py | 6 ++ src/GridCalEngine/Utils/Sparse/csc2.py | 6 +- 4 files changed, 35 insertions(+), 47 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ac85b4059..c779e71b3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,30 +28,11 @@ - + + + + - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - + - + - + - + - - - - - + + + + + - - - - - + + + + + @@ -1438,7 +1465,8 @@ - + + 1656059954202 @@ -1783,7 +1811,7 @@ - @@ -1829,7 +1857,6 @@ - @@ -1854,7 +1881,8 @@ - @@ -2337,14 +2365,9 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py - 973 + 976 - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py - 221 - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py 342 @@ -2362,28 +2385,29 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py - 989 + 999 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py - 932 + 935 - + - + + - + @@ -2406,27 +2430,28 @@ - + - + - - + + - + + @@ -2445,18 +2470,18 @@ - - + + - - + + @@ -2485,8 +2510,8 @@ - + @@ -2502,8 +2527,8 @@ - + @@ -2552,8 +2577,8 @@ - + @@ -2564,8 +2589,8 @@ - + @@ -2740,13 +2765,14 @@ - + + @@ -2759,13 +2785,13 @@ - + - + diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py index cce2624ac..5cea97ee5 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py @@ -88,31 +88,31 @@ def compute_power(Ybus: csc_matrix, V: CxVec) -> CxVec: @nb.njit(cache=True, fastmath=True) -def compute_fx(Scalc: CxVec, Sbus: CxVec, pvpq: IntVec, pq: IntVec) -> Vec: +def compute_fx(Scalc: CxVec, Sbus: CxVec, idx_dP: IntVec, idx_dQ: IntVec) -> Vec: """ Compute the NR-like error function f = [∆P(pqpv), ∆Q(pq)] :param Scalc: Calculated power injections :param Sbus: Specified power injections - :param pvpq: Array pf pq and pv node indices - :param pq: Array of pq node indices + :param idx_dP: Array of node indices updated with dP (pvpq) + :param idx_dQ: Array of node indices updated with dQ (pq) :return: error """ # dS = Scalc - Sbus # compute the mismatch # return np.r_[dS[pvpq].real, dS[pq].imag] - n = len(pvpq) + len(pq) + n = len(idx_dP) + len(idx_dQ) fx = np.empty(n, dtype=float) k = 0 - for i in pvpq: + for i in idx_dP: # F1(x0) Power balance mismatch - Va # fx[k] = mis[i].real fx[k] = Scalc[i].real - Sbus[i].real k += 1 - for i in pq: + for i in idx_dQ: # F2(x0) Power balance mismatch - Vm # fx[k] = mis[i].imag fx[k] = Scalc[i].imag - Sbus[i].imag diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py index e8b333f88..1ade21602 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py @@ -150,8 +150,8 @@ def FDPF(Vbus, S0, I0, Y0, Ybus, B1, B2, pv_, pq_, pqv_, p_, Qmin, Qmax, tol=1e- converged=converged, norm_f=normF, Scalc=Scalc, - ma=None, - theta=None, + m=None, + tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py index 5fb5e6721..545699350 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/gauss_power_flow.py @@ -113,6 +113,6 @@ def gausspf(Ybus, S0, I0, Y0, V0, pv, pq, tol=1e-3, max_it=50, # return NumericPowerFlowResults(V, converged, normF, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py index 6f6eeba9d..6b9126c29 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/helm_power_flow.py @@ -694,7 +694,7 @@ def helm_josep(Ybus, Yseries, V0, S0, Ysh0, pq, pv, sl, pqpv, tolerance=1e-6, ma if n < 2: # return NumericPowerFlowResults(V0, True, 0.0, S0, None, None, None, None, None, None, 0, 0.0) return NumericPowerFlowResults(V=V0, converged=True, norm_f=0.0, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=0, elapsed=0.0) @@ -737,6 +737,6 @@ def helm_josep(Ybus, Yseries, V0, S0, Ysh0, pq, pv, sl, pqpv, tolerance=1e-6, ma # return NumericPowerFlowResults(V, converged, norm_f, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py index b362954c9..960bb1535 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py @@ -141,7 +141,7 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= logger.add_error('NR Singular matrix @iter:'.format(iter_)) return NumericPowerFlowResults(V=V0, converged=converged, norm_f=norm_f, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) @@ -152,7 +152,7 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= end = time.time() elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) @@ -225,6 +225,6 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= # return NumericPowerFlowResults(V, converged, norm_f, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py index d024deea4..e0dd5f726 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py @@ -227,7 +227,7 @@ def levenberg_marquardt_pf(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 73d3e3fb1..8f497a556 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -314,6 +314,6 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # return NumericPowerFlowResults(V, converged, norm_f, Scalc, m, theta, Beq, Ybus, Yf, Yt, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=m, theta=tau, Beq=Beq, + Scalc=Scalc, m=m, tau=tau, Beq=Beq, Ybus=Ybus, Yf=Yf, Yt=Yt, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py index 50b3d221f..da55add87 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/linearized_power_flow.py @@ -94,7 +94,7 @@ def dcpf(Ybus: sp.csc_matrix, Bpqpv: sp.csc_matrix, Bref: sp.csc_matrix, Bf: sp. # return NumericPowerFlowResults(V, True, norm_f, Scalc, None, None, None, None, None, None, 1, elapsed) return NumericPowerFlowResults(V=V, converged=True, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=1, elapsed=elapsed) @@ -148,7 +148,7 @@ def lacpf(Ybus, Ys, S0: CxVec, I0: CxVec, V0: CxVec, pq: IntVec, pv: IntVec) -> V = V0 # Calculate the error and check the convergence Scalc = cf.compute_power(Ybus, V) - mismatch = cf.compute_fx(Scalc=Scalc, Sbus=S0, pvpq=pvpq, pq=pq) + mismatch = cf.compute_fx(Scalc=Scalc, Sbus=S0, idx_dP=pvpq, idx_dQ=pq) norm_f = cf.compute_fx_error(mismatch) # check for convergence @@ -157,7 +157,7 @@ def lacpf(Ybus, Ys, S0: CxVec, I0: CxVec, V0: CxVec, pq: IntVec, pv: IntVec) -> # return NumericPowerFlowResults(V, False, norm_f, Scalc, # None, None, None, None, None, None, 1, elapsed) return NumericPowerFlowResults(V=V, converged=False, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=1, elapsed=elapsed) @@ -189,7 +189,7 @@ def lacpf(Ybus, Ys, S0: CxVec, I0: CxVec, V0: CxVec, pq: IntVec, pv: IntVec) -> # return NumericPowerFlowResults(V, True, norm_f, Scalc, # None, None, None, None, None, None, 1, elapsed) return NumericPowerFlowResults(V=V, converged=True, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=1, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index d17d70dd8..9af73b0b6 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -110,7 +110,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, logger.add_error('NR Singular matrix @iter:'.format(iteration)) return NumericPowerFlowResults(V=V0, converged=converged, norm_f=norm_f, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) except RuntimeError: @@ -120,7 +120,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, logger.add_error('NR Singular matrix @iter:'.format(iteration)) return NumericPowerFlowResults(V=V0, converged=converged, norm_f=norm_f, - Scalc=S0, ma=None, theta=None, Beq=None, + Scalc=S0, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) @@ -184,7 +184,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, end = time.time() elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) @@ -223,6 +223,6 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, elapsed = end - start return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iteration, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 6ba64af2d..56dce5af7 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -188,17 +188,17 @@ def NR_LS_ACDC(nc: NumericalCircuit, # compute the Jacobian J = fubm_jacobian(nbus=nc.nbus, - idx_dtheta=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], - idx_dvm=np.r_[nc.pq, nc.p], - idx_dm=np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m], - idx_dtau=np.r_[nc.k_pf_tau, nc.k_pf_dp], - idx_dbeq=np.r_[nc.k_zero_beq, nc.k_vf_beq], - idx_dP=np.r_[nc.pv, nc.pq, nc.p, nc.pqv], - idx_dQ=np.r_[nc.pq, nc.pqv], - idx_dQf=np.r_[nc.k_qf_m, nc.k_zero_beq], - idx_dQt=nc.k_qt_m, - idx_dPf=nc.k_pf_tau, - idx_dPdp=nc.k_pf_dp, + idx_dtheta=idx_dtheta, + idx_dvm=idx_dvm, + idx_dm=idx_dm, + idx_dtau=idx_dtau, + idx_dbeq=idx_dbeq, + idx_dP=idx_dP, + idx_dQ=idx_dQ, + idx_dQf=idx_dQf, + idx_dQt=idx_dQt, + idx_dPf=idx_dPf, + idx_dPdp=idx_dPdp, F=nc.F, T=nc.T, Ys=Ys, @@ -333,7 +333,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, # return NumericPowerFlowResults(V, converged, norm_f_new, prev_Scalc, # m, tau, Beq, Ybus, Yf, Yt, iterations, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=m, theta=tau, Beq=Beq, + Scalc=Scalc, m=m, tau=tau, Beq=Beq, Ybus=Ybus, Yf=Yf, Yt=Yt, iterations=iterations, elapsed=elapsed) else: @@ -430,6 +430,6 @@ def NR_LS_ACDC(nc: NumericalCircuit, # return NumericPowerFlowResults(V, converged, norm_f, Scalc, # m, tau, Beq, Ybus, Yf, Yt, iterations, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=m, theta=tau, Beq=Beq, + Scalc=Scalc, m=m, tau=tau, Beq=Beq, Ybus=Ybus, Yf=Yf, Yt=Yt, iterations=iterations, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py index e87e8b10d..194af79e8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py @@ -184,6 +184,6 @@ def NR_I_LS(Ybus, Sbus_sp, V0, Ibus_sp, pv, pq, tol, max_it=15, acceleration_par # return NumericPowerFlowResults(V, converged, normF, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py index 5513bb408..8c5bad907 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_decoupled.py @@ -196,7 +196,7 @@ def NRD_LS(Ybus, S0, V0, I0, Y0, pv, pq, tol, max_it=15, # return NumericPowerFlowResults(V, converged, norm_f, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=norm_f, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py new file mode 100644 index 000000000..0d38c917c --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py @@ -0,0 +1,125 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +import time +import numpy as np +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate +from GridCalEngine.basic_structures import Logger + + +def newton_raphson_fx(problem: PfFormulationTemplate, + tol: float = 1e-6, + max_iter: int = 10, + trust: float = 1.0, + verbose: int = 0, + logger: Logger = Logger()) -> NumericPowerFlowResults: + """ + Newton-Raphson with Line search to solve: + + min: error(g(x)) + s.t. + g(x) = 0 + + :param problem: PfFormulationTemplate + :param tol: Error tolerance + :param max_iter: Maximum number of iterations + :param trust: trust amount in the derivative length correctness + :param verbose: Display console information + :param logger: Logger instance + :return: ConvexMethodResult + """ + start = time.time() + + # get the initial point + x = problem.var2x().copy() + + if len(x) == 0: + return problem.get_solution(elapsed=time.time() - start, iterations=0) + + # set the problem state + error, converged, _ = problem.update(x, update_controls=False) + + iteration = 0 + error_evolution = np.zeros(max_iter + 1) + trust0 = trust if trust <= 1.0 else 1.0 # trust radius in NR should not be greater than 1 + + # save the error evolution + error_evolution[iteration] = problem.error + + if verbose > 0: + print(f'It {iteration}, error {problem.error}, converged {problem.converged}, x {x}, dx not computed yet') + + if problem.converged: + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + else: + + while not converged and iteration < max_iter: + + # compute update step + try: + + # compute update step: J x Δx = Δg + dx, ok = problem.solve_step() + + if not ok: + logger.add_error(f"Newton-Raphson's Jacobian is singular @iter {iteration}:") + print("(newton_raphson.py) Singular Jacobian") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + except RuntimeError: + logger.add_error(f"Newton-Raphson's Jacobian is singular @iter {iteration}:") + print("(newton_raphson.py) Singular Jacobian") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + mu = trust0 + back_track_condition = True + l_iter = 0 + while back_track_condition and mu > tol: + + x2 = x - mu * dx + error2, converged2, _ = problem.update(x2, update_controls=False) + + # change mu for the next iteration + mu *= 0.5 # acceleration_parameter + + # keep back-tracking? + back_track_condition = error2 > error + l_iter += 1 + + if not back_track_condition: + # accept the solution + x = x2 + + if back_track_condition: + # this means that not even the backtracking was able to correct + # the solution, so terminate + logger.add_warning(f"Newton-Raphson's stagnated @iter {iteration}:") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + # set the problem state + error, converged, x = problem.update(x, update_controls=True) + + # update iteration counter + iteration += 1 + + # save the error evolution + error_evolution[iteration] = error + + if verbose > 0: + print(f'It {iteration}, error {error}, converged {converged}, x {x}, dx {dx}') + + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py index 6d892f4a4..32fd7cc60 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_ode.py @@ -195,6 +195,6 @@ def ContinuousNR(Ybus, Sbus, V0, Ibus, pv, pq, tol, max_it=15) -> NumericPowerFl # return NumericPowerFlowResults(V, converged, normF, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=normF, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py new file mode 100644 index 000000000..86f90bb75 --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py @@ -0,0 +1,212 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import Tuple +import numpy as np +from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions +from GridCalEngine.enumerations import ReactivePowerControlMode +from GridCalEngine.Simulations.derivatives.ac_jacobian import create_J_vc_csc +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, + compute_fx, polar_to_rect) +from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc +from GridCalEngine.basic_structures import Vec, IntVec, CxVec +from GridCalEngine.Utils.Sparse.csc2 import CSC + + +class PfBasicFormulation(PfFormulationTemplate): + + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, + pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, + adm: AdmittanceMatrices, options: PowerFlowOptions): + """ + + :param V0: + :param S0: + :param I0: + :param Y0: + :param Qmin: + :param Qmax: + :param pq: + :param pv: + :param pqv: + :param p: + :param adm: + :param options: + """ + PfFormulationTemplate.__init__(self, V0=V0, pq=pq, pv=pv, pqv=pqv, p=p, options=options) + + self.adm: AdmittanceMatrices = adm + + self.S0: CxVec = S0 + self.I0: CxVec = I0 + self.Y0: CxVec = Y0 + + self.Qmin = Qmin + self.Qmax = Qmax + + def x2var(self, x: Vec): + """ + Convert X to decission variables + :param x: solution vector + """ + a = len(self.idx_dVa) + b = a + len(self.idx_dVm) + + # update the vectors + self.Va[self.idx_dVa] = x[0:a] + self.Vm[self.idx_dVm] = x[a:b] + + # compute the complex voltage + self.V = polar_to_rect(self.Vm, self.Va) + + def var2x(self) -> Vec: + """ + Convert the internal decission variables into the vector + :return: Vector + """ + return np.r_[ + self.Va[self.idx_dVa], + self.Vm[self.idx_dVm] + ] + + def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: + """ + + :param x: + :param update_controls: + :return: + """ + # set the problem state + self.x2var(x) + + # compute the function residual + self._f = self.fx() + + # compute the rror + self._error = compute_fx_error(self._f) + + # converged? + self._converged = self._error < self.options.tolerance + + # review reactive power limits + # it is only worth checking Q limits with a low error + # since with higher errors, the Q values may be far from realistic + # finally, the Q control only makes sense if there are pv nodes + if update_controls: + if (self.options.control_Q != ReactivePowerControlMode.NoControl and + self._error < 1e-2 + and (len(self.pv) + len(self.p)) > 0): + + # check and adjust the reactive power + # this function passes pv buses to pq when the limits are violated, + # but not pq to pv because that is unstable + changed, pv, pq, pqv, p = control_q_inside_method(self.Scalc, self.S0, + self.pv, self.pq, + self.pqv, self.p, + self.Qmin, + self.Qmax) + + if len(changed) > 0: + self.update_types(pq=pq, pv=pv, pqv=pqv, p=p) + + # recompute the error based on the new Scalc and S0 + self._f = self.fx() + + # compute the rror + self._error = compute_fx_error(self._f) + + # the composition of x changed, so recompute + x = self.var2x() + + return self._error, self._converged, x + + def fx(self) -> Vec: + """ + + :return: + """ + # Assumes the internal vars were updated already with self.x2var() + Sbus = compute_zip_power(self.S0, self.I0, self.Y0, self.Vm) + self.Scalc = compute_power(self.adm.Ybus, self.V) + self._f = compute_fx(self.Scalc, Sbus, self.idx_dP, self.idx_dQ) + return self._f + + def Jacobian(self) -> CSC: + """ + + :return: + """ + # Assumes the internal vars were updated already with self.x2var() + if self.adm.Ybus.format != 'csc': + self.adm.Ybus = self.adm.Ybus.tocsc() + + nbus = self.adm.Ybus.shape[0] + + # Create J in CSC order + J = create_J_vc_csc(nbus, self.adm.Ybus.data, self.adm.Ybus.indptr, self.adm.Ybus.indices, + self.V, self.idx_dVa, self.idx_dVm, self.idx_dQ) + + return J + + def solve_step_from_f(self, f: Vec) -> Tuple[Vec, bool]: + """ + + :param f: Function residual + :return: + """ + # Compute the Jacobian + J = self.Jacobian() # Assumes the internal vars were updated already with self.x2var() + + # Solve the sparse system + dx, ok = spsolve_csc(J, f) + + return dx, ok + + def solve_step(self) -> Tuple[Vec, bool]: + """ + + :return: + """ + + # Solve the sparse system + dx, ok = self.solve_step_from_f(self._f) + + return dx, ok + + def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: + """ + Get the problem solution + :param elapsed: Elapsed seconds + :param iterations: Iteration number + :return: NumericPowerFlowResults + """ + return NumericPowerFlowResults(V=self.V, + converged=self.converged, + norm_f=self.error, + Scalc=self.Scalc, + m=None, + tau=None, + Beq=None, + Ybus=self.adm.Ybus, + Yf=self.adm.Yf, + Yt=self.adm.Yt, + iterations=iterations, + elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py new file mode 100644 index 000000000..49f528110 --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -0,0 +1,205 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import Tuple +import numpy as np +from GridCalEngine.basic_structures import Vec, IntVec, CxVec +from GridCalEngine.Utils.Sparse.csc2 import CSC +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions + + +class PfFormulationTemplate: + """ + Base Power Flow Formulation class + """ + + def __init__(self, V0: CxVec, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, options: PowerFlowOptions): + """ + + :param V0: + :param pq: + :param pv: + :param pqv: + :param p: + :param options: + """ + self.V = V0 + + self._Vm = np.abs(V0) + self._Va = np.angle(V0) + + self.Scalc = np.zeros(len(V0), dtype=complex) + + self.options = options + + self.pq = pq + self.pv = pv + self.pqv = pqv + self.p = p + + self._idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] + self._idx_dVm = np.r_[self.pq, self.p] + self._idx_dP = self._idx_dVa + self._idx_dQ = np.r_[self.pq, self.pqv] + + self._f = np.zeros(0) + + self._error: float = 0.0 + + self._converged: bool = False + + def update_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec): + """ + + :param pq: + :param pv: + :param pqv: + :param p: + :return: + """ + self.pq = pq + self.pv = pv + self.pqv = pqv + self.p = p + + self._idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] + self._idx_dVm = np.r_[self.pq, self.p] + self._idx_dP = self._idx_dVa + self._idx_dQ = np.r_[self.pq, self.pqv] + + @property + def converged(self) -> bool: + """ + Converged? + :return: + """ + return self._converged + + @property + def error(self) -> float: + """ + Converged? + :return: + """ + return self._error + + @property + def f(self) -> Vec: + """ + Converged? + :return: + """ + return self._f + + @property + def idx_dVa(self) -> IntVec: + """ + Indices for the increments of Va + :return: + """ + return self._idx_dVa + + @property + def idx_dVm(self) -> IntVec: + """ + indices for the increment of Vm + :return: + """ + return self._idx_dVm + + @property + def idx_dP(self) -> IntVec: + """ + indices for the increment of P + :return: + """ + return self._idx_dP + + @property + def idx_dQ(self) -> IntVec: + """ + Indices for the increment of Q + :return: + """ + return self._idx_dQ + + @property + def Va(self) -> Vec: + """ + Voltage angles + :return: + """ + return self._Va + + @property + def Vm(self) -> Vec: + """ + Voltage modules + :return: + """ + return self._Vm + + def x2var(self, x: Vec): + """ + Convert X to decission variables + :param x: solution vector + """ + pass + + def var2x(self) -> Vec: + """ + Convert the internal decission variables into the vector + """ + pass + + def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: + """ + Update the problem + :param x: Solution vector + :param update_controls: Update controls + :return: error, converged, x + """ + return self.error, self.converged, np.zeros(len(self.V)) + + def fx(self) -> Vec: + """ + + :return: + """ + pass + + def Jacobian(self) -> CSC: + """ + + :return: + """ + pass + + def solve_step(self) -> Tuple[Vec, bool]: + """ + + :param x: + :return: + """ + pass + + def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: + """ + + :return: + """ + pass \ No newline at end of file diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py index 9a0183b10..74dfd97b2 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py @@ -104,8 +104,6 @@ def __init__(self, self.generate_report = generate_report - self.generalised_pf = generalised_pf # TODO: Remove this - self.register(key="solver_type", tpe=SolverType) self.register(key="retry_with_other_methods", tpe=bool) self.register(key="tolerance", tpe=float) @@ -124,4 +122,3 @@ def __init__(self, self.register(key="use_stored_guess", tpe=bool) self.register(key="override_branch_controls", tpe=bool) self.register(key="generate_report", tpe=bool) - self.register(key="generalised_pf", tpe=bool) diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py index 255f55e85..806432255 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_results.py @@ -37,8 +37,8 @@ def __init__(self, converged: bool, norm_f: float, Scalc: CxVec, - ma: Union[Vec, None] = None, - theta: Union[Vec, None] = None, + m: Union[Vec, None] = None, + tau: Union[Vec, None] = None, Beq: Union[Vec, None] = None, Ybus: Union[CscMat, None] = None, Yf: Union[CscMat, None] = None, @@ -51,8 +51,8 @@ def __init__(self, :param converged: converged? :param norm_f: error :param Scalc: Calculated power vector - :param ma: Tap modules vector for all the Branches - :param theta: Tap angles vector for all the Branches + :param m: Tap modules vector for all the Branches + :param tau: Tap angles vector for all the Branches :param Beq: Equivalent susceptance vector for all the Branches :param Ybus: Admittance matrix :param Yf: Admittance matrix of the "from" buses @@ -64,8 +64,8 @@ def __init__(self, self.converged = converged self.norm_f = norm_f self.Scalc = Scalc - self.ma = ma - self.theta = theta + self.ma = m + self.tau = tau self.Beq = Beq self.Ybus = Ybus self.Yf = Yf diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index 25043f12f..559b0eb8f 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -24,11 +24,11 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_basic_formulation import PfBasicFormulation +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.newton_raphson_fx import newton_raphson_fx from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.DataStructures.numerical_circuit import ( - compile_numerical_circuit_at as compile_numerical_circuit_at_generalised_pf) from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.basic_structures import CxVec, Vec, IntVec, CscMat @@ -111,8 +111,8 @@ def solve(circuit: NumericalCircuit, converged=False, norm_f=1e200, Scalc=S0, - ma=tap_modules, - theta=circuit.branch_data.tap_angle, + m=tap_modules, + tau=circuit.branch_data.tap_angle, Beq=Beq, Ybus=circuit.Ybus, Yf=circuit.Yf, @@ -244,24 +244,44 @@ def solve(circuit: NumericalCircuit, control_q=options.control_Q) else: # Solve NR with the AC algorithm - solution = pflw.NR_LS(Ybus=circuit.Ybus, - S0=S0, - V0=final_solution.V, - I0=I0, - Y0=Y0, - pv_=pv, - pq_=pq, - pqv_=pqv, - p_=p, - Qmin=Qmin, - Qmax=Qmax, - tol=options.tolerance, - max_it=options.max_iter, - mu_0=options.trust_radius, - acceleration_parameter=options.backtracking_parameter, - control_q=options.control_Q, - verbose=options.verbose, - logger=logger) + problem = PfBasicFormulation(V0=final_solution.V, + S0=S0, + I0=I0, + Y0=Y0, + Qmin=Qmin, + Qmax=Qmax, + pv=pv, + pq=pq, + pqv=pqv, + p=p, + adm=circuit.admittances_, + options=options) + + solution = newton_raphson_fx(problem=problem, + tol=options.tolerance, + max_iter=options.max_iter, + trust=options.trust_radius, + verbose=options.verbose, + logger=logger) + + # solution = pflw.NR_LS(Ybus=circuit.Ybus, + # S0=S0, + # V0=final_solution.V, + # I0=I0, + # Y0=Y0, + # pv_=pv, + # pq_=pq, + # pqv_=pqv, + # p_=p, + # Qmin=Qmin, + # Qmax=Qmax, + # tol=options.tolerance, + # max_it=options.max_iter, + # mu_0=options.trust_radius, + # acceleration_parameter=options.backtracking_parameter, + # control_q=options.control_Q, + # verbose=options.verbose, + # logger=logger) # Newton-Raphson-Decpupled elif solver_type == SolverType.NRD: @@ -336,8 +356,8 @@ def solve(circuit: NumericalCircuit, if final_solution.ma is None: final_solution.ma = tap_modules - if final_solution.theta is None: - final_solution.theta = tap_angles + if final_solution.tau is None: + final_solution.tau = tap_angles if final_solution.Beq is None: final_solution.Beq = Beq @@ -396,8 +416,8 @@ def single_island_pf(circuit: NumericalCircuit, options: PowerFlowOptions, converged=False, norm_f=1e200, Scalc=S0, - ma=tap_modules, - theta=tap_angles, + m=tap_modules, + tau=tap_angles, Beq=Beq, Ybus=circuit.Ybus, Yf=circuit.Yf, @@ -488,7 +508,7 @@ def single_island_pf(circuit: NumericalCircuit, options: PowerFlowOptions, results.If = If # in p.u. results.It = It # in p.u. results.tap_module = solution.ma - results.tap_angle = solution.theta + results.tap_angle = solution.tau results.Beq = solution.Beq results.Vbranch = Vbranch results.loading = loading @@ -766,34 +786,17 @@ def multi_island_pf(multi_circuit: MultiCircuit, :return: PowerFlowResults instance """ - # Generalised PowerFlow - if options.generalised_pf: - nc = compile_numerical_circuit_at_generalised_pf( - circuit=multi_circuit, - t_idx=t, - apply_temperature=options.apply_temperature_correction, - branch_tolerance_mode=options.branch_impedance_tolerance_mode, - opf_results=opf_results, - use_stored_guess=options.use_stored_guess, - bus_dict=bus_dict, - areas_dict=areas_dict - ) - # print("Generalised PowerFlow") - - # Normal PowerFlow - else: - nc = compile_numerical_circuit_at( - circuit=multi_circuit, - t_idx=t, - apply_temperature=options.apply_temperature_correction, - branch_tolerance_mode=options.branch_impedance_tolerance_mode, - opf_results=opf_results, - use_stored_guess=options.use_stored_guess, - bus_dict=bus_dict, - areas_dict=areas_dict, - logger=logger, - ) - # print("Normal PowerFlow") + nc = compile_numerical_circuit_at( + circuit=multi_circuit, + t_idx=t, + apply_temperature=options.apply_temperature_correction, + branch_tolerance_mode=options.branch_impedance_tolerance_mode, + opf_results=opf_results, + use_stored_guess=options.use_stored_guess, + bus_dict=bus_dict, + areas_dict=areas_dict, + logger=logger, + ) res = multi_island_pf_nc(nc=nc, options=options, logger=logger) diff --git a/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py b/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py index c692a8d0a..ae472ab28 100644 --- a/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py +++ b/src/GridCalEngine/Simulations/StateEstimation/state_estimation.py @@ -393,6 +393,6 @@ def solve_se_lm(Ybus, Yf, Yt, f, t, se_input, ref, pq, pv) -> NumericPowerFlowRe # return NumericPowerFlowResults(V, converged, err, Scalc, None, None, None, None, None, None, iter_, elapsed) return NumericPowerFlowResults(V=V, converged=converged, norm_f=err, - Scalc=Scalc, ma=None, theta=None, Beq=None, + Scalc=Scalc, m=None, tau=None, Beq=None, Ybus=None, Yf=None, Yt=None, iterations=iter_, elapsed=elapsed) diff --git a/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py index ea35018df..4fe82c700 100644 --- a/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/ac_jacobian.py @@ -1,32 +1,19 @@ -# Copyright 1996-2015 PSERC. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -# Copyright (c) 2016-2020 by University of Kassel and Fraunhofer Institute for for Energy Economics -# and Energy System Technology (IEE) Kassel and individual contributors (see AUTHORS file for details). -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are permitted -# provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of conditions -# and the following disclaimer. +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera # -# 2. Redistributions in binary form must reproduce the above copyright notice, this list of -# conditions and the following disclaimer in the documentation and/or other materials provided -# with the distribution. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. # -# 3. Neither the name of the copyright holder nor the names of its contributors may be used to -# endorse or promote products derived from this software without specific prior written permission. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY -# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from numba import jit from numpy import float64, int32 import numpy as np diff --git a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py index c68316a6c..e931264f4 100644 --- a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py @@ -929,6 +929,9 @@ def fubm_jacobian(nbus: int, n_rows = len(idx_dP) + len(idx_dQ) + len(idx_dQf) + len(idx_dQt) + len(idx_dPf) + len(idx_dPdp) n_cols = len(idx_dtheta) + len(idx_dvm) + len(idx_dm) + len(idx_dtau) + len(idx_dbeq) + if not np.all(idx_dtau == idx_dPf): + raise ValueError("Pf indices must be equal to tau indices!") + if n_cols != n_rows: raise ValueError("Incorrect J indices!") @@ -944,47 +947,54 @@ def fubm_jacobian(nbus: int, dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dtheta) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dtheta) dQf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag - dQt_dVa_ = deriv.dSt_dVa_csc(nbus, idx_dQt, idx_dtheta, ytf, V, F, T).imag + # dQt_dVa_ = deriv.dSt_dVa_csc(nbus, idx_dQt, idx_dtheta, ytf, V, F, T).imag dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real - dPdp_dVa = deriv.dSf_dVa_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, V, F, T).real + # dPdp_dVa = deriv.dSf_dVa_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, V, F, T).real dP_dVm__ = sp_slice(dS_dVm.real, idx_dP, idx_dvm) dQ_dVm__ = sp_slice(dS_dVm.imag, idx_dQ, idx_dvm) dQf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag - dQt_dVm_ = deriv.dSt_dVm_csc(nbus, idx_dQt, idx_dtheta, ytt, ytf, V, F, T).imag + # dQt_dVm_ = deriv.dSt_dVm_csc(nbus, idx_dQt, idx_dtheta, ytt, ytf, V, F, T).imag dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real - dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) + # dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) + # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real + # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag - dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag + # dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real - dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real + # dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + # dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real - dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + # dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real # compose the Jacobian + # J = csc_stack_2d_ff(mats= + # [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, + # dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, + # dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, + # dQt_dVa_, dQt_dVm_, dQt_dbeq_, dQt_dm_, dQt_dtau_, + # dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_, + # dPdp_dVa, dPdp_dVm, dPdp_dbeq, dPdp_dm, dPdp_dtau], + # n_rows=6, n_cols=5) + J = csc_stack_2d_ff(mats= [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, - dQt_dVa_, dQt_dVm_, dQt_dbeq_, dQt_dm_, dQt_dtau_, - dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_, - dPdp_dVa, dPdp_dVm, dPdp_dbeq, dPdp_dm, dPdp_dtau], - n_rows=6, n_cols=5) + dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_], + n_rows=4, n_cols=5) if J.n_cols != J.n_rows: raise ValueError("J is not square!") diff --git a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py index aaf619e12..1cb2372db 100644 --- a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py @@ -751,7 +751,7 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp :param sf_indices: array of sf indices - :param tau_indices: array of branch indices with tau control + :param tau_indices: array of branch indices with tau control (must be equal to sf_indices) :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices :param Ys: Array of branch series admittances @@ -769,20 +769,17 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv Tj = np.empty(max_nnz, dtype=np.int32) nnz = 0 for k_idx, k in enumerate(tau_indices): - for k2_idx, k2 in enumerate(sf_indices): - - if k2 == k: - f = F[k] - t = T[k] + f = F[k] + t = T[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) + # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) + Ti[nnz] = k_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 1e0d0f835..4debd63c1 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -213,6 +213,8 @@ def __init__(self, n_rows: int, n_cols: int, nnz: int, force_zeros: bool): self.indices = np.empty(nnz, dtype=np.int32) self.indptr = np.empty(n_cols + 1, dtype=np.int32) + self.indptr[0] = 0 # always + def set(self, indices: IntVec, indptr: IntVec, data: CxVec): """ Set the internal arrays @@ -239,7 +241,8 @@ def fill_from_coo(self, Ti: IntVec, Tj: IntVec, Tx: CxVec, nnz: int): self.nnz = nnz self.data = np.empty(self.nnz, dtype=np.complex128) self.indices = np.empty(self.nnz, dtype=np.int32) - # self.indptr = np.empty(n_cols + 1, dtype=np.int32) + self.indptr = np.empty(self.n_cols + 1, dtype=np.int32) + self.indptr[0] = 0 # always w = np.zeros(self.n_cols, dtype=np.int32) # get workspace diff --git a/src/tests/test_contingency.py b/src/tests/test_contingency.py index b4dcc7f04..7f896a580 100644 --- a/src/tests/test_contingency.py +++ b/src/tests/test_contingency.py @@ -31,10 +31,10 @@ def test_contingency() -> None: use_stored_guess=False, control_q=ReactivePowerControlMode.NoControl) - options = ContingencyAnalysisOptions(pf_options=pf_options, + options = ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=ContingencyMethod.PowerFlow) - - cont_analysis_driver = ContingencyAnalysisDriver(grid=main_circuit, + + cont_analysis_driver = ContingencyAnalysisDriver(grid=main_circuit, options=options, linear_multiple_contingencies=None) cont_analysis_driver.run() @@ -73,6 +73,7 @@ def test_linear_contingency(): cont_analysis_driver.run() print("") + # def test_lodf(): # fname = os.path.join('data', 'grids', 'IEEE14_contingency.gridcal') # main_circuit = FileOpen(fname).open() @@ -123,3 +124,6 @@ def test_linear_contingency(): # #res = linear_analysis.results.PTDF - ptdf_result # #print(res) # assert(np.isclose(linear_analysis.results.PTDF, ptdf_result).all()) + +if __name__ == '__main__': + test_contingency() diff --git a/src/tests/test_generator_q_control.py b/src/tests/test_generator_q_control.py index e333619ee..19537c7c8 100644 --- a/src/tests/test_generator_q_control.py +++ b/src/tests/test_generator_q_control.py @@ -2,7 +2,7 @@ from GridCalEngine.api import * -def test_q_control_true(): +def test_q_control_true() -> None: """ Test that when the Q control is enabled the Q limits are respected """ @@ -39,7 +39,6 @@ def test_q_control_false(): main_circuit = FileOpen(fname).open() for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: - options = PowerFlowOptions(solver_type, verbose=0, control_q=ReactivePowerControlMode.NoControl, @@ -58,3 +57,7 @@ def test_q_control_false(): ok = l_ok.all() and r_ok.all() assert not ok + + +if __name__ == '__main__': + test_q_control_true() From 104654e4aa4b99855f556a9f3787f94ce67b2e90 Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 17 Jul 2024 17:43:18 +0100 Subject: [PATCH 120/218] Created PfAdvancedFormulation --- .idea/workspace.xml | 55 +-- src/GridCal/Gui/Main/MainWindow.ui | 249 ++++++------ .../NumericalMethods/discrete_controls.py | 4 +- .../NumericalMethods/newton_raphson_fx.py | 4 +- .../pf_advanced_formulation.py | 356 ++++++++++++++++++ .../NumericalMethods/pf_basic_formulation.py | 25 -- .../pf_formulation_template.py | 23 +- 7 files changed, 525 insertions(+), 191 deletions(-) create mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 15bc2d990..80b6f8b2f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,34 +28,13 @@ - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + + + + @@ -684,19 +1008,19 @@ + + - - + + - - @@ -1446,7 +1770,9 @@ - + + + 1656059954202 @@ -1791,7 +2117,7 @@ - @@ -1837,7 +2163,6 @@ - @@ -1862,7 +2187,8 @@ - @@ -2373,6 +2699,21 @@ 935 @@ -2425,8 +2766,8 @@ - + @@ -2766,13 +3107,13 @@ - + - + diff --git a/src/GridCal/Gui/Main/ConsoleLog.py b/src/GridCal/Gui/Main/ConsoleLog.py index 3139c7b2c..e8cee90f8 100644 --- a/src/GridCal/Gui/Main/ConsoleLog.py +++ b/src/GridCal/Gui/Main/ConsoleLog.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'ConsoleLog.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.7.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -28,7 +28,7 @@ def setupUi(self, mainWindow): mainWindow.resize(516, 327) mainWindow.setBaseSize(QSize(0, 0)) icon = QIcon() - icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Normal, QIcon.Off) + icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) mainWindow.setWindowIcon(icon) mainWindow.setIconSize(QSize(24, 24)) mainWindow.setDocumentMode(False) @@ -37,7 +37,7 @@ def setupUi(self, mainWindow): self.actionSave = QAction(mainWindow) self.actionSave.setObjectName(u"actionSave") icon1 = QIcon() - icon1.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Normal, QIcon.Off) + icon1.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSave.setIcon(icon1) self.centralwidget = QWidget(mainWindow) self.centralwidget.setObjectName(u"centralwidget") diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index a8e863763..13569ad95 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'MainWindow.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.7.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -34,7 +34,7 @@ def setupUi(self, mainWindow): mainWindow.resize(1393, 915) mainWindow.setBaseSize(QSize(0, 0)) icon = QIcon() - icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Normal, QIcon.Off) + icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) mainWindow.setWindowIcon(icon) mainWindow.setAutoFillBackground(False) mainWindow.setIconSize(QSize(48, 48)) @@ -46,53 +46,53 @@ def setupUi(self, mainWindow): self.actionOpen_file = QAction(mainWindow) self.actionOpen_file.setObjectName(u"actionOpen_file") icon1 = QIcon() - icon1.addFile(u":/Icons/icons/loadc.svg", QSize(), QIcon.Normal, QIcon.Off) + icon1.addFile(u":/Icons/icons/loadc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOpen_file.setIcon(icon1) self.actionSave = QAction(mainWindow) self.actionSave.setObjectName(u"actionSave") icon2 = QIcon() - icon2.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Normal, QIcon.Off) + icon2.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSave.setIcon(icon2) self.actionTakePicture = QAction(mainWindow) self.actionTakePicture.setObjectName(u"actionTakePicture") icon3 = QIcon() - icon3.addFile(u":/Icons/icons/picture.svg", QSize(), QIcon.Normal, QIcon.Off) + icon3.addFile(u":/Icons/icons/picture.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionTakePicture.setIcon(icon3) self.actionNew_project = QAction(mainWindow) self.actionNew_project.setObjectName(u"actionNew_project") icon4 = QIcon() - icon4.addFile(u":/Icons/icons/new2c.svg", QSize(), QIcon.Normal, QIcon.Off) + icon4.addFile(u":/Icons/icons/new2c.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNew_project.setIcon(icon4) self.actionPower_flow = QAction(mainWindow) self.actionPower_flow.setObjectName(u"actionPower_flow") icon5 = QIcon() - icon5.addFile(u":/Icons/icons/pf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon5.addFile(u":/Icons/icons/pf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_flow.setIcon(icon5) self.actionPower_flow.setMenuRole(QAction.TextHeuristicRole) self.actionPower_Flow_Time_series = QAction(mainWindow) self.actionPower_Flow_Time_series.setObjectName(u"actionPower_Flow_Time_series") icon6 = QIcon() - icon6.addFile(u":/Icons/icons/pf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon6.addFile(u":/Icons/icons/pf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_Flow_Time_series.setIcon(icon6) self.actionBigger_nodes = QAction(mainWindow) self.actionBigger_nodes.setObjectName(u"actionBigger_nodes") icon7 = QIcon() - icon7.addFile(u":/Icons/icons/plus (gray).svg", QSize(), QIcon.Normal, QIcon.Off) + icon7.addFile(u":/Icons/icons/plus (gray).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionBigger_nodes.setIcon(icon7) self.actionSmaller_nodes = QAction(mainWindow) self.actionSmaller_nodes.setObjectName(u"actionSmaller_nodes") icon8 = QIcon() - icon8.addFile(u":/Icons/icons/minus (gray).svg", QSize(), QIcon.Normal, QIcon.Off) + icon8.addFile(u":/Icons/icons/minus (gray).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSmaller_nodes.setIcon(icon8) self.actionPower_flow_Stochastic = QAction(mainWindow) self.actionPower_flow_Stochastic.setObjectName(u"actionPower_flow_Stochastic") icon9 = QIcon() - icon9.addFile(u":/Icons/icons/stochastic_pf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon9.addFile(u":/Icons/icons/stochastic_pf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_flow_Stochastic.setIcon(icon9) self.actionVoltage_stability = QAction(mainWindow) self.actionVoltage_stability.setObjectName(u"actionVoltage_stability") icon10 = QIcon() - icon10.addFile(u":/Icons/icons/continuation_power_flow.svg", QSize(), QIcon.Normal, QIcon.Off) + icon10.addFile(u":/Icons/icons/continuation_power_flow.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionVoltage_stability.setIcon(icon10) self.actionAbout = QAction(mainWindow) self.actionAbout.setObjectName(u"actionAbout") @@ -100,69 +100,69 @@ def setupUi(self, mainWindow): self.actionCenter_view = QAction(mainWindow) self.actionCenter_view.setObjectName(u"actionCenter_view") icon11 = QIcon() - icon11.addFile(u":/Icons/icons/resize.svg", QSize(), QIcon.Normal, QIcon.Off) + icon11.addFile(u":/Icons/icons/resize.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionCenter_view.setIcon(icon11) self.actionShort_Circuit = QAction(mainWindow) self.actionShort_Circuit.setObjectName(u"actionShort_Circuit") icon12 = QIcon() - icon12.addFile(u":/Icons/icons/short_circuit.svg", QSize(), QIcon.Normal, QIcon.Off) + icon12.addFile(u":/Icons/icons/short_circuit.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionShort_Circuit.setIcon(icon12) self.actionAutoatic_layout = QAction(mainWindow) self.actionAutoatic_layout.setObjectName(u"actionAutoatic_layout") icon13 = QIcon() - icon13.addFile(u":/Icons/icons/automatic_layout.svg", QSize(), QIcon.Normal, QIcon.Off) + icon13.addFile(u":/Icons/icons/automatic_layout.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAutoatic_layout.setIcon(icon13) self.actionBlackout_cascade = QAction(mainWindow) self.actionBlackout_cascade.setObjectName(u"actionBlackout_cascade") self.actionBlackout_cascade.setCheckable(True) icon14 = QIcon() - icon14.addFile(u":/Icons/icons/blackout.svg", QSize(), QIcon.Normal, QIcon.Off) + icon14.addFile(u":/Icons/icons/blackout.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionBlackout_cascade.setIcon(icon14) self.actionOPF = QAction(mainWindow) self.actionOPF.setObjectName(u"actionOPF") icon15 = QIcon() - icon15.addFile(u":/Icons/icons/dcopf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon15.addFile(u":/Icons/icons/dcopf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOPF.setIcon(icon15) self.actionOPF_time_series = QAction(mainWindow) self.actionOPF_time_series.setObjectName(u"actionOPF_time_series") icon16 = QIcon() - icon16.addFile(u":/Icons/icons/dcopf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon16.addFile(u":/Icons/icons/dcopf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOPF_time_series.setIcon(icon16) self.actionDetect_transformers = QAction(mainWindow) self.actionDetect_transformers.setObjectName(u"actionDetect_transformers") icon17 = QIcon() - icon17.addFile(u":/Icons/icons/detect_tr.svg", QSize(), QIcon.Normal, QIcon.Off) + icon17.addFile(u":/Icons/icons/detect_tr.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDetect_transformers.setIcon(icon17) self.actionAuto_rate_branches = QAction(mainWindow) self.actionAuto_rate_branches.setObjectName(u"actionAuto_rate_branches") icon18 = QIcon() - icon18.addFile(u":/Icons/icons/rate_br.svg", QSize(), QIcon.Normal, QIcon.Off) + icon18.addFile(u":/Icons/icons/rate_br.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAuto_rate_branches.setIcon(icon18) self.actionExport_all_the_device_s_profiles = QAction(mainWindow) self.actionExport_all_the_device_s_profiles.setObjectName(u"actionExport_all_the_device_s_profiles") icon19 = QIcon() - icon19.addFile(u":/Icons/icons/save.svg", QSize(), QIcon.Normal, QIcon.Off) + icon19.addFile(u":/Icons/icons/save.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionExport_all_the_device_s_profiles.setIcon(icon19) self.actionStorage_location_suggestion = QAction(mainWindow) self.actionStorage_location_suggestion.setObjectName(u"actionStorage_location_suggestion") self.actionStorage_location_suggestion.setCheckable(True) icon20 = QIcon() - icon20.addFile(u":/Icons/icons/storage_loc.svg", QSize(), QIcon.Normal, QIcon.Off) + icon20.addFile(u":/Icons/icons/storage_loc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionStorage_location_suggestion.setIcon(icon20) self.actionLaunch_data_analysis_tool = QAction(mainWindow) self.actionLaunch_data_analysis_tool.setObjectName(u"actionLaunch_data_analysis_tool") icon21 = QIcon() - icon21.addFile(u":/Icons/icons/inputs_analysis 2.svg", QSize(), QIcon.Normal, QIcon.Off) + icon21.addFile(u":/Icons/icons/inputs_analysis 2.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionLaunch_data_analysis_tool.setIcon(icon21) self.actionOnline_documentation = QAction(mainWindow) self.actionOnline_documentation.setObjectName(u"actionOnline_documentation") icon22 = QIcon() - icon22.addFile(u":/Icons/icons/new.svg", QSize(), QIcon.Normal, QIcon.Off) + icon22.addFile(u":/Icons/icons/new.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOnline_documentation.setIcon(icon22) self.actionExport_all_results = QAction(mainWindow) self.actionExport_all_results.setObjectName(u"actionExport_all_results") icon23 = QIcon() - icon23.addFile(u":/Icons/icons/export_pickle.svg", QSize(), QIcon.Normal, QIcon.Off) + icon23.addFile(u":/Icons/icons/export_pickle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionExport_all_results.setIcon(icon23) self.actionSave_as = QAction(mainWindow) self.actionSave_as.setObjectName(u"actionSave_as") @@ -170,28 +170,28 @@ def setupUi(self, mainWindow): self.actionDelete_selected = QAction(mainWindow) self.actionDelete_selected.setObjectName(u"actionDelete_selected") icon24 = QIcon() - icon24.addFile(u":/Icons/icons/delete_db.svg", QSize(), QIcon.Normal, QIcon.Off) + icon24.addFile(u":/Icons/icons/delete_db.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_selected.setIcon(icon24) self.actionLinearAnalysis = QAction(mainWindow) self.actionLinearAnalysis.setObjectName(u"actionLinearAnalysis") icon25 = QIcon() - icon25.addFile(u":/Icons/icons/ptdf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon25.addFile(u":/Icons/icons/ptdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionLinearAnalysis.setIcon(icon25) self.actionReset_console = QAction(mainWindow) self.actionReset_console.setObjectName(u"actionReset_console") icon26 = QIcon() - icon26.addFile(u":/Icons/icons/undo.svg", QSize(), QIcon.Normal, QIcon.Off) + icon26.addFile(u":/Icons/icons/undo.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionReset_console.setIcon(icon26) self.actionOpf_to_Power_flow = QAction(mainWindow) self.actionOpf_to_Power_flow.setObjectName(u"actionOpf_to_Power_flow") self.actionOpf_to_Power_flow.setCheckable(True) icon27 = QIcon() - icon27.addFile(u":/Icons/icons/dcopf2ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon27.addFile(u":/Icons/icons/dcopf2ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOpf_to_Power_flow.setIcon(icon27) self.actionTry_to_fix_buses_location = QAction(mainWindow) self.actionTry_to_fix_buses_location.setObjectName(u"actionTry_to_fix_buses_location") icon28 = QIcon() - icon28.addFile(u":/Icons/icons/move_bus.svg", QSize(), QIcon.Normal, QIcon.Off) + icon28.addFile(u":/Icons/icons/move_bus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionTry_to_fix_buses_location.setIcon(icon28) self.actionSet_OPF_generation_to_profiles = QAction(mainWindow) self.actionSet_OPF_generation_to_profiles.setObjectName(u"actionSet_OPF_generation_to_profiles") @@ -199,44 +199,44 @@ def setupUi(self, mainWindow): self.actionPTDF_time_series = QAction(mainWindow) self.actionPTDF_time_series.setObjectName(u"actionPTDF_time_series") icon29 = QIcon() - icon29.addFile(u":/Icons/icons/ptdf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon29.addFile(u":/Icons/icons/ptdf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPTDF_time_series.setIcon(icon29) self.actionAdd_circuit = QAction(mainWindow) self.actionAdd_circuit.setObjectName(u"actionAdd_circuit") icon30 = QIcon() - icon30.addFile(u":/Icons/icons/load_add.svg", QSize(), QIcon.Normal, QIcon.Off) + icon30.addFile(u":/Icons/icons/load_add.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_circuit.setIcon(icon30) self.actionSync = QAction(mainWindow) self.actionSync.setObjectName(u"actionSync") self.actionSync.setCheckable(True) icon31 = QIcon() - icon31.addFile(u":/Icons/icons/sync.svg", QSize(), QIcon.Normal, QIcon.Off) + icon31.addFile(u":/Icons/icons/sync.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSync.setIcon(icon31) self.actionDrawSchematic = QAction(mainWindow) self.actionDrawSchematic.setObjectName(u"actionDrawSchematic") icon32 = QIcon() - icon32.addFile(u":/Icons/icons/grid_icon.svg", QSize(), QIcon.Normal, QIcon.Off) + icon32.addFile(u":/Icons/icons/grid_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDrawSchematic.setIcon(icon32) self.actionSigma_analysis = QAction(mainWindow) self.actionSigma_analysis.setObjectName(u"actionSigma_analysis") icon33 = QIcon() - icon33.addFile(u":/Icons/icons/sigma.svg", QSize(), QIcon.Normal, QIcon.Off) + icon33.addFile(u":/Icons/icons/sigma.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSigma_analysis.setIcon(icon33) self.actionClear_stuff_running_right_now = QAction(mainWindow) self.actionClear_stuff_running_right_now.setObjectName(u"actionClear_stuff_running_right_now") icon34 = QIcon() - icon34.addFile(u":/Icons/icons/clear_runs.svg", QSize(), QIcon.Normal, QIcon.Off) + icon34.addFile(u":/Icons/icons/clear_runs.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionClear_stuff_running_right_now.setIcon(icon34) self.actionAdd_default_catalogue = QAction(mainWindow) self.actionAdd_default_catalogue.setObjectName(u"actionAdd_default_catalogue") icon35 = QIcon() - icon35.addFile(u":/Icons/icons/CatalogueAdd.svg", QSize(), QIcon.Normal, QIcon.Off) + icon35.addFile(u":/Icons/icons/CatalogueAdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_default_catalogue.setIcon(icon35) self.actionFind_node_groups = QAction(mainWindow) self.actionFind_node_groups.setObjectName(u"actionFind_node_groups") self.actionFind_node_groups.setCheckable(True) icon36 = QIcon() - icon36.addFile(u":/Icons/icons/color_grid2.svg", QSize(), QIcon.Normal, QIcon.Off) + icon36.addFile(u":/Icons/icons/color_grid2.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFind_node_groups.setIcon(icon36) self.actiongrid_Generator = QAction(mainWindow) self.actiongrid_Generator.setObjectName(u"actiongrid_Generator") @@ -244,7 +244,7 @@ def setupUi(self, mainWindow): self.actionImportPlexosNodeLoad = QAction(mainWindow) self.actionImportPlexosNodeLoad.setObjectName(u"actionImportPlexosNodeLoad") icon37 = QIcon() - icon37.addFile(u":/Icons/icons/load.svg", QSize(), QIcon.Normal, QIcon.Off) + icon37.addFile(u":/Icons/icons/load.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionImportPlexosNodeLoad.setIcon(icon37) self.actionImportPlexosGeneratorGeneration = QAction(mainWindow) self.actionImportPlexosGeneratorGeneration.setObjectName(u"actionImportPlexosGeneratorGeneration") @@ -252,7 +252,7 @@ def setupUi(self, mainWindow): self.actionOTDF_time_series = QAction(mainWindow) self.actionOTDF_time_series.setObjectName(u"actionOTDF_time_series") icon38 = QIcon() - icon38.addFile(u":/Icons/icons/otdf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon38.addFile(u":/Icons/icons/otdf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOTDF_time_series.setIcon(icon38) self.actionImportPlexosBranchRates = QAction(mainWindow) self.actionImportPlexosBranchRates.setObjectName(u"actionImportPlexosBranchRates") @@ -266,7 +266,7 @@ def setupUi(self, mainWindow): self.actionSetSelectedBusCountry = QAction(mainWindow) self.actionSetSelectedBusCountry.setObjectName(u"actionSetSelectedBusCountry") icon39 = QIcon() - icon39.addFile(u":/Icons/icons/map.svg", QSize(), QIcon.Normal, QIcon.Off) + icon39.addFile(u":/Icons/icons/map.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSetSelectedBusCountry.setIcon(icon39) self.actionImport_bus_coordinates = QAction(mainWindow) self.actionImport_bus_coordinates.setObjectName(u"actionImport_bus_coordinates") @@ -274,22 +274,22 @@ def setupUi(self, mainWindow): self.actionATC = QAction(mainWindow) self.actionATC.setObjectName(u"actionATC") icon40 = QIcon() - icon40.addFile(u":/Icons/icons/atc.svg", QSize(), QIcon.Normal, QIcon.Off) + icon40.addFile(u":/Icons/icons/atc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionATC.setIcon(icon40) self.actionATC_Time_Series = QAction(mainWindow) self.actionATC_Time_Series.setObjectName(u"actionATC_Time_Series") icon41 = QIcon() - icon41.addFile(u":/Icons/icons/atc_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon41.addFile(u":/Icons/icons/atc_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionATC_Time_Series.setIcon(icon41) self.actionContingency_analysis = QAction(mainWindow) self.actionContingency_analysis.setObjectName(u"actionContingency_analysis") icon42 = QIcon() - icon42.addFile(u":/Icons/icons/otdf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon42.addFile(u":/Icons/icons/otdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionContingency_analysis.setIcon(icon42) self.actionOptimal_Net_Transfer_Capacity = QAction(mainWindow) self.actionOptimal_Net_Transfer_Capacity.setObjectName(u"actionOptimal_Net_Transfer_Capacity") icon43 = QIcon() - icon43.addFile(u":/Icons/icons/ntc_opf.svg", QSize(), QIcon.Normal, QIcon.Off) + icon43.addFile(u":/Icons/icons/ntc_opf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOptimal_Net_Transfer_Capacity.setIcon(icon43) self.actionSet_schematic_positions_from_GPS_coordinates = QAction(mainWindow) self.actionSet_schematic_positions_from_GPS_coordinates.setObjectName(u"actionSet_schematic_positions_from_GPS_coordinates") @@ -297,32 +297,32 @@ def setupUi(self, mainWindow): self.actionInputs_analysis = QAction(mainWindow) self.actionInputs_analysis.setObjectName(u"actionInputs_analysis") icon44 = QIcon() - icon44.addFile(u":/Icons/icons/stats.svg", QSize(), QIcon.Normal, QIcon.Off) + icon44.addFile(u":/Icons/icons/stats.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInputs_analysis.setIcon(icon44) self.actionFuse_devices = QAction(mainWindow) self.actionFuse_devices.setObjectName(u"actionFuse_devices") icon45 = QIcon() - icon45.addFile(u":/Icons/icons/fusion.svg", QSize(), QIcon.Normal, QIcon.Off) + icon45.addFile(u":/Icons/icons/fusion.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFuse_devices.setIcon(icon45) self.actionDelete_inconsistencies = QAction(mainWindow) self.actionDelete_inconsistencies.setObjectName(u"actionDelete_inconsistencies") icon46 = QIcon() - icon46.addFile(u":/Icons/icons/delete.svg", QSize(), QIcon.Normal, QIcon.Off) + icon46.addFile(u":/Icons/icons/delete.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_inconsistencies.setIcon(icon46) self.actionOptimal_Net_Transfer_Capacity_Time_Series = QAction(mainWindow) self.actionOptimal_Net_Transfer_Capacity_Time_Series.setObjectName(u"actionOptimal_Net_Transfer_Capacity_Time_Series") icon47 = QIcon() - icon47.addFile(u":/Icons/icons/ntc_opf_ts.svg", QSize(), QIcon.Normal, QIcon.Off) + icon47.addFile(u":/Icons/icons/ntc_opf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOptimal_Net_Transfer_Capacity_Time_Series.setIcon(icon47) self.actionre_index_time = QAction(mainWindow) self.actionre_index_time.setObjectName(u"actionre_index_time") icon48 = QIcon() - icon48.addFile(u":/Icons/icons/data.svg", QSize(), QIcon.Normal, QIcon.Off) + icon48.addFile(u":/Icons/icons/data.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionre_index_time.setIcon(icon48) self.actionFix_generators_active_based_on_the_power = QAction(mainWindow) self.actionFix_generators_active_based_on_the_power.setObjectName(u"actionFix_generators_active_based_on_the_power") icon49 = QIcon() - icon49.addFile(u":/Icons/icons/gear.svg", QSize(), QIcon.Normal, QIcon.Off) + icon49.addFile(u":/Icons/icons/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFix_generators_active_based_on_the_power.setIcon(icon49) self.actionFix_loads_active_based_on_the_power = QAction(mainWindow) self.actionFix_loads_active_based_on_the_power.setObjectName(u"actionFix_loads_active_based_on_the_power") @@ -333,7 +333,7 @@ def setupUi(self, mainWindow): self.actionInitialize_contingencies = QAction(mainWindow) self.actionInitialize_contingencies.setObjectName(u"actionInitialize_contingencies") icon50 = QIcon() - icon50.addFile(u":/Icons/icons/contingency_wizzard.svg", QSize(), QIcon.Normal, QIcon.Off) + icon50.addFile(u":/Icons/icons/contingency_wizzard.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInitialize_contingencies.setIcon(icon50) self.actionExport_contingencies = QAction(mainWindow) self.actionExport_contingencies.setObjectName(u"actionExport_contingencies") @@ -341,44 +341,44 @@ def setupUi(self, mainWindow): self.actionAdd_selected_to_contingency = QAction(mainWindow) self.actionAdd_selected_to_contingency.setObjectName(u"actionAdd_selected_to_contingency") icon51 = QIcon() - icon51.addFile(u":/Icons/icons/add_contingency.svg", QSize(), QIcon.Normal, QIcon.Off) + icon51.addFile(u":/Icons/icons/add_contingency.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_selected_to_contingency.setIcon(icon51) self.actionAdd_selected_as_new_investment = QAction(mainWindow) self.actionAdd_selected_as_new_investment.setObjectName(u"actionAdd_selected_as_new_investment") icon52 = QIcon() - icon52.addFile(u":/Icons/icons/investment.svg", QSize(), QIcon.Normal, QIcon.Off) + icon52.addFile(u":/Icons/icons/investment.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_selected_as_new_investment.setIcon(icon52) self.actionZoom_in = QAction(mainWindow) self.actionZoom_in.setObjectName(u"actionZoom_in") icon53 = QIcon() - icon53.addFile(u":/Icons/icons/zoom_in.svg", QSize(), QIcon.Normal, QIcon.Off) + icon53.addFile(u":/Icons/icons/zoom_in.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionZoom_in.setIcon(icon53) self.actionZoom_out = QAction(mainWindow) self.actionZoom_out.setObjectName(u"actionZoom_out") icon54 = QIcon() - icon54.addFile(u":/Icons/icons/zoom_out.svg", QSize(), QIcon.Normal, QIcon.Off) + icon54.addFile(u":/Icons/icons/zoom_out.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionZoom_out.setIcon(icon54) self.actionClustering = QAction(mainWindow) self.actionClustering.setObjectName(u"actionClustering") icon55 = QIcon() - icon55.addFile(u":/Icons/icons/clustering.svg", QSize(), QIcon.Normal, QIcon.Off) + icon55.addFile(u":/Icons/icons/clustering.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionClustering.setIcon(icon55) self.actionClustering.setMenuRole(QAction.NoRole) self.actionUse_clustering = QAction(mainWindow) self.actionUse_clustering.setObjectName(u"actionUse_clustering") self.actionUse_clustering.setCheckable(True) icon56 = QIcon() - icon56.addFile(u":/Icons/icons/clustering_use.svg", QSize(), QIcon.Normal, QIcon.Off) + icon56.addFile(u":/Icons/icons/clustering_use.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionUse_clustering.setIcon(icon56) self.actionInvestments_evaluation = QAction(mainWindow) self.actionInvestments_evaluation.setObjectName(u"actionInvestments_evaluation") icon57 = QIcon() - icon57.addFile(u":/Icons/icons/expansion_planning.svg", QSize(), QIcon.Normal, QIcon.Off) + icon57.addFile(u":/Icons/icons/expansion_planning.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInvestments_evaluation.setIcon(icon57) self.actionNew_bus_branch_diagram_from_selection = QAction(mainWindow) self.actionNew_bus_branch_diagram_from_selection.setObjectName(u"actionNew_bus_branch_diagram_from_selection") icon58 = QIcon() - icon58.addFile(u":/Icons/icons/schematic.svg", QSize(), QIcon.Normal, QIcon.Off) + icon58.addFile(u":/Icons/icons/schematic.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNew_bus_branch_diagram_from_selection.setIcon(icon58) self.actionAdd_general_bus_branch_diagram = QAction(mainWindow) self.actionAdd_general_bus_branch_diagram.setObjectName(u"actionAdd_general_bus_branch_diagram") @@ -386,7 +386,7 @@ def setupUi(self, mainWindow): self.actionAdd_map = QAction(mainWindow) self.actionAdd_map.setObjectName(u"actionAdd_map") icon59 = QIcon() - icon59.addFile(u":/Icons/icons/map (add).svg", QSize(), QIcon.Normal, QIcon.Off) + icon59.addFile(u":/Icons/icons/map (add).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_map.setIcon(icon59) self.actionRemove_selected_diagram = QAction(mainWindow) self.actionRemove_selected_diagram.setObjectName(u"actionRemove_selected_diagram") @@ -394,12 +394,12 @@ def setupUi(self, mainWindow): self.actionReport_a_bug = QAction(mainWindow) self.actionReport_a_bug.setObjectName(u"actionReport_a_bug") icon60 = QIcon() - icon60.addFile(u":/Icons/icons/bug.svg", QSize(), QIcon.Normal, QIcon.Off) + icon60.addFile(u":/Icons/icons/bug.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionReport_a_bug.setIcon(icon60) self.actionSearchDiagram = QAction(mainWindow) self.actionSearchDiagram.setObjectName(u"actionSearchDiagram") icon61 = QIcon() - icon61.addFile(u":/Icons/icons/magnifying_glass.svg", QSize(), QIcon.Normal, QIcon.Off) + icon61.addFile(u":/Icons/icons/magnifying_glass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSearchDiagram.setIcon(icon61) self.actionProcess_topology = QAction(mainWindow) self.actionProcess_topology.setObjectName(u"actionProcess_topology") @@ -407,13 +407,13 @@ def setupUi(self, mainWindow): self.actionEdit_simulation_time_limits = QAction(mainWindow) self.actionEdit_simulation_time_limits.setObjectName(u"actionEdit_simulation_time_limits") icon62 = QIcon() - icon62.addFile(u":/Icons/icons/time_series span.svg", QSize(), QIcon.Normal, QIcon.Off) + icon62.addFile(u":/Icons/icons/time_series span.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEdit_simulation_time_limits.setIcon(icon62) self.actionactivate_time_series = QAction(mainWindow) self.actionactivate_time_series.setObjectName(u"actionactivate_time_series") self.actionactivate_time_series.setCheckable(True) icon63 = QIcon() - icon63.addFile(u":/Icons/icons/time_series set.svg", QSize(), QIcon.Normal, QIcon.Off) + icon63.addFile(u":/Icons/icons/time_series set.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionactivate_time_series.setIcon(icon63) self.actionClean_database = QAction(mainWindow) self.actionClean_database.setObjectName(u"actionClean_database") @@ -430,55 +430,47 @@ def setupUi(self, mainWindow): self.actionScale = QAction(mainWindow) self.actionScale.setObjectName(u"actionScale") icon64 = QIcon() - icon64.addFile(u":/Icons/icons/scale.svg", QSize(), QIcon.Normal, QIcon.Off) + icon64.addFile(u":/Icons/icons/scale.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionScale.setIcon(icon64) self.actionDisable_all_results_tags = QAction(mainWindow) self.actionDisable_all_results_tags.setObjectName(u"actionDisable_all_results_tags") icon65 = QIcon() - icon65.addFile(u":/Icons/icons/uncheck_all.svg", QSize(), QIcon.Normal, QIcon.Off) + icon65.addFile(u":/Icons/icons/uncheck_all.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDisable_all_results_tags.setIcon(icon65) self.actionEnable_all_results_tags = QAction(mainWindow) self.actionEnable_all_results_tags.setObjectName(u"actionEnable_all_results_tags") icon66 = QIcon() - icon66.addFile(u":/Icons/icons/check_all.svg", QSize(), QIcon.Normal, QIcon.Off) + icon66.addFile(u":/Icons/icons/check_all.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEnable_all_results_tags.setIcon(icon66) self.actionDetect_substations = QAction(mainWindow) self.actionDetect_substations.setObjectName(u"actionDetect_substations") icon67 = QIcon() - icon67.addFile(u":/Icons/icons/chip.svg", QSize(), QIcon.Normal, QIcon.Off) + icon67.addFile(u":/Icons/icons/chip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDetect_substations.setIcon(icon67) self.actionNodal_capacity = QAction(mainWindow) self.actionNodal_capacity.setObjectName(u"actionNodal_capacity") icon68 = QIcon() - icon68.addFile(u":/Icons/icons/nodal_capacity.svg", QSize(), QIcon.Normal, QIcon.Off) + icon68.addFile(u":/Icons/icons/nodal_capacity.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNodal_capacity.setIcon(icon68) self.actionEnable_server_mode = QAction(mainWindow) self.actionEnable_server_mode.setObjectName(u"actionEnable_server_mode") self.actionEnable_server_mode.setCheckable(True) icon69 = QIcon() - icon69.addFile(u":/Icons/icons/server.svg", QSize(), QIcon.Normal, QIcon.Off) + icon69.addFile(u":/Icons/icons/server.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEnable_server_mode.setIcon(icon69) self.actionDelete_from_the_diagram = QAction(mainWindow) self.actionDelete_from_the_diagram.setObjectName(u"actionDelete_from_the_diagram") icon70 = QIcon() - icon70.addFile(u":/Icons/icons/delete_schematic.svg", QSize(), QIcon.Normal, QIcon.Off) + icon70.addFile(u":/Icons/icons/delete_schematic.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_from_the_diagram.setIcon(icon70) self.actionRecord_video = QAction(mainWindow) self.actionRecord_video.setObjectName(u"actionRecord_video") icon71 = QIcon() - icon71.addFile(u":/Icons/icons/record.svg", QSize(), QIcon.Normal, QIcon.Off) + icon71.addFile(u":/Icons/icons/record.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionRecord_video.setIcon(icon71) self.actionExport_circuit_differential = QAction(mainWindow) self.actionExport_circuit_differential.setObjectName(u"actionExport_circuit_differential") self.actionExport_circuit_differential.setIcon(icon23) - self.actionAdd_custom_catalogue = QAction(mainWindow) - self.actionAdd_custom_catalogue.setObjectName(u"actionAdd_custom_catalogue") - icon72 = QIcon() - icon72.addFile(u":/Icons/icons/CataloguePrivate.svg", QSize(), QIcon.Normal, QIcon.Off) - self.actionAdd_custom_catalogue.setIcon(icon72) - self.actionExportCatalogue = QAction(mainWindow) - self.actionExportCatalogue.setObjectName(u"actionExportCatalogue") - self.actionExportCatalogue.setIcon(icon72) self.centralwidget = QWidget(mainWindow) self.centralwidget.setObjectName(u"centralwidget") self.gridLayout_3 = QGridLayout(self.centralwidget) @@ -611,9 +603,9 @@ def setupUi(self, mainWindow): self.colour_results_pushButton = QPushButton(self.grid_colouring_frame) self.colour_results_pushButton.setObjectName(u"colour_results_pushButton") self.colour_results_pushButton.setMaximumSize(QSize(32, 16777215)) - icon73 = QIcon() - icon73.addFile(u":/Icons/icons/color_grid.svg", QSize(), QIcon.Normal, QIcon.Off) - self.colour_results_pushButton.setIcon(icon73) + icon72 = QIcon() + icon72.addFile(u":/Icons/icons/color_grid.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.colour_results_pushButton.setIcon(icon72) self.horizontalLayout_30.addWidget(self.colour_results_pushButton) @@ -635,9 +627,9 @@ def setupUi(self, mainWindow): self.verticalLayout_37.addWidget(self.diagram_step_slider) - icon74 = QIcon() - icon74.addFile(u":/Icons/icons/show_color_controls.svg", QSize(), QIcon.Normal, QIcon.Off) - self.tabWidget_6.addTab(self.tab_3, icon74, "") + icon73 = QIcon() + icon73.addFile(u":/Icons/icons/show_color_controls.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.tabWidget_6.addTab(self.tab_3, icon73, "") self.tab_4 = QWidget() self.tab_4.setObjectName(u"tab_4") self.verticalLayout_38 = QVBoxLayout(self.tab_4) @@ -1041,9 +1033,9 @@ def setupUi(self, mainWindow): self.structure_analysis_pushButton = QPushButton(self.frame_54) self.structure_analysis_pushButton.setObjectName(u"structure_analysis_pushButton") - icon75 = QIcon() - icon75.addFile(u":/Icons/icons/histogram.svg", QSize(), QIcon.Normal, QIcon.Off) - self.structure_analysis_pushButton.setIcon(icon75) + icon74 = QIcon() + icon74.addFile(u":/Icons/icons/histogram.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.structure_analysis_pushButton.setIcon(icon74) self.horizontalLayout_28.addWidget(self.structure_analysis_pushButton) @@ -1065,9 +1057,9 @@ def setupUi(self, mainWindow): self.horizontalLayout_25.setContentsMargins(0, 0, 0, 0) self.set_profile_state_button = QPushButton(self.frame_9) self.set_profile_state_button.setObjectName(u"set_profile_state_button") - icon76 = QIcon() - icon76.addFile(u":/Icons/icons/copy2left.svg", QSize(), QIcon.Normal, QIcon.Off) - self.set_profile_state_button.setIcon(icon76) + icon75 = QIcon() + icon75.addFile(u":/Icons/icons/copy2left.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.set_profile_state_button.setIcon(icon75) self.horizontalLayout_25.addWidget(self.set_profile_state_button) @@ -1091,17 +1083,17 @@ def setupUi(self, mainWindow): self.add_object_pushButton = QPushButton(self.frame_9) self.add_object_pushButton.setObjectName(u"add_object_pushButton") - icon77 = QIcon() - icon77.addFile(u":/Icons/icons/plus.svg", QSize(), QIcon.Normal, QIcon.Off) - self.add_object_pushButton.setIcon(icon77) + icon76 = QIcon() + icon76.addFile(u":/Icons/icons/plus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.add_object_pushButton.setIcon(icon76) self.horizontalLayout_25.addWidget(self.add_object_pushButton) self.delete_selected_objects_pushButton = QPushButton(self.frame_9) self.delete_selected_objects_pushButton.setObjectName(u"delete_selected_objects_pushButton") - icon78 = QIcon() - icon78.addFile(u":/Icons/icons/minus.svg", QSize(), QIcon.Normal, QIcon.Off) - self.delete_selected_objects_pushButton.setIcon(icon78) + icon77 = QIcon() + icon77.addFile(u":/Icons/icons/minus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.delete_selected_objects_pushButton.setIcon(icon77) self.horizontalLayout_25.addWidget(self.delete_selected_objects_pushButton) @@ -1156,9 +1148,9 @@ def setupUi(self, mainWindow): self.verticalLayout_11.addWidget(self.frame_20) - icon79 = QIcon() - icon79.addFile(u":/Icons/icons/area_transfer.svg", QSize(), QIcon.Normal, QIcon.Off) - self.tabWidget_5.addTab(self.tab_2, icon79, "") + icon78 = QIcon() + icon78.addFile(u":/Icons/icons/area_transfer.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.tabWidget_5.addTab(self.tab_2, icon78, "") self.tab_16 = QWidget() self.tab_16.setObjectName(u"tab_16") self.verticalLayout_42 = QVBoxLayout(self.tab_16) @@ -1185,26 +1177,26 @@ def setupUi(self, mainWindow): self.delete_profiles_structure_pushButton = QPushButton(self.frame) self.delete_profiles_structure_pushButton.setObjectName(u"delete_profiles_structure_pushButton") - icon80 = QIcon() - icon80.addFile(u":/Icons/icons/new (delete).svg", QSize(), QIcon.Normal, QIcon.Off) - self.delete_profiles_structure_pushButton.setIcon(icon80) + icon79 = QIcon() + icon79.addFile(u":/Icons/icons/new (delete).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.delete_profiles_structure_pushButton.setIcon(icon79) self.horizontalLayout.addWidget(self.delete_profiles_structure_pushButton) self.edit_profiles_pushButton = QPushButton(self.frame) self.edit_profiles_pushButton.setObjectName(u"edit_profiles_pushButton") - icon81 = QIcon() - icon81.addFile(u":/Icons/icons/import_profiles.svg", QSize(), QIcon.Normal, QIcon.Off) - self.edit_profiles_pushButton.setIcon(icon81) + icon80 = QIcon() + icon80.addFile(u":/Icons/icons/import_profiles.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.edit_profiles_pushButton.setIcon(icon80) self.edit_profiles_pushButton.setFlat(False) self.horizontalLayout.addWidget(self.edit_profiles_pushButton) self.edit_profiles_from_models_pushButton = QPushButton(self.frame) self.edit_profiles_from_models_pushButton.setObjectName(u"edit_profiles_from_models_pushButton") - icon82 = QIcon() - icon82.addFile(u":/Icons/icons/import_models.svg", QSize(), QIcon.Normal, QIcon.Off) - self.edit_profiles_from_models_pushButton.setIcon(icon82) + icon81 = QIcon() + icon81.addFile(u":/Icons/icons/import_models.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.edit_profiles_from_models_pushButton.setIcon(icon81) self.edit_profiles_from_models_pushButton.setFlat(False) self.horizontalLayout.addWidget(self.edit_profiles_from_models_pushButton) @@ -1215,9 +1207,9 @@ def setupUi(self, mainWindow): self.plot_time_series_pushButton = QPushButton(self.frame) self.plot_time_series_pushButton.setObjectName(u"plot_time_series_pushButton") - icon83 = QIcon() - icon83.addFile(u":/Icons/icons/plot.svg", QSize(), QIcon.Normal, QIcon.Off) - self.plot_time_series_pushButton.setIcon(icon83) + icon82 = QIcon() + icon82.addFile(u":/Icons/icons/plot.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.plot_time_series_pushButton.setIcon(icon82) self.horizontalLayout.addWidget(self.plot_time_series_pushButton) @@ -1242,25 +1234,25 @@ def setupUi(self, mainWindow): self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0) self.copy_profile_pushButton = QPushButton(self.frame_12) self.copy_profile_pushButton.setObjectName(u"copy_profile_pushButton") - icon84 = QIcon() - icon84.addFile(u":/Icons/icons/copy.svg", QSize(), QIcon.Normal, QIcon.Off) - self.copy_profile_pushButton.setIcon(icon84) + icon83 = QIcon() + icon83.addFile(u":/Icons/icons/copy.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.copy_profile_pushButton.setIcon(icon83) self.horizontalLayout_4.addWidget(self.copy_profile_pushButton) self.paste_profiles_pushButton = QPushButton(self.frame_12) self.paste_profiles_pushButton.setObjectName(u"paste_profiles_pushButton") - icon85 = QIcon() - icon85.addFile(u":/Icons/icons/paste.svg", QSize(), QIcon.Normal, QIcon.Off) - self.paste_profiles_pushButton.setIcon(icon85) + icon84 = QIcon() + icon84.addFile(u":/Icons/icons/paste.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.paste_profiles_pushButton.setIcon(icon84) self.horizontalLayout_4.addWidget(self.paste_profiles_pushButton) self.set_linear_combination_profile_pushButton = QPushButton(self.frame_12) self.set_linear_combination_profile_pushButton.setObjectName(u"set_linear_combination_profile_pushButton") - icon86 = QIcon() - icon86.addFile(u":/Icons/icons/copy2right.svg", QSize(), QIcon.Normal, QIcon.Off) - self.set_linear_combination_profile_pushButton.setIcon(icon86) + icon85 = QIcon() + icon85.addFile(u":/Icons/icons/copy2right.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.set_linear_combination_profile_pushButton.setIcon(icon85) self.horizontalLayout_4.addWidget(self.set_linear_combination_profile_pushButton) @@ -1276,37 +1268,37 @@ def setupUi(self, mainWindow): self.profile_add_pushButton = QPushButton(self.frame_12) self.profile_add_pushButton.setObjectName(u"profile_add_pushButton") - self.profile_add_pushButton.setIcon(icon77) + self.profile_add_pushButton.setIcon(icon76) self.horizontalLayout_4.addWidget(self.profile_add_pushButton) self.profile_subtract_pushButton = QPushButton(self.frame_12) self.profile_subtract_pushButton.setObjectName(u"profile_subtract_pushButton") - self.profile_subtract_pushButton.setIcon(icon78) + self.profile_subtract_pushButton.setIcon(icon77) self.horizontalLayout_4.addWidget(self.profile_subtract_pushButton) self.profile_multiply_pushButton = QPushButton(self.frame_12) self.profile_multiply_pushButton.setObjectName(u"profile_multiply_pushButton") - icon87 = QIcon() - icon87.addFile(u":/Icons/icons/multiply.svg", QSize(), QIcon.Normal, QIcon.Off) - self.profile_multiply_pushButton.setIcon(icon87) + icon86 = QIcon() + icon86.addFile(u":/Icons/icons/multiply.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.profile_multiply_pushButton.setIcon(icon86) self.horizontalLayout_4.addWidget(self.profile_multiply_pushButton) self.profile_divide_pushButton = QPushButton(self.frame_12) self.profile_divide_pushButton.setObjectName(u"profile_divide_pushButton") - icon88 = QIcon() - icon88.addFile(u":/Icons/icons/divide.svg", QSize(), QIcon.Normal, QIcon.Off) - self.profile_divide_pushButton.setIcon(icon88) + icon87 = QIcon() + icon87.addFile(u":/Icons/icons/divide.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.profile_divide_pushButton.setIcon(icon87) self.horizontalLayout_4.addWidget(self.profile_divide_pushButton) self.set_profile_value_pushButton = QPushButton(self.frame_12) self.set_profile_value_pushButton.setObjectName(u"set_profile_value_pushButton") - icon89 = QIcon() - icon89.addFile(u":/Icons/icons/copy2up.svg", QSize(), QIcon.Normal, QIcon.Off) - self.set_profile_value_pushButton.setIcon(icon89) + icon88 = QIcon() + icon88.addFile(u":/Icons/icons/copy2up.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.set_profile_value_pushButton.setIcon(icon88) self.horizontalLayout_4.addWidget(self.set_profile_value_pushButton) @@ -1321,9 +1313,9 @@ def setupUi(self, mainWindow): self.verticalLayout_42.addWidget(self.frame_12) - icon90 = QIcon() - icon90.addFile(u":/Icons/icons/time_series.svg", QSize(), QIcon.Normal, QIcon.Off) - self.tabWidget_5.addTab(self.tab_16, icon90, "") + icon89 = QIcon() + icon89.addFile(u":/Icons/icons/time_series.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.tabWidget_5.addTab(self.tab_16, icon89, "") self.verticalLayout_26.addWidget(self.tabWidget_5) @@ -1355,9 +1347,9 @@ def setupUi(self, mainWindow): self.compute_simulation_data_pushButton = QPushButton(self.frame_28) self.compute_simulation_data_pushButton.setObjectName(u"compute_simulation_data_pushButton") self.compute_simulation_data_pushButton.setMaximumSize(QSize(32, 16777215)) - icon91 = QIcon() - icon91.addFile(u":/Icons/icons/calculator.svg", QSize(), QIcon.Normal, QIcon.Off) - self.compute_simulation_data_pushButton.setIcon(icon91) + icon90 = QIcon() + icon90.addFile(u":/Icons/icons/calculator.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.compute_simulation_data_pushButton.setIcon(icon90) self.gridLayout_19.addWidget(self.compute_simulation_data_pushButton, 0, 0, 1, 1) @@ -1397,23 +1389,23 @@ def setupUi(self, mainWindow): self.copyArraysToNumpyButton = QPushButton(self.frame_29) self.copyArraysToNumpyButton.setObjectName(u"copyArraysToNumpyButton") - icon92 = QIcon() - icon92.addFile(u":/Icons/icons/array.svg", QSize(), QIcon.Normal, QIcon.Off) - self.copyArraysToNumpyButton.setIcon(icon92) + icon91 = QIcon() + icon91.addFile(u":/Icons/icons/array.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.copyArraysToNumpyButton.setIcon(icon91) self.gridLayout_23.addWidget(self.copyArraysToNumpyButton, 0, 1, 1, 1) self.plotArraysButton = QPushButton(self.frame_29) self.plotArraysButton.setObjectName(u"plotArraysButton") self.plotArraysButton.setMinimumSize(QSize(32, 0)) - self.plotArraysButton.setIcon(icon83) + self.plotArraysButton.setIcon(icon82) self.gridLayout_23.addWidget(self.plotArraysButton, 0, 6, 1, 1) self.copyArraysButton = QPushButton(self.frame_29) self.copyArraysButton.setObjectName(u"copyArraysButton") self.copyArraysButton.setMinimumSize(QSize(32, 0)) - self.copyArraysButton.setIcon(icon84) + self.copyArraysButton.setIcon(icon83) self.gridLayout_23.addWidget(self.copyArraysButton, 0, 2, 1, 1) @@ -1421,9 +1413,9 @@ def setupUi(self, mainWindow): self.horizontalLayout_7.addWidget(self.simulationDataSplitter) - icon93 = QIcon() - icon93.addFile(u":/Icons/icons/spmat.svg", QSize(), QIcon.Normal, QIcon.Off) - self.tabWidget_3.addTab(self.compiledArraysTab, icon93, "") + icon92 = QIcon() + icon92.addFile(u":/Icons/icons/spmat.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.tabWidget_3.addTab(self.compiledArraysTab, icon92, "") self.commentsTab = QWidget() self.commentsTab.setObjectName(u"commentsTab") self.verticalLayout_18 = QVBoxLayout(self.commentsTab) @@ -1433,9 +1425,9 @@ def setupUi(self, mainWindow): self.verticalLayout_18.addWidget(self.comments_textEdit) - icon94 = QIcon() - icon94.addFile(u":/Icons/icons/edit.svg", QSize(), QIcon.Normal, QIcon.Off) - self.tabWidget_3.addTab(self.commentsTab, icon94, "") + icon93 = QIcon() + icon93.addFile(u":/Icons/icons/edit.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.tabWidget_3.addTab(self.commentsTab, icon93, "") self.verticalLayout_9.addWidget(self.tabWidget_3) @@ -1497,7 +1489,7 @@ def setupUi(self, mainWindow): self.deleteDriverButton = QPushButton(self.frame_62) self.deleteDriverButton.setObjectName(u"deleteDriverButton") - self.deleteDriverButton.setIcon(icon78) + self.deleteDriverButton.setIcon(icon77) self.horizontalLayout_34.addWidget(self.deleteDriverButton) @@ -1614,37 +1606,37 @@ def setupUi(self, mainWindow): self.results_traspose_checkBox = QCheckBox(self.frame_8) self.results_traspose_checkBox.setObjectName(u"results_traspose_checkBox") - icon95 = QIcon() - icon95.addFile(u":/Icons/icons/transpose.svg", QSize(), QIcon.Normal, QIcon.Off) - self.results_traspose_checkBox.setIcon(icon95) + icon94 = QIcon() + icon94.addFile(u":/Icons/icons/transpose.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.results_traspose_checkBox.setIcon(icon94) self.horizontalLayout_2.addWidget(self.results_traspose_checkBox) self.results_as_cdf_checkBox = QCheckBox(self.frame_8) self.results_as_cdf_checkBox.setObjectName(u"results_as_cdf_checkBox") - icon96 = QIcon() - icon96.addFile(u":/Icons/icons/cdf.svg", QSize(), QIcon.Normal, QIcon.Off) - self.results_as_cdf_checkBox.setIcon(icon96) + icon95 = QIcon() + icon95.addFile(u":/Icons/icons/cdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.results_as_cdf_checkBox.setIcon(icon95) self.horizontalLayout_2.addWidget(self.results_as_cdf_checkBox) self.results_as_abs_checkBox = QCheckBox(self.frame_8) self.results_as_abs_checkBox.setObjectName(u"results_as_abs_checkBox") - icon97 = QIcon() - icon97.addFile(u":/Icons/icons/abs.svg", QSize(), QIcon.Normal, QIcon.Off) - self.results_as_abs_checkBox.setIcon(icon97) + icon96 = QIcon() + icon96.addFile(u":/Icons/icons/abs.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.results_as_abs_checkBox.setIcon(icon96) self.horizontalLayout_2.addWidget(self.results_as_abs_checkBox) self.copy_results_pushButton = QPushButton(self.frame_8) self.copy_results_pushButton.setObjectName(u"copy_results_pushButton") - self.copy_results_pushButton.setIcon(icon84) + self.copy_results_pushButton.setIcon(icon83) self.horizontalLayout_2.addWidget(self.copy_results_pushButton) self.copy_numpy_button = QPushButton(self.frame_8) self.copy_numpy_button.setObjectName(u"copy_numpy_button") - self.copy_numpy_button.setIcon(icon92) + self.copy_numpy_button.setIcon(icon91) self.horizontalLayout_2.addWidget(self.copy_numpy_button) @@ -1656,7 +1648,7 @@ def setupUi(self, mainWindow): self.plot_data_pushButton = QPushButton(self.frame_8) self.plot_data_pushButton.setObjectName(u"plot_data_pushButton") - self.plot_data_pushButton.setIcon(icon83) + self.plot_data_pushButton.setIcon(icon82) self.horizontalLayout_2.addWidget(self.plot_data_pushButton) @@ -1666,7 +1658,7 @@ def setupUi(self, mainWindow): self.verticalLayout_40.addWidget(self.frame_5) - self.tabWidget_4.addTab(self.tab_7, icon92, "") + self.tabWidget_4.addTab(self.tab_7, icon91, "") self.tab_14 = QWidget() self.tab_14.setObjectName(u"tab_14") self.verticalLayout_41 = QVBoxLayout(self.tab_14) @@ -1707,7 +1699,7 @@ def setupUi(self, mainWindow): self.verticalLayout_13.addWidget(self.frame_33) - self.tabWidget.addTab(self.ResultsTab, icon83, "") + self.tabWidget.addTab(self.ResultsTab, icon82, "") self.main_console_tab = QWidget() self.main_console_tab.setObjectName(u"main_console_tab") self.verticalLayout_22 = QVBoxLayout(self.main_console_tab) @@ -1766,9 +1758,9 @@ def setupUi(self, mainWindow): self.runSourceCodeButton = QPushButton(self.frame_55) self.runSourceCodeButton.setObjectName(u"runSourceCodeButton") - icon98 = QIcon() - icon98.addFile(u":/Icons/icons/next.svg", QSize(), QIcon.Normal, QIcon.Off) - self.runSourceCodeButton.setIcon(icon98) + icon97 = QIcon() + icon97.addFile(u":/Icons/icons/next.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.runSourceCodeButton.setIcon(icon97) self.horizontalLayout_3.addWidget(self.runSourceCodeButton) @@ -1803,9 +1795,9 @@ def setupUi(self, mainWindow): self.verticalLayout_33 = QVBoxLayout(self.pythonConsoleTab) self.verticalLayout_33.setObjectName(u"verticalLayout_33") self.verticalLayout_33.setContentsMargins(0, 0, 0, 0) - icon99 = QIcon() - icon99.addFile(u":/Icons/icons/console.svg", QSize(), QIcon.Normal, QIcon.Off) - self.tabWidget_2.addTab(self.pythonConsoleTab, icon99, "") + icon98 = QIcon() + icon98.addFile(u":/Icons/icons/console.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) + self.tabWidget_2.addTab(self.pythonConsoleTab, icon98, "") self.sourceCodeTab = QWidget() self.sourceCodeTab.setObjectName(u"sourceCodeTab") self.verticalLayout_39 = QVBoxLayout(self.sourceCodeTab) @@ -1829,7 +1821,7 @@ def setupUi(self, mainWindow): self.verticalLayout_22.addWidget(self.frame_10) - self.tabWidget.addTab(self.main_console_tab, icon99, "") + self.tabWidget.addTab(self.main_console_tab, icon98, "") self.SettingsTab = QWidget() self.SettingsTab.setObjectName(u"SettingsTab") self.gridLayout_8 = QGridLayout(self.SettingsTab) @@ -1884,7 +1876,7 @@ def setupUi(self, mainWindow): self.line_5.setPalette(palette8) self.line_5.setFrameShadow(QFrame.Plain) self.line_5.setLineWidth(4) - self.line_5.setFrameShape(QFrame.HLine) + self.line_5.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_12.addWidget(self.line_5) @@ -2010,7 +2002,7 @@ def setupUi(self, mainWindow): self.line_14.setPalette(palette10) self.line_14.setFrameShadow(QFrame.Plain) self.line_14.setLineWidth(4) - self.line_14.setFrameShape(QFrame.HLine) + self.line_14.setFrameShape(QFrame.Shape.HLine) self.gridLayout_24.addWidget(self.line_14, 1, 0, 1, 4) @@ -2020,37 +2012,40 @@ def setupUi(self, mainWindow): self.frame_19.setFrameShadow(QFrame.Raised) self.gridLayout_22 = QGridLayout(self.frame_19) self.gridLayout_22.setObjectName(u"gridLayout_22") - self.auto_precision_checkBox = QCheckBox(self.frame_19) - self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") + self.label_5 = QLabel(self.frame_19) + self.label_5.setObjectName(u"label_5") - self.gridLayout_22.addWidget(self.auto_precision_checkBox, 6, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_5, 8, 0, 1, 1) - self.helm_retry_checkBox = QCheckBox(self.frame_19) - self.helm_retry_checkBox.setObjectName(u"helm_retry_checkBox") - self.helm_retry_checkBox.setChecked(True) + self.label_6 = QLabel(self.frame_19) + self.label_6.setObjectName(u"label_6") - self.gridLayout_22.addWidget(self.helm_retry_checkBox, 3, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_6, 10, 0, 1, 1) self.verbositySpinBox = QSpinBox(self.frame_19) self.verbositySpinBox.setObjectName(u"verbositySpinBox") self.verbositySpinBox.setMaximum(2) - self.gridLayout_22.addWidget(self.verbositySpinBox, 13, 1, 1, 1) + self.gridLayout_22.addWidget(self.verbositySpinBox, 11, 1, 1, 1) - self.label_5 = QLabel(self.frame_19) - self.label_5.setObjectName(u"label_5") + self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.gridLayout_22.addWidget(self.label_5, 10, 0, 1, 1) + self.gridLayout_22.addItem(self.verticalSpacer_10, 13, 0, 1, 1) - self.label_86 = QLabel(self.frame_19) - self.label_86.setObjectName(u"label_86") + self.muSpinBox = QDoubleSpinBox(self.frame_19) + self.muSpinBox.setObjectName(u"muSpinBox") + self.muSpinBox.setDecimals(4) + self.muSpinBox.setMinimum(0.000100000000000) + self.muSpinBox.setMaximum(1.000000000000000) + self.muSpinBox.setSingleStep(0.100000000000000) + self.muSpinBox.setValue(1.000000000000000) - self.gridLayout_22.addWidget(self.label_86, 2, 0, 1, 2) + self.gridLayout_22.addWidget(self.muSpinBox, 9, 1, 1, 1) - self.label_22 = QLabel(self.frame_19) - self.label_22.setObjectName(u"label_22") + self.label_23 = QLabel(self.frame_19) + self.label_23.setObjectName(u"label_23") - self.gridLayout_22.addWidget(self.label_22, 14, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_23, 11, 0, 1, 1) self.tolerance_spinBox = QSpinBox(self.frame_19) self.tolerance_spinBox.setObjectName(u"tolerance_spinBox") @@ -2058,26 +2053,12 @@ def setupUi(self, mainWindow): self.tolerance_spinBox.setMaximum(15) self.tolerance_spinBox.setValue(4) - self.gridLayout_22.addWidget(self.tolerance_spinBox, 10, 1, 1, 1) - - self.distributed_slack_checkBox = QCheckBox(self.frame_19) - self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") - - self.gridLayout_22.addWidget(self.distributed_slack_checkBox, 4, 0, 1, 2) + self.gridLayout_22.addWidget(self.tolerance_spinBox, 8, 1, 1, 1) - self.label_2 = QLabel(self.frame_19) - self.label_2.setObjectName(u"label_2") - - self.gridLayout_22.addWidget(self.label_2, 0, 0, 1, 1) - - self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.gridLayout_22.addItem(self.verticalSpacer_10, 15, 0, 1, 1) - - self.label_11 = QLabel(self.frame_19) - self.label_11.setObjectName(u"label_11") + self.solver_comboBox = QComboBox(self.frame_19) + self.solver_comboBox.setObjectName(u"solver_comboBox") - self.gridLayout_22.addWidget(self.label_11, 11, 0, 1, 1) + self.gridLayout_22.addWidget(self.solver_comboBox, 1, 0, 1, 2) self.max_iterations_spinBox = QSpinBox(self.frame_19) self.max_iterations_spinBox.setObjectName(u"max_iterations_spinBox") @@ -2085,53 +2066,28 @@ def setupUi(self, mainWindow): self.max_iterations_spinBox.setMaximum(1000) self.max_iterations_spinBox.setValue(40) - self.gridLayout_22.addWidget(self.max_iterations_spinBox, 12, 1, 1, 1) - - self.label_6 = QLabel(self.frame_19) - self.label_6.setObjectName(u"label_6") - - self.gridLayout_22.addWidget(self.label_6, 12, 0, 1, 1) + self.gridLayout_22.addWidget(self.max_iterations_spinBox, 10, 1, 1, 1) - self.muSpinBox = QDoubleSpinBox(self.frame_19) - self.muSpinBox.setObjectName(u"muSpinBox") - self.muSpinBox.setDecimals(4) - self.muSpinBox.setMinimum(0.000100000000000) - self.muSpinBox.setMaximum(1.000000000000000) - self.muSpinBox.setSingleStep(0.100000000000000) - self.muSpinBox.setValue(1.000000000000000) - - self.gridLayout_22.addWidget(self.muSpinBox, 11, 1, 1, 1) - - self.use_voltage_guess_checkBox = QCheckBox(self.frame_19) - self.use_voltage_guess_checkBox.setObjectName(u"use_voltage_guess_checkBox") - - self.gridLayout_22.addWidget(self.use_voltage_guess_checkBox, 7, 0, 1, 2) - - self.label_87 = QLabel(self.frame_19) - self.label_87.setObjectName(u"label_87") - - self.gridLayout_22.addWidget(self.label_87, 9, 0, 1, 2) - - self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_19) - self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") - self.ignore_single_node_islands_checkBox.setChecked(True) + self.label_22 = QLabel(self.frame_19) + self.label_22.setObjectName(u"label_22") - self.gridLayout_22.addWidget(self.ignore_single_node_islands_checkBox, 5, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_22, 12, 0, 1, 2) - self.solver_comboBox = QComboBox(self.frame_19) - self.solver_comboBox.setObjectName(u"solver_comboBox") + self.label_2 = QLabel(self.frame_19) + self.label_2.setObjectName(u"label_2") - self.gridLayout_22.addWidget(self.solver_comboBox, 1, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_2, 0, 0, 1, 1) - self.label_23 = QLabel(self.frame_19) - self.label_23.setObjectName(u"label_23") + self.label_11 = QLabel(self.frame_19) + self.label_11.setObjectName(u"label_11") - self.gridLayout_22.addWidget(self.label_23, 13, 0, 1, 1) + self.gridLayout_22.addWidget(self.label_11, 9, 0, 1, 1) - self.addPowerFlowReportCheckBox = QCheckBox(self.frame_19) - self.addPowerFlowReportCheckBox.setObjectName(u"addPowerFlowReportCheckBox") + self.helm_retry_checkBox = QCheckBox(self.frame_19) + self.helm_retry_checkBox.setObjectName(u"helm_retry_checkBox") + self.helm_retry_checkBox.setChecked(True) - self.gridLayout_22.addWidget(self.addPowerFlowReportCheckBox, 8, 0, 1, 1) + self.gridLayout_22.addWidget(self.helm_retry_checkBox, 2, 0, 1, 2) self.gridLayout_24.addWidget(self.frame_19, 2, 0, 1, 3) @@ -2147,30 +2103,51 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.label_48) - self.reactive_power_control_mode_comboBox = QComboBox(self.frame_36) - self.reactive_power_control_mode_comboBox.setObjectName(u"reactive_power_control_mode_comboBox") + self.use_voltage_guess_checkBox = QCheckBox(self.frame_36) + self.use_voltage_guess_checkBox.setObjectName(u"use_voltage_guess_checkBox") + + self.verticalLayout_4.addWidget(self.use_voltage_guess_checkBox) + + self.auto_precision_checkBox = QCheckBox(self.frame_36) + self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") + + self.verticalLayout_4.addWidget(self.auto_precision_checkBox) + + self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_36) + self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") + self.ignore_single_node_islands_checkBox.setChecked(True) - self.verticalLayout_4.addWidget(self.reactive_power_control_mode_comboBox) + self.verticalLayout_4.addWidget(self.ignore_single_node_islands_checkBox) - self.label_641 = QLabel(self.frame_36) - self.label_641.setObjectName(u"label_641") + self.distributed_slack_checkBox = QCheckBox(self.frame_36) + self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") - self.verticalLayout_4.addWidget(self.label_641) + self.verticalLayout_4.addWidget(self.distributed_slack_checkBox) self.label_50 = QLabel(self.frame_36) self.label_50.setObjectName(u"label_50") self.verticalLayout_4.addWidget(self.label_50) - self.taps_control_mode_comboBox = QComboBox(self.frame_36) - self.taps_control_mode_comboBox.setObjectName(u"taps_control_mode_comboBox") + self.control_q_checkBox = QCheckBox(self.frame_36) + self.control_q_checkBox.setObjectName(u"control_q_checkBox") + + self.verticalLayout_4.addWidget(self.control_q_checkBox) + + self.control_tap_modules_checkBox = QCheckBox(self.frame_36) + self.control_tap_modules_checkBox.setObjectName(u"control_tap_modules_checkBox") + + self.verticalLayout_4.addWidget(self.control_tap_modules_checkBox) + + self.control_tap_phase_checkBox = QCheckBox(self.frame_36) + self.control_tap_phase_checkBox.setObjectName(u"control_tap_phase_checkBox") - self.verticalLayout_4.addWidget(self.taps_control_mode_comboBox) + self.verticalLayout_4.addWidget(self.control_tap_phase_checkBox) - self.label_65 = QLabel(self.frame_36) - self.label_65.setObjectName(u"label_65") + self.label_54 = QLabel(self.frame_36) + self.label_54.setObjectName(u"label_54") - self.verticalLayout_4.addWidget(self.label_65) + self.verticalLayout_4.addWidget(self.label_54) self.temperature_correction_checkBox = QCheckBox(self.frame_36) self.temperature_correction_checkBox.setObjectName(u"temperature_correction_checkBox") @@ -2182,10 +2159,15 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.apply_impedance_tolerances_checkBox) - self.override_branch_controls_checkBox = QCheckBox(self.frame_36) - self.override_branch_controls_checkBox.setObjectName(u"override_branch_controls_checkBox") + self.label_56 = QLabel(self.frame_36) + self.label_56.setObjectName(u"label_56") - self.verticalLayout_4.addWidget(self.override_branch_controls_checkBox) + self.verticalLayout_4.addWidget(self.label_56) + + self.addPowerFlowReportCheckBox = QCheckBox(self.frame_36) + self.addPowerFlowReportCheckBox.setObjectName(u"addPowerFlowReportCheckBox") + + self.verticalLayout_4.addWidget(self.addPowerFlowReportCheckBox) self.verticalSpacer_14 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) @@ -2228,7 +2210,7 @@ def setupUi(self, mainWindow): self.line_22.setPalette(palette12) self.line_22.setFrameShadow(QFrame.Plain) self.line_22.setLineWidth(4) - self.line_22.setFrameShape(QFrame.HLine) + self.line_22.setFrameShape(QFrame.Shape.HLine) self.gridLayout_24.addWidget(self.line_22, 1, 4, 1, 2) @@ -2356,7 +2338,7 @@ def setupUi(self, mainWindow): self.line_17.setPalette(palette13) self.line_17.setFrameShadow(QFrame.Plain) self.line_17.setLineWidth(4) - self.line_17.setFrameShape(QFrame.HLine) + self.line_17.setFrameShape(QFrame.Shape.HLine) self.gridLayout_2.addWidget(self.line_17, 1, 0, 1, 3) @@ -2650,7 +2632,7 @@ def setupUi(self, mainWindow): self.line_16.setPalette(palette16) self.line_16.setFrameShadow(QFrame.Plain) self.line_16.setLineWidth(4) - self.line_16.setFrameShape(QFrame.HLine) + self.line_16.setFrameShape(QFrame.Shape.HLine) self.gridLayout_10.addWidget(self.line_16, 2, 0, 1, 5) @@ -2734,7 +2716,7 @@ def setupUi(self, mainWindow): self.line_27.setPalette(palette17) self.line_27.setFrameShadow(QFrame.Plain) self.line_27.setLineWidth(4) - self.line_27.setFrameShape(QFrame.HLine) + self.line_27.setFrameShape(QFrame.Shape.HLine) self.gridLayout_13.addWidget(self.line_27, 1, 0, 1, 4) @@ -2950,7 +2932,7 @@ def setupUi(self, mainWindow): self.line_32.setPalette(palette20) self.line_32.setFrameShadow(QFrame.Plain) self.line_32.setLineWidth(4) - self.line_32.setFrameShape(QFrame.HLine) + self.line_32.setFrameShape(QFrame.Shape.HLine) self.gridLayout_16.addWidget(self.line_32, 1, 0, 1, 3) @@ -3022,7 +3004,7 @@ def setupUi(self, mainWindow): self.line_26.setPalette(palette21) self.line_26.setFrameShadow(QFrame.Plain) self.line_26.setLineWidth(4) - self.line_26.setFrameShape(QFrame.HLine) + self.line_26.setFrameShape(QFrame.Shape.HLine) self.gridLayout_4.addWidget(self.line_26, 1, 0, 1, 2) @@ -3089,7 +3071,7 @@ def setupUi(self, mainWindow): self.horizontalLayout_12.addWidget(self.frame_40) - self.settings_tabWidget.addTab(self.transfer_tab, icon79, "") + self.settings_tabWidget.addTab(self.transfer_tab, icon78, "") self.contingencies_tab = QWidget() self.contingencies_tab.setObjectName(u"contingencies_tab") self.horizontalLayout_42 = QHBoxLayout(self.contingencies_tab) @@ -3270,7 +3252,7 @@ def setupUi(self, mainWindow): self.line_25.setPalette(palette24) self.line_25.setFrameShadow(QFrame.Plain) self.line_25.setLineWidth(4) - self.line_25.setFrameShape(QFrame.HLine) + self.line_25.setFrameShape(QFrame.Shape.HLine) self.gridLayout_28.addWidget(self.line_25, 2, 0, 1, 4) @@ -3324,7 +3306,7 @@ def setupUi(self, mainWindow): self.line_29.setPalette(palette26) self.line_29.setFrameShadow(QFrame.Plain) self.line_29.setLineWidth(4) - self.line_29.setFrameShape(QFrame.HLine) + self.line_29.setFrameShape(QFrame.Shape.HLine) self.gridLayout_21.addWidget(self.line_29, 9, 0, 1, 3) @@ -3364,7 +3346,7 @@ def setupUi(self, mainWindow): self.line_24.setPalette(palette27) self.line_24.setFrameShadow(QFrame.Plain) self.line_24.setLineWidth(4) - self.line_24.setFrameShape(QFrame.HLine) + self.line_24.setFrameShape(QFrame.Shape.HLine) self.gridLayout_21.addWidget(self.line_24, 14, 0, 1, 2) @@ -3377,7 +3359,7 @@ def setupUi(self, mainWindow): self.line_30.setPalette(palette28) self.line_30.setFrameShadow(QFrame.Plain) self.line_30.setLineWidth(4) - self.line_30.setFrameShape(QFrame.HLine) + self.line_30.setFrameShape(QFrame.Shape.HLine) self.gridLayout_21.addWidget(self.line_30, 19, 0, 1, 2) @@ -3550,7 +3532,7 @@ def setupUi(self, mainWindow): self.line_4.setPalette(palette33) self.line_4.setFrameShadow(QFrame.Plain) self.line_4.setLineWidth(4) - self.line_4.setFrameShape(QFrame.HLine) + self.line_4.setFrameShape(QFrame.Shape.HLine) self.gridLayout_6.addWidget(self.line_4, 1, 0, 1, 3) @@ -3568,7 +3550,7 @@ def setupUi(self, mainWindow): self.line_10.setPalette(palette34) self.line_10.setFrameShadow(QFrame.Plain) self.line_10.setLineWidth(4) - self.line_10.setFrameShape(QFrame.HLine) + self.line_10.setFrameShape(QFrame.Shape.HLine) self.gridLayout_6.addWidget(self.line_10, 9, 0, 1, 3) @@ -3673,7 +3655,7 @@ def setupUi(self, mainWindow): self.line_21.setPalette(palette36) self.line_21.setFrameShadow(QFrame.Plain) self.line_21.setLineWidth(4) - self.line_21.setFrameShape(QFrame.HLine) + self.line_21.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_36.addWidget(self.line_21) @@ -3705,7 +3687,7 @@ def setupUi(self, mainWindow): self.line_13.setPalette(palette37) self.line_13.setFrameShadow(QFrame.Plain) self.line_13.setLineWidth(4) - self.line_13.setFrameShape(QFrame.HLine) + self.line_13.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_36.addWidget(self.line_13) @@ -3786,7 +3768,7 @@ def setupUi(self, mainWindow): self.line_8.setPalette(palette39) self.line_8.setFrameShadow(QFrame.Plain) self.line_8.setLineWidth(4) - self.line_8.setFrameShape(QFrame.HLine) + self.line_8.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_25.addWidget(self.line_8) @@ -3875,7 +3857,7 @@ def setupUi(self, mainWindow): self.line_20.setPalette(palette41) self.line_20.setFrameShadow(QFrame.Plain) self.line_20.setLineWidth(4) - self.line_20.setFrameShape(QFrame.HLine) + self.line_20.setFrameShape(QFrame.Shape.HLine) self.verticalLayout_21.addWidget(self.line_20) @@ -3960,7 +3942,7 @@ def setupUi(self, mainWindow): self.line_28.setPalette(palette43) self.line_28.setFrameShadow(QFrame.Plain) self.line_28.setLineWidth(4) - self.line_28.setFrameShape(QFrame.HLine) + self.line_28.setFrameShape(QFrame.Shape.HLine) self.gridLayout_11.addWidget(self.line_28, 1, 0, 1, 2) @@ -4055,7 +4037,7 @@ def setupUi(self, mainWindow): self.line_31.setPalette(palette45) self.line_31.setFrameShadow(QFrame.Plain) self.line_31.setLineWidth(4) - self.line_31.setFrameShape(QFrame.HLine) + self.line_31.setFrameShape(QFrame.Shape.HLine) self.gridLayout_5.addWidget(self.line_31, 1, 0, 1, 3) @@ -4184,7 +4166,7 @@ def setupUi(self, mainWindow): self.toolBar.setIconSize(QSize(26, 26)) self.toolBar.setToolButtonStyle(Qt.ToolButtonIconOnly) self.toolBar.setFloatable(False) - mainWindow.addToolBar(Qt.TopToolBarArea, self.toolBar) + mainWindow.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar) self.menuBar.addAction(self.menuProject.menuAction()) self.menuBar.addAction(self.menuActions.menuAction()) @@ -4204,11 +4186,9 @@ def setupUi(self, mainWindow): self.menuExport.addAction(self.actionExport_contingencies) self.menuExport.addAction(self.actionExport_all_results) self.menuExport.addAction(self.actionExport_circuit_differential) - self.menuExport.addAction(self.actionExportCatalogue) self.menuImport.addAction(self.actionAdd_circuit) self.menuImport.addAction(self.actionImport_bus_coordinates) self.menuImport.addAction(self.actionImport_contingencies) - self.menuImport.addAction(self.actionAdd_custom_catalogue) self.menuAbout.addAction(self.actionOnline_documentation) self.menuAbout.addAction(self.actionReport_a_bug) self.menuAbout.addAction(self.actionAbout) @@ -4334,7 +4314,7 @@ def setupUi(self, mainWindow): self.tabWidget_5.setCurrentIndex(0) self.tabWidget_4.setCurrentIndex(0) self.tabWidget_2.setCurrentIndex(0) - self.settings_tabWidget.setCurrentIndex(7) + self.settings_tabWidget.setCurrentIndex(0) QMetaObject.connectSlotsByName(mainWindow) @@ -4662,9 +4642,6 @@ def retranslateUi(self, mainWindow): self.actionRecord_video.setToolTip(QCoreApplication.translate("mainWindow", u"Record video of the schematic", None)) #endif // QT_CONFIG(tooltip) self.actionExport_circuit_differential.setText(QCoreApplication.translate("mainWindow", u"Circuit differential", None)) - self.actionAdd_custom_catalogue.setText(QCoreApplication.translate("mainWindow", u"Catalogue", None)) - self.actionAdd_custom_catalogue.setIconText(QCoreApplication.translate("mainWindow", u"Catalogue", None)) - self.actionExportCatalogue.setText(QCoreApplication.translate("mainWindow", u"Catalogue", None)) self.progress_label.setText("") #if QT_CONFIG(tooltip) self.cancelButton.setToolTip(QCoreApplication.translate("mainWindow", u"Cancel process", None)) @@ -4952,58 +4929,58 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.label_63.setText("") self.label_17.setText(QCoreApplication.translate("mainWindow", u"Power flow", None)) + self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) + self.label_6.setText(QCoreApplication.translate("mainWindow", u"Max. iterations", None)) #if QT_CONFIG(tooltip) - self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) -#endif // QT_CONFIG(tooltip) - self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) -#if QT_CONFIG(tooltip) - self.helm_retry_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If the selected method does not converge, try a list of methods that may help

", None)) + self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) #endif // QT_CONFIG(tooltip) - self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) #if QT_CONFIG(tooltip) - self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) + self.muSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor that multiplies each increment solution.

In practice this is used to slow down troublesome solutions.

", None)) #endif // QT_CONFIG(tooltip) - self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) - self.label_86.setText("") - self.label_22.setText("") + self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) #if QT_CONFIG(tooltip) self.tolerance_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Error tolerance of the method

", None)) #endif // QT_CONFIG(tooltip) self.tolerance_spinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) #if QT_CONFIG(tooltip) - self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) + self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) #endif // QT_CONFIG(tooltip) - self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) + self.label_22.setText("") self.label_2.setText(QCoreApplication.translate("mainWindow", u"Solver", None)) self.label_11.setText(QCoreApplication.translate("mainWindow", u"Trust radius", None)) #if QT_CONFIG(tooltip) - self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) + self.helm_retry_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If the selected method does not converge, try a list of methods that may help

", None)) #endif // QT_CONFIG(tooltip) - self.label_6.setText(QCoreApplication.translate("mainWindow", u"Max. iterations", None)) + self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) + self.label_48.setText("") + self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) #if QT_CONFIG(tooltip) - self.muSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor that multiplies each increment solution.

In practice this is used to slow down troublesome solutions.

", None)) + self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) #endif // QT_CONFIG(tooltip) - self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) - self.label_87.setText("") + self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) #if QT_CONFIG(tooltip) self.ignore_single_node_islands_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the islands of a single node are ignored.", None)) #endif // QT_CONFIG(tooltip) self.ignore_single_node_islands_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ignore single node islands", None)) - self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) #if QT_CONFIG(tooltip) - self.addPowerFlowReportCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Add a results report in the logs", None)) + self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) #endif // QT_CONFIG(tooltip) - self.addPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None)) - self.label_48.setText(QCoreApplication.translate("mainWindow", u"Reactive power control mode", None)) - self.label_641.setText("") - self.label_50.setText(QCoreApplication.translate("mainWindow", u"Transformer taps control mode", None)) - self.label_65.setText("") + self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) + self.label_50.setText("") + self.control_q_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control generators Q", None)) + self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch taps", None)) + self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch phase", None)) + self.label_54.setText("") #if QT_CONFIG(tooltip) self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) #endif // QT_CONFIG(tooltip) self.temperature_correction_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply temperature correction", None)) self.apply_impedance_tolerances_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply impedance tolerances", None)) - self.override_branch_controls_checkBox.setText(QCoreApplication.translate("mainWindow", u"Override branch controls", None)) + self.label_56.setText("") +#if QT_CONFIG(tooltip) + self.addPowerFlowReportCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Add a results report in the logs", None)) +#endif // QT_CONFIG(tooltip) + self.addPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None)) self.label_70.setText("") self.label_71.setText(QCoreApplication.translate("mainWindow", u"PTDF / LODF", None)) self.ptdf_correct_nonsense_values_checkBox.setText(QCoreApplication.translate("mainWindow", u"Correct nonsense values", None)) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index 8871182c4..06d3f8ef7 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -3898,13 +3898,6 @@ QProgressBar::chunk{ - - - - Override branch controls - - - diff --git a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py index 5c28a8142..b685a49d8 100644 --- a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py +++ b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py @@ -224,11 +224,11 @@ def get_config_structure(self) -> Dict[str, Dict[str, any]]: "acceleration": self.ui.muSpinBox, "max_iterations": self.ui.max_iterations_spinBox, "verbosity": self.ui.verbositySpinBox, - "reactive_power_control_mode": self.ui.reactive_power_control_mode_comboBox, - "transformer_taps_control_mode": self.ui.taps_control_mode_comboBox, + "reactive_power_control_mode": self.ui.control_q_checkBox, + "transformer_taps_module_control": self.ui.control_tap_modules_checkBox, + "transformer_taps_phase_control": self.ui.control_tap_phase_checkBox, "apply_temperature_correction": self.ui.temperature_correction_checkBox, "apply_impedance_tolerances": self.ui.apply_impedance_tolerances_checkBox, - "override_branch_controls": self.ui.override_branch_controls_checkBox, "add_pf_report": self.ui.addPowerFlowReportCheckBox, }, "optimal_power_flow": { diff --git a/src/GridCal/Gui/Main/SubClasses/simulations.py b/src/GridCal/Gui/Main/SubClasses/simulations.py index 2d8f6f205..981b5a689 100644 --- a/src/GridCal/Gui/Main/SubClasses/simulations.py +++ b/src/GridCal/Gui/Main/SubClasses/simulations.py @@ -41,8 +41,7 @@ from GridCalEngine.IO.gridcal.remote import RemoteInstruction from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.types import DRIVER_OBJECTS -from GridCalEngine.enumerations import (DeviceType, AvailableTransferMode, SolverType, - ReactivePowerControlMode, TapsControlMode, MIPSolvers, TimeGrouping, +from GridCalEngine.enumerations import (DeviceType, AvailableTransferMode, SolverType, MIPSolvers, TimeGrouping, ZonalGrouping, ContingencyMethod, InvestmentEvaluationMethod, EngineType, BranchImpedanceMode, ResultTypes, SimulationTypes, NodalCapacityMethod, ContingencyFilteringMethods, InvestmentsEvaluationObjectives) @@ -77,20 +76,6 @@ def __init__(self, parent=None): self.ui.solver_comboBox.setModel(gf.get_list_model(list(self.solvers_dict.keys()))) self.ui.solver_comboBox.setCurrentIndex(0) - # reactive power controls - self.q_control_modes_dict = OrderedDict() - self.q_control_modes_dict['No control'] = ReactivePowerControlMode.NoControl - self.q_control_modes_dict['Direct'] = ReactivePowerControlMode.Direct - lst = list(self.q_control_modes_dict.keys()) - self.ui.reactive_power_control_mode_comboBox.setModel(gf.get_list_model(lst)) - - # taps controls (transformer voltage regulator) - self.taps_control_modes_dict = OrderedDict() - self.taps_control_modes_dict['No control'] = TapsControlMode.NoControl - self.taps_control_modes_dict['Direct'] = TapsControlMode.Direct - lst = list(self.taps_control_modes_dict.keys()) - self.ui.taps_control_mode_comboBox.setModel(gf.get_list_model(lst)) - # transfer modes self.transfer_modes_dict = OrderedDict() self.transfer_modes_dict['Area generation'] = AvailableTransferMode.Generation @@ -636,9 +621,11 @@ def get_selected_power_flow_options(self): """ solver_type = self.solvers_dict[self.ui.solver_comboBox.currentText()] - q_control_mode = self.q_control_modes_dict[self.ui.reactive_power_control_mode_comboBox.currentText()] + control_q = self.ui.control_q_checkBox.isChecked() - taps_control_mode = self.taps_control_modes_dict[self.ui.taps_control_mode_comboBox.currentText()] + control_taps_modules = self.ui.control_tap_modules_checkBox() + + control_taps_phase = self.ui.control_tap_phase_checkBox verbose = self.ui.verbositySpinBox.value() @@ -669,8 +656,6 @@ def get_selected_power_flow_options(self): use_stored_guess = self.ui.use_voltage_guess_checkBox.isChecked() - override_branch_controls = self.ui.override_branch_controls_checkBox.isChecked() - generate_report = self.ui.addPowerFlowReportCheckBox.isChecked() ops = sim.PowerFlowOptions(solver_type=solver_type, @@ -679,15 +664,15 @@ def get_selected_power_flow_options(self): tolerance=tolerance, max_iter=max_iter, max_outer_loop_iter=max_outer_iter, - control_q=q_control_mode, - control_taps=taps_control_mode, + control_q=control_q, + control_taps_phase=control_taps_phase, + control_taps_modules=control_taps_modules, apply_temperature_correction=temp_correction, branch_impedance_tolerance_mode=branch_impedance_tolerance_mode, distributed_slack=distributed_slack, ignore_single_node_islands=ignore_single_node_islands, trust_radius=mu, use_stored_guess=use_stored_guess, - override_branch_controls=override_branch_controls, generate_report=generate_report) return ops diff --git a/src/GridCal/Gui/Main/icons_rc.py b/src/GridCal/Gui/Main/icons_rc.py index a3b9ef3f9..9bc1ff4f6 100644 --- a/src/GridCal/Gui/Main/icons_rc.py +++ b/src/GridCal/Gui/Main/icons_rc.py @@ -1,1772 +1,1793 @@ # Resource object code (Python 3) # Created by: object code -# Created by: The Resource Compiler for Qt version 6.6.3 +# Created by: The Resource Compiler for Qt version 6.7.2 # WARNING! All changes made in this file will be lost! from PySide6 import QtCore qt_resource_data = b"\ -\x00\x00\x11\x82\ +\x00\x00\x11u\ \x00\ -\x00|\xeax\xda\xed]Yo\xe3\xd8\x95~\x0f\x90\xff\ -\xc0Q=\xa4\x0a#Rw_Tv\x05\x98n\xa4&\ -\xc0\x0c\x12$i\xe4q@K\x94\xcdiY\xd2P\xf4\ -\xd6\xbf~\xbeCm\x5c%Yv\x95\xe3\x82\xaa\xd1\xb0\ -y\xf7{\x96\xef,\xbc\xbc\xbe\xf8\xe3\xe3\xed4\xb8O\ -\xb2e:\x9f]\xf6x\xc4zA2\x1b\xcd\xc7\xe9\xec\ -\xfa\xb2\xf7\xcb?\xfe\x14\xba^\xb0\xcc\xe3\xd98\x9e\xce\ -g\xc9eo6\xef\xfd\xf1\xcb\xef\x7fw\xf1oa\x18\ -\xfc\x94%q\x9e\x8c\x83\x874\xbf\x09\xfe<\xfbu9\ -\x8a\x17I\xf0\xf1&\xcf\x17\xc3\xc1\xe0\xe1\xe1!J\xd7\ -\x85\xd1<\xbb\x1e|\x0a\xc2\x10]\xd1yy\x7f\xfd\xfb\ -\xdf\x05A\x80\xb9g\xcb\xe1xt\xd9[\xf7Y\xdce\ -\xd3\xa2\xedx4H\xa6\xc9m2\xcb\x97\x03\x1e\xf1A\ -\xaf\xd4~\xb4k?\xa2\x15\xa4\xf7\xc9h~{;\x9f\ --\x8b\xae\xb3\xe5\x87r\xebl<\xd96\xa7%=\xc8\ -\xa2\x15\xf7\xde\x0f\x98\x18\x08\x11\xa2E\xb8|\x9a\xe5\xf1\ -cX\xeb\x8bu\xb6\xf5\x15\x8c\xb1\x01\xeaJM\x8fl\ -6|\x9c\x82$\x9d\xeb)j+\x0b\x00#\x16\xf8\x7f\ -\xdbcS\x10-\xe7w\xd9(\x99\xa0k\x12\xcd\x92|\ -\xf0\xf3?~\xdeV\x86,\x1a\xe7\xe3\xf28\x1b>T\ -f\xae0g\x16\xdf&\xcbEy\x5c\xcc\xb3<\x9c\xa4\xd3d\xd5~\ -p3\xbfM\x06\xcbx\x96\xa7\x83\x9f\xe7\xa3;\x92\xb3\ -\xf9r\xf05\xcd\xff\xf3\xeej\xb0\x1em\xb0\xccF\xdb\ -\xdf\xbf\xde\xa5\x83\xff\x8e\xd3\xd9\xa02\xd5b\xd61\xd5\ -\xe3x\x01\x9ey\xd6^\xfb\xb4\xa9\xfdB\xd5\x17\xe3d\ -\xb2,\xda\xad(F\x8fjU\x85JHD\x12g_\ -\xb3x\x9cb\x91\xebf\xa5!G\xf3\xe94\x19\x81\x1f\ -\xf1\xf4!~Z\xf6\xb6-\x0aY\x1a\xded\x09\xc4\xff\ -Cu\x14\xc9\x8c\xdd5\xa49\x1b\xf5\xbc4\x10\x07\xcb\ -xd\xef(A\xbf\xedB\x9f\ -\x8d|@m>6\xe3\x13\xfeiC\xa4b)C\xec\ -B\x08\x83\xb8\x85\xd7\x09Z\xd0\xae\x9d\xa2\x9bR(c\ -\x92M\x814\xf9p+\x87\xe3\x18X\x9fe\xf1S\x85\ -K\xad\x91 \xd8\xb1(\x1b\xe6\xa0\x9c\xcd\x99A\xa7H\ -\xd5\x01\xb4\xa3e\xe9_\x1c\x8fF5\xaa\xedB\xb6\x19\ -\x96\x9e\xcf\xb3\x10\xa8~\x1f\xe7wYR\x8b\xd1\xd7\xc6\ -\x1f\x93*X\x8d\xb0F~\x02\xc4\x00|\x85YVJ\ -\xf69\x83\xbcskt0\x0a\xa0\x15\x81\x88\xb8G\x14\ -\xed\xfa\xa1\x825\xb2\x5c\xba\xa0\xa8\xe7J\x15EN1\ -\x14)\xd8|-\x85\xee\x87\xb0\x85\x96\xeb@F\x92;\ -\xe6l_k\x08;b\xd5\xc0F\x18E\xdaU\x89\x81\ -&\xa0\x8d y\xd7}\xf4\xe1x2\xd08o1*\ -4QKO]\x10z+\xc5\x8b\x22i\x11Gb9\ -p\x13\xb4\xf1\xc5DN`b\xc6\x1cT\xa9/5d\ -K\x1a\x89N\x12\x8a+\x0d\x95\x90:S\x1f\xc9=\x97\ -\xb2\xe8\xa3\x0c\xfa\x00B\x1cZ\x84\xc2\xd1\xaf\xd6\x04.\ -b\xd2\xe3\x97U\x91\xf7\x1c\x9d4\x83\x1fc\x8aN\xd8\ -\x0bzI\xe1\x8c\xe6}\x81q\xad\xb6\x98\x08-`\xbe\ -\xa9\xc0b\xb5\x222FZ\xa3\x8a\x1e\xc6\x04:R\xd6\ -\x0al\x18\x96@x+\x05\x1b\ -\xb5,\x08{\x80\xfemj\xc9\xb9G@`N\x0a\xd5\ -W\xe0B\x013\x97\xb6*\x9e\x12l\x85\xc3*}U\ -\xa8\x88\xceJ\xa3\xf1\x97\x8b\x1c\xbb\x98\x95c\xe8Mp\ -\x95\xcd\x89\xc04g=\xee.\xba\xa0\xbb\xae\xe52\xdb\ -\x16\xd1\xb9\x8cC,\xbc\x8f\xb34\x9e\xe5\x07\xd9\x9ag\ -I>\xba\xa9\x94\xad9\xf8\x87_\xfe\xf6\xcf\xe0\xeb<\ -\xbfIG\xc1\x7f\xfd\xe1s\xb8\x89\x01\xc3U\xc7E2\ -J'\xe9(\xce\xd3\xf9\xac\xde\xf6\x19\xdclp\xb0\xf7\ -e\xfd\xc2\xffbP\x10\xea\x0b~\x82\xdc\xcf\x05\x16\xc5\ -(N\x02XU\xf8,\x11\xf1hQ~\xc1\xfa\x0a\xb0\ -\x12\xea\xdea{s\x8c`o\xf0\xe7\x0c,\xaf\x0d,\ -\xc7\x01\xfb7\x00\x16k\x22\xe3\x84\xb35\x5c\xa1d\xbb\ -\x13\xf06\xdaq\x85\xde\x95\xbc\x08Y\xc2:\xb6\xb4\xac\ -\xa3s%\xef\x00Z\x8e\xe2\xe7s\xa1\xe5\xba\x91r-\ -\xfb\xadm\x09]\xe6\xb90J\xac\x13\xba\x9b\xa7\x10h\ -\x111x\xb7\xb6\x1fJi\x10\x82\x1b\xef?\xf5\xda\x13\ -\xce'!\xc3a!\xdc\xa3\xd5\xedi\xe4mB\xb8\xfa\ ->\xf1\xb4\xec\xf2k\xa2\xe0\xbe\x1d\xd4\xf6\xb0\xde\x05\xe7\ -\xa6\x96\x91l\xdf\x85\x811pR\xea~\x08\x8b\x10q\ -\xcb\xd8\xee\xfd@W*{o2{_:{_B\ -\xfb`J\xfbPR\xbba\x93\x1a\x0b\xeb\xe2\x88J\xd4\ -\xc87\xe2 o\x18\x16Y\xe3\xc8\xe4\xa4\xac\xf6)\x06\ -h\x13\x87U\x13\xd9m\xa9\xec\x93\x92\xd9\xcfLg\xd7\ -\x13\xdaa\x83\xf8\xe7\xa4\xf69\xa9}Njw'\xb5\ -\xbb\xd2\xda-6\xa03\xdd\xdd\x8aA\xdf9\xbb\xdd\x85\ -L\xbb\xf4vG\xd2\xbb\xf1\xb2\xf9e/\x94w6\xcc\ -0\x88\x04\x84\x0e\xec\x85tF\x1c\xa2jk\xaf\x8eW\ -o\xc8\xcb\x9eL\xc7k\xf7\x9d\xb7\xdf\xe2\x08\xe9\x93\x1c\ -!\x08\x1a\x16\xc5y\xe1(\x18\x070\x91\xba\xc3\x11\xda\ -\xf3\x96\xf5\xc3\x95\xe7#\xcfOw~\xf8A\x9f\xc7\xbc\ -\x9a\xcf\xf3\xcc\xcd\xb4,\xb1\xcd\xedx\xf6\x9b\xe9\xda4\ -\xdf\xd8d\xef}\xc7^u(\x0f\xb92\x07<\xa1n\ -'\xaa\xdb\xf5\xaazl\x87^\x8e\x1f`c7@\xb5\ -Q\xfc\xbb\xbf~;\xbfl?\xfb%g\xbf\xe4H\xbf\ -\xa4\xe6\xd7\xfb\x17\x9cy9.\x0c9\xf4r\xbcfx\ -%\x14`\x9f\xdd\x05%\xbcgBHU\x18\xde\xd2#\ -\x90\x0e\x8aF\xfb\xb6p\xae\x1c\x04\xc5\x97B\xdb:\xea\ -5G\xe6\x10?\xcc\xeeWg\xd5 \xd0`*w\x90\ -C\x00\x01\x94\xd9B\xaa\xc1+\xe0\xb0\xd7\xcdse4\ -:\x89qh\x8f8\x5cV\xfa\x82\xa7\x9c\xf4\x94P~\ -@\x91\x94\xea;\x9d\x99*\xadt\x05\x9b\x0c\x18\xe6\xa0\ -\x19}\x0e\x85f\xde2\xc8\xac'\xa5\x837\xe3\xa0!\ -LAd}$\x81l\x0e>\x8f\xe5$\xc2.2\xd2\ -iz\x86\x8c\x03\xf9\x84\x8d|\xa1\x18\xd0)\xa9\xa1\x18\ -\x02Rl\x09\xb0\x14i\x84\xf2A\x810\x86Q\x17\xef\ -\xad\xb3T@\xe0\xa4\xfb\x9a\x94\xdd\xa8@\xa8\x08\xb0\x81\ -AQ\x01\xbc\xc5,2\xe2\xd07z\x16@\x8f@\x00\ -9\xa1\x0a\xd4@@s\x02\xac\xd7iXyz\xf6\xc0\ -\xe1@@\x06\x00\x11\x86\x0a\xb8q\xf4\x0c\xad,\xa6\x00\ -0x\xa8\x12\xa0\xc18N\x0d\x00sL\x06\xdc\xd1\xc6\ -d\xd1\x80\xd3\xb3\x05\x88\xc0\xe4R\x03ze\x18pX\ -\x0c\x80~1\x87\xc5\x18T `\x7f\x8b!\x80X6\ -\xe0\xd0p\xc0\x1bM\xa2\x14\x142 \x13l\x15\x84\x88\ -Zp\xee\xc92y\xabV\xeb\xd6F\x15\x05\x1a\xf8^\ -\xb4P\xa8\x088\xb0I\x014\x8b\x16\xb0\xebT 1\ -\x9b-Z\x18\x81Yxd\x108\xacZ(\x80\x1b#\ -;\xbf\x22\x96a\x80rzi\xeca\xff\xa8\x81\xf1:\ -\xf0\x91\x07\x91tAL\xe0\x06\x9e\x01~\xc5\xa2\x98g\ -\x5c\x01\xc7a\x84\xb4Y\xb1\xc3\x93\xf9P\x90\xfd\x15\xb1\ -\xbd\x15\x80`g]1>\xc3\x0a\x09\x92\xa5\x84\xc9\xa0\ -\xf6\xf0\xac\x08\xa5\x10\xc8\x10\xff\xe9\xdc;\x9e$\xf6#\ -H>\x9c\xc2\x0e\x0d\xcd\x22mQo9\x07<\x19\xc9\ -\xb08E\xef*\x00\xb4\x98\x05\xab/\x9e\x99\x90d\xcf\ -\xa0jP6\x05\x06B\x04\x02\xfa\xa9d!o\x96\x11\ -\xee\x8a\x95,\x19x\x18\x00YX>O\x95\xd81\x0c\ -(\xf4\x13\xd4\xa4\xc14'\x9eAl4\x8cd\x9f\xe4\ -Ir\xb2\x83h\x0f)P\xc4S\xe3\xc9\xcai\xef|\ -\xd1\x1e\x0c!\x03\xa6I\xe9\xd1\x1eBM\xcf\xcc0k\ -\x8a\xf6\xd6\x93!\x01%d\xf1\x0cp'#!\x94\xa0\ -\xbda\xe5\x8e\x8c\x06([L\x0fE\xa6j\xe60-\ -\xb5\xe60\x1a\x01\x18%\x1d\xe3\xc5AX\x840x\x86\ -\x08\x93\xb5G\xb9\x87\x1d\xbb\x0f*\x10K\xa7\xf3CB\ -\x96\xcb^q\xf2\xa9\xf2uA\x15\x82\x0e\xe0v\x19\x84\ -_\x00\x84\x8c\x93\xcd\x86_\x84\xd5\x17\xb6\x98\xef\x01\xc2\ -j>\xbe\x1b\x0aa\xe9\x92\xa4\x0d\x0a\xe1\x1aY}\x86\ -\xc23\x14\x9e\xa1\xf0\x0c\x85\xfb\xa00\xd4o\x00\x86\x08\ -8\xa0\xc3P\xeb>\x1d\xdcAP)\xfc>0\xf4G\ -\x81\xe1\xf6\xab\xec3\x18\x9e\xc1\xf0\x0c\x86g0<\x01\ -\x0c\xcd[\x80\xa1\x84\x0c\x80\x0b\x10FJ\x05i\xe8\xe8\ ->0d\xc7\x81a\xccF\xb1<\x83\xe1\x19\x0c\xcf`\ -x\x06\xc3\xd3\xc0\x90\xbf\x01\x18ro\x22\xe8\x82\x00\xc1\ -\x1c\x8b\x14\xf6`\xf7\x82\xa19\x0a\x0d\xb5aW\xf1\xf8\ -\x8c\x86g4<\xa3\xe1\x19\x0dOCC\xff\x16hh\ -\xa0\xbaJ[pW\x120\xf0\xfdq23G\x86\xca\ -W\x1a\x92p\xce\x1b\x9e\xf1\xf0\x8c\x87g<<\x15\x0f\ -\xdf\xc6?\x846\x0b#\xc1o\xe9\xe9|\x98\xaf\x5c}\ -\xd2\x8a\x88\xea(H\xdc^Yx\x86\xc43$\x9e!\ -\xf1\x0c\x89'A\xe2\x89o\x96\xbb\x8f\xf4\xacN\x9b\x9e\ -\xf6]\x91\xa0\x03l\xd2K\xfa\xac\x08\xd2CLUo\ -|\x9a\xb6vP\xf5=\x1dS\xad\x1fR\xad~\xd6\xb1\ -\xef\x90\xea\xde#\xaa\xc5\x01U2p\x8a\xd5\xef0\xf4\ -R\x02VL\xf5\x1b\xbc\x8e\xc3\xa9\x9d\x12\xb4>\xce\xad\ -\x0e\x1e\xe7\xde\x7fp\x5cp\x05$U\x0e\x16\x98I\xe8\ -\xbd\xf0\xeaS\xc7)\xe9\xca\xe7j\xd2\x8e\x5c|U\xbb\ -\x1f\xad\xb7\xd7\xf6w\x9e\x0e\x17\xce\x01\x89\xadP\xf8\x95\ -9X\x13\xabU\xf3\x922:}n\xf7|\xf2u\xda\ -i\xed\xb2:\xba\x1f\xe4\xa3/u\xe4G_k\x1ev\ -hd\xf5\xca\xbbo\xae\x91\xff\x9a\x9fx\xe9\xf3'^\ -\xe7\xa3\xd4\xe7\xa3\xd4\xa7~\xe2U\x81\x98\x8e\xaf\xb9\x9a\ -(\xf3\x96w\x95u}\xc4\xd54\x07@{\x88\x15H\ -\x00\xbf\xbeq\x81\x87\x81xK`e\x9b\xbb\xd0r\xad\ -\xd1\xbe\xdb\x90\xaa\x17(\xb1#>\xaf\xfe\x91\xaeM+\ -g\x17Z\x18\xa0\xe8\xd6'my\xf3\x06\x15G\xa2\xef\ -L\x1b\x03Z.5\xdaw\x17R\xf5\xfa$y\x04\x03\ -~\xc8{\xd4\xf6s\x02N\x0f\x024m\x9a\x9a\x00b\ -\x1b\xaf\xcd\xabk\x82\x09\xcdQ\xba\xf0\x03^\xadv\x80\ -\x15\x9e\xfeD\x05oA%A)\x1c&^]'l\ -\xc8\x8f\xba\xf5\xe1G\xbekm\x0fO\xde\xee\x92\xb1\x17\ -\xdd\xfa\xd3\x1d#\xcb\xaa\x19\xea\xbc i\xdf\xadJ+\ -\x914\x82n\xa3\xf7\xbc\xe5\xa6+\x0d\x87\xd1Z]\x8f\ -\x91w\xd7<\x95)^\xb9\x97\xa8v\x87N\xfd\x8f=\ -\x84\xd6\xc0\xd7\xb2\xce7\xef\xddB\x0d$\xcd\x1c\x7f\x05\ -\xce\xfb\xbd \xad\xb2\xf7\x96\x8b\x9c\x9a\xf7\x0e\xfd\xb87\ -\x8d\xd5\xbf\x1fn\x97\x90n\x19\xa9_\xba$;\xbe\x09\ -,]\xd8\xb4\xf7\x06\xa2\xa3!\xe4;\x5c'\xf6\xcd \ -DW\xbf\x07\x7f\x01\x88PD\xa9\x14\x02\xd2\xe6\x9dV\ -\x88T\x95\xd7\xfc\xe5 R\x83\xbc\xa7\xc2*z\x90U\ -\xd6\xcd,\xfd\xdd(\x04a\xdc\xff\xeb\xa3\xc8\xcboC\ -\xfb!Q\xe4\xc4K\xc5\xea(\xd2* \xdd\x22\xd2\xb8\ -\xb9-4/\x87\x91\xce\xfc\xedk]\xc1uZ\xc6\xd7\ -J\x13q\xc99\xfd\xa5\x0b.\xe8u\xa6\xeb\xc8\xf8\x9a\ -\x90\xef\xc9\xf9~\xe3\xfb\xc5^9\xbf,\xca\x7f\x13\xad\ -e7\xcf\xba\x9f\xac%oY\x5cxV\x9f\xa3=\x8f\ -\xfd^/\x02kl\xa3~\xdfY3\xf9}8}~\ -D\x06~\x7f\x02\x7f\x7f\xea\x7f\xef\xc5#]\xb9\xee\x1f\ -\xf0\xaa\xa4\xc6\x0e\xcf\xb9\xf4s.\xfd\x9cK\xdf\x97K\ -o^9\x18\xb6a\xe0\xf3^q\x9dpII=\x17\ -~\xe8\xaa\xb3\xd5\xcf\x0b\xfa\xb3d\xf8\xf9\xff;p]\ -3\ -\x00\x00\x0e\x8c\ +\x00z\xf7x\xda\xed]Y\x8f\x1b\xc9\x91~\xd7\xaf(\ +S\x0f\x96\xb0\xacb\xde\x07\xd5-\x03;\x03\xcb\x06v\ +\xb1\x0b\xdb\x03?.\xaa\xc9bw\xed\xb0I\xbaX\xad\ +\xee\x9e_\xef/\x92W]<\x9a\xd2\xe8\x025\x18\x88\ +\x95wDF|qTV\xea\xeaOO\xf7\xd3\xe8c\ +V,\xf3\xf9\xec\xba\xc7\x13\xd6\x8b\xb2\xd9h>\xceg\ +\xb7\xd7\xbd_\xfe\xf1\xe7\xd8\xf5\xa2e\x99\xce\xc6\xe9t\ +>\xcb\xae{\xb3y\xefO\xef_]\xfd!\x8e\xa3\x9f\ +\x8a,-\xb3q\xf4\x98\x97w\xd1_g\xbf.G\xe9\ +\x22\x8b\xde\xdc\x95\xe5b8\x18<>>&\xf9\xba0\ +\x99\x17\xb7\x83\xb7Q\x1c\xbf\x7f\xf5\xeaj\xf9\xf1\xf6U\ +\x14E\x98w\xb6\x1c\x8eG\xd7\xbdu\x87\xc5C1\x0d\ +\x0d\xc7\xa3A6\xcd\xee\xb3Y\xb9\x1c\xf0\x84\x0fz\xbb\ +\xe6\xa3]\xf3\x11\xcd\x9e\x7f\xccF\xf3\xfb\xfb\xf9l\x19\ +z\xce\x96\xaf+\x8d\x8b\xf1d\xdb\x9aV\xf3(C#\ +\xee\xbd\x1f01\x10\x22F\x8bx\xf9<+\xd3\xa7\xb8\ +\xde\x15k\xec\xea*\x18c\x03\xd4\xedZ\x9e\xd6j\xf8\ +4\x05+\xf6.&\xd4Vg\x07\xfb\x17\xf8\x7f\xdba\ +S\x90,\xe7\x0f\xc5(\x9b\xa0g\x96\xcc\xb2r\xf0\xf3\ +?~\xdeV\xc6,\x19\x97\xe3\xca0\x1b\xee\xd7\xe6\xad\ +m\xc9,\xbd\xcf\x96\x8bt\x94-\x07\x9b\xf2\xd0\xff1\ +\x1f\x97w\xd7=\xcdEx\xbc\xcb\xf2\xdb\xbbr\xf7\xfc\ +1\xcf\x1e\xffs\xfet\xddc\x11\x8bP\x18m*\xf2\ +\xf1u\x0f\x84\xaf[\xed\x84\x8a\xafj\xd7S\x0c\xb75\ +,\xf1\x22\xd1\xd1\x1b\xc1\x0c\xcbF|\xe2'\xfdH0\ +\xc1b\xa6b\xe6\xde\x86^\x1b\xf2\x86\xe3\xf9\x88\xd6{\ +\xdd\xfbP\xe4\xe3\x9f\xd2\xe9\xff\xe5\xa3\xf9,\xd9\xf0y\ +;x\xf6\xb4\x98\x17e<\xc9\xa7\xd9\xaa\xf9\xe0n~\ +\x9f\x0d\x96\xe9\xac\xcc\x07?\xcfG\x0f$X\xf3\xe5\xe0\ +C^\xfe\xe5\xe1f\xb0\x1el\xb0,F\xdb\xdf\x1f\x1e\ +\xf2\xc1\x7f\xa7\xf9lP\x9bi1\xeb\x9e\xe9i\xbc\xc0\ +Ny\xd6Y\xf9\xbc\xa9|\x8f\xda\xabq6YR\xab\ +\x15\xa7\xe8I\x85\x0aTA\x04\xb2\xb4\xf8P\xa4\xe3\x1c\ +\xeb[5\xaa\x0c7\x9aO\xa7\xd9\x08{\x90N\x1f\xd3\ +\xe7eo\xd3 \x88\xce\xf0\xae\xc8 \xea\xaf\xebcH\ +f\xec\xb6\x1d\xcd\xd7\xaa\xe6\xbba8\xb6\x89'\xc63\ +\xe5v\xa5\xcf(\xf5\xce&^)\xaewm\x05\xb5u\ +\x09sl7\xfe\xb3\xe8jz\xbb\x9e\xeb\x97Y^B\ +U\x1e\x96Y\xf1w\x12\xb7\xff\x99\xfd\xb2\xccz\xd1\xe0\ +0\xed]K\xaeP\xb4\x8f5\xef\xd7-\xae\x96\xe5|\ +\xb1i\xbd\x96M\x94`\x10\xd9\xdb\x15\xcf'\x93e\x86\ +\xce\xacR\xb6,\x9f\xa7\xd9\xaau\x8c\xd1\xe7\xc5\xf0\xb5\ +r^g\x93w\xa1h\x0e\x12\xf2\xf2y\xc8\xb7\x14\xb4\ +&\xeb\x18AN\xa4\x1d\xf9\xe6\x08\x1d\x0bI\x84\xe0\xca\ +{U\xad\xac,\xde\xef\x9fu\xd7\xcav\x8f\xac\x8c\xf6\ +\x5cI~\x8cV6J\xdd\xc9\xb4V\xd6\xa6;f=\ +2\xd9\xc4\x0a\xed\xf4\xbe\xc9\xae\x06u\x09\xf8z\xca\xa2\ +e]Y\x80[\x82\xf1\x8a\xaco\x94E\x18+xC\ +Yl\xa2\xad\xd7\xa6\xa5-\xf5\xb6'j\xcbh\x9a/\ +\xfe7-\xef\xaa\xab]hkmj\xad\xb4\x22\x96;\ +\x0d(\xc0\x85\xfaFQ\x89\xe0\x86\xc5\xa6\xb2-\xcf\xd7\ +=\xe3\x13Nv\xab\xaa\x1aO\xdd\xc5k\xe3`5\xf0\ +\xc2\xc2|U\xaa6\x86B\x19\x93\x80\xdc\xdd.n\xd6\ +|*\x09\xb1>\x8d\x88X~\xdbd\x98\x13\xc9\x10\xdf\ +6\x19\xfcT2\xec\xb7M\x87?U\xaa\xbeq\xed\xf0\ +'\xef\x88\xfc\xe6e\xcb\x9f\x0aXD\x0b\xffj\xb4\x5c\ +\x0d\xc8]\x0b\xbf\xb6\x1e)\xf9\x97cr\x86w>\xdd\ +M\xba\xcc\xd6C/\xd2\xdb,\x189\x18\x9bI\xf8\xb3\ +\xae\xb8\x99\x17\xe3\xac\xd8T\x99\xf0\xa7V\xb5\xb6\x83\xab\ +p\xecU\xdd\xb6\xd1\xa8\xdbz\xd6]\xbf\xbcK\xc7\xf3\ +\xc7\xeb\x9ehV\xfe6\x9f\xdfS/\xae\x98\x11\xbaY\ +;\x02\xebb\xf0\xda$Vn\x19\xb4\xab\xa5\xf5\x18\xa3\ +\x13\xed\x8djV\x8e\xd7~u\xfc\xb0\xb2]\x8b\xa7V\ +\xf7\x87\xa2\xa0\x06\xd3\xf49\x03\xd9\xe1\xaf\xcdn.\xef\ +\xe6\x8f\xb7\x05\xb1o\x92N\xb7\xfc\xdb;\xd4c>\x03\ +y\xf1zG\xb9SnO\x8b\xcd\xc6r\xc6\xf75\x01\ +\xc9V\xec\xa9\x03\xc1m&\xad\xeb\xee\xd3\xa7\xfc>\xff\ +-\x1b\x93\x83\xb3\x92\x98\xab\xfb\xacL\xc7i\x99\xee\xa4\ +aSb7^>\x02\xce\xe1\xdf~\xfe\xf3V\xdeG\ +\xa3\xe1?\xe7\xc5\xaf;Y\xa4\x06\xe9\xcd\xfc\x01\xab\xde\ +j\x05\x05\x0e\xa3!\x82\xbe\xfb\xb4|\x9f\xdfc\x83)\ +\xba\xfc\x0f\x04y\x10\xcamE\xadq\xf9\xbc\xc8v\x83\ +\xae\x86-\xb2U\xf4\xd8\x19p\x8fG\xf79u\x1a\xfc\ +\xbd\xcc\xa7\xd3\xbf\xd2$\x15\x8fo=h^N\xb3\x8a\ +\x1b8X\xaf~\xa3.\x15\xe2\xae\x06\x1b\xd2\xc3\xd3m\ +\x83\x89\xd3\xf4&\x9b^\xf7~J\x17i\xc4\x9b\x1c\xbe\ +-\xe6\x0f\x8b\xfb\xf98[KIo\xc7\xcf\x9a\xd4\x94\ +E:[\x12\xf1\xd7\xbd\xf0s\x9a\x96\xd9\x1b\xd6\x8f\xb5\ +b\x894\x90\xe3\xb7\x1b\xae\xdf\xbe\xaa\xfb\x9f\x88\x0d\xa7\ +\xc3\xb5N\xc2\xf3,\xe6\xbff\xc3\xd7\x8ci\xad\xd4\xfa\ +1&\xf7\x0f\xab\x19\xde<\x94e\xb5\xec\xff\xe7\xf9l\ +\x88\x05\xce\xc6[\x00\xa9\xac\x03\xfbP\xe4Oo\x14\x1c\ +;\x07\xff\x8e\xf7\x19\xfe\xdb=\xc5\x5c\x1b\x91(\xe6d\ +?\x96\x8e\x01m\xb4YG\xb9\x1b\x0ao\x9d\xa9\xc0\xe1\ +\xedn\x0f;\xa9\xe5\xd6&V\x08\xa70\x1eK\x9c\xe6\ +F\xc9\xb7\x8d\xb0\xe1Vi\xd5\xe1\x83\x07\x1e\xcc\xe6\xb3\ +\xec\x05\x14W\xc4\xa1\x0e\xd4\x100B\x07\x958\xcf\x9d\ +\xaebk\x80i/\x0dB\x0f&e\xad\x02\xaa\xc7%\ +\xb8\xc1\xadS\xb5\x8a\x9d\xda\x8a\xc4\x1bkx\xadv\xa3\ +\xf6\x9d\x95\x1b\x8b\xa1\x9c\x11q}\x1dk\xba\xb71\xc6\ +\xbb\x1d\x07\xe8\xd7.\xf8\xd8H\x04\xb4\xe3M;J\xe0\ +o7\xcc\x09\x0b\x19\x82\x02!\x0c\xa2\x07\xdedd\xe0\ +Y7'7\xa5\xd0\xb9\xac\x98\x02H\xca\xe1V\xf2\xc6\ +)\xe0\xbb(\xd2\xe7\xda\xeet\xc5a\xd8\x86E\xc5\xb4\ +F\xd5d\xc9\x0c\xfaC\xfa\x0c\x00\x1d-+\x7f\xd2t\ +4\xaasl\x174\xcd\xb0\xeer^\xc4\x80\xea\x8fi\ +\xf9Pd\xf5\xa8xm\xbc1\xa3\x82\x1d\x88\xeb\x8c'\ +\xb0\x8b\xb0\x9d0\xadJ\xc9>g\x90nn\x8d\x8eF\ +\x11t \x12\x09\xf7\x08]]?V\xb0.\x96K\x17\ +\x85z\xaeT(r\x8a\xa1H\xc1lk)t?\x86\ +a\xb3\x5cG2\x91\xdc1g\xfbZC\xba\x11(F\ +6\xc1(\xd2\xaeJ\x0cD\x1fm\x04I\xb8\xee\xa3\x0f\ +\xc7\x93\x81~y\x8bQ\xa1wZz\xea\x82\x90W)\ +\x1e\x8a\xa4E$\x87\xe5\xc0\xd6k\xe3\xc3DN`b\ +\xc6\x1ct\xa7/5\x84J\x1a\x89N\x12j*\x0d\x95\ +\x90\xf2R\x1f\xc9=\x972\xf4Q\x06}\x80\x17\x0e-\ +b\xe1\xe8\xa75\x91K\x98\xf4\xf8\xb1*\xf2\x9e\xa3\x93\ +fpEL\xe8\x04Z\xd0K\x0ag4\xef\x0b\x8ck\ +\xb5\xc5Dh\x01kL\x05\x16\xab\x15\x891\xd2\x1a\x15\ +z\x18\x13\xe9DY+@0,s\x82\xaeF`\x1a\ +\xd8oK\xccD\x11\xf7\xc2\x85\xb5i\x14\x11\x0f\xdc\x8a\ +o\xd8\x06\xd0\x87\xc8\x93\x01\x15\x0c\xb8-\x94\x85\xd5\x0f\ +%0\xef\x82\xb6\xc4A\x9eU\xe0\x9b\xa5\x85i\xad=\ +\x81\x94L\x02\xa3\x99\xc7\xb46<\x1b\x84\xaf\x22\xe2\x89\ +\xc7\x8ei\x17\x96\xa6\xb1\xb7\x02\xe0c9s}\x9f(\ +'\xac\xc7 \x8e\x0b\xaf\x05\x15H\xa6\xd0Ca\x8bW\ +,#\xae\x86\x0e\xc4v\x03\x16\x02(\xd0\xc1s\x05\xaa\ +\x80\xda`<\xc7\x10<\xd1D\x9c\xa5e\x19N]\xb4\ +4\x90\x00A\xeb\xb3\xb4Nl \xe3\x86\x0a\x9c\xb2.\ +\xac\xcar\x1b\xf6_:\x09\xda=\x83\xf0\x84\xbd\xb5\xce\ +\x09b\xa1\xb3\xc6\xe9\xb0\x09\x0e\x117\x0dJH)V\ +\xdboD\xd8\x15Hl\x9f\x0c\x07\x17$\x9b\x0a^\x85\ +\xc4\xb3\x92R\x1b\xcca\xc98\xd0\x14\xda)\x0cH\x88\ +\x0et\xaf\xfc\x9a\xe2\xb7\x15\xca\xaddJ+\xd3\x05>\ +\x0d\xc8)\x1e\xa6\xd90\xfb\x98AY\xc7\x07QG\xcb\ +\x06\xea\x082\x1d\x16\x12\xaaNC\x9d\x004\x9f\x07u\ +\xae\x06\xb7\x1b\x83\xbf\xf9Q5\x06\xdd0\x0b\xeb\x9a\xa6\ +\xce\xedA\xda\xea\x94+\xfaZd-\xff\xf5\x90\x16Y\ +\x8b\xae\x1bpo\xfar\xba\xa8t\x95\x9f\x1a\xb2\x16\xad\ +\xef\x16i\x0eG5x\xe2\xc3UeD\xeb\x8e\xee\xd3\ +\xe2\xd7\xacX\xd6\xec5\x91\xee*y\xafM\x98\x01\xfc\ +\x80\x85\xaf\xc4\x91\x1b\xa3f\xa1\xd0LA\x9fv)\x22\ +x\xdd\x9aI\x92s_I\x11!\x8cq\x04Bp\xb6\ +\xb7\x11\xc9\x09\x8c\xe6F3\xb81\xa72\x1ap\xc3\x1d\ +\xfe\xf3\xdf\x19\xc7m\x8b\xe3\xa4\xdb\xc0\xa76\xc7\x11\x0d\ +\x1a\xa6D\xc5\xfb \x8e+\xed\x010\xb6\xc6p\xce4\ +pI\x89\x171\x9c1\xc1\xe4\xa4\xcep\x96x\xc5a\ +\xde\x94\xfdqD\xbc\x921fM\xea's\x08N\xf8\x8d\x19\x10\ +\xf4O\xdf\x85\x92\xc7\xc0\xe5Z\xd12\xff-\x1b:\x05\ +W[R|\xe5\x16O\xef\x88\x8euFd\x08\xae\xeb\ +U\xc3Iz\x9fO\x9f\x87KD\x941\xe6\xcc'\xef\ +\xa6Y\x09\xd2bZJ>\xbb\x1d2t}\x84\xb0\xd6\ +\x0a6j\x18\xb8z\x84\xf9]j\xc8\xb9\x87\x9bo\xce\ +\x89\xb6W@Ba/\x97\xb6&\x94\x12;\x0a'T\ +\xfa\x9a4\x11\x8b\x95F\xd3\xf7W%H\x98\xbdj\xc7\ +J\xc5\x9c\x98K\xf35B\xe7\xd0\x01\x9du=\xbd\xd8\ +1\xff\xbe\x15\x1c\xdb\xba\x8fi\x91\xa7\xb3\xf2\xe8v\x96\ +EV\x8e\xeeje\xeb\x9d\xfb\xe3/\x7f\xfbg\xf4a\ +^\xde\xe5\xa3\xe8\xbf\xfe\xf8.\xde\xc4s\xf1\xaa\xe3\x22\ +\x1b\xe5\x93|\x94\x96\xf9|\xd6l\xfb\x82]l\xed\x5c\ +\xef\xfd\xfa\xdd\xf8\xd5 p\xe9=\xfe\x06\xa7_\x84\x22\ +\x8aQ\xc8\x03T\xaan\xaeD\xec\xa2E\xe5\x15\xe5'\ +cH\xac{G\xed\xc9)\x82\xbc\x01\x9b\x0b\x8a|V\ +\x149\x0d\xc2??\x8aX\x93\x18'\x9c\xad\x83\x08e\ +\xbf\x9d\x80#\xd1\x09\x22\xf4\xaa\xe2\x13`$n\x00I\ +{\x09\xfb\x16\xf1\x1d\xe0\xc8I\xfb\xf8B\x1c\xb9m\xa6\ +F+NhW\xda\x95y.\x8c\x12\xeb\xb4\xeb\xe6)\ +\x06:$\x0c\xae\xaa\xed\xc7R\x1a\xc4\xce\xc6\xfb\xb7\xbd\ +\xce\xa4\xf0YPp\x5c\xf0\x0e\xa8qW\xb2w\x9b\xb7\ +\xad\xbd\xbc;+\x05\xfc9!\xef\xc0\xea\xeb\xeb_S\ +\xc0\xb9\xa9'\x10\xbb)0\x80|'\xa5\xee\xc7\xc0\xfd\ +\x84[\xc6\xb6\xa9\xfb=\xd9\xe6C\xf9\xe6\x03\x19\xe7\x03\ +9\xe7cY\xe7#y\xe7\x96\xd5i\xaei\xdf6\xa8\ +L\x8d|+\x92\xf1\x86a\x81\x8dm\x98\x9c\x95x>\ +\xc7\xc4l\x22\xa9Z\xae\xb9#\xdb|N\xbe\xf9e\x19\ +\xe7f\xce9n\xb2\xfd\x92w\xbe\xe4\x9d/y\xe7\xbd\ +y\xe7}\x99\xe7\x0e\xc8\xdf\x9b\x91\xeeD\x9f/\x9c\x80\ +\xde\x83I\xdb\x14tgZ\xba\xf9\xda\xf7\x93^\xed\xee\ +\xec\x95a\x90\x05H\x1b\xf6\x15b\x99p\xc8\xa8\xad\xbf\ +\xc4]\xbd\xa6\xae\xf8*{^|o=\xf8\xb6\x9f\xa3\ +\xcf\xf1s \x5cX\x0f\xe7\xc1\x170\x0e\x00\x22u\xb7\ +\x9fs\xe0\xb5\xe7\xeb\x1b\xcfG\x9e\x9f\xef\xdb\xf0#.\ +\x8d\xf9L.\xcd\x0b\x09i/\xaf\xc3\xb1x\xf1K\xe2\ +\xc6$\xbf\xb3i>\xf4\xb2\xbb\xe6*\x1eqW\x0e\xfb\ +:{\x9d\xa4\xbd\x8eU\xdd\x1b;\xfc\x86\xfa\xc8\xe6\xed\ +\x87\xa1.N\x7f\xf1\xf7`\x97w\xde\x17\xdf\xe3\xe2{\ +\x9c\xe4{4\x14\x01\x13\x02\x14\xda\x7f:0\x8e'\x09z\x04\ +\xc9\x87S\xa0\xd0\xd0,\xd2\x86z\xcb9\x10\xc9H\x86\ +\xc5)z\xb5\x00l\xc5,X}xfB\x92\x09\x83\ +\x9eA\xd3\x146\x10\x22\x10\xd1\xdfJ\x06y\xb3\x8c\xa0\ +V\xacd\xc9\xc0\xa7\x00\xae\xc2\xd8y\xaa\x04\xc5\xb0\x99\ +PNp\x93\x06\xd3\x9c\xf6\x0cb\xa3a\x17\xfb$O\ +\x92\x93\xe9C{H\x81\xa2=5\x9e\x0c\x9b\xf6\xce\x87\ +\xf6\xd8\x10\xb2Y\x9a4\x1e\xed!\xd4\xf4\xcc\x0c\xb3&\ +\xb4\xb7\x9el\x078!\xc33\xf0\x9c\xec\x82P\x82h\ +\xc3\xca\x1d\xd9\x09p6L\x0f=\xa6j\xe60-\xb5\ +\xe6\xb0\x13\x116J:\xc6\xc3\x81S\x04(x\x86\x08\ +\x93\x81G\xb9\x87\xe9\xfa\x18Uq\x95\x0e\xb7\xc7\x04+\ +\xd7\xbdp\xe6\xa8v*\xbf\x06?G\xa0\xba\x02\xbc\xe7\ +# \xe3d\xa2\xe1\x06a\xe5\xc1\xf4\xf2\xfd\x08XK\ +\xa3\xef\xc7@\x98\xb5,\xeb\xc2@\xf8AV_0\xf0\ +\x82\x81\x17\x0c\xbc`\xe0~\x0c\x8c\xf5\x97FA\x04\x16\ +\xd0_\xa8t\x9f\x8e\xd2 x\x14\xfe\x00\x0a\xfaSP\ +p\xfb\xd5\xf1\x05\x05/(xA\xc1\x0b\x0a\xbe\x18\x05\ +\xcd\x17GA\x89\xfd\xc7\x0e@\x10)\xd7\xa3\xa1\x9f\x07\ +P\x90\x9d\x84\x82)\x1b\xa5\xf2\x82\x82\x17\x14\xbc\xa0\xe0\ +\x05\x05\xcfAA\xfe\xa5Q\x90{\x93@\x0f\x04\x98\xe5\ +X\xa2\xb0~{\x08\x05\xcd)0\xa8\x0d\xbbI\xc7\x17\ +\x18\xbc\xc0\xe0\x05\x06/0x\x0e\x0c\xfa/\x0e\x83\x06\ +j\xab\xb4\xc5\xceJ\x02\x05~0$f\xe6\xb4\xa8\xf8\ +FC\x06.\xb9\xc1\x0b\x10^\x80\xf0\x02\x84\xe7\x01\xe1\ +W\xf0\x08\xa1\xc9\xc2H\xec\xb5\xf4t\xb6\xcbW\xef\x0e\ +\xe9\x84Bu\x0a\x16n/\xe0\xbb`\xe1\x05\x0b/X\ +x\xc1\xc23\xb0\xf0\xac\xf7\xc5\xfbN\xe7\xac\x0e\x89\x9e\ +\xf5\xa5\x8f\xa03h\xd2K\xfa\xd0\x07rC\xdb\xa9\xbe\ +\xea\x01\xd8\xfa\xf9\xd2\xef\xe8ti\xf3li\xed\xc3\x8b\ +\x03gK\x0f\x9d,\x0d\xe7J\xc9\xa0)\xd6\xb8\xc7\xcf\ +K\x09 1\xb5\x0f\xe1\xba\xcf\x94\xee\x11\x9a\xf5\x89k\ +u\xec\xc4\xf5\xc1\x83\xdd\x82+\xa0\xa6r0\xb5LB\ +\xc7\x85Wo;\xcf2\xd7\xbe\x18\x93v\xe4\xd2\x9b\xc6\ +5b\xbdC\x16~\xef\xf9m\xe1\x1c \xd7\x0a\x85\x9f\ +\xcc\xc1lX\xadZ\xd7y\xd1\xe9p\xbb\xf7\xbb\xab\xb3\ +\x0eTW\x15\xcf}\xef_^\xa9\xd3\xbe\xbcZo\xdb\ +\x1e\xbd\xab_\x06\xf7\xbb\xeb\xdd\xb7\xf7\x9d\x95\xbe|g\ +u9\xeb|9\xeb|\xdewV5p\xd9\xf3IU\ +\x1b_\xbe\xe2\x9d^\xdd_R\xb5\xe0\x1f\xf0\x0e\x89\x02\ +\xf5p\xd5\x9bWb\x18\x08\xb6\x04@v\xf8\x02\xed\xdb\ +\x80\x0e\x5c!T\xbfs\x88\x1d\xff\x92\xf9G\xbaY\xac\ +\x92&hs^\xd1MI\xda\xf2\xd6e$\x8e\xa4\xdd\ +\x99\x0e\xce\xb7\xef\x02:p\x81P\xfd\xc6!y\x9c\xf3\ +?\xe4Uc\x87\xb6\x00~\x0d\xa2,mZ\xb2\x0f6\ +\x1b\xaf\xcd\xe7\x95}\x13\x9bS\xa4\xff\x07\xbc}\xec\xe0\ +\x1ex\xfag\x13x\x1b\x80\x04\xe5_\x98\xf8\xbcZ`\ +c~\xca]\x0a?\xf2ud{7\xe3\xeb]\xc9\xf5\ +I\xd7\xe6\xec\x8dqe\xcd\xda\xec\xbb]\xe8\xc0\x85D\ ++A4\x82\xeeW\xf7\xbc}9\x94\x86+h\xadn\ +\xc4\xb8\xbb\xbb\x91*\x9c\xae^\xe9\xd3\xb8\x82\xa6\xf1O\ +\x13\xc4\xd6\xc0\x83\xb2\xce\xb7.\xa9B\x05\xa4\xcb\x9c|\ +\x87\xcc\xf7{\x8dX\x95\xf2\x8e\xfb\x8fZW\xf6\xfc\xb8\ +\xb7r5\xbe\xd6\xed\x14\x8e\xbd\xe2\xd1\xbc\xadHv\x7f\ +\x85W\xb9\xe7\xe8\xd0\xe5=\xa7\xe2\xc5\x17\xb8|\xeb\xf7\ +\xc2\x0b]\xfb\xe6\xfal\xc4\xa0\xc8P)\x04\x96\xadk\ +\xa0\x10p*\xaf\xf9'\x22F\x1d\xd8\x9e\x83\xd5\xf3\xe0\ +\xa6l\xd8P\xfag\x8a\x10Fq\xff\xcdC\xc6\xa7\xdf\ +\x19\xf6\x03B\xc6\x99\x17p5 \xa3K6\xf6JG\ +\xeb~\xb3\xd8|*f\xecK\xb3~\xae\x0b\xab\xceJ\ +\xccZi\x12.9\xa7\x7f\xb7\x81\x0bz\xbd\xe8\xba\x13\ +\xb3&\xe6{S\xb3\xbf\xf3M\x5c\x9f5\x0b,*\xff\ +\x00W\x9b\x92\x17]\xe4\xd5N3\x86{\xc1\x1a\x13t\ +\xa6\x9a\xbf\xd7k\xb3\x9aT4\xef\x06k\xe5\xa8\x8f\xe6\ +\xb8\x8f'\xc9\x0ff\xd8\x0ff\xe6\x0f]\xdf\xb1'\x1d\ +\xfd\x03^+\xd4$\xf0\x92\xf0\xbe$\xbc/\x09\xef\x03\ +\x09\xef\xf6\xd5|q\x07\xf2\xbd\xe8\x1d\xd4\xcb\xaf\xfah\ +\xe4\xab\x0f\xde\x08\x16\xfe\xba\xa2\x7f:\xeb\xfd\xab\x7f\x03\ +\x1cZC\xdc\ +\x00\x00\x0e4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x222495\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22101\ -6\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x222.9978382\x22\x0d\ +mons.org/ns#\x22\x0a \ + xmlns:dc=\x22http:\ +//purl.org/dc/el\ +ements/1.1/\x22>\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -
\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \ + \x0a \ + \x0a \ +
\x0a \x0a \ + \x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xba\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x09+\ +6.952888\x22\x0a \ + x=\x22-198.82364\ +\x22\x0a y=\x2269\ +.89225\x22\x0a \ + ry=\x228.8167849\x22\x0a\ + rx=\x220.2\ +7597877\x22 />\x0a \ +\x0a \x0a\x0a\ +\x00\x00\x07}\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x12\x90\ +oke:none;stroke-\ +width:2.973;stro\ +ke-linecap:butt;\ +stroke-linejoin:\ +round;stroke-mit\ +erlimit:4;stroke\ +-dasharray:none;\ +stroke-opacity:1\ +;paint-order:str\ +oke fill markers\ +\x22 />\x0a\x0a\ +\x00\x00\x08\xe6\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0a \x0a \ + \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x22}\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22 />\x0a \x0a\x0a\ +\x00\x00\x12\x1a\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata10\x22>\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a\ + \x0a \ + \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +2505\x22\x0a inksc\ +ape:window-heigh\ +t=\x221016\x22\x0a id\ +=\x22namedview6\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x2212.09447\ +2\x22\x0a inkscape\ +:cx=\x2248.699934\x22\x0a\ + inkscape:cy\ +=\x2228.897499\x22\x0a \ + inkscape:windo\ +w-x=\x2255\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg4\x22\x0a \ +inkscape:pageche\ +ckerboard=\x220\x22 />\ +\x0a \x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a <\ -path\x0d\x0a fill=\ -\x22none\x22\x0d\x0a id=\ -\x22path2\x22\x0d\x0a d=\ -\x22M 3.4923116,-0.\ -39297537 H 51.49\ -2312 V 47.607024\ - H 3.4923116 Z\x22 \ -/>\x0d\x0a\x0d\x0a\ -\x00\x00\x0d$\ +ke-opacity:1\x22\x0a \ + d=\x22m 33.632\ +734,19.875438 4.\ +149523,-3.300771\ + 4.685644,5.7964\ +26\x22\x0a id=\x22p\ +ath1074\x22 />\x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \x0a\x0a\ +\x00\x00!\xf6\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ +no\x22?>\x0a\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a\ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0c\xce\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a <\ +path\x0a sodi\ +podi:nodetypes=\x22\ +csc\x22\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path816\x22\ +\x0a d=\x22m -24\ +3.25424,36.20339\ + c 7.47466,23.42\ +7449 32.21453,21\ +.503685 40.62787\ +,8.634724 8.4108\ +6,-12.865143 1.3\ +1409,-37.4864107\ + -28.0177,-31.00\ +7606\x22\x0a sty\ +le=\x22fill:none;fi\ +ll-rule:evenodd;\ +stroke:#37c8ab;s\ +troke-width:6;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:miter;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1\x22 />\x0a \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x94\ +ure=\x220\x22\x0a i\ +d=\x22path4489-7\x22\x0a \ + d=\x22m -225.\ +0508,25.423733 0\ +.20339,-22.37288\ +18 -19.72881,11.\ +5932198 z\x22\x0a \ + style=\x22fill:#9\ +99999;fill-rule:\ +evenodd;stroke:#\ +999999;stroke-wi\ +dth:2;stroke-lin\ +ecap:butt;stroke\ +-linejoin:round;\ +stroke-miterlimi\ +t:4;stroke-dasha\ +rray:none;stroke\ +-opacity:1\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x0dZ\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0c\x88\ + v -8.666671 -8.\ +666667 l -8.6334\ +6,-6.505556 c -4\ +.748403,-3.57805\ +6 -8.63346,-7.48\ +1016 -8.63346,-8\ +.673242 0,-2.039\ +252 14.78798,-28\ +.686171 17.43578\ +9,-31.41809 0.76\ +5807,-0.790132 5\ +.266256,0.388912\ + 12.011621,3.146\ +851 10.735632,4.\ +389415 10.808082\ +,4.399033 15.223\ +394,2.021232 9.2\ +26118,-4.968593 \ +9.854293,-5.9181\ +76 11.40331,-17.\ +237861 0.802812,\ +-5.866667 1.9121\ +58,-11.134266 2.\ +465212,-11.70577\ +5 0.553056,-0.57\ +1509 9.357958,-0\ +.871509 19.56645\ +2,-0.666667 l 18\ +.560886,0.372442\ + 2,11.741416 2,1\ +1.741416 6.3294,\ +3.92525 c 3.4811\ +7,2.158888 6.792\ +53,3.925251 7.35\ +858,3.925251 0.5\ +6605,0 5.41918,-\ +1.844483 10.7847\ +4,-4.098851 5.36\ +556,-2.254369 10\ +.45926,-3.828818\ + 11.31934,-3.498\ +777 2.03324,0.78\ +0228 18.20794,29\ +.028695 18.20794\ +,31.799445 0,1.1\ +66222 -3.88505,5\ +.047904 -8.63345\ +,8.62596 l -8.63\ +347,6.505556 v 8\ +.666667 8.666671\ + l 8.63347,6.505\ +55 c 4.7484,3.57\ +806 8.63345,7.48\ +101 8.63345,8.67\ +324 0,2.03287 -1\ +4.7835,28.68104 \ +-17.4221,31.4044\ + -0.74772,0.7717\ +4 -5.29872,-0.43\ +786 -11.89703,-3\ +.1621 l -10.6860\ +6,-4.41197 -7.21\ +862,3.77944 -7.2\ +1861,3.77943 -1.\ +77879,12.04933 -\ +1.77879,12.04933\ + -18.899066,0.36\ +932 c -10.394484\ +,0.20314 -19.197\ +66,-0.11386 -19.\ +562612,-0.7043 z\ + m 29.504508,-53\ +.06908 c 14.6252\ +1,-6.10929 21.57\ +602,-23.26646 15\ +.09602,-37.26259\ +4 -10.20217,-22.\ +03565 -40.74219,\ +-22.03565 -50.94\ +4364,0 -10.32964\ +1,22.310974 13.1\ +68754,46.736394 \ +35.848344,37.262\ +594 z\x22\x0a id=\x22\ +path817\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22 /\ +>\x0a\x0a\ +\x00\x00\x0c/\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \ + \x0d\x0a \ - \x0d\x0a\ - \x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0bF\ +oke-width:1px;st\ +roke-linecap:but\ +t;stroke-linejoi\ +n:miter;stroke-o\ +pacity:1\x22 />\x0a \ + \x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0b\x0c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0e\x99\ +indow-x=\x2257\x22\x0a \ + inkscape:windo\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x220\x22\x0a \ + inkscape:curren\ +t-layer=\x22svg2\x22 /\ +>\x0a \x0a\x0a\ +\x00\x00\x0e\x17\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\x09\x0d\ -\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x09\x0d\x0a\x0d\x0a\x09\x0d\ -\x0a\x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -41\x22>\x0d\x0a\x0d\x0a \ -\x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a \ - \x0d\x0a\x0d\x0a\ - \x0d\x0a\x0d\ -\x0a \x0d\x0a\ -\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a\x0d\x0a \x0d\x0a<\ -/g>\x0d\x0a \x0d\x0a\ -\x0d\x0a \x0d\ -\x0a\x0d\x0a \ -\x0d\x0a\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09\xe0\ +=\x2254\x22\x0a inksc\ +ape:window-y=\x22-8\ +\x22\x0a inkscape:\ +window-maximized\ +=\x221\x22\x0a inksca\ +pe:current-layer\ +=\x22g833\x22\x0a ink\ +scape:pagechecke\ +rboard=\x220\x22 />\x0a \ +\x0a \x0a\x09\x0a\x09\x09\x0a\x0a\x09\x09\x0a\ +\x0a\x09\x09\x0a\x0a\x09\x09<\ +path\x0a d=\x22m 263\ +.2,488.45 h 214.\ +3 c 6.8,0 12.3,-\ +5.5 12.3,-12.3 v\ + -214.2 c 0,-6.8\ + -5.5,-12.3 -12.\ +3,-12.3 H 263.2 \ +c -6.8,0 -12.3,5\ +.5 -12.3,12.3 v \ +214.3 c 0.1,6.8 \ +5.6,12.2 12.3,12\ +.2 z m 12.3,-214\ +.2 h 189.8 v 189\ +.7 H 275.5 Z\x22\x0a \ + id=\x22path831\x22\x0a \ + style=\x22fill:#37\ +c8ab\x22 />\x0a\x0a\x09\x0a\ +\x0a\x0a \x0a<\ +/g>\x0a \x0a\x0a \x0a\x0a\ + \x0a\x0a \ + \x0a\x0a \ +\x0a\x0a \x0a\x0a \ +\x0a\x0a \x0a<\ +/g>\x0a \x0a\x0a \x0a\x0a\ + \x0a\x0a \ + \x0a\x0a \ +\x0a\x0a \x0a\x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x09\xa5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x19/\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22 />\x0a \x0a\x0a\ +\x00\x00\x18\xae\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0a \ +\x0a \x0a \x0a\ + \x0a \x0a \ +\x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#162d50;\ +stroke-width:1.5\ +5563581;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22M 8.1\ +034569,42.45191 \ +C 15.791519,42.9\ +77784 18.461889,\ +10.499044 41.332\ +83,10.900594\x22\x0a \ + id=\x22path8\ +25\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22\x0a \ + sodipodi:\ +nodetypes=\x22cc\x22 /\ +>\x0a \x0a \ + \x0a \x0a \x0a\ + \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x04\xee\ +paint-order:norm\ +al;fill-opacity:\ +1\x22 />\x0a\x0a\ +\x00\x00\x04\xe6\ \x00\ -\x00\x1exx\xda\xed\x99Ko\xe36\x10\xc7\xef\x0b\xec\ -w0\x94K\x8bV\x12\x1f\x22E\xaav\x16(\x82\x05\ -z\xe8\xa5\xdd\xa2gF\xa2mmd\xd1\xa0d;\xd9\ -O\xbfC[O'q\xaa.Pl\x01\x0byqf\ -\xf8\x98\x1f\x87\x7f\xd1\xc8\xfc\xc3\xe3\xa6\x98\xed\xb5\xadr\ -S.<\x1c o\xa6\xcb\xd4dy\xb9Zx\x7f}\ -\xfa\xe8\x0boV\xd5\xaa\xccTaJ\xbd\xf0J\xe3}\ -\xb8}\xffn^\xedW\xef\xdf\xcdf\xb3C\x9e\xd5\xeb\ -\x85\x17\x09\xef\xd8\x5c\xeb|\xb5\xae\xfb\xf6>\xd7\x87_\ -\xcd\xe3\xc2C34\x8b\xc4\xac\xb3\xf73\xe2\x93%\xcf\ -\x16\x1e\x0c\xcaO\xad\x0aV\xb0\x85\xef$3i\xa96\ -0q\xaa\x8atW\xa8\xda\xd8\x00\xc2\x9a>\xe5C\x95\ -\xaa\xadN\x86\xc3\x05d\xf6\x03R\x08\xa5KF\xa9\xfc\ -yF\x10!>\x82\xaf\xe8\xc7S/\xc8\xb8\xac\x92\xb6\ -\xef\xc2[\xd7\xf56\x09\xc3\xc3\xe1\x10\xb4\xc6\xc0\xd8U\ -\xe8\xe6\xad\xb6*\xd5U\xd8\xda\x87\x03\xb4K\xec\x06h\ -\x0dAev6\xd5K\x18C\x07\xa5\xae\xc3\xbbOw\ -\x9d\xd3GAVg\x83qF\xf3\x1f\xe8qf\x82\x10\ -\x0a\xbb,\x9b\xe9\xf6\xab\x7f\x1aj\xb3\xe5K\xa1XJ\ -\x19\x22\x12\x02\x0e\x88\xf0\xab\xa7\xb2V\x8f~Y\xdd\x0c\ -\xfb\xa6i\xd75\xb5Z\xd5\xf9^\xa7f\xb31eu\ -b2\x8e\xce\xfa\xe8\xed\xce\x16\xc7\x90,\x0du\xa17\ -\xba\xac\xab\x10\xb6#\xf4n]\x87\xf9F\xd7*S\xb5\ -:\xf6>mwk\xc2\xe4\x14\x03Q\xb0\xb0\xe4\x8f\xbb\ -\x8fM\x13\x0ci\x9a\xfcm\xecC\xdb\x86\xc7\x85\xa8{\ -\xb3\x83*\xf3n{\xfb\x12k?\x12_\x86\ -T]`\xb7[K8\x00\xeemPv'`n\xa1\ -\x92Z\xdc\xf5S\x01\x95\xd1\x94@\x82\x7fq\xe1\xc9\x0d\ -\x8dS\xa1\xee\x8f\x0d\xbf\xf7U\xb55\x0f:qc5\ -\x7f\x9f\xf6>A\x81d\xb1 \xf0\xdd\xda\x8b\xbc\xd4\x90\ -Pb\xcd\xae\xcc\x86\xc6\xcf&/\x93{\xbd\xd7Ek\ -\x85\x93\xaam\x01\xd8\xea$jm\x99\x82\xaa\xb3V=\ -\x8d&sV\xb3\x5cV\xbaNPk\xebW\xb7U9\ -\xc0=\x1e\x1f\xe8\x052R\x0c\x99\xb8\x9cE_|M\ -\xcdR\x12\xc4qDq\xb7Y\xddk\x91\x04(\x8e$\ -\xea0BM\x88\x80b\x14Q\xd9\x05C)\xd0\x80\xb0\ -\x88\xd0\xb8\x8b\xb3`d\x01\x12\x02S,'\x10\x978\ -N\xf9r\x02q\x1a\x11\x86\xa9\xe0\xdf;q\x9f\x9e1\ -',\x88\xa4d8:g\xce\x03\x89\x19a\x94\x0f\x98\ -c\x12\x10\xc91\xa2\x03\xe6\xb1\xc3+\x98\xc0C\xe6\x08\ -\x14\x81\x13NA\x83&\x94\xf9\xf1\x99\x00\x1d\x13!9\ -\x17\xe2\xfb\x87\xee\x9f\x97:;\xc7\xcd\xc6\x98#\xca\x19\ -\x1fbv2\xc9\x22\xda\xcb\xe4\x093G\x11g\x98\xcb\ -+\xe6\x13\xe6g\xf5}\x19\xb4\x0cp\x8c\x08&c\xd0\ -\x0c\x11'\x17W\xd0\x97@\xb3)\xa0Aeb\xd0\x08\ -\x16\x9d\x81\x06\xd2\xec\x0a\xfa2h2U:\xe0Z\x87\ -\xd9\x10\xb4\x0cb\xc4)bW\xd0\x97\xa5\xc3\x97S\xc5\ -\x03\x04\xb9\xff\xb0\xd0\xa0\x86\x1bH\xc4\xaf\xa8/\x8b\x87\ -\x8f\xa7\xca\x07\x93\x11\x8a\xc7\xa8\x05H\xb7\xb8V\xf5e\ -\xd4\xf1T\xf9`p\xc3\x1b]\xaaY \x08\x89\xaf\x9c\ -\xdfR\x0f4U=$%L\x9c\x91\x06\xa5\x16\xd77\ -\xe2[\xea!'\xaa\x87@B\x8e>\xb5\x00j\x89\x05\ -'W\xd4\x97Qs\xf4\xad\xf2\x81\xe3\x80\xc4\x08K|\ -%\xfd\x86~\xf0o\xd5\x0f@M\xb1\xc0\xf4J\xfa\x0d\ -\xf9 \xffF>\xce\x8a\x9ar\xde\xdfG\xfeC\xd2\xa0\ -c\x22\xc6\xf2\xff\xa1\x1e\xf0\xf3\xcd\x8b\x1eF\x01\x14\x0f\ -cx\xc0\x9c\x82\x90\x10B\x11\x19_\xf8\xa4`\x88\x8f\ -\xa0c\xa8\xf88&\x94_\xab\xbbc.\xa6T7\x90\ -\xa6T\x08\x1e\x9f}2\x17\x0c\xf7\x9f\xd6\xafB\xf2\x0a\ -\xea\x89\xd7k\x07\x9b\xc3\xab\x90\x8f\xa5$BH\xf2\x8b\ -Z2w\xff\x96\x83\xdf_\x01!\x82\x1f\xee\ -\x00\x00\x08Y\ +\x00\x1d\xb9x\xda\xed\x99Mo\xe36\x10\x86\xef\xfb+\ +\x0c\xe5\xd2\xa2\x95\xc4\x0f\x91\x22U;\x0b\x14\x8b\x05z\ +\xd8K\xbbE\xcf\x8cD\xdb\xda\xc8\xa2A\xc9v\xb2\xbf\ +\xbeC}\xcb\x8d\xd3\x18\x0b\x14[\xc0B\x1c\x843C\ +\x0e\xf9p\xf8\x8aF\x96\xef\x9fv\xc5\xe2\xa8m\x95\x9b\ +r\xe5\xe1\x00y\x0b]\xa6&\xcb\xcb\xcd\xca\xfb\xf3\xf3\ +G_x\x8b\xaaVe\xa6\x0aS\xea\x95W\x1a\xef\xfd\ +\xfd\xbbeu\xdc\xbc[,\x16\xa7<\xab\xb7+/\x12\ +\x9ekmu\xbe\xd9\xd6C\xf3\x98\xeb\xd3\xaf\xe6i\xe5\ +\xa1\x05ZDb\xd1\x9b\xc7d\xb81\xe4\xd9\xca\x83\xf1\ +x\xd3\xa8 \xf5\x1e>If\xd2R\xed c\xaa\x8a\ +\xf4P\xa8\xda\xd8\x00\xa2\xda\x1e\xe5c\x95\xaa\xbdN\xa6\ +c\x05d\xf1\x03R\x08\xa5kF\xa9\xfcyA\x10!\ +>\x82\x9f\xe8\xc7\xa6\x13,\xb4\xac\x92\xbe\xeb\xca\xdb\xd6\ +\xf5>\x09\xc3\xd3\xe9\x14\xf4\xc6\xc0\xd8M\xe8\xb2V{\ +\x95\xea*\xec\xed\x93\xfe\xfd\xfc\x86\xfe\xbd!\xa8\xcc\xc1\ +\xa6z\x0dC\xe8\xa0\xd4u\xf8\xe1\xf3\x87\xc1\xe9\xa3 \ +\xab\xb3q\x98Y\xf6\x13m\xf2\x12\x84P\xd8\xaf\xb0K\ +v\xdc\xbc1\xd2f\xeb\x97\x22\xb1\x942D$\x04\x12\ +\x10\xe1W\xcfe\xad\x9e\xfc\xb2\xba\x9btM\xd3\xa1g\ +j\xb5\xaa\xf3\xa3N\xcdng\xca\xaa\xc51\x0b\xce\xc6\ +\xe0\xfd\xc1\x16MD\x96\x86\xba\xd0;]\xd6U\x08\xfb\ +\x10z\xf7\x10\xbf\xdc\xe9Ze\xaaV\xaeo\xbb\xc7\xbd\ +\x05\x93&\x02b`N\xc9\xef\x1f>\xb6-h\xa7i\ +\xf2\x97\xb1\x8f]\x13\x1e\x17\xa0\x1e\xcc\x01\x8a\xca\xbb\x1f\ +\xcc\xcb,M\x80\xf3N\xd5\xf7\xf9Nm\xb4c\xf1\x13\ +\xcco\x19\x8e\x8eYp\xfd\xbc\xd7\xe3\xa0\xed\xb0V\xb7\ +\x1b\xf6\xe2z\xb2t\x97\xbbN\xe1\x1fu^\x14\xbf\xb9\ +$\xde\x22\x1c\xe6\x19v\x13\xed\x96\x11N\xd6\xb1\x0c\xfb\ +e6\xadL\xaf\xab\x91\x80ka\xd4\x8d\xb4\x1cJ\xdd\ +U\x5c\xe6NK\x1b\xb9\x87l\xa9)\x8c]yw\xeb\ +\xe6\xf1Z\xc7\x83\xb1\x99\xb6\xbd\x8b7\xcf\xcce\xa0l\ +a\xdep\x1c:\xb3y\xf8\xa2\xd3\xba6\x85\xb6\xaat\ +k\x85\xec\xadgc\xe1\xe8\xbed?\xe4\x99~\xc91\ +\x9c97\xbd!\xd1\x8b\xdej\xab2sZy\xe4\xdc\ +y\xcaKp\xf8\x9dj\x90H\xb2\x0b\x11\xbd\x92`\x84\ +\xfb\x15:~\x03(\xd1\x19\xab\xad9\xb9\x95\xac\xbc\xb5\ +**}>\xdaWcv+O\x06\x826\xcf\xb9;\ +\x05m\xf2e\x80\x18\x12Q\xfc\x8f\xa9\xa4\xb0\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b\xe7\ +ndow-x=\x2257\x22\x0a \ + inkscape:window\ +-y=\x2227\x22\x0a ink\ +scape:window-max\ +imized=\x221\x22\x0a \ +inkscape:current\ +-layer=\x22svg2\x22 />\ +\x0a \x0a\x0a\ +\x00\x00\x0b\xd5\ \x00\ -\x00g\xc0x\xda\xed]mo\xe3\xc6\x11\xfe\x1e \xff\ -\x81P>$A\xcd\xd5\xce\xcc\xbe\xcc\xea\xec\x0bP\x04\ -\x09\x0a\xb4@\xd1\xa6h\xbf\x05\xb4D\xd9\xca\xc9\xa2A\ -\xf1\xce\xe7\xfc\xb5\xfe\x87\xfe\xa6\xceRo\xdc\xb5/\x89\ -Q\x14\x01L\xe9\x10X\x9a]\xee\xcb\xb33\xcf\xce\x0c\ -\x97\xcc\xe57\x1f\xef\xd6\xc5\x87\xba\xdd\xae\x9a\xcd\xd5\x04\ -\x94\x9e\x14\xf5f\xde,V\x9b\x9b\xab\xc9?~\xf8\xae\ -\xe4I\xb1\xed\xaa\xcd\xa2Z7\x9b\xfaj\xb2i&\xdf\ -\xbc\xfd\xfc\xb3\xcb\xed\x87\x9b\xcf?+\x8aB.\xdfl\ -g\x8b\xf9\xd5\xe4\xb6\xeb\xeeg\xd3\xe9\xfd\xfbv\xad\x9a\ -\xf6f\xba\x98O\xebu}Wo\xba\xed\x14\x14L'\ -\x83\xfa\xf3S\xfdy[W\xdd\xeaC=o\xee\xee\x9a\ -\xcd\xb6\xbft\xb3\xfdbX\xbb],\x8f\xd5\x1f\x1e\x1e\ -\xd4\x03\xf5\xb5 \x840\xd58E,\xa5F\xb9}\xdc\ -t\xd5\xc72\xbbV\xc6\xf9\xdc\xb5\xa8\xb5\x9eJ\xd9\xa0\ -\xeao\xac6\xdb\x0a8\xf7\xf2\xdf\xb1\xfeA\xa0\xb6\xcd\ -\xfbv^/\xe5\xc2Zm\xean\xfa\xed\x0f\xdf\x1e\x0b\ -K\xad\x16\xddb\xd8\xcej\xf3n;\xaf\xee\xeb\xa4\xdf\ -\x83p\x07CuWo\xef\xaby\xbd\x9d\x1e\xe4\xbb\x06\ -\x1eV\x8b\xee\xf6jbx\xf7\xf3\xb6^\xdd\xdcv\xa7\ -\xdf\x1fV\xf5\xc3\x1f\x9b\x8fW\x13]\xe8\xc2pq\x90\ -\xaf\x16W\x13\x99\x0c\xeek\x9d\x16\x1d\xf6\xe5\xfbNf\ -\xc7\x22\xad\x02**\xbeB\xa3\xad5\xee\xa2@\x0d\x5c\ -j*\x01\xbe\xde]s\x98\xdfl\xd1\xcc\xe3xEC\ -\xba\xf9\x8f\xcd\xfd\xf2\xc7n\xfb\xe3|\xfd~\xdb\xd5\xad\ -\xe8\x92\x8a \xbe\x8dW\x5c\xde\xd5]\xb5\xa8\xba\xaa\xbf\ -|7\xa8\x83\x08pWGj\xc9\x8a\xce\xfe\xf6\xedw\ -\xfb\x9f\x22\x98\xcfg\xffl\xdaw\x87\xdf\xf2\x89U\xaa\ -\xeb\xe6\xbd\xcc|\xf2\xf6$\xbf\x5c\xccg\xb2\x06wU\ -\xf7vuW\xdd\xd4q\xfd\xfe \x90_NO\x05i\ -\xed\xee\xf1\xbe\x1e\xb4\xbbk\xb9\xadw\xcb\xf9\xacb/\ -\xe6w\xabx\xd5\xf4\xef\xddj\xbd\xfeS\xecfRL\ -\xf3fW\xdd\xba\x1eH/\xa7\xfb9\x1c\xe68\x1dN\ -\xf2rz@a\xf7sQ/\xb7\x03\x88\xe2O\xd0\x87\ -N.\x8f\xb0G\xcc\x17q\xc1\xf7u\xefe(\xf3f\ -\xdd\xb4W\x93/\x96\xfdg\xb2/\xb9n\xdaE\xdd\x1e\ -\xca\x5c\xffI\xcb\x1a\xd15\x99\x96h\xc4A\xde\x5c\xff\ -T\xcf\xbb\xaeY\xd7m\xb5\x89X\xc8\x10\xf6E7\xad\ -(\xe1\xb3\x05\xefW\x8b\xfa\xd9\x92\xa3~\xc5A\x1e;\ -{\xbex{[-\x9a\x87\xab\x09>)}Xm\xa4\ -\xa4\xdc\xdb\x00\xb0\xf5\x9f\xaar\xb0\x0b\xd0\x83:\x82\xe5\ -\x113>H\xb7\xb7\xcdC\x9c\xd0\xd5dY\xad\xb7\xf5\ -\x93\x06\x7fn\x9a\xbb\xab\x09\xa9\xd0\x7f\xf8I\xf9\x5c\x8c\ -\x8d\x15Yg\xc9\xd2\xd3\xd2\x08)\xa8`\xc1\xfa\xf0\xa9\ -\xc1J\x0b\xd6~\xaaP\x1a(\xf9S\x85w\xd5\xc7\xd5\ -\xdd\xea\xe7z1X\xb8S\xdf\xef\xdbV(\xb8\x5cW\ -\x8fu;4\xff\x0c\xef\xf9m=\x7fW\xb7\xd7M\xd5\ -.\xe2\x9a\x1c\x14\xedf_\xb9jW\x954r]\xaf\ -\xaf&\xff\xf9\xf7\x11\xb7\xeeq-K\xbcl\xa4\x87\xfe\ -\xfbl\x13\x0dl\xfd\xa6\x97<\xf4\xf8'\xa2\xad\x8cs\ -fH!\x1as\xff\xf1\xcdz\xb5\xa9\xf7\xcb4\x03\x85\ -vWiY\xdd\xad\xd6\x8f\xb3m\xb5\xd9\x96[\xa1\x8f\ -\xe5\x9bu\xdd\x09\x8f\x94\x91\x0c\x85LfZ.}\x10\ -\x95M\x04K\xb1\xc4\x99\xe8\xbc_b\xd5\xff(\xf7*\ -6\x837\xdb\xaem\xde\xc5\xc1m\xea\xfd\xf7\x9d\xfeH\ -\xa7\x9a\xb5\x83\xa1vt\xf5\xc7\xceX4\xe5q\xa9:\ -\xd1\xe4md\x0e)\x8c_\xd7UW\x7feT0\xc1\ -\x1b\x8f\x17%\x18T\x80l\xfc\xd7G\xfa\xba\xaf\xba\xdb\ -#\x1bD\x86+\x88U\x00\xe3\x85D)\xa8@\xc8\x96\ -\x0a\xd9\x14\xac\x83\x00\xfeB\xbey\xcf\x9aBQ\xca\x90\ -\xc8\x13\xbb\x0b\x11\x91a0\xc5<\x0a\xc1ymY\x84\ -\xec\x8ca.J\xe9\xd3\x01B\xb8\x10\xe0\x82\xf3\x84Q\ -d\xadF\x1a\x8a\xb4\x02\x8f\x1c\xfc\x85\x8e\xdf\xc9\x88\x06\ -\xda\xdd\xf7\x10\x8c4\x10{f\x04t\xfdh\x0c\xc5\x85\ -\x892\x0b\xecB/\xdb\xf5'\xb3\x94\xc6\x9d\xf6\xfd\x08\ -\xfbo\x22#\xa5\xd1z\xcd\xc5\x9f\x0bt\xca\x06i\xdd\ -\x5c \xcaJ\x1a\xed]\x1c\xb8|7\xde9\xa9\xeb\x94\ -\xb6`\xc0\x16\xa5Q\xe4\xacstQ\x06\xc1M\x93q\ -\x85\x94J;\xa0}\x94\x91\x0f}\xdf\x03$\x82\xd5\x81\ -|l\xce\x91\xb4\xc6\x17(e`\x8d\x88HY\x0d\xe0\ -\xdd\xc5\xa1\xacX\x17Z\xe98\x95\x8bC\x0b2\x92\xfd\ -4\xfb\xc9Q\x1c5\x14\xd2\x86,\xa0?a`Dd\ -\x9ct?\x14\x09\x96\xa0\x91IPC\xe5\x91\x80\x9c\xb4\ -\x1b\x8c\x8c\x88\x0b\x92>5\x9bpa\x94\xe8\x0c\x00E\ -$\x8c\x02\xc2\x8b\xf8'\xc8\xda\xf6\xebw\x00J\xea\xc9\ -\x10\x91LQ\xb2b\xf0^\xc6\x0dV\xd0\xf6\xd6\xca\x5c\ -@\x807\xce[\x19\xb9\xa8\x8b\xc8t\x9c\xcd^IO\ -0\xc4\xd9\xf4\xbaa\xfb\xd9p\xd0(\x95\x88B\xb0.\ -J\x5cD\x1ae\xb8\xe4\xa5\x1aF\xd1\xfeJY\x8e\xa0\ -9`\x5c\x0e\x8b\x02\x16\x1d\xa6\x10WXz\xd7d\xd1\ -\x17^\x9a\xf0&\xc8\x0a\x81\x97\x11\x05\xd0$\xe3p\x8a\ -d\x85d \x22\x04\xa7\xe5\xa2~$h\x83,\xe1I\ -]\x8f*\xb3G.\x8e\xcd\x86 \xa0\x0f%\x80\xc4d\ -zP\xfb\xeb\xcdq\x94.vd)\xc8\xc2\x8b\xaah\ -\x19]\xc0\xe2\xe7\xc9\xd1\x9c~\x99t>D\xa6\xdat\ -\xbfJD][w\xf3\xdbD\xb6\xe7\x9d/\x7f\xa8\xff\ -U|\xff\xd8\xd6\xc5_\x85\x18\xd7\xeb\xaa\xf8\x8bX\xf3\ -\x97o\xca\x03a\x96\xbb\x16\xee\xeb\xf9j\xb9\x9a\x8b\xf7\ -\xdal>y\xd1\xaf\xb3\xd2\xf3L\xb4\xe3\xa2H#\x8c\ -|d\xe3\xe9\xcd\xeeo\xe4\xa8}E\xf1lf\xbd\x93\ -(\xb5\xc5g\xa9\xdb\x0f\xf5\xff\xc6\xce$#A\xf0\xff\ -\x17vFa1\xcf\xbf\x99\x9d#)\x8a\xdfy\xdcQ\ -e\x8f,M4\x8c\x00G\xd7E\xb6FrJxx\ -\xb0-',^\xe2\x11\xbeV\x9c\x99}\x9d6\xee\xc9\ -\xa2y\x1c\xc4\x0a\x87m\x89Y\x1a\xa1P\x1c\xf4i\x84\ -\xa5\x194\x1c7\x84\x83c\xe1\x14\x8b\x95\x08\xf1\x1f\x0a\ -\x0e\x8e\xb9\xf0\x8f0\xbcIF\x14;76\xb8|u\ -z`\xb4\xc6k\x9c\x7f\x02\x98Ci\x86M\xe4oc\ -\xf9 \x8e\xab%\xda9k\x9b\xf7\x9b\xc5P\xf8S\xb3\ -\xda\xa4Rq^\xebv-NC73\x07\xd9\xa2\x12\ -\x97\xabm\xab\xc7d\x1dNc\xb9\xafV\xb2\xf8\xbd\x9f\ -8\xbb\xabZ\xf1\x15\xb6E\x1cn\xb1\xab\xf9i\x8cY\ -xB{L1\x96\xadP\xec?\xc1XX\x94\xec\xc9\ -Q;a\xec\x09P\xb8+\xc3\x18\x83p\x14\x0e\x1a\x19\ -b\x5c\xd2\xb3(c\xe5\xc5!\xfe%}\xe3~+1\ -\xf4;\x80z0\xc4D\x05\x8e\xb0\xceW\xed|]?\ -7)\xaf+\xbb4\xbf\xd9\xa6\xc4\xf7\xb2\xc4\xfew\xd4\ -\x9a]\xa5^y\x86k\xd7s\x9d9\xeaIt\xa9e\ -\x9f\x91]F\xf3q\xed\xa3'\xed\xc5K\xd1l\xedq\ -\xe1\xdb\xe8\xf7\x8e\x0e\xa7\x93\x8a\xf7H\xb1p\x94\xf5d\ -\x87H913\xf1K\x9d\x199R.CJ\xdc\x14\ -\xf15S\x9d\x0aA\xac~\xec*\xe5\x13\xa0\x82\x18\x1a\ -\xf1)\x9e\xdd\x01\xe5\xb5\xd7\x0e\xfd\xc8\x91\xb2\x19M\x19\ -\x1d\x9d\xfa!RA\xa8+\xa0x/c\xa7)\x9bY\ -\x9f\x91\x10\xc0P\x0a\x15k\x09<`\xec\xe6\xe70\xb3\ -?v\xfe\xe4\x88F\xa4X\x89@>#\x07*\x0cq\ -B\x89|\xc1x\x0egB\x7f\x02\x14d\x0ae%\xc2\ -\x0c\x89\x8f 1\xbf7\xa7\xc4\xe3Hq\xca\xbdNt\ -ds\x988H\x04\x08c\xf7\x10t\xa6Q\xc1ht\ -\x09GYA\x8ac\xceo\xec$\x95:\xe86\xe6\xc0\ -\x9cI\xd9\x5c|s\xeb(\x8c}\xdf\xd3\x99\xf9\x010\ -\x9f\xe2\xbb\x9dR\x81\x17\x17\xc1\xbc\x94\xa8\x18\xaeay\ -\xfd\x9a\x5c\x844\x981\xca\xb3CL\x82\x19\x02\xa1t\ -\xcd\x1cF\x8e\x15e\xdb\x9f\x93\xc0O\x06\x8c\x19V\x82\ -\x1e\x01\x8e]\xafN\xb7\x17\xf7X\x01:\xa6\xc4\xa7\x22\ -T\xa4\x9dqc\xb7A\x9f\xc5\xc9\xe2.\x00\x84`2\ -\xac4x=v\x13\xb4\xa9\xab.\x9b \xb0#\x9f\xb8\ -VD\xe2\xbf\x07\xf4cW+\xb2\x99\x1b\xea\xfa\xfb\x87\ -\x9c\xea\x95\x91\xcd\xd1j{\xde\x07\xcb\xdci\x10f\x1a\ -\x9c\xf3\xd8k\x16h\xc4\xd1;\x0d\xa1\xcc\x13\x0b:`\ -\xa03\xb7?\x130giu\xe1v6D.\xc1\xca\ -*1@\x0bc'\xf7<_,\xb0\x18p\xe9\xcd\x1a\ -\xc1\x0a\xb5\x96\xfd\xf1\x85X\xed\xef\xd4\xbd\xa2\xb8\xf9I\ -\xca\xd8\x83\xf8W\xa9\x83\xa5\x05,6\x81\xc7\xceW\x94\ -\xb9\x0d\x14\x0f\xb2x\xc6\x9c\xdc\xbd\xb1/\xce\xc8\xbc\xba\ -\x9dPg\xecn\x14\x07\x17R\xcd\xc2\xa0\x0c[\xfd\xe2\ -;\x81\xaf\x11\xac\x0c.Q#\x81\x0bm\x1e\x15Zo\ -\xd8\x9d\xe1\xc2,0\x0c\xca\xb3\x86\xccy\x10\xe6\x0f\xe0\ -\xc2Y\xbbJ|\x12\xf0h!\xae4\x97ENyk\ -\xcf\xba\xf5\xc4\x81@e\xe2\x11\xc2\x5c\xb7\x82\x0d\x8cg\ -\xb4\x9e\x9e\xf8 \xf9d\xa9?/BC\xe6\xa5\xb7\xe7\ -um\x96\xd7\xf0\xaa\xd2\xa4\xe9\xa9\x0f\xb4\xca\x07\x1d\xd2\ -S\x1f\x12a\xb3\xf3\x833\xf9#E\x8b$\xecIR\ -\xa5\xe8\xe3\x19\x19\x9b\xdd\x02\x8b\xf9S\xd6\x1a\xc6\xae[\ -%\xa7.\x84\xa0\x05\x046\xb5\xc4x&\x84\x08\xdc\xd8\ -\xd1\xf2\xf2/\xbd]\xcf\x0a\xc19O\x19Z`H6\ -\xca\x91\xa3e\xcb\x90\xb2<\xc6$ \xe8\xcc\x12Y\x19\ -\x89|\xfc\xd8u+fL\x9f\x10\x17jb\x97*W\ -Ph$V\ -\x1e\x99I\x98\x0b\xb5\x02F\x84\xb1\xf3|\xdc\x179\xe3\ -y\x1d\x9f<\x83\x0c-B\xc7a\xec\xfeiL\x9e\xa6\ -\xa6(\xca\xe5\x91t\x9a\x11\x94`\x9b\xc8\xbe\xfc\x8c\xd6\ -\xab#.\x12\xeeJ\xb2\xcdh\x141\x9a\xf4\x9cV\x0c\ - 5\xe0\xe8\xa3\x9f>\xb4\xd6Y\xb0(\xc4\xe58\xc9\ -\xda\x80Q\x0e\xc0\xbf8o\xf3*\xe1\xcar\x11\xf1\x89\ -_\xc3\x84!3\xc7\x10\x9f\xcc\xc53`(!\xa3\xcb\ -\x5c\x09\xcf&;\x8b$t\x8f\xc0\xc4g\x0d\x8bi\xd4\ -\xcc\xb1\x97\xfd\x91\xd1\x9a\x140P,\xde\x04\xf3\x19\xb0\ -\xe8P\xa4\x1cF\xcax\x06g3\xc04;{6\xc9\ ->\x9b\x9ae\x08Y\x81fp\x19^\xe4-\xf3K#\ -G\xb4\xeeza_Q\xa0\x8d\x19R\x84\x90=A'\ -\x06\xca\xf1\xf5\x030v\xa823\x0c\x8a} \x132\ -\xac\xc8\x87\xc0f\xe4X\xe59\xfa\xa0\x9cC\xca\x22F\ -\x89\xaf\x85\xb1\xc8\x8d\x1c+\x9f\xee\x87\x84\xca`06\ -\xd7+\xd9!\xbd\x1d;]\xd9,\xfa\xf1\xe2l\x01q\ -v \x02=y\x0cc\xa7\xab\x1c\xab\x10\xdf\xe2\xe2\xd2\ -s\x94g\xb0\x8e\x09\xd44!\x08\x0a\x18l\xfa\xdco\ -\xcc{9\x1dp\xe4X\x854\x1bH2`\x1fL\xfa\ -\xec\xa1@\xa5\x0d1\x8f\x9d\xdb!\x0b\x0eQA0d\ -Lv6\xd0\xa3\xb6/>\x1b\xf8\xda\xb0\xca\x1e\xbd\xef\ -\xb3\xcc\xde\xa7\xa9\x9ax|+\x84\xc1\x9b\xf8\xc6\xea3\ -\xe8L\xb1$^&\x1c>B\xf6\xd8\xe7\x06\x05>\x83\ -cwFc\xd64\xbf\xf5\x1a\x80\xd0\xe6\xec\x1e\x0f\xdd\ -\x8c>\xcc\x91\x08:\xbf\xdbc\x08M\x96\xd02\xca\x19\ -\xf2f\xe4g\xbfM\xfe\x02\x0c\xcb\x83\xac\xfb\x1e(\x14\ -\xbeG\x1a9R\x94\x91{|\xa5` \x97&\x1aP\ -9\x0c/?l\xfa\xda\xb0rO\x1e\xea\xf1\x819\xf8\ -L\xafX\xcb\xc7\x8e\xfd\xe9\x8bL\xaf\xc4\xc1\x92x0\ -}\xb5\x0a\xda\xfe\x89\xcd\x17\xbf2\xe4\xb5a\x95\xddi\ -\x8d\x87gP\x83qy\xb2Ov4\x1c\xbb\x0dJ\xf4\ -\xec\xb3W\xd1\xc4\xf7\xa6\xa6\x8f@\x9d\xc1:E\xcf&\ -\xbb+\xad\x9d\x07\x17\xf2\x980\xbej~\xecf\x98\x9f\ -\x03|\x16+\xa1,\x0e\xa3g,\xc8R\xee\xa0,Y\ -0y\xaa\x81-\xa0\xc5\x91c%{!g\xee(\x90\ -\x09O\xf22\x86\xc3 \xaf5\xde\x876\x1dg7U\ -C0\x8c\xfe\xec\x90>\x1b@s\xfe\xf2\xd6\xf8rd\ -\xc8(\xcb9\x06\x1a\xfb\xf3\xc0\x12?\x9b'\xefo\x0d\ -:K6\x80\x0a\x9e\xddsO\x5c\x5c\xc6\xff\xab\x89\xfc\ -\xfd/\xd2V\x11\x0f\ -\x00\x00\x0c\x0d\ +\x00e\xaax\xda\xed]\xefn\xe3\xc6\x11\xff\x9e\xa7 \ +\x94\x0fIPs\xb53\xb3\x7ffu\xf6\x05(\x82\x04\ +\x05Z\xa0hS\xb4\xdf\x02\x9a\xa2l\xe5$\xd1\xa0\xe8\ +\xf39\xaf\xd6w\xe83u\x96\x12%.c'1\x8a\ +\x22\x80i\x1d\x0eG\xce.\x97\xbb\xbf\x9d\xf9\xed\xccp\ +\xc9\xbb\xfc\xfa\xd3v\x93}\xac\x9a\xfd\xba\xde]\xcd@\ +\xe9YV\xed\xcaz\xb9\xde\xdd\x5c\xcd\xfe\xf1\xfd\xb79\ +\xcf\xb2}[\xec\x96\xc5\xa6\xdeUW\xb3]=\xfb\xfa\ +\xfdg\x97\xfb\x8f7\x9feY&\x17\xef\xf6\x8bey\ +5\xbbm\xdb\xbb\xc5|~w\xdflT\xdd\xdc\xcc\x97\ +\xe5\xbc\xdaT\xdbj\xd7\xee\xe7\xa0`>;W/\xcf\ +\xd5\xcb\xa6*\xda\xf5\xc7\xaa\xac\xb7\xdbz\xb7\xef\xae\xdc\ +\xed?\x1fTn\x96\xabS\xed\x87\x87\x07\xf5@]%\ +\x08!\xcc5\xce\x11s\xa9\x91\xef\x1fwm\xf1)O\ +/\x95>>u)j\xad\xe7Rv\xae\xf9\xdbj-\ +\xf6\x82\xca\x9d\xfc=U\xef\x05j_\xdf7e\xb5\x92\ +\xeb*\xb5\xab\xda\xf97\xdf\x7fs*\xcc\xb5Z\xb6\xcb\ +A3\xeb\xdd\x87}Y\xdcU\xc9]{\xe1\x01\x81b\ +[\xed\xef\x8a\xb2\xda\xcf{yw\xfd\xc3z\xd9\xde^\ +\xcd\x0cwg\xb7\xd5\xfa\xe6\xb6=\x9d~\x5cW\x0f\x7f\ +\xac?]\xcdt\xa63\xc3\xd9Q\xbc^^\xcdd\x18\ +x\xa8s\x9eg8\x94\x1e\x9b_\x9cJ\xb4\x0a\xa8(\ +\xfb\x12\x8d\xb6\xd6\xb8\x8b\x0c5p\xae)\x07\xf8\xaa\xbb\ +\xa4\x1f\xd7bY\x97\xb1\xa3\xa2\x12m\xf9C}\xb7\xfa\ +\xa1\xdd\xffPn\xee\xf7m\xd5\x88\xf2\xa8\x88\xdd{\xb9\ +\xe0r[\xb5\xc5\xb2h\x8bx\xf1\xa1?\xbd\x04\xb0\xab\ +!ud\x0e\x17\x7f\xfb\xe6\xdb\xc3\x99\x9c\x97\xe5\xe2\x9f\ +u\xf3\xe1x*\xbfX\xa1\xb8\xae\xefe\xbc\xb3\xf7'\ +\xf1\xe5\xb2\x5c\x08\xea\xdb\xa2}\xbf\xde\x167U\x9c\xb0\ +?\x08\xca\x97\xf3sAR\xb9}\xbc\xab\xce\x8d\x1e\x9a\ +m\xaa\xc3\xf4=\xa9\xc3\xcbr\xbb\x8e\x17\xcd\xff\xde\xae\ +7\x9b?\xc5\x9b\xcc\xb2\xf9\xa8\xd1u\xbb\xa9\xce\xc2\xcb\ +\xf9\xb1\xf7\xc7\xb1\xcd\x07\x83\xbb\x9c\xf7c\xef\xce\x96\xd5\ +j\x7f\x86%\x9e\x81>6\x7fy\xc29\x82\xbc\x8c\xb3\ +{\xa8y'](\xebM\xdd\x5c\xcd>_u\xbf\xd9\ +\xa1\xe0\xban\x96U\xd3\x17\xb9\xee\x97\x14\xd5\xa2R2\ +\x18\x99\xfd\xa3\xb8\xbe\xfe\xb1*\xdb\xb6\xdeTM\xb1\x8b\ +\x00\xc8\xdd\x0f%7\x8d\xa8\xdaS\xf2\xfb\xf5\xb2z\xaa\ +\xe0\xa4H\xb1{\xa7\x1b=Y\xba\xbf-\x96\xf5\xc3\xd5\ +\x0c\xc7\x85\x0f\xeb\x9d\x14\xe4G-\x07\xb6\xfe\x99\x1a\xbd\ +\xe6\x83>W\x11\xfcN@\xf1Q\xb8\xbf\xad\x1f\xe2H\ +\xaef\xabb\xb3\xaf\xc6\xad\xfdT\xd7\xdb\xab\x19\xa9\xd0\ +\xfdx\x5c\x5c\x8a-\xb1\x22\xeb,Y\xfaYa\x84\x11\ +T\xb0`}x\xa6\x9br\xbd\xb5\xcf\x94\xc9\xe59?\ +S\xb6->\xad\xb7\xeb\x9f\xaa\xe5y\xa6\xce\xf7\xbdo\ +\x1a\xe1\xd4|Sh\x8c\xdcT\xb3v0P\x88\xb6\xfa\xd4\x1a\x8b\ +&\xefg\xa8\x15\xb5\xddG^\x90\xb2x\xb8)\xda\xea\ +K\xa3\x82\x09\xdex\xbc\xc8\xc1\xa0\x02d\xe3\xbf\xea\x89\ +\xe9\xaeho{c\x8f\xcc\x95\x11\xab\x00\xc6\x0b3R\ +P\x81\x90-eB\xf1\xd6A\x00\x7f!G\xde\xb3\xa6\ +\x90\xe5\xd2\x1d\xf2\xc4\xeeBDd\x18LVF!8\ +\xaf-\x8b\x90\x9d1\xccY.wt\x80\x10.\x04\xb4\ +\xe0\x0a\xb4\xca\x07\x1d\ +\x92}\x14\x12\x12\xb3\xf3\xe7\xfd\xeaS\xc4\x89$h\x19\ +\xa6/\xd1\xc7\xfd&6}\xf0\x14S\x9a\xac5LY\ +\x9frN\x1c\x03\xc1\x09\x08lbwq\x93\x05\x11\xb8\ +)\xe3\xe4\xe5O\xf20\x9c\x15\x82s\x9eR\x9c\xc0\x90\ +\xac\x81\x13\xc6\xc9\xe6!\xe1q\x8c\xe99\xd0\xa9\xdd\xb1\ +2\x12\xb7\xf8)\xebS\xccb\x8e\x09\x0a5\xb1K\x14\ +*(4\x12\xe3M{\xc1\xcbujyq\xcfIp\ +\xc6\xa7L.\xe0\xbdp7\xd3+\x03*\x88B\x99\x01\ +N\xa4%J\xf1N\x877&\x1f'3\x13\x8f<2\ +y\xdc\x7f2d(\xd4\x0a\x18\x11\xa6\xcc\xe4q\xcd\xe3\ +\x94\xc9u|\xd9\x0aR\x9c\x08\x1d\x87){\x9a1\xa1\ +\x99\x18\x9e(\x94G\xd2I\xaeN\xa2c\x22\xfb\xc2=\ +N\xaf\x8d\xa0H8j\x98\xfbE\xa3\x88\xd1$\xfb\x9c\ +b\xdc\xa7\x01'\x1d\xbbt\xc1\xb0N\x83\x98\xe4\xdd:\x01\ +I\x1bb\x9e2{C\x1a\xd4\xa1\x82`\xc8\x98t?\ +\x9dGm_\xb6\x9f\xee\x95\xa1\x94\xbe6\xde\xe5|\xbd\ +O\x12*q\xfbS\x08\xe7O\xc0M\xd2\x13\xd0\xa92\ +I\x88K8x[\xea\xb1K\xda\x09n\x06\xa7\xecV\ +\xc6L\xe6\xe8!g\x00B;\xe2\xef\xb8\x7fe\xd2A\ +\x8a\xc4\xbc\xa3'-\x86\xd0\xa4\x09'\xa3\x9c!o&\ +\xbc#\xda\x8c>\xd5`\xf9\x9c\xfe>B\x84B\xe8H\ +\x13\xc6\x88R\xfa\x8e\xdf\xae\x0b\xe4\x92\xa4\x00*\x87\xe1\ +\x85\x9b2_\x19Jn\xfc2\x8b\x0f\xcc\xc1\xa7\xba\xc4\ +Z~v\xcao \xa4\xba$\x0e\x93\xc4q\xc9\x87?\ +\xd0v\xef\x22\xbe\xec\xb3\x16\xaf\x0c\xa5\xf4\x99f\xdc\x89\ +\x82\x1a\x8c\x1b\xa5\xe1d\xc1\xc2)[\x9c\xc4\xbb>\xfd\ +DJ\xfc\x10g\xf2\xd2\xcf\x1bL\x87x\xd7\xa4O~\ +\xb5\xf3\xe0\xc2(\x96\x8b_\x22\x9f\xb2\xd1\x8d\xf6\xce=\ +\x85\x92P\x13\x87I3\x13\xa4\xa9oP\x96,\x98Q\ +Z\x80-\xa0\xc5\x09\xa3$\xeb\x1c\xa7\x8e%\x90\x09\xe3\ +\xec\x89\xe1pN;M\xf4uD\xc7\xe9\xe3\xcb\x10\x0c\ +\xa3\x7fs-\xc7!/\x8f>\x03\x1a\xbf\xab\x0b)5\ +9\xc7@S~\xbbU\x22^3\xfe\x12h\xd0ib\ +\x00T\xf0\xec~\xfe\xd6\xc1e\xfc_-\xde\x7f\xf6_\ +:\x85\xf5\xe2\ +\x00\x00\x0b\xbc\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs8\x22 />\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \ +\x0a \x0d\x0a Bus\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x15\x91\ +=\x220\x22\x0a id=\x22\ +path816\x22\x0a \ +d=\x22M 7.4185002,3\ +5.023041 H 40.65\ +5232\x22\x0a sty\ +le=\x22fill:#333333\ +;fill-rule:eveno\ +dd;stroke:#33333\ +3;stroke-width:6\ +.43819857;stroke\ +-linecap:round;s\ +troke-linejoin:m\ +iter;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1\x22\ + />\x0a Bus\x0a <\ +/g>\x0a\x0a\ +\x00\x00\x15\x8b\ \x00\ -\x00Ogx\xda\xed\x5cY\x8f#\xd7u~7\xe0\xff\ -Pi\xbdX\x08\xab\xfa\xeeKkZ\x06b\xc1\x88\x9f\ -\x12\xc4\x16\xf2\x18pH\xcetGl\xb2A\xb2g\xd1\ -\xaf\xf7\xd9\xeeRd\xb72V4\xb2-h\x0ckx\ -o\xdd\xf5\x9c\xef\xacuj^\xfd\xfe\xc3\xc3vx\xb7\ -9\x1c\xef\xf7\xbb\xdb+=\xa9\xaba\xb3[\xed\xd7\xf7\ -\xbb\xb7\xb7W\xdf\xfe\xe5\x8fc\xba\x1a\x8e\xa7\xe5n\xbd\ -\xdc\xeew\x9b\xdb\xab\xdd\xfe\xea\xf7_\xff\xf67\xaf\xfe\ -e\x1c\x87?\x1c6\xcb\xd3f=\xbc\xbf?\xdd\x0d\x7f\ -\xda}w\x5c-\x1f7\xc3\xef\xeeN\xa7\xc7\x9b\xeb\xeb\ -\xf7\xef\xdfO\xf7\xd29\xed\x0fo\xaf\xbf\x1c\xc6\x11\xa6\ -\xc2\xe4\xe3\xbb\xb7\xbf\xfd\xcd0\x0c\xb0\xf7\xeex\xb3^\ -\xdd^\xc9\x9c\xc7\xa7\xc3\x96\xc6\xaeW\xd7\x9b\xed\xe6a\ -\xb3;\x1d\xaf\xf5\xa4\xaf\xaf\xba\xf1\xab6~\x85'\xb8\ -\x7f\xb7Y\xed\x1f\x1e\xf6\xbb#M\xdd\x1d\xbf\xe8G\x1f\ -\xd6o\xeap<\xd2{K\xa3t\xce\xf9Z\x99kc\ -F\x181\x1e?\xeeN\xcb\x0f\xe3\xd9\x5c8\xe7ss\ -\x8dR\xea\x1a\x9euC?q\xd8\xcd\x11(\xfb\x08\xff\ -\xaf\xe3K\xc7t\xdc?\x1dV\x9b70q3\xed6\ -\xa7\xebo\xfe\xf2M}8\xaai}Z\xf7\xeb\x14\xc2\ -\xce\xf6\x9dQ{\xb7|\xd8\x1c\x1f\x97\xab\xcd\xf1\xba\xf4\ -\xf3\x02\xef\xef\xd7\xa7\xbb\xdb+\x97\xb8y\xb7\xb9\x7f{\ -wj\xedw\xf7\x9b\xf7\xff\xb6\xffp{\xa5\x065\xb8\ -4)\xfc\xa3\xdb/\x1eu\xbf\xbe\xbd\x82\xab\x19\x99\xd3\ -\xf0S\x9e\xcb\x967\xf5\x91\x9a\xb2\x99\xec\xf0;\xe3\x94\ -\xf7.,\x06\xa3t\x1a\x95\x1d\xb5\xfe\x92\xe7\x94\xdb\xde\ -\xac\xf7+<=\xecp\xb7\x7f\xff?\xab\xfdv\x7f\x80\ -\xff\xeeN\x87\xfd\xf68!A\xbf\xc6\xf1\xaf\xd6\x9b7\ -G\x9a\xc8\xc7\xc1\xa6\xe3G\xf0p\xb5\xbd\x7f\xfc\xcf\xe5\ -\xe9N\x06\x0cC\xe9\xf8vw\x7f\x02v=\x1d7\x87\ -?#y\xfec\xf7\xedQ(SV*C\x93\xf1e\ -=X\xf1\xb0Y\x9d\xea08\xed\xe9\xe3\x16\x8e\xf8\xe6\ -~\xbb\xbd\xd9\x81h|\x85\xbf\xc6=,y\x7f\xfax\ -\xa3\xa6\xe4\xb2\xd7\xce\xdb\xaf\x8ep\xee\xef67_d\ -\xfa#\xcd\x91\xb8pc\xa7\xe4\xa3\xd3\xce\xf8\xd2\xbf\xbd\ -\xdfm\xfew\x7f\xbf\xbb9\xec\x9fv\xeb\xd2\xfbp\x7f\ -\xda\x1c\xb6\xf7\xf0\xd7\x8d+}\xeb\xe5\xf1ny8,\ -?\xd2\xf6W\xdd\xd1\xf0\x0ex\xdadb\xdf]\x18\xef\ -&\xdc0\x85\xfeYE\xc1s\x0f? c\xb3IQ\ -E\xdd\xf7\x7f\x84~\xa5\xc2d\xb2\xca}\xff\x81\x1eL\ -:\x85\xe8\xf5\xd5p]xr]\x08\xcb\xfc\xbbF\x8e\ -\xf1\xcf\xcaz\xe4\xfb\x1a!\xd81\xf6\xf5\xb21\xe8q\ -\xf9vC\x80\xb8\xbd\xfa\xe2\x0d\xfd)O^\xef\x0f\xeb\ -\xcd\xa1<\x0b\xf4g\xfeLx\xc3Z\xae\xac_p\x8a\ -\x0b\xd7\x01\xea\x85\x01@\xf0\xf5\xfe\xfd\xed\x95\xb9x\xfa\ -\xfd~\xff\x00\x0b\x9b\xc9\x85\x14\xfd\xc5\xe3\x15\x90\xd0\x82\ -\x04\x01m\xb3\xbb|\x8ag\x8a\x93\xd6\xd6\xe5\xcb\xa5A\ -\x1a\x9eP\x11\x8eO\x8c\xdc\xc7\x0f\x97\x0b<\x1d\x0e8\ -b\xbb\xfc\xb8\x81\xdb\xd3_\x95S(Do\x0fH\xc8\ -7\xcbm\xa3\xe4\xcb\xab\xbd\xbf\xdf\xc1-G\x81\x8bN\ -\xde\xbe4\xa4\xa0F+\xe3_\x1a\x037\x0f\xf1\xa5\x87\ -pq\xf3\xe2\xc3\x87\xe5\x07@\xfc\xf7\x1b8yE\xd1\ -\xab\x87\xcdi\xb9^\x9e\x96\x1d>JW\xac\xc2\x0f\x1a\ -\xfd\xe6\xbf\xbe\xf9c\x93\xdd\xd5\xea\xe6\xbf\xf7\x87\xefz\ -\x8c\xc2\x90\xe5\xeb\xfd\x13\x9c\xbe\xc98*\x95\xd5\x0d\xe8\ -\xe0\x87\xe5\xe9\xeb\xfb\x07\xe08\xea\xef\x7f\x05\x95\x0b`\ -\xad\x0f\xe6\xa3O\x1f\x1f7\xdd\xba\xbc\xf2a\xc3\xea\xfc\ -Y\xc3\xb6^\x81\x1c\xc3\xac\xeb?\x9f@e\xfc\x09\xb7\ -iBR\x97\xbd?m7]/\x08\x0f\xdf\xa1\x0aS\ -\x7f\xc9W\xd7\x85\x08\xdc|{N\xd2\xed\xf2\xf5f{\ -{\xf5\x87\xe5\xe3r\xd0\x17\x04\x7f\x0b\xca\xe6\xf1a\xbf\ -\xde\x08v\xae:\xea\xce\xc1t:,wG\xa4\xc3\xed\ -\x15\xfd\xdc\x82\x03\xf0;\xb5\x18A\x0f\xb8\xc9\x06c\xbe\ -\xacLx;\xd3\xa9\xbc\xcch;M\xfb\x83g{a\ -\xab1\x80lz\xa3\xa3\x87=A\xda\xac\xb5\xca}\xd9\ -&\xf5Z\xf9\x8b\xd7\x16\xffW\x15\xb0\xe8\x84F\xd2\xc7\ -\xde>\xc5<(\xd29fa\xa7\xac\xed0\xea\ -\xc9\xb8\x18LX \x8d#\x8e\xb6N\x99`\xa0m\x92\ -\xf5\x03\xff\xe55\xb4\xc1\xb0\xd1\x00\xaf\x95\xcd\x16:|\ -\x88\x1aW\xd0`\x0btX\x8c\xbct\xb7\x06\xfc\x8a\xd9\ -\xe6\xe1\xae\xee\x13\x87\xed0\xda\xc9X\xe3R\x82#E\ -\xc5\x87\x80\xa3\xa5\x94y\x82\xc3\x8e\xe0\x9c\xcf\x196\xb1\ -9\xd6=\x22\x0e\x08Iy\xdc\x03\xeed\xac\xeb{\xe4\ -`\xb2H\xb9(\x13\x00\xdb\xed9\xfe\x82\x8e\xe4U\xf0\ -\x9e\x960\x96H\x83\xe7\xd12\xc5\xd2\x9apGEs\ -\x84\x82\x9f)FBC\xbf\x02\xc1\x8b\xc4\x09\x00\xb6\ -`\xc5\x1c\x1ah;\x8c6MI\xa4\x849\x11\x86\xc2\ -\x1c3\x19\xad\xe3PUH\x19Qo:\x9e)F\xdd\ -+\xf5\xb6Q\x99\x84\xc8\xf3\xdd>D\x9f(PbA\ -\xd0\xb9qX\x90VpT\x95\x86\xe8\xb4F\x9ej\xf1\ -\x04D\x04J\xdd\x8b\x0e\xa9\xb2:\x9ew\x1e\xf8zp\ -\xf3J\x9b\xa6.Hx\xaa\x12\xaa\xda\xb8j{\xb9\x92\ -\x98\x90\x06\xa9\x02\xa1B\x16\x1a`\x9a\xb4U\xf5\xc3\xc2\ -L\x80px#B\xc0\xbb\xa1h\xaa\xed\xd0\xdbI\xc2\ -\xd3\xbb\x22&\xac\xac\x1a\xa7\xc9Rw\xc6K\x04\xa6i\ -\x1a\xa1\xa7H\xa10\xfe\xdd\xc0\x87\xd8\xf6\xa7\x12\x9c\xca\ -\xa9+N\x1b]\xc8h\x15\x85\x1e\x17\xa2\xf3:33\ -VE\xd3\x1b\xf5\xe2J\xb0D\xe0\x05\xaaM(w\xe7\ -\xbf]\x0e\x8b\xb1x\x17=d\xc4#jv^\xcce\ -\xb3\xea|\xb4\x1ew\xa8\xe2\xab\x0d/SV\x83Z\xa8\ -\x99>\x91;\x16\x1a\xcc\xc8)\xba\xbdR\x93\xae`/\ -\xda\x1d\x11G\xb1z\xb2\xb1o`\x91\x83\x09\xfa\xaa\xe6\ -fJ\xcc\xe4\x03\x0fn\xa6h\x8c\xca\x1e\xd4\x935\xde\ -t`\x02\xdc\xc2\xd1a\x00`;\x83<\x98\x09w\xae\ -Bxf\x9f\x9av\xc1\xdej?gd\xe8\xb4\xac\xac\ - \xc6\x03\x89P\xc5\x81W\x98\xcb\xe7\xa2\xc3+\xcfm\ -x#\x0d\xde\xa9x\xf1\xea\xaa\xb4!\xbe\xdd\xb9\xe1k\ -N \x01\xbc\xa9:^m\x94v\x81B\xf5\xf8\x84:\ -\xcd\x0e\x89e\xaa>\xe2\xd8nC\x86U\xdc\x96T\x11\ -\xdb/Y\x0cW\xed \xe80K\xab\x86\xba+\x9b\xf2\ -\xed\xcb\xe9\x85\xf8|\xfc&\x8e\xb8\x94\x13\xbf\x03Z>\ -\xc3`\xe3\x81\xf7\xc0\xdb\xef\xcf\x13B\x18\xec$=\xcb\ -\xd3\xb4\xfc\xc1~\x07\xd1\xcai\x7f\x18WO\x87w\xcb\ -\xd3\xd3\x01\xe2 \xd5\x0fm\x09\x1a\x88\x121x=\xde\ -^\xad\xfe)\xff\xf4\xa1\xf6\xcf\x12\x01\xbe~:\x9d.\ -\x02@\x8a\xf9\xfe\x1f\x01\xe0E\xb4\x97\xed\xe4R\xce\xa0\ -\xeb4\xc0aJ\x00C\x0a\xb4\xc0\x11s\x09%B\xb1\ -K\x13c\x8e\x0cY\x89\x93\x82R\xe2GA\xf4.2\ -\x8c0\x85\x98,\x90\xd8\x86L\xb85\xda\x84@Q\x89\ -\xc4 \xc1\x12\xd0\x95I\xf3PH\xfbp\xd9A\xf6\x05\ -w \xed\x05Q;\x07G\xb0(\x19\xebH\x08v\x01\ -\xd4\x0ayK!\xa1m\x85-\xacXo\xd26\x00w\ -\x12\x15Q\x1d&\x06\xc7\xee\x9c\xd6\xe8\x5c\x013\xac\x8b\ -\x9d\xa6\xc9\xd9\xb8Ny4E\xafH\x9c\x94\x92\xc8\xcc\ -;\xf6\xe3q=\x12M\x22\x96\xc2P\x04\xcc\x19u\xe8\ -\xf4\x92H\x19\xfd\xb7\x88\xd4/\x13|1#K\xd1m\ -\x01\xf0\x85\x09\xe8Ia$\x1a\x93\xd8\xe9/\x85\xbe@\ -\xf5]\xc7:\x02\x9e$\xf1T\x88\xf3\x04\x16oS$\ -\xe4j \xfe,\xd5 \xda\x8fW\xab\xdc\xb6\x1a\x8c_\ -(\xa6\xaew\xad3,\xfe\x02\xef\xec\xaf\xbcK 8\ -\x16\xc3E`\x9d\x07\x07A\xb3]C\xfbUM\x0d2\ -\xc6*\xcb\xc6\x88\xcd\x188\x18\x9e\x85\x91\x03\x15\x03\xd3\ -\xc94k\xa5^\x14\x15\xff\x93[\x9f_\xaa@E\xd0\ -A:\x98\xcc\xda\x5c{V`\xc9\xbb\xc0\xd1\x8b\xe6\xac\ -\x88\xb2J\xb1\x83\x92\xab\x1fJ\x1a\x17\xc2e\x96\x05#\ -\x8e\x8dw6s\x07+^\x88\x12P\xee8\xd7\x02\xab\ -Q^\x04d\xc6_vl\x05\x10\x9c\x97\xd0\x9eRJ\ -\x1e\xe4\x93\xa43\xc1\xd1^`w\xfcU\xba\x92\x9f\xb2\ -'&1#\xb3\xa7`\x88\xa4\x854c\xd6\xe4\x89\x82\ --\xe2h\x09\xa3J\x91&V\x9d^#\xebUP\x1a\ -S\xde\x00\x0br]\x91\xec\x1c\x1aYLET\xce;\ -\x88R\xbd\xb8\xb0\x86=\xfc\xac\xc1\xeaR\x8f3v\x06\ -\x1aI_\x19%a\xb61\x9c\x9d;\xeb\x91\xa5\x83'\ -@\xca\x91F6\xc7\x1c\x1b@\x98\xc6\xce\xb0\xa2\x04\x0c\ -k\x08\x93\x14\x8c@\x88\xd8\xe7:\x08Uxx\xc5N\ -\x82\xe2Ae\x0d\x08\x85j@a!\xaa\x89\x086\xef\ -\xb4\x9d\xb5\x89z\x8b\xe2\xcb\x94\xb9!p^I9\xda\ -.\x82\xdb\x8b$\xc4-pw#;q\x8e,E\xa6\ -S\xdf|\x01\xcf\xf9W<\xa70\x05\x05^RD<\ -\x03\xa5%[+\x0a\x07\x03%!\xaeQ\x0a\xa1\x81x\ -\x94\xd4[\xe2\x1ci\xe8\xc0ZY\x12\x19\x8a\x82^\xf4\ -\x14%\xf7A\xb0GWn(\xb8\x85M\x9d\x0eC\xe3\ -v\xf4\x9a\xbc=\xd9Qs:\xbf\xda\xa3d\x8c\xbeh\ -cte\xa3\xca&\x95\xdd{,\xa246\x99#\xe4\ -\x93G\x11\x08P\xacm\xe9\xbc|~\x14\x05\xc3>J\ -E\xb3\x7fQ+\xda\x7fh\x7f\xf1\xf3\xbc\xae\xba\x80Q\ -HS\xd2\x0a\x93;\xc0-\xf8\xed)u\xe5\x83vL\ -O\x92\xd1\xca\x12i\x17u\x90\x92\x91\x1c(\xfe\xc28\ -\x81\xcd\xd9X\xa1\x81\xc3I\xf4\x8d#u*3X\x05\ -]\xb4\xb7m\xc6\xc8\x87@\x15\x9d\xb0\x8b\xce\x12$0\ -\xe7\xe3\xd1p\xb0\x85\x96\x91\x1b8\x0f\xe6\xf0GU\xc7\ -\x0c\x08\x82#<\xd6\xd0\x99\xac\xe4\x8f2\xe6\x0c\xb35\ -\x96qC\xef[\x14\xaa\xd6\x85\xe8j\xce\x22\x88\x82#\ -\xb3>\xf6\x06CnT\xb1\xe9\x08\xdd\xe0\xc0e\x09\xb6\ -2\xe5\xb0\x5c\x85\xa6\x9a\x9b\x0b\x9e],@\xd9\x10o\ -c\xbc\xe4\x059\x07F\xba\xba\x0c)\xe25\x8a\x0e\x1e\ -+\x09F&\x15e\xd6\xf0V\xba\x85\x96(W$r\ -E\x9aQl\xc4-\xb1M\xba)\xf2\x22\xb6\x18\x0b6\ -2t\xfcG\x11g\x89\x8c\x8a\xdcRtB\xd8\xbai\ -c\x8b\x0c\xc7E=6\xdd\x93\xd4\x0c_\x8b\x9b\xac\x7f\ -r\x1f\xdc\x82\x15\x95\x8d\xc3\xac\xc3j<\x89\x18\xc7\x8e\ -Ph\x8e\xce\x9ad\xc0\xa2\xd61U(b\x87C/\ -\xad'\x14\x12Nq\x12\x0f\xc8\xd3\x0e!\x1a\x09\x09\x18\ -\x99\x80@\xa7\xc0\x5c\xf2\x92\xacd\x1dW\x09\x16\xd0\xfb\ -r\xd5o\xb8\xec\xa13\xb9z(4\xe43<\x95\x8e\ -f\xe1Y\xd3\x89\xda\x02\x06\x84\xa1g-\xe9\xb1\x22w\ -\xe8\xd9\xfbnX\xd1\x86\xc4\xbd\x9e\x9d\x92\x9b\xab\xea\x12\ -\xf9\xfaL\x0f{\x00\xec\xf9\xb0gZi\xd3\xee\x9dz\ -\xecq\x0b\x80\x99\xe8@!!\xdb;\x8d}\xde\xc1\xe9\ -\xc8\x8a*\xa79\x85\xef\xf0\xa4\x1c\xdc0\xb6\xf1f\x95\ -\xe7\x84\x05y\xc1G\x8f\xdb\xb1\x81fvv\x1eW\x9c\ -9\x96fM\x96\xe8\xacc[\xa0\x9fD^\xd9 \xa2\ -\xc4\x96\xf72\x94[t\x09\xd1\xdc\x9c\xf2\x0am\xf1W\ -\x9cC\xd3V\xc4i\x8eef\xa5n\x96w\x14\x9bY\ -\x94\x18Q\xced\x15Ml~\xddy\xc7\x1dG\xe0*\ -w\xca\x16\xe2\xbe\xc4C4\xbf\xb2\xc2S\xb0?)v\ -\xb3\x80\x87\x9fVZjI\xa6\x83\x84\xf1\x9b;\xa8\x9b\x03\xa8\ -,U%\x88NZ\xd1\xe6\xb8^\xa0j3rG\xaa\ -\xf8\x94n\xd0\x81\xa9o\x9f{\xce\xea\xb9\x0e\xc1[\x15\ -t\xb2\x81c\x17.\xd1Q{\xe1q}\xcc\x02\x01s\ -\xbel\x93\xf0\x90\xf7\xea\x17\xd5\xc5\xc3\xd4I\xdff\x9c\ -\xcd\xcc%_\xbbYK\x86\xaf@\x8c\xdc\xeeN\xca\x01\ -\xad\xba\xb9d$I\xe6\x1c8\xec\xbdV\xf1\xad\x91\x14\ -b\xa2K\xe30\xe2Dy\x08\x06\xca\xae\x91\x1f\xce\xad\ -]\xc5\xa3{A\xb53\xa7\x8b\xaai\xd0\x0e\x9d\xd7\xd2\ -\xb4*9\x1c\x0dn\xe5\x86\xf2\xb8\xa2\xa4\x9a\xdev\xec\ -\xce\x10\xd7pe\x9c\xca\xf5\xbd<\xd7\ -\x9e\xb6\x9a\xa5\x1f*\x7f\x93\x22\xc8\xb3\x0e\xf1%\xb8\xd6\ -P]\x94\xa1\xcd*1\xa8M\xef\xee%\xf8&\x07\xc1\ -\x81\x8e5}\xe9@w\x84D\xfe3V\x04s\xa5\x1f\ -;\xd0\xad\xf2^\x07\xc3\x92\x8b\x15(\x9c\xb8\xe0\xe4|\ -\xd9E\xaa\xc5.{\xb6\xdd\xc2R\x0c_\xd3 \xf5\x84\ -!q\x06\xa2\x9e0\x06\x1f.N8\xb6\x82\x84R\x8c\ -x\xd1\xb3\xedj\x9f\xbb\xef%\xa4\xe2\xb4}e0+\ -\xda\xd4\xb32u\x5c\xb1\x1b\x82\xef\xe4\xd2\xbc\x02;=\ -w\x07\xa6:U_t\x1f{\x94\xf2\xc4\xfa\xe1FW\ -\xc6\x1d.;\xcakA)\xbb\xa6\xc0\xc8\x18C\x1fj\ -HQ\x90\xa6\xf2\xda\xd6N\x86\x934T\xe7\x0d\xd7\xc8\ -\xc6\xd9\x9ed\xb5f\xa3\xdck^I\xdeW\xb2\x97O\ -\x1bf\x1f\x12tE\xe0\xc0\x1fw\xd1\xe6\xf4(\x15\x93\ -\x97\x92\xc6\x16\xbd\xcd\xeaE*~j!\xb0\xa6\xb2\xe7\ -E\x05 \xf3_\x86\xe3;\x22\xa3\x03\xeb]_\xbf\xa1\ -0\xb58/\xc5\x5c^\x1d\xf1\xf0Z8+\xc4\xae\xa5\ -0\xf2\xdd\x88\xcf\xde\xf9\x5c8\xca0\xf3y\xd1\xd5\xa4\ -FI<\xc8q\xb1r\x86\x8a\xf6k\xa1a!\xfeY\ -\xad\xf9Pkk\xdaqJe\xfcl^YY\x8a\xb9\ -[\xd5\xe5\xbcC\xe8\xd7J\xbe\x89\x02}\xc1\x0e\x93\xa0\ -\x96\xc2\x0boK\xfd\x0eBT\xc8+\xef\xe7f\x95\xf1\ -R9_\x11Ne\xd0\xe7\xed\x17\xcc\x96\xffQ\xaf\xda\ -^]\xbf-\xbffv\xe0\x9f\xd1\x0a\x90\x0d0\x11\xe0\ -\x1a0o\x86\xef\xdc\xc0%\x8a\xb1\xa8#\x0ax0\xf5\ -0HE\x1f\xbe\xb7\xf0\xd8\xca\xd6\x93\xe4I\x18\xac\x93\ -\x13#\x81\xbf\xa4XK9.=h\xbaJ\xa1\xb2\x95\ -\x8a9)6\xf0\xce\xf5\x85D\x5c\xf3\xc7O\xd8\x83I\ -Z\x22w\xf9\xe8\x02td)H\xe4%P\xd68_\ -\xccN\x9e\xf3\xc9\xc6\xce\xe9\xeb\xdb\xdf\xcf?\xe5f\x1c\ -\xc4g\xbe:\xfc\xbf\x9c\x97\x17]\x97\xe3\xdc[\xf8\x87\ -\xc0H\xfb0\xf0G|0\xce\x18\xc9H\xe7\x18\x09#\ -\x01\xb8\x15\xb9.\x05\xb8\xc3\x11f+s\x17\x9c\x88\xc6\ -\x05SF\xc91\xe2V\x01\x00O\xa0BO\x1d\xa9h\ -\xd4R\x05\xfcY[^+a\x99'\xc1\x90*\xc9\x18\ -1\xd2d\x0f\x1ck\x91\xd87\x8e\x1c\xc33\xe3\x9d\xcd\ -^\xb5\x88WeP\xc120P\x16\x8f\x93\x80\xfc\x06\ -\xd5\x05\xaa\x8f\xa6a\xad\xc2\xad\xd5\xafV\x18\xc2y.\ -?\xeb\x1a\xbbs\x05[\xeb_\xabz*\xd7\xe6o0\ -\x0aM\xc4\xce\x86l\xe9\xd2$9\xddgH ~n\ -\xa8\x17\x9c\x14\xd7)d\xae\x04b3#Z}\x94\xa7\ -T\x95;\xbbEW\x85\xdb\x7f1\x03\xca\x94\xb7\x8a\xf2\ -r\x08g\xa2\xe6O\x22*A\xe5p\xd9.\x89L\xd2\ -\xc5\x14\xaa\xe44\xffF\xa2\xf4\x88u\xe4\xdc.0\x95\ -\x054\x8a\xd9/u\xb3\x10\xa2\xe6f;e\x84\x1c\x8b\ -W3\xf1\xb2-\xef\x00\x8b\xe6\xb0:\x9f}I\x19\xed\ -\x5c\x93\xf0\xe5\x99rc-'>\xeb\xd8\xce\xe6xo\ -{\xfaA\x84\xd6\xbd},\x83\x8a\xe7\x08,W\xfc\xf5\ -(\x901\xcfI$P\x0c\xe2\x00\x97\xa6T2\xb3\x18\ -P\xa51*\xb2^B\xce\x04\x86\x83\xedE\xb9\xcd\xfc\ -+\xbf\xde\x1e\xa2\xd2\xa5q1\xf5\xb049\xc6\x8bv\ -}\x9d*\xa4SZ\xde7xy\xf9X\x16)\xa5\xd2\ -\x05\xfb\x0c\xd9Q0:+\x8e.\x9f\x1d\x96\xf2i\xb9\ -b\xf1\xb6\xeb\xe3RAZ1$_\x01\xcaW\x8c\xec\ -e\xb43\xa1F\xe8\xdfd\xf1-\xe4\x8f\x85\xf8\xf7\xc3\x82\xd11\ -\x19\xfd9\xa9\x12\xa6$\xef\x14\x81*\x19\xbf\x023 \ -\x1f!+\xab \xaa\xb6S\xb2)=K\x95\xcfj\x1d\ -V\xab\xcf,\x01\x11\x9cUg)\x19\xaa\x13\xd8K\x8f\ -Z\xc1\xfb\x98<\xc0\xc3L\xe04\xc7\xe7n\xed\xfev\ -\xfb\xc0I\x84W\xf8\xef\x07\xc1\xdf\x7f\x05\xd5r}\x98\ -\ -\x00\x00\x0a\x9b\ +\x00N\xb9x\xda\xe5\x5cYs#\xc7\x91~\xd7\xaf\xe8\ +\xa5^\xa4Xt\xb3\xee\x83\x1a\xca\x11k\x85\xc3~\xda\ +\x0d\xdb\x0a?n`\x00\xcc\x90+\x10`\x00\xe0\x1c\xfa\ +\xf5\x9bW\x1d\x0d\x90\xb2\xb4\xab\x91mi\x1c\xd6\xa0\xaa\ +\xeb\xcc\xfc\xf2\xec\xecy\xf5\xbb\x0f\x0f\xdb\xe1\xdd\xe6p\ +\xbc\xdf\xefn\xaf\xf4\xa4\xae\x86\xcdn\xb5_\xdf\xef\xde\ +\xde^}\xfb\xd7?\x8c\xe9j8\x9e\x96\xbb\xf5r\xbb\ +\xdfmn\xafv\xfb\xab\xdf}\xfd\xd9\xab\x7f\x1b\xc7\xe1\ +\xf7\x87\xcd\xf2\xb4Y\x0f\xef\xefOw\xc3\x9fv\xdf\x1d\ +W\xcb\xc7\xcd\xf0\xc5\xdd\xe9\xf4xs}\xfd\xfe\xfd\xfb\ +\xe9^:\xa7\xfd\xe1\xed\xf5\x97\xc38~\xfd\xd9g\xaf\ +\x8e\xef\xde~6\x0c\x03\xec\xbb;\xde\xacW\xb7W2\ +\xe1\xf1\xe9\xb0\xa5\x81\xeb\xd5\xf5f\xbby\xd8\xecN\xc7\ +k=\xe9\xeb\xab6|\xd5\x86\xafp\xf7\xfbw\x9b\xd5\ +\xfe\xe1a\xbf;\xd2\xcc\xdd\xf1\xf3n\xf0a\xfd\xa6\x8e\ +\xc6\xd3\xbc\xb74H\xe7\x9c\xaf\x95\xb96f\x84\x11\xe3\ +\xf1\xe3\xee\xb4\xfc0\xce\xa7\xc2\x19\x9f\x9bj\x94R\xd7\ +\xf0\xac\x8d\xfcq\xa3n\x8e@\xd0G\xf8\x7f\x1d^:\ +\xa6\xe3\xfe\xe9\xb0\xda\xbc\x81y\x9bi\xb79]\x7f\xf3\ +\xd7o\xea\xc3QM\xeb\xd3\xba[\xa6\xd0s\xb6\xeb\x8c\ +\xc8\xbb\xe5\xc3\xe6\xf8\xb8\x5cm\x8e\xd7\xa5\x9f\xe6\xbf\xbf\ +_\x9f\xeen\xaf\x5c\xa2\xd6\xdd\xe6\xfe\xed\xdd\xa96\xdf\ +\xddo\xde\xff\xc7\xfe\xc3\xed\x95\x1a\xd4\xe0\xd2\xa4\xf0\x8f\ +n\xbfh\xd0\xfd\xfa\xf6\x0a.exF\x03\x8c<\x95\ +\xcdn\xea\x135e3\xd9\xe1\x0b\xe3\x94\xf7.,\x06\ +\xa3t\x1a\x95\x1d\xb5\xfe\x92\xa6\x94[\xde\xac\xf7+<\ +6,\x7f\xb7\x7f\xff\xdf\xab\xfdv\x7f\x80\xff\xeeN\x87\ +\xfd\xf68!\x1d\xbf\x86\xe1\xaf\xd6\x9b7G\x9c\xc6'\ +\xc1\x96\xa3\x07\xf0h\xb5\xbd\x7f\xfc\xaf\xe5\xe9\x8e\x1f\x0f\ +Ci\x7f\xbb\xbb?\x01\x87\x9e\x8e\x9b\xc3_\x90&\xff\ +\xb9\xfb\xf6\xc8\xe4(\xcb\x94\x91\xc9xY\x0c\x96;l\ +V\xa72\x08\x8ey\xfa\xb8\x85\xb3\xbd\xb9\xdfnov\ + \x02_\xe1\xafq\x0f\xeb\xdd\x9f>\xde\xa8)\xb9\xec\ +\xb5\xf3\xf6\xab#\x1c\xf8\xbb\xcd\xcd\xe7\x99\xfeHs$\ +\xc2\xdf\xd8)\xf9\xe8\xb43\xbe\xf4o\xefw\x9b\xff\xd9\ +\xdf\xefn\x0e\xfb\xa7\xdd\xba\xf4>\xdc\x9f6\x87\xed=\ +\xfcu\xe3J\xdfzy\xbc[\x1e\x0e\xcb\x8f\xb4\xfdU\ +;\x19^\x00\xcf\x9aL\xecz\x0b\xa7\xdd\x84\xdb\xa5\xd0\ +=\xaal\x7f\xe6\xd9\x07\xe4e6)\xaa\xa8\xbb\xee\x8f\ +\xd0\xadT\x98LV\xb9\xeb>P\xff\xa4S\x88^_\ +\x0d\xd7\xc2\x88\xebBO\xe2\xd852\x89~UV#\ +\x9f\xd7\x08\xb7\xc6\xc9\xd7\xcb\xca\x93\xc7\xe5\xdb\x0d\xb1\xff\ +\xf6\xea\xf37\xf4G\x1e\xbc\xde\x1f\xd6\x9bCy\x14\xe8\ +\xcf\xec\x91\xb0\x83\x15\x98\xac]\x10\x89\xab\xd6\xe7\xea\xf9\ +\xe7@\xe1\xf5\xfe\xfd\xed\x959\x7f\xf8\xfd~\xff\x00\xab\ +\x9a\xc9\x85\x14\xfd\xf9\xd3\x15P\xcd\x82\x94\x005\xb3\xbb\ +x\x88\xc7\x89\x93\xd6\xd6\xe5\x8bu\x01\xf3O\xa8\xe1\xc6\ +'\xc6\xe8\xe3\x87\x8b\xe9O\x87\x03\x0e\xd8.?n\xe0\ +\xd6\xf4W\xe1\x0c\x0a\xca\xdb\x03R\xef\xcdr[\xc9\xf7\ +\xe2R\xef\xefwp\xbbQ\x90\xa1\x93\xb7/\x8c(\x00\ +\xd1\xca\xf8\x17\x86\xc0\x8dC|\xe1\x19\x5c\xd8\xbc\xf4\xec\ +a\xf9\x01`\xfd\xfd\x06\xce\x5c\x00\xf3\xeaasZ\xae\ +\x97\xa7e\x03C\xe9\x89E\xb4AC\xdf\xfc\xf9\x9b?\ +T\xd9\x5c\xadn\xfe\xb6?|\xd7!\x11\x06,_\xef\ +\x9f\xe0\xd4U\x82Q[\xacn@\xa7>,O_\xdf\ +?\x00\x7fQ\x1d\xff;\xe8P\xc0d}0\x1b|\xfa\ +\xf8\xb8i\x8b\xf2\xb2\x87\x0d+\xe7g-\xd4z\x05B\ +\x0a\x93\xae\xffr\x02}\xf0'\xdc\xa4\xcaA]\xf4\xfe\ +\xb4\xdd\xb4N\x10\x0f>}\x91\x96\xeer\xaf\xae\xcb\xd5\ +\xa9\xf5\xf6\x8c\x88\xdb\xe5\xeb\xcd\xf6\xf6\xea\xf7\xcb\xc7\xe5\ +\xa0\xcf)\xfc\x16T\xc8\xe3\xc3~\xbd\x11\x94\x5c5z\ +\xcePs:,wG\xbc\xfc\xed\x15\xfd\xdc\x82\xf5\xfe\ +B-F\x10p7\xd9`\xcc\x97\x85\xeao{\x1d\xc9\ +k\x8c\xb6)\xce\x1f:\xd5\x0b\xdb\x8c\x01$\xcf\x1b\x1d\ +=\xec\x07\xd2d\xadU\xee\xcb:\xa7W\xb2\x9f\xbf\xb6\ +\xf8\xbf\xaaOE\xdc+\x15\x1f;M\xff\xfcL\xd2\xd0\ +\x87\xa7\xed\xe6f\xf3n\xb3\xdb\xaf\xd7gk\xcdu\xb3\ +\x9aL\xaf\x94\xe1fs\x9d\x5c5\xf5kXm\xfb\xe3\ +5u\xe9-\xa6B\x7f\xf5\xb8\xbc\x07\x81&\x85\x05#\ +\x00\x84\xdbN\xa5\x22\xfa\x07\xad@\x81y\x1b\xdd\x02D\ +\xd0N1\xbb\x01\x9c\x80\xac\xa2\x8d\x0b=\xf9\x14\xf3\xa0\ +H\xa3\x98\x85\x9d\xb2\xb6\xc3\xa8'\xe3b0a\x81\xf4\ +\x8d8\xda:e\x82\x81\xb6I\xd6\x0f\xfc\x97\xd7\xd0\x06\ +#E\x03\xbcV6[\xe8\xf0!j\x5cA\x83r\xd7\ +a1\xf2\xd2\xdd\x1a\xf0+f\x9b\x87\xbb\xbaO\x1c\xb6\ +\xc3h'c\x8dK\x09\x8e\x14\x15\x1f\x02\x8e\x96R\xe6\ +\x09\x0e;\x82s>g\xd8\xc4\xe6X\xf7\x888 $\ +\xe5q\x0f\xb8\x93\xb1\xae\xef\x91\x83\xc9\x22\xe5\xa2L\x00\ +l\xb7\xe7\xf8\x0b:\x92W\xc1{Z\xc2X\x22\x0d\x9e\ +G\xcb\x14Kk\xc2\x1d\x15\xcd\x11\xf2\x109\x8c,\x82\ +\xab\x02YB\x82\x11p\x09\xab\xcd@#a\xd2\x82\xc9\ +@\xb7SF\xc5\x84$\x86mR\xb7\x88\xac!dr\ +\x8e\x89\x1e\x88g\xc1\xa9\x88S\xe0\x87n\x8b2\x19\x87\ +n\x05\xb9\x9b\xcd!Gl\x131\xca\xdd\xebp\xb9X\ +[\xbfr\x15\xc9\x88\xeb\x99\x90\x9c.\x5c\xaf\xfb\x11\x01\ +\x0c\xde\x01l\xbb\xa6\x09D\x07\xe6\x9c\xee\xafT\x16 \ +\x98t0B\x22\xe3\x80v\x04\x13rOZd.]\ +\xb1\xdeAH-3\xe8\x12\xb4'\xc8\xbc\xb5\x08\x9b\x9c\ +\x5c\xa2C\xc1\xdf\x01G\x00\x85\xfbS\xe8\xc9\xe9\x98:\ +`5\x86\x12az8\x13\xa5\xfd\xa2\x81\xb7\xc1\xa4\xd0\ +BV\x1d\x1b\xbf*\xf9\xf1\xa8\x7f\x1c\xa2\x9dl\x84K\ +lg;\x10\xfb;\xca\xd0\x11:\xca\x90\xfct\xe3\x99\ +0=\xd6\x91\x02\xe7\xb4\xa3{\x22\xd5\xb5\x15\xe4\xd2E\ +\xa3O\xcat\xd7\xea\xf9\x11z1F\x81\xea\x1e\x03\xff\ +\xedP\xf7\x94-\x05\x90\xbe\xec(D\x11v\xe2|\xbc\ +K\x08\x0b\x9e\xd8\xe3O\xd8\xcf\xf8+:\xa2\xce\xb7\xf0\ +#T\xe6\xbb&\xdf6@36\x1d\xe2\xa6d\x94\x8d\ +\xb1\x89\x91\x5c\xda\xf5\x8c\x1124\xbe \xfa\x8dc\xda\ +\x9b\x996\x93s\xd5{\x8b\xf4\xd2\xb9m'g4\xc0\ +,\xf8I\x13\xb4\x06\xb1\xca\x0b\xa2DSDf\x0a*\ +\xe1\x16Er\xe8\x08\x9d\xba\x148\xd4\xf9\x05o\x15\xe6\ +p9\x22m\x05d\x84\x05\x80\xc2@I\x15\xe4\xda\xa1\ +\xa9\xad\x0a :\x80\xc7#\xc6\x88\xb2OD\xb0\x15?\ +E\xf5\x16\xc5\x08aU\xd2\xc9:>\x82\x9f)FB\ +C\xbf\x02\xc1\x8b\xc4\x09\x00\xb6`\xc5\x1c\x1ah;\x8c\ +6MI\xa4\x849\x11\x86\xc2\x1c3\x19\xad\xe3PU\ +H\x19Qo:\x9e)F\xdd+\xf5\xb6Q\x99\x84\xc8\ +\xf3\xdd>D\x9f(PbA\xd0\xb9qX\x90Vp\ +T\x95\x86\xe8\xb4F\x9ej\xf1\x04D\x04J\xdd\x8b\x0e\ +\xa9\xb2:\x9ew\x1e\xf8zp\xf3J\x9b\xa6.Hx\ +\xaa\x12\xaa\xda\xb8j{\xb9\x92\x98\x90\x06\xa9\x02\xa1B\ +\x16\x1a`\x9a\xb4U\xf5\xc3\xc2L\x80px#B\xc0\ +\xbb\xa1h\xaa\xed\xd0\xdbI\xc2\xd3\xbb\x22&\xac\xac\x1a\ +\xa7\xc9Rw\xc6K\x04\xa6i\x1a\xa1\xa7H\xa10\xfe\ +\xdd\xc0\x87\xd8\xf6\xa7\x12\x9c\xca\xa9+N\x1b]\xc8h\ +\x15\x85\x1e\x17\xa2\xf3:33VE\xd3\x1b\xf5\xe2J\ +\xb0D\xe0\x05\xaaM(w\xe7\xbf]\x0e\x8b\xb1x\x17\ +=d\xc4#jv^\xcce\xb3\xea|\xb4\x1ew\xa8\ +\xe2\xab\x0d/SV\x83Z\xa8\x99>\x91;\x16\x1a\xcc\ +\xc8)\xba\xbdR\x93\xae`/\xda\x1d\x11G\xb1z\xb2\ +\xb1o`\x91\x83\x09\xfa\xaa\xe6fJ\xcc\xe4\x03\x0fn\ +\xa6h\x8c\xca\x1e\xd4\x935\xdet`\x02\xdc\xc2\xd1a\ +\x00`;\x83<\x98\x09w\xaeBxf\x9f\x9av\xc1\ +\xdej?gd\xe8\xb4\xac\xac \xc6\x03\x89P\xc5\x81\ +W\x98\xcb\xe7\xa2\xc3+\xcfmx#\x0d\xde\xa9x\xf1\ +\xea\xaa\xb4!\xbe\xdd\xb9\xe1kN \x01\xbc\xa9:^\ +m\x94v\x81B\xf5\xf8\x84:\xcd\x0e\x89e\xaa>\xe2\ +\xd8nC\x86U\xdc\x96T\x11\xdb/Y\x0cW\xed \ +\xe80K\xab\x86\xba+\x9b\xf2\xed\xcb\xe9\x85\xf8|\xfc\ +&\x8e\xb8\x94\x13\xbf\x03Z>\xc3`\xe3\x81\xf7\xc0\xdb\ +\xef\xcf\x92;\x18\xe9$\xdd\xe7]Zv`\xbf\x83P\ +\xe5\xb4?\x8c\xab\xa7\xc3\xbb\xe5\xe9\xe9\x00A\x90\xeaF\ +\xb6\x94\x0b\x04\x86\x18\xa8\x1eo\xafV\xff\x92\x7f\xba\xb0\ +\xfa\x97\x88\xfd^?\x9dN\x17\xa1\x1fE{\xff\x8f\xd0\ +\xef<\xce\xcbvr)g\xd0r\x1a\x800%\x00 \ +\x85X\xe0\x82\xb9\x84\xb2\xa0\xd8\x99\x891G\x06\xabD\ +HA)\xf1\xa0 ^\x17\xe9E\x80B4\x16H`\ +C&\xc4\x1amB\xa0xD\xa2\x8f`\x09\xe2\xca\xa4\ +y\x10\xa4}\xb8\xec \xcb\x82;\x90\xde\x82X\x9d\xc3\ +\x22X\x94\xcct$\xec\xba\x00\x0a\x85\xfc\xa4\x90\xd0\xaa\ +\xc2\x16V\xec6\xe9\x19\x00:\x09\x89(\x0d\x13\x83c\ +GNkt\xab\x80\x17\xd6\xc5N\xc7\xe4l\x5c\xa76\ +\x9a\x8aW$HJIL\xe6\x1d{\xf0\xb8\x1e\x09%\ +\x11Ka\x10\x02\x86\x8c:tzA\x98\x8c\xfe\x09\xc2\ +\xf4+\xc4]\xcc\xc8M\xf4U\x00wa\x02RR\xec\ +\x88\x16$vJK\xa1\x03P\x1d\xd6\xb1\x8e\x80'I\ +\xdc\x13b:\xe1\xc4\xdb\x14\x09\xb4\x1a\xe8>\xcb/\x88\ +\xca\xe3\xd5*\xa3\xad\x06\x8b\x17\x8a}\xeb\xfd\xe9\x0c\x8b\ +?\xcf6\xfb\xdbf[\x02q\xb1\x18\x1e\x02\xd7<8\ +\x04\x9a\xed\x18\xda\xabjZ\x90'VY6>l\xb6\ +\xc0\xa1\xf0,\x82\x1c\x98\x18\x98N\xa6X+\xf5\x92\x80\ +\xf8\x9f\xd9\xda\xfc*\xa5(\x82\xce\xd1\xc1d\xd6\xde\xda\ +\xb3\xc2J\xde\x05\x8eS4\xe7?\x94U\x8a]\x91\x5c\ +=N\xd2\xb0\x10\x18\xb3\x00\x18qa\xbc\xb3\x99;X\ +\xd1B<\x80\xc2\xc6Y\x15X\x8d2 (\xfe\xb2\ +c+P\xe0\x0c\x84\xf6\x94<\xf2 \x94$\x92\x09\x8e\ +\xf6<\xa3\xe3o\x5c\xa4\xfc\x94=\xf1\x87y\x98=E\ +<$\x22\xa4\x09\xb3&w\x13\xcc\x0e\x87D\x18:\x8a\ +\x08\xb1\xaa\xf4\x1a\xb9\xae\x82\xd2\x98\xd3\x06D\x90\x7f\x8a\ +\x14\xe7\xf8\xc7b\xbe\xa12\xddA(\xea\xc5O5\xec\ +\xc6g\x0d\x06\x96z\x9c\xb13\xbcH\x8e\xca(\x89\xa5\ +\x8d\xe1\x14\xdcY\x8f,\x1d\xd7A\x80\xc2\xc3+\xf6\x07\x14\x0f*k@\xbc\ +S\xa3\x06\x0b\xa1KD\x9cy\xa7\xed\xacM\xd4[\x14\ +\xb7\xa5\xcc\x0d\x81\x93G\xca\xd1v\x11\x9c[$!n\ +\x81\xbb\x1b\xd9\x89\x13a)2\x9d\xfa\xe6\xf3P\xce\xbf\ +q(\x87)(\xf0\x85\x22B\x19\x88,\xd9XQ3\ +\x18\x08\x09]\x8dR\x88\x0a\x84\xa2\xa4\xd6\x12\xe7@C\ +\x87\xd3\xca\x8d\xc8(\x14\xe0\xa2?(\xb9\x0dB<:\ +lC\x81,l\xeat\x18\x1a\xa3\xa3\xd7\xe4\xd3\xc9\x8e\ +\x9a\xd3\xf5\xd5\xfe$c\xf4E\x1b\xa3'\x1bU6\xa9\ +\xec\xde\xc3\x10\x05\xb1\x89\x1b\x81\x9e\x9c\x87@Xb\x1d\ +K\xe7\xe5\xf3\xa3\x14\x18vG*\x90\xfdK\xba\xd0\xfe\ +\xf3z\x85\x9f\xe6M\xd49\x82B\x9a\x92V\x98\xb7\x01\ +F\xc1oOY)\x1f\xb4cR\x92dVnH\xbb\ +(\x81\x94\x8c\xa47\xf1\x17\x06\x02l\xbf\xc6\x8a\x0a\x1c\ +N\x02o\x1c)Q\x99\xc1\x8a\xe7\xa2\xbdm3F>\ +\x04*\xe6\x84]t\x96 17\x1f\x8f\x86\x83\xf1\xb3\ +\x0c\xda\xc0).\x87?\xaa\x12f,\x10\x12\xe1\xb1\x86\ +\xced%5\x941\x1d\x98\xad\xb1\x0c\x19z\x95\xa2P\ +\xa1.DCs\x82@\xd4\x1a\xd9\xf1\xb17\x13r\xa3\ +\x0aKG\xc0\x06_-K4\x95)=\xe5**\xd5\ +\xdcH\xf0\xec\xa2\xf7\xcb\x86x\x1b\xe3%\xe5\xc7\xe9-\ +\xd2\xd0eH\x91\xacQ4\xefXI02\xa9(i\ +\x86\xb7\xd2-vD\x91\x22i+\x82\x8c\x12#~\x88\ +m\x82M\xa1\x15\xb1\xc5X\xb0\x8c\xa1\xe3?J7\x0b\ +cT\xe4\x81\xa2\xd7\xc16M\x1b[\xc47.\xea\xb1\ +\xe9\x9e\xa4a\xf8Z\xdcd\xd5\x93\xfb\xe8\x15l\xa7l\ +\x1cf\x1dV\xe3I\xc4$v\x84B#t\xd6$\xb3\ +\x15\xb5\x8e\xa9B\x11;\x1c\xbae=\xa1\x90p\x8a\xf3\ +s@\x9ev\x08QFH\xc0\xc8\x04\x04:\x05\xe6\x92\ +\x97<$\xab\xb7J\xb0\x80\xee\x96\xab\xde\xc2e\x0f\x9d\ +\xc9\xd5C\xa1\xf9\x9e\xe1\xa9t4\xbb\xceJN4\x16\ +0 \x0c=kI\x85\x15\xb9C'\xdew\xc3\x8a\x22\ +$\xee\xf5\xec\x94\xb4[\xd5\x94\xc8\xd7gz\xd8\xee\xb3\ +\xbf\xc3\xaeh\xa5M\xbbw\xea\xb1\xc7-\x00f\xa2\x03\ +\x85\x84l\xef\x94\xf5y\x07g\x1a+\xaa\x9c\xe6\xec\xbc\ +\xc3\x93r\x1c\xc3\xd8\xc6\x9bU\x9e\x13\x16\xe4\xdd\x1d=\ +n\xc7\x06\x9a\xd9\xd9y\x5cq\xe1X\x9a5\x19\xa1\xb3\ +\x8em\x81~\x12ye[\x88\x12[^\xb9P\xda\xd0\ +%Ds\xf3\xc2+\xb4\xc5Kq\x0e\xadZ\x11\xa79\ +\x96\x99\x95\xba\x19\xddQ\xcceQbD9\x93U4\ +\xb1ys\xe7\x1dw\x1cg\xab\xdc)[\x08\xf1\x12\x0f\ +\xd1\xfc6\x0aO\xc1^\xa4\x98\xcc\x02\x1e~Zi\xa9\ +%O\x0e\x12\xc6/\xe5\xf0\x5cU\xd7\x84\x16|\x80\xcf\ +\xe8\x18\xc2\x92r\xea\xdbr\x08\xa6\x85\x88\xc8\xd0;\xb7\ +\xc5L\x83\x93k+K\xba{):\x05\x09@\x94\xf1\ +\xa9`Y\x8b\xbbif\xe7$u\xd6_\xbcp\xbd\xc2\ +;\xce\x0d\x86\xa6\xc7g\x1d\x0cn\xd0&Q\xdeQ\x0a\ +\x13\x99>\xf5\xee(i\xae\xba\xad)\x1bc\xcf\xfc#\ +B\xab\xa9\xb0@KG\xb0`\xc5U\x9c'q{\xc5\ +9\x82}\xd3\xcc\x85\x16\xf5Y\xdc#Qzl\x14\xf8\ +\xaa\x97\x1d\x05_\xa5\xb3\x5c\xa1uP\x18\xba(\xaaR\ +,5\x1bDq\xb8K\x1c!M\xe2]\x9d\x8f\x5c\xea\ +\x9d2\xde\xb5^\x829\x89\xa2D\xe1\x103\xf2\xac-\ +$\xaa\xbcc\xcdc\xbdJ\xac\x00\xd5\xcc!\x13\xff\xb2\ +\xdaRa\x09\x87EU~X\xbd\x14%\xc6&\xab\xdd\ +D\xc4\xad\x1a\xfaBb\x8aZd|,,\xb8h\x0b\ +IA\x82\xd8Q\x16\x97\xb7y\xce\xf2\x0e\xb3\xd0k~\ +\xa2|\xd6\x12\xfdV\x00B\xca\xbd\x82\xae:;uB\ +\xe8\x07\xcb\xf9\xe6\xedm\xb77\xad\xd6P\xc8\x06C\xfc\ +\x8ff\xab$N=?\xb2\x08O\x0b\xe6Z\x87-\xa0\ +\xb1\x9dI\xe80X\x9c\x06\xc7z\xb2\x02<\xcd\xa8\x8f\ +n\xcfy[\xacT\x95Cq\x22\x08\x1da!:\xb0\ +\x92Z\x00\x85\x8a\xc4p\xca\x8a\x084oo\xe5\x8c6\ +'\x8en\x89]\x89\xac.vD\xed/4\xb18\x11\ +-\x90D\x8d:ta\x8c/\x0a\xcc4\x18\xa1\x8e\xe1\ +\xcc\x99\xa5\xe7\xa8\xcfL\xd5\xe2\x04\xe8Xc\xf9^\x9f\ +\xb1\xb2*\xc4\xcf=\xc9j0.\x00\x88A\xd2xr\ +\x90\x02\xb6J\xf2\xa26\x88F\x94\x88\xcf\xba\x0b\xaa\x1a\ +\xfd|\x15\xcf\x02\x0b\xbeaA\x9a\x1f:j\x88d4\ +=\x16z_\x82\x97A\x17\x89\x1d\x03\xdd\xb2\x1ed#\ +\xe4\x08\xc5\x9b\xadg\xae6Y\x80\x5c]31mU\ +p\xe5\xf57\x9c\xcd,\xaa{,m\xd9\x7f\xe6\xa3T\ +\xc3\xe0\xad\x9e\xfb\xa0n\x0e\xa0\xb2T\x95 :iE\ +\x9b\xe3R\x80\xaa\xcd\xc8\x1d\xa9\xe2S\xbaA\x07\xa6\xbe\ +}\xee9\xab\xe7:\x04oU\xd0\xc9\x06\x8e]\xb8D\ +G\xed\x85\xc7\xf51\x0b\xc4\xca\xf9\xb2M\xc2C\xde\xab\ +_T\x17\x0f\x13&}\x9bq63\x97|\xedf-\ +\x19\xbe\x021r\xbb;)\x07\xb4\xea\xe6\x92\x91$\x99\ +s\xe0\xb0\xf7Z\xc5\xb7FR\x88\x89.y\xc3\x88\x13\ +\xe5!\x18(\xbbF~8\xb7v\x15\x8f\xee\x05\xd5\xce\ +\x9c.\xaa\xa6A;t^K\xd3\xaa\xe4p4\xb8\x95\ +\x1b\xca\xe3\x8a\x92jz\xdb\xb1;C\x5cS\x1c}{\ +[Sd\x5c/\xd6\xe5J\xd0#\x8d\xcd{\xc0VZ\ +\xcc\xc3\xa9\xaa\x829$\xac6\xb1k\xce3/\xc5)\ +\x9a\xe5\x0c\xe9\x1a\xfd\x9af\x060r\x9a\xfaS\x16_\ +P\xf4P\x1c.\xbc\x89\xce\xce\xc7Y&\x87\x9d\xeeb\ +'K 7ko\x9b\xd7\x8e\x95E\xb6#\x89h\xc2\ +\x16\x85\x10\x8dRgQ\xea\x15\xc2\x9c\xeb\x22\x89m\x01\ +\xb9\xb2(\xa3\xea.T\xf7\x80\xbdS\xc0\x08e\xa7J\ +h^\x1c:\x82U\xbb\x15Ep\x0d\xd9%y+\xf4\ +\xf1=d(\x09Z\xc3\x06\xc9\xa1w\x16\xf6Lc\xa1\ +\xf70\xf4\x91\x9f\x922\x85\x9a[\x13\xa1qenB\ +\xbe-\xaaK\xde\xdc\x0f\xdeX\xbce\xc6H\x7f\x10q\ +\xd0Zr\x80\x1e\xa3^\xe4\x00@\x18y\xd6\xb1\xed\xa4\ +\x83b\x86\xe6DT\x9f\xa1\xa4\x97q\xe7\xde\xf2TL\ +\xe4.|o~\x12]\xb2\xa6]ff@J\xca\xa2\ +v\x12\x9cH\xaa\x193\xc0L\xa6\x9aW\x96\xb3\xa9>\ +\x8dQ\xb6\x84(\xdaq\xa4\xacE)\x08\x03K\x14&\ +\xf9x!N\x9f\xd4\x14\x87\xa5*\x8a2\xa3vP\x5c\ +\xd0/A\xa9\xa6\xe6'H\xac^\xd6#\xdd\xd9K.\ +&\x1d:G\xcb\xcd\xa2\x83\xcbP\xbfT\xd1\x16M$\ +\xe7\xaf$\x17\x1b1\xefx>]i\x7f\xc9\x8a\x90\xe3\ +\x0f6_|t<>\xff\xf4\xf8c\xb6\xfa5f\xe9\ +\x83\x03\xf1\xb0!\xe2\xabw\x1b\xf0m!%X\xea\xeb\ +\xef\x81\xcb\xddT\xae\xef\xdd\xb9\xa0\xb4\x15\x22\xfdPM\ +\x9bT6\x9eu\x88\x17\xc1\x05\x84\xea\xa2\xb6lVd\ +Amz7/a7\xb9\x06\x0e\xb4\xab\xe9K\x03\xba\ +#$\xf2\x9c\xb1\xcc\x97\xcb\xf7\xd8un\xe5\xf4:\x18\ +\x96Y,.\xe1\x94\x05g\xe4\xcb.R\x02v\xd9\xb3\ +\xed\x16\x96\x0a\xf7\x9a\x00\xa9'\x0c\x89s\x0f\xf5\x841\ +\xf8pq\xc2\xb1\x15\x1c\x94\x0a\xc3\x8b\x9emW\xd0\xdc\ +}\x04!e\xa4\xed\xd3\x81Y%\xa6\x9e\xd5\x9e\xe3\x8a\ +\xdd\x10|\x07\x97\xe6e\xd5\xe9\xb9;0\xd5\xa9\xba\xa2\ +\xfb\x82\xa3\xd4\x1c\xd6\xaf1\xba\xda\xecp\xd9Q^\x03\ +J-5\x85D\xc6\x18\xfa\xfaB\xea}4\xd5\xcc\xb6\ +v2\x9c\x9e\xa1\xe2m\xb8F6\xce\xf6$\xab5\x19\ +\xe5^\xf3\xf2\xf0\xbe<\xbd|\xaf0\xfb:\xa0\xab\xec\ +\x06\xfe\xb8\x8b6'F\xa9B\xbc\xd4)\xb6\xb8mV\ +\x0fR\xf1S\xab{5\xd52/*\x00\x99\xff2\x1c\ +_\x0c\x19\x1dX\xe3\xfa\xfaa\x84\xa9\x15w)\xe6\xf2\ +\xbe\x88\x87\xd7jX!v-u\x91\x8fA|\xf6\xce\ +\xe7\xc2Q\x86\x99\xcf\x8b\xae\xd04J\xcaA\x8e\x8b\x95\ +1T\x89_\xab\x07\x0b\xf1\xcf\x0a\xc8\x87Z;\xd3\x8e\ +S\xca\xddg\xf3\xca\xcaR\xa1\xddJ)\xe7\x1dB\xbf\ +V\xc7M\x14\xe8\x0br\x98\x04\xb5\xbe]x[\xeas\ +\x10\xa2B^y)7+w\x97r\xf8\x8ap\xaam\ +>o?o\xb0\xfc\xff\xe1\xfd\xda\xab\xeb\xb7\xf2\xa3\xb7\ +\x00\xff\x82\xfa\x9f\xb4\xbf\x89\x00\xd4\x80\xb92|\xcf\x06\ +nP\x8cE\x11Q\x90\x83\xe9\x86A\xca\xf4\xf0]\x85\ +\xc7V\xb6\x9edNB_\x9d\x9c\x98\x07\xfc%eX\ +\xcaq\x91A\xd3R\x0a\xd5\xac\x94\xc1IY\x81w\xae\ +\xaf\x13\xe2B>~\xc2^K\xd2\x12\xad\xcb7\x14\xa0\ +\x1dK\x95!/\x81R\xc69bv\xec\x9cO6v\ +\x8e^\xdf\xfe~\xf6\x895# ^~=\xf8w\x1c\ +\x96\x17\xdd\x95\xe3\xccC\xf8g@G\xfb\xc2\xef\xa7\x7f\ +\xc6\xcd\xe8\xc8H\xe1\x18\x09\x1d\x01\xf8\x14\xb9\xf6\x04\xf8\ +\xc2\xf1d\xabW\x17\x84\x88\x96\x05\xf3E\xa90\xe2S\ +a=O\xa0\xbaM\x1d\xa9\x06\xd4R)\xfbY[^\ +\x22a\xd5&\x01\x90J\xc4\x18+\xd2d\x7f\x1bK\x8d\ +\xd8\x13\x8e\x1c\xb13\xcb\x9d\xcd^\xb5\xf8VeP\xbb\ +20P\xce\x8eS~\xfc\xbe\xd4\x05*t\xa6a\xad\ +t\xad\x95\xa3V\x00\xc2y.\xbf\xcf\x1a\xbbs\x05[\ +\xcbY\xabJ*\xd7\xe6\x8f)\x0aM\xc4\xb6\x86l\xe9\ +\xd2$3\xdd\xf7D xn\xa8\x17\x9c\x14\x17$d\ +\xae\xf6a\xd3\x22\x9a|\x94\xa7Td;\xbbEWT\ +\xdb\x7f\xfa\x02\x0a\x94\xb7\x8a\xf2*\x08g\xa2\xb6O\x22\ +$A\xe5p\xd9.iK\xd2\xbf\x14\x98\xe44\xff\xd8\ +\xa1\xf4\x88E\xe4L.0\x95E3\x8a\xa9/e\xb0\ +\x10\x90\xe6f/e\x84\x1c\x8bW3\xf1\xb2-o\xfc\ +\x8a\xce\xb0:\x9f}\x12\x19\xed\x5c\x87\xf0\xe5\x99rc\ +\xad\x0e>\xeb\xd8\xce\xe6xo{\xfaA<\xd6\xbdk\ +,\x83\x8a\xb7\x08,W\xfc\x19(\x901\xcfI$P\ +\x0c\xe2\xf4\x96\xa6\x14&\xb3\x18P\xe10\xaa\xb0^B\ +\xce\x04\x86C\xebE\xb9\xcd\xfcs\xbd\xde\x06\xa2\xba\xa5\ +q1\xf5\xb049\xc6\x8bv}y*\xa4SZ\xde\ +.xy\xd5X\x16)\x95\xcf\x05\xfb\x0c\xd9Q0:\ +\xabu.\xdf\x0f\x96jh\xb9b\xf1\xb0\xeb\xe3R\x1a\ +Z1$\x9f\xf3\xc9\xe7\x88\xecY\xb43\xa1F\xe8\xdf\ +[\xf1-\xe4f \xdc\x80\xa0\ +4\x83\xd8i\xe3\x17\x013\xa3\xf99j\xd8\x7f\x0c5\ +RZ.\x7fqj\x80\xcb\x0f\xca\xc7\xd2G\xab\x16b\ +\xed\xe7\xe8\xe1?\x9108\xf7\x89/\xac\x0dh\xdc\xe0\ +\x1c\x96R\xebH\xff~\x05^XC\xa8m<\x7f\x85\ +\xfb,\x00\xe2?\x06\x00F\xc7d\xf4'\xa4G\x98\x92\ +\xbc \x04zd\xfcf\xcb\x808\x84\xac\xac\x82@\xd9\ +N\xc9\xa6\xf4\x1c=>\x9d\xf2_\xad>-\xe2#\xb8\ +\xa1\xceRjS'\xb0\x84\x1e\xe5\xdf\xfb\x98<`\xc2\ +L\xe0\x0e\xc7g.\xec~\xaa\xfa\xa7\x94\xc0+\xfc\xb7\ +|\xbe\xfe\xec\x7f\x01\x9b\xf0t\xc2\ +\x00\x00\x0aQ\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ - \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0be\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07-\ -\x00\ -\x00&\xf6x\xda\xddZYo\xdbF\x10~/\x90\xff\ -\xc02/\x09*.w\xf6^Vr\x816\x08\xd0\xd7\ -\x1e\xe8cA\x93\xb4\xcc\x86\x22\x05\x92\xb2\xec\xfc\xfa\xce\ -R\xa2D\x99\x92\xe1\xb6\x0a\xaa\x88v\x10\xef\xcc\xec\xf5\ -\xed\x5c;\xe4\xf4\x87\xc7E\xe1=du\x93W\xe5\xcc\ -\x07B}/+\x93*\xcd\xcb\xf9\xcc\xff\xfd\xb7\x8f\x81\ -\xf1\xbd\xa6\x8d\xcb4.\xaa2\x9b\xf9e\xe5\xffp\xf3\ -\xe6\x9b\xe9\xb7A\xe0\xfdTgq\x9b\xa5\xde:o\xef\ -\xbd\x9f\xcbOM\x12/3\xef\xdd}\xdb.\xa30\x5c\ -\xaf\xd7$\xdf\x12IU\xcf\xc3\xf7^\x10`W\xec\xdc\ -<\xcc\xdf|\xe3y\x1e\xce]6Q\x9a\xcc\xfcm\x9f\ -\xe5\xaa.:\xd94\x09\xb3\x22[de\xdb\x84@ \ -\xf4\x07\xf2\xc9^>q+\xc8\x1f\xb2\xa4Z,\xaa\xb2\ -\xe9\xba\x96\xcd\xdb\xa1t\x9d\xde\xed\xc4\xdd\x92\xd6\xbc\x93\ -\x02kmHY\xc8X\x80\x12A\xf3T\xb6\xf1c\xf0\ -\xac/\xae\xf3X_F)\x0d\x917\x10}\xa5X\xd4\ - \xb2K\xfc\xb7\x93\xef\x09\xa4\xa9Vu\x92\xdda\xc7\ -\x8c\x94Y\x1b~\xf8\xed\xc3\x8e\x19P\x92\xb6\xe9p\x9c\ -\x1e\xd8\x83y\x0f\xd0.\xe3E\xd6,\xe3$k\xc2\x9e\ -\xbe\x19`\x9d\xa7\xed\xfd\xcc\x17f\xd3\xbc\xcf\xf2\xf9}\ -\xbbo?\xe4\xd9\xfa\xc7\xeaq\xe6S\x8fz\xc2\xe0/\ -\xa1\xee\x81\x0d;Og>\xee\x89m\x85\xf7\x8a\xd3\xf3\ -\xb7sE;\x16%\x96\x11\xf0j\x90\x5co\x85\xfa}\ -Ei\x95\xb8u\xce\xfcy\x9d\xa7\x7f\xd6Y\xbaJZ\ -\xecD\x1cj7Nt\x9afwM\xd7g3\xb5k\ -\x0a\xdf\x0b7\xcc\xdd8n\x90\xd4\xad| z\x1b7\ -\xdb\x1d{\xde2\x9e\xa3\x8e\x14U=\xf3\xdf\xdeuO\ -\xcf\xb9\xad\xea4\xab{\x9e\xea\x9eC^\x85 \xe6\xed\ -\xd3\xc68\xfa\xf1\xfb]\xba\x81w\x02\xf4\x84@s\x1f\ -\xa7\xd5z\xe6\xb3\x11\xf7sU-p`I\x14\x15\xa0\ -\xf4\x88\x9f\xe0901&\xe3d\x8c\x11e\x84dr\ -\xc4EPW\xcer\x82U\x99\xb7\xa8\x99\xcb\xc7\xf1\x00\ -\xab\xbav\x12E\xfc\x94\xe1\xbe\xe7\x5c\x08\xe8\x85\x9a\xfb\ -j\xed\x8ec\xe6\xdf\xc5\xc5\x1e\xc2\xd3\x83\xad\xf3\x12\xb7\ -\x17l\xf5\x0a\x98\xa1\xa7Dz]\xb3\x9a\x9d\x12\xc1\x0d\ -\x07\xe6\x14\xf3\xe9%\xe6\x22~\xcc\x17\xf9\xe7\x0c\x17\x0e\ -;\x0dYdm\x9c\xc6m<\xd0\x8b\x9e\xa47\x1a\x86\ -B\xe8\x00\xa2_>|\xdc6\x91\x90$\xd1\x1fU\xfd\ -\xa9o\xe3\xe3D\xe2\xdbj\x85\x8b\xf7o\xf6\xf4i\x9a\ -Dh\xb2\x8b\xb8\xbd\xc9\x17x\xd2\xce\xdc\xbfC\x0b\x9d\ -\x86{\xc6\xa1t\xfb\xb4\xcc\x06\xe3nF\xae\xb3\x8d\xf5\ -\x1f\xf5\x83i\xb2\xc8]\xaf\xf0\xd76/\x8a\x9f\xdd4\ -\xfd\xf6\x06\xc3\xe6m\x91\x0d\xa8\xd3p\xbb\x87~\x8f\xe1\ -p\x93\xd3\xb0\x07a\xd3\x9c?\x87\xb4\x88o\xb3b\xe6\ -\xff\x14/c\x0fF\x80\xcf\xebj\xb5\x5cT)\xae\xb7\ -S \x7f\x80nG\xd8ui\xeb\xb8l\x1c\x0e3\xbf\ -\xfb\xb3\xc0x\xf1\x8eN\x02\xa0T\x10\xae\x18{\xbf;\ -\x84\xf9nCn\x98\x03\x8d<\x18\x07!\xad\xf3\xc7w\ -\x94\x18\xa5@q\xc9'\xd4\xfd\xec\x9bh\x17Rk\xa3\ -\xed\x04\xb8&\xa0\x19\x87\xf7\xfb\x91\x9a\xf6\xa9\xc0u\xdf\ -!\x94\xd1\xd6\x15|\xdf\xb4u\xf5)\x8b\xde\x8a\xd4\xfd\ -\xf8\x03=\xc8\xeb\xa4\x18\x1eW\xed\xbc\x80\xf4\x07\x14g\ -\x8a@9#8\xcf!\x035\x19\xc9\x0a\xf7a\x86t\ -\xb7\xbbe\xdc\xdes\xceU\x00\x81\x1d\xf2\x8e-\xce5\ -\x82\xad\x8b\x89`\xd3\xacWE\x16e\x0fYY\xa5\xe9\ -n\xf5\xa9pnz\xdb\xdcXc\x04\xcb\xc7\x9eP\xe4\ -e\x86\xa7\x17\xdd\xae\xdavH\xfb\xab\xca\xcb\x085,\ -\xab{\xean\xb2\xa1\x9aM\xdd\x9a\x87\xdb\xd8\xb9\x92\xaa\ -\xc4\x81\xdb\xaa\x0e\xd0\xa9<\xc4\xed\xaa\xc6\x1d\xd0c;\ -\x16LC\xc0\x87\x1cg\x8d\x1e\x82d@\x1a\xc5&\x88\ -#\x10\xa1\x99\xf20\xe0\x19P@\xc5$\xd0\xc4*i\ -^\x85\xd2\xaba\xa1Ds\x8a\x07`\xd9e\xe1#a\ -\x84\x8e\x22T\x1a-\xadDt\x18'\xa0$\xf34a\ -\x8aR%\xe5D\x12\xae\xed\x99\xc1\x81\x7f\x8eH\xd7(\ -\xd0\xfb\xb6\x91\xe8ii\x8ca\xaf\xae\xe3\xa7\xa8\xc4\xc4\ -\xf1\xcbc\xa7\xc6\xd81J\xd0\x13X\xad\x9cf\x19\xa2\ -\x95\x90^ \x89P\xc6p;Q\x841zv\xc52\ -L\x80eZ]\x96b\xa9\xb1\xd91\xd4\x224;\xeb\ -\xccNh\xa2Q\xb3\xbc\x00\x00\xfd\x98\xd4\x1c\xd0E\x13\ -\xa5\xf5\xb9\xd1\xb1\x82K\xc1\xc0\x5c\x16:\x87\x16\xb4A\ -\x07\xdd<\xe5\x929\xd5\x01\x8b\x11\xc5h\xcf`\x22+\ -\x95\xc6\x00\x03Z\xf2\x93\xd0\xd8\xeey\x01\x9a\xad\xc0s\ -\x8f\x84&-\x19\xe5\xff\x09\x9ag\xd1\xe2\x8b8\xf0@\ -\x8d]\xb8%\x12\xf4F\x97\xd0\xd0\x8c\x05\xe1\x05\xe8\xb9\ -4&\xd3l\x82&\xc7@|\x05.\xfc\xd5\xe1\x9e\x1a\ -\xc2A\xea\xe7\xe1\x9e\x09\x22\x85\xb4\xe6d\xbc?[\xac\ -?\xa6B\xf0?\x00\x01\x18\x91\xb8\x1d\x01\x81y\x175\ -TPv2\xf1\xe1W\x07\x05S\x98\xd0\x82z\x0e\x85\ -\xe0\xe8\xf4,f\xa3'\xa1\xb8>\xad\xe0\xceaj>\ -\x82\x82\x12A\x05\x17\xfc$\x14\xfa\xea\xa0p\x91\x95\x9a\ -\xb1\xa70\x88\x90\xd5\xf2\xb4\x81\xc8\xeb\x83B\xe2\x1d\x8d\ -\xc1s(@\x10\x8c\xaa\x14^\xf0\x15\xf2k\xb9#\xbd\ -\xdeB$\x01\x09\xa3\xfb\xa2$\xd4*\xd4\x97\xd3\x17F\ -\xc5\xae\xcfq2\xbc\xc4\xec\x8b\x5c\x03,\x18g\x88\xc7\ -I,\xec\xd5\xa9\x050\xa2\xac\x1a\xc5\x10\xcc\xca\x85\xb0\ -\xc0^\xa8#\x5c_fa\x09\x13\x87Q\xb3s\x9c\x14\ -\xef\xbeRR\xf9BIE_\xa5\x890;./\x01\ -1\xd4\x88\xc3\xf0\xf2\x0c\x0cz}\xd9\x85&F\xb0\x91\ -b\xa0\xac\x06\xa6\xd9\x0bX\x5ca\xd2i\x09\x05y,\ -\xa6\x0a\x90J\xd9\x17\xc0\xf8j\xd2\xce\xb3\x14\xd6\xc6\xf5\ -\x0f\xc0\x00c,e\xc2\x15\xd64\xb1 \xbd\xc4\xa3\x84\ -S\xaaAL\x02\xccU\x19S\x9ep\xa56\x00\xe6\xea\ -\x90\x12\x84\x18\x11\xfe\xfd\xad\xf6x\x19\xc02\x83\xd7g\ -).\x0c?y\xac\xb8f\x94\xc1\xf8\xec*$\x88\x1f\ -Gp8\xc6l\x0cS|\x12`~+\xa8=78\ -\x98?Z\xcc\x15\xf4\x85\x81\xa3\xc7\xca\xe5\xde\x07P\x5c\ -\xed\xa4\x0b\xea\x0c\xad\xd1\x03W\xfe\xd2F\xa0rq\x82\ -\x890\x9c]u\x84\xb2\xa0.\xad\xf4(\xed\x91\x9a6\ -Gm\x91\xd2\xa1\x83\x99\xb0\x90\xd6\x83\xee\x9a\xccQ\xf5\ -'@\xac\xd5\xf6\xfc\xe0\xb8\xd2\x0c\xf0\x0b\xab\xcb\x8e\xc1\ -\xc1\xf0\xa6\x85\xd5\xe0\x0a\xfe\xe8\xc79\xd5\xda\x93\x08\x18\ -\xa3\x02M\x0d\x087Z\x9e\x1d\x1c\x00\xae\xed\xc5\xbd,\ -\x1aa#\x18\x91\x06\x15g\xd2\x95[\xa8\xe6\xc2\x0b,\ -q\xa2\x929\xab\xe2R\x9d\xdd\xaa\xb4\xa5\x02\xa7\xbb\xb0\ -\x92\xb5\x1e;d\xe1\xce\xd1\xdd\xa47EXI\xb5\xf0\ -\xd0\x0dY\xc9\xbbr>zO\xaa\xcc\xd9=2\xa7J\ -\x83\xb6\x17\x86\x8e>\x16\xee\x05(e\xbawA\x94\x80\ -`\x80f\x05\x00\xd4\xe8\x89\x22\xc2\x9c\x1f\x1b-8f\ -\xe7\xf4\x5cf5\x0d\xe7\xbb\x0f\x16\x10\x88\xa3o\xb4\xbb\ -Wm\x07\x89\x1b\x1e\x91\xb0\x98\xa8H\xfe\xe2j91\ -R\x0bDE\x8e\xd6UW\xab2}\xfd\x9b>\xff\xe0\ -=\xbe[\xa9\x80a\xe5\xbb\xff\xfcH\xb83\x90f\xc0\ -\xd9}\x894f\xb9\x9c\xd6\xa5F\x9a\x0e\xbd\xc2\xa6\x16\ -\xaf\x08\xb3\xc3T\xa3\xee\xc8\x04\x8c\xd2r\xff!H\x07\ -\xde\xd4}\x9f\x81\xff\xff\x0d\xebz\x1d\xfd\ -\x00\x00\x10\xc3\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0d\x0a\ - \x0a \ -\x0d\x0a \x0d\ -\x0a \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x0b\x1d\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a\ + \x0a \ + \x0a \ + \x0a \ +\x0a\x0a\ +\x00\x00\x07)\ +\x00\ +\x00&\x15x\xda\xddZ\xdd\x8f\xa3\xc8\x11\x7f\x9f\xbf\x82\ +\xb0/\xbb\x8ai\xba\xfa\xbb\x89='\xe5V'\xddk\ +r\xa7{\x8c\x18`\x10\xea{Y\x99Ti^.\x17\xfe\xaf\xbf\xfc\ +\x14\x18\xdfk\xda\xb8L\xe3\xa2*\xb3\x85_V\xfe\x0f\ +\x8f\x0f\xf3?\x05\x81\xf7c\x9d\xc5m\x96z\xdb\xbc}\ +\xf1~.\xbf5I\xbc\xce\xbc\xcf/m\xbb\x8e\xc2p\ +\xbb\xdd\x92|?I\xaaz\x19~\xf1\x82\xe0\xf1\xe1a\ +\xde\xbc.\x1f<\xcf\xc3\xfb\x96M\x94&\x0b\x7f\xbf`\ +\xbd\xa9\x8b\x8e1M\xc2\xac\xc8VY\xd96!\x10\x08\ +\xfd#{rdO\xdc\xdd\xf3\xd7,\xa9V\xab\xaal\ +\xba\x95e\xf3i\xc0\x5c\xa7\xcf\x07n'\xcd\x96wL\ +`\xad\x0d)\x0b\x19\x0b\x90#h\xde\xcb6~\x0bN\ +\x97\xa2\x8c\x97\x962Ji\x88\xb4#\xe7\xc7\xb8\xa2\x06\ +\x01]\xe3\xdf\x81\xbd\x9f M\xb5\xa9\x93\xec\x19\xd7e\ +\xa4\xcc\xda\xf0\xeb/_\x0f\xc4\x80\x92\xb4M\x07\xdb\xf4\ +x\x9e\xdc\xf5\x04\xe42^e\xcd:N\xb2&\xec\xe7\ +\xbb\xf5\xdb\x1aA?\xa3;SB\x16\xf4\ +\xee\xe8o_\x7f\xda\x8dp\x9c$\xd1oU\xfdm?\ +\xc4\xcb1\xc4O\xd5\x06\x85\xf6\x1f\x0f\xd3\xf34\x89\xd0\ +\x1fWq\xfb\x98\xaf\xf0\xb9:W\xfe3\xfa\xdf<<\ +\x12N\x98\xdb\xf7uv\xdct\xb7m\x9d\xed\x1c\xfbb\ +tK\x93U\xee\x16\x85\x7fo\xf3\xa2\xf8\xd9\xddd\xaf\ +\xd6`\xd3\xbc-\xb2\xe3\xe4<\xdcK\xbf\xd7-\x1c(\ +7\x0f{\xd5\xbb\xd1r\x04b\x11?e\xc5\xc2\xff1\ +^\xc7\x1e\x8c\x11^\xd6\xd5f\xbd\xaaR\x14\xb43\x15\ +\xff\x88g7\xee\x17\xb4u\x5c6N\xf9\x85\xdf\xfd[\ +`\xe4\xffLg\x01P*\x08W\x8c}\xe9Q_\xf6\ +j\xb8=\x86vw\xb2\x09\x82X\xe7o\x9f)1J\ +\x81\xe2\x92\xcf\xa8\xfb9\x0e\xd1\xf4\xa5\xd6F\xdb\x19p\ +M@3\x0e_\x0e\x1b5\xed{\x81\x12?#z\xd1\ +\xde\xcb\xff\xd2\xb4u\xf5-\x8b>\x89\xd4\xfd\xf8\xc7\xa7\ +\x9e\xd7I1x>\xb5sp\xe9\x1f'\x9c\xa7\x01\xe5\ +\x8c\xe0=N\xe6\xd1\x5cqV\xa1\x06f0\xed\xd4Z\ +\xc7\xed\x0b\xe7\x5c\x05\x10\xd8\x01\xe9\x92Xn\x10\xecC\ +G\x04\xbba\xbd)\xb2({\xcd\xca*M\x0fr\xa7\ +\xc2\x85\xdc\xfdp\xe7n\x11\xac\xdf\xfa\x89\x22/3|\ +b\xd1\xd3\xa6m\x87s\xff\xac\xf22Bs\xca\xea~\ +\xf6p\xb3\x81M\xcd\x9d\xc4\x03\x1d\x0ea\xa2*q\xdb\ +\xb6\xaa\x03\x0c\x18\xafq\xbb\xa9Q~zA[\xc14\ +\x04|@p\x0e\xe7!<\x06\xa4Ql\x86\x00\x02\x11\ +\x9a)\x0f\x93\x96\x01\x05T\xcc\x02M\xac\x92\xe6#\x00\ +}\x18\x11J4\xa7\x08\xbde7\x04\x8d\x8410\x8a\ +Pi\xb4\xb4\x12\x81a\x9c\x80\x92\xcc\xd3\x84)J\x95\ +\x943I\xb8\xb6\xd7\xc5\x05\xfe}0\xbaA\x81\x81\xb5\ +\x8dD?\x97\xc6\x98\xc5\xea:~\x8fJ\xac\xf6\xfe\xc7\ +\xb0\xa93\xd8\x18%\xe8\xf4V+gO\x86h%\xa4\ +\x17H\x22\x941\xdc\xce\x14a\x8c^\xdb\x9c\x0c\x13`\ +\x99V7dN\xea\xcc\xcf\x18\xda\x0e\xfa\x99u~&\ +4\xd1hO^\x00\x80\x11Kj\x0e\x18\x85\x89\xd2\xfa\ +\xca\xc0X\xc1\xa5``n\x08\x98\x13\x9f\xd9\x01\x83\xa1\ +\x9cr\xc9\x9c\xc1\x80\xc5\x94a\xb4g\xb0\xfe\x94Jc\ +\x06\x01-\xf9\x14*\xb6\xbb\xbe\x83\xca\x9ea\x1c}\xd0\ +\x85%\xa3\xfc\xbfBe\x94\x14\xae\x1f\xa7\x03u\x16\xa9\ +-\x91\xa0w\x16\x84\x9ee,\x08/\xc0(\xa5\xb1\x0a\ +f3\xf41\x06\xe2\xe6#\xf5\x07S95\x84\x83\xd4\ +\xa3T\xce\x04\x91BZ3\x95\xcb\xaf\x95\xc7/\xd9\x0d\ +\xfc\xbf!\x00\xcc9\xdc\x8e!\xc0B\x8a\x1a*(\x9b\ +*g\xf8]\x81\xc0\x14V\xa6\xa0F \x08\x8e\xa1\xcd\ +ba9\x05\xc2}Y\x02wQQ\xf31\x08\x94\x08\ +*\xb8\xe0S \xe8\xbb\x02\xc1\xe5Lj\xce\x22\x82A\ +h\xac\x96\x93\xee \xef\x0b\x04\x89\xa7+\x06#\x10@\ +\x10\xcc\x96\x14\xa6c\x82\xfcc\x9cp>\xea\x0f\x92\x80\ +\x84\xf19O\x12j\x15\x9a\xc8\xe4AO\xb1\xfb\x0a\x8d\ +\x0c\x8f \x87\xa6\xd3\x00\x05\xc6\x19\x221\x85\x82\xbd+\ +S\x00<\xdc[5\xce\x0fXV\x0ba\x81M\x9f\xf9\ +\xef\xabR\xb0\x84\x89\x93d\xd8\x85F\x8a\x87U)\xa9\ +\x9cn|\xe8\xbbs\x08f\xcf\xda?@\x0c5\xe2$\ +s\x8c`\xa0\xf7U-hb\x04\x1b\x1b\x03rj`\ +\x9aM\xa3pg\x85\xa3%\x14\xe4\x85L)@*e\ +\xa7a\xf8\x83\x94\x8eW\xe8x\x9d\xb5(\x00\x93\x87\xb1\ +\x94\x09\xd7\xf1\xd2\xc4\x82\xf4\x12\x8f\x12N\xa9\x061\x0b\ +\xb0\xdedLy\xc2\xf5\xc0\x00\x98\xeb\x0dJ\x10\xe2l\ +\xe2?>\x82^>\xae[f\xf0\xa8+\xc5-A'\ +/t\xbd\x8c2\x98v]\x13\x03\xa1\xe3\x88\x0b\xc7T\ +\x8c9\x88\xcf\x02,R\x05\xb5W\xc6\x05\x0bA\x8b\x05\ +\x80\xbe%\x5c\xf4\x99I\xb9\x96\x0a\x0a \x0a \ + \ +\x0a \x0a \x0a \ + \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22 />\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x04c\ +\x0a borderopac\ +ity=\x221\x22\x0a bor\ +dercolor=\x22#66666\ +6\x22\x0a pagecolo\ +r=\x22#ffffff\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x04]\ \x00\ -\x00\x0fWx\xda\xe5W\xc1\x8e\xdb6\x10\xbd\x07\xc8?\ -\xb0\xca\xa5E-\x8a\xa4(\x8aR\xec\x0d\xd0.\x82\xe6\ -\x90K\x9b\xb6g\xadD\xdb\xcaJ\xa2A\xd1\xf6:_\ -\x9f\xa1m\xca\xda]m\x9a Er\x88\x0c\xc3\xe2\xcc\ -#9\xf3\xe6q\xb8;\x7fu\xd76h\xa7L_\xeb\ -n\x11PL\x02\xa4\xbaRWu\xb7Z\x04\x7f\xbf{\ -\x1d\xca\x00\xf5\xb6\xe8\xaa\xa2\xd1\x9dZ\x04\x9d\x0e^]\ -=\x7f6\xff)\x0c\xd1\xefF\x15VUh_\xdb5\ -z\xd3\xdd\xf6e\xb1Q\xe8\xe7\xb5\xb5\x9b<\x8a\xf6\xfb\ -=\xae\xcfF\xac\xcd*\xfa\x05\x85!L\x85\xc9\xfdn\ -\xf5\xfc\x19B\x08\xf6\xee\xfa\xbc*\x17\xc1y\xcefk\ -\x9a#\xb6*#\xd5\xa8Vu\xb6\x8f(\xa6Q0\xc2\ -\x97\x17|\xe9\x22\xa8w\xaa\xd4m\xab\xbb\xfe8\xb5\xeb\ -_\x8c\xd1\xa6Z\x0ep\x17\xd2>>\xa2h\x96e\x11\ -a\x11c! \xc2\xfe\xd0\xd9\xe2.|0\x17\xe2\x9c\ -\x9a\xcb\x08!\x11\xf8F\xd0\xcf\x84\xe5=0\xbb\x81\xef\ -\x80\xf7\x06\xdc\xeb\xad)\xd5\x12&*\xdc)\x1b]\xbf\ -\xbb\x1e\x9c!\xc1\x95\xad\xc6\xebxb\xef\xed{\x8f\xed\ -\xaehU\xbf)J\xd5G\xde~Z`Tlz\xb2\ -\xd4\xd5\x22\x808\xd9i\xb4\xaf+\xbb\x06ov\x1e\xaf\ -U\xbdZ\xdb\x91aW\xab\xfdo\xfan\x11\x10D\x10\ -X\xd1\xe0\xf1\xf1\xe6\x95.\xdd\xfe\x8b\xa0lty\x8b\ -\x07\x12|$\xf9\x10\x04\xc1\x19\xc3\x14\x19\x9a\xc4)\x0d\ -\xae\x1cj\xde*[T\x85-\x8eSN\xe1y\x93<\ -A\x00\x04U\xcb\xff\xbc~}\x1e\x82\xa1,\xf3\x7f\xb5\ -\xb9\xf5cx\x1c\xa4\xb8\xd1[\x08>\xb8\xba\xd8\xe7U\ -\x99\x03\xcfma\xaf\xea\xb6X)W\xa3_\x81\xd6y\ -tq\xdcG\xdb\xc3F\x8d\xd6=\xadl\xd4\xa9d\x93\ -\xe2\xad\xca\xb6v\xb3\xa2\xbfl\xdd4o\xdc6\x01\x8a\ -\x1e.[\xdbF\x8d\xac\xf3\xe8\x9c\x83\xcf1\x1a'9\ -\x8f<\x09\xa7a\xa5\x96\xfd\x88!7\x14~\x8f\xf9P\ -\x09W\x86\xcaU\xec\x0c\xdd@$\xa5n\xb4Y\x04/\ -\x96\xc7'8{n\xb4\xa9\x94\xf1>q|\xee\xfb4\ -\xc8\x09\xb2\x02)x\xbb\xbey\xafJku\xa3L\xd1\ -9*(\xf1\xae\x95\x01\x1dM:\xb6u\xa5&=\x83\ -:\x5c\x90\xc3f\xd3\xee~]Tz\xbf\x08\xd8#\xef\ -\xbe\xee\xc0\x13z\x193I\x9e\x82xeg\xe9e\x15\ -`r\xa0\x8c{k\xbf\xd6{\x97\xcf\x22X\x16M\xaf\ -\x1e\xad\xf7A\xeb\xd6\x9d\xa74\x961\xe1\x8fC*\xe1\ -\xb00\xc21K\x99\xe4\x8f\xbd\x90dH\x05f%\x97\xc7\ -\xda\x98\xca\x94\xc2\x05\x10\x0b\x99JB\xbf\xb9J\xde:\ -\x95\xc4\x22\x06\x96O*\x91P\x7f\x94\x00+<\x15\x8c\ -\xce\x84\xc0Y*d2E$\xffR\x99|\x0dA\x22\ -\x86\xaa$\xe2;\x10Dy\x8a9\xa14\x9d\x89\x18'\ -2\x85\xd7\xa9\xa35EP\x98|.E\x0fa\x16.\ -\x87\xde\xdd\xc5a\x09\xddI\x19\xd7\xfe\xa0\x7f\xc6<\xce\ -\xb8\xfco4\xe8\x93K\x1c\xb38\x13\xf4\xab\xe9\x978\ -ai\x96\xc6T~\x0fyf\x98e\x82;u\xc2y\ -cT\x08\xf4\x0fb\x90[\x12g\x8cO4\xafo\xa6\ -\xca\xefH\x0b\xf4v\x01G5\x93 J*\xe0\xef\xd8\ -\x14::\xda!\x9a\xe2\x04^\xc5\x14-!\xfb\x01\x88\ -y\x8b\xe0~\xa3\x5c\xb0\x84\xcd\xe0\x8cJI\xa0i\xa0\ -?\xe0\x0c\x031\xfa\xdd\xa8\xcc\xaa\x02\x1dJ\xbbA\xef\x9b\ +\xbb6\xcf\xb6\x0a\xfd\xbc\xb1v\x9b\x06\xc1\xe1p\xc0e\ +\xe7\xc4\xda\xac\x83_\x90\xef/on\xe6\xed~}\x83\ +\x10\x82s\x9b6-\xf2\x85\xd7-\xd8\xeeLu\x02\x16\ +y\xa0*U\xab\xc6\xb6\x01\xc54\xf0Fx>\xc2s\ +wz\xb9W\xb9\xaek\xdd\xb4\xa7\x95M\xfb\xea\x02l\ +\x8a\xd5\x80v\xd9\x1c\xc2\x13\x88&I\x12\x10\x160\xe6\ +\x03\xc2o\x8f\x8d\xcd\xee\xfd\xeb\xa5\x90\xe3\xd4RF\x08\ +\x09 6\x22\xbf\x0e\x95\xb6@\xe8\x16~\x07x\xef\xc0\ +\xad\xde\x99\x5c\xad`\x9d\xc2\x8d\xb2\xc1\xdb\x8fo\x87\xa0\ +Opa\x8b\x8bmz>\xafN\xbd\x22\xb9\xc9j\xd5\ +n\xb3\x5c\xb5A\xef?\xad\xbf\xe80=9\xcab\xe1\ +A\x8e\xecd\x1c\xca\xc2n \x96\x9c\xcd\x8d*\xd7\x1b\ +;\xda\xfbR\x1d~\xd3\xf7\x0b\x8f \x82\xc0\x89\xfa@\ +\x9fhZ\xe8\xdc\x9d\xbc\xf0\xf2J\xe7w\xb8/\xbeO\ +!\x1d\x8e'8a\x98\x22C\xa30\xa6\xde\x12@\xf3\ +Z\xd9\xac\xc8l\xe6\x16\x9c\xf3\xea=\xf2\x04\x00\x08\xf4\ +)\xfd\xf3\xed\xbb\xb3\x05v\x9e\xa7\xffjs\xd7\x99\xf0\ +8@v\xabw\x90\xb4\xb7\x1c\xdc\xf3\x22O\x81\xd9:\ +\xb3\xcb\xb2\xce\xd6\xca5\xe5W`r\x1e\x8c\x81+\xb0\ +=n\xd5\xb8\xe9y[\xa3\xce-\x9a\xd4i\x91\xd7\xa5\ +[\x14\xfce\xcb\xaaz\xef\x0e\xf1P\xf0`\xd3\xd2V\ +jt\xce\x83.\xfb\xae\xb6\xe0\xa2\xb8y\xd0\x97~\xb2\ +\x0a\xb5jGV\x9c%\xba\xdd\xe7\x03\xf3\x8e\xf6\xc25\ +\xe8\x0c\xdcB\x06\xb9\xae\xb4Yx\xafV\xa7\xc7;\x07\ +n\xb5)\x94\xe9C\xe2\xf4\x5c\x854\xa8\x06j\x81\xae\ +wn}\xfbI\xe5\xd6\xeaJ\x99\xacq\xf5S\xd2E\ +\xd6\x06\xf42\xe5\xdf\x95\x85\x9a\x0a\x0c:p\xe9\x0d\x07\ +MF\xdbMV\xe8\xc3\xc2c\x0f\x83\x87\xb2\x81\x80\xdf\ +K\x95I\xf2\x04\xa2Wo\x12\x0f{\x00{\x03O\xbc\ +s\xb6\x1b}p\x85,\xbcUV\xb5\xea\xe1f\x9f\xb5\ +\xae\xddm\x89C\x19\x12\xfe(\x9b\x1cn\x03#\x1c\xb3\ +\x98I\xfe(\x08\xc5\xf9T`\xc6C\x16\xcb'\xd2\x84\ +\x0d\xfc\xa7b\xc7\xff\x88\xd5\xd9}Y\x97\x9fU1v\ +j\xb3;\xa3\x9c\x0e;\x8eTU\x95\xdbVM\xd2t\ +\xc9\x8e{\x1b\x13\x1d\xc8J\xa4\xfb\xb9&\x8b\x11\xccY\ +\xc2dD\xa2\xe7s1V&\xfb\xca\x9c\x0e\x13\x81\xa3\ +\xde\x04\xe5$\x11\xe6\xf0\x89\x1b\x8a7\x00\x91\x1c\xc72\ +\x0a\xa3\x1eg\x8e\x83O<-\x91\xc7z\x98*\x91\xc2\ +@\x0f\x85\x8c%\xa1/\xad\x8c\x0fN\x19\xa1\x08\x81\xdd\ +\xb32$4\x1dE\xc0\x07\x8f\x05\xa33!p\x12\x0b\ +\x19M\x10\xc8\xbfM\x1a\xcf\xe0F\x84\xd0\x8cH\xbc<\ +7\x94\xc7\x98\x13J\xe3\x99\x08q$cx\x9d\xbaI\ +\x13\xdc\xf8\xd1W\xb2\xf3\x00ea\xf0\xb7\xee\xc3\xea\xe7\ +0\x86\x94qC\x0efd\xc8\xc3\x84\xcb\xff\x05\x83&\ +\xb9\xc4!\x0b\x13A\x9f\xc9\xbb\xc4\x11\x8b\x938\xa4\xf2\ +;H2\xc1,\x11\xdc)\x12.\x18\xa3B\xa0\x7f\x10\ +\x83\xc2\xa20a\xfc\xf1\x90z\x19%~?F`|\ +\x0b\xb8\x99\x89\x04!R\x01\x7f\x7f\xc60\xb4\xd1\x1e\xd1\ +\x18G\xf0*&\x18\xf1\xd9\x0f\xce\xc9\x07\x04_/\xca\ +\x05\x8b\xd8\x0c\xae\xa4\x94\x04F\x04\xfa\x03\xae,p\xc2\ +#\xc2\xa6H\xe1?<)0\x98p$D,fp\ +\x89\x04\x11\x92\x86\x8e\x14\xc10\xd0\xf3\x04)~\xf8\x0d\ +\xb4\xcc\xdd\xbf\x00\xcb\x9b/\xdf\xef\x96$\ +\x00\x00\x07\xec\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0bY\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg6\x22\ +\x0a inkscape:d\ +ocument-rotation\ +=\x220\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x0b\x0f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ - +<\ -/tspan>\x0d\x0a\ -\x0d\x0a\ -\x00\x00\x16h\ +\x0a pagecolor=\ +\x22#ffffff\x22 />\x0a <\ +path\x0a sodipo\ +di:nodetypes=\x22cc\ +ccc\x22\x0a inksca\ +pe:connector-cur\ +vature=\x220\x22\x0a \ +id=\x22path816-3-7\x22\ +\x0a d=\x22m 35.29\ +0518,16.901345 c\ + -4.614292,-1.41\ +6078 -9.151745,-\ +0.816181 -15.693\ +461,1.897953 l -\ +0.184595,19.7815\ + c 7.171601,-2.6\ +05831 11.546259,\ +-3.067165 15.983\ +56,-1.844967 z\x22\x0a\ + style=\x22fill\ +:none;fill-rule:\ +evenodd;stroke:#\ +999999;stroke-wi\ +dth:1.83396;stro\ +ke-linecap:round\ +;stroke-linejoin\ +:bevel;stroke-mi\ +terlimit:4;strok\ +e-dasharray:none\ +;stroke-opacity:\ +1\x22 />\x0a \ +\x0a +<\ +/text>\x0a\x0a\ +\x00\x00\x15\xf7\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ +\x22\x0a inkscape:\ +current-layer=\x22s\ +vg2\x22 />\x0a \x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \ + \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \x0a \x0a <\ +tspan\x0a sod\ +ipodi:role=\x22line\ +\x22\x0a id=\x22tsp\ +an4522-0-3\x22\x0a \ + x=\x22-48.97916\x22\ +\x0a y=\x2264.77\ +5017\x22\x0a sty\ le=\x22font-style:n\ ormal;font-varia\ nt:normal;font-w\ eight:normal;fon\ t-stretch:normal\ -;font-family:'Te\ -X Gyre Pagella M\ -ath';-inkscape-f\ -ont-specificatio\ -n:'TeX Gyre Page\ -lla Math';fill:#\ -ff7f2a;fill-opac\ -ity:1;stroke-wid\ -th:0.98280805\x22\x0d\x0a\ - id=\x22path8\ -23\x22 />\x0d\x0a \x0d\x0a\ - \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x09\x22\ +;font-family:san\ +s-serif;-inkscap\ +e-font-specifica\ +tion:sans-serif;\ +fill:#216778;fil\ +l-opacity:1;stro\ +ke-width:0.77554\ +256\x22 />\x0a<\ +/svg>\x0a\ +\x00\x00\x08\xe8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x06\xc8\ +no\x22?>\x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x06\xbc\ \x00\ -\x00\x19\x04x\xda\xedXmo\xe36\x12\xfe^`\xff\ -\x83\xa0\xfd\xb2\xc1Y\x14\xdf_\xb4\xf6\x16wX\x14-\ -\xd0~\xe9\xeb]\xbf\x14\x8aD;jd\xd1\x90\xe48\ -\xd9_\x7fC\xd9\xb2%[\xdeM\x91-\x168\x9c\x82\ -$\xd2\xcc\x90\x1c>\xf3\x0c9\xe4\xfc\xeb\xc7u\x19<\ -\xd8\xba)\x5c\xb5\x08\x09\xc2a`\xab\xcc\xe5E\xb5Z\ -\x84\xbf\xfc\xfcM\xa4\xc3\xa0i\xd3*OKW\xd9E\ -X\xb9\xf0\xebw\xaf\xbe\x9a7\x0f\xabW_\x05A\x00\ -\xcd\xab&\xc9\xb3Ex\xd7\xb6\x9b$\x8e7\xdb\xbaD\ -\xae^\xc5y\x16\xdb\xd2\xaem\xd561A$\x0e\x07\ -\xf6\xd9\xc9>\xabm\xda\x16\x0f6s\xeb\xb5\xab\x9a\xae\ -i\xd5\xbc\x1eZ\xd7\xf9\xf2h\xbe\xdb\xed\xd0\x8euV\ -\xc4\x18\x13c\x1aS\x1a\x81E\xd4\xef\xb6hK;\x90\xce\ -\xe3\xc3\x1c\xfa9\xc6\xc3I\xce\xe3\x1e\x85\xfdgn\x97\ -\xcd\x00\x22\xffI\xf0\x11\x9euZ\xdf\xdb\xfa8\xde1\ -@M\xeb\xb2{o\xff\xcf\xbav;\xf2=dh\xdd\ -\x86G;W\x17\x90v\x8b0\xdd\xb6\xee$\xad\xed\xf2\ -?>\xa4x$\xfa\xf7\x99\xe8z\xafM\xfbT\x02N\ -\x0e\xd8\xb1,\xdd.y(\x9a\xe2\xb6\xb4\xe1\xa5{E\ -\xd39\xb8\x08\xdbzkOA\x9bo\xd2\xf6n\x10\x01\ -?\x94\x17qat8\x90\x83\xf8\x87\x00\x9c\x9a\xc1o\ -\xf0} \xe0-\x12\xddkD(\x12\x03\xf1^\xda\x9b\ -~\x08\x86\xbd\x1c\xdc]B\xe4\xa2z[\xda\xc4>\xd8\ -\xca\xe5\xf9\xdb\xa6\xad\xdd\xbdM^\xe3\xee9|F]\ -N%\xb0\x00n\xdaa/m\x9dV\x8d\xa7\x13\xa4N\ -\x96\x96\xf6\x0dF\xfaf/-\xd3\xd6\xbe\xd9;ts\ -\xa2\x05\x04\xb8\x0b\xda!\xda>\xa0\xfb\xd7c\xd6\xf8\x94\ -\xc9}\x8e\x1e\x86\xd9\x00\xad2W\xbaz\x11\xbe^v\ -O\xef\xc0\xad\xabs[\xf7:\xd9=c\x9d\x83\xe5\x01\ -(\x0aI\xdc\xcb\xdd\xed\x9f6k[WZ\xf0\xd1\xf3\ -\x9a\x1c\x83\xbb\xaaa\x8e\x93\x8am\x91\xdbI\xcd1\xa4\ -\xde\xc9\xe3`\xd3\xea\xe6.\xcd\xddn\x11\xd2\x0b\xed\xae\ -\xa8@\x13\x1d\x96-\xa2%\xbbf\xd2/e\x04S\x11\ -\x0e\xf2\xe2\x88\xd9\x91(\xcd\x9d\xdb\xf9\x09A\x84\xd3\xb2\ -\xb1\x17\x1d~p\x0eb&\x91\x92\x98\x13\xa9.\xf4\x19\ -\xac\x8f\x11\x04O\x12\xca\x14\xbfT\xc34\x19\xb0A\x1b\ -F\xe55o\xa1\x0b\xa1\xae)\xa1\x03zU\xb9N\x1f\ -\x8bu\xf1\xc1\xe6\x83\xc8\x9d\xc6\xde\xd65\xe4oT\xa6\ -O\x16\x02\xbf\xe2\x92\x88\x9e`\xf3\xd5\x00\x95\x15'\xe2\ -\xb4X\xacF9\xbc\xe2\x82\xf3\xe7\xe4\x1e\xc3\x97\xb97\ -\xc3\xc1\xb7~\xe7\xf8\xd5\xff\xf9\x16v\x91\xdf\x876'\ -G]U\x01\xd9\x5c\x1d\x81\xcb\x0fi\xbb\xad\xed\x80\x1c\ -gI\x98TP@\x0c\x97\xcf\x81\xc3\x07\x97\x0d&W\ -r\x0fV\xf3\xbax|\x03\x01Q\xccP\xc3g\xe0\xe2\ -\xec\xf4\xa5\x08RF(.f\xd4 \x88\xb6a\xeaf\ -\xb4Y\x9c\xcd\xfe/\xcda\x00\x16Qd\xac\xf1\xbbZ\ -\x10\x09\x86\x14\xd6\x5c\xea\x19\x87\x17E\x84\x14\x01\xc1H\ -1\x0c_\xb3H#\xce4%F\x8e\xdb\x0e\xb1ym\ -\xa5\xffy{}\xb5\xa2\x99H\xd3\xb3\xd5\x8a\xc2\xac\x19\ -WF\xd1^^\x160\x99t\x93\xdcn\xdbv(\xfb\ -\xd3\x15U\x02\x9b\x99\xad{\xe9!\x99\x13\xd2\x0b:m\ -\x09\xacl\x13\xde\xcb\xf2\x14\x92\xba\xae\xd3\xa7\x8b\xe0}\ -NL\xd9$\xa6\x1cQ\xce\x85\x94\xb3\x88pd\x14\xe3\ -F\x04\x061\xa1\x096\xb3\xee\x05\x1bM\xff\x0f\xe9$\ -\xa4b\x0aRX\xcf\xb4\xc2T\x02%\x89B\x82r\x8a\ -U\x10\x19$\x8c\x12\x9a\xce\x80\xb1\x86ASC\xfe.\ -P\xa5\xfe\xeb\xa0~\x1a\xc3\x0b\xf8\xcf\xdc?\xee\xbb\x0e\ -69\xa8\xe6\xa0\xd2\xcf\xb2O\x01\x7f\xa5\xd5g\x09\x8e\ -\x9a\x0a\x0e\x07\x904\x95\x8c\xcf\x22\x868\x96\xc0n\x1e\ -@u\xa1\x04\xc4D\xce\xba\xe5\x84\x9a\xff-\xba\xdb\xb2\ -,6\xcdYQ\xee7^\x84\x81\x93T\x9e\x01U?\ -z\x15\x11L+zFp\xbf]KD\x09(\xe9Y\ -\xfc\xbb\x8d^\x08\xc4(\xc5L]\x0b\x0a\x93\x91\x8c\xd8\ -$\xbc\xa7y\xee\x81\x16\xf0,\x97{\xa0\xc7\xbaI\xdc\ -\x87\x14=\x82\xae\x89\xa1L\xb0\x0b\x80k\xb7\xad\xf2\x97\ -P\xffy\x00SXP\xb9&l\x12`,\x81\x85R\ -^\x02\xac\x107LR!'\x00\x86}\x17\xfa\x93\x8c\ -|\x04`\xf2\ -B\xdfg\x81\xcbTz\x9b\xe9\x17\x81\xcb\xb5\x81\xec\x93\ -\xea\xcb\x81\xab1 \xc8\xf4\x14\xb8\x86\x0a\x82\xc9\x04\xb8\ -\xd0J\x0b\xa1'\xc1\xe50)\x81\x05\xff\x18w\xf1\xb3\ -\xe0\xa5\xa9Z\xbe\x90\xbb\x8c0\xa3\xb5\xa1\x7f+\xbc\xf3\ -xu\xbc\x0eX]\x9e\xcf\x06\x07\x9b\xc1M\x02\xc2X\ -*\xaa\xd9,\xa2\x02\xd0T\xd4\x98\x9b\xf0\xecLG\xe0\ -Lw\xbaj8?\xf1\xc9\xe1\xb229\x08F\x82P\ -\x0eg\xa6\xc1\xf1h^C\xed2\xbcp\xf3\xd7\x09H\ -b\x0c\xf5\xc6(\x8f<9\xa0n\x84\x93\xce8O:\ -f(\xc6\x98\x18\x89\xfb\xb3\xbc\x84\xc9`\x055\xc6P\ -y\xb8\x0b`\xc6\xf7\xc7\xc8\x88\x1a~2\xde'.\xc6\ -t\x1a\x95;\x18\xd3[\x9a\x0d.s\x06\x9f\x87`\xfb\ -zVh\x81\xe5Eq3\x8a\xf5gc\xc0\xdbMZ\ -\xc0\xb1\xbd\xbb\x98I\xf6\xb7@M\xe0\xbd\x0d\xf6\x96g\ -\xbc\x1d\x11f2\x06P\x03BE>\x15\x03\x8da\x8f\ -;\x8b\x01G\x18\x8eF\x14\x8b\xe9 (&\x8dTr\ -\x22\x08\xb0wS\xc2\xd9\xf8l;\x0c\xc2\xb80\x1a\x85\ -\xe1\x90\x91W\x13\x0e\xcaV#)\x17J|\x81\x18T\ -\xfe\x1a\xb8\x1c\xde\xcd\xad\x0e\xd7r\xfe\xff\xdc_\x19\xc3\ -\xff\xff\x02\xee\x1b\xf6m\ -\x00\x00\x05.\ +\x00\x18cx\xda\xedX[o\xe3\xb6\x12~\xdf_!\ +h_6\xa8%\xf1~\xd1\xda)N\xb1(Z\xa0}\ +\xe9\xed\x5c^\x0e\x14\x89v\xd4\xc8\xa2!\xc9q\xb2\xbf\ +\xbeC\xd9\xba\xd9\xf26E\xb6X\xe0\xe0(H\x22\xce\ +\x0c\xc9\xe17\xdf\x0cI-\xbf~\xda\x16\xde\xa3\xa9\xea\ +\xdc\x96+\x1f\x87\xc8\xf7L\x99\xda,/7+\xff\xd7\ +_\xbe\x0d\x94\xef\xd5MRfIaK\xb3\xf2K\xeb\ +\x7f}\xfbfY?n\xdex\x9e\x07\x9d\xcb:\xce\xd2\ +\x95\x7f\xdf4\xbb8\x8av\xfb\xaa\x08m\xb5\x89\xb24\ +2\x85\xd9\x9a\xb2\xa9#\x1c\xe2\xc8\x1f\xcc\xd3\xc1<\xad\ +L\xd2\xe4\x8f&\xb5\xdb\xad-\xeb\xb6gY\xbf\x1d\x19\ +W\xd9\xba\xb7>\x1c\x0e\xe1\x81\xb6FXk\x1d!\x12\ +\x11\x12\x80EP?\x97M\xf2\x14L\xbb\x82\x8fs]\ +\x09B(\x02\xdd`\xf92\xab\xb8\x06Tv\xf0\xdb\x9b\ +w\x82\xb0\xb6\xfb*5k\xe8g\xc2\xd24\xd1\x87_\ +>\xf4\xca\x00\x85Y\x93\x8d\x86\xc9\xcb\x87:Mvf\ +2k'<\x22\x90lM\xbdKRSG\x9d\xbc\xed\ +\x7f\xc8\xb3\xe6~\xe53\xd5\xb6\xeeM\xbe\xb9o\xfa\xe6\ +cn\x0e\xdf\xd8\xa7\x95\x8f<\xe41\xe5\x9d\xc4y\xb6\ +\xf2a\x19\xe4h3\xc4\x19\x1f\xb5\xa7\xe1\xe3^\x83B\ +MB\xe6\xbd\xdb\x97\x0f\xa5=\x947\xadY\xb7\x968\ +\xb3\xa9sn\xe5g\xa9\xdd\xad\xff\xdb\xd4\xa1\x83\xe8\x16\ +l\x96[\xd3$Y\xd2$\xce\xfe8m'\xc1\xa4\xb5\ +\x00\x1b\x08U\xfc\xd3\x87o\x8f-h\xa7i\xfcO[\ +=\x9c\x9a\xf08\x83\xe4\xce\xeeaY\xfem/^f\ +i\x0c\xe0n\x93\xe66\xdf&\x1b\xe3\xe2\xf2\x15\x80\xb9\ +\x8c\x06\xc5\xc4\xb8y\xde\x99a\xd0\xe3\xb0\x959Fi\ +\x96\xaaY\xba\xcd]\xa7\xe8\xe7&/\x8a\xef\xdd$\xbe\ +\x17\x9d\x0d\x9a7\x85\x19\x84\xcb\xe8\xe4\xfdim\xd1h\ +q\xcb\xa8[{\xdb\xca\xcc\xba\x1e`q-\x8c:H\ +\xb6I\xf5`\xaan\xa2>\x1euc\xd3\x07g\xfd\x8f\ +\xaa\xb2\x07\xfc\x03\xa4`\xd5\xf8\x9d\x99\xadrH\xac\x95\ +\x9f\xec\x1b\xdb\x0b+\xb3\xfe\xb7\x8b\x1f\x1aK\xfe5\x95\ +\x5c\x1d\xb1n\x9e\x0b\x80\xc6\x02\x0f\xd6\x85=\xc4\x8fy\ +\x9d\xdf\x15\xc6\xbfp,\xaf[\xd7V~S\xedM\x1f\ +\xa3\xe5.i\xee\x07\xc4\xdd4N\xc2\xb8V\xfe \x06\ +\xe9\x8f\x1e\xb8\xb3\x80_\xef\x07\x8f\xc3[\xc0\xdb\xd7\x00\ +\x93\x90\x8f\xc4Gig\xfa\xd1\x1b\x0dr\xf2t\x0dq\ +\x0a\xaa}ab\xf3hJ\x9be\xef\xeb\xa6\xb2\x0f&\ +~\x8b\xda\xe7\xd4\x0c\xda\x9c\x89\xa1\xae\xed\x9a\xd1 M\ +\x95\x94\xb5c\x0e$G\x9a\x14\xe6\x1d\x0a\xd5\xcdQZ\ +$\x8dywt\xe7\xa6\xe7\x00\x04\xb4\x8d\xd31\xb8.\ +\x82\xed[\x9f\x17.)2\x97\x81\xc7)v\xc0\x9f\xd4\ +\x16\xb6Z\xf9o\xd7\xeds\x9a\xfb\xceV\x99\xa9:\x95\ +h\x9f\x89\xcaB\xda\x03\x13!COb{\xf7\xbbI\ +\x9b\xc6\x16\x06\x9cs\xec\xc5]47\x15,mN\xbe\ +\xcf33\xa7\xe8c\xe8\xdc\xeb'\x9a\xd5\xd6\xf7If\ +\x0f+\x9f\x9c+\x0fy\x09\x8a\xe0T\x89\xb0\x12\xf4\x8a\ +EW\x9d0\x22\xdc\x1f\xc8\xdf\x03\xd5\xf1\xa2\xbe\xb7\x07\ +\xb7\x12\x88hR\xd4\xe6|\xb4\x8f\xd6B\x8cD(\x05\ +bX\xc8su\x0a\xf5.\x80X\x09L\xa8d\x17Z\ +X\x1e\x85\xd0+M\x89\xb8\xe2'\x0c\xc0\xe5\x15\x1dt\ +'\xd7t\xdb\xe4)\xdf\xe6\x1fM6\x84j\x98w_\ +U\x90\x9fA\x91<\x1b\x88\xf3\x86\x09\xccOTZn\ +\x06,6\x0c\xf3\xbe\x0el\xc6)\xbaa\x9c\xb1?O\ +.\x8a.\x92k\x81\xbc\xef\x5c\xf5\xff\xcd\xfd\xf9\x0ev\ +\x82\xff\x8cL\x06\x07mY\x02\xabl\x15\x80\xab\x8fI\ +\xb3\xaf\xcc@\x84\xb3$\x8bK\xd8\xf7G\xc5p\xf0\xf4\ +\xe4\xabFx>\xb3\xa0,W\xf9\xd3;\x08\x80\xa4\x9a\ +h\xb6\x00\xef\x16CK\xe2Pj.\x19_\x10\x1dB\ +l5\x957\xe3\xa2?]\xf5_\xf1~\x84\x11\x96x\ +\xa2p\xdb\x92\x17p\x1aJ\xa4\x98P\x0b\x06/\x12s\ +\xc1=\x8cBI\x11\xb4\x16\x81\x0a\x19U\x04k1\xe9\ +:\xc6\xe4\xad\x11\xee\xe7\xfd\xf5*DR\x9e$gU\ +\x88\xc0\x82)\x93Z\x92N^\xe4\xb0\x92d\x17\xdf\xed\ +\x9bf,\xfb\xdd\xe6e\x0c[\x92\xa9:\xe9)_c\ +\xdc\x09Zm\x01\x1clb\xd6\xc9\xb2\x04\x12\xb7\xaa\x92\ +\xe7\xf3\xa0}>8\xe9\x1c\x9c,$\x8cq!\x16\x01\ +f\xa1\x96\x94i\xee\xe9\x90r\x85\x91^\xb4/H+\ +\xf2\x7f4/\xd0\xe43hB\xc5R\x12\x11\x01D\xc4\ +2\xe4\x84\x11$\xbd@\x87\x5cK\xae\xc8\x02x\xaa)\ +\xf4\xd4\xf8o\xc2S\xa8\xbf\x8e\xe7\x9f\xc3w\x81\xfc\xd4\ +\xfb~#\xb5\xb0w\xc1A\x0c\xce\xe4i\xfai\xc8\xaf\ +\xf4\xf9\x0cQ\x913Qa\x00\x8f\x22\x82\xb2E@C\ +\x86\x040\x9aypL\x90\x1c\x82!\x16m\xf5 \xfa\ +\x7f\x89\xe2\xa6(\xf2]==G\xbb\x0d5D\xc0D\ +\x22\xa6 UON\x839U\x92LI\xed6a\x11\ +\x12\x0c:2\x0dz\xbbys\x1eRB\x10\x95W\x82\ +AE \x02:\x87\xeb\xb0\xc0#\xc2\x1c\x9e\xf5\xfa\x88\ +\xf0T7\x0b\xf8\x98\x94=\xda\x0akB9\xbd@\xb6\ +\xb2\xfb2{\x0d\xd9_\x82,\x81\xd2\xc9\x14\xa6s\xc8\ +\x22\x01\xd4\x13\xe2\x02Y\x192M\x05\xe1\xe2\x12Y\xd8\ +Ua0A\xf1ud\xf1\x8bp]\xab,\xa3\xaf\xc0\ +\x95\x86\x14+\x8d\x09\x91_\x06W\xd8\x9d\xe0\xa0\x81)\ +\xbb\xc0\x95\x85\x0cc\xac\xf1%c]\xe9%\x82\x13\xce\ +/\x81\xa5$\x14LpI>A\xd9\x97\x11V\xebW\ +\x11\x96\x86J#-\x00\xdc/\x03,\x14B\x85\x14%\ +t\x86\xb0\x5cA\xe9\x9a\xc3\xb5= h=CXw\ +*\x13T\xe0\xeb\x84}\x09\xaaT&w\xa9z\x15\xaa\ +Li\xc85!\xbf\x14\xaa\x0a\x01vT\xcd\xa0\xaa\x09\ +\xc7\x08_\xa2\x0a}\x14\xe7j\x0eU\x06\xeb\xe1\x88\xb3\ +O\xb0\x15\xbd\x04W\x92\xc8\xf5+\xd9J1\xd5Ji\ +\xf2w\xe2\xba\x8c6\xdd\x95}s~\xb5\x1a\xddMF\ +W\xfd\x10!!\x89\xa2\x8b\x80p\x80Q\x12\xado\xfc\ +\xe9m\x0c\xc3m\xac\xff\x14pvS\x13\xa3\xea1;\ +\x01\x0a9&\x0c\xae<\xc3\xedfY\xc1a\xe4\xcd$\ +\xea8\x14\x08\xc1\x09b\x9c2\x8e\x0cp\x02\x84\x9b\xca\ +$'Z&HJ)\x1fK\xbb\x0b\xb7\x805 \x09\ +g\x86\x91\xeet]\xa7\xda\x0dF\xf1\x98\x0an\x11\xce\ +\x1b\xc6'\xe4\x99\x9c]\x10\x22w$\x1d}`\x195\ +O\xc1u\x87R\xae8\x12\x17'\x95Il?[\xc4\ +\xdf\xef\x92\x1cn\xd8\xed7\x93\xf8\xf8m\xa6\xf6\x9c\xb7\ +\xde\xd1\xf2\x8c\xa7c\x82\xcca\x0f\xa798T\xcf`\ +\xaf\x10\xec]S\xecY\x88\xe0ZC\x10\x9f\x05_R\ +\xa1\x85\x14\x97\xe0\xc3vL0\xa3\x93\xfb\xe8\x18\xfc\xc9\ +!g\x02\xff)\xf3\xae&\x16\x1c=\xb5 \x8cK\xfe\ +\x05\xb0/\xdd\xe7\xd7b\xf4\xa1ls\xfcF\x06\xff\x96\ +\xee;\xed\xed\x9b?\x00\xe5\xa8\xee@\ +\x00\x00\x05&\ \x00\ -\x00\x11\x9dx\xda\xd5X\xddo\xdbF\x0c\x7f/\xd0\xff\ -\xe1\xa0\xbe\xb4\x98u\xba\xef\x0f\xd5N\x81\xa1(\xb6\x87\ -\xbdl\xdd\x06\xeceP\xa4\xb3\xadF\x96\x0cI\x8e\xe3\ -\xfc\xf5\xe3I\x96\xac8\x0eP\xa4E\x83)\x09\xec#\ -yG\xf2w$Ef\xfe\xe1nS\xa0[W7y\ -U.\x02\x8aI\x80\x5c\x99VY^\xae\x16\xc1\x9f\x9f\ -?\x85&@M\x9b\x94YRT\xa5[\x04e\x15|\ -\xb8z\xfdj\xde\xdc\xae^\xbfB\x08\xc1\xf6\xb2\x89\xb3\ -t\x11\xac\xdbv\x1bG\xd1vW\x17\xb8\xaaWQ\x96\ -F\xaep\x1bW\xb6MD1\x8d\x82\x89|z\x92O\ -k\x97\xb4\xf9\xadK\xab\xcd\xa6*\x9bnk\xd9\xbc\x99\ -J\xd7\xd9r\x14\xdf\xef\xf7x\xcf;)j\xad\x8d\x08\ -\x8b\x18\x0bA\x22l\x0ee\x9b\xdc\x85g{\xc1\xceK\ -{\x19!$\x02\xdeD\xf4+\xc5\xe2\x06\xc0\xd9\xc2\xdf\ -(?\x10pS\xed\xea\xd4-a\xa3\xc3\xa5k\xa3\x8f\ -\x9f?\x8e\xcc\x90\xe0\xac\xcd\xa6\xe7\xe4\xe5M\x93&[\ -\xf7@\xef@\xecaH6\xae\xd9&\xa9k\xa2\x81\xde\ -\x1f0\xac\xe2\xe9\xc5\xa1\xb7\x82p\x99\x88\xe5\xb5\xb03\ -\xc4\x08#!\x91!\xa1\xef\xfa=\x83!qV\xa5\xfe\ -\xe0E\xd0V\xff\xde6)\x1e\xdd\xcb\xb3E\x00\x0b\xd5\ -\xaf&G\xd3#%w\xfb\x9f\xab\xbbE@\x10A\xc2\ -\xc0oO_\xbb|\xb5n\x17\xc1\xb0\xde\xe7Y\xbb\xee\ -\x96W~=\xef\x03\x05\xa1\xb6N\xca\x06\xd0\xd9,\x82\ -M\xd2\xd6\xf9\xdd[2\x03X4'\xc2\x18:\x9b|\ -\x9bYL\x89\xa4\x9c\xcd\x04\xc5\x9a\x0a\xaa\xd4\xd1\x8b\xde\ -\xca\x95e\xac?\x1c\x8e\xdf&\xed\xfa\xc8\x03/\xdbC\ -\x01\xae-\xf3\xa2\x88K\x08\xd8\xf7M[W7.~\ -\x938\xffs\x5c\x86\x9d\x891\xc3DJ6\xd0\x8a\xbc\ -t\x00j\x5cW\xbb2\x9b\x12\xbfTy\xf9\x90\xba\xc9\ -[W\x179|\xc4b\xa0eI\xb3N\xea:9L\ -\xf5\x86\x15\x5c_\xde\x1eb\x1a\x8c&\x82\xfd\x1bD5\ -\xd6\xc4p\xaeg\x8c`\x01\x17g,\x22\x98(\x0e\xee\ -S\x8393\x8c1D9\x86\x00\xe4T\xcfB\x83\xad\ -\xd1D\xa2\xfb\xd3A\x1e\x09\xef\xbc\xe1\xe2D\x1c\xaf\xb9\ -\xac2\xd7\x1e\xb6\x0e\xe2:\x85'@\xd1\xb7\x03F\xb1\ -\xb5\xca\x98\x17A\x8c\xc3mi\xa1- F\xb1\xb2\x82\ -\x0b\x85 z\x083Z\xcc\xa8\xc2J\x12*.\x81\xa3\ -\xbe\x9b\xebL\x88\x17p\xfd7\x1f,\x841n\xed\x8c\ -\x83\xc3\x92\xc0% \x86\x95\xe2\x942\xd6\xd1\xa86\xd4\ -\x5ct>\xe4\xe1\x93\x00\x9c\x89\x85\xfaL/\xb7\xa0\x0d\ -\x94\x81^,\x8c2\x8a\x18d\xb0\x16\xd6p-=\x0d\ -BX\x13\x16<;\xfb\x88U\xfc\x07!\xfa}b\xc0\ -\x18\xc5\xd9\xcb\xc4\x80\xc2\x8c\x11:\x13\xd8\x0a\xca\x8d\xd6\ -\x10\x01R3\xc5\xe5\x8cYl\x89\xd0R\x04O\xdfl\ -(\xbf:\x08B\x19\xf2\xf3@\xe0\x18t\xc2\xdb\x05\xd4\ -\x1b\x06\xb7\x0f\xea\x85\xc2\xda\xc8N\xbb\xb6T\x0b\x1e|\ -\x0b\xa8\xf4e\xc3\xe0\x1c\x04y\x06\xc0#g}9\x12\ -L1\xca;\x9a4R=\x1f\x00_Y~|\x1e\xd4\ -.mG\x8b'\xef\xe6\xbaj\x93\xd6\xbd\xb5\xe4\xdd\xc9\ -\xa1\xc3\x22\x08%$,\x93BL\xc2\x0cz\x81P`\ -&\x15S\xd6\x9e\xc8CC \x05\xa0F\x94\x9c\xc4\xf2\ -\xb17\x90]\xcdb\xe4\xacfy\x93\xac\x11\xcf.(\ -\x9ak\xfbcp|\xbfM\xf2\xb2\x0d\xab:su\xbc\ -I\xea\x1b\xe8\x96P/\x84\xbc\xb5_\x13h\xea,\xc8\ -\x18d\x99\x844\x96\xb3\x90\x12l\xb9\x85\xc4\xe8\x88\x0c\ -P\xf4\xf5\x96\xf9^\x80\xca\xe7'\x9a\xa6\xd6\xfc\xbf\xea\ --\x85+}\x91v\x83\xc1\x0b\x96\x13\xc2\xc4\x0cr\xdf\ -r\x9f\xe1]\xbbaDW\x05\x15tc\x8c^.\xb8\ -*d\x83\xfb\xf3h\xd5\x7fn\x5c\x9bdI\x9bL\x9a\ -\xd8\x81DO\xad,\x8c1\xf1\xef\x1f?]\x0d\xc7\xce\ -\xd34\xfe\xbb\xaaoF5\x08y\x91\xe4\xba\xdaAz\ -\x05W'\xfa\xca\xa3\ -\x7fz\xb5s\x9f\xbd\xf0\xf9\x1fY\xc0+7\ -\x00\x00\x0bb\ +\x00\x114x\xda\xd5\x18]o\xdb6\xf0\xbd\xbf\x82P\ +_Z\xcc\xa2\xf8-R\xb5]`(\x86\xeda/[\ +\xb7\x01{\x19\x14\x89\xb6\xd5\xc8\xa2!\xd1q\xdc_\xbf\ +\xa3l\xc9v\xea`EZ$\x98\xe2\xc0\xe2\xdd\x91\xf7\ +}\xbc\xf3\xf4\xfd\xfd\xbaFw\xb6\xed*\xd7\xcc\x22\x8a\ +I\x84lS\xb8\xb2j\x96\xb3\xe8\x8f\x8f?\xc5:B\ +\x9d\xcf\x9b2\xaf]cgQ\xe3\xa2\xf7\xf3W\xd3\xee\ +n\xf9\x0a!\x04\x9b\x9b.+\x8bY\xb4\xf2~\x93%\ +\xc9f\xdb\xd6\xd8\xb5\xcb\xa4,\x12[\xdb\xb5m|\x97\ +PL\x93\xe8D^\x9c\xc8\x8b\xd6\xe6\xbe\xba\xb3\x85[\ +\xaf]\xd3\xf5;\x9b\xee\xf5\x19q[.F\xea\xddn\ +\x87w\xbc'\xa2\xc6\x98\x84\xb0\x84\xb1\x18(\xe2n\xdf\ +\xf8\xfc>\xbe\xdc\x0a2^\xdb\xca\x08!\x09\xe0N\x94\ +_G\x95u`\x95\x0d\xfc\x8f\xe4\x03\x00wn\xdb\x16\ +v\x01\xfb,n\xacO>|\xfc0\x22c\x82K_\ +\x9e\x1dS5\xb7]\x91o\xec\x05\xd7\x01x\xb0@\xbe\ +\xb6\xdd&/l\x97\x0c\xf0~\xff\xb0\xc8\xce\xfd\x85\xde\ +\x08\xc2e.\x167\xc2L\x10#\x8c\xc4D\xc6\x84\xbe\ +\xed\xb7\x0cRd\xa5+\xc2\xb1\xb3\xc8\xbb\x7f\xee\xba\x02\ +\x0f\xaaU\xe5,\x82w\xd5/\xce\xce\xa5\x07@ew\ +?\xba\xfbYD\x10AB\xc3\xa7\x07\xafl\xb5\x5c\xf9\ +Yt\x5c\xee\xaa\xd2\xaf\xfa\xd5\x1c\x96\xd3>2\x10\xf2\ +m\xdet`\x93\xf5,Z\xe7\xbe\xad\xee\xdf\x90\x09\x18\ +#\xe5DhM'go\x13\x83)\x91\x94\xb3\x89\xa0\ +8\xa5\x82*u\x90\xfe \xde\xd20\xd6\x9f\x0cgo\ +r\xbf:`@7\xbf\xafA\xa1EU\xd7Y\x03\xc1\ +\xf9\xae\xf3\xad\xbb\xb5\xd9\xeb\xdc\x86\xbf\xe32\xee\xa5\xcb\ +\x18&R\xb2\x01VW\x8d\x05Kf\xad\xdb6\xe59\ +\xf0\x93\xab\x9aK\xe8\xba\xf2\xb6\xad+\xf8\xca\xc4\x00+\ +\xf3n\x95\xb7m\xbe?\xe7\x1b;pY\xe5\xf7\x19\x8d\ +\x06\x09A\xf85\xa2)N\x89\xe6<\x9d0\x82\x058\ +K\x1bD0Q\x1cT\xa7\x1as\xa6\x19c\x88r\x0c\ +\x11\xc7i:\x8956:%\x12}\x1e\xcf\x09V\x08\ +\x9ak.F\xd8\xe8\xd9\xc6\x95\xd6\xef7\x16\xc2\xb8\x80\ +'B\xc9\xb7\xda\x8abc\x94\xd6/a,\x0e~J\ +Ej\xc0X\x14+#\xb8P\x08\x82\x860\x9d\x8a\x09\ +UXIB\xc5\x15\xbb\xa8\xef\xa46\x13\xe2\xf9\xd5\xfe\ +5\xc4\x08a\x8c\x1b3\xe1\xa0\xac$`\x7f\xc4\xb0R\ +\x9cR\xc6z\x18M5\xd5\xd7\x14\x8fy\xfc\x88\xf2\x0f\ +\x88\xe2\xf4\x92'7\xc0\x09\x18\x01O,\xb4\xd2\x8ah\ +\xa4q*\x8c\xe6\xa9\x0c0\x88\xda\x94\xb0\xe8\xa9\xe9F\ +\x8c\xe2\xcfd\xcb\xef\xe1{\xad\x15g/\xe2{\x85\x19\ +#t\x22\xb0\x11\x94\xeb4\x05\xcf\xcb\x94).'\xcc\ +`CD*E\xf4\xa8Oc\xf9\x95\xce\x8fe\xcc\x1f\ +\x04\x00\xc7\xc0\x0f.\x0f`\xad\x19x\x1dX\x0b\x85S\ +-{\xce\xa9\xa1\xa9\xe0\xd17\x98\x93\xbe\xa4\xfb\x1f\x1a\ +@^*\xff\x85\xa2\xa1\xf4\x08\xa6\x18\xe5=Lj\xa9\ +\x9e\xac|\xa8#\xcf\x1e\xfb\xad-\xfc \xef\xd9\xdd\xdb\ +:\x9f{\xfb\xc6\x90\xb7\xa36\xfbY\x14K\xc8P&\ +\x858\x85\x16\xdc\xf2\xb1\xc0L*\xa6\x8c\x19\xa1\xc3U\ +/\x05\xd8\x8b(y\x0a\xde\xe3\xad/\xfb\xe2\xc4\xc8e\ +q\x0a\xc2\x18-\x9eZvmi\xdbl\x9d\xb7\xb7\xd0\x02\xa1\x03\x11\ +\x0a\xd2\xfewp\xa9\xcb\xc0b\x90U\x12RVNb\ +J\xb0\xe1\x062\xa1\x072\xb0_\xa8\xab,\x5c\xf3T\ +>9\xb1Rj\xf4\xff\xa9\xaeRp\xe6K\xb4\x12\x0c\ +.PN\x08\x13\x13\xc8u\xc3CF\xf7\xad\x84\x16}\ +\xc5S\xd0d1z\xb5\xb0\xaa\x98\x1dU\x9f&\xcb\xfe\ +km}^\xe6>?5\xa5\x03\x84\x8e\xad)\xcc!\ +\xd9o\x1f~\x9a\x1fO\x9c\x16E\xf6\x97ko\x07\x06\ +\x08\x05\x82\xfc\xc6m!\x9b\xa2\xf9\x08\x9e\x96E\x162\ +5\xf7\xf3j\x9d/m\x18:~\x80Ia\x9a\x9c\x10\ +\x17\xc4\xa1\xd7;\x1dz8\xb6\xb5\x87\x11\xe4\xea\x1cV\ +\x16`D\xd8\x94\xfc\xee\xc1g\xbf\x04&\xa3g\xc7C\ ++_\xdby\xcf\xf3\xf0:h\x91\x1c\xd58*\x99\x9c\ +i9M\x06#\xf4\xab\xd2.\xba\x93}\xc2\x8a\x92\xc1\ +\x8c\xa7f\x15f\x902L\x15G\xcaa\xa2\x81\xf1d\ +\x1b\x86\xc5\xb8/W\xfd\x0cB\xa2\x074\xc5\xb6m\x03\ +I\x9d\xefm{\x1c\x0b\x1e\x90\xec\xaa\xa6t\xbbx\x9d\ +\xdfC\xe0|\xb6\xe5\x95S\x8e$P\x03\xa9\xa6\x8f \ +\xa1\x14\x86\x96\xf2!\x7f\xd8\x03\xad\x185R(\xfd\x05\ +\x12\xf60\x01\xcd+\xdc\x1b_ ?;\x07\x95\xd8`\ +\x98\x02\xe0\x19\xaab\xb7r\xbbe\x1b\x8c\xb5\xc8\xeb\xce\ +\x9eM<\xa3\x95\xf4#\x02\x0eU9\x95\xfc\x11\x8ac\ +u\xa6|l\x1eF\x8a\x0d\x04\x00\xe4\x11P\x81\xc8\xd7\ +\x90\xc7\x84:\x19o\xb9\xad`\xc6p\xb5\x85k%\x04\ +\x19\x1d\x11 \xfe5\xb8\xbb\xf9\x04\x17\xc05\xccM_\ +iG\x0e\xf4\x02\x5c\xb8\xda\x81g_\xab\xfe9\xa2\x82\ +D\x03b\xd1?CT\x9d\xaaR(F\xe1\xb7\x89\xe6\ +\xdc\x8a\x01=\xe8whx\xb00\x0cj\xaf\x0as(\ +7\xcc\x80\xf9R\xf43\x92\xf4\x80`\xe8O$R\xac\ +\x08\xb4\xbd\x02\xe0#=\xfa\xbbg9\x0d\xb99\x7f\xf5\ +/\x93\xea%\xe2\ +\x00\x00\x0b\x14\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ - \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \x0a \x0a \ +\x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x05\xf8\ +round;stroke-opa\ +city:1\x22>\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x05\xf0\ \x00\ -\x00\x15\xc9x\xda\xedXmo\xdb6\x10\xfe^\xa0\xff\ -AP\xbe4\x98%\xf1U\x22U;\xc5\x86\xa2\xe8\x80\ -\xf6\xcb\xd6\xbd~c$\xdaQ#\x8b\x06%\xc7I\x7f\ -\xfd\x8e\xb2%\xcb\xb6\xdceH\x8b\xa2\xc0\xd4\xa41\xef\ -\x8e\xe4\xdds\xcf\x1d)O_\xdd/K\xefN\xdb\xba\ -0\xd5\xcc\xc7!\xf2=]e&/\xaa\xc5\xcc\xff\xed\ -\xc3\x9b@\xf8^\xdd\xa8*W\xa5\xa9\xf4\xcc\xaf\x8c\xff\ -\xea\xea\xf9\xb3i}\xb7x\xfe\xcc\xf3\xbcM\x9177\ -3\x9f\x09\xbf\x1d\xde\xe8bq\xd3\xec\xc7w\x85\xde\xfc\ -d\xeeg>\xf2\x90\xc7\x84\xd7\xc9\x8b|\xe6\xc3\x12d\ -g\xb5\xdf\x1f\xef\xf4\xd5m\x9d\xa9\x95N\x87\xaa\x90x\ -/\x90B(\x9bsJ\xe5\xc4#\x88\x90\x00\xc1\x0f\xbb\ -\xdc\xce\xaa\xc1\xef\x15\xfc\xa6\xb9\xc9*\xb5\x04w\xf3\xcc\ -\xac\xe6!\xec\xb45\x80`\xab:\xed\x16\x9f\xf97M\ -\xb3J\xa3h\xb3\xd9\x84\x9d04v\x11\xb9\xc9\xf5J\ -e\xba\x8e:\xf9p\x81n\x9f~\x81N\x10\xd6fm\ -3=\x875tX\xe9&z\xfd\xe1u\xaf\x0cP\x98\ -7\xf9`\x9d\x83\xfd7\xb4\xdd\x99 \x84\xa2#\x7fa\ -\xf8XS\x9b\xcf\xc7L\xb1\x942B$\x02\xbc\xc0\x22\ -\xa8\x1f\xaaF\xdd\x07U}1\x9c\x9be\xfd\xd4\xccj\ -\xd5\x14w:3\xcb\xa5\xa9\xea-&\x87\xd6\xf9\xdez\ -\xb5\xb6ek\x92g\x91.\xf5RWM\x1dA\xbe\x22\ -\xff\xcaM\x98.u\xa3r\xd5\xa8v\xf66\xf7\x9d\x08\ -\x93\xad\x0dX\x81c\xe9/\xaf\xdf\xec\x86 \xc8\xb2\xf4\ -\x0fco\xbb1<\xceD]\x9b5\x10\xcc\xbf\xda\xcb\ -\xa7y\x96\x02\xe4K\xd5\x5c\x15K\xb5\xd0\x0e\x94\x1f\xc0\ -\xcbi\xb4W\x1cZ7\x0f+=Xw\xbb\xb2\xd5\xdb\ -\xec\x8d\xc6\x95g\xcb\xc2\xcd\x8a~m\x8a\xb2\xfc\xd9m\ -\xe3{\xd1\xde\xd9h\xe7m\x17M4\x0cg\x1au\xf1\ -n\x87\xb9\x9e\xd7\x030\xdc\x10\xa3\x1e\x88\xa5\xb2\xb7\xda\ -\xf6\xee\xf5\xa5P7&\xbbu\xf6?Zk6\xf8\x1d\ -\x94\xa5m\xfc\xde\xce\xd8\x02\x80\x9f\xf9j\xdd\x98\xbd\xd4\ -\xea\xf9_P}P\xd7C\xd1\x9fG\xa2\xf3\xab\xd6\xcd\ -C\x09\x88\x18\xa8\xc3yi6\xe9]Q\x17\xd7\xa5\xf6\ -O\xdd+\xea\xd6\xc1\x99\xdf\xd8\xb5\xde\xa7g\xbaR\xcd\ -\xcd\x00k\xb7\x95\x131.\x85?\x90\x83\xf8\xbd\x07N\ -M\xe0\xd7{\xe7q\xf8\x14\xf0\xf6c\x80I\xc8\x07\xe2\ -\xad\xb43\xfd\xe4\x0dW\xd9\xb9;\x87\x1c\x05v]\xea\ -T\xdf\xe9\xca\xe4\xf9\xcb\xba\xb1\xe6V\xa7\x17\xa8}v\ -\xc3\xa0\xed^)t\xbdU3\x5c\xa5\xb1\xaa\xaa\x1dq\ -\xa0Ie\xaa\xd4/P(.\xb7\xd2R5\xfa\xc5\xd6\ -\xa1\xcb=\x01 \xc1m\xd2v\xd9v\x09\xdd~\xec;\ -\x92\xeb(\xb9\xeb\x86\xbbmV@\xa0\xcc\x94\xc6\xce\xfc\ -\x8by\xfbt\x0e\x5c\x1b\x9bk\xdb\xe9\xe2\xf69\xd4\x19\ -\xe8L@F\xe8\x89\x9d\xdc\x5c\x7f\xd4Y\xd3\x98R\x83\ -\x8f\x8e\xc1\xb8O\xee\xc2B\x8c\xa3\x8au\x91\xebQM\ -\x9fR\xe7d\xbf\xd9\xb8\xba\xbeQ\xb9\xd9\xcc|r\xa2\ -\xdd\x14\x15h\x82\xdd\x01A8\xe2\xe7L\xbaC\x03#\ -\xdcG\xeah\xd2c\xd6\x13\xa5\xbe1\x1b\x17\x10dX\ -\x95\xb5>Y\xf0\x931\x903H\x0f\x92\x8c%\xa7>\ -ep\x12a\x19R\x96\xc4bD\x0bQ\x12\x1c&\x22\ -\x16\x98\x9es\x16V\xe0g#q\x0b$\xe7\x94Ku\ -_,\x8bO:\x1f$n\xbf\xf7\xdaZ(\xdf\xa0T\ -\x0f\x1a\xf2\xbe\x90\x08\x8f\xe2\x9d\xdd\xe8\x0c\x88vm\x94\ -\xcd]Nv\x14\x9c.\x06\xb8-\x18\xe6\xfbv\xb28\ -\xa8\xf2\x05\xe3\x8c=\xa6:):\xad\xce\x09\xf2\xde\xba\ -S\xfcw\xf7\xdf[8\xd1\xff\x1e\xda\xecc1U\x05\ -t46\x80\xa8\xeeT\xb3\xb6z@\x9f\xa32M+\ -\xb8W\x1c\xb4\xd2\xc5\x91?C,\x8e\xaa\x13:\xbb-\ -\xee_@\x01'T\x12\xc9&\xe0\xe2d?J\xa0n\ -%\x04\x8c'\x14\x85\x09%\x12\xd1\xcb\x83\x83\xe3(\xfa\ -\xff\x14\xc3\x00,\x9c\xe0C\x8d;\xe1\xbc\x80\xd30A\ -\x82\xc5b\x22BFq\x22c\xeca\xe7\x08JP2\ -\x09\x9cP\x10,\xb9<\x9c<\x04\xe7B\xc7\xee\xdf\xcb\ -\xf3\x0d\x8dd\x5c\xa9\xa3\x86F\xc2DR&:aY\ -@(j\x95^\xaf\x9bf(\xfbh\x8a*\x85cM\ -\xdbN\xda\x0eJ`i\x93\xb2N\x96+\xa8qk\xd5\ -C\x9b\xa9N\xbak\x0b)\x1e\xa6\xeeK\x22JG\x11\ -e!a\x8c\xc7\xf1$\xc0p\x1ddBp\xeeA=\ -s\x81\x91\x9c\xb4\x1f\x90L\xc4\xffx\x9e\xe2\xc9\xc7\xf0\ -\xa48\x14\x09\x221\xb0\x11\x03Y\xa5\xe4q\xe2\x052\ -\x14\x88a!&\x801c\x82$$\xfe\xae\x11=\xf4\ -\xbd?\x91\x0d\x1c\x7fp\xa3\x83kx\x96\xfd\x1b\xeag\ -f}\x91\xcc$'\x99y\xef\x05\x0c\x10\x12$\xa6\xd0\ -\xd2Bh\x1d\x82\x22\x82!_p\xe3\x81\xc6\xc6\xdb\xd4\ - \x8e\x8e\xab\xe4\xbb\xa6\xba.\xcbbU\x1f\xdd\xcb\xe1\ -D\xa5\x10\xa9\x04\x0e\x1e\xe1d\xef\x9d\x0as*\x12r\ -Dnw\x90\xcbP\xd2\x18\x1a\xf3\xb1\x0af\x05\x9c\x87\ -\x94\x10D\x93s9\xa1q\x10\x07\xe3\xd8\xf6\xde\xbf\xdc\ -\xa2\xcc\xe1\x99\xcf\xb7(\x1f\xeaFA\x1f\x02\xd1#.\ -\xb0$'\xe8Z\xb3\xae\xf2\xaf\x8f.\x09e\xc2\xe0\xbe\ -3\x8a.\x8a\x81\x81q|\x8a\xae\xeb\xbe\x18\xf8\x19\x8f\ -\xa0K\xa0\x7f\x00\x82\x14\x7f\x06]\xfc8l\xe7\x22\xcf\ -\xe9\x13\xb0\xa5P;B\xe2o\x85-\x9cV\x89\xe4\x98\ -\xb2SlY\xc80\xc6\x12\x8f0\xd7\xb5b\xceP<\ -J]J\xc2\x98\xc5|\x7f\xb7\x1d\xa3\xee#\x89+\xe5\ -\x93\x88K\xe1r\x85d\xfc\xad\xc0\xa5!\x13HPB\ -\xc7\x88\xcb\x05\xb4\xb1Ql\xdd\xb5\x01Tc\xc4u\xf7\ -\xb5\x18\x9a\xc6g\x88\xfb(di\xa2\xae3\xf1$d\ -\x19\xdc[\x93o\x87\xac@\x00\x1f\x15c\xc8J\xc21\ -\xc2#\xc8\xa2\x10\xc7Hr\x84\xc4\x08\xb4\x0cB\x827\ -@\xf69\xda\xa2G\x81KT2\x7f\x22m)\xa6R\ -~Up\xa7\xd1\xa2\xfff`q\xfa\x226x\x83\x19\ -|\xa9\x10\x22\x14'D\xd0I@x(\xe0T\x93\xf2\ -\xd2?zy\xc3\xf0\xf2\xd6\xbd\xf2\xb5+O\xdd\x97]\ -\xf0\xf7\x1fZ\xa1\x14G\ -\x00\x00\x0e\xb7\ +\x00\x15L';\x9b\xc3\xce\ +x\xa7-\xef\xaaT\xad\xf5\xb4\xaf\x09\x89w\x89\x14B\ +\xe9\x82S*'\x1eA\x84\x04\x08~\xd9U3\xa9\x02\ +\x7f\xd7\xf0\x99f&-\xd5\x0a\xdc\xccR\xb3^\x84\xb0\ +M\xa3\x87\x18\xcbj\xda.=\xf7o\xebz=\x8d\xa2\ +\xedv\x1b\xb6\xc2\xd0\xd8e\xe4\xe6Vk\x95\xea*j\ +\xe5\xbd\xf9\xed.\xdd\xfcV\x10VfcS\xbd\x80%\ +tX\xea:z\xfd\xe1u\xa7\x0cP\x98\xd5\xd9a\x99\ +\xc1\xee[\xda\xecK\x10B\xd1\xd0Y\x18=\xd1\xd2f\ +\x8b1K,\xa5\x8c\x10\x89\x00)\xb0\x08\xaa\xc7\xb2V\ +\x0fAY]\xf4\xa6\xa6i73\xb5Z\xd5\xf9\xbdN\ +\xcdje\xcaj\x07\xc7\xc08;\x18\xaf7\xb6h,\ +\xb24\xd2\x85^\xe9\xb2\xae\x22\xc8S\xe4_\x83\xfdl\ +\xa5k\x95\xa9Z\xb9\xb9\xbb|\xb7\x12L\x1a\x0b\xb0\x01\ +\x9f\xa6\xbf\xbc~\xb3\x1b\xc18M\xa7\x7f\x18{\xb7\x1f\ +\xc2\xe3\x0c\xd4\x8d\xd9\x00\x9f\xfc\xebN<\xcb\xd2)\xe0\ +\xbcR\xf5u\xbeRK\xed\xb0\xf8\x01\xfc\x9bE\x07\xc5\ +\xc0\xb8~\x5c\xeb\xc3\xa2\xbbe\xad\xde%l4\x9e,\ +]\xe5nR\xf4k\x9d\x17\xc5\xcfn\x13\xdf\x8b:?\ +\xa3\xbd\xa3\xfb0\xa2^\x1c\xb3\xa8\x0d\xb3\x19ezQ\ +\x1d\x10p#\x8c\xda\xe8W\xca\xdei\xdb\xfa\xd5q\xbe\ +\xaaMz\xe7\xac\x7f\xb4\xd6l\xf1;(<[\xfb\xad\ +\x99\xb19\x00=\xf7\xd5\xa66\x9d\xd0\xea\xc5_Pa\ +P\xb7=\xc9\x9fC\xc9\xd9\x15\xab\xfa\xb1\x00\x14\x0c\xd4\ +\xda\xa20\xdb\xe9}^\xe57\x85\xf6O\x1c\xcb\xab\xc6\ +\xb5\xb9_\xdb\x8d\xee\xd21[\xab\xfa\xf6\x00\xae\xdb\xc6\ +I\x18\x97\xc2?\x88A\xfa\xde\x03w&\xf0\xf1\xdey\ +\x1c\xbe\x05\xbc\xf9\x1a`\x12\xf2\x9ex'mM?y\ +\xbdE\xf6\x9e. %\x81\xdd\x14z\xaa\xefui\xb2\ +\xeceU[s\xa7\xa7\x17\xa8y\xf6\xc3\xa0\xe9KS\ +\xe8f\xeb\xba\xb7HmUY9\x92@\x03JU\xa1\ +/Q(\xaev\xd2B\xd5\xfar\xe7\xceU\x97nH\ +h\x93\xa7]r]\x06\x9bo]\xb7q\xed\x22s]\ +n\xb7\xc5\x1a\xa8\x92\x9a\xc2\xd8\xb9\x7f\xb1h\x9e\xfd\xde\ +7\xc6f\xda\xb6\xaa\xb8y\x06*\x03=\x07H\x07\xbd\ +n/67\x1fuZ\xd7\xa6\xd0\xe0\x9c#*n\xb3\ +\xb9\xb4\x10\xda\x98|\x93gzL\xd1\xe5\xd0\xb9\xd7m\ +4\xaa\xadnUf\xb6s\x9f\x1c+\xb7y\x09\x8a`\ +\xdf\xed\x09G\xfc\x8cE{\x02`\x84\xdb\x08\x1d+:\ +\xa0Z^T\xb7f\xeb\x22\x81\x8c\xaa\xa2\xd2\xc7\xab}\ +2\x06r\x04\xe9@\x92\xb1\xe4\xc4\x9d\x14\xce\x14,C\ +\xca\x92X\x9c*!:\x82\xc3D\xc4\x02\xd33n\xc2\ +|~.\x047=9\xa3[\xa9\x87|\x95\x7f\xd2\xd9\ +!S\x87}7\xd6By\x06\x85z\xd4\x90\xe6\xa5D\ +x\x0c\xe3\xf4V\xa7@\xa9\x1b\xa3l\xe6\xd2\xb0\xe3\xda\ +ly\x00k\xc90\xef\x1a\xc5\xb2_\xc3K\xc6\x19\xfb\ +\xf7\xea\xa3\xe8\xa4\xfa&\xc8{\xeb\x8e\xe0\xdf\xdd\x9f\xb7\ +p\x1c\xff\xdd39\x84`\xca\x12hgl\x00\xc1\xdc\ +\xabzc\xf5\x81)GU8-\xe1:\xd0o\x8c\xcb\ +\xa1+\xbd\xf8\x8fJ\x0fZ\xb4\xcd\x1f.\xa18\x13*\ +\x89d\x13\xf0nr\x18%P\x94\x12\x02\xc5\x13\x8a\xc2\ +\x84\x12\x89\xe8U\xff\x00\x18F\xfd_\xbc\xefa\x84\x13\ +(\x17:v?/\xcf\xf7)\x92r\xa5\x8e\ +\xfa\x14\x09\x13I\x99h\x85E\x0eq\xa8\xf5\xf4fS\ +\xd7}\xd9G\x93\x97S8\x9c\xb4m\xa5\xcd\xa0\x00J\ +\xd6S\xd6\xca2\x05el\xadzl2\xd4J\xf7\x85\ +?\xc5\xbd\x94}90\xe9\x18\x98,$\x8c\xf18\x9e\ +\x04\x18.pL\x08\xce=(Z.0\x92\x93\xe6\x0b\ +\x92\x89\xf8\x1f\xca!\x94|\x04J\x8aC\x91 \x12\x03\ +\x071PTJ\x1e'^ C\x81\x18\x16b\x02\xf0\ +2&HB\xe2\xef\x19\xcc\x81\xeb\xdd\x09k\xe0P\x83\ +\xcb\x18\xdc\x9a\xd3\xf4\xf3x\x9f\x99\xf3\x05R\x92\x1c\xa7\ +\xe4\xbd\x170\xc0F\x90\x98B\xf7\x0a\xa1S\x08\x8a\x08\ +\x86D\xc1\xbd\x05z\x18or\x828:*\x8c\xef\x99\ +\xde\xba(\xf2u5\xbcJ\xc3QI!L\x09\xcc\x1b\ +bd\x1f\x9c\x06s*\x122$\xb4;\x9de(i\ +\x0c\x1d\xf8H\x03s\x02\xceCJ\x08\xa2\xc9\x99\x5c\xd0\ +8\x88\x83QP;\xb7_\xee\xe0\xe5\xf0,\x16;x\ +\x87\xbaQ\xb4\xfb\x08tP\x0b,\xc9\x09\xac\xd6l\xca\ +\xeck\xc3JB\x990\xb8\xbf\x8c\xc1\x8ab\xa0]\x1c\ +\x9f\xc0\xea\xba,\x06N\xc6\xa7\xb0\x12\xe8\x15\x80\x1d\xc5\ +\xe7a\xc5O\x02u!\xb2\x8c>\x03T\x0a\xc5\x22$\ +\xfe6\xa0\xc2\x81\x94H\x8e);\x01\x95\x85\x0cc,\ +\xf1)W]\xc3\xe5\x0c\xc5cd\xa5$\x8cY\xcc\xbb\ +\xfb\xe9\x18Y\x9fFU)\x9fEU\x0a7&$\xe3\ +o\x83*\x0d\x99@\x82\x12:BU.\xa0]\x8d\x81\ +\xea.\x04\xa0\x19\xa1\xaa\xbb\x83\xc5\xd0\x1e\xceS\xf5)\ +\x90\xd2D\xdd\xa4\xe2Y\x902\xb8\x85&\xdf\x0aR\x81\ +\x008*F \x95\x84c\x84O!E!\x8e\x91\xe4\ +\x08\x89SL\x19D\x03\xefl\xec3DEOA\x95\ +\xa8d\xf1L\xa2RL\xa5\xfc\x9a\xa8\xce\xa2e\xfb\xf2\ +\xbe<~\x87\xea\xbd\x84\xf4^\xfaC\x84\xe2\x84\x08:\ +\x09\x08\x0f\x05\x9cXR^\xf9\xc3\xd7.\x0c\xaf]\xfb\ +\x175\xb7\xea\xcc\xfd\xd7\xe9\xfa\xc5?\xedQ\x0d\x1e\ +\x00\x00\x0e_\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata12\x22>\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - <\ -/dc:title>\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs10\x22 />\x0d\x0a \x0a\x0a <\ +metadata\x0a id\ +=\x22metadata12\x22>\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \ +\x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ bordercolor=\x22#6\ -66666\x22\x0d\x0a bor\ -deropacity=\x221\x22\x0d\x0a\ - objecttoler\ -ance=\x2210\x22\x0d\x0a \ -gridtolerance=\x221\ -0\x22\x0d\x0a guideto\ -lerance=\x2210\x22\x0d\x0a \ - inkscape:page\ -opacity=\x220\x22\x0d\x0a \ - inkscape:pages\ -hadow=\x222\x22\x0d\x0a \ -inkscape:window-\ -width=\x221860\x22\x0d\x0a \ - inkscape:wind\ -ow-height=\x221017\x22\ -\x0d\x0a id=\x22named\ -view8\x22\x0d\x0a sho\ -wgrid=\x22false\x22\x0d\x0a \ - inkscape:zoo\ -m=\x229.8333335\x22\x0d\x0a \ - inkscape:cx=\ -\x2230.969878\x22\x0d\x0a \ - inkscape:cy=\x223\ -4.947767\x22\x0d\x0a \ -inkscape:window-\ -x=\x2260\x22\x0d\x0a ink\ -scape:window-y=\x22\ -26\x22\x0d\x0a inksca\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1860\x22\x0a inksc\ +ape:window-heigh\ +t=\x221017\x22\x0a id\ +=\x22namedview8\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x229.833333\ +5\x22\x0a inkscape\ +:cx=\x2230.969878\x22\x0a\ + inkscape:cy\ +=\x2234.947767\x22\x0a \ + inkscape:windo\ +w-x=\x2260\x22\x0a in\ +kscape:window-y=\ +\x2226\x22\x0a inksca\ pe:window-maximi\ -zed=\x221\x22\x0d\x0a in\ -kscape:current-l\ -ayer=\x22g897\x22\x0d\x0a \ - inkscape:docum\ -ent-rotation=\x220\x22\ - />\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \x0a\ + \x0a \x0a \ + \x0a \ +\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a <\ -path\x0d\x0a sty\ -le=\x22fill:#ffffff\ -;stroke:#feffff;\ -stroke-width:1.6\ -1445;stroke-line\ -cap:round;stroke\ --linejoin:round;\ -stroke-miterlimi\ -t:4;stroke-dasha\ -rray:none;stroke\ --opacity:1;fill-\ -opacity:1\x22\x0d\x0a \ - d=\x22m 28.13427\ -5,14.535605 2.90\ -0459,2.70152 -0.\ -145932,-5.618557\ - z\x22\x0d\x0a id=\x22\ -path884\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0c\xe4\ +c\x22 />\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0c\xd4\ \x00\ -\x00\x80\xb9x\xda\xed]\xdb\x8e\xdb\xc6\x19\xbe\x0f\x90w\ -`\xe5\x8b\xd8\xa8H\xcd\xf9 \xef:h\x12\xa4\x08\x90\ -\x00E\x9b\xa2\xe9U\xc1\x95\xa8]\xc6ZqAq\xbd\ -^\xbfU_\xa4\xcf\xd4ox\xe6\x8a\x1b\xf3\x82r\x91\ -z\x14\x18\x11\xff9\xfd\xf3\xfd\x87\x99\x8f\xa4v.\xbe\ -~\x7f\xbb\x0f\xde%\xf91\xcd\x0e\x97\x0b\x1a\x91E\x90\ -\x1c6\xd96=\x5c_.\xfe\xfe\xf3\xf7\xa1Y\x04\xc7\ -\x22>l\xe3}vH.\x17\x87l\xf1\xf5\x9b/\xbf\ -\xb8\xf8C\x18\x06\xdf\xe6I\x5c$\xdb\xe0!-n\x82\ -\x1f\x0eo\x8f\x9b\xf8.\x09^\xde\x14\xc5\xddz\xb5z\ -xx\x88\xd2Z\x18e\xf9\xf5\xeaU\x10\x86h\x8a\xc6\ -\xc7w\xd7_~\x11\x04\x01\xc6>\x1c\xd7\xdb\xcd\xe5\xa2\ -nsw\x9f\xef\xcb\xba\xdb\xcd*\xd9'\xb7\xc9\xa18\ -\xaehDW\x8b^\xfdMW\x7f\xe34H\xdf%\x9b\ -\xec\xf66;\x1c\xcb\xa6\x87\xe3\x8b~\xed|\xbbk\xab\ -;\x95\x1exY\x8bZkW\x84\xad\x18\x0bQ#<\ ->\x1e\x8a\xf8}\xf8\xa4-\xf4\x1ck\xcb\x08!+\x94\ -\xf5\xaaN\xac\xb6>\x02\xd9;\xfck\xeb7\x82\xe8\x98\ -\xdd\xe7\x9bd\x87\x86ItH\x8a\xd5w?\x7f\xd7\x16\ -\x86$\xda\x16\xdb~?\x0d\xb0\x83q\x07h\x1f\xe2\xdb\ -\xe4x\x17o\x92\xe3\xaa\x91W\x1d\xf4\x8cM+I\xba\ -\xbd\x5c@OV]=\xa4\xdb\xe2\x06\xa5\xb6\xbe\xbeI\ -\xd2\xeb\x9b\xa2'x\x97&\x0f\xdfd\xef/\x17$ \ -\x01\xa4A[\xd2\xe8\xbb\xdef\x1b7\xfe\xe5\xe2\xae\xd8\ -\xee\xfeU\x1c\xa3\x16\x86F\x97u\xab\x06\x89,\x8bd\ -\xf0\x92\x11E\x92\x0d\xdd\xd9\xdd2`\x84\x91\x90\x88\x90\ -\x98W\x8b7\xae\xdd\xc5mR\xc4\xdb\xb8\x88\xcbN*\ -\x95\x1b\x91\xa9\xaa\xa0\x12,\xb9\xfe\xebw\xdf\xd7\x97\x10\ -l6\xeb\x7fd\xf9\xdb\xe6\x1a\x1fW%\xbe\xca\xee1\ -\xa1\xc5\x9bN~\xb1\xdd\xac\x81\xfdm\x5c\xbcIo\xe3\ -\xeb\xc4\xd9\xed\x8f\x80\xfab\xd5\x15\x0ck\x17\x8fwI\ -\xaf\xdf\xaa\xe7<\xa9\xcc8\xea\xd0\xdb\xcdm\xeaZ\xad\ -\xfeV\xa4\xfb\xfd\x0fn\x98E\xb0z\xdamZ\xec\x93\ -\x9e\xf4bU\xcf\xa1\x99\xe3\xaa?\xc9\x8bU\x03Bu\ -\xb9Mv\xc7\x1eB\xeeR\xb5\xe8\xdc\xc6\xf9\xdb$o\ -\x87k-\x91\x1e\x8fE\xb6y{\xb9(\xf2\xfb\xdaG\ -\xdc\xe7X<\xee1\x91\x0c\x86\xda\xed\xb3\x87\xf5\xbb\xf4\ -\x98^\xed{\x15\xdc\x08\x7f\xca\xf3\xec\x81\xfe\x88\x0c\x91\ -\x17]I\x9e\xec~q\x86%\x03\xd1?\x9f\x88\xb2<\ -E|_.\xe2\xfb\x22[\x9c\xaaU*u2F\x07\ -\xcc]\x5c\xdc\xf4\x0cP\xe4\xf1\xe1\xe8,\x05_\xde\xc4\ -\xfb\xe4%\x89\xcc\xabJ\xbaG\x96zI\xe1dK\xf2\ -j\xd1kR\xcfp\x07k\x84\xf9\xfd>Y'\xef\x92\ -C\xb6\xdd\xbe>\x16y\xf66Y\xbf \xe5\xa7\xbe\x0c\ -\xcb\xc0X#E\xde\x15\xfd^\xa0\xe1O\x01&\xb6\xc4\ -\xbf\xe0\xc7@\xe2[(\xcb\xafa5f+\xae\xa4M\ -\xd5\x0fA\xbf\x177Q7#!\xad\xe9\xbc\x02\xf6-\ -\x8dV\x1b\xdb\xd9\xb3\xfa\xdaF\x9a\x0b\xb3\xad\x8b\xc8\xba\ -\xaf;x\xd5&\xdbg\xf9\xe5\xe2\xc5\xae\xfc4\xa3\x5c\ -e\xf96\xc9\x9b2U~\x86e\x19\xd2\x05<\x14\xa1\ -\xde\xc8\xb3\xab_\x93MQd\xfb\x048:\xb7\xa6\xad\ -\xfd\xaes\xc01Zp\x9fn\x93\xd1\x92\xd6\xb4N\xc9\ -v\xb0\xf1\xe2\xe3M\xbc\xcd\x1e.\x17\xec\xa4\xf4!=\ -\xa0$l\xd2\x94\x11\xe6\xb9*m\xe6\x22\xb4\xab\x03\x9c\ -[\xccD#=\xded\x0fnBp\x86x\x7fLN\ -:\xfc\x90e\xf0+\x161\xca\xb9\xa5\xf2\xa4|\x83l\ -\x182\x12)I\xb4\x12\xa7\xc5\x8fe\xfa\x8c\xb4\xa5\x5c\ -=\xa7-\xba\xd0\xcf\xce\x16\x1d0\xf9\x5c\xe1m\xfc>\ -\xbdM?$\xdb\x9e\xe5\xba\xb1\xef\xf3\x1ca\x16\xee\xe3\ -\xc7$\xef\xe7\xf9~\xa8\x1d\xe2\xbb\xf0\xea\xca\xe5\xf42\ -\x07\xd4\xfewq]W\x8c\xf34F\x07W\xc9\xfer\ -\xf1\x9f\x7f\x9f4oC/\xdc`\xa4$/\xa7\x12\x11\ -E\x8d\xe5\xf4\xe3\xb51\xb7\x10k\x91V\xd6\xf0\xce\x22\ -ulfP\xbd\xfc\xbe>\xb8,\xbc\x7f]J\x1eJ\ -\xcb\x0eDG\x00\xb0f\x5cGF\x08a\x98`w\xef\ -_\xef\xd3CR{\x01\xe2\x96\xc9\xaa\xe6.\xbeM\xf7\ -\x8f\xeb#\xd4\x08\x8fI\x9e\xee^\xef\x93\xc2)\xe2\x96\ -K\xec{\xd6\x04M\x1f\x10\x11\x03\x81\xcb\x12.#l\ -E\x1c\x97\x17a\xed\xc1k\xda\xe4\x8b\x03vH\xc3d\ -!#+\x14\xa5\x9c\xd2\xbe\xff\x15\xc9\xfbBH&B\ -\xdb\xe6\xe6A2sk[@\x15\x89\xa8PF-\xa9\ -\xe4\x91t\x8e\x17\x84<\x22\x96Z\xbd\x0c\x05$\x96\xc8\ -`\x13\x84n\xc6\xc6\xe8\xa5\x8e\xb8\xe6\xd4 \xeb\xa0\xba\ -\xd4T,m\xc4\xb4\xb4\x02\x12\x1d)Bd'\xe0\x91\ -!R\xd2%\x09B\x15\x19\xab\x85]b\x8f\xa1)\x97\ -\xae6\x89\x18CW.\x8d1\xce\xa4i\xc65\xdd\xb8\ -\xed\xa8!\x85\x88\x18\xc9\xfa\xed\x18\x8d\x94\xe0F\x06\xfb\ -n\xa8\x90:\x1b\x1be\xa1s\x0d\xcb2\xb4nb\xda\ -\x04(\x13TI\x8eZ6\xb2\xda@G\xf4K83\ -\x0c\xbdA\x0dJ%U\x01\x8b\x14U\xcc:5\xac\x15\ -\x9a\x8b\xa0\xee\xa0l\xc7\x94\x14\x84Cd\xd1\x1e\x9a1\ -\xf4\xc0\x18\xb3\x1c\xaaE\x960\xad +{0%\x94\ -\x9cY\xd7\xbd\x88\xb4TNR\xcfv\x19\x1a\x14\x09@\ -\x18\x00\x13\x8b\xfe\x8d\x03G\xd4\xb5Z(0\x1dc\xd1\ -\x7f\x80\x1e\x88\xe0\x5c:\x91R\xc2R\x1a`\x1ch%\ -\xe4\x12jiA\x89-k\x95\xd0-\x99\x8a\x04!\x9a\ -\xa3\xfb\x0a\x12\xbd\x14\xe8\x1e\x1dT#:+\xf0%\x00\ -a\x9a\xe8\x0e\xbf\xd6\xbc\x0dx5f\x02K\x8a5\x88\ -6\x0b\x95\x97\xcaF\x9c*!\x82o\x03\xeb\xa6\xaf\x88\ -\xb5Ki0k\x0e\x83\x04\xc6Y\xdb\xa5\xa8\xa5\x84K\ -(l\xb9\x02\x03\xa5\xa5\xa1Fv\x22\xad05\xad\x15\ -s\x22\x83\x8d2\x0c\xaeL$\xb5\xd2\xdc.\x15\xc0\x14\ -\x9c)\x1a\xe0\x9b\xd2\x96\xc1y\xdaa%&'\x94\x82\ -7b\xba\xc2\x22\xf1\x06\x92EF[B\xf8\xd2`r\ -\x00]\xcb@\x00\x16\xa3\x09\x93Kc\x22\x8aL\x81i\ -\x08\x86\xf9p#\xe0\xf0\xc49\xaa\xe04\xe0\xe8\x97Q\ -\xa3\xcc\x12V\x86\x02\xdaPWO\xc1\x19,\xe2B\xc1\ -\xad%W\xf0\xa8\x0a.7n\xe5\x97\x81\x8e\x1c\x8c0\ -\x0a\x855\xa9\xf3\x0b,\xc6FpEX'\x82\x16\xe8\ -\x89\x09\xc4\x01\x052pNi;\x87`\x88#\xcc\x85\ -\x88e\xeb\xdahA\xb8!\xd6\xf9\x88D\xc3\xa0\xee\x8a\ -\xc9\xd6\x03i\x00\xbf\xd3\x5c\x22\x05\xc1\xdd\xa04\x00T\ -\xb5:b\xd9\x945\xe3\xa9\xa5\xcbXT3\x1d\xd4~\ -!:\x89\x84\xd3\x11\xc1\x9cv\xf0'@M\x97\xb5\xaf\ -)\xec\xb9\x11v\xbc\x1c\x17N*\x10\x81\xd8P\xdc\xc2\ -;\x0c\x1cN;/\x86\xfapAQ\xe6\x08\x19ib\ -\x98^\xc2O\x8c\xd2\xb4\xf4<\xe8\xca\xe1\xff\x14n\xcf\ -\x98\x0bid\x09\xca\x84q.\x8a\xe9R\x85\xb8Dv\ -P\xd2*\xd8\xc4\xb9\x04\xc7D\x5cv\xe1X\xcb\xa0K\ -\x15&\xaalh\xb8\x81V\x9d\xa8NT\xd6e\x98:\ -X\xa1j\x15s\xdcu\xebz\x93\xba\xcb\x00mdb\ -B\xadFu/.\xef`\x92\x88\x22\x194!\xb6\x0c\ -U\xb9\xdcr\x01,\xca\xe8\x96\x08\xef\xca\xfa\xca\x04m\ -VC\x1a\xd1B\x01\xf2\x16C\xde\x17VQU\xea\x09\ -\x1c5\xe1\x04\xfe!\x22f(#\xb4\xcdA\xf0\xa2\xb6\ -\xc5\x87\x93\x1d\xf23k\xd4;\xb7j\x1e\x8a\x8f\xae[\ -E\x9e\x14\x9b\x9b\x81\xac^\xa1\xbe\xfa9\xf9%\xf8\xf3\ -c\x9e\x04\x7f\xc1\x8eh\xbf\x8f\x83\x9f\xb0L|\xf5:\ -l\xd6\xd2\xb0\xea\xe1.\xd9\xa4\xbbt\x03&\x9c\x1d\x9e\ -m\xf4\xf1\xf5\xeb\xd95\xab\xdb\x9dZ\xd2nN/V\ -\xd7\xc3M\x82\xabsM\x81e\xd3\xac\xb7#\x07}\xca\ -\xd3\xf7\xd8\x92\xc3&\x9cP\x09\x9fv\xffu\x97!3\ -\x02\xde\xce\xca\xc4ZZ\x82\x89W\x1d\xaf\xc3&\xb4\xd5\ -\xc5\xed\xa5$\xdc\x06-T\xa7!\xb6\x1c\xf0|\x97!\ -\x94\xe9\xa4\xed\x0eP\xc1E\x88P\xba+j\xf6\x8fu\ -\x89\x1dN\xd6\x8dh\xa88eC-f\x0d\x9eWp\ -\xb8g\xf6\x03M\xe9\x00^\xe7\xd3V\xc2\xabD#w\ -\xbb\x14Xs\x9dg\xf7\x87m_\xf8k\x96\x1e\xd6W\ - %\xfbF\x0a\x02\x99\xe4{l\xf6\x8au\xdb|\x1b\ -c\xaf\x9c\xe7\xf1\xe3`\xff\xe1\xa4\xd9nwL\x8au\ -K`:\x05\xef\xe2\x14\x8eSn\xfa\xd7Ua\xe0\xa6\ -\x10Tl\xe3\xd8# c\xd0\x0b`l\x07\xd0\xb3\x06\ -\xfb\xf9\xa0\x0f\xb9\x07\x7f\x0c|%\xa81\x03\xf0\xc5\x19\ -\xc0W\x1e\xfciIGU\xe0\xdb\x19\xb1\xd7\x1e\xfb1\ -\xec\xb5\x94l\x98u\xcc\xfc\xd8K\x8f\xfd4\xbf\xa7d\ -~\xf0\xb9G\x7f*\xfa\xcd\x82;g\xcag\x1e\xfd\x89\ -\xe8\x8b\xf9\xd1\xb7\x1e\xfciI\x9f\xaa3\x80\x1fR\x0f\ -\xff\x09\xfc\xdc\x82\xa5\xab\xf3\x93\xac\xd0'\x9eq\xf0\x85\ -\xf8\x04,\xcbo7\xc7\xd1g\xd6~\x0a\x9e\x15\x12\x0f\ -\xff\xb4\xcc\xd3\xe4}6'\xd5\xf2\xeb\xee8\xfc\x82r\ ->\xc6\xb5fE_\xfa{\x9e\xfc\x85\xd8\ -\x9a\xe7\xf1\xafK?\x03\xfc\xd9\xfc\xf8\x83\x7f)\x8f\xff\ -D\xfc\xeb\xd5W\xcd\xbb\xf9\x97\x1e\xffi\xe9\x9f\xaa\xf9\ -\xfd\xdf\x91/o\x80\x13\x03H\x1di\xab\x05\xa3g\xa7\ -^\xcc?\x03\x18\x87_J#\xd5'\xe0^\xda\xff\xf8\ -k\xd4\x00\x16\xdb\x1dn?\x01\xfb\x22\x9e\x7fMM@\ -\xf5\x020\xeb\x0fO\xddS0\x7f\x03\xfa\xd4\x00&\x22\ -L0i\xc6\x18\xd8\xac\x06pO\xc1\xfc\x8b\x88\x13#\ -\xa0\xe1`j\xee\xa7`\xd6o\x82&Z\x80\xcdo\x81\ -\xf2)\x18\xf7\x16\x98h\x81\xb3\xf005a\x1f\xf4\xf9\ -\x19`t\x158\x17\x11\x9b\xc2\x05>;\x13p\x1dq\ -\xf7\xe6\xe10\x06\x5c`\x10\xae\xc9\xac\xaf\xa3\xf8_#\ -\x8d\xa2/\xe5\xe0\xc57\xc7\xc4j\xf8\xe9\xacL\xcc\xff\ -\xe5\xab1\xf8%%v\x88\xbe8\x03\xfa\xca\xdf\x86\x98\ -\x9azT\x0d\xbf\x9c\x95\x84\xf9\x17\x11\xc7\xe0WLp\ -\xfd\x84\x82\x9d\x01~\xe9_\x82\x9b\xea\xfd\x94\xd4\xf8\xcf\ -K\xc0\xfc\xc6g*\xfel~\xfc\x15\xf3\xe4k2\xfe\ -\xf5\xea;/\xf9\xfa\xf83`C\x92\xdf\x80\xbf.\xfd\ -\xff\xcf\xfeT\x9d\x03~:a\xf9\xfd\xec\x0c@uD\ -$>\xfc\xec\xc4\x8b\xf9?D0\x0e?\xe5O\xff\xfe\ -\xdey\x98\x97\xf6\x8f`F\x0d@\x95\xb1\x9a}\x02\xf2\ -E|\x04LM@\xcd\x02\xa0g~\x06\xe6\x7f\x884\ -f\x00f\x18\xb7t\x8c\x80\xcdj\x00\xf7\x0c\xccS\xb0\ -\x89\x11\xd0P\xb0\xd9\x9f\x81y\x120\xd5\x02l~\x0b\ -\x94\xcf\xc0\xa8\xb7\xc0D\x0b\x9c\x85\x86M\xb9\x0b\xfa9\ -\xf2\x80\x91U\xe0\x5cD\x8cMx\x12\x7fev\xbfa\ -\x82\xba\xf4wk\x82\xf1C\xc5\x04\x95\xe4\xf9C\xc5d\ -D\x88\x96\xccVg\x8auW\xa1P$\x12\x82)w\ -\xce$\x8d$Q\xe8\xa7;S\xecz`\x06\x8c!z\ -\xfe\xdf\x1b\xa5w\x820\xbaV\x9a\x19^\x1eIi\x8c\ -f\xd6\xbe\xea9\xcf\xf5X\xf3\xee\xe43F\xe1I\xaa\ -=\xf9\xac\xb9\xb4\xeed9,\xedj\xc9`)-\x94\ -\x14\xaf\x16OtS\xd4\xfd\xa9\xde\xee\xe8\xe3\x81\x9b\x0e\ -\xce1^\xbf\xb0\xdcn\xe3M\xeb\x11\x83\xcb\xda#H\ -d\xb94\x00\x84M\xf3\x88\x81t\xbaG\x8c[\xbf\xb6\ -xe\xfe\xaa\xe6\xd3s\x90\xdd\xf4\x84\xb4\x83\xa7\xf2m\ -\x1cqw\xf0\xa1\xe1\xfd\xf7\xb3\xbb\xf0s\x87*\x12\xad\ -\xed\xa0!\x22\x96G\x9as.i_\x5c?b\x22F\ -\xd0\x81x\x1a\xd9\xe2\xcel\xc4\ -\xa8\x18\x90\xbf>\xee\x9a+\xab\xfa\x8fJ+\xc6\x08\x1e\ -O,#r\x04xCx\xff-\x82\x06x\x83l\xc5\ -\xa9\xec\x9f\x81}\xdd\xcb\x0d\x17\xeedv\xfc\xff\xbf)\ - \xadJ\ -\x00\x00\x06\x01\ +\x00~Rx\xda\xed\x9d[\x8f\xdb\xc6\x15\xc7\xdf\xfd)\ +X\xf9!6*Rs\xbf\xc8\xbb\x0e\xda\x04)\x02$\ +@\xd1\xa6h\xfaTp%j\x97\xb1V\x5c\x90\x5c\xaf\ +\xd7\xdf\xaa_\xa4\x9f\xa9\xff\xe1]\x97\x8d\xf8@\xa1H\ +<2\x0c\x88gng~s\xe6\xcc\x1c\x92\xda\xb9\xfa\ +\xfa\xd3\xfd6\xf8\x98\xe4E\x9a\xed\xaeg4\x22\xb3 \ +\xd9\xad\xb2u\xba\xbb\xbd\x9e\xfd\xe3\xa7\xefB3\x0b\x8a\ +2\xde\xad\xe3m\xb6K\xaeg\xbbl\xf6\xf5\xfbWW\ +\x7f\x08\xc3\xe0\x9b<\x89\xcbd\x1d<\xa5\xe5]\xf0\xfd\ +\xeeC\xb1\x8a\x1f\x92\xe0\xcd]Y>,\x17\x8b\xa7\xa7\ +\xa7(m\x84Q\x96\xdf.\xde\x06a\xf8\xfe\xd5\xab\xab\ +\xe2\xe3\xed\xab \x08\xd0\xee\xaeX\xaeW\xd7\xb3\xa6\xc0\ +\xc3c\xbe\xad2\xaeW\x8bd\x9b\xdc'\xbb\xb2X\xd0\ +\x88.f}\xf6U\x9f}\xe5ZO?&\xab\xec\xfe\ +>\xdb\x15U\xc9]\xf1z\x909_o\xba\xdcN\x9b\ +'^e\xa2\xd6\xda\x05a\x0b\xc6B\xe4\x08\x8b\xe7]\ +\x19\x7f\x0a\xf7\x8bB\xc7SE\x19!d\x81\xb4>\xe7\ +\xb8\x5c\xcb\x02@\x1f\xf0\xbf\xcb\xde\x0a\xa2\x22{\xccW\ +\xc9\x06\xe5\x92h\x97\x94\x8bo\x7f\xfa\xb6K\x0cI\xb4\ +.\xd7\x83jZ\x9e{\xad\xeeA\xde\xc5\xf7I\xf1\x10\ +\xaf\x92b\xd1\xca\xab\xf2\x83\x11\xa6\x95 ]_\xcf\xa0\ +#\xab.\x9e\xd2uy\x874[_\xde%\xe9\xed]\ +\xd9_\x7fL\x93\xa7?g\x9f\xaeg$ \x01\x84A\ +\x9b\xd0*\xba\x5cg+\xd7\xf2\xf5\xec\xa1\x5co\xfe]\ +\x16Q\xdb\xfdV\x89e\xa7\x00\x89,\x8bd\xf0\x86\x11\ +E\x92\x15\xdd\xd8\xcd<`\x84\x91\x90\x88\x90\x98\xb7\xb3\ +\xf7(vu\x9f\x94\xf1:.cWE\xadk+1\ +U\x06d\xc1\xd8-\xff\xf6\xedw\xf5\x15\xaeW\xab\xe5\ +?\xb3\xfcCs\x89\x8f\xcb\x10\xdfd\x8f\xe8\xc8\xec}\ +'\xbeZ\xaf\x96\xa0}\x1f\x97\xef\xd3\xfb\xf86q\x03\ +\xf5G\xd0\xbdZ\xf4\x09{\x99\xcb\xe7\x87\xa4\xaf\xb4\xae\ +6O\xeaa;i\xbb\xeb\xd5}\xea\x0a-\xfe^\xa6\ +\xdb\xed\xf7\xae\x91Y\xb08\xa84-\xb7I/\xbcZ\ +4\xda7}[\x0c:w\xb5h\xbb^]\xad\x93M\ +\xd1SqW\xaa%r\x1f\xe7\x1f\x92\xbcm\xa7#\x9f\ +\x16E\x99\xad>\x5c\xcf\xca\xfc\xb16\x06\xf7)\xca\xe7\ +-\xf4\xcf0.\x9bm\xf6\xb4\xfc\x98\x16\xe9\xcd\xb6O\ +w\xb5\xff)\xcf\xb3'\xfa\x03\xa6\x7f^v\x09y\xb2\ +\xf9\xd9\x8d\x22\x19J\xfe\xb5/\xc9\xf2\x14\xb3\xf7z\x16\ +?\x96\xd9\xecH\xa1J\x9d\xa3\xfa;\x16\x0fqy\xd7\ +\x03/\xf3xW\xb8q\x81\xb9\xae\xe2m\xf2\x86D\xe6\ +m-\xdd\xc2\xfb\xbc\xa10\xa69y;\xebK4=\ +\xdb\x00~\x98?n\x93e\xf21\xd9e\xeb\xf5\xbb\xa2\ +\xcc\xb3\x0f\xc9\xf25\xa9>\xcdeX\xd9\xfe\x12\x8e\xef\ +\xa1\x1cT\x02\xed~\x0c\xd0\xa59\xfe\x07?\x04\x12\xdf\ +BY}\x0d\xeb\x16;q-m\xb3~\x0e\x06\x95\xb8\ +>\xba\xde\x08iMg\x02\x18\xcfj\x9c\xea\xb1u\x03\ +X}\xeb\xa6\x92\x9bGk7\xe3\xeaz\x1e`>\xab\ +l\x9b\xe5\xd7\xb3\xd7\x9b\xea\xd34p\x93\xe5\xeb$o\ +\x93T\xf5\xd9K\xca\xe0\x06`\x88\x98\xc6\x8d8\xbb\xf9\ +%Y\x95e\xb6M@\xcf\x19/mG\xec6\x07\x84\ +S\xf2\xc7t\x9d\x9cJ\xe8\xc6\xd2\xa9\xd75t2\xb5\ +\xb8\x8b\xd7\xd9\xd3\xf5\x8c\x1d&>\xa5;$\x84\xad\xef\ +1\xc2\xbc\x90\xa3sG\x84vY@\xb6\x03%\x1aa\ +q\x97=\xb9\x9e`\xec\xe3m\x91\x1c\xd6\xf69\xcb`\ +D,b\x94sK\xe5a\xf2\x0a\xfe-d$R\x92\ +h%\x8eR\x9f+w\x18iK\xb9zAOT\xa0\ +_\xea%\x8a3\xf9B\xda}\xfc)\xbdO?'\xeb\ +~\xa8\xfav\x1f\xf3\x1cS)\xdc\xc6\xcfI>\xf0\xd8\ +\xc3\xe9\xb4\x8b\x1f\xc2\x9b\x1b\xe7\x9f\xab\x19^\x1b\xda\xd5\ +m\x9d-\xce\xd3\x18\xa5o\x92\xed\xf5\xec\xbf\xff9,\ +\xdb\xcd\xaep\x85V\x92\xbc\xeaCD\x145\x96\xd3\xb3\ +\x99\xd1\xa9\x10\xeb\x89V\xd6\xf0n\x10\x9a\xd9\x97A\xe9\ +\xea\xfbr\xe7\x9c\xea\xf6]%y\xaa\x86rOT\xa0\ +\xe7K\xc6ud\x84\x10\x86\x09\xf6\xf0\xe9\xdd6\xdd%\ +\xcd\xb0cf2Y\xe7\xdc\xc4\xf7\xe9\xf6yY@\x8b\ +\xb0H\xf2t\xf3n\x9b\x94N\x0f\xb7\xe0a\xbf\xb2$\ +(\xfa\x04\xdb\xdf\x138?\xe0\xe6\xfcZ\xc4qu\x11\ +6\xf6\xba\xa4\xadG\xd8ag\xb3\xef\x0edd\x85\xa2\ +\x94S:0\xb82\xf9T\x0a\xc9Dh[\x8f;t\ +Un\x8d\x0a\xa8\x22\x11\x15\xca\xa89\x95<\x92\xce\xd2\ +\x82\x90G\xc4R\xab\xe7\xa1\x80\xc4\x12\x19\xac\x82\xd0u\ +\xd7\x18=\xd7\x11\xd7\x9c\x1ax\x15d\x97\x9a\x8a\xb9\x8d\ +\x98\x96V@\xa2#E\x88\xec\x05<2DJ:'\ +A\xa8\x22c\xb5\xb0s\xec\x104\xe5\xd2\xe5&\x11c\ +\xa8\xca\xb9)\xc6\x994m\xbb\xa6o\xb7k5\xa4\x10\ +\x11#\xd9\xb0\x1c\xa3\x91\x12\xdc\xc8`\xdb7\x15R7\ +\xbeFY\xe8\xdc0\x99\x87\xd6uL\x9b\x00i\x82*\ +\xc9\x91\xcbFV\x1b\xe8\x88z\x09g\x86\xa16\xa8A\ +\xa9\xa4*`\x91\xa2\x8aY\xa7\x86\xb5Bs\x114\x15\ +T\xe5\x98\x92\x82p\x88,\xcaC3\x86\x1a\x18c\x96\ +C\xb5\xc8\x12\xa6\x15dU\x0d\xa6B\xc9\x99u\xd5\x8b\ +HK\xe5$Mo\xe7\xa1A\x92\x00\xc2\x00L,\xea\ +7\x0e\x8ehru(\xd0\x1dcQ\x7f\x80\x1a\x88\xe0\ +\x5c:\x91R\xc2R\x1a\xa0\x1dh%\xe4\x1cjiA\ +\x89\xadrU\xe8\xe6LE\x82\x10\xcdQ}\x8dD\xcf\ +\x05\xaaG\x05u\x8bn\x14\xf8\x1c@\x98&\xba\xe7\xd7\ +\x0do\x0b\xafa&\xb0dX\x83\x89f\xa1\xf2\x5c\xd9\ +\x88S%D\xf0M`]\xf7\x15\xb1v.\x0dz\xcd\ +1 \x81q\xa3\xed\x9c\xd2\x5c\xc2$\x146N\x81\x81\ +\xd2\xd2P#{\x91V\xe8\x9a\xd6\x8a9\x91\xc1\x1e\x17\ +\x03\xaeL$\xb5\xd2\xdc\xce\x15`\x0a\xce\x14\x0d\xf0M\ +i\xcb`<]\xb3\x12\x9d\x13J\xc1\x1a\xd1]a\xe1\ +f\x03\xc9\x22\xa3-!|n\xd09@\xd72\x10\xc0\ +b4arnLD\xe1$\xd0\x0d\xc1\xd0\x1fn\x04\ +\x0c\x9e8C\x15\x9c\x06\x1c\xf52j\x94\x99c\x94\xa1\ +\x806\xd4\xe5S0\x06\x8by\xa1`\xd6\x92+XT\ +\x8d\xcb\xb5[\xdbe\xa0#\x87\x11\x83B1\x9a\xd4\xd9\ +\x05\x16[#\xb8\x22\xac\x17A\x0b\xd4\xc4\x04\xe6\x01\x05\ +\x19\x18\xa7\xb4\xbdA0\xcc#\xf4\x85\x88yg\xda(\ +A\xb8!\xd6\xd9\x88D\xc1\xa0\xa9\x8a\xc9\xce\x02i\x00\ +\xbb\xd3\x5c\xc2\xff\xc0\xdc\xa04\x00\xaaF\x1d1o\xd3\ +\xda\xf6\xd4\xdc\xb9+\xaa\x99\x0e\x1a\xbb\x10\xbdD\xc2\xe8\ +\x88`N;\xd8\x13P\xd3yck\x0a\xfbfL;\ +^\xb5\x0b#\x15\x98\x81\xd80\xdc\xc3:\x0c\x0cN;\ ++\x86\xfa0AQ\xf9\x08\x19ib\x98\x9e\xc3N\x8c\ +\xd2\xb4\xb2<\xe8\xcaa\xff\x14f\xcf\x98\x9b\xd2\xf0\x12\ +\x94\x09\xe3L\x14\xdd\xa5\x0a\xf3\x12\xdeAI\xab0&\ +\xce$8:\xe2\xbc\x0b\xc7\xf2\x05]\xeai\xa2\xaa\x82\ +\x86\x1bh\xd5\x8b\x1aGe\x9d\x87i&+T\xad\xe7\ +\x1cw\xd5\xba\xda\xa4\xee=@73\xd1\xa1N\xa3\xa6\ +\x16\xe7w\xd0I\xcc\x22\x19\xb4Sl\x1e\xaaj\x81\xe5\ +\x02,\xaa\xd9-1\xbd\xeb\xd1W&\xe8\xbc\x1a\xdc\x88\ +\x16\x0a\xc8;\x86|(\xacgU\xa5'8j\xc2\x09\ +\xecCD\xccPFh\xe7\x83`E]\x89\xcf\x87\xfb\ +\xde\x17\xd6\xa7\x8fn\xb9\xdc\x95g\xd7\xac2O\xca\xd5\ +\xdd\x9e\xacY\x9d\xbe\xfa)\xf99\xf8\xcbs\x9e\x04\x7f\ +\xc5\xe6g\xbb\x8d\x83\x1f\xb1H|\xf5.l\x97\xd1\xb0\ +\xae\xe1!Y\xa5\x9bt\x85\x106\xdb\xbdX\xe8\xfc\xda\ +\xf5\xd2z\xd5o>-i\xf7\x9eW\x8b\xdb\xe1\xce\xc0\ +e\xb8\xa5\xc0\xd8\x14\x19\xec\xb4\x11\x04\xe5\xe9'l\xb5\ +1\x1a\x9cP\x09kv\xff\xfa\xcb\x90\x19\x01;g\x95\ +K\xad\xc6\x80\x89\xb7]d\x86]f\xab\x85\xdb6I\ +\x98\x0b\xf2\xabN5l2`\xf0\xce1(\xd3\x09\xbb\ +]\x9e\x82a\x10\xa1t\x97\xd2\xee\x10\x9b\x04\xbb\xd7E\ +\xd7\x98\xa1\xe2(\xae\xe98\xb5\x0co`c/\xac\xff\ +m\xea\x1eRg\xc6V\xc2\x90D+w\xbb\x12\x8c\xe0\ +2\xcf\x1ew\xeb\xa1\xf0\x97,\xdd-o\x10fl[\ +)\x22\xc0$\xdfbWW.\xbb\xe2\xeb\x18[\xe1<\ +\x8f\x9f\xf7\xf6\x1bN\x9am6ER.\xbb\x90\xa4W\ +\xf0!Na,\xd5v~Y'\x06\xae\x0bA\x1dB\ +\x14}Pq\x82\xb9\x00];d\xceZ\xe8\x131\x0f\ +\xb9\xa7~D]\x09j\xcc\x90\xba\x98\x9a\xba\xf2\xd4\xcf\ +\xfb\x17US\xb7SA\xd7\x1e\xfa\x11t-%\xdbs\ +0fb\xe8\xd2C?o\xe9\x94LL\x9d{\xecc\ +\xb0\xb7\xab\xe9dn\x9dy\xec#\xb0\x8b\x89\xb1[O\ +\xfd\xbcc\xa7jj\xea!\xf5\xdc\xf7\xb9s\x8b\xf0Z\ +]6J\x0a\xbd\x8f9A]\x88\x0b\x87I~\xf7x\ +\x02;\xb3\xf6\xd2\x81RH<\xf7\xf3N\xa6\xf5\xedl\ +\xb2X\xc9/\xaa'\xb8\x0b\xca\xf9\x89`i:\xec\xd2\ +\xdf\x8f\x19c\xeem\xbcd\xa6\x8b\x97\xfc-\x99Q\xe0\ +\xa7\x8f\x98\xbc\x83\x1f\x05~\xf2\x98\xc9\x1b\xfc\x08\x07\x7f\ +\x89\xa0\xc9o\xe0\x0f\xc1S\x13\x19C\xd9A\xd8$8\ +\xb5Z\x8a\xc9\xc8{\xec'\xb0s\xab\x0e\x03\xa7\x8a\xbb\ +\x98.p\xf2\xdc\x8f\xb9[;\x04Y\x07N\x15\xf7\x09\ +\x03'\xe3\xb9\x9fw3jj\xee\x08\x9cF\xdc)X\ +\xb9\x97W_\x06o\x0e_m\xfd\x8d\x83\xc7\x86\x86\x18\ +b\x0eB\xa7i\xc1#tR\x1e\xfcy\x8bw\xb1\x93\ +#?e\xecD=\xf8\x11\xe0\xd9\xc4\xe0\x11;1\x0f\ +~\x04x11x;\xe6\xe6\x98w\xf1TM\xce\x9d\ +\x8e\xb9?\xf6E\x91\xb7&\x92\xdc2E/\x1a<1\ +\xff\xac\xef\x98\xbb\xb0Z\x13q\xe1\xe8\xc9\xdf\x88?A\ +^I\xa6\xb4\xbdp\xfcDB\xffF\xea\x08_\xd38\ +ye'\x8c\xa0B\x1fB\x1d\x91\xd7J\x11{*\x84\ +\x9a\x8e\x9a\xe9\xc9\x1c\x8e\x0f\xa5\x8e\xb0\ +\x13\xab\x8d\xd0\x07\xa1T\xcd}\xbaP\xca\xbfhp\xc4\ +\x9dIf8=\x08\xa4\xa6\xe5\xae\xfc\x8b\x06c\xdc\x8c\ +j\xb8O\xf8 \xca\xbb\xf7#\xee\x5c)&\x0e\x7f\xef\ +4-w\xe9o\xca\x8f\xb1w\x17B9\xf0S\x86P\ +g\x1d\xbc\x10k\xf32\xf8&\xf5\xf7\x0e\x9eM\x0c\x1e\ +\x01\x94\xf2\xe0G\x80o\x96V5\xe1&^z\xf0\xe7\ +]\x85\xf2\xbf\xc99\ +\x22\xcf\x0c\xe3\x96\x9e\x88\xa0\xa6#\xef\x9eB\xf9\x18j\ +\x84\xcd\xb71\xd4\xb4O\xa1\xfcf~\x0cz61\xfa\ +\xea)\x14\xf5\xe8G\xa0\x9f>\x8e\x1aq\x8f\xf2\xcb\xdb\ +\xcf\x1f{\xfa\x8bDR\xec\xfcc\xef\x1b\xb3\xf9\x15\xf6\ +M\xeao\x95\xfd\xa9\x83\xa5\x04\x95\xe4\xc5\x83\xa5dD\ +\x88\x96\xcc\xd6\xe7J\xf5W\xa1P$\x12\x82)w\xca\ + \x8d$Q\xa8\xa6;W\xeav\xc8\x1f\x0d\x88\xde\xe2\ +\x07M\x0c\x8e\x86E\xbdJ3\xc3\xab\xd3\x08\x8d\xd1\xcc\ +\xda\xb7\xbd\xb9\xdc\x9e(\xdc\x1f|\xc5(lGu\x07\ +_\xb5\x97\xd6\x1d)\x86U[\xcd\x19\x06H\x0b%\xc5\ +\xdb\xd9\xbe^\x8a\xba?\x08\xdb\x1dg;\xb4\xca\xbd\xc3\ +i\x97\xaf-\xb7\xebx\xd5Y\xc1\xdeec\x05$\xb2\ +\x5c\x1a\x80`\xe3\xac`O:\xde\x0aN\x8fx3\xca\ +\xf5\x90\xd79\x0fN\xb7u\x9d\x13\xd2\x0e\x1f\x81w\xf3\ +\x86\xbb\xc3\xee\x0c\x1f\xbc\xc8\xdcO6w\x8e\x1e\xd1\xda\ +\x0e\x8bav\xf2Hs\xce%\x1dH\x9bg<\xc4\x08\ +:\x14\xe7n\x82\xbb\xf319\xb3rp\xbc\xf2\xaf\xe1\ +n\xceQ{\xf1\xd0O\x0c\xb3ULH-\xff\x0f\xac\ +\xdb\xa3\xe4\xf6\x1c\xc4K\xb4\x87\xcf\x01;\xde\xccF\x8c\ +\x8aa\xe06\xe4\xad\xb9\xb2j\xf0x\xb2\x8e\xf5\x10y\ +\x13\xcb\x88<\x06n\x08\x1f<\xaao\x81\x1b\xf8$N\ +\xe5\xe00\xe3\xdb\xce\x01\x5c\xb9\xa3\xb4\xdf\xbf\xfa\x1fY\ +H\x8e\x0f\ +\x00\x00\x05\xf9\ \x00\ -\x00\x16\x08x\xda\xedX\xddo\xdb6\x10\x7f/\xd0\xff\ -AP^\x12\xcc\x92\xf8)\x91\xaa\xddbCQt@\ -\xf7\xb2u\x9fo\x8cD;jd\xd1\xa0\xe48\xe9_\ -\xbf\xa3l\xc9\xb2-g\x19\xda\xae\xd80'N\xc4\xbb\ -#y\xf7\xbb/R\xd3W\xf7\xcb\xd2\xbb\xd3\xb6.L\ -5\xf3q\x88|OW\x99\xc9\x8bj1\xf3\x7f~\xff\ -&\x10\xbeW7\xaa\xcaUi*=\xf3+\xe3\xbfz\ -\xf9\xfc\xd9\xb4\xbe[<\x7f\xe6y\xde\xa6\xc8\x9b\x9b\x99\ -\xcf\x84\xdf\x0eot\xb1\xb8i\xf6\xe3\xbbBo\xbe3\ -\xf73\x1fy\xc8c\xc2\xeb\xe8E>\xf3a\x09\xb2\x93\ -\xda\xef\x8fw\xfc\xea\xb6\xce\xd4J\xa7CVH\xbcK\ -\xa4\x10\xca\xe6\x9cR9\xf1\x08\x22$@\xf0\xcb\xae\xb6\ -\xb3j\xd0{\x05\xdf47Y\xa5\x96\xa0\xeej\x1e\xc2\ -6[.XZ\xd5i\xb7\xf2\xcc\xbfi\x9aU\x1aE\ -\x9b\xcd&\xec\x88\xa1\xb1\x8b\xc8\xcd\xacW*\xd3u\xd4\ -\xd1\x87\x0bt\x9b\xf4\x0bt\x84\xb06k\x9b\xe99\xac\ -\xa1\xc3J7\xd1\xeb\xf7\xaf{f\x80\xc2\xbc\xc9\x07\xeb\ -\x1c\xec\xbf\xa1\xed\xce\x04!\x14\x1d\xe9\x0b\xc3\xa7\x8a\xda\ -|>&\x8a\xa5\x94\x11\x22\x11\x80\x05\x12A\xfdP5\ -\xea>\xa8\xea\x8b\xe1\xdc,\xeb\xa7fV\xab\xa6\xb8\xd3\ -\x99Y.MUo19\x94\xce\xf7\xd2\xab\xb5-[\ -\x91<\x8bt\xa9\x97\xbaj\xea\x08\x9c\x15\xf9/\xdd\x84\ -\xe9R7*W\x8djgo\x1d\xdf\x910\xd9\xca\x80\ -\x14(\x96\xfe\xf8\xfa\xcdn\x08\x84,K\x7f5\xf6\xb6\ -\x1b\xc3\xc7\x89\xa8k\xb3\x86\xe8\xf2_\xee\xe9\xd3C,\x8e\xd2\x13J\xbb-\xee/\ -!\x83\x13*\x89d\x13Pq\xb2\x1f\xc52\x84\xce\xc7\ -1\x9f\x90$\xc4\x82H\x8a\xaf\x0e:\xc7\x91\xf5\x7f\xcb\ -\x86\x01X8\xc1\x87\x9c\x16\xae\x80\xd30A\x82\xc5b\ -\x82Q\x08\xfa`\x1c{\x01#\xa1L\x92$\xc6\xa0\xa7\ -\xe0\x5c\xc8\x98\x1e\xce\x1dbs\xa1c\xf7\xf3\xe2|A\ -#\x99B\x5c\x1d\x164\x12&\x922\xd1\x11\xcb\x02,\ -Q\xab\xf4z\xdd4C\xda\x07ST)\xb45m;\ -j;(!H\x9b\x94u\xb4\x5cA\x8e[\xab\x1eZ\ -Gu\xd4]YH\xf1\xd0s\x9f\x13Pz\x02\xe8\x12\ -\x00e!a\x8c\xc7\xf1$\x90!\x151\xa7\x9cx\xf0\ -\xc4\x05Fr\xd2> \x99\x08\xfc?\xa0\xa7\x80\xf2\xb1\ -\x08\xa5\x10\x83\x09\x22q2\x090\x0e%M\x08K\xda\ -\x10E\x22\x89\x1d\xccP\x0d\x19\xa6D\x22\xf9\xaf\xc6\xf4\ -P\xf7\xbe)\x1b\xe8\x80p\xa8\x83\x93x\x96\xfd\x15\xee\ -gf}\x16\xdf$c\xc1\x0e^H\x04\x89)\x9b\x10\ -\xa8]\x08s\x0f\xce\x1d\x09\xa78\x89]=I\xc0+\ -\xff\xa18\xd7eY\xac\xea\xa3S9\xb4S\x1a\x22.\ -\x13\x88\xd0C[\xed\xbdcaNEB\x8e\x22\xdbu\ -q\x08\xe6D\x0a&\x8f<\xef\xfa\x7f\xc0yH\x09A\ -49\xe7\x0e\x1a\x07q0^\x94{\xed_lQ\xa6\ -I&\x92\xed 8\xe4\x8d\x82>\x04\xa2G\x5c\xc0Y\ -\xe4\x04]k\xd6U\xfe\xe5\xd1u\xbd\x88\x09LG\xd1\ -E1\x04\xdf\xfe\xf09@\x97\xba3\x12\x17|\x04]\ -\x22CX/\xa6\xf8\x11t\xf1\x93\xb0EH)\xc6>\ -\x01[\x1aR,$\xfeZ\xd8B\xafJ\xe0\xecA\xd9\ -)\xb6,\x84\xb3\x00\x96x$r]\x1d\x8e!\xef\xe5\ -\x18\xb8\x94\x841\x8byB\x1e\x0b\xdd'\x82\x9b3\xa5\ ->\x09\x5c\x01M!\xfeZ\xe0\xd2\x90\x098\xe2\x13:\ -\x16\xb8\x5c@\x19\x1b\xc3V\xc2\xf1\x01\x0e\x86r\xac*\ -PH\x05D\xf0#q\xfb\xe4\xa8\x15\xe2\x93\x80eB\ -\xb2\xe4\xeb\x01+\x10\xa0G\xc5\x18\xb0\x92p\x8c\xf0H\ -A\x80s.\x00$\xc5\x08\xb0\x0c\x0c\x82\xcb\x1f{,\ -f\xd1?Sl]A\xa0R~Qh\xa7\xd1\xa2\x7f\ -)\xb08\xbd\x82\x0d\xee.\x83\xf7\x09!BqB\x04\ -\x9d\x04\x84\xbb\xeb)\x84\xe8\x95\x7ftm\xc3pm\xdb\ -\xbfp8\xbe\xd4\xc5\xc3Z2\xba\x09\x0a9n\xa3\xbf\ -\x7fo\xb1Up\xea^\x97\xc1\xff?\x01\xf4\xd1!u\ -\ -\x00\x00\x07~\ +\x00\x15xx\xda\xedXmo\xdb6\x10\xfe\xde_!\ +(_\x12\xcc\x92\xf8*\x91\xae\x9dbCQt@\xf7\ +e\xeb^\xbf1\x12m\xab\x91E\x83\x92\xe3\xa4\xbf~\ +G\xd9\x92%[\xee:\xb4]\xb1aJl\x88wG\ +\xf2\xee\xb9\x87G\xd2\xb3\x17\x8f\xeb\xc2{\xd0\xb6\xcaM\ +9\xf7q\x88|O\x97\xa9\xc9\xf2r9\xf7\x7f~\xfb\ +*\x10\xbeW\xd5\xaa\xccTaJ=\xf7K\xe3\xbf\xb8\ +}6\xab\x1e\x96\xcf<\xcf\xdb\xe5Y\xbd\x9a\xfbL\xf8\ +\xae\xb5\xd2\xf9rUw\xcd\x87\x5c\xef\xbe3\x8fs\x1f\ +y\xc8c\xc2;\x88\xf3l\xeeCw\xb2\xb79\xce\x8c\ +\xf7\xda\xf2\xbeJ\xd5FO\xfb\x9a\x90x\xd7H!\x94\ +.8\xa5r\xe2\x11DH\x80\xe0\x9f\xdd4\x9d*\xf0\ +w\x03\x9fif\xd2R\xad\xc1\xcd\xcd\x22\x849\x1a%\ +\x04XV\xd3v\xdc\xb9\xbf\xaa\xeb\xcd4\x8av\xbb]\ +\xd8\x0aCc\x97\x91\xebXmT\xaa\xab\xa8\x95\xf7\xfa\ +\xb7St\xfd[AX\x99\xadM\xf5\x02\x86\xd0a\xa9\ +\xeb\xe8\xe5\xdb\x97\x9d2@aVg\xc7a\x06\xb3\xef\ +h3/A\x08ECg\xa1\xf5\x91\x966[\x8cY\ +b)e\x84H\x040\x81EP=\x95\xb5z\x0c\xca\ +\xea\xaa\xd75M\xbb\x9e\xa9\xd5\xaa\xce\x1ftj\xd6k\ +SV{8\x06\xc6\xd9\xd1x\xb3\xb5Ec\x91\xa5\x91\ +.\xf4Z\x97u\x15A\x92\x22\xff\x16\xecgk]\xab\ +L\xd5\xca\xf5\xdd'\xbb\x95`\xd2X\x80\x0d\xf84\xfd\ +\xf1\xe5\xab}\x0b\xdai:\xfd\xd5\xd8\xfbC\x13\x1eg\ +\xa0\xee\xcc\x16\xc8\xe4\xdfv\xe2Y\x96N\x01\xe7\xb5\xaa\ +o\xf3\xb5Zj\x87\xc57\xe0\xdf,:*\x06\xc6\xf5\ +\xd3F\x1f\x07\xdd\x0fk\xf5>a\xa3\xf1d\xe9:w\ +\x9d\xa2\x9f\xea\xbc(\xbew\x93\xf8^\xd4\xf9\x19\x1d\x1c\ +=\x84\x11\xf5\xe2\x98Em\x98M+\xd3\x8b\xea\x88\x80\ +ka\xd4F\xbfV\xf6^\xdb\xd6\xaf\x8e\xf0Um\xd2\ +{g\xfd\xad\xb5f\x87\xdf\xc0\xaa\xb3\xb5\xdf\x9a\x19\x9b\ +\x03\xd0s_mk\xd3\x09\xad^\xfc\x0e\xcb\x0b\x16m\ +O\xf2\xdbPrq\xc4\xaa~*\x00\x05\x03\x0bmQ\ +\x98\xdd\xf4!\xaf\xf2\xbbB\xfbg\x8e\xe5U\xe3\xda\xdc\ +\xaf\xedVw\xe9\x98mT\xbd:\x82\xeb\xa6q\x12\xc6\ +\xa5\xf0\x8fb\x90\xfe\xe0\x81;\x13\xf8xo<\x0eo\ +\x01o^\x03LB\xde\x13\xef\xa5\xad\xe9{\xaf7\xc8\ +\xc1\xd3\x05\xa4$\xb0\xdbBO\xf5\x83.M\x96=\xaf\ +jk\xee\xf5\xf4\x0a5\xcf\xa1\x194Ei\x0a\xa5l\ +S\xf7\x06\xa9\xad*+G\x12\xa8>\xa9*\xf45\x0a\ +\xc5\xcd^Z\xa8Z_\xef\xdd\xb9\xe9\xd2\x0d\x09m\xf2\ +\xb4O\xae\xcb`\xf3\xd6\x95\x1aW.2W\xe2\xf6S\ +l\x80*\xa9)\x8c\x9d\xfbW\x8b\xe69\xcc}gl\ +\xa6m\xab\x8a\x9bg\xa02Ps\x80tP\xe8\x0eb\ +s\xf7N\xa7um\x0a\x0d\xce9\xa2\xe26\x9bK\x0b\ +\xa1\x8d\xc9\xb7y\xa6\xc7\x14]\x0e\x9d{\xddD\xa3\xda\ +j\xa52\xb3\x9b\xfb\xe4T\xb9\xcbKP\x04\x87RO\ +8\xe2\x17,\xda\xf2\x8f\x11n#t\xac\xe8\x80jy\ +Q\xad\xcc\xceE\x02\x19UE\xa5OG{o\x0c\xe4\ +\x08\xd3\x90\x13$(=U\xa7nC\x09\x85H8\x96\ +D\x9ci!<\x02\x04\x12\x08\x13v\xc1O\x18\x80_\ +\x8a\xc1uO.\xe8\xd6\xea1_\xe7\xefuvL\xd5\ +q\xde\xad\xb5\xb0>\x83B=i\xc8\xf3R\x22<\x06\ +r\xba\xd2)p\xea\xce(\x9b\xb9<\xec\xc96[\x1e\ +\xd1Z2\xcc\xbbJ\xb1\xec/\xe2%\xe3\x8c\xfd\xf5\xf2\ +\xa3\xe8l\xf9M\x90\xf7\xdam\xc0\xbf\xb8\xaf\xd7\xb0\x19\ +\xff\xd139\x86`\xca\x12xgl\x00\xc1<\xa8z\ +k\xf5\x91*'\xcbpZ\xc2a\xa0_\x19\x97CW\ +z\xf1\x9f\xac=\xa8\xd16\x7f\xbc\x86\xd5\x99PI$\ +\x9b\x80w\x93c+\x96!l]\x1c\xf3\x09IB,\ +\x88\xa4\xf8\xa6\xbf\x03\x0c\xa3\xfe;\xde\xf70\xc2\x09\x1e\ +(\x1a\x94\x02N\xc3\x04\x09\x16\x8b\x09F!\xf8\x82q\ +\xec\x05\x8c\x842I\x92\x18\x83\x8f\x82s!c:\xe8\ +\xda\xc7\xe4J\xc7\xee\xef\xf9\xe5:ER\x85\xb8\x1a\xd6\ +)\x12&\x922\xd1\x0a\x8b\x1c\xc2P\x9b\xe9\xdd\xb6\xae\ +\xfb\xb2w&/\xa7\xb09i\xdbJ\x9bF\x01\x8c\xac\ +\xa7\xac\x95e\x0a\x96\xb1\xb5\xea\xa9IP+=,\xfc\ +)\xeee\xec\xf3aIO\xb1\x5c\x03\x96,$\x8c\xf1\ +8\x9e\x042\xa4\x22\xe6\x94\x13\x0f\xde\xb8\xc0HN\x9a\ +\x17$\x13\x81\xff\xc7r\x88%\x1f\xe1%\x05\xe6%\x88\ +\xc4\xc9$\xc08\x944!,i\x88\x89D\x12;\x84\ +\xa1\xdc1L\x89D\xf2\xdf\x0c\xe7\xc0\xf5n\x935\xb0\ +\xaf\xc1y\x0c\x0e\xcei\xfaa\xc4/\xf4\xf9\x0cII\ +F\x08\x0e\xf0'\x82\xc4\x94M\x08\x94)\x84\xb9\x07\xe7\ +\x87\x84S\x9c\xc4\xae|$\x90\x8e\xff\x0c\xb7uQ\xe4\ +\x9bjx\x90\x86}\x92\x86\x88\xcb\x04x9\x08\xd4>\ +:\x0d\xe6T$d\xc8f\xb75\x03\x81\x13)\x98\x1c\ +\xa6\xdbm\xe9\x01\xe7!%\x04\xd1\xe4B\x1ah\x1c\xc4\ +\xc1h\xf1\xed\xdc~\xbe\x87\x97&\xa9H\xf6\x8d`\xa8\ +\x1bE\xbb\x8f@\x07\xb5\x80\xc3\xc5\x19\xac\xd6l\xcb\xec\ +K\xc3\xea6\x1c&0\x1d\x83\x15\xc5\xc0\xb8\xee\xf8\xd8\ +\x83\x95\xba\x13\x0f\x17\xfc\x1cV\x22C\x18,\xa6\xf82\ +\xac\xf8c@EH)\xc6>\x01T\x1aR,$\xfe\ +:\xa0\xc2v\x94\xc0\xa9\x82\xb23PY\x08\x1b=\x96\ +\xf8\x9c\xab\xae\xda\xc6\xb0\xc8\xe5\x08\xaa\x94\x841\x8by\ +B>@\xd6\x8fC5cJ}\x12\xaa\x02\xea~\xfc\ +uP\xa5!\x13pD't\x84\xaa\x5c@\xb9\x1a\x01\ +U\xc2\xc1\x00Nzr\xa4\x00P`>\x22\xf82S\ +?\x96\xa7B|\x12\xa2LH\x96|-D\x05\x02\xdc\ +\xa8\x18AT\x12\x8e\x11>_\xfbpj\x05l\xa48\ +G\x94A,p]c\x1f`)\xfaG\x0a\xaa[\xfb\ +T\xca/\x89\xe9,Z\xb6\xf7\xf6\xe5\xe9\xed\xa9w\xfd\ +\xe8\xdd\xf7C\x84\xe2\x84\x08:\x09\x08w\xf7I \xe5\ +\x8d?\xbcpa\xb8pu\xbf\x07\x9c\x5c\xc6\xe2^\xc9\ +\x18\x9d\x00\x85\x1c7\x5co\x7fSh<\x9b\xb9\x1f\xad\ +n\x9f\xfd\x09.-\x1a%\ +\x00\x00\x07z\ \x00\ -\x00)nx\xda\xddZ[\x8f\xa36\x14~\xaf\xd4\xff\ -@\xd9\x97\x1d\x15\x8c\xef\x97t\xb2\x95\xdaU\xa5\xbe\xf6\ -\xa2>V\x0cx\x12\xba\x04\x22 \x93\x99\xfd\xf5=\x86\ -\x90@HF\xd3*\xad\xb2af5k\xfb\xf8\xd8\xe7\ -\xf3\xb9\x1a\xee\xbf\x7f^\xe5\xde\x93\xad\xea\xac,\xe6>\ -A\xd8\xf7l\x91\x94iV,\xe6\xfe\xef\xbf\xfd\x14j\ -\xdf\xab\x9b\xb8H\xe3\xbc,\xec\xdc/J\xff\xfb\x0f_\ -\x7fu\xffM\x18z?V6nl\xeam\xb3f\xe9\ -\xfd\x5c|\xaa\x93xm\xbd\xf7\xcb\xa6Y\xcf\xa2h\xbb\ -\xdd\xa2l\xd7\x89\xcaj\x11\xddya\x08Sar\xfd\ -\xb4\xf8\xfa+\xcf\x83\x89i\xb3\x9c\xfb\x5c\xfbmsi\ -\xb3\xc5\xb29\xb4\x9f2\xbb\xfd\xa1|\x9e\xfb\xd8\xc3\x1e\ -\xd7\xf0\x8b\xb0{H7\x9c\xa5s\x1f8\xd1\x1d\xf1A\ -\x86~|\xb7\xf8l8\x84\xa8\xf7\x1e\xc7\x18'\x8f\x82\ -1\x13x\x14S\x1ab\xf8\xe5w\xdd\xac\x1ad_\xc3\ -\xbfYZ&E\xbc\x02\x91\xebdiWq\x93%q\ -\x9a\xfe\xd9\x94\x08\xd6\xecH\x01\xba\xa2\x9e\xf5\xcb\xcc\xfd\ -s\x82;6\xf5:Nl\x1d\xf5\xfdC\x06\xfd\x8a{\ -\x06}\x07\xaa\xcbM\x95\xd8G\xe0aQa\x9b\xe8\xe3\ -o\x1f\xf7\x83!Fi\x93\x0e\xf8\x8c\xd6\xdf\xb2ve\ -\x0ahEG\xfb\x85\xe6[I\xab\xf4\xf1\x14)1\xc6\ -D\x98F\x80\x1cP\x84\xf5K\xd1\xc4\xcfaQ\xbf\x1b\ -\xceM\x92\xfd\xd4\xc4\xe9I\xf6d\x93r\xb5*\x8b\xba\ -\xc3dL\x9d\x1e\xa8\xd7\x9b*oI\xd2$\xb2\xb9]\ -\xd9\xa2\xa9#8\xb9\xc8\xff\xe0&\xdc\xa7\xf6\xb1ng\ -v\x1a\xe0\x9a\xdc\xf7\xa2np\x7fz\x0e\xf3\xd4)\xd0\ -\x80\xf4!\xaew\xc0{\xde:^\xc0~\xf2\xb2\x9a\xfb\ -\xef\x1e\xdb\xa7\x1fy(\xab\xd4V\xfd\x98l\x9f\xf1X\ -\x09g\x995/\x9d\xb9\xf4\xfc{es\x8c\xf7\x04\xf8\ -\x0cA\xbd\x8c\xd3r;\xf7\xe9d\xf4sY\xae\xc0\x02\ -\x10U\x12s\xa2&\xe3\x09\x98\x83aHp\xce\x85\x9e\ -\x8e\xc2\x9a!\xa1Hq\xc1\xd9\x949\xa8\xf4\xc6\xe1\x19\ -n\x8a\xac\x01\x85Y?O9l\xaa\xcaQ\xe4\xf1\x8b\ -\x05\xf9\x17\x8cs\xd2\x13\xd5\xcbr\xbb\xa8\x1c\x92\x8fq\ -~\x80\xf2<\xb3mV\x80\x98\xe1\xce\xcc\xa9\xc0\xe2\x1c\ -Io\xfa\x04\x13y\x8e\x06$\x17g\x19\x80\xe0T\x9d\ -\x1b\x5c\xc5\xcf\xd9*\xfbla\xe7\xe4\xe4y\x80\x85'\ -\x9fl\xf5P\xc6\x15\xd0\xe0\xbd:\xadl\x13\xa7q\x13\ -\x0f\x94\xa8\xefR\x9d:\x02\x11\xd8\xc0\xec\x97\x8f?\xed\ -\x9a\xd0\x91$\xb3?\xca\xeaS\xdf\x86\xc7\x91\xc4\x0f\xe5\ -\x06$\xf4?\x1c\xfa\xef\xd3d\x06\xd6\x0d\xce\xe5C\xb6\ -\x82m8\xfb\xfb\x16\x0c\xe2>:\x0c\x8c\xa9\x9b\x97\xb5\ -\x1d\xf0\xed8W\xb6s\x14'M(MV\x99\x9b\x15\ -\xfd\xdady\xfe\xb3[\xa6\x17\xafe\x1a\xedv\xdbK\ -\x13\x0d\xc5\xb9\x8fzq\xbb\xe6\xe2\x18\xbc<~\xb0\xf9\ -\xdc\xff1^\xc7\xde\x14\xdaEUn\xd6\xab2\x85\x9d\ -\xb5\xfa\xe4\x0fpl;\xf6S\x9a*.j'\xf1\xdc\ -o\xff\x9bC`y\x8f\x83\x90`\xcc\x11\x93\x94\xde\xed\ -\xe1^\xec\xe5wlF\x0a:\xe2\x03\xe0U\xd9\xf3{\ -\x8c\xb4\x94D2\xc1\x02\xec~\x0eM\x8a\xa4PJ+\ -\x13\x10\xa6\x10Q\x94\x91\xbb\x03\xa7\xbay\xc9a\xdf\x8f\ -\x00\xdal\xe7!\xbe\xab\x9b\xaa\xfcdg\xefx\xea~\ -\xfc\xc1\x89gU\x92\x0f\x0f\xa6r\xceA\xf8\x83\x1eg\ -\x9a \x8dF\x8c\x085\x1a\x00\xbd\xa6\x1c,Z\x18\xad\ -\x87\x03N\xbcu\xdc,\x19cr\xd8\x7fjg\xae\x11\ -\xee\xdc\xce\x8ct\xcdj\x93\xdb\x99}\xb2E\x99\xa6\xfb\ -\xad\x9b\xf6\xd95;\xcb\x9c\x91\xf5s\xdf\x91g\x85\x85\ -\xa3\x9b=l\x9af\xd8\xf7W\x99\x153P$[\xf5\ -\xbd\xfb\xc5F\xda\xf4f \x08C\x84\x99\x09\x10p\x10\ -Xc\x8e\xe99 BvsPP\x09\x1aN\xe41\ -\x14\x9c!\xc3\x0d\xa8\xe7Y(nO+\x98q6\xc9\ -&P`\xc41g\x9c\x9d\x85B\xdd\x1c\x14\x5c!\x85\ -\xf5\xd4Sh@\xc8(q\xde@\xc4\xedA!\xc0i\ -Sr\x0c\x05\x81,IHL^\xf1\x15\xb7\x87\x05\x13\ -\x88\x08\x22\x8e\xb1\x10\x08\x1b\x09\xfa\xa2\xcf;\x0bz{\ -\x8e\x13\x22\xb8\xd4So\x814(\x05W\xe4,\x16\xe6\ -\xf6\xc2)@a\xe4$\x86\x10\x8287\x84\x9eW\x0b\ -r\x8bZ\xc1\xa8\x99X\x08#\xa0\x16\x9a\x8f=\xea\x18\ -\x8a\x10\xdf\x9e\xbb\x80Z\x90\xb2)\x18\xa0.\x907\xbf\ -\xa2\x167h#\x90[jN'\x01\x15h\x15\xa1\x8a\ -\xbe\x82\xc5\x17\x93s\xba=\x0f\xc5\xd8W\xf5e\x01\x8c\ -\x9b\xb2\x0a\xa1\xbe\x7f\x8a\x9bMe]\x99{BbN\ -\xc5\xc8%\xb8\x8a\xd7\x93\x08\x0b\xad\x84\x11\x01\x98\x17$\ -\xeeRPO!*1\x96B\x04\x021e\xf4\x9b \ -z;&\xff\x1c\x91\xb6\x91C\x9d\xdf\xccx\xdf\x97\xc6\ -\xf52\xae\xaa\xf8eV\x94\x85\xfd\x1f\xb0\x13\x13\xec\xa8\ -\xab85Dg\xc0\x8e(d\xa0^\xf5\x18\xc2\x14\x9c\ -2\x0bB\xc8\xe686\x97\xc5\xce-H\x0dST]\ -\x99b\xa9\x098\xee\xaa\x8ab\xd8m\xd0\x860\xca\x89\ -\xf0\x08\x86\xbaGi\xce\x83\x90!H\xfb\xc8\xa5\xd11\ -\x5c\x1a\x22\x95\xbc2t\xcc\x09\xb3c\xa0-B8t\ - \xef\xe3\xc2x\xa4-\x0a\x996$ \xc8\x18e.\ -\x0f\x8e\xbb\x88 \xec\xba\xc0\x91\xe4\x94]\x09\xa5\x8cr\ -v\xc54R\x92\x0b/\x04\x90\xa4\xd6\xcc\x04\x12Q\x8a\ -\xf5\xc5\xed\x0a\x14\xd4\xd0k\xd3\x1c\xc9\xa6\xe0\x80w&\ -B\x1b\x1at\x85$xl/\x84dP\x81\x112\x12\ -\x84\x04I\xa5.\xaf:LpJ\xf4\x95\xa13\xb5+\ -H\x04\x147\x8a\xb8p\x06E$\xc3Jy\x10\xc4\x18\ -\xc5\x1c\xb4\x89 \x06\xb1\xee\xe2\xe0\x10\x02Q\xf2\xcaB\ -\xbd\x9a\x9a\x15\xa7Hh\xf09A{/\x85\x15\xe3^\ -h\x90#\x15\xd49d&\xe4\xc5\x1d\xb22\x98\xc3r\ -W\xa68j\x1a\xcb\xb9;Gw\xe5\xd0\xf9\x1c\x81\x15\ -\xf7 \x82\x19\xc1Z\xa3\x02\x07\x81\xe5\xe5\x9d\x0e\xc3R\ -\x11e\xae\x0c\x9d\x13\xc1\x1c\xbc/\x81\x82\xbc\xf5\xc8\x18\ -\x11\xf0\x05`V\x84\x10\xac\x158d\xae/\x8f\x8d\xe2\ -\x0cj:|ef5N\x86;\x87\x0cU\x06\xc4p\ -\xdaf\x81\xee\x92S+O#C\x85T\x01ED\x09\ -vqh ;\x17\x14\xb3k\xf38\xe14ZA5\ -\xaa!ZI\x17\xad\xa0L\xe7\x8aJ/\x04\xc5'\x12\ -\xa2W\x10B\xd2,\xc5\xe5U\x87a\xa8\xee\x0c\xbd>\ -|\xc6\xf7\xfa\x1dB\x06\x09\xa2\xbax\x0e\x8e\x07\xd2?\ -p\xcb\xce=K\x09\xa8A\xdaC\x09\xff\x02\x10z\xfb\ -u\x96\x81Z`\x9c\xdc\xb6\xb5:\x86\xa2S\x0c^#\ -\x9f\xa8\xd5/\xf7&\x00\xe3\x94\xc7\xf1\x15\x5ch\x19\x84\ -\x898u\xfd\x0d\xe5\x92\x94\xe6\x150\xe4\x97\x02\xc6E\ -*(v*$am0\xe5.\x9dQ.x{\x89\ -\x87!\xe3\xc3\x8a\x80g\xc1\x90\xd8\x80\xaf\xe1\xee*\x83\ -\x10\xea\x5c\x8d P\x9f\x1fw\xfc{\xcb:\x05\x1b$\ -\x11T\x83\x09\x0b~9\xfc\x16G\x88,4;\x95\xa6\ -\xf5\xdbb*\xd1\xf1\xc3\xf1\xe2U\xb9)\xd2\xe9:\x03\ -6\xa7^\xafS\xc8\x17\xb9\xd9\xbf^\xdf7]\xbda\ -\x0cS\xa4-\xee\xdd;NE\xeeF_?\x1c\x1d\xfa\ -\xe0\xdb+\xc0\xd0\xba\x8f\x16\xea\xb9\x9f$\xfe\x88\xe6\x1f\ -\xa8\xc6A9\xf4\xf8%\xd1N;\x8c{kB\x8cb\ -\x81\x90\xee\xfd?\xe5\x0c\x94\x03\x1b\xceU\xa0\x8c\xcb\xeb\ -\xf0\xf8\x0d\xf5\xf8\xf4\xdb+\xa5\xf3G?\xc6xg1\ -\xf2U\xcc\xff\x93\x8b\xad\xff\x1b\xe8q\x80\xef\x0d\x91q\ -\x88\xe2\x04\x80\x05\xd0\x05 \x0c\xf9O\xd8a\x0c\xe9a\ -\xd0\xa2.\xbex\xa8\xef\xa3\xc5\xfe3\x9a\xc5\xee\x03\x1a\ -\xf7\xf7\xde}\xd8\x03\x7f\xff\x06\xe0\xe7\xdc&\ -\x00\x00\x0dU\ +\x00(\x84x\xda\xddZ[o\xe36\x16~\xcf\xaf\xd0\ +j^&\xa8D\xf1\xf0N\xd7N\x81\xed\xa0@_\xb7\ +-\xfa\xb8P$\xc5V\xc7\x96\x0cI\x8e\x93\xfe\xfa=\ +\x94,\xdb\xb2\xadEv\xe1\xeez\xac$\x98!yx\ +\xfb\xf8\x9d\x1b\xa5\xe9\x0fo\xab\xa5\xf7\x9aUu^\x16\ +3\x1f\x08\xf5\xbd\xacH\xca4/\xe63\xff\xb7_\x7f\ +\x0a\x8d\xef\xd5M\x5c\xa4\xf1\xb2,\xb2\x99_\x94\xfe\x0f\ +O\x0f\xd3\xbf\x85\xa1\xf7c\x95\xc5M\x96z\xdb\xbcY\ +x?\x17_\xeb$^g\xde\xe7E\xd3\xac'Q\xb4\ +\xddnI\xbe\xab$e5\x8f\x1e\xbd0|zx\x98\ +\xd6\xaf\xf3\x07\xcf\xc3^i\xb3\x98\xf9\xc2\xf8\xae\xb4\xc8\ +\xf2\xf9\xa2\xd9\x17_\xf3l\xfb\xf7\xf2m\xe6S\x8fz\ +\xc2\xe0/\xa1\xee\x81\xb65Og>\x8e\xc2:\xd1\xc3\ +\xdaw\xad\xbbI'\xc7-\x84y\x9fiLi\xf2\x22\ +9\xb7\x81\xc7(c!\xc5_\xf1\xd8v\xaaq\xc7k\ +\xfc\x9b\xa4eR\xc4+\xdch\x9d,\xb2U\xdc\xe4I\ +\x9c\xa6\xfflJ\x82\x13\xb6\x92\x88WQO\xfaIf\ +\xfe\xd8v\xdd(\xf5:N\xb2:\xea\xeb\x8f\xfa\xf7\xf3\ +\xed\xfb\xf7\x15\xa4.7U\x92\xbd\xe0\x10\x19)\xb2&\ +\xfa\xf2\xeb\x97}cHI\xda\xa4\x87a\x06\xb3oy\ +;/C\x98\xa2\xe1b\xb1\xf4A\xc9*}\xb9$\x09\ +\xd6\xda\x88\xb2\x081C\x89\xb0~/\x9a\xf8-,\xea\ +OG]\x93d\xdf3q\xc4\xc8_\xb3\xa4\x5c\xad\xca\ +\xa2\xee\xe0\x18\x08\xa7\x07\xe1\xf5\xa6Z\xb6\x12i\x12e\ +\xcbl\x95\x15M\x1d\xe1\x89E\xfe\x13\xcaO\xd3\xec\xa5\ +v\xfd\xbaSw%\xe1{Q\xdb\xb4?3\x07u\xea\ +(s\x10|\x8e\xeb\x0en\xcf[\xc7s\x5c\xc9\xb2\xac\ +f\xfe\xa7\x97\xf6\xd95<\x97U\x9aU}\x93j\x9f\ +AS\x89\xc7\x977\xef\x9dZ\xec\xc6\xee\xc9\xe5F\xdd\ +\xb7\xd3\xcb\xed\xf5\x22N\xcb\xed\xccg\xa7\x8d\x7f\x96\xe5\ +\x0a\xb9N\x98VT\x80>mN\x90\xf8\x96\x13)\x84\ +\x90\xe6\xac\x11\xe7\x0b\x81\x11-\xa4\xe0g##}7\ +\x0e\xc2pS\xe4\x0d\xf2c\xfdv\xd6\x7fSUN`\ +\x19\xbfg\xb8\xef9\x17\x02v2\xf5\xa2\xdc\xce+\x07\ +\xdfK\xbc\xdc\xe37:\xd26/p{\xe1N\x91\x99\ +\xa4rD\xa2Wn\xa0\xa0FDp\xc7r\xac;n\ +\x98\xe9\x91\xb6U\xfc\x96\xaf\xf2?3\x5c3\x5c:\x02\ +T\xe2\xe4kV=\x97q\x85\x22\xb4\xa7\xce*k\xe2\ +4n\xe2\x03a\xfa\x1a\xdd\xd2\x0eE\x90\xe8\x93\x7f|\ +\xf9\xa9+a9I&\xbf\x97\xd5\xd7]\x11\x1f'\x10\ +?\x97\x1b\xdc\x98\xff\xb4\xaf\x9e\xa6\xc9\x04\x95\x17-\xc7\ +S\xbe\xc2\x058\x05\xfb\x0eI?\x8d\x0e\x0d\x03\xe1\xe6\ +}\x9d\x1d\x06\xed\x86\xad\xb2\xce\x0a\x5cT\x924Y\xe5\ +\xaeS\xf4K\x93/\x97?\xbbIv\xdbj\x87\x8cv\ +\x0b\xddm#:\xda\xc74\xeaw\xd9\x96\xe6'x-\ +\xe3\xe7l9\xf3\x7f\x8c\xd7\xb1w\x06\xe6\xbc*7\xeb\ +U\x99\xe2\x9aZ\xe6\xf8\x07\xe8\xdar\xdf\xa1\xa9\xe2\xa2\ +v\xfb\x9c\xf9\xed\x7f\x97\xe8\x22>\xd3 \x04J\x05\xe1\ +\x8a\xb1\xc7\x1e\xe0y\xbfk7\xc61\x0d\x07\x83 ^\ +U\xfe\xf6\x99\x12\xa3\x14(.y@\xdd\xcf\xa1\xc8\x88\ +\x92Z\x1bm\x03\xe0\x9a\x80f\x1c\x1e\xf7\x03\xd5\xcd\xfb\ +\x12W\xfc\x82@Mv\xca\xff}\xddT\xe5\xd7l\xf2\ +I\xa4\xee\xc7?\x1cp^%\xcb\xa3\xa3\xa8\x9c\xdeK\ +\xffP\xe14\x0f\xb7a\x08\x07\xa9\x8f\xeb\x91\xbcL\xa0\ +\xbaJk\xccQ\xbd\xdb\xd7:n\x16\x9csuT}\ +iM\xae\x10\xee\xcc\xc9\x04\xbab\xb5Yf\x93\xec5\ ++\xca4\xdd/\xda\xb6\xcf\xae\xd8\xa9\xde\x04\xd6o}\ +\xc52/2<\xae\xc9\xf3\xa6i\x8e\xeb\xfe(\xf3b\ +\x82\xb4\xc9\xaa\xbev?\xd91w>\x08\x01p\x02\xdc\ +\x9eB\x80\xe8SC\x05e#\x10\x84\xfc\xae@`\x0a\ +\xe9\x0c\xea\x04\x04\xc1\x89\x15\x16\xd98\x06\xc2}1\x81\ +[\xa7}\xfc\x14\x04J\x04\x15\x5c\xf01\x10\xf4]\x81\ + 4\xd1\xd4\x9cY\x04\x83\xd0X-G\xd5A\xde\x17\ +\x08\x12M2\x83\x13\x10\x00c\x1c\xa9(\x8c\xdb\x84\xfb\ +B\x81K\x02\x12\xe4\x09\x0a\x92P\xab\x90\x22f\xd4(\ +\xb0\xfb2\x8d\xe8\x93\x959\xb3\x0a\xc4 \x11\x84\x861\ +\x14\xec}9I\x04\xc1\xaaS\xff\x00@\x84\xb0\xc0F\ +\xa9\x00\xf7\xc6\x04\xce\xec\xa9>p@*\x1810\x99\ +C\x10Bz_f\x01\xd35\xc6\xcf`@\x86`\xd4\ +;N\x85;\xd3\x08\x0c\x10\x8d`\xa7n\x12%50\ +\xcd\xc6Q\xf8F\xe2F\xb7\xe2\xa3=\xec\xf3\xed\xb2\xc0\ +a\x9b\xb2\x0a1\xf3~\x8d\x9bM\x95\xb9D\xf4|\xb7\ +\x82\xc9c\xe5w9\xa9\xa7\x08\x95FK+\x03\xd4%\ +\x8c\xba\x95d\x9e&LQ\xaa\xa4\x0c$\xe1\xda\x9a\x8f\ +\xa0\xf3q8\xfes0\xda\xc2\x12\xb3\xf0f\x22\xfa\xba\ +4\xae\x17qU\xc5\xef\x93\xa2,\xb2\xbf\x1a6y\x0a\ +\x1bs\xf9\xa1A\xa7\x8b\xb0\x81&\x16\x93K\x8f\x13\xca\ +\xd0\xee\xf2 \xc4\xc0LP{U\xd8\xdc|\xccr\xcd\ +\xf4-\xd1I\x9f\xe2\xe2\xae\x8d\x18\xc5\x95\x06\xad\x7fb\ +\x02\xa4\x07\x143\x16m\x84\x08BN0\x82\x83+\x03\ +c\x85\xb2\xa0\xb4\xba%`\xec\xb9\x9eq\xe4\x88\x94\x0e\ +\x18\x8c\xe10\x93\xf7\xa0\xcd\xe4\xb8\xb1\x10\x00\xb1V\xdb\ +\xab\xe3\xe2.\x0c\x80\xdf\x10.\x0a.(\x92\xd4\xdaj\ +\xa7H\xdc\x10\xad\x84\xf4B\xc4G\x19\xc3m\xa0\x08c\ +\xd4\x5c[\x91\x90\x95\x96\xdd\x14_\x14?\xc3\x05\x8d0\ +HcY\xd0\xa5\x7fh\x98\xbd\x10c;\x8dJ\xc7!\ +\x08\x81(\xad\xafN\x18.\x05\x03sK\xc0\x9c)\x12\ +\xfax-\xac\x06\xe7\xb00\xf9\xe3Tk\x0f\xdd\x14g\ +T \x87\x80p\xf4f\xd7\xc6\x05\x00\xdd\xe0-\xf9q\ +}\xa6G\x82\x11i\xd0\xbe\x04\xed\xbd\x11\xd5\x5cx\xa1\ +%NR2gw\xb9T\xd7\xb6\xbb\xdaR\x81\xb3\xdd\ +\x12]\xf4\x99\xa3\x16\xee\xf8\xdc\x05Ag_$\xd5\xc2\ +C\x1fe%o\xb5\x08\xad\x01UW70\x9c*\x0d\ +\xda\xde\x120\xe7\x9e\x1a\x8d,`\x12\xdd\x1a^J\x00\ +\x15\x1f\xf5\x08\x00\xa8\xd1hw\x85\xb9:,Zp\xcc\ +\xc9\xe8-\xe9\xd1 \xb6\xed\xec.f\x0b\xe8\xa0Y\x1b\ +\xd8\xb9\xbbG\xa3=C,\x93J\x07\x8c\x80\x96\xfc\xda\ +\xa8`\xa8-\x19\xe57e]\xc23\x7f\x84\xa9\xa4A\ +\x7f\xa4\x9c?\xc2\xecZh\xa6\xbc\x10\xa9\x0e\x0a\xfdS\ +\x10b\x08\xac\xe4\xd5\x09\xc3)&h\x96\xdd\x184\x83\ +\x1b\xf6\x0e\x1cK$\xe8\xceY\xa3\x91\xc1\x88\x0e\xad\xaf\ +\xb3\xc2J!`\x18\xce0\x107\x0f\xceGo\x9d,\ +F\xf5\x83X\xb5M\xb2)\xe6\x8c\xf2\xf0\x82\xf6B\x92\ +}\xb5+yJS\x11\xc7\xff\xef{'K(\xc8\x0b\ +\xb7\xd1\x98\xf1(e\xc7aP\xdf\x06\x0cW\xc8\x81\xf8\ +\x05\x97C\x8d\xa5L\xb8 E;\xbf\xec%\x1e\xc5\x10\ +\x8ej@\x1bB1\x5cA\xab\x22\xdc\xed\x03\x00sF\ +E\x02\xe6\xd5\xa7\x15\xff\xb5\x22]B\x0c\xc3\x03fP\ +a\xa5\xb8\x1at\xf3!\x1as\xc3/D^\xfd\x9a\xb8\ +NL\xfc|:sUn\x8a\xf4|\x92\xc3(\x97\xde\ +_3\x0c\x00\x85\xdd\xbf\xbf\xde\x17]\xda`-\xd7\xd0\ +&\xe5\xee\xa5\xa2\x86\xc7\xe3\x0f\x0a\x86g}\xf4\xa9\x12\ +\xa2\x97\xb9\x0f\x01\xea\x99\x9f$\xfe\xb1\xc8\xc7\x09q\xa0\ +\x84\x19\xbc\xa4\xd9q\xc2\xbaW\x17`5\x0f\xa4r\xef\ +\xd6\x99\xe0H\x09j\x85\xd0\x81\xb6.P\xa3\x83\xf7\xc0\ +\xc33o\xef~\xc6\x0f|\x08\xeeNE\xd4\xbf\x05\xfb\ +\xaf\xb8\x81\xfa\x9fB\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ +no\x22?>\x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \x0d\x0a \ -\x0d\x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +circle\x0a styl\ +e=\x22opacity:1;fil\ +l:none;fill-opac\ +ity:1;stroke:#ae\ +aeae;stroke-widt\ +h:2;stroke-linec\ +ap:round;stroke-\ +linejoin:bevel;s\ +troke-miterlimit\ +:4;stroke-dashar\ +ray:none;stroke-\ +dashoffset:0;str\ +oke-opacity:1;pa\ +int-order:normal\ +\x22\x0a id=\x22path8\ +27\x22\x0a cx=\x2224.\ +984894\x22\x0a cy=\ +\x2234.797325\x22\x0a \ + r=\x227.5508037\x22 /\ +>\x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0cY\ +r-curvature=\x220\x22\x0a\ + sodipodi:no\ +detypes=\x22cc\x22 />\x0a\ + \x0a\x0a\ +\x00\x00\x0c\x08\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a \ + \ +\x0a \x0a \ + \x0a \ + \x0a \x0d\x0a \x0d\x0a \ - \x0a \ +\x0a \x0d\x0a \ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x05n\ +\x0a inkscape:w\ +indow-height=\x2210\ +25\x22\x0a id=\x22nam\ +edview4\x22\x0a sh\ +owgrid=\x22false\x22\x0a \ + inkscape:zoo\ +m=\x221.2291667\x22\x0a \ + inkscape:cx=\x22\ +-192\x22\x0a inksc\ +ape:cy=\x2296.00000\ +6\x22\x0a inkscape\ +:window-x=\x2269\x22\x0a \ + inkscape:win\ +dow-y=\x2227\x22\x0a \ +inkscape:window-\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg2\x22\ + />\x0a \x0a\ +\x0a\ +\x00\x00\x05f\ \x00\ -\x00\x17\xf8x\xda\xddXKo\xdbF\x10\xbe\x07\xc8\x7f\ -`\x99\x8b\x8d\x9a\xcb}\xf3\x11\xd1\x01\x1a#@\xaem\ -\x8a\x1e\x8b\x15\xb9\x92\xd8P\xa4@R\x96\x9c_\xdfY\ -\xbeD\x99\xa6`\x9f\xaa\x86\x8e\xe1\xec\xcc\xb7\xb33\xdf\ -\xce\xcc.\xb9\xf8t\xdcf\xd6\xa3.\xab\xb4\xc8#\x9b\ - l[:\x8f\x8b$\xcd\xd7\x91\xfd\xe7\xb7/\x8eo\ -[U\xad\xf2DeE\xae#;/\xecO\xf7\xef\xdf\ --~q\x1c\xebs\xa9U\xad\x13\xeb\x90\xd6\x1b\xebk\ -\xfe\xbd\x8a\xd5N[7\x9b\xba\xde\x85\xae{8\x1cP\ -\xda\x09QQ\xae\xdd[\xcbq`*L\xae\x1e\xd7\xef\ -\xdfY\x96\x05k\xe7U\x98\xc4\x91\xdd\xcd\xd9\xed\xcb\xac\ -\xc1&\xb1\xab3\xbd\xd5y]\xb9\x04\x11\xd7\x1e\xe1\xe3\ -\x13>6\x1e\xa4\x8f:.\xb6\xdb\x22\xaf\x9a\xa9y\xf5\ -a\x8c.\x93\xd5\x007.\x1dX\x83\x22A\x10\xb8\x98\ -\xba\x94:\x80p\xaa\xa7\xbcVG\xe7\xd9\x5c\xf0\xf3\xa5\ -\xb9\x14c\xec\x82n\x04}%,\xac\x80\xd9\x1d\xfc\x0e\ -\xf8^\x80\xaab_\xc6z\x05\x135\xcau\xed>|\ -{\x18\x94\x0eFI\x9d\x8c\xed\xf4\xc4\x9e\xad{\xc6v\ -\xae\xb6\xba\xda\xa9XWn/o\x0d\x1c\xd2\xa4\xdeD\ -6\xf7\xdb\xe1F\xa7\xebM}\x1a?\xa6\xfa\xf0[q\ -\x8clla\x8b\xfb\xf0\x0fa\xf3\x90V\x9d&\x91\x0d\ -1\xd1\x0e|J\x9c^\xdf\xad\x15\x0e*\x8c\x02\x8a\x84\ -uC\xb1\xc4:&\xab`ugQL\xb1\x83\xb9\x83\ -\xfd\xdbvZ\x1fi\x98\x14\xb1\xf1<\xb2\xe3\x22+\xca\ -\xbf\xd7e\x9aPdH\xbc7\xb8E\xa2WU3\xa1\ -\xf5\xc4\x0c\xb9m\xb9\xadr0b,$&\x90\x11t\ -\xa9\xaa\x8e\x00\xcb\xda\xa9\xb5n\xecG\xf6\x87U\xf3\xf4\ -\x9aeQ&\xba\xecu\xb2y\xceu\x05p\x9a\xd6O\ -m\xad\xf4\xf6\xfb\xa0\x8d\xe1\x01\x80g\x00\xd5F%\xc5\ -!\xb2\xe9D\xfb\xa3(\xb6\x91\xed#/\xe0\x92c9\ -\xd1\xc7\xb0-\x12I&\x03*\xc8T\x0bk2\x8c\x18\ -!\x01\xe7\x13-\x10\xbb7\xf5\xe4\xec\xf3\xb4\x86|\xdd\ -\x1d\xa7\x06\xf6ei\x10\x99z\xd2\x10\xfe\x9aq>\xac\ -Rm\x8a\x83\xd9\x8c\xc8^\xa9\xec\xc4\xe4\xbc\xb1C\x9a\ -C\x94N\x97m\xc4\xef\xf3k\x0a\xe93\x90`\x22\xe7\ -0\x10\xb8G\xe7\x94\x107\xf5\xe6\x94[uL\xb7\xe9\ -\x0f\x0d\x9e\x93!S\xb6\xbaV\x89\xaa\xd5(?z\x91\ -\xd7f\x1a\x80\xa0/\x84\xbf?|\xe9\x86 \x88\xe3\xf0\ -\xaf\xa2\xfc\xde\x8f\xe11\x10\xb5,\xf6\xe0\xbd}\x7f\x92\ -/\x928\x84J\xde\xaa\xfa>\xdd\xc2\x8e\x9b.\xf0+\ -\x14\xee\xc2=)\xce\xd1\xf5\xd3N\x8f\xec\xb6\x96K\xdd\ -6\x85\x17\xdbc\x12oS3\xcb\xfd\xa3N\xb3\xec\xab\ -Y\xa6\x0fod6\xad3=\x92.\xdc.\x86>F\ -w\x1c\xe4\xc2\xedIh\x87\xeb\xe7\x94fj\xa9\xb3\xc8\ -\xfe\xacv\xca\x9a\xe6\xdf\xba,\xf6\xbbm\x91\x80\xbfM\ -\x06\xd9#v\x1b\xc10\xa5.U^\x19\x1e\x22\xbb\xf9\ -o\x06\xc7\xc8\x0d\xbes\x08\xc6\x1c1I\xe9\xed\xb0\x09\ -\xeb! c\xe6,%\xcf\xec\x00\xa5ez\xbc\xc1\xc8\ -\x97\x92H&\xd8\x1d6?\xa7!ERx\x9e\xef\x05\ -w\x84y\x88x\x94\x91\xdb\x93\xa5\xaa~\xca\xc0\xef\x15\ -P\x19v-\xe1cU\x97\xc5w\x1d~\xe0\x89\xf9\xb1\ -Gy\x90\x96q6\xde.(\x16\x8a\x88\xe4\x1e\xa4\xb9\ -=\x92\x9b\x8a\x84\xac&\x882\xc9\xce\x14\x90\xcf\x14*\ -\x19\x5c\x11g3L\x90;Uo\x18cr,\x7f\xe6\ -\x9f\x84\xb3\xe5\xa3\x198]\xb7\x09\xa1\xcb\xc2\xfaX\xf8\ -~+/\xf7\x99\x0e\xf5\xa3\xce\x8b$\x19\x22\xe9&\xb6\ -\xc3\xb64C\x828g\x84\x0b\x16\xec\x8e\xbd&Ks\ -\x0d[\x1a.\xf7u=\x96\xfdS\xa4y\x08i\xa7\xcb\ -^\xda/O\xc6\xb9w\x91 \xfa\x02A\x14Q\xc1\xf8\ -s\x82`\x9bX\x00\xcdN\xce\x11\xe4\xb0Y\x8a<\xd8\ -@ouN\x11\xb9\xc0L\x87\x7f\x91\x19A\xfe3f\ -\xa8@\xdc\x13\x93\xd4\xe1\x1c\xf9L\x12o\x96\x98\xf9\xdc\ -\x09\x96&\x09^OL\x87\xbf6b\x18\x1c\x92\x1e!\ -\x13b\xa0\xd4\x02,\xd9lM9\xde\x85\xaa2\xd7\x9c\ -\xd73\xd3\xe1\xaf\x8d\x19.\x91O\xa9\x98t\x9b\x00\x09\ -.1g\xb3\xcc\x88Yf$]\xad\x82\xe5\xeb\x99\xe9\ -\xf0W\xc7\x0cG\x81'\xfc\xe7\xcc\x10\x81\x08\xa7\x0c\xcf\ -3\xc3\xc4O_N\x1cQ9\xed3\x02\x05>\x85\x17\ -%\x7f\xbe\xd1\xd0\x0b\xf5\xb4\xf4\xdeVO\x0d\xfe\xeaZ\ -0\xf8\x80\x89?\xa5F\xfa\xd0\x99}2KM0\xcb\ -\x0c\xc6K8o^\xcfL\x87\xbf6f\xe0^\xe3\x13\ -\ -\x22\xd4\x0f^\xb8\xd70L\x02y\x81\x1a\xf9\xffj7\ -\x0bw=|\x9b\xd1q\xfd\xe2\xcb{^\xe4\xfa\xf9\x9b\ -\xb1\xcf\x03a\xdepO\xb7\xb0\xe69\xf7\x96!_x\ -\x1cn\x82b\xe2WY\xec\xf3>T\xa7q2K\xe1\ -O\xc8{Y\xa2\xaa\x8d*K\xf5\xd4,o\x9f}\xb2\ -0\x9er2~\x9b\xef?\xc0rs\xef\x14\xfeH3\ -|\x8b\x9d\xaa\xcc\x86\xa2\x80\xfa\x1e\xf6F\xc7g\xb3\xff\ -X\x9a\x97\x9e\xd1\xfe\x97\x8d\x18\x11_z\xe2\xf4\xcd\xab\ -!oa>E\xc1\xdf\x7f\x01\x99a\xaf\xce\ -\x00\x00\x18\xf9\ +\x00\x17]x\xda\xddX\xdfs\xa36\x10~\xcf_A\ +\xb9\x97d\x1a\x84~#q&7\xd3\xcb\xdc\xcc\xbd\xb6\ +\xd7\xe9c\x07\x83l\xd3`\xf0\x00\x8e\x9d\xfb\xeb\xbb\xc2\ +`l\x1cn\x92\xa7\xba\x87\x9d\x89\xb5\xfbI\xda\xfd\xb4\ +\xbb\x92\x98}\xda\xafs\xe7\xd9TuV\x16\x91K\x10\ +v\x1dS$e\x9a\x15\xcb\xc8\xfd\xf3\xdb\x17O\xb9N\ +\xdd\xc4E\x1a\xe7ea\x22\xb7(\xddO\x0f7\xb3_\ +<\xcf\xf9\x5c\x99\xb81\xa9\xb3\xcb\x9a\x95\xf3\xb5x\xaa\ +\x93xc\x9c\xdbU\xd3lB\xdf\xdf\xedv(\xeb\x84\ +\xa8\xac\x96\xfe\x9d\xe3y\x0f77\xb3\xfayy\xe38\ +\x0e\xcc[\xd4a\x9aDn\xd7a\xb3\xad\xf2\x16\x98&\ +\xbe\xc9\xcd\xda\x14M\xed\x13D|w\x80'\x03<\xb1\ +\xb3g\xcf&)\xd7\xeb\xb2\xa8\xdb\x9eE\xfd\xe1\x04\x5c\ +\xa5\x8b#\xdaZ\xb3c-\x88h\xad}L}J=\ +@x\xf5K\xd1\xc4{\xef\xbc+\xd8\xf8ZW\x8a1\ +\xf6A7 \xdf\x86\x0ak t\x03\x7fGx/@\ +u\xb9\xad\x12\xb3\x80~\x06\x15\xa6\xf1\x1f\xbf=\x1e\x95\ +\x1eFi\x93\x9e\x0c\xd3\xf3y6\xeb\x19\xc9E\xbc6\ +\xf5&NL\xed\xf7\xf2\xb6\xff.K\x9bU\xe4r\xd5\ +\xb6V&[\xae\x9ac\xf393\xbb\xdf\xca}\xe4b\ +\x07;\x5c\xc1\x17a\xfb\x90V\x9b\xa5\x91\x0b\xde\xd0\x03\ +t\x88\x94N\xdb\xcd\x12\x1e5\x18i\x8a\x84sK\xb1\ +\xc4&!\x0b\xbd\xb8w(\xa6\xd8\xc3\xdc\xc3\xea\xae\xed\ +\xd5{\x18\xa6ebM\x8e\xdc\xa4\xcc\xcb\xea\xefe\x95\ +\xa5\x14Y\xee\x1e\x006K\xcd\xa2\xb6\xf0\x83\x11\xb6\xc5\ +]\xc7oU\xc7\x11l\xf7\xd4z0\x00\xe7q}\xf0\ +\xdaq6\xf1\xd2\xb4CG\xee\x87E\xfbt\x8ayY\ +\xa5\xa6\xeaU\xb2}\xceT%\xb0\x985/\x87\x9c\xe8\ +\xc6\xee}\xb5\xa3\x1e\xf5\xf8u}\xbd\x8a\xd3r\x17\xb9\ +t\xac\xfc^\x96\xeb\xc8U(\xd0\x5cr,\xc7\xea\x04\ +\xd6A\x22\xc9\xa4\xa6\x82\x5c(a>\x86\x11#Ds\ +>V\x02\x97[\x9b5\xde\xb6\xc8\x1a\x88\xcc\xcd\xfe\xa2\ +\xfb\xb6\xaa, \x8f_\x0c\xb8\xbdd\x9c\xf7S\xd4\xab\ +rg\xd9\x8f\xdcE\x9c\x1f\xe9\x9b\x1ci\x97\x15\xe0\x9d\ +\xd7\x85\x15Q]$]\x22\xfaP#\x98\xc8\x09\x088\ +\x1c\xd0\x09\x1d\xf8K\x83\x09\xdd:\xdeg\xeb\xec\xbb\x01\ +\x9bI\x1f\x16k\xd3\xc4i\xdc\xc4C0\xf4\x92\xa0\x0d\ +)\x80@\xd2\x87\xbf?~9\xb4\xa0\x9d$\xe1_e\ +\xf5\xd45\xe1\xb1\x80x^n\xc1j\xf7\xe1(\x9e\xa5\ +I\x08i\xba\x8e\x9b\x87l\x0d\xebk3\xfcWH\xcb\ +\x99?(\xce\xc0\xcd\xcb\xc6\x0c\x83\x1e\x86\xad\xcc!\xdf\ +_-zi\xb2\xcel'\xff\x8f&\xcb\xf3\xafv\x92\ +\xce\xad\x93A\xb3&7\x83p\xe6w\xd6w\xbe\xf9'\ +\xce\xcd\xfc\xde\xf5\xb6\xb5\x1c\x91\x98\xc7s\x93G\xee\xe7\ +x\x13;\x17q\xb6\xac\xca\xedf]\xa6`h\x1b+\ +\xee\xc0g\xdb\xee;4U\x5c\xd4\xd6\xf9\xc8m\x7f\xe6\ +\xb0!\xdc\xe2{\x8f`\xcc\x11\x93\x94\xde\xf5\xac/{\ +7\xec\x18\xa7\x81w6\x08\x90Xe\xfb[\x8c\x94\x94\ +D2\xc1\xee\xb1\xfd\x0cM\x8a\xa4\x08\x02\x15\xe8{\xc2\ +\x02D\x02\xca\xc8\xddq\xa0\xbay\xc9\xc1\xe2\x05\xb0\x17\ +v\xd9\xfe\xb1n\xaa\xf2\xc9\x84\x1fxj?\xee\xb0\xea\ +Y\x95\xe4'\xeb\x03\xe9@\x11\x91<\x80Xv\x07\xb1\ +M8\x08]\x82(\x93\xecT\x0eAK!M\xc1\x0a\ +q\x8a\xb7\xdem\xe2f\xc5\x18\x93'\xe2\x91e\x12\xb6\ +\x88\x8f\xb6\xe1uU$\x84\xa2\x09sc\xa1\xd4A^\ +ms\x13\x9agS\x94iz\xf4\xa1\xebxh\x1er\ +/$\x88sF\xb8`z\xb3\xef5yV\x18X\xc6\ +p\xbem\x9aS\xd9?eV\x84\x10c\xa6\xea\xa5\xfd\ +\xf4\xe4$\xd0~D\x0d\xbd\xa4\x86\x22*\x18\x1fQ\x03\ +k\xc34\xd409A\x8d\xc7\xa6\xc8\x09`\xd1\x82\xc5\ +99\xe4\x07\x9ct\xf8W9\x11\xe4\xbf\xe1\x84\x0a\xc4\ +\x031\x0e\x17\xce\x91b\x92\x04S\x94L\xc6\x8b\x9e\xdb\ +\x85\x7f;%\x1d\xfe\xaa(a\xb0\xdf\x05\x84\x8c)\x81\ +\xbc\xd2X\xb2\xa9\x0c\xf2\x82\xe9\x1c\xb2\x07\x94\xb7s\xd2\ +\xe1\xaf\x8a\x13.\x91\xa2T\x8c\xab\x8aF\x82K\xcc\xd9\ +\x14'b\x8a\x13I\x17\x0b=\x7f;'\x1d\xfe\xba8\ +\xe1H\x07B\x8d8!\x02\x11N\x19\x9e\xe4\x84\x89\x9f\ +:y8\xa2\xf2\xa2\x9e\x08\xa4\x15\x85\xbb\x8c\x9a,(\ +t:{\xe6\xc1\xfb\xb2\xa7\xc5_W\x91\x05\x030Q\ +\x17\xa4H\x05\xa5W\x91)R\xf4\x14'\x18\xcfa/\ +y;'\x1d\xfe\xaa8\x81s\x8a\x22x\x1c(\xb0E\ +3&8\xd1S\x9c\x90)Nb\xfd\xbe*\xdb\xe1\xaf\ ++N\x18b\x175\x96B\xee\xd8\x03\xd7$#\xd3;\ +\xcf\xcf\x10'\xb45\x80\x8e\x0fmp\xb8\xd6\x1cN\xd7\ +\xd3\xac\xe0iVT\xfa>VZ\xfcu\x95Y\xc8\x1e\ +\x16\x8c\xb3\x871$\x18\xe6\x01\x9dfE\xff\xcc\xa7\x14\ +&\x91\x16\x17;2d\x10\x17\x81\x90l\x9a\x156\xcd\ +\x8a\xa1\xefc\xc5\xd0\xab\xab*\x0a\x11\xaa\xf4\xe59\x85\ +a\xa2\xe54)\xf2\xffTVf\xfe\xb2\x7fgb\x92\ +\xe6\xb5[vQ\x16f|\x91U\x5c\x0b{!\x1d\x8e\ +T\xedsn*CJ\x04\x1c\x0eu\xe2\xc2\xa8\xaa\xdc\ +\x16\xbd\x9f^ka\x9e\xc1\xbf\x90\xf7\xb24\xaeWq\ +U\xc5/\xed\xf4\xee\xe9\x8b\x05k'''W\xef\xfe\ +\xbd'\xb7\x07H\xa1\x06\xc5\xf1\x15\xe8\x85\xc6\xae#\xd2\ +T\x058\x186\xc6v\xd1\xb1\xb4\xd7\x95a\xd1\xabV\ +\x8a\x88\x92\x818\xbe\x81\xb2\x9c\xcd\xec\xcb\xa1\x87\x9b\x7f\ +\x01o!\xa7\xef\ +\x00\x00\x18\x82\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -g\x0d\x0a aria-l\ -abel=\x22\xce\xb1\x22\x0d\x0a \ - inkscape:trans\ -form-center-x=\x227\ -.0618931\x22\x0d\x0a \ - inkscape:trans\ -form-center-y=\x22-\ -1.1769834\x22\x0d\x0a \ - style=\x22font-s\ -tyle:normal;font\ --weight:normal;f\ -ont-size:317.421\ -60034px;line-hei\ -ght:1.25;font-fa\ -mily:sans-serif;\ -letter-spacing:0\ -px;word-spacing:\ -0px;fill:#00d4aa\ -;fill-opacity:1;\ -stroke:none;stro\ -ke-width:7.93554\ -115\x22\x0d\x0a id=\ -\x22text4524-9\x22>\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \ -\x0a <\ +sodipodi:guide\x0a \ + position=\x22\ +-203.24978,577.9\ +9157\x22\x0a ori\ +entation=\x220,1\x22\x0a \ + id=\x22guide9\ +22\x22\x0a inksc\ +ape:locked=\x22fals\ +e\x22 />\x0a \x0a \ +\x0a <\ +g\x0a aria-la\ +bel=\x22\xce\xb1\x22\x0a \ +inkscape:transfo\ +rm-center-x=\x227.0\ +618931\x22\x0a i\ +nkscape:transfor\ +m-center-y=\x22-1.1\ +769834\x22\x0a s\ +tyle=\x22font-style\ +:normal;font-wei\ +ght:normal;font-\ +size:317.4216003\ +4px;line-height:\ +1.25;font-family\ +:sans-serif;lett\ +er-spacing:0px;w\ +ord-spacing:0px;\ +fill:#00d4aa;fil\ +l-opacity:1;stro\ +ke:none;stroke-w\ +idth:7.93554115\x22\ +\x0a id=\x22text\ +4524-9\x22>\x0a <\ +path\x0a d=\ +\x22m 179.26521,143\ +.85114 -4.12649,\ +-6.03101 c -10.4\ +7491,9.84007 -18\ +.09303,12.37944 \ +-23.48919,12.379\ +44 -5.07875,0 -9\ +.20523,-0.95226 \ +-13.64913,-6.983\ +28 -4.12648,-6.0\ +3101 -10.47492,-\ +19.36271 -13.649\ +13,-28.88536 l -\ +5.07875,-14.9188\ +16 c 7.93554,-12\ +.696864 15.23624\ +,-26.663414 18.7\ +2788,-33.64669 3\ +.49163,-6.665853\ + 12.69686,-25.71\ +1149 13.3317,-32\ +.059581 -2.53937\ +,-3.491638 -4.44\ +39,-6.348432 -6.\ +98327,-11.109756\ + -1.26969,-0.634\ +844 -4.12648,-1.\ +587108 -5.39617,\ +-2.221952 -3.174\ +21,26.345993 -6.\ +03101,35.233798 \ +-14.91881,53.961\ +673 -0.95227,1.9\ +04529 -5.07875,9\ +.840069 -7.93554\ +,15.236236 L 96.\ +418167,31.483892\ + C 91.022,17.199\ +919 81.499352,15\ +.930233 74.51607\ +7,15.930233 67.2\ +1538,16.247655 5\ +7.057889,21.6438\ +22 47.852663,31.\ +483892 c -6.9832\ +76,6.983275 -11.\ +7446,15.236236 -\ +15.87108,25.0763\ +06 -9.84007,28.2\ +50522 -13.966551\ +,66.023692 -9.52\ +2648,91.417422 1\ +.904529,10.47491\ + 9.522648,24.441\ +46 17.140766,24.\ +44146 13.014286,\ +0 22.536934,-6.3\ +4843 31.424738,-\ +13.64913 12.0620\ +21,-11.42717 24.\ +441464,-25.71115\ + 33.011851,-36.8\ +209 9.52264,33.0\ +1184 22.53693,50\ +.47003 35.23379,\ +50.47003 7.3007,\ +0 16.50593,-5.39\ +617 26.02857,-14\ +.60139 z m -78.4\ +0314,-31.74216 c\ + -7.618119,10.79\ +233 -15.553659,2\ +0.31498 -22.8543\ +55,26.98083 -8.8\ +87805,8.25297 -1\ +7.77561,11.10976\ + -23.80662,11.10\ +976 -4.126481,0 \ +-6.665854,-4.443\ +9 -8.252962,-12.\ +69686 -3.491638,\ +-20.31499 -4.126\ +481,-54.596519 2\ +.221951,-80.9425\ +12 2.539373,-10.\ +474913 9.205227,\ +-19.680139 16.50\ +5923,-19.680139 \ +9.84007,0 14.283\ +972,5.713589 18.\ +727875,19.680139\ + z\x22\x0a sty\ +le=\x22font-style:n\ +ormal;font-varia\ +nt:normal;font-w\ +eight:normal;fon\ +t-stretch:normal\ +;font-family:'Te\ +X Gyre Pagella M\ +ath';-inkscape-f\ +ont-specificatio\ +n:'TeX Gyre Page\ +lla Math';fill:#\ +00d4aa;fill-opac\ +ity:1;stroke-wid\ +th:7.93554115\x22\x0a \ + id=\x22path\ +823\x22 />\x0a \ +\x0a \x0a \x0a \x0a <\ +path\x0a \ +style=\x22fill:none\ +;fill-rule:eveno\ +dd;stroke:#162d5\ +0;stroke-width:1\ +.55563581;stroke\ +-linecap:round;s\ +troke-linejoin:b\ +evel;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1;\ +paint-order:fill\ + markers stroke\x22\ +\x0a d=\x22M\ + 8.1034569,42.45\ +191 C 15.791519,\ +42.977784 18.461\ +889,10.499044 41\ +.33283,10.900594\ +\x22\x0a id=\ +\x22path825\x22\x0a \ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22\x0a \ + sodipodi:nodety\ +pes=\x22cc\x22 />\x0a \ + \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07Q\ +\x22\x0a id=\x22p\ +ath825-6-7\x22\x0a \ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x07\x1b\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/s\ -vg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0a \x0a \x0a \ +\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x10\xa0\ +\x22 />\x0a \x0a\x0a\ +\x00\x00\x10I\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a <\ -text\x0d\x0a xml:s\ -pace=\x22preserve\x22\x0d\ -\x0a style=\x22fon\ -t-style:normal;f\ -ont-weight:norma\ -l;font-size:31.0\ -2170181px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#2167\ -78;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.775\ -54256\x22\x0d\x0a x=\x22\ --48.97916\x22\x0d\x0a \ - y=\x2236.47298\x22\x0d\x0a \ - id=\x22text4524\ --9-2\x22>\x0a \ +\x0d\x0a \x0a \x0a \x0a \x0a \x0a \x0d\x0a\ - \ +\x0a\x0a\ +\x00\x00\x0f8\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0f\x94\ +troke-opacity:1\x22\ + />\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a\ +\x0a\ +\x00\x00\x0f\xa0\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \ - \x0a \x0a \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\ -\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0f\xf3\ +-dasharray:none\x22\ +\x0a d=\x22M 181.4\ +2373,170.84746 H\ + 16.271186 l 1e-\ +6,-152.135596\x22\x0a \ + id=\x22path812\x22\ +\x0a inkscape:c\ +onnector-curvatu\ +re=\x220\x22\x0a sodi\ +podi:nodetypes=\x22\ +ccc\x22 />\x0a\x0a\ +\x00\x00\x0b\xee\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0cC\ +\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \ + \x0a\x0a\ +\x00\x00\x0a\xc2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ -odipodi:nodetype\ -s=\x22csc\x22\x0d\x0a \ - inkscape:conne\ -ctor-curvature=\x22\ -0\x22\x0d\x0a id=\ -\x22path4140\x22\x0d\x0a \ - d=\x22m 16.067\ -796,70.882731 c \ -10.422221,0 11.3\ -22848,-16.118588\ - 15.206749,-16.1\ -24554 3.99427,-0\ -.0061 3.965545,1\ -6.035528 14.0906\ -55,16.124554\x22\x0d\x0a \ - style=\x22f\ -ill:#e11e5a;fill\ --opacity:1;fill-\ -rule:evenodd;str\ -oke:#e11e5a;stro\ -ke-width:0.5;str\ -oke-linecap:roun\ -d;stroke-linejoi\ -n:miter;stroke-m\ -iterlimit:4;stro\ -ke-dasharray:non\ -e;stroke-opacity\ -:1\x22\x0d\x0a tr\ -ansform=\x22transla\ -te(1.0067283,-25\ -.887299)\x22 />\x0d\x0a \ - \x0a \x0a \x0a <\ +path\x0a styl\ +e=\x22fill:none;fil\ +l-rule:evenodd;s\ +troke:#ff6600;st\ +roke-width:16;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:miter;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1\x22\x0a d=\x22m\ + 95.091973,56.17\ +2243 0.09447,79.\ +795097\x22\x0a i\ +d=\x22path812\x22\x0a \ + inkscape:conn\ +ector-curvature=\ +\x220\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b\x0d\ +/>\x0a \x0a\ +\x0a\ +\x00\x00\x0f\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \ +\x0a \x0d\x0a <\ +tspan\x0a s\ +tyle=\x22fill:#9999\ +99;fill-opacity:\ +1;stroke:#999999\ +;stroke-width:0.\ +29937106px\x22\x0a \ + y=\x2227.66311\ +5\x22\x0a x=\x221\ +5.134903\x22\x0a \ + id=\x22tspan837\x22\ +\x0a sodipo\ +di:role=\x22line\x22>B\ +us\x0a \x0a\x0a\ +\ +\x00\x00\x071\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x10\x06\ +:1\x22\x0a d=\x22M 7.\ +6054021,38.16002\ +8 40.868101,38.4\ +62416 23.631976,\ +9.1307637 Z\x22\x0a \ + id=\x22path4489\x22\x0a\ + inkscape:co\ +nnector-curvatur\ +e=\x220\x22 />\x0a\x0a\ +\ +\x00\x00\x06\xec\ +\x00\ +\x00\x17hx\xda\xe5X\xcbr\xe3\xc6\x15\xdd\xeb+\x10\ +\xccf\xa6B4\xfb\xfd\xa0I\xb9*\x99r\xc5\x8b\xd9\ +\xc4\x8f,S\x10\xd0$a\x91\x00\x0b\x80D\xc9_\x9f\ +\xd3$\xf1\xe0\x88\x94\x1de\xe2Y\x98\x90J\xec\xdb\xb7\ +\xbbo\x9f{\xee\x03\x9a\x7f\xfb\xb4\xddD\x8f\xben\x8a\ +\xaa\x5c\xc4\x8c\xd08\xf2eV\xe5E\xb9Z\xc4?\xfd\ +\xf8]b\xe3\xa8i\xd32O7U\xe9\x17qY\xc5\ +\xdf\xde\xde\xcc\xff\x92$\xd1\xdfk\x9f\xb6>\x8f\xf6E\ +\xbb\x8e\xbe/\xef\x9b,\xdd\xf9\xe8\xfd\xbamw\xb3\xe9\ +t\xbf\xdf\x93\xe2$$U\xbd\x9a~\x88\x92\xe4\xf6\xe6\ +f\xde<\xaen\xa2h|&\x8b\x83\xa0\xc8\x171\xe6\ +\xf8a\xb0/\xf2v\x8d9w\x1c\xae}\xb1Z\xb7\xc3\ +\xf8\xb1\xf0\xfb\xbfUO\x8b\x98F4\x820\xea&\x1a\ +X\xbe\xc3\xef,\xaf\xb22\xdd\xc2\xe0\xb6\xd8\xfa\x7f7\ +\xbe.|C\xb0\xfd\xf1\xa8\x93]\xb3\xb1\x11\x84G\xef\ +iJi\xb6TB\xb8I\xc4)\xe7\x09\xc5\x8f\xfcp\ +X\x04\xa0\xcaf\xd6-]\xc4\xd7\xee\x19\x8emvi\ +\xe6\x9bi'\x1f\xad\xef\x0c\xec\xd7w\x02\xd2T\x0fu\ +\xe6\x97\xd8\xc2\x93\xd2\xb7\xd3\x8f?~\xec'\x13J\xf2\ +6\x1f\xb69;}/\x0e\xe7rJ\xe9\xb4\xbb\xe1\xe9\ +\xb0\xc7\xd5\xef\xd4\xac\xf3\xe5%M\xe6\x9c\x9bR>\x05\ +\x12\xd0H\x9a\xe7\xb2M\x9f\x92\xb2y7Z\x9ae\xfd\ +\xca,0\xa2x\xf4Y\xb5\xddVes\x84\xe3L9\ +\x1f\x94w\x0f\xf5\xe6\xa0\x91gS\xbf\xf1[_\xb6\xcd\ +\x14~\x98\xc6\xb7\xd0\x9fo}\x9b\xe6i\x9b\x86\xb5G\ +rt\x12{P\x80\x0aL\x9a\xfd\xf3\xe3w\xc7\x11\xc6\ +Y6\xfbWU\xdf\x9f\x86\xf8\x04\x85\xf4\xaez\x00s\ +\xe2\xdb^<\xcf\xb3\x19`\xde\xa6\xedm\xb1MW>\ +@\xf1W\x987\x9f\x0e\x13g\xca\xed\xf3\xce\x0f\x9b\x1e\ +\xb7\xad\xfd\xd1_\x17\xaf\x93g\xdb\x22,\x9a\xfe\xd0\x16\ +\x9b\xcd\xf7\xe1\x908\x9a\xf6vNO\x86\x9e\xae1\x1d\ +\xddc>\xedny\x18\xe5~\xd9\x0c\x00\x84\x91>m\ +4\xef\x99\x1e\xf8\x96\x87\x808*\xeepXVm\xaa\ +z\x11\xbf[\x1e>\xf1q\xe2\xae\xaas_wS\xfa\ +\xf09\x9b\xaa@Z\x98\x8d`8\x89\xab\xbb_|\xd6\ +\xb6\xd5\xc6\xd7i\x19\xae\xca\xe8ifU#>/\xc9\ +\x1f\x8a\xdc_\x9a\xe8#.\x98\xd7\x1ftq\xb6Y\xa7\ +y\xb5_\xc4\xfc\xf3\xc9}Qb\x229\xa5\x06\xae\xa8\ +\xba\xa2\xd1g\x0b\xca\xba\x1b\x06\xf8z\xa0\xe4I\xd8\xac\ +\xab}\xb8\xc9\x22^\xa6\x9b\xc6\x7f\xbe\xdb\xafU\xb5\x0d\ +\x99\xc1\x08+\xa8|aN\x86\xf4\xc3\xa9%\x5cZ'\ +_L\xe2v\xd6\x12k\x9c\xe1\xd7\xcc\xc4zum\x0e\ +\xcb\xb9\xb92\xb7M\x9f\x8am\xf1\xab\xcf\x07O\x0d\xe7\ +>\xd45\x02)\xd9\xa4\xcf\xbe\x1e\xe5\xd3\x91J\xb8\xf5\ +\xab8\x1f\x18\xb4\xf6\xd9\xbd\xaf\xef\xaa\xb4\xce/\xf8)\ +\xf7\xcd}\xc7\xa4\x9c\x85\xa7\xa3\xe5j\xc0{\xc5(\xef\ +\x80iA\x88&\xc4\x16\xc28m\xeb\xe2\xe9\xbd \xc6\ +:\xed\x1c\x9bP<\xc3(\xb1\xd4\x10\xa9\xb5\xe2\x93D\ +\x19K\x98d\xd4}\xe8B~\xd5\xc5\xe1\xe1\x00\xeb:\ +\xcb.\x9d@\x09\x1c#\x8c\x16\x87\x13\x86\x11\xe7\xe14\ +k'L#\xe9s\xca\xe4\x87>;\xccwi\xbb\x1e\ +b\xbdi\x9f7\xa0\xf1\x12Q<+Q\xff\xbei\xda\ +\xba\xba\xf7\xb3w 9\x85\xc8\x8c\xc5\ +\x831\xb8\xf1'\x14:\xa2AG\xe6&\x92\x12\xea\xa8\ +\xd2:\xc27\xa9\xb8\x15\x13\xe1\x08@\xb4\x8cEB\x11\ +\x81\xbf\x82O\x84%r\xb4I\xc0-\xdc\x11%n$\ +\x1d\x92I\x85\xf8E\xe6B\x85\xc9\xb2l\x9c\xb4\xfe\x08\ +`\x905}\xfd&`\xb6\x01\x04!85j\x04L\ +\x22I\xc0*\xb8\x9aH\x19d\x97\x90\x90\xec7\x91\xe8\ +\x81\x98OW\xc74\xbdz\xc1v\xab\xe9U\xb2\x83|\ +\x8c\x0aI\xb5\xea\xb8\xd8\x0d\x19\xd1L Q\xd9\x89$\ +J!\x06\xb8\xe9\xc9>\x86|\x0c\xf8;a\xd2\xbb\xcc\ +v\x98\x8f\xe19\x02N\x89\x93F\xb1\xdd\xd3\xe7\xb0\xdf\ +=\xb4\xed\xeb\xa8\xbf\xc4\xf7\x80.\xe3D\x0b\x8d='\ +\x0c$\xb3\x5cr\x11e\x91\x22Z3\xed\xc4$\xe1\x88\ +Y\xc9\xb5\x8d\x90\xf3\xb8Q\x16\xc1\x8b\xf4'\xc1E'\ +\x22\xa6\x89\x00\xfaRCh\x083\x061\x07E\x08\x98\ +\x99\xa0\xb5Q\xdcI&\x22\x03f\x87\xf8\x94\x9ap\xa7\ +\xac9.T\xd8\xe1 \xb3Vj\xa5\x22\x06\xf0(g\ +\x9c\x85\x95\xa08w.b\x8a(f(u\x07C\x10\ +\x02B\xe8\x88[\xa2\x1d\x05' D\x96V\x12\xd9%\ +h:\xe5\xa8\xe3\x00^i\xc3u\xb8\x99u\x0eN\x08\ +\x91\xa2\xb0\x96\x9a\x88;\xe8S\xe7l\x88(c\x985\ +&b\xa0\x90E\xc6\x80\xf3\xa8\x0av`\x862\xa6&\ +\x89\x90\x90\x18\xa3U$8|\xc8\x0cN\x14\x820\x85\ +=\x0e\xfb++\x9c\x0bN\xb7Z\x1aX+\x88\x96\x8e\ +\xebI0[\x0a\x9c\x1d\x162\xe9\x94\x98h\x89\xd4D\ +\x95\x1c\x88\xda\xd1\xd4\xf1!\x8c\xaf\x84k\x965\xd9+\ +\xf9\x10\xbd\x15\xb3\xd4\x19}\xe0\xe00J8\xf0F\xd0\ +\xba\x09|\xe2\x90s\xc1\xc0\x9e\xef\xd78x\x16\xf42\ +\x0f\xcf9\x075A\x97)\xcc\xff1#\x1e\xf3!\x88\ +\xa94\x85\xfb\x98\x81\xd3\xc07\x17\xfd\x1c\xa1h\x04F\ +\x80\xa4\x1b\xb8\x1c\x98J\x8b!\x5c\xa0\x0c\x12\xe5\x05l\ +\xf9\x97\xc6\xed\xb3B\xa5\xcc\xab\x85\x0a=\x04\xd5\x8e\xb3\ +Sv\xe8\x87L\x805\xe8 P\xb4\x04xm\xacv\ +\xbfU\xab:\x9cpW&\xbey\xe9\xab\xe5\x12~\xa1\ +\xe7\xbezKz>\x0c6hD\xda\x99|c\xcav\ +\x88x\x090\x11\x8c\x94\xe1\x9eL\xa8(A(X\xe4\ +\x05d\x1a\x85\xea\xacG\xde\x1a\xfc\x85\x5c\xce\xc7\xe2\xbe\ +\xfb\xa9J\xd8\xdfVu\x82>\xe81m\x1fj\x1f\x9a\ +\x97Q\x15\xf3\x9bM\xb1k\xfcU\xd4\xd8\x08\xb1\xf0m\ +0\xbe\x07\xd0\xd9\xf0\x9c\x03\xc8Q\x81\xb9\x13_\x06\x9b\ +\xe1\x96v|\xcb\xd0o:M\xd4X\x846\xd1)\xa4\ +Y|\xc6\xaa5Tm\xc8$J\xa8\xb1~\xfd\xdc\xcb\ +5\x7fCq\xbftu\x04 \x13\xda}\x0d\x06}\x0a\ +\x0c\x12Z\xe0M\xe0\xc8 \x0bbD\x0a\x18I\xa3\x11\ +=Z\x13\xc4)\x22\xff2\xb8\xf2m\x14\xfa\x1f\xb1\xd2\ +\xf2\xeb@\xc5$J4\x0a\x96\x99h\x81\x8a\x14j\xd7\ +\xa5\x00\xbc\x02U\xa2\xfe\x0b\xb0.h\xf6I/\xc9\xf0\ +z\xe2\xeb\xf0\xf2#\x09\x17(\x7f\xd2\xfe\xae\x05\xa0\xae\ +\xb4D\xf0P/\xbf\x90;P\xef9^\xd0\xbe\x12u\ +\xd1c8-\x03s\x11\x90\x9c\xa1]\xfd9\xf4,B\ +\x89q\xa9?Kz\x7f\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -ellipse\x0d\x0a st\ -yle=\x22opacity:0.8\ -53;fill:#87decd;\ -fill-opacity:1;s\ -troke:none;strok\ -e-width:33.94197\ -845;stroke-linec\ -ap:round;stroke-\ -linejoin:bevel;s\ -troke-miterlimit\ -:4;stroke-dashar\ -ray:none;stroke-\ -dashoffset:0;str\ -oke-opacity:1;pa\ -int-order:normal\ -\x22\x0d\x0a id=\x22path\ -812-3\x22\x0d\x0a cx=\ -\x2230.305187\x22\x0d\x0a \ - cy=\x2219.820175\x22\ -\x0d\x0a rx=\x2212.25\ -7314\x22\x0d\x0a ry=\x22\ -12.652709\x22 />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a Bus\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07m\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#cccccc;f\ -ill-rule:evenodd\ -;stroke:none;str\ -oke-width:2.9734\ -8356;stroke-line\ -cap:butt;stroke-\ -linejoin:round;s\ -troke-miterlimit\ -:4;stroke-dashar\ -ray:none;stroke-\ -opacity:1\x22\x0d\x0a \ - d=\x22M 7.6054021,\ -38.160028 40.868\ -101,38.462416 23\ -.631976,9.130763\ -7 Z\x22\x0d\x0a id=\x22p\ -ath4489\x22\x0d\x0a i\ -nkscape:connecto\ -r-curvature=\x220\x22 \ -/>\x0d\x0a\x0d\x0a\ -\x00\x00\x06\xf1\ -\x00\ -\x00\x17\xf0x\xda\xe5X\xcbr\xe3\xc6\x15\xdd\xbb\xca\xff\ -\x80`63\x15\xa2\xd1\xef\x07M\x8d\xab\x92)W\xbc\ -\x98M\xe28\xcb\x14\x044IX$\xc0\x02 Q\xf2\ -\xd7\xfb4I\x80\x80E\xca\x8e2\x89\x16&\xa4\x12\xfb\ -\xde~\xdds\xcf}@\x8bo\x1f\xb7\x9b\xe8\xc17m\ -YW71#4\x8e|\x95\xd7EY\xadn\xe2\x7f\ -\xfe\xf0]b\xe3\xa8\xed\xb2\xaa\xc86u\xe5o\xe2\xaa\ -\x8e\xbf\xfd\xf8\xf5W\x8b?%I\xf4\xd7\xc6g\x9d/\ -\xa2}\xd9\xad\xa3\xef\xab\xbb6\xcfv>z\xbf\xee\xba\ -\xdd,\xcd\x03A\xca\x07\x9f\xd7\xdbm]\xb5G\ -L\xa6\xb3\x8b\xf3\xec\xdd}\xb39L)\xf2\xd4o\xfc\ -\xd6W]\x9b\xc2\x1di\xfc1,Xl}\x97\x15Y\ -\x97\x1dV\x1f\xa9\xd2\x8b\xecq\x0a&\xe1^\xf3\xbf\x7f\ -\xfa\xee4\x84 \xcf\xe7\xff\xaa\x9b\xbb~\x8cO\x98\x92\ -\xdd\xd6\xf7 R\xfc\xf1,_\x14\xf9\x1c\x88o\xb3\xee\ -c\xb9\xcdV>`\xf2g\x5cr\x91\x9e\x15\xd3\xd9\xdd\ -\xd3\xce\x8f\xf6=\xee\xdc\xf8\xa3\xf3.\x9aU\xe4\xdb2\ -\xacJ\xff\xd1\x95\x9b\xcd\xf7\xe1\x988J\xcf\x97MO\ -\xb7\xed\xadI\xc7\xe6,\xd2\xde\xdc\xe3\xb0\xf0\xcbv\x84\ -E\x18\xea~\xb7\xc5\xc0\xff\xc0\xc1\x22\xc4\xc9i\xea\x0e\ -g\xe6\xf5\xa6nn\xe2w\xcb\xc3'>in\xeb\xa6\ -\xf0M\xaf\xd3\x87\xcfTW\x83\xcb\xb8?\x82\xa4\x97\xd7\ -\xb7?\xf9\xbc\xeb\xea\x8do\xb2*\x18\xcdh\xafZ5\ -\x88\xde\x8b\x8a\xfb\xb2\xf0\x175C4\x86K\x0e\x87]\ -V\xb7\xeb\xac\xa8\xf771\x7f\xa6\xdd\x97\x154\xc9)\ -ypE\xd5\xb5)C>\xa1l\xb04@9`&\ -{i\xbb\xae\xf7\xc1\xa0\x9bx\x99mZ\xffl\xc3\x9f\ -\xebz\x1br\x87\x11VP\xf9\xfcN9r\x14\xa7\x96\ -pi\x9d|\xae\x85\x95\xd6\x12k\x9c\xe1W/\x8b\x1d\ -\xd4U%6\xe0\xe6\x9ar\x9b=\x96\xdb\xf2g_\x8c\ -\x1cw>\xfb\xbei\x10i\xc9&{\xf2\xcd8\xf9\x8e\ -\xe6\x04\xeb_\xc6\xfc\xc0\xaa\xb5\xcf\xef|s[gM\ -q\xc9k\x85o\xefzv\x15,<\x03[W#\xf0\ -W\x8c\xf2\x01\xa2\x0e\x1ciC\xf0!\xd6\xb3\xae)\x1f\ -\xdf\x0bb\xac\xd3\xce\xb1\x19\xc5s\x1e%\x96\x1a\x22\xb5\ -V|\x96(c\x09\x93\x8c\xba\x0fC^X\x0d\x81z\ -8\xc3\xba\xe1~\x97\x0e\xa1\x04n\x12F\x8b\xc3!\xe7\ -\x11\xe7\xe1@kgL\xa3Jp\xca\xe4\x87s\x0aY\ -\xec\xb2n=\xca\x07m\xf7\xb4\x01\xbd\x97\x88\xf4y\x85\ -\xe2\xf9M\xdb5\xf5\x9d\x9f\xbf\xe3yF\xad;\x0d\x8f\ -<\x9d3\xa2z\xc1\xa6\xac<\x00\x9b7\xf5}U\x8c\ -\x85?\xd5e5\x95\x16\x19\x5c\xd24\xd9\xd3\xf8\x80\xe4\ -\x149s\x16\x8fn\x03\xab?\xa3<\x12\x0d\x8227\ -\x93\x94PG\x95\xd6\x11\xbeI\xc5\xad\x98\x09G\x00\xa5\ -e,\x12\x8a\x08\xfc\x15|&,\x91\xe3]\x02x\xc1\ -L\xd4\xc5\xb1\xf8\x9cmj\x846\x12\x1c\x8aR\x9e\xe7\ -\x93\xdc\xf6\x7fA\x07\xe9\xd57\xafCg\x1b\x90\x10\x82\ -S\xa3F\xe8$\x92\x04\xc0\x82\xcb\x89\x94Av\x11\x0e\ -\xc9~\x1b\x8e3\x1a\x8btu\xca\xe8\xab\x0b\xfc\xb7\x9a\ -^\xa7?\xb8\xc8\xa8\x90T\xab\x9e\x9a\xfd\x90\x11\xcd\x04\ -2\x99\x9dI\xa2\x14\xa2\x82\x9b3\xfd'\xe0\x8f\xa1\x7f\ -'Lv\x9b\xdb\x1e\xfd1PG\xe8)q\xd2(\xb6\ -{\xfc\xb5\x03n\xef\xbb\xeee\xfc/ }\xc0\x99q\ -\xa2\x85\xc6\xa63\x06\xceY.\xb9\x88\xf2H\x11\xad\x99\ -vb\x96p\x04\xb2\xe4\xdaFH\x89\xdc(\x8b\x88F\ -v\x94\xa0\xa6\x13\x11\xd3D\xc0\x0fRCh\x083\x06\ -Q\x88\x89\x1003Co\xa4\xb8\x93LD\x06D\x0f\ -\x11+5\xe1NYs\x5c\xa8\xb0\xc3Af\xad\xd4J\ -E\x0c\xf8Q\xce8\x0b+\xc1x\xee\x5c\xc4\x14Q\xcc\ -P\xea\x0e\x17AD\x08\xa1#n\x89v\x14\xec\x80\x10\ -Y\x5cI\xa4\x9c0\xd3)G\x1d\x07\xf6J\x1b\xae\x83\ -e\xd69\xf8!\x04\x8e\xc2Zj\x22\xee0\x9f:g\ -C\x80\x19\xc3\xac1\x11\x03\x99,r\x08\xfcGU\xb8\ -\x074\x9415K\x84\x84\xc4\x18\xad\x22\xc1\xe1Ff\ -p\xa2\x10\x84)\xecq\xd8_Y\xe1\x5c\xf0\xbb\xd5\xd2\ -\xe0\xb6\x82h\xe9\xb8\x9e\x85kK\x81\xb3\xc3B&\x9d\ -\x123-\x91\xac\xa8\x92#\xca\xf6\x84u|\x14\xd6W\ -\xa27\xcf\xdb\xfc\xa5$\x89\xd6\x8cY\xea\x8c>0\xf1\ -9C\ -{\xfbc\xe8l\x84\x12\x93~`\x92\x0c\xdf\x84\xbdo\ -\x89\x13\x8aG\xe8\x0f\xd1m\x9a\xc3k\x1e3(\x19\xd1\ -C\x84f@\xe1\xab\xbe\x86S\xc2\xffhH}>\xb6\ -\x9a\x9a\xe3\x9d\x1b\xe1m\xd1\xc18\x15\xfd\x0d\xe1\x0f\xa4\ -\xa4\xa2\xfc*T\xf2\x8f\x07\x15R\x1f^\x124Z<\ -\x84\xa1\xa6\xda\xe2%\x05PiN\x00\xdaKP%\xe2\ -U`M\xdf1\x17\xe1\xbf\x99\xf8\xfb\x0b;\x08\xb9\xd7\ -\ -\x00\x00\x0a\xde\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g1\ -419\x22\x0d\x0a tra\ -nsform=\x22matrix(0\ -.61848879,0,0,0.\ -61848879,3.18349\ -97,17.72063)\x22>\x0d\x0a\ - \x0d\x0a \x0a \x0a \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x05a\ -\x00\ -\x00\x12.x\xda\xd5X\xdb\x8e\xdb6\x10}\x0f\x90\x7f\ - \xb4/\x09jQ\xbc\x8bT\xec\x0d\xd0\x06\x01\xfa\xda\ -\xa6\xe83W\xe2\xda\xca\xeabH\xda\xf5n\xbe>C\ -\xd9\x92\xecXN6h\x8b&B\x82\x983\xc3\xe1\xcc\ -\x99\x99C)\xcb\xb7\x8fe\x81\x1e\x5c\xd3\xe6u\xb5\x0a\ -(&\x01rUZgy\xb5^\x05\x7f}x\x1f\xea\ -\x00\xb5\x9d\xad2[\xd4\x95[\x05U\x1d\xbc\xbd~\xf9\ -b\xd9>\xac_\xbe@\x08\xed\xf2\xac\xdb\xac\x02\xa1\x83\ -~\xb9q\xf9z\xd3M\xeb\x87\xdc\xed~\xad\x1fW\x01\ -A\x04\x09\x8dF\xf9t\x22\xddK\xf2l\x15\x80S\xb1\ -_\xb5\x10\xc1\x16\xfe&Y\x9dV\xb6\x84\x833[b\ -\xd0\x1f\x8c\xab\xbb6\xb5[\x97\x1c\xfb\xc1\x0c\xbd\x22\x96\ -\x90\xf4Vrn\x16\x88\x11\xc6B\x02\x7f\xc4\xeb\xfd.\ -H\xb5j\x93a\xef*\xd8t\xdd6\x89\xa2\xddn\x87\ -\x07!\xae\x9bu\xe4\x0fl\xb76um4\xc8\x8f\x1d\ -\x0c\xb1\x8d\x0e\x06\x01n\xeb\xfb&u\xb7\xe0\xc3\xe1\xca\ -u\xd1\xbb\x0f\xefFeHp\xd6eG~N\xce\xdf\ -\xf1\xfedF\x08\x89\xc6,\x0f\xc7=\xac\x9fk\xdad\ -\xb7s\xa6\xd4\x18\x13\x11\x16\x01\x1c`\x11\xb6OUg\ -\x1f\xc3\xaa\xbd:\xde\x9b\xa6\xe3\xd6\xb4q\xb6\xcb\x1f\x5c\ -Z\x97e]\xb5{LN\xad\xb3\xc9z{\xdf\x14\xbd\ -I\x96F\xaep\xa5\xab\xba6\x82rD\xc1\xb5\xdf\xb0\ -,]g3\xdb\xd9~\xf7\xbe\xce\x83\x88\x92\xbd\x0dX\ -A`\xc9\x1f\xef\xde\x1f\x96 H\xd3\xe4\xef\xba\xb9\x1b\ -\xd6\xf0x\x13{S\xdfC{\x05\xd7\x93|\x99\xa5\x09\ -@^\xda\xee:/\xed\xdayP~\x81(\x97\xd1\xa4\ -8\xb5\xee\x9e\xb6\xee\xc8\xef\xdes\xe3\xf6\xd5\x9b\xcd+\ -K\xcb\xdc\xef\x8a\xfe\xec\xf2\xa2\xf8\xdd\x1f\x13\xa0h\x0a\ -6:D;d\x13\x1d\xa7\xb3\x8c\x86|\xf7\xcb\xcc\xdd\ -\xb6G`\xf8\xa5\x1e\xbc-\xc7\xc6\xf7M\x98\xf9\xf19\ -\x98n\xe1\xcc\xb4.\xeaf\x15\x5c\xdd\xf6Op\xd0\xdc\ -\xd4M\xe6\x9aA\xa7\xfa\xe7TWC3C\xfc0%\ -\x83\xbc\xbe\xf9\xe8\xd2\xae\xab\x0b\xd7\xd8\xca'\x0d\xa58\ -\xa8\xd6\x0d\x8c\xf4\xac\xe2>\xcf\xdc\xacf\x1cG\x1f\xe4\ -x\xd8\xbc\xba\xdd\xd8\xac\xde\xad\x02v\xa6\xdd\xe5\x15h\ -\xc2\x03\xa30I\xe4%\x93\x81e(\xa1c\xa6\x1e\xca\ -\x11\xb3Q\xdan\xea\x9dOh\x15\xdc\xda\xa2ug\x0e\ -?\xd5u\xb9\x0a4\x8ecE\x04\x8d\xcf\xf4)P\x97\ -\xc1D\xeaX\xf2\x19-d\xc9\x146Bs\xa5/\x05\ -\x0b\x1e\xe4\xc5L\xbc\x83\xf8\x92\xb2\xb4\x8fy\x99\x7fr\ -\xd9Q\xe1\xa6\xb3\xef\x9b\x06F-,\xec\x93k\x8e\xa9\ -\xf3\x0b\xbc\xd3\x8dK\xef\x5csS\xdb&\xf35\x19\x1a\ -m}\x84\xdb\x9a\x13c\xc6\x18;\xa8o\xeb\x07g\x15\ -\xf4?\x0b\xdb\xb9W0\xd0\x8c2\xa9\xf9\xebid\xa1\ -\x83\xc61j\xbb\xa7\x02z\xe2\x16\xc6#\xb9\x22\xc4\xda\ -L\xbc\xf1\x8b\xf0\xd0\x0e\x09}\xd3vM}\xe7F\xed\ -~\xb9/w\xc2\xf0((\xf2\xcaA\xf4IS\xdfW\ -\xd9\xb1\xf0c\x9dW\xa7R\x18J\xd7\x14\x80Q\x97\x8c\ -\xdb3\x0b\x1d\xd64\xf6)\xa9\xe0\xc2\x1a\xa4S\x14[\ -\x9b\x03j\xfdX$\xa5m\x00\x9a\x16\xed\x8d\x90\x8f7\ -\x183\xf2\xc0\xf8\x149\xd1\x94O\xe2C{r\x83c\ -\xa3\xa5a\x93f\xe8J\x05\x1a\x11k\x12O*\xe8\x01\ -\x06R\x80\x90\xd2I\x0a\xc5\xe7\x0cs\xc35\x9d\xd8d\ -\xb9\xb5\xddf\x16\xd6\xa3|\x92+\xde?\xff\x13\x88S\ -\x0a\x9e\xcc\x11%Xh\xc6\x0c_p\x82\xa9\x22\x8a\xc5\ -H\xc0\x0fm\x18_\x84Tc\xc59\x91\x061\x89c\ -\xa5\x18]\x80\x15\xe7Z\xc4(\xe4\x98\x12m$_\x80\ -\x95\x94Z\x12vZ\x00\x0f\x86>\x06y\xe2\xc7\x1a\xc8\ -\x08(\x19\xee\xd1\x14\x9e\xe7\x00\xf8\x8d\xbe\xfc\x91 \x1d\ -\xba\x85-\x86\x0e\xa1(EdA\x10\xc7RH\x90\x87\ -\x0c\x03%1nP\x8c\x95\x01\x14\xa9\xf62\xc69\xd5\ -\x02)L\x88\x14B\x01\xd4Jq\x15k\xa41\xd7L\ -k\xb5`X+!\xb4A\x14\x92\x83.\x05_\xf0\xc3\ -\x10.\x15T\xcd\xf3\xa0\xec+D\x89d\x10\x87\x047\ -\xfe8\x82\xa1\xdb\xa5\xe2\x88R,\xc03W\xfe8\xaa\ -\x819\x0d\xeacQ\xc6x3\x0e\x91s\x01\xe7Q\xcd\ -\xa8\xa2\x0b\x8a\x8d\xaf\xbe:\x97\xcc\x95Z|\xb3\xd4\xed\ -q\xad/s\xd0\xa1\x9a\xb3\xb5>\x147\x86\xe4\x0cQ\ -\xdfS\xe0\xeff\x0f\xa69;#\x0f\x81\x85\x92\xb11\ -\xfa\x9c<\x04&F\x09xs=!\x0f\x98\x0ej\xb8\ -\xd4\xe2\x84<\xa8\xc0\x9c\x1aB\xd9\xcf\x06H\xf8/@\ -\xc2 yhHv\x0eI,5\xf4\xd6\xcf\x06\x89\xfa\ -\xe7\x90\x00\xfb\x02\xbb\x92\x98\x7f\x09\x89\xa0\x14\xde`.\ -Q\xe40|\x0c\x88\xdb\x842\xf8*w~\xed\x12'\ -8\xe6\x5cI\xb9}|\x1e\x5c=M~\xf3r\xf1t\ -\x03\xdf:j\xc1!\x11Ic\xa2\xfd\xb5\x01\xa4\x04\xbf\ -b *B\xa9\x10#9R\xa2\x04\x171\x5c;\x12\ -\x0b.c\xc5\xfc\xf5\xa4ch\x09\xed\xa5\x0ah\xd0\x80\ -\x18\x15\xe8\xe0Dy\xd2\xda;){'\xbf!\x80L\ -\x0a\xf0c\x16\x14^\xfe\xa84B\xcd\xc61#{&\ -\xc8?\x1e\xcc1\x8e\xe1\xe2P\xdc\xa7\x22\xe1\xe3\x92\xf3\ -\x09\xe6\x0b(\xcf\x82\xfc\x5c\x8c\x19l`p\x0d\xa9\x1e\ -c-XLg\x83\x98\x91=\x1b\xe3P\xff`(3\ -\x0e\x97/\xbc I\x9f\x8cRF\xc5\xff1\xc8\xf0q\ -\x123a\xb4\x07\x19^\x0d\x0c4\xedL\x0c\xe7\xa2\xf1\ -3!Z\xfb\xff\xed\xf1\xdf\xd4\xf0\xefg\xe6s\xffy\ -\ -\x00\x00\x09\xfa\ +h882\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x11\xc5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \ -\x0d\x0a \x0a \ +\x0a \ +\x0a \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0e/\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0a \ + \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x12\ +city:1\x22\x0a d\ +=\x22m 2.7912112,32\ +.393811 c 0,0 3.\ +54512,-2.537239 \ +7.6910818,-2.233\ +184 6.005446,0.6\ +63678 8.382886,2\ +.864489 12.48071\ +2,2.490356 4.760\ +451,0.11052 2.55\ +4412,-0.859563 1\ +1.444636,-2.1877\ +69 2.537699,-0.3\ +79134 8.182161,1\ +.930596 8.182161\ +,1.930596\x22\x0a \ + id=\x22path894\x22\x0a \ + sodipodi:n\ +odetypes=\x22cccsc\x22\ + />\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09\xb4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \ -\x0d\x0a \x0a\ + \x0a \ + \x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x0f\x93\ +opacity:1\x22\x0a \ +d=\x22M 15.755866,1\ +2.592421 15.5524\ +76,34.965303 35.\ +28129,23.372083 \ +Z\x22\x0a id=\x22path\ +4489-3\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22 />\ +\x0a \x0a\x0a\ +\x00\x00\x0d\xd4\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -61\x22 />\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x060\ -\x00\ -\x00\x16\x83x\xda\xedX\xddo\xdb6\x10\x7f\x1f\xd0\xff\ -AP^\x1a\xcc\xa2\xf8)\x91\xaa\xddaCQt\xc0\ -\xf6\xb2u\x9f/\x83\x221\x8e\x16Y4(:N\xfa\ -\xd7\xefh[\xb2l\xcb\x9d\x87\xac(0L\x82\x13\xf1\ -\xeex\xbc\xfb\xdd\x07EM\xbfz\x5c\xd4\xc1\x83\xb6m\ -e\x9aYH\x10\x0e\x03\xdd\x14\xa6\xac\x9a\xf9,\xfc\xe9\ -\xfd\xdbH\x86A\xeb\xf2\xa6\xcck\xd3\xe8Y\xd8\x98\xf0\ -\xab\xd7/\xbe\x98\xb6\x0f\xf3\x17_\x04A\xb0\xaeJw\ -7\x0b\xb9\x0c7\xc3;]\xcd\xef\xdc~\xfcP\xe9\xf5\ -7\xe6q\x16\xe2\x00\x07\x5c\x06\x1d\xbd*g!\xa8\xa0\ -;\xa9\xfd\xfad\xc7o\xee\xdb\x22_\xeal\xc8\x0a^\ -\x16\x89\xd4\x94\x16L\xa6\x93\x80bJ\x22,\x22\xca\xae\ -\xb7sZ\xb0z\x09\xbf\xac4E\x93/\xc0\xd8\xaaY\ -\xae\x5c\xfbG\xde\xe4\xf5S[\xb5\x08V\xdc\x8a\x82\xd3\ -M\x9bu\x8b\xcc\xc2;\xe7\x96Y\x1c\xaf\xd7k\xd4\x11\ -\x91\xb1\xf3\xd8\xabi\x97y\xa1\xdb\xb8\xa3\x0f\x15t+\ -\xf6\x0a:\x02j\xcd\xca\x16\xfa\x16th\xd4h\x17\xbf\ -y\xff\xa6gF\x18\x95\xae\x1c\xe89X\x7f\xcd6+\ -S\x8cq|d/\x0c/\x15\xb5\xe5\xed\x98(QJ\ -\xc5\x98\xc6\x94F \x11\xb5O\x8d\xcb\x1f\xa3\xa6\xbd\x1a\ -\xce-\x8a~jau\xee\xaa\x07]\x98\xc5\xc24\xed\ -\x16\x93C\xe9r/\xbd\x5c\xd9z#R\x16\xb1\xae\xf5\ -B7\xae\x8d!nq\xf8\xdaO\x98.\xb4\xcb\xcb\xdc\ -\xe5\x9b\xd9\xdb\x1c\xe8H\x84ne@\x0a\x0c\xcb~x\ -\xf3v7\x04BQd\xbf\x18{\xdf\x8d\xe1\xf2\x22\xf9\ -\x8dYA\xa2\x85\xaf\xf7\xf4iYd\x00\xf9\x22w\xaf\ -\xabE>\xd7\x1e\x94/\xc1\xcai\xbcg\x1cJ\xbb\xa7\ -\xa5\x1e\xe8\xddj\xb6z\x1b\xbdQ\xbf\xcabQ\xf9Y\ -\xf1\x8f\xae\xaa\xebo\xfd2a\x10\x1f\xab\xad\x5c\xad\x07\ -\xd4i\xbc\xf3\xa1\xf31\x1e:9\x8d;\x14\xb6\xc3R\ -\xdf\xb6\x03\x88\xfc\x90\xe0\x1e\x9eEn\xef\xb5\xed\xd7\xeb\ -\x0b\xa5u\xa6\xb8\xf7\xf2_[k\xd6\xe4;(Z\xeb\ -\xc2^\xce\xd8\x0a\xc21\x0b\xf3\x953{\xaa\xd5\xb7\xbf\ -AmB\xd5\x0fI\xbf\x1e\x91\xcekm\xddS\x0d8\ -\x19\xa8\xd2\xdb\xda\xac\xb3\x87\xaa\xadnj\x1d\x9e\x9aW\ -\xb5\x1b\x03g\xa1\xb3+\xbd\x0f\xdat\x99\xbb\xbbA\x04\ -\xfcR\x9e\xc4\x85\x92\xe1\x80\x0e\xe4\xef\x030j\x02\xbf\ -\xe0\xbb@\xc0S$6\x8f\x11\xa1H\x0c\xc8[j'\ -\xfa!\x18j\xd9\x99{\x0b\x91\x8b\xec\xaa\xd6\x99~\xd0\ -\x8d)\xcbW\xad\xb3\xe6^gWxs\xed\x86\xd1\xa6\ -\xb7e\xd0\x13\x97n\xa8\xc5\xd9\xbci}:A\x0b+\ -\xf2Z\xbf\xc4H^o\xa9u\xee\xf4\xcb\xadA\xd7\xfb\ -\xb4\x80\x00o\x82\xb6\x8b\xb6\x0f\xe8\xf6\xb1\xefX\xbe\xcf\ -\x94\xbeW\xee\x96YBZ\x15\xa66v\x16^\xddn\ -\xae\xce\x80\x1bcKm;^\xb2\xb9\x0ey\x06\xfa\x15\ -\xa4(t\xcc\x8enn\xfe\xd4\x85s\xa6\xd6`\xa3\xcf\ -k\xd2\x07wn\xc1\xc7Q\xc6\xaa*\xf5(\xa7\x0f\xa9\ -7\xb2_l\x9c\xdd\xde\xe5\xa5Y\xcfBz\xc2]W\ -\x0dp\xa2\xdd\xf6A\xa4\x90\xe7D\xba-\x85`\x91\x86\ -\x83\xba\xe81\xebg\xb6wf\xed\x1d\x82\x08\xe7u\xab\ -O\x14~0\x06bF\x18\x12\x14K\xc6N\xf8\x85\xdf\ -\xa7\x90\x14X0\xc5\xc8)\x1b\xdc\xa4\x90T\x12\x13\xca\ -\xcfY\x0b*\xc4Y&(\x88\xce\xfa\xb9\xc8\x1f\xabE\ -\xf5A\x97\x83\xc8\xed\xd7^Y\x0b\xf5\x1b\xd5\xf9\x93\x86\ -\xc0\xcf\x15&\xa3\x80\x17w\xba\x80L\xbb1\xb9-}\ -Pv98\x9d\x0f\x80\x9bs\x22\xf6\xfdd~P\xe6\ -s.8\xbf\xa4<\x19>-\xcf\x09\x0e\xde\xf9M\xfe\ -g\xff\xe7\x1dl\xf8\xbf\x0fe\xf6\xbe\x98\xa6\x81|4\ -6\x02\xaf\x1er\xb7\xb2z\x90?Gu\x9a5\xf0\xda\ -1\xec\xb0\x03\x83w&\x0f\xb08*Oh\xf8\xb6z\ -|\x09\x15\x9c2E\x15\x9f\x80\x89\x93\xfd(Q\x08\xf6\ -CA\xc4\x84\xa6\x88H\x0aA\xbf>\xd8O\x8e\xbc\xff\ -G>\x0c\xc0\x22)9\xe4\xf8\x8d/\x88\x04C)\x96\ -<\x91\x13\x0e\x0f)\x11\x89\x08\x08F)\xc30\x9aD\ -\x12q&)Q\xc9\xe1\xdc!6W\xaa\xf0\xf7\xab\xf3\ -\x0d-\xc7\xfe>lh\x14\xa5\x8a\xf1T\xa5\xb4\xa3\xd7\ -\x158\x93/\xb3\x9b\x95sC\xda\x9f\xa6j2\xd8\xef\ -\xb4\xed\xa8\xbbz\xcfHG\xd8pkH\x5c\x97\xf1\x8e\ -V\xe6P\xf7\xd6\xe6O\x9b\xe0m\xad\xeb'\x1e\xed\x96\ -\xff\x1a\xc4l\x14b\x8e(\xe7\x22I&\x11\xe1H\xa5\ -\x8c+\x11(\xc4\x84$XM6\x0fXI\xfa?\xc2\ -\x97 ,N\x10\xfe>\x88\x18A2\xc54\x81\x84%\ -)4VNq\x1aD\x9cB\x9bL\x13\x8f\xbb@\x09\ -\x95TJ\xf1\xa9@N\xe4?\x07\xf9\x02LO\xc2q\ -\x04\xf2\xa17\xfdFn`\xd7\x84\xd7Cx\xa7/\x8a\ -\xbf\x0b\xc4\x99Y\xffJ\xb0\xd2\xb1r\x80\xb0\xa4\x92&\ -\x8cO\x22\x868N \xf9y\x00\xaf+\xa9`$M\ -&\x9b\xe6C\xd5\x7f\xba\x1at]W\xcb\xf6\xe8\xa5\x1f\ -\xf6e\x86\xb0\x00\x0b\x93#\xdc\xec\xa3g\x11\x01'N\ -z\x94\xc1\xfeu A\x94\x00\x93\x1e\xa5\x83\x7f\x91\x88\ -\x84@\x8cR\xcc\xd2s1bI\x94Dl\x14\xed\xc3\ -\xac\xcb\xaeR\xe1\xef#\xcf\xce\x87a\x98\xc0}\x0c$\ -Q\x94\x09v\x82\xb75\xab\xa6|Fa\x5c\x080\x85\ -\xf6\xcb%a\xa3\x00\xe3\x04\x922IN\x01N\x11W\ -,\xa1\x22\x19\x01\x98*\x04\xfa\x12F>\x020\xb9\x08\ -\xde\x1b\xea\xefg\xc0\xcb\x10#R\x11J\xd3\xcf\x05/\ -lt)\xbc\xca0~\x0a/G\x9c\x10\xa2\xc8H\xfe\ -\xfa\x9eM\x13A\x85\x18\xc1\x97Q\x94\xf0D\xa4\xf4c\ -\x09|\x19\xbe\xda\xdf\xcf\xc2W*\xac\x12\xc0\xf8s\xe1\ -\x0b\xfdR\xc2\xa1\x81\xb2\xb1\xf4\x15\x12:\xdc(\xbc\x1c\ -I\x9f\xbej\xac?0\xa8\x08\x0c\xfd\xe3<\xbc\x17\x81\ -[*\x7f?\x0b\x5c.\x15T_\x92~>p%\x06\ -\x04\x99\x1c\x03WQA0\x19\x01\x17fI!\xa4\x1a\ -\xeb\x0d\x1c\x9c\x82s\x1c\xffX\xee\xe2\x8b\xe0\x95\xb9\xbf\ -\x9f\xd9\x1b\x98\x92R\xd1O\x0a\xef4\x9e\xf7\x9f\x1b\xe6\ -\xa7\x87\xbb\xc1\xa9h\xf0\xa5\x02a\x9c\xa4T\xb2ID\ -\x05\xa0\x99R\xa5\xae\xc3\xa3\x03!\x81\x03\xe1\xfeS\xc6\ -\xf1q1\x19\xb6\x95\xd1E0\x12p^\x86\x03W\xff\ -Edk\xe0\xd4\x7f\x9e\x83\xff\x7f\x01`\x0eI\x0b\ -\x00\x00\x09~\ -\x00\ -\x00G\x98x\xda\xed\x5c[\x8f\xdb6\x16~/\xd0\xff\ - (/\x09\xd6\xa2\xc9\xc3\xbb3N\x81EQt\x1f\ -\xf6e\xb7\xbb\x0b\xecK\xa1H\xb2G\x8dm\x19\x92\xe6\ -\x96_\xbf\x87\x92eK\xb64Pg\x92f\xba\xa3I\ -/\xe2\xe1E\xe4w\xbe\xc3\x8f\x87\x9a\xf6\xea\x87\xfb\xed\ -\xc6\xbbM\xf2\x22\xcdvK\x9f\x11\xea{\xc9.\xca\xe2\ -t\xb7^\xfa\xff\xfa\xe5\xa7\xc0\xf8^Q\x86\xbb8\xdc\ -d\xbbd\xe9\xef2\xff\x87\x0f\xdf\x7fwU\xdc\xae\xbf\ -\xff\xce\xf3<\xec\xbe+\x16q\xb4\xf4\xaf\xcbr\xbf\x98\ -\xcf\xf77\xf9\x86d\xf9z\x1eG\xf3d\x93l\x93]\ -Y\xcc\x19as\xbf\xd5>:\xb5\x8f\xf2$,\xd3\xdb\ -$\xca\xb6\xdblWT]w\xc5\x9bv\xeb<^\x1d\ -\x9b\xdf\xdd\xdd\x91;^\xb5b\xd6\xda9\x859@\x80\ --\x82\xe2aW\x86\xf7\xc1Y_\x9cg__\xa0\x94\ -\xce\xb1\xae\xd5td\xb3E\x81\xe0\xec\xf1\xefc\xfb\xc6\ -@\x8a\xec&\x8f\x92\x15vL\xc8.)\xe7?\xfe\xf2\ -\xe3\xb12\xa0$.\xe3\xf68\xe9\xeeS\x11\x85\xfb\xa4\ -\xf3\xde\xc6X\xc3\x10n\x93b\x1fFI1o\xec\xf5\ -\x00wi\x5c^/}\xc9\x88\x9b e\xb5\xf5:I\ -\xd7\xd7\xe5\x85\xf96M\xee\xfe\x9a\xdd/}\xeaQO\ -\x18\xfc\xab\xb6\xa7\xf1\xd2\xc7\xa5\xc1\xa1\xd5\x89\x02\x87~\ -\xcd+\x17\xc7*J,\x10\xe9\xbd\x05\xaah\x12\xb1\x95\ -]\xcd<\xa0@\x03*\x02j\xde\xd5\xdd\x9a\x05/\xe2\ -,r\x0b\xc0\x97\x94Yt\x1d\x16e\x1a\xfd\xba_\x11\ -\x87\xe6\x07\xd7\xf2j\x9b\x94a\x1c\x96a\xd5\xad\x9eO\ -cbP\xb7\xc1V\xe8\xda\xc5?~\xfc\xe9PDC\ -\x14-\xfe\x93\xe5\x9f\x9a2\xfe\xb8&\xe1\xc7\xec\x06\xd7\ -\xee\x7f8\xd9\xaf\xe2h\x81\xce\xd8\x86\xe5\x87t\x1b\xae\ -\x13\xe7\xc8\xbf \xf6W\xf3SE\xb7u\xf9\xb0OZ\ -\xe3\xd6#\xe7I\xed\xd7^\x86\xc7\xd16u\xbd\xe6\xff\ -,\xd3\xcd\xe6o\xee5\xbe7?\x1f6-7I\xcb\ -z5?\xac\xa1Y\xe3\xbc\xbd\xc8\xaby\x83B]\x8c\ -\x93U\xd1\x82\xc8\x15\x19=\xc2s\xf4\xd2\x1e\xbd\xb4O\ -\x22\x17J\xc7\xb7\x1f}\xe1\xa6\xb8\xf4\xbbm\xf9\x81\x8d\ -^\xc7\xd7\xfb_\x91)\x92\x13\x05\x9a[\xee-<\x86\ -^\xe7\x1a\xb4v\xcf\xfd=\x1e\x1c\xb7\x16\x9eT\x94\x08\ -F\x85\xebE\xfb[~^\xfa\x82\x13\xa1\x14\xa3n<\ -0DK\xae@\x0c\x8c}\x98g\x90\xe5\xe9:E\x02\ -*N\xa4\x91\xc0\x0c\xb6W\xc4\x08\xaa\x8c<\xeb\x8a\x08\ -\xb5\x90\xc0\x89\xb3\xc6\x1f\xe8v\x84\xae~<\x02\xe3\x18\ -\x1a\xbb\x089\x8c\xb0G\x07F\xd9&\xcb\x97\xfe\x9bU\ -\xf5\xd3\x8c\xfd1\xcb\xe3$o\xeaT\xf5\xd3\xad\xcb0\ -T\x91\x0c\x18B\x8d=\xfb\xf8\x1b\xce\xa3\xcc6I\x1e\ -\xee\x1c\x83\xd8\x11\x97u\x8e1\xdc[q\x93\xc6Io\ -\xcd\x09\x16\x9c\xe4\xf1e\xfd\xd5\xc5u\x18gwK\x1f\ -.j\xef\xd2\x1d\xd6\x04\x87-\x84\x99f;\xb8l\xd2\ -\xec'\x8c\xb2S\x1b\xc4\xf7\x88\xd9\xd1Z\x5cgwn\ -AK\x7f\x15n\x8a\xe4b\xc0\xcfY\xb6]\xfa\x86\xa0\ -\xeb\x98\xb1\x17\xd5\x11R\x8e[t-H\xc3/kq\ -\x91\x9ah\xaa)cbh\xae8\x82\x1e\x5c+\x0e\x00\ -r\xa8r\x1b\xde\xa7\xdb\xf4s\x12\xb7\xfcvz\xf7M\ -\x9e\xa3\x80\x05\x9b\xf0!\xc9\x0f\xdbeC\xa7}X^\ -\x1f\xdac\xdf\xbf{tF\xbd\x9f\xdd\x06\xfbo\xf7\x8f\ -\x9fq\xb3\xfdo\x1b5\xd7\xfcr\xfaQ\xb6\xdb!E\ -\xb2<\xc0W\xdd\x86\xe5M\x9e\xb4\x5cZ\x94\x0f\x1b,\ -\xafpkY\xecP~\x8f\xef^\xb7\x06^\x0b&\xcf\ -{\x1c\xd8\xb1\xc0\x80\x14\xc6i\x01\xbc\xaf\x06yCi\ -,\xc2\xf0}Q\xe6\xd9\xa7d\xf1\x06>\xba?\x87b\ -\xd0\xf4:\xe2P\x22\x07\x0b\xb7S\xe2\xce\x1c\x96yz\ -\xff\x96\xa2#0b\xb563\xea\xfe\x10\x0dVq*\ -\xd8,P@\x841\x8a\xeaY\xc0$\xe1\x86\xe1\xe3\xbb\ -\xe3>\xb5>\x86hk\xd0\xeaq\x13\x96\xc9[\ -\x19\xadgga$\xdbvw\xfa\xf7\xf0\x14 \xf0\x14\ -@a\x06\x8c\xa0\xcaH.=t\x10\x03\x83\x02\x83\x0f\ -\x00\xaa2\x08\x0arVy\x8ey\x91WU0Q\x19\ -\xb8\xa9\xea-\xb0\xaah\xab\xa2\xa2L\xcd\xeaqt5\ -\x9e\x01SUK^\x15\x95\xd2u\xd1z\xee-\x98X\ -VE|\x97+r-a\xa6\x08@\x12\x88\xca\xa0\x80\ -A\xd5@\xd4e\x0bU{&\xa4\xb7\xa9\x07\xe0\x87\xe9\ -\x09~9\xfd\xcf\xedU_\xe8\xb5\x01\xde\xa3\xd7\xcfe\ -8\x9e\x9cp\x8d\xe2[R\xbc\x9d\xff|\x11\xf6\xe8K\ -\xf6P\x22\x85\x96V;\xf6`\x86\xc1%8vT\xd0\ -S]y\x9e\xa3\x97\xaa\xb2\xc2\xe3Fe\x90Z\xd7\x06\ -\xd0\x15W\x90Au\x07&*&AM\x0dc]\xc9\ -(Q\xb9\x1a@[\xf45>i\xab*.\x80D\xe6\ -\xb9~\x9aQ;\xc3\x1c\xc7\x91%\xaa,\x82\xe1i\x09\ -\xd0\x09\x0d\x7f\xf0\x5cP\x13\x8ckWfHSY\xd3\ -\xd5\xd4\x0d\x98\x12\x1d\x82\x815\xaa\xa1{\xa7\x8c\x84\x9d\ -\xe8t\x95#g.A\x18\xb1\xb3\xd5\x0br\x5c\xa1\xc8\ -'\xaa\x1f]Pk\xea\xe2\xf1\x99\x9f\x90\xdd\x87)f\ -\x0fUv\xb8\xd8\x86\xf9'\xccL=7/\xafn\xd9\ -v\x9dKR\x04\x9e|\xf1\xd8\xd8a6f6\x00.\ -\xafV\xda\xb6\xedMv\x06\x8es\x8aA\xbb\xee\x90\xdc\ -a\x14h<\xffKs\x1eA\x0e0\xae\xb9\xee\xa0\x98\ -l6\xe9\xbeh\xdf\x7f\xe4.\x97%\x82kEMg\ -\xfc\xfc\xbe\xaa\xc0\xf3\xb8\xd2\x9d\x8a\xa8J\xb5\x08(\xa4\ -\x5cgw\x8f\xeaeh-\xb8\xe4}\x01-d\xd7~\ -\xc6d\xf6\xfe\xcf\xe0\xce\xaf\x02\xa7 \x96Q\xce\xf59\ -\x9c\x82\x13k\x19WCh\x06\x13\x9e\x83x*u\x89\ -'\xc7M[\xe2^)\x07\x01U0!\xda\x83(\xc7\ -m\x8b*.YO\xc0+%\x985\xc3\x14U\x13\xa2\ -\xfd\x88\xe2a])\xd6\x13\xf3(\x10x>\x1dF4\ -\xd0\x13\xa4\x03\x90*wW\xd5\x13\xf6x\x1ck]\x83\ -\xf6\x84} 'L{0\x15\x92\xe0\x11\x1b\xbb<%\ -\xf0'y\x1a\xc2\x14\xcfN\x96\x99\xfe\xd0\x07\xca\x1f\x0b\ -\xfd\x89\xa8\xc3\xa0Z\x80\xa7\xc5~\xf0\x7f$RW\xf3\ -\xf5\xe1c\xd8z\xe0K\xc2)./o\xff\x19\x91\x06\ -\x85\x9eCu\xf9\xcf\x882R2\x83\xf92(b0\ -\x91\xd6\xee\xd1\x10a9(\xf9\xc5\xef\xfe\xd1\x0f\xc3w\ -[\xac\xed\xf5\xbe\xef\x16\x86[\xab\x04\x15\x87\xef\x16\xc7\ -\xa2$\x8cS%\x84{R\x063qx7|\xcfu\ -\xfan\x98\xc5\x89\xfb\xa8Z,\xfd\xa8\x88\xfc\xe7]f\ -\xe0\xe2\xe8\xc5e\x06S\x04Q\xd1V\xcd4\xce\xd6\x80\ -\xe6\xee\xaa\x8bQ\x22\x00\x7f\xd8\x8cz\x8c\x11\x0e\x80\xec\ -\x9d\x05\xd8\x981L\xf4\x8c\xc70\xfb\xc2~\xc2\xd6F\ -@\x16\x0b\xcfe\x0a\xee\x22\xa3\xba\xd7P\xcc\x95\x15\xda\ -\xe5\xcc\xbd\x84K\x09\xd8O\x10j)Zg\xc7n\xfe\ -PN\x9d0\x96\xc8\xdfq\x8bph\x7fv\x8b0\xf2\ -\xc2\xb5\x0a\x87g\xc4F{\x15\xbf\x83~\x8f\x5cW\x9d\ -\x7f\x95{d\xe5\x1f53\xc2\x9e\xaf\x5cX\xca(|\ -\x83\xf5W\xdf)9\x10N\xa5c\x088^Pe\x98\ -\xb3\x01p|\x9a\x09L\x8f\xac\x02=\xc0S\xf3D\xaa\ -\xf7\x06N\xf4UQ\x968[k\xbe\x09\xc8[\x17\x86\ -Lq\xd0z\xe6\xb4\x07\xa3T\x81\x87j\xa3-\xd0\xfa\ -\xea\xaf\x9b-\xb5\x11\xeej\xf8\x17\xc4\xf8\xf1\xbd\x9fQ\ -\xa1\x06\xbf\x22+\xc9\x8f\xbb\xf9\xb9(\x0f\x08\xe2\xc1)\ -g\x9b\xc4\xc1em\x10\x1b\x7fqf\xb5\x06f\xbe\xdd\ -%\xdc\xc5\x09\xb5\x9dKU\xe7Z\x81\xa1\xa3\x15oE\ -Au\xbc\xc0\x98\x01C\xa1e>\x1cG\xa8j_\x83\ -\x1d\x0e/\xda\xe0\xd1\xb8\xfd1\xfak!\x0a\x8c3\xc3\ -\x84|Q\x88\xb6\xe9]aJ\xb8\x90 \xda)\xed#\ -\x98V\xbf\x8ct\x06)\xda\x8cT\x0c0\xb7{\xad\x98\ -\xf2.\xa6\xb8\xe7\x18fh\xfb\xbe\xea\xa9\x98\xda?\x02\ -SL\x165\x8a\xcf\x0b\xe3\xa9\xea\x82\xca0\x01cJ\ -1;2\xf8\x19\xc2\xa0/\xa2\x1f8P&\xcd\xabE\ -\x15\xba\xa0\xa2&ZI1\xfc\xff$\xa0\xbeH\x91\x0a\ -\xd8\x85L!J\xd4\xa8.\xa8\x5c\x11-\xdb\x1f\x91&\ -\x91\x1a\x0e\xfes\xa2\xba\x03\xb2PV\xb3\x11\x98N\x22\ -\xd5/R\xe7\xc7)\x94)DTR\xf5\x5cL_\xb3\ -H\x05\xf4B\xa6\x94UT\x8d\x0b\xfeI\xa4zE*\ -\xb0\x172e\xc0\xaa\xf6oL\xbe`P_\xa6H\xa9\ -Q\x22\x05\x92H\xaa-\x85I\xa6F\xc9\x14\x1d%S\ -\x03\xa8NB5 Tj\x94P=\x05\xd5W-U\ -0J\xaa\x06\xb7\x80I\xac\xfa\xc5J\x8d\x12\xab\x17\x0b\ -\xeb\xcb\x94+3J\xae\x98 \x80'\x00\xca&\xb9\x1a\ -%Wz\x94\x5c\x0d\xa0:\xc9\xd5\x80\x5c\xd9Qr\xf5\ -\x14T_\xb7\x5c\x8dK\xad\x06\xf7\x80I\xaf\xfa\xf5\x0a\ -F\xe9\xd5\x8b\x85\xf5e\xea\x95\xb4\xe3.\x01\xdd\x7fE\ -\x80\xa0N\xf9\xd5\xc8k\xc0\x91\xf7\x80\xfd\xb0N\x8a5\ -\xa0Xf\xdcM\xe0\x13P}\xd5\x8ae\xc7\xdd\x05\x0e\ -\xed\x01\x93`\xf5\x0b\x96\x1ew\x1b\xf8,X\xeb\xdf\xca\ -\xb8r\xff\x93\x12\xfc\xf7\xff\x002\xe0|8\ -\x00\x00\x0aP\ +none;fill-rule:e\ +venodd;stroke:#7\ +f2aff;stroke-wid\ +th:1.55563576;st\ +roke-linecap:rou\ +nd;stroke-linejo\ +in:bevel;stroke-\ +miterlimit:4;str\ +oke-dasharray:no\ +ne;stroke-opacit\ +y:1;paint-order:\ +fill markers str\ +oke\x22\x0a d=\ +\x22m 8.9284573,21.\ +414399 c 13.3255\ +647,0.250874 22.\ +3140307,0.22166 \ +30.8849637,7.223\ +214\x22\x0a id\ +=\x22path825\x22\x0a \ + inkscape:con\ +nector-curvature\ +=\x220\x22\x0a so\ +dipodi:nodetypes\ +=\x22cc\x22 />\x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#2a2aff;\ +stroke-width:1.5\ +5563576;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22m 8.9\ +284573,21.414399\ + c 6.6627827,0.1\ +25436 13.1892557\ +,1.906635 18.586\ +6507,4.507361 5.\ +397394,2.600727 \ +9.66571,6.020982\ + 11.812176,9.424\ +532\x22\x0a id\ +=\x22path825-3\x22\x0a \ + inkscape:c\ +onnector-curvatu\ +re=\x220\x22\x0a \ +sodipodi:nodetyp\ +es=\x22csc\x22 />\x0a \ +\x0a \x0a \ + \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x09\xc9\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ +xml\ -\x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -ellipse\x0d\x0a ry\ -=\x2212.649562\x22\x0d\x0a \ - rx=\x2212.649564\ -\x22\x0d\x0a cy=\x2217.6\ -92028\x22\x0d\x0a cx=\ -\x2224.120813\x22\x0d\x0a \ - id=\x22path883-3-\ -3\x22\x0d\x0a style=\x22\ -fill:none;fill-o\ -pacity:1;stroke:\ -#aeaeae;stroke-w\ -idth:3.7485;stro\ -ke-linecap:round\ -;stroke-linejoin\ -:round;stroke-mi\ -terlimit:4;strok\ -e-dasharray:none\ -;stroke-opacity:\ -1;paint-order:ma\ -rkers stroke fil\ -l\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x0f\xa8\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata12\x22>\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a \ - \x0a \x0a \x0a \x0d\x0a \ - \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x04\xb9\ -\x00\ -\x00\x1f!x\xda\xe5Y[o\x9cF\x14~\x8f\x94\xff\ -@\xc9K\xa2\x96a\xee\x17\xb2\xebH\xad\x15)\xafm\ -\xaa>c\x98\xdd%\x06f\x05\xd8k\xe7\xd7\xf7\xb0\x0b\ -x\x88\xed\xb6\x12/\x95@\xbbZ\xcd9g\xce\xe5\x9b\ -s\x19\xec\xcd\xa7\x87\xaa\x0c\xeem\xd3\x16\xae\xde\x86\x04\ -\xe10\xb0u\xe6\xf2\xa2\xdeo\xc3?\xbf~\x8et\x18\ -\xb4]Z\xe7i\xe9j\xbb\x0dk\x17~\xbaz\xfbf\ -\xf3S\x14\x05\xbf56\xedl\x1e\x9c\x8a\xee\x10|\xa9\ -o\xdb,=\xda\xe0\xfd\xa1\xeb\x8eI\x1c\x9fN'T\ -\x0cD\xe4\x9a}\xfc!\x88\x22\xd8\x0a\x9b\xdb\xfb\xfd\xdb\ -7A\xe0\xdb%\xe1\x99R\xe4\xdb\x10\xb8\xf4\xb2:\x15\ -yw\x00\xae\x19\xd6\x07[\xec\x0f\x9dG\xb8/\xec\xe9\ -W\xf7\xb0\x0dq\x80\x03\xa0\x06\x13\xa7\x85\x10\x8e\xf0M\ -r\x97\xd5i\x05\x9e\xb7\xc7*\xed\x10(\x1f,\x0d\xae\ -%\xbe\x13\x88\x06\xefq\x8aq\xb6\x13\x8c\x99_\x02\x8a\ -)\x8d0|\xf8\x87\xcb.@\xabn\x93q\xef6|\ --\xd6\xded{L3\xdb\xc6#\xddW0z7)\ -\x18\x09\xa8uwMfw\xa0\xc3\xa2\xdav\xf1\xf5\xd7\ -\xeb\x89\x19a\x94w\xb9\xa7gf\xff\xc4\xce\x96)\xc6\ -8\x9e\xa2\x1c\xcc\xdd\xef\xff\xabh\x93\xef^\x12%\xc6\ -\x98\x18\xd3\x18\xe0\x00\x89\xa8}\xac\xbb\xf4!\xaa\xdbw\ -\xfe\xde,\x9b\xb6f}j\x14\xf76sU\xe5\xea\xf6\ -\x82\xc9\x5c:\x7f\x92>\xde5\xe5Y$\xcfb[\xda\ -\xca\xd6]\x1b\xc3q\xc4\xe1U\xbfaS\xd9.\xcd\xd3\ -.=\xef\xbe$\xc9H\xd2\x17\x11\x10\x02\xbf\x92\xdf\xaf\ -?\x0fK dY\xf2\x97kn\xc75<\xbdHz\ -\xe3\xee \x85\xc2\xab'\xfa&\xcf\x12@\x1c\xd2\xe3\xaa\ -\xa8\xd2\xbd\xed1\xf9\x19\x9c\xdc\xc4O\x8c\xb9t\xf7x\ -\xb4\x9e\xde\x8b\xe6\xc6^\x0e\xef\xc5\xb0\xf2\xac*\xfa]\ -\xf1\x1f]Q\x96_z3a\x10?9\x1b\x0f\xde\x8e\ -\xd1\xc4~8\x9bx\x0c\xf7\xb2\xcc\xed\xae\xf5\xb0\xe8\x97\ -r\xd4\xb6\x992\xbf\xcf\xc1\xbc\xaf\x90A\xf4\x0863\ -W\xbaf\x1b\xbe\xdb\x9d\x9fp\xe0\xdc\xb8&\xb7\xcd\xc8\ -\x93\xe7g\xces\x90\xcb\xe0?\x14\xc9Hw7\xdfl\ -\xd6u\xae\xb4MZ\xf7A\x13<\xb2\xf6\x0d\xd4\xed\x8b\ -\x8c\xbb\x22\xb7/r\xa6j\xec\x9d\x9c\x8c\xbd\xccn\x0f\ -i\xeeN\xdb\x90>\xe3\x9e\x8a\x1a8\xd1\xd06\xa8\xc0\ -\xe25\x91\xa9\x93`2E\xdaC9a\xc6Gj{\ -p\xa7>\xa0m\xb8K\xcb\xd6>S\xf8\xdd\xb9\xaa\xef\ -\x1d\x94\x1a\x22\xa5z\xc6\xcf\xa0;ED+D\x88\x96\ -\xfc9\x1b\xc2T\x181E\xb52\xafy\x0b*\xc4\xab\ -\xa1\x80\x02\xaa^cV\xe9CQ\x15\xdfm\xee\x9d\xdc\ -\x93\xed\xbb\xa6\x81R\x8b\xca\xf4\xd16~\xdf\xfd\x01\xf0\ -\xec`\xb3[\xdb\xdc\xb8\xb4\xc9\xfbC\x193\xad\x81\x04\ -\x18Q\xea\x1eK8\xd0\x1d\xe4vR\xc3\xa0\xf8\xd8v\ -\x8d\xbb\xb5\xc9;s~\x86\xe5\xe5d\x12\xc2\x10\x1b)\ -eQ[0\x944\xee\xae\xce}\xe27W\xd4s*\ -\x14\x90mJ\x08\xa7K\xf8H\xcbS\xc8\x86\xa6I\x1f\ -}\xab\xd1\x90@\x09\xf9xL\x0b\x08\xf0\x9c\xc2I\x95\ -6\x10E\x1b\x5c\x84\x82\xdeW\xff\xe8\xfbh\x0c\x9eP\ -\x1ag\x8f\xe4H)#\xa6,\x992Gh\xc4\x95R\ -\xd3\x91\xc2!\x11\x8e\xb4\x94\x94O\xc2}\xc1(\x84\x05\ -\x17\x9a\xfc\x1bl#T\xfd\xc2\x8b\xe0\x9f\x80d\x882\ -\x8e\xc5\xff\x13K)\x0d\xfe\x01L\x89\x94\x14\x86+\xfd\ -#\x98#\x83y`2\x8a\x14\xa7\x8a\x13\x0fL&\x00\ -s\x81\xe5\x1a\xb1\x8c\xc4\x124\xb9F\x02\x13\xce\xb4\x87\ -fO\x13\x9as\xb3J8\xe9\x128%E\xdapc\ -\x98\x07\xa7<',\xd3t\x9dpF\x8b\xaa]kD\ -\x15\xc5\x8az\x80\x0a\x89\xb0\x81\xfc\x94+\x05\x94/\x01\ -T\xc0\xbb\x9c\x14Txxj\x0c\xddS+\xbcV<\ -\xc9\x12<\x0dC\x06.i\xc4\x9f\xedp\xab\xc3J0\ -\xc3W\x09\xa8\x5c\x02\xa7\xd2HaA\x8d\xf1\xe0T\x00\ -'\x8c(\xce\xd69\xde\x97\x0dxB\x08R\x82>\xbd\ -\x0a\xf4\x0d\xd4 J\x14\xd7|\xad\x13iQ\x07\xe5@\ -4J\xceF\x12\xbc/\x22C\x8c\x12+ET\xabE\ -9\xca$\xbc\xe9J\xe3\x0f%\xc9\x101\xc2\x10\xb2\xd6\ -\x1c\xd5\xcb\xaa\x9e\x22\xc6\xe5\xac\x8d\x12L\x91\x90\xcc\xb0\ -\xb5\xe6\xe8\xa2\xa2\x170\x83\x8c`~\x8a\x12\x8a\x11\xd1\ -B\xac\xf5b/\x17\xbd*i\x824\x17\x98\xcdR\x94\ -\x13\x98LX\xac\xf6f\xbf\xac\x8d\xc2\xdd\x9e\x10\x8d3\xfd\xb8\xabJg#uS\ -\xa8z\xe6\x12\x84]G\xd6\x99\xca\x8bz1s\xff\xf8\ -\xfc\xc9\x8b]\xa71\xa2\xceE\xa9j9sk\xe5~\ -\xbc}\xffn\xdal\x16\xef\xdf9\x8e\x03\xc3\xeb&\xcd\ -\xb3\x99\xbb4f\x95\xfa\xfej\xadK\xa4\xf4\xc2\xcf3\ -_\x96\xb2\x92\xb5i|\x82\x88\xef\x8e\xf0\xd9\x11\x9fi\ -)L\xb1\x91\x99\xaa*U7\xed\xd0\xba\xb9\x1a\xa3u\ ->\x1f\xe0\xdb\xed\x16m\x83\x16E\x92$\xf11\xf5)\ -\xf5\x00\xe15\xfb\xda\x88\x9d\xf7d,\xec\xf3\xdcX\x8a\ -1\xf6!6\x82\xbe\x10\x966@\xce\x0a>\x03\xbew\ -\xa0F\xadu&\xe70P\xa2Z\x1a\xff\xee\xf3\xdd\x10\ -\xf40\xcaM>\x9e\xa7\xa8\x1f\x9aL\xac\xe4\xc9\xba\xbd\ -\xb3\xa3AT\xb2Y\x89L6~\xef\xef&\xe8\xadt\ -\x9c8\xe7\x03\xc3A(\xd8\xfc\x9e%\x13\x87b\x8a=\ -\x1cz\x98\x5cwc\xfa\x8d\xa4\xb9\xca\xec\xc43W\xe4\ -\xf9_\xf7\xc2\x184\x1c\xb0\xc8g.\x18Qg\x8d&\ -'\x07O!\xb7?\xab\xdd\xcc\xc5\x0evX\x0c?\x9d\ -\x7f)\x8b\xc5\xd2\xcc\xdc\xde\xde\x16\xb9Y\xb6\xe6\xad\xb5\ -\xa7\x954\x22\x17F\xb4\xc1n\x99\xdeEh\x87\x01\x14\ -$1\xfd\xed\xee\xd3\xc1\x04G\x96\xa5\x7f*\xfd\xd0\xdb\ -\xf0\xb2\x10q\xaf\xd6\xb0\x96{{\xf4O\xf3,\x05\xda\ -+an\x8bJ,\xa4M\xd9O\xc0\xf2\xd4?\x06N\ -\xd1f\xbf\x92\xa3y\xbb\x99\xb5\xec2x\xb6\x96\xf3\xac\ -*\xec(\xffwS\x94\xe5/v\x19\xd7\xf1\x9fN[\ -\x98R\xde\xb6\xcbv\x7f\x0eg\xf1\x0f\x87\xe9\x0f\xeb\x8f\ -O;\xf5{::3\x97\xf3f\xc4\x955\x09\xeeW\ -\x9b\x0e\x99\xb4i\xccmNzl_\x16\x90\xe2\xb5\xbd\ -x\x9eV\x06.\x97\xcd!v\x9f\x82\xb2\xb5\xd6\x16S\ -\x8a\xbd\xd4\xe3\xbc\x8f0\xdb\xa2\xce\xd5\xd6\xab\xc4\xae\xa8\ -\x8aG\x09{!\x970\xfb\x99K/N\x00%\x13\x9d\ -\xd9\x01\x8c\xf1\x08\x0dQ\xccp_:\xe3\xf0\xce\x86\x89\ -\x0d3\x12>\x0b?*U\xd9\xda\xe4A\x1c`F\xfb\ -x\xb3T\xdb\x85\xb6\xb4\xcdE\xd9Hw\xc4\xe3\xc0W\ -|i\x9f}!\x13L\xf8%\xcc\xa1\xb8I|\xe6D\ -+\xa8\x8af)\x00\x06l\x9c\x8d*\xb8\xcfPG\xa3\ -\x84,\xd6E.\x8d*\xa5\x16\xb5\xad=r\x8c\xc01\ -\xce\x06\xd4\xfd\x17\x99\x99\xb3\xa1{\xa5s\xa9\x87U\xc8\ -\xa9?S\xa5\x82\x5c_E\xed\xab\x8f\xd9}\xf5\x91y\ -\xfb\x1ajm%\xcc\xf2\x80\x9aC\xd9[\xfd\xafO8\ -\xb5\x80\xe1\xa4`\xff\x0a\xd2\xb0d\xf1\x86\xc5K\x8f\xc5\ -\x8f\xc3D\x8b\x03\xc4\xc0\x8e\x1b{%A\x02\x84\xd1\xc5\ -\xee\x03F$\x8a1T@0\xc1\xf6}4)E8\ -\xa6<\xa2\x13/B\x11\xe1\x94\x85\xf1\xf5x\xf1E\x1c\ -\x0c\x07l\xcc\xbe\x04&\xec.\xd3+!\xed\xfb\xc6\x1a\ -\xde\x81\x8b\x94\xdc4F\xab\x079D;\xd3+\x8bZ\ -BzR\xad\xd6u\xde;\x87A\x83:\x8d\x98\x18\x89\ -i\xad w\xa0\x0a\xf0\xf4\xc82w\x88\x1fkX\xd5\ -0\xbbQ\xda\x83\xeb\xb6\x11f\xad\xe5(\xf5G\x0ac\ -B\x8fN+\x8fN\x12\x22\x9c\x90\x84\x07\x930Bp\ -v\xca\x02\x07\x83\x8b1>\xe1\x09\xe2I\x88\x13~\x1c\ -\xf3\x82\xe3\xb7\xa6^\x972\x95\x1b\x09\x1b\xcf/\x10\xd2\ -\x16xJ\xa2\x7f$\xc8:\xbf\xa8\xa2NA\x15\xa5\xee\ -\xbd\xadQ\x82V\x98\x94\xf5\xbe\x5c\xc0\x8d\xd0Z\xecS\ -[;\xcf\x09\x1eD\xf4\xfbS\xec\x05OH&\x01C\ -ID\x80R\xa0;\x04nc\xeex\x1d\xbb\x04\xc7\x93\ -\x96\xef\xf0\x0d\x91<\xf5\x17\xcf\xeeu\xcfOB\xc8\xe8\ -\x1eC\x01\x023\x01\x0f\xc2hB\x89-E\x1c\xb6\xf5\ -\x17't\xc2\x10\x08$\xe6\xd1\xab\xef^\xc7\x02EA\ -D\xa3\xe0\x07S\xb1\xf8\xce\xc2\xf1D\xa7\x8e\xb5wN\ -\x02q\x04\x9df\x14\xb1\x83\x04\x0e&0M\x83\x88\xf3\ -pB0\x0a1\x89\x82\xe0\xfa\x82$\xfdgk\xf3U\ -\xba7\xbe\xdd\xd1W\xa8\xc3\x05\x99\xb9$Jo\x84\xe4\ -\x7f\xa9{'\x12\xea\xf1oN\xf3 K\x1a\xe68\x8c\ -\xb1\xfdd\x808\x8db6,\x08\x0d!G\x8c\x051\ -\xc5\xc3\xee\x86\x96\x8d\xa3\x80&\x84\xb1>p\xe8\xd3h\ -\x04\xea\x0226\xbe\x8fv\x99\x84\xd3o$_\xece\ -)<\xf1~E\x0aoV\xa2\x80v\xbd\xed\xe3\xd2J\ -\xe8\x07\xf8z\xe6t\xa0\xb67{Q\xabuIg(\ -C\x8c\xc6\x98\xd3Vg\x92$\xe4\xc9\xf5s\x05\xf3\xc2\ -7\xd3m\xd9:\xf6\xc2\xff\xdb\x81g\xed\xc0\xab\x9f\xe5\ -I\x1c\xd3\x1f\xacjm\xf2\x02\x8c(\x89\x12\x9e\xd8~\ -\x85A\xbe\x92\x04\x1e\x1c\xf05\x8d\x07d\x12 \xc6C\ -6\xfa\x92ylz\xe0\xb1\xd1\xd21\xb5\xff5\x80\xdf\ -\x7f\x03\xe1\x80\xbc\x94\ -\x00\x00\x0b\x1a\ +etypes=\x22cc\x22 />\x0a \ + \ +\x0a\x0a\ +\x00\x00\x0f!\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0aR\ +y=\x22-8\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22g833\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a \ + \x0a \x0a \x0a <\ +path\x0a \ +d=\x22M 231.11788,4\ +78.5796 V 291.11\ +984 c 0,-5.94833\ + -4.81115,-10.75\ +948 -10.75947,-1\ +0.75948 H 32.986\ +119 c -5.948327,\ +0 -10.759473,4.8\ +1115 -10.759473,\ +10.75948 V 478.5\ +796 c 0,5.94832 \ +4.811146,10.7594\ +7 10.759473,10.7\ +5947 H 220.44588\ + c 5.86085,-0.08\ +75 10.672,-4.898\ +62 10.672,-10.75\ +947 z\x22\x0a \ + id=\x22path827-2\x22\ +\x0a styl\ +e=\x22fill:#37c8ab;\ +stroke-width:0.8\ +74754\x22\x0a \ + sodipodi:nodet\ +ypes=\x22ssssssscs\x22\ + />\x0a \x0a \x0a <\ +/g>\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \x0a <\ +g\x0a id=\x22g85\ +7\x22 />\x0a \ +\x0a \x0a \ +\x0a \x0a \x0a\x0a\ +\ +\x00\x00\x06*\ +\x00\ +\x00\x15\xf2x\xda\xedX[o\xeb6\x12~?\xbfB\ +P^N\xb0\x16\xc5\xabD\xaav\x8a]\x1c\x14]\xa0\ +}\xd9\xed^_\x16\x8a\xc48jd\xd1\xa0\xe889\ +\xbf~\x87\xb2u\xf3\xe54EZ\x1c`\xb1\x16\x12\x88\ +3Cr\xe6\x9b\x1b\xa9\xe5\xb7/\x9b:x\xd6\xb6\xad\ +L\xb3\x0a\x09\xc2a\xa0\x9b\xc2\x94U\xb3^\x85\x7f\xfb\ +\xe9\xbbH\x86A\xeb\xf2\xa6\xcck\xd3\xe8U\xd8\x98\xf0\ +\xdb\xbb\x0f\xcb\xf6y\xfd!\x08\x82}U\xba\xc7U\xc8\ +e\xe8G\x8f\xbaZ?\xbaa\xf8\x5c\xe9\xfd\x9f\xcc\xcb\ +*\xc4\x01\x0e\xb8\x0c\x8e\xe4\xaa\x5c\x850\x9d\x1ed\xc6\ +\x9d\xc9\x81\xdb<\xb5E\xbe\xd5\xd9\x94\x13|,\x12\xa9\ +)-\x98L\x17\x01\xc5\x94DXD\x94\xddvSZ\ +\xd0v\x0b\x7fYi\x8a&\xdf\x80\x92U\xb3\xdd\xb9\xf6\ +?y\x93\xd7\xafm\xd5\x22\xd8\xae\x93\x04[\x9b6\xeb\ +\xb7X\x85\x8f\xcem\xb38\xde\xef\xf7\xa8'\x22c\xd7\ +\xb1_\xa5\xdd\xe6\x85n\xe3\x9e>\x99\xdf\xef7\xcc\xef\ +\x09\xa85;[\xe8\x07XB\xa3F\xbb\xf8\xd3O\x9f\ +\x06f\x84Q\xe9\xcaq\x99\xd9\xee{\xd6\xedK1\xc6\ +\xf1\x5cY\x18\xbdQ\xd2\x96\x0f\x97$\x89R*\xc64\ +\xa64\x02\x89\xa8}m\x5c\xfe\x125\xed\xcddjQ\ +\x0c3\x0b\xabsW=\xeb\xc2l6\xa6i\x0fp\xcc\ +\x84\xcbQx\xbb\xb3u'Q\x16\xb1\xae\xf5F7\xae\ +\x8d\xc1_qx\x07\xf2\xcb\x8dvy\x99\xbb\xdc\xcf=\ +\xf8\xbd\xa7\x10\xdaI\x80\x0c\xe8\x94\xfd\xe5\xd3w\x87\x11\ +\x8c\x8b\x22\xfb\x87\xb1O\xc7!\xfc\xbc@~ov\x10\ +W\xe1\xdd@^\x96E\x068orwWm\xf2\xb5\ +\xf6X\xfc\x01\xf4[\xc6#c&\xec^\xb7z\x5c\xf4\ +\xb0\xac\xd5\x07\x87]\xb4\xa7,6\x95\x9f\x14\xff\xd5U\ +u\xfdg\xbfI\x18\xc4'\x8bV\xae\xd6#q\x19\x1f\ +\xb5?\xda\x16O\x8c[\xc6\xbd\xed\xdd\xa8\xd4\x0f\xed\x08\ +\x8b\x1f\x11\xdcC\xb2\xc9\xed\x93\xb6\xfdFCB\xb4\xce\ +\x14O^\xfa\x8f\xd6\x9a=\xf9\x01\xb2\xd2\xba\xb0\x173\ +\xb6\x02\xf4Wa\xbesf Z\xfd\xf0/H?H\ +\xea\x09\xe5\x9fs\xca\xd5\x15[\xf7Z\x034\x06\x12\xf1\ +\xa16\xfb\xec\xb9j\xab\xfbZ\x87g\x8aUm\xa7\xda\ +*tv\xa7\x07\x1f-\xb7\xb9{\x1c\x11\xf7\xdbx\x0a\ +\x17J\x86#\x19\xa8?\x06\xa0\xce\x02\xfe\x82\x1f\x02\x01\ +o\x91\xe8^#B\x91\x98\x90\x0f\xd4^\xf4s0Y\ +\xe4\xa8\xe9\x03\xf8)\xb2\xbbZg\xfaY7\xa6,\xbf\ +i\x9d5O:\xbb\xc1\xdd\xef8\x8c\xba\xa2\x95A\xa9\ +\xdb\xba\xc9\x22\xce\xe6M\xeb#\x07\xaaS\x91\xd7\xfa#\ +F\xf2\xf6@\xads\xa7?\x1e\xd4\xb9\x1db\x00\x1c\xda\ +\xf9\xe9\xe0\x5c\xef\xc1\xeem(F\xbe\x86\x94\xbe\x04\x1e\ +\xb6\xd8B\xfc\x14\xa66v\x15\xdeK\xbf\x05\x0e\xbe\xf7\x0d\xfa\xef\xfe\xdf\xf7\ +\xd0\xac\xff=\x11\x19M0M\x03qgl\x04\xc6<\ +\xe7ng\xf5\x18*'i\x985pX\x98\x94\xcbQ\ +\xd3\xa3\xae\xa3\xfd'\xb9\x07\x85\xdbV/\x1f!;S\ +\xa6\xa8\xe2\x0b\xd0n1\x8e\x12\x85\xa0\x9f\x09\x22\x164\ +EDRp\xf1\xed\xb4-\xcc\xad\xfe5\xdaO0\x22\ +)\x991|\xe3\x0a\x22\xc1P\x8a%O\xe4\x82\xc3K\ +JD\x22\x02\x82Q\xca0\x8c\x16\x91D\x9cIJT\ +2\x9b:\xc5\xe4F\x15\xfe\xf9\xe6z\x9d\xca\xb1\x7f\xe6\ +u\x8a\xa2T1\x9e\xaa\x94\xf6\xf4\xba\x02K\xf2mv\ +\xbfsnJ\xfb\xd9TM\x06MK\xdb\x9ez\xcc\xe8\ +\x8c\xf4\x84\x8e[C\x94\xba\x8c\xf7\xb42\x87\xd4\xb66\ +\x7f\xed\x9cv\xd0n\x988oy\xbf\x11\xba\xec\x12\xba\ +\x1cQ\xceE\x92,\x22\xc2\x91J\x19W\x22P\x88\x09\ +I\xb0Zt/XI\xfa\x7fp\x7f\x09\x5cq\x0a\xee\ +\x8fA\xc4\x08\x92)\xa6\x09\x84)I\xa1nr\x8a\xd3\ + \xe2\x14\xea`\x9ax\xc8\x05J\xa8\xa4R\x8a\xdf\x09\ +\xdfD\xfez|\xdf\x00\xe7\x99'N\xf0\x9d\x1934\ +f\x03\xbd\x10\x0evp\x02/\x8a/\xbb\xe0\xca\x9c\xdf\ +\xc0K\xe9\x85\x14\x00\x7f\xa4\x92&\x8c/\x22\x868N\ + \xe0y\x00\xc7\x8eT0\x92&\x8b\xae\xd6P\xf5?\ +\x9c\x01\xba\xae\xabm;?\xa6C\xc3e\x08\x0b\xd0/\ +\x99cf_<\x87\x08\xb8\x12\xd2y\xd8\xfa\x1e\x9f \ +J\x80G\xe71\xe0\xcf\x06\x91\x10\x88Q\x8aYz\xc5\ +7,\x89\x92\x88]\x82y\x1eg\xd9M*\xfcsb\ +\xd2u\xfc\xa7!;\x80/\x89\xa2L\xb03\xa0\xad\xd9\ +5\xe5;R\xe1M\xc8R(\xb4\x5c\x12v\x09Y\x9c\ +@$&\xc9\x19\xb2)\xe2\x8a%T$\xe7\xc8R\x85\ +`\xb1\x84\x91\xeb\xc8\x92\xb7\xe0zO\xfd\xf3\x0e\x5c\x19\ +bD*Bi\xfaup\x85^\x96\xc2!\x85\xf13\ +\x5c9\xe2\x84\x10E\xce#\xd6Wf\x9a\x08*\xc49\ +\xb0\x8c\xa2\x84'\x22\xa5_\x08\xd97\x01\xab\xfd\xf3.\ +`\xa5\xc2*\x01p\xbf\x0e\xb0P\x17%\x1c\xfa)\xbb\ +\x10\xb0BB%\xbb\x84+G\xd2\x07\xac\xbaP\x0a\x18\ +$\x00\x86Jq\x15\xd7\xb7\xa0Z*\xff\xbc\x0bU.\ +\x15\xe4Z\x92~-T%\x06\xec\x98\xbc\x80\xaa\xa2\x82\ +`r\x8e*\xcc\x91BHu\xa1\x0cp\xb0\x07\xae_\ +\xfc\x0b\xd1\x8a\xdf\x82\xab\xcc\xfd\xf3\xce2\xc0\x94\x94\x8a\ +\xfe\x9e\xb8.\xe3u\xffE`}z/\x9b\x5cl&\ +_\x12\x10\xc6IJ%[DT\x00\x8c)U\xea6\ +\x9c_\xe5\x08\x5c\xe5\x86/\x0d'\xd7\xbcdR=.\ +n\x80\x91\x80\xdb-\xdc\x97\xfa\xaf\x15\x9dfK\xff\x8d\ +\xec\xee\xc3\x7f\x01\x01\xb0A\xae\ +\x00\x00\x09s\ +\x00\ +\x00F\x16x\xda\xed\x5c[\x8f\xdb\xb8\x15~\xcf\xaf\x10\ +\x9c\x97\x04\xb5h\xf2\xf0\xee\x8c\xb3@\x11,v\x1f\xfa\ +\xd2n[\xa0/\x0bE\x92=\xda\xd8\x96!in\xf9\ +\xf5=\xa4,[\x92\xe5D\x93\xcbf\xda\xf1$\xbb\x10\ +\x0f/\x22\xbf\xf3\x1d~<\xd4 W?\xddo\xd6\xc1\ +mZ\x94Y\xbe]L\x18\xa1\x93 \xdd\xc6y\x92m\ +W\x8b\xc9?\x7f\xfb94\x93\xa0\xac\xa2m\x12\xad\xf3\ +m\xba\x98l\xf3\xc9Oo_\x5c\x95\xb7\xab\x17A\x10\ +`\xe7m9O\xe2\xc5\xe4\xba\xaav\xf3\xd9lwS\ +\xacI^\xacfI\xbf\xc1\x15O\xde\x1e\xccW\ +Ii\ +\xab<\x0d@\x22\xe9\x5c?\xcd\xa8\x9db~\xe2x\x12\ +{\x8b`x\x12\x02t@C\x1dT\xfe\x9a[\x5c\xbb\ +2C\x86\xca\x9a\xa9\xa6n\xc0\x94\xe8p\x0b\xacQ\x0d\ +\xd3;e\xe4\xea\xb3gR\x81|9\x81`\xc4nV\ +/\xc7\x11\x85\x22\x97\xa8\xfe\xe4rZ\x13\x17\x9f\x9e\xf7\ +\x11\xd7]\x94a6\xe0\xb3\xbb\xf9&*>`R\x19\ +\xb8y\x05u\xcb\x96\xdf\x5c\xc6!\xf0L\x8b\x87\xc26\ +\xa91I\x01p\xd9\xb0\xd2\xb6en2,plS\ +\x0cZU\xfb\xf4\x0c\xe9\xaf\xf1L/M/p\x1cT\ +\x5cs\xdd\x86/]\xaf\xb3]\xd9\xba\xa6(\x5c\x12J\ +\x04\xd7\x8a\x9a\xf6\xd8\xc5\xbd\xb7\xe3\x19[\xe9\xb6=\xf6\ +\xf9\x12\x01\x85[\x05\x0ai_\x83\x94UT\x8d\x89\xf3\x8b\ +\x02\x9d(Ph\xfb\x1ad\xc0\xaa\xd6/\x1a>Q4\ +\x9f\xa4\x02\xa9\x11\x0a\x04\x92H\xaa-\x85\x8b\x06}N\ +\x83\xe8\x08\x0d\x1a\x86\xf3\xa2B\x03*\xa4F\xa8\xd0\xe3\ +\xe1|\xbe:\x04#t\xe8\x5c\xb4_\x94\xe8T\x89\xd4\ +\x08%z\x92x>I-2#\xb4\x88\x09\x02\xa8\xeb\ +\x94]\xb4\xe8sZ\xa4Gh\xd10\x9c\x17-\x1a\xd0\ +\x22;B\x8b\x1e\x0f\xe73\xd6\xa21I\xd1\xb9p\xbf\ +\x88\xd1\xa9\x18\xc1\x081z\x92x>I1\x92v\xcc\ +\xdd\x9c\xfbUzD\xf3\x92\x19}\xfevn\xd4\xf5\xdc\ + \x9e\x179\x1a\x90#3\xe6\x82\xee\xd1p>_9\ +\xb2c\xae\xe8\xce\x84\xfbE\x8dN\xd5H\x8f\xb9\xa4\xfb\ +r<\xfd\xaf8\x5c\xb9\x7f8\xe3\xed\x8b\xff\x02hI\ +h\x9e\ +\x00\x00\x0a\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x16\xf3\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a <\ -metadata\x0d\x0a i\ -d=\x22metadata8\x22>\x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -dc:format>image/\ -svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x08\xf0\ +y:1;paint-order:\ +markers stroke f\ +ill\x22 />\x0a \x0a\x0a\ +\x00\x00\x0f@\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0a\x0a <\ +metadata\x0a id\ +=\x22metadata12\x22>\x0a \ + \x0a \ + \x0a image/svg+\ -xml\x0d\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \x0a \x0a \ +\x0a \ +\x0a \x0a \ + \x0a \x0a \ +\x0a \x0a \ + \x0a <\ +g\x0a id=\x22g\ +901\x22\x0a tr\ +ansform=\x22matrix(\ +1.0739294,0,0,1.\ +0739294,69.94982\ +8,29.759617)\x22>\x0a \ + \x0a \ + \x0a \x0a \ +\x0a \x0a\x0a\ +\x00\x00\x04\xb5\ +\x00\ +\x00\x1egx\xda\xe5YKo\xdbF\x10\xbe\xfbW\xb0\ +\xf4%A\xcb\xe5\xbe\x1f\x8c\xa4\x00m\x10 \xd76E\ +\xcf4\xb9\x92\x18\x93\x5caI[v~}\x86\x12)\ +R\xae\x1d\x14\xd2\xa5\x00\x09\xe9\xb03\xb3;3\xdf\xbc\ +\x96\xd2\xe2\xe3SU\x06\x8f\xd67\x85\xab\x97!A8\ +\x0cl\x9d\xb9\xbc\xa87\xcb\xf0\xef\xaf\x9f#\x1d\x06M\ +\x9b\xd6yZ\xba\xda.\xc3\xda\x85\x1fW7\x8b_\xa2\ +(\xf8\xc3\xdb\xb4\xb5y\xb0/\xdam\xf0\xa5\xbeo\xb2\ +tg\x83w\xdb\xb6\xdd%q\xbc\xdf\xefQ\xd1\x13\x91\ +\xf3\x9b\xf8}\x10E\xab\x9b\x9bE\xf3\xb8\xb9\x09\x82\xa9\ +N\x12v\x84\x22_\x86\xc0\xa3\x87\xc5\xbe\xc8\xdb-\xf0\ +\xccq\xb9\xb5\xc5f\xdb\x8e\xeb\xc7\xc2\xee\x7fwO\xcb\ +\x10\x078\x00b00\x1a\xb0|\x07\xdf$wY\x9d\ +V`p\xb3\xab\xd2\x16\xc1\xc1G%\xbdE\xc9T=\ +\xa2\xc1;\x9cb\x9c\xad\x05c\xe6\xb7\x80bJ#\x0c\ +\x1f\xfe\xfe\xb0\x09 \xaa\x9bd\xd8\xba\x0c\xdf\xf2\xb0S\ +\xd8\xec\xd2\xcc6\xf1@\x9f\xec\x1fL;\xed\x1f\x08\xa8\ +q\x0f>\xb3k8\xc2\xa2\xda\xb6\xf1\xa7\xaf\x9fN\xcc\ +\x08\xa3\xbc\xcd\xc7c\xce\xb4\xef\xd9A/\xc5\x18\xc7\x83\ +\x87\xbd\xb2\xc7\xcd\x7f\x94\xf4\xf9\xfa5Ib\x8c\x891\ +\x8d\x01\x09\x90\x88\x9a\xe7\xbaM\x9f\xa2\xba\xb9\x9dl\xcd\ +\xb2\xd3\xce\xac\xcb\x85\xe2\xd1f\xae\xaa\x5c\xdd\x1c\xe18\ +\x13\xceG\xe1\xdd\x83/\x0f\x12y\x16\xdb\xd2V\xb6n\ +\x9b\x18\xe2\x10\x87+\x90_T\xb6M\xf3\xb4M\xbb\xbd\ +\xc7\xb4\x18(\xfa \x00\x22`R\xf2\xe7\xa7\xcf\xc7\x15\ +\xac\xb3,\xf9\xc7\xf9\xfb~\x09O'\x90\xde\xb9\x07\xc8\ +\x99pu\x22/\xf2,\x01\x98!!VE\x95nl\ +\x07\xc5\xaf`\xde\x22\x1e\x19g\xc2\xed\xf3\xce\x8e\x87\x1e\ +\x8f\xf5\xf6\x18\xafW\xdd\xc9\xb3\xaa\xe86\xc5\x7f\xb5E\ +Y~\xe9\x94\x84A|\xb23\xee\x0d\xed\xdd\x88'~\ +,\xe2\xc1\xcb\xc3*\xb7\xebf\x04\xa0[\xc9\xfe\xa0\xc5\ +)\xc7\xbb|\xcb\xbbR8\x0a\xee@Y\xe6J\xe7\x97\ +\xe1\xed\xfa\xf0\x84G\xc6\x9d\xf3\xb9\xf5\x03K\x1e\x9e3\ +\x96\x83\xa4\x05\xb3\xa1\x18z\xb2\xbb\xfbf\xb3\xb6u\xa5\ +\xf5i\xdd\xb9Jp\xcf\xd9x\xa8\xcc\xd7\xe8\x0fEn\ +_c\x9c*\xae3\xef\xa4\xe8Un\xb3Ms\xb7_\ +\x86\xf4%s_\xd4\xc0\x88\xfa\xa6@\x05\x16oH\x9c\ +\xfa\x04&\x83\x87\x1d|'\xa0xOl\xb6n\xdfy\ +\xb2\x0c\xd7i\xd9\xd8\x97\xa7}w\xae\xea:\x03\xa5\x86\ +H\xa9^\xb23h<\x11\xd1\x0a\x11\xa2%\xff\x17\x17\ +\xdcS\x181E\xb52o\xd8\x09\x07\x88\xb7|\x80\xed\ +T\xbd\xc1\xab\xd2\xa7\xa2*\xbe\xdb|\x0c\xd5\xa8\xf7\xc1\ +{\xa8\xa4\xa8L\x9f\xad\x9f\xb4\xd2\x17 g[\x9b\xdd\ +[\x7f\xe7R\x9fwq\xe8\x93\xcaC\xbc{l\xda\xe7\ +\x12\x02\xb8\x86\xfcMj\xe8\xf9\x1f\x9a\xd6\xbb{\x9b\xdc\ +\x9a\xc3\xd3/\x8f\xc1H\x08Cl\xa0\x94EmAM\ +\xe2\xddC\x9dO\x89\xdf\x5cQ\x9fS\xa1H\xac/\xc1\ +\x956\xe1\x03-O!\xfe\xde\xa7\xcfS\xadQ\x9f1\ +\x09\xf9\xb0K\x0b\xf0\xee\x90\xafI\x95z\xf0\xa1\x09\x8e\ +BAg\xeb$\xdc\x9d/\x06\x0f\x00\x0d\xa3Dr\xa4\ +\x94\x11C^\x9cREh\xc4\x95RC\x1c!4\x84\ +#-%\xe5\x83hW\x18\x0aa\xc1\x85&?\xc7k\ +\xc0\xa8[LL\xff\x19\x82\x0cQ\xc6\xb1\xf8_\x82(\ +\xa5\xc1\xe7(J\xa4\xa40\x5c\xe9\x17(\x0et6\xa2\ +\xc8(R\x9c*NF\x14\x99\x00\xa8\x05\x96\xb3\x031\ +\x12\x17\xc3\xc85\x12\x98p\xa6G\x18;\x92\xd0\x9c\x9b\ +\xf9\xe1H/\xc6QR\xa4\x0d7\x86\x8d8\xcaC\x86\ +2Mg\x88ctyak\x8d\xa8\xa2X\xd1\x11I\ +!\x116\x90\x91r\x8eH\xf2\x8b\x91\x14\xf0\xbe%\x05\ +\x15#\x90\x1aC\x87\xd4\x0a\xcf\x12Hr1\x90\x86!\ +\x03\xf7-2\x99\xd8p=\xc3J0\xc3\xe7\x87\xa4\xbc\ +\x18G\xa5\x91\xc2\x82\x1a3\xe2\xa8\x00G\x18?\x9c\xcd\ +ph_1\xb6\x09!H\x09z\xba\xc9wM\xd2 \ +J\x14\xd7|\x96\xe3\xe6\xf2.\xc9\x81f\x94\x9c\xce\x1b\ +x\xbfC\x86\x18%\xe6\x08\xa5V\x97g%\x93\xf0b\ +*\xcdd\xe2H\x86\x88\x11\x86\x90Yf\xa5\xbe\xa2\xc0\ +)b\x5cN[%\xc1\x14\x09\xc9\x0c\x9beV^^\ +\xdf\x02&\x8c\x11l\x92\x94\x84bD\xb4\x10\xb3\xbc\x99\ +\xcb\xcb_r4A\x9a\x0b\xcc\xa6I\xc9\x09\x8c\x1d,\ +\xe6y5\xbf\xa2U\xc2\xe5\x9c\x10}\xf4\ +\x12\xd7i5o\x0a^\xc9F\xac\xdcF\xba\x1f\xae\xdf\ +-\xdb\xfb\xcd;\xc7q \xb8i\xb3\x22_\xb9[\xad\ +w\x99\xef\xef\xf6\xaaBRm\xfc\x22\xf7E%j\xd1\ +\xe8\xd6'\x88\xf8\xee\xe4\x9eO\xee\xb9\x12\x5c\x97\xf7\x22\ +\x97u-\x9b\xb6\x8bl\xda\x8b\x99\xb3*\xd6\xa3\xf7\xe1\ +p@\x87\xa0s\x22i\x9a\xfa\x98\xfa\x94z\xe0\xe1\xb5\ +\x8f\x8d\xe6\x0f\xdeq(\x9c\xf1T(\xc5\x18\xfb`\x9b\ +<_\xe6\x95\xb5\x80\xca\x0e\xfeGw\xab@\xad\xdc\xab\ +\x5c\xac!N\xa0Fh\xff\xe6\xd3\xcdh\xf40*t\ +1[\xa6l\xee\xda\x9c\xef\xc4\xd1\xaeV\xd9#\xc0k\ +\xd1\xeex.Z\xdf\xea\xbbx+d\xf3|9\xef\x19\ +\x0eB\xce\xd6\xb7,]8\x14S\xec\xe1\xd0\xc3\xe4\xb2\ +\x0b\xb1\xa7\xc8\x0a\x99\x9beW./\x8a\xbfn\xb9\xd6\ +\xc8^\xae,V.\xfc\x8e:a\xb62\xe9\x15\xa58\ +\xfc,\x1fV.v\xb0\xc3\x12\xf8\xeb\xd4[Qn\xb6\ +z\xe5\x0e\xe2\xa1,\xf4\xb6\x93\xaeA\x5c\xd6B\xf3\x82\ +knL\xfd\x06VCh\xe7\x01>\x90\xb6\xec\xb7\x9b\ +\x8f\xbd\x04r\x9eg\x7fJu7\x88\xf01\x0e\xfcV\ +\xeea\x17\xf7zT/\x8b<\x03\xa0k\xae\xaf\xcb\x9a\ +o\x84\xc9\xd1O\x00\xec\xd2\x9f\x0cG\xce\xfaq'\xa6\ +E\xfbe\x95\xe83v\xb2l\x8b\xbc.M\x90\xff\xbb\ +.\xab\xea\x17\xb3\x89\xeb\xf8O\x16-u%\xae\xbb=\ +\xfb\x9f\xf6\x16\xfep\x8d\xe1\x92\xfe\xec\x96K\xdf\x82\xd0\ +I\x85X\xb7\x13>F\x22x\xd8g9f\xcd\xa4\xac\ +0)\x18\x18+1VF\xc2\xa7\xd6\ +/R\xd6\xa6\x02\xe3 \x090\xa3\x83\xb9\xdd\xca\xc3F\ +\x19\xb0\xd6\xbcj\x85;\x817\xa2\x94\x9c9\xa1\xadV\ +\x82I|\xc6e\xa8`\x92<\xbf\xca\x0e*\xa0\xddr\ +\xf0\x02\x10N\x19%\xf4*\x94\xcc\x94\x83\xcd\xbe,\x84\ +\x96\x95P\xbc1UFF\x03\x9c\xff\x94^\xde~\x16\ +\xb9>e\xb9\x95\xaa\x10j\xdc\x81\x1c\xa9sYIH\ +\xedE\xd4}\x06\x939\x915\xac\xbb\x8f-\xab\x1d\xd7\ +\xdb\xdeg\x0d\x95m\xb8\xbc\x99\xc3h\xcc\xf6~ \xfe\ +\x0a\x1d\xbfe\xc9=K\xb6\x1eK\xbe\xd8E6\xbd\x83\ +\x86\x83\xb6\xa6\xdf\xa0\xb7\xb9V\xe5\xc3{\x8cH\x94`\ +\xc8v\xb0\xc0\xe6;\x89\x94\x22\x9c\xd08\xa2\x0b/B\ +\x11\x89)\x0b\x93\xcb\xd9\xc6\x9b$\xb0\xf7j\xf5c\x05\ +\xd77\xe7\xcb.\xb80\xdf+#x\x03\x02\x19\xb9j\ +\xb5\x92wb\xb4\xf6\xa2W\x95\x8d\x80\x84dJ\xee\x9b\ +\xc2*\xc7 K:\x13\x023jl$$\x0b\x1a\x1e\ +\x9e\x03y\xeeZ\xf3T\xab\xb2\x81\xa5\xb5T\x1et\xd4\ +=\xd7{%\xa6LO\xc8%\x84\x8e:CxN\x1a\ +\x22\x9c\x924\x0e\x16a\x84\xe0\xd2\x94\x05\x0e\x06\x15c\ +\xf1\x22NQ\x9c\x868\x8d\xc7\x90\x17\x5c\xbc\x13\xd5\xbe\ +\x12\x99\xb8\x17p\xe8\xe2\x0c\x14])g$\xfaGh\ +\x8c\xf2\xb3,\x9b\x0c\xc8N(\xab\xed\x84\x0a\xc8@g\ +\xcc\xea\x0a\x0e\xc5\xaf\x14\x7f\xccL\xbd<\x87\xd6r\xe3\ +w\x06\xd7\x0b\x8e\xe1%\x01CiD\x00L\x00:\x04\ +T\x93\xd8\xf1z\x5c\x09N\x16\x1d\xd2\xe1\x9b\x81w\xe9\ +o\x9e\xb4\xb0\x85&%d\xeaY\xa8:\x00%\x88\x83\ +0ZPb\xea\x0f\x87]\xd1%)]0\x04\xfc\x87\ +\xe3\xe8\xb5\xad\xd6\x03@Q\x10\xd1(\xf8\xb1(l\xbe\ +/K\x1cS\xd2Xq\xa7\xb8\x0eG0 F\x11\x1b\ +\xb8n\x14\x01d\x1aDq\x1c.\x08F!&Q\x10\ +\x5c\x9ed\x9f\xfflA\xbe\x82\xe4\xe6\xed\x1c}5\x19\ +\x9c\xe1\x94\xd3\xfc\xf36\xe0\xfd:\x92;bK/\xfe\ +\xb6\x00[\x06R\xb0@\x1f`f\xc2\x00\xc54J\x98\ +\xdd\x0b\xc6\xba\x181\x16$\x14\xdbc\x8d\xb3W\x8c\x02\ +\x9a\x12\xc6\x06\xfd0p\xd1\x08x\x04\xf8j\xd6{f\ +\x874\xa6\xdf\x86\xa6\xd8\xcb\xd2v\xa4\xfd\x17i\xbb\xda\ +\xf1\x12f\xedn*\xcbj\xae\xee\xe0=\xca\xe9\x9d\xba\ +a\xeb\x05\xd3\xd39F\xa1\x0c1\x9a\xe0\x98v\x8c\x92\ +\xa6a\x9c^>c*/|\x0b\x03\x94\xa9Z/\xfc\ +\xff9?\xc7\xf9\xd5\x8f\xe94I\xe8\x8f%\xaf.o\ +\x01F\x94Di\x9c\x9aA\x84A\xaa\xd2\x14\x9e\x0c\xf0\ +~\x15\x07d\x11 \x16\x87lz/\x9cf\x19x.\ +\x18$\x96\xe6\xbd\xfe\xfa\xdd\xdf\x9e\xd9\xb6\xb0\ +\x00\x00\x0a\xd7\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \ + \x0a\ + \x0a \ + \x0a image/svg\ ++xml\ \x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ +e\x0a rdf\ +:resource=\x22http:\ +//purl.org/dc/dc\ +mitype/StillImag\ +e\x22 />\x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x07y\ +#666666\x22\x0a bo\ +rderopacity=\x221\x22\x0a\ + objecttoler\ +ance=\x2210\x22\x0a g\ +ridtolerance=\x2210\ +\x22\x0a guidetole\ +rance=\x2210\x22\x0a \ +inkscape:pageopa\ +city=\x220\x22\x0a in\ +kscape:pageshado\ +w=\x222\x22\x0a inksc\ +ape:window-width\ +=\x222495\x22\x0a ink\ +scape:window-hei\ +ght=\x221016\x22\x0a \ +id=\x22namedview4\x22\x0a\ + showgrid=\x22f\ +alse\x22\x0a inksc\ +ape:zoom=\x221.1020\ +922\x22\x0a inksca\ +pe:cx=\x22112.51327\ +\x22\x0a inkscape:\ +cy=\x2287.560732\x22\x0a \ + inkscape:win\ +dow-x=\x2265\x22\x0a \ +inkscape:window-\ +y=\x2227\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22g1179\x22\x0a \ + inkscape:snap\ +-bbox=\x22true\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a\ + \x0a \ + \x0a \ + \x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x0a\x03\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\x05\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221851\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview6\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x224.9166667\x22\x0d\ -\x0a inkscape:c\ -x=\x2224\x22\x0d\x0a ink\ -scape:cy=\x2224\x22\x0d\x0a \ - inkscape:win\ -dow-x=\x2269\x22\x0d\x0a \ - inkscape:window\ --y=\x2227\x22\x0d\x0a in\ -kscape:window-ma\ -ximized=\x221\x22\x0d\x0a \ - inkscape:curre\ -nt-layer=\x22svg4\x22 \ -/>\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xdd\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x00\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \x0a \x0a \x0a \x0a \ -\x0d\x0a \x0d\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a\ + ~\x0d\x0a\x0d\x0a\ -\x00\x00\x0c0\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a BusBar\x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x0a-\ +y:1;stroke:none;\ +stroke-width:1px\ +;stroke-linecap:\ +butt;stroke-line\ +join:miter;strok\ +e-opacity:1\x22\x0a \ + d=\x22m -113.89\ +831,-16.423729 c\ + 5.28813,3.75833\ +9 6.58476,4.7817\ +23 11.87289,2.59\ +3221 l -3.3305,9\ +.8135589 c -2.07\ +314,-1.9708122 -\ +5.14567,-2.79845\ +53 -10.75425,-1.\ +1949153 z\x22\x0a \ + id=\x22path990\x22\x0a \ + sodipodi:n\ +odetypes=\x22ccccc\x22\ + />\x0a \x0a\x0a\ +\x00\x00\x16t\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \ + \x0a \x0d\x0a\ - \x0d\x0a \x0a \x0a <\ +ellipse\x0a s\ +tyle=\x22opacity:1;\ +fill:none;fill-o\ +pacity:1;stroke:\ +#989898;stroke-w\ +idth:20.4293;str\ +oke-miterlimit:4\ +;stroke-dasharra\ +y:none;stroke-op\ +acity:1\x22\x0a \ +id=\x22path4482\x22\x0a \ + cx=\x2296.5\x22\x0a \ + cy=\x2295.499\ +992\x22\x0a rx=\x22\ +84.785355\x22\x0a \ + ry=\x2284.785362\x22\ + />\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0bd\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0a\ + \x0a <\ +path\x0a styl\ +e=\x22fill:none;str\ +oke:#989898;stro\ +ke-width:8.52797\ +;stroke-linecap:\ +round;stroke-lin\ +ejoin:miter;stro\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a d\ +=\x22M 32.146252,97\ +.880995 H 14.574\ +502\x22\x0a id=\x22\ +path4494-4\x22\x0a \ inkscape:conn\ ector-curvature=\ -\x220\x22 />\x0d\x0a \x0d\x0a \x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x06s\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x22826\x22\x0d\x0a \ - inkscape:win\ -dow-height=\x22480\x22\ -\x0d\x0a id=\x22named\ -view6\x22\x0d\x0a sho\ -wgrid=\x22false\x22\x0d\x0a \ - inkscape:zoo\ -m=\x224.9166667\x22\x0d\x0a \ - inkscape:cx=\ -\x222.6440678\x22\x0d\x0a \ - inkscape:cy=\x222\ -4\x22\x0d\x0a inkscap\ -e:window-x=\x2269\x22\x0d\ -\x0a inkscape:w\ -indow-y=\x2227\x22\x0d\x0a \ - inkscape:wind\ -ow-maximized=\x220\x22\ -\x0d\x0a inkscape:\ -current-layer=\x22s\ -vg4\x22 />\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\xcd\ +ill:none;stroke:\ +#989898;stroke-w\ +idth:8.52797;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22\x0a d=\x22M \ +180.56676,99.606\ +813 H 162.99502\x22\ +\x0a id=\x22path\ +4494-4-3\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22 />\x0a \x0a\x0a\ +\x00\x00\x08\xaa\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +g/ns#\x22\x0a xmlns:\ +rdf=\x22http://www.\ +w3.org/1999/02/2\ +2-rdf-syntax-ns#\ +\x22\x0a xmlns:svg=\x22\ +http://www.w3.or\ +g/2000/svg\x22\x0a x\ +mlns=\x22http://www\ +.w3.org/2000/svg\ +\x22\x0a xmlns:sodip\ +odi=\x22http://sodi\ +podi.sourceforge\ +.net/DTD/sodipod\ +i-0.dtd\x22\x0a xmln\ +s:inkscape=\x22http\ +://www.inkscape.\ +org/namespaces/i\ +nkscape\x22\x0a widt\ +h=\x2248\x22\x0a height\ +=\x2248\x22\x0a viewBox\ +=\x220 0 48 48\x22\x0a \ +version=\x221.1\x22\x0a \ + id=\x22svg6\x22\x0a so\ +dipodi:docname=\x22\ +to_transformer.s\ +vg\x22\x0a inkscape:\ +version=\x221.0 (40\ +35a4fb49, 2020-0\ +5-01)\x22>\x0a \x0a \x0a \x0a \ image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a <\ -g\x0d\x0a id=\x22g831\ -\x22\x0d\x0a style=\x22s\ -troke:#b3b3b3;st\ -roke-linecap:rou\ -nd\x22>\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x09*\ +60\x22\x0a inkscap\ +e:window-y=\x2226\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +svg6\x22\x0a inksc\ +ape:document-rot\ +ation=\x220\x22 />\x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + id=\x22path2\x22\x0a \ + fill=\x22none\x22 /\ +>\x0a \ +\x0a \x0a\x0a\ +\x00\x00\x07=\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -rect\x0d\x0a sty\ -le=\x22fill:none;fi\ -ll-opacity:0.849\ -51453;stroke:#99\ -9999;stroke-widt\ -h:3.85741425;str\ -oke-linejoin:rou\ -nd;stroke-miterl\ -imit:4;stroke-da\ -sharray:none\x22\x0d\x0a \ - id=\x22rect41\ -36\x22\x0d\x0a widt\ -h=\x2244.142586\x22\x0d\x0a \ - height=\x2244\ -.142586\x22\x0d\x0a \ - x=\x221.9287071\x22\x0d\x0a\ - y=\x221006.2\ -909\x22\x0d\x0a ry=\ -\x2210.186751\x22 />\x0d\x0a\ - \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0aj\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x14\x89\ -\x00\ -\x00H9x\xda\xed\x5c[\x8f#\xc7u~7\xe0\xff\ -\xd0\x19\xbdH\x08\x9bS\xf7\xaa\x1e\xed\xc8@,\x18\xf1\ -S\x82\xd8B\x9e\xb9Cjg\x22\x0e9 9;\xbb\ -\xfa\xf5>\xb7:UM\xce(\x8a\x93\x18\xb6\xa05\x8c\ -aU\xd7\xf5\x9c\xef\x5c\xfb\xb4\xde\xfd\xee\xd3\xe3v\xf8\ -\xb89\x1c\x1f\xf6\xbb\xdb+\xbb4W\xc3fw\xb7_\ -?\xec>\xdc^}\xf7\xe7?\x8c\xe5j8\x9eV\xbb\ -\xf5j\xbb\xdfmn\xafv\xfb\xab\xdf}\xf3\xdb\xdf\xbc\ -\xfb\xa7q\x1c~\x7f\xd8\xacN\x9b\xf5\xf0\xf2p\xba\x1f\ -\xfe\xb8\xfb\xe1x\xb7z\xda\x0c_\xde\x9fNO7\xd7\ -\xd7///\xcb\x07\xe9\x5c\xee\x0f\x1f\xae\xbf\x1a\xc6\x11\ -\xa6\xc2\xe4\xe3\xc7\x0f\xbf\xfd\xcd0\x0c\xb0\xf7\xeex\xb3\ -\xbe\xbb\xbd\x929O\xcf\x87-\x8d]\xdf]o\xb6\x9b\ -\xc7\xcd\xeet\xbc\xb6K{}\xd5\x8d\xbfk\xe3\xef\xf0\ -\x04\x0f\x1f7w\xfb\xc7\xc7\xfd\xeeHSw\xc7/\xfa\ -\xd1\x87\xf5\xf7:\x1c\x8f\xf4\xe2i\x94\x9d\xa6\xe9\xda\xb8\ -k\xe7F\x181\x1e?\xefN\xabO\xe3\xd9\x5c8\xe7\ -ks\x9d1\xe6\x1a\x9euC\x7f\xe6\xb0\x9b#P\xf6\ -\x09\xfe\xaf\xe3k\xc7\xf2\xb8\x7f>\xdcm\xbe\x87\x89\x9b\ -\xe5ns\xba\xfe\xf6\xcf\xdf\xea\xc3\xd1,\xd7\xa7u\xbf\ -N%\xecl\xdf\x19\xb5w\xab\xc7\xcd\xf1iu\xb79\ -^\xd7~^\xe0\xe5a}\xba\xbf\xbd\x0a\x85\x9b\xf7\x9b\ -\x87\x0f\xf7\xa7\xd6\xfe\xf8\xb0y\xf9\x97\xfd\xa7\xdb+3\ -\x98!\x94\xa5\xc1\x7f\xb6\xfd\xe2Q\x0f\xeb\xdb+\xb8\x9a\ -\x939\x0d?\xf5\xb9ly\xa3\x8f\xccrr\xcb0|\ -\xf9\xbc\xfba\xb7\x7f\xd9}\xc5\xe3\xea\x0do\xd6\xfb;\ -<\xf1\xed\xd5\xe3\xeai\x89D\xfb\x06\x9f\xbf[o\xbe\ -?\xd2@\xde\x12\x9b\x81\x1f\xc1\xc3\xbb\xed\xc3\xd3\xbf\xaf\ -N\xf72`\x18j\xc7w\xbb\x87\x13\xb0\xe4\xf9\xb89\ -\xfc\x09I\xf0o\xbb\xef\x8er\xfb\xbaR\x1dZ\x5c\xac\ -\xeb\xc1\x8a\x87\xcd\xddI\x87\xc1\xe9N\x9f\xb7p\xa4\xef\ -\x1f\xb6\xdb\x9b\x1d\xc0\xffk\xfc5\xeea\xc9\x87\xd3\xe7\ -\x1b\xb3,a\x8a6D\xff\xf5\xf1t\xd8\xff\xb0\xb9\xf9\ -b\xa2\x7f\xd2\x1c\x89\xd27~Yb\x0e6\xb8X\xfb\ -\xb7\x0f\xbb\xcd\x7f\xed\x1fv7\x87\xfd\xf3n]{\x1f\ -\x1fN\x9b\xc3\xf6\x01\xfe\xdc\x84\xda\xb7^\x1d\xefW\x87\ -\xc3\xea3m\x7f\xd5\x1d\x0d\xef\x80\xa7-.\xf7\xdd\x95\ -\xb9a\x89\x1b\x96\xd4?SN\xbf\xf6\xf0\x132or\ -%\x9bl\xfb\xfe\xcf\xd0oLZ\xba\xc9L}\xff\x81\ -\x1e,mI9\xda\xab\xe1\xba\xf2\xe4\xba\x12\x96\xf9w\ -\x8d\x1c\xe3\x9f\xcaj\xe4\xf3\x1aa\xd61\xf6\xfd\xaa1\ -\xe8i\xf5\x01\x04z\xbb?\xdc^}\xf1=\xfd\xabO\ -\xde\xef\x0f\xeb\xcd\xa1>K\xf4o\xfeLx\xc3\x9a\xac\ -\xae_\xb1\x88\x0b\xeb\x00\xf3\xc6\x00 \xf8z\xffr{\ -\xe5.\x9e\xfe\xb8\xdf?\xde^\xf9\xa5\xb5\xd9\x96\x1c/\ -\x9e\xdf\x01\x0d\xc7\x84\xc4\xb5v\xca\x97\x8fa\xd3\x0cO\ -\xad\x9bl\xb9x\x0a\xf8\x7fFu7>3v\x9f>\ -].\xf0|8\xe0\x88\xed\xea\xf3\x06\xeeO\x7f\x94W\ -\xc7\xfb\xfd\xcb\x87\x03\x92\xf2\xfb\xd5\xb6\xd1\xf2\xed\xd5^\ -\x1evp\xcfQ\x00\x03|\xf4o\x0d\xa9\xb8\xb1\xc6\xc5\ -\xb7\xc6\xc0\xd5c~\xeb!\x5c\xdc\xbd\xf9\xf0q\xf5\x09\ -0\xff\xe3\x06N\xae8z\xf7\xb89\xad\xd6\xab\xd3\xaa\ -CH\xed\xca*\xfe\xa0\xb7o\xfe\xe3\xdb?4\xe9\xbd\ -\xbb\xbb\xf9\xcf\xfd\xe1\x87\x1e\xa50d\xf5~\xff\x0c\xa7\ -oR\x8ej\xe5\xee\x064\xed\xe3\xea\xf4\xcd\xc3#\xf0\ -\x1c\xb5\xf4?\x83b\x05\xb8\xea\x83\xf9\xe8\xd3\xe7\xa7M\ -\xb7.\xaf|\xd8\xb0\xd2~\xd5|\xad\xef@\x92a\xd6\ -\xf5\x9fN\xa04\xfe\x88\xdb41\xd1e\x1fN\xdbM\ -\xd7\x0b\xe2\xc3wPq\xea/\xf9\xee\xba\x12\x81\x9b\x1f\ -\xceI\xba]\xbd\xdflo\xaf~\xbfzZ\x0d\xf6\x82\ -\xe0\x1f@\xdd<=\xee\xd7\x1b\xc1\xceUG\xdd9\x98\ -N\x87\xd5\xee\x88t\xb8\xbd\xa2\x9f[0\xf3_\x9a\xc5\ -\x08\x9a ,}r\xee+e\xc2\x87\x99V\xe5eF\ -\xdf\xe9\xda\x9f<\xdb\x1b[\x8d\x09\xa43:\x9b#\xec\ -\x09V\xc3{o\xc2WmR\xaf\x97\xbfx\xef\xf1\x7f\ -\xaa\x82E+4\x92>\xf5\x16\xe2\xf5\xb9\xa4\xd6\x0f\xcf\ -\xdb\xcd\xcd\xe6\xe3f\xb7_\xaf\xcfV\x9b+t\xb3t\ -\xbd&\x87\xdb\xcd\x15\xb9\xaa\xf7\xf7\xb0\xda\xf6\xe7\xab\xf7\ -\xda[\xed\x8b\xfd\xfai\xf5\x00\xf2N\x8a\x0dF\x00,\ -\xb7\xbd\x0aF\xa1\x18\xac\x01M\x17}\x0e\x0b\x10O\xbf\ -\xccS\x18\xc0[\x98L\xf6ya\x97\xb1\xe4i\x00-\ -m}p\x0b\xbf\x9c\xac\x1fF\xbbt!'\x97\x16H\ -\xe3\x8c\xa3}0.9h\xbb\xe2\xe3\xc0\x7f\xa2\x856\ -\x986\x1a\x10\xad\xf1\x93\x87\x8e\x98\xb2\xc5\x15,X\x03\ -\x9b\x16#/\xdd\xad\x01\xbf\xf2\xe4\xa7\xe1^\xf7\xc9\xc3\ -v\x18\xfd\xd2y\x17J\x81#e\xc3\x87\x80\xa3\x952\ -\xf1\x84\x80\x1d)\x848M\xb0\x89\x9f\xb2\xee\x91q@\ -*&\xe2\x1ep'\xe7C\xdf#\x07\x93E\xeaE\x99\ -\x00\xd8n\xcf\xf1\x17t\x94hR\x8c\xb4\x84\xf3D\x1a\ -<\x8f\x95)\x9e\xd6\x84;\x1a\x9a#\xe4!r8Y\ -\x04W\x05\xb2\xa4\x02#\xe0\x12\xde\xba\x81F\xc2\xa4\x05\ -\x93\x81ng\x9c\xc9\x05I\x0c\xdb\x94n\x11YC\xc8\ -\x14\x02\x13=\x11\xcfR0\x19\xa7\xc0\x0f\xdb\x16e2\ -\x0e\xdd\x0ar7?\xa5)c\x9b\x88Q\xef\xae\xc3\xe5\ -bm}\xe5*\x92\x11\xd7s\xa9\x04[\xb9\xae\xfb\x11\ -\x01\x1c\xde\x01\xbc\x01K\x13\x88\x0e\xcc9\xdb_\xa9.\ -@0\xe9`\x84D\xc6\x01\xed\x08.M=i\x91\xb9\ -tE\xbd\x83\x90Zf\xd0%hO\x90{\xef\x116\ -S\x09\x85\x0e\x05\x7f\x13\x8e\x00\x0a\xf7\xa7\xb0\xcb`s\ -\xe9\x80\xd5\x18J\x84\xe9\xe1L\x94\x8e\x8b\x06\xde\x06\x93\ -J\x0bYul\xfcR\xf2\xe3Q\xffu\xc8~\xe93\ -\x5cb;\xdb\x81\xd8\xdfQ\x86\x8e\xd0Q\x86\xe4\xa7\x1b\ -\xcf\x84\xe9\xb1\x8e\x148\xa7\x1d\xdd\x13\xa9n\xbd \x97\ -.\x9ac1\xae\xbbV\xcf\x8f\xd4\x8b1\x0aT\xf7\x18\ -\xf8\xef\x07\xddS\xb6\x14@\xc6\xba\xa3\x10E\xd8\x89\xf3\ -\xf1.)-xb\x8f?a?\xe3\xaf\xea\x08\x9d\xef\ -\xe1GR\xe6\x87&\xdf>A37\x1d\x12\x96\xc5\x19\ -\x9fs\x13#\xb9t\xe8\x19#dh|A\xf4\xbb\xc0\ -\xb4w3m&\xe7\xd2{\x8b\xf4\xd2\xb9}'g4\ -\xc0-\xf8I\x13\xb4\x061\xe5\x05Q\xa2)\x22\xb7L\ -\xa6\xe0\x16Ur\xe8\x08\x9d\xba\x148\xe8\xfc\x8a7\x85\ -9\x5c\x8eH\xab\x80\xcc\xb0\x00P\x18(i\x92\x5c;\ -5\xb5\xa5\x00\xa2\x03D@\x1cd\xfa\xa1-\ -E\x03Q\x22\x06\xaf\xc7\xdb\xab\xbb\x7f\xc8\x7f}\xa8\xfd\ -7\x89\x00\xdf?\x9fN\x17\x01 \xc5|\xff\x8b\x00\xf0\ -\x22\xda\x9b\xfc2\x94i\x02]g\x01\x0e\xcb\x020\xa4\ -@\x0b\x1c\xb1PP\x22\x0c\xbb49O\x99!+q\ -R2F\xfc(\x88\xdeE\x86\x11\xa6\x10\x93%\x12\xdb\ -4\x11n\x9du)QT\x221H\xf2\x04t\xe3\xca\ -<\x14\xb21]v\x90}\xc1\x1dH{A\xd4\xce\xc1\ -\x11,J\xc6:\x13\x82C\x02\xb5B\xdeR*h[\ -a\x0b/\xd6\x9b\xb4\x0d\xc0\x9dDET\x87\xcb)\xb0\ -;g-:W\xc0\x0c\x1fr\xa7i\xa6\xc9\x85Ny\ -4EoH\x9c\x8c\x91\xc8,\x06\xf6\xe3q=\x12M\ -\x22\x96\xc1P\x04\xcc\x19u\xd8\xf2\x96H9\xfb?\x11\ -\xa9_&\xf8\xf2\x84,E\xb7\x05\xc0\x97\x96@O\x0a\ -#\xd1\x98\xe4N\x7f\x19\xf4\x05\xd4w\x1du\x04<)\ -\xe2\xa9\x10\xe7\x09,\xd1\x97L\xc8\xb5@\xfcY\xaaA\ -\xb4\x1f\xaf\xa6\xdc\xf6\x16\x8c_\xaa\xa6\xaew\xad'X\ -\xfc\x0d\xde\xf9_yW@p<\x86\x8b\xc0\xba\x08\x0e\ -\x82e\xbb\x86\xf6KM\x0d2\xc6\x1b\xcf\xc6\x88\xcd\x18\ -8\x18\x91\x85\x91\x03\x15\x07\xd3\xc94[c\xde\x14\x95\ -\xf8\x7fn}~\xa9\x02\x95A\x07\xd9\xe4&\xd6\xe66\ -\xb2\x02+1$\x8e^,gE\x8c7\x86\x1d\x94I\ -\xfdP\xd2\xb8\x10.\xb3,8qlb\xf0\x13w\xb0\ -\xe2\x85(\x01\xe5\x8es-\xb0\x1a\xe5E@f\xe2e\ -\xc7V\x00\xc1y\x09\x1b)\xa5\x14A>I:\x0b\x1c\ -\xed\x0dv\xe7_\xa5\xab\xc4\xe5\x14\x89I\xcc\xc8)R\ -0D\xd2B\x9aq\xb2\xe4\x89\x82-\xe2h\x09\xa3J\ -\x91&V\x9d\xd1\x22\xebM2\x16S\xde\x00\x0br]\ -\x91\xec\x1c\x1ayLE(\xe7\x03D\xa9Q\x5cX\xc7\ -\x1e\xfed\xc1\xeaROp~\x06\x1aI_9#a\ -\xb6s\x9c\x9d;\xeb\x91\xa5S$@\xca\x91F6\xc7\ -\x1c\x1b@\x98\xc6\xce\xb0\xa1\x04\x0ck\x08W\x0c\x8c@\ -\x88\xf8\xd7:\x08Uxx\xc3N\x82\xe1Au\x0d\x08\ -\x854\xa0\xf0\x10\xd5d\x04[\x0c\xd6\xcf\xdaD\xbdE\ -\xf5e\xea\xdc\x948\xafd\x02m\x97\xc1\xedE\x12\xe2\ -\x16\xb8\xbb\x93\x9d8GV2\xd3\xa9o\xbe\x81\xe7\xe9\ -W<\x97\xb4L\x06\xbc\xa4\x8cx\x06JK\xb6V\x14\ -\x0e\x06JB\x5cg\x0cB\x03\xf1(\xa9\xb7\xc29\xd2\ -\xd4\x81UY\x92\x19\x8a\x82^\xf4\x14%\xf7A\xb0G\ -Wn\xa8\xb8\x85M\x83MC\xe3v\x8e\x96\xbc=\xd9\ -\xd1r:_\xedQq\xce^\xb41\xba\xf2\xd9L\xae\ -\xd4\xdd{,\xa246\x99#\xe4\x93G\x91\x08P\xac\ -m\xe9\xbc|~\x14\x05\xc7>\x8a\xa29\xbe\xa9\x15\xfd\ -\xdf\xb5\xbf\xf8\xff\xf3\xba\xea\x02F\xa9,\x8b5\x98\xdc\ -\x01n\xc1\xefH\xa9\xab\x98l`z\x92\x8c*K\xa4\ -]\xd5A)Nr\xa0\xf8\x0b\xe3\x046g\xa3B\x03\ -\x87\x93\xe8\xbb@\xeaTf\xb0\x0a\xbaho\xdb\x8c\x91\ -\x0f\x81*\xba`\x17\x9d%I`\xce\xc7\xa3\xe1`\x0b\ -=#7q\x1e,\xe0\x0fU\xc7\x0c\x08\x82#<\xb6\ -\xd0Y\xbc\xe4\x8f&\xcc\x19N\xdey\xc6\x0d\xbdo1\ -\xa8Z\x17\xa2\xab9\x8b \x0a\x8e\xcc\xfa\xd8\x1b\x0c\xb9\ -\x91b3\x10\xba\xc1\x81\x9b$\xd8\x9a(\x87\x15\x14\x9a\ -fn.xv\xb5\x00uC\xbc\x8d\x8b\x92\x17\xe4\x1c\ -\x18\xe9\xea:\xa4\x8a\xd7(:xT\x12\x8cL*\xca\ -\xac\xe1\xadl\x0b-Q\xaeH\xe4\xaa4\xa3\xd8\x88[\ -\xe2\x9btS\xe4Elq\x1eld\xea\xf8\x8f\x22\xce\ -\x12\x99\x0d\xb9\xa5\xe8\x84\xb0u\xb3\xceW\x19\xce\x0b=\ -6\xdd\x93\xd4\x0c_\x8b\x9b\xac\x7f\xa6>\xb8\x05+*\ -\x1b\xa7Y\x87\xb7x\x121\x8e\x1d\xa1\xd0\x1c\x9d5\xc9\ -\x80eksQ(bG@/\xad'\x14\x12\xcep\ -\x12\x0f\xc8\xd3\x0e!\x1a\x09\x09\x98\x99\x80@\xa7\xc4\x5c\ -\x8a\x92\xacd\x1d\xa7\x04K\xe8}\x05\xf5\x1b.{\xe8\ -LA\x0f\x85\x86|\x86\xa7\xda\xd1,\xf23\ -R\xcb\xa0\x096\x11\x9aP\xe7\x16\xe4\xdbB]\xf2\xe6\ -~\xf0\xc6\xe2-3F\xfa\x83\x88\x83\xd6\x92\x03\xf4\x18\ -\xf5\x22\x07\x00\xc2\xc8\xb3\x8em'\x1d\x1434'B\ -}\x86\x9ah\xc6\x9d{\xcb\xa3\x98\x98\xba\xf0\xbd\xf9I\ -tIM\xbb\xcc\xcc\x80\xd4\x9de\x1b$8\x91\xa43\ -\xe6\x82\x99L\x9aa\x96\xb3\x99>\x8dQ\xb7\x84(:\ -p\xa4lE)\x08\x03k\x14&\x99y!N\x9f\xd9\ -\x14\x87E\x15E\x9d\xa1\x1d\x14\x17\xf4KP\xaa\xa9\xf9\ -\x09\x12\xab\xd7\xf5Hw\xf6\x92\x8bI\x87\xce\xd1\x0a\xb3\ -\xe8\xe02\xd4\xaf\xa5\xb6U\x13\xc9\xf9\x95\xe4b#\xe6\ -\x1do\xe4,\xfd\xdf\xb6l\xe4\xf8\x93\xcd7\x1f\x1d\x8f\ -\xaf?=\xfe\x9c\xad~\xa1\x09{\xfc\xea(\xf9\x94\xf1\ -\xd5\xbcO\xf8\x0a\x91\xd2,\xfaz|\xe0\xca83\xe9\ -{y\xae=m5K?U\xfe&E\x90g\x1d\xe2\ -Kp\xad\xa1\xb9(C\x9bUbP\x9b\xde\xddK\xf0\ -M\x0eB\x00\x1d\xeb\xfa\xd2\x81\xee\x08\x85\xfcg\xac\x08\ -\xe6J?v\xa0[\xe5\xbdM\x8e%\x17+P8q\ -\xc1\xc9\xf9\xba\x8bT\x8b]\xf6l\xbb\x85\xa5\x18^\xd3\ - z\xc2T8\x03\xa1'\xcc)\xa6\x8b\x13\x8e\xad \ -\xa1\x16#^\xf4l\xbb\xda\xe7\xee{\x09\xa98m_\ -\x19\xcc\x8a6\xed\xacL\x1dW\xec\x86\xe0;\xb92\xaf\ -\xc0.\xaf\xdd\x81\xa9N\xd5\x17\xdd\xc7\x1e\xb5\x92\xe4I\x18\ -lK\x10#\x81\xbf\xa4X\xcb\x04.=h\xba\xca\xa0\ -\xb2\x95\x8a9)6\x88!\xf4\x85D\x5c\xf3\xc7O\xd8\ -\x83)V\x22w\xf9\xe8\x02td-H\xe4%P\xd6\ -8_\xccN^\x88\xc5\xe7\xce\xe9\xeb\xdb?\xce?\xe6\ -f\x1c\xe4W\xbe:\xfc\xef\x9c\x977]\x97\xe3\xdc[\ -\xf8\xbb\xc0H\xfb0\xf0\xaf\xf8d\x9c12!\x9ds\ -&\x8c$\xe0V\xe6\xba\x14\xe0\x0eG\x98\xad\xcc]p\ -\x22\x1a\x17L\x19%\xc7\x88[\x15\x00<\x81\x0a=m\ -\xa6\xa2QO\x15\xf0gmy\xad\x84e\x9e\x04C\xaa\ -$c\xc4H\x93=p\xacEb\xdf8s\x0c\xcf\x8c\ -\x0f~\x8a\xa6E\xbcf\x02\x15,\x03\x13e\xf18\x09\ -\xc8oPC\xa2\xfah\x1a\xd6*\xdcZ\xfd\xaa\xc2\x10\ -\xces\xf9Y\xd7\xd8\x9d+y\xad\x7fU\xf5T\xaf\xcd\ -\xdf`T\x9a\x88\x9dM\x93\xa7K\x93\xe4t\x9f!\x81\ -\xf8\x85A/\xb84\x5c\xa70q%\x10\x9b\x19\xd1\xea\ -\xa3<\xa5\xaa\xdc\xd9-\xba*\xdc\xfe\x8b\x19P\xa6\xbc\ -U\x96\x97C8\x135\x7f\x11QIfJ\x97\xed\x9a\ -\xc8$]L\xa1\xcaT\xe6\xdfH\xd4\x1e\xb1\x8e\x9c\xdb\ -\x05\xa6\xb2\x80f1\xfb\xb5n\x16B\xd4\xa9\xd9N\x19\ -!\xc7\xe2\xd5\x5c\xbel\xcb;\xc0\xaa9\xbc\x9d\xce\xbe\ -\xa4\xcc~\xaeI\xf8\xf2L\xb9Q\xcb\x89\xcf:\xb6\xb3\ -91\xfa\x9e~\x10\xa1uo\x1f\xeb\xa0\xea9\x02\xcb\ -\x0d\x7f=\x0ad\x9c\xe6$\x12(&q\x80kS*\ -\x99Y\x0c\xa8\xd2\x18\x15Y/!g\x02\xc3\xc1\xf6\xa2\ -\xdef\xfe\x95_o\x0fQ\xe9\xd2\xb8\x5czX\xba)\ -\xe7\x8b\xb6\xbeN\x15\xd2\x19+\xef\x1b\xa2\xbc|\xac\x8b\ -\xd4R\xe9\x8a}\x86\xec(\x18\x9d\x15G\xd7\xcf\x0ek\ -\xf9\xb4\x5c\xb1z\xdb\xfa\xb8V\x90*\x86\xe4+@\xf9\ -\x8a\x91\xbd\x8cv&\xd4\x08\xfd\x9b,\xbe\x85\x9c\xa7\xe9\ -\x08\xa0;u\xb8\x1cY\xed\xd8\xea\xedKf\x8c?1\ -Ta\xcd\xc6u\xd2ZoS}\x0f\xb1(d\xdcJ\ -}-/u\xee\xe6l\xa8\x90N\xdd@\xd7QN?\ -\x95d[%\xc8\xe9\x94\xa3\xe9c\x04\xcd\xac\xe8-I\ -\xd6M\x98\x92\x93;\xb7\x13\xcb\xba\x82\x12$\xc4\xacr\ -\x9e\xf5\x0d\xe3K\xea\xe0\xfb\x13\xab\x0a\xaf\x1ad\xd6|\ -\xd5XN?\xdfX\xd6\xff(\x039L\xef\xf0\xbf\x95\ -\x00\x7f\xff\x02o\x04b\x13\ -\x00\x00\x09\xb8\ +troke-opacity:1\x22\ +\x0a d=\x22m 14.33\ +9033,12.813563 -\ +0.20339,22.37288\ +2 19.728814,-11.\ +59322 z\x22\x0a id\ +=\x22path4489\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22 />\x0a\x0a\ +\x00\x00\x06\xcf\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a ?\x0d\x0a \ - \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x11U\ +ow-y=\x2227\x22\x0a i\ +nkscape:window-m\ +aximized=\x221\x22\x0a \ + inkscape:curre\ +nt-layer=\x22svg4\x22 \ +/>\x0a \x0a\x0a\ +\x00\x00\x07\xa3\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ @@ -14633,11185 +12650,12945 @@ ed with Inkscape\ (http://www.ink\ scape.org/) -->\x0a\ -\x0a\ -\x0a\ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title />\x0a \ + \x0a \ + \x0a \x0a \x0a <\ -text\x0a \ -id=\x22text10\x22\x0a \ - y=\x2217.491\ -526\x22\x0a \ -x=\x2231.84049\x22\x0a \ - style=\x22f\ -ont-style:normal\ -;font-weight:nor\ -mal;font-size:19\ -.5622px;line-hei\ -ght:1.25;font-fa\ -mily:sans-serif;\ -white-space:pre;\ -inline-size:0;fi\ -ll:#00d4aa;fill-\ -opacity:1;stroke\ -:none;stroke-wid\ -th:0.489054\x22\x0a \ - xml:spac\ -e=\x22preserve\x22\x0a \ - transfor\ -m=\x22translate(-37\ -2.2659,-536.7128\ -5)\x22>+\x0a <\ -rect\x0a \ - style=\x22fill:#f\ -9f9f9;stroke-wid\ -th:0.833794\x22\x0a \ - id=\x22re\ -ct7\x22\x0a \ - width=\x222.17343\ -45\x22\x0a \ - height=\x226.14476\ -73\x22\x0a \ - x=\x2283.305809\x22\x0a \ - y=\x222\ -2.977808\x22\x0a \ - rx=\x220.843\ -14221\x22\x0a \ - ry=\x220\x22 />\x0a\ -\x00\x00\x0cr\ -\x00\ -\x00|\x03x\xda\xed][o\xe36\x16~/\xd0\xff\ -`\xb8/3X\x9b&\x0f\xc9\xc3CO2\xc5.\x8a\ -\xa2\x0bt_v\xbb\xd7\x97Bc+\x89;\x8e\x15\xc8\ -J23\xbf~\x0f}\x8bd2r6Mw\xd0\x01\ -\x0d\xcc\xc4\x22)\x89\xfa\xce\xfd\xa3$\x9f}\xfb\xe1z\ -9\xb8+\xeb\xf5\xa2Z\x9d\x0f\x95\x90\xc3A\xb9\x9aU\ -\xf3\xc5\xea\xf2|\xf8\xf7\x9f\xbe\x1f\xd3p\xb0n\x8a\xd5\ -\xbcXV\xab\xf2|\xb8\xaa\x86\xdf\xbe\xfd\xfa\xab\xb3\xf5\ -\xdd\xe5\xd7_\x0d\x06\x03\xde}\xb5\x9e\xceg\xe7\xc3\xab\ -\xa6\xb9\x99N&7\xb7\xf5RT\xf5\xe5d>\x9b\x94\ -\xcb\xf2\xba\x5c5\xeb\x89\x12j2l\x8d\x9f=\x8c\x9f\ -\xd5e\xd1,\xee\xcaYu}]\xad\xd6\x9b]W\xeb\ -o\xda\xa3\xeb\xf9\xc5a\xf8\xfd\xfd\xbd\xb8\xd7\x9bQ\xca\ -{?\x910\x01\x18\xf3\x88\xf1\xfa\xe3\xaa)>\x8c\x8f\ -\xf6\xe5y\xa6\xf6\x05)\xe5\x84\xfbZC\x9f8l\xba\ -fpn\xf8\xdfa\xfc\xbeA\xac\xab\xdbzV^\xf0\ -\x8e\xa5X\x95\xcd\xe4\xbb\x9f\xbe;t\x8e\xa5\x987\xf3\ -\xf6q\x16\xab\xf7\xebYqSv\xce\xbbo\xdc\xc2P\ -\x5c\x97\xeb\x9bbV\xae'\xfb\xf6\xed\x01\xee\x17\xf3\xe6\ -\xea|hh\xbbyU..\xaf\x9a\x87\xed\xbbEy\ -\xff\xa7\xea\xc3\xf9P\x0e\xe4\xc0\xd0`\xdf\xbe\x98\x9f\x0f\ -\xf9b`7\xeaA\xe8j\xd7\xbf;\xc9\xf4\xd0%\x85\ -\x07a\x07\xaf@\xa2,g\xea\xc2_\x8c\x06 A\x8e\ -\xa5\x19Kz\xbd\xddm\x7f\x89\xd3y5\x0bS>\x1f\ -\xde\x5c\xfc\xdc\xac\x7f\x9e-o\xd7MY\x8b\x80\xdf\xdb\ -0\xf2\xec\xbal\x8ay\xd1\x14\x9b\xdd\xb6\xf3\xd97)\ -\xd8\x8e\xe1Q,\xcc\xe9_\xbf\xfb~\xb7\xc9\x0d\xb3\xd9\ -\xf4\x9fU\xfd~\xbf\xcd\x9f0\xa4xW\xdd\xf2E\x0f\ -\xdf>\xb4\x9f\xcdgS\x86\xff\xbah\xde.\xae\x8b\xcb\ -2\x88\xee\x0f\x8c\xf6\xd9\xe4\xa1\xa3;\xba\xf9xS\xb6\ -\x8e\xbb=r]n%\x99\xd4\xe9\xf9\xecz\x11\xf6\x9a\ -\xfc\xadY,\x97\x7f\x0e\xa7\x19\x0e&\xc7\x87]4\xcb\ -\xb2\xd5z6\xd9]\xc3\xfe\x1a'\xed\x8b<\x9b\xecQ\ -\xd8n\xce\xcb\x8bu\x0b\xa2\xb0\xa9\xe4\x01\x9e\xeb\xa2~\ -_\xd6\x87\xf3\x1d\x84\xb6n\xaa\xd9\xfb0\xfe\x8fu]\ -\xdd\xab\x1f\xd9j\xebfx\x18W\xd5\x0b6\xc5\xf3a\ -q\xdbT\x0f\xaduy\xf1\xef f\xd9i\xfa\xd7Q\ -\xd3\xe3G]7\x1f\x97\x8cS\xc5\x1as\xb1\xac\xee\xa7\ -w\x8b\xf5\xe2\xdd\xb2\x1c\xc6\xd3[\xac7\x13<\x1f6\ -\xf5m\xf9 \xb4\xb3\x9b\xa2\xb9jI \x9c*4\x19\ -\xebi\xd8j\xe7\xe6\xbf\x0cxR#\xfe7\xf8q`\ -\xf9\xdb\xd8n\xbe\x8e\x15\xabh\xaby\xdb\xba\x1f\xfai\ -\xd0>\xcan\xba\x17,\xb9q}\xbb,\xa7\xe5]\xb9\ -\xaa\xe6\xf37\xeb\xa6\xae\xde\x97\xd3o\xe4\xe6\xb3\xdb\x1c\ -o\xecl\xcaN\xf1\xa6i\x1f\xa5\xa9\x8b\xd5:\xa8\x13\ -\x9b\xd3\xacX\x96\xaf\xa4\xa0\xd7\xdb\xd6e\xd1\x94\xaf\xb6\ -\x13z\xfd\xa0\x16,\xe0\x8d\xd0v\xd2\x0e\x02\xdd~=\ -\x98N\xb0\x9by\xb0\xdb\xddinX\xadf\xd5\xb2\xaa\ -\xcf\x87\xdf\x5cl>\xfb\x09\xbc\xab\xeayY\xef\xfbp\ -\xf3\xe9\xf6U\xec2XE\xd9\xb0\xf7\xed\xd5\xbb_\xca\ -Y\xd3T\xcb\x92\xe7\x18\xf4Z\x1d\x84{Y\xf35&\ -;n\x17\xf32\xd9s\x10i\x98\xe4\xe1d\xe9\xee\xf5\ -U1\xaf\xee\xcf\x87\x10\xf5\xde/V\xdc3\xde\xb92\ -E\x86\x1e\x1b\xb2woJ\xaa\x871\xac\x0f\x07\xcc\x0e\ -\xad\xeb\xab\xea>\x5c\x10K\xb8X\xae\xcb\xe8\x80\x9f\xaa\ -\x8ae\xa6\x85\xb1\xd6\x81\xd7Q\xff\x8c}\xe6\x98@\x10\ -h\x89q/_%\xa1\x00\xb0\x16\xdcc\x93\xe5#\xb8\ -G/\x96\x0f\x00\xf6\xb1\xce\xeb\xe2\xc3\xe2z\xf1\xa9\x9c\ -\xb7\x04\xf7p\xee\xdb\xbaf\xf3\x1d/\x8b\x8f%\xcb\xfd\ -\xd2\xa0\xb2{\xfd:\xbbl\x81ri\x94}\xf0\x15\x97\ -\x1d\x13\xbe4\xd6\x98\xa7\x98\x9e\x96\xb1\xe9\x8d\xe4\xe0\x87\ -\x10L\xfe\x11\xfe\xfb\x81\x03\xcb\x7f\xdac\x1e&Z\xad\ -V\xackU=\xe6)\xdf\x15\xcdm]\xb6t\xe3\xc8\ -\x06\xa7+\xce)\xda\xde\xb35\xe1\xdd\x94\xbdT\x8f\x98\ -\x1e;\xf3z\xf1\xe1\x15[\xa7\xd3\x1e\xbc\x19\xf1\x14G\ -\x0f[\xca\x0b-=\x90\x1b)\x14\xda\xa14\xf8\xba\x13\ -+\x8e\xae\xfe\x7f\xba\x86\x16X\xca\xa9nO\x08j\x83\ -\xb1\xd5\xc2I2H#\xc3_\x9c\xb2h\x07J\x0a\xa7\ -%o\x8d\xc6$\x8c&P\x1e\xbb\xfb\xb6\xb1a_T\ -\x14\xc6\xbcy\xdcY\xc1\xac\x90\xb6\xe8:+\x10\xcek\ -\xe3<\xd2\xbe}\xb9\xe0\x8b)n\xa6\xefn\x9b\xa6\xdd\ -\xf6K\xb5XM9\x96\x95\xf5\xbeu\xb3\xb1d%l\ -\xa6f\xdf6/\xd8\x84\xeb\xba\xf8\xb8\x91\xd5\xbeug\ -\xf5Su\x14\xfa^\x0cS\x9d\xc4\xd4\x080\xc6\x22\x8e\ -\xc6\xca\x08\xef\xb4\xf1v\xc0b\xb6\xa4\xa4\x1fm\xbeH\ -O\x90!MBjS\x90j%\xc8I@VI\xe5\ -\x84\x05\x03\xd2\x0d\xc6\x9e\xd3>\xab\xd1\x8f\x94b\x8du\ -\x8a\xe1\xfd\xbd\x83\xda\x9d\xfe!\xecV\x1c\xe38\x99\xe3\ -\xe4\x7f6;\x05\xfc#{\xbd\x88p\x5cJ8\x86A\ -\x22@mFc\x8eY\x12Y\xbb\xcd\x80\x93\x0bg\xb5\ -r8\xda\xb8\x13\xf0_\x96\xba\x97\xcb\xe5\xe2f}\x94\ -\x93\x7f\x0cA[Z\xefXQ\xbb\x97[\x7f\x08]\xca\ -jrp\xa4\xe0!\x5cs\xb4V\xdc\x09G\xf2\xdf\xc4\ -yk\x85\x06\x90\xda=&\x14\x8dc\x1c\xeb$\xbc\x87\ -\xd9\xbf\xd9\x02\xad\xdd\x8c\xdcvc\xdc\xedK\xe2\xde\x06\ -\xe2\x00:)\x0f\xda\xea\x08\xe0\xba\xba]\xcd\x7f{\x80\ -\x81\x1d\xaa!\xa5\x93\x00Kd-D\x8c\x01v\xc2x\ -\x8d`1\x010x\xc1\xc7C\xadz\x00VO\x82\xb7\ -\xad\xc7\xcf\x82W\x0b\xad\xc8+\x00\xf7\xb9\xe0\xe5\xd0\xe5\ -\xbcU\xda\xc4\xf0\x1aa\x94R^%\xf478e@\ -\xcb\x19g\x02_\x0d\x02\x0dZ\x07}\x0a\xfcD|\xe7\ -\xa6(~\x15\xbe\xe4\xa5G\xc6\xf8s\xe1\xcb\x0e\x92$\ -i\xd0)\xf5\xb5\xc4.-\x09\xaf\x11\x14\xd4\xd7\xa7\xfc\ -\x83f\x8b\x90\xec?\x1e\x87\xf7\xc9\xcaK\xf4\xab\xc05\ -\xe4\xd9\xfa\xd0}>pI2\x82\x9aR\xe0r\xaa\xa0\ -\xa4J\x80\xcb{\x91\xb5\xe4S\xbe\xc1\x84\x22LZ\xd3\ -\xa7\xbb\xf2\xff\xe3z\x83o\xd0\x9e\xc8\xc3o\x0a\xef\xd9\ -\xe4\xf2\xc0\x06\x5c\xc6\xf5Y\xab\xb0i\x11\x09BJt\ -@z4\x06\xcbhr\xd1\xea_\x0f\x8fj:\xc55\ -\xdd\x03\xd3p\x5c\xf1a\xdb\xad$O\x22\x85U`\xb8\ -fj\x95Gg5\xe7.m\xbe-\xb0\x09\x02\xa5\xe4\ -|\xa3cGA98o\xe4J\xa7k'\x1b\xcdp\ -Zk\xdbi\xde\x97\xf2\xc8\x17#\x9d\xf3\x9d`\xb3\xa3\ -\x02\xb4\x0f\xc7\xd3\xaa\xa3\x1a\xe1b\xc2\x9c\x8c\xed\xaaS\ -7\xddQ\xa8\x0f\xd9\xcc\xd1\xe6N\xd8R\xb0# +\ -\x11\x8e\x93\x9b\x8e\xac_L\x03\xde\xdc\x14\x0b.\xdb7\ -\xbc\xcctK\x02\xad\x07a\xb6\x83\xed\xc8#\xbd\xed(\ -LR\x06\x9c\x03z\xadR2 \xa9\x15\x1d\xc9\xc0\x08\ -\xc9\xb9;H\x9b\x16\x82\xe3\x1c\x1f\x1d&\x84\xc0\xb1\x1b\ -\x94\xd1\xdd\xda\xb6-\x84nbt\x94un\xa2\xc9\xa3\ -\x06\xc7i\xabG0\xd6\xd9\xcf \x83U`\x81\x97\x1d\ -\x9cg\x8bz\xb6,\xe3\xaby\x9a#\xef\xf1+\x5cC\ -\x11\xa2\xd1\x9fQ\xd5\xb6\x836\x1a7LP=\xd4u\ -\xc0\xc15s\xc9\xa7\x90\x9c\xe9\xc87\xf8\xf3\xd0\xe1\xb9\ -T\xec\xecQ\x07\xb2*\x83\xb9\x07\xb3k\x15\x1b89\ -\xb3\xe7\x12\xceC\x04\xa7\x14\xe8\xb8\xa6s\x19\xce\xc7\xe1\ -\xc4\x04\x9cV\xfan\xe6\xb5SN\xc7\xb9\x86Q\x19\xcd\ -\xc7\xd1t\x11\x9a\x9c\x1a{c\xbb\xe1d\x07''\x9c\ -\x06\xb3r\xf6\xc0i\x13\xae\xd3\x22'\x92&\x82\x93\x9d\ -\x00\x12\xd7q\x19\xce\x1e\xd7iS\xc6N\xca\xc9\x18O\ -\xd6[4Fg<\xfb|g\x1c\xda9\x1d\x04\xb2]\ -\xb2q\xa7\x9f\xd6*\x84\xec={\xf0\xf4\x11\x9cV\x18\ -g\x8d\xcd\xb1\xe8\x19h\xaaD,BD\xb2\x14\xc1i\ -8\xe4\x1b\xf2>\xc3\xf98\x9c\xa94\xde\x84\xd5\x1cL\ -\xc0\x89\xc6\xdb\x9cw\xf6fJ2\xe1;\x95\xe4RZ\ -\x1d\xe3\xe9\x05ZG\xdd\x22:\xc3y\xe4:\xa3\xb2\xc8\ -sB$\xb5\x04\x9b\x08E\x08\xda\xa3\xcdx\xf6\x84v\ -\x990\xf7\xcd\xfa\x82?\xc6\x93\x84\xd7\x9c)\xf9\x972\ -\xf7\xd4B\xc1\x17\x90*E\x85\xa6\xd6B\x07\xf7i\x12\ -\x80\x92v\xd4\xa5\xda2\xa0G\xb9|\x1c\xdf\xb5\x11\x1c\ -\xc3]\x5ck\x12\x97\x9a\x01\xe9\xac\xa1}\x1a:\xa6\x04\ -\xa0H\x80\x04qD\xb2aQVA\x06\xb4'\xc2\xc7\ -l\x88\xb6\x1c\x94\x1ci\x8a\x01\x05\xeb=\xa1\xcf\x80\xf6\ -\xb0!q\x81\xc4>\xd4\x19\x00E\x09\xee\xd3r\xb5\xe9\ -\xb2\x86\xf6\xf2!qV\xcf6\xcf\xa5%\x17\xf1\x89\x9a\ -S\xdb\x90\x00dD\xfb\xc2\xfc8J\x9c4\x0a\x90q\ -\xda\xc4\x1a\xaa\x8dU&\xe3\xd9\x97\xd6'\x14\xd4qu\ -I\xce\xe9\x1c\x94\x9eC\x8a\xc4\xebG\x1c\x94\xc8H\xe5\ -|\xa2P\x02OF\xe5\xa0\xd4G\x8b$\xa2|X\xf3\ -pV'\xf0\xe4:II\xccx\xf6\xf1\x22\xf1\xaaG\ -\xf0\xa0.pM\xc7\x88:\xc1\x1eT{k3\xa2}\ -\xd4H\x22oR\x5c\xb4k\x04\x93\x88JF9C\x19\ -\xd1^r$\x11\x96\xc2\xedf@\xf1M\x0d(\x5c\xe0\ -M|\x0eK'\x10M`\x1a\x969\xc0!\xc6\x05\xbd\ -\x95R;\xca\x9e\xf4\x14\xa6qMO\x82\x0d\xff\xe8\x9e\ -\xf4]t\xd2\x9c\x90\xfa\x9c\x8f\x9e\xc24U\x85\xa2\xd6\ -N\xaa\xc4*2W\xf5\xa6\xbb\x5c\x9f1M`\xea\x12\ -\xb6/\xc1\x1f=|\xb2\xc3\x14$8\x951=\x85\xa9\ -N\xe4QD^\xc5\x8csX\x00u\x0e\xba\xc1\xeb\xd9\ -\x98\xa6\xef\x97\xfe\x12(\xfc\xc4\xddbJ\x90\xf2\xa4#\ -\xce\x19,gX\xac\xa7.C\xdaK\xe2'\x97\xe9\xb5\ -\xe3\x14\x14\x13\x90\x1a%\x9d\x84\x0ci/\x8d\x9fX\xaa\ -\xd7B\xa14qI\x0a(\xc2J\xbd\xcdZ\xdaO\xe4\ -'n\xcd\x09O\x0a[\x94\x94\x804,\xeaQ\xd6\xd2\ -~*?y#3(\xce\x97\xa2\x90\x0f\x9b\xe7?\x10\ -\xb3\x96\x9e \xf3\x93\xce\x144\xd7\x9f1\xa6\x5c\x07H\ -cL\xc6\xf4\x04\x9d\x9f4\xfd\xcdM\x8e>\x11\xa0\x00\ -Q*\xcc\x98\xf6R\xfac\x13A\x8aB\x01Z\x93\x03\ -\xd43I\xfd\xc4\x9d\xf7Fh\xe5|\x9c\x98\xfa\xf0\x8a\ -\x8b\xa3g\x813\xa2\x11\xab\x1fS'\x1c\x9f\xa4\xb3:\ -.\xf3\x19RM\x1e\xa5\xca\x90\xf6\x13\xfb\x09\xc3\x0f\xcb\ -\xcd Ul\xf8\xac\xbe\xde\x91\xcfi\xd4\x09j?\xf1\ -\x90H\xe0\xf0\xc3\xb2H\x22\x8f\xd2\xa8=e==E\ -\x9d\xa4\xee~\xe4r\x1eUD\x9d\x80\x16\xe8\xc2+\x83\ -2\xa6\xa7\xe8\xfd8\xe3'\x01\xce\x81\xa5T&%\x15\ -\xd0\x0b\x91|_2\xaa\x94\xe0\xa40\xbc\x15\x85\xa4K\ -\x85~R\x92\xb2\xae\x9e\xa4\xf8\x13\x95\x14\x08\xa5\x94q\ -\xd1\x22\xb4\x96\xc2sB\xe53\xa8\xa78\xfe\xd8\xad\x86\ -\x171\xb8\xe37\xaa\xed@U\xc6C\x8eT'I\xfe\ -\x84\xfd\x1b\xa14\xa3j\x12\xa0\x1aM\x96r\xea\xdf\xc7\ -\xa3D\xec)\xb0\xe5\x03\x91\x8csT)\xa4\x05\x9d\x8b\ -\xd3~\x8e?\xb2\xfa\x903\x11\x1a\x1b\xaf\x97\xb2?\xd0\ -\xe02w\xda\xcf\xf0c\x02P\x83\xde\xc47\x99\xb2\x86\ -\xa2:~3U\x06\xf4\x98\xdf\x8f\x82} \xf15Z\ -\xb4\x09\x0dEo\xad\xcd\x80\xf6\xb2\xfbQM\x0aJX\ -\xa2\xd4\xa2\x1e\x08\x13\xde?\x97}h?\xb7o\x136\ -o\x8dr\xa83\xa2\xcfc\xf6#.\x0a\x8c\xf0D\x18\ -\xbf\xfa\x85\x95\xd7pF\x95)\xd3~^?\xa2\xa0\xc1\ -\x89\xb0l\x97 L\xc3\x8b\x9e\x10)\x97\xf7\xbd\xac>\ -&\xc2\x92\x94\xca\x18L\xb0P\xe4\xb4\xf6\x94\x01\xed#\ -\xf5m\x22\xb5\xe7:\x89\xbcJ\xd0\xcf\xc6\x822\x19\xd0\ -~J?VQ+P{\x97\xb8o\xcf\x09\xceP!\ -\x97\xf4\xa7\x08\xfd\x88%\xe5$\xde\x81\xd4\x08\xa9\xb8D\ -(m\xa6\x9e\xfaY\x12\x970{\xd0\xde:J(\xa9\ -\xf3h\xb5y\xb1wC\xc4/\x95\xfe\xdd#j\x12\xf7\ -?+\xb0R\x9b\xc4\x82\x13\x10\xba\x17{\x93\xc1\x17\x09\ -\xa7N<\xf0d\xc3\xcb\xf8\x95J\xdd\x02\x89\xa4^\xf0\ -EE_ \x9e\x98|\xa8\xd9\x84j\x1e\x12\x0aJ\x16\ - \x03\xda\xcf\x8f\xa4\x9e\xc8s$\xd1\xb8\xc4me\x12\ -\xbd\x86l\xf1\xbd\xfcH\xca\x85r\xe9\xe9%$\xd6\xec\ -\xc89\x0f\x19\xcf^z\xc4=\xf9\x99\xd1\x0c\xe8\xd3\xd8\ -\x11\x93xr,\x94\x98\xf1\x0b\xb54W\xf3\xd29T\ -\x19\xd2>zD?\x19Pv\xa2\xca(t9\x0b\xed\ -\xa5G\x9e\xfa\xa6\x8d\xf0\xb0\xb3\xd4G\xbf\x04\x91\xe1\x8c\ -\xeex\x8c\x9f\x15\x05AR\xb9\x98nbD\xadQ\x04\ -YAO\xb0#\xa9\xc7o\x11\x95%\x9d3\xfbg\xb1\ -#\x94zF\x5c\xa1\xf5)'\xea@\x1a\xd0\x19\xd1^\ -r$\x95\x8a\xc2\xe6w\x0eS7\xe5iI}/z\ -\xdc\xff\xf0\xcc\xf6\xefY\xf8ud\xfe\xfb_\x1e\xdf\xba\ -r\ -\x00\x00\x08\xac\ +#999999;stroke-w\ +idth:1.33333337\x22\ +\x0a d=\x22M 26.44\ +0678,96 V 24 h 7\ +2.000004 71.9999\ +98 v 72 72 H 98.\ +440682 26.440678\ + Z m 64.000004,3\ +2 v -24 h -24.00\ +0004 -24 v 24 24\ + h 24 24.000004 \ +z m 63.999998,0 \ +v -24 h -24 -24 \ +v 24 24 h 24 24 \ +z M 90.440682,64\ + V 40 h -24.0000\ +04 -24 v 24 24 h\ + 24 24.000004 z \ +m 63.999998,0 V \ +40 h -24 -24 v 2\ +4 24 h 24 24 z\x22\x0a\ + id=\x22path817\ +\x22\x0a inkscape:\ +connector-curvat\ +ure=\x220\x22 />\x0a\x0a\ +\x00\x00\x0c\xa5\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\xa8\ +-layer=\x22svg6\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:w\ +indow-y=\x2226\x22\x0a \ + inkscape:windo\ +w-x=\x2260\x22\x0a in\ +kscape:cy=\x2224\x22\x0a \ + inkscape:cx=\ +\x22-34.05977\x22\x0a \ + inkscape:zoom=\x22\ +4.9166667\x22\x0a \ +showgrid=\x22false\x22\ +\x0a id=\x22namedv\ +iew8\x22\x0a inksc\ +ape:window-heigh\ +t=\x221017\x22\x0a in\ +kscape:window-wi\ +dth=\x221860\x22\x0a \ +inkscape:pagesha\ +dow=\x222\x22\x0a ink\ +scape:pageopacit\ +y=\x220\x22\x0a guide\ +tolerance=\x2210\x22\x0a \ + gridtoleranc\ +e=\x2210\x22\x0a obje\ +cttolerance=\x2210\x22\ +\x0a borderopac\ +ity=\x221\x22\x0a bor\ +dercolor=\x22#66666\ +6\x22\x0a pagecolo\ +r=\x22#ffffff\x22 />\x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a \ +\x0a ~\x0a\x0a\ +\x00\x00\x0b\xdf\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0a \ +\x0a \ + \ -\x0d\x0a \x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x05\xf6\ -\x00\ -\x00\x15\xe2x\xda\xe5X\xdbn\xdb8\x10}/\xd0\x7f\ -\x10\x94\x97\x04kI\xbc\x8a\xa2j\xa7\xd8E\xb7\xe8\x02\ -\xdd\x97m\xf7\xfa\xa6H\xb4\xa3F\x16\x0d\x8a\x8e\x93~\ -\xfd\x8e,\xebb[\x0e\x5c\xa4E\x81]\x07I\xc4\x99\ -!9s\xe6\xcc\x90\xf2\xf4\xf5\xc3\xb2p\xee\x95\xa9r\ -]\xce\x5c\xec#\xd7Qe\xaa\xb3\xbc\x5c\xcc\xdc\xdf?\ -\xbe\xf5\x22\xd7\xa9lRfI\xa1K5sK\xed\xbe\ -\xbe~\xf9bZ\xdd/^\xbep\x1c\x07\xa6\x97U\x9c\ -\xa53\xf7\xd6\xdaU\x1c\x04\xab\xb5)|m\x16A\x96\ -\x06\xaaPKU\xda*\xc0>\x0e\xdc\x81}\xda\xdb\xa7\ -F%6\xbfW\xa9^.uYm\xa7\x96\xd5\xc5\xd0\ -\xdad\xf3\xce|\xb3\xd9\xf8\x1b\xba\xb5\xc2R\xca\x00\x91\ -\x80\x10\x0f,\xbc\xea\xb1\xb4\xc9\x83w0\x17\xfc\x1c\x9b\ -K\x10B\x01\xe8\x06\xa6g\x9a\xc5\x15\x80\xb3\x82\xdf\xce\ -\xbe\x15\xf8\x95^\x9bT\xcda\xa2\xf2Ke\x837\x1f\ -\xdftJ\x0f\xf9\x99\xcd\x86\xeb\xe4\xe5]\x95&+\xb5\ -\xb7o+l`H\x96\xaaZ%\xa9\xaa\x82V\xde,\ -\xb0\xc93{;sY\xd4\x0coU\xbe\xb8\xb5\xfd\xf8\ ->W\x9b\x9f\xf4\xc3\xccE\x0erX\xe4\xb4\xf2<\x9b\ -\xb9\x10\x0c\xd9Y\xf5I\xc7;\xfdn\x93\xb8S!_\ -\x12\x9f9\x97\xeb\xf2\xae\xd4\x9b\xf2\xaa\xb1kc\x8a3\ -\x9d\xd6>\xce\xdc\x0f?\xfb5J\xd7\xb5z\xbaT6\ -\xc9\x12\x9blm\x9b][\x11&\x8d\x0dXA\xca\xe2\ -\xdf\xde\xbc\xdd\x0dA\x90\xa6\xf1\x9f\xda\xdc\xb5c\xf8\xd4\ -&\xc9\x8d^Ch\xeeu/\x9ffi\x0c /\x13\ -{\x9d/\x93\x85\xaa\x13\xf4\x03`:\x0dz\xc5\xbe\xb5\ -}\x5c\xa9\xc1\xba\xcd\xcaF5\xf9\x1aen\x96.\xf3\ -zV\xf0\xc1\xe6E\xf1K\xbd\x8d\xeb\x04\x87\xcb\xe6\xb6\ -P\x03\xe94\xd8\xc5\xd0\xc6\x18\x0c\x83\x9c\x06-\x0a\xcd\ -0S\xf3j\x00Q=\xc4\xa8\x83g\x99\x98;e\xba\ -\xfd\xba\xd4TV\xa7w\xb5\xfd\x8f\xc6\xe8\x0d~\x0f\xb5\ -i\xac\xdb\xd9i\x93C\xc1\xcd\xdcdmu/5j\ -\xfew\x9dL\xb4'\xfa\xeb@tz\xd5\xca>\x16\x80\ -\x93\x06^\xcc\x0b\xbd\x89\xef\xf3*\xbf)\x94{\xec^\ -^m\x1d\x9c\xb9\xd6\xacU\x9f\xb4\xe9*\xb1\xb7\x83\x0c\ -\xd4[\xd5\x22\xc6e\xe4\x0e\xe4 \xfe\xd5\x01\xa7&\xf0\ -\xeb\xbcw8\xd6\xbc\ -\xc6]r\x17\x06b\x1cU\xac\xf3L\x8dj\xba\x94\xd6\ -Nv\x9b\x8d\xab\xab\xdb$\xd3\x9b\x99K\x8e\xb4\x9b\xbc\ -\x04\x8d\xb7kX8\x0a\xe9)\x93\xb6\x89aD\xb8;\ -\xa8\x8b\x0e\xb3\x8e(\xd5\xad\xde\xd4\x01A\x86\x93\xa2R\ -G\x0b~\xd6\x1ar\x86\xa9\xcf\x09\x8a(;\xd2\xa7\xd0\ -\x19\x09\xf3\x05\x22!9v'\x85(\x09\xf6\x85\xc0<\ -<\x19\x0f\xac\xc0\xc5)e\xbd\xc0I\xe52y\xc8\x97\ -\xf9g\x95\x0d\x12\xd7\xef\xbd6\x06\xca\xd7+\x92G\x05\ -y_H\x84[zM\x17\x03L\x16\x0c\xf3\xbeU,\ -\xf6*x\xc18c\xe7T\x1eE\xc7\x957A\xce\xbb\ -\xfa\xc4\xf8\xa3\xfe\xf3\x0eN\x8f\x7f\x866\xbd\x9f\xba,\ -\x81j\xdax\xe0\xf1}b\xd7F\x0d\xa8qP\x82q\ -\x09\x17\x87a\xf3\x1c8\xbcs\xb9\x8es\xbc\xf2\xa0\x97\ -\x9b\xfc\xe1\x12\x8aSPI$\x9b\x80\x8b\x93~$\xa0\ -&%\x04\x8c'\x14\xf9\x82\x12\x89\xe8\xd5\xdeQq\x10\ -\xfd\x17\xc50\x00\x0b\x0b\xbc\xaf\xa9\xcf4\xc7\xe3\xc4\x97\ -\x1cI\xcc\xa0\x1d\xb1\x90\x09\x8c\xa8#}F\x08A|\ -\xe2\xc1\x13\x22T\xc8\xfd\x99Cd.TX\xff\xbc:\ -\xdd\xa9\x04\xa6\x22\x8d\xf6;\x15\xf1\x85\xa4L\xc8\xb0\x93\ -\x179\x84\x92\xac\xe2\x9b\xb5\xb5C\xd9'\x9d\x971\x1c\ -d\xca\xb4\xd2\xed\xa0\x00\x06\xda\x98\xb5\xb2,\x81\xfa5\ -&y\xdcf\xaa\x95\xeeJ>>\x08\xbc\xefe\x1a\x1a\ -\x07\x9c\x90poJ\xd3\x83\xb3\xf1\xab\xa1NGQg\ ->a\x8c\x87\xe1\xc4\xc3\xcc\x97\x822\xc9\x01v\xca#\ -\x8c\xe4d\xfb\x80dD\xbe\x15\xec\x82|9\xec\x1d\x98\ -\xe7\xe7\xe1[A\xca\xc7 \xa5\xd8\x8f\xea~(\x00R\ -\x01}\x93\x11$\x1c p\x84\x18\x8e\xa2\x09\xc6>c\ -\x119L\xc7\xff\x92\xca'f}\x95\xdc\x88\xb1\xdc0\ -\x00)\x22!e\x13\x8fBG\x09\x81\xdc\xcc\x81\xcb\x87\ -\xe0\x14\x8bp\x82\x9b\xc6\xf7\xdfb\xbb*\x8a|U\x1d\ -\xdc\xd9\xe1\x5c\xa5>\xe2\xe0Rx\x00\x94y\xa8U\x98\ -\xd3H\x90\x03~\xd7\xc7y\xe8\xcbP\xa2\x88\x1f\xcc\xaa\ -\xef\x01u3\xe1!\x90\x9b\x9dJ\x0a\x0d\xbd\xd0\x1b'\ -~\x1fg\x03t\x18\x224\x9f7@\xef\xebFq\x1f\ -R\xb4\x03=\xc2\x92PN\x8f\x006z]f\xcf\xa1\ -\xfey\x00\xc3\x81&X\x04|\x18\x03\x18\x85\xc0\xc2\xfe\ -\x1e\xda\x03,|&iHx8\x020\x81.\x02 \ -R\xfc\x04\xc0\xf8,x\xa5\xe4\xfcY\xf0R\x9f\xe2H\ -bB\xc4\xf7\x82\x17N.!9\xa6\xec\x18^\xe63\ -\x8c\xb1\xc4#\xfc\xad{2\x099\xe1|\x04_J\xfc\ -\x90\x85\x5c\x90\xa7\x08|\x16\xbe\x94\x22\x14\xa1g\xe1\x1b\ -I$C\xc0\xf8{\xe1\x0b\x0d2\x82;?\xa1c\xf4\ -\xe5\x11\xb4\xb4Qx\xb7\xb7\x08)\xc7\xe8\xcb\xa9/B\ -\x1a\xe2'\xe8{\x16\xb8bN\x92g\x92\x97\xc1U\x17\ -^\x03\xc5\xf7\x037B\x80 \x8d\xc6\xc0\x95\x84c\x84\ -G\xc0\x85Y\x11\xe7\xd1(\xb8\x0c\x82\xe2\x88\xb3\xa7\xb8\ -\x8b\xce\x82\x97s\x842\xf6\xcc\xde@e\x14I\xf2M\ -\xe1\x9d\x06\x8b\xee\xdb\x82\xc5\xf1\x0b\xdc\xe0\xcdg\xf0E\ -\x83\x8fP(HD'\x1e\xe1\x80\xa6 R^\xb9\x07\ -/}\x18^\xfa\xdaW\xc5\xed\xca\xd3\xfak1\xf8\xff\ -/\xd8%\x17w\ -\x00\x00\x07\xd6\ +1\x22 />\x0a BusBar\ +\x0a\ + \x0a\x0a\ +\x00\x00\x09\xe9\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x09q\ +dow-height=\x221016\ +\x22\x0a id=\x22named\ +view4\x22\x0a show\ +grid=\x22false\x22\x0a \ + inkscape:zoom=\ +\x221.7383042\x22\x0a \ + inkscape:cx=\x2220\ +8.24894\x22\x0a in\ +kscape:cy=\x2288.87\ +9725\x22\x0a inksc\ +ape:window-x=\x2255\ +\x22\x0a inkscape:\ +window-y=\x2227\x22\x0a \ + inkscape:wind\ +ow-maximized=\x221\x22\ +\x0a inkscape:c\ +urrent-layer=\x22sv\ +g2\x22\x0a inkscap\ +e:showpageshadow\ +=\x222\x22\x0a inksca\ +pe:pagecheckerbo\ +ard=\x220\x22\x0a ink\ +scape:deskcolor=\ +\x22#d1d1d1\x22 />\x0a <\ +g\x0a id=\x22g1024\ +\x22\x0a transform\ +=\x22matrix(1.11809\ +76,0,0,1.1180976\ +,-2.290899,8.095\ +787)\x22>\x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x0b\x1c\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x221.7383042\x22\x0d\ -\x0a inkscape:c\ -x=\x22133.79315\x22\x0d\x0a \ - inkscape:cy=\ -\x2271.379447\x22\x0d\x0a \ - inkscape:windo\ -w-x=\x2257\x22\x0d\x0a i\ -nkscape:window-y\ -=\x2227\x22\x0d\x0a inks\ -cape:window-maxi\ -mized=\x221\x22\x0d\x0a \ -inkscape:current\ --layer=\x22svg2\x22 />\ -\x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a sod\ -ipodi:nodetypes=\ -\x22cc\x22\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path81\ -2-3\x22\x0d\x0a d=\x22\ -m 134.96147,95.5\ -94487 -79.795108\ -,0.0945\x22\x0d\x0a \ - style=\x22fill:#ae\ -aeae;fill-rule:e\ -venodd;stroke:#a\ -eaeae;stroke-wid\ -th:16;stroke-lin\ -ecap:round;strok\ -e-linejoin:miter\ -;stroke-miterlim\ -it:4;stroke-dash\ -array:none;strok\ -e-opacity:1;fill\ --opacity:1\x22 />\x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x05\x14\ -\x00\ -\x00\x13\x92x\xda\xe5XK\x8f\xdb6\x10\xbe\x17\xc8\x7f\ -\x10\x94K\x82Z\x12IQ|(\xf6\x06(\x82\x00=\ -\xf4\xd2\xa6\xe81\xe0J\xb4\xad\xac$\x1a\x94l\xaf\xf3\ -\xeb;\x94\xac\x87c/\xb2m\xd1\x02M\xec],\xe6\ -\xc1\xe1\xcc7\x0f\x0ev\xf9\xf6\xb1*\xbd\x83\xb6Ma\ -\xea\x95\x8fC\xe4{\xba\xceL^\xd4\x9b\x95\xff\xfb\x87\ -\xf7\x81\xf0\xbd\xa6Uu\xaeJS\xeb\x95_\x1b\xff\xed\ -\xdd\x8b\x1f\x96\xcda\xf3\xe2\x07\xcf\xf3\x8a\xfa\xa1\xc9\xd4\ -N\xa73\x1b8$\xde+\xa4\x10\xca\xd6I\x1c\xcb\x85\ -G\x10!\x01\x82\x1f\xfa\xda\xefN5p\xc1\x0e~\xd3\ -\xdcd\xb5\xaa\xc0\xae\xca\xf3\x8f\xfa\xb1\xd5\xb6V\xe5\xc7\ -\x8d-\xf2\x10n\xe8\x95\x8b|\xe5\x03\xc1zj~\xcf\ -\x99S\xe8\xe3O\xe6q\xe5#\x0fyT\xc0O\xcf\xdf\ -\xeab\xb3mW\xfe@\x1f\x8b\xbc\xddN$\x04^7\ -\xe9\xe0\xff\xca\xdf\xb6\xed.\x8d\xa2\xe3\xf1\x18\x0e\xcc\xd0\ -\xd8M\xe4\xfckv*\xd3M4\xf0\xe7\x06\x86PF\ -\x03\x03#l\xcc\xdefz\x0d6tX\xeb6z\xf7\ -\xe1\xdd(\x0cP\x98\xb7\xf9\xcc\xce\xc5\xfd\xc7\xb8\xbb\x99\ - \x84\xa2\x11\x86\xf3u\x87\xcdsUm\xbe\xbe\xa5\x8a\ -\xa5\x94\x11\x22\x11\xa4\x044\x82\xe6T\xb7\xea1\xa8\x9b\ -\x97\xf3\xb3Y6\x1e\xcd\xacVmq\xd0\x99\xa9*S\ -7=&\x97\xda\xf9\xa4\xbd\xdb\xdb\xb2S\xc9\xb3H\x97\ -\xba\xd2u\xdbD\x90\xaa\xc8\xbfs\x07\x96\x95nU\xae\ -Z\xd5\x9d\xees;\xb00\xe9u@\x0b\x1cK\x7f}\ -\xf7\xfeL\x02#\xcb\xd2?\x8c}\x18h\xf88\x15u\ -o\xf6\x90`\xffn\xe2/\xf3,\x05\xc8+\xd5\xde\x15\ -\x95\xdah\x07\xca\x8f\xe0\xe52\x9a\x04\x97\xda\xedi\xa7\ -gv{\xcbV\xf7\xd9\xbb\x19W\x9eU\x85;\x15\xfd\ -\xd6\x16e\xf9\xb3\xbb\xc6\xf7\xa2\xc9\xd9\xe8\xec\xed\x10M\ -4\x0fg\x19\x0d\xf1\xf6d\xae\xd7\xcd\x0c\x0cGb4\ -\x98[\x8e\x8d\xe2\xaa0w\x95>\xe8\x0e}\x07\x1d\xb4\ -w(\x07\xd6\xb4\x90'\xd7\x19\xc8\xffR)\xdb[\xeb\ -tJu\xd2v\xdeM3\x9dcQ\xe7\xe6\x18T\xea\ -\xb1\xa8\x8a\xcf\x1a|\xc1O\xe9\x9cV>\xe1O\x09\xa1\ -\x11Yr\xed\xc1\xc9u,\xe5(\x11\x82\x5cK\xe1P\ -@\xc5Y~%\xfelL\xb5\xf2E8\x9am\xb6\xe6\ -\xe8\x86\xc4\xca_\xab\xb2\xd1\xfe\x0c\xc0\x11(\xf1\x94\x83\ -\xc3\x5c\xc0\x08?\x89\xc2yV\x10*\xafC\xd9A\xbe\ -\x9b\xad\x025P\xb8)50.\xa0Bf\x99\xd8\xec\ -\x8b\x5c\xb7\xa6\xd4V\xd5\xae\xaa\xf0$\x810n\x0a\xcc\ -\xfd'\x9d\xb57E\xf7\xc6\xe6\xda\x8e\xb7\xe0K~f\ -J\x03I~\xc9\xba\xcf s~\x0d\x92u\xf7\xb9\xe9\ -z\xb6\xd5\xd9\x83\xb6\xf7F\xd9\xdc\xf9?\x14\xe2N\xb5\ -\xdb\xb3\xfe\x1a\x8a\xde=\x04\xf5\x05\xeeNaD\x03\xe8\ -_`\x1ao\xa98P\xb1\x85\xcc~\x1e\x0dm\xce*\ --D\xd5\xb8\x86\x84\x01\xa0Z[<\xbeB!f\x02\ -QD\xe3\x05r\xdf\x89$$D\x82pF\x16\x01\x0b\ -\x19\xe6\x84&\xe2\xf5\xfc\xf2\x8d\x88G\x10\x9a\xf6T\x02\ -Z\xce\xcb\xf4\xa5\xd2\xee\xfb\xc6\x11\xc1\x19\xaf\x14\xbfi\ -Zk\x1e\xf4(\xed\xc9\xa0,j\x0d8\xa4\xd6\xec\xeb\ -|`~y\xa8\xaf\x8c\x14\xf3P$DPF\xc5 \ -\x80\x99\xa0m\x09\xbd\xd3\xa6t\xe0\xe5\x0a\x0a\xc5Zu\ -J;\xb8\x86\x810\x03s\xf6\x16\xd6\x06J\x04\xc6\x0a\ -\xbc\x05Y\xe6\x8f\xf2\xa9IL\x0d\x0e\xb6\xc6\x06\xd0\xce\ -\x07\xd5\xee\xad\x9eU\xd8\x94\x05\x81\xc9\xc4t\xf3\xd5\x93\ -I\x88$\x96<^$,\x04\xf8\x08\x8d=\x04,J\ -\xf9\x82\xcb\x90\xcb\x04I>\x9dy\x06\x82\x1di\xf7\xa5\ -N\xf5A\x83\xe3\xf9\x13\x98>\x89\xd6M\xb0\x1d\xf3\x93\ -)\xea\xb4\xc3\xf2\xf9\xc0^%k\x1a\xc7\xff>\xd6A\ -\xfc\x05\xda8\xa6\xa1d\x18\xb0\x05\xdc\x13\x00Yp/\ -\xe8a\xc6H,:\xe0\x93o\x11\xede\xb4\xb9\x1a\x16\ -\x03P\x12\xf1\xd9p\xa8<\x02\x8fA\x9c\x10\xc6\x16,\ -$\x0cq\xc9\x5cEb\x16\x93\x05\xa6\x0e5(\xc9\x7f\ -\xdc\xd1=\x1e4D\x08\x96\x9e\xff\x18\x8b\xdb\x18L\xc5\ -\xe2F\xa4'B\xc6(#\x08/H\x1c\x12,$\x11\ -\x1eT\x8f\x00h\xf8\x82\xc2\xda\xc4\x10\x8b\xd9\xff\x12\x87\ -\xc1\xe7\xdb\x1d\xf75\x94\x82\xabj\xc1\x12\x8b\xee%\xa0\ -q,\x04\xf5\xa0J\x10\xe7\x12\xa0\x93\x80\x17aX|\ -\x8f0\xc5\x170\xf1\x90q*\x09Y\xc4$\x8cc\x9e\ - \x01\xc3($2\x96\xf0t\xca\x90PNP\xf2\x0d\ -\xc3dad\xdf\x88\xae3\xf9\x17B\x8b\x9f\x17\xd4\x05\ -\xf7o\x04\xf5f\xa7\x0a\xd8\xc9\xbb\x9d-\xad\x94\x85\xb5\ -\xab\xf1z\xa5n\xc7\x9a/8.2\x91\x8c8\x0c\xeb\ -\xa9\x0894\x01\x1b\x9beXm\x09,OH\xa0x\ -\x5c\x04`\xbf\xe6\xf0\xf2\xc3SD\xc7\x92q[<\x0e\ -e\x02\xc5\x11\x7f\xbd\xd2.v;7\xa4\x88@(\x8e\ -\xbb\xc1\xc5\xa5\x8c)\x0c3\xd8\xa8\x114)\x0c.B\ -0\xa3\xe4\xbb\x1c\x5c\x01\xbb@\x0a \xe6\xf0\x1a\x93~\ -vI*\xe4\x8d6\xfd.GW\x90\x5c\x96T\x02\x8b\ -\x00\xec\xa8\xb8\x83EB\xb5S\x07\x9e\xe4\x09g\xd2\xd5\ -\x14\xa3\x09\xc7\xf2[\x85j\xe9\xfeS\x01\x7f\xff\x04F\ -\xea\xf2\x89\ -\x00\x00\x15\xb8\ -\x00\ -\x00P\xd9x\xda\xed\x5cYo#Wv~\x1f`\xfe\ -C\x85~q#$u\xf7E\xd3\xf2\x00\x19c\x90y\ -J\x90\x19#\xcfl\x92-)\xa6H\x81\xa4z\xf1\xaf\ -\xcf\xd9\xeeREIn\xc3q\x12\xcfXm\x83\xbc\xb7\ -n\xdd\xe5\x9c\xef\xacu\x8ao\xff\xf8\xe9a7|\xd8\ -\x1eO\xf7\x87\xfd\xcdL/\xd5l\xd8\xee\xd7\x87\xcd\xfd\ -\xfe\xf6f\xf6\xdd\xdf\xfe\xbcH\xb3\xe1t^\xed7\xab\ -\xdda\xbf\xbd\x99\xed\x0f\xb3?~\xf3\xfb\xdf\xbd\xfd\xa7\ -\xc5b\xf8\xd3q\xbb:o7\xc3\xc7\xfb\xf3\xdd\xf0\x97\ -\xfd\xf7\xa7\xf5\xeaq;|}w>?^_]}\ -\xfc\xf8qy/\x9d\xcb\xc3\xf1\xf6\xea\xcd\xb0X\xc0\xad\ -p\xf3\xe9\xc3\xed\xef\x7f7\x0cp\xe3\xe6|w3s\ -iF\xcd\xbb\xed\xfd\xed\xdd\xb9\xb5?\xdco?\xfe\xcb\ -\xe1\xd3\xcdL\x0djpi\xa9\xf0O\xb7o<\xea~\ -s3\x83\x09\x8d\xdc\xd3\x8eR\xae\xcb\x1e\xae\xfbKK\ -3|\xadVJ\xad\xdf{k\xf3|0\xca\x98\x85\x82\ -\xff\xdc\x1b\xbe\xeb\x04$x\x84\xff\xaf7\x87\xf5~\xf5\ -\x00'\x7fX=\x0e_\xaf6\x9b7KX\x8d\x07\x01\ -\xed\xf6\xa7\xeb\xb2\xc0\xcd\xec\xa5\x93\xe3\x04\xa7\xc7\xd5z\ -{\xba*\xfd\xfd\x04e\xad:A\xe9X\x9e\x0eO\xc7\ -\xf5\xf6=\xcc\xb1]\xee\xb7\xe7\xabo\xff\xf6m\xbd\xb8\ -P\xcb\xcdy\xd3\xcd3Z\xff\xa3\xa5\x95\x0d\xd0\xe9j\ -\xb2_h~\xe9\xd0\xe3\xe6\xfdsCu\xce\xf9J\x99\ -+\xa0\x19\x8cX\x9c>\xef\xcf\xabO\x8b\xfd\xe9\xab\xfe\ -\xde\xf5\xba\xde\xbaF\xa0\xdc\x7f\xd8\xae\x0f\x0f\x0f\x87\xfd\ -\x89i2\x1e\xbdi\xa3\x1f\x9f\x8e;\x1a\xb2Y_m\ -w\xdb\x87\xed\xfe|\xba\x02\x9e]\xcd\xbe\xc1\x1b\xden\ -\xb6\xefOt'\xf3\x1e\x9b\x8e/\xc1\xc5\xf5\xee\xfe\xf1\ -\xdfW\xe7;\x190\x0c\xa5\xe3\xbb\xfd\xfd\x19H\xf4t\ -\xda\x1e\xff\x8a\xac\xf8\xb7\xfdw'\xe1B\x99\xa9\x0cM\ -\xc6\x97\xf9`\xc6\xe3v}\xae\xc3\x00\x18\xe7\xcf;`\ -\xf5\xfb\xfb\xdd\xeez\x0f\x22\xf1\x07\xfc\xb68\xc0\x94\xf7\ -\xe7\xcf\xd7j\x99\x5c\xf6\xday\xfb\x87\xd3\xf9x\xf8~\ -{\xfdU\xa6?i.\x08\xf2\xd7v\x99|t\xda\x19\ -_\xfaw\xf7\xfb\xed\x7f\x1d\xee\xf7\xd7\xc7\xc3\xd3~S\ -z\x1f\xee\xcf\xdb\xe3\xee\x1e>\xae]\xe9\xdb\xacNw\ -\xab\xe3q\xf5\x99\x96\x9fu[\xc33\xe0n\x93\x89}\ -w\x912\xb7\xc4\x05S\xe8\xafU\x91{\xee\xe2'\x14\ -\x95lRTQ\xf7\xfd\x9f\xa1_\xa9\xb04Y\xe5\xbe\ -\xffH\x17\x96:\x85\xe8\xf5l\xb8*<\xb9*\x84\xfd\ -\x1ff\xd2B\xfd\xda\xd9\xb4\xb0\xff\x8f\x19\xf5\xf6\x0aE\ -\x8b\xbfVu\x88\xaal\x83\x8a\xb9\x93\xc0w\xab\xc6\xa4\ -\xc7\xd5-\x88\xf9\xeep\xbc\x99}\xf5\x9e\xfe\xca\x95w\ -\x87\xe3f{,\xd7\x02\xfd\x8d\xaf\x09w\xd8\x0c\x95\xf9\ -\x8b\xf6\xc6\x89\xeb\x00\xf5\xc2\x00 \xf9\xe6\xf0\xf1ff\ -.\xae\xfep8<\xdc\xcc\xe22\xeb\xecs\xb8\xb8\xbc\ -\xfeD\x14qIYk/\xaf~F\xa3\x04d\x8cY\ -\xa7\x8b\xab`!\x9ePI-\x9e\x18\xbd\x8f\x9f.'\ -x:\x1eq\xc4n\xf5y\x0b\xa7\xa7\x0f\xdd\x98\x7f\xba\ -;|\xbc=\x22)\xdf\xafv\x8d\x96/\xcf\xf7\xf1~\ -\x0f\xe7\x5c\x08`\x8cW\xfe\xa5!\x057Z\xe9\xf0\xd2\ -\x188\xbb\x7fq\x028zS'\xd3\x8b\x0f\xabO\x80\ -\xfa\x1f\xb6\xb0s\xfd,C\xd6w\xdb\xf5\xf7\xdb\xe3\xbb\ -\xc3\xea\x08cT\xc1\xda\xdb\x87\xedy\xb5Y\x9dW\x1d\ -\x8aJW\xac\xba\x1cl\xcb\xf5\x7f|\xfb\xe7&\xe3\xeb\ -\xf5\xf5\x7f\x1e\x8e\xdf\xf7H\x86!\xabw\x87'8a\ -\xd3\x05h#\xd6\xd7`5\x1fV\xe7o\xee\x1f`\x1b\ -h\xd7\xfe\x19\x0c\x0d@\xba^\x18\x8f>\x7f~\xdcv\ -\xf3\xf2\xcc\xc7-\x1b\xe0gM\xd3f\x0d\xf2\x0ew]\ -\xfd\xf5\x0c\xaa\xe5/\xb8L\x13%\x12&\xdem\x15\xae\ -\xfe8o\xaf\xcaq\xb9y;%\xden\xf5n\xbb\xbb\ -\x99\xfdi\xf5\xb8\x1a.I{\x0b\xea\xe7\xf1\xe1\xb0\xd9\ -\x0a\x96f\x1d\x1d\x19\x5c\xa5\xe7|\x5c\xedOx\xe2\x9b\ -\x19}\xdd\x81\xc7\xf6\xb5\x9a/@/\xb8\xa5\x0d\xc6\xbc\ -\xa9\xe4\xbe\x1d\xe9\xd9)F\x7flo/,\xb5\xf0i\ -\xe9\x823)\xc0\x9a\x0e\x95\x94\xf7\xe9M\xa7\xb7o{\ -\xcd\xf8#+\x8cv6\xb2q\xcf\xae\xed\xf3RG\xed\ -\x9c\x9fk\xbb\x8c\xda\xa8\x1c\xdf\x8cPr;\xe2x\x7f\ -\xea\xb1b\xfe\x92\x9d\xbdt\xfe\x00\xba\xca\x1b\x1d=\x9c\ -\xdf,\x1d\xa8\x97\xeac>g\xab\xbezg\xf1_5\ -K\xa2'\xbf\xe9ox\xfb\xd8\xdb\xce\x97\xe7 \x93w\ -|\xdam\xaf\xb7\x1f\xb6\xfb\xc3f3\x99ul\xec\xd4\ -\xd2\xf4V\x0eN;6r\xd5\xf4\xbd\x83\xd9v_n\ -\xfaJo\xb1\xbd\xfa\x0f\x8f\xab{\xd0\x85\xa4\xf2a\x04\ -\x08\xe3n69\x0d\xaa\x83\x01T\x16\x90\xceF7\xd7\ -\xca\x00\x03\xb3\x1b\xc0\xe7\xcd*\xda8\xd7K\x9fb\x1e\ -\xc0\x86i\xeb\xcc\xdc\x82^\xb7\xc3\x02\xdcz\x17\x83\x09\ -s\xa4y\xc4\xd1\xd6)\x13\x0c\xb4M\xb2~\xe0\x0f\xaf\ -\xa1\x0d\xa6\x9f\x06x\xadl\xb6\xd0\xe1C\xd48\x83\x06\ -[\xa9\x01\xac\x13\x92\xd3\x85\xebu\ -=\x22\x80\xc13\x80\x1a\xd2t\x03\xd1\x819\xa7\xfb#\ -\x95\x09\x08&\x1d\x8c\x90\xc88\xa0m\xc1\x84\xdc\x93\x16\ -\x99KG\xacg\x10R\xcb\x1dt\x08Z\x13\xf4\x80\xb5\ -\x08\x9b\x9c\x5c\xa2M\xc1g\xc0\x11@\xe1~\x17z\xe9\ -tL\x1d\xb0\x1aC\x890=\x9c\x89\xd2~\xde\xc0\xdb\ -`Rh!\xb3.\x1a\xbf*\xf9q\xab\xff:D\xbb\ -\xb4\xe0\xe8 \xb8\xbb\x15\x88\xfd\x1deh\x0b\x1deH\ -~\xba\xf1L\x98\x1e\xebH\x81)\xed\xe8\x9cHum\ -\x05\xb9t\xd0\xe8\x932\xdd\xb1z~\x84^\x8cQ\xa0\ -\xba\xcb\xc0\x7f;\xd45eI\x01\xa4/+\x0aQ\x84\ -\x9dx?\x9e%\x849\xdf\xd8\xe3O\xd8\xcf\xf8+:\ -\xa2\xdeo\xe1K\xa8\xccwM\xbem\x80fl:\xc4\ --\x93Q6\xc6&Frh\xd73F\xc8\xd0\xf8\x82\ -\xe87\x8eioF\xdaL\xf6U\xcf-\xd2K\xfb\xb6\ -\x9d\x9c\xd1\x003\xe7+M\xd0\x1a\xc4*/\x88\x12M\ -\x11\x99eP\x09\x97(\x92C[\xe8\xd4\xa5\xc0\xa1\xde\ -_\xf0Va\x0e\x87#\xd2V@F\x98\x00(\x0c\x94\ -TA\x8e\x1d\x9a\xda\xaa\x00\xa2\x0dx\xdcb\x8c(\xfb\ -D\x04[\xf1SToQ\x8cf\x09DK\xd6\xf1\x16\ -\xfcH1\x12\x1a\xfa\x19\x08^$N\x00\xb09+\xe6\ -\xd0@\xdba\xb4iJ\x22%\xdc\x13a(\xdcc\x96\ -F\xeb8T\x15RF\xd4\x93.&\x8aQ\xf7J\xbd\ --TnB\xe4\xf9n\x1d\xa2O\x14(\xb1 \xe8\xdc\ -8,H+8\xaaJCtZ#O\xb5x\x02\x22\ -\x02\xa5\xeeE\x87TY\x1d\xcf+\x0f|<8y\xa5\ -MS\x17$\xe7\x1d^\xf9\xde\x867\ -\xd2\xe0\x9d\x8a\x17\xaf\xaeJ\x1b\xe2\xdbM\x0d_s\x02\ -\x09\xe0M\xd5\xf1l\x0bi\x17(T\x8fO\xa8\xd3\xec\ -\x90X\xa6\xea#.\xdai\xc8\xb0\x8a\xdb\x92*b\xfb\ -)\x8b\xe1\xaa\x1d\x04\x1dfi\xd5PweQ>}\ -\xd9\xbd\x10\x9f\xb7\xdf\xc4\x11\xa7r\xe2w@\xcbg\x18\ -l<\xf0\x1ex\xfb\xc34&\xc0\xf0\x0c\x03\x9f\xa4\xf3\ -\xc5\xa5\x9ag9\xec!r9\x1f\x8e\x8b\xf5\xd3\xf1\xc3\ -\xea\xfct\xdcb\xd6a\x1a+\xd5d\x16D\xd0\x18\xc2\ -\x9fnf\xeb_\xe5_\x9fp\xf8_\x8d\x0c\xdf=\x9d\ -\xcf\x17\x81!\xc5\x82?#0|6\x0a\xccv\xe9R\ -\xce\xa0\x035\xc0d\x99\x00\x9e\x14\x80\x81\x83\xe6\x12J\ -\x8abW'\xc6\x1c\x19\xca\x12?\x05\xa5\xc4\xbf\x0a\xc6\ -\x88l#|!V\x0b$\xce!\x13\x9e\x8d6!P\ -\xb4\x22\xb1I\xb0$\x00\xca\xa4q\x88\xa4}\xb8\xec \ -\xbb\x83+\x90V\x83\xe8\x9e\x83&\x98\x94\x8cx$d\ -\xbb\x00\xea\x86\xbc\xa8\x90\xd0\xe6\xc2\x12V\xac:i!\ -\x10\x03\x12!Q)&\x06\xc7n\x9e\xd6\xe8t\x01C\ -\xac\x8b\x9d\x06\xca\xd9\xb8N\xa94\x03\xa0H\xcc\x94\x92\ -\x88\xcd;\xf6\xefq>\x12Y\x22\x96\xc2\x10\x05\xcc\x1c\ -u\xe8\xf4\x9a\xa8\x19\xfdSE\xed\xef\x1f\x901#\x9b\ -\xd1\xc5\x01@\x86%\xd0\x98BN4<\xb1\xd3u\x0a\ -\xfd\x86\xea\xe7.\xea\x08\xb8\x92\xc4\xab!4\x10\x80\xbc\ -M\x91\xd0\xac\x81!\xa3\xb4\x84hJ\x9e\xad\x22\xc0j\ -0\x94\xa1\x98\xc5\xde\x0d\xcf0\xf9+\xfc\xb4\xbf\xf1s\ -\xca\xcf\x04\x02f1\xdc\x04vzp04\xdbE\xb4\ -\x7f\xd5T!\xb3\xac\xb2l\xcc\xd8\x0c\x82\x83\xe2Yh\ -9\xd01p;\x99v\xad\xd4\xab\x22\xe5\x7f1\xeb\xf5\ -\x8f |\x11t\x98\x0e&\xb35\xd0\x9e\x15`\xf2.\ -pT\xa49\xdb\xa2\xacR\xec\xf8\xe4\xea\xdf\x92\xc6\x86\ -0\x9c\xe5\xc6\x88\xc3\xe4\x9d\xcd\xdc\xc1\x8a\x1b\xa2\x0f\x94\ -Q\xce\xe1\xc0l\x94o\x01\xf9\xf2\x97\x1d;\x01\x0a\xe7\ -;\xb4\xa7T\x95\x07Y&IN\xb0\xb5W`\x10\x7f\ -\x93\xc4\x0bI\xf4\xcb\xec\x89q\xcc\xdc\xec)\xf0\x22\xc9\ -\x22\xcd\x9a5y\xbd`\xdf82\xc3\x08V$\x8fU\ -\xaf\xd7\x08\x07\x15\x94\xc6t;@\x85\xdcdd\x05\x87\ -a\x16\xd3\x1e\x15\x0d\x0e\x22b/\xee\xb2\xe1h\x22k\ -\xb0\xe4\xd4\xe3\x8c\x1d\x01IReFIHo\x0cg\ -\x02'=2u\xf0\x04R\xd9\xd2\x82M<\xc7!\x10\ -\x12\xb2\xe3\xad(\xd9\xc3\xda\xc4$\x05#\x106\xf6\xb9\ -\x0eB\x1an^\xb1\xe3\xa1xP\x99\x03\xc2\xae\x1a\xbc\ -X\x88\xa0\x22\x02\xd0;mGm\xa2\xde\xbc\xf8G\xe5\ -\xde\x108\x87\xa5\x1c-\x17\xc1\xbdF\x12\xe2\x12\xb8\xba\ -\x91\x958\x1f\x97\x22\xd3\xa9o\xbe\x82\xf1\xfc\x1b\xc6/\ -0\x1e\x96A\x817\x16\x11\xe3@}\xc9\x16\x8bb\xc2\ -@M\x08n\x94B\xb8 F%\xf5\x978G\x1b:\ -\x00W6E\x86\xa7 \x1a=R\xc9\xbd\x90(\xa0\xcb\ -8\x14,\xc3\xa2N\x87\xa1! zM^\xa5\xac\xa8\ -\xf9qB\xb5g\xc9\x18}\xd1\xc6\xe8\xceF\x95M*\ -\xab\xf7\xf8D\x09mrH\xd2@^J \x90\xb1V\ -\xa6\xfd\xf2\xfeQ<\x0c\xfb=\x15\xe1\xfeU\xedi\x7f\ -5~\xe9/\xf3\x08\xedYh\x85\xb4LZa\xc2\x09\ -8\x08\xdf=\xa5\xd3|\xd0\x8eiL\xb2\x5c\xd9$\xed\ -\xa26R2\x92\x97\xc5o\x18\xa3\xb0)\x5cT\xb8\xe0\ -pR\x11\xc6\x91\xda\x95;XU]\xb4w\xed\x8e\x05\ -o\x02Uy\xc2.\xdaK\x90d\x01o\x8f\x86\x83\x1d\ -\xb5\x8c\xe6\xc0\xb99\x87_\xaa\xdaf\x90\x10D\xe1\xb2\ -\x86\xced%\xa7\x951\x8f\x99\xad\xb1\x8c%z\x06\xa4\ -P\x05\xcfE\xa7sfC\x14!\xb9\x04\x8b\xde\xb0\xc8\ -\x89*^\x1d!\x1e\x9c\xc2,\x81^\xa6\xbc\x9a\xabp\ -Uc\xb3\xc2w\x17KQ\x16\xc4\xd3\x18/\xb9J\xce\ -\xcb\x91N/C\x8a\xc8-DW/*\x09\x16L*\ -\xca\xf6\xe1\xa9t\x0bkQ\xd6H\x0c\x8b\x84\xa3(\x89\ -Kc\x9b\xc4S\xd4Gl1\x16li\xe8\xf8\x8fb\ -\xcfR\x1a\x15\xb9\xba\xe8\xc0\xb0\x15\xd4\xc6\x16\xb9\x8e\xf3\ -\xbam:'\xa9\x1e>\x167Y'\xe5>\xb0\x06k\ -+\x0b\x87Q\x87\xd5\xb8\x131\xa2\x1d\xa1\xd0lM\x9a\ -d\xe8\xa2\xd61U(b\x87C\x0f\xaf'\x14\x12N\ -qb\x11\xc8\xd36!Z\x0a\x09\x18\x99\x80@\xa7\xc0\ -\x5c\xf2\x92@e\xbdW\x09\x16\xd0ss\xd5\xbf\xb8\xec\ -\xa1=\xb9\xba)4\xf8#<\x95\x8e\xe6\x09\xb0\xf6\x13\ -U\x06\x0c\x08C\xcfZ\xd2mE\xee0Z\xf0\xdd\xb0\ -\xa2!\x89{=;%_XU(\xf2\xf5\x99\x1e\xf6\ -\x14\xd8Cb\xaf\xb6\xd2\xa6\x9d;\xf5\xd8\xe3\x16\x003\ -\xd1\x86BB\xb6wZ|\xda\xc1)\xd2\x8a*\xa7\xf9\ -\xb1\x82\xc3\x9dr\xc0\xc4\xd8\xc6\x93U\x9e\x13\x16\xe4\xa1\ -#]n\xdb\x06\x9a\xd9\xd1~\x5cq\xfaX\x9a5Y\ -\xa7I\xc7\xae@?\x89\xbc\xb2\x91D\x89-\xcf\x8a(\ -\xdf\xe9\x12\xa2\xb99\xf4\x15\xda\xe2\xd78\x87\xe6\xae\x88\ -\xd3\x18\xcb\xccJ\xdd\xac\xf1B\xechQbD9\x93\ -U4\xb1\xf9\x7f\xd3\x8e;\x8e\xf4U\xee\x94-\xc4\x92\ -\x89\x87h~\x8c\x86\xbb`\xbfSli\x01\x0f_\xad\ -\xb4\xd4\x92\xe0\x07\x09\xe3\xa7\x89\xb8\xaf\xaakB\x8bc\ -\xc0\xcbt\x0ca\xc9\x86\xf5m\xd9\x04\xd3BDd\xe8\ -\xdd\xe1b\xbf\xc1-\xb6\x95%\xdd\xb9\x14\xed\x82\x04 \ -\xca\xf8T\xb0\xac\xc5A5\xa3}\x92:\xeb\x0f^\xb8\ -^\xe1\x1d\xc7\x06C\xd3\xe5I\x07\x83\x1b\xb4I\x94\x87\ -\xab\xc2D\xa6O=;J\x9a\xab\x8en\xca\xc6\xd8\x89\ -\xe3Dh5\x15\x16h\xe9\x08\x16\xac\xb8\x8aW%\x8e\ -\xb2xM\xb0n\x1a9\xdd\xa2>\x8b\xdf$J\x8f\x8d\ -\x02\x1f\xf5\xb2\xa3\xe0\xabt\x96#\xb4\x0e\x8ah\xe7E\ -U\x8a\xa5f\x83(.z\x89<\xa4I\xbc\xab\xf7#\ -\x97zo\x8dW\xad\x87`N\xa2(Q\x00\xc5\x8c\x9c\ -\xb4\x85D\x95w\xacy\xacW\x89\x15\xa0\x1ayj\xe2\ -xV[*,\xe1@\xaa\xca\x0f\xab\x97\xa2\xc4\xd8d\ -\xb5\x93\x88\xb8UC_HLq\x8e\x8c\x8f\x85\x05\x17\ -m!)H\x10{\xd0\xe2\x0b7\x97Z\x1e\xbe\x16z\ -\x8dw\x94'-\xd1o\x05 \xa4\xdc+\xe8\xaa\xb3S\ -o\x08\xfd`\xd9\xdf\xb8\xbd\xeb\xd6\xa6\xd9\x1a\x0a\xd9`\ -\x88\xff\xd1l\x95D\xb6\xd3-\x8b\xf0\xb4\xf0\xafu\xd8\ -\x02\x1a\xdb\x99\x84\x0e\x83\xc5ip\xac'+\xc0\xd3\x88\ -\xfa\xe8\xf6L\xdbb\xa5\xaa\x1c\x8a\x13A\xe8\x08s\xd1\ -\x81\x95\xd4\x02(T$\x86scD\xa0q{'{\ -\xb49qf\x81 :_\xb6Ix\xc8\ -{\xf5\xf3\xea\xe2a\x8a\xa5o3\xceF\xe6\x92\x8f\xdd\ -\xac%\xc3W Fnw'\xe5\x80V\xdd\x5c2\x92\ -$3\x05\x0e{\xafU|k$\x85\x98\xe8\xd2=\x8c\ -8Q\x1e\x82\x81\xb2j\xe4\x8bckW\xf1\xe8^P\ -\xed\xcc\xe9\xa2j\x1a\xb4C\xe7\xb54\xadJ\x0eG\x83\ -[9\xa1\x5c\xae(\xa9\xa6\xb7m\xbb3\xc45\xf7\xd1\ -\xb7w5\xa9\xc6\x85n]\x12\x05=\xd2\xd8\xbc\x07l\ -\xa5\xf98\x9c\xaa*\x98C\xc2j\x13\xbb\xe68%S\ -\x9c\xa2Q\x96\x91\x8e\xd1\xcfiF\x00#\xa7\xa9\xdfe\ -\xf1\x05E\x0f\xc5\xe1\xc2\x9b\xe8\xec|\x1c\xa5x\xd8\xe9\ -.v\xb2\x04r\xa3\xf6\xaey\xedX\x12e;\x92\x88\ -&lQ\x08\xd1(u\x16\xa5\x1e!\x8c\xb9.\x92\xd8\ -&\x90#\x8b2\xaa\xeeBu\x0f\xd8;\x05\x8cP\xda\ -\xaa\x84\xe6\xc5\xa1#X\xb5SQ\x04\xd7\x90]\xd2\xbd\ -B\x1f\xdfC\x86\xd2\xa65l\x90t|ga'\x1a\ -\x0b\xbd\x87\xa1\x8f\xfc\x94\xd4W\xd4\xa4\x9b\x08\x8d+\xf7\ -&\xe4\xdb\xbc\xba\xe4\xcd\xfd\xe0\x85\xc5[f\x8c\xf4\x1b\ -\x11\x07\xad%\x07\xe82\xeaE\x0e\x00\x84\x91\x93\x8e]\ -'\x1d\x1434'\xa2\xfa\x0c%!\x8d+\xf7\x96\xa7\ -b\x22w\xe1{\xf3\x93\xe8\x905\xed22\x03R\x0b\ -\x17\xb5\x93\xe0D\x92\xd3\x983f2\xd5L\xb4\xecM\ -\xf5i\x8c\xb2$D\xd1\x8e#e-JA\x18X\xa2\ -0\xc9\xe0\x0bq\xfal\xa78,UQ\x94;j\x07\ -\xc5\x05\xfd\x14\x94jj~\x82\xc4\xeae>\xd2\x9d\xbd\ -\xe4b\xd2\xa1s\xb4\xdc(:\xb8\x0c\xf5K\xf9o\xd1\ -D\xb2\xffJr\xb1\x11\xe3\x8eW\xf2\x98\xf6\xff\xa6\x94\ -\xe5\xf4j\xf3\xc5K\xa7\xd3\xf3WO_\xb2\xd4?@\ -r?8\x10\x1e\x1b\x22\x96\x06\xd8\x80\x8f%)\xfdR\ -\x1f\xcf\x0f\x5c\xc5\xa7r\xad\x0b\xe0:\xd9V_\xf5Z\ -\xa9\x9e\x14lN:\xc4\xc7\xe0\xbaHuQ27\xaa\ -\x0e\xa16\xd5\x0eHPN\x8e\x83\x03\xddk\xfa\xd2\x85\ -n\x0b\x89\xfcj\xac^\xe6\xaaDv\xac\xdb[\x02:\ -\x18\x96h\xac\x8a\xe1\x84\x06'\xf2\xcb*R\xd9v\xd9\ -\xb3\xeb&\x96\xc2\xfd\x9a\x1e\xa9;\x0c\x893\x13u\x87\ -1\xf8p\xb1\xc3E+\x88(\x85\x93\x17=\xbb\xaeN\ -\xbb{\xb7C\xaac\xdb\x1b\x11\xa3\x02S=*\xa9\xc7\ -\x19\xbb!\xf8L/\x8d\xab\xc5\xd3sg`\xaaS\xf5\ -G\xf7bJ)\xa5\xac/\x99t%\xe7\xe1\xb2\xa3<\ -V\x94\x12q\x0a\x98\x8c1\xf4R\x89\x14*i*\x05\ -n\xedd8yC5\xe9p\x8cl\x9c\xedIVk\ -F\xca\xb9\xc6U\xef}\xd5}y\x0dc\xf4\xd2CW\ -\xb0\x0e\xfcq\x17mN\x9bR\xe1{)\xbflQ\xdd\ -\xa8^\xa5\xe2\xa7\x16-k*\xd1\x9eW\x002\xffe\ -8>O2:\xb0>\xf6\xf5}\x0fS\x0b\x09S\xcc\ -\xe51\x13\x0f\xafE\xbeB\xecZ\x8a#\xef\xb8\xf8\xec\ -\x9d\xcf\x85\xa3\x0c3\x9f\xe7]\xfdl\x94\x84\x84l\x17\ -+w\xe8\x05\x83Z\x14Y\x88?\xa9\x8b\x1fjmO\ -\xdbN\xa9\xe2\x1f\xddWf\x96\xc2\xf3V!:\xee\x10\ -\xfa\xb5\xf2t\xa2@_0\xc4$\xa8e\xfb\xc2\xdbR\ -?\x84\x10\x15\xf2\xca\xb3\xbcQ\x15\xbfT\xf9W\x84S\ -\xc9\xf6\xb4\xfd\x8a9\xf3?\xeb\xb1\xdc\xdb\xab\xdb\xbeu\ -a\x1f~\xad\xd6\x81l\x83\x89\x00\xe3\x80y6|F\ -\x07.T\x8cEMQ\x80\x84\xa9\x8aA\xaa\x0f\xf19\ -\x87\xc7V\xb6\x9e$R\xc2f\x9d\x9c\x18\x0f\xfc&E\ -d\xcaqIC\xd3a\x0a\x95\xb0T\xf7I\x11\x83w\ -\xae/f\xe2\xfaD\xbe\xc2\x1eO\xd2\x12\xe9\xcb\x8b#\ -\xa0;K\xf1$O\x812\xc8\xf9ev\x0a\x9dO6\ -vNb\xdf\x9e \xa4\xe1#\xbe\xf0V\xe5\x978;\ -/\xba:\xa7K\xef\xe2\xef\x0d;\x19\xe9\x1f#a'\ -\x00\x17#\xd7\xc1\x00\xd78Rm%\xfc\x82\x1f\xd1\xd0\ -`\xfa(\xc9F\x5c,\xc0\xe0\x1b\xa8XUG*|\ -\xb5T\xdd?i\xcb\xe3),U%xR\x95\x1b#\ -I\x9a\xec\xc9c=\x14\xfb\xd8\x91s\x01\x0c\x08g\xb3\ -W-rV\x19T\xb6\x0c\x0c\x94\x0d\xe4d\x22?\x89\ -u\x81j\xbfiX\xab\xbek5\xb8\x15\x9e\xb0\x9f\xcb\ -W\xd6\x16\xdd\xbe\x82\xad5\xbcU\x9d\x95c\xf3\xfb%\ -\x85&b\x97C\xb6th\x92\xa8\xee\x15+\x10K7\ -\xd4\x03.\x15\xd7@d\xae\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a\ + \x0d\x0a \ -\x0d\x0a \xce\xb9\x0d\x0a <\ -text\x0d\x0a xml\ -:space=\x22preserve\ -\x22\x0d\x0a style=\ -\x22font-style:norm\ -al;font-weight:n\ -ormal;font-size:\ -22.6018px;line-h\ -eight:1.25;font-\ -family:sans-seri\ -f;letter-spacing\ -:0px;word-spacin\ -g:0px;fill:#112b\ -00;fill-opacity:\ -1;stroke:none;st\ -roke-width:0.555\ -331\x22\x0d\x0a x=\x22\ -9.1063738\x22\x0d\x0a \ - y=\x2237.0392\x22\x0d\x0a\ - id=\x22text2\ -3940\x22\x0d\x0a tr\ -ansform=\x22scale(0\ -.97491145,1.0257\ -342)\x22>+\x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xb5\ +acity=\x220\x22\x0a i\ +nkscape:pageshad\ +ow=\x222\x22\x0a inks\ +cape:window-widt\ +h=\x221851\x22\x0a in\ +kscape:window-he\ +ight=\x221025\x22\x0a \ + id=\x22namedview4\x22\ +\x0a showgrid=\x22\ +false\x22\x0a inks\ +cape:zoom=\x221.229\ +1667\x22\x0a inksc\ +ape:cx=\x22-123.452\ +97\x22\x0a inkscap\ +e:cy=\x2296.000006\x22\ +\x0a inkscape:w\ +indow-x=\x2269\x22\x0a \ + inkscape:windo\ +w-y=\x2227\x22\x0a in\ +kscape:window-ma\ +ximized=\x221\x22\x0a \ + inkscape:curren\ +t-layer=\x22g820\x22 /\ +>\x0a \x0a \ + \x0a \ +\x0a \ + \x0a <\ +/g>\x0a\x0a\ +\x00\x00\x06=\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a \x0a \x0a \x0a \x0a\ + \ -\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04\xb9\ -\x00\ -\x00\x11\xa3x\xda\xddW[o\xdb6\x14~/\xd0\xff\ - (/\x0dfQ$EI\xa4j\xa7\xc0\x10\x14\xd8\ -\xc3^\xb6\x0e{\x1c\x18\x89\xb6\xd5\xc8\xa2A\xd1v\x9c\ -_\xdfC\xcb\x92e\xc7\x0e\xb26-\xb6\xca\x0e\xe2s\ -\xce\xc7\xcb\xf9\xce\x85\xd4\xf8\xc3\xc3\xa2\xf2\xd6\xca4\xa5\ -\xae'>A\xd8\xf7T\x9d\xeb\xa2\xacg\x13\xff\xafO\ -\x1f\x03\xee{\x8d\x95u!+]\xab\x89_k\xff\xc3\ -\xcd\xdb7\xe3f={\xfb\xc6\xf3<\x18^7Y\x91\ -O\xfc\xb9\xb5\xcb,\x0c\x97+S!mfa\x91\x87\ -\xaaR\x0bU\xdb&$\x88\x84\xfe\x00\x9f\x1f\xf0\xb9Q\ -\xd2\x96k\x95\xeb\xc5B\xd7\xcdnh\xdd\x5c\x0d\xd1\xa6\ -\x98\xf6\xf0\xcdf\x836\xd1\x0eE\x84\x10!\xa6!\xa5\ -\x01 \x82f[[\xf9\x10\x9c\x8c\x85}\x9e\x1bK1\ -\xc6!\xd8\x06\xd0\x17\xc2\xb2\x06\xc8Y\xc2_\x8f\xef\x14\ -\xa8\xd1+\x93\xab)\x0cT\xa8V6\xbc\xfdt\xdb\x1b\ -\x03\x8c\x0a[\x0c\xe7)\xeb\xfb&\x97Ku\xb4n\xa7\ -li\x90\x0b\xd5,e\xae\x9a\xb0\xd3\xb7\x13tR6\ -\x0c\x9c\xf7\x8e\xe1(\x96lz\xc7\xc4\xc8\xa3\x98\xe2\x00\ -\xc7\x01&\xd7\xed\x98n#Y\xa1s7\xf1\xc4\x97E\ -\xf1\x0f\x84v\xa6j\xd4\xbbX\x16\x13\x1f\x84\xa4\x95\x06\ -\xd3\x93\xbd\xa6T\x9b_\xf5\xc3\xc4\xc7\x1e\xf6\x18\x87o\ -\xab\x9f\xabr6\xb7\x13\xbf\x937ea\xe7;\xf1\xc6\ -\xc9\xe3\x85\xb2\xb2\x90V\xee\x8c\xed2\x9d\x8a\xd0\x16\x03\ -(\x08c\xf6\xc7\xed\xc7\xbd\x08\x8a<\xcf\xfe\xd6\xe6\xbe\ -\x93\xe1q\x10y\xa7W\xb0\x96\x7fs\xd0\x8f\x8b<\x03\ -\xe2\x17\xd2\xde\x94\x0bp\xc9\x05\xed\x17\xe0y\x1c\x1e\x0c\ -\xc7h\xbb]\xaa\xc1\xbc\xed\xccF\xb51<\x9b\xcdE\ -\xbe(\xdd\xa8\xf0O[V\xd5on\x19\xdf\x0bO\xa7\ --m\xa5nv\xcb\xb6?{_\xc2\xbd3\x9d\xb3\xe1\ -\xd0\xdbq\xd8\xd1\xd1\x8a\x85\x9a6\x03\xae\x9cHp\xb7\ -\xda\xb8\x8f\xa5\x0bd\xe1b\xd2a\xbb\xc4\x80 \xaf\x5c\ -\xe9\x05F[(/\x17C\xec\x9f\x82\xf2\x951\x0eS\ -\xc9\xad2\xc3\xb8\x0f0\x9b\xb2.\xf4&X\xc8\x87r\ -Q>*\xd8\x0b\xb9\x84\xd9N|zq\x02H\x99\xe4\ -\xcc\x0e`\x0cCi$b\xca\x9f\xce\x9b\xc3\xa0\x80\x10\ -\xc8\xed\x08\x93\xf4\x89\xf9Q\xeb\xc5\xc4\x8f\x10K\x93\x04\ -s\xd6\xd9\x9b\xb9\xde\xcc\x8ccm*\xabF\xf9\x03\x1a\ -{\xba\xf8\xa5mvyL\xce-\xb8\xc7\xecs\x9b\xf0\ -3\x0e-!)\x9a\xb9\x04\x18\x90q\xd6\xaa\xa1\xa0!\ -\x8d\x06\xf1\x98\xad\xcaBY])#k\x97z\xe4`\ -\x017\xce\x1a\xf4\xddg\x95\xdb\xb3\xa6;m\x0ae\xfa\ -U\xc8\xb1>\xd7\x95\x86P_%\xbb\xa7\xb3\xb9}u\ -\x96\xe9\xee\xe9Sm)\xed|\x8f\x9aB\xd6\xbb\x03\xa0\ ->\xe2\xd4\x01zOA\xfe\x1d:\xc3\x9c\xf15\xe3\xf3\ -\x80\xf1\xc7~\xa2\xd9\x1eba\xc7\x8d\xabH\xe8\x00\xd2\ -\x9a\xf2\xe1\x1dF$\xe1\x98a\x16\x8d\xb0\xfb\x1cDJ\ -\x11\xe64M\xe8(HPBR\xcab~=\x5c|\ -\xc6\xa3\xde\xc1\xc6n+`\xc2\xed2\xbb\x92\xca}\xde\ -;!\xd8s\x91\x91\xf7\x8d5\xfa^\xf5\xd6V\x0c\xaa\ -\xb2V\x10\x9e\xcc\xe8U]t\xca~P\xdf\x9c\x06L\ -\x0c\xbai\xad!v\xd0\x14\xe0\xf8\xc8s\xbf\xb7\x1fr\ -X\xd70\xbb\xd5&\x80j[K\xbb2j\x10\xfa\x03\ -\x85\x9c\xd0\x83\xd2uGO\xc4\x08\x0b\x22\xd2h\x14'\ -\x08|\xa7,\xf20\xa8\x18KG\xa9@\xa9\x88\xb1H\ -\x0fc^\xe0\xfeN4\xabJej\xad`\xe3\xc5\x05\ -Bv\x09\x9e\x91\xe4Y\x82\x9c\xf2\xb3.\xeb\x0c\x9a\xa2\ -2\x9dv'T\xd0*l\xc6:]!\xa1\x22\x8c\x91\ -\xdb\xcc\xe5\xceS\x82\xfb\x1e\xfa\xfd)\x0e\xa2\x13\x92I\ -\xc4\x90H\x08P\x0at\xc7\xc0-O\xbd\xa0e\x97`\ ->\xda\xf1\x1d\xffD$\x8f\xc3\xd9\x93\xba\xee\xf8\x118\ -\x1d\xd41p\x93 N\x04!\x90nH0\x8a\xb9H\ -\x5c\x02\x12\x9e\xd2\x11\xa1(\xc5q\xca\x04\xfb\xe6\xf2k\ -\x89\x88\x10\xdc\xe6b\xf1\x83\xd98\xcb\x828bA\xa0\ -\x04\xdaQ\x1c'#\x8aQ\x9a\xf0(\x22\x1ea\x88E\ -$J\x05\x1b\xc1\xbd\x0e3\x9a>\xc7\xc2sn\xb3\xaf\ -p\xf8\x94\xd0\x970p\x1c\x89g\xfd'\xe48\x0b\x22\ -D\xa0\x08\x08\x19\xd1\x14\xb18a8\xf68\x02\x97\xa3\ -8\xdey/\xb8\xa0\xaf\x96\x04\x11O8\xfd\x0f$\x01\ -\x89\x8eIH\x11\xc5\x8c\xb8#\x09j\x81r\xce\x85\xe7\ -|'P\x15\xae\x16b\x8c\x09\x89_\xaf\x14(\x13\xe9\ -\x0ffa\xf6\x9d\x8f\xd1\x93S\xfb\xd0\x89\xcf]\x08p\ -\x02/^I\xc2\xf6\x17\x82^\xa4\x08J1\x8d\xe0\x05\ -\x07R\x10\x03K\x82]_8\xa0\xff\xb7\x9d\xfa\x9bn\ -\x01\xc3\xb3.\xf9\x8a\xb3\xf2\xc2\xa1{\xe9\x88\xfeIH\ -\xfe\x97\xb7\x80\xa3\x0bE\x90\xbe:\xcd\xed!=v\xef\ -\xb0\xf0\xff\x0b\x9c\xe0R4\ -\x00\x00\x12\xd3\ +lse\x22\x0a inksca\ +pe:zoom=\x224.91666\ +67\x22\x0a inkscap\ +e:cx=\x222.6440678\x22\ +\x0a inkscape:c\ +y=\x2224\x22\x0a inks\ +cape:window-x=\x226\ +9\x22\x0a inkscape\ +:window-y=\x2227\x22\x0a \ + inkscape:win\ +dow-maximized=\x220\ +\x22\x0a inkscape:\ +current-layer=\x22s\ +vg4\x22 />\x0a \x0a\x0a\ +\x00\x00\x07\x8e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a\ - \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\ - \x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a s\ -tyle=\x22fill:#ff2a\ -2a;fill-opacity:\ -1;stroke:#999999\ -;stroke-opacity:\ -1\x22\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - d=\x22m -28\ -.519885,1068.768\ -8 c 0.90506,1.22\ -12 1.246811,2.67\ -32 1.10285,4.074\ -3 l 15.161239,6.\ -5005 c 0.296039,\ --0.3564 0.63195,\ --0.6925 1.01758,\ --0.9783 0.38563,\ --0.2858 0.804907\ -,-0.5094 1.23194\ -5,-0.689 l -1.78\ -3709,-16.2284 c \ --1.440516,-0.264\ -2 -2.790128,-1.0\ -438 -3.730887,-2\ -.3132 -1.970903,\ --2.6593 -1.41148\ -,-6.4222 1.24778\ -4,-8.3931 2.6592\ -63,-1.9709 6.422\ -1306,-1.4115 8.3\ -930326,1.2478 1.\ -9709022,2.6592 1\ -.4114784,6.4221 \ --1.247785,8.393 \ --0.385631,0.2858\ - -0.804907,0.509\ -5 -1.231945,0.68\ -91 l 1.783709,16\ -.2283 c 1.440516\ -5,0.2642 2.79012\ -83,1.0439 3.7308\ -88,2.3133 1.9709\ -0236,2.6593 1.41\ -15119,6.4221 -1.\ -2477515,8.393 -2\ -.6592635,1.9709 \ --6.4221301,1.411\ -5 -8.3930331,-1.\ -2478 -0.940792,-\ -1.2694 -1.294168\ -,-2.7874 -1.1278\ -76,-4.2425 l -15\ -.161273,-6.5003 \ -c -0.277881,0.33\ -04 -0.595667,0.6\ -406 -0.957189,0.\ -9086 -2.586939,1\ -.9173 -6.237918,\ -1.3745 -8.155238\ -,-1.2124 -1.9173\ -19,-2.587 -1.374\ -518,-6.238 1.212\ -422,-8.1553 2.58\ -6939,-1.9173 6.2\ -37918,-1.3745 8.\ -155237,1.2124 z\x22\ -\x0d\x0a id=\x22p\ -ath2-3\x22 />\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09~\ +ut=\x22\x22>\x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \ + \x0a\x0a\ +\x00\x00\x08\xe2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a\ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a\ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221858\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22105\ -7\x22\x0d\x0a id=\x22nam\ -edview4\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x221.7383042\x22\x0d\ -\x0a inkscape:c\ -x=\x22-63.567699\x22\x0d\x0a\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x09N\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x0dD\ +/>\x0a \x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a \x0a\ +\x0a\ +\x00\x00\x14\x84\ +\x00\ +\x00G\xb1x\xda\xe5\x5cYs#\xc7\x91~\xd7\xaf\xe8\ +\x85^\xa4X4XWWUS\xc3q\xc4Z\xe1X\ +?\xed\xc6\xda\x8a}\xc6\x00\x18\x12+\x10`\x00\xe0p\ +F\xbf\xdeyUV5@j\xe5=\x1c\xb64\x0e\x07\ +QG\xd7\x91\xf9\xe5\xd9\xd9z\xf7\xbb\xcf\x8f\xbb\xee\xd3\ +\xe6x\xda\x1e\xf6w3\xbb0\xb3n\xb3_\x1d\xd6\xdb\ +\xfd\xfd\xdd\xec\x87?\xff\xa1\xcf\xb3\xeet^\xee\xd7\xcb\ +\xdda\xbf\xb9\x9b\xed\x0f\xb3\xdf\xbd\xff\xea\xdd?\xf5}\ +\xf7\xfb\xe3fy\xde\xac\xbb\x97\xed\xf9\xa1\xfb\xe3\xfe\xc7\ +\xd3j\xf9\xb4\xe9\xbey8\x9f\x9fnon^^^\ +\x16[\xe9\x5c\x1c\x8e\xf77\xdfv}\xff\xfe\xab\xaf\xde\ +\x9d>\xdd\x7f\xd5u\x1d\xec\xbb?\xdd\xaeWw3y\ +\xe0\xe9\xf9\xb8\xa3\x89\xeb\xd5\xcdf\xb7y\xdc\xec\xcf\xa7\ +\x1b\xbb\xb07\xb3:}U\xa7\xafp\xf7\xed\xa7\xcd\xea\ +\xf0\xf8x\xd8\x9f\xe8\xc9\xfd\xe9\xebf\xf2q\xfdQg\ +\xe3i^\x0ag|\xedQg\x8c\xb9\ +\x81\xb1:\xf3\x97\xcd\xba=\x01A\x9f\xe0\xff:\xbdt\ +,N\x87\xe7\xe3j\xf3\x11\x9e\xdb,\xf6\x9b\xf3\xcd\xf7\ +\x7f\xfe^\x07{\xb3X\x9f\xd7\xcd2\x85\x9e\x93]'\ +D\xde/\x1f7\xa7\xa7\xe5js\xba)\xfd\xf4\xfc\xcb\ +v}~\xb8\x9b\x85L\xad\x87\xcd\xf6\xfe\xe1\xac\xcdO\ +\xdb\xcd\xcb\xbf\x1c>\xdf\xcdLg\xba\x90\x17\x06\xff\xd9\ +\xfa\x8b&m\xd7w3\xb8\x94\xe3'*`dT6\ +\xbb\xd5\x11\xb3\x18\xdd\x22t\xdf<\xef\x7f\xdc\x1f^\xf6\ +\xdf\xd2\xb4r\xb3\xdb\xf5a\x85G\xbd\x9b=.\x9f\x16\ +H\xab\xf70\xfcn\xbd\xf9x\xc2i\xbc\x1b\xb6\x02\x0d\ +\xc0\xd0j\xb7}\xfa\xf7\xe5\xf9\x81\x87\xbb\xae\xb4\x7f\xd8\ +o\xcf\xc0\x85\xe7\xd3\xe6\xf8'\xbc\xf7\xbf\xed\x7f8\xf1\ +\x95\xcb2efv\x83,\x06\xcb\x1d7\xabs\x99\x04\ +\xc7:\x7f\xd9\xc1Y>nw\xbb\xdb=\xc0\xfc;\xfc\ +\xd5\x1f`\xbd\xed\xf9\xcb\xadY\xe40\x0e6\x0c\xfe\xbb\ +\xd3\xf9x\xf8qs\xfb\xf5H\xff\xa4\xd9\x13qo\xfd\ +\x22\x0f)\xd8\xe0\x86\xd2\xbf\xdb\xee7\xffu\xd8\xeeo\ +\x8f\x87\xe7\xfd\xba\xf4>n\xcf\x9b\xe3n\x0b\x7fnC\ +\xe9[/O\x0f\xcb\xe3q\xf9\x85\xb6\x9f\xd5\x93\xe1\x05\ +\xf0\xac\xd9\xa5\xa6\xb7p3,p\xbb\x1c\x9b!e\xed\ ++c\x9f\x91_\xa3\xcb\xc9$\xdbt\x7f\x81nc\xe2\ +\xc2\x8dfl\xba\x8f\xd4\xbf\xb09\xa6\xc1\xce\xba\x1ba\ +\xc4M\xa1'q\xec\x06\x99D\xbf\x94\xb5\xc8\xd75B\ +\xaar\xf2\xc3Ry\xf2\xb4\xbc\x07\x91\xdd\x1d\x8ew\xb3\ +\xaf?\xd2?\x19\xf8p8\xae7\xc72\x14\xe9\xdfd\ +H\xd8\xc1JJ\xd6.\xa8\xc3Uu\xdc\xbc>\x0e\x14\ +^\x1f^\xeef\xeer\xf0\xa7\xc3\xe1\xf1n\xe6\x17\xd6\ +&\x9b\xd3p9\xbc\x02\xb2\xf5\x11\xc9i\xed\x98\xaeF\ +a\xc3\x04\x83\xd6\x8d6_\x0e\x02\xca\x9fQ\x8f\xf5\xcf\ +\x8c\xd2\xa7\xcfW\x8f?\x1f\x8f8a\xb7\xfc\xb2\x81{\ +\xd3\x9f\xc2\x9b\xd3\xc3\xe1\xe5\xfe\x88\xf4\xfb\xb8\xdc)\x01\ +\xdf\x5c\xeae\xbb\x87\xfb\xf5\x82\x0d`\x9b\x7fcF\x81\ +\x885nxc\x0a\x5cyHo\x8c\xc1\x85\xdd[c\ +\x8f\xcb\xcf\x00\xec\x9f6p\xe6\x02\x99w\x8f\x9b\xf3r\ +\xbd\x7f\ +y\xda\xd4Ey\xd9\xe3\x86U\xf0\xabvh\xbd\x021\ +\x85\x87n\xfet\x06\x8d\xf0G\xdcD%A\x17\xdd\x9e\ +w\x9b\xda\x09\x02\xc2\xa7/\xf2\xd2\x5c\xee\xddM\xb9:\ +\xb5\xee/\x88\xb8[~\xd8\xec\xeef\xbf_>-;\ +{I\xe1{P\x22O\x8f\x87\xf5FP2\xab\xf4\x9c\ +\xa0\xe6|\x5c\xeeOx\xf9\xbb\x19\xfd\xdc\x81\x8d\xfe\xc6\ +\xcc{\x10\xf1\xb0\xf0\xd1\xb9o\x0b\xd5\xef[-\xc9k\ +\xf4\xbe\xaa\xce\x9f;\xd5\x1b\xdb\xf4\x11dop6\x0d\ +\xb0\x1fh\x7f\xef\xbd\x09\xdf\xea3\xad\x9a\xfd\xfa\x83\xc7\ +\xff\xa9F\x15\x81W*>5\xba\xfe\xf5'IG\x1f\ +\x9fw\x9b\xdb\xcd\xa7\xcd\xfe\xb0^_\xac5\xd5\xcef\ +\xe1Z\xb5\x0c7\x9bje\xd5\xd5\x1f`\xb5\xdd/\xd7\ +\xd5\xa5\xb7\x18\x0b\xfb\xdd\xd3r\x0b\x02M*\x0bf\x00\ +\x08w\x8dRE\xf4w\xd6\x80\x0a\x1b|\x0as\x10A\ +\xbfHc\xe8\xc0\xd4\x8f&\xf94\xb7\x8b!\xa7\xb1\x03\ +\xbdk}ps\xbf\x18\xad\xefz\xbbp!E\x17\xe7\ +H\xdf\x84\xb3}0.:h\xbb\xec\x87\x8e\xff\x0c\x16\ +\xda`\xa6h\xc2`\x8d\x1f=t\x0c1Y\x5c\xc1\x82\ +z\xb7q\xde\xf3\xd2\xcd\x1a\xf0+\x8d~\xec\x1et\x9f\ +\xd4\xed\xba\xde/\x9cw!g8R2|\x088Z\ +\xce#?\x10\xb0#\x860\x8c#l\xe2\xc7\xa4{$\ +\x9c\x10\xb3\x19p\x0f\xb8\x93\xf3\xa1\xed\x91\x83\xc9\x22\xe5\ +\xa2L\x00l\xd7q\xfc\x05\x1dy0q\x18h\x09\xe7\ +\x894x\x1e+\x8fxZ\x13\xeeh\xe8\x19!\x0f\x91\ +\xc3\xc9\x22\xb8*\x90%f\x98\x01\x97\xf0\xd6u4\x13\ +\x1e\x9a3\x19\xe8v\xc6\x99\x94\x91\xc4\xb0Mn\x16\x91\ +5\x84L!0\xd1#\xf1,\x06\x93\xf0\x11\xf8a\xeb\ +\xa2L\xc6\xaeYA\xee\xe6\xc78&l\x131\xca\xdd\ +u\xba\x5c\xac\xae\xaf\x5cE2\xe2z.\xe6`\x0b\xd7\ +u?\x22\x80\xc3;\x80u\xb7\xf4\x00\xd1\x819g\xdb\ ++\x95\x05\x08&\x0d\x8c\x90\xc88\xa1\x1e\xc1\xc5\xb1%\ +-2\x97\xae\xa8w\x10R\xcb\x13t\x09\xda\x13d\xde\ +{\x84\xcd\x98C\xa6C\xc1\xdf\x883\x80\xc2\xed)\xec\ +\x22\xd8\x94\x1b`U\x86\x12aZ8\x13\xa5\x87y\x05\ +o\x85I\xa1\x85\xac\xdaW~)\xf9\xf1\xa8\xff\xda%\ +\xbf\xf0\x09.\xb1\x9b\xec@\xeco(CGh(C\ +\xf2\xd3\xccg\xc2\xb4XG\x0a\x5c\xd2\x8e\xee\x89T\xb7\ +^\x90K\x17MC6\xae\xb9V\xcb\x8f\xd8\x8a1\x0a\ +T3\x0c\xfc\xf7\x9d\xee)[\x0a \x87\xb2\xa3\x10E\ +\xd8\x89\xcf\xe3]b\x9c\xf3\x83-\xfe\x84\xfd\x8c\xbf\xa2\ +#\xf4y\x0f?\xa22?T\xf9\xf6\x11\x9a\xa9\xea\x90\ +\xb0\xc8\xce\xf8\x94\xaa\x18\xc9\xa5C\xcb\x18!C\xe5\x0b\ +\xa2\xdf\x05\xa6\xbd\x9bh39\x97\xde[\xa4\x97\xce\xed\ +\x1b9\xa3\x09n\xce#U\xd0*\xc4\x94\x17D\x89\xaa\ +\x88\xdc\x22\x9a\x8c[\x14\xc9\xa1#4\xeaR\xe0\xa0\xcf\ +\x17\xbc)\xcc\xe1rDZ\x05d\x82\x05\x80\xc2@I\ +\x13\xe5\xda\xb1\xaa-\x05\x10\x1d`\xc0#\xa6\x84\xb2O\ +D\xf0\x8a\x9f\xa2z\x8bbt\x0b Z\xf6\x81\x8f0\ +L\x14#\xa1\xa1]\x81\xe0E\xe2\x04\x00\x9b\xb3b\x8e\ +\x15\xb4\x0dF\xab\xa6$R\xc23\x09\xa6\xc23n\xe1\ +\xc0\x01\xeeT\x85\x94\x19z\xd3\xfeB1\xdaV\xa9\xd7\ +\x8d\xcaC\x88\xbc\xa1\xd9\x87\xe8\x93\x04J,\x08v\xac\ +\x1c\x16\xa4\x15\x1c\xa9\xd2\x10\x9dV\xc9\xa3\x16O@D\ +\xa0\xb4\xad\xe8\x90*\xd3\xf9\xbcs\xc7\xd7\x83\x9b+m\ +\xaa\xba \xe1Q%\xa4\xdaX\xb5\xbd\x5cILH\x85\ +T\x81P!\x0bMpU\xdaT\xfd\xb00\x13 \x02\ +\xde\x88\x10\xf0\xa9+\x9aj\xd7\xb5v\x92\xf0\xf4\xa9\x88\ +\x09+\xab\xcai\xb2\xd4\x8d\xf1\x12\x81\xa9\x9aF\xe8)\ +R(\x8c\xff\xd4\xf1!v\xed\xa9\x04\xa7rj\xc5i\ +\xa5\x0b\x19\xad\xa2\xd0\xd3\x5ct^cfzU4\xad\ +Q/\xae\x04K\x04^@mB\xb9;\xff\x0dc\x9c\ +\xf7\xc5\xbbh!#\x1eQ\xb5\xf3b.\xabU\xe7\xa3\ +\xb5\xb8C\x15\xaf6\xbc<\xb2\xea\xcc\xdcL\xf4\x89\xdc\ +\xb1\xd0`BN\xd1\xedJM\xba\x82\xbfj7D\xec\ +\xc5\xea\xc9\xc6C\x05\x8b\x1cL\xd0\xa7\x9a\x9b)1\x91\ +\x0f<\xb8[$\xe7\xcc8\x80z\xf2np\x0d\x98\x00\ +\xb7pt\x98\x00\xd8\x1eA\x1e\xdc\x02wV!\xbc\xb0\ +OU\xbb`\xaf\xda\xcf\x09\x19\x1a-++\x88\xf1@\ +\x22\xa88\xf0\x0aS\xf9\x9c7x\xe5g+\xdeH\x83\ +7*^\xbc:\x956\xc4w\xb84|\xd5\x09$\x80\ +WU\xc7\xab\xf5\xd2.PP\x8fO\xa8S\xed\x90X\ +&\xf5\x11\xfbz\x1b2\xac\xe2\xb6dEl\xbbd1\ +\x5c\xdaA\xd0a\x96\xaa\x86z(\x9b\xf2\xed\xcb\xe9\x85\ +\xf8|\xfc*\x8e\xb8T\x10\xbf\x03Z\xc3\x08\x93\xdd\x00\ +\xbc\x07\xde\xfet\x91\xde\xc1H'\xdb6\xf3R\xb3\x03\ +\x87=\x84*\xe7\xc3\xb1_=\x1f?-\xcf\xcfG\x08\ +\x82L3\xb3&] 0\xc4@\xf5t7[\xfdC\ +\xfek\xc2\xea\xbfE\xec\xf7\xe1\xf9|\xbe\x0a\xfd(\xda\ +\xfb_\x84~\x97q\xde\xe8\x17!\x8f#h9\x0b@\ +Xd\x00 \x85X\xe0\x82\x85\x8c\xb2`\xd8\x99Ii\ +L\x0cV\x89\x90\xa21\xe2AA\xbc.\xd2\x8b\x00\x85\ +h,\x92\xc0\xc6\x91\x10\xeb\xac\x8b\x91\xe2\x11\x89>\xa2\ +'\x88\x1b\x97\xa7A\x90\x1d\xe2u\x07Y\x16\xdc\x81\xf4\ +\x16\xc4\xea\x1c\x16\xc1\xa2d\xa6\x13a7DP(\xe4\ +'\xc5\x8cV\x15\xb6\xf0b\xb7I\xcf\x00\xd0IHD\ +i\xb8\x14\x03;r\xd6\xa2[\x05\xbc\xf0!5:f\ +\x1c]h\xd4FU\xf1\x86\x04\xc9\x18\x89\xc9\x86\xc0\x1e\ +<\xaeGBI\xc42\x18\x84\x80!\xa3\x0e\x9b\xdf\x10\ +&g\xff\x0aa\xfa\x15\xe2.\x8d\xc8M\xf4U\x00w\ +q\x01\xa4\xa4\xd8\x11-Hj\x94\x96A\x07@\x1d\xd6\ +^g\xc0H\x16\xf7\x84\x98N8\x19|N\x04Z\x0b\ +t\x9f\xe4\x17D\xe5\xf1j\xcaho\xc1\xe2\xc5b\xdf\ +Z\x7fz\x84\xc5_g\x9b\xffm\xb3-\x83\xb8x\x0c\ +\x0f\x81k\x038\x04\x96\xed\x18\xda+5-\xc8\x13o\ +<\x1b\x1f6[\xe0P\x0c,\x82\x1c\x988x\x9cL\ +\xb15\xe6-\x01\x19\xfe\x8f\xad\xcd\xafR\x8a\x12\xe8\x1c\ +\x1b\xdd\xc8\xda\xdb\x0e\xac\xb0\xf2\x10\x22\xc7)\x96\xf3\x1f\ +\xc6\x1b\xc3\xae\xc8\xa8\x1e'iX\x08\x8cY\x00\x9c\xb8\ +0C\xf0#w\xb0\xa2\x85x\x00\x85\x8d\xb3*\xb0\x1a\ +e@@P\x86\xeb\x8e\x9d@\x813\x10v\xa0\xe4\xd1\ +\x00BI\x22\x99\xe1h\xaf3:\xfd\xc6EjX\x8c\ +\x03\xf1\x87y8\x0e\x14\xf1\x90\x88\x90&\x1c-\xb9\x9b\ +`v8$\xc2\xd0QD\x88U\xe5`\x91\xeb&\x1a\ +\x8b9m@\x04\xf9\xa7Hq\x8e\x7f<\xe6\x1b\x94\xe9\ +\x01B\xd1A\xfcT\xc7n\xfch\xc1\xc0ROp~\ +\x82\x17\xc9Q9#\xb1\xb4s\x9c\x82\xbb\xe8\x91\xa5\xe3\ +@X\x94#\xf5ly9\x00\x80X\x8c=^CY\ +\x16V\x0b.\x1b\x98\x81\xe8\xf0\xafu\x10\xa0\xf0\xf0\x86\ +\xfd\x01\xc3\x93\xca\x1a\x10\xefh\xd4\xe0!tI\x88\xb3\ +!X?i\x13\xf5\xe6\xc5m)\xcf\xc6\xc8\xc9#\x13\ +h\xbb\x04\xce-\x92\x10\xb7\xc0\xdd\x9d\xec\xc4\x89\xb0\x9c\ +\x98Nm\xf3u(\x8f\xbfq(\xc7E4\xe0\x0b%\ +\x842\x10Y\xb2\xb1\xa2f0\x10\x12\xba:c\x10\x15\ +\x08EI\xade\xce\x81\xc6\x06\xa7\xca\x8d\xc4(\x14\xe0\ +\xa2?(\xb9\x0dB<:l]\x81,l\x1al\xec\ +*\xa3\xd3`\xc9\xa7\x93\x1d-\xa7\xeb\xd5\xfed\xe7\xec\ +U\x1b\xa3'\x9f\xcc\xe8r\xd9\xbd\x85!\x0ab\x157\ +\x02=9\x0f\x91\xb0\xc4:\x96\xce\xcb\xe7G)p\xec\ +\x8e(\x90\x87\xb7t\xa1\xff\xfb\xf5\x0a\xff\x7f\xdeD]\ +\x22(\xe6E\xb6\x06\xf36\xc0(\xf8=PVj\x88\ +60)I2\x95\x1b\xd2.J g'\xe9M\xfc\ +\x85\x81\x00\xdb\xaf^Q\x81\xd3I\xe0] %*O\ +\xb0\xe2\xb9j\xef\xea\x13=\x1f\x02\x15s\xc6.:K\ +\x94\x98\x9b\x8fG\xd3\xc1\xf8y\x06m\xe4\x14W\xc0\x1f\ +\xaa\x84\x19\x0b\x84D\x18\xb6\xd0\x99\xbd\xa4\x86FL\x07\ +\x8e\xdey\x86\x0c\xbdJ1\xa8P\xe7\xa2\xa19A \ +j\x8d\xecx\xdf\x9a\x09\xb9\x91\xc22\x10\xb0\xc1W\x1b\ +%\x9a\x1a)=\x15\x14\x95fj$\xf8\xe9\xa2\xf7\xcb\ +\x86x\x1b7H\xca\x8f\xd3[\xa4\xa1\xcb\x94\x22Y\xbd\ +h\xde^I\xd03\xa9(i\x86\xb7\xb25vD\x91\ +\x22i+\x82\x8c\x12#~\x88\xaf\x82M\xa1\x15\xb1\xc5\ +y\xb0\x8c\xb1\xe1?J7\x0bc2\xe4\x81\xa2\xd7\xc1\ +6\xcd:_\xc47\xcd\xf5\xd8tO\xd20|-n\ +\xb2\xea\x19\xdb\xe8\x15l\xa7l\x1c'\x1d\xde\xe2I\xc4\ +$6\x84B#t\xd1$\xb3\x95\xacMY\xa1\x88\x1d\ +\x01\xdd\xb2\x96PH8\xc3\xf99 O=\x84(#\ +$`b\x02\x02\x9d\x22si\x90<$\xab7%X\ +Dw+\xa8\xb7p\xddCg\x0az(4\xdf\x13<\ +\x95\x8ej\xd7Y\xc9\x89\xc6\x02\x06\xc4\xaee-\xa9\xb0\ +\x22w\xe8\xc4\x0f\xcd\xb4\xa2\x08\x89{-;%\xed\xa6\ +\x9a\x12\xf9\xfaJ\x0f\xdb}\xf6w\xd8\x15U\xda\xd4{\ +\xe7\x16{\xdc\x02`f:P\xcc\xc8\xf6FY_v\ +p\xa6QQ\x15,g\xe7\x03\x9e\x94\xe3\x18\xc66\xde\ +LyNX\x90ww4\x5c\x8f\x0d4\xf3\x93\xf3\x84\ +\xe2\xc2\xb14[2B\x17\x1d\xbb\x02\xfd,\xf2\xca\xb6\ +\x10%\xb6\xbcr\xa1\xb4a\xc8\x88\xe6\xea\x85+\xb4\xc5\ +K\x09\x01\xadZ\x11\xa7)\x96\x99\x95\xb6\x1a\xdd^\xcc\ +eQbD97\x9a\xe4R\xf5\xe6.;\x1e8\xce\ +6c\xa3l!\xc4\xcb<\xc5\xf2\xdb(<\x05{\x91\ +b2\x0bxxTii%O\x0e\x12\xc6/\xe5\xf0\ +\x5c\xaakb\x0d>\xc0g\x0c\x0caI9\xb5m9\ +\x04\xd3BD\xa4k\x9d\xdbb\xa6\xc1\xc9\xf5\xca\x92\xe6\ +^\x86NA\x02\x90d~.X\xb6\xe2n\xba\xc99\ +I\x9d\xb5\x17/\x5cWx\xa7\xa9\xc1\xb04|\xd1\xc1\ +\xe0\x06m\x92\xe4\x1d\xa50\x91\xe9\xa3wGI\x0b\xea\ +\xb6\xe6\xd19\x7f\xe1\x1f\x11Z\x9d\xc2\x02-\x1d\xc1\x82\ +\x15Wq\x9e\xc4\xed\x15\xe7\x08\xf6\xcd\x13\x17Z\xd4g\ +q\x8fD\xe9\xb1Q\xe0\xab^w\x14|\x95\xcer\x85\ +\xdaAa\xe8\xbc\xa8J\xb1\xd4l\x10\xc5\xe1.q\x84\ +4\x89w\xfah\x98\x02\xa8,\ +\xa5\x12D'U\xb4\x05.\x05PmF\xee\x88\x8aO\ +\xe9\x06\x1d\x98\xdb\xf6\xa5\xe7l^\xeb\x10\xbc\xa9\xa0\x93\ +\x0d\xec\x9bp\x89\x8e\xda\x0aOhc\x16\x88\x95\xc7\xeb\ +6\x09\x0fy\xaf\xc3\x5c]CI/\xe3\xce\xad\ +\xe5QL\x8cM\xf8^\xfd$\xba\xa4\xa6]&f@\ +J\xca\x92\x0d\x12\x9cH\xaa\x193\xc0L&\xcd+\xcb\ +\xd9L\x9b\xc6([B\x14\x1d8R\xb6\xa2\x14\x84\x81\ +%\x0a\x93|\xbc\x10\xa7Mj\x8a\xc3\xa2\x8a\xa2<\xa1\ +\x1d\x14\x17\xb4KP\xaa\xa9\xfa\x09\x12\xab\x97\xf5Hw\ +\xb6\x92\x8bI\x87\xc6\xd1\x0a\x93\xe8\xe0:\xd4/U\xb4\ +E\x13\xc9\xf9\x95\xe4b#\xa6\x1d\xaf\xa7+\xfd\xdf\xb2\ +\x22\xe4\xf4\xb3\xcd7\x87N\xa7\xd7GO\xbfd\xab_\ +c\x96\x1e\xbf\x13\x8a>&|\xf5\xee#\xbe-\xa4\x04\ +\x8b\xbe\xfe\xee\xb8\xdc\xcd\x8c\xfa\xde\x9d\x0bJk!\xd2\ +\xcf\xd5\xb4Ie\xe3E\x87x\x11\x5c@h\xaej\xcb\ +&E\x16\xd4\xa6w\xf3\x12v\x93k\x10@\xbb\xba\xb6\ +4\xa09B&\xcf\x19\xcb|\xb9|\x8f]\xe7ZN\ +o\xa3c\x99\xc5\xe2\x12NYpF\xbe\xec\x22%`\ +\xd7=\xbbfa\xa9p\xd7\x04\x88\x9e0f\xce=\xe8\ +\x09S\x1c\xe2\xd5\x09\xfbZpP*\x0c\xafzvM\ +As\xf3\x11\x84\x94\x91\xd6O\x07&\x95\x98vR{\ +\x8e+6S\xf0\x1d\x5c\x9e\x96U\xe7\xd7\xee\xc0T\xa7\ +\xea\x8a\xe6\x0b\x8eRs\xa8_c4\xb5\xd9\xf1\xba\xa3\ +\xbc\x06\x94Zj\x0a\x89\x9cs\xf4\xf5\x85\xd4\xfbX\xaa\ +\x99\xad\xed\xec8=C\xc5\xdbp\x8d\xd1\x05\xdf\x92L\ +k2\xca\xbd\xa6\xe5\xe1myz\xf9^a\xf2u@\ +S\xd9\x0d\xfc\x09WmN\x8cR\x85x\xa9S\xacq\ +\xdb\xa4\x1eD\xf1\xa3\xd5\xbd\x96j\x99\xe7\x0a@\xe6\xbf\ +L\xc7\x17C\xceF\xd6\xb8\x83~\x18\xe1\xb4\xe2.\xa7\ +\xb1\xbc/\xe2\xe9Z\x0d+\xc4\xd6R\x17\xf9\x18d\x18\ +\x870\x8c\x85\xa3\x0c\xb3a\x9c7\x85\xa6IR\x0er\ +\x5c\xac\x8c\xa1J|\xad\x1e,\xc4\xbf( \xef\xb4v\ +\xa6\x1e\xa7\x94\xbbO\x9e++K\x85v-\xa5\x9cv\ +\x08\xfdj\x1d7Q\xa0-\xc8a\x12h}\xbb\xf0\xb6\ +\xd4\xe7 D\x85\xbc\xf2RnR\xee.\xe5\xf0\x8ap\ +\xaam\xbel\xbfn\xb0\x86\xff\xc1\xfb\xb5w7\xf7\xf2\ +\xa3\xb5\x00\xff\x80\xfa\x9f\xb4\xbfK\x00\xd4\x88\xb92|\ +\xcf\x06nPJE\x11Q\x90\x83\xe9\x86N\xca\xf4\xf0\ +]\xc5\x80\xad\xd1\x0f$s\x12\xfa\xda\x1c\xc4<\xe0/\ +)\xc32\x81\x8b\x0c\xaa\x962\xa8f\xa5\x0cN\xca\x0a\ +\x86\x10\xda:!.\xe4\xe3\x11\xf6Z\xb2\x95h]\xbe\ +\xa1\x00\xedX\xaa\x0cy\x09\x942\xce\x11\xb3c\x17\x86\ +\xecS\xe3\xe8\xb5\xed\x9f&\x1fY3\x02\xd2\xf5\xd7\x83\ +\xff\x8d\xc3\xf2\xa6\xbbr\x9ax\x08\x7f\x0f\xe8\xa8_\xf8\ +\xfd\xf5\x1fr3:F\xa4pJ\x84\x8e\x08|J\x5c\ +{\x02|\xe1x\xb2\xd6\xab\x0bBD\xcb\x82\xf9\xa2T\ +\x18\xf1\xa9\xb0\x9e\x1f\xa0\xbaM\x9b\xa8\x06\xd4S)\xfb\ +E[^\x22a\xd5&\x01\x90J\xc4\x18+\xd2d\x7f\ +\x1bK\x8d\xd8\x13N\x1c\xb13\xcb\x83\x1f\x07S\xe3[\ +3\x82\xda\x95\x89\x91rv\x9c\xf2\xe3\xf7\xa5!R\xa1\ +3M\xab\xa5k\xb5\x1cU\x01\x08\xe7\xb9\xfe>\xabo\ +\xce\x15\xbd\x96\xb3\xaaJ*\xd7\xe6\x8f)\x0aM\xc4\xb6\ +\xc6\xd1\xd3\xa5If\x9a\xef\x89@\xf0B\xa7\x17\x5c\x18\ +.H\x18\xb9\xda\x87M\x8bh\xf2^F\xa9\xc8vr\ +\x8b\xa6\xa8\xb6\xfd\xf4\x05\x14(o\x95\xe4U\x10>\x89\ +\xda>\x8b\x90D3\xc6\xebvI[\x92\xfe\xa5\xc0d\ +\xcc\xd3\x8f\x1dJ\x8fXD\xce\xe4\x02SY4\x93\x98\ +\xfaR\x06\x0b\x01\xe9X\xed\xa5\xcc\x90c\xf1j.]\ +\xb7\xe5\x8d_\xd1\x19\xde\x8e\x17\x9fD&?\xd5!|\ +y\xa6\x5c\xaf\xd5\xc1\x17\x1d\xbb\xc93\xc3\xe0[\xfaA\ +<\xd6\xbck,\x93\x8a\xb7\x08,7\xfc\x19(\x90q\ +\x9c\x92H\xa0\x18\xc5\xe9-M)Lf1\xa0\xc2a\ +Ta\xad\x84\x5c\x08\x0c\x87\xd6\xf3r\x9b\xe9\xe7z\xad\ +\x0dDuK\xf3Rna\xe9\xc6\x94\xae\xda\xfa\xf2T\ +Hg\xac\xbc]\x18\xe4UcY\xa4T>\x17\xec3\ +d{\xc1\xe8\xa4\xd6\xb9|?X\xaa\xa1\xe5\x8a\xc5\xc3\ +\xd6\xe1R\x1a\xaa\x18\x92\xcf\xf9\xe4sD\xf6,\xea\x99\ +P#\xb4\xef\xad\xf8\x16r\x9e\xaa#\x80\xee\xd4\xe1\xd2\ +\xc0j\xc7\x16\x0f_\xf2`\xfc\xad\xa0\x0ak2\xae\x91\ +\xd6r\x9b\xe2o\x88-!\xb3\x96\xcbKx)[7\ +\x17S\x85t\xea\xfa\xb9\x86r\xfa\xcd#[)AN\ +\xa3\x1cM\x1b\x17h\x1eEoI\xb2n\xc2\x18\x9d\xdc\ +\xb9\x9eX\xd6\x15\x94 !&\x85\xf0\xaco\x18_R\ +\xd6\xde\x9eXUx\xd1 \x93\xe6kfr\xfc\xc5f\ +R\xfe\x13\x0a\xe8$\xbd\xc3\xff\xba\xc1\xfb\xaf\xfe\x02p\ +X[+\ +\x00\x00\x0a\x1d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs6\x22 />\x0a \x0d\x0a\ - \x0a \x0a\ + \x0a \ + \x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a B\ -us\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xa3\ -\x00\ -\x00&\xfax\xda\xdd\x9a\xed\x8f\xa3\xb8\x19\xc0\xbf\x9ft\ -\xff\x03e\xbf\xec\xaa\xc1\xf8\xf1\xbb\xd3dO\xea\xadN\ -\xba\xaf\xedU\xfdX\x11 \x19\xba\x04\x22 \x93\x99\xfb\ -\xeb\xfb\x18B\x02C2\xda\xdbI5i\x99\x1d\xed`\ -?6\xf6\xcf\xcf\x9b\x0d\x8b\x9f\x9e\xb6\xb9\xf7\x98Vu\ -V\x16K\x1f\x08\xf5\xbd\xb4\x88\xcb$+6K\xff\x1f\ -\xbf\xfd\x12\x18\xdf\xab\x9b\xa8H\xa2\xbc,\xd2\xa5_\x94\ -\xfeO\x9f\x7f\xfca\xf1\xa7 \xf0~\xae\xd2\xa8I\x13\ -\xef\x905\x0f\xde\xaf\xc5\xd7:\x8ev\xa9\xf7\xf1\xa1i\ -v\xf30<\x1c\x0e$;\x16\x92\xb2\xda\x84\x9f\xbc \ -\xc0\xa6\xd8\xb8~\xdc\xfc\xf8\x83\xe7y\xf8\xec\xa2\x9e'\ -\xf1\xd2?\xb6\xd9\xed\xab\xbc\x95M\xe20\xcd\xd3mZ\ -4u\x08\x04B\x7f \x1f\x9f\xe5c7\x82\xec1\x8d\ -\xcb\xed\xb6,\xea\xb6iQ\x7f\x18JW\xc9\xfa$\xee\ -\x86t\xe0\xad\x14XkC\xcaB\xc6\x02\x94\x08\xea\xe7\ -\xa2\x89\x9e\x82\x17mq\x9c\x97\xda2Ji\x88u\x03\ -\xd1o\x14\x9b\xd7Hv\x87\xbf'\xf9\xbe\x80\xd4\xe5\xbe\ -\x8a\xd356LI\x916\xe1\x97\xdf\xbe\x9c*\x03J\ -\x92&\x19\xf6\xd3\x83\x1d=wD\xbb\x88\xb6i\xbd\x8b\ -\xe2\xb4\x0e\xfb\xf2\xae\x83C\x964\x0fK_\x98\xee\xf6\ -!\xcd6\x0f\xcd\xf9\xfe1K\x0f\x7f-\x9f\x96>\xf5\ -\xa8'\x0c\xfe#\xd4]\xd0Ug\xc9\xd2\xc79\xb1\xa3\ -\xf0Yq\xfa\xfa\xe3\xb3\xe6\xa7*J,#\xdc\xfb\xc8\ -\x04\x95R\xa8\x99\xc7(\x98\x80\xf2\x00\xe0S\xd7\xa6\x9f\ -\xe6<)c7\xec\xa5\x1f\x97yY\xfdkSe\x09\ -q\x00?;\xb1E\x92\xae\xebV\xbe\x1b\x85\xbb\x15\xbe\ -\x17v\x95\xa7>\x5c\x07\x89\x9b\xc4@t\x15\xd5\xc7\xc9\ -{\xde.\xda\xa4m\xf7K\xff\xc3\xba\xbd\xfa\x9aUY\ -%i\xd5\xd7\xa9\xf6\x1a\xd7\x95\xc83k\x9e;;\xe9\ -\xfb\xef'\xec:>\x09\xd0+\x02\xf5C\x94\x94\x87\xa5\ -\xcf&\xb5\xbf\x97\xe5\x16;f\x04\x844\x9cO\xeac\ -\x5c\x12\x90\x843!5Lk\xf1\x99L\x13\x03\x9a\x82\ -\x98\xd4\x22\xd7\xbd\xb3\xa5`_d\x0d\xea\xea\xeei\xda\ -\xc1\xbe\xaa\x9cD\x1e=\xa78\xfd\x0d\x17\xe2\xf4\x94\xfa\ -\xa1<\xb8\xb5X\xfa\xeb(?\x93\xbc\xde\xd9!+p\ -\x96\xc1Q\xd3\xc0(~M\xa4\xd7>\xa0L^\x93\xc1\ -\x89K}\xad\xb2\x9d\xf7\xb5\xcam\xf4\x94m\xb3\xdfS\ -\x1c9\x9c4e\x9b6Q\x125\xd1@?\xfa\x22\xdd\ -i\x1a\x0a\xa1O\x98\xff\xed\xcb/\xc7[,\x88\xe3\xf9\ -?\xcb\xeak\x7f\x8f\x97\x13\x89V\xe5\x1eG\xef\x7f>\ -\x97/\x92x\x8eV\xbc\x8d\x9a\xcf\xd9\x16W\xdcy\x80\ -?\xa3\xd1.\xc2s\xc5X\xbay\xde\xa5\x83~\xbb\x9e\ -\xab\xb4s\x08\x17]c\x12o3\xd7*\xfc{\x93\xe5\ -\xf9\xaf\xee1\xfd\xf4\x06\xddfM\x9e\x0eJ\x17\xe1q\ -\x0e\xfd\x1c\xc3\xe1$\x17a\x0f\xa1\xbb\xdd\xbcD\x9aG\ -\xab4_\xfa?G\xbb\xc8\x9b\xea\xdf\xa6*\xf7\xbbm\ -\x99\xe0x[\x0d\xf2\x07t\xdb\x82S\x93\xa6\x8a\x8a\xda\ -qX\xfa\xed\x9f9\x86\x90\x8ft\x16\x00\xa5\x82p\xc5\ -\xd8\xa7\xd3\x22lN\x13r\xdd\x8cTr\xd4\x0f\x22\xad\ -\xb2\xa7\x8f\x94\x18\xa5@q\xc9g\xd4\xfd\x9co\x19Q\ -Rk\xa3\xed\x0c\xb8&\xa0\x19\xef]O\xab\xde\xcds\ -\x8e\xe3^#\xca\xf9\xd1%\xfc\xa5n\xaa\xf2k:\xff\ - \x12\xf7s^\xdf\xc5.j\x1e\x06\x8bu\xb6\x9f\xb2\ -(\xd2\xb8)\xab\x00-\xe91j\xf6\x15vI\xfd\xa1\ -(\xce\xc1\xb5\x16\xec\xac\xcd\xeer\xfa\xe7\xa1\xddkF\ -\x15\xc3\x11R\xfc\x9b\x09\x90\x1e\xa0\xe7\x14\xda\x081\x0b\ -8Q\x0c`\xd8\xea\xd2\xa0\xddMP\xed\xf3t\x9e>\ -\xa6E\x99$\xa7i\xc4\xca\xb9\xf0\xe3mg\x97s\xd7\ -\xbb\xb2\xa0\xb4\xda=\xf55y\x86\x93\x88v\xf3\xd5\xbe\ -i\x86e\xff.\xb3b\x8e:\x97V}\xe9\xd1\xd3\xcd\ -a\xa8x\xb7\xa1#'t\x98[KC\xadrt4\ -\xb1\xa8\x09\x1e'\x94\x013|\x16\x18\xa2\x04\xb5\xdf\x0f\ -g\xbd\xb6\xab)\x1c\x83\x8b\xc15\xd3w\x06\x07&p\ -\x14\xa1\xd2hi%\xc2a\x9c\x80\x92\xcc\xd3\x84\xe1\x8a\ -+)g\x181\xb45\xdf\x0f\x87\xd2D\x9c\xec\xe1\x08\ -\x07\xfe8\x91\xf6&Gg\xdc\xccE_\x96D\x18\x0d\ -\xab*z\x9e\x17\x98Z\xfe\xf7\xd9\x9d\xa3\xd0Y\xb1\x10\ -\x14Hc\x19\xb2\x13\x9ah\x84\xe7a^\x82\xb6(5\ -\x07tJDi\xfd\xfd\xf0\x14s\xba55;.\x05\ -\x03s_\x9a\xa5\xe0\x92\xd9\xa1\xdb\xb4\xda\x99\x1d7D\ -+\x81t$\x11\xca\x18ng\x8a0F\xdf\xa0Y+\ -\xbd^\x0b51;t}\x96\xdd\x9dO\xb2\x17\xcc\x8e\ -\xa3\x1b\x92\xd2yl\x8eP\xa4\xf5\x80\xe3\xdaZn,\ -\xcc\x80X\xab\xdf\xe4\x93\xf4\xfa\x92\xc3\x96\xf8\x1c\xe0\xf7\ -\x05G_\x08g\x08\x04\x942\xad\xe6PLi\x19x\ -\x92\x00\x005\x1a\x15G\xa07\x7f\x8bK\x1a\x84\xe8\x13\ -\x1b-85\x82\xc2\x9d\xb1\x99\x063\x81\xeb\x08RQ\ -\xe8\xacJR-<\x8c\xfeV\xf2\xd6\xe3\xa0\x09\xd0\xb7\ -\xd0\x89\xd5z\xcd\xcd\xc4\xac8U\x1a\xb4\xbd3\x9f3\ -5+\xcc\xcf\x98\x11\xc0\x84\x0b\xf5\x82Ha-\x9a\x1a\ -\xfan\xc6\xcc\xcceD\x94\xc3\xad\xe1X\xc0\xb4\xd0\xde\ -\x9b\xe6L\xfd\xb1`D\x1at9.\xd0c\xd4\xd7\x5c\ -x\x81%NT2\x97#r\xa9\xe0-.g\xa5\xa7\ -.G[*\xf0qw\x16\xac$\xbf\xe4r\xa8\xb1\xb4\ -U\x1c\x0c\xebhb^\xecQ\xc2)\xd5\x80\x194E\ -NLy\xc2%F\x00\x88K\x13\x09\x98F\xbe,x\ -\x8b[r\xe1~\xa2[\xcc`<\x90\xe2\xbe\xf8\x8d3\ -\xc2.\xd8\x03\xba\x22.Y\x9bc[\xdc0\x19\xed\x19\ -\x1c\xbeT\x1a\xf7O\xa0\xc7\xc8o\x81Fc\x8a*\x19\ -\xbd\xb7h\x06\xc1T\xb98#\x06\xf3D\xe5\xf2D\x0e\ -DhT%T)\x03\x0a\xf3F\xa7:\x16y\xbd\xc5\ -\xf4Lr\xc1\xf48\xe5\x9c[v;>qV\xc5\xf9\ -\xf0\xac\xa1rGY\xa3\x10\xe5\x0e\x92p+n\x08\x87\ -\xf16\xd5\x9d?1\xe7\x90\xa55\xe6\x12:\x1c\xab\xfa\ -&\x04\xa7\xb1\xbdJD\xb1\x97D\xe0\x1d@`J\x07\ -\xdcN@p\x85\xce\x02=\x8b\xbc\x06\x22\xe07C\x81\ -i2&\x83\xef\x8f\x02C\x0eW\xa0^\xa2\x10m\xd2\ -k\xc6\xc9\xee\x08\xc5\xed\xb4\xc2\xae\x9c^\xbc?\x0a\xee\ -\xfc\xa3\xe6\x13\x14\x18d\xa8\xe0\x82_E\xa1oh \ -\xd3\x13\x9d\xf7@\xe1v\xcd\x98\xd4O<\x85ABV\ -Kv\x15\x85\xbc\x19\x8aK\xbb\xecwA!\xdd\xa1\x11\ -\xbcD\x81Y,s\xe9\xfeu\x14\x5c\xfe\xffY\x08\xee\ -\xf6$\xc8\x97,0G\xb3\x0a\xf5\xc5\x5cw\x16\xec\x86\ -&2Mh\xdf\xc5q2\xdc\xd2\x98\x89^\x08\xdc\xe8\ -\xe1>g\x9c\xe7\x8fX\xd8\x9b\xa1\xa0\xd4\x9d\xb6\xdcA\ -8eDY5\x89!\x80)\x95\xb0\xc0\xae\xab\x05\xdc\ -\x0cEd\xef\xc3qb\x8e\x8d\x8bo'\x8e\x93\xe2\x86\ -DJz=\xb3\x80\x1bF\x11\x87\xe2\x1e\xf4\x02M\x84\ -3;q\x17\x98j\x1bj\xc48\xbc\xbc\x80Ao\x08\ -\xc3$\xf7\x00\x83\xbbwA|\x0a\x03mG\x08x\xc5\ -Fn\xe80\xee%\xbd\xe0\x9a\x18\xc1&F\x82\xb2\x1a\ -\x98f\xaf\xb0\xe07d\x91\xde\xc5^\x84YBA^\ -\xca/\x04H\xa5\xec+0\xd4\xffJ$\xb9\xd5\x0e~\ -<\xe3n\x0foq\xcf\xa6\xbbw=\xdc\x10cAx\ -\x81;FS\x0a\xf7\xf5\x81$\x0c\xc4k{\xf8\xd6 \ -\xfe\x98\xc5\xdc|\x0f\xbf\x087\xa7/\x14\x10\xc7\xc5W\ -\xd8\xed\xcb\xb4\xd1zR\xb4!+AH~\xce\x13\xdb\ -k\xbc\x8fd\ -\x18\xb4\x9dn\x0a]\xd9\xc6,\xc3\xc6\x86oo^\xbe\ -X\xb4\xfb\xf5\xcb\x17A\x10\x1c\xca\xa2\xdb,C&\xc3\ -\xe3qc\xca\xf5\xa6;\x9f\xf7\xa59\xfcl\xef\x97!\ -\x0ep\xc0d0\xd0\xcbb\x19\x82\x0a\xdaK\x9d\xed\x93\ -\x9e\xdf\xdc\xb5\xb9\xde\x9al\xcaB4x\x855\xc6\xf9\ -\x8a'\x89\xba\x0e(\xa64\xc2\xf0\xc3^\x9fn\xb5\xe0\ -\xf7\x16~\xb3\xc2\xe6\x8d\xae\xc1\xddM\xd9vv\xedt\ -\x8d\xc0\xdaI\x08\x02n\xdal0\x00\x22]\xb7\xcd\xe2\ -\xf8p8\xa0\x81\x88\xac[\xc7^A\xbb\xd5\xb9i\xe3\ -\x81>U0\xd8\x1a\x15\x0c\x04\xd4\xda\x9d\xcb\xcd\x0at\ -\x18\xd4\x98.~\xf7\xe1\xdd\xc8\x8c0*\xbab\xa2g\ -f\xff\x90\x1c-S\x8cq\xfc\x85\xbfp|\xae\xa8+\ -V\x97D\x89R*\xc64\x06\xcc@\x22j\x1f\x9aN\ -\xdfGM{5\xbd\x9b\xe7\xe3\xd5\xdc\x19\xdd\x95{\x93\ -\xdb\xba\xb6M{\xc2d.]\x9c\xa5\xb7;W\x1dE\ -\x8a<6\x95\xa9M\xd3\xb51\xe4,\x0eo\xfc\x85E\ -m:]\xe8N\x1fo\x9f\xf2?\x90\x08=\xc9\x80\x14\ -8\x96\xfd\xf6\xee}\x7f\x04B\x9eg\x7fZw7\x9c\ -\xe1\xf1\x22\xfa\xd6\xee\xa0\xc8\xc2\x9b3}Q\xe4\x19@\ -^\xeb\xee\xa6\xac\xf5\xdaxP~\x02/\x17\xf1\x991\ -\x97\xee\x1e\xb6f\xa2\xf7\xa4\xd9\x99S\xf6.\xc6U\xe4\ -u\xe9o\xc5\xbfweU\xfd\xe2\xcd\x84A|v6\ -\xee\xbd\x1d\xa2\x89\xa7\xe1,\xe2!\xde\xd3\xb10\xabv\ -\x02\x86?\x12<\xa8[\x8c\x95\xec\xab\xb0\xf0]\xd4\xcb\ -n\xc1hn+\xeb\x96\xe1\xd5\xea\xf8\x84=\xe7\xd6\xba\ -\xc2\xb8\x81\x97\x1e\x9f9\xcfB5C\x00\xd0K\x03\xdd\ -\xde~4y\xd7\xd9\xca8\xdd\xf8\xa8\xc1\x85\x9e\xb5v\ -\xd0\xd9\x17\x19\xbb\xb20\x179c\xd3z'Gc\x97\ -\xd9\xedF\x17\xf6\xb0\x0c\xe9#\xee\xa1l\x80\x13\xf5\x83\ -\x852E\x9e\x12\x19\x86\x0d\xc1d\x8c\xd4c9b&\ -\x07j\xbb\xb1\x07\x1f\xd02\x5c\xe9\xaa5\x8f\x14~\xb2\ -\xb6^\x86\x1c)\xc5S\x91&\x8f\xf89L\xb0(\x15\ -H\x10\xceR\xf6\x98\x0da\xa6Hp&S!\x9e\xf2\ -\x16T\xa4\xea)&(\xa0O\xde\xac\xf5}Y\x97\x9f\ -L1\xc9\xdc\xd9\xf6\xce9h\xb6\xa8\xd2\x0f\x06\x12\xbf\ -f\x84_F<\xdf\x98\xfc\xce\xb8[\xab]\xe1\xb32\ -\x94\xdaVw\x9b^\x1e\xe8\xbf\xc2\xa0\xde0\xb9gr\ -\x131\xf9i\xd0\xb4\x82\x82\xf7\xc3\xbf1S\xa0\xfdU\ -6*ZO837:\xa8\x94\xd6\xf7 \xf4\xbc\xee\ -\x5cy\xff\x8a \xc0\x8ap!\xaf1|\x08J\x19S\ -\x09\x17\xd7\x11\xe5\x88Ixc\xf0*\x11\x91_\x99O\xd7\x1b\xff\x16\xb9]e2\xb37\x8d\ --\x8a7sU\xfd\xf1\xd4o\x19F\x80=\xc1#\xb5\ -*\x1b\x03\x15\x949\xbbk\x8a)\xf1\xa3-\x9b\x0c\xc6\ -\xa1q\x03\xf5x\xa8\xa0P\xbb\x8c\x0d\xb4BC\x9f;\ -\xa7\x1fN\xbe\xf4\xd4~4d$\x9c8\xee\x17B@\ -8\xa28\xe5\x90$\x92\x22,)\x94E\x00+\x13c\ -\xc6\xaf\xa1\x1e$')\x11\xd3[c\x15\x12&g\xf4\ -\xb1=l\x03\x11t\xd6E\xd0({\xdd\xed\x9c\x99\x8c\ -\xa4`\xfa\xa5\x01\xc01~\xbc\xc3N\xce\xf3\xd9`\xff\ -\xdb1&LP\xfa_b\x8c)&\xd7\x8c!\x05\x8d\ -\xc0\xd2 I\x90H\x15N\xe8\xb5\x07\x9b\x93\xa7 \x8e\ -\xf8?\x04\xf2\x22^\x8f\xdf\x01@\xd3\x97\xd5\x7f\x84\xfa\ -\x8a@\x8fp<`;\x8dv\x00V\xc2C\xd8\xf3\x80\ -\x9dQ\x9f\x01\xecV\x970f\x8f\x8b4\xab\xb5\x83Q\ -\xda\x06'\xc9\xe3t\x9c\x8f\x12\x1f\x04\xb4\xd1d \xf4\ -\xfb,AL\x08\xae\xa6\xa3\xe2\xbc\xc6\x90\x12\x82&\x13\ -\x8cagP\x8c\x12\x96P\xa1\xceTX\x16\x09\x85\x99\ -\xa1\x08O\xceT\xf70\x99\xea_\xc5Q\x8a\xbc(\xcc\ -Wq\x14X\x0a\xf2\x03\xe1\x18\xa9oD\x92'\x92\xa9\ -9\x92\x89\x82\x91\xc2\x92)\xbe'$\xa1\x1d\x13\xce\xbf\ -\x07\xc9Y{_@\x12\xbe\x00\x83I\xfe#\x01\x89\xbf\ -\x09H\x81\xb0\xa0b\xba\x15}I\xc2\xc2\x22T$\xe9\ -\x0cH\x0a\x13\x9b%)\xfb\x1e\x1c\x13\xa1o\xf3\xff\x19\ -\x8e\x11\xf9\xebH&\x0c1\xa5X2on\xc0W\xa5\ -\x92\x0a\xf1]%\x99K\xa5\xf1\xd7\xa0\xa4\x92?w\xc1\ -\xff[P\xcao\x81\x92R\xa4\x98 D\xcd\x8bR!\ -!pJ\xe9\x1cJ\x8c\x08\xe7xJ\x9dAy\xda;\ -\x0b\xff\xdf\x22\xfc\xfd\x0c\xef@\xd8N\ -\x00\x00\x0d\x9f\ +1;paint-order:no\ +rmal\x22\x0a id=\ +\x22path833\x22\x0a \ + cx=\x2295.063919\x22\x0a\ + cy=\x2261.41\ +296\x22\x0a rx=\x22\ +8.0538263\x22\x0a \ + ry=\x227.4785528\x22\ + />\x0a \x0a \ +\x0a\x0a\ +\x00\x00\x09n\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\ -\x0d\x0a \x0d\x0a \ - \x0a\x0a\ +\x0a\x0a \x0a \x0d\x0a \ -\x0d\ -\x0a \x0d\x0a\ - \x0d\x0a \ -image\ -/svg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0a \x0a \ + \x0a \ + \ +\x0a image/svg+xm\ +l\x0a \ + \x0a \ +\x0a \x0a \ +\x0a \x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a <\ -text\x0d\x0a xml\ +\x0a inkscape:g\ +roupmode=\x22layer\x22\ +\x0a id=\x22layer1\ +\x22\x0a transform\ +=\x22translate(0,-1\ +004.3622)\x22>\x0a \ +?\x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x1cB\ +:role=\x22line\x22\x0a \ + id=\x22tspan8\ +37\x22\x0a x=\x22\ +19.152025\x22\x0a \ + y=\x221030.7521\ +\x22\x0a style\ +=\x22stroke-width:0\ +.45910597\x22>?\x0a \ +\x0a \ + \x0a\x0a\ +\x00\x00\x0c_\ +\x00\ +\x00y\xa0x\xda\xed][\x8f\xdb6\x16~\xcf\xaf0\ +\xdc\x97\x04k\xd3\xe4!yx\xe8\xcc\xa4\xd8EQ\xb4\ +@\xf7e\xb7{})\x14[3\xe3\xc6c\x0dd\xcd\ +L\x92_\xbf\x87\xf2M\x12%w\xd2N7h@\x03\ +\x93X$%Q\x1f\xcf\xf5#E_|\xfd\xfev=\ +z\xc8\xcb\xed\xaa\xd8\x5c\x8e\x95\x90\xe3Q\xbeY\x14\xcb\ +\xd5\xe6\xfar\xfc\x8f\x1f\xbf\x9d\xd2x\xb4\xad\xb2\xcd2\ +[\x17\x9b\xfcr\xbc)\xc6_\xbfyq\xb1}\xb8~\ +1\x1a\x8d\xf8\xe4\xcdv\xbe\x5c\x5c\x8eo\xaa\xean>\ +\x9b\xdd\xdd\x97kQ\x94\xd7\xb3\xe5b\x96\xaf\xf3\xdb|\ +SmgJ\xa8\xd9\xf8\xd4|qj\xbe(\xf3\xacZ\ +=\xe4\x8b\xe2\xf6\xb6\xd8l\xeb37\xdb\xaf\x1a\x8d\xcb\ +\xe5\xd5\xb1\xf5\xe3\xe3\xa3x\xd4u#\xe5\xbd\x9fI\x98\ +\x01L\xb9\xc5t\xfbaSe\xef\xa7\xedS\xb9\x8f}\ +\xa7\x82\x94r\xc6u\xa7\x96Ok5\xdf2*w\xfc\ +wl~(\x10\xdb\xe2\xbe\x5c\xe4W|^.6y\ +5\xfb\xe6\xc7o\x8e\x95S)\x96\xd5\xb2q\x99\xd5\xe6\ +\xddv\x91\xdd\xe5\xad\xbb\x1e\x0aw\x08d\xb7\xf9\xf6.\ +[\xe4\xdb\xd9\xa1\xbc>\xffq\xb5\xacn.\xc7\x86\xea\ +\xa3\x9b|u}S\x1d\x0f\x1fV\xf9\xe3_\x8a\xf7\x97\ +c9\x92#C\xa3}\xf1jy9\xe6\xc7\x80]\x9b\ +\xd38\xab]\xed\xfe\xf2\xf3c\x8d\x14\x1e\x84\x1d\xbd\x04\ +\x892_\xa8+\x7f5\x19\x81\x049\x95f*\xe9U\ +}\xd6\xe1\xd1\xe6\xcbb\x11\xfaz9\xbe\xbb\xfa\xa9\xda\ +\xfe\xb4X\xdfo\xab\xbc\x14\x01\xb67\xdc\xf0\xe26\xaf\ +\xb2eVe\xe1\xa4]W\x0e%\x0a\xea\x16\xdc\x86\x87\ +o\xfe\xb7o\xbe\xdd\x1d\xf1\xf1b1\xffWQ\xbe\xdb\ +\x1f\xf2'4\xc8\xde\x16\xf7\xfc\xa8\xe37\xc7\xe2\x8b\xe5\ +b\xce\x80\xdff\xd5\x9b\xd5mv\x9d\x87\xb1\xfa\x13\x03\ +|1;U\xb4\x1aW\x1f\xee\xf2\xd3Ew\x97-\xf3\ +\xdd\xc8\xf5\x8a\xefrq\xbb\x0a'\xcd\xfe^\xad\xd6\xeb\ +\xef\xc3M\xc6\xa3Y\xe7\xa2\xabj\x9d\x9f\x0a/f\xfb\ +\xde\xef\x9fm\xd6x\xb8\x8b\xd9\xe1\xd9\xeb\xa3e~\xb5\ +=\xc1\x12\x8e\x94<@r\x9b\x95\xef\xf2\xf2p\xa3\xe3\ +\x18m\xabb\xf1.\xb4\xfesY\x16\x8f\xea\x07V\xcb\ +\xb2\x1a\x1f\x9a\x15\xe5\x8a\x95\xedr\x9c\xddW\xc5\xb1\xb0\ +\xcc\xaf\xfe\x13\xc6T6K\xfe\xdd.\x19\xbc\xe2\xb6\xfa\ +\xb0fh\x0a\x96\x8d\xabu\xf18\x7fXmWo\xd7\ +\xf98\xea\xd8j[w\xedr\x5c\x95\xf7\xf9q\x8c.\ +\xee\xb2\xea\xe6\x84x\xb8M(1\xd6\xd3\xf8T\xcc\xa5\ +\x7f\x1dqw&\xfc7\xfaad\xf9\xdb\xd4\xd6_\xa7\ +\x8a\x05\xb1Q\xbc+=4\xfd8j\x5cd\xdf\xd3+\ +\x1e\xa7iy\xbf\xce\xe7\xf9C\xbe)\x96\xcb\xd7\xdb\xaa\ +,\xde\xe5\xf3\xafd\xfd\xd9\x1fNk=\x9a\xb3\xad\xbb\ +\xab\x1a\x17\xa9\xcal\xb3\x0d\x92\xc3\x0a\xb3\xc8\xd6\xf9K\ +)\xe8\xd5\xaet\x9dU\xf9\xcb]w^\x1de\x80\x07\ +\xb4\x1e\xa7\xdd\xe0\x86\x11\xac\xbf\x1d\x95#h\xc62h\ +\xe5\xee\x16w,?\x8bb]\x94\x97\xe3\xaf\xae\xea\xcf\ +\xfe\xdeo\x8br\x99\x97\x87*\xac?\xad\xaa\x82M\x01\ +K\x22k\xed\xbe\xb8x\xfbs\xbe\xa8\xaab\x9ds\xe7\ +\x82\xf4\xaa\xc3h^\x97\xfch}\xe5\xf7\xabe\xdeW\ +q\x1c\xc3\xd0\xbd\xe3\x8dzk\xb77\xd9\xb2x\xbc\x1c\ +C\xb7\xf2q\xb5\xe1\x8a\xe9\xde:)24\xd0\xe2`\ +\xb1\x94T\xc7&<\xfeG\xa0\x0e\x85\xdb\x9b\xe21<\ +\x09\x8fh\xb6\xde\xe6\xdd\xab},\x0a\x1e#-\x8c\xb5\ +\x0e\xbc\xeeV/\xd8\x06N\x09\x04\x81\x96\x18U\xf2\xd3\ +\x11\x0a\x00k\xc1\x0dt\x93\xcfwC\x0f\xc9\xa7\x83\x1d\ +\xa8\xbb\xcd\xde\xafnW\x1f\xf3\xe5i\xa4N\xf7\xbd/\ +KV\xcf\xe9:\xfb\x90\xf30_\x1bTv/I\x17\ +\xd7'(\xae\x8d\xb2G3p\xdd\xd4\xd0kc\x8d\xf9\ +e\xdd\xd22\xd2\xad\x89\x1c}\x17\x1c\xc2?\xc3?\xdf\ +\xb1s\xf8o\xa3\xc9\xa9\x83\xc5f\xc3BU\x94S\xee\ +\xeaCV\xdd\x97\xf9I\x0e::6\xdfp(\xd0\xb0\ +\x85\xa7\x9e\xee\xfb\xea\xa5\xeaW,\xb6\xca\xe5\xea\xfdK\ +V=\xa7=x3\xe1\xdeMNG\xca\x0b-=\x90\ +\x9b(\x14\xda\xa14\xf8\xaai\xf3\xdbO\xfd)\xbdo\ +`\xa4\x9cjU\x04\xaf4\x9aZ-\x9c$\x8341\ +\xfc\xc5)\x8bv\xa4\xa4pZ\xf2\xd1dJ\xc2h\x02\ +\xe5\xb1uj\x13\x13\xb61Yf\xcc\xeba#\x04\x8b\ +L\xda\xacm\x84@8\xaf\x8d\xf3H\x87\xf2\xf5\x8a\x9f\ +$\xbb\x9b\xbf\xbd\xaf\xaaf\xd9\xcf\xc5j3g\x8f\x94\ +\x97\x87\xd2\xfa`\xcd\x22W\xcd\xcd\xa1l\x99\xb1\x9a\x96\ +e\xf6\xa1\x1e\xa3C\xe9^\xb1\xe7\xaa\xed\xc0\x9e\x09N\ +\xdd\x07\xa7\x11`\x8cE\x9cL\x95\x11\xdei\xe3\xed\x88\ +G\xd7\x92\x92~R\x7f\x91\x9e \xa1\x19\xa1i{\xd0\ +\xd4J\x90\x93\x80,\x88\xca\x09\x0b\x06\xa4\x1bM=\x87\ +jV\xa3\x9f(\xc5r\xea\x14#\xfb\x07\xc7\xb3\xd5\xfb\ +\xa3\x1f-\xd8uq\x1c\xc6a\xfabq\x1e\xf2\x81s\ +\x9eaT\x5c\xcf\xa8\x18\x86\x87\x00\xb5\x99L\xd9\x19I\ +d\x896#\x8e\x12\x9c\xd5\xca\xe1\xa4\xb6\x1e\xe0\xbf$\ +\x11\xcf\xd7\xeb\xd5\xdd\xb6\x1dF\x7f\x08\xaeXZ\xefX\ +<[\xcfZ\xbe\x0f5\xcajr\xd0\x16\xea\xe0\x84\xd9\ +\x07+\xae\x83\xf6\xa0\xd7\xbe\xdbZ\xa1\x01\xa4v\x03\x83\ +\xa1q\x8aS\xdd\x87\xeb\xb1\xdb\xafw\x08k\xb7 \xb7\ +;\x98\xb6\xebz\x01o\x22pD\x9b\x94\x07mu\x84\ +lY\xdco\x96\xbf7\xb2\xc0\xa6\xd3\x90\xd2}\xc8J\ +d\xd1C\x8c\x90u\xc2x\x8d`1F\x16\xbc\xe0\x8b\ +\xa1V\xc3\xc8\xaa\xa7\xe0\xda\x94\xdc_\x85\xab\x16Z\x91\ +W\x00\xee\xf3\xe0\xca\xde\xc9y\xab\xb4\x89p5\xc2(\ +\xa5\xbc\x8a%6\x98^@\xcb\x91c\x0c\xac\x06\x81\x06\ +\xad\x833\x22\xfb4`\x97&\xcb~\x13\xb0\xe4\xa5G\ +\x06\xf7\xf3\x00\xcb\x86\x90$i\xd0=\x02k\x89MW\ +\x1f\xaeFP\x10X\xdfc\x0a4+\x80dK1\x88\ +\xebS\xc5\x95\xe87\xa1j\xc8\xb3\xae\xa1\xfb\x5c\xa8\x92\ +d\xec4\xf5\xa0\xca1\x80\x92*F\x95\xcf!k\xc9\ +\xf7\x98\x01\x13r'i\xcd\x19i\x95\xff\x17\xf3\x1a\xcc\ +\x80\xf6D\x1e~O\x5c/f\xd7\x87\x8c\xfd\xba\x9bZ\ +5r\x93F\xa6/\xa4D\x07\xa4'S\xb0\x0c#g\ +\x99\xfe\xd5\xb8\x9d\x8d)\xce\xc6\x8eL@'S\xc3\x86\ +\xf5\xe8\xbd\x81\x14V\x81\xe1\x94\xe7\x94\xdd\x5c\x94\x1c\x8c\ +\xbch\x8d\xba\x12(%G\x10M\x95\x09\xc2\xc0\x11 \ +g*-\x9d\xa8%\xc1i\xadm\xb3\xf4\x90o#?\ +\x83t\xce7\xbd\xc8>[\xd7>\x5cL\xab\xa6(\x84\ +\x87\x08\xbd1\xb6%<\xed\xd8E\xa1>\x86&\x9d\xc3\ +\xfd\xe0J\xc1\xdaNV\x22t#\x95\xd6\xd8>\xdb\x88\ +\xbf\xbe\xcbV\x9ca\xd7\x94\xc9|G\xcdlG\xa1\xb7\ +\xa3]\xcb\x8e\x9c6\x05\xa4\x0f{\x8e\xe6\xbcV=\xd8\ +\x93\xd4\x8a\xda\xd8\x1b!9\xf8\x06i{\xc1w\x1c\xa3\ +\xa3\xc3\x18|v\xc7\xa0\x8cn\xe5\xa3M\xf0[AN\ +'t\xac\xfd\xc4\xa0bq\xe8\xe9\x11\x8cu\xf63`\ +\xbf\x09\xec\xeb\xba\x89\xefbU.\xd6\xf9\x8b_g\xa7\ +\xcfX\x0fN\x7f\x08\xd1\xe8\xcf(`\xbbF\xb5\x9c\x8d\ +cB\x86Z66\x18_\xce\xd5\x14\x923\xcd\xa1\x0d\ +\xf6:\x94{N\xf1\x9a\xed\xcb@$%\x18k\x18[\ +\xbaP\x03\xc9\xb19'_\x1e\xba@J\x81\x8e\x931\ +\x97\x80\xec\x07\x12c \xad\xf4\xadHj/\x90\x8e\xe3\ +\x07\xa3\x12\x8e\xfd8\xba.\x8e\x1c\xe1zc[.c\ +\x0f$\x87\x8e\x06\x93@\x0e\x00ic\x13i\x91\x83B\ +\xd3\x05\x925\x1e\x893\xb0\x04\xe4\x80\x89\xb4=\xaaM\ +\xca\xc9\x08I\x16U4F'$\x87ld\xe4\xb69\ +\xc4\x03\xb2-\x1ep/\x93\xd6*\x84d%\x07\x90\xf4\ +] \xad0\xce\x1a\x9b\xbc\xcd\xa7\xe1\xa8bo\x83\x88\ +d\xa9\x0b\xa4aon\xc8\xfb\x04d?\x90=\x01\xb9\ +\x09\x13*\x18\x03\x89\xc6\xdb\x14G\x0e\xc6?2\xb6\x91\ +Jr\x1a\xac:Hz\x81\xd6Q+\x01N@6M\ +d7\xb5\xf1\x1c\xe7H-\xc1\xc6\xce\x06A{\xb4\x09\ +\xc9\x01\xb7-c\xe5\xae\x89~\xdfA\x92\x84\xd7\x1c\xff\ +\xf8gQ\xee>\xca\xfe\x8f\x1f\x00u\xd3D\xad\x85\x0e\ +f\xd2\xc4P\x92v\xd4\xa2\xc4\x12\x94\xcd\xa8<\xf2\xdd\ +\xda\x08v\xd0.\xca\x14\x89\x13\xc5\x00q\x92\xca!\xa9\ +\x9cR\x0c%\x12 A\xe4sl\x98\x05U\x90\xa0\x1c\ +\xf0\xde\x11\x7f\xa1-\xbb\x1dG\x9a\x22(\xc1zO\xe8\ +\x13\x94\x03\xfcE\x94\xe4\xb0\xadt\x06@Q\xccMZ\ +\xce\x15]\x92\xcaA\x06#\x8a\xcfY\xc393\xe4\xe4\ +;\xce\x18\xb5\x0d\xbe=a9\xe4\xc2\xa7\xddpH\xa3\ +\x00\x19\x05C,\x95\xdaXe\x12\x92C\x01z,\x94\ +\x8e\x93CrN'\xb7\xf3\x894F4\x8f\xc3n\x87\ +\x8cT\xce\xc7\xc9\x0ex2*\xb9\x9d!\x22#\xf6\xe0\ +a\x06\xc2Y\x1d#\xc9\xb9\x8e\x92\x98\x90\x1cb2\xa2\ +9\x88`)]\xe0\x85:X:\xc1\x96R{k\x13\ +\x96CdF\x1c\x0d)\xce\xb65\x82\x89\xfd\x8eQ\xce\ +P\xc2r\x90\xce\x88\x1dOX\xba\x05\x14-\x1f@\xe1\ +\x02\xd1\xe1\x93\xe39\x83e\x8cf\x98u\x00\x87\x18%\ +\xe2VJ\xed(Y\xccshF\xb98\x09V\xf3\xf6\ +\xba\xed\xbd\xff\xd1\x1c`\xfa\x14_\x9eC\xb3'\x87D\ +\xad\x9dT\xf1\xdc-g\xe3\xa65;\x9e\xd0\xec\xa2\xe9\ +bM\x97\xe0\xdb\xafc\xec\xd1\x04\x09N%4\xcf\xa1\ +\xa9\xe3\xe8\x88\xc8\xab\x88\x0b\x0e\x93\x8f\xceA\xcb;\xfd\ +J4\xfb\xd7\x16\x7f\x01\xb4z\xbc\xfeJ\x09R\x9et\ +\x97\x0d\x06\xcba\x13\xcb\xa6K`\x0e\x12\xeb}\xd3\xe2\ +\xdaqL\x891\x98FI'!\x819H\xad\xc7S\ +\xe3Z(\x94&J(\x01E\x98\x19\xb7I2\x87\xc9\ +\xf5x\xe1Kx#\xd6\xa2\xa4\x18\xcc0\xabFI2\ +\x87\xe9\xf5\xbe\xc5\xbf\xa08\x0c\xea\xbas\xa8\xdf\x8d@\ +L\x92y\x86`\xef3\x9a\xa09}\x8c\xd0\xe4\x80^\ +\x1ac\x12\x9ag(\xf6>E\xaf\x97\x0a\xfa\xd8\x05\x01\ +\xa2T\x98\xd0\x1c\xa4\xd9\xa7\xa6\x0b&\x0a\x05hMr\ +A\x9fN\xb4\xc7+\xd4\x8d\xd0\xca\xf9(\xd0\xf4a\xaf\ +\x86\xf6+\xaf\x09\xcb6\xd3\x1e\x91\x1d\xec\x81\xa4\xb3:\ +J\xcf\x19LM\x1e\xa5J`\x0e\x93\xed\xb1\x9a\x87I\ +^\x90*Rs\x96X\xef\xc8\xa7\xe0\xe8\x0c\xdd\x1e\xbf\ +@\x11\x88\xf50K\x11GG\x1a\xb5\xa7$\x9b\xe7\xc8\ +\x8e\x9e5\x84\x9c\x87\xa3\xea\x92\x1d\xa0\x05\xba\xb0\xc7M\ +B\xf3\x1c\xe5\x1e\xc5\xee$\xc09\xb0\xd4\x13\x1fI\x05\ +\xf4\x1cT\xdc\x17\x8c'\xc5\xfc\x11\x86M=H\xba\x1e\ +\xb7NJR\x92\xcf\xb3\xb4{\x9c\x0d\x81PJ\x19\xd7\ +\x9d\xfa\xd5Rx\x0e\x93|\x82\xf3\x1c\xef\x1e\x99\xcf\xb0\ +\xc1\x80\xeb\xec\xf5\xb5\x87S\x19\x0f\xc9\x17\x9d%\xdec\ +m7Bi\xc6\xd3\xc4p\x1aM\x96R\x10?\xc4|\ +t\xd9M`=\x07\x22\x19\xc5\x9cRH\x0b:\xa5\x96\ +\xc3\xbc{W\xc7C(Dhl4W\xc9\xca\xaf\xc1\ +%ns\x98u\xc7\x18J\x83\xdeD\x8b4Y*Q\ +u\xf6OJP\xb68\xf7\xae#\x0f\xcc\xbaF\x8b6\ +\x96J\xf4\xd6\xda\x04\xe5 \xe3\xde\xcd(A\x09K\xd4\ +3\xad\x06\xc2\x84=\xd1\x92\xad\x1c\xe6\xdbm\xac\xe1\xd6\ +(\x87:a\xf9\xc9l{\x977\x02#<\x11F\x9b\ +\x97\xb0\xbc\x1a\x0e\x93\x12\xa59\xcc\xb5w\xc9ap\x22\ +\xcc\x9c\xc5\x84f\xd8\x98\x08\x91RZ>\xc8\xb4c\xec\ +x\xa4T\xc6`\xcc\x18\x91\xd3\xdaS\x82r\x88h\xb7\ +q\x90\xce\xb9\x0ey\x15\x13\xc3\xc6\x822\x09\xcaa\x9a\ +=\x12K+P{\x17\xaf\x81s\x82\x03NH\xa9\xf8\ +9\x92\xbd\xcbbr<\xee@j\x84\x1e\xcfC(m\ +\xa2\x89\x86y\x0d\x17+9ho\x1d\xc5\x82\xe9\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0a\x0a\ +\x0a\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a\x0d\ +\x22 />\x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \ +\x0a\ \x0a\ -\x00\x00\x09~\ +\x00\x00\x0dN\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + id=\x22path2\x22\x0a \ + fill=\x22none\x22 /\ +>\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a \ + \x0a\x0a\ +\x00\x00\x05\xee\ +\x00\ +\x00\x15Tx\xda\xe5X\xdbn\xe36\x10}\xdf\xaf\x10\ +\xb4/\x1b\xd4\x92x\x15E\xd5N\xd1b[\xb4@\xfb\ +\xd2n\xafo\x8aD;jd\xd1\xa0\xe88\xd9\xaf\xef\ +P\xb6n\xb1\xbcM\x91.\x16h\x1d8\x10g\x86\xe4\ +\xcc\x993C\xca\xcb/\x1e\xb6\x95w\xafLS\xeaz\ +\xe5\xe3\x10\xf9\x9e\xaas]\x94\xf5f\xe5\xff\xfc\xee\x9b\ + \xf1\xbd\xc6fu\x91U\xbaV+\xbf\xd6\xfe\x17\xd7\ +\xaf\x96\xcd\xfd\xe6\x95\xe7y0\xb9n\xd2\x22_\xf9\xb7\ +\xd6\xee\xd2(\xda\xedM\x15j\xb3\x89\x8a\xce \xbb\xd1{\ +\x08\xc8\xbf\xee\xc5\xcb\x22O\x01\xd6mf\xaf\xcbm\xb6\ +Q.#\x9f\x01\x8c\xcbhPL\x8c\xed\xe3N\x0d\x8b\ +\x1e\x975\xea\x98\x9fY\x92\x16\xf9\xb6t\x93\xa2\x9fl\ +YU\xdf\xb9M|/z\xb2hi+5\x08\x97\xd1\ +\xc9\xfbSl\xd1(\xb8e\xd4\xc5\xde\x8e\x0a\xb5n\x06\ +X\xdc\x08\xa3\x0e\x92mf\xee\x94\xe96\xea3\xd1X\ +\x9d\xdf9\xeb/\x8d\xd1\x07\xfc=\x14\x9f\xb1~g\xa6\ +M\x09%\xb5\xf2\xb3\xbd\xd5\xbd\xd0\xa8\xf5\xef.sh\ +,\xf9m*\xb9\xb8bc\x1f+\x80F\x03\x03\xd6\x95\ +>\xa4\xf7eS\xdeT\xca?s\xaclZ\xd7V\xbe\ +5{\xd5\xe7h\xb9\xcb\xec\xed\x80\xb8\xdb\xc6I\x18\x97\ +\x89?\x88A\xfa\x83\x07\xee,\xe0\xeb}\xefqx\x0a\ +x\xfb\x18`\x12\xf2\x91\xf8(\xedL\xdf{\xa3EN\ +\x9e\xae!O\x81\xd9W*U\xf7\xaa\xd6E\xf1yc\ +\x8d\xbeS\xe9k\xd4~N\xc3\xa0\xad\x96\x14:\xda\xce\ +\x8e\x16\xb1&\xab\x1b\xc7\x1c(\x8b<\xab\xd4\x1b\x14&\ +WGi\x95Y\xf5\xe6\xe8\xceU\xcf\x01Hh\x9b\xa7\ +cr]\x06\xdb\xa7\xbe\x22\x5c9\x14\xae\xf6\x8e[\xec\ +\x80?\xb9\xae\xb4Y\xf9\xaf\xd7\xed\xe7\xb4\xf7\x8d6\x85\ +2\x9d*n?\x13\x95\x86\x82\x07&Bm\x9e\xc4\xfa\ +\xe6O\x95[\xab+\x05\xce9\xf6\xe2.\x9b\x1b\x03\xa1\ +\xcd\xc9\xf7e\xa1\xe6\x14}\x0e\x9d{\xfdF\xb3\xda\xe6\ +6+\xf4a\xe5\x93\xa7\xcaCY\x83\x228\xf5 \x9c\ +\xc4\xf4\x82E\xd7\x970\x22\xdc\x1f\xc8\xdf\x03\xd5\xf1\xa2\ +\xb9\xd5\x07\x17\x09d4\xab\x1a\xf5t\xb5\xf7ZC\x8e\ +0\x0d9A\x09eO\xd59t:\xc2B\x81HL\ +\xce<\xc9!:\x82C!0\x8f/\x05\x02\xf3\xb9\xb8\ +\xa0s\xd3/\xe9\xb6\xd9C\xb9-\xdf\xabb\xc8\xd4\xb0\ +\xef\xde\x18(\xcf\xa0\xca\x1e\x15\xa4y#\x11>\x11i\ +\xb9\x19\x90\xd80\xcc\xfb.\xb0\x19\x17\xe8\x86q\xc6\xfe\ +\xbe\xb4(:+\xad\x05\xf2\xbeu]\xff\x17\xf7\xef[\ +8\x01\xfe\x18\x99\x0c\xfe\xe9\xba\x06Ni\x13\x80\xa7\xf7\ +\x99\xdd\x1b5\xd0\xe0I\x89\xa55\x9c\xf7\xa3V8x\ +z\xf2\xd5\x057[W\xd0\x94M\xf9\xf0\x06*OP\ +I$[\x80w\x8ba$\xa0\xe2$\x04\x8a\x17\x14\x85\ +\x82\x12\x89\xe8\xd5\xb8\xe5O\xa3\xfe'\xde\x8f0\xc2\x02\ +O\x14\xeeP\xf2\x02NB\xc9\x91\xc4\x0c\xda\x0c\x8b\x99\ +\xc0\x88z2d\x84\x10\xc4\x17\x01\ +\x12\xe0\x82\xfcs\xc0{\x18\x9f\x9f\x81\x8f\x82&\x9fA\ +\x93\xe20q\xfdN\x00\x9a\x02\xda\x22#Hx\xc0\xda\ +\x041\x9c$\x0b\x8cC\xc6\x12\xf2$\x11\xff?\xfe^\ +\x98\xf3/$E\xcc$\x85\x01<\x09\x89)[\x04\x14\ +\xfaG\x0c\x84f\x1e\x5c\x22\x04\xa7X\xc4\x0b|lq\ +\xff%\x86\xab\xaa*w\xcd\xf4\x96\x0d\x07&\x0d\x11\x07\ +\x87\xe2)H\xe6\xc1i0\xa7\x89 SN\xbb3:\ +\x0ee,Q\xc2\xa7s\xdc\xd1\xeeZ\x07\x8f\x81\xcf\xec\ +B2h\x1c\xc4\xc1,\xd5\x87\x00\x8f\x08\xc71B\xeb\ +\xf5\x11\xe1\xa9n\x16\xf01){\xb4\x13,\x09\xe5\xf4\ +\x0cY\xa3\xf7u\xf1\x12\xb2?\x07Y8\xb4\x04K\x80\ +\x063\xc8\xa2\x18\xa8\xd7\xdf$\x07dE\xc8$\x8d\x09\ +\x8f\xcf\x91%\xd01\x00>\x8a/#\x8b\x9f\x83\xab\x94\ +\x9c\xbf\x08W\x1aR\x9cHL\x88\xf84\xb8\xc2\xe1$\ +$\xc7\x94\x9d\xe1\xcaB\x861\x96\xf8\x9c\xb1\xae\xf3\x92\ +\x98\x13\xce\xcf\x81\xa5$\x8cY\xcc\x05\xf9\x00e\x9f\x03\ +,\xa5\x08%\xe8E\xc0&\x12\xc9\x18\xc0\xfd4\xc0B\ +#L\xe0\xceN\xe8\x0cay\x02\xadk\x0e\xd7\xf6~\ + \xe5\x0ca9\x0dELc|\x99\xb0\xcfAU\xac\ +I\xf6B\xba2\xb8\xb7\xc2k\x9b\xf8T\xa8&\x08\xb0\ +\xa3\xc9\x0c\xaa\x92p\x8c\xf09\xaa0'\xe1<\x99C\ +\x95A<\x1cq\xf6\x01\xb6\xa2\xe7\xe0\xca9B\x05{\ +a\x1b\xa02I$\xf9\x98\xb8.\xa3M\xf7B\xbfy\ +\xfa\xea5zw\x19\xfd\x10\x10\x22\x14\x0b\x92\xd0E@\ +8\xc0(\x88\x94W\xfe\xf4m\x0d\xc3\xdb\xda\xe9\xfd\xce\ +\xad\xbat?O]\xbf\xfa\x0b\xc9v\x10A\ +\x00\x00\x07\x9c\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x18\x92\ +dth:1.33333337\x22\x0a\ + d=\x22m 37.559\ +322,153.62712 v \ +-8 h 56 55.99999\ +8 v 8 8 h -55.99\ +9998 -56 z m 28,\ +-52.66667 -27.30\ +894,-27.333331 h\ + 15.654471 15.65\ +4469 v -24 -24 h\ + 24 23.999998 v \ +24 24 h 15.65447\ + 15.65446 l -27.\ +30893,27.333331 \ +c -15.01992,15.0\ +3334 -27.619918,\ +27.33334 -27.999\ +998,27.33334 -0.\ +38008,0 -12.9800\ +8,-12.3 -28,-27.\ +33334 z\x22\x0a id\ +=\x22path817\x22\x0a \ +inkscape:connect\ +or-curvature=\x220\x22\ + />\x0a\x0a\ +\x00\x00\x09,\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\ -image/svg+xm\ -l\ -\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1863\x22\x0a inksc\ +ape:window-heigh\ +t=\x221025\x22\x0a id\ +=\x22namedview4\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x221.738304\ +2\x22\x0a inkscape\ +:cx=\x22133.79315\x22\x0a\ inkscape:cy\ -=\x22-207.85672\x22\x0d\x0a \ - inkscape:win\ -dow-x=\x22-8\x22\x0d\x0a \ - inkscape:window\ --y=\x22-8\x22\x0d\x0a in\ -kscape:window-ma\ -ximized=\x221\x22\x0d\x0a \ - inkscape:curre\ -nt-layer=\x22svg2\x22\x0d\ -\x0a inkscape:s\ -howpageshadow=\x222\ -\x22\x0d\x0a inkscape\ -:pagecheckerboar\ -d=\x220\x22\x0d\x0a inks\ -cape:deskcolor=\x22\ -#d1d1d1\x22 />\ -\ -\x0a \ +\ +\x0a \x0a \ + \x0a <\ +/g>\x0a\x0a\ +\x00\x00\x05\x0e\ +\x00\ +\x00\x13 x\xda\xe5X\xddo\xdb6\x10\x7f\xcf_!\ +\xa8/-fI$EQ\xa4j\xa7\xc0P\x14\xd8\xc3\ +^\xb6\x0e{,\x18\x89\xb6\xd5H\xa2A\xd1v\xdc\xbf\ +~G}YN\x9c.\xdb\xb0\x01k\xed\x04\xc8}\x90\ +\xbc\xfb\xf1\xee\xc7C\x96\xef\x1e\xea\xca;(\xd3\x96\xba\ +Y\xf98D\xbe\xa7\x9a\x5c\x17e\xb3Y\xf9\xbf}\xfc\ +\x10p\xdfk\xadl\x0aY\xe9F\xad\xfcF\xfb\xefn\ +o\x96\xedas\xe3y^\xd9\xdc\xb7\xb9\xdc\xa9l\xb6\ +\x03\x0e\x89\xf7\x1aI\x84\xf2u\x12\xc7b\xe1\x11DH\ +\x80\xe0\x87\xbe\xf1\xdd\xa2\x16v\xdf\xc1oV\xe8\xbc\x91\ +5l*\x8b\xe2\x93z\xb0\xca4\xb2\xfa\xb41e\x11\ +\xc2\xfe\x9doY\xac|\xf8\x9bu\xc2\xfc\x90^Q\xaa\ +\xe3\x8f\xfaa\xe5#\x0fy\x94\xc3O\xa7\xde\xaar\xb3\ +\xb5+\x7f\x10\x8fea\xb7\x93\x04\xf96m6\x06\xbe\ +\xf2\xb7\xd6\xee\xb2(:\x1e\x8f\xe1\xa8\x0c\xb5\xd9D.\ +\xb2v's\xd5F\xa3~\xb6~\xccaZ?*\xc2\ +V\xefM\xae\xd6\xb0\x85\x0a\x1be\xa3\xf7\x1f\xdfO\xc6\ +\x00\x85\x85-\xce\xdb\x5c\x9c~\x8c\xbbs\x09B(\x1a\ +\xd3\x1f\x0e;l^\xe8i\x8a\xf55O,\x84\x88\x10\ +\x89\xe0\x1e\xc0#hO\x8d\x95\x0fA\xd3\xbe\x9a-\xcd\ +\xf3ien\x94\xb4\xe5A\xe5\xba\xaeu\xd3\xf6p\x5c\ +8\x17g\xe7\xdd\xdeT\x9dG\x91G\xaaR\xb5jl\ +\x1b\xc1\x05E\xfe-\xf8/kee!\xadtk\xfb\ +\xeb\x1c5\x98t\x1e\xe0\x031e\xbf\xbc\xff\xd0K \ +\xe7y\xf6\xbb6\xf7\x83\x08\x1f\xe7 \xef\xf4\x1e\xee\xd4\ +\xbf\x9d\xd4\xcb\x22\xcf\x00\xe7Z\xda\xdb\xb2\x96\x1b\xe5\xb0\ +\xf8\x01\xe2[Fg\xc3\x85\xb3=\xed\xd4y\xd3~[\ +\xa3\xfa\x0b\xbb\x9aO\x91\xd7\xa5[\x14\xfdj\xcb\xaa\xfa\ +\xc9\x1d\xe2{\xd1\x14g4\x04:\xa4\x11\xcd\xf2XF\ +c\x9a\x9dT\xa8u{F\xc0I\x18\x0d;-\xa7v\ +p\x15W\xb8\x92\x1e<\xc7\xde\x826\xd9;X\x03\xa3\ +-\xdc\x8bk\x00\xe4?\xf2\xc9\xf7\xc68\x97J\x9e\x94\ +\x99\xb5\xcc\xcc\xe5X6\x85>\x06\xb5|(\xeb\xf2\x8b\ +\x828\xf03.\xa7\x95O\xd2gl\xd0l,yr\ +\xfa\xc9\xf5$MQ\xc29yb\x84%\x01\xe5\x83\xf9\ +\xb1\xf5\x8b\xd6\xf5\xca\xe7\xe1\xb8g\xbb\xd5G\xc7\x00+\ +\x7f-\xabV\xf9g\xd4&x\xf83\xa1\x8dm\x8f\x11\ +~.\xf9\x81\x0a\x08\x15Or\xd8\xc1\xe5\xb6[\x09^\ +`\xbff\xd4@\x06P\x0dg\xf07\xfb\xb2PVW\ +\xca\xc8\xc6\x15\x10\x9e\x0c\x10\xff5\xbd\xbe\xfb\xacr{\ +\xcdr\xa7M\xa1\xcct\x02\xbeP\xe7\xba\xd2p\xa7\xaf\ +X\xf7\x19L.\xa2\xd1\xb0\xee>\xd7b\xce\xb7*\xbf\ +W\xe6NKS\xb8\xc0\x87\x92\xdbI\xbb\xed\xbd\xd7P\ +\xd7\x8e\xd4\x9b9\xd2\xceN\x08c\x0b\x16\x12\x86R\xc1\x5c\x19\ +b\x16\x93\x05\xa6\x0e0\xa8\xc3\x7f\xda\xc0=\x144D\ +\x08\xc6\x96\xff\x16\x86\xab\xf9O5\xe2\xa8\xd0\xe3!c\ +\x94\x11\x84\x17$\x0e\x09\xe6\x82p\x0f\x8a\x86\x03,\xe9\ +\x82\xc2\xdc\xc3\x10\x8b\xd9\xff\x11\x83\x9b\xaf\xf5\xd8\xd7\x01\ +\x0a\x1e\x17\x09\x16\x98wtO\xe3\x98s\xeaAq\xa0\ +4\x15\x80\x9a\x00\xa8\x08\xc3\xfc{C(\x9e#\x94\x86\ +,\xa5\x82\x90EL\xc28N\x13\xc4\x81yB\x22b\ +\x01O\xa3\x08\x09M\x09J\xbeU\x84\x0cP\xf3\xd3\xd4\ +\xba\xfd\xfeB^\xf1\xcb2\xba\xd0\xfe\x8d\x8c\xde\xeed\ +\x09cu7\x87e\xb540L\xb5^\xef\xd4\xcdN\ +\xb3\xe1\xc5\xe5\xc5\x93\x11\x83q\xd2\xe4a\x0a\x95\xcf\xc6\ +\x06\x19gT\x02S\x11\xe2(\x1e\xdfy\x98\x91Sx\ +\xd8\xe1\xbd\xa1c\xa5\xb8)\x1c\x87\x22\x81\x9a\x88\xff\xac\ +\xba\xe6\xd3\x9a\xa3#\xc2\x11\x8a\xe3\x8e\xa2R!b\x0a\ +\xb4\x05S1\x82\x9e\x04\x8a\x22\x043J\xbe;\x8a\x0a\ +\xd8\x1c$\x806\x85\xa7\x96\xf4,%(\x17W\xba\xf2\ +\xbb#\xa9 \xb9(\xa4\x04\x1ey\x18:q\x87\x88\x80\ +\xe2\xa6\x0e7\x91&)\x13\xae\x92\x18MR,\xbeI\ +\x94\x96\xee\xbf\x09\xb77\x7f\x00lU\xec\xbf\ +\x00\x00\x15\xb0\ +\x00\ +\x00P\x22x\xda\xed\x5cYs#Gr~\xd7\xafh\ +S/R\x18\x00\xeb\xea:\xa8\xe1l\x84W\xb1\xe1}\ +\xb2\xc3\xbb\x0a?c\x00\x0cI\x0b\x04\x18\x00\xe6\xd2\xaf\ +w^\x95U\x0d\x90\xe3\x91e\xd9\x96B\xa3\xdd \xaa\ +\xba\xba\x8e\xcc/\xcf\xce\xeeW\x7f\xfa\xf8\xb8\x1d\xdeo\ +\x0e\xc7\x87\xfd\xee\xf6\xca.\xcc\xd5\xb0\xd9\xad\xf6\xeb\x87\ +\xdd\xdd\xed\xd5\x0f\x7f\xff\xcb<_\x0d\xc7\xd3r\xb7^\ +n\xf7\xbb\xcd\xed\xd5n\x7f\xf5\xa7\xd7_\xbd\xfa\x87\xf9\ +|\xf8\xf3a\xb3\x7f\xfd\xd5\ +W\xaf\x8e\xef\xef\xbe\x1a\x06\xb8k}\xba\xbf\xbd\x0a\xf9\ +\x0a[\xf7\x9b\x87\xbb\xfb\x936\xdf?l>\xfc\xd3\xfe\ +\xe3\xed\x95\x19\xcc\x10\xf2\xc2\xe0?\xdb~\xd1\xa0\x87\xf5\ +\xed\x15L\xe6\xf8\x8ev\x04\xb9*k\xdf\xf4W\x16n\ +\xf8\xc6,\x8dY\xbd\x1d\xbd/\xb3\xc1\x19\xe7\xe6\x06\xfe\ +\x17\xbe\xa5\x9b\x8ep\xf0'\xf8\xff\xcdz\xbf\xda-\x1f\ +\xe1\xbc\x8f\xcb\xa7\xe1\x9b\xe5z\xfd\xed\x02\x96\xa21@\ +\xb0\xdd\xf1\xa6N\x7f{\xf5\xd2y\xf1\xfe\xe3\xd3r\xb5\ +9^\xd7\xfe\xee\xfe\xba\x92\xde_;\x16\xc7\xfd\xbb\xc3\ +j\xf3\x16\xa6\xd8,v\x9b\xd3\xf5\xf7\x7f\xff^/\xce\ +\xcdb}Z\xb7i&\xab\x7f\xf0\xb4\xae\x03\x02]O\ +7\x0b\xad/\x1cyX\xbf}n\xa4-\xa5\x5c\x1bw\ +\x0d\xd4\x82\x11\xf3\xe3\xa7\xddi\xf9q\xbe;~\xdd\xdd\ +\xbaZ\xe9\x9d+D\xc6\xc3\xfb\xcdj\xff\xf8\xb8\xdf\x1d\ +\x99\x1c\x93\xc1\xeb6\xf8\xe9\xddaK#\xd6\xab\xeb\xcd\ +v\xf3\xb8\xd9\x9d\x8e\xd7\xc0\xab\xeb\xab\xd70\xfe\xd5z\ +\xf3\xf6\x88\xf71\xbf\xb1\x15\xe8\x02\x5cZm\x1f\x9e\xfe\ +uy\xba\xe7\xcb\xc3P\xdb?\xec\x1eN@\x9aw\xc7\ +\xcd\xe1o\xc8\x80\x7f\xd9\xfdpd\xda\xd7i\xea\xc8\xec\ +F\x99\x0c\xa6;lV\xa7:\x08\xa0p\xfa\xb4\x05\xee\ +\xbe}\xd8nov\x00\xfd\xef\xf0\xd7|\x0f\xf3=\x9c\ +>\xdd\x98E\x0ee\xb4a\xf4\xdf\x1dO\x87\xfd\x8f\x9b\ +\x9b\xaf\x0b\xfd\x93\xe6\x9c\xe0}\xe3\x17yL\xc1\x067\ +\xd6\xfe\xed\xc3n\xf3\x1f\xfb\x87\xdd\xcda\xffn\xb7\xae\ +\xbd\x8f\x0f\xa7\xcda\xfb\x00\x7fnB\xed[/\x8f\xf7\ +\xcb\xc3a\xf9\x89\x96\xbfj;\xc3\x03\xe0^\xb3K]\ +o\x95\xa7\xb0\xc0\xe5r\xec.\xa9p=s\xed#\xca\ +Eq9\x99d\xbb\xeeO\xd0mL\x5c\xb8bJ\xd7\ +}\xa0\xfe\x85\xcd1\x8d\xf6j\xb8\x16F\x5cWz\xfe\ +O2fn~\xd3\xac\x99\xfb\xff\x8f\xccyu\x8d\x12\ +D\xbfT\xd7\xa1\xa2Z\xa3\xc6mb\xf6f\xa9|y\ +Z\xde\x81\x1co\xf7\x87\xdb\xab\xaf\xdf\xd2?\xb9\xf0f\ +\x7fXo\x0e\xf5R\xa4\x7f\x93K\xc2\x10\xb6*2w\ +U\xca8\xab^7\xcf_\x07\x1a\xaf\xf7\x1fn\xaf\xdc\ +\xf9\xc5\x9f\xf6\xfb\xc7\xdb\xab\xb4(\xb6\x8c%\x9e_]\ +}$2\x84l\xbc\xf7\x17\x17?\xa1\x8d\x01\xca\xa5b\ +\xf3\xf9EP\xfa\xefP\xfd\xcc\xdf1N\x9f>^\xdc\ +\xfe\xeep\xc0\x01\xdb\xe5\xa7\x0d\x9c\x9a\xfeX\xe5\xf4\xf1\ +~\xff\xe1\xee\x80\xf4{\xbb\xdc*\x01_\x9c\xec\xc3\xc3\ +\x0e\xce7\x17l\xb8\xd1\x8c/\x8c\xa8\x10\xb1\xc6\xc6\x17\ +\x86\xc0\x99\xc7\x97n\x87#\xab\xa68\xbf\xf6\xb8\xfc\x08\ +\xd0\xfei\x03{\xb6\xcf\xf1`u\xbfY\xfd\xb89\xbc\ +\xd9/\x0f0\xc4\x08\xaa^=nN\xcb\xf5\xf2\xb4l\ +\x88\xa9=\xa9*g\xb0\x137\xff\xf6\xfd_T\x84W\ +\xab\x9b\x7f\xdf\x1f~\xec\xe0\x0a\x03\x96o\xf6\xef\xe0`\ +*\xe8\xa8\xefW7`\xfb\x1e\x97\xa7\xd7\x0f\x8f\xb0\x01\ +\xb4O\xff\x086\x03\x80\xab\x17&\x83O\x9f\x9e6m\ +R\x9e\xf6\xb0a#\xfa\xac\x8dY\xaf@\x96\xe1\xa6\xeb\ +\xbf\x9d@m\xfc\x15\x17Qa!q\xe1\x8dV\xe9\xe9\ +\xce\xf1\xea\xba\x9e\x92Zwg\xf4\xda.\xdfl\xb6\xb7\ +W\x7f^>-\x87\x0bb\xde\x81Ryz\xdc\xaf7\ +\x82\x9a\xabF:F\x91t\x9c\x0e\xcb\xdd\x11\xcfy{\ +E?\xb7\xe0b}cfs\x10\xf8\xb0\xf0\xd1\xb9o\ ++\x81\xefz\xbdy\x86\xc4\xffbW/,3\x1f\xf3\ +\x22\xc4\xe0r\x84\xf5\x02*\x9eq\xcc\xdf6-|\xd7\ +)\xba\xcfO?\xd9To\xa5\x9e]w,\x0b\x9bl\ +\x08\xe3\xcc\xfaE\xb2\xce\x94\xf4m\x0f\x89\xbb\x9e\xbf\xfd\ +i':\xf6\x0b6\xf5\xd2\xb9#h\xa0\xd1\xd94\xc2\ +\xb9\xdd\x22\x80\xde\xa8\x0e\xe1s&\xe7\xeb7\x1e\xffS\ +\xeb\x22\xaa\xefu7\xfe\xd5Sg\xfd^\x9e\x81\xec\xd6\ +\xe1\xddvs\xb3y\xbf\xd9\xed\xd7\xeb\xb39\xa7\x16\xcb\ +,\x5co\xaa\xe0\xa4SK\xa5\xf6\xeb\x0d\xcc\xb6\xfdr\ +\xfbU{\xab\x01\xb5\xdf=-\x1f@\xc9\x91\x12\x87\x11\ + s\xdb\xab\xe9aP\xe0\x07PG@6\x9f\xc2\xcc\ +\x1a\x07\x8c+a\x00\xff\xb4\x98\xe4\xd3\xcc.\xc6\x9c\xca\ +\x00\xd6\xc8\xfa\xe0f\x1et\xb5\x1f\xe6\xe0\x7f\x87\x14]\ +\x9c!\xbd\x13\x8e\xf6\xc1\xb8\xe8\xa0\xed\xb2\x1f\x07\xfe3\ +Zh\x83\xf9\xa6\x01\xa35\xbex\xe8\x18c\xb28\x83\ +\x05\xa3g\x01\xa0\x17s\xb0\x95\xeb\ +\xba\x1e\x11\xc0\xe1\x19@\xf5X\xba\x81\xe8\xc0\x9c\xb3\xfd\ +\x91\xea\x04\x04\x93\x0eFHd\x1c\xd0\xb6\xe0b\xe9I\ +\x8b\xcc\xa5#\xea\x19\x84\xd4r\x07\x1d\x82\xd6\x04\x1d\xe0\ +=\xc2\xa6\xe4\x90iS\xf07\xe2\x08\xa0p\xbf\x0b\xbb\ +\x086\xe5\x0eX\x8d\xa1D\x98\x1e\xceD\xe9q\xd6\xc0\ +\xdb`Ri!\xb3\xce\x1b\xbf\x94\xfc\xb8\xd5\x7f\x1e\x92\ +_xp_\x10\xdc\xdd\x0a\xc4\xfe\x8e2\xb4\x85\x8e2\ +$?\xddx&L\x8fu\xa4\xc09\xed\xe8\x9cHu\ +\xeb\x05\xb9t\xd04f\xe3\xbac\xf5\xfc\x88\xbd\x18\xa3\ +@u\x97\x81\xff~\xd05eI\x01\xe4XW\x14\xa2\ +\x08;\xf1~B35\x1d\ +\x12\x16\xd9\x19\x9fR\x13#9t\xe8\x19#dh|\ +A\xf4\xbb\xc0\xb4w\x13m&\xfb\xd2s\x8b\xf4\xd2\xbe\ +}'g4\xc0\xcd\xf8J\x13\xb4\x061\xe5\x05Q\xa2\ +)\x22\xb7\x88&\xe3\x12Urh\x0b\x9d\xba\x148\xe8\ +\xfd\x15o\x0as8\x1c\x91V\x01\x99`\x02\xa00P\ +\xd2D9vljK\x01D\x1b\x18q\x8b)\xa1\xec\ +\x13\x11\xbc\xe2\xa7\xaa\xde\xaa\x18\xdd\x02\x88\x96}\xe0-\ +\x8c\x13\xc5Hh\xe8g x\x918\x01\xc0f\xac\x98\ +c\x03m\x87\xd1\xa6)\x89\x94pO\x82\xa1p\x8f[\ +8k\xd3\xa0*\xa4\x8e\xd0\x93\xce\xcf\x14\xa3\xed\x95z\ +[\xa8\xde\x84\xc8\x1b\xbbu\x88>I\xa0\xc4\x82`K\ +\xe3\xb0 \xad\xe2H\x95\x86\xe8\xb4F\x1e\xb5x\x02\x22\ +\x02\xa5\xedE\x87T\x99\x8e\xe7\x95\x07>\x1e\x9c\x5ci\ +\xd3\xd4\x05\x09\x8f*!\xd5\xc6\xaa\xed\xe5HbB\x1a\ +\xa4*\x84*Yh\x80k\xd2\xa6\xea\x87\x85\x99\x00\x11\ +\xf0D\x84\x80\xf7C\xd5T\xdb\xa1\xb7\x93\x84\xa7\xf7U\ +LXY5N\x93\xa5\xee\x8c\x97\x08L\xd34BO\ +\x91Ba\xfc\xfb\x817\xb1\xedw%8\x95]+N\ +\x1b]\xc8hU\x85\x9ef\xa2\xf3:33WE\xd3\ +\x1b\xf5\xeaJ\xb0D\xe0\x01\xd4&\xd4\xb3\xf3\xdfP\xd0\ +_\x16\xef\xa2\x87\x8cxD\xcd\xce\x8b\xb9lV\x9d\xb7\ +\xd6\xe3\x0eU\xbc\xda\xf0z\xcbj033\xd1'r\ +\xc6J\x83\x099E\xb7+5\xe9\x08\xfe\xa2\xdd\x11q\ +.VO\x16\x1e\x1bXdc\x82>\xd5\xdcL\x89\x89\ +|\xe0\xc6\xdd\x229\xf0\xdeGPO\xde\x8d\xae\x03\x13\ +\xe0\x16\xb6\x0e\x03\x00\xdb\x05\xe4\xc1-pe\x15\xc23\ +\xfb\xd4\xb4\x0b\xf6\xaa\xfd\x9c\x90\xa1\xd3\xb22\x83\x18\x0f\ +$\x82\x8a\x03\xcf0\x95\xcfY\x87W\xbe\xb7\xe1\x8d4\ +x\xa7\xe2\xc5\xabSiC|\x87s\xc3\xd7\x9c@\x02\ +xSu<\xdb\x5c\xda\x15\x0a\xea\xf1\x09u\x9a\x1d\x12\ +\xcb\xa4>\xe2\xbc\x9d\x86\x0c\xab\xb8-Y\x11\xdbOY\ +\x0d\x97v\x10t\x98\xa5\xaa\xa1\xee\xeb\xa2|\xfa\xba{\ +!>o\xbf\x89#N\x15\xc4\xef\x80\xd6X`\xb0\x1b\ +\x81\xf7\xc0\xdb\x9f\xceB\x02\x8c\xcb0\xea\xc9\xb6\x9c_\ +\xd1\xec\xc9~\x07a\xcbi\x7f\x98\xaf\xde\x1d\xde/O\ +\xef\x0e\x1b\xcc)\x9c\xc5I\x9a\x96\x82`\x19\xe3\xf4\xe3\ +\xed\xd5\xea7\xf9\xaf\xcb*\xfco\xc6\x84o\xde\x9dN\ +\x17!!E\x81\xbf $|.\xfe+~\x11r)\ +\xa0\xfd,\x00d\x91\x01\x98\x14z\x81k\x162\xca\x88\ +a''\xa5\x92\x18\xc4\x129Ec\xc4\xb3\x8a\xce\x89\ +T#p!J\x8b$\xc8\xb1\x10\x92\x9du1R\x9c\ +\x22QI\xf4\x04}\xe3\xf248\xb2c\xbc\xec \x8b\ +\x83+\x90>\x83\x98\x9e\xc3%\x98\x94\xccw\x22L\x87\ +\x08\x8a\x86\xfc\xa7\x98\xd1\xda\xc2\x12^\xec9\xe9\x1f\x10\ +\x00\x12\x1eQ&.\xc5\xc0\x0e\x9e\xb5\xe8n\x01?|\ +H\x9d\xee)\xc5\x85N\x9d4\xd5oH\xc0\x8c\x91X\ +m\x0c\xec\xd9\xe3|$\xacD,\x83\xc1\x09\x188\xea\ +\xb0\xf93B\xe6\xec\xcf\x14\xb2\xdf9\x16SA\x0e\xa3\ +_\x03X\x8c\x0b /\xc5\x99hmR\xa7\xe0\x0c:\ +\x0b\xea\xdc\xceu\x04\x5c\xc9\xe2\xca\x10\x10\x08;\xa3\xcf\ +\x89\x80l\x81\x17\x93\x5c\x84\xa8G\x9eM\x99\xef-X\ +\xc7Xma\xef{\x17\x98\xfceV\xfa?X\xd9\xb3\ +2\x83Xy\x0c/\x81\x93#8\x14\x96\xed \xda;\ +5M\xc8'o<\x1b/6{\xe0\x90\x8c,\xaa\x1c\ +\xd88\xb8\x9dL\xb95\xe6s\x824\xfeJ\xd6\xeaw\ +/q\x09t\x96\x8d\xae\xb0\xf6\xb7#+\xbc<\x86\xc8\ +\xf1\x8f\xe5\xbc\x8a\xf1\xc6\xb0\x8bS\xd4\x93%\x0d\x0d\x01\ +7\x0b\x8b\x13\xd7h\x0c\xbep\x07+j\x883P0\ +9[\x03\xb3Qf\x05\x84j\xbc\xec\xd8\x0aD8\xb3\ +aGJJ\x8d \xc0$\xbe\x19\xb6\xf62\x00\xd2\x1f\ +\xe27\x11\xbfqQF\xe2\x19\xf3\xb5\x8c\x14]\x918\ +\x91&-\x96\x5c[0e\x1c~a\x98*\xe2\xc6\xaa\ +v\xb4\x88\x04\x13\x8d\xc5|:\xa0\x84|a\xe4\x02\xc7\ +Z\x1es\x1b\x0a\x84\x00a\xef(>\xb1\xe3\x90\xa1X\ +0\xda\xd4\x13\x9c\x9f`H\xf2a\xceH\xdc\xee\x1c\xa7\ +\xfb\xcezd\xea8\x12>eKs\xb6\xe6\x1cl@\ +\xdc\xc7\xde\xb5\xa1\x8c\x0e\xab\x10\x97\x0d\x8c@\xc4\xf8\xe7\ +:\x08d\xb8y\xc3>\x86\xe1Au\x0e\x88\xad4B\ +\xf1\x10&%\xc4\xde\x18\xac\x9f\xb4\x89z\xb3\xea\x0a\xd5\ +{c\xe4D\x95\x09\xb4\x5c\x02'\x1aI\x88K\xe0\xea\ +NV\xe2\xa4[NL\xa7\xbe\xf92\xbc\xcb\x1f\xf0\x9e\ +\xc0;.\xa2\x01\x9f+!\xbc\x81\xf0\x92\x0d\x16u\x84\ +\x81\x98\xd0\xda\x19\x83HAxJj/s\x0e6v\ +\xd8U\x0e%F\xa6\x80\x19\xfdN\xc9\xad\x90\x14\xa0c\ +8T\x18\xc3\xa2\xc1\xc6\xa11?\x8d\x96|GY\xd1\ +\xf2\xe3\x02\xb5_\xd99{\xd1\xc6\xe8\xcd'S\x5c\xae\ +\xab\xf7\xd0D\xe1l\x22H\x82@\x0eI$|\xb1.\ +\xa6\xfd\xf2\xfeQ2\x1c\xbb8\x0a\xee\xf1s:\xd3\xff\ +6\xbc\xcf_\xe7\xe9\xd8s\xa8\x8ay\x91\xad\xc1\x5c\x12\ +0\x0f~\x8f\x94)\x1b\xa3\x0dL^\x92`\xe5\x90\xb4\ +\xab\xb2\xc8\xd9I\xca\x15\x7fa\x10\xc2\xb6o\xaeH\xc1\ +\xe1\xa4\x18\x5c e+w\xb0\x82\xbaho\xdb\x1ds\ +\xde\x04*\xf0\x8c]\xb4\x97(y\x00\xde\x1e\x0d\x07\xc3\ +\xe9\x19\xc8\x91\xd3n\x01\x7f\xa8\xb2f|\x10:\xe1\xb2\ +\x85\xce\xec%]U0EY\xbc\xf3\x0c#z\xbcc\ +P\xf1\xceD\x93s\xd2B\xd4\x1f\xf9\x00\xf3\xde\x9c\xc8\ +\x89\x14\xaa\x81\xc0\x0e\xfe_\x91H\xaeP\xca,(R\ +\xcd\xd4\x98\xf0\xdd\xd5>\xd4\x05\xf14n\x944$\xa7\ +\xdcH\x93\xd7!U\xda\xe6\xa2\xa1\xe7J\x829\x93\x8a\ +\x12yx*\xdb\xe2V\x143\x92\xc0*\xdc(E\xe2\ +\xc3\xf8&\xec\x14\xd6\x11[\x9c\x07\x0b\x1a;\xfe\xa3\xc4\ +\xb3\x80&C^-z,l\xfb\xac\xf3U\xa4\xd3L\ +\xb7M\xe7$\xad\xc3\xc7\xe2&\xab\xa3\xd2G\xce`c\ +e\xe18\xe9\xf0\x16w\x22\xa6\xb3#\x14\x1a\xab\xb3&\ +\x99\xb7dm\xca\x0aE\xec\x08\xe8\xd2\xf5\x84B\xc2\x19\ +\xce\x19\x02y\xda&DA!\x01\x13\x13\x10\xe8\x14\x99\ +K\xa3\xe4FY\xe5)\xc1\x22\xbajA\xbd\x8a\xcb\x1e\ +\xdaS\xd0M\xa1\x99\x9f\xe0\xa9v4\xfb\xcf\x8aO\xb4\ +\x180 \x0e=kI\xadU\xb9\xc3\xc0`\xec\x86U\ +\xe5H\xdc\xeb\xd9)\xa9@\xd5\x9e\xc8\xd7gz\xd8?\ +`\xbf\x88\xddX\xa5M;w\xee\xb1\xc7-\x00f\xa6\ +\x0d\xc5\x8cl\xef\x14\xf8y\x07g?\x15U\xc1\xf2\x13\ +\x83\x80;\xe5\xd8\x88\xb1\x8d'S\x9e\x13\x16\xe4y\x22\ +]n\xdb\x06\x9a\xf9\xc9~Bu\xf5X\x9a-\x19\xa6\ +\xb3\x8em\x85~\x16ye\xfb\x88\x12[\x1f\x03Q*\ +3dDs\xf3\xe0\x15\xda\xe2\xcd\x84\x80\x96\xae\x8a\xd3\ +\x14\xcb\xccJ\xdb\x0c\xf1\x5cLhUbD9WL\ +r\xa9y}\xe7\x1d\xf7\x1c\xcf\x9b\xd2)[\x08\x1b3\ +\x0f\xb1\xfc\x84\x0cw\xc1\xde\xa6\x98\xd1\x0a\x1e\xbe\xaa\xb4\ +\xb4\x92\xbb\x07\x09\xe3\x07\x85\xb8/\xd55\xb1\x05.\xe0\ +[\x06\x86\xb0\xa4\xbb\xfa\xb6l\x82i!\x222\xf4N\ +p5\xdd\xe0\x0c{eIw.C\xbb \x01H2\ +>W,[qK\xddd\x9f\xa4\xce\xfa\x83W\xae+\ +\xbc\xd3\xd4`X\xba|\xd6\xc1\xe0\x06m\x92\xe4\xb9\xa9\ +0\x91\xe9\xa3gGI\x0b\xea\xde\xe6\xe2\x9c?\xf3\x99\ +\x08\xadNa\x81\x96\x8e`\xc1\x8a\xab:T\xe2\x1e\x8b\ +\xc3\x04\xeb\xe6\x89\xab-\xea\xb3\xbaL\xa2\xf4\xd8(\xf0\ +Q/;*\xbejg=B\xeb\xa0\x10vVU\xa5\ +Xj6\x88\xe2\x98\xd7xC\x9a\xc4;\xbd\x1f\xb9\xd4\ +;j\xbc\xaa\x1e\x829\x89\xa2Da\x133\xf2\xac-\ +$R\xde\xb1\xe6\xf1\xa3\xc9\xac\x00\xcd\xc4I\x13\x9fS\ +m\xa9\xb0\x84\xc3'\x95\x1fV/U\x89\xb1\xc9j'\ +\x11qSC_IL\xd1\x8d\x8cO\x95\x05\x17m!\ +)H\x10;\xcf\xe2\x067oZ\x9e\xabVzMw\ +T\xceZ\xa2\xdf*@H\xb9+\xe8\xd4\xd9\xd1\x1bb\ +?X\xf67mo\xbb\xb5i\xb6\x86B6\x18\xe2\x7f\ +4[%\xf1\xec\xf9\x96ExZ\xd0\xd7:|\x05\x8d\ +\xefLB\x87\xc1\xea4\x04\xd6\x93\x0a\xf0<\xa1>\xba\ +=\xe7m\xb1R*\x87\xe2D\x10:\xe2Lt\xa0\x92\ +Z\x00\x85\x8a\xc4q\x1a\x8c\x084moe\x8f\xbed\ +\x8e\x82\x89]\x99\xac.v$;^hbq\x22Z\ +\xc0\x89\x1au\xe8B\x9b\xb1*0\xd7`\x84:\x86\xb3\ +q\x9e\xae\xa3>s\xaa\xc5\x09\xd0Ic\xfe^\x9f\xb1\ +\xb2\xaa\xc4/=\xc94h\x17\x00\xa4(\xa9A\xd9H\ +\x05\x9b\x92\xbc\xaa\x0d\xa2\x11=\x04(\xb6\x0b\xb4\x1a\xfd\ +F\x15\xcf\x0a\x0b>aE\xda8t\xd4\x10\xc9hz\ +,\xf6\xbe\x04O\x83.\x12;\x06\xb6eG\xc8F\xc8\ +\x16\xaa7\xab{V\x9b,@V\xd7LL\x9b\x0a\xae\ +<\x92\x87\xbd\xb9\x99\xba\xc7\xd2\x96\xf5'>\x8a\x1a\x86\ +\xd1\xdb\xa9\x0f\x1a\xa6\x00\xaaS\xa9\x04\xd1N\x15m\x81\ +\xcb\x13T\x9b\x91;\xa2\xe2S\xbbA\x07\xe6\xbe}\xee\ +9\x9b\xe7:\x04o*\xe8d\x03\xe7]\xb8D[\xed\ +\x85'\xf41\x0b\xc4\xcf\xe5\xb2M\xc2C\xde\xeb8S\ +\x17\x0f\x13+}\x9bq61\x97|\xecf-\x19\xbe\ +\x021r\xbb;)\x07\xb4\xda\xe6\x92\x91$\xb9s\xe0\ +\xb0\xf7\xaa\xe2\xab\x91\x14b\xa2K\xf20\xe2Dy\x08\ +\x06\xea\xaa\x89/N\xad\x9d\xe21\xbc\xa0\xda\x99\xd3U\ +\xd54h\xc7\xcekiZ\x95\x1c\x8e\x06\xb7zB\xb9\ +\xac(Q\xd3\xdb\xb6\xdd\x19bM{\xf4\xed\xad\xa6\xd2\ +\xb8\x86\xad\xcb\x9f\xa0G\x9a\x9a\xf7\x80\xad<\x9b\x86S\ +\xaa\x829$T\x9b\xd85\xa7\xd9\x98\xea\x14Mr\x8b\ +t\x8c~N7\x01\x189M\xfd.\xab/(z(\ +\x0d\x17\xdeDg\xe7\xd3$\xbb\xc3Nw\xb5\x935\x90\ +\x9b\xb4\xb7\xcdk\xc7j'\xdf\x91D4a\x8bB\x88\ +F\xb9\xb3(z\x848\xe5\xbaHb\x9b@\x8e,\xca\ +H\xdd\x05u\x0f\xd8;\x05\x8cP\xc6\xaa\x86\xe6\xd5\xa1\ +#X\xb5SQ\x04\xd7\x90]\x93\xbcB\x9f\xb1\x87\x0c\ +%K5l\x90\xfc{ga\xcf4\x16z\x0fC\x1f\ +\xf9\x19)\x9d\xd0|\x9b\x08M\xa8\xf7f\xe4\xdbL]\ +\xf2\xe6~\xf0\xc2\xe2-3F\xfa\x8d\x88\x83\xd6\x92\x03\ +t\x19\xf5\x22\x07\x00\xc2\xc8\xb3\x8em'\x1d\x1434\ +'B}\x86\x9a\x86\xc6\x95{\xcb\xa3\x98(]\xf8\xde\ +\xfc$:\xa4\xa6]&f@\xca\xdc\x92\x0d\x12\x9cH\ +J\x1a3\xc5L&\xcd?\xcb\xdeL\x9f\xc6\xa8KB\ +\x14\x1d8R\xb6\xa2\x14\x84\x815\x0a\x93\xbc\xbd\x10\xa7\ +Ot\x8a\xc3\xa2\x8a\xa2\xde\xa1\x1d\x14\x17\xf4SP\xaa\ +\xa9\xf9\x09\x12\xab\xd7\xf9Hw\xf6\x92\x8bI\x87\xce\xd1\ +\x0a\x93\xe8\xe02\xd4\xaf\x95\xbdU\x13\xc9\xfe\x95\xe4b\ +#\xa6\x1d/\xa70\xfd\xffE\x95\xca\xf1\xb3\xcd\x17/\ +\x1d\x8f\xcf_=~\xc9R\xbf\xf7\x8c~\x0c 6>\ +&|\xf4\xef#>\x81\xa4\xc4\x8b>~\x1f\xb84\xcf\ +\x14}\xee\xcf\xc5\xaf\xadh\xeas\xf5wR\x85y\xd6\ +!\xde\x05\x17;\x9a\x8b:\xb8I\xe1\x07\xb5\xa96@\ +\xc2qr\x19\x02h]\xd7\x97&t[\xc8\xe4Qc\ +I2\x97\x1a\xb2K\xddJ\xffmt,\xcbX\xf0\xc2\ +\xa9\x0c\xce\xde\xd7U\xa4\x5c\xed\xb2g\xdbM,\xd5\xf8\ +\x9a\x18\xd1\x1d\xc6\xcc9\x09\xdda\x8ac\xbc\xd8\xe1\xbc\ +\x15<\xd4j\xc8\x8b\x9emW|\xdd\xbd\xb0!%\xaf\ +\xed5\x87I\xd5\xa8\x9d\xd4\xc9\xe3\x8c\xdd\x10|\x86\x97\ +\xa7%\xe0\xf9\xb930\xd5\xa9\xba\xa3{\xdb\xa4\xd6G\ +\xea\x9b#]\x1dy\xbc\xec\xa8\x8f\x11\xa5\xee\x9bB%\ +\xe7\x1c\xbd)\x225H\x96\xea{[;;N\xdbP\ +\xa19\x1c\xa3\xb8\xe0{\x92iMH=\xd7\xb4\x94\xbd\ +/\xa5\xaf\xefVL\xded\xe8\xaa\xd0\x81?\xe1\xa2\xcd\ +\x09S\xaaf\xaf5\x95-\x9e\x9b\xd4\xa3(~\xb4\x12\ +\xd9R\xdd\xf5L\x01\xc8\xfc\x97\xe1\xf8\x10\xc9\xd9\xc8\x9a\ +x\xd4\x978\x9cV\x07\xe6T\xea\xb3%\x1e\xae\x95\xbb\ +Bl-\xb5\x91\x17W\xc62\x86\xb1T\x8e2\xcc\xc6\ +2\xeb\x8ab\x93\xa4\x22d\xbbX\x99Co\x0dh\xa5\ +c%\xfeY\xb1\xfb\xa0\xb5;m;\xb54\x7fr_\ +\x9dY\xaa\xc9[\xd9\xe7\xb4C\xe8\xd7j\xce\x89\x02}\ +A\x10\x93@k\xf1\x85\xb7\xb5>\x08!*\xe4\x95\x07\ +x\x93\xd2|)\xddW\x84S\x1d\xf6y\xfbeC6\ +\xfe\x82gq\xaf\xae\xef\xba\xc6\xb9e\xf8\x8d\xda\x05\xb2\ +\x0a.\x01\x80#\xe6\xd6\xf0\xb9\x1c\xb8M)U\x05E\ +A\x11\xa6'\x06))\xc4g\x1b#\xb6\x8a\x1fI\x16\ +%T\xb69\x88\xd9\xc0_R\x1ef\x02\x17/4\xed\ +eP\xfdJ\xc9\x9e\x94+\x8c!\xf4\xb5J\x5ct\xc8\ +W\xd8\xcb\xc9V\xa2{y\x0f\x04\xb4f\xad\x88\xe4)\ +P\xfa8\xa7\xcc\x8e`\x18\xb3O\x9dc\xd8\xb7\xa7\xd8\ +h\xc8H\xcf\xbf\x1d\xf9\x05\x0e\xce\x8b\xee\xcd\xf1\xc2\xa3\ +\xf8}\xa1\xa6 \xe5S\x22\xd4D\xe0_\xe2Z\x17\xe0\ +\x17\xc7\xa5\xad\x16_\x90#Z\x19\xcc\x1d\xa5\xd4\x88\x7f\ +\x15\x12|\x03\xd5\x9e\xdaDu\xac\x9e\xca\xf4\xcf\xda\xf2\ +0\x0a+O\x09\x98T\xbe\xc6\x18\x92&\xfb\xedX\xee\ +\xc4\x1eu\xe2\xc8\x9f\xa1\x10|\x19M\x8b\x93M\x015\ +-\x03#\xe5\xfe8u\xc8\xcf]C\xa4\x22n\x1a\xd6\ +\xca\xeaZI\xad\x02\x13\xf6s\xf9\xee\xd9\xbc\xdbW\xf4\ +Z\x92\xab*\xac\x1e\x9b_\x14\xa94\x11[\x1c\x8b\xa7\ +C\x93,u\xefJ\x81@\x86A\x0f\xb80\x5c\xecP\ +\xb8\xba\x88M\x91h\xfe\xb9\x5c\xa5B\xe1\xc9)\xba\xc2\ +\xe0\xfe\xb5\x1eP\xb8\xbcT\x92GJx'Z\x87,\ +\xc2\x13M\x89\x97\xed\x9a\xfe$}M\x01N\xc9\xd3\x17\ +9j\x8fXP\xce\x08\x03SYd\x93\xb8\x06\xb5\x94\ +\x17\x02\xdb\xd2\xec\xab\x8c\x90m\xf1l.]\xb6\xe5\xc9\ +a\xd5%\xde\x96\xb3\xd7=\x93\x9f\xea\x16>\x84\x15\xd2\x19+\ +O)FydY'\xa9\xd5\xdb\x15\xfb\x0c\xd9\xb9`\ +tR\xaf]\xdf\x8d\xac\x15\xddr\xc4\xea\x91\xeb\xe5Z\ +\xb6\xaa\x18\x92W\x15\xe5UK\xf6D\xda\x9eP#\xf4\ +\xcf\xbf\xf8\x14\xb2\x9f\xa6#\x80\xee\xd4\xe1\xd2\xc8j\xc7\ +\xd6\x88@\xf2i\xfc\x1e\xa4\x0ak2\xae\x93\xd6z\x9a\ +\xea\x9f\x88\x8d!s\x97\xeb\xc3|)\xbd7gC\x85\ +t\xea*\xba\x8er\xfa>'[/AN\xa7\x1cM\ +\x1fGh>FOI\xb2nB\x89N\xce\xdcv,\ +\xf3\x0aJ\x90\x10\x93b~\xd67\x8c/)\xcd\xefw\ +\xac*\xbcj\x90I\xf3%\xf3Y~\x96\xf9\xec?!\ +q\xf7\xc2\x87k\xa6_h9\xfb\xa0\x8b\xb3\x08\x920\ +\xfd\xfcK\xc4\xc3A\xc4\x11\xbe\xf0\x8b1\x9f\xf9\xd0L\ +\xfd6M\xb0\xbe\xef\xfe\xb9\x1f\xd3\xe9-)\x9bk\xfb\ +\x8b?\xa0\xd3\xd1\xeen\xba\xe1\xbbi\xad\x99l\xb6:\ +\x0f>\xad\xf2\xf2\xcdg\xcb\xbe\x9e3\xf6\xddG \x1e\ +\x97\xa7\xc3\xc3\xc7oP}\xe7\x18)\x8d\x88\xff\xb5f\ +\xf0\x8b\xe8C\xb1X\xd9e\x13V\xd2\x95\xc9\xb7).\ +\xbc\x9fg=\xa7\xff\xb6#\xd6\xde\xaar\x97\xdeJ\x19\ +A\xf0,\xbeQ\xef`\xfej$\ +>\xfb\x9e\x08\x7f\xe5\xc2\x87E\x89\x16H\x0a\xe4\x06\xe7\ +)dP\xbdL]+\xb9\xdd0\xfe\xc6\x89\xac\x1aK\ +~\xd0\x9fW\xf8\xe9\x9d\xd7_\xfd'\xe6x\x8a\xe2\ +\x00\x00\x0do\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0a \x0a \ +<\ -path\x0d\x0a s\ -tyle=\x22opacity:1;\ -fill:#20a867;fil\ -l-opacity:1;stro\ -ke:none;stroke-w\ -idth:0.270178\x22\x0d\x0a\ - d=\x22m 96\ -.602632,-168.129\ -64 v -18.91247 h\ - 24.316028 24.31\ -603 v 18.91247 1\ -8.91247 H 120.91\ -866 96.602632 Z\x22\ -\x0d\x0a id=\x22p\ -ath1777\x22 /><\ -/g>\x0d\ -\x0a\ -\x00\x00\x06\x88\ -\x00\ -\x00\x1f\xe7x\xda\xedY[o\xdb6\x14~/\xd0\xff\ - (/-fI\xbc\x93R\xed\x16\x18\x8a\xa2{\xd8\ -\xcb\xd6m\xc0^\x0aE\xa2\x1d5\xb2dHr\x9c\xe4\ -\xd7\xef\x90\xbaX\xb6\xe5\xa0\xc8\xba+\xec&\x8d\xce\x85\ -\x87<\xdf\xf9\x0eE&\xf3w\xf7\xeb\xdc\xb9\xd3U\x9d\ -\x95\xc5\xc2\xc5>r\x1d]$e\x9a\x15\xab\x85\xfb\xcb\ -\xa7\x0f\x9er\x9d\xba\x89\x8b4\xce\xcbB/\xdc\xa2t\ -\xdf\xbd}\xf9b^\xdf\xad^\xbep\x1c\x07\x86\x17u\ -\x94&\x0b\xf7\xa6i6Q\x10l\xb6U\xee\x97\xd5*\ -H\x93@\xe7z\xad\x8b\xa6\x0e\xb0\x8f\x03w\xe4\x9f\xec\ -\xfd\x93J\xc7Mv\xa7\x93r\xbd.\x8b\xda\x0e-\xea\ -\xab\xb1w\x95.\x07\xf7\xddn\xe7\xef\xa8\xf5\xc2a\x18\ -\x06\x88\x04\x84x\xe0\xe1\xd5\x0fE\x13\xdf{Gca\ -\x9dSc\x09B(\x00\xdb\xc8\xf5+\xdd\xa2\x1a\xc0\xd9\ -\xc0\xf7\xe0\xdf+\xfc\xba\xdcV\x89^\xc2@\xed\x17\xba\ -\x09\xde\x7fz?\x18=\xe4\xa7M:\x8e\x93\x15\xb7u\ -\x12o\xf4\xc1\xbc\xbd\xb2\x85!^\xebz\x13'\xba\x0e\ -z}\x1b`\x97\xa5\xcd\xcd\xc2\xe5\xd87\x0bD\xb8\xd5\ -\xde\xe8lu\xd3\x9c\xa8\xef2\xbd\xfb\xbe\xbc_\xb8\xc8\ -A\x0eS\xf0\xd5\xea\xb3t\xe1Bj\xa4\xf3\xdaS\xa0\ -\x1b\xd7O\x19\x0d&\xe4\x87\xc4g\xce\xabmq[\x94\ -\xbb\xe2u\xeb\xd7g\x18\xa5ebV\xbcps(h\ -\xf1\xf9\xe6a\xa3\xabd{\xad\x89o\x10|k\x9c\xe7\ -k\xdd\xc4i\xdc\xc4vd\xbb\x86^\x85I\xeb\x03^\ -P\xce\xe8\xa7\xf7\x1f:\x11\x14I\x12\xfdVV\xb7\xbd\ -\x0c\x1f\xe3\x12_\x97[\xc8\xd7}\xbb\xd7\xcf\xd3$\x82\ -\x02\xac\xe3\xe6m\xb6\x8eW\xda\x14\xef;\xc0{\x1e\xec\ -\x0d\x87\xde\x0d,s\x14\xb7\x8d\x5c\xe9\xb6\x96\x93\xacN\ -\x93ufF\x05?7Y\x9e\xff`\xa6q\x9d\xe08\ -l\xd6\xe4z\xa4\x9d\x07]\x0e}\x8e\xc18\xc9y\xd0\ -\xa3\xd0\x8a\xa9^\xd6#\x88\x8c\x88\xd1\x00\xcfP\x19\x00\ -\xb8\xde\xe8\xc4\xb4\xcf0\xfbP\x0e\xb3\xc4\x85{\xe8K\ -;\x06:\x07\xf5\xdd|\x06vp\xea\x0b\x22iH\x9d\ -\xc8\xc1Pi*\x89\x94\xe6yz\xc4\x83\xe1S\xe4p\ -\x81|\x86\x113\xa3\xd0\xb4\xe7\xe3\xc2e\xd4gB`\ -d\xe2\x11\xe5KN\x05agbw\xeb\xf4\xca*[\ -e@:A}\xae8\xc1\x0a\xfc\x85\xaf\x18\x12\x8a\x1f\ -\x0d\x05\x84FH\xc0\xc2q_\x0f(;@\xd7>\x0e\ -\xc0\x18\x92\xa6\xa6+\xba\x08\x1b(`R\xe6e\xb5p\ -\xaf\x96\xf6\xd3\xc7\xbe.\xab\x148\xdc\xd9\x84\xfd\x1c\xda\ -JhO \x03\xb4M\xaf/\xaf\xbf\xc0:\x9a2\xd7\ -U\x5c\x18\x06\xe1\x01\x97U\x05};i\xd8f\xa9\x9e\ -\xb4\xeca\x81E\x0e\x93M\x9b\xeb\x9b8-w\x0b\x97\ -\x9cXwY\x01\x16\xaf\xdb6\xb0\x12\xf4\x9cK\xbf\x87\ -`D\xb8;b\xe0\x80\x99\xea\xb5\xf5M\xb93\x09-\ -\xdce\x9c\xd7\xfa$\xe0cY\xae\xed\x0b\x85R\x821\ -;\xb1'\xc09\x8f \xecC\xb9\xa885C\x9a\x94\ -b\xd8q(\x09\xcf\xad\xd6\xd0V\x9e3B\x00r\xd6\ -\xb8\x8e\xef\xb3u\xf6\xa8\xd3Q\xe5\xf6so\xab\x0a^\ -[^\x1e?\xe8\xaa\xdb${Bm\xe2\xe6\xa6\xf3\x87\ -\xb1?:h\x86\x9c\x8ff[\xfd\xd5\xfc\xf7\x11\xb6\xd8\ -\xdf\xc7\xb8\x19\xf7\x89\xdc\xcb\xa2\x00\x92\x94\x95\x07S\xdd\ -\xc5\xcd\xb6\xd2\xa3\xa2\xd6\xcdC\x0e\xf2\x126\x97\xa8\x80\ -\x97\xee0\xf7j\x14x\xc50\x9f\x1cq\x85P\xca\xe2\ -\xf8M\xddT\xe5\xad\x8e\xae\xc8\xb5\xf9\xd7\x89^G\xa1\ -hH\xba\x01\xca\xd5fc\x84\x8d8n\xaa\xec\xfe\x15\ -\xf6\xa1`\x0cQ1\x83\xdcf \x09\xe88\x81gP\ -,\x9fbAQ8\xf3\xb0\xf2\x89\xe2\x5c\xd1\xd7\xc3\xa6\ -\xb4\x1a\xfaq\x14\xd2>\xc2\xeb@CT\x84\x84$\x8a\ -B\x1c\xee+%I\x18\xbe>\xecaH\x89\xb1\xbd\xea\ -9I\x0d\x1b\xee\xb8N\xd3\xa1\x8c\xb0\x1f\xd9\x8a\xd56\ -\xd7\x91\xbe\xd3E\x99\xa6g\xe6\xb2=\x14!\x1f3\xaa\ -\xb0\xa2\xb4\xd7\xe7\x19T4\xdeDU\xb9-\xd2\xb1\xf2\ -K\x99\x15\x87Zx{\xe8*\x07\xfa5\x11F\xbd2\ -\x8d\xa1}\xab*~\xb0%\x1fk\xcb\xe5\xb2\xd6M\x84\ -\xce\x96\xd02\xf1h;\x84\xec\xa9\x0c\xe9\xc4\xfez\x86\ -{\x7f\x1fr\x08I\x85\x09\xff\x17\x03\xa7Px\x01\xee\ -Y\xc0a|\x01\xeey\xc0\xc9\xe7\x00\xb7:\xda?\xe1\ -4\xf6\xe7\xf6\xcf\xfdq\xf5\xa0&_\xfd\xea:j#\ ->\xd6\x9b\xa3\xbeCC\x9f)\xc2\x11\x99\x11\xec\x0b\x09\ -'A\xee@\x810Q\xf0\x82\x81\x07B\x84U08\ -\x7f\xccl\xe5\xb0\x938\xd6\x80\x99UPe\xed!\xc1\ -V\x0c\xad(\x10\x16\xb36\x8e\xb4\xf1\x14Q\xd6\xcc\xa9\ -\x15\x85\x90\xad\x18:f\x16\xb89Z\x11\xe62\x22\x95\ -\x9c\xcc\x84O\x88\xf6\x98U\x08\x82\x89u`\xad\x1c\x12\ -\xeb\x8f\x19w\xf26\x00\xed\x96\xc7\xe8\xe9\xf2\x1f\xc7Y\ -wU\xe8!F\xbe\x22\xd4\x5c\xce\xc8\x9bo\xcap8\ -aA\x8e\xec\x9f\xa4\xf8\xf8\xb2\xf3M\xd8#O\xd9\x83\ -|\xce$\x0f\xa5a\x0f\x5c'('\x86\x1d\x16z$\ -m\xe5)T\xc9\xca\x02\x8e\x1bV\xc1\xa5l\x15DZ\ -\xae\x00\x83\xda\x01\x98Y&\x91\x96\x1a*4\x92\x12\xcc\ -\x96\x9a\x10\x19B\xad\xe1I\x86\xc2r\x81p`\x9e\x19\ -'1\x9c\x80\xe0Bc\xc8\x92X\x0d\xc3R\xcd\x08\x14\ -\xa1\xe7\x0f\x9c\x0bZ\x82Qid\x0c4\xe5-]U\ -\xeb\x80\x05; \x18\x09\x95\xe8\xe9~ \x03a/t\ -\x9aW\xc0\x99S\x10\xbebgk\x132\x5cA\xc0'\ -$\x9fLh\xb4t\xf6\xf4\xca\xf7\xc8n\xe2\x0c.\x0a\ -\xf6*\x18\xad\xe3\xea\x16\xae\xa1\x8eY\x97\xd3z\x8eK\ -g\xee#\x0cN\xbepl<`6\x5cb\x081\x97\ -h!\xc3\xb1\xbe\xbf\x8a\x11\xc39\x81\xc9\xd8\xd6\xdd\xe4\ -\xa0\x0b$c\x8a\xab\xe3\x0e2\x80QI\xe5\x01\x8a:\ -\xcf\xb3M=\xfeeGe.\xae>\xa3R u\x10\ -\xbf\xba\xb7\x068\x8f\xc3\x99}l0\xd728\xbf\x13\ -\x81F\x17Dkh\xd3\x90\x92QN\xa7\x1a\x9a\xf1C\ -\xfd\x11\x93\xf1\x9b\xffB9\xff\x128\x99\x1fb\xb8%\ -\xcbc8\x19\xf5\xc3pt7>F\xd3\xbb\xe0y\x16\ -O!N\xf1\xa4\xb0is\xd8+\xf9Y@\x05\xb9 \ -:\x81(\x85m\x0b\x09\xca\xf1D\xc3\x0b\xc1p\xa8\xce\ -ST\x5c\x10\x9dF\x14\x0e\xebB\xe0\x89\x9e\x87\x17\x04\ -\x9cO\xcf#\xea\xc9\x0b\xa4g \x15$\x14t\xa2\xed\ -\xe18\xa6\x98z\xa2\xed=~\xc1t\x02S\xc6}8\ -b\xc3\x90\xe74\xfe\xe5\xf5t\x0eS8;\x85XM\ -\xb7>A\xf4\xa9\xd6\xbf\x10\xf5<\xa8!!\xcf\xeb}\ -\xef\x7f\xf4\x92\x9a\x07\xab\xee/_\xe6\xe7\xdc\xfc\xfd\x13\ -~\xfe\x01\xa1d\x16\xaa\ -\x00\x00\x0e\xfb\ +oke-width:1.3683\ +3\x22\x0a x=\x2216.\ +495193\x22\x0a y\ +=\x2240.088543\x22\x0a \ + id=\x22text1109\ +0\x22\x0a transf\ +orm=\x22scale(0.966\ +59338,1.0345612)\ +\x22>\xce\xb9\x0a +<\ +/tspan>\x0a \ + \x0a \x0a\x0a\ +\x00\x00\x07{\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a <\ -g\x0d\x0a id=\x22g8\ -45\x22 />\x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00(\x99\ +0/svg\x22\x0a xmlns=\ +\x22http://www.w3.o\ +rg/2000/svg\x22\x0a \ +xmlns:sodipodi=\x22\ +http://sodipodi.\ +sourceforge.net/\ +DTD/sodipodi-0.d\ +td\x22\x0a xmlns:ink\ +scape=\x22http://ww\ +w.inkscape.org/n\ +amespaces/inksca\ +pe\x22\x0a version=\x22\ +1.1\x22\x0a id=\x22svg2\ +\x22\x0a width=\x22192\x22\ +\x0a height=\x22192\x22\ +\x0a viewBox=\x220 0\ + 192 192\x22\x0a sod\ +ipodi:docname=\x22l\ +oadc.svg\x22\x0a ink\ +scape:version=\x220\ +.92.2 (5c3e80d, \ +2017-08-06)\x22>\x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x04\xb2\ +\x00\ +\x00\x119x\xda\xddW\xdfo\xdb6\x10~\xcf_!\ +(/\x0dfQ$EI\xa4j\xbb\xc0\x10\x14\xd8\xc3\ +^\xb6\x0e{\x1c\x18\x89\xb6\xd5\xc8\xa2A\xd1v\x92\xbf\ +\xbeGY?\xec\xc4\x09\xd25\xed\xb0\xda\x09\xe0\xbb\xfb\ +\x8e\xe4}w\xc7\x93\xa6\x1f\xee\xd6\x95\xb7S\xa6)u\ +=\xf3\x09\xc2\xbe\xa7\xea\x5c\x17e\xbd\x9c\xf9\x7f}\xfa\ +\x18p\xdfk\xac\xac\x0bY\xe9Z\xcd\xfcZ\xfb\x1f\xe6\ +\x17\xd3f\xb7\xbc\xf0<\x0f\x9c\xeb&+\xf2\x99\xbf\xb2\ +v\x93\x85\xe1fk*\xa4\xcd2,\xf2PUj\xad\ +j\xdb\x84\x04\x91\xd0\x1f\xe1\xf9\x08\xcf\x8d\x92\xb6\xdc\xa9\ +\x5c\xaf\xd7\xbanZ\xcf\xba\xb9<\x02\x9bb1\xa0\xf7\ +\xfb=\xdaG-\x88\x08!BLCJ\x03@\x04\xcd\ +}m\xe5]p\xea\x0ag<\xe7J1\xc6!\xd8F\ +\xe4\xebPY\x03\xacl\xe0\x7f\x80\xf7\x0a\xd4\xe8\xad\xc9\ +\xd5\x02\xfc\x14\xaa\x95\x0d\xaf?]\x0f\xc6\x00\xa3\xc2\x16\ +G\xcb\x94\xf5m\x93\xcb\x8d:\xd9\xb5W\x1e\x18\x90k\ +\xd5ld\xae\x9a\xb0\xd7\xb7\xfe\xbd\x90\x1d\xe7\xcb{\xc7\ +p\x14K\xb6\xb8ab\xe2QLq\x80\xe3\x00\x93\xab\ +\xd6\xa5?EV\xe8\xdc-;\xf3eQ\xfc\x03\x09]\ +\xaa\x1a\xf5\xe1\x95\xc5\xcc\x87\xdfI+\x1c\xadM\x0e\x8a\ +R\xed\x7f\xd5w3\x1f{\xd8c\x1c\xfeZ\xf5J\x95\ +\xcb\x95\x9d\xf9\x9d\xb8/\x0b\xbbj\xa59\x88\xd3\xb5\xb2\ +\xb2\x90V:\xd3a\x83^Ch\x8b\x00\x0c$.\xfb\ +\xe3\xfa\xe3A\x029\xcf\xb3\xbf\xb5\xb9\xedD\xf88\x80\ +\xbc\xd1[\xd8\xc5\x9f\x0f\xeai\x91g@\xf5Z\xday\ +\xb9\x868\x5c\x96~\x01j\xa7\xe1h8\x01\xdb\xfb\x8d\ +\x1a\x17=,k\xd4!gg\x0b\xb7\xc8\xd7\xa5s\x0a\ +\xff\xb4eU\xfd\xe66\xf1\xbd\xf0\xd1\xa2\xa5\xad\xd4\xbc\ +\xdd\xf3\xf0\xb3\x8f\x22\xec\xc2\xe8\x82\x0c\x8f\xa2\x9c\x86=\ +\x09\xadT\xa8E3\xf2\xe3$\x82\xbb}\xa6C\xde\x5c\ +\xd2\x0a\x97\x82\x0e\xd9\x97\x00\xe4s\xeb\xba+0\xdaB\ +\x0b\xb9\x84a\xff\x11&\xdf\x1a\xe3 \x95\xbcW\xe6(\ +\xc5G\x90}Y\x17z\x1f\xac\xe5]\xb9.\x1f\x14\x9c\ +\x83<\x03\xb9\x9f\xf9\xf49w(\x8e\xe4\xe9\xee\xe0\xc1\ +P\x1a\x89\x98\xf2'\x8b\xe6\xe0\x12\x10\x02\xf5\x1ba\x92\ +>\xb6>h\xbd\x9e\xf9\x11bi\x92`\xce:s\xb3\ +\xd2\xfb\xa5q\x5c-d\xd5(\x7f\xe4n \x89?s\ +\xc0\xbeX\xc9\x99\xcd:HW\xc0\x84?\x8dd\x03\x05\ +\xd0\xac$\xa0\x80\x83sF\x0d\xcd\x0a\x153\xa6`\xb9\ +-\x0beu\xa5\x8c\xac]\x91\x91\xc1\x00\xe7?\xa7\xd7\ +7\x9fUn\xcfYn\xb4)\x94\x19v '\xea\x5c\ +W\x1a2{\x99\xb4\x9f\xce\xe4N\xd4\x1b\x16\xed\xa7\xaf\ +\xaa\x8d\xb4\xab\x03f\x01\x85\xed.\xf3\xfa\x98Fg\xee\ +\xe3\x03\xf1wh\xf8\x15\xe3;\xc6W\x01\xe3\x0f\xfd\x22\ +\xcb\x03\xc0\xc2A\x1b\xd7n\xd0\xda\xd2\x9a\xf2\xee\x1dF\ +$\xe1\x98a\x16M\xb0\xfb\x8e\x22\xa5\x08s\x9a&t\ +\x12$(!)e1\xbf:\xdax\xc9\xa3>\xae\xc6\ +\xdeW\x10\xbe;_v)\x95\xfb\xbewB\xd01\x90\ +\x91\xf7\x8d5\xfaV\x0d\xd6\x83\x18Te\xad !\x99\ +\xd1\xdb\xba\xe8\x95\x83S\x7f\xe7\x8c\x0c\x1c\xdd\x8d\xb5\x86\ +dA\xbf\xc3 \xc8s\xbf7\x8f\xb5\xaakX\xdaj\ +\x13@C\xed\xa4\xdd\x1a5fzd\x8e\x13:\xe8\xdc\ +}\xe7\x89\x18aAD\x1aM\xe2\x04A\xd0\x94E\x1e\ +\x06\x15c\xe9$\x15(\x151\x16\xe9\xe0\xf2\x8a\xc0[\ +\xd1l+\x95\xa9\x9d\x82C\x17\xcfP\xd1\x96rF\x92\ +\x17\xa9q\xca\xcf\xba\xac3\xb8\xeb\x94\xe9\xb5\xadP\xc1\ +]`3\xd6\xeb\x0a\x09\xc5o\x8c\xbc\xcf\x5c\xbd<\xa5\ +\xb6\xbf\x1a\xbf3\xb9AtJ/\x89\x18\x12\x09\x012\ +\x81\xe8\x18X\xe5\xa9\x17\x1cx%\x98OZ\xa6\xe3\x9f\ +\x86\xdei\xb8|\xd4\xc2=5\x02\xa7c\xcf\x02-\x09\ +\xe2D\x10\x025\x86\x04\xa3\x98\x8b\xc4U\x1d\xe1)\x9d\ +\x10\x8aR\x1c\xa7L\xb0o\xed\xb6\x03\x07\x11\x82\xc7\xb0\ +X\xfcX\x22\xce1 \x8e\x19\x10(\x81\x8b'\x8e\x93\ +\x09\xc5(Mx\x14\x11\x8f0\xc4\x22\x12\xa5\x82M\xe0\ +\x81\x0c3\x9a\xbe\xc0\xc0K!\xb3\x7f\x11\xecc2_\ +\x13\xfdi\x16^\x88\x9d\x90\x93\xecG\x88@\xdd\x132\ +\xa1)bq\xc2p\xecq\x04\xe1Fq\xdcF.\xb8\ +\xa0o\x95\xfc\x88'\x9c\xfe\xe7\xc9'\xd1\x09\x01)\xa2\ +\x98\x117t\xa0\xfe)\xe7\x5cx.n\x02\x9d\xe0\xea\ +?\xc6\x98\x90\xf8\xcd\xca\x9f2\x91\xfeX\x06\x96\xdfw\ +N\x9e\x0e\xe5\xe1\xce=7\xedq\x02\xefHI\xc2\xba\ +i?\x88\x14A\xf7\xa5\x11\xbc\x8e@\xe5a`H\xb0\ +\xab\xb3\xf3\xf7\x7f{%\x7f\xc3\x98?\x1eh\xc9W\x8f\ +\xc3g\xa6\xea\xf9\x09\xfcs\xd0\xfbuc\xfe\xe4y!\ +H\xdf\x96\xe0v\x06O\xdd\xfb\xe6\xfc\xe2\x0b\xf3\x95L\ +\xd2\ +\x00\x00\x12\x86\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0d\x0a \ - \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x04\xec\ -\x00\ -\x00\x10\x84x\xda\xe5WK\x8f\xdb6\x10\xbe\x07\xc8\x7f\ -\x10\x94K\x82J\x14_\xe2C\xb17@\x11\x04\xe8\xa1\ -\x976E\xcf\x8aD\xdb\xcaJ\xa2!\xd1k;\xbf>\ -#\xc9\x92\xe5];M\x91 )Pc\x17\xf6\x0c\x87\ -\xe4\xcc\xc7y.\xde\x1c\xaa\xd2{0M[\xd8z\xe9\ -\x13\x84}\xcf\xd4\x99\xcd\x8bz\xbd\xf4\xffz\xff.T\ -\xbe\xd7\xba\xb4\xce\xd3\xd2\xd6f\xe9\xd7\xd6\x7fs\xf7\xfc\ -\xd9\xa2}X?\x7f\xe6y\x1el\xaf\xdb$\xcf\x96\xfe\ -\xc6\xb9m\x12E\xdb]S\x22\xdb\xac\xa3<\x8bLi\ -*S\xbb6\x22\x88D\xfeL>;\xcbg\x8dI]\ -\xf1`2[U\xb6n\xfb\xadu\xfbb.\xdd\xe4\xab\ -I|\xbf\xdf\xa3=\xeb\xa5\x88\xd6:\xc24\xa24\x04\ -\x89\xb0=\xd6.=\x84\x8f\xf6\x82\x9e\xd7\xf6R\x8cq\ -\x04k3\xd1\xaf\x14KZ\x00g\x0b\xff\x93\xfc\xc8@\ -\xad\xdd5\x99Y\xc1F\x83j\xe3\xa2\xb7\xef\xdfN\x8b\ -!F\xb9\xcb\xe7\xe7\x14\xf5}\x9b\xa5[sq\xef\xc8\ -\x1c`H+\xd3n\xd3\xcc\xb4\xd1\xc8\x1f\x0e\x18\xa9d\ -z8\x8c4E\xb1\xf7\x92b\x81MFVz\x15x\ -\x14S\x1cb\x1eb\xf5j\xd86\xea\x92\xe46\xeb\xce\ -^\xfa\xbb\xed*C\x93}E\xbe\xf4\x81\x10\x035s\ -\x0ar\xe2\x14f\xff\xab=\xc0m\x1e\xf6\xb8\x82\xbf\x81\ -\xbf1\xc5z\xe3\x96\xfeH\xef\x8b\xdcmz\xf2\xae\xa3\ -\x17\x83\xa7x\x9ek\xd2\xba\x05x\xaa\xa5_\xa5\xae)\ -\x0e/q\x00\xb8H\x86\xb9R$\x98\xfd\x0a$RT\ -3\xc5\x03N\x91\x90XKy\xb2a\xd0r\xad)\x1d\ -\xe9\xd6\x1dK0\xa5u\x8d\xbd7\xc9\x8bU\xffy\xbd\ -*\xcar$\x065@\x91m\xea6\xa7]\xc39\x1d\ -C1\x11\x0a\x7fb\x03\xf7w\x8fI\xc4\x95\x94A\x18\ -#Ih\xcc5\xedYq,\x03\xae\x11V\x0a\x0bz\ -\xder\xd2`~\xe5\xebG\xea\x0cd\xd8#\x9300\ -\x8ej\xa90\x1d\xf9eQ\x1bx\xd0\xa4\xb1\xbb:\x9f\ -3?\xda\xa2\xbe\xe4V\x853MY\xc0W\xc2G^\ -\x9e\xb6\x9b\xb4i\xd2cRC\x90\x8e\x5c\x0b\xaeS\xb8\ -cB\xce\x9aN\x8e\x93\xd9\x1ant\xb6\x09\xb3]\xf3\ -\x90\xba]\x03\x06@\xecGW\xa1\xfa\xb7\x06\xc2\x9bq\ -\xc5\x09\x17\xe4G\x1b\xd8\xbf\x9eF\x8a3!y@\x10\ -\xe3\x92I\xc2\x80%)\x961\xd5\x81BDsI\xd4\ -\xec\xfd.\x17\xcc\x0f\xbbn\xb0\ -\x0b\xfb\xdc8\x0c \xfec!x\xc9\xa6\x93)\xd3\xa3\ -i.[\xf6If_\xd4\xb9\xdd\x87Uz\x80\xf0\xfc\ -d@\x17rK\x06\xd27\x8do-B\xca\x97OO\ -\xefR>'H\xe9X*\xf6t\xf5\xd0\x95\x5c\x0e\xfd\ -\x16!\xfa\xe9\xb5\x9f\xac\xad\xfa\xd2 \xb1bl\xda\xde\ -n\xec~\xddt\xa8\xad\xd2\xb25\xf3\xa1d\x82K\xdd\ -Rs\x1c\x94\x08&7eN\xc3\x13Q\xfc\xa9\xc8\x16\ -|\x01\xf2\x16\x88\x01\x18WWO\xa1;{\x8f\xf5\xae\ -\x80\x90\xb1\xa5\x81\x8a\xd6y\x1c9\xaf\x80\x19W\x17\xec\ -\x87\x8f\x10\x8cW\x97>\xf4\x85y\xba\x85\x5c\xf23[\ -Zx\xea\x17\xa2\xff\x8ck\x9d^\xe3\xcai \xeb]\ -m\xd1E\x0f|\x7f\x06I\x04\xe4\x11\ -\x00\x00\x0d\xfa\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x07^\ +#999999;fill-opa\ +city:1;stroke:#9\ +99999;stroke-opa\ +city:1\x22\x0a i\ +d=\x22g878\x22>\x0a \ +\x0a <\ +path\x0a st\ +yle=\x22fill:#ff2a2\ +a;fill-opacity:1\ +;stroke:#999999;\ +stroke-opacity:1\ +\x22\x0a inksc\ +ape:connector-cu\ +rvature=\x220\x22\x0a \ + d=\x22m -28.51\ +9885,1068.7688 c\ + 0.90506,1.2212 \ +1.246811,2.6732 \ +1.10285,4.0743 l\ + 15.161239,6.500\ +5 c 0.296039,-0.\ +3564 0.63195,-0.\ +6925 1.01758,-0.\ +9783 0.38563,-0.\ +2858 0.804907,-0\ +.5094 1.231945,-\ +0.689 l -1.78370\ +9,-16.2284 c -1.\ +440516,-0.2642 -\ +2.790128,-1.0438\ + -3.730887,-2.31\ +32 -1.970903,-2.\ +6593 -1.41148,-6\ +.4222 1.247784,-\ +8.3931 2.659263,\ +-1.9709 6.422130\ +6,-1.4115 8.3930\ +326,1.2478 1.970\ +9022,2.6592 1.41\ +14784,6.4221 -1.\ +247785,8.393 -0.\ +385631,0.2858 -0\ +.804907,0.5095 -\ +1.231945,0.6891 \ +l 1.783709,16.22\ +83 c 1.4405165,0\ +.2642 2.7901283,\ +1.0439 3.730888,\ +2.3133 1.9709023\ +6,2.6593 1.41151\ +19,6.4221 -1.247\ +7515,8.393 -2.65\ +92635,1.9709 -6.\ +4221301,1.4115 -\ +8.3930331,-1.247\ +8 -0.940792,-1.2\ +694 -1.294168,-2\ +.7874 -1.127876,\ +-4.2425 l -15.16\ +1273,-6.5003 c -\ +0.277881,0.3304 \ +-0.595667,0.6406\ + -0.957189,0.908\ +6 -2.586939,1.91\ +73 -6.237918,1.3\ +745 -8.155238,-1\ +.2124 -1.917319,\ +-2.587 -1.374518\ +,-6.238 1.212422\ +,-8.1553 2.58693\ +9,-1.9173 6.2379\ +18,-1.3745 8.155\ +237,1.2124 z\x22\x0a \ + id=\x22path2\ +-3\x22 />\x0a \x0a \ + \x0a \x0a\x0a\ +\x00\x00\x09-\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - \x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x1a\ +dow-x=\x2254\x22\x0a \ +inkscape:window-\ +y=\x22-8\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22svg2\x22\x0a \ + inkscape:pagec\ +heckerboard=\x220\x22 \ +/>\x0a \x0a \ + \x0a \x0a \x0a \ +\x0a\x0a\ +\x00\x00\x09\x09\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \ - ima\ -ge/svg+xml\x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a\ - \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a <\ -sodipodi:namedvi\ -ew\x0d\x0a pagecol\ -or=\x22#ffffff\x22\x0d\x0a \ - bordercolor=\x22\ -#666666\x22\x0d\x0a b\ -orderopacity=\x221\x22\ -\x0d\x0a objecttol\ -erance=\x2210\x22\x0d\x0a \ - gridtolerance=\ -\x2210\x22\x0d\x0a guide\ -tolerance=\x2210\x22\x0d\x0a\ - inkscape:pa\ -geopacity=\x220\x22\x0d\x0a \ - inkscape:pag\ -eshadow=\x222\x22\x0d\x0a \ - inkscape:windo\ -w-width=\x221863\x22\x0d\x0a\ - inkscape:wi\ -ndow-height=\x22102\ -5\x22\x0d\x0a id=\x22nam\ -edview8\x22\x0d\x0a s\ -howgrid=\x22false\x22\x0d\ -\x0a inkscape:z\ -oom=\x2213.260417\x22\x0d\ -\x0a inkscape:c\ -x=\x2215.581624\x22\x0d\x0a \ - inkscape:cy=\ -\x2222.07805\x22\x0d\x0a \ - inkscape:window\ --x=\x2257\x22\x0d\x0a in\ -kscape:window-y=\ -\x2227\x22\x0d\x0a inksc\ -ape:window-maxim\ -ized=\x221\x22\x0d\x0a i\ -nkscape:current-\ -layer=\x22svg6\x22 />\x0d\ -\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \ + \x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x08\xd1\ +acity:1\x22\x0a \ +sodipodi:nodetyp\ +es=\x22cc\x22 />\x0a <\ +path\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path812-\ +3\x22\x0a d=\x22M 1\ +44.62039,46.8043\ +35 46.040128,146\ +.05858\x22\x0a s\ +tyle=\x22fill:none;\ +fill-rule:evenod\ +d;stroke:#b3b3b3\ +;stroke-width:21\ +;stroke-linecap:\ +round;stroke-lin\ +ejoin:miter;stro\ +ke-miterlimit:4;\ +stroke-dasharray\ +:none;stroke-opa\ +city:1\x22\x0a s\ +odipodi:nodetype\ +s=\x22cc\x22 />\x0a \ +\x0a\x0a\ +\x00\x00\x0c\xed\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x0d\x8c\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ \ image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a <\ +sodipodi:namedvi\ +ew\x0a pagecolo\ +r=\x22#ffffff\x22\x0a \ + bordercolor=\x22#6\ +66666\x22\x0a bord\ +eropacity=\x221\x22\x0a \ + objecttoleran\ +ce=\x2210\x22\x0a gri\ +dtolerance=\x2210\x22\x0a\ + guidetolera\ +nce=\x2210\x22\x0a in\ +kscape:pageopaci\ +ty=\x220\x22\x0a inks\ +cape:pageshadow=\ +\x222\x22\x0a inkscap\ +e:window-width=\x22\ +1863\x22\x0a inksc\ ape:window-heigh\ -t=\x221018\x22\x0d\x0a i\ -d=\x22namedview8\x22\x0d\x0a\ - showgrid=\x22f\ -alse\x22\x0d\x0a inks\ -cape:zoom=\x226.260\ -4167\x22\x0d\x0a inks\ -cape:cx=\x220.27801\ -26\x22\x0d\x0a inksca\ -pe:cy=\x2243.968298\ -\x22\x0d\x0a inkscape\ -:window-x=\x2272\x22\x0d\x0a\ - inkscape:wi\ -ndow-y=\x2225\x22\x0d\x0a \ +t=\x221025\x22\x0a id\ +=\x22namedview6\x22\x0a \ + showgrid=\x22fal\ +se\x22\x0a inkscap\ +e:zoom=\x223.390625\ +\x22\x0a inkscape:\ +cx=\x22-152.89201\x22\x0a\ + inkscape:cy\ +=\x2282.051545\x22\x0a \ inkscape:windo\ -w-maximized=\x221\x22\x0d\ -\x0a inkscape:c\ -urrent-layer=\x22g4\ -544\x22 />\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04U\ +w-x=\x2257\x22\x0a in\ +kscape:window-y=\ +\x2227\x22\x0a inksca\ +pe:window-maximi\ +zed=\x221\x22\x0a ink\ +scape:current-la\ +yer=\x22svg4\x22 />\x0a \ +\x0a \x0a \x0a \ +\x0a \ + Bus\x0a \ +\x0a\x0a\ +\x00\x00\x07\x9e\ \x00\ -\x00\x13#x\xda\xed\x97M\x8f\xdb6\x10\x86\xef\x01\xf2\ -\x1fT\xed%AW\x14I}+\xd6\x06h\x17\x01r\ -\xe8\xa5MQ\xa0\x97\x80+\xd1\xb6\xb2\x92(P\xf4\xda\ -\xce\xaf\xefP\x12eym\x03Aa\x14=X\xc0b\ -\xcdw\x86\xe4\xcc3#\xda\x5c|\xdc\xd5\x95\xf5\xc2e\ -W\x8a&\xb3\x09\xc2\xb6\xc5\x9b\x5c\x14e\xb3\xca\xec?\ -\xbf|rb\xdb\xea\x14k\x0aV\x89\x86gv#\xec\ -\x8f\x0fo\xdf,~r\x1c\xebW\xc9\x99\xe2\x85\xb5-\ -\xd5\xda\xfa\xdc~y\x9c\x8c\x0eF\x85*\xe6\xeb\x18\xb0G\xfb\x1e\ -\xd1nX\xcd\xbb\x96\xe5\xbcs\x8d>,0+6\x19\ -\x94\xb2\xc8l\x88\x93\x0e\xa3mY\xa85X\x93q\xbc\ -\xe6\xe5j\xadf\xc2K\xc9\xb7\xbf\x88]fc\x0b[\ -\xa0Z\x93\xc5\xc4\x9b\x16\x22\xd7\xfbg6\xeb\xbar\xd5\ -|U\xe2k+\xc5\xb2\xac8\x9a\x80\x98\xa8\xd2) \ -\x8c\x12\x8a\x02\xeb\x1d\xc5!\xe69Y&\xcb{\x8bb\ -\x8a\x1d\xec;8~o?\xe8y\x8b\x9a+V0\xc5\ -\xfaE\x86\xe0\x8d\x14\x0f.\xe0\x045M\x7f\x7f\xfc4\ -\x0eA\xc8\xf3\xf4/!\x9f\xcd\x18\x1e\xed\xc2\x9e\xc4\x06\ -R\xb3\x1f\x0e\xfa\xa2\xc8S\xa8B\xcd\xd4CY\xb3\x15\ -\xd7\x15\xfc\x19\xa0/\xdc\x83\xe1\xd8[\xed[>[w\ -XY\xf2\xa1\xa0g[\xbb\xc8\xebR\xcfr\xffPe\ -U}\xd6\xdb\xd8\x96\xfbz\xd9RU|\xa6.\xdc1\ -\x07\x93\xa3;Or\xe1\x1a\x08\xc3\xb0\xe0\xcbnFH\ -\x0fC\xb3\xc7b\xaa\x93.R\xa1\xeb9\xba\xb6\x10I\ -.*!3\xfbn\xd9?\xf6hy\x12\xb2\xe0\xd2\xd8\ -\xc2\xfe9\xb6\x09h6\xc8\x0a\x1a\xc5\xe8\xe2\xe9\x1b\xcf\ -\x95\x12\x15\x97\xac\xd1(\x086\xa6\x95\x84.;k\xd8\ -\x94\x05?k\x99\xfaE\x079mv\xde\xdc\xadY!\ -\xb6\x99MO\xac\xdb\xb2\x01\x8bc\x9a<\xf6\xe3K.\ -S\xdfcr\xf0\x01\x94\x133\xdf\xa8\xddZluB\ -\x99\xbddU\xc7O\x16\xfc.D\xad_\xb7 \x0c\x08\ -\xf6Oc\xca\xe1]\xa2~\x84\x02\xeaE\xe4\xd4\xba\xef\ -\xdf=D\x22\x12\x87\x97\x82\x85\x15\xa2\x8b\xc9\xc2\x024\ -\xb8d\xac\xd9\xae\xac\xcb\xef\xbc\x98\x15\xee\xb0\xf7FJ\ -8\x83\x9d\x8a\xed\xb9\x1c\x0f\x09\xd3D\x12jk\x00\xa8\ -}\x05\xb5\x1a\x8b\x92\x92\x0f\xf0\xa6W\xe9]\xd2?\xfd\ -\xc09\xd8:%\xc53O\xefp\xff\x8c\xc3\xa1 \xa9\ -\x87\x12\x1cx\x11N\x02\xa3We\xc3!\x94T\x8aM\ -S\xcc\xc5o\xa2l\x8eUx\xa7\xb8\xac \x19\x95\xfa\ -F+\x18\xb4\x82\x94l\x9f6\xf0\xf5eT\x13\x0c\xfe\ -\xd0\xb2\x12\xd2\xeb\xfb7\xad\x99|\x86\xa3\xc8\x1a\x9c,\ -\x1d\xf6\xbc\xee:\xdf\x98P\xc7s&\x96c\x17Q\x8c\ -\xc20\xc6\xd83\xbai\x9d\x13\x03\x94\x89\xd0\x08Q\xea\ -\x85\x89\xd1\xa0:1\x8a\xbc$\xa2\xf1\xa4I]sD\ -=\xac\xe5\x1bq'p\xa2k3\xf7|D<\xea{\ -7\xe6\x17\x99\x93k3\x0f\x128\xe3\x02\xe2{7\xe6\ -\x97\x98\xe3\xab\x9f->JH\x14\x07\xfe\x8d\xf9%\xe6\ -\xf4\xda\xcc\x09\xc1\xc8#8\x08n\xcc/2w\xbc\xab\ -S\xf7\x02\x14a\x8f\x867\xea\x97\xa9\x87W\xa7\x1e\x12\ -\x04y'\xf1\x7fO=D~\xe2G>\xf5\x92\xff\xf9\ -\x99~\xf2\xeb\x05~|\xc0O}?\x0a^S?1\ -\xe8\xabA\x88\xe0\x9aB\x03oF=\x8a\xa0\xd5\x01\xfb\ -\x11u\x8a\xb0\x1f\x92\x18\x8e\x1dC\xbdej}L\xfd\ -GX\x8f\xd6#\xd6PQ\x1cD4\xf2\xc3v\xf7/\ -hO\x9b\x98x\x01\xd1oV\x0c\xed\x84\xc3\x90\x90{\ -\xf8\x96\x8a\xa30H\x22\xady\x90n\x14\xde\xc3\x01\x8a\ -\xfc0\xa2\xc4\xd2\x9fB\x12\xe0\xe4>\x09\x90\xe7\x93$\ -\xf1\xad\xbf\xe7\xb4u\x9e\x09>s\xb3\x12\x0d\x84\xa8\x84\ -t\xe0&\xf3\xc2\xd4F\xf2\xd9\x95\xf1p\x0d\x16p\xe7\ -\x84\xfbx\x97\xd99<\x03\xbe\x85\xbe\xf9\xc3\xff\x7f\x00\ -\xa3\x8a\x9bn\ -\x00\x00\x08\x17\ +\x00&\x19x\xda\xddZ\xdd\x93\xe2\xb8\x11\x7f\x9f\xbf\xc2\ +\xf1\xbe\xecV\xb0\xac\xd6\xb7\x08\xccU\xe5\xb6\xae\xea^\ +\x93\xbb\xba\xc7\x94\xb1\x0d\xe3\xac\xb1)\xdb\x0c3\xf7\xd7\ +\xa7e\xb0\x01\x1b\xae\xf6v\xc8\x0e\x89\x99\xa9B\xea\x96\ +\xd4\xfa\xa9?ef?\xbc\xacs\xef9\xad\xea\xac,\ +\xe6>\x10\xea{i\x11\x97IV\xac\xe6\xfe\xaf\xbf\xfc\ +\x14\x18\xdf\xab\x9b\xa8H\xa2\xbc,\xd2\xb9_\x94\xfe\x0f\ +\x8f\x0f\xb3\xbf\x04\x81\xf7c\x95FM\x9ax\xbb\xacy\ +\xf2~.\xbe\xd4q\xb4I\xbd\x8fOM\xb3\x99\x86\xe1\ +n\xb7#\xd9\xa1\x93\x94\xd5*\xfc\xe4\x05\xc1\xe3\xc3\xc3\ +\xac~^=x\x9e\x87\xeb\x16\xf54\x89\xe7\xfea\xc0\ +f[\xe5-c\x12\x87i\x9e\xae\xd3\xa2\xa9C \x10\ +\xfaG\xf6\xf8\xc8\x1e\xbb\xd5\xb3\xe74.\xd7\xeb\xb2\xa8\ +\xdb\x91E\xfd\xe1\x84\xb9J\x96=\xb7\x93f\xc7[&\ +\xb0\xd6\x86\x94\x85\x8c\x05\xc8\x11\xd4\xafE\x13\xbd\x04\xe7\ +CQ\xc6KC\x19\xa54D\xda\x91\xf3\xeb\xb8\xa65\ +\x02\xba\xc1\xff\x9e\xbd\xeb u\xb9\xad\xe2t\x89\xe3R\ +R\xa4M\xf8\xf9\x97\xcf=1\xa0$i\x92\x93i:\ +<\xcfV=\x03\xb9\x88\xd6i\xbd\x89\xe2\xb4\x0e\xbb\xfe\ +v\xfc.K\x9a\xa7\xb9/L\xdbzJ\xb3\xd5S\xd3\ +7\x9f\xb3t\xf7\xf7\xf2e\xeeS\x8fz\xc2\xe0\x1f\xa1\ +\xee\x81\x96\x9a%s\x1fw\xc3\xf6\xacGM9P\x0f\ +\xabL{\x0a%\x96\x11\xee}d\x82J)\xd4\xc4c\ +\x14L@y\x00\xf0\xa9\x1d\xd2mo\x9a\x94\xb1\x93w\ +\xee\xc7e^V\xffZUYB\x1cn\x8f\xc85K\ +\xd2e\xed\xb8\xf7\x02\xb8\x96\xf0\xbd\xb0%\xf5\x13\xb8\xd1\ +\x89\x93\xfe\xc8\xb8\x88\xea\xfd\x8e=o\x13\xad\xd2v\xe6\ +\xb9\xffa\xd9>\x07\xc2\xa2\xac\x92\xb4\xeaH\xaa}\xce\ +H%\x22\x985\xaf{{8\xcc\xdd\xed\xd3\xcd\xda\xd3\ +\xe9ez\xfd\x14%\xe5n\xee\xb3!\xf1\xf7\xb2\x5c\xe3\ +\xac\x8c\x80\x90\x86\xf3!9\xc63\x00I8\x13R\xc3\ +\x88\x88\xeb1M\x0ch\x0abHD(\xb7\xceb\x82\ +m\x915\xa8\x95\x9b\x97\xd1\xf0mU9\x86\xd2\ +I\x00\x94\x0a\xc2\x15c\x9f:\xd4W\xdd6\xdc\x1c\xa7\ +\x8aw6\x09\x82Xe/\x1f)1J\x81\xe2\x92O\ +\xa8\xfb\x1c\x9b\x8c(\xa9\xb5\xd1v\x02\x5c\x13\xd0\x8c\x1f\ +\x1cJ\xab\xc3\xcdk\x8e\x12/\x11\xbd\xe9\xc1\xda\xffV\ +7U\xf9%\x9d~\x10\x89\xfb\xf4\xe79\xdbD\xcd\xd3\ +\xf1t\x8e\x16R\x16E\x1a7e\x15\xa0\xad)\xb8`g\xe8\ +\x1d\xadvv\xc6\x0d\xd1J 0\x92\x08e\x0c\xb7\x13\ +E\x18\xa3\xdf\xaeO\x0b\xbd\x5c\x0a5\xb23\xf4r\x96\ +\xdd\x97\xff\xb1c;\xe3\xe8r\xa4t\x8e\x99#\x1e\xd2\ +z\xc0\xf1H-7\x16&@\xac\xd5o\xf1?zy\ +\xc9/K\x5c\x06\xf8\x1d\xe1\xa2\xc7\x01\x0b\xb1\x00\xa5L\ +\xab/\x14\x13R\x06\x9e$\x00@\x8dFu\x11\xe8\xb4\ +\xdf\xe0~N\xe2o\x0f\x8b\x16\x9c\x1aA\xe1\x9e`\x19\ +\x85+\x81\xc7\x07RQ\xd8\x9b\x91\xa4Zx\x18\xda\xad\ +\xe4\xadwA\xa5\xa7o\x00&V\xcb%7#;\xe2\ +Ti\xd0\xf6\x9e\xfc\xcb\xc8\x8e0\xe5bF\x00\x13.\ +\x8e\x0b\x22\x85\xb5h[\xe8\xa1\x193\x13\x97\xe9P\x0e\ +7\xc6\xc5\x02&z\xf6\xae\xf4e\xe4v\x05#\xd2\xa0\ +{qQ\x1cC\xba\xe6\xc2\x0b,q\x9c\x92\xb9\xb4\x8f\ +K\x05op/\x0b=v/\xdaR\x81\xab\xddS8\ +\x92\xfc\x82{\xa1\xc6\xd2V]0f\xa3My\xb1G\ +\x09\xa7T\x03\xe6\xc3\x14!b\xca\x13.\xe1\x01@\xa4\ +4\x91\x80\x99\xe1\xb0\xe3\x0d.\xc8\xc5\xf2\x91F1\x83\ +^_\x8a;\x82\xee,\xcb\xdbGr@\xb7\xc3%k\ +3f\x8bE\x8f\xd1\x9eA\xd1\xa5\xd2X\x03\x81>\x03\ +\xfb\x16\xa8hL:%\xa3w\x15\xaf \x18\xa9\x14g\ +\xc4`\xea\xa7\x5c\xea\xc7\x81\x08\x8d\x0a\x84\x8ad@a\ +*\xe8\x14\xc6\x22To\xb05\x93\x5c\xb05N9\xe7\ +\x96\xdd\x0c\x9a8\xab\xe2\xfc\xe4n\xa0r\x97L\xa7Q\ +\xc8]\xf3`\x09m\x08\x87\xb3*\xd3\xdd\x0d1\xe7w\ +\xa55\xe6\x02f(\xa6\xfa\x9a\xcd\xf7R\xfd!\x16\x8a\ +\x0d\xb1\x80\xef\x0d\x01fi\xc0\xed\x10\x02\xae\xd0/\xa0\ +\x13\x91W \x08\xf8\xad@\xc0\x94\x17\xb3\xbbw\x06\x01\ +c\x0aW\xa0\x06 \x886\x815g\x89\xeb\x19\x087\ +\xd3\x04\xbbp\xba\xf0\xce p\xe7\x045\x1f\x82\x801\ +\x84\x0a.\xf85\x10\xf4\xed\xcca|\xfb\xf2\xddAp\ +\xc5.\xa6\xe6C\x8f`\x10\x1a\xab%\xbb\x06\x82\xbc\x15\ +\x08\x97J\xe3\xef\x0f\x82t\x97;0\x00\x01\xd3Q\xe6\ +R\xf6\xab p\xf9\xffe\x0fX\xa7I\x90\x03\x140\ +\xe1\xb2\x0aU\xc4\x5cu\x0a\xecv\x061\xceK\xbf\xbf\ +kdX\x90\x98\xa1.\x08,\xd0\xb0H9K\xd4\xcf\ +P\xb0\xb7\x02\x81Rw+\xf2\xdeA\x92\x11e\xd50\ +>\x00fG\xc2\x02\xbb\xaa\x0ap+\x10\x22{\x07\xae\ +\x11\x93d\xfc\x07\xcd\xfd\x1aD\ +\x00\x00\x10\x95\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#5555ff;s\ -troke-width:4;st\ -roke:none;stroke\ --opacity:1;strok\ -e-miterlimit:4;s\ -troke-dasharray:\ -none\x22\x0d\x0a d=\x22m\ - 37.559322,153.6\ -2712 v -8 h 56 5\ -5.999998 v 8 8 h\ - -55.999998 -56 \ -z m 28,-52.66667\ - -27.30894,-27.3\ -33331 h 15.65447\ -1 15.654469 v -2\ -4 -24 h 24 23.99\ -9998 v 24 24 h 1\ -5.65447 15.65446\ - l -27.30893,27.\ -333331 c -15.019\ -92,15.03334 -27.\ -619918,27.33334 \ --27.999998,27.33\ -334 -0.38008,0 -\ -12.98008,-12.3 -\ -28,-27.33334 z\x22\x0d\ -\x0a id=\x22path81\ -7\x22\x0d\x0a inkscap\ -e:connector-curv\ -ature=\x220\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x07\xd4\ +69\x22\x0a inkscap\ +e:window-y=\x2227\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +g4150\x22\x0a inks\ +cape:pagechecker\ +board=\x220\x22 />\x0a <\ +path\x0a d=\x22M0 \ +0h48v48h-48z\x22\x0a \ + fill=\x22none\x22\x0a \ + id=\x22path4\x22 /\ +>\x0a \x0a <\ +g\x0a transfo\ +rm=\x22translate(1.\ +0067283,-25.8872\ +99)\x22\x0a id=\x22\ +g4144\x22\x0a st\ +yle=\x22stroke:#1a1\ +a1a\x22 />\x0a \x0a \x0a \x0a \x0a \ + \x0a \ + \x0a\ + \x0a\ + \x0a \x0a \x0a\x0a\ +\x00\x00\x0d;\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0a\ + \x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0a \ + \x0a \ + \x0a \x0a <\ +/g>\x0a ?\x0a \x0a\x0a\ +\x00\x00\x1b\xfb\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ -\x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \ + \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xb9\ +indow-y=\x2227\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +6\x22\x0a inkscape\ +:pagecheckerboar\ +d=\x220\x22 />\x0a \x0a\x0a\ +\x00\x00\x09@\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ +g/ns#\x22\x0a xmlns:\ +rdf=\x22http://www.\ +w3.org/1999/02/2\ +2-rdf-syntax-ns#\ +\x22\x0a xmlns:svg=\x22\ +http://www.w3.or\ +g/2000/svg\x22\x0a x\ +mlns=\x22http://www\ +.w3.org/2000/svg\ +\x22\x0a xmlns:sodip\ +odi=\x22http://sodi\ +podi.sourceforge\ +.net/DTD/sodipod\ +i-0.dtd\x22\x0a xmln\ +s:inkscape=\x22http\ +://www.inkscape.\ +org/namespaces/i\ +nkscape\x22\x0a widt\ +h=\x2248\x22\x0a height\ +=\x2248\x22\x0a viewBox\ +=\x220 0 48 48\x22\x0a \ +version=\x221.1\x22\x0a \ + id=\x22svg4\x22\x0a so\ +dipodi:docname=\x22\ +Catalogue.svg\x22\x0a \ + inkscape:versi\ +on=\x220.92.3 (2405\ +546, 2018-03-11)\ +\x22>\x0a \x0a \x0a \x0a \ imag\ e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0bc\ +width=\x221851\x22\x0a \ + inkscape:windo\ +w-height=\x221025\x22\x0a\ + id=\x22namedvi\ +ew6\x22\x0a showgr\ +id=\x22false\x22\x0a \ +inkscape:zoom=\x222\ +.4583333\x22\x0a i\ +nkscape:cx=\x22-87.\ +829627\x22\x0a ink\ +scape:cy=\x2265.809\ +318\x22\x0a inksca\ +pe:window-x=\x2269\x22\ +\x0a inkscape:w\ +indow-y=\x2227\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +4\x22 />\x0a \x0a <\ +path\x0a style=\ +\x22fill:none;fill-\ +rule:evenodd;str\ +oke:#999999;stro\ +ke-width:2.35818\ +648;stroke-linec\ +ap:round;stroke-\ +linejoin:bevel;s\ +troke-miterlimit\ +:4;stroke-dashar\ +ray:none;stroke-\ +opacity:1\x22\x0a \ +d=\x22M 3.8266767,1\ +0.457984 C 9.759\ +9467,8.637125 15\ +.594417,9.4085 2\ +4.006067,12.8984\ +61 l 0.23736,25.\ +43598 C 15.02184\ +7,34.983742 9.39\ +67067,34.390537 \ +3.6910067,35.962\ +096 Z\x22\x0a id=\x22\ +path816-3-7-5\x22\x0a \ + inkscape:con\ +nector-curvature\ +=\x220\x22\x0a sodipo\ +di:nodetypes=\x22cc\ +ccc\x22 />\x0a\x0a\ +\x00\x00\x18\x18\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - i\ -mage/svg+xml\x0d\x0a \ - \x0d\ -\x0a \x0d\x0a\ - \ -\x0d\x0a \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0a\xc1\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\ +image/svg+xml\ +\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x07\x22\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a<\ +g\x0a id=\x22g2678\ +\x22\x0a transform\ +=\x22matrix(0.55320\ +042,0,0,0.598469\ +42,8.6310018,192\ +.67497)\x22><\ +rect\x0a \ +style=\x22fill:#fff\ +fff;stroke:none\x22\ +\x0a id=\x22\ +rect1013-4-6\x22\x0a \ + width=\x22\ +48.907463\x22\x0a \ + height=\x2238\ +.208954\x22\x0a \ + x=\x22-310.2811\ +9\x22\x0a y=\ +\x22-174.56882\x22 /><\ +rect\x0a \ +style=\x22fill:#fff\ +fff;stroke:none\x22\ +\x0a id=\x22\ +rect1013-1\x22\x0a \ + width=\x2248\ +.907463\x22\x0a \ + height=\x2238.2\ +08954\x22\x0a \ + x=\x22-365.81845\x22\ +\x0a y=\x22-\ +130.41977\x22 />\ +\x0a\ +\x00\x00\x06\x80\ +\x00\ +\x00\x1f6x\xda\xedYKo\xdbF\x10\xbe\xe7W\x10\ +\xf4%AEr\xdf\xbbd$\x07(\x82 =\xf4\xd2\ +\xa6-\xd0K@\x93+\x991E\x0a$e\xd9\xfe\xf5\ +\x9d]\x92\x22\xa9G\x10\xa7A\x9fRb\x873;\xb3\ +\x8fo\xbe\x19\xceF\xf37\x0f\xeb\xdc\xb9\xd7U\x9d\x95\ +\xc5\xc2\xc5>r\x1d]$e\x9a\x15\xab\x85\xfb\xcb\x87\ +w\x9er\x9d\xba\x89\x8b4\xce\xcbB/\xdc\xa2t\xdf\ +\x5c\xbf\x98\xd7\xf7\xab\x17\x8e\xe3\x80sQGi\xb2p\ +o\x9bf\x13\x05\xc1f[\xe5~Y\xad\x824\x09t\ +\xae\xd7\xbah\xea\x00\xfb8p\x07\xf3d0O*\x1d\ +7\xd9\xbdN\xca\xf5\xba,j\xebY\xd4W#\xe3*\ +]\xee\xadw\xbb\x9d\xbf\xa3\xd6\x08\x87a\x18 \x12\x10\ +\xe2\x81\x85W?\x16M\xfc\xe0M]a\x8f\xa7\x5c\x09\ +B(\x80\xb1\xc1\xf2\xcb\xac\xa2\x1aP\xd9\xc0\xcf\xde\xbc\ +W\xf8u\xb9\xad\x12\xbd\x04?\xed\x17\xba\x09\xde~x\ +\xbb\x1f\xf4\x90\x9f6\xe9h\x9a\xac\xb8\xab\x93x\xa3'\ +\xab\xf6\xca\x16\x81x\xad\xebM\x9c\xe8:\xe8\xf5\xd6\x7f\ +\x97\xa5\xcd\xed\xc2\xe5\xd87\xbbC\xd8*ou\xb6\xba\ +m\x0e\xb5\xf7\x99\xde}_>,\x5c\xe4 \x87)\xf8\ +k\xd5Y\xbap\xe1P\xa4\xb5\x19\xa2\xde:\xf5\x8bE\ +\xfb\x11\xe4\x87\xc4g\xce\xcbmqW\x94\xbb\xe2\x955\ +\xebO\x16\xa5eb\xb6\xbaps\x08b\xf1\xf1\xf6q\ +\xa3\xabd{\xa3\x89o\x80\xbb\x06\xdb\xf9Z7q\x1a\ +7\xb1\xf1k\x97\xef5\x98X\x0b\xb0\x81\x00F?\xbd\ +}\xd7J 'I\xf4[Y\xddu\x22|\x8cA|\ +Sn\xe1\x94\xee\xf5^=O\x93\x08 _\xc7\xcdu\ +\xb6\x8eW\xdaD\xeb;\x80x\x1e\x0c\x03\x13\xe3\x06\xf6\ +7L\xdaN[\xe96v'\x09\x9c&\xeb\xcc8\x05\ +?7Y\x9e\xff`\x16q\x9d\xe0`\xd2\xac\xc9\xf5\xa0\ +\x9c\x07\xdd\xee\xbb\xb3\x05\xa3\xc3\xcd\x83\xfe\xecVJ\xf5\ +\xb2\x1e`1\x12F=$\xfbH\x00\xa2\xf5F'&\ +G\xfae\xf7\xf0\x9b\xad-\xdc\xa9)m\x99\xe6L\xa2\ +\xb9\xf9\x08D\xe0\xd4\x17D\xd2\x90:\x91\x83!\xaeT\ +\x12)\xcd\xf3I\x87G\xc3\x9c\xc8\xe1\x02\xf9\x0c#f\ +\x9c\xd0I\xc3\xa7\x85\xcb\xa8\xcf\x84\xc0\xc8\xccF\x94/\ +9\x15\x84\x9d\x9e\xb9\xdb\xa3WV\xd9*\x03~\x09\xea\ +s\xc5\x09V`.|\xc5\x90P|\xea\x09\xd0\x8c0\ +\x80M\xe3.\x04\x10f\x80\xcc>\xed\x111lL\x0d\ +\xf5[\xf7\x0d\x04,)\xf3\xb2Z\xb8WK\xfb\xe9\xe6\ +\xbd)\xab\x14\xa8\xda\x0d\x09\xfb\x99\x0c\x95\x90}\x10z\ +H\x8dN]\xde|\x82\x1d4e\xae\xab\xb80t\xc1\ +=\x1c\xab\x0a\xb2\xf2\x94~\x9b\xa5\xfa\xd4\xc0\x00\x06l\ +o\xbf\xd0\xc9\xd1\xfa6N\xcb\xdd\xc2%\x87\x83\xbb\xac\ +\x80\x01\xaf+\x08X\x09z\xc6\xa2\xaf\x0e\x18\x11\xee\x0e\ +l\xdb\x03\xa5:e}[\xee\xccI\x16\xee2\xcek\ +}8\xdbSY\xae\xed\xdb\x81R\x821;\x1cN\x80\ +_\x1eA\xd8\x87\xf0Pq4\x0a\xc7\xa3\x14C)\xa1\ +$<\xb3OCPyf\x0c\xdc\xc9\xb9\xb1u\xfc\x90\ +\xad\xb3'\x9d\x0e\xa1\x1a\xd6\xddV\x15\xbc\x7f\xbc<~\ +\xd4UW\xf7:\xeel\xe2\xe6\xb6\xb5\x06\xc7\x1f\x1d4\ +C\xce{S&\x7f5\xbf\xdeC\xc9\xfc}\x04\x961\ +>>rY\x14\xc0\x88\xb2\xf2`\x99\xfb\xb8\xd9Vz\ +\x08b\xdd<\xe6 .\xa1jD\x05\xbc6\xfbeW\ +\xc3\xa4+\x86\xf9)\xf3+\x84R\x16\xc7\xaf\xeb\xa6*\ +\xefttEn\xcc\x9fN\xf4:\xbaD\xfdY\x1b \ +Wmj\x1d\xd4\xd5\xb8\xa9\xb2\x87\x97\xd8\x87\x081D\ +\xc5\x0c\x0e5\x03I@J\x09<\x83\xf0\xf8\x14\x0b\x8a\ +\xc2\x99\x87\x95O\x14\xe7\x8a\xbe\xea\xeb\xcd\xaa\xcf\xb7\xd1\ +\x84\xf6\x11*\xbb\x869\x11\x12\x92(\x0a\xb3p_)\ +I\xc2\xf0\xd5$E\xe14\x8c\xed5_s\x9e\xbe\x84\ +\x8eBsz\x22#\x0c~\xadXms\x1d\xe9{]\ +\x94izf%\x9b*\x11\xf21\xa3\x0a+J{}\ +\x9eA\x18\xe3MT\x95\xdb\x22\x1d+?\x95Y1\xd5\ +\xc2\xcb@W9\xd0\xad\x890\xea\x95i\x0cIZU\ +\xf1\xa3\x0d\xf4X[.\x97\xb5n\x22t.v\x96{\ +\xd3B\x07G\xa72\xa4\xc7u\xf3\x0c\xdb\xfe*\xd0\x10\ +\x92\x0a\x13\xfe\x8f\xc5L\xa1\xf0\x82\xd9s1\xc3\xf8\x82\ +\xd9\xb31\x93\xcf\xc7l5-\x94\xd0R\xfd\xa9B\xb9\ +\xef4\xc7\xb1\xf8\xd2\x17\xd3A\xd6\xf0\x91\xda\xb4\xe6\x0e\ +\x0d}\xa6\x08GdF\xb0/$\xb4r\xdc\x81\xb0`\ +\xa2\xe0\x0d\x02\x0f\x84\x08\xab`\xd0N\xccl\xbc\xb0\x93\ +8v\x003\xab\xa0\xca\x8e\x87\x04[1\xb4\xa2@X\ +\xcc\xday\xa4\x9dO\x11e\x879\xb5\xa2\x10\xb2\x15C\ +\xc7\xac\x02\x97;+\xc2ZF\xa4\x92\x93\x99\xf0\x09\xd1\ +\x1e\xb3\x0aA0\xb1\x06\xac\x95Cb\xed1\xe3N\xde\ +N@\xbb\xed1z\xbc\xfd\xa7\xd1\xa1\xbb\x00\xf4\xe8\x22\ +_\x11j.Q\xe4\xf57\xa55\xb4LpD\xf6w\ +\xf2ztE\xf9\x06\xc4\x91G\xc4A>g\x92\x87\xd2\ +\x10\x07\xae\x02\x94\x13C\x0c\x8b:\x926\xe8\x14\x02d\ +e\x01\xcd\x84Up)[\x05\x91\x96&@\x9e\xd6\x01\ +3K\x22\xd2\xb2B\x85FR\x82\xd9(\x13\x22C\x08\ +3<\xc9PX\x1a\x10\x0e\xa43~\x12Cw\x03\x97\ +\x11\xc3\x93\xc4j\x18\x96jF \x00=u\xe0\xcd\xdf\ +r\x8bJ#c`(o\x99\xaaZ\x03,\xd8\x84[\ +$T\xa2g\xfaD\x06\xae\xfe\xef\x99T\x01_\x8e \ +\xf8\x82j\xd6\x1e\xc7\x10\x05\x01\x97\x90\xfc\xecqF\x1b\ +g\x9f\xdf\xf7\x80\xeb&\xce\xa0\xf1\xb7W\xb9h\x1dW\ +wp\x83t\xcc\xbe\x9c\xd6r\x147s\xb9`\xd0\xd3\ +BS8&5\xdcG\x081W_!\xc3\x91\xba\xbf\ +N\x11\xc36\x81\xc9h\xa8\xbb\x8b\x01\xfd%c\x8a\xab\ +\x83\xc41PQI\xe5\x18>\x9d\xe7\xd9\xa6\x1e\xfd\x9f\ +Den\x9c>\xa3R 5\x9e\xbbz\xb0z\xe8\xb1\ +\xa1\x0d\x1f\xe9\xcd\xcd\x0a:r\x22\xd0p\xbd\xb3\xfav\ +\xfbR2\xca\xe9\x89\x0cf|\xa2>\xe0.~\xfdo\ +\x08\xe17\xc7\x91\xf9!\x86\xfb\xad<\xc0\x91Q?\x0c\ +\x87[\xed!\x8c\xde\x05\xc8S@\x0aq\x04$\x85\xca\ +\xcc\xa1\x22\xf2sH\x0ar\x81r\x0a%\x85\xca\x84\x04\ +\xe5\xf88\xb7\x85`8TgI).P\x1eA\x09\ +\xad\xb7\x10\xf88\xbd\xa1\xf6C\xc7y\x16JO^\xb0\ +<\xc6R\x90P\xd0\xe3\x0c\x87\xf6J1u>\xc3=\ +~\x01s\x0a&\xe3>4\xcb\xe0\xf0\xfc\x1c\xbf\xbc{\ +N\x80\x09\xadP\x88\xd5\xc9,'\x88~&\xcb/\xd4\ +<\x89fH\xc8\xd7\xa4\xb9\xf7\x9fy\x03\xcd\x83U\xfb\ +}\x13\xfc37_2^\xbf\xf8\x03\xd0\xde\x0d\xad\ +\x00\x00\x0e\x8f\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\x0a <\ -ellipse\x0d\x0a st\ -yle=\x22fill:#33333\ -3;fill-opacity:1\ -;stroke:#000000;\ -stroke-width:2.4\ -;stroke-linecap:\ -round;stroke-lin\ -ejoin:round;stro\ -ke-opacity:1;pai\ -nt-order:markers\ - stroke fill\x22\x0d\x0a \ - id=\x22path848\x22\ -\x0d\x0a cx=\x2224.28\ -3655\x22\x0d\x0a cy=\x22\ -25.593718\x22\x0d\x0a \ - rx=\x226.8985863\x22\x0d\ -\x0a ry=\x227.1584\ -754\x22 />\x0d\x0a\x0d\ -\x0a\ -\x00\x00\x14\xf8\ -\x00\ -\x01\xaf\xa5x\xda\xed]\xddnc9r\xbe_`\xdf\ -AP\xdf\xcc`-\x9aU\xc5\x9f\xa2\xa6=\x0b\x04\x8b\ -Mr\xb1\x08\x90\x9dI\x80\xdc\x04\x1a\xe9\xd8\xd6\x8e,\ -\x19\x92\xba\xed\xdeW\xcb;\xe4\x99R\x94-K\xf2\xa1\ -'\xddC/\x86f\xd3\xdd\x8d\xb6x\x8e\xce\xcf\xf7\x91\ -\xfc\x8adU\xf1\xfd\x1f\xefo\x16\x83\x8f\xddz3_\ --/\x86\xa0\xf4p\xd0-\xa7\xab\xd9|yu1\xfc\ -\xf1\x87?\x8fx8\xd8l'\xcb\xd9d\xb1Zv\x17\ -\xc3\xe5j\xf8\xc7\xef\x7f\xff\xbb\xf7\x9b\x8fW\xbf\xff\xdd\ -`0\xb8\x9b\xcf\xb6\xd7\x17C\xc3\xc3\xdd\xc7\xebn~\ -u\xbd=|\xfe8\xef\xee\xfeiu\x7f1\xd4\x03=\ -0<\xd8\x97\xcfg\x17C\xb9\x04>\x9eu\xb8?<\ -\x1e_\xfe\xbc\x99Nn\xbb\xf1\xf1!\x85\x83o\xf4D\ -\xeb\xe9\xa5%\x0ag\x03\xd4\x88#-\x7f\xcd\xb7\x0f\xdf\ -\xda\xc8s\xdf\xca\xbf\xf1l5]Nn\xe4q\xbb\xfb\ -\xdb\xc92^\xe0\xbfo\x17\x93\xe5R\xdeJ\xc9m\x1f\ -\xce\x967_n\xc6\xfb;]\x0c\xaf\xb7\xdb\xdb\xf1\xf9\ -\xf9\xdd\xdd\x9d\xda\x17\xaa\xd5\xfa\xea<^is;\x99\ -v\x9b\xf3}\xf9\xf1\x05\xf67}\xba\xc0\xbe@mV\ -\x1f\xd6\xd3\xeeR\xae\xd1\xa9e\xb7=\xff\xd3\x0f\x7fz\ -:8\xd2j\xb6\x9d\x1d_\xe7~!W?y\x8a;\ -\xda\xdd\x1fB\x08\xe7\xbb\xa3G\xa7\xa7ND\xad\xf5\xf9\ -\xb3\xd7\x93\x8f\x9f{\xeazv\xf9\xe2\xed5\x9e\x0b\xd6\ -r\xc6h\xf3i\xb9\x9d\xdc\x8f\x96\x9bw\xc7\xdf\x9dN\ -\x9f\xbe:]w\x93\xed\xfcc7]\xdd\xdc\xac\x96\x9b\ -\x07\x08O\xcf\x9e\x1d\xce\xbe\xfd\xb0^\xecN\x99M\xcf\ -\xbbEw\xd3-\xb7\x9bs\xe1\xfa|\xf8}\xfc\xc2\xfb\ -\x9bn;\x99M\xb6\x93\xdd\xb7\x1f\xea\xcd\xbe\x08\xf0\xe1\ -\x1c9K\x1el\xfc\xef\x7f\xfa\xf3\xe3G)\x98N\xc7\ -\xff\xb9Z\xff\xbc\xff,?\xf1\x94\xc9O\xab\x0fR9\ -\x87\xdf\x1f\xca\xdf\xcf\xa6ca\xe8f\xb2\xfd~~3\ -\xb9\xea\x22(\x7f\x90\xa7|\x7f~8pz\xf6\xf6\xd3\ -mwt\xdd\x87+\xaf\xbb\x07\xb2\x93\xef5\x9b\xde\xcc\ -\xe3\xb7\xce\xff\xba\x9d/\x16\xff\x1ao3\x1c\x9c\x1f\x1e\ -\xf6\xfc\xf1i\xf7os~\xfc:\xef\xcf\xf7\xef\xfb\xf0\ -q\xd6]n\x8e\xc0\x88\x1fA?\x01!\xb5\xa4\x9b\xac\ -\xffy=\x99\xcd\x05\xc9\xa7\xc7|jN\xd3\xd5b\xd1\ -M\x05\x83\xc9\xe2n\xf2i3<\x9c!\xd7:\xfd\xb2\ -\x0b\x00\x07\xa4\xdeo\xb6\xab\xdb\xa3\xd7\xdel?-\xe4\ -mc\xe9H.\xbaZ\x8f\xdf\xe1T\x93\x9d|\xb7+\ -ZI{\x91w\x1e\xc3\xf0\xe8;\xab\xcb\xcbM'\xf7\ -\xd6\xc7\x85\xbb\x9e@\xbe\xe2\x82\xf6'\xa8\xfc\xff7$\ -?e\x0f\x9fqCx\xe1\x86\xe1p\xc3\xf7\xe7\xa7o\ -\x9f\x0d\xe8\xae\xc1\x8e\xaf\xd7\x9d4\xaaw\x09d\x7f\x01\ -yC\x9e\xcd\xe1\x84\xab\xc7\xe2\x1f\x97\xf3\xad\xb4\xfb\x0f\ -\x9bn\xfd\xd7\xd8\x1d\xfd\xdb\xf2\xc7MwtC\xb8\x18\ -Z\x05\x0e\x19\x9d=\x14\x7f\x92b \xa5\x03\x1bwt\ -\xd1{\x94NZ\xba{\xf6\x1a\x8f\x1e\xe6\x93\x14SP\ -\xce{\xb2t\x84\xceo\x02\x83\x0d\x1eK\x80\xa1\xf7\x08\ -?\xacETb\xe7p1\xdc\xc6_\x17\x93m\xf7\x8d\ -\xf4\xe8\xc1\x80TH\xa23T\xd6{\xadA\x84\xe9\xb7\ -\xc7\xd0\xbc\x1d\x0c\x057\xb9\x06\x07w\xa6\x15;k\xc8\ -2\x96\x00\xa1{;\x10\xcaU\xac\xb1R\xf5\xce\xe47\ -\xa3\xd1\x04[\x02\x82\xfcv\x104\xca y\xd2pf\ -\x95\x0bN\xd8/\xa1\x0e\xb2~[]!!\xc4\xbeG\ -j\xa15\x86\xbd-\xa1+\xe4\xb7%'\x0e=\x05\xab\ -\xad\xc8\x0901\x19.\x01\xc37$'#\x19H\x00\ -Y\xbfC\xd0\x06\xe9\x17]\x09\x08\xbe!5\x19\x09p\ -\xdaC\xd0\xee\x8c\x94\x17\xb3\xd4\x17!'\xcco\xaa!\ -{c\x0d\x831R\x0d\x0dx\x0c\xc1\xff\xe6\x18J\xdf\ -\xf2\x96:CR\xd6\xa2\xd5LgF!:\x19\xbb\xb9\ -\x12 4\x0d\xc2\x5c\x08]\x830\x17Bn\x10fB\ -\xf8\xa6\x8c\xebB!lr\x92\x0d\xe1[\x92\x13\xabd\ -\x88,#\xbbp\xe6\x94\x07\x0a\x0e\x8a\x80\xb0\xc9I6\ -\x84MN\xf2 \xf4Z\xbf\xad\xb9\x1a\x8d\xde\xa2\xa3\x87\ -Q2\x85\x80\xb6\x04\x0c\xb1a\x98\x8d\xa1i\x18fc\ -\xe8\x1a\x86\xd9\x18r\xc30\x17Ch\x9a\x92\x8fa\xd3\ -\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\ -b\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\ -\xf9\x186M\xc9\xc6\x90\x9a\xa6\xe4c\xd84%\x1f\xc3\ -\xa6)\xf9\x186M\xc9\xc7\xb0iJ6\x86\xa6iJ\ ->\x86MS\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\ -\xa6dch\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xf9\ -\x186M\xc9\xc7\xb0iJ6\x86\xaeiJ>\x86M\ -S\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6dc\ -\xe8\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xf9\x186M\ -\xc9\xc7\xb0iJ6\x86\xdc4%\x1f\xc3\xa6)\xf9\x18\ -6M\xc9\xc7\xb0iJ>\x86MS\xb21\x0cMS\ -\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6\xe4c\xd8\ -4%\x17Chq\xf4\xaf\x80a\xd3\x94|\x0c\x9b\xa6\ -\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\xb68\xfaW\xc0\ -\xb0iJ>\x86MS\xf21l\x9a\x92\x8fa\xd3\x94\ -l\x0c[\x1c\xfd+`\xd84%\x1f\xc3\xa6)\xf9\x18\ -6M\xc9\xc7\xb0iJ6\x86-\x8e\xfe\x150l\x9a\ -\x92\x8fa\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1b\xc3\ -\x16G\xff\x0a\x186M\xc9\xc7\xb0iJ>\x86MS\ -\xf21l\x9a\x92\x8da\x8b\xa3\x7f\x05\x0c\x9b\xa6\xe4c\ -\xd84%\x1f\xc3\xa6)\xf9\x186M\xc9\xc6\xb0\xc5\xd1\ -\xbf\x02\x86MS\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\ -\x9b\xa6dc\xd8\xe2\xe8_\x01\xc3\xa6)\xf9\x186M\ -\xc9\xc7\xb0iJ>\x86MS\xb21lq\xf4\xaf\x80\ -a\xd3\x94|\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\ -\xd9\x18\xb68\xfaW\xc0\xb0iJ>\x86MS\xf21\ -l\x9a\x92\x8fa\xd3\x94\x5c\x0c\xb1\xc5\xd1\xbf\x02\x86M\ -S\xf21l\x9a\x92\x8fa\xd3\x94|\x0c\x9b\xa6dc\ -\xd8\xe2\xe8_\x01\xc3\xa6)\xf9\x186M\xc9\xc7\xb0i\ -J>\x86MS\xb21lq\xf4\xaf\x80a\xd3\x94|\ -\x0c\x9b\xa6\xe4c\xd84%\x1f\xc3\xa6)\xd9\x18\xb68\ -\xfaW\xc0\xb0iJ>\x86MS\xf21l\x9a\x92\x8f\ -a\xd3\x94l\x0c[\x1c\xfd+`\xd84%\x1f\xc3\xa6\ -)\xf9\x186M\xc9\xc7\xb0\x1aMy\x7f>\xeb.7\ -\x0f\xbfnV\xb3\xf9\xad\xfc\x1b/'7\xdd\xec\xe3\xbc\ -\xbb{\xbc\xc3\xed\xe4\xaa\x13$Wk\xc1\xear\xf7\xb3\ -\xbf\xf7O\xab\xf5\xac[\xef\x8f\xb9\xdd\xcf\xe9\xb1\x95`\ -1\xdf~\x92\xb7\xdc\x97\xaf~\xfa\x9bP\xb2]-:\ -y\xc6i'G\x9e\xd4\xe5j=\x9f\xa5\x0f|\x98\xcf\ -\xba\xe4\x91'\xaa\xe3C>\xdd,}xs=\x99\xad\ -\xee.\x86\xd8;z7_\xca\x91\xd1\x9d\xdc\xfeZ\x8e\ -\x9b`_:\xe5\xba\x9b_]o\xe3\x13\x1c&\x91c\ -\x1dy\xc2\xec\xa9jl\xaeWw\xf1\x85.\x86\x97\x93\ -\xc5\xa1*<]\xf0\xef\xab\x95\x10\x05\xa0B\x80#:\ -\x0fu\xf7\xfeb8be\xb5\x03<8'\x1d\x0eG\ -L\x83b\x0eD/\xbe\x90\x5c\xc2\xbd\xf8*r\x01\xf4\ -/\x1d\xbc\x99\xdc\xcfo\xe6\x7f\xeffG\xcc\x1d\xee\xfd\ -a\xbd\x96\xfa6ZL>uB\xfc\x95\x0b\xda&\x11\ -\x9f^w\xd3\x9f\xbb\xf5O\xab\xc9z\x16Y\xd9\xd7\xba\ -\xab\xc7\x93'\xeb\xf9D\xae\xf2S\xb7\xb8\x18\xfe\xef\xff\ -\xec\xea\xa9\x1d\x1f\xa3\xf1\ -\x87\xd3.(~\x0f\xedq\xc7t\x02R|\x7f\xd0A\ -\x09\x0f\xa9w\xff\xfc\x97$?e\x0f/\xbc\xe4\xfe\xe8\ -\xc9{\xa2\xf2\xc6s\xd8\x17\xc6{\x0b\xfd\xe3\xf5\xea\xc3\ -rv\x5c\xf8\xb7\xd5|yZz3\x97\x87ZH-\ -\xdb\x8e\xcd\xbel6\x91F\xba^O>\x9d \xfa\xf4\ -$\x87\xd7\xdf\x1e\xfa\xba\x9b\xc9v=\xbf\xffF+\xa1\ -\x9e5\x22\x9f\xe9\xf8\xe7\xf0qd\x9d\x22&\x0cg\x80\ -\x0a]\x08\xc6\x7f\xbb\x87_\x08\xb8\x9dl\xaf\x9f\xae;\ -\x18\x08\xda\x7f\x19\x18\xa7\x1c\x1a <\xf3\xd2\x0d;6\ -\x06\x07\xff1\x00-\xac\xda\xe0\x06\xd7\x03\x94\xa6'B\ -a\xed\xe0\xe3 (@\x0c~\xf0/\x87\xafI\xe9\xfe\ -\x0c)&\xaf\x9cf\xc3\x1c\xaf\x01\xd2!3\xdax\xba\ -W\x1e<\x11\xd9\xe3k\x9f\x9e~\xb8\xfd\x7f\x0d\x8f\x1e\ -2\xd6\x89\xf8\xdc\xce\xb0?.\xdf\xd7\x8a7A\xe6A\ -\xc7\xcf\xaf\xfa\xad!\xbe\xe2\x15\x0a]i\xd6\x8f\x14\xce\ -\xb2bk\x91\xfd\xd9\x08\x94Am\x89O\x08^\x8b\xde\ -$0\xfaU\xdd\xcb?\xa6k\x99N\xb4\x9d\xbcD\xd4\ -\xe3\xd1\x13\xa2@\x09M\x8c\xbf\x82\xa8\xc3\xf5o's\ -y\xee\x9dJ\x8fo&k\xe9\xa77\x83\x87\x93\x06\xf1\ -I\x9eW\xb7\x88\x22\xea\xe0q\x04\xc7\x87\x1e5\x93\x94\ -E\x04\x03\xe1\xf8\xd8\x93XJ\x85\x86\xa8T\xc7\x07\xef\ -\xa3\xd0\xca\xb7\x0c\xf0\xc9\x97\xa2,9\xc5\x06)\xe0\xa1\ -\x8a\xd4Jc\xec9\xdcoD\xe3\x08\x13D\x0a%A\ -#\x1d\x87\x1c\x1e\x884*xg\xad\x09\xcf\x89$\xb1\ -b\xb4\xd0\xff\x8cH\x90\x96\xa9O\xc2h\x07\x83u,\ -W^\xbb\x10\xc7\x22\x9f\xd1\x07\x1c[\x17'=\xdc\x11\ -\x08;\x02>\xac\x17\xdf<3\xe6\x0dy6\xc7}\xc1\ -t\xbe\x9e.\xba\x17z\xcc\xd4\x05\xbc\xd6\xfa\xdb\xcfV\ -}\xab\x9ct\xe2_\xc2\xe7\x17\xd2\x17;}>\xceA\ -5\x18DC1\x0e\x16Pks\xc2Z4\x11\x0dJ\ -}\xf7\xe1D$\xd6\xd1\xa6;nY/\x82RL\xdb\ -z\x81\x19,\x8f\x99\x11?\xe7\x86Xy\xa9\x85\x80\x09\ -n\xd0\x06\x0e\xb6NrL\x81\xe4\xf8\x1e9\xa4\xd8\xcb\ -\x10*\xc1\x0dh:1>j\xe2\xc6\x15\xc8Mx\xce\ -\x0dZ\xc5h\xcc\xf1J\xd2#9Z9\x06o+m\ -8\x5c 9\xae\x91\xb3#\x07\x0a4\x06F:AN\ -\x08p\xe2\x1b\xf5D\x8e!\xb0\xa7\xd6]%\xe4\x88\x94\ -\x96H\x8eyN\x0e\x80r\x96\x9e\x19\xd1\x91\x1c\x02E\ -(Z\xe4\xeal9%\x1ak\xf0\x9c\x1c\xaf\x8cA\xc3\ -\x8e\x9f\x93\x03A\xac8\x198Q\x9d\xe4\x94h\xaci\ -\xd3g\xc7\xa2\x15{-|M\xecX\x19s\x978\xce\ -\xe9\xd9\xd2\x10M\x02\x87\xde\xf6:6R:F!U\ -\xdavJdG\xf7\x87\xa1\x02\x81\xb1Z\xf7z6\x01\ -,\x08bP);EZ\xd3\x98`\x87\x91\xbdKY\ -l\xd2;;]\xa7Q\x80EZl\xfeK\xd8Ag\ -=\xa8\xbc\x0f\xce\xf5\xcd\x02+\x83\xd1\x80:\xd4\ -IO\x89f\x81\xef\xb9|\x00\x89\xf2\x90\xc1\x049\x86\ -\xac\xa3:m6[\xa2Y\xc0\xfd\xb1\xa8Q\xc8\xda\x1b\ -N\xb0\x83\x8e\xf9\xf4@=\xec\x149S\x10\x12\xec\x88\ -Am)\xd5\xb1\x01[c\xeb\x9c*\xb0E:\xe82\ -&\xe8\xb1\xa4\x03\xf2\xd75\xe2\xb1%\x9a\x05\x96\x12\xec\ -x\x06\xd0\xbd\x05\x04\x94\x81\xaa\xbcD\xa5\x93\x05\x96\x8b\ -\x1c\xf1\xf4\xcc\x02\x12\x81\x89!}\x89\xc572\x0c\xbe\ -N\x9b\xcd\x95h\x16`\x9f\x1c\xa7,x\xa3S\xd1\x07\ -H\xd1l\xab\x93\x9d\x22=A\xfb\xe1\x07\xac(h\xe7\ -S\x0eS(=\x1b\xd59Y\xe0L\x91\x0eS}\x9b\ -\xda)\x1f\x9d\xdc\xfbk\xa3\xa8\x8c\x1c\xe1:mj\xe7\ -\x8a\xec\xda\xfa3\xa1A9\x91\x97>=\x18C\x10\xa4\ -\xbc\xd2\xd6S\xa2]\xd07\xda\xbc\x18m\x84}/\xf7\ -h\xb4q\xd0\xb6\xce\xb6\xe3K4\x0b\x00\x126[\x00\ -\xab)$\xbc>\x02is\xeacU\x0f;E\xce\x16\ -\xe8D\xdb\x09\xce'\xfc\xd9\x08\x94'\xa8t\xa2\xcd\x17\ -\xe9W\xe0\x12\xa3Q\x17\xbc\x87\x94\xea\xa0GS\xa9c\ -A\x91\x01\x22\xde7v\x1e\xd8)r\xae@\xa7\xd8\x01\ -C\x08_\x17;E\x06\x8d\x06\xb2\xfdxx@\xa5\xad\ -\xf5\xbe\x97\xe4\x03A9\xb2\x84u\xceS3\x16\xb9\x00\ -\xd7\xcf%!\xfc8\x0a\x960\xc1\x0fi\xf0\x95\xae\xf2\ -\xb0)r\x0d\xae\x9f\x88\x05HY\xeb8\xd5|\x80L\ -pu\x9a\xd5\x5c\xa4{AH8\x85\x92\x8a)\xcfM\ -\x8a\x1fm\xa1V\xf7\x0f\xe62\x97\xe1\x12\xb3\x06\xa4X\ -\xc6\xd0\xfdq)\xa2\xf4oh*%(\x14\xe9zH\ -\xa3\xd4R\x9c\xb6\x1e\xa1\xcf\x8fU\xc1\x83\xaft\xb1'\ -`\x993\xa2\x09\x01b\xc5\xc1\xe8\xbe\xa3\x01:i@\ -\x96*\xcd\x99\x13J4\x10(9+\xaam \x86\x04\ -=bx?\xcfcX\x0d=E:\x1a\xb8\x84}M\ -\xd2\x8d\x11c\xaa\xf9\x00\xb1\xad\xd4\xd5 \x14i \xf8\ -\xc4\xf8\xf4\xab\xe4\x07t\x919\x0ct\xda~\x0b\xda$\ -\xc6\xa7u\xf3S\xa2}\xe0z\xb9\x8dH\xac7\xd6\xc4\ -\x94\xca\x00\x12\xb8Nj\x8atA4\x09O\x10Ob\ -W\xf7\xbd\xa8@\x00\x93\x9fP';E\xa60\xb0\xa9\ - y4\xc1Q\x82\x1df\x82:\xbd\xa8\xa0\xc84\xa1\ -}\xef\xdd\xb8x\x00\x14\xa0\x9f`\x22z&\x1ao\xaa\ -\x9c\xb4\x86\x22\xf3\x84:\x9d\x08\xb9\xe2\xc8AjE\x8e\ -\x0c\xf8:sQB\x91\xb9(]?\xc7.(\xef|\ -?\xd4\x97P\x05\x8d\xe0L\x9d\xe4\x14\x19\xad\xe8\x12\x93\ -9\x8e\x03\xf5czb\xa2=\xb4V\xd7i\xb2\x15\x99\ -\xed\x10{Sm\x88\xd1U\xca\xf9\xbe\xecxy(C\ -u.fC\x91\xd9\x0e\x83K\xb1c\xf1do\xd6'\ -\xd7jp\xd6Wj\xb2\x15\x99\xed\xb0\xef\xba\x8bVA\ -\xdc\x03\x06\x12\xfe\x87(\xe5l\xeb\xcc\x1e^fN0\ -\xddO\x82\xcc\x865\xa4fql\xc0\x00u\xf6lE\ -\xe6\xa2\x84\xde\x1c\x1b+\x8f\x8c\x89\xc1ht2\xd0\x14\ -\xa8\xce\xa9\x82\x22sQz\x9f\xca\x9e\xe3\xc4\xfa7}\ -z\xa2k\xa2s\xbaN\x93\xba\xc8d\x94\x90\xf4\xa0B\ -K\xde\x99T\xdf\xc6\xc2\x9c\xaf\x93\x9e\x22\x95\xc7$\x16\ -\xb0Q\x11y\xb0\xfe\xeb\xe2\xa7\xd0|\x94\xa3T\x06~\ -\x19y\x06J\xad`\x83\x0b`*\xe5\xa7\xcc\x8c\x94\x89\ -\xad_~\x81\x1f\xcd2\xee\xa9S~\xcaLJ\xd9\xdf\ -\xfc\xe5ez\xacb\xb2\xd6\xd7\xb9@ZhZ\xcaQ\ -*Q\x0b\x13\x87\x84y`\x94\x01\xcf\x5c\xa7q]f\ -b\xca\xfe\xaec\xd2|\xb4\xb6\xfd\xed_\x90\x04\x1bM\ -\xbe\xce\x09\xd1B3S&Z\x8fU\xe0\xc5\xbcv\x09\ -~\xc0\xb9\xc0u\xf6n\xa5\xe6\xa6LX\xd7/\xcaO\ -\xdd\x04\x95\x99\x9d2\xc1\x8fSf\x97\x96%\xc1\x8f\x16\ -\xfb\xa0\xce\xcdb\xa1\xd4\xfc\x94\x89\x08\x12\x1f7/\x0f\ -\xfd$\x88\x882<%\xa4:}\x0d\x0a\xcdP\x99\xf4\ -\x7f\x07o\x5c\xe0\x04?\xd1\x83\xc7\xd6i\xbf\x15\x9a\xa4\ -21<\x0dJ\x07\xd4\xe8\x12\xfc\xe8\xb8\x89\x0f\xd6\xc9\ -O\x99i*\x13\x0e\xbcA@`\x86T\x80i\x08\xc1\ -\xf8:\xa7w\x8aLTi)1\x7f\x10\xe2\x0a\x1cq\ -j\xfa:@p\x95\x8eOm\xa1)\xa9\x12\x0d(\xae\ -/\x04NX\xd8F\x99`]\xa5\xf3\xd7E&\xab\xa4\ -QrC%\x8c\x19\x11\x13\xf4\xa0\xb1\xcf\xdc\x14\xab\xa1\ -\xa7\xc8l\x95\xd6%&x\xa4\x7f\xd3\x1cB\xbf\xf9x\ -\xb1\x0f\x9c\xa9t~\xb4\xc8|\x951\x00\xcb'\x1cF\ -5h\xed\xfb\xcb\xdbAyk\xb5\xab\xd3\xaf\xaa\xc8\x94\ -\x95F\xf7\xa7\xe0\xa4\x1f\x83\x10\xd7\xab\x12\x1e\xbd\x0e\xbd\ -\xd6u\xea\x8f+u\x06!\xb5\xc6\xe0\x14\xbb\x98\xba\xbe\ -\xd7\x84X\x19\x13\xa8\xd2%TW\xe8\x1c\x82O\x86i\ -\x1b\x91!\x1d\x12\x0c\x01X_\xe9(\xd5\x17:\x8b\xc0\ -\x89=\xcaX\x91c \x9f\xb0\x13\x82\xe1P\xe7\x96\xbf\ -\xe0\x0b\x9dG\xb0\x89\x99\x1eV\x96L*;\xaf\x97\xee\ -\xcf\xd6:\x95\xedM\xa9\xb9v\x12\xdd\x1c+\x072T\ -\xf5\x09[\x0e\xc4\xe4\xa9\x95\x22Wd\xe0\x5c\xc2\xd7\xca\ -)g\xd9\xa7\xc6B`\xad\xaf\xb1\x8b\x13\x13\xb5\xd8\x5c\ -;Ig8rA[\x93\xb0\x13\xc8\xb3\xae\xd2\xd9J\ -(*4\xdbN2\xe1\x9b\x88P\x8a\x1e@\xff\xace\ -\xd5C\x8f+\xd4\x97t\xe4\x12\xc1\xc1\x9et\xe8G8\ -\x0aCh\x80M\xa5}\x1c\x17\xeaM\x9a0\xe3~\x81\ -!\xb0\x5c\xe7\xcee\x0e\x8bL\xd9kG\xf0%MH\ -FB\x9a\xd1\xd7\xa9AE\xa6\xec\x8d+v\x093\xdb\ -)\xed\xbc\xd1\xa9\xf9\x9e\x10\x17\xf3\xb8N\x86L\xa1k\ -\x0e\xc9\xb4o\xac\x9dv!\x11h\xef\x8c3\xa6\xd26\ -\xe4\x8a\x9dMH\xfa\x96j\x1dR\x9eWA\x05b\x0c\ -uR\xc4\x85\x8eU\x93\x8d\x08\x88<\x86\x04A(\xbd\ -A\x9d;\xfe@\x91\xb6\x1c\xa4\x5cG\xe2X(\xa4\x9c\ -\xe7\xc5P\x00\xff,\xa0\xb8\x9e\x98\xfb27.\xc1\xc4\ -\x9c6)2\xc8\xb6\xe7\x1bG\xb1e\xd9ZC\x1f\x8b\ -4\xb5\x9dImN\xcf\x10\x10S\xed\xc7[\xf4un\ -\xcb\x04\x5c\xe6|\x5cj\x0fgMD\xfd\xd6#\xf2C\ -\xa4M\x95q\xf76\x149\x17\x17tH%\xe9\xd3\x81\ -\xfa\xeaCVy\x0f\xb6R\xf1)r\xbd\xae7\xc9\x13\ -\x94'c@\xa7\x9cz\xd0\xb2\xae2\xa5\x88\xb0S\xe4\ -\x085\xe5\xf3\xab\xbd\xb5}\x9fl\x8a3H\xf0\xc3\xe8\x13Y\xfa\ -\xea\xa6\xc7\x14\x9b\xa5\xaf\xbf\x81\xb0W\xe8\xd8\xf73\xc5\ -\x92S\xc6Z\x80:gH\x8b\xdc\xa9i\x97\xa5/\xc5\ -\x10[\xb4\x89M\x84\x9d\x02\x84:w:\xc3\x22\xb7j\ -zH\xd2\xd7\xef\xe5X\xf9\xb8\xa9LHts\xc1\x9a\ -J7\xa3\xc3\x22\xf7k\xda\xc5\xd5\x87\x04C\x81\x9c3\ -.\xc1\x10\xc7}\xdb\xea\x9cG(r\xc7\xa6\x87,}\ -.a*h\xd4\xcf\x02\x15\x1e\xc3\x7f\x00eDW)\ -EeF0\xf4g\x12bfr\xa7M\xd2\x96\x03\x07\ -\x95\xae\xd4\x15\xb9e\x13$2\xfe#\xa98O\x1aR\ -=\x5c@\xf2T)?\x5ch\xda\x03\x9dp\xb5b\xe9\ -\x90\xfb\x89]\x043\x0b\x8e\xc2/\x1b\xda\xf1\xda\x09z\ -\x222Go:~\xc7:\xfe9}q\x10\x0c?\xeb\ -\xado\xe6\xc2\xc5\xbe\xf4\x09\xd1\xe3\xe7\x92\xb7\xfc\xcb\x00\ -\x95\xd7\x80\xce\x9f\xb1\xe2\x80VdU\x8a\x02\x04\xb93\ -\x9e\x19\x1b#\xa0\xd9\xdb\x81\x89\xda\x1a`WD^N\ -\xa4\x14`\xc6\xc9 \xe3\xf0\xaa\xef\xcf\xafv\xbf=\xfd\ -\xbf\xed\xee\xb7\x8f_\xbb\xbfY\x8cc\xbd\x90\x17\xbf]\ -wR\x7f>v\xfb+\xfe\xca\xea\x0a\xa29\xe0\xff\x11\ -\xd5\xf5\x1d\x82\xf3\x9e?\xbbrj\xe5\xbd\xb5\x87\x01\xb1\ -\xd4\x98\x91\xe1\x18sy\x18\x81=\x8e\xca<\x1e\xe6\x0b\ -#\x8a\x11!c\xd1\xc8\xf0\x0e\x1f\x80|\x7f\xbe\xf9\x18\ -\xe1\xfb?x\x12\xa3W\ -\x00\x00\x07$\ -\x00\ -\x00\x1b\xd3x\xda\xedYY\x8f\xdbF\x12~\x0f\x90\xff\ -@\xd0/\x1e,\xd9\xec\xfb\x90\xa5\x09v\xe1\x0d\xb2\x80\ -\xf3\x92d\x8f\xecK\xc0![\x1af(\xb6@R\xa3\ -\x19\xff\xfa-\x92\xe2!\x89r\x9c\x8c\xd7@v\xa3\xc1\ -\xd8\xec\xaab\x1f\xdfWU]\xa5Y~\xf5\xb4\xcd\xbd\ -G[V\x99+V>A\xd8\xf7l\x91\xb84+6\ -+\xff\xef?|\x1dj\xdf\xab\xea\xb8H\xe3\xdc\x15v\ -\xe5\x17\xce\xff\xea\xf6\xcb/\x96\xd5\xe3\xe6\xcb/<\xcf\ -\x83\xd7\x8bj\x91&+\xff\xbe\xaew\x8b(\xda\xed\xcb\ -\x1c\xb9r\x13\xa5Ids\xbb\xb5E]E\x04\x91\xc8\ -\x9f\xd8'\xa3}R\xda\xb8\xce\x1em\xe2\xb6[WT\ -\xed\xabE\xf5jj]\xa6\xeb\xc1\xfcp8\xa0\x03k\ -\xad\x881&\xc24\xa24\x04\x8b\xb0z.\xea\xf8)\ -<{\x17\xf69\xf7.\xc5\x18G\xa0\x9b\x98~\xa4\xd9\ -\xa2\x02pv\xf0;\xd8\xf7\x02T\xb9}\x99\xd85\xbc\ -hQa\xeb\xe8\xed\x0fo\x07e\x88QZ\xa7\xd3y\ -\xb2\xe2\xa1J\xe2\x9d=Y\xb7\x17v0\xc4[[\xed\ -\xe2\xc4VQ/\xef&8di}\xbf\xf2\xb9\xee\x86\ -\xf76\xdb\xdc\xd7\xe3\xf81\xb3\x87\xbf\xb8\xa7\x95\x8f=\ -\xecq\xed\xf5\xf2,]\xf9p\x18z\xb4\x1aI'G\ -\xfdq\x91\xc5\xa0\xc2\xc8P\xc4\xbd\xd7\xfb\xe2\xa1p\x87\ -\xe2\xa6\xb3\xeb\xcf\xb4H]\xd2\xecq\xe5\x7f\xff\xd7\x9f\ -\xdeeUm\x0b\xd4\x80u\xdbX-\xb7\xb6\x8e\xd3\xb8\ -\x8e\xdbW\xba\xc5{\x11\xa1\x9d\x0dX\x01s\x8b\xef\xde\ -~}\x1c\x82 I\x16\xfft\xe5C?\x86Oc\x12\ -\xdf\xb9=\x9c\xd0\xbf\x1d\xe5\xcb4Y\x00\xd6\xdb\xb8\xbe\ -\xcd\xb6\xf1\xc66<\xfd\x09\xa0]F\xa3\xe2\xd4\xba~\ -\xde\xd9\xc9\xbc\xdd\xcc\xa5\xedh\x9bu\xe04\xd9f\xcd\ -[\xd1\xf7u\x96\xe7\x7fk\x96\xf1\xbd\xe8|\xda\xac\xce\ -\xedm\xbbl\xf78\x9c%:\x1e\xa6?l4=\xed\ -2\xea\xe1\xe8\x86\xa9]W\x13\xac\x9a!\xc1\x03N\xdb\ -\xb8|\xb0\xe5\xb0\xf0@UU\xbb\xe4\xa1\xb1\xffsY\ -\xba\x03y\x07\xb1Z\xd6\xfe`\xe7\xca\x0c\x02p\xe5\xc7\ -\xfb\xda\x8d\xd2\xd2\xae\x7fl\xc8\xc5'\xa2\x7f\x9d\x89\xae\ -\xcfZ\xd5\xcf9\x00\xe6\xc0O\xd6\xb9;,\x1e\xb3*\ -\xbb\xcb\xad\x7f\xb9\xbd\xacj7\xb8\xf2\xebroG\xf6\ -\x96\xbb\xb8\xbe\x9fP\xd1,\xd5\x88\xb80\xda\x9f\xc8A\ -\xfc\xad\x07\x9b\x0a\xe0\xd7{\xe7\x09x\x0aE\xfb\x18\x12\ -\x8a\xc4D\xdcI{\xd3\xf7\xdet\x96\xe3v\xd7@a\ -X\xees\xbb\xb0\x8f\xb6pi\xfa\xa6\xaaK\xf7`\x17\ -\xafp\xfb9\x0e\xc36\xba\x16\x90\x0aw\xf5t\x96\xba\ -\x8c\x8b\xaa\xf1+\x08\xa2$\xce\xedk\x8c\xf4M'\xcd\ -\xe3\xda\xbe\xee6t3\xfa\x07\x10\xdc\x92vd\xbb!\ -\xb4{\x1c\xe2\xa7\x09\x9e\xb4\x89\xd6\xe32;\xf0\xaf\xc4\ -\xe5\xae\x5c\xf9\xaf\xd6\xed\xa7\xdf\xc0\x9d+S[\xf6:\ -\xd9~Nu\x0e\x12\x05\xf8*\x84s/ww?\xdb\ -\xa4\xae]na\x8f\x8d\x83\x93\x81\xdcM\x09g\x9cU\ -\xec\xb3\xd4\xcej\x06J\x9bM\x0e\x8b\xcd\xab\xab\xfb8\ -u\x87\x95O/\xb4\x87\xac\x00MxL`DKv\ -\xcd\xa4Oj\x04S\xe1O\xe2b\xc0lp\x94\xea\xde\ -\x1d\x9a\x03\x01\xc3q^\xd9\x8b\x09\xdf;\x07\x9c1\xc4\ -4\xa6X\x8b\x0b}\x02\x99\x12\xd23!R\x1a\xc1\xc8\ -\xa5\x1e\xce\xc9\x0cbLJe\xaem\x17\xe6\x10\xea\x9a\ -\x12&\xa0W\x95\xdb\xf8)\xdbf\xefm:\xa1n\x5c\ -{_\x96\x10\xc0a\x1e?[`~c0\xe9\x1dl\ -\xb9\x99\xa0\xb2\xe1D\x8c\xc9bs\x12\xc3\x1b.8\xff\ -\x98\xd8c\xf82\xf6\x02\xec}\xd3\xdc!\xffh\xfe\xf9\ -\x06\xee\x93\x7fOm\xc6}\xba\xa2\x00gse\x08;\ -~\x8c\xeb}i'\xceq\x16\x84\x8b\x02J\x89i\x1e\ -\x9dl\xf8\xb8\xe5\xe6\x9c\xf3\xb1\x07i\xbd\xcc\x9e^C\ -x*f\xa8\xe1\x01l1\x18G\x0a\xa2\xd2\xc0\x81I\ -\xc00R\x8c\x1a\xccnNn\x8d\xcd\xc9\x0d\xd0.\xa6\ -\x8d\xf0O\xa4\x97\xcba$%\xe7\x98s\xd1\xae7\x19\ -\x86\x06QA\x14g*\x08)\xa2\x8a(X\xfed\xc9\ -K\xc8\xbd\xe9%\x0a\x99\xc86w\x0c\x14 I\xe2\x9f\ -[MP{ee\xf3\xf3\xe6z\x1eS\x84\xa9D\x9f\ -\xe61\x8a\x94a\x5c\x199\xc8\xf3\x0c\xa8\x8aw\x8b\xbb\ -}]Oe?\xbb\xacX\xc0}g\xcb^\xda\x0er\ -\xf0\xcez\xc1{Y\x1aCt\x97e\xfc\xdc\xb2\xd8K\ -\x8f\x09aA\xce\x0f\xd0\xdc\xfa^((2\x02\x1b\xc2\ -!Os\xc9\x15\xc1\xcc3\x88SJq\x8b \xc7\x94\ -\x8d\xb1u\xe1\x99D]\xcc\xfbK\x9ewrK_a\ -\xe0\x7f\x04[\x8e(8\xa2\x94AH82\x8aq#\ -\x00\x5c&4\xc1&h\x1f\xb0\xd1\xf4\x03\xe0\xb2\xff\x06\ -\xb8\xffO\xee\xcd\x08\xd2\x0aS\x09)\x80($(\xa7\ -Xy\xe0\xd6\x1as\xa2u@\x08\xe2\x5c\xd3\x19\x9cG\ -\x0e\xc4\x1f\x0e~\x0d]\x0e\xbb\xd0T2\x1e\x84\x0c2\ -\x85\x04w\xe6\x1eT[\x0a.k%\x03\xd2\xe5\xf9\x0f\ -`\xab~-\xb6\x1f\xe7\xcb\xe7\x0c\xd8<\xcfv\x95\x9d\ -'a8\xe3\x9b\x8e\x0e)1^\xaf;:Nu\xb3\ -\xecL\xe1\x1a\xa8\xd1\xc4P&\xd8\x05\x0d\xa5\xdb\x17\xe9\ -'\xa4a\x84\x92\xc9P\x86\x17n\xdc\x16P\x90\x86\x04\ -\xdc\x89\x9a_h\xa1\xfa\x91\xc8H\x03\xb5\xd7\x05\x13\xe5\ -SS\x99\x11\xc1\xb4\xa2\x17!P6\x85\x17\xc2\xc2(\ -\x08\xad\x97\xc1m\x8c\x10/\x82\x1b\xcaG\xa2\x0d\xa1T\ -}^\xb8\xc9,\xd8\x14r\x0bh\x19\x99\x03[!n\ -\x98\xa4B\xce\x83\x8d%\x84\x92\x94s`\xc3-\xad8\ -L\xfcB\xb0\x19\xc3X\xe3\x17\x81\xad\x0d6\x12\x00\xff\ -\xcc\xbe=\x0b6\xa3Hr)\x14\x9d\x03\xbbI\xf8T\ -\x0a*\xc4\x1c\xda\x1cqB\x88!\xb3\xae\x0d\xf7\xb62\ -\x820\xfe2\xb4\xd5\x9a\xc6/tm\x0e%34\x94\ -\x9f\xd7\xb5\xe7\xb3\x08CJ2I\xc8<\xd6m}c\ -\xcc\x15\xcf\x16\x1an\xab+Y\x84k\xac\x19e/\x83\ -Z\x08\x8cS\xfe\xc2,\xc2\x8c\xd6\x86~^\xc7\xc6\xb3\ -`s\x80E`\xc1\xe7\x1d\x1b\x82P\x0b\xa1\xaf\x81m\ -\xa0\xeb\xc1d\x1el\x8d\x81\x08\xa6\xcf\xbe*\x8b6\xbf\ -\xd4\x87\x9d_\x1e\x93>l\xfc\x9e\x05#\xa0\xc1\x00\x9f\ -,\x80\xae\x1d\x0a\x03h#\x18\xfdd\x1d\xd7\xaf\xac\x0d\ -z\x98\xb5\xd0\xf3\xd5\x8b\x84\xec\xc1\x0c\xdcaP\x1b\x1a\ -\xd4\xb4\x8c\xd4K<\x8e\x08\xf4\x8c\x98\x04\x1a\x09\x0e\xb5\ -\xa3\xf4\x14\xc2\x06J\xf6\x00\xf2\x09\x83\xec\x0d\x15\x0d4\ -\xdfT#\xca$\xbe\xe4\xe0\xbc\x9b\xfe@]g\x98I\ -\xe3\xe4\xd4\x0f12\x8c\x10a\x0c\xd9=\x9dWv'\ -\x8e8_\xda\x8dN\xf7\xc9:\x81\xdf\x0e\xfbe=r\ -\xec\x8b\x14\xd2\xe0\xde\xb8\xe9\x8b$\x82^\x88H\x0e\xc8\ -C\x82Q\x0c\x0b\x0d\xc8CE\x0e8k\x10AJ\x81\ -\xfa# \x0cIh\x87\x18\xa3\x1eF\x8cs\xc6I@\ -)\x14\xf4\x18cC\xff\xe0\xe0:\x07\xf2\x0a\x07\x90a\ -\x98\xe2\x94\xb4\xbd)\xe6\x8c\x80\xa7'\x1eEp\xb5c\ -M\x03\x81\xa4\x90\x94J\x09\x22(<$1M9\x0f\ -\xb8p\xa1\x19p\x00\xa5\x88b\xd0@A\x94@=\xc3\ -(\xff]p0\xcdt\xe3\xf3\xe4i\xcc}\xb3\x19\x8e\ - \xf0ZE5$8* \x0b+j\xcc\x8d\x7f\xf6\ -\x9d\x1e\xe1C\xdd\xd0\xcd\xbcl\xfe\x00\x02\xff\xff\x07\x13\ -\xd8\x93\xea\ -\x00\x00\x08B\ +indow-y=\x2225\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22g83\ +3\x22\x0a inkscape\ +:pagecheckerboar\ +d=\x220\x22\x0a inksc\ +ape:showpageshad\ +ow=\x222\x22\x0a inks\ +cape:deskcolor=\x22\ +#d1d1d1\x22 />\x0a \x0a \ +\x0a \x0a \ + \x0a \x0a <\ +path\x0a \ +d=\x22m 112.27805,4\ +08.44003 h 264.5\ +8966 c 8.39574,0\ + 15.18643,-6.790\ +68 15.18643,-15.\ +18644 V 128.7874\ + c 0,-8.39575 -6\ +.79069,-15.18643\ + -15.18643,-15.1\ +8643 H 112.27805\ + c -8.39576,0 -1\ +5.186441,6.79068\ + -15.186441,15.1\ +8643 v 264.58966\ + c 0.12347,8.395\ +75 6.914151,15.0\ +6297 15.186441,1\ +5.06297 z M 127.\ +46448,143.97384 \ +H 361.80473 V 37\ +8.19063 H 127.46\ +448 Z\x22\x0a \ + id=\x22path831\x22\x0a \ + style=\ +\x22fill:#37c8ab;st\ +roke-width:1.234\ +67\x22 />\x0a \x0a \x0a <\ +g\x0a id=\x22g83\ +7\x22 />\x0a \ +\x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \x0a\ + \x0a\x0a\ +\x00\x00(a\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22 />\x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a\x0d\ -\x0a\ -\x00\x00\x0b\xcf\ -\x00\ -\x00g\xbdx\xda\xed]mo\xe3\xc6\x11\xfe^ \xff\ -\x81P>$AEjw\xf6ut\xf6\x05(\x82\x14\ -\x05Z\xa0hS\xb4\xdf\x02\x1eE\xdb\xca\xc9\xa2A\xd1\ -\xe7s\xfeZ\xffC\x7fS\x9f\xa5D\x89\xbb\xf6%q\ -\x8a\x22\x80)\x1d\x02K\xb3\xcb}yv\xe6\xd9\x99\xe1\ -\x92\xb9\xf8\xfa\xe3\xed&\xfbP\xb7\xbbu\xb3\xbd\x9c\xc9\ -B\xcc\xb2z[5\xab\xf5\xf6\xfar\xf6\x8f\xef\xbe\xcd\ -\xfd,\xdbu\xe5vUn\x9am}9\xdb6\xb3\xaf\ -\xdf~\xf6\xbb\x8b\xdd\x87\xeb\xcf~\x97e\xd9\xc3z\xd5\ -\xdd\x5c\xce\xb4\x9f\xf5?o\xea\xf5\xf5Mw\xfa\xfda\ -]?\xfc\xa1\xf9x9\x13\x99\xc8\xb4\xcf\x06\xf9zu\ -9C\x13t\xa8u\xea_\x1e\xca\xb7\xefwUyW\ -/\xc7E\xd9\x97\x95\xf55Q\xa5\xbc\x9bg$H\xe6\ -\xc2\xe4\xa4\xbe\xda_\xb3\xc3\xa8\xef\xf0\xdfr\xd5T\xdb\ -\xf2\x16\x83-\xbb\xea\xfbn\xf7}\xb5\xb9\xdfuu\x8b\ -)\x15\xe8s_\x19\xd3\xde\xee\x96C7\x97\xb3\x9b\xae\ -\xbb[.\x16\x0f\x0f\x0f\xc5 ,\x9a\xf6z\x11\x1a\xda\ -\xdd\x95U\xbd[\x0c\xf2q\x03C\x9f\xc7\x06\x06A\xb1\ -k\xee\xdb\xaa\xbeB\x1bu\xb1\xad\xbb\xc57\xdf}s\ -,\xccE\xb1\xeaV\xa3v\xa2\xfe\x1fT\xdf3\x09!\ -\x16\xc9x\xf1\xf3\x97VmWW\xcfU\x95\xcc\xbc\x10\ -\xb4 \xcaQ#\xdf=n\xbb\xf2c\xbe\xdd}>\xbe\ -\xb6\xaa\x8e\x97Vm]v\xeb\x0fu\xd5\xdc\xde6\xdb\ -\xdd\x1e\x93\xb8\xf6\xeaT\xfb\xee\xbe\xdd\xf4UV\xd5\xa2\ -\xde\xd4\xb7\xf5\xb6\xdb-\xb0r\x8b\xd9\xdbp\xc1\xc5m\ -\xdd\x95\xab\xb2+\xfb\xab\xf7Z0\x88$\xed\xeb\xa0\x16\ -\x06\xb6\xfc\xdb7\xdf\x1e~BPU\xcb\x7f6\xed\xfb\ -\xe17>\xa1J\xf9\xae\xb9\x87\xaa\xcd\xde\x9e\xe4\x17\xab\ -j\x09\xc8o\xcb\xee\xed\xfa\xb6\xbc\xae\x03(\xbf\xc7(\ -/\x16\xa7\x82\xb8v\xf7xW\x8f\xda\xdd\xb7\xdc\xd6\xfb\ -\xd5{v^\xab\xeav\x1d\xaeZ\xfc\xbd[o6\x7f\ -\x0a\xdd\xcc\xb2E\xda\xec\xba\xdb\xd4#\xe9\xc5\xe20\x87\ -a\x8e\x8b\xf1$/\x16\x03\x0a\xfb\x9f\xab\xfaj7\x82\ -(\xfc\x94b\xe8\xe4\xe2\xa8\xe7A7W\xc1\xc2\x0eu\ -\xef0\x94\xaa\xd94\xed\xe5\xec\xf3\xab\xfe3;\x94\xbc\ -k\xdaU\xdd\x0ee\xb6\xff\xc4e\x0dt\x1c\xd3\x82\x9d\ -\x0d\xf2\xe6\xdd\x0fu\xd5u\xcd\xa6n\xcbm\xc0\x02C\ -8\x14]\xb7\xb0\xfag\x0b\xee\xd7\xab\xfa\xd9\x92\xa3A\ -\x87A\x1e;{\xbexwS\xae\x9a\x87\xcb\x19=)\ -}XoQ\x92\x1fHGz\xe3?Ue \x22)\ -\x8c\x9b\x8d\xb0\x02\xd7=n\xb0\ -\xc6W\x0dz\xe8\xbf/\xb7\xc1\xc26oz\xc9C\xbf\ -\x00\x91h\x87q.\xb5*\x88\xb4\xbe\xfb\xf8f\xb3\xde\ -\xd6\x87uZ\xca\x82\xcc\xbe\xd2Uy\xbb\xde<.w\ -\xe5v\x97\xef@\xdaWo6u\x07\xf6\xce\x03\x0b\x83\ -\xc2\x97\x02\x97>@g#\xc1\x15Lq\x09\xa5wW\ -T\xf6?\xf2\x83\x8e-\xe5\x9b]\xd76\xef\xc3\xe0\xb6\ -\xf5\xe1\xfb^\x81\xd0\xa9\xf0\xc2\xca\xb1zt\xf5\xc7N\ -\x1b\xd29\x0f\xd2\x0e\xaa\xbc\x0b\xd4\x81\xc2\xf0uSv\ -\xf5\x97\xba`\xcdN;\x9a\xe7Rcq\xa1\x1a\xee\xab\ -#\x7f\xdd\x95\xdd\xcd\x91\x0e\x02\xc5e\xca\x17,\xb5\xd3\ -v\xae\xb8`E\xde\xa8\x0c\x9b\x80\xb1\x92\xa5\x9b\xe3\x9b\ -s^(\xcer\x0cI9\xe5\xed\x1c\x22\xa5\xbd\xd4Y\ -\x15\x84\xd2:a<\x84\xdej\xed}\x96\xa3O+I\ -\xf2\x1c\xc0\xb1u\x8a\x82\xc8\x18Aj,\x12\x85t\xe4\ -\xd9\xcdE\xf8\xae\xb4ql\xf6\xdf\x995\x1a\x08={\ -\x92d\xfb\xd1h\x15\x16&\xc8\x8c\xf4\x96{\xd9\xbe?\ -\xcc\x12\x8d[\xe1\xfa\x11\xf6\xdf S\x85 \xe3\x84\xcf\ -\xfe\x9c\x91-\x0c\xa3u='\xc2Jj\xe1l\x188\ -\xbekg-\xea\xdaB\x18\xa9\xa5\xc9r](\x0bS\ -Q\xf3\x9c\x81\x9bP\xdaf(E;R\xb8 S\x8e\ -\xfb\xbeGH\xb0\x11\xac\x5ch\xce*\xb4\xe6\xe7\x842\ -i4D0;!\xa5\xb3\xf3\xa1,\xdbd\xa2\x10a\ -*\xf3\xa1\x05\x8c\xe40\xcd~r*\x8cZfh\x03\ -\x0b\xe8N\x18h\x88\xb4E\xf7c\x11\xb0\x94\x82\xbc\x02\ -jT8RRY\xb4\xcb\x1a#\xf2\x99B\x9f\xc2k\ -\x9e\xeb\x02:#\xa5\x0aH\xe8B*\x9a\x87?\x8c\xb5\ -\xed\xd7o\x00\x0a\xf50DR:\xcb}\xe1\xa5s\x18\ -\xb74@\xdb\x19\x83\xb9H\x00\xaf\xad3\x189\xd4\x05\ -2\x11fsP\xd2\x13\x0ca6\xbdn\x98~6\x9e\ -\x05\xa1\x92R\xcc\xc6\x06\x89\x0dH\x13\x86\xab\x1c\xaaQ\ -\x10\x1d\xae\xc4r\xb0\xf0La9\x0c\x01,5L!\ -\xac0z\x17\xca\x90\xcb\x1c\x9ap\x9a\xb1B\xd2aD\ -,\x85\xc28l\xa1\xb0B\x18\x08\x84\xd2\x0a\x5c\xd4\x8f\ -\x84\x0cc\x09O\xeazT\x99\x03ral\x86\x19\xa0\ -\x8f%\xe0K\xaft\x0fj\x7f\xbd>\x8e\xd2\x86\x8e\x8c\ -b,\xeaIp\xaa\xb1\xcf`\x97\x11\xfe\ -\xb8\xf6\xc1\x95v\xf0R\x847'\xbf\xbf\x0d~\xef\xe4\ -p:\xa9x\x8f\x94\x07G\x19\xa7\xcc\x18)\x0b3\x83\ -_j\xf5\xc4\x91\xb2\x09RpS\xe0k\xc6:\xc5\x0c\ -\xab\x9f\xbaJ\xb9\x08(\x86\xa1)\x84)1PN8\ -aOA\xf0D\x912\x09Mi\x11\x9c\xfa1R\x0c\ -\xeab2f\xea\xc6\xa7Lb}\x1a!\x80V1T\ -^ \xf0\x90S7?K\x89\xfdy\xebN\x8eh@\ -\xca\x17\x10\xe03q\xa0x\x8c\x13!\xf2\x95\xday>\ -\x13\xfa\x13\xa0d\xa2P\x06\x11&G>\x02b~\xa7\ -\x8d\x998N\xa9\xd7IV\x99\x14&\xcf\x88\x00\xe5\xd4\ -=\x04\x91h\x14kA6\xe2(\x03\xa4|\xc8\xf9M\ -\x9d\xa4b\x07\xdd\x84\x1c\x98\xd51\x9b\xc377V\xf1\ -\xd4\xf7=\x91\x98\x9f\x94~t_g\xafT\xd2\xc1E\ -\xd0/'*fc^\x93\x8b\x10\x073\xbap\xde\x12\ -E\xc1\x8c\x92\xa0t\xe1=O\x1c+\x95l\x7f\x16\x81\ -\x1f\x06L\x09V@OI\x9a\xba^\x9dn/\x1e\xb0\ -\x92d\xbd\x8a|*E\x85\x12V\xdb\xa9\xdb\xa0K\xe2\ -d\xb8\x0bR2\xeb\x04+!\x9d\x98\xba\x09\x9a\xd8U\ -\xc7&(\xbdU.r\xad\x94\x82\xff\xce\xe4\xa6\xaeV\ -\xca$n\xa8\xed\xef\x1f\xfaX\xaf46G#\xccy\ -\x1f\xccS\xa7\x01\xcc4:\xe8q\xd0,)\x88&\xef\ -4p\x9e&\x16\x04\x13\xab3\xb7?\x130'iu\ -p\xbb\xd7J\xd9\x08+S\xc0\x00\x8d\x9c:\xb9\xa7\xf9\ -b\xc0\xa2\xa5\x8do\xd6\x00+\x12\x02\xfb\xe3\xd4}\x06\ -\xf1$e\xec$\xfc\xab\xd8\xc1\x12\x00\xcbk\xf6S\xe7\ -+\x95\xb8\x0d*\x1cdq\x9eRrw\xda\xf0\xd45\ -\xcb\x8a\x84\xddu\xe1\xd9r\xacY\xc4\x85\xf6F\xfc\x8a\ -;\x81\xaf\x0f\xac\x04.\xa8\x11\xe0\x22\x93F\x85\xc6i\ -o\xcfpQ\x12\x18r\xe1\xbc\x90\x89\xf3\x00\xe6gi\ -\xf9\xac]9=\x09x\x04\x88+\xcee)[8c\ -\xce\xba\xf5\xc4\x81\xa0B\x87#\x84\xa9n\xb1aOg\ -\xb4\x9e\x9e\xf8P\xf8$\xa9?\x07\xa1V\xfa\xa5\xb7\xe7\ -\xcbRk!^U\x9a4>\xf5A\xa6p,8>\ -\xf5\x81\x08\xdb[g\x1cO\x1c-\x85\xb0'J\x95\x92\ -\x0bgdLr\x0b,\xe4O\xbd\x10r\xea\xba\x95\xfb\ -\xd8\x85\x00ZRI\x13[b8\x13\xa2\x94\xb4SG\ -\xcb\xe1_|\xbb\xde\x17$\xadu*AKj\x85\x8d\ -r\xe2h\x99\x9cc\x96\xa7\x90\x04\x94\x22\xb1D_h\ -D>n\xea\xba\x152\xa6O\x88\x8b\x84\xf26V.\ -.H#V\xec\x8b>\xe1\ -y\x11\x9e<\x93\x09Z\x8a\xac\xe7\xa9\xfb\xa7!y\x1a\ -\x9b\x22\x94\xcb\x91\x12qF\x10\xc1\xb6R\xe6\xe5g\xb4\ -^\x1dq)pW\x94m&](O:>\xa7\x15\ -\x02H!i\xf2\xd1O\x1fZ\x8b$X\x04qY\x1f\ -em\xa4.\xac\x94\xee\xc5y\x9bW\x09W\x92\x8b\x08\ -O\xfcj\xaf\x88\x13s\xe4\xf0d.\x9d\x01#\x84\x8c\ -6q%\x9c\xd7\xc9Y$\xd0=I\xaf\xfcY\xc3B\ -\x1a5q\xec\xb1?z2:\x06L\x16\x1e\xde\x84\xf7\ -g\xc0\x82C\x11s\x98*\xb4\xf3\xd2\x9a\x040\xe1\xad\ -9\x9bd\x9fMM2\x84\xbe\x90\xc2K\x9b\xe0\xa5\x9c\ -\xf1\xfe\xa5\x91\xe3J\x1b\xf3\xaa\x02mJ\x90R$\x93\ -'\xe8`\xa0>\xbc~@N\x1d\xaa\xc4\x0c\xb9\xf0\x8e\ -\x95\xe6\x04+\xe5\x98\xbd\x9e8Vi\x8e\x9e\x0bkI\ -%\x11#\xe2k0\x96\xb2\x13\xc7\xca\xc5\xfb\xa1\xa2B\ -\x13k\x93\xea\x15vHg\xa6NW&\x89~\x1c\x9c\ --\xa9|r \x82\x9cr\xc4S\xa7\xab\x14+\x0eo\ -q\xb1\xf19\xca3X\xc7\x04j\x9c\x10\x94\x85\xf4\xd2\ -\xc4\xcf\xfd\x86\xbc\x97\x15L\x13\xc7\x8a\xe3l\xa0\xc2\x80\ -\x1d\xeb\xf8\xd9C@%\xb4\xf2~\xea\xdc.\x93\xe0\x90\ -\x0a\xc9Zi\x9d\x9c\x0dt$\xcc\x8b\xcf\x06\xbe6\xac\ -\x92G\xef\xfb,\xb3sq\xaa&\x1c\xdfbV\xa77\ -\x17L\xd5g\x10\x89b!^V4~\x84\xec\xb1\xcf\ -\x0d\x02>MSwFC\xd64\xbd\xf5\xcaR\x91I\ -\xd9=\x1c\xba\x99|\x98\x83\x08:\xbd\xdb\xa3\x15\xe9$\ -\xa1\xa5\x0b\xab\x95{\xf9\xb1@k_\x13V:}\x01\ -\x86\xf1\xa3\xac\xfb\x01(\x02\xdf\x93\x9a8R*!\xf7\ -\xf0JAV6N4Pa\x89\x7f\xcda\xd3\xd7\x85\ -\x95}\xf2P\x8fc\xef\xd9%z\xe5\x05>f\xe2X\ -\xb9D\xaf\xe0`!\x1e\x8c_\xadB\xa6\x7fb\xf3W\ -\xbc2\xe4ua\x95\xdci\x0d\x87gHHm\xd3d\ -\x1f\x19KS\xb7AD\xcf.y\x15Mxoj\xfc\ -\x08\xd4\x19\xacS\xf4\xac\x93\xbb\xd2\xc2:i9\x8d\x09\ -\x8d\xd1v\xeaf\x98\x9e\x03|\x16+P\x96\xe7\xc93\ -\x96LR\xee\xb20\xcaH\x9d\xa6\x1a\xbc\x91dh\xe2\ -Xa/\xf4\x89;*\x95\xe6'y\x19\xedy\x94\xd7\ -\x9a\xaa\xdb\x80\xf8\xd9'7U\x99\xb5'wvH\x9f\ -\x0d\xa0}\xfa\xf2\xd6\xf0rd\x99P\x96\xb5^*9\ -\xf5\xcdP<\x09\x0b\x8de\x91$\x1bd\xc1\xce\xdb\xe7\ -\x9e\xb8\xb8\x08\xff[\x13\xfc\xfd/\xad+\x06\xd3\ -\x00\x00\x09\xba\ +indow-maximized=\ +\x221\x22\x0a inkscap\ +e:current-layer=\ +\x22svg6\x22\x0a inks\ +cape:pagechecker\ +board=\x220\x22 />\x0a <\ +path\x0a style=\ +\x22fill:#37c8ab;fi\ +ll-opacity:1;str\ +oke-width:0.0679\ +173\x22\x0a d=\x22M 3\ +.0617407,44.6410\ +32 C 2.3120712,4\ +4.489468 1.80044\ +08,43.918187 1.7\ +903834,43.221449\ + c -0.00475,-0.3\ +15441 0.030818,-\ +0.424415 0.23502\ +85,-0.723853 0.1\ +723954,-0.252793\ + 0.323261,-0.387\ +001 0.5333455,-0\ +.474445 0.282964\ +9,-0.117782 1.02\ +00745,-0.12198 2\ +1.6320716,-0.123\ +191 l 21.339129,\ +-0.0014 0.305915\ +,0.13935 c 0.375\ +203,0.170914 0.6\ +48986,0.496459 0\ +.760779,0.90463 \ +0.109833,0.40100\ +8 0.07707,0.6187\ +38 -0.147328,0.9\ +79037 -0.218499,\ +0.350836 -0.6776\ +83,0.643949 -1.1\ +61862,0.741654 -\ +0.535806,0.10812\ +9 -41.6881069,0.\ +08635 -42.225721\ +3,-0.02237 z m 2\ +.1150144,-5.4166\ +5 C 4.8178042,39\ +.124701 4.500127\ +5,38.901966 4.36\ +42388,38.654686 \ +4.181278,38.3217\ +67 4.2734089,37.\ +825137 4.7102642\ +,36.789445 c 0.2\ +128054,-0.504508\ + 0.9268989,-2.28\ +1057 1.5868735,-\ +3.947881 0.65997\ +45,-1.66682 1.36\ +931,-3.430823 1.\ +5762984,-3.91999\ +7 0.2069932,-0.4\ +89175 0.4729489,\ +-1.128047 0.5910\ +163,-1.419716 0.\ +2134275,-0.52724\ +8 0.4615952,-0.8\ +28552 0.8454616,\ +-1.026499 0.1323\ +273,-0.06823 0.6\ +2352,-0.09546 2.\ +012945,-0.111576\ + l 1.837899,-0.0\ +2132 0.0014,-0.3\ +4103 c 9.5e-4,-0\ +.190867 0.0588,-\ +0.457075 0.13158\ +7,-0.604564 0.16\ +2641,-0.329581 2\ +.409907,-2.46897\ + 2.755619,-2.623\ +335 0.272651,-0.\ +121743 0.984769,\ +-0.149508 1.2648\ +33,-0.04931 0.27\ +1136,0.097 0.672\ +302,0.461277 0.8\ +31639,0.755173 0\ +.18222,0.336101 \ +0.191769,0.84777\ +4 0.02165,1.1613\ +72 -0.06833,0.12\ +5974 -0.472802,0\ +.562573 -0.89882\ +6,0.97022 l -0.7\ +74585,0.741179 h\ + 7.54616 7.54616\ +6 L 31.378068,26\ +.1051 c -0.11458\ +2,-0.135879 -0.4\ +47174,-0.461876 \ +-0.739095,-0.724\ +431 -0.668939,-0\ +.601644 -0.77506\ +4,-0.784424 -0.7\ +7477,-1.334394 2\ +.8e-4,-0.511968 \ +0.181907,-0.8895\ +09 0.557687,-1.1\ +59207 0.202638,-\ +0.145438 0.34261\ +1,-0.184271 0.75\ +3663,-0.209092 0\ +.349715,-0.02113\ + 0.579981,-9.5e-\ +4 0.749508,0.066\ +09 0.224222,0.08\ +848 1.801667,1.4\ +16292 2.496819,2\ +.101681 0.430409\ +,0.424367 0.6021\ +98,0.77723 0.572\ +792,1.176548 l -\ +0.0243,0.329952 \ +0.315069,0.006 c\ + 0.173288,0.0033\ + 1.008937,0.0107\ +3 1.856998,0.016\ +43 1.497584,0.01\ +007 1.551744,0.0\ +1515 1.883182,0.\ +175496 0.187688,\ +0.09081 0.400871\ +,0.240252 0.4737\ +39,0.332089 0.07\ +287,0.09184 0.30\ +748,0.610476 0.5\ +21363,1.152535 0\ +.213883,0.542054\ + 0.530411,1.3413\ +22 0.703396,1.77\ +6145 0.172984,0.\ +434823 0.403616,\ +1.027767 0.51251\ +4,1.317646 0.228\ +137,0.607294 1.0\ +38012,2.687259 1\ +.551979,3.985883\ + 0.560045,1.4150\ +52 1.108715,2.96\ +964 1.108715,3.1\ +41414 0,0.267898\ + -0.268578,0.670\ +744 -0.573942,0.\ +860866 l -0.2911\ +14,0.181251 -4.6\ +2608,0.01097 c -\ +4.994916,0.01187\ + -5.132276,0.058\ +3 -5.335627,-0.2\ +88036 -0.105402,\ +-0.179509 -0.165\ +422,-1.036153 -0\ +.896355,-3.84060\ +2 -0.325825,-1.2\ +50117 -0.704738,\ +-2.673176 -0.842\ +037,-3.16235 -0.\ +137299,-0.489175\ + -0.396983,-1.46\ +0117 -0.57708,-2\ +.157647 l -0.327\ +445,-1.268238 h \ +-2.574088 -2.574\ +088 l 0.01439,1.\ +652394 0.01439,1\ +.652389 1.384244\ +,-0.0078 c 1.221\ +194,-0.0069 5.39\ +789,-0.192093 5.\ +659136,-0.08154 \ +0.162869,0.06892\ + 1.112626,0.4633\ +52 1.194524,0.54\ +9799 0.480556,0.\ +507257 -0.101635\ +,1.347044 -0.711\ +161,1.607444 -0.\ +257769,0.110118 \ +-4.763786,0.0928\ +5 -6.066698,0.09\ +412 l -1.480591,\ +0.0014 -0.0062,1\ +.558587 -0.0062,\ +1.558586 1.76757\ +4,0.0014 c 1.463\ +35,9.49e-4 6.382\ +434,-0.0043 6.59\ +9131,-0.01505 9.\ +170427,-0.09908 \ +0.76699,1.261684\ + 1.444024,1.5690\ +99 1.64907,0.748\ +772 -3.831652,0.\ +538968 -9.711857\ +,0.562079 -3.505\ +854,0.01377 -12.\ +714004,0.0092 -1\ +2.714004,0.0092 \ +-8.8656853,-0.76\ +2571 0.354356,-1\ +.928188 1.225293\ +,-1.959999 l 4.2\ +40112,-0.06377 2\ +.570655,-0.02502\ + 2.419104,-0.131\ +6 0.01121,-1.531\ +743 0.01121,-1.5\ +31743 -1.78539,-\ +0.0014 c -1.6006\ +3,-0.0014 -1.798\ +245,-0.01282 -2.\ +241877,-0.01966 \ +-0.363737,-0.005\ +6 -5.820616,0.21\ +5365 -5.912434,-\ +0.169152 -0.1266\ +1,-0.53024 1.328\ +857,-1.881144 1.\ +880907,-2.030125\ + 0.969913,-0.045\ +92 5.387755,0.04\ +625 6.317418,0.0\ +4625 h 1.6903 l \ +0.03101,-1.59764\ +8 c 0.01705,-0.8\ +78706 0.0188,-1.\ +61988 0.0038,-1.\ +647056 -0.01491,\ +-0.02716 -1.3270\ +24,-0.04942 -2.9\ +15787,-0.04942 h\ + -2.888659 l -0.\ +323617,1.235297 \ +c -0.177989,0.67\ +941 -0.455085,1.\ +768937 -0.615761\ +,2.421176 -0.160\ +681,0.652234 -0.\ +48123,1.867763 -\ +0.712327,2.70117\ +3 -0.231102,0.83\ +3414 -0.55837,2.\ +034118 -0.727261\ +,2.668237 -0.168\ +896,0.634119 -0.\ +364507,1.227058 \ +-0.4347,1.317646\ + -0.07019,0.0905\ +9 -0.23433,0.215\ +873 -0.364758,0.\ +278416 -0.217906\ +,0.104477 -0.580\ +356,0.112497 -4.\ +4670424,0.09882 \ +-2.8681646,-0.01\ +011 -4.3152793,-\ +0.03861 -4.49512\ +99,-0.08854 z m \ +33.0964419,-2.13\ +2504 2.812554,-9\ +.49e-4 -0.274298\ +,-0.576472 C 40.\ +660589,36.197398\ + 40.36638,35.522\ +926 40.157656,35\ +.015631 l -0.379\ +499,-0.92235 -2.\ +762055,-0.01724 \ +-2.762056,-0.017\ +24 0.09145,0.280\ +747 c 0.0503,0.1\ +54413 0.25877,0.\ +852931 0.463268,\ +1.552266 0.33981\ +4,1.16208 0.3838\ +66,1.268475 0.51\ +1845,1.23619 0.0\ +7702,-0.01942 1.\ +40568,-0.03571 2\ +.952585,-0.03623\ + z M 12.708561,3\ +6.712153 c 0.102\ +877,-0.330678 0.\ +666503,-2.249208\ + 0.740329,-2.519\ +998 0.02351,-0.0\ +8628 -0.298782,-\ +0.101015 -2.5383\ +22,-0.116101 l -\ +2.5652562,-0.017\ +28 -0.046061,0.1\ +72785 c -0.02535\ +7,0.09503 -0.105\ +802,0.295506 -0.\ +1787917,0.445507\ + -0.2030994,0.41\ +7391 -0.9809941,\ +2.282761 -0.9809\ +941,2.352389 0,0\ +.03704 1.0841417\ +,0.06152 2.72562\ +79,0.06152 h 2.7\ +256331 z m 1.577\ +447,-5.715293 c \ +0.145163,-0.4710\ +59 0.342303,-1.1\ +08469 0.43809,-1\ +.416468 0.09578,\ +-0.308004 0.1953\ +12,-0.656356 0.2\ +21172,-0.77412 l\ + 0.04701,-0.2141\ +16 H 12.756377 1\ +0.52048 l -0.282\ +172,0.576467 c -\ +0.155201,0.31706\ + -0.3052881,0.65\ +0592 -0.3335276,\ +0.741179 -0.0282\ +54,0.09059 -0.18\ +49267,0.490823 -\ +0.3481812,0.8894\ +1 C 9.39334,31.1\ +97803 9.238837,3\ +1.605835 9.21326\ +14,31.705953 l -\ +0.046488,0.18203\ + 2.4276526,-0.01\ +733 2.427658,-0.\ +01733 z m 24.710\ +409,0.869028 c 0\ +,-0.03049 -0.568\ +092,-1.477301 -0\ +.955275,-2.43291\ +9 l -0.340009,-0\ +.839189 -2.47275\ +8,-9.49e-4 c -2.\ +3225,-9.5e-4 -2.\ +470535,0.0062 -2\ +.436164,0.114482\ + 0.03041,0.0958 \ +0.576894,2.04890\ +1 0.820319,2.931\ +762 l 0.06812,0.\ +247061 h 2.65788\ +4 c 1.461836,-5e\ +-6 2.657884,-0.0\ +092 2.657884,-0.\ +02037 z M 23.523\ +029,24.86296 c -\ +3.105932,-0.3339\ +17 -5.278902,-2.\ +181969 -5.91588,\ +-5.031296 -0.402\ +704,-1.801384 -0\ +.0033,-3.614358 \ +1.118403,-5.0748\ +02 2.239938,-2.9\ +16756 6.547563,-\ +3.548349 9.62853\ +2,-1.411752 1.62\ +376,1.126042 2.5\ +10511,2.612057 2\ +.739233,4.59038 \ +0.177899,1.53873\ +3 -0.433356,3.33\ +4927 -1.572348,4\ +.620415 -0.89290\ +4,1.007743 -2.70\ +2939,1.969605 -4\ +.157414,2.209264\ + -0.487883,0.080\ +39 -1.501457,0.1\ +34245 -1.840526,\ +0.09779 z m 1.73\ +2312,-2.299125 c\ + 0.674372,-0.149\ +621 1.542873,-0.\ +573271 2.035927,\ +-0.993121 1.6522\ +28,-1.406919 1.9\ +92261,-3.411938 \ +0.880891,-5.1942\ +04 -0.561951,-0.\ +901176 -1.348611\ +,-1.526259 -2.33\ +8623,-1.858266 -\ +0.632072,-0.2119\ +75 -1.833806,-0.\ +287875 -2.539329\ +,-0.160391 -1.47\ +6375,0.266777 -2\ +.839293,1.469323\ + -3.343321,2.949\ +92 -0.523027,1.5\ +36396 -0.109734,\ +3.037986 1.15747\ +8,4.205393 0.542\ +823,0.500073 1.2\ +28915,0.885107 1\ +.863204,1.045636\ + 0.495633,0.1254\ +37 1.728822,0.12\ +8158 2.283773,0.\ +005 z M 9.886532\ +8,18.778772 C 8.\ +8271499,18.53442\ +7 8.4575623,17.2\ +56854 9.2173367,\ +16.465516 c 0.40\ +07949,-0.417443 \ +0.6477375,-0.456\ +951 2.8533873,-0\ +.456523 1.073828\ +,1.99e-4 2.0068,\ +0.02953 2.15268,\ +0.06766 1.344964\ +,0.351505 1.7402\ +65,1.936802 0.63\ +5343,2.547957 l \ +-0.332686,0.1840\ +19 -2.205484,0.0\ +1144 c -1.213017\ +,0.0063 -2.30833\ +6,-0.0123 -2.434\ +0442,-0.04126 z \ +M 33.85029,18.74\ +463 c -0.931355,\ +-0.312315 -1.167\ +979,-1.60751 -0.\ +421935,-2.309519\ + 0.421611,-0.396\ +72 0.623376,-0.4\ +26498 2.889729,-\ +0.426498 h 1.950\ +685 l 0.370237,0\ +.173601 c 0.6329\ +98,0.296817 1.00\ +8078,0.978259 0.\ +847438,1.539621 \ +-0.100534,0.3513\ +15 -0.466648,0.7\ +82961 -0.805096,\ +0.949208 -0.2639\ +22,0.129639 -0.4\ +03124,0.138429 -\ +2.415529,0.15253\ +2 -1.702295,0.01\ +192 -2.192277,-0\ +.0043 -2.415529,\ +-0.07895 z M 16.\ +648264,12.823493\ + c -0.373172,-0.\ +131069 -3.163651\ +,-2.677069 -3.30\ +9141,-3.0192201 \ +-0.270481,-0.636\ +089 -0.0095,-1.4\ +256702 0.578323,\ +-1.7498381 0.397\ +97,-0.2194581 0.\ +96313,-0.2452284\ + 1.355606,-0.061\ +812 0.50691,0.23\ +68994 3.068253,2\ +.4991042 3.29418\ +8,2.9094582 0.26\ +4646,0.48067 0.1\ +61754,1.111375 -\ +0.25104,1.538823\ + -0.36492,0.3778\ +79 -1.161272,0.5\ +60545 -1.667936,\ +0.382589 z m 14.\ +241901,-0.0082 c\ + -0.418815,-0.12\ +303 -0.777913,-0\ +.400135 -0.93180\ +9,-0.719018 -0.1\ +55386,-0.321974 \ +-0.173231,-0.880\ +691 -0.03765,-1.\ +179179 0.05296,-\ +0.1166 0.75503,-\ +0.824008 1.56015\ +8,-1.5720151 1.5\ +02742,-1.39613 1\ +.661659,-1.50513\ +25 2.194396,-1.5\ +051325 0.83355,0\ + 1.610352,0.6791\ +301 1.610352,1.4\ +078725 0,0.55747\ +3 -0.100441,0.67\ +2349 -2.500493,2\ +.8598831 -0.8312\ +54,0.757647 -1.2\ +24684,0.904567 -\ +1.894944,0.70762\ +2 z m -6.8927,-2\ +.511602 c -0.405\ +079,-0.117242 -0\ +.797977,-0.48005\ +81 -0.897867,-0.\ +8291081 -0.04483\ +,-0.15663 -0.064\ +9,-0.9709844 -0.\ +05224,-2.1183148\ + l 0.02056,-1.86\ +38646 0.201922,-\ +0.2266141 c 0.30\ +7681,-0.3453084 \ +0.632077,-0.5348\ +982 0.978012,-0.\ +5715854 0.689145\ +,-0.073094 1.369\ +818,0.2459311 1.\ +657721,0.7769593\ + 0.126995,0.2342\ +402 0.137969,0.3\ +926275 0.137608,\ +1.9865667 -2.09e\ +-4,1.0603705 -0.\ +03039,1.8342339 \ +-0.07776,1.99556\ +99 -0.105641,0.3\ +59825 -0.528431,\ +0.7263921 -0.984\ +926,0.8539571 -0\ +.434875,0.121519\ + -0.552325,0.121\ +092 -0.983036,-0\ +.0038 z\x22\x0a id\ +=\x22path887\x22\x0a \ +sodipodi:nodetyp\ +es=\x22ccssccsssscc\ +csssssssccssssss\ +cccssssccssccsss\ +ssssssccsssscccc\ +ccsssccccscsscsc\ +cccccsscscccscss\ +sssccccccsscccss\ +sccccsccsssccsss\ +cccscsscccscsccs\ +scsccsscssssssss\ +sssssscsscsccccc\ +sscsssscssssssss\ +sssssssscsscsssc\ +sscc\x22 />\x0a\x0a\ +\ +\x00\x00\x10\x1e\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ +\x0a \x0a \x0a \x0a \x0a \ + \x0a \x0d\x0a <\ -path\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path44\ -89-3\x22\x0d\x0a d=\ -\x22m -225.0508,25.\ -423733 0.20339,-\ -22.3728818 -19.7\ -2881,11.5932198 \ -z\x22\x0d\x0a style\ -=\x22fill:#00aad4;f\ -ill-rule:evenodd\ -;stroke:#00aad4;\ -stroke-width:2;s\ -troke-linecap:bu\ -tt;stroke-linejo\ -in:round;stroke-\ -miterlimit:4;str\ -oke-dasharray:no\ -ne;stroke-opacit\ -y:1\x22 />\x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x22q\ +ity:1;paint-orde\ +r:markers stroke\ + fill\x22\x0a id\ +=\x22path4541-7\x22\x0a \ + cx=\x225.06146\ +43\x22\x0a cy=\x22-\ +22.144968\x22\x0a \ + r=\x226.2550402\x22\x0a\ + transform\ +=\x22rotate(90)\x22 />\ +\x0a \x0a \ + \x0a <\ +path\x0a styl\ +e=\x22fill:none;str\ +oke:#ffffff;stro\ +ke-width:1.36894\ +774px;stroke-lin\ +ecap:round;strok\ +e-linejoin:miter\ +;stroke-opacity:\ +1\x22\x0a d=\x22m 2\ +1.694675,13.4406\ +39 v 23.035387 l\ + 8.541337,-0.076\ +\x22\x0a id=\x22pat\ +h4596\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22\x0a \ + sodipodi:n\ +odetypes=\x22ccc\x22 /\ +>\x0a \x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \x0a \x0a \x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\x9f\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0a\x0a\ + \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -inkscape:path-ef\ -fect\x0d\x0a eff\ -ect=\x22simplify\x22\x0d\x0a\ - id=\x22path-\ -effect2631\x22\x0d\x0a \ - is_visible=\x22\ -true\x22\x0d\x0a lp\ -eversion=\x221\x22\x0d\x0a \ - steps=\x221\x22\x0d\x0a\ - threshold\ -=\x220.000736842\x22\x0d\x0a\ - smooth_an\ -gles=\x22360\x22\x0d\x0a \ - helper_size=\x22\ -0\x22\x0d\x0a simpl\ -ify_individual_p\ -aths=\x22false\x22\x0d\x0a \ - simplify_ju\ -st_coalesce=\x22fal\ -se\x22 />\x0d\x0a \x0d\x0a \x0a \ +\x0a \ + \x0a \ + \x0a <\ +/metadata>\x0a \x0a \x0d\ -\x0a \x0d\x0a\x0d\x0a\ -\ -\x00\x00\x09\xd3\ +ageshadow=\x222\x22\x0a \ + inkscape:wind\ +ow-width=\x221848\x22\x0a\ + inkscape:wi\ +ndow-height=\x22101\ +8\x22\x0a id=\x22name\ +dview8\x22\x0a sho\ +wgrid=\x22false\x22\x0a \ + inkscape:zoom\ +=\x225.6568542\x22\x0a \ + inkscape:cx=\x22-\ +50.415625\x22\x0a \ +inkscape:cy=\x22-5.\ +3462143\x22\x0a in\ +kscape:window-x=\ +\x2272\x22\x0a inksca\ +pe:window-y=\x2225\x22\ +\x0a inkscape:w\ +indow-maximized=\ +\x221\x22\x0a inkscap\ +e:current-layer=\ +\x22g868\x22 />\x0a \x0a \ + \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a <\ +path\x0a st\ +yle=\x22fill:none;f\ +ill-rule:evenodd\ +;stroke:#00d4aa;\ +stroke-width:1.5\ +5563581;stroke-l\ +inecap:round;str\ +oke-linejoin:bev\ +el;stroke-miterl\ +imit:4;stroke-da\ +sharray:none;str\ +oke-opacity:1;pa\ +int-order:fill m\ +arkers stroke\x22\x0a \ + d=\x22M 8.0\ +626459,39.461131\ + C 29.913216,40.\ +812005 30.019945\ +,8.7555352 41.29\ +2019,7.9098146\x22\x0a\ + id=\x22pat\ +h825-6\x22\x0a \ + inkscape:connec\ +tor-curvature=\x220\ +\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \ + \x0a\ + \x0a\x0a\ +\x00\x00\x07#\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x0b[\ +6\x22\x0a showgrid\ +=\x22false\x22\x0a in\ +kscape:zoom=\x222.4\ +583333\x22\x0a ink\ +scape:cx=\x22-50.44\ +0679\x22\x0a inksc\ +ape:cy=\x2274.64406\ +9\x22\x0a inkscape\ +:window-x=\x2255\x22\x0a \ + inkscape:win\ +dow-y=\x2227\x22\x0a \ +inkscape:window-\ +maximized=\x221\x22\x0a \ + inkscape:curr\ +ent-layer=\x22svg4\x22\ +\x0a inkscape:p\ +agecheckerboard=\ +\x220\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x09\xd1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/cc:Work>\x0d\x0a <\ -/rdf:RDF>\x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \ +\x0a \x0a \ + \x0a image/sv\ +g+xml\x0a \x0a <\ +dc:title>\x0a \x0a \x0a \x0a \x0a \ + \x0d\x0a <\ -path\x0d\x0a style\ -=\x22fill:#999999;s\ -troke-width:1.33\ -333337\x22\x0d\x0a d=\ -\x22m 53.118644,179\ -.49816 c -1.4666\ -6,-0.62009 -4.16\ -666,-2.7414 -6,-\ -4.71401 l -3.333\ -33,-3.58656 V 10\ -8.66398 46.13037\ -9 l 4.35897,-4.3\ -58975 4.35898,-4\ -.358974 h 50.615\ -376 50.61539 l 4\ -.35897,4.358974 \ -4.35897,4.358975\ - v 62.615381 62.\ -61539 l -4.35758\ -,4.35897 -4.3576\ -,4.35897 -48.975\ -74,0.27327 c -26\ -.936656,0.15029 \ --50.175736,-0.23\ -409 -51.642406,-\ -0.8542 z m 93.99\ -9996,-70.7524 V \ -52.745763 h -44 \ --43.999996 v 55.\ -999997 56 h 43.9\ -99996 44 z M 11.\ -412064,73.437035\ - l 0.37325,-59.3\ -08728 4.35767,-4\ -.3579395 4.35768\ -,-4.3579381 51.3\ -0899,-0.3786652 \ -51.308986,-0.378\ -6654 v 8.0453322\ - 8.045332 h -47.\ -999996 -48 v 56 \ -55.999997 h -8.0\ -3992 -8.03991 z\x22\ -\x0d\x0a id=\x22path8\ -17\x22\x0d\x0a inksca\ -pe:connector-cur\ -vature=\x220\x22 />\x0d\x0a \ - \x0d\x0a \ - \x0a \ + \x0a \x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a\x0d\x0a\ -\x00\x00\x0a\xc3\ +re=\x220\x22\x0a sodi\ +podi:nodetypes=\x22\ +cc\x22 />\x0a \x0a\x0a\ +\ +\x00\x00\x08\x8d\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - im\ -age/svg+xml\x0d\x0a \ - \x0a \x0a \x0a \x0a \ + \ +image/svg+xml\x0a \ + \x0d\x0a\ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \ + \x0a \x0a \x0a \x0a \x0a \ +\x0d\x0a \ -\x0d\x0a \x0d\x0a x\x0d\x0a\ -\x0d\x0a\ -\x00\x00\x06\xdc\ -\x00\ -\x00\x1fax\xda\xd5Y[\x8f\xdb\xb6\x12~/\xd0\xff\ -\xa0\xa3\xbcdQ\x8b\xe2\x9d\xa2\xb3N\x816(\xd0\xa7\ -s\xd068\x8f\x07\x5c\x89k\xab\x91%C\x92\xd7\xde\ -\xfe\xfa\x0e%\xcb\xd6\xc5\xde\xec\x9en\xd1\xb5\x93\xc0\x16\ -g8\xe4|\x9c\xf9\x86\x9a\xdc~\xbf_g\xde\x83-\ -\xab\xb4\xc8\x17>A\xd8\xf7l\x1e\x17I\x9a/\x17\xfe\ -\xe7\xdf~\x0a\x22\xdf\xabj\x93'&+r\xbb\xf0\xf3\ -\xc2\xff\xfe\xe3\xb7\xdf\xdc\xfe+\x08\xbc\x1fKkj\x9b\ -x\xbb\xb4^y?\xe7_\xaa\xd8l\xac\xf7~U\xd7\ -\x9by\x18\xeev;\x94\x1e\x06QQ.\xc3\x1b/\x08\ -`*L\xae\x1e\x96\xdf~\xe3y01\xa9W\x0b\x9f\ -G~\xf3\xb8\xb2\xe9rU\x9f\x9e\x1fR\xbb\xfb\xa1\xd8\ -/|\xeca\x8fG\x08\xbb\x0f9\xfdj\xb5\xd2d\xe1\ -\x83Az\x98sr\xa5\x93\x1f\xf60\xef\x8b\x10\xf5\xde\ -c\x83q|/\x18\xd33\x8fbJ\x03\x0c\x7f\xf9M\ -;\xab\x02\x086\xf0o\x9e\x14qn\xd6\xe0\xb9I\x92\ -\xffU\xdb;\x00\xa3\x06+\x08\x96l5\x01\xc0\xbc\x9a\ -w\xab,\xfcK\xee;+\xd5\xc6\xc4\xb6\x0a\xbb\xf1\xbe\ -\x81n\xc1\xa3\x81n\x00U\xc5\xb6\x8c\xed=\xd8\xb0(\ -\xb7u\xf8\xe9\xb7OGa\x80QR'=;\x83\xf5\ -w\xacY\x99\x02X\xe1h\xbf\xf0\xf8\x5c\xd52\xb9?\ -\xa7J\xb4\xd6!\xa6!\x00\x07\x1aA\xf5\x98\xd7f\x1f\ -\xe4\xd5\xbb\xfe\xdc8>N\x8d]\xb4\xa4\x0f6.\xd6\ -\xeb\x22\xafZL\x86\xda\xc9I{\xb3-\xb3F%\x89\ -C\x9b\xd9\xb5\xcd\xeb*\x84\x83\x0b\xfd\x8fn\xc2mb\ -\xef\xabff\x1b\x00\xee\x91\xb7\x22\x10\xc6Y\xba\xf9\x8f\ -\xa9W\x07\x05\xcf\xeb\x06>\xe7i\x0d\x10m+[\xfe\ -\xea\x8e\xe2\xdf\xf9\xe7\xeap\x0a\x9d\xa5N5\xa2\xa2\xb3\ -\x07\x16K\x1b\xd7G5\x88\x8e\xfa1\x83\xa3\xbeO\xb3\ -l\x9eC^|p\xbf\x82\x02L\xa6\xf5\xe3\x1c\xa3\x88\ -kA\xb8`\x1f\xaa\xba,\xbe\xd8\xf9;\xdd|\x0e\x8f\ -A\x13\xf7s\x86\x22\xa18\xe1Tt\xe3Y\x9a\xdb\xdf\ -\x8b4\x9f\x97\xc56O\xba\xd1uZ\xdb2K\xe1k\ -\xce\xbb\xb1\xc4T+S\x96\xe6\xb1Y\xde\xefm\xcd\xf9\ -\xe0v\x1bQ\xd5\x1f\xeeR\x8d#\xb7`$\xfb\xb2c\ -\xde\x9d\x13\xee]\xbeh\x1a)\xacH\x7f\xfc\x11\xc61\ -\x96\x88j\xac\xfb\xe3e#@$\x92J\x10\xdf\x0b\xbb\ -3\x09;`\xdb\xf3\x0b\xdd\x89\xb5?\x8f\xa9\xe62$\ -qI\xdf;\xd8;s:\xa0\x8dYB\xf4dE\xb9\ -\xf0\xdf\xdd7\x9fNrW\x94\x89-;\x99l>C\ -\xd9\xe1lZ\x8a\xeb\xecw\xcc\xe0\x0c\x1f\x15\xf0\x05\x05\ -\x00<)v\x0b\x9fN\xa4\x7f\x14\xc5z\xe1\x0b$'\ -\x92x\xdf\xa0\xca%\xa7\x91\x98Ja5\x85D\x04\xe8\ -\x0a5\x91\x02\xf1l]\xd8\x07\xdb6h7\xfb\xa9\x81\ -mY:\x8d\xcc\x9c\xb9|^\ -\x16\x0f\xf8\xea\xeb\x910=\xb2\xaf\x91\xec\xdf\x08t\xc0\ -\xce@M\x18GZ\x12\x00\x16@\x17\x80p\xa4\xbc\xa0\ -\xc5\x98\xc0\xbb_\x83\xba\xb8z\xa8OT\xd6\xfdj\xbf\ -o\xdd\xff\x0d\xc0\xf7\x9f\x9e\xe4{*\ -\x00\x00\x05\xbd\ -\x00\ -\x00\x14Vx\xda\xddX[o\xdb6\x14~/\xd0\xff\ - \xa8/\x0dfQ\xbcJ\xa4j\xa7\xd8P\x14-\xd0\ -\xbel\xdd\xf5M\x91hG\x8d,\x1a\x14\x1d'\xfd\xf5\ -;\xb4,Y\xbed\xc8\x86\xac\xc3*\xc0\xb1\xf5\x9dC\ -\xf2\xf0;Wd\xfa\xfanY\x07\xb7\xda\xb6\x95if\ -!A8\x0ctS\x98\xb2j\x16\xb3\xf0\xe7Oo#\ -\x19\x06\xad\xcb\x9b2\xafM\xa3gac\xc2\xd7\x97\xcf\ -\x9fM\xdb\xdb\xc5\xf3gA\x10\xc0\xf2\xa6\xcd\xcab\x16\ -^;\xb7\xca\xe2x\xb5\xb652v\x11\x97E\xack\ -\xbd\xd4\x8dkc\x82H\x1c\x8e\xf4\x8b\xbd~au\xee\ -\xaa[]\x98\xe5\xd24\xedvi\xd3\xbe\x18k\xdbr\ ->\xa8o6\x1b\xb4a[-\xa2\x94\x8a1\x8d)\x8d\ -@#j\xef\x1b\x97\xdfEGk\xc1\xcesk)\xc6\ -8\x06\xd9H\xf5\x91jY\x0b\xe4\xac\xe03\xe8\xf7\x00\ -j\xcd\xda\x16z\x0e\x0b5j\xb4\x8b\xdf|z3\x08\ -#\x8cJW\x8e\xf7\xa9\x9a\x9b\xb6\xc8W\xfa\xe0\xdc\x1e\ -\xech\xc8\x97\xba]\xe5\x85n\xe3\x1e\xef6\xd8T\xa5\ -\xbb\x9e\x85\x5cv\xaf\xd7\xbaZ\x5c\xbb\xfd\xfbm\xa57\ -?\x98\xbbY\x88\x03\x1cp\x19\xf4xU\xceB\xb8\x0c\ -\xddi\xed\x9dNv\xf2\xdd!\xd9 \xc2HQD\x83\ -\x97\xa2`Z\xe2r\x12PL\xd2\x08\xcb\x08'\x17\xdd\ -\x9a\xfe~Yi\x0ao\xef,\xbc\xaa\xf3\xe2\xc6\xac\x1d\ -\xf2\xbc]z\xa5\xe9R\xbb\xbc\xcc]\xbe]\xd1\xd9\xd1\ -C\x84v:\xa0\x05N\xcc~|\xf3v\xf7\x0a@Q\ -d\xbf\x1a{\xd3\xbf\xc3\xe3U\xf2+\xd8|\x16\x86\x97\ -{|Z\x16\x19\xd0\xbe\xcc\xdde\xb5\xcc\x17\xda\xbb\xec\ -;`y\x1a\xef\x05\x87\xda\xee~\xa5G\xfbv;[\ -\xddy\xf0l,\x97\xc5\xb2\xf2\xab\xe2\x9f\x5cU\xd7\xef\ -\xfd1a\x10\x1fo[\xb9Z\x8f\xd0i\xbc\xbbC\x7f\ -\xc7x|\xc9i\xdc\xb3\xd0\xbd\x96z\xde\x8e(\xf2\xaf\ -\x04\x0f\xf4,s{\xa3\xedp\xde\xe0\xac\xd6\x99\xe2\xc6\ -\xeb\x7fo\xad\xd9\x90\x0f\x90\xad\xd6\x85\x83\x9e\xb1\x15\xa4\ -\xe0,\xcc\xd7\xce\xecQ\xab\xe7\xbf{\xf7\xe2\x03\xe8\xb7\ -#\xe8\xe1][w_\x03O\x06\x22e^\x9bMv\ -[\xb5\xd5U\xad\xc3S\xf3\xaavk\xe0,tv\xad\ -\xf7N\x9b\xaerw=\xf2\x80?\xcaC\x5c(\x19\x8e\ -p\x80?\x06`\xd4\x04>\xc1\x87@\xc0\xafHl\x7f\ -F\x84\x221\x82;\xb4W\xfd\x12\x8cw\xd9\x99;\x07\ -\xcfEv]\xebL\xdf\xea\xc6\x94\xe5\xab\xd6Ys\xa3\ -\xb3\x17x\xfb\xec^\xa3m~eP\x0cWn\xbc\x8b\ -\xb3y\xd3\xfap\x824*\xf2Z\xbf\xc4H^th\ -\x9d;\xfd\xb23\xe8b\x1f\x16\xe0\xe0\xad\xd3v\xde\xf6\ -\x0e\xed~\x0eY\xe3S\xa6\xf4\xf9\xba;f\x05aU\ -\x98\xda\xd8Y\xf8b\xbe}z\x03\xae\x8c-\xb5\xede\ -\xc9\xf69\x94\x19(\x15\x10\xa2\x90\xd0=n\xae>\xeb\ -\xc29Sk\xb0\xd1\xc75\x19\x9c\xbb\xb0p\xc7\xb3\x82\ -uU\xea\xb3\x92\xc1\xa5\xde\xc8\xe1\xb0\xf3\xe2\xf6:/\ -\xcdf\x16\xd2\x13\xe9\xa6j@\x12\xedJ\x18\x91\x09{\ -H\xa5/k\x04S\x11\x8e\xf2b\xe0l\x08\x94\xf6\xda\ -l\xfc\x85\xc0\xc3y\xdd\xea\x93\x0d\xbf\x18\x03>KP\ -\x9a`N\x92\xf4D^@\xad\x8c\xb8@\x09cT\x92\ -S1\x5c\x93BxI\xc9\x94x\xc8Z\xd8B\xa4\x0f\ -\x09\xfd\x06\x0f\x0a\x97\xf9]\xb5\xac\xbe\xe8r\xe4\xb9\xfd\ -\xd9kk!\x7f\xa3:\xbf\xd7\xe0\xf8\x05\x17\x9c\xf7\x01\ -6]\x8cXYp\x22\xf6\xc5bq\x90\xc3\xdd\xaaG\ -\xe4\x1e\xc3\xa7\xb97\xc1\xc1;\xdfE~\xf1\x7f\xdeA\ -G\xf9c\xac\xb37\xd44\x0d\x04\x9b\xb1\x11\x98|\x9b\ -\xbb\xb5\xd5\xa3\xe08J\xc2\xac\x81ab\x5c>\x8fM\ -:\xd6}\xf5p\xea\xce\xe7Eq\x92\xba\xab\xbb\x1e\xa8\ -+0+_eWk\xe7\xc6\xd8gS5\x19\x94t\ -m{t\x17\xd2\x199\xe2`\x190\xc41%\x22%\ -\x13\xc6\x10N0V, \x02I\x9ar\x9a\xa8I\xc4\ -\x10\x15\x9c2\x19(\x081\x9a\x12:\x898\x22\x9c\xa4\ -\x22\x09$\x92\xa9 \x0a\xa0\x14Q.q\xca\x01\xa2\x92\ -\x09\xc2\x91P\xac\x84\x10\xe7\xe9\xe5\ -_\x9f\xde\xb3m\xe6+\xd0\x0b\xdc`\xca\x13\x0e\xf4\xee\ -\xd8\x09|\xb3J\x19QC\xa8\xa6A\x8a\xbc\x0f\x08\xf7\ -\x10\x95*I\x07\xc6\xc5$\xda\x11\xad\xces\x99|}\ -.K\xfe/s\xf9\xf1<\x97\x12q\xa9\x94\x14\x13\x9a\ - !HBd\xc0\x08\xa2\x84`\xc5' M\x094\ -5\x110\xa8\x05\x0as\x9eN\x14R\x12\xc6\x1a\xf2\x00\ -u\xf2\x1fQ7\x8d\x17\xa7\xb5~4\xa0\x8c\xa6\x12\x84\ -q\x92B\xc5\x99D\xd0\xc4\xa4L\xa9R\x17\xe1Q\x7f\ - \xfb\xaer\xae{\xa8\x91\x7fG\x87\xc0\x5cm\xab;\ -8\x01n\x9c\xf2\x84N\xa0YL\x88\xaf\x87i\xca0\ -\xa3\xc9\xb6\xe8Q\xf8A\xc5\xc5\xe9\xf08\xf0\xbe\x0f\x07\ -\x0bw\x1e\xd1\x01}\x93C\x9c\x02\xef\xea\x80=h\xb6\ -\x0c1\x0c\x9c\x1e\x04^?1HD\xa8H\x85`c\ -a?q\xc0t\xa8\xd4\x99\x9a\xeb\x8f\xe6\x5c\xca3-\ -k\xb0t\x1b\x8eG-\xa7\x8b\xd3\xa3\xc91e\x14\x83\ -\xd9\xc7\xc1h\xcd\xba)\xff:\x1a\xb7/5\x0c\x04.\ -\xe3H\xa8\xed\xd3\xcb\xca\x1c\xe6*k\xf3\xfb\x833\xf7\ -\xd6\xad\xf2\x0aF\x85\xed0\x98u\x93g\x1bx\x8b\x83\ -N\xf3 \xf1\x1e\xcf4\xf1i\xe0\x1b\xd6\x93S\x1d\xb1\ -G\x91=jI\xdf<\xd9\x94\x01\x9e\x0a,\x9e\x9e\xec\ -\xe4\x11d\x1f\x14\xd5o\x9el\xa8\xea\x09N\x92\xc3\xa6\ -\xf6DdG\xe2\x11t\x1f\xcc\x03\xffG\xba\xfb6\xd4\ -}O\xfd?^\xe0\xfbO\xce\x08\xa3\x90\ -\x00\x00\x06\xc0\ -\x00\ -\x00\x19\x01x\xda\xedX[\x8f\xe3\xb6\x15~\x0f\x90\xff\ - h_vP\x8b\xe2\xfd\xa2\xb57h\xb1\x08\x12 \ -yI\xd36\xc9K\xa1\x918\x1eed\xd1\x90\xe4\xf1\ -\xcc\xfe\xfa\x1e\xca\x96,\xd9\xf2f\x92\xddt\x81\xa2\x02\ -f,\x9esD\x1e~\xe7J.\xbfz\xda\x94\xc1\xa3\ -\xad\x9b\xc2U\xab\x90 \x1c\x06\xb6\xca\x5c^T\xebU\ -\xf8\x8f\x1f\xbf\x8et\x184mZ\xe5i\xe9*\xbb\x0a\ -+\x17~\xf5\xf6\xcb/\x96\xcd\xe3\xfa\xcb/\x82 \x80\ -\xcf\xab&\xc9\xb3Ux\xdf\xb6\xdb$\x8e\xb7\xbb\xbaD\ -\xae^\xc7y\x16\xdb\xd2nl\xd561A$\x0eG\ -\xf2\xd9I>\xabm\xda\x16\x8f6s\x9b\x8d\xab\x9a\xee\ -\xd3\xaay5\x96\xae\xf3\xbbA|\xbf\xdf\xa3=\xeb\xa4\ -\x881&\xc64\xa64\x02\x89\xa8y\xae\xda\xf4):\ -\xfb\x16\xf4\x9c\xfb\x96b\x8cc\xe0\x8dD_(\x964\ -\x00\xce\x16\xfe\x06\xf9\x9e\x80\x1a\xb7\xab3{\x07\x1fZ\ -T\xd96~\xf7\xe3\xbb\x81\x19a\x94\xb7\xf9x\x9e\xa2\ -zh\xb2tk'\xeb\xf6\xc4\x03\x0c\xe9\xc66\xdb4\ -\xb3M\xdc\xd3\x0f\x13\xec\x8b\xbc\xbd_\x85\x5c\x1f\x86\xf7\ -\xb6X\xdf\xb7\xa7\xf1ca\xf7\x7fsO\xab\x10\x078\ -\xe0:\xe8\xe9E\xbe\x0aa3\xf4(u2:9\xf2\ -\x8f\x8b$\x03\x0b#C\x11\x0f^\xef\xaa\x87\xca\xed\xab\ -\x9b\x83\x5c\xbf\xa7$w\x99\xd7q\x15n\xef\xfe\xdd6\ -\xc8\x03\xf5\xd6K,7\xb6M\xf3\xb4M;\xf1\xc3\xc2\ -=\x89\xd0\x83\x0cH\x81\xd5\x92\x1f\xde}}\x1c\x02!\ -\xcb\x92\x7f\xb9\xfa\xa1\x1f\xc3\xe3E\xd2[\xb7\x83\xdd\x85\ -oO\xf4e\x9e%\x80\xf3&m\xdf\x16\x9btm\xbd\ -\x8d\xfe\x02\xb0.\xe3\x13c*\xdd>o\xedh\xde\xc3\ -\xcc\xb5=\x98l\xd6y\xf3lS\xf8\xaf\xe2\xbf\xb7E\ -Y~\xeb\x97\x09\x83\xf8|\xda\xa2-\xed\x88\xba\x8c\x8f\ -{\xe8\xf7\x18\x8f7\xb9\x8c{\x14\x0e\xc3\xdc\xde5#\ -\x88\xfc\x90\xe0\x01\x9eMZ?\xd8zXo\xb0N\xd3\ -\xba\xec\xc1\xcb\xff\xb5\xae\xdd\x9e|\x07\xe1Y\xb7\xe1 \ -\xe7\xea\x02bn\x15\xa6\xbb\xd6\x9d\xa8\xb5\xbd\xfb\xd9\xdb\ -\x13OH?\x9d\x91\xae\xcf\xda\xb4\xcf%\xe0\xe4\xc05\ -\xeeJ\xb7O\x1e\x8b\xa6\xb8-mx\xa9^\xd1t\x0a\ -\xae\xc2\xb6\xde\xd9\x93\xd1\x96\xdb\xb4\xbd\x1fY\xc0/\xe5\ -I\x5c\x18\x1d\x8e\xe8@\xfe>\x00\xa5\x16\xf0\x17|\x17\ -\x08x\x8bD\xf7\x1a\x11\x8a\xc4\x88|\xa0\xf6\xa2\xef\x83\ -\xf1,Gu\xef\xc0rQ\xbd+mb\x1fm\xe5\xf2\ -\xfcM\xd3\xd6\xee\xc1&\xafp\xf7\x1c\x87Q\x17P\x09\ -d\xbfm;\x9e\xa5\xad\xd3\xaa\xf1\xee\x04q\x93\xa5\xa5\ -}\x8d\x91\xbe9P\xcb\xb4\xb5\xaf\x0f\x0a\xdd\x9c\xdc\x02\ -\x0c\xdc\x19\xedhmo\xd0\xc3\xeb\x102>^r\x1f\ -\xa0\xc7e\xb6\xe0V\x99+]\xbd\x0a_\xdduO\xaf\ -\xc0\xad\xabs[\xf7<\xd9=S\x9e\x83\xdc\x00.\x0a\ -\x11\xdc\xd3\xdd\xed\xaf6k[WZ\xd0\xd1\xfb5\x19\ -\x8c\xbb\xaea\x8f\xb3\x8c]\x91\xdbY\xce`R\xaf\xe4\ -\xb0\xd8<\xbb\xb9Os\xb7_\x85\xf4\x82\xbb/*\xe0\ -D\xc7\x9cE\xb4d\xd7D\xfav\xd1\ -\x01tM\x0ce\x82]\x00\x5c\xbb]\x95\x7f\x8c\xeb\xbf\ -\x0c`\x0a\x09\x95k\xc2f\x01\xc6\x12\xbcP\xcaK\x80\ -\x15\xe2\x86I*\xe4\x0c\xc0Pwa>\xc9\xc8\x07\x00\ -&/\x82w\xec\xc7\x7f\x08^\x86\x18\xd1\x86P\xaa>\ -\x17\xbcP\xba\x94\x11\x84\xf1Kx9\xe2\x84\x10Cf\ -\xfc\xd7'e*\x05\x15b\x06_F\x91\xe4\x12Z\xd9\ -\x0f9\xf0\x0b\xf1\xcdy\x9a~\x14\xbe\xda`h\xb1\xb4\ -\xf9\x5c\xf8B\x82\xd4\x18\xfar6\xe7\xbeBCJ\x9b\ -\x85\x97#\xed\xdd\xd7\xcc\xe5\x07\x06\x11\x81!\x7f\x5c\x87\ -\xf7\xc5\xce\xab\xf5G\x81\xcb\xb5\x81\xe8\x93\xea\xf3\x81\xab\ -1 \xc8\xf4\x1c\xb8\xd0*\x10Lf\xc0\x85\xaf\xb4\x10\ -\xda\xcc\xe5\x06\xeeOaX\xf0\x0f\xf9.\xfe\xef\xa4^\ -\x9f\x1b\x98\xd1\xda\xd0?\x15\xdee\xbc\x1e\xae\x03\xd6\x97\ -\xe7\xb3\xd1\xc1ft\x93\x800\x96\x8aj\xb6\x88\xa8\x00\ -4\xe1\xd4jn\xc2\xb33\x1d\x813\xdd\xe9\xaa\xe1\xfc\ -\xc4'\xc7iev\x11\x8c\x04\xa1\x1c\xceL\xa3\xe3\xd1\ -\xb2\x86\xdee|\xe1\xe6\x8f\xbeHb\x0c\xfd\xc6$\x8e\ -\xbcs@\xdf\x08'\x9di\x9ct\x9e\xa1\x18cbB\ -\xee\xcf\xf2\x126\x83\x15\xf4\x18c\xe6\xf1.\x80\x19?\ -\x1f#\x13\xd7\xf0\x9b\xf1:q1u\xa7i\xbbC$\ -\x1b\xba\x99\xb3\xe1\xd1\xd8\x18A\x22\xd0\x02\xcb\x8b\xe6f\ -b\xebO\xe6\x01o\xb6i\x01\xc7\xf6\xeeb&9\xdc\ -\x025\x81\xd768H\x9e\xf9\xed\xc4afm\x00=\ -\xa0ad\xce\x06\x1aC\x8d;\xb3\x01G\x18zw\x8a\ -\xc5\xbc\x11\x14\xf4\xf8R\xc9\x19#@\xed\xa6\x84\xb3\xe9\ -\xd9vl\x84ict\xd6uv\xd5\xe4j\xc0A\xdb\ -j$\xe5B\x89\xcf`\x83\xca_\x03\x97\xe3\xbb\xb9\xf5\ -\xf1Z\xce\xff.\xfd\x951\xfc\xfe\x07O\xe1\xf2c\ -\x00\x00\x13\x09\ +ht=\x221025\x22\x0a i\ +d=\x22namedview8\x22\x0a \ + showgrid=\x22fa\ +lse\x22\x0a inksca\ +pe:zoom=\x226.95321\ +69\x22\x0a inkscap\ +e:cx=\x2214.633173\x22\ +\x0a inkscape:c\ +y=\x221.9112621\x22\x0a \ + inkscape:wind\ +ow-x=\x2257\x22\x0a i\ +nkscape:window-y\ +=\x2227\x22\x0a inksc\ +ape:window-maxim\ +ized=\x221\x22\x0a in\ +kscape:current-l\ +ayer=\x22svg2\x22 />\x0a \ + \x0a \ +\x0a \x0a\ + \x0a \ +\x0a\x0a\ +\x00\x00\x0d8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a \x0a \x0a \x0a \ +image\ +/svg+xml\x0a \ -image/svg+xm\ -l\ -\x0a \ + \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs10\x22>\x0a \x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x04P\ +\x00\ +\x00\x12\xa8x\xda\xedW\xddo\xdb6\x10\x7f\xcf_\xc1\ +)/-\x16Q$\xf5I\xd5r\x81\xad(\xd0\x87\xbd\ +l\x1d\x06\xec\xa5`$\xdaV#\x89\x02E\xc7q\xff\ +\xfa\x1ee}\xd8\x8e\x03\x14\x831\x0cX\x08\x04\xc8\xfd\ +\xee\x8e\xbc\xfb\xdd\x91\xd6-\xde?\xd5\x15z\x94\xba+\ +U\x939\x14\x13\x07\xc9&WE\xd9\xac3\xe7\xcf\xcf\ +\x1f\xdd\xc4A\x9d\x11M!*\xd5\xc8\xcci\x94\xf3~\ +y\xb3\xf8\xc9u\xd1\xafZ\x0a#\x0b\xb4+\xcd\x06}\ +j\x1e\xba\x5c\xb4\x12\xbd\xd9\x18\xd3\xa6\x9e\xb7\xdb\xedp\ +9\x80X\xe9\xb5\xf7\x16\xb9\xee\xf2\xe6f\xd1=\xaeo\ +\x10Bpn\xd3\xa5E\x9e9\x83C\xbb\xd5UoX\ +\xe4\x9e\xacd-\x1b\xd3y\x14S\xcf\x99\xcd\xf3\xd9<\ +\xb7\xa7\x97\x8f2Wu\xad\x9a\xae\xf7l\xba\xdb#c\ +]\xac&k\x1b\xcd\xce\xef\x8d(\xe7\xdc#\xccc\xcc\ +\x05\x0b\xb7\xdb7F<\xb9\xa7\xae\x10\xe3%WF\x08\ +\xf1@7[\xfe\x98U\xda\x01\xa1-\xfcM\xe6#\x80\ +;\xb5\xd5\xb9\x5c\x81\x9f\xc4\x8d4\xde\x87\xcf\x1f&\xa5\ +Kpa\x8a\xa3mF>ON=!\xb9\x11\xb5\xec\ +Z\x91\xcb\xce\x1b\xf1\xde\xff\xa8\xc2\xb4\x07\xca\x22s \ +F\xd6\x0b\xbb\xb20\x1b\xd0\xf1\x83\xb8\x91\xe5zcf\ +\xf9\xb1\x94\xbb_\xd4S\xe6\x10D\x10\x80hT\x8c\x81\ +\xa6\x85\xca\xed\xc9\x99#\xba\xae\x5c7_\x8c\xfa\xd2j\ +\xb5*+\x89G\x22\xc6p\xd2)\x14\x829\xc3!z\ +\xc3HDdNW|u\x87\x18a\xc4%\x81K\x92\ +\xb7\xce\x12\xdc\x16\xb54\xa2\x10F\xd8-\x0eQ\x8fH\ +\xd2\x1b\x80\x09T1\xfd\xfd\xc3\xc7\x83\x04r\x9e\xa7\x7f\ +)\xfd0\x88\xb0\xac\x81\xb8W[H\xc9YN\xf0\xa2\ +\xc8S\xe0\xbd\x16fY\xd6b-m\xc9~\x06\x9e\x17\ +\xde\xac816\xfbV\xce\x9b\x1e\xb6\xd5\xf2P\xc0\x8b\ +]\x5c\xe4ui\x9d\xbc?LYU\x9f\xec!\x0e\xf2\ +\xce6-M%gp\xe1\x0d\xd1\x0f\xb9yG\xc9-\ +\xbc1\xf5^*\xe4\xaa\x9bY\xb1R4\xec\xbe\x98\xea\ +b\x8bR\xd8\xf2\x1d\x0c[\x88 W\x95\xd2\x99s\xbb\ +\xea\x97sP\xdc+]H=\xaa\xa2~\x9d\xa8\x14\xf4\ +\x14\xe4\x02=1\xc0\xea\xfe\xab\xcc\x8dQ\x95\xd4\xa2\xb1\ +\xf9S2h\xd6\x1a\xba\xe9\x12\xbe-\x0byI1u\ +\x86\x0do:\xe8\xa2\xb6\xdb\x88B\xed2\x87\x9d+w\ +e\x03\x0awl\xe4$H^\xb0\x98z\x9b\xd0\xc9\x04\ +\xe8\x9b\x88\x0a\x06\xb0\xdb\xa8\x9d\xcd$sV\xa2\xea\xe4\ +\xf9n\xdf\x94\xaa\xede\x0a\xa3\x90\x92\xe0Y89\x5c\ +\x16\x16\xc48d~L\x9f)\xf7\xfd\xd5\xc24\xa6I\ +\xf4B\x98\xe0\x1f\xbf\x94$\xb8\xb3\xf0\x05]-\x9e\xca\ +\xba\xfc&\x8b\xb9R\xf3\xb9[\xad\xe1Qu+\xb1\x97\ +z\xb8\xfdC\xc3h\xa8\xe5\x90\xb7\xd9WP\x9c\xa1\x0c\ +)}\x07\x97\xb8Joy\xbfz\xc1\x9du\x9d\xd1\xea\ +A\xa6\xb7\xa4_\x83x(B\xeacNB?&<\ +\x1c\xf1\xaal$\x04\x92j\xb5m\x8ac\xf0\xab*\x9b\ +S\x14\xee\x8d\xd4\x15db\xd2`\xc4\x0a\x01\xd5\xd7Z\ +\xec\xd3\x06~\x89Ft\x0c\x86\xbckE\x09\xc9\xf5\xdd\ +\x9a\xd6B?\xc03\x83\x0eF\xc8\x86}Tl\x9bm\ +B\x99\xeb\xbb#\x8dC\xdf0\x82\xa3(!\xc4\x1f\xe0\ +\xb1Y\xceq\xa8\x0ee1f\xcc\x8f\xf8\x00AQ\x12\ +\x1c\xfb\xc2\ +0^\xb0\xd0\x9f\xd9\x8echm\xa0\xfb\x98m\x86I\ +\x10\xd1\x04^\x97\x81\xedV\x98\xcd\x09\xdb?\xc2\xf1\xa0\ +=\xe1\x18\xeaH\xc2\x98\xc5A\xd4>\xfd\x03\x96\xa7C\ +\x86`\x81\x9a\xdfP\x02\x1dD\xa2\x88\xd2;\xf8\x05J\ +\xe2(\xe4\xb1\xc5|\xc84\x8e\xee\xe0\x91\xc4A\x143\ +\x8a\xec\x7f\x11\x0d\x09\xbf\xe3!\xf6\x03\xcay\x80\xfe>\ +\x22\xd9&\xc9\xc9\xf3yH5\x10\x9fQ\xda\x85!\xe4\ +Q\x98\xad\x96\xf3\x847O\xab\x0a\x06D\x98\x97\xbb\xcc\ +\xc9a\xf5\xc4-\xecX\xbe\xbc\xf9\x0ev\x1b\x95/\ +\x00\x00\x07\xdd\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x07\x95\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + image/svg+xml\x0a \ + \x0a\ + \x0a \x0a \x0a \x0a \x0a \ +\x0a\ + \x0a \x0a \x0a\x0a\ +\x00\x00\x07\x7f\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0b\x13\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0ap\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \x0a\ + \ +\x0a \x0a\x0a\ +\x00\x00\x06\xe8\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x14\xd4\ +\x00\ +\x01\xa6;x\xda\xed]\xddnc9r\xbe\xdf\xa7\x10\ +473X\x8bfU\xf1\xa7\xa8i\xcf\x02\xc1`\x93\ +\x5c,\x02dg\x12 7\x81F:\xb6\xb5#K\x86\ +\xa4n\xbb\xf7\xd5\xf2\x0ey\xa6\x14e[\x7f<\xce\xf4\ +2\xd8\x98f\xb3{\x1ac\x9f\x7f~\x1f\xc9\xafHV\ +\x15?\xfc\xe1\xf1n1\xf8\xd4\xad7\xf3\xd5\xf2j\x08\ +J\x0f\x07\xddr\xba\x9a\xcd\x977W\xc3\x9f\x7f\xfa\xe3\ +\x88\x87\x83\xcdv\xb2\x9cM\x16\xabew5\x5c\xae\x86\ +\x7f\xf8\xe1w\x1f6\x9fn~7\x18\x0c\x1e\xe6\xb3\xed\ +\xed\xd5\xd0\xf00\xfev\xdb\xcdon\xb7\xfb_?\xcd\ +\xbb\x87\x7fX=^\x0d\xf5@\x0f\x0c\x0f\x9e\x0f\xcfg\ +WC\xb9\x1d\x9f\xae9\xbc\x19\x9e\xce.\x7f\xddL'\ +\xf7\xdd\xf8\xf8\x8c\xc2\xc1\xb7z\xa2\xf5\xf4\xda\x12\x85\x8b\ +\x01j\xc4\x91\x96\xff\xccw\xbb\x9b6\xf2\xbd\xf7\xf2o\ +<[M\x97\x93;\xf9\xcc\xee\xf1~\xb2\x8c\xf7\xff\xe7\ +\xfdb\xb2\x5cJi\x94\xbcsw\xb1\x14x\xb9\x19\xbf\ +\xbc\xe7jx\xbb\xdd\xde\x8f//\x1f\x1e\x1e\xd4\xcbA\ +\xb5Z\xdf\x5c\xc6\x07m\xee'\xd3ns\xf9r\xfc\xe8\ +\xfe\x97W\xee\xef\x7f9\xa06\xab\x8f\xebiw-\x8f\ +\xe8\xd4\xb2\xdb^\xfe\xf8\xd3\x8f\xfb\x93#\xadf\xdb\xd9\ +\xd1c\x1e\x17\xf2\xec\x93ox\xa0\xdd\xdb!\x84p\xb9\ +;{\xb8\xba\xef:\xd4Z_\x9e\x16M~\xfb\xc2+\ +\xd7\xb3\xebW\xdf\xad\xf1R@\x96+F\x9b\xcf\xcb\xed\ +\xe4q\xb4\xdc|st\xebt\xba\xbfs\xba\xee&\xdb\ +\xf9\xa7n\xba\xba\xbb[-7O\xe0\x9d\x5c<;\x5c\ +|\xffq\xbd\xd8]1\x9b^v\x8b\xee\xae[n7\ +\x97B\xf1\xe5\xf0\x07\xb9\xfe\xc3]\xb7\x9d\xcc&\xdbI\ +\xbc\xf7\xa9\xaa\xbc\x1c\x01\xdc]!\xd7\xc87\x8d\xff\xf5\ +\xc7?>\xfd&\xbfO\xa7\xe3\x7f_\xad\x7f}\xfeU\ +\xfe\xc4\x0b&\xbf\xac>JU\x1c\xfe\xb0?\xfca6\ +\x1d\x0b+w\x93\xed\x0f\xf3\xbb\xc9M\x17\xb1\xf8\xbd|\ +\xdf\x87\xcb\xc3\x89\x93\x8b\xb7\x9f\xef\xbb\xc3C\x9f\x1e\xbb\ +\xee\x9e\xe8\xed-\xcflz7\x8f7]\xfey;_\ +,\xfe9\xbed8\xb8\xdc\x7f\xe7\xe5\xf3\x87>\x17\xe3\ +\xf2\xa8\x1c\x1f._\x8a\xb9\xfbm\xd6]o\x0e\x08\xc4\ +\xdf@\xbf\x94^\xaaD7Y\xff\xe3z2\x9b\x0bv\ +/\xdf\xb7o6\xd3\xd5b\xd1M\xa5\xe4\x93\xc5\xc3\xe4\ +\xf3f\xb8\xbf@\x1etz\xab\x0b\x00{x>l\xb6\ +\xab\xfbCa7\xdb\xcf\x0b)c<8\x92'\xae\xd6\ +\xe3op\xaa\xc9N\xbe\xdf\x1dZI\xb3\x90\x92\x8ea\ +x\xb8eu}\xbd\xe9\xe4\xbd\xfa\xe8\xd8\xae\xa9\xcb\x0d\ +.h\x7f\x8c\xc4o\xbe\x8c\xfc\x94=\xfc\xf6\xcb\xa0\xff\ +ea\xff\xb2\x0f\x97\xa7\x85\xfe\xbf\x81\xb8k\x8f\xe3\xdb\ +u'\xcd\xe6\x9b\x1e4_\x07\xdb\x90g\xb3?\x7f\xf3\ +|\xf4\xe7\xe5|+\xad\xfa\xe3\xa6[\xff9\xf64\xff\ +\xb2\xfcy\xd3\x1d\xde\x06WC\xab\xc0!\xa3\xb3\xfb\xa3\ +\x9f\xe5(\x90\xd2\x81\x8d;<\xf1\x11\xa5\xdb\x95\xde\x9b\ +\xbd\xc6\xc3w|\x96\xa3\x14\x94\xf3\x9e,\x1d0\xf9\xff\ +/\xbd\x0d\x1e\xdf\xb8\xf4\xe7o\xffi-\x02\x11\x9b\xfd\ +\xd5p\x1b\x7f\x5cL\xb6\xdd\xb7\xd2?\x07\x03R\xf5\x88\ +.PY\xef\xb5\x06\xd1\x98\xb7E\xce\xbc\x07\xe4\x04-\ +y\x02\x07w\xa1\x15;k\xc82\xbe5p\xee=\x00\ +'\xcf\xb0\xc6J5\xbb\x90\x9f\x8cF\x13\xec[\xe3\xc6\ +\xef\x017\xa3\x0c\x92'\x0d\x17V\xb9\xe0\x84\xed\xb7\xae\ +o\xac\xdfK\x17G\x08\xb1_\x91\x1ag\x8dao\xdf\ +\xba\x8b\xe3\xf7\x22\x0e\x0e=\x05\xab\xad\x88\x0301\x19\ +~k\xe4\xde\x858\x8c\xc4\xc0\x07\xb2~\x87\x9b\x0d\xd2\ +\xdf\xb9\xb7\xc6\xed]h\xc3H\xe0\xd2\x1e\x82v\x17\xa4\ +\xbcX\x90\xfe\xcd\xc5\x81\xf9\x9d4Uo\xaca0F\ +\xaa\x9c\x01\x8f!\xf87ENz\x8e\xf7\xd1\xc9\x91\xb2\ +\x16\xadf\xba0\x0a\xd1\xc9h\xca\xbd5p\xa6\x01\x97\ +\x07\x9ck\xc0\xe5\x01\xc7\x0d\xb8,\xe0\xde\x89\x09\x5c \ +pM\x1c2\x81{\x1f\xe2`\x95\x0cUe\xac\x15.\ +\x9c\xf2@\xc1\xc1\x9b\x03\xd7\xc4!\x13\xb8&\x0e9\xc0\ +y\xad\xdf\xcb\xfc\x88Fo\xd1\xd1\xd3h\x95B@\xfb\ +\xd6\xc8aC.\x139\xd3\x90\xcbD\xce5\xe42\x91\ +\xe3\x86\x5c\x1er\xd0\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\ +\xc8E\xae)D.rM!2\x91\xc3\xa6\x10\xb9\xc8\ +5\x85\xc8E\xae)D.rM!r\x91k\x0a\x91\ +\x89\x1c5\x85\xc8E\xae)D.rM!r\x91k\ +\x0a\x91\x8b\x5cS\x88L\xe4LS\x88\x5c\xe4\x9aB\xe4\ +\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\xc8D\xce6\ +\x85\xc8E\xae)D.rM!r\x91k\x0a\x91\x8b\ +\x5cS\x88L\xe4\x5cS\x88\x5c\xe4\x9aB\xe4\x22\xd7\x14\ +\x22\x17\xb9\xa6\x10\xb9\xc85\x85\xc8D\xce7\x85\xc8E\ +\xae)D.rM!r\x91k\x0a\x91\x8b\x5cS\x88\ +L\xe4\xb8)D.rM!r\x91k\x0a\x91\x8b\x5c\ +S\x88\x5c\xe4\x9aBd\x22\x17\x9aB\xe4\x22\xd7\x14\x22\ +\x17\xb9\xa6\x10\xb9\xc85\x85\xc8E\xae)D\x1er\xd0\ +b\xaa\xb3\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\xe4\ +\x22\xd7\x14\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\x5c\xe4\x9a\ +B\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\x99\xc8\xb5\x98\xeal\ +\xe4\x9aB\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc85\x85\ +\xc8D\xae\xc5Tg#\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc8\ +5\x85\xc8E\xae)D&r-\xa6:\x1b\xb9\xa6\x10\ +\xb9\xc85\x85\xc8E\xae)D.rM!2\x91k\ +1\xd5\xd9\xc85\x85\xc8E\xae)D.rM!r\ +\x91k\x0a\x91\x89\x5c\x8b\xa9\xceF\xae)D.rM\ +!r\x91k\x0a\x91\x8b\x5cS\x88L\xe4ZLu6\ +rM!r\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\ +d\x22\xd7b\xaa\xb3\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\ +\x9aB\xe4\x22\xd7\x14\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\ +\x5c\xe4\x9aB\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10y\xc8a\ +\x8b\xa9\xceF\xae)D.rM!r\x91k\x0a\x91\ +\x8b\x5cS\x88L\xe4ZLu6rM!r\x91k\ +\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aBd\x22\xd7b\xaa\xb3\ +\x91k\x0a\x91\x8b\x5cS\x88\x5c\xe4\x9aB\xe4\x22\xd7\x14\ +\x22\x13\xb9\x16S\x9d\x8d\x5cS\x88\x5c\xe4\x9aB\xe4\x22\ +\xd7\x14\x22\x17\xb9\xa6\x10\x99\xc8\xb5\x98\xeal\xe4\x9aB\ +\xe4\x22\xd7\x14\x22\x17\xb9\xa6\x10\xb9\xc8\xbd\x7f\x85\xf8p\ +9\xeb\xae7\xbb\x9f6\xab\xd9\xfc^\xfe\x8d\x97\x93\xbb\ +n\xf6i\xde=<=\xfe~r\xd3\x09|\xab\xb5 \ +t\xbd\xfb\xf3\xfc\xde_V\xebY\xb7~9\xe5v\x7f\ +NN\xad\x04\x81\xf9\xf6\xb3\x94\xee\xf9\xf0\xea\x97\xbf\x08\ +\x09\xdb\xd5\xa2\x93\xaf\x9bvr\xe2E)n\xd6\xf3Y\ +\xef\xf1\x8f\xf3Y\xd7wb\xcfl\xfc\xbc\xfd\x8bz\xcf\ +nn'\xb3\xd5\xc3\xd5\x10\xcfO>\xcc\x97rb\xf4\ + \xaf\xbe\x95\xd3&\xd8W\xae\xb8\xed\xe67\xb7\xdb\xf8\ +\xf6\xfd\x94l\xac\x10{\xa0^\xea\xc1\xe6v\xf5\x10K\ +r5\xbc\x9e,\xf6\xbc\xef\x9f\xf6\xd7\xd5J\x98\x01P\ +!\xc0\x81\xbeC\x1d}\xbc\x1a\x8eXY\xed\x00\xf7\x8e\ +7\x87\xb3\x11\xc7\xa0\x98\x03\xd1k%\x91\x07\xb8\xd7\xca\ + \xb7\xa3\x7f\xe5\xdc\xdd\xe4q~7\xffk7;P\ +ux\xef\xc7\xf5Z\xaa\xd6h1\xf9\xdc\x09\xcf7.\ +h\xdb\x87\xf2\xf4\xb6\x9b\xfe\xda\xad\x7fYM\xd6\xb3H\ +\xc4s\xfd\xbay\xbat\xb2\x9eO\xe4\x11\xbft\x8b\xab\ +\xe1\x7f\xff\xd7\x0b\x5c\xdb\xcf\x0b\xe1\xf4z%\x8f\xdf\xfd\ +<^J\xdd\x9d,\xbe\xdf\x1dy\xd8\x81~rh#\ +\xdf8\x96\xeaO c)\xed\xe1\xfe\xf1\xfb\xd8(\x9f\ +\xf9\x19\x83B\xfbt\xe1\xf5\xe4n\xbe\xf8<\xdeH\x1b\ +\x18IS\x9c_\x7f\xbf\xe8\xb6\xdbn=\xda\xc4\x9a\xb2\ +\xbc\x19k\xb9\xf5A*\xe9\xc9\x81\xeb\xf9b1\xfe\x06\ +'^\xea\xf8\xee\x97\xd1s\xc5\x1a\xc3\xf7\x9b\xedz\xf5\ +k\xfc\xc0e\xf7\xfc\xf3S\xbd\x19k\x15\x18Y\xf3\x01\ +\x15)\xfe\xb6{\xdc\x1a\x8bf\x14\x86\xcf\xfd\xd3\xcdK\ +[=F\xe2\xf7'\xfdK\xbc\x09\xedQ\xa7s\x82O\ +,:\xe8\xa0\x04\xfe\xbeb\x7fy\xf9\xc8O\xd9\xc3+\ +\xe5{9{RDT\xdex\x0e/\x07\xe3\xbb\x85\xf6\ +\xf1z\xf5q9;>\xf8\x97\xd5|yz\xf4n.\ +\x1f\xb5\x90\xba\xb5\x1d\x9b\x97c\xb3\x894\xc8\xf5z\xf2\ +\xf9\x04\xcc\xfd\x97\xecK\xbf=tfw\x93\xedz\xfe\ +\xf8\xadVB:kD\xbe\xd0\xf1\xef\xe1\xd7\x91u\x8a\ +\x980\x5c\x00*t!\x18\xff\xdd3\xf2\x82\xfd\xfdd\ +{\xfb\xf2\xd4\xc1@\x90\xfe\xd3\xc08\xe5\xd0\x00\xe1\x85\ +\x97>\xd6\xb118\xf8\xb7\x01ha\xd3\x067\xb8\x1d\ +\xa045\x11\x00k\x07\x9f\x06A\x01b\xf0\x83\x7f:\ +\xdc&G_\xae\x90\xc3\xe4\x95\xd3l\x98\xe33@\xfa\ +[F\x1b/\xf7\xca\x83'\x22{\xfc\xec\xd3\xcb\x0f\xaf\ +\xff\x8f\xe1\xe1\x1bcu\x88_\xed\x0c\xfb\xa3\xc3/\x15\ +\xe2]\xf0\xb8\x97\xe6\xcb\x9b\xf36\x10\x8bw\x83\xc2S\ +/\xdbG\xd2eY\xb1\xb5\xc8\xfeb\x04\xca\xa0\xb6\xc4\ +\xc7\xc4\xaeEMRt\xb2\xba\x93\xbfOW2\x9dh\ +;y\x8d\xa2\xe7\xb3'\x14\x81\x12\x82\x183(:<\ +\xff~2\x97\xef\xde)\xf0\xf8n\xb2\x96Ny3x\ +\xbah\x10\xbf\xe4\xac\x9aE\x0cQ\x07\x8f#8:\xf3\ +\xac\x89\xa4,\x22\x18\x08G\xa7\xf6b(\xb5\x18\xa2\x1c\ +\x1d\x9d{\x8c2*\xf7\x18\xe0\xe3[\xa2\xf68\xc5\x06\ +)\xe0\xbe^T\xca_\xec*\xdc\xdb\xf07\xc2\x94A\ +a#h\xa4\xa3\x90\xb6\x03\x83F\x05\xef\xac5\xe1\x8c\ +A\x12\x03E\x0b\xeb\xa7\x0c\x82\xb4E}\x1c\x8f9\x18\ +\xac\xe3a\xe5\xb5\x0bq\x14\xf1[\x0d\xfe\xc8r8\xe9\ +\xca\x8e\x8a\xbe\x83\xfd\xe3z\xf1\xed\x99-n\xc8\xb39\ +j\xf8\xd3\xf9z\xba\xe8\xfa;\xc6\xbe\xdb\xbd\xd6\xfa\xbb\ +/\x96t\xab\x9c\xf4\xd4\x7f\x0b\x87\x7f\x1be\xb1g\xe7\ +\xa3\xb4B\x83A4\xfd\xa2\xb1\x8fZ\x9bc\xa6\xa2\xd1\ +gP*\xb8\x0f\xc7:\xb0\x8ev\xdaQ;z\x0d\x8e\ +bZ\xd2+\x9c`q\x9c\x8c\xf8\x8c\x15b\xe5\xa5\xee\ +\x01\xa6\xac\xa0\x0d\x1cl\x85\xb4\x98\xf2h\xf1\xe7\xb4\x90\ +b/#\xa1\x94\x15\xd0tlW\xd4\xc3\x8a+\x8f\x95\ +p\xc6\x0aZ\xc5h\xcc\xd1j\xcd3-Z9\x06o\ +kl,\x5c\x1e-\xae\xd1\x02\xe5\xc9\xfdH\xa7\xb4\x84\ +\x00\xc7~C{Z\x0c\x81=1\xd9\xaa\xa0E\xf4\xb2\ +@Z\xcc\x19-\x00\xcaY:\xb5\x8a#-\x04\x8aP\ +$\xc7U\xd8Z\x0a4\xc4\xe0\x8c\x16\xaf\x8cA\xc3\x8e\ +\xcfh\x81 \x06\x9a\x0c\x80\xa8BZ\x0a4\xc4\xb4I\ +x\xb1h\xc5\x16\x0b_\x0b/V\x06\xcd\x05\x8e[\xce\ +-d\x88\xa2\xef\xd0\xdb\xf3n\x8c\x94\x8e!45\xb6\ +\x97\x02y\xd1\xc9\x80R\x000V\xeb\xf3~L\xd0\x0a\ +\x02\x17\xd4\xc8K\x8962\xa6\xbc0\xb2w=\xd6\x98\ +t\xc4NW(\xfbX\xa25\xe6\xbf\x9c\x17t\xc6s\ +\x8d\xbc\x14h\x8e\x9d\xe8\xf8\xd7\xcaK\x81\xf6X\xc0\xc6\ +\x0b\x96h\x8f%\xedE\xcbh\xdf0\xfaT\xf7\x85\x17\ +\xed*\x9c\x84\xc1\x02u_C\x0f/\x00\xe9\xe4X\x9c\ +\xf8w\xe4k\xd4}*P\xf7\xfd\xb9\x9d\x0cZ\x06\xfc\ +\xc6YJ\xc7\x95d\xed\xf1>\x9c\xf5\xf0R\xa2\xee\xc3\ +\x97\xf3\x82\xd1\xdb\xa5BZ\x0a\x94}\xfb\xe5\xach\x04\ +i/\x15\xd2R\xa0\xea\x9b\x90\xf2\xa2\xd1;>\x9f\x85\ +\x89\xce3\x9a\xb8F\xd5\xa7\x02U\x1fSZ \x18\xe3\ +\xe1\x9c\x16\xa7\x0c9\xb2\x15\x8a\x8b)P\xf4\xadOy\ +!\x07h9\xe5\x85,\x06Wa7f\xb0\xc4n,\ +|\xa9\xbeTLL\x81\xb2ol\xcfb% \xf45\ +\x18\x94Or\x15z\x8d\x99\x12\x1da(!\x06\x95\xf7\ +\xc1\xb9D\xf8\xad\x0c+\x03\xeaP!1\x05\x0a\xbf?\ +w\xba\x00\x12\x85!\x83)-\x86\xac\xa3\x0a\xed1[\ +\xa0\xf0s2\xaa4\x0aY{\xc3)/\xe8\x98O\x8e\ +\xd7\xc2K\x89\xa3\xfd\x90\xf2\x22f\xb2\xa5\x9en\x0c\xd8\ +\x1a[\xe1p\xdf\x96\xe8\xfe\xca\x98\x12cI\x07\xe4\xaf\ +g\x04c\x0b\x14~K)/\x9e\x01\xf4\xf94?\xca\ +\x88SJP\xe3\x80\xdfr\x89#\x98s\xe1'Q\x92\ +\x18\xfd\x96.\x8b\x91a\xf0\x15\xdac\xae@\xe1\xc7\x84\ +\x16\xa7,x\xa3{<\xf9\x91\xa2IV!/%z\ +[&\xae\xfc\xac(h\xe7{\xdc\x94P\xfa1\xaap\ +\xc0\xefL\x89nJ\x89\xa5\xec\x94\x8fn\xe3\xc9z%\ +*#'\xb8BK\xd9\xb9\x12;\xb2d\xee2('\ +:\x92\x10\x83\xd1\x9d_\x0e\xd7\xd8b\x0aT\xfe\xc4 \ +\xf3b\x90\x11&~\xe3\xd1 \xe3\xa0m\x85\xed\xc5\x17\ +(\xfc\x00\xa9=\x16\xc0j\x0a\xa9\xdfE mN\xfc\ +\x9aj\xe1\xa5\xc4\x11\xbfN\xdbKp>\xf5\x1f#P\ +\x9e\xa0\xc6\x092_\xe2\xfa\xbeK\xc7\x95.x\x0f=\ +\xea\x82\x1eM\x8d\x0b\xfc%\x86Yx\xdfx\xf1%\x8e\ +\xf7u\x0f/`\x08\xe1\xeb\xe1\xa5\xc4\xe0\xca@6\x89\ +\x12\x07T\xdaZ\xef\xcf\x13] (G\x96\xb0\xc29\ +e\xc6\x12\x97\xc6\x92\xac\x0a\xc2\x8c\xa3`\x09SfH\ +\x83\xafq\x15\x86M\x89\xabcI\x1a\x12 e\xad\xe3\ +\x9e&\x03d\x82\xab\xd0X\xe6\x12\x97\xf9C\xeaxI\ +*&\xd96=\xcch\x0bU:`0\x17\xb9@\x96\ +\x8e\xfcI\xb1\x8c\x85\x93\x11&\xa2\xf4fhj\xa4&\ +\x94\xe8\xe4G\xa3\x9eE2m=B\xc2\x8cU\xc1\x83\ +\xafq1&`\x91s\x98\xa9\xd0\xb0\xe2`t\xb2\xe0\ +\x8fN\x1a\x8d\xa5\x1as\xc5\x84\x02M\x00\xea\x9b\xc7\xd4\ +6\x10CJ\x8cX\xd3gy\xf9*!\xa6\xc4\x05\x7f\ +\x97Z\xcd$\xbd\x161\xf64\x19 \xb65.\xf9\x87\ +\x12M\x00\x9f\x8e4\xbf:f@\x97\x18\xd3\xaf{m\ +\xb3\xa0M:\xd2\xac\x98\x99\x02-\x00w\x9e\xcd\x87\xc4\ +2cML=Y0\x02WHJ\x89\xce~&\xf5\ +\xc5\xf0$\xd6r\xe2\xbb\x04\x82\x96\xfc\x09\x15\xf2Rb\ +H\xbf\xed\x09\x1dG\x13\x1c\xa5\xbc0\x13T\xe8\xbb\x04\ +%\xa6\xbbL|c\xe3\x1c?P\x80$\xd5Bt\x01\ +4\xde\xd47\xc1\x0c%\xe6\xbbt:\x0dV\xe2\x08\x7f\ +\xcfZ\x19\x19\xf0\x15fV\x84\x123+\xba$?,\ +(\xef|\x12\x0cK\xa8\x82Fp\xa6BZJ\x8c\xed\ +s\xe9T\x8c\xe3@ILL\xcc \x87\xd6\xea\x0a\xcd\ +\xb1\x123\xf8\xe1\xf9\x14\x19b\xf4Pr>\x91\x17/\ +_d\xa8\xc2\xa5e(1\x83_p=\xbcX<\xde\ +\xb7s\xef\xb2\x0c\xce\xfa\x1a\xcd\xb1\x123\xf8%\x8e\xb1\ +h\x15\xc4=H \xf5\xf4C9\xcc\xb6\xc2<\xd7E\ +f\xbe\xd2I\xea^6\xac\xa1g\x0e\xc6\x06\x0cPa\ +?VbfE8\x9f\x1b\x93\xd1>2\xa6\xc3\xca\xb8\ +\xd8\xaf)P\x85\xc3\xfd\x123+z\xdf\x935\xc6\x89\ +Eo\x12b\xa2\x0f\xa0s\xbaBC\xb9\xc4\xd4\x8a\xd0\ +\xe7\xb7\x84\x96\xbc3==\x19\x0be\xbeBbJT\ +\x18\x93.'\xa3\x22\xf2`\xfd\xd7\xc3L\x99\xd9\x15G\ +=\xf9\xe1e\x10\x19\xa8g=\x19\x5c\x00S#3E\ +\xe6WL7 y\x9d\x19\xcd2\x8e\xa9Pf\x8aL\ +\xb1\x98lA\xf2*1V1Y\xeb+\x5c\xb4,3\ +\xc9\xe2\xa8'M\x09\x13\x87\xd4\x000\xca\x80g\xae\xd0\ +d.2\xcdb\xb2\xc7\x954\x19\xadm\xb2\x09\x09\x92\ +\x00\xa3\xc9W8\x85Yf\x9e\xc5\xb4\xc5X\x05^\x8c\ +f\x972\x03\xce\x05\xae\xb0/+4\xd3bj3\xbf\ +&3\x15SSd\xae\xc5\x94\x19\xa7\xcc.+I\xca\ +\x8c\x16\x0b\xa0\xc2mG\xa1\xd0l\x8bi\x1c\x86\x8f\x1b\ +]\x87$\xb1\x1f\xa2\x0c4\x09\xa9\xc25\xff2\xf3-\ +\xf6y\x94\x837.p\xcaLt\x9e\xb1\x15\xdafe\ +\xa6\x5cL\x07\x9aA\xe9\x80\x1a]\xca\x8c\x8e{\xc8`\ +\x85\xcc\x14\x99t1u\x8f\x0d\x02\x013\xf4\x04b\x86\ +\x10\x8c\xafpr\xa6\xc4\xb4\x8b\x96\xd29\x80\x10\x17\xc7\ +\x88{\xa6\x9a\x03\x04W\xe3H\xd3\x96\x99~)m4\ +q\x15 pj7\x1be\x82u5\xce5\x97\x98z\ +\x91F}[\xf9`\xcc\xf2\x97\x12\x83\xc6\x9e\xfa\x03V\ +BL\x89\xb9\x17\xadK\xa7g\xa47\xd3\x1cB\xd2d\ +\xbcX\x00\xce\xd48\xa3Yb\xf6\xc5\x18\xba\xe4S\xa7\ +L\x0dZ\xfbd\xb19(o\xadv\x15z3\x95\x98\ +\x80\xd1\xe8d\xeaL\xba-\x08q5)\xf5\x97u\xe8\ +\xb5\xaePg\x5c\xa1\xb3\x00=+\x01N\xb1\x8b\xc9\xd5\ +\xcf\x9b\x0d+c\x02\xd5\xb8\xac\xe9\xca\x9c\x07\xf0}!\ +\xccF\xe4F\x87\x94\x1b\x00\xebk\x1co\xfa2g\x02\ +8\xdd\x11\x8b\x159\x06\xf2\xa9%\x10\x0c\x87\x0a\xb7\x8d\ +\x05_\xe6\x5c\x80M\xe7iXY2=\x99e\xbd\xf4\ +u\xb6\xcaigo\x0a\xcd1\x93vj\xac\x1c\xc8\xa0\ +\xd3\xa7v\x1a\x88ES%9\xae\xc4`\xb3\xd4\xc3\xc9\ +)g\xd9\xf7\x8cm\xc0Z_]\x87&\xb6g\xa99\ +f\xfa\x9c\xcf\xc8\x05mMj\x09\x90g]\x9f\x8b\x93\ +\x90Sf\x96\x99\xbe\x84f\x226=\xc4\x00\xfa\xd3\xc6\ +T\x0b1\xaeL\x7f\xcd\x91K\xc3g=\xe9\x90\xc4\x03\ +\x0a7h\x80M\x8d=\x1a\x97\xe9\xb1\x99\x9ah\xafs\ +\x03\x96+\xdc'\xcba\x89\xe9f\xed\x08\xbe\xbc\xd9\xc8\ +\xc8F3\xfa\x0a\xb5\xa6\xc4t\xb3q--5\x9e\x9d\ +\xd2\xce\x1b\xdd3[\x13\xe2*\x1bW\xc8\x8d)se\ +\xa0/\xad\x19k\xa7]H\xc3\xcf\x9dq\xc6\xd4\xd8n\ +\x5c\xa93\x02}\xfe\x9bZ\x87\x1e\x7f\xa7\xa0\x021\x86\ +\x0a\xc9\xe12G\x9d}\x0d\x07\x88<\x86\x94\x1a\x94\xe6\ +_\xe1\x8e3P\xa2\x9d\x06=\xce\x1bql\x13z\xdc\ +\xd1\xc5\x14\x00\x7f\x1aq[K$z\x91\x9bh`:\ +\xffL\x8a\x0c\xb2=\xf7E\xa3\xd8\x98l\x95\x81\x82%\ +\x1a\xd0\xce\xf4ld\xce\x10\x10{\xda\x8c\xb7\xe8+\xdc\ +\x10\x08\xb8\xc8y\xb4\x9e\x1d\x805\x11%-Fd\x86\ +H\x9b\xfa\xa2\xd1m(q\x0e-\xe8\xd0\x93~N\x07\ +JT\x86\xac\xf2\x1el\x8d\x22S\xe2J\xda\xf9\x14M\ +P\x9e\x8c\x01\xdd\xe3P\x83\x96u}i5\x84\x97\x12\ +\xc7\x9a=\x1e\xb5\xda[\x9b\xf8:S\x9c\x9fq\xda\xd4\ +\xd8\x8f\x15\xd8^4\xa5#\xcc\xe0\x83\xd7=\xdd\x18\x05\ +\xe0\xfa\x16\xd0\x84\x97\x22w6\xe1\x9e\x1dM\xa5#\xf3\ +\xc9\xc4\x8cQ6\xf6o\x15\xba\xa0\x97\xd8\x91\x9d\xe6\xfb\ +y\xf6s\xb6:\xfaf\xa6\xb1\x01L\x86}\x851h\ +%\x0e/\xdd\xf9\x84L\x84_\x8b\xc6P\x1a\xb6I\x8c\ +\x1ek\xe4\xa5\xc8\xc9\xb2sKY\xde\x0c\xce\x1as\xee\ +;#&ApHP\xe1\xd8\xb2\xc4\x1d\x9a\xfc\xf9\x98\ +\xdf(\xcf\xda\x9d\xceT\xeexqJ\xcb \xac\xc6`\ +\xda\x12\xf7g\x82d\x96\x0cQ9kEJz\xa4_\ +l\xb2\x1aS\x03\x94\xb8;\x936I$\x8d0\xe3\x89\ +\x99\xbf\x22b\xca\xf4\x9b\xc14\xfb\xac\xb3\xde%\x01\x01\ +\xc2\x0cx\x13\xaa\xd4\x982\xbdf\xe0\xcb\x99\xd1\xc2\x0b\ +\xd6\xe7r\x8e\xbaH\x9f\x19\xff\xa5\xc4\x90b\x035\xc6\ +\xd0\xa0.27P\xe2\x9c\x89q\x07\x13\xed\xd8\xa6\xa1\ +g\x06\xc9\xd9\x1a\x9b\x8c)1\xcfY\xdf\xca\xb2g\x97\ +L\x96\x01+\xa35U8'\x83%n\xd1d{\xbd\ +1\xbc\xb1\x94\x848\xc7\x80'p\xc1\xd4\xd8d\xb8\xcc\ +Dg\xa6\xc7\xc3\x0c\xd9'\xbb\x9aWLM\x89\xfb4\ +\x99\x9eL\xa7F\x85\xe0\xb0\xaf\xd1 \x91\xado\x0dS\ +\x98\xc12C\x9c{&3\x03\x83\x09\x89\xd2x\xa5\x0d\ +b\x85;gb\x89\xbb5y\x9d4\x1a\xaf\x0cCH\ +M\x00\xa7\xbcfWa \x96\xb8]\x13\xa7\x03M\ +i\x1aN{\x9bx2\xc7D\x0e\x0e)\x98\x0a\x99\xe1\ +\x22=\x99!\xf5\xc9p\x0e\x1c\xf5\xe4\x06\x8c&\x1bU\ +\xd8fP\x97\x19\xd9\xec\x93]h\x9c\x09\x06\x10S\x9d\ +\xf1ZNT\xc8L\x99Q3\xc9Ls\x10\xdb\xcc@\ +\xb2\xcaLb\xb3\xa15\xb6\xc2\xd9\x99\x12\xb7\x07\x8a\x81\ +\xcd&i3\x14\x13\x03%\xdd\x19\xc4\xb9f\xa80d\ +F\xa8q%\x865\xf7\xe49C\xe3)\xc9AK$\ +p\xc9X\x93+$\x86\x8b\x8c3\xe3\x9e\xde\x0c\xb4\x07\ +J\xbd\xcct@\xacp\xaff,r\x83 \x9f\xce5\ +\x7f\x85\xcc`\x91\x09\xe8 e\x86\xd1\xa7\xf9\xe7*&\ +\xc6\x94\x9a\x7f.\xd9\x84\xd6+t\xec\x93\x5c\xa7\xe4\x94\ +\xb1\x16\xa0\xc29\xcd\x12\xf7\x08\xda\xe5\x9f\xeb\xe1\x86-\ +\xdat#Z\xa7\x00\xa1\xc2}\xb5\xb0\xc4M\x82\x9e\xd2\ +\xcf%}\x1a+\x1f\xf76\x09i\xa7\x16\xac\xa9q\xd3\ +3,q\xa7\xa0]\xb4yH\xb9\x09\xe4\x9cq)7\ +\x1c\xb7\x08\xabp.\xa0\xc4\xbd\x82\x9e\xf2\xcf\xb9\xd4\x18\ +\xd0\xa8O\xbd\xfe\x9f\xc3g\x00exV#9EF\ +\x03$\xb3\x011\x89\xb6\xd3\xa6\xcfN\x03\x075\xae\xa1\ +\x95\xb8Y\x10\xa4\xf9\xe8\x91T\x9c\xd9\x0c=\xfdY@\ +\xf2T#3\x5cf\x1a\x00\x9d:8\xb1t\xbeIZ\ +\x13\x01\xcc\x82\xa3\xf0\xbf\x99\xcf\xf1\xb9)1\x11\x93\xa3\ +2\x8e\xbfa\x1d\xff\x9e\x16\x19\x04\xbd/*\xef\xdd\x5c\ +Xx9\xba\xc7\xf2\xe8\xa3\xa4|\x7f\x1a\xa0\xf2\x1a\xd0\ +\xf9\x0bV\x1c\xd0\x8ar\xca\xa1\x00A^\x8c\x17\xc6\xc6\ +\xf0`\xf6v`\xa2~\x06\xd8\x1d\x22/\x17R\x0fR\ +\xc6\xc9\xa8a_\xcc\x0f\x977\xf1\x87\x97\xffm\xbb\xc7\ +\xed\xd3-\x8fw\x8bq\xac\x0bR\xe4\xfbu'u\xe6\ +S\xf7\xfc\xb0\xcc\x1a\x0a\x22+\xe0\xff\x1e5\xf4\x1b\x04\ +\xe7=\x7fq}\xd4\xca{k\xf7\xc3Z\xa9%#\xc3\ +16q?\x98z\x1e_y\xdcO\xf0E\xf4\x228\ +\xc6\xa2\x91Q\x1a\xee\x00\xfcp\xb9\xf9$\xb8\xfd\x0f\x00\ +\xbe(\xf5\ +\x00\x00\x07\x19\ +\x00\ +\x00\x1b+x\xda\xedYYo\xe3F\x12~\x9f_A\ +p^\xc6\x88\xd8\xec\xfb\xd0H\x0ev1\x09\x12`\xf6\ +%\xe7n^\x02\x9al\xc9\x8c)\xb6\xd0\xa4,{~\ +\xfd\x16)\xf1\x90D\xe5\xf2`\x80\xecF\x86\x0dvU\ +\xb1\x8f\xaf\xbe\xaa\xae\x92\x17\x9f?m\x8a\xe0\xd1\xfa*\ +w\xe52$\x08\x87\x81-S\x97\xe5\xe5z\x19~\xff\ +\xdd\x97\x91\x0e\x83\xaaN\xca,)\x5ci\x97a\xe9\xc2\ +\xcfo_-\xaa\xc7\xf5\xab \x08\xe0\xe5\xb2\x9ag\xe9\ +2\xbc\xaf\xeb\xed<\x8e\xb7;_ \xe7\xd7q\x96\xc6\ +\xb6\xb0\x1b[\xd6UL\x10\x89\xc3\xc1<\x1d\xccSo\ +\x93:\x7f\xb4\xa9\xdbl\x5cY\xb5o\x96\xd5\xeb\x91\xb1\ +\xcfV\xbd\xf5~\xbfG{\xd6\x1a\x11cL\x8ciL\ +i\x04\x16Q\xf5\x5c\xd6\xc9St\xfa*\xecq\xeaU\ +\x8a1\x8eA7X\xfe>\xaby\x05\xa8l\xe1\xb77\ +\xef\x04\xa8r;\x9f\xda\x15\xbcgQi\xeb\xf8\xddw\ +\xefze\x84QVg\xa3i\xf2\xf2\xa1J\x93\xad=\ +Y\xb5\x13\x1e\x10H6\xb6\xda&\xa9\xad\xe2N\xde\xbe\ +\xbf\xcf\xb3\xfa~\x19r\xdd\x8e\xeem\xbe\xbe\xaf\xfb\xe1\ +cn\xf7\xfftO\xcb\x10\x078\xe0:8\x8a\xf3l\ +\x19\xc21\xe8\xc1f\xf039h\x8f\xd3\xcf{\x0dF\ +\x86\x22\x1e\xbc\xd9\x95\x0f\xa5\xdb\x977\xadYw\x96y\ +\xe6\xd2fs\xcb\xf0\xdb/~~\x9fW\xb5-Q\x83\ +\xd1-\x18-6\xb6N\xb2\xa4N\x9a\x17\x0e\xebv\x12\ +B[\x0b\xb0\x01_\xcd\xbfy\xf7\xe5a\x04\xe34\x9d\ +\xff\xe8\xfc\xc3q\x08\x9f\xc6 \xb9s;8Wx\xdb\ +\x8b\x17Y:\x07t7I}\x9bo\x92\xb5m\x1c\xf3\ +\x19\xa0\xb9\x88\x07\xc5\x89q\xfd\xbc\xb5\xc3\xa4\x87i\xbd\ +=\xb8i\x92\xabY\xba\xc9\x9b\x97\xe2o\xeb\xbc(\xbe\ +n\x16\x09\x83\xf8l\xd2\xbc.\xecm\xbb\xe6\xe1\xb1;\ +E|<\xc6\xf1\x90\xf1\xe8\x94\x8b\xb8\x03\xa1\x1dev\ +U\x0d\xf84#\x82;l6\x89\x7f\xb0\xbe[\xb1\xf7\ +LU\xbb\xf4\xa1\xb1\xfe\x87\xf7nO\xdeC0\xfa:\ +\xec\xcc\x9c\xcf!\xc4\x96a\xb2\xab]/\xf4v\xf5\x9f\ +\xc6\x93x,\xf9\xf7\xa9\xe4\xea\x8cU\xfd\x5c\x00F\x0e\ +\x18\xb1*\xdc~\xfe\x98W\xf9]a\xc3\x8b\x8d\xe5U\ +\xbb\xb5eX\xfb\x9d\xed\x9d\xb5\xd8&\xf5\xfd\x00}\xb3\ +L#\xe1\xc2\xe8p\x10\x83\xf4_\x01lg\x06\xbf\xc1\ +\xfb@\xc0S$\xda\xc7\x88P$F\xe2\x83\xb43\xfd\ +\x10\x8c&9\xeet\x05\x0e\x8b\xfc\xae\xb0s\xfbhK\ +\x97eo\xab\xda\xbb\x07;\x7f\x8d\xdb\xcfq\x18\xb5\xd1\ +3\x87\x0c\xb7\xadG\x93\xd4>)\xab\x86B\x10&i\ +R\xd87\x18\xe9\x9b\x83\xb4Hj\xfb\xe6\xb0\x9d\x9b\x9e\ +\x0c\xe0\xd0\xd6O\x07\xe76\x1el\x9f\xfa\x08i\xc2#\ +kb\xf1\xb0\xc4\x16\x88\x94\xba\xc2\xf9e\xf8z\xd5~\ +\x8ek\xdf9\x9fY\xdf\xa9d\xfb9Q9H\x00@\ +I\x88\xd5\xa3\xd8\xdd\xfdb\xd3\xbav\x85\x85\xcd54\ +&\x9d7\xd7\x1e\x8e6%\xdf\xe5\x99\x9dR\xf4>l\ +\xb6\xd7/4\xa9\xad\xee\x93\xcc\xed\x97!=W\xee\xf3\ +\x12\x14\xd11'\x11-\xd9\x15\x8b.O\x11LE8\ +\x90\xbf\x07\xaa\xe3Eu\xef\xf6\xcdI\xc0\xa3IQ\xd9\ +\xf3\xd9>8\x07>b\x88iL\xb1\x16\xe7\xea\x142\ +\x1f\xa4ZB\xa44\x82\x91\x0b5\x9c\x8f\x19\xc4\x98\x94\ +\xca\x5c\xd9(\xcc \xd4\x15\x1d\xbcN\xaf\xe96\xc9S\ +\xbe\xc9?\xd8l\xf0\xd5\xb0\xee\xce{\x08\xd0\xa8H\x9e\ +-8zm09Ri\xb1\x1e\xb0Xs\x22\xfa<\ +\xb0\x1e\x87\xe8\x9a\x0b\xce\x7f;\xb8\x18\xbe\x08\xae\x19\x0e\ +\xbej\xee\x81\x1f\x9a?_\xc1\x9d\xf0\xd3\xc8d\xd8\x9f\ ++K`\x95\xf3\x11\xec\xf41\xa9w\xde\x0eD8\x0b\ +\xb2y\x09\x15\xc0(+\x0e;=\xee\xb59\xdcdd\ +A~\xf6\xf9\xd3\x1b\x88=\xc5\x0c5|\x06\xbb\x9b\x0d\ +#\x051g\xe0\xa0d\xc60R\x8c\x1a\xccn\xc6\xd9\ +\x7f=N\xe5\xedJ\xda\x88p,\xbc\x5c\x0b#)9\ +\xc7\x9c\x8bv\xb1\xd102\x88\x0a\xa28S\xb3\x88\x22\ +\xaa\x88\x82\xb5\xc7\xeb]\xe0\x1c\x8c\xaf@\xc80\xb6\xb9\ +)\xa0jH\xd3\xf0\xcch\x04\xd6k+\x9b\x9f\xb7\xd7\ +\xd3\x93\x22L\xa5\xfa4=Q\xa4\x0c\xe3\xca\xc8^^\ +\xe4\xe0\xa0d;\xbf\xdb\xd5\xf5X\xf6\x8b\xcb\xcb9\x5c\ +Z\xd6w\xd2vP\x00\x15\xeb9\xefdY\x02\x01\xec\ +}\xf2\xdc:\xaf\x93\x1eC~N\xce\xf6\xdf\xdc\xd9A\ +$(2\x02\x1b\xc2!\xf9r\xc9\x15\xc1,0\x88S\ +Jq\x8b\x1e\xc7\x94\xf5At\xc1E\xa2\xceg\xfd-\ +\xb2\x8d\xef\xd9i\xec\xff7`\xe5\x88\x02\xff\xa4\x9cE\ +\x84#\xa3\x187\x02peB\x13lf\xed\x036\x9a\ +^\xc7\x95}t\x5c\xff\x7f8\xcd\x08\xd2\x0aS\x091\ +O\x14\x12\x94S\xac\x02\xe0\xb2\xc6\x9ch=#\x04q\ +\xae\xe9%\xc4\x03\xfa\xe2oVO\x01\xcba\x13\x9aJ\ +\xc6g\x11\x83\xcc \x81\xc3<\x80\xa2I\xc1%\xac\xe4\ +\x8c\x1c\x12\xfauX\xd5\x1f\x84\xf5w1\xf8\x0c{[\ +\x14\xf9\xb6\xb2\x93\xf0\xf7\xa7{{p\x84\x94\x18\xafV\ +\x07G\x9c\xea&\xfd2\x06\xaaw\x8a&\x862\xc1.\ +\x1c\xe0\xdd\xae\xcc>\x9e\x03\x06\x14\x99\x8cdt\xce\xdd\ +\xb6\x22\x82\xa4#\xe0\xe2\xd3\xfc\x5c\x09\x05\x8dDF\x1a\ +(\xa5\xce]\xe0\x9f\x9a:\x8b\x08\xa6\x15=g\xbdo\ +\xea(\x84\x85Q\x10K/\xc1\xd9\x18!^\x843T\ +\x82D\x1bB\xa9\xfa\xa48\x93)\x94)$\x12P2\ +2\x81\xb2B\xdc0I\x85\x9cD\x19K\x08\x1d)'\ +P\x86KXq\x98\xf5E(3\x86\xb1\xc6/BY\ +\x1bl$ \xfdi\xd9<\x852\xa3Hr)\x14\x9d\ +@\xb9\xc9\xeaT\x0a*\xc4\x04\xcc\x1cqB\x88!S\ +d\x86KY\x19A\x18\x7f\x09\xccjE\x93\x17\x92\x99\ +C\x05\x0c-\xe0'%\xf3d\xc2`HI&\x09\x99\ +\x04\xb9\xad[\x8c\x99\xe6\xb2\xd0p\x1dM'\x0c\xae\xb1\ +f\x94\xbd\x04c!0\xce\xf8\x0b\x13\x063Z\x1b\xfa\ +I\xa9\x8c\xa7P\xe6\x00\x89\xc0\x82OR\x19bN\x0b\ +\xa1\xaf\xa0l\xa0y\xc1d\x12e\x8d\xc1\x01L\x9f~\ +q\x15\xaf\x7f\xbd\x93:\xbb\x1aF\x9d\xd4\xf0%\x08F\ +\x80\xbe\x01'\xb2\x19\xf4\xd8p\xddC3\xc0\xe8\xc7\xe9\ +\x99\xfe\xd8\x85\xdfA\xab\x85\x9e,G$\xe4\x08f\xe0\ +z\x82:\xcf\xa0\xa6\xdf\xa3A\x1apD\xa0\xe1\xc3d\ +\xa6\x91\xe0P\x07\xca@!l\xa0\xf0\x9eA\xda`\x90\ +\x9d\xa1D\x81\x8e\x99jD\x99\xc4\x17\xc0\x9f\xf7\xc0\xbf\ +R\xa6\x19f\xb2$=%\x1eF\x86\x11\x22\x8c!\xdb\ +\xa7\xf3B\xed\x84y\xd3\x95\xda\xc0\xb2\x8fS\xd0\xffi\ +\xc0/*\x8cc_\xa3\x90\x062\xe3\xa6\xaf\x91\x08z\ +\x19\x229`\x0eyD1,4`\x0eu5 \xac\ +A\x04\xa9\x03j\x8a\x19aHB?\xc3\x18\x0d0b\ +\x9c3h\xfd)\x85\xb2\x1ccl\xe8\xdf\xe8O\xa2/\ +\xa7\xd1\x87L\xc2\x14\xa7\xa4\xed*1g\x04\xd8\x9d\x06\ +\x14\xc1\x95\x8d5\x85\x16^\x0aI\xa9\x94 \x82rB\ +\x12\xd3\xd4\xe4\x00\x09\x17\x9a\x01\xfaP`(\x06\x0d\x10\ +D\x06\xd4(\x8c\xf2\xbf\x00\xfa\xa3\x9c\xd6?\x0e\x0f}\ +\x8e\x9bLe\x04\x01S\x15\xd5\x90\xc9\xa8\x80D\xab\xa8\ +17\xe1\xe9Wn\x84w\xd5@;\xeb\xa2\xf9w\xc3\ +\xed\xab\xff\x02\xc2&\x8bb\ +\x00\x00\x08\x03\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a\x0a\ +\x00\x00\x0b\xbc\ +\x00\ +\x00e\xa7x\xda\xed]mo\xe3\xc6\x11\xfe\x9e_A\ +(\x1f\x92\xa0\x22\xb5;\xb3o\xa3\xb3/@\x11$(\ +\xd0\x02E\x9b\xa2\xfd\x16\xf0(\xdaVN\x96\x0c\x8aw\ +>\xe7\xaf\xf5?\xf47\xf5YJ\x94\xb8\x8c\x9d\xc4(\ +\x8a\x00\xa6u8\x9c8\xbb\xdc\x97gg\x9e\x9d\x19.\ +u\x17_\x7f\xba\xddd\x1f\xebf\xbf\xdem/g\xba\ +P\xb3\xac\xdeV\xbb\xd5z{}9\xfb\xc7\xf7\xdf\xe6\ +a\x96\xed\xdbr\xbb*7\xbbm}9\xdb\xeef_\ +\xbf\xfd\xecb\xff\xf1\xfa\xb3,\xcb\xee\xd7\xab\xf6\xe6r\ +f\xc2,^\xdd\xd4\xeb\xeb\x9b\xf6t\xf9q]\xdf\xff\ +q\xf7\xe9r\xa62\x95\x99\x90\x1d\xc5\xeb\xd5\xe5\x0c\xb7\ +\xd3\xa1\xce\xb9g}(\xdd\xbe\xdfW\xe5]\xbd\x1c\x96\ +d_V.\xd4D\x15\x07?\xcfH\x91\xce\x95\xcd\x89\ +\xbf\xean\xd9c\xb4w\xf8\xbb\x5c\xed\xaamy\x8bA\ +\x96m\xf5C\xbb\xff\xa1\xda|\xd8\xb7u\x83\xa9\x14\xe8\ +\xb0\xab\x8b\xd9n\xf7\xcb\xbe\x93\xcb\xd9M\xdb\xde-\x17\ +\x8b\xfb\xfb\xfb\xa2\x17\x16\xbb\xe6z\x11\xdb\xd9\xdf\x95U\ +\xbd_\xf4\xf2\xc1\xfd}\x8f\xa7\xfb{A\xb1\xdf}h\ +\xaa\xfa\x0aM\xd4\xc5\xb6n\x17\xdf|\xff\xcd\xa90W\ +\xc5\xaa]\x9d\x9bIz\xbf\xe7\xae_RJ-\xd2\xc1\ +\xe2\xea7\xd6lVW\x8f\xd5\xd4\x22\xb2P\xb4 \xca\ +Q#\xdf?l\xdb\xf2S\xbe\xdd\x7f>\xb8\xb5\xaaN\ +wVM]\xb6\xeb\x8fu\xb5\xbb\xbd\xddm\xf7\x078\ +\x92\xca\xabs\xe5\xbb\x0f\xcd\xa6\xab\xb1\xaa\x16\xf5\xa6\xbe\ +\xad\xb7\xed~\x81\x15[\xcc\xde\xa2\xfe\xc5m\xdd\x96\xab\ +\xb2-\xe3\xbd\x87\x95\xef%\x9a\xba\x1a\xa8\x831-\xff\ +\xf6\xcd\xb7\x87+\x5cW\xd5\xf2\x9f\xbb\xe6\xfd\xf1\x12\x9f\ +X\xa1|\xb7\xfb\x00\xcd\x9a\xbd=\x89/V\xd5\x128\ +\xdf\x96\xed\xdb\xf5my]G,\xfe\x80\xf1],\xce\ +\x05I\xe5\xf6\xe1\xae>7zh\xb6\xa9\x0f\x0b\xf6\xe8\ +|V\xd5\xed:\xde\xb4\xf8{\xbb\xdel\xfe\x14;\x99\ +e\x8bQ\xa3\xebvS\x9f\x85\x17\x8b\xe3\xe8\x8fs[\ +\x0c&w\xb1\xe8\xe7\xde]\xad\xea\xab\xfd\x19\x96x\xa5\ +\xd5\xb1\xf9\x8b\x93FG5\x5cE;:\xd4\xbc\xc3\x10\ +\xaa\xddf\xd7\x5c\xce>\xbf\xea>\xb3C\xc1\xbb]\xb3\ +\xaa\x9b\xbe\xc8u\x9f\xa4h\x07]\xc6d`MG\xf1\ +\xee\xdd\x8fu\xd5\xb6\xbbM\xdd\x94\xdb\x08\x00z?\x94\ +\x5c70\xea\xc7\xe4\x1f\xd6\xab\xfa\xb1\x82\x93\xc9\xc6\xe1\ +\x9d:z\xb4t\x7fS\xaev\xf7\x973\x1a\x17\xde\xaf\ +\xb7(\xc8\x8f|\xa2\x83\x0dO\xd4\xe89F+\xebg\ +g\xfcN@\xf5\xf7\xedov\xf7q&\x97\xb3\xabr\ +\xb3\xaf\xc7\xad\xfd\xb4\xdb\xddb\x18E\xa0`\xc8\x8fK\ ++\x90V\xae\x89\x0b\xeb\x9c\xfcl\xac\x15f\x97\x0b\x15\ +Z)\xe7\x9e\x9a\x09Z\xb0\xe6\x89\xb2x\xffS\xf3\xbb\ +-?\xado\xd7?\xd5\xab\xf3R\x9d;\xfe\xd040\ +\xb0|S>\xd4\xcd\x80DG W7u\xf5\xben\ +\xde\xed\xcaf\x15\xd7\xe1\xa8T\xd7\x87\xaae\xb3.\xd1\ +\xc2\xbbzs9\xfb\xcf\xbf{\xb4\xda\x87\x0d\x96\xf4j\ +\x87\xd6\xbb\xef\xcbm\xb4\xa0\xcd\x9bNr\xdfa\x9e\x88\ +\xf6\x18\xe2\xd2pAd\xcc\xdd\xa77\x9b\xf5\xb6>.\ +\xcdR\x17d\x0f\x95\xae\xca\xdb\xf5\xe6a\xb9/\xb7\xfb\ +|\x0f\x1e\xbez\xb3\xa9[\x10r\x1e\x99\x15\xac\xbcT\ +\xb8\xf5\x1e\xfa\x99\x08\xae`lK\xa8\xb7\xbf\xa2\xb2\xbb\ +\xc8\x8f:\xb5\xd4o\xf6m\xb3{\x1f\x07\xb7\xad\x8f\xdf\ +\x0f*\x83NUPN\x0f4\xa2\xad?\xb5\xc6\x92\xc9\ +\xe5(l\xa1\xb7\xfbH\x0c(\x8b_7e[\x7fi\ +\x0a1\xe2\x8d\xa7y\xae\x0d\x96\x14\xea\xe0\xbf\xea\x99\xe9\ +\xaelozk\x8f\xd4\x95q(D\x1bo\xdc\x9c\xa5\ +\x10\xa6`9\x03\xab[\xa7E\xfb9\xbey\x1f\x14K\ +\x96c8\xec9\xb89Dl\x826Y\x15\x85\xday\ +e\x03\x84\xc1\x19\x13B\x96\xa3G\xa7I\xcb\x1c\xa0\x89\ +\xf3LQd\xad\x22\x1e\x8aT\xa1=\x05\xf1s\x15\xbf\ +\xb3\xb1^\xec\xe1\xbb\x88A\x03\xb1\xe7@\x9a\x5c7\x1a\ +\xc3qQ\xa2\xcc\xea\xe0\xa4\x93\x1d\xfa\xc3\x1c\xd1\xb8S\ +\xbe\x1ba\xf7\x0d2.\x14Y\xafB\xf6\xe7\x8c\x5ca\ +\x05\xad\x9b9\x11V\xd1(\xef\xe2\xc0\xf1\xddx\xe7P\ +\xd7\x15\xcaj\xa3m\x96\x9b\x82\x1d\xac\x83\xe7\xb9\x005\ +\xc5\xc6e(E;Z\xf9(c/]\xdf\x03$\xc4\ +*a\x1f\x9bs\x8c\xd6\xc2\x9cP\xa6\xad\x81\x08\x96\xa6\ +\xb4\xf6n\xde\x97e\x9bL\x15*Ne\xde\xb7\x80\x91\ +\x1c\xa7\xd9M\x8e\xe3\xa8u\x866\xb0|\xfe\x8c\x81\x81\ +\xc88t?\x14\x01K\xad(0P\xa3\xc2\x13kv\ +hW\x0cF\x142F\x9f*\x18\x99\x9b\x02\x0a\xa35\ +G$L\xa1\x99\xe6\xf1\x1f\xc1\xdav\xeb\xd7\x03\x85z\ +\x18\x22\xb1\xc9\xf2P\x04\xed=\xc6\xad-\xd0\xf6\xd6b\ +.\x1a\xc0\x1b\xe7-F\x0eu\x81L\xc5\xd9\x1c\x15\xf4\ +\x0cC\x9cM\xa7\x1b\xb6\x9bM\x10E\xa8\xc4,b]\ +\x94\xb8\x884a\xb8\xecQ\x8d\xa2\xe8x'\x96CT\ +\x10\x8a\xcba\x09`q?\x85\xb8\xc2\xe8]\xb1%\x9f\ +y4\xe1\x8d`\x85\xb4\xc7\x88D+\xc68\x5c\xc1X\ +!\x0c\x04B\xed\x14n\xeaFBV\xb0\x84gu=\ +\xa9\xcc\x11\xb986+\x02\xd0\x87\x12Pd`\xd3\x81\ +\xda\xddoN\xa3t\xb1#\xcb\x82\x85\x87\xaa(\x8cN\ +(\xfbi\xd6[\xd3/\xf3\xcd\xc7\xc8Q\xdb\xf6W9\ +\xa8m\xea\xb6\xbaIdG\xca\xf9\xe2\xfb\xfa_\xd9w\ +\x0fM\x9d\xfd\x15\x84\xb8\xd9\x94\xd9_`\xcb_\xbc\xc9\ +{\xa2\xcc\x0f-\xdc\xd5\xd5\xfaj]\xc1\xdf\xd9m\x9f\ +\xbc\xe9\xd7\x09\xe9Q\x12:\xd0P\xe4\x10l2=\x09\ +/\xae\xbb\x7f\x229\x1dj\xc1cYv\x8e&\xaa\xc2\ +\x1b\xa9\x9b\x8f\xf5\xff\xc4\xc9\x8cA\x90\xf6\xff\x17N&\ +\xf0\x97\x0f\xbf\x99\x93#\x1dZk\xf88\x9f\xb8\xa7\x9a\ +h\x11\xa2{\xdf\x04\x1b!\xbb\x02\xec+\xe1Q\xe6\xce\ +\xa9\xc7\xad\x81\xb3r\xa8\xd1D'\x06\xea\x16\x04\xa67\ +h\x07\xa6h@\x9bt\xee\xcd\x80\x98\x83V\xba\xdf\x00\ +z\xd7\xc1\x15\x01v\x01\xa2?\xca\xfb \x06\x84\x03J\ +7\xc3\xa1\xc4n\x8d\x157Z\x92\x0e\x0d\xb0\xf4J\xbb\ +'\xd0\xe8KG\x80D\xba66\xf4\xe2\xb8D\xd0\xc6\ +e\xb3\xfb\xb0]\x0d\x85?\xee\xd6\xdbT\x0aW\xb4n\ +6p\x0d\xda\xa5\xe9e\xab\x12\xfeT\xd3\x94\x0f\x09\xf8\ +\xe7\xb1\xdc\x95k\xacx\xe7\xff-o\xcb\x06>\xc1>\ +\x8b\xc3\xcd\x0e5\x9f\xc26\x80\x14\x94\xa7\x04[l{\ +\xb0\xf5!\xb6 L\xb6'\x1f\xec\x8c\xadgM`\xa9\ +\x14[\x12\x90\x11\x9d[\x18b\x9b\xf3c\xe8\x1e\xcd\xed\ +\x17\x94+t;\x86\xe1\xdf\x01\xcc\xde\xea\x92\xa5\xef\xe1\ +\xac\xd6M\xb5\xa9\x9f\x9e\xd2o5\x1f8W\x16\xf1\xee\ +\xef\xa8+\x87J\x9d\xca\x0c\xd6\xadc4\xd3\xabGt\ +\x95\xb1\x95`#Q\xa1_\xf4\xe8 {\xf8!*\xd8\ +\x93\x1f\xdfD\x7fvZ\x08\x9d\x14\xbb\xc3(\x80\x8d\xac\ +g;\xc0\xc8\xc1\xac\xe0q:3a\x8c\x5c\x8a\x11\xbc\ +\x0f\xb8\x90\x89\x1e\x89\xc0\xc8\xa7\xacF~\x08\x91\xc0\xae\ +\x18qG\x02\x91W^\xb9S\x18;E\x8clJG\ +FE\xff|\x80\x91\x80\xa1\x84\xac\x9d\xb2\xa9\xb1Mm\ +\xcd\xc0\x8f7\x9c\x80\x14\x14\x82\x07=ecs\x94Z\ +[p\xfe\xe4SF\x8cB\x81k|&\x0c\x91\x0c\x10\ +\x22\x84\xac\xda\xf8 \xaf\x94=\x84H\xa7Jd\x11\x15\ +\xcap\xe7G\x94\xee\x8d\xb5\x13Fh\xe4?\x92c;\ +\x02(\x08B7=\xe5}_\xa5Z$F\x91\x1br\ +\x91\x05F!f\xe6\xa6LF\x89\x93mc\x92\xca\x99\ +\x84\xaf\xe1_[\xc72\xe5=M\xa5\xc6\xa6u8?\ +`9(\x92\xf6\xd8\xf8\xcd3\x09I\xc4\xda\x17\xb4\xf1\ +'\xa1\x88)|pD\xc3P\x845H[\x85 \x13\ +F\x89\xd3\xad\xcd!`\xc3p)E\x09\xb0\xb1\xa6)\ +\xeb\xd2\xe9\xf1\xde\x11%M.\xf0\xd0Gb*X9\ +\xe3\xa6lq>\x8dl\xe1\x04h-bR\x94\x94\xf6\ +j\xca\x06g\x13w\x1b\x1b\x9c\x0e\x8e\xfd\xd0Ub\x86\ +\x0b.\xe4\xa7\xacJlS\x87\xd2u\x8f\xedB\xa2K\ +\x06\xfb\x9eUv\xda{\x5c>r\x05@A\xe7\x83\x14\ +Gm\xd2\x8ah\xd2\xae\x80\xe4\xa3$\x80\x12\x12~e\ +\xef4\xc4M\xd3\xdb`\xef`\x98\xdd\x10%[\xc0\xdc\ +\xac\x9e2}\x8f\xb2\xb7@\xc4h\x97<(\x01J\xa4\ +\x14\xb6\xbe){\x02j\x9c\xc0\xf5\x1a\xfeR\xe20)\ +\xc0\x14\x8c\x84)\xf3\x12\xa7\xce\x00\xc7\xb3!>\xd0\x88\ +\xbe\xbd\xb12emr*\xe5oS\x04q\x92h\x13\ +Ia\x82U\xcf}\xf2\xf6\xe2`J\x81\x82\xee\x00(\ +\xb2\xa3h\xcez\x13\xdc\xd4\x81\x0a\xa9G\xe0\x83\xd2\xa9\ +K\x00j\x17\xedd\xf2\x1a5\x0aW\x14\x08*\xc95\ +\xb1+\xbc\xb5\x93\xd7\xa7\xc4-\xa0\xc2\xc4sw#}\ +\x12+\x81\xa6\x8e\xd3\xe8\x0c\x05\xe3\x93&\xe5\x98\xf4D\x0f\x08\x9dt\xe00\ +y\xad\x92\xd49\xc7\xde\x17\xc8\x9a\x04*]\x04\xf8\x08\ +!L\x1d*\x9fr\x15\x17\xc6\x07\xedl\x0a\x95\x0a\xce\ +\xbe\x1a \xa7\xb9\xbbPh\x15\xb4K\x91boCx\ +V\xc4\xb72\xd6\xbe\xa4\xd0\x98R\x8c\x98t\xfa\x9e\x18\ +\xac1\xc4W\xe7\xf5\x94AJ\x8dN\x8a\xe0\x85\x8d\xa4\ +(\xb1\x17\x09f\xc2(\x8dr\xe5R8G\x9cFz\ +\x88\x88\xc1L\xec&\x8c\x92O\xf6:\xa6\xc2\x90\x18;\ +\xd2%l~\xdeN\x99\x96l\x1a\xbbx8O\x9aC\ +z\xd0\x80<{\x92)\xd3\xd2\x08%\x89?2\xe2\x92\ +S\x87\xaf0uI\xcd$U\xa7\x0b\x1d\xb4M\xdeb\ +\x8di)\xa7\x84&\x8c\x92$y:\xc6p\xbd\x98\xe4\ +\xdd:\x80\xa4\x0c\x870e\xf6\xd6iPG\x85\x16\xc3\ +\xc6\xa4\xe7\xe9<)\xfb\xbc\xf3t/\x0c\xa5\xf4\xb5\xf1\ +.\xe7\xeb}\x92P\x89\xc7\x9fD\xf8\xf4\xba\xfd$=\ +\x01\x95*\x13B\x5c\xa6\xc1\xdbR\x0f]\xd2\x0e\xb8\x19\ +\x9a\xb2[\x193\x99\xa3\x87\x9c\xa2\x99\xec\x88\xbf\xe3\xf9\ +\x95I\x07)\x88yGOZ\x0c\x93I\x13N\xa6p\ +\x86\xfd3\x8f\xd29\xf7\x82P2\xa3\x9fj\xb0\xe1\x9c\ +\xfe>BD t\xe2\x09c\xc4)}\xc7\xdf\xae\x13\ +vIR\x80\x0aG\xf2\xecC\x99/\x0a%7~\x99\ +\xc5K\x08\xe2S]\x0a\x0a\x1f;a\x94|\xaaKp\ +\x98\x10\xc7%?\xfcA\xb6{\x17\xf1\xb9?k\xf1\xa2\ +PJ\x9fi\xc6\x93(\xa4\xb4q\xa34\x1cYGS\ +\xb68\xc4\xbb>\xfd\x89\x94\xf8C\x9c\xc9K?\xaf0\ +\x1d\xe2]\x93>\xf9U\xcek'\xa3X\xceZ\xe3\xa6\ +lt\xa3\xb3s\x8f\xa1\x04j\x0a2if\xd2i\xea\ +[\x17\x96\xad6\xa3\xb4@\xb0\x9a,M\x18%\xecs\ +!u,5\x1b\x19gOL\x90s\xdai\x92\xce\x00\ +\x22\xde\x90>\xbe\x141\x81\xfc\xabk9\x0ey\xc3\xe8\ +g@\xe3\xef\xea\xea\x94\x9a\x9c\x0b\x9a\xf5\x947:5\ +\x0e\xe7\xac\x13\x95&\x06t!>\xb8\x9f\xbfup\x11\ +\xff[\x8b\xb7\x9f\xfd\x17-<\xeb\xa6\ +\x00\x00\x09s\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\ + \x0a \x0a \ + \x0a <\ +path\x0a inks\ +cape:connector-c\ +urvature=\x220\x22\x0a \ + id=\x22path4489\ +-3\x22\x0a d=\x22m \ +-225.0508,25.423\ +733 0.20339,-22.\ +3728818 -19.7288\ +1,11.5932198 z\x22\x0a\ + style=\x22fi\ +ll:#00aad4;fill-\ +rule:evenodd;str\ +oke:#00aad4;stro\ +ke-width:2;strok\ +e-linecap:butt;s\ +troke-linejoin:r\ +ound;stroke-mite\ +rlimit:4;stroke-\ +dasharray:none;s\ +troke-opacity:1\x22\ + />\x0a \x0a\x0a\ +\x00\x00!\xea\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \ + \x0a \x0a \x0a \x0a \ +\x0a \x0a \ +\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a <\ +inkscape:path-ef\ +fect\x0a effe\ +ct=\x22simplify\x22\x0a \ + id=\x22path-ef\ +fect2631\x22\x0a \ + is_visible=\x22tru\ +e\x22\x0a lpever\ +sion=\x221\x22\x0a \ +steps=\x221\x22\x0a \ + threshold=\x220.00\ +0736842\x22\x0a \ +smooth_angles=\x223\ +60\x22\x0a helpe\ +r_size=\x220\x22\x0a \ + simplify_indiv\ +idual_paths=\x22fal\ +se\x22\x0a simpl\ +ify_just_coalesc\ +e=\x22false\x22 />\x0a <\ +/defs>\x0a \ -\x0d\x0a\ -\x00\x00\x0e\x03\ +urrent-layer=\x22g9\ +22\x22\x0a inkscap\ +e:window-maximiz\ +ed=\x221\x22\x0a inks\ +cape:window-y=\x222\ +7\x22\x0a inkscape\ +:window-x=\x2255\x22\x0a \ + inkscape:cy=\ +\x2230.785047\x22\x0a \ + inkscape:cx=\x2220\ +.411215\x22\x0a in\ +kscape:zoom=\x228.9\ +166667\x22\x0a sho\ +wgrid=\x22false\x22\x0a \ + id=\x22namedview\ +8\x22\x0a inkscape\ +:window-height=\x22\ +1016\x22\x0a inksc\ +ape:window-width\ +=\x222505\x22\x0a ink\ +scape:pageshadow\ +=\x222\x22\x0a inksca\ +pe:pageopacity=\x22\ +0\x22\x0a guidetol\ +erance=\x2210\x22\x0a \ + gridtolerance=\x22\ +10\x22\x0a objectt\ +olerance=\x2210\x22\x0a \ + borderopacity\ +=\x221\x22\x0a border\ +color=\x22#666666\x22\x0a\ + pagecolor=\x22\ +#ffffff\x22\x0a in\ +kscape:pagecheck\ +erboard=\x220\x22 />\x0a \ + \x0a\x0a\ +\x00\x00\x09\x91\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x0b\x13\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \x0a <\ +dc:format>image/\ +svg+xml\x0a \x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0ay\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a\ +\x0a\x0a \ + \x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x07\x1d\ +shadow=\x222\x22\x0a \ +inkscape:window-\ +width=\x221848\x22\x0a \ + inkscape:windo\ +w-height=\x221018\x22\x0a\ + id=\x22namedvi\ +ew4\x22\x0a showgr\ +id=\x22false\x22\x0a \ +inkscape:zoom=\x221\ +.2291667\x22\x0a i\ +nkscape:cx=\x22-197\ +.28813\x22\x0a ink\ +scape:cy=\x2296.000\ +006\x22\x0a inksca\ +pe:window-x=\x2272\x22\ +\x0a inkscape:w\ +indow-y=\x2225\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +2\x22 />\x0a \x0a \x0a \ +\ +x\ +\x0a\x0a\ +\x00\x00\x06\xd2\ +\x00\ +\x00\x1e\x98x\xda\xd5X\xdbn\xdbF\x10}\xf7W\xb0\ +\xccK\x8c\x8a\xcb\xbd/W\xb1\x1c\xa0\x0d\x02\xe4\xa9E\ +\x93\xa0\x8f\x05M\xae%6\x14)\x90\x94%\xe7\xeb;\ +\xcb\x9bHJr\xec&Em&\x86\xb8;\xb3\x979\ +;3g9Wo\xf7\xeb\xd4\xb93E\x99\xe4\xd9\xc2\ +%\x08\xbb\x8e\xc9\xa2\xbd\xeb\x85\ +\x1eFq\x15\x1f\xa6\x19\xad\xbec\xf5\xba\x14P\xf2\xc7\ +\x9b\x85\xd6#5\x8b\xf8\xf6\x94&\xd1Z\xfb\x98\xfa\x00\ +\x19hx\xe5}V\x85{/+_\x0d\x86FQ?\ +2\xb2\xee\x91\xdc\x99(_\xaf\xf3\xacl\xe0\x18)\xc7\ +\x07\xe5\xcd\xb6Hk\x8d8\xf2Mj\xd6&\xabJ\x1f\ +\x0e\xccw\xafA\xff*6\xb7\xa5\x1d\xd7\x1c\xbam\xf1\ +Z\x00\xa2(M6\xbf\x87\xd5\xaa\x11;N\xd7\xfe\x9c\ +%\x15@\xb3-M\xf1\xd1\x1e\xc0o\xd9\xe7\xb2\xc1\xbe\ +\x9b\xa6\xd3\x0c\xa8h'\x83\xe9\x0a\x13U\x9d\x12\xf8C\ +u\x9f\xc2\xe9\xde&i:\xcf\xc0\xff\xdf\xd87/\x87\ +\xf9\x92\xea~\x8eQ\xc0\xb5 \x5c\xb07eU\xe4_\ +\xcc\xfc\x95\xae\x9f\xb6\xe9\xd5>>g(\x10\x8a\x13N\ +E\xd7\x9f&\x99\xf9;O\xb2y\x91o\xb3\xb8\xeb]\ +'\x95)\xd2\x04~\xe6\xbc\xeb\x8b\xc3r\x15\x16Ex\ +_/\xef\x1evf\x0d\xb0{\x0d\xa8\x1a\xf4vA\xc5\ +\x91].\x90\x03Q\x1fa'd{\x1b\x1c\x9a\x06\x0a\ ++2\xe8\xbe\x87n\x8c%\xa2\x1a\xebAwQ\xf7#\ +\x12H%\x88\xeb\xf8\xedA\xf8\x1d\x9e\xf5\x89\xf9\xf6\x90\ +\xea\xb7>\xa6l,\xc46\xb2\x0f'y\x13\xf6g\xb2\ +\x09\x97\xe0*i^,\xdcW\xb7\xf5\xd3\x0an\xf2\x22\ +6E'\x92\xf53\x12\xb5\xc7\xd1d\xafv\xee.\xf8\ +\xed\xac\xbd\x1c\x9f\x96\x03\xc2q\xbe[\xb8t*\xfc\x9a\ +\xe7\xeb\x85+\x90\x9c\x0a\xa2}\x8d#\x97\x9c\x06\xe2H\ +\x08+)$\x02\xc0S\xa8\xa9\x10\xf2\xca\xd6:\xb7\xb7\ +m\xdcs\xb3?\x1a\xbe-\x0a\xab\x90\x86\xf7\x06\x0c\xae\ +\x7f\x88\xc7Z\xb5r\x95\xef\x96\x85\x85\xee6L{\xec\ +\xceN\xb6K20\xcdk\xdd\x82\x0a,\xceht\xde\ +A0\x91gT\xc0fqn8\x98L\xd5\x19\xd9:\ +\xdc\x83O\x7f5\xb0gr\x0a\xfehe\xa2/\xa6\xb8\ +\xc9\xc3\x02Tp\xebPWkS\x85qX\x85\x07g\ +\xe9zT\x17\xfa\x90\x85\xe6\x7f\xbc{\xdf\xc7n\x14\xcd\ +\xff\xcc\x8b/\x03O\x05\x85\xf0&\xdf\x82a}\x84\xdb\ +l\x12\xcd!\xb3\xae\xc3\xea:Y\xc3\x06l\xf6\xfb\x19\ +2\x12\xf8l/\x18)W\xf7\x1bs\x98\xb4\x99\xb60\ +M\x8a>\x99\xc1\xe2\x08\x82\x18\x06\xf9\x1f+\xc8\x17\x1f\ +\xec\x22}\x9c\xd4\x91\xd2l\xb4\x0b\x9c\x81\x1dW~g\ +e\xddZN\xf0J\xc3\x1b\x93.\xdc_\xc3M\xe8\x1c\ +\x81\xb9\x84l\xb2Y\xe7\xb1i\xbd\xc6=@\xd7xQ\ +\xdbQ\x15aVZ;\x17n\xfd\x9a\x02\x8b\xbf\xc63\ +\x0fb\x9d#&)\xbd\xec\x00^\x0e\xd3\xe5\xc4\x13\xbf\ +\xb1\xab3\xcbx\x22h\xc2F\xc2z\xdc\xe6\x1c!\x82\ +\xcbC\xfa]\x8e3\xdc\x92\x08=\xcco\x839\xe1\x94\ +\x8ad\xff\x1a(]\x0aB\x03=\xc3\xf0\xef\xd0\x0a\x04\ +$(\x1c\x105\xf3\xa8\x02\x22a\x92\xf1\xcb\xa1\x13,\ +\x87'\xda\xac\xc5\xd90\xfb\x9d\xb3\xc0N\x06+h;\ +3\xac\x019\x10\xeb\xe1\xccG$2%\x92W4\x0a\ +t\x88;\xce\xa8yeD\x18\x14)A\x0f,b\xd9\ +\x02p\x1e\x93\xc5\x84B6a\x029\xa3N\x87\xf3u\ +X@<\x95N\xa3\xe9\xd85\xdd\xf1n:\xf2\xd0}\ +@O\x08d\xda\xdd\xa5\x87i?\xe4\x04\x8f\x08D9\ +\x16$\x98\xc8j\x96\xa0\x12\x11*\xd5\xc0\xfb_\x1a@\ +\x9e\xfc!\x10q\xc2\x18\x95\xa7 b\x01\xa2\xe0\xa7\xff\ +\x0e\xa2\xd1}\x84<\x13\xc4\xf0\x0fA\x8cA8\x12}\ +\x0a1\x81\x11W\x84N\x11\xdb\x0cn\x81g\xaeo\x0f\ +]\xd3\xc8f?\x85\xe7f[UG\xe8\xd4\xd7\xb4\xae\ +\xb7\x87~\xb2OKW\x8eG(\x12\x9a2\xa5fp\ +\xccp;\x09\xb0t\xe0\x12B\xb0\x923\x85(\x15\xf4\ +\x04\x8a\xd6\x0cB\x08~\x11\xe6IM\xb5\xe4`\x1eg\ +\x90z\xb1z\xbcy\x1e\x1f\x19x\xe5/\x07\x8d\xa9\xad\ +\xff\x97\xa5\xad\x9d\x041M\xa5\xa4\xb3:\xa1\x09-\x95\ +S\xdbG,\x0bX\x8b\xc7\xa3\xc6fB\x02\x19\x19\xfa\ +\xacl\xb3\x9f0\x9cK`\xca\xd66\xc9Io\x9b\xa6\ +\x8f0\xce\x1b\xc7\xe1I^\xa5\xfc\xdb\xbc\x8a\x91\xc6R\ +a\xad9\xdc\x0c [\x11A^.\xabz\xe4\xbbS\ +\xa0BD\xc9\x80\x10z\x86V1\xd3\xecE\xd3\xea\x0f\ +\xa0\x09\x85\xe0\xca\x8a\xf1Y^%\x9a\xbfh\x8cl\x92\ +\xfc\x01\x18)N\xc1e\xce0)\x0bX\xf0\xec\xa9F\ +\xa3\x80r-l\x02f\x90(4\xa3O \x9a\x97`\ +\x9e\xa2\x9cI\xd1\xf0(Q\x8c=\x85G=\xf5\x00\x93\ +N\xdd\xfd99\xfb\xd8\xd5\xc7\xdf\x0f'\x1d\xfd\xb4\x9b\ +\xdb\xfb\x22GD0\x06\x1f\x96#I\x93+m\xc1k\ +\xe2\xe3\xcf\xef\x82\xc1%\x11\xf5\x05\x03B2\xa0\x8c7\ +$\xfc(\x02\xe6\xcf\xfa~\xa1\x94\x10\x12rLc\x9a\ +\xd28x\xea\xfdb\xea\xdf/\xc8\xa5=\xfd}NM\ +\xe1\x91\x9c\x1d;5\x0f\x10SX\x8c\xaaJ\xcb3E\ +\xecq\xbdvR\xde\xa5\x04Q\xa0\xc9q1Xb{\ +\xe1\xd5\xa3\xee\x87\xea\xc7\x0f\x94\x9d;@\xe0\xfbw\xd8\ +\xfd\xd4\xc2\xfa\xf1A\x92\xef.\xa6\x0f\xb0\x9b\x96\x9d\x82\ +Q%\xa8\xddl\x177LEAx\xf3\xa0\x07\x9d\x8a\ +\x88\xe3\xda\x15\xa0\xcc\x02\xf8\xac\x804o\x8bW\x83&\ +\xb0\x80d\x5c\x13\x02QC\x14\x92\x10-\xa3\xe2\xd5Q\ +\x8c\xf75\xf6<6\xb6\xf2X.\xdc(\x1a{f_\ +`\xce3\xd8q\x95\x17^\xb4-\xee\xc2j[\x18[\ +v=\x15\x83\xc1\xe4\xf6\xd9\x90\x95@X\x13\xad\xd8L\ +H\xe0*\x0a\xcce\xd9Js\xaef\x0a\x98L\x0b<\ +\xaa\xd9\x9d;\xecb\x9b\x9a\xb9\xb93\xb0\xe5\xf8\xcdi\ +l\xdb\x93\x96\x8f\x8b\xd6QN\xfa\xf6\xf9\x1f\x9f\xd5\xc3\ +i\xf4?\x83\xd8c\xc7 \x13\xc6\x91\x96\x04 \x05\xb8\ +\x05`\x1b(\xc7k\xd0%\xf0\xadV\xe3-^8\xc8\ +}\xc6j_\xea\x9f+[\x8d\xbf\xbe\xf8\x07\xea\x88p\ +\xf5\ +\x00\x00\x05\xb7\ \x00\ -\x00'\x01x\xda\xddZ\xdfo\xe36\x12~_`\xff\ -\x07\x9d\xf6e\x17\xb5(\x0e\x7fS\xb5\xb7@\xbb(\xd0\ -\xd7^\x0f}<(\x92b\xebV\x96\x0cI\x8e\x93\xfe\ -\xf5\x1dJ\x96-Gv\x90\x03\x8c\x83\xcf\xce\x06Yr\ -\x86\x14\xf9q\xe6\x9b\x19\xca\xf3\x9f\x9e\xd7\x85\xf7\x94\xd5\ -M^\x95\x0b\x1f\x08\xf5\xbd\xacL\xaa4/\x97\x0b\xff\ -_\x7f\xfc\x1a\x18\xdfk\xda\xb8L\xe3\xa2*\xb3\x85_\ -V\xfeO_?~\x98\xff#\x08\xbc_\xea,n\xb3\ -\xd4\xdb\xe5\xed\xca\xfb\xad\xfc\xde$\xf1&\xf3>\xaf\xda\ -v\x13\x85\xe1n\xb7#\xf9\xbe\x93T\xf52\xfc\xe2\x05\ -\x01\x0e\xc5\xc1\xcd\xd3\xf2\xe3\x07\xcf\xf3\xf0\xd9e\x13\xa5\ -\xc9\xc2\xdf\x8f\xd9l\xeb\xa2\xd3M\x930+\xb2uV\ -\xb6M\x08\x04B\x7f\xa4\x9f\x1c\xf5\x13\xb7\x82\xfc)K\ -\xaa\xf5\xba*\x9bnh\xd9|\x1ak\xd7\xe9\xe3A\xdd\ --i\xc7;-\xb0\xd6\x86\x94\x85\x8c\x05\xa8\x114/\ -e\x1b?\x07\xaf\xc6\xe2:\xcf\x8de\x94\xd2\x10e#\ -\xd5w\xaaE\x0d\x22\xbb\xc1\xdf\x83\xfe\xd0A\x9aj[\ -'\xd9#\x0e\xccH\x99\xb5\xe1\xb7?\xbe\x1d\x84\x01%\ -i\x9b\x8e\xe7\x19\x80=y\xee\x09\xdae\xbc\xce\x9aM\ -\x9cdM8\xf4\xf7\x13\xec\xf2\xb4]-|a\xfa\xe6\ -*\xcb\x97\xab\xf6\xd8~\xca\xb3\xdd\xcf\xd5\xf3\xc2\xa7\x1e\ -\xf5\x84\xc1\x7f\x84\xba\x0f\xf4\xe2<]\xf8\xb8'\xb6W\ ->\x1a\xce \xdf?+:\x88(\xb1\x8c0\xef\xb3L\ -xfh:\xf3\x18\x05\x1dP\x13P\xf5\xa5\x1f3l\ -3J\xab\xc4-{\xe1\xc7\xdb\xb6Z\xe3\xc9&\xff.\ -\xe2\x97j\xdb\x12\x07\xe3W\xa7\xc4\xcd\x1e\x02\xcf\xdb\xc4K4\x9a\xa2\xaa\x17\xfe\xa7\ -\xc7\xee3H\x1e\xaa:\xcd\xeaA\xa6\xba\xcf\xa9\xacB\ -T\xf3\xf6\xa5\xf7\x96a\xfea\xdbn\xe2\x83\x02\xbd\xa0\ -\xd0\xac\xe2\xb4\xda-|6\x91\xfeUUk<\x0b\xa2\ -\x8d\x12\xd2\xf0\x89<\xc1\x83\x09\xf0H,\x05e\xcdT\ -\x8c\x0fe@4\xe3LL\x07#\xbc[\xe7R\xc1\xb6\ -\xcc[4\xd9\xcd\xf3t\x82m];\x0d\x84=\xc3\xfd\ -/\xb9\x100(5\xabj\xb7\xac\x1d\x92\x8fqq\x84\ -\xf2\xf2d\xbb\xbc\xc4m\x06{\x83\x03\xa3\xf8%\x95\xc1\ -\x08\x812yI\x07w.\xf5%\xa1\xdb\xf7E\xe1:\ -~\xce\xd7\xf9_\x19\xae\x1c\x0e\xa6\xb2\xce\xda8\x8d\xdb\ -xd C\x97\xeeM\x0d\x95\x90\x1a\xa2\xdf\xbf\xfd\xba\ -obG\x92D\x7fV\xf5\xf7\xa1\x8d\x1f\xa7\x12?\xa0\ -\x8d.|\xff\xeb\xb1\x7f\x9e&\x11:3\x1a\xf1\xd7|\ -\x8dG\xee\x88\xe0\x07\xf4\xddyx\x14\x9cj\xb7/\x9b\ -l4o?s\x9d\xf5\xbcp\x96!\xd3d\x9d\xbbQ\ -\xe1?\xdb\xbc(~s\x8f\x19\xb67\x9a6o\x8bl\ -\xd4;\x0f\xf7{\x18\xf6\x18\x8e79\x0f\x07\x10\xfa\xe6\ -\xf25\xa4E\xfc\x90\x15\x0b\xff\x97x\x13{0\x01|\ -YW\xdb\xcd\xbaJq\xbd\x9d\x05\xf9#t\xbb\x8e\xc3\ -\x90\xb6\x8e\xcb\xc6\xe1\xb0\xf0\xbb\xff\x16\x18I>\xd3Y\ -\x00\x94\x0a\xc2\x15c_\x0e\x87\xb0\xc9'PP\x22\xa8\xe0\x82\ -_\x84B\xdf\x1d\x14B\x13M\xcd\x94)\x0c\x22d\xb5\ -\xbc\xec \xf2\xfe\xa0\x90H\xda\x0c^C\x01\x820\xa9\ -(\xbc\xc1\x15\xf7\x87\x05\x97\x04$\xc8\xd7XHB\xad\ -B{1\x97\xc9\x82\xdd\x1fqb\x04Wf\xca\x16\xc4\ -\xa0Q\x08\x0d\x17\xb1\xb0\xf7\x17N\x11\x0a\xab&1\x04\ -\x80\x08a\x81]6\x0b\xb8?(,\xc1\xc3\xb7\x13\xe2\ -\xa4\x84))\xa9\xbc\x0c\xc5\x1dF\x11t\x11\xce\xec\x84\ -.8\xa0\x8f\x18q\x1a^^\x81A\xef\x8f;\x99+\ -\x85\xa7`\xa0\xef`\x11\xf1\x86\x8f\xdc!a`\xa2m\ -\x04\x9b8\x09\xeaj`\x9a\xbd\x81\xc5\x1d&\xe0\x96P\ -\x0c\xaag\xf2\x0b\x01R)\xfb\x06\x18\xff7)\xb8[\ -\xf3x\x1b\x87\x1b\x9e\xaa\xc4\x89\xdb\xaa\x0e\x92m\xfd\x14\ -\xb7\xdb\x1aw@\xcf\xedX\xb0S\x88\xdc\x0d\x89\xa7\x08\ -\x95FK+g\x08#\x96tJ2O#\xd1R\x8a\ -\x5c;\x93\x84kk\xde\x05\xd1\xfb1\xf9\xef\x11\xe9\x1a\ -E\x8e\x7f\x221\xf4\xa5q\xb3\x8a\xeb:~\x89\xca\xaa\ -\xcc\xfe\x07\xd8\xf1\x09v\x80I\x9b\xb1\x94\x09\x87\x9d&\ -\x16\xa4\x97x\x94pJ5\x88Y\x805\x0fc\xca\x13\ -\x0eM\x006\x0b4\x91 \xc4\xa4\xe3\xba\xf0\xba\xebY\ -cp-\xe2\xc6lON\xf0c\xee.\xc7`\xde\x8b\ -\xf8\x01\xe2\xc7\x11\x1cN(\xc3t\x87\xcf\x02\xac\x93\x04\ -\xb5\xd7\x06\x07\xeb\x10\xcb5\xd37\x06\x8e\x9e\x1a\x97\x8b\ -u\x14W;\xeb\x92C\x86L\xe6\x01\x1e\xae\xd0F\xa0\ -qq\x82\x05\x15\x5c\xddt\x84\xb2\xa0\xb4\xba1t\xec\ -\x19\xda\xe2h-R:t\xb0\xa2\x12\xd2z\xd0]\xb7\ -p4\xfd\x19\x10k\xb5\xbd>8\xee\x8a\x0f\xf8m\x81\ -\xa3\xe0\x9c_I\xad\xadv~\xc5\x0d\xd1JH/@\ -\x90\x941\xdc\xce\x14a\x8c\x9a\xab\xfb\x15\x1a\xa8e\xb7\ -f9jJ\xdaH\xd4\x0c\xa4\xb1l\xd6_\xd1`\xc4\ -\xf3\x02p\xefX\xa4\xe60\x0b\x80(\xad\xafo:\x5c\ -\x0a\x06\xe6\xc6\xd0\x99\xfa\x15f\x95ZX\x0d.\x1d\xc0\ -\xf4\x89S\xad=L\x028\xa3\x02\xad\x09\x08\xc7\x5c\xe1\ -\xea\xe0\x00`\x96qc\xa9\x92\x9e\xba\x95`D\x1a\xe4\ -\x9cYw\xe3K5\x17^`\x89S\x95\xcc\x112\x97\ -\xea\xea\x84\xac-\x15\xf8\xb8\x1b3\x1c=\x8d\xe5\xc2\x9d\ -\xa3\xbb\xcc\xeb9GR-<\x8c`V\xf2\xce\xa9\x90\ - \xa8\xba>\xe9p\xaa4h{c\xe8\xe8s\x99\xa2\ -\x00\xa5L\xc7\xc8\x94\x00r\x01\xba\x15\x00P\xa3\x91\x90\ -\x85\xb9>6Zpj\x04\xbd1\xb7:-&zB\ -\xc6\x92\x0ec8\xeb\xb2@\xf7\xfa\xc0h\xcf`\x12+\ -\x95\x9e1\x02Z\xf2\xabC\x83\xd5\x8dd\x94\xdf\x1a\xe3\ -\x04\xd3h\xc5\x191\x18\xad\x94\x8bV\x1c\x88\xd0XP\ -`aa@a\xf4r\x05\x84E\xbc\xae\x8e\x0f\xa7X\ -\x1d[v{\xf8\x9c\x96\xeb=B\x16\x8b(\xdd\xc7s\ -$\x1eL\xff\x90\x96\x1d=+\x85\xa8a\xda\xc3@\xdc\ -:B\xf3py\xf8\x86\x02\xc2q\xf6\x15vW\xe5\x9e\ -\x5cF\xa0\x19\x08\x8b\x05\xa4\xe4o\xae\x96\x13#\xb5@\ -\xca\x91\x93u\xd5\xd5\xb6L\xdf_d\xfb'/\xee\xdd\ -J\x05\x8c\xdfl\x0f\xdfD\x12\x8e\xe0\xd0h\x8f\x92\xc3\ -\x97\x92\xa6\x22wO\xe3JVM\xc7!\xb7\x7f\xd7\x8e\ -\xa9\xaa\x1d\x97\x80u\xd7M\xc0(-\x8f\xdf\xfc\xe8\xc0\ -\x9b\xbb/d\xe0\xdf\xbf\x01t\xb6\x1fy\ -\x00\x00\x07t\ +\x00\x13\xd1x\xda\xddX[o\xdb6\x14~\xef\xaf\x10\ +\xd4\x97\x06\xb3(^%R\xb5Sl(\x8a\x0eh_\ +\xb6\xee\xfa\xa6H\xb4\xa3F\x16\x0d\x8a\x8e\x93\xfe\xfa\x1d\ +\xca\xd6\xc5\x8e\xb3vC\xdba\x15`[\xfc\xce!y\ +\xf8\x9d\x1b\xe1\xf9\x8b\xbbu\x1d\xdcj\xdbV\xa6Y\x84\ +\x04\xe10\xd0Ma\xca\xaaY-\xc2_\xde\xbd\x8ad\ +\x18\xb4.o\xca\xbc6\x8d^\x84\x8d\x09_\x5c>\x99\ +\xb7\xb7\xab'A\x10\xc0\xe4\xa6\xcd\xcab\x11^;\xb7\ +\xc9\xe2x\xb3\xb552v\x15\x97E\xack\xbd\xd6\x8d\ +kc\x82H\x1c\x8e\xea\xc5\xa8^X\x9d\xbb\xeaV\x17\ +f\xbd6M\xdb\xcdl\xda\xa7\x13e[.\x07\xed\xdd\ +n\x87v\xacS\x22J\xa9\x18\xd3\x98\xd2\x084\xa2\xf6\ +\xbeq\xf9]t<\x15l<7\x95b\x8cc\x90\x8d\ +\x9a\x9f\xa6\x95\xb5\xc0\xca\x06>\x83z\x0f\xa0\xd6lm\ +\xa1\x970O\xa3F\xbb\xf8\xe5\xbb\x97\x830\xc2\xa8t\ +\xe5d\x99\xaa\xb9i\x8b|\xa3\x8fv\xed\xc1=\x03\xf9\ +Z\xb7\x9b\xbc\xd0m\xdc\xe3\xdd\xfc]U\xba\xebE\xc8\ +e7\xba\xd6\xd5\xea\xda\x0d\xc3\xdbJ\xef~0w\x8b\ +\x10\x078\xe028\xc0U\xb9\x08\xe1\x18t\xaf3\xfa\ +\x99\xec\xa5\x87\xe5\xb3A\x82\x91\xa2\x88\x06\xcfD\xc1\xb4\ +\xc4\xe5,\xa0\x98\xa4\x11\x96\x11N.\xba)\xfd\xb9\xb2\ +\xd2\x14\xde\xd0ExU\xe7\xc5\x8d\xd9:\xe4\xe9\xba\x04\ +\x9d\xf9Z\xbb\xbc\xcc]\xee\xf5\xf7&\xf4\x08\xa1\x9d\x06\ +\xe8\x80\xdb\xb2\x9f^\xbe\xda\x8f`\x5c\x14\xd9o\xc6\xde\ +\x1c\x86\xf0x\x85\xfc\x0a\xd6]\x84\xe1\xe5\x00\xcf\xcb\x22\ +\x03\xa2\xd7\xb9\xbb\xac\xd6\xf9J{\x1f}\x07\xc4\xce\xe3\ +Qp\xa4\xec\xee7z\x5ct\xbf\xac\xd5{\x8f\x9d\x0d\ +\xdb\xb2XW~R\xfc\xb3\xab\xea\xfaG\xbfI\x18\xc4\ +'\x8bV\xae\xd6#8\x8f\x0f\xd6\x1f\xce\x16O\x0e7\ +\x8f\xfb\xb3w\xa3R/\xdb\x91\x16?\x22\xb8\xa7d\x9d\ +\xdb\x1bm\xfb\x8d\x06\xdf\xb4\xce\x147^\xfb{k\xcd\ +\x8e\xbc\x81t\xb4.\xec\xd5\x8c\xad \xc9\x16a\xbeu\ +f\x00\xad^\xfe\xe1}\x89\xa7\xc8\xef\xc7\xc8\xa3+\xb6\ +\xee\xbe\x06j\x0c\xc4\xc4\xb26\xbb\xec\xb6j\xab\xabZ\ +\x87\x0f\x0c\xab\xda\xce\xb4E\xe8\xecV\x0f>\x9aor\ +w=2\xee\xb7\xf1\x08\x17J\x86#\x0c\xe8\xdb\x00\xcc\ +\x99\xc1'x\x13\x08x\x8bD\xf7\x1a\x11\x8a\xc4\x04\xde\ +\xa3\xbd\xea\x87`\xb2\xc8\xc1\xd2%\xf8)\xb2\xdbZg\ +\xfaV7\xa6,\x9f\xb7\xce\x9a\x1b\x9d=\xc5\xdds\x18\ +F]\xfedP\xe36n\xb2\x88\xb3y\xd3\xfa\xc8\x81\ +D)\xf2Z?\xc3H^\xec\xd1:w\xfa\xd9\xde\x9c\ +\x8b!\x06\xc0\xa1\x9d\x9f\xf6\xce\xf5\x1e\xec\xde\x86\xbc\xf0\ +IQ\xfal\xdco\xb1\x81\xf8)Lm\xec\x22|\xba\ +\xec\x9e\xc3\xdeW\xc6\x96\xda\xf6\xa2\xa4{\x8eD\x06J\ +\x00D\x22d\xeb\x016W\xefu\xe1\x9c\xa95\x18\xe7\ +\xa3\x97\xf4\xde\x5cY8\xda9|[\x95\xfa\x9c`\xf0\ +\xa17o\xd8\xe8\xac\xb4\xbd\xceK\xb3[\x84\xf4T\xb8\ +\xab\x1a\x10D\x87\xaaDd\xc2\x1e\xd1\xe8+\x15\xc1T\ +\x84c\xf0\x0fD\xf5q\xd1^\x9b\x9d?\x09x4\xaf\ +[}\xba\xda\x07c\xc0G\x09J\x13\xccI\x92\x9e\x8a\ +\x0b\xa8}\x11\x17(a\x8cJ\xf2@\x0a\xc7\xa3\x10J\ +R2%\x1e\xb1\x13\x16\x10\xe9#2?\xfd1\xd9:\ +\xbf\xab\xd6\xd5\x07]\x8e\xae\x1a\xf7\xddZ\x0b\xf9\x19\xd5\ +\xf9\xbd\x06?\xaf\xb8\xe0\xfc\x10J\xf3\xd5\xc8\xc5\x8a\x13\ +1\xd4\x81\xd54E\xf73>\x9a\x5c\x0c?H\xae\x19\ +\x0e^\xfbN\xf0\xab\xffz\x0d]\xe1\xcf\x89\xcah\xa0\ +i\x1a\x88*c#0\xf56w[\xab\xc7@8I\ +\xb2\xac\x81;\xc0\xa4\x18\x9eXs\xaa\xf9\xfc\xf1\xc4\x5c\ +.\x8b\xe2Abn\xeez\xa0\xae\xc0\xa6|\x93]m\ +\x9d\x9bb\xefM\xd5dP\x9e\xb5\xed\xd1C\xecf\xe4\ +\xf8\xf8\xeb\x80!\x8e)\x11)\x991\x86p\x82\xb1b\ +\x01\x11H\xd2\x94\xd3D\xcd\x22\x86\xa8\xe0\x94\xc9@A\ +@\xd1\x94\xd0Y\xc4\x11\xe1$\x15I \x91L\x05Q\ +\x00\xa5\x88r\x89S\x0e\x10\x95L\x10\xe6!\x821\x11\ +<|\xe8\x06\xc9\xe8?\xa0\xf8\xf3\xf0\x98$\xff\x01\x8f\ +\x181\xc1\x99\xc2j\xa0C\x00C\x22UL0(\xd8\ +\x0a\xd2S%\xbezSE\xd3d\x16)\xc4\x88T\x02\ +f\xc2\xf5\x82*!\xfd\xbcD\x11\xc9\x18Tv\x0fp\ +_\xfe\x13\x8a\x95\x10\xe2,\xb3\xfc+3{\xb6u|\ +yf\x81\x16Ly\xc2\x81\xd9\x031\x81o@)#\ +j\x08\xd04H\x91\xa7\x9fp\x0fQ\xa9\x92t [\ +\xcc\xa2\x03\xc7\xea,\x8d\xc9W\xa6\xb1\xe4_\x96\xc6\xb7\ +\xe7i\x94\x88K\xa5\xa4\x98\xd1\x04\x09A\x12\x22\x03F\ +\x10%\x04+>\x03iJ\xa0_\x89\x80A\xf2+\xcc\ +y:SHI\xb8\xa2\x90\xf3\xac\xc9\x7f\xc1\xda<^\ +\x9d\xd6\xf3\xc9Ucr\xbf@\x18')T\x97Y\x04\ +\x0dJ\xca\x94*u\x11\x1e\xb7\x0024\x8d3\xedA\ +\x8d>\x9dl\x00\x17a[\xdd\xc1\xeap\xd0\x94't\ +\x06\xfd`F|\xddKS\x86\x19M\xba\xe2F\xe1\x85\ +\x8a\x8b\x07w\xbf\x81\xec!\x02,\x1cu$\x01\xda!\ +\x87\xb0\x04\xae\xd5\x941\xe8\xa0\x0c1\x0c4N\xe3\xac\ +\xef\xff\x12\x11*R!\xd8D\xd6\xdf\x1e\xe0n\xa7\xd4\ +\xc3\xaa\xeaw\xe5\x5c\xca\x87\xfdh0\xb1\x0b\xbe\x93\x8e\ +\xb2\x8f\xca\x93k_\xca(\x06\x8bOC\xcf\x9amS\ +\xfe}\xecu\x83\x1az\xbc\xcb8\x12\xaa{zY\x99\ +\xc3\x05\xc9\xda\xfc\xfeh\xcf\xd1\xbaM^A\xfb\xef.\ +t\xd9\xfe\xe2\xd8\x06\xde\xe2`\xaf9M\xb2O\xa5\x98\ +\xf8\x90\xf7\xdd\xe8\xf3r\x1c\xb1Oay\xd2o\xbem\ +\x96)\x038\x15X|f\x96\x93\x8f\xb3|T4\xbf\ +m\x96\xa1f'8I\x8e\xba\xd5ga9\x12\x1f\xe7\ +\xf9\xa8\xc7\xff\x0fy>\xb4\x98\xeeg\xee\xff\x09\xb9|\ +\xf2\x17\xfb}\x9c\xcf\ +\x00\x00\x06\xb6\ +\x00\ +\x00\x18`x\xda\xedX\xeb\x8f\xe3\xb6\x11\xff~\x7f\x85\ +\xa0\xfbr\x8bZ\x14\xdf\x22u\xf6\x06-\x0eA\x02\xa4\ +_\xda$}|)\xb4\x12\xd7\xab\xac,\x1a\x92\xbc\xde\ +\xbd\xbf\xbeC\xc9z\xd9\xf2e\xd3\xbb\xf4\x80\xa2\x02\xbc\ ++\xce\x0c\xc9\xe1o\x1e\x9c\xd1\xfa\x9b\xe7]\xe1=\x99\ +\xaa\xcem\xb9\xf1\x09\xc2\xbeg\xca\xd4fy\xb9\xdd\xf8\ +?\xfd\xf8m\xa0|\xafn\x922K\x0a[\x9a\x8d_\ +Z\xff\x9b\xdb7\xeb\xfai\xfb\xc6\xf3<\x98\x5c\xd6q\ +\x96n\xfc\x87\xa6\xd9\xc7a\xb8?T\x05\xb2\xd56\xcc\ +\xd2\xd0\x14fg\xca\xa6\x0e\x09\x22\xa1?\x8a\xa7\xa3x\ +Z\x99\xa4\xc9\x9fLjw;[\xd6\xed\xcc\xb2~;\ +\x11\xae\xb2\xfbA\xfax<\xa2#k\x85\x88\xd6:\xc4\ +4\xa44\x00\x89\xa0~)\x9b\xe49\x98O\x05\x1d\x97\ +\xa6R\x8cq\x08\xbcQ\xf2uRq\x0d\xa8\xec\xe17\ +\x88\xf7\x04T\xdbC\x95\x9a{\x98gPi\x9a\xf0\xc3\ +\x8f\x1f\x06f\x80Q\xd6d\x93e\xf2\xf2\xb1N\x93\xbd\ +\x99\xed\xda\x13;\x04\x92\x9d\xa9\xf7Ij\xea\xb0\xa7\xb7\ +\xf3\x8fy\xd6\x1e8\x18\ +i\x8a\xb8\xf7\xeeP>\x96\xf6X\xde\xb4b\xfdY\xe2\ +\xcc\xa6N\xb9\x8d\xbf\xbf\xffWS#\x87\xcf-\x08\xac\ +w\xa6I\xb2\xa4I\x9cp\xb7gO!\xb4\x95\x00\x19\ +\xb0S\xfc\x97\x0f\xdfv#\x18\xa7i\xfc7[=\x9e\ +\x86\xf08\x81\xe4\xce\x1e\xe0L\xfe\xed@^gi\x0c\ +\xc8\xee\x92\xe66\xdf%[\xe3\x8c\xf2\x07@r\x1d\x8e\ +\x8c\x99p\xf3\xb27\xe3\xa2\xdd\xb2\x95\xe9L\xb4\xe8\xa7\ +Y\xba\xcb\xdd\xa4\xf0\xafM^\x14\xdf\xbbM|/<\ +[4o\x0a3\x12\xd7\xe1I\xfb\xd3\xd9\xc2\xc9\xe1\xd6\ +a\x7f\xf6v\x94\x99\xfbz\x84\xc5\x8d\x08\xee!\xd9%\ +\xd5\xa3\xa9\xfa\x8d\x06c\xd4\x8dM\x1f\x9d\xf4\x1f\xab\xca\ +\x1e\xc9\x0f\x10\x7fU\xe3\xf7b\xb6\xca!\xaa6~r\ +h\xec@\xac\xcc\xfd?\x9c\xf1\xf0\x94\xf2\xf79\xe5\xea\ +\x8au\xf3R\x004\x16\x9c\xe0\xbe\xb0\xc7\xf8)\xaf\xf3\ +\xbb\xc2\xf8\x17\x8a\xe5u\xab\xda\xc6o\xaa\x83\x19l\xb4\ +\xde'\xcd\xc3\x88\xb8\xdb\xc6Q\xb8\xd0\xca\x1f\xc9@\xfd\ +\xb3\x07\xea\xac\xe0\xe7\xfd\xe0\x09x\x0bD\xfb\x1a\x10\x8a\ +\xc4\x84\xdcQ{\xd1\x8f\xded\x91\x93\xa6\xf7`\xa7\xa0\ +:\x14&6O\xa6\xb4Y\xf6\xben*\xfbh\xe2\xb7\ +\xb8}N\xc3\xa0\x0d\x98\x18\x92\xda\xbe\x99,\xd2TI\ +Y;\xcf\x81\xc8H\x93\xc2\xbc\xc3H\xddt\xd4\x22i\ +\xcc\xbbN\x9d\x9b\xc1\x07\xc0\xa0\xad\x9d:\xe3:\x0b\xb6\ +oCP\xb8\x88\xc8\x5c\xf8u[\xec\xc1\x7fR[\xd8\ +j\xe3\xbf\xbdo\x9f\xd3\xdew\xb6\xcaL\xd5\xb3d\xfb\ +\xccX\x16b\x1e<\x11\xc2\xf3D\xb6w\xbf\x98\xb4i\ +la@9\xe7\xbd\xa4\xb7\xe6\xb6\x82\xa3-\xd1\x0fy\ +f\x96\x18\x83\x0d\x9dz\xc3F\x8b\xdc\xfa!\xc9\xecq\ +\xe3\xd3s\xe61/\x81\x11\x9c\xd2\x10Q\x92]\x91\xe8\ +S\x13\xc1T\xf8\xa3\xf3\x0f@\xf5~Q?\xd8\xa3;\ +\x09X4)js\xbe\xdaGk\xc1F\x0cq!\x22\ +\xaa/6K!\xd9\x05D!\x81\xb5\x12\xfc\x82\xebp\ +\x04W\xd2Z\xb1k'\x81\x05Dt\x85\x07\xd3\xe95\ +\xde.y\xcew\xf9G\x93\x8d\xa6\x1a\xf7=T\x15\xc4\ +gP$/\x06\xec\xbc\xe5\x92\x88\x93+\xad\xb7#\x16\ +[N\xc4\x90\x07\xb6\xd3\x10\xddr\xc1\xf9\xaf\x07\x17\xc3\ +\x17\xc1\xb5\xc2\xdew.\xf5\xff\xec\xfe|\x07\xd7\xc0?\ +'\x22\xa3\x82\xb6,\xc1\xabl\x15\x80\xaaOIs\xa8\ +\xcc\xe8\x08gA\x16\x97p\xe9O\x92\xe1\xa8\xe9IW\ +\x8d\xc9rdAZ\xae\xf2\xe7w\x10{\x11\xd3T\xf3\ +\x15h\xb7\x1aGR#\xcd\xb5\xa2jE5\x8a\x84\x96\ +$\xba\x99&\xfd\xf9\xa9\x7f\x8b\xf6\x13\x8cHDf\x0c\ +w-y\x81`(\xc2\x8aK\xb5\xe2\xf0\x12\x11!\x85\ +G0\x8a\x18\x86\xd1*P\x883E\x89\x96\xb3\xa9S\ +L \xc9$\x09\xe7\xef\xafg!\x9a&X$\xf3,\ +DQ\xa4\x19\x8ftD{z\x91\xc3I\x92}|w\ +h\x9a)\xed\x17\x9b\x971\x5cI\xa6\xea\xa9\xa7x\x8d\ +IOh\xb9\x05\xf8`\x13\xf3\x9e\x96%\x10\xb8U\x95\ +\xbc\x9c\x1b\xed\xcb\xc1\xc9\x96\xe0\xe4\x88r.\xa4\x5c\x05\ +\x84#\x1d1\xae\x85\xa7\x11\x13\x8a`\xbdj_ >\ +\xe9\xff\xd1\xbc@S,\xa0\xc9\x08R\x11\xa6\x12\x1c\x91\ +DHPNq\xe4\x05\x10,T0\xa9W\x84\x80\x9f\ +F\x04\x90\xfd\x9d\xf0\x94\xea\xb7\xe3\xf9\xeb\xf0] ?\ +\xd7~\xb8H-\xdc]P\x88AA\x9e\xa6\x9f\x86\xfc\ +\xca\x9c/`\x95h\xc1*\x1c\xe0QT2\xbe\x0a\xe0\ +6\xc2\x12<\x9a{P&D\x82\x91H\xae\xda\xecA\ +\xf5\xff\x92\x8b\x9b\xa2\xc8\xf7\xf5\xbc\x8e~qw1\x16\ +\xa0\x90\x9c\x83T=;\x0e\x11LEt\xee\xd4\xee\x12\ +\x96\x88\x12\xe0\xd1\xb9\xd1\xdb\xcb[\x08\xc4(\xc5,\xba\ +b\x0c&\x03\x19\xb0%\x5c\xc7\x03v\x08\xb3(UQ\ +7\x08\xe6\xbcE\xc0\xa7N9\xa0\xad\x88\xa6L\xb0\x0b\ +d+{(\xb3\xcfq\xf6\xd7 K!urE\xd8\ +\x12\xb2X\x82\xebIy\x81l\x84\xb8f\x92\x0ay\x89\ +,\xdc\xaa\xb0\x98d\xe4:\xb2\xe45\xb8N=\xf7?\ +\xc2\x95!F\x94&\x94F_\x07W\xb8\x9d\x22-\x08\ +\xe3\x17\xb8r\xc4\x09!\x9a\x5cz\xacK\xbdT\x0a*\ +\xc4%\xb0\x8c\x22\xc9%\xd4\xa3\x9fp\xd9\xd7\x01\x9b\xf1\ +$\xf9,`\x95\xc6P7)\xfdu\x80\x85D\xa80\ +\x94\xd6l\xc1a\x85\x82\xd4\xb5\x84+G\xca9\xac^\ +H\x05\x0c\x02\x00C\xa6\xb8\x8a\xebk\xddU\xa9\xcfB\ +\x95+\x0d\xb1&\xa3\xaf\x85\xaa\xc2\x80\x1dS\x0b\xa8B\ +\x0d@0\xb9D\x15\xe6(!\x94^H\x03\xdc5O\ +X\xf0Ox+\xfe\xaf\xa4W\x97\x06\x98VJ\xd3\xdf\ +\x13\xd7u\xb8\xed[\xf6\xedyk5\xe9M&\xad>\ +\xc2XFT\xb1U@\x05\xc0\x08m\xa6\xbe\xf1\xe7\xdd\ +\x18\x81nl\xf8\x14p\xd6\xa9\xc9I\xf6X\xdc\x00#\ +A(\x87\x96g\xecn\xd6\x15\x14#ofV'H\ +b\x0c\x15\xc44d\x9c3@\x05\x08\x9d\xca,&Z\ +O\x88\x18cbJ\xed\x1bn\x09g\xc0\x11\xd4\x0c\x13\ +\xde\xa9]g\xda-\xc6\xc8\xd4\x15\xdc!\x9c6\x5c\xcc\ +\x9cg^\xbb\x10\xc9\x86\xd2\xe4lx2.F\x10\xed\ +J`yQ\xa9\xccl\xfb\xc5,\xfe~\x9f\xe4\xd0a\ +\xb7\xdfL\xe2\xee\xdbL\xed9m\xbdN\xf2\xccO\xa7\ +\x0e\xb2\x84=Ts\x9a\x91\x05\xec\x15\x86\xbbk\x8e=\ +G\x18\x8ao\x8a\xc5\x22\xf8\x11\xd4\xe82\x92\x97\xe0\xc3\ +uL\x09g\xb3~t\x0a\xfe\xac\xc89+\x1d\xdb{\ +\xe2j`A\xe9\xa9%\xe5\x22\x12_\x01\xfb\xd2}~\ +-&\x1f\xca\xb6\xdd72\xf8\xb7v\xdfio\xdf\xfc\ +\x1bu\x80\xea6\ +\x00\x00\x12\xa1\ <\ ?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a\ +\x0a<\ +metadata\x0a id\ +=\x22metadata8\x22>\ +image/svg+xml\ +\ -\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08\xd9\ -\x00\ -\x00Lzx\xda\xed\x5c[o\xdb8\x16~/\xd0\xff\ - \xa8/\x0d6\xa2y\xbfx\xe2\x0cvQ\x0cf\x80\ -\x99\x97\xdd\xd9\xeb\x9b\x221\x8e&\xb2dHr\xdc\xf4\ -\xd7\xef\xa1\x1c\xdb2\xe5\xd4jw\x1e\x8a\x1d\xbau`\ -\x1fR\xbc|l`?\x8aC\ -\x03{\x02j\xebM\x93\xd9{h\xc3\xa2\xcav\xb3\x0f\ -\xbf~8\x14&\x18\xe5]>h\xe7\xa4\xff-\xeb{\ -\xa6\x18\xe3\xd9p\x22\xae\xbb\xa7\xe5\xd4\xaaM~\x7f\xae\ -*1\xc6\xcc0\x9d\x01\x9aP#i\x9f\xab.\xfd\x98\ -T\xed\xbb\xe1\xb3Yvx4kl\xda\x15O6\xab\ -W\xab\xbajw\x98\x9c\xd6\xce\x8f\xb5\xd7\x9b\xa6\xec\xab\ -\xe4\xd9\xcc\x96ve\xab\xae\x9d\xc1B\xcf\xe2\xdb\x9b\x95\ -\xed\xd2<\xed\xd2\xfe\xc9\x1dW\xecI\x84B9\x0cg\ -\xfe\xd7\x0f?\xdc\xded\xd9\xfc\x9fu\xf3\xf8R\xcf\xbd\ -\x5cQzWo\x80\xd9\xa0b\x9e\xcd\x01\xd6U\xda\xdd\ -\x16\xabti\xdd\xc4\xff\x04#\xb9\x99\x1d\x0b\x5c\x9d\xee\ -ym\x07m\xecZ\x01\x1e\xe8\xd7\xe5\xec\x88\xf3lU\ -\xb8\xa7f\x7f\xeb\x8a\xb2\xfc\xc95\x1eG\xb3]cE\ -WZ\xf7y\xf62:\xf8t\x18\xf0l?\x0f\xa8j\ -\xef\xdb\xc1\x04\xddW\x82\xdd\xe4\xd3\xe6\xd16\x87\xe1\x1c\ -X\xbe\xed\xea\xec\xd1\xd5\xfcs\xd3\xd4[\xf23\x88_\ -\xd3\xc5\x87zuS\x00\x84\x8b8\xddt\xf5\x91\xda\xd8\ -\xfb\x7f\x83\x94\x81\xfc\x0eI\xff\xf2H\xaf\xb7\xdav\xcf\ -% P\x83\xbc\xdd\x97\xf5v\xfeT\xb4\xc5]i\xe3\ -\xf1\xf0\x8a\xb6\x1f\xe0\x22\xee\x9a\x8d\x85i\xac\xd3\xeea\ -\x80\xa9\xeb\xc2\x91\xb80:\x1e\xd0\x81\xfcK\x04\x83\xb9\ -\x86w\xf4s$\xe0S\x22\xfa\x8f\x09\xa1H\x0c\xc8;\ -\xea\xbe\xea\xa7h\xd8\xca\xcb0\xefa-\x92fS\xda\ -\xb9}\xb2U\x9d\xe7\xdf\xb5]S?\xda\xf9;\xdc\xbf\ -^\xbe&\xbdv\x9a\x83V[w\xc3V\xba&\xadZ\ -\xc7\x16\xa0\x84\xb2\xb4\xb4\xef1\xd2W;j\x99v\xf6\ -\xfdn@W\xfdB\xcfv\xcb\x04\x1f\xdc\xc2\xdd\xde\x1c\ -t\x8c\xd3\x02\xb9\xd3o/\x0d\xaf\x815\xb2\xba\xac\x9b\ -E\xfc\xee\xbe\x7f\xed\xbb\xbc\xab\x9b\xdc6\xfb2\xd9\xbf\ -N\xcbj\xd0&\xc0f\xa0\xe5\xf6\xf4\xfa\xee7\x9bu\ -]]Z\x18\x95\xe3MrX\xc6e\x03\xb3:[\xb0\ -)r{\xb6\xe4\xb0xn\x90\x87\xce\xce\x17\xb7\x0fi\ -^o\x171\x1d\x95n\x8b\x0aJ\x92\x17\x95O\xf9q\ -\x81\xfd*{3@\xb0P\xf1\x80\xf7\x0f\x98\x1d\x9el\ -\x1f\xea\xad\x9b\x10\xaciZ\xb6v\xd4\xe0\xa7\xba\x86U\ -\xd2\x88jB\xc5\xa84\x03\xcbB8b\xd8p\xc6\xc7\ -\xa50Gf\x10\xc6L)\xfe\xdaP\xa1\x05\xf1j!\ -4\x90\xbc:\xc9U\xfa\xb1X\x15\x9fl>X\xb6c\ -\xdf\x9b\xa6\x011M\xca\xf4\xd9\xc2\xaa/9\x11c\xb8\ -\xdd\xe4?\x0fy\xcfT\x0f6\x03\x0e\xbc\xab\xd3&?\ -\xb7h\xb9m\x1f\xf7\xcc\x95\x13\xf7\xafg\xdc\xe5\x00\xf7\ -]\xf7G\xda\x9e*8?\xca\xc5@*\x8e\xa2\x90\x10\ -$\xa4\xd1\x84\xb0\xab\xcf\xc9:\xc3cY\xbf\xc6\xd1\x8f\ -\xce\xe6\xff\xc3\xfd\xf9\x11\xec\xff\x7f\x86u\x8eH\xd5U\ -\x05\xac^7\x09`\xf6\x94v\x9b\xc6\x0ef\xe9\x09\xfd\ -\xbc\x02/d'\x97\xcb\xe1t\xce\x8e\x1d\xe4\x1eKE\ -5\xbbN\xa8@Z+j\xccU\xecA@\x00\x02\xd7\ -\x9e-\xcbb\xddZ_!\xf6\x9d\xbe\xa3\x99HS\xfc\ -]\xafv^\xc4gN\xf6:\xc7\x0d\xe9T\xe1\x08$\ -\x98\xc1bO,\x0b\x98`\xba\x9e7\xf5\xa6\xca\x87\xc4\ -\xdf\xea\xa2:\xa5\x82\xb1\xb1M\x09l\xd5\xcd\xf9\x9e\x96\ -\xa7\xc0\x1fM\x93>\x9f\xf4t\x1c\xc6:-\x80\xd1z\ -=2\xdf)\xab6\xdaU\x8a\xdc\x80O'\xec\x96K\ -s\x9aH*\x8f\x05N\x8c\xa8\x931\xca8\x1b\x90\x81\ -\xfdA|\xa4\x14L\x0c\xcc\x8a\x939$\x157\x5c\xab\ -\x01\xd9i/\xa4\x18\x06\x99\xff#\x02\xca\x12r\x0a(\ -\x03\xa3b\x08\xa3\xe2\x14P\x8d\x88T\x92H\x1d\x10\xbd\ -\xc4\xa2\x89\x1e!*\xa8\xd2X\x9d\x22J\xc0M\xe0\x02\ -\xfe\x07D/ \xaa\x12\xe5!J\x11\x03\xe5\xad\x95/\ -\xf4`\x18\x98\x91< z\x01Q\x91\x98\x91\x1a5\x82\ -\x0aM<\x1e\x05\x90\x8cbD\x05D/\xe9Q\x91\xd0\ -\x91\xd8K\xae\x8d\xf6\x14)a\x88(\x8e\x8d\x0c\x90^\ -\xb4\xf5\x09\xf6 e\x08+\xca\x89\x1eq)\xa7D3\ -\x12 \xbd\x00\xa9\x191\xa9@\xdc\x08-X\xb0M_\ -\x87(I\xd8\xc86qp=G\x88r\xa41\xa18\ -\x88\xfd%D\xa9o\xed\xc16)\x82)\xe3\x1e\xa2\x02\ -aA\x868\x07@\xcf\xbbO8\x11#=J\x0c\x13\ -\xdaCT\x22\x88\xb7\xc1\xb1\x0a\xd6\xfe\xa2\x1ee#\x07\ -J C\x19Uc\x07JpiL\xe0\xd2\x8b\xd6\x1e\ -\xfb\xb6\x09\xe4\x9eK\xa5\xcd)\xa2\x02\x02Q\x06N\x80\ -\x09\x88N@t\x84\xa9@\x92b\xc6\xb5\x1f\xddS\x80\ -)\xf8\xa4\xd30\xf5\xe3{\x09\x8e\xbe4Z\x8f->\ -p\xaa\x0e\xa0N\x02u\x1c\x90*\x855\xf1\xa4\x9f(\ -\xa48\x15$\x80:\x09T\xdf\x93\xe2\x88c`J\x0f\ -S\x89\x98\x14*\x98\xa8I\x90\xfa\xee>G\x942\xc1\ -\xfd(\x1f\xd8\x97\xb3\x93\x9c\xdf\xef\x02*S\x99N\xef\ -\xbe\x00Tb8\xe5\xdfxF?\xf1r\xfa\x061\xa6\ -\x0c\x04\xf4\xa7\x98R\x88\xfe\xc59\x8f_P\xa39\x1e\ -a\x0aQ\x98\x22\x9c\xfc\x11Ae\x10\x97zy}\x97\ -\xca\xa3X+\x8fQ)ED\x1bi\x02\xa8S\x12\xfb\ -\xbe;\x05\xa02\xad57#N5FQ!\x02\xa8\ -\x13r\xfb\xbe\xe9' \xe7\x1cxR\x8c@\x05\xe1\xa7\ -L\x06P'\xa4\xf7};e\x90\x11\x18k\xe3\x83\x0a\ -\xf1\x80\xe6\x0c\x07N\x9d\x94\xe1?\xa3T\xb91\xe2d\ -S\xda\xa1\xaa\x10\xc6\x80\x1f\x0f\xa8NI\xf2\x8f\x14\x00\ -E\x8aH\xe3\xfbT\x94 p\x9d\xa4V\x01\xd5\x09y\ -\xfe\x84{\xa0\xba\x04\x95\xe4F\x04S\xf5\xf5\xa9~?\ -\xa0r\x9by\xc2H\xe6\x83\xaa\x91P\x92\x99\xc0\xa9S\ -\xb2\xfd~>\xc5\x80\xa3\xaa!\xca\x97#P\xb5\xdb9\ -\xa5\x01\xd4)\x19\xff\x91\xfc3\xa4\xc1y\xf2s\xfe\x14\ -#\x81A/\x04T'%\xfd\xfd\x9d\x14\x05\xd1\x13\xa3\ -\xd4\x8c\xbc*\xceY\x08\xa9\xa6eT\xb0/\xfe\x02+\ -f\xfc\x8d\x14\x83\xa8Q\x12\x07\x97jb\xde\x7f\x94\xa8\ -B.\xa3\xc2\xfdSh\xd4!(\x0d\x0d\xb8N\xcc\xfd\ -\xfb\xc9*\x22\x91QJ\x1b=\xb2V\x92I\xc9C\xb4\ -:1\xfd\xef\x87V\xe0\x058\x9c\xa4\xc7\xaf\x8c\xb8\x14\ -\xf6\xc9a\x80\x80\xeb\xe7v\x00|\xf5*\x90\x02\x87\x7f\ -t,\x8da\x04\xb0J\x13\xe2\x80\x89\xdb\x00#=@\ -\x91\xd6\xd4\x089\xc2UH\xae\xc8\xef\xee\x0c`\x9c\xa6\ -9\xff\x02\x5c\xc1\xa6R\xf6-\xe3\xca\xcf\x1cI\xe5\xd4\ -\xf8\x80R``\xcd\xf9x\xbb\xca`&N\x8e\x05\xf4\ -\x80\x02\xc8\x5cO\xf9\xb1\xc4\xff\x1f\xa0lt\xee\x07x\ -\x94`B}\x1f\xc0\x00J\xdc\x08\x13 \xbd\xbc\x07\xe0\ -\x1f\xa0$\x88R\xcc\x89\xafN!\xdab\x86i\x1a \ -\xbd\xbc\x03 FgR\x09cByA\x95\xdbie\ -\xfa\xe4D@\x80\xf4\xb5\xfc?\x1f\x9dE\xa7\x9c\x12\xea\ -\xed\xa82\x05\xc6I\x09\x12t\xe9\x94\xec\xbf\x1a\xef\xfc\ -+%\xa4\x09\x98~}\xee\x9f\xfb\x8c\xaa\x11g\x82\xf9\ -Q*\x03\x0b\xc5\xc0r\x05P'\xa4\xfe\xd94H9\ -b\x8a\x18%\x02\xa4\x97\x13\xffx$\xfaD\x08\xea\x1f\ -M\xe5\xe0\x0b@\x00\xc0\x02\xa4S\xd2\xfez|\xda\x17\ -+\xed\xff\xee\x94c$\xa9188RS\xb2\xfeR\ -\x8fd\x9f\x11\x86}\xbb\x1f\x1c\xfe/I\xfa\xfb\x8c*\ -\x91P\xa0P\xa9\xa7O\x05\xa8Yu\xee\xf7(\x01\xd3\ -q\x02\xc5\x8f\xf5\x15\xe2\x02\x1b\xa5\xc6IT.%\xfb\ -\x1aL\xbd;#(\xc1ftm\xcc\xfe\xf6\x15\xd3\xbf\ -\xfe\x97+%\xfc\xbb\x1e^Y\xae\x97\x9eNW\x8c~\ -v\xadNW\xc0\xbb\xaeb\x15\x11\xb7\x7f'\xa4\xbc\x06\ -\xae\xa4X\x09\xae\x22w\xf0\x1c\x8c\x13#\xd7\x04\x88\x9c\ -1#YD\x0c\x8c\x9eR\xc9\xaeO\xee\xa8\xd8/\x0b\ -9\xd9\xc3\x1a\x5cIU\xd5\xb9u\x17\x09\xb5\x8b8\xcb\ -\xb2\x1e\xd9oc\xea\xbfDT \xf7\x1b&C\xae\xdd\ -\xc9P\x0918q\xd3\xe4\xee\xd2\x10s\xdd\x1bc\xb7\ -Z\xe7\xa6K1\x9e0\xdd\xc3\x85\x1d\xfd\xbb}Z\xde\ -\xbe}\xf3_\xcf\x03\xd5\x0e\ -\x00\x00\x0ep\ +urrent-layer=\x22g2\ +568\x22\x0a inksca\ +pe:showpageshado\ +w=\x222\x22\x0a inksc\ +ape:pagecheckerb\ +oard=\x220\x22\x0a in\ +kscape:deskcolor\ +=\x22#d1d1d1\x22 />\ +<\ +/g>\x0a\ +\ +\x00\x00\x0d\xaa\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a \x0a \ +\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a\x0d\x0a\ -\x00\x00\x09\x03\ +dasharray:none;f\ +ill-opacity:1\x22 /\ +>\x0a\x0a\ +\x00\x00\x07\x14\ \x00\ -\x00-\xd3x\xda\xedZY\x8f\xa3V\x16~\x8f\x94\xff\ -\x80\xe8\x97\xb4\xc6\x5c\xdf}q\x97;\x9aQ+\xcaH\ -3/\x93d\xb67\x0a\xb0\x8b4\x06\x0bp\xb9\xaa\x7f\ -\xfd\x9c\x0b\x06\x03\x06/\xe9\xee\xf4T+.\x95\xcc]\ -\xb9\xe7;\xeb\x87\xb9\xfb\xfei\x938\x8fQ^\xc4Y\ -\xbat\x09\xc2\xae\x13\xa5A\x16\xc6\xe9z\xe9\xfe\xf2\xf3\ -\x0f\x9ev\x9d\xa2\xf4\xd3\xd0O\xb24Z\xbai\xe6~\ -\xff\xf6\xdbo\xee\x8a\xc7\xf5\xb7\xdf8\x8e\x03\xcb\xd3b\ -\x11\x06K\xf7\xa1,\xb7\x8b\xf9|\xbb\xcb\x13\x94\xe5\xeb\ -y\x18\xcc\xa3$\xdaDiY\xcc\x09\x22s\xb73?\ -8\xce\x0f\xf2\xc8/\xe3\xc7(\xc86\x9b,-\xaa\xa5\ -i\xf1\xaa;;\x0fW\xed\xf4\xfd~\x8f\xf6\xac\x9aE\ -\x8c1sL\xe7\x94z0\xc3+\x9e\xd3\xd2\x7f\xf2\x06\ -k\xe1\x9cck)\xc6x\x0ec\x9d\xa9WN[\x14\ -\x00\xce\x16\xfe\xdb\xf9M\x07*\xb2]\x1eD+X\x18\ -\xa14*\xe7\xef~~\xd7\x0ez\x18\x85e\xd8\xdd'\ -N\xdf\x17\x81\xbf\x8dz\xf7m:k\x18\xfcMTl\ -\xfd *\xe6M\x7f\xbd\xc1>\x0e\xcb\x87\xa5kd\xdd\ -|\x88\xe2\xf5C\xb9t\xb9\xae\xdb\x8fq\xb4\xffK\xf6\ -\xb4t\xb1\x83\x1d#\x9d\xa6?\x0e\x97.\x08C\x0f\xb3\ -\x8eJ'\x87\xf1\xc3M\x16\xed\x10F\x86\x22\xe6|G\ -9\x16\x82\xcb\x99C1\xd1\x1ef\x1e!\xaf\xeb5\x8d\ -|\x8b0\x0b\xecy\x97n\x18d\xdb\x15-\x0bdq\ -{k'\xddm\xa2\xd2\x0f\xfd\xd2\xafV\xd4\xe7h\xba\ -\x08\xad\xe7\xc0,P\xe2\xe2\x1f\xef~84\xa1#\x08\ -\x16\xff\xca\xf2\xf7M\x1b>v\x8a\x7f\x9f\xed@X\xf7\ -\xed\xb1\xff.\x0c\x16\x00\xfb\xc6/\xdf\xc6\x1b\x7f\x1dY\ -\x95\xfd\x09P\xbe\x9b\x1f\x07\xfa\xb3\xcb\xe7m\xd4\xd9\xb7\ -\xde9\x8fj\x0d\x8e\xdar\x18lb\xbbj\xfeS\x19\ -'\xc9_\xedm\x5cg>\xdc6.\x93\xe8mu\xdb\ -\xfa\xb2\x95e~\x10\xa6\x11v\xde\x95\xf6n\xde\xc0Q\ -7\xc3hUt\xb0\xb2M\x82[\x9c6~\xfe>\xca\ -\xdb\x1b\xb7Z+\xca,xo\xe7\xff9\xcf\xb3=\xf9\ -\x1b\xb8m^\xba\xed\xbc,\x8f\xc1\x17\x97\xae\xbf+\xb3\ -co\x1e\xad\xfe\x03z\xeeu\xfc\xbb\xd71\xbdcQ\ ->'\x00V\x06\xe6\xb2J\xb2\xfd\xe21.\xe2\xfb$\ -rO\x8f\x16\x17\xd5\xe1\x96n\x99\xef\xa2\xa3\xe6\xee\xb6\ -~\xf9\xd0Q\x83\xbd\x95\xed\xe2\xc2h\xb7\xd3\x0f\xdd\x7f\ -w\xf0\x0c;b\xe6\x09\xc7#\x14\x89\xaa!\x9c\xffv\ -\xa7\x1d\xce\xb3\x02\xfdx\xf9.\x89\x16\xd1c\x94fa\ -\xf8\xa6(\xf3\xec}\xb4x\x85\xab\xcf\xa1\xe9U^\xb4\ -\x80\x90W\x7f\xd8\xb6\xecnV\xe6~ZX\xdb\x01[\ -\xf5\xcb<~\xfa\x0e#=\xc3\xf6\x0f\xbe\x09|\xbd\xee\ -NoE\x0d\xb24\x8d\x822\xcb\xbd`\x97?\xfa\xe5\ -.\x8f,\x9c\xad\xa9\x80\xae+\xfd\x1d\x14ou[_\ -\xb6\x9ed\xdd(\xb4>|\xd8~\x0b\xa6\x16dI\x96\ -/\xddW\xab\xea\xd3\xdc\xf8>\xcb\xc3(o\xc6d\xf5\ -\xe9\x8fe\x10>\xc0l\xc1\xc9\x9b\xfe\xec\xfeW8^\ -\x99%\x11\x08hm\x9d\xb4\xba^\xe7\x80\xc8\xe8\xc0.\ -\x0e\xa3\xd1\x91Vl{\xc8\xf6f\xe3\xc3\xc5\x83\x1ff\ -\xfb\xa5KOF\xf7q\x0a#\xde!\xac\x11-\xd8\xd4\ -\x94&\xd4\x11L\x85\xdbq\x91\x16\xb3\xd6n\x8a\x87l\ -o\x05\x02{\xf0\x93\x22:\xd9\xf0C\x96\x81j%\xa2\ -DJ\xae\xc8\xc9x\x00\xf1\x93\x1bd\x187\x9a\x9f\x8e\ -\x82\x94T\x22\xcd9\x15d\xea\xb0\xb0\x83TS\x83v\ -\x83\xc9\xc1\x8d\xff\x14o\xe2\x0fQ\xd8Q\xdc\xf1\xde\xbb\ -<\x07O\xf6\x12\xff9\x02\xbd\xaf\xb9\xe0\xbc\xb1\xaf\xbb\ -u\x07\x945'\xe2\x186\xd6=\x8f\xaeW]\xe1\x89\ -\x0c\x9fx\xa2G\xc1\xfb~t\xb8t\xfe\x09\xb9\x05\xae\ -<\xdaw\xc4K\xce0\xee\xb3\x8b\x14*\x8cnL\xed\ -\x1c\xf9ph\x83\xc9y\x1f\x05oV\xccP\xc3+O\ -=\xb6\x14A\xca\x08\xc5\xc5\x8c\x1aD\xa42L\xbd\xee\ -e\x90\x81\xfc7\xc9\xd0\x81\x8b(\xd2\x1f\xb1\xa9\xce\xf1\ -\x84@Ba\xa5\xf5\x8c#\xf8&B\x0a\x87`\xa4\x18\ -\x86\xd6\xcc\xd3\x883M\x89\x91\xfd\xb5]l^E\xd2\ -\xfe\xbd\x99\x0en4\x10\xbe?\x08n\x14\xa4f\x5c\x19\ -\xa9\x9b\xfe$\x06a\xfc\xed\xe2~W\x96\xdd\xbe_\xb3\ -8]@\x86\x8b\xf2\xa6\xb7j$`\x86\xe5\x827}\ -\xa1\x0fN\x9c\xe7\xfes\xa5\xab\xa6\xf7\xe0\xf7\x0b2H\ -\x88\x9f\x0cS6\x8a\xa9D\x04K\xad\xe5\xcc#\x1c\x19\ -\x05\x8e*\x1c\x83\x98\xd0\x04\x9bYu\x81\x8d\xa6\x7f@\ -:\x0a\xa9\x18\x83\x9410I*4\x98$QHP\ -N\xb1r<\x83\x84QBSHz\x10\x0ea\xa9!\ -/\x1d\xd4\xfe\xf1\xdb\xc4\x9bA\x96\x83\x12\x0f\xa8@\x10\ -\x5c\x02~b\xd5'Q\x8e\x1aS\x0e\xe7Hr\xb0q\ ->\xf3\x18\xe2`\xf9\xd8p\x07J!%@'rV\ -\x85\x13j\xbe.s\x8f\x92$\xde\x16\x83J\x1d2'\ -C\x18l\x92\xca\x01P\xf9\x93\x1d\x22\x82iE\x07\x06\ -n\x13\xb6M\xf60H\x07\xfa\xb7\x99\xde\x13\x0a\x11\xcd\ -\x99PSJa\xd2\x93\x1e\x1b\x85\xb7=\xfd\x9b\x1ah\ -\x01\x9f\xd5\xaa\x06\xba?6\x8a{\x17\x88\x16tM\x0c\ -e\x82\x9d\x00\x9cg\xbb4\xfc\xfc\x00S\x08\xa8\x5c\x13\ -6\x0a0\x96\x92q)O\x01V\x88\x1b&\xa9\x90#\ -\x003\x82$\x84\x0en\xce\x00L\xae\x83w\xa5\xc3\x90\ -}\x04\xbc\x0c1\xa2\x0d\xa1T})x9\xa2P\x8e\ -\x10\xc6O\xe1\xe5\x88\x13B\x0c\x19\xb1_\x1b\x94\xa9\x14\ -T\x881|9\x12XkC\xcf\x19\xf0\x95\xe6k\xcc\ -G\x99/C\xda`#\x01\xe3/\x85/\x04H\x8d5\ -\xa3l\xcc|!\xbf\x196\x0aoUF\x183f\xbe\ -P\xc1\x81aC\xfa\x9b\x86\xf7*p\x99\xf2\xef\x03\xfd\ -Q\xe0rm\xc0\xfb\xa4\xfar\xe0j\x0c\x082=\x06\ -\xae\x01>\x84\xc9\x08\xb8\xb0J\x0b\xa1G\xc1\xe5\x02<\ -\x92jy\xcev\xf1U\xf0R_\xad>\xd2v\x19a\ -\xc6\xfa\xd1\xe7\x86w}\x22k\xc5\xc9\x869f\xec9\ -\x04\x98!\x01'%\x87\xc7\x11m\xd3\xa3\x14A\xfd\xc6\ -8\x85KHh\x12c\xc2{\x0f\xd2\ -l\xe8>\x1d\xa4!\xe9r.\xe4M|\xf1\x0f\xa0'\ -\x80\x16\xd3&\x0d\x95\x9eV\x18\x8a\xf3\x01\x8b\x84\xd4\xc0\ -\xa4\x99\x11\x02\xd6\xad\x08\x80\xfe5@}*\xc2\x15l\ -rZ%\xd7\xb0\xca\x8fU\x9d\xf2\xe4\x94\xea\xb8e\x1e\ -\x14\xaa\xfb\x1b8\xe6\xd7\xe2\x22c\xe5\xce\x05\xbey\x81\ -s^\xe0\x9d\xdd\xda\x92Q\x8a\x99:\xa7\xb6\x9a\x7fz\ -\xd3\xf1\xe9\xb4\xd2\x0c\xb4\x22/\x81\x85^\x84\x7f\x82\x8d\ -^`\xa4\x17Xi\x0b?T\x02\xb0\xb7d\xe4\x02\xfc\ -\xc43W\x83\x8f\xb1\xefs\xfe\x128\xeaE\xf0'\xb8\ -\xea\x05\xbez\x89\xb3\x1ey+E\x92K\xa1\xe8E\xe3\ -'7\xa0\x1fr\xdf\x7f\x09\x0c\xf6\x8a\xc83\xcad\xcf\ -\xb3\xd9.\xa3\xd5\xd6\xf4\xcdT\xe4\x01\xc2\x06\xa9\x9a\x5c\ -2}z\x93\xe1\xeb\x17\xc1o\xaf\x80~\x94\xe7\x9e\xe7\ -\xba\x97\xf8\xee\x91\xf3\x82\xa0\x02\x0b~\xc9\xee\xb1\xa7~\ -\xbf\x90\xff\xbb\xb1_\xfb\xd3\xf7\xba\xcb\x86\xfb\xad\xf5o\ -\xa7\xc0\xc4 \x1bm\x0cT\x9f\x82T\xa1\x87\x9a\xd7\xee\ -\x08\xd7&\xc0\xb5\xf1\x15\x9c\x5c\x121\x0c\xfc\xb7qr\ -(\x87!yQs\x86\x93\xe7P\xc2\x0d\x94l-\x90\ - \x98\x0d\x05\xd7\x89{[\xebT\xf6y\x1f?u\xdd\ -\xca4\x15cL\x9c\x0c5\xbf\x9eK\xb0M\xac\x949\ -\xb1\xac\xc3/\xf0\xcc\xd8\xbd\x199\xb1M\x8b\x88=+\ -\x07\xe6\xec1y\x8e\xd2\xbf2\xcc\x84~\xd0\x16}\xbd\ -\xe6\xc1\xdc,LB\x0b,\xe9\xb0\xe8\xebY\xdb'\xb3\ -\xc17[?NK\xafz3bQ\xbf\x86Q8\xf6\ -\xb4N=\xf3\xc4F'\xf5\x02\x851hxJ/\x1a\ -C\xf2\x1e\xd1\x0bG\x18h\x0f\xc5bZ1\x0a(\x92\ -TrB1P\xaaP\xc2\x99\x22\xe7\x15\xe3\x9d}\xd8\ -\xd2\xa4\xc7\xc9(\x00U\xbe\x91\x94\x0b%\xbe\x80ZR\ -\xfb\xbaV2\xf0\xcbNt\xe8]\x0f8TOJ\x1e\ -\xda\xbf\xd6\xfez\xcd\xe6\xdd\x9f\xed\xd3\xedlc\x94\xfb\ -U\xf4\x09T\x8f9 Gg\x94#\x06.F\x9c\x07\ -\x87@\x9e0XP\xe2$\x0e\x06\x1a!\xed\xaf\xabP\ -\xd0b\xcc\x15w$\x92\x82c\x88\x0d\x90\x0d\xa4!\x86\ -9\x1e\xd8\x00\x18\x09&\xd0%\xa8\xc4Ru\x97IE\ -\x8d\x96\x8eM\xec\xb0\x9e\x196;\x0c:\x1f\xdc\x91\xd7\ -7\xb4\xd2\xbf\xf5\xbd\x8cQ\x22Z\x7f\xba/3\xadO\ -_/\xe9D\xc7\xea2\xf1\xcb\xc8>\x90\x03Q\xa8f\ - \x85\x80\xf0\x03rt\xc3r\x1b\x92;{\x0f_X\ -\x91]\x7f\x1b\xbd\x89G\xa0xP\x02w\x9f\xe9\x0d}\ -x2\xaeN\xc5\xd4\x89xz6\x96\x9e\x8b\xa3]W\ -\x9dz\x13\xe6\xa5\x07\xcfq\xd0G\x82\xe6T\xc0\x9c\x0a\ -\x96g\x03\xe5\xb9 \xd9\x0f\x90\x93\xb8\x83\x91\xca\xd5\xea\ -\x85\x84\xc6\xc6\xfb\xea\xef;\xfb\xd6+|\xff\x0f\x81\x9d\ -j\x01\ -\x00\x00\x0b\x15\ +\x00& x\xda\xddZ[o\xa3H\x16~\xcf\xaf`\ +\xe8\x97n\x8d)\xea\xd4\xbdX;#\xcd\xb4F\x9a\xd7\ +\xb9h\x1fW\x04\x88\xcd6\x06\x0bp\x9c\xf4\xaf\x9fS\ +\xd8\xe0\x0ba\x95\x95\xbc\x92\xd78QRuN]\xce\ +W\xe7Zx\xfe\xd3\xeb\xba\xf0^\xb2\xba\xc9\xabr\xe1\ +\x03\xa1\xbe\x97\x95I\x95\xe6\xe5r\xe1\xff\xf5\xe7\xaf\x81\ +\xf1\xbd\xa6\x8d\xcb4.\xaa2[\xf8e\xe5\xff\xf4\xf8\ +0\xff!\x08\xbc_\xea,n\xb3\xd4\xdb\xe5\xed\xca\xfb\ +\xad\xfc\xd6$\xf1&\xf3>\xaf\xdav\x13\x85\xe1n\xb7\ +#\xf9\xa1\x93T\xf52\xfc\xe2\x05\xc1\xe3\xc3\xc3\xbcy\ +Y>x\x9e\x87\xeb\x96M\x94&\x0b\xff0`\xb3\xad\ +\x8b\x8e1M\xc2\xac\xc8\xd6Y\xd96!\x10\x08\xfd#\ +{rdO\xdc\xea\xf9K\x96T\xebuU6\xdd\xc8\ +\xb2\xf9t\xc2\x5c\xa7\xcf\x03\xb7\xdb\xcd\x8ewL`\xad\ +\x0d)\x0b\x19\x0b\x90#h\xde\xca6~\x0d\xce\x87\xe2\ +\x1e\xdf\x1b\xca(\xa5!\xd2\x8e\x9c\x1f\xe3\x8a\x1a\x04t\ +\x83\xbf\x03{\xdfA\x9aj['\xd93\x8e\xcbH\x99\ +\xb5\xe1\xd7?\xbf\x0e\xc4\x80\x92\xb4MO\xa6\xe9\xf1<\ +[\xf5\x0c\xe42^g\xcd&N\xb2&\xec\xfb\xbb\xf1\ +\xbb\xfa\xfd\xeb\xaf\xfb\x16\xb6\x93$\xfagU\x7f;4\ +\xf1q\x0c\xf1\x13j\xe2\xc2\xf7\x1f\x87\xeey\x9aDh\ +\xa9\xa8\xa9\x8f\xf9\x1a\x0f\xd8\x19\xf9\x8fh\x99\xf3\xf0H\ +8cn\xdf6\xd9q\xd2\xfd\xb4u\xb67\xf9w\xfd\ +^\x9a\xacs7(\xfc\xa3\xcd\x8b\xe27\xb7\xc8A\xac\ +\x93I\xf3\xb6\xc8\x8e\x9d\xf3\xf0\xb0\xfb\x83l\xe1\x89p\ +\xf3\xb0\x17\xbdk-/@,\xe2\xa7\xacX\xf8\xbf\xc4\ +\x9b\xd8\x83K\x84\x97u\xb5\xdd\xac\xab\x147\xda\xe9\x8a\ +\x7f\xc4\xb3k\xf7\x03\xda:.\x1b'\xfc\xc2\xef\xfe-\ +0&|\xa6\xb3\x00(\x15\x84+\xc6\xbe\xf4\xa8/{\ +1\xdc\x1c\xa7\x8aw6\x09\x82X\xe7\xaf\x9f)1J\ +\x81\xe2\x92\xcf\xa8\xfb\x1c\x9b\x8c(\xa9\xb5\xd1v\x06\x5c\ +\x13@C\x80/\xc3DM\xfbV\xe0\x8e\x9f\x11\xbd\xe8\ +`\xee\xffh\xda\xba\xfa\x96E\x9fD\xea>\xfe\xf1\xd4\ +\xf3:)N\xce\xa7v\x96.\xfdc\x8735\x14\xc3\ +\x10\x0e\x83vv\xfd\xa8\xaeL\x10)\xa45\xe6\xa4\xdf\ +\xc9\xb5\x89\xdb\x15\xe7\x5c\x9dt\xbf\xb7'\xd7\x08\x0e\x0e\ +$\x82}\xb3\xde\x16Y\x94\xbdde\x95\xa6\xc3\xa6m\ +\xf7\x1c\x9a{c\x8b`\xf3\xdaw\x14y\x99\xe1qE\ +O\xdb\xb6=\xed\xfbw\x95\x97\x11\xeaRV\xf7\xbd\xc3\ +b'\x0a\xf5Q\x08\x80\x13\xe0\xf6\x12\x02D\x9f\x1a*\ +(\x9b\x80 \xe0w\x05\x02S\xa8\xce\xa0.@\x10\x9c\ +XaQ\x1b\xa7@\xb8/M\xe0\xd6Y\x1f\xbf\x04\x81\ +\x12A\x05\x17|\x0a\x04}W \x08M45#\x8f\ +`\x10\x1a\xab\xe5\xa49\xc8\xfb\x02A\xa2Kfp\x01\ +\x02\x08\xc2\xa4\xa20\xed\x13\xee\x0b\x05.\x09H\x90\x17\ +(HB\xadB\x151\x93N\x81\xdd\x97k\xc4\x98\xac\ +\xcc\xc8+\x10\x83\x8a 4L\xa1`\xef+H\x22\x08\ +V]\xc6\x07\x00\x22\x84\x056\xa9\x0ap_ X\x82\ +'n/]#%LII\xe5$\x08w\x16!\xd0\ + 8\xb3\x97n\x81\x03Z\x84\x11g\x91\xe3\x02\x06z\ +_\xde\x91\xb9:u\x04\x03\x1a\x0a&\xff\xd3\x16qg\ +\x8e\x01\xf3d#\xd8\xa5I \xa7\x06\xa6\xd94\x0aw\ +\x96>[B1T\x8e\xf3\x05\x01R);\x0d\xc3\xff\ +I\x02\xedv|\x22\xc3p\xdfR\x958m[\xd5A\ +\xb2\xad_\xe2v[\xe3\xfe\xe9;\xd2\x0av\x06\x8e\xbb\ +\xb6\xf0\x14\xa1\xd2hi\xe5\x0c\xf1\xc3\x1aLI\xe6i\ +t\xa5\x94\xa27\x9dI\xc2\xb55\x1fA\xe7\xe3p\xfc\ +\xf7`t\x8d\x22\xc7?\x91\xe8\xfb\xd2\xb8Y\xc5u\x1d\ +\xbfEeUf\xffk\xd8\xf8%l\x80\xf9\x97\xb1\x94\ +\x09\x07\x9b&\x16\xa4\x97x\x94pJ5\x88Y\x80\xc5\ +\x0ac\xca\x13\x0eH\x006\x0b4\x91 \xc4\xa8\xe3\xaa\ +\xc8\xba[Qcp+\xe2\x964N^B\xc7\xdcE\ +\x8b\xc1\xec\x15\xa1\x03\x84\x8e#.\x9cP\x86\x09\x0c\x9f\ +\x05X\xe1\x08j\xaf\x8c\x0bV\x11\x96k\xa6o\x09\x17\ +=R)\x17\xc9(\xeet\xd6%z\x0c\x9d\x96\x07x\ +\xa6B\x1b\x81*\xc5\x09\x96Bpm\x85\x11\xca\x82\xd2\ +\xea\x96\x80\xb1c\x17\xc5QG\xa4t\xc0`1$\xa4\ +\xf5\xa0\xbb\x12\xe1\xa8\xec3 \xd6j{u\x5c\xdc\xcd\ +\x1b\xf0\x1b\xc2E\xc1;\x86$\xb5\xb6\xda\x19\x127D\ ++!\xbd\x00\xf1Q\xc6p;S\x841j\xaemH\ +\xa8\x95\x96\xdd\x94\xbe\xa8\x91oF\x7f\xcc@\x1a\xcbf\ +\xfb{\x14\x8ci^\x00\xee}\x86\xd4\x1cf\x01\x10\xa5\ +\xf5\xd5\x15\x86K\xc1\xc0\xdc\x120#C\xc2,Q\x0b\ +\xab\xc1\xc5z\xcc\x8a8\xd5\xda\xc3\x08\xcf\x19\x15\xa8C\ +@8&\x02\xd7\xc6\x05\x003\x88[J\x81\xf4\xc8\x8e\ +\x04#\xd2\xa0\x7f\x99u\x17\xb0Ts\xe1\x05\x968N\ +\xc9\x9c\xdf\xe5R]\xdb\xefjK\x05\xaevK\xea\xa2\ +G\x81Z\xb8\xe3s7m{\xff\x22\xa9\x16\x1e\xc6(\ ++ygE\xe8\x0d\xa8\xba\xba\x83\xe1Ti\xd0\xf6\x96\ +\x80\xd1\xef$\x7f\x02\x942\x9d\xe3\xa5\x04\xd0\xf0\xd1\x8e\ +\x00\x80\x1a\x8d~W\x98\xab\xc3\xa2\x05\xc7\xaa\x9e\xde\x92\ +\x1d\x9d\x95\x05{\xbf\x8b5\x19\x06h\xd6%v\xee\x12\ +\xdfh\xcf`N*\x95\x9e1\x02Z\xf2k\xa3\x82U\ +\x8ad\x94\xdf\x94w\x09F\xf1\x883b0\x1e)\x17\ +\x8f8\x10\xa1\xb12\xc0\x0a\xc1\x80\xc2\xf8\xe4*\x01\x8b\ +P]\x1b\x1aN\xb1\xb6\xb5\xec\xc6\xa09\xab\xb4\xf7\xe0\ +X,\x84\xf4>X\xa3\x93\xc1\x8c\x0e\xbd\xaf\xf3\xc2J\ +!`\x98\xce0\x10\xb7\x0d\xce<\x5c\xf6\xef\xfc\x11\x89\ +\xf7\xde\x12w\x15\xea\xd9\x1d\x02\x9e\xbe\xb0X\x00J\xfe\ +\x1f\xb7\xca\x89\x91Z\xa0\x7f\x91\xa3M\xd5\xd5\xb6L?\ +^ \xfb\xa7/\xc6\xdd>\x05\x9c\xbc@\xee\xbf\xba#\ +\x9c/CM\x1d\x08\xc3\xb7xF\x14w\xb1\xe2\xeaM\ +MO\x02\xea\xfee6f\x9e\xf6\xa4\x84\xab\xbb^\x02\ +Fi9|\x83\xc2a6w_nx|\xf8\x1b\x9b\ +j\x14\x0c\ +\x00\x00\x078\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a\ - \x0d\x0a \x0a\ + \x0a \x0a\ +\x0a\ +\x00\x00\x08\xce\ +\x00\ +\x00K\x0ax\xda\xed\x5c[o\xe36\x16~\x9f_!\ +h^&\xd8\x88\xe6\xfd\xe2\xc6)v1(\xba@\xfb\ +\xb2\xdbv/o\x8a\xc48jd\xc9\x90\xe4x2\xbf\ +~\x0f\xe5\xc8\x96h\xc7\xce\x0c\xfa0\xd8\xd23\x0e\xec\ +\xc3\xdb\xe1\xc7s\xe3!\xad\x9b\xef?\xad\xca\xe8\xc96\ +mQW\x8b\x98 \x1cG\xb6\xca\xea\xbc\xa8\x96\x8b\xf8\ +\xd7_~Ht\x1c\xb5]Z\xe5iYWv\x11W\ +u\xfc\xfd\xed\xbb\x9b\xf6i\xf9.\x8a\xa2m\x91w\x0f\ +\x8b\x98\xeb\xd8}{\xb0\xc5\xf2\xa1\xdb\x7f}*\xec\xf6\ +o\xf5\xa7E\x8c#\x1cq\x1d\xbd\x90\x8b|\x11Cs\ +\xba\xabs\x18\x99\xecJ\xab\xc76K\xd7v>*\xa1\ +\x88D\x1fL&sN,'\xf8:\xa2\x98\xd2\x04\xab\ +\x84\xf0\xab\xbeQ\x0b\xfc\xae\xe1=\xcf\xeb\xacJW\xc0\ +fVn\xda\xce60\x0b\x04c\xf5\x95`\xa2\xf3v\ +\x9dfP\xbanlk\x9b';\xd0\xabv>\x8c\xbb\ +\x88\x1f\xban=\x9f\xcd\xb6\xdb-\x1a\x88\xa8n\x963\ +\xd7q\xdf\xbe\x9d\x0d\xf4Q\xfb\x81\x85}\xfb\x81\x80\xda\ +z\xd3d\xf6\x1e\xba\xb0\xa8\xb2\xdd\xec\xe3/\x1f\xf7\x85\ +\x09Fy\x97\x1f\xba\x99\x8c\xbee\xfd\xb8\x14c<\x1b\ +M\xc2\x0d\xf6\xb4|c\xcd&\xbf?U\x93\x18cf\ +\x98\xce\x00F\xa8\x91\xb4\xcfU\x97~J\xaa\xf6\xfd\xa8\ +i\x96\xed[f\x8dM\xbb\xe2\xc9f\xf5jUW\xed\ +\x0e\x8eI\xe5\xfcPy\xbdi\xca\xbeF\x9e\xcdli\ +W\xb6\xea\xda\x19,\xef,\xbe\xbdY\xd9.\xcd\xd3.\ +u\x0dw\x920P\x08\x85b\xe0e\xfe\x8f\x8f?\xdc\ +\xded\xd9\xfc_u\xf3\xb8\xab\xe6^\xae$\xbd\xab7\ + ]P/\xcf\xe6\x80\xe7*\xedn\x8bU\xba\xb4n\ +\xce\x7f\x01>nf\x87\x02W\xa7{^\xdbC\x17\xbb\ +N`\xe5\xfb\xf58\xc9n\x9e\xad\x0a\xd7h\xf6\xcf\xae\ +(\xcb\xbf\xbb\xbe\xe3h\xb6\xeb\xab\xe8J\xeb>\xcf^\ +x\x83O{vg\xc3,\xa0\xaa\xbdo\x0f\xb3s\xdf\ +\x08v\x13O\x9bG\xdb\x0c\xcc\xec\x85\xbc\xed\xea\xec\xd1\ +U\xfck\xd3\xd4[\xf2\x13hZ\xd3\xc5C\xb5\xba)\ +\x00\xbcE\x9cn\xbazOl\xec\xfd\x7f@\xa5@Q\ +G\x94\x7fO)\xaf\xf6\xd8v\xcf%L\xbd\x06\xe5\xba\ +/\xeb\xed\xfc\xa9h\x8b\xbb\xd2\xc6G\x8c\x15m\xcf\xda\ +\x22\xee\x9a\x8d\x05\xfe\xd7i\xf7p\x80\xd2\xf5\xef(\x5c\ +\x18\x1d\x1f\xc8@\xfd9\x02>\xae\xe1\x1d\xfd\x14\x09\xf8\ +\x94\x88\xfecB(\x12#\xf2\x8e:T\xfd\x1c\x8d:\ +ya\xf1\x1e\x16 i6\xa5\x9d\xdb'[\xd5y\xfe\ +]\xdb5\xf5\xa3\x9d\xbf\xc7\xfd\xeb\xe5k\xd2[\xa09\ +\xd8\xadu7\xea\xa4k\xd2\xaau\x92\x00\xa6&KK\ +\xfb\x01#}\xb5\xa3\x96ig?\xec\xd8\xb9\xea\x17w\ +\xb6[\x1b\xf8\xe0V\xeb\xf6foL\x9c\xc2\xe7\xce\x88\ +\xed\xfa]\x834duY7\x8b\xf8\xfd}\xffz\x19\ +\xf0\xaenr\xdb\x0cE\xb2\x7fM\x8aj\xb0\x1a W\ +`\xca^\xc8\xf5\xdd\xef6\xeb\xba\xba\xb4\xc0\x91\x93E\ +2\xac\xdd\xb2\x81\xf9\x9c\xa2o\x8a\xdc\x9e*\xd8\xaf\x98\ +co?\xd0\xc9\xd2\xf6!\xcd\xeb\xed\x22\xa6~\xe1\xb6\ +\xa8\xa0 y1\xe6\x94\xef\x17\xd5\xaf1\x18x\x82\x85\ +\x8a\x0fR\xbe\x07jh\xd7>\xd4[7\x13X\xc6\xb4\ +l\xad\xdf\xdb\xe7\xba\x86\x85\xd1\x88jB\x85_\x98\x81\ +\xc3 \x1c1l8\xe3G\x8507f\x10\xc6L)\ +\xfe\x0a\x93\xd0^\xbcV\x06\xcd\x93\xd7&\xb7J?\x15\ +\xab\xe2\xb3\xcd\x0f\xebt\x18w\xd34\xa0\x8aI\x99>\ +[X\xe4%'\xe2\x08b7\xe9\xb30\xf7\x02\xf4`\ +3\x10\xb6\xbb:m\xf2\x13\xcb\x94\xdb\xf6q\x10\xa4\x9c\ +\xb8\x7f\xbd\x88.\x0fX\xef\x86\xde\x93\x06\xa2\xe0|/\ +\xfe#\xe1?H|B\x90\x90F\x13\xc2\xae\xce\xa83\ +\xc3G\xea|\x8d\xa3\x1f\x9d\xf7\xfe\xcd\xfd\xf9\x11<\xf9\ +\x7fGU\x0e\x00\xd5U\x05\x22]7\x09@\xf5\x94v\ +\x9b\xc6\x1e\xa6\xe7\xa9\xf5\xbc\x82Hb\xa7z\xcb\xd1D\ +N\xb2\x0d\x8a\x8d\xa5\xa2\x9a]'T \xad\x155\xe6\ +*\x9e\xce\x9d\xc0\xdc]o\xb6,\x8buk\xdf\x9d\x18\ +\xf1=\xcdD\x9a\xe2\xefz\xab\xf2\xa2%s2\x98\x14\ +\xc7\xcf\xd4\x9e\x08$\x98\xc1b \x96\x05L.]\xcf\ +\x9bzS\xe5c\xe2\xefuQM\xa9\xe0@lS\x82\ + us>\xd0\xf2\x14d\xa2i\xd2\xe7\xc9H\x076\ +\xd6i\x01\xb2\xd5\x9b\x8a\xf9\xce\x18\xb5\xd1\xaeR\xe4\x18\ +\x9eL\xd7\xad\x93\xe64\x91T\xee\xe9Ne\xa8S'\ +\xca8;PA\xd8AU\xa4\x14L\x1c|\x85\xd3.\ +$\x157\x5c\xab\x03\xd5\xd9&\xa4\x18\x06\xc5\xfe\xf3A\ +\xc9\x122\x81\x92\x81\xb30\x84Q1\x81R#\x22\x95\ +$R\x07,\xcf\x89e\xa2},\x05U\x1a\xab\x09\x96\ +\x04\xbc>\x17\xf0?`y\x06K\x95\xa8)\x96\x141\ +0\xd1Zy*\x0e\xb6\x9f\x19\xc9\x03\x96g\xb0\x14\x89\ +\xf1\xcd\xa5\x11Th2\x95K\x00\xc8(FT\xc0\xf2\ +\x9c\xbd\x14\x09\xf5\x95\x5crm\xf4\xd4`\x12\x86\x88\xe2\ +\xd8\xc8\x00\xe6Y?\x9e\xe0)\x98\x0caE9\xd1\xbe\ +drJ4#\x01\xcc3`\x1a_0\x05\xe2Fh\ +\xc1\x82\xf7\xf9b,I\xc2|\xef\xc3!\x96\xf4\xb1\xe4\ +HcBqP\xf2sXR\xcf\x93\x83\xf7Q\x04S\ +\xc6\xa7X\x0a\x84\x05\x19\x01\x1c\xa0<\x11\x14\xe1D\xf8\ +\xf6\x92\x18&\xf4\x14K\x89`\x9f\x0c\xd1R\xf0\xe4g\ +\xed%\xf3\xc3\x22\x81\x0ceT\x1d\x85E\x82Kc\x82\ +d\x9e\xf5\xe4\xd8\xf3>\xa0\xe5\x5c*m&X\x0a\xd8\ +F2\xf0\xef&`y\x01K\x1fM\x81$\xc5\x8ck\ +oWN\x01\xa2\x10c^F\xd3\xdb\x97K\x08\xd9\xa5\ +\xd1\xfa\xc8\x9b\x83t\xea\x00\xe7E8\x8f\xb6\x93Ja\ +M\xa6\xbaN\x14R\x9c\x0a\x12\xe0\xbc\x08\xa7\x17\x1fq\ +\xc41H\xe2\x14M\x89\x98\x14*8\xa1\x8b`z\x81\ +;G\x942\xc1\xbd\xdd9H,g\xe3\xc4\xdc\x1f\x00\ +'S\x99N\xef\xbe\x00Nb8\xe5\xdfv\x96=\x99\ +\xe6\xd9\x0dbL\x19\xd8\x89O\xd0\xa4\xb0i\x17'b\ +wA\x8d\xe6\xd8G\x13\xb6Q\x8ap\xf2\xe7\x83\x93\xc1\ +\xaer\x9akw\x197\x8a\xb5\x9a\x0a'\xa5\x88h#\ +M\x80\xf3R\xb2\xdd\x0b\x92\x00N\xa6\xb5\xe6\xc6\x97N\ +c\x14\x15\x22\xc0y!\xdf\xee\xb9u\x02j\xcdA\x10\ +\x85\x0f'\xa8:e2\xc0y!\xe5\xeey\x22\x83\x8c\ +\xc0X\x1b\x0fN\x08\xec5g8H\xe7\xc5\xac\xfb\xb1\ +\xf1\xe4\xc6\x88\xf1I\xb0\xc3S!\x8c\x01:\x1e\xf0\xbc\ +\x94x\xf7\xd5\x9d\x22E\xa4\xf1\x22%J\x10DDR\ +\xab\x80\xe7\x85\xdc{\xc2\xa7p\xbad\x92\xe4F\x04g\ +\xf4U\xe9woS\xe4\xce\xd3\x84\x91\xcc\x83S#\xa1\ +$3A:/e\xe0\xbd\x0c\x88\x81\xc0S\xc3\xf6\x5c\ +\xfapjwjI\x03\x9c\x97\xb2\xf0\xbe\xb63\xa4!\ +&\xf2\xf2\xf0\x14#\x81\xc1\x08\x04\ +\x8c\x5c\x13 r\xc6\x8cd\x111\xc0;\xa5\x92]\x8f\ +\x9f\xba0,\x06\x19\x1f$\x8d\x9e\x97T\xd5\xb9u\x0f\ +\xbci\x17q\x96e=\xa4\xdf\xc2\xb4\x7f\x8e\xa8@\xee\ +7=\x86\x5c\xbb\xab\x95\x12\xf6\xce\xc4M\x91\xbb\xa7_\ +\x98\xeb\xde\xd3\xbau:1U\x8a\xf1\xe5\xa9\xee\x9f>\ +\xd1\xbf\xdb\xa7\xe5\xed\xbb\xff\x01\xc1\x93\xc2^\ +\x00\x00\x0e\x11\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a \x0a \ + \x0d\x0a \ - \x0d\x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0a\x8e\ +rvature=\x220\x22\x0a \ + id=\x22path109\ +5\x22\x0a d=\x22m\ + 316.74974,562.7\ +9153 16.99663,17\ +.62227\x22\x0a \ + style=\x22fill:#b3\ +b3b3;fill-rule:e\ +venodd;stroke:#9\ +99999;stroke-wid\ +th:7;stroke-line\ +cap:round;stroke\ +-linejoin:miter;\ +stroke-miterlimi\ +t:4;stroke-dasha\ +rray:none;stroke\ +-opacity:1\x22 />\x0a \ + \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x08\xfc\ +\x00\ +\x00,\xcex\xda\xedZ[o\xa3H\x16~\xef_\x81\ +\xc8\xcb\xb4\xd6\x94\xeb~q\xc7\x19\xed\xaa5\x9a\x95v\ +_ff\xafo\x04\xb0\xc3\x04\x83\x058N\xfa\xd7\xef\ +)l0`\xc0\xc9\xa4{z\xd3\x1aG\x91\xa9+U\ +\xdf\xf9\xce\xa9\xf3a\xae\xbf\x7f\xdc$\xceC\x94\x17q\ +\x96.]\x82\xb0\xebDi\x90\x85q\xba^\xba\xff\xf8\ +\xe5\x07O\xbbNQ\xfai\xe8'Y\x1a-\xdd4s\ +\xbf\xbfyw]<\xac\xdf9\x8e\x03\x83\xd3b\x11\x06\ +K\xf7\xae,\xb7\x8b\xf9|\xbb\xcb\x13\x94\xe5\xeby\x18\ +\xcc\xa3$\xdaDiY\xcc\x09\x22s\xf7\xd4=8u\ +\x0f\xf2\xc8/\xe3\x87(\xc86\x9b,-\xaa\x91iq\ +\xd5\xea\x9c\x87\xab\xa6\xf7~\xbfG{Vu\x22\xc6\x98\ +9\xa6sJ=\xe8\xe1\x15Oi\xe9?z\xdd\xa1\xb0\ +\xc6\xa1\xa1\x14c<\x87\xb6S\xcf\xe7\xf5Z\x14\x80\xca\ +\x16\xfe\x9b\xeeu\x05*\xb2]\x1eD+\x18\x17\xa14\ +*\xe7\x1f\x7f\xf9\xd84z\x18\x85e\xd8\x9a&N\xef\ +\x8b\xc0\xdfF\x9d\xbb\xd6\x95\x07\x04\xfcMTl\xfd \ +*\xe6u}5~\x1f\x87\xe5\xdd\xd25\xb2*\xddE\ +\xf1\xfa\xae\x5c\xba\x5cW\xc5\x878\xda\xff%{\x5c\xba\ +\xd8\xc1\x8e\x91\xce\xb1:\x0e\x97.l\x83\x1e\xfa\x9c\xec\ +L\x0e\xad\xc7\xe9\x17M\x0bF\x86\x22\xe6|G9\x16\ +\x82\xcb\x99C1\xd1\x1ef\x1e!\xef\xab!\xf5\xbe\x16\ +a\x16\xd8\x85.\xdd0\xc8\xb6+Z\x16\xc8\xc2u\x03\ +}\xae7Q\xe9\x87~\xe9\xdb\xfe\x87%\xd45\x84V\ +=\xa0\x0f\x98m\xf1\xd3\xc7\x1f\x0e%(\x07\xc1\xe2_\ +Y~\x7f,\xc2\xc7v\xf0o\xb3\x1dl\xd1\xbdi\xaa\ +\xaf\xc3`\x01@o\xfc\xf2&\xde\xf8\xeb\xc8\xda\xe8O\ +\x00\xec\xf5\xfc\xd4\xd0\xe9\x5c>m\xa3\xd3\xa4\x87i\xf3\ +\xe8`\xb1A\xda\x86\xc1&\xb6\x83\xe6?\x97q\x92\xfc\ +\xd5\xde\xc4u\xe6\xbdI\xe32\x89n\xaa{\x1e.\xeb\ +]\xcc\x8f\xdb8nr\xde\xda\xe5\xf5\xbc\x06\xa1*\x85\ +\xd1\xaa8\xe1cK\x04\xd7\xd8l\xfc\xfc>\xca\xeb;\ +6F*\xca,\xb8\xb7\xbd\xff\x9c\xe7\xd9\x9e\xfc\x0d\xfc\ +2/\xdd\xba[\x96\xc7\xe0mK\xd7\xdf\x95YS\x99\ +G\xab\xff\x80Q\xdb\xe5\x7f\xb7\xcb\xa3\xb3\x15\xe5S\x02\ +\xf8d@\x8cU\x92\xed\x17\x0fq\x11\xdf&\x91{\xb6\ +\xa8\xb8\xa8\x96\xb5t\xcb|\x175\x86\xba\xde\xfa\xe5\xdd\ +\x09v{\x1b[\xc3\x85\xd1\xee\xa9\x1aj\xff\xee\xe0\x19\ +v\xc4\xcc\x13\x8eG(\x12UA8\xffm\xf5:.\ +e\x05\xd6\xf0\xf2]\x12-\xa2\x87(\xcd\xc2\xf0CQ\ +\xe6\xd9}\xb4\xb8\xc2\xd5\xe7X\xf4*/Y@$;\ +|\xd8\xb6l\xcdU\xe6~ZX\x9a\x00%\xfd2\x8f\ +\x1f\xbf\xc3H\xcf\xb0\xfd\x83o\x02_\xef[\xbd\x9bM\ +\x06Y\x9aFA\x99\xe5^\xb0\xcb\x1f\xfcr\x97G\x16\ +\xc5\x9a\x16`\xda\xcab\x073[[VW\x8d\xabX\ +?\x09\xad\x83\x1e\xa6\xde\x02\xa5\x82,\xc9\xf2\xa5{\xb5\ +\xaa>\xc7{\xdefy\x18\xe5u\x93\xac>\x9d\xa6\x0c\ +\xa2\x02\x90\x13\x1c\xf8X\x9d\xdd\xfe\x0a\xeb*\xb3$\x82\ +\x8dYB\x93\xda\xb6\xeb\x1cp\x18\xaa\xdf\xc5a4\xd4\ +\xd0l\xd6.\xaf\xb9\xd1`kq\xe7\x87\xd9~\xe9\xd2\ +~\xe3>N\xa1\xc1;\x06*\xa2\x05\x1b\xe9Q\x07/\ +\x82\xa9pOn\xd0\x00U\xb3\xa4\xb8\xcb\xf6v'`\ +~?)\xa2\xfel\x9f\xb2\x0c,)\x11%RrE\ +\xfa\xcd\x01\x84Cn\x90a\xdch~\xd6\x08\xbb\xa3\x12\ +i\xce\xa9 #\xcb\x84\xf1R\x8d\xb4\xd9\xe1cm\x1b\ +\xff1\xde\xc4\x9f\xa2\xf0d\xa9\xd3}wy\x0e\x8e\xea\ +%\xfeS\x04f^s\xc1\xf9\x91I\xd7\xeb\x13\x14k\ +ND\x13\x10\xd6m\x7f=\x8c\xb8\xe8i\x0c\xf7=\xcd\ +\xa3\xe0]?:\x5c:\xff\x84\xe3\x01\xae<\xdaq\xb4\ +Kt\x1ft\xc9E\x0ayA+@\x9e\xd6z\x5c\xad\ +\xc1d\xd2\x01\xc1S\x153\xd4\xf0\xca\x0dO%E\x90\ +2Bq1\xa3\x06\x11\xa9\x0cS\xef\xdb\x07Aw\xdf\ +/Y}\x0b%\xa2H\xa7\xc1\x1eU\x8e'\x04\x12\x0a\ ++\xadg\x1c\xc17\x11R8\x04#\xc50\x94f\x9e\ +F\x9ciJ\x8c\xec\x0cmcr\x15I\xfb\xf7a<\ +f\xd1@\xf8~/fQ\xd80\xe3\xcaH]\xd7'\ +1\xec\xc4\xdf.nwe\xd9\xae\xfb5\x8b\xd3\x05\x1c\ +SQ^\xd7V\x85\x04HW.x]\x17\xfa\xe0\xa8\ +y\xee?U6\xaak\x8f\xae\xbd \xddS\xed3\xc1\ +\xc9\x86\xe0\x94\x88`\xa9\xb5\x9cy\x84#\xa3\xc0\x1d\x85\ +c\x10\x13\x9a`3\xab.\xb0\xd1\xf4\x0f4\xcf\xd0\x14\ +\x03h2\x06D\xa4B\x03\x11\x89B\x82r\x8a\x95\xe3\ +\x19$\x8c\x12\x9a\xc2\x19\x06\xf1\x0eF\x1a\xf2\xc6\xf1\xec\ +\xac\xbe9I38\xbc 9\x83\x9c=\x08\xa6!\x1f\ +\x19\xf3\x19\xac\xa2\x06\xac\xc29\x92\x1cx\xcdg\x1eC\ +\x1c\xd8\x8e\x0dw \xa1Q\x02\x8c!gU\xf4\xa0\xe6\ +[\xa2x\x94$\xf1\xb6\xe8\xe6\xd6p&2\x84\x81\x89\ +TvA\xca\x1fm\x0b\x11L+\xda%\xb5=\x86\xed\ +\x01\x0em\xb4kt{z{B!\xa29\x13j\xc4\ +\x18Lz\xd2cC\xb86\xcb\xfep@X\xc0g\xb5\ +: \xdcm\x1b\x04\xbc\x8d@\x83\xb6&\x862\xc1\xce\ +\x90\xcd\xb3]\x1a~id)\x84N\xae\x09\x1bB\x16\ +K\xc9\xb8\x94g\xc8*\xc4\x0d\x93T\xc8sd\x19A\ +\x12\xc2\x047\xe3\xc8\x92g\xe1\xba\xd2a\xc8^\x81+\ +C\x8chC(U_\x07W\x8e($\x1a\x84\xf13\ +\x5c9\xe2\x84\x10C\xce\x19kC/\x95\x82\x0a1\x00\ +,G\x02km\xe8\x04e\x9fGXc^EX\x86\ +\xb4\xc1F\x02\xb8_\x07X\x08\x84\x1akF\xd9\x00a\ +\xe1\xfc2l\x08\xd7*A0f\x80\xb0\x90\x95\x01\x93\ +\xe1p\x1b\xc5\xf59\xa82\xe5\xdf\x06\xfaU\xa8rm\ +\xc0\xd7\xa4\xfaZ\xa8j\x0c\xd81=\x80\xaa\x01)\x83\ +\xc99\xaa0F\x0b\xa1\x87P\xe5\x02\xdc\x8fj9\xc1\ +V\xfc\x1c\x5c\xa9\xafV\xafd+#\xccX\xbf\xf9\xc2\ +\xb8\xae\xfb\x1b\xad\x04U\xef\x10\x19zP\x00\xd4#\xe0\ +\x93\xe4\xf8\xbc\xa0)z\x94\x22\xc8\xc8\x18\xa7p\x09\xe7\ +\x95\xc4\x98\xf0\xb6V\x19\xc8N\xbaJ\xad\x17\x10ZO\ +F~\xb4J\xed(\xd7pG\xad\xbd4\x81\x99Tm\ +\xe7\xc0\x9c\xd4\x9b\xa7z\xf3<_\xc3I\x10\xdf\xa0\xbd\ +\xa9\xb6\x1a\x0e\x0e\x1bIT\x17\x97Ad^\xba\xaf\xae\ +\x9e\xf3\xc4Y\xf3Q\x86@\xe2\x8c5\x97/Ru/\ +O\xd40\x16\x82\xd2\xff\x9fD\xedK\x80\xccz\xde\xd2\ +\x02\x19NS\xce\x85|\x89\xd6\xfb\x03\xe3A\xed7J\ +d\xc8\xdc\xb4\xc2\x90b\xf7\x14 D\x7f&\xcd\x8c\x10\ +\xe0\xb4\x22\x80\xf77\x80\xf2\xd9\x0e.+\xc1Qc<\ +C\x11\xbe\xd2f\xca\x93#6\xe3V=PH\xd2\x9f\ +\xaf\x0f\xbf\x11\xb7\x18Hc\xa6\xb5\xe2\xb4^\x9c\xd6\x8c\ +\xedd\x91Q\x8a\x99\x9a0\xd7A;z\xa3\xc1\xe8<\ +u\x0c\xb4\x22o@A^\xc2}XIN\xab\xc9i\ +E\xd9\xe0\x0e\xe7\x97\x8e?p3c\ +'f\xa4\xcfE\x8b\x84]%\x07\xc5\xeb19!\xc3\ +\xaf\x0c3\xa1\x1f4\x19\x5c\xa7x\xa4\x97\x85Gh\x81\ +%\xedgp\x1dv}6\xce}\xd8\xfaqZz\xd5\ +\x0b\x07\x8b\xc3\x8b\x0d\x85cW\xeb\x1cz\xf699f\ +\x0fHq\xc1\xae#\xf6\xd0\x18\x0e\xe5s{p\x84A\ +\xb7P,F\x0d\xa2@\xe2H%\x87\x0d\x02\xd9\x07%\ +\x9c)2i\x10o\xea\xc1H}\xf0\x8dz;d\xea\ +FR.\x94\xf8\x0a\xe6H\xed\x1bNI\xd7\x09Oa\ +\xa0}\xd9\x15@\x9d\x1d\xf2\xd0\xfe5\x9c\xeb\x14\xeb\xd7\ +g\xb6\x8f/\x97\x0bC\xaa\xadR?`p\xcc\x014\ +:\xa3\x1c1p)\xe2\xdc9\x04\x8e\x01\x83\x05%N\ +\xe2`\x10\x02\xd2\xfe\xa2\x09\x99)\xc6\x5cqG\x22)\ +8\x860\x00\xe1^\x1ab\x98\xe3\x81\xed\x81\x1b\x98@\ +\x95\xa0\x12K\xd5\x1e&\x155Z:\xf6\xc4\x86\xf1\xcc\ +\xb0\xd9\xb1\xd1\xf9\xe4\x9e\xbf\x1d\xa1\x95\xfem\xef=\x0c\ +*\xc8\xc3\xa7\xf56\xd0\xba\xff\xdaF+\x04V\x97\x89\ +_F\xf6\xa1\x19l\x82j\x06\xeb\x17\x10h`\x07\xad\ +\xb8\xdb\xc4\xdc\xd3\xbc\xbd\xb7@d\xcb\xb7\x06o\xe0\x11\ +H\x07\x94\xc0\xadgn=g\x1d\x0b\x9c#As8\ +`N\x05\xcb\x89@\xd9\xf6\xc9\x91WK\xdext\x1c\ +\x04\xfb<*\x8eD\xc4\x91h8\x15\x09'\xa2`7\ +\x02\x8e\xe1\x0d\x84\x94\xab\xd5\xdb\x88}G7\xab\xbe\xae\ +\xedk\xa07\xef\xfe\x07F\x13\x5c\xc0\ +\x00\x00\x0a\xca\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \x0a \ +\x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x0aH\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a <\ -rdf:RDF>\x0d\x0a \ -\ -\x0d\x0a image/svg+x\ -ml\x0d\x0a\ - \x0d\x0a <\ -dc:title />\x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a \x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\ -\x0a \x0d\x0a \x0d\x0a \x0a <\ +path\x0a style=\ +\x22fill:#999999;st\ +roke-width:1.333\ +33337\x22\x0a d=\x22m\ + 11.559322,153.6\ +2712 v -8 h 56 5\ +5.999998 v 8 8 h\ + -55.999998 -56 \ +z m 28,-52.66667\ + -27.30894,-27.3\ +33331 h 15.65447\ +1 15.654469 v -2\ +4 -24 h 24 23.99\ +9998 v 24 24 h 1\ +5.65447 15.65446\ + L 95.55932,100.\ +96045 c -15.0199\ +2,15.03334 -27.6\ +19918,27.33334 -\ +27.999998,27.333\ +34 -0.38008,0 -1\ +2.98008,-12.3 -2\ +8,-27.33334 z\x22\x0a \ + id=\x22path817\x22\ +\x0a inkscape:c\ +onnector-curvatu\ +re=\x220\x22 />\x0a \x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\x83\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \ -\ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x08\xb0\ +roke-opacity:1\x22\x0a\ + d=\x22m 105.63\ +227,107.57797 15\ +.93533,0.15034 -\ +0.30066,-19.9943\ +27 z\x22\x0a id=\x22p\ +ath814\x22\x0a ink\ +scape:connector-\ +curvature=\x220\x22\x0a \ + sodipodi:node\ +types=\x22cccc\x22 />\x0a\ +\x0a\ +\x00\x00\x07G\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a \ +\x0a\ + \x0a \ + \x0a image/svg\ ++xml\ +\x0a \x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08T\ -\x00\ -\x00\x1epx\xda\xed\x19io\xe3\xc6\xf5{\x80\xfc\x07\ -\x82\xfe\xb2FEj\xeeC\x96\x1c\xb4X\x04)\x90\x22\ -@\xb2\xdb\xebKA\x93#\x991E\x0a$%\xd9\xfb\ -\xeb\xfb\x86\xe2M\xca\xebE\xb6\x01\x8aV\x86m\xce{\ -\xc37\xef>F\xeb\xef\x9e\xf7\x89s2y\x11g\xe9\ -\xc6\xc5>r\x1d\x93\x86Y\x14\xa7\xbb\x8d\xfb\xf1\xc3\xf7\ -\x9er\x9d\xa2\x0c\xd2(H\xb2\xd4l\xdc4s\xbf\xbb\ -\xff\xf6\x9buq\xda}\xfb\x8d\xe38\xe78*\x1f7\ -.Sn\xb5|4\xf1\xee\xb1\xec\xd6\xa7\xd8\x9c\xff\x94\ -=o\x5c\xe4 \x87)\xa7\x81\xc7\xd1\xc6\x05\x12\xa4\xde\ -\xd5\x9d\x8fk|\xfaT\x84\xc1\xc1\xac\xfa(\xe7](\ -\x94!$\xa4J.\x1c\x82\x08\xf6\x10\xf7\x08\xbd\xbd\xbc\ -S\x00\xd7\x07\xf8]EY\x98\x06{`6N\x0f\xc7\ -\xb2\xf8W\x90\x06\xc9K\x11\x17\x0e\xf1\xe1\xcc\xcbf\x10\ -;-V\xcd1\x1b\xf7\xb1,\x0f\xab\xe5\xf2|>\xfb\ -\x0d\xd0\xcf\xf2\xdd\xd2\x12*\x0eAh\x8ae\x03\xef\x13\ -h\xcel\x094\x00\xbf\xc8\x8eyh\xb6@\xc3\xf8\xa9\ -)\x97\xef?\xbco\x91\x1e\xf2\xa32\xea\xd1\x19\x9c\x7f\ -\xa6\xd5\xc9\x04!\xb4\x1c\xf1\x0b\xcb\xb7n\xcd\xa3\xed\xdc\ -V\xac\xb5^\x22\xb2$\xc4\x83\x1d^\xf1\x92\x96\xc1\xb3\ -\x97\x167\xfdw\xc3\xb0}5\xccMP\xc6'\x13f\ -\xfb}\x96\x16\x17\x9d\x0cwG\xdd\xee\xc31O\xaa-\ -Q\xb84\x89\xd9\x9b\xb4,\x96`\xb9\xa5{o_X\ -\xefM\x19DA\x19To_\xbc\xa0\x01ar\xd9\x03\ -\xbb\x80\xb1\xd5\xcf\xef\xbf\xaf\x97\x00\x08\xc3\xd5\xdf\xb2\xfc\ -\xa9Y\xc3\xc7n\x09\x1e\xb2#\xb8\x9a{\xdf\xc1\xd7Q\ -\xb8\x02\x95\xef\x83\xf2>\xde\x07;c\x95\xf2\x07\xe0r\ -\xbd\xec\x10\xc3\xdd\xe5\xcb\xc1\xf4\xe8^(\xe7\xe6b\xbd\ -Y\xb9\xa2p\x1f\xdb\xb7\x96\xbf\x94q\x92\xfc\xd9\x1e\xe3\ -:\xcb\x8e\xd9e\xcdm#\xcd\xb2/\xcez\xd9\xc8{\ -YFf[\xf4\x94a\x97\x18\xb5\x8a\xd8\x07\xf9\x93\xc9\ -[\xf6\xda\xa0(\xca,|\xb2\xfb\xff\x98\xe7\xd9\x19\xff\ -\x08\x01\x9a\x97n\xbb/\xcbcP\xfc\xc6\x0d\x8ee\xd6\ -As\xb3\xfd\x07\xc4!Dx\x1f\xf4\xf7\x11\xe8:\xd5\ -\xa2|I@#\x19D\xe46\xc9\xce\xabS\x5c\xc4\x0f\ -\x89q\xa7\xec\xc5E\xc5\xe0\xc6-\xf3\xa3\xe9\xcc\xb3>\ -\x04\xe5cO\xd7\xf6(\x0bb\x5c+\xb7\x07\x07\xf0_\ -\x1c`j\x01\xbf\xce\x8f\x0e\x87'\x8fW\x8f\x1e&>\ -\xef\x81/\xd0f\xeb'\xa7O\xa5fw\x0b6\xf2\xf2\ -cbV\xe6d\xd2,\x8a\xee\x8a2\xcf\x9e\xcc\xea\x06\ -U\x9fz\xe9Uyl\x05\xf9\xefP\xf6\xa9\x94y\x90\ -\x16\xd6q ]\x85Ab\xde!_\xdd^\xa0IP\ -\x9aw\x17\x86n;\x07\x00\x03WFk\x96 `i\ -\xf2\xb4%Y\xaf?\xa6q\x09Q\x7f,L\xfe\x8b\xcd\ -.?\xa5\x1f\x8b\x9e*\xeb\xacJ}\x8a\x18\x91Dt\ -\x986\xc1\xfa\x9ak\x81Q\x0fU\x93\xfe\xd0\xb1\xdc\xf1\ -)}!\xb8\xd6\x92/\xb4\xcf\xa8\x04\xb2\xeavh\xf4\ -\xfam\xbb\xa9g\xb2\xd2<\x97=u@(\xad\xaal\ -\x08\xfb!HL~2s:\xcf\xd2\xd2\xab\x9eW\xa9\ -\x8d\xb9\xe4\xae\x82\x9c+\xd6\x07\xa0\x22\xfedV\xc2\xe7\ -\x5cRrx\xbeK\xe2\xd4x\x17\x09\xc1\x14\x84_6\ -m\x83}\x9c\xbc\xac\x0a\x90\xc5\x83#\xe3\xed\x9d5\xea\ -\xea\xe6\x81\xda\x9fj\xe1e\xc0\x14D\xe5\x0a7\xe6M\ -\xa1Z\x0dm\x8b|,\xa8\xa6\xb4\xcf0\x14&\xc8\xc5\ -\x8c\x12\xc2\x98\x16}\xcc\x8bU\xb1\x12Br\xa9\xdd\x91\ -\xd3Z\xa5`.\x85{\xbf.A\x1b\xe9 \x7f\xb4U\ -(\xcf\xac.\xacH\xee`CE\xc1\xbe\x06$\xd8\x10\ -\xd5\xf3\xd9\xd7\xc5{E\xa4\xd7\x84\x1a\x89u\x8f\xd6\xcb\ -\x8a\x93{\xf8\x0f2\xb5.\x5c\xfbB\x9d\xb1lR\xba\ -<\xb6\xb2\xd9\xaa\x18\xd9\xda^\x13?@\x12\x0c\xb3$\ -\xcb7\xee\xcd\xb6\xfa4\xc7>dyd\xf2\x06'\xaa\ -\xcf\x10W\xcb\x06\x15\xbe\x81g\x0f\xbf\x9a\xb0,A\x7f\ -\xe0\xbf\xd6\xd7p\x9b\xa0v9\x08>\x8b8\xc6\x91\x99\ -\xc5\xb4i\xc92\xd9\x1e6\x8f.\x1e\x83(;o\x5c\ -2\xc1\x9e\xe3\x140^\x1d\x98XqumK\x13\xa1\ -\x18q\xe9\xf6r{\xab\xb3\xf6\xcd\xe21;[\x81\xc0\ -\xe2A\xd2\x85\x7fK\xf0S\x96A\x10c\xeas\x82T\ -g\xe5\x16\x1f\x82\xa5\xa9\x86\x1c\xa1%\x9a\xb2\x13\x82\x94\ -\x14\xfbBcE\xd95f\x81\x02\xbf\x8a\x04\x02\xdeU\ -1\xf7\xc1s\xbc\x87\xf0\x8dz\x86\xeb\xce>\xe69\x94\ - /\x09^\x0c\xd8}\x87\x09\x9fWx\xf8hB\xc8\ -\x96\x0fY\x90G\xd6(u\x1e]\xefz\x8a\xdb1\xcc\ -\xbb\x9a\xb8\x1bd\xad\x1d\xe3\x8c\xbd\xa5\xc4P4-1\ -\x0b\xe4\xfc`\x9b\xd2\xbf\xda??@\x83\xfa\xcfA\xa4\ -\xb7\xc2di\x0a\xfe\x98\xe5\x1e\x88u\x0a\xcacnz\ -\xfe3\x8e[\x9bx\x06\xfd\xc0n\xc4\xcfN#|\xa5\ -\xc4@{\x92\xc7\xcf\xef\xa0\x0aI\xaa\x89f\x0b`q\ -\xd1\xad\x84\xf6\xa1{\xe3\x98/\x88\xf4\xb1\x22\x9a\xe2\xdb\ -A\xf7\x93\x03\x9bW\x13J/#\xaent\xf5\x19f\ -\x13\xf03\xaa\x18\x92\x827p\x9b\xbc@\x05\x90\xca\x8e\ -i\xd4\x07\xfe\x9a\xc5\xe9\x10\x0a=\x91\xc9\x13\xf0\x88r\ -\xc5\x1aX\x14@<\xe5y\xf02\xc8\xc6m.\x9b\xa6\ -E\xcb\xbff\xa3\x94\xd5\xd4B\xe1\x0bJ\x85\x1e\xa5\xcc\ -&\xda(\xf71Ut\x9cQm.\x14\xc8\x97\x12i\ -\xca'\xa9\xd0\xc3\xda\x87\xe0\x80\xf7\x86\xa8\x1cp\xdc\xa7\ -Zj.X\xdf\x98#s\xd6\x06\x95L\xcb!\x81r\ -\xae\x06#\x9f+\x88U\x84\xf5\xc0j\x13\x9a5\xd5~\ -\xcc\x5c\xf7\x15\xea#\x84\x11\xe4\xfa\xcaW\xa0\x1b\xe1\x1a\ -\x11\xc4\x17\x18\x83B\xa4\xc2\xca\xfa\x8a@\x9a\x102:\ -u\x1a-CC\x08\x84\xb0;\xc1^\xf1\xa8\xb6 )\ -\xa9\xb4\xa6\xd3\xf7l\xa7\xefx\x5cZ\x06\xa9\x12\x0b\x0f\ -K\x9f`\x8c\x98v\x1ea.\xd3\x881J\x9d\x93\xc3\ -|\xca\xc1\x05\x04@\xbd\x16\xfcih\x83\xd7y\x87\x9e\ -JB\x87\xf3\xdf\xcb:\xffO\xb2\x8e|!\xa1z\xe1\ -Y\xd6)\xff\x8d\xbc\xab\xaf\xcf;\xf6)C\x0c\xcbY\ -\xde\xd9\x15\xde\xd9,\xef\xbb\xc9\x19A\x1e\x07P\xa4\x1e\ -L\xd2\xabb\xce\xb4\xd9\x93J\xbc\x12\x0b\xbdN\x96R\ -\xce\xe8l'[\xf5t\x08E,\x08&M\x1c\xe4\x05\ -%\xa6\xf4\xa7\xd1\x0e\x99\x8cr\x0ay\xf0R\x1azK\ -;\x1a\x09\xa2\x95\xa4\x90\x04\xa4\x14\x90e\xe8$\xe0\xaf\ -\xd9\xafU6\x851\x81\x10\x0a\xd4\x98/\xa1\xb5\xc4\x0a\ -\x94\x0a\x05\x08\xfa\x0f&@\xd7\x9e\xedE(\x13\xccI\ -`\x18\xf3!\x088\x17\xc0\x06d\x17i\xfd\x08\xfaN\ -\x0e\x0d\x87\xd6\x80\x074b\x90\xb0\x17^\x83\x7f\x84Q\ -M\x10\xa6\x14\xa9\xcc\x06II\x08\xda\x1d\xc0\x01\x0a\xef\ -\x13\xae\xf4\xc5\x94B \xd0\x0b\x98r\x86\xe1\xb6\xb2S\ -L\xd4\x8c\xad\x97\xbb1d4\xca\xbci\xa0\xf9-c\ -\x8d\xf5K\xa1\xe8\x17\x8f5ui\xfe\x82\xb1\x06)M\ -\xa6\x5c\xdb\xd2\xc7\x05\x84\x17\x16LN\xd1\xb6\xfc\x09_\ -\x0b\x81\x99\xd0\xd7]\x1f\xf2\x00\x9d\x1ft\xde8\xee\x8c\ -\x86\x1eK\x8f\xcd\xed\x18\xcc>\xaf\xe9\xe0sr\x7fV\ -\xf2\xb1\xecW\xc6\xa0\xffu\xc7\x91\xa0\x1b<\xef7\x90\ -k\x14\xf4\x89\x88\xbd\xea7\x0c}e\xbfQ\xbf\x8f\xdf\ -\x5c\x11|,\xfa\xff\xddfF{\xd8g\xb6\x03\x15W\ -\xfd\x06\xda_&\xd5g\xfc\xc6\xfb\xda\x19Gy\xbfK\ -\xce\xb9.\xfdX\xfeW\x9dg\x5c\xbc\xae\xcd\x07\x82}\ -~>\xa8*.&P\x8a\xeb\x8e\xa1]z\xdc^\x1f\ -q\x8c\x17\x9e\xf2\xb1\x96\x8ap\xf6\xc6\x11\xe1-\xe3\xf3\ -\xb0L\xcf\xe8\xcc*\xda~\x9f4\x1c\x97\x9b\x1b\xff8\ -\x0f\x13s-2:\xf3t]\xe5\xbc\xff\xcev\x5c\x10\ -)\x92b\xfa\xb6)\xf7\xc1\x9cL\xf2\xe5S\xae\x85f\ -\xdbma\xca\x15\x9aL\xbew\x87 \x86\x88\xac\xae\xbf\ -\xea@\xbe\xae:\x8c\xe6\xbac{\xf7\x03\xd3+\xd5\x82\ -\xf0\x19\xdf\xb6\x97?X\xf9\x12\x11\xc9ft\x9f\x03\x96\ -Af\xa0\xd0w\xbd\xb5\xc9\x1f\x04K\xad\xd6\xd7n\xd7\ -\xa7z\x97>\xd4[\xc1\xde\xa6\xf7J\xd5_\xedv\xa1\ -\xedq\x09\xe8\x8c\x11hL\x17\x14F\x0f\xa2a0v\ -@O\xd0EKm\xef\xc61BL\xbdj\x8c\x99\x11\ -\xe7\x0b\xae\x8aF9\x0ctf\xec\x97I\xc5\xc6\x0d\xc3\ -\xb1%\x86y\xa0\xbf\xea\x9e{O]\x96\x98\xbd~\x80\ -.\x1b\x09I\x14t\xf7\x84\xfbJI\x10~\xf4\x1d\xc0\ -\x8ea\xd6\xbb\xef\x98\xdc\xb5\x09\xdc\x13\xfe\xda\x1d\x07&\ -L\x13\xdd~%rapm\xbf\x89\x83\xff\xff\x06\x09\ -\xcd\xbf;\ -\x00\x00\x06\xd1\ -\x00\ -\x00%\xc4x\xda\xddZ\xdbn\xe36\x10}/\xd0\x7f\ -P\xb5/\xbb\xa8Eqx\xa7jo\x81vQ\xa0\xaf\ -\xbd\xa0\xcf\x8a\xa4\xd8\xea\xca\x92!\xc9q\xb2_\xdf\xa1\ -d9rd\x07ia\x14^\xcb\x09\x12r\x86\x14y\ -8sf\x86\xc9\xfc\xc7\xc7u\xe1=du\x93W\xe5\ -\xc2\x07B}/+\x93*\xcd\xcb\xe5\xc2\xff\xf3\x8f_\ -\x02\xe3{M\x1b\x97i\x5cTe\xb6\xf0\xcb\xca\xff\xf1\ -\xe3\xb7\xdf\xcc\xbf\x0b\x02\xef\xe7:\x8b\xdb,\xf5vy\ -\xbb\xf2~-?7I\xbc\xc9\xbc\xf7\xab\xb6\xddDa\ -\xb8\xdb\xedH\xbe\xef$U\xbd\x0c?xA\x80Cq\ -p\xf3\xb0\xfc\xf6\x1b\xcf\xf3\xf0\xdde\x13\xa5\xc9\xc2\xdf\ -\x8f\xd9l\xeb\xa2\xd3M\x930+\xb2uV\xb6M\x08\ -\x04B\x7f\xa4\x9f<\xeb'n\x05\xf9C\x96T\xebu\ -U6\xdd\xd0\xb2y7\xd6\xae\xd3\xfb\x83\xba[\xd2\x8e\ -wZ`\xad\x0d)\x0b\x19\x0bP#h\x9e\xca6~\ -\x0c^\x8c\xc5u\x9e\x1a\xcb(\xa5!\xcaF\xaaoT\ -\x8b\x1aDv\x83\xdf\x07\xfd\xa1\x834\xd5\xb6N\xb2{\ -\x1c\x98\x912k\xc3O\x7f|:\x08\x03J\xd26\x1d\ -\xcf3\x00{\xf4\xde#\xb4\xcbx\x9d5\x9b8\xc9\x9a\ -p\xe8\xef'\xd8\xe5i\xbbZ\xf8\xc2\xf4\xcdU\x96/\ -W\xeds\xfb!\xcfv?U\x8f\x0b\x9fz\xd4\x13\x06\ -\xbf\x08u\x0f\xf4\xe2<]\xf8\xb8'\xb6W~6\x9c\ -A\xbe\x7fWt\x10Qb\x19\xe1\xde{&\xa8\x94B\ -\xcd\ -\x0b\x8e\xb5\xdb\xa7M6\x9a\xb7\x9f\xb9\xcez>8\xc9\ -\x8ci\xb2\xce\xdd\xa8\xf0\xf76/\x8a_\xddk\x86\xed\ -\x8d\xa6\xcd\xdb\x22\x1b\xf5\xce\xc3\xfd\x1e\x86=\x86\xe3M\ -\xce\xc3\x01\x84\xbe\xb9|\x09i\x11\xdfe\xc5\xc2\xff9\ -\xde\xc4\xde\xf48\x97u\xb5\xdd\xac\xab\x14\xd7\xdbY\x90\ -?B\xb7\xeb8\x0ci\xeb\xb8l\x1c\x0e\x0b\xbf\xfb\xb5\ -\xc0\x08\xf2\x9e\xce\x02\xa0T\x10\xae\x18\xfbp8\x84\xe5\ -aCn\x9a#\x93<\x9a\x07!\xad\xf3\xc7\xf7\x94\x18\ -\xa5@q\xc9g\xd4}\x9e\x9b\x8c(\xa9\xb5\xd1v\x06\ -\x5c\x13\xd0\x8c\x0f\xcc\xd3\x99w\xfbT\xe0\xba\xef\x11\xca\ -hO\x09?4m]}\xce\xa2w\x22u\x1f\x7fd\ -\x07y\x9d\x14\xe3\xe3\xaa\x1d\x1bH\x7f\xd4\xd3\xf9\x22\xa5\ -\x86p\x90\xfaH\x80\x96\xcc\x04\x91BZc\xc6\x02\xb7\ -\xbdM\xdc\xae8\xe7j\xdc\x7fje\xae\x11\xecy&\ -\x82\xbeYo\x8b,\xca\x1e\xb2\xb2J\xd3\xc3\xd2m\xf7\ -\xec\x9b\xbd/F\xb0y\x1c:\x8a\xbc\xcc\xf0\xe8\xa2\xbb\ -m\xdb\x8e\xfb\xfe\xae\xf22B\xf3\xca\xea\xa1\xf7\xf0\xb2\ -\xb1\x8d\xbd\x1d\x08\xe0\x04\xb8\x9d\x00\x81\x07A\x0d\x15\x94\ -\x9d\x03\x22\xe07\x07\x05Sh\xe1\xa0^B!8\xb1\ -\xc2\xa2y\x9e\x85\xe2\xf6\xac\x82[\xe7\x93|\x02\x05%\ -\x82\x0a.\xf8Y(\xf4\xcdA!4\xd1\xd4L\x99\xc2\ - BV\xcb\xf3\x0e\x22o\x0f\x0a\x89\xa4\xcd\xe0%\x14\ - \x08\x93\x8a\xc2+\x5cq{XpI@\x82|\x89\ -\x85$\xd4*\xb4\x17s\x9e,\xd8\xed\x11'Fpe\ -\xa6lA\x0c\x1a\x85\xd0p\x16\x0b{{\xe1\x14\xa1\xb0\ -j\x12C\x00\x88\x10\x16\xd8y\xb3\x80[\xb4\x0a\xce\xec\ -\xc4C8\xa0Y\x18q\xcc\xa8\xc7P\x04\xf4\xf6\xe8\x82\ -\x11\xcck\xa7`\xa0\xb9`\xde\xfc\x8aY\xdc\xa0\x8f`\ -ni\x04\x9b\x04TW=\x03\xd3\xec\x15,\xbe\x9a\x9c\ -\xd3\xady\xbc\x8dC\x1d_\x958q[\xd5\x01V\xf4\ -\x0fq\xbb\xadq\x07\xf4\xd4\x8e\x05\x93G\x94\xe0\xea`\ -O\x11*\x8d\x96V\xce\xd0\xbd0qW\x92y\x9a0\ -E\xa9\x92r&\x09\xd7\xd6\xbc\x09\xa2\xb7c\xf2\xef\x11\ -\xe9\x1a\x05V\xf6m$\x86\xbe4nVq]\xc7O\ -QY\x95\xd9\xff\x80\x9d\x9c`\xc7\x5c\xc5i0:#\ -v\xa0\x89\xc5z\xd5\xe3\x842$e>\x0b0\x9b\x13\ -\xd4^\x16;\xf7Bf\xb9f\xfa\xca\x0cKO\xc0\x01\ -GO\x14W;\xebB\x18\x13 =\xa0X\xf7h#\ -\xc4,\xe0\x04\xd3>\xb84:V(\x0bJ\xab+C\ -\xc7\x9ep;\x8e\xd6\x22\xa5C\x07\xf3>!\xad\x07]\ -Q\xc8\x8d\x85\x19\x10k\xb5\xbd<8\xee\x22\x02\xf8u\ -\x81\xa3\xe0\x94_I\xad\xadv~\xc5\x0d\xd1JH/\ -@\x90\x941\xdc\xce\x14a\x8c\x9a\x8b\xfb\x15\x1a\xa8e\ -\xd7f9\x8aO\xc1Av\x06i,\x9b\xf5\x85$2\ -\xb6\x17`2\xa8\xd1\x099\xcc\x02 J\xeb\xcb\x9b\x0e\ -\x97\x82\x81\xb92t\xa6~\x85\x89\x80\x16V\x83\x0bg\ -XDr\xaa\xb5\xe7n\xc9\x19\x15hM@8\xc6\xba\ -\x8b\x83\x03\x80Q\xf2\xcaB\xbd\x9e\xba\x95`D\x1a\xe4\ -\x9cYw/E5\x17^`\x89S\x95\xcc\x112\x97\ -\xea\xe2\x84\xac-\x15\xf8\xba+3\x1c=\x8d\xe5\xc2\x9d\ -\xa3\xbbr\xe89GR-<\x8c`V\xf2\xce\xa9\x90\ - \xa8\xba<\xe9p\xaa4h{e\xe8\x9c\x08\xe6\xc8\ -\xbe\x80\x05y\xc7\xc8\x94\x00r\x01\xba\x15\x00P\xa3\x91\ -\x90\x85\xb9<6Zp\xac\xe9\xe8\x95\xb9\xd5q2\xdc\ -\x132V\x19\x18\xc3Y\x97\x05\xbaKN\xa3=C,\ -\x93J\xcf\x18\x01-\xf9\xc5\xa1\xc1\xec\x5c2\xca\xaf\x8d\ -q\x82i\xb4\xc2j\xd4`\xb4R.Za\x99.4\ -S^\x80\x86\x0f\x0a\xa3\xd7,\xc0\xa4\x19\xf1\xba8>\ -\x9cbug\xd9\xf5\xe1s|\xaf\xdf#d\x89\x04\xdd\ -\xc7s$\x1eL\xff\x90\x96\x1d=+\x85\xa8a\xda\xc3\ -@|\x05\x08\xbd\xfd:\xcbb-p\x9c\xdcv\xb5:\ -\xc5\xa2SJ*_\xa9\xd5/\xf7\x97\x00JS\x11\xc7\ -Wp\xa1e\x09\x05y\xea\xfa\x1b\xcb%\xa5\xec+`\ -\xa8\xaf\x05\x8c\x8bTP\xfcTH\xa2\xc6R&\x5c:\ -\xa3]\xf0\xf6\x12\x8fb\xc6G5 \xb3PLl\x90\ -k\x84\xbb\xca\x00`\x8ej$`}\xfe\xb2\xe3\xbf{\ -\xd6)\xd8\xdc\x7f\xbe\x18ta).\x84\xdf<\x5c\xee\ -\xffZ\xef~\xce\xdd\xff\x16\xe0\xcf\x7f\x00\x93\x13\xca\xa6\ -\ -\x00\x00\x0a\xb8\ -\x00\ -\x001 x\xda\xedZ\xdb\x8e\xdb\xc8\x11}_`\xff\ -\x81\x91_l\x84M\xf5\xfd\x22\x8f\xbc@\xd6X`_\ -\x93\x0d\xf2\x18\xd0\x12=\xa3X\x22\x07\x14\xc7c\xfb\xeb\ -s\xaay\x19\x8a\x94\xbc\x13o\x02\xc4\xf6\xc8\xd8U\xb3\ -\xaf\xd5\xa7O\x9f\xaa\xa2\xe6\xea\xa7\x0f\x87}\xf2\xbe\xa8\ -\x8f\xbb\xaa\x5c/D\xc6\x17IQn\xaa\xed\xae\xbc^\ -/\xfe\xfe\xdb/\xcc/\x92c\x93\x97\xdb|_\x95\xc5\ -zQV\x8b\x9f^\xfd\xf8\xc3\xd5\x9f\x18K~\xae\x8b\ -\xbc)\xb6\xc9\xfd\xae\xb9I~-\xdf\x1d7\xf9m\x91\ -<\xbfi\x9a\xdb\xd5ry\x7f\x7f\x9f\xed\xba\xca\xac\xaa\ -\xaf\x97/\x12\xc60\x14\x83\x8f\xef\xaf\x7f\xfc!I\x12\ -\xac]\x1eW\xdb\xcdz\xd1\x8d\xb9\xbd\xab\xf7\xb1\xefv\ -\xb3,\xf6\xc5\xa1(\x9b\xe3Rdb\xb9\x18\xf5\xdf<\ -\xf4\xdf\x90\x05\xbb\xf7\xc5\xa6:\x1c\xaa\xf2\x18\x87\x96\xc7\ -g\xe3\xde\xf5\xf6\xed\xd0\x9dL\xbaW\xb1\x97\x08!,\ -\xb9\x5cJ\xc9\xd0\x83\x1d?\x96M\xfe\x81M\xc6\xc2\xce\ -sc%\xe7|\x89\xb6Q\xd7Gv[\x1d\x81\xec-\ -\xfe\x1b\xfa\xf7\x15\xd9\xb1\xba\xab7\xc5[\x0c,\xb2\xb2\ -h\x96\xaf\x7f{=42\x9em\x9b\xedx\x9e\x1e\xd8\ -\x93uO\xd0.\xf3Cq\xbc\xcd7\xc5q\xd9\xd7\xb7\ -\x13\xdc\xef\xb6\xcd\xcdz\xa1}\xfbxS\xec\xaeo\x9a\ -\x87\xe7\xf7\xbb\xe2\xfe/\xd5\x87\xf5\x82'<\xd1>\xe3\ -\xf4\x11\x0f\xa5\xb6\xd7n\xbb^`k\xb2\x1b\xf3\xc0\x9f\ -\xbe\xbd[r54\xf1,\xc8L%\xcf\xa5\xe6\xc6h\ -\x9b&\x92\x0b\xcf\xb8bB\xbch\xc7\xf4\xbb]m\xab\ -\x0dY\xbf^\x5c\xd7\xbb\xed?w\x9b\xaa\xcc\x08\xc6W\ -\xd4\xebj[\xbc=\xc6\xee\xad\x11\xf4\xa8\x17\xc9\xb2m\ -\x1c\xa6\xa0\xf1[\xda\xca\xa8\xeb\x9b\xfc\xd8A\x90$\xb7\ -\xf95H\xb3\xaf\xea\xf5\xe2\xd9\xdb\xf8\xe9[\xdeT\xf5\ -\xb6\xa8\xfb6\x1b?\xa7m\x15P\xdd5\x1f\xdb\xdb\xd2\ -\xcf\xdf\xef\x97&\x1e:\xf0\x0b\x1d\x8e7\xf9\xb6\xba_\ -/\xe4\xac\xf5SU\x1dhb\xa3e\xb0\xde\xcf\xda7\ -8\x18&\xb4\xc9\xb8\x11F\xcc\x9b\xc9*!2\x15\xac\ -\xd3\xb3V\xe0zGW\x8a\xdd\x95\xbb\x06\x94\xbd\xfd0\ -\x9f\xe0\xae\xae\xa9\xc7>\xffX`\xff\xf1kX\xe6x\ -S\xdd\xd3\x91\xac\x17o\xf3\xfd\x03\x96\x97g\xbb\xdf\x95\ -\xd8'\xeb\x18'\xfc\x19\x8b\xbb.=\x0b\x05\x97\xe6R\ -\x1fl\xdd\x86K\x8d\xd8\xb8t\x97\x1a\x0f\xf9\x87\xdda\ -\xf7\xa9\x80\xe5b\xe0\xca\xa1h\xf2m\xde\xe4#\x86\xf4\ -U\xae\xe5\x1a:A\x1bV\x7f}\xfdK\xf7\x88\x8a\xcd\ -f\xf5\x8f\xaa~\xd7?\xe3C]\xf27\xd5\x1d\xac_\ -\xbcz\xa8\xbf\xdanV\xb8\xcd\x87\xbcy\xb5;\xe0\xcc\ -I\x09\xfe\x8c\xcb{\xb5|h8\xed\xdd|\xbc-F\ -\xf3\xb63\xd7E+\x0cg%r\xbb9\xech\xd4\xf2\ -o\xcdn\xbf\xff\x95\x96\xe9\xb77\x9av\xd7\xec\x8bQ\ -\xed\xd5\xb2\xdbC\xbf\xc7\xe5x\x93W\xcb\x1e\x84\xf6\xf1\ -z\x0a\xe9>\x7fS\xec\xd7\x8b\x9f\xf3\xdb<\x99\x1f\xe7\ -u]\xdd\xdd\x1e\xaam\xd1qg1B\xf7\x94LM\ -\x9d\x97G\xc2a\xbd\x88\xc5=\x5c\xc9s\x9e2\xc1\xb9\ -\xce\x94\x95\xf2\xc5p\x08\xd7\xc3\x86h\x9ak\xef\xd4b\ -\xa89;\x0d\xf3\xb8 \x82+\xc8\x0c\xd32\xf3\xda{\ -\xff\xe2a\xcc\xb1\xf9\xb8\x87\x81\xc7\xa6\xae\xde\x15\xabg\ -!~^\xb6\x8f\xac\xbb\xbc+\xf1p\x98W\xc5~\xbf\ -\xbb=\x8e\x0f\xa7\x06\xdft\x16\xbc\xb3\xd2/\xc6\xf5 \ -\xa9\xc9\x84\x16<(7n\x887\x93\x0b\x99\x09\x13N\ -\x1b0\x22@[\xbdU\xf2\xa4\x81\xf6z\x9b77Z\ -(;\xae\xef\xac\x1f\xec|\xf9\x16g?\xec\x82\x1e\xd8\ -i\x1b\xab\xef\xf6\xc5\xaax_\x94\xd5v\xfb\xf2\xfc\xae\ -\xe3\x15]\x99\xfeq\xbf+\x8b\x7fU\xbbr\x85\xe3,\ -\xfb1\x0cd+\xea=nR\xb3\xd2}\xdd6\x87\x98\ -\xd5u\xfeqU\x22>\x98\x838&\xde%\x18\xb5\x17\ -\x16xMq\xd4\x99\x15\xc1p\xa3\xe78j\x9e\x09\xe9\ -\xd4\x14G\xaa\x16Nku\x09G&\xbee$M\xa6\ -CP\x9c\x9b9#\xad\x85\xf8\xf23H\xc2Yh\xe3\ -\xed\x14I\x152k\x84\x94\xf6\x22\x92\xdf4'm\xa6\ -\x9c5\xde\x85)\x9263N\xba \xc4\x19N\xca\xcc\ -\x085\xe3\xa4\xcb\xac\xb6\xdc}\x86\x93\xf2\xdb\xe6\xa4\xd3\ -F\xeaS\x22\xb5\x9c\x0c\x12!`0s$\xa5\x03\xfc\ -:L\x91\x94&\x83\x8e{{\x99\x93\xfc\xdb@\x92\xf6\ -3\xde\xc8\x10\xd4\xc2\xaf\x92\xbbG\xb0\xb5\xd9\x9c\x800\ -\x84oUY\x16\x9b\xa6\xaa\x19\x02\xb9\xf7ysW\x03\ -\x01~\x1e/w\xc2a\x8a~\x12\x88\x81\xf5\x92\x07\x9d\ -\xc2y\x06h\xa9\x17\x89P\x885%\xa2\xcd\x94\x85L\ -;~\x8e\xadsd\x1f\x0d\xa5\x1eC\x89=\x9c\x229\ -\xe0\x1b!\xfd\xca\xf0Us|9\x18,\x0d\xc1\x0bX\ -\x11\xa3K\x82\xd7\x06%dH\x11\x1b8\x88\xce\x13\xbc\ -\x8f\x84\xd7\xcc\xe0U>S\xdc*%[|\xads\x22\ -a\x94\x0d)a\x8c \x80\x8d\x15\xf6\x09\xe0G\x02\xec\ -f\x00C\x98%\xc2.\x01\xb2r\x19\xb2\x80P\x9d4\ -C9\xaf\xb4K!\x18\xd2\x87\xaf\x1c\xde\xab\xe5\xf5\xa5\ -\xb4\xc3\xbb\xdfI;\x10\xf4#%\xb0Z\xa5\x1e\xe9G\ -\xf0Z\xbfX\x5c<\xb5/8\x13/\xe7\x92-e\x86\ -\x13\x09\xd2\xa71\xbb0<\x98D!\xc9\xd0\xd2\x98T\ -AQ\xa4JD\xe6U\x08^\xa4p\xc6\x5c\xeb\xc4!\ -\xdd\x08\xda\xb8\x94a\x80\xb3\xe2\xd2\x91E\xa8.\x9f\x97\ -\xe7\xf4\xef\xf4\xbc\xd4\xe3\xce\xeb\xabs\x97^\x86GA\ -\xcf\x1c\x92?\xcd\x83\xc7m\xd0\x81\x87o\x0b\xda/\x01\ -N\x89\xb32b\x91\xf3\x91\x1f\x94\x82\xae\x8cL\x90\xbb\ -(\x89\x0c8uY\x80\x8c$\x0c\xd95\xb7Vx\x90\ -\x96\xdb\xd3\xcc\xe5;\x05R=\x8a\x81\x22\x13*p\x85\ -\xcb\xad \xd6\x5c}\x0f\x97\xfb\x8f_o5\x8f&\x84\ -\x81?\x0b^\x11I%\xbd\xfc\xd6\x09\x05\x10\xce\xe8\x00\ -\x92z)u\xb2I\x18\x87\xf7\x93\xde9h\xadR\xce\ -%\x1cl56\x95\x19\xa8k\x11}P\x10mcD\ -\x02\x97\xa0\x92=\xc4\xd9p\x8d\x1c\x12\xbc6\x92\x9b'\ -^\xaby\x9c\xa1\x10\x0a\x03\xef \xda8\xc3\x87\x90X\ -\x223\x5cp\xaa3\xae\xbd\x22\x18\x83\xa4\xa8\xc3f\xdc\ -\xc9'\x18\xbdV\xe7t\xd6\x05\xe5\x1dQXAOM\ -\xd0\xe0'\x22g\xa9\x88~Zz\xf3\xe4\xfa\x1f\x81\xac\ -9\x97\xc8\xd1\xebZ\x19\x09\xea\xe1\xba\x80,\xb3\x99\x16\ -\xda\xc1\xe9\x03[\xcb\xc3\x93\xef\xf7\xfaL\x0a\x11y'\ -\xa2\xac\x0a\x5cj\x14\xe1\xfb=\xe2Rz\xc3 3x\ -3$\xc5\xa4\xb7\xcaz\xe4\x19\x99\xd3^>!\xa9\xe7\ -\xe1'n\xb4t\xceF\x0e\x0aD\x9b\xf8\x7fBIo\ -\x08\xc6C%\x0d\xf7:\xd1\x19\xb25\xe5u\x8ak\x8f\ -\x1c\xe0)\x16x\x0c\xd6\xe6Q\xb1\x00\x02T\x1d\x1cR\ ->x \xdc\xff\x04\xdc\x15B#\xe7\xa3\x10\x16x\x09\ -\xea\x11\xd1\x17\x16\xc9\x00\xc8\xee\x9ehl\xce\xbeS\x08\ -6\x08b\xb1F0\xe5]@\x08+\xa5\xb5F\x22\x8d\ -\x16\xde\xdb\xef\x82\xb5\x7f\xd8I96\x0f\x00tFy\ -\xbf4\xed\xfb0a\x94I\x88\xb5\xc6xm\xe1\xa4\xbc\ -\xb1\x9e\x02+\xa5\xb5\xe4\x1a1k\x08\xfc\xab~\x19\xf0\ -\x99\x977\xce\xcf~\xff\xfd\xdc\xef\x01\xbf\xf7\xdb\xf0\xb9\ -\x17A\x87\xbc\xa9w\x1f\x9es$\x09A\x07\x84\xaa\x9c\ -\xfe\x0dO \xba5\xdas\x99j\xf2o\x1a\x87\xf0\xb9\ -\xd7C\xdd\xc1\xca\xb9\x16\xd9\x0c9\x88\x95\x94S\x04\x91\ -i\x8d\xb4bC\x99\x06.\x0c'\x19\x82\xdb\xc4\xaaP\ -$\x95\x05(Vf4\xd2\x0e&\xe0.\x0c\xfd\x05\x8f\ -J\x99\xcf\x94\xc0\x18\xfa\xb54E\x06\xa3\x0d\x15=\x15\ -\x83\xec\x8a\x988\xe1\xb1\xd1S\x92\xc3]l5T\xee\ -\x9b\xf7\x09\xe6\x14|\x98S\x92\x1d\x82\xba\x0a\xca\x94\xb0\ -2\xf2z\x84\xeb\xbe-!A\x120\xd0\x92\x97\xb7\x81\ -\xbe-\xad@\xd5I\xac\xa2\x0a\x16\xabY\xd7\x97\xc5D\ -*\xd07\xf5\x8d\xc6D[\xa2)\xd1\x92\xd6\x106\xb2\ -\xa43\x84EKX\x9c\xdb\x90\xc10\x81Ek\xba2\ -\xd6\xe0t\xb8\x8e\x162Y{\xd2\xae[\xf0\xe1\x99\x16\ -\x8e6F\x13m2n\x01\xb6\x1e\xa3\x15\xd4\x9d\xe0\xe9\ -\xb7\xdb.\x10\xe1\xe9!\xef\x10'\xf4h\x1b2\x96,\ -\x8a\x94$\xc6\xa2\xa0\x1e\xb4\x14\xe2\x1f\xca\x1e\xe9~*\ -\x0a\x8dT[\xa2\x06\xac\x15+\x08.\xd1\x15c#o\ -\xb3\xfd\x88\xa3\xe8\xea\xd8\xa8\xfd\xd3\x17\xca\xcb\x7f\xe1\xa6\ -|\xce\x83\xf4\x1c?#]\x0ca\xb5\x11\xc1{\x12/\ -\xeb3g\xbd\x8f\x94\x0d\xdcpBKJ!\xc9Sh\ -\xeb\xc1b\xec\xdb)z\xa6x\xdcP\x92\xe84e\xdb\ -\xe4\xb8\xad\x90\x8a\xbc4\x8e\xc2\xc4)d\xb0\x1c5\x94\ -\xbb\x1bK)\x91U\x22\x98x\x82A\xd2\x1b\x14\x8e\x1c\ -\xa9\xbd\x0e\x8e\xc0\x85W2V\xd13\xe6&\x06z\xe4\ -\xa6\xed\x8d0\x1c\x91?\xac\xc0\x04\xba\x9d\xc1\x87\xc8\xc7\ -\x0c#\x1d\x82\x03FA\xae\xf4\xbae\xa4\xd6\xdc\xe0\xac\ -i&\xab\xe3q!_\x102R\x86k\xe5\x89\x95N\ -\xc5<\x97ba\x81-\xa1%`\x22\xde\x9e\xba\x09*\ -\xceC\xa1FJ\x19\x87\x94-\x0a\xce!\xca\xa3\x8b\x1d\ -Z\xaa\x22;&\x93\xdb\xc1I\xec(\x14\x80k\x07\x9b\ -$\xf6\xe4JF(\xb5\xf3I\xb7\x0cH\xd6\x8eN\xda\ -Uh\xdav4\xad\x1b\xd71i\x1c\x1c\xdf}\x100\ -\xc4\xe8\x08\x0c\x1b\x90\xe1\xdd\xdb\xd0\x01\x99\x08\x8c\xa0\x03\ -\xe9\x81iqi%\xa3\x85\x85zEXzTH\xbc\ -8\xc5V\x1d(>\x8d\x98\xa8\xc1Ve\xd3\x0e\x93v\ -WB\x84\x89\xb1\xf4\xbbegm\x0f\x0a\x09S\x04\x85\ -\xf5\xa8\x88\xb4\x03\x85u\xa8`K\xac\x83\x85H\xa0\xb9\ -\x0b2\xd6X\xca\xf3\xf0\x1d\xb4\xb0\x9e\x0e\xc4y\x17k\ -\x84D\x89\xfe\xda\x08\xa3@!b@\xcb<$\xdf,\ -RO\xb5\xd7\x1f!\xbb\xf7\x84\x98R\x14D\x92P\x1b\ -k\x091\xaby\xd4\x82`\x9c\x88\x12\x1e8\x89\x03\xd4\ -\xcb\xdb\xa0(\x15\x0a\xc2)\xb2\x1a\xe9{\x88\xd2\xa7\x9c\ -\x8eF\x0b\x83\x94>\x92\x08\x97\x22\xdaC]\x01F\x1c\ -\xed\xa8\x82\xba\x8aH\x19\xf4L\xda\x8e8\xebv\xb0J\ -\x86U\xba\xb1\xc9\xb0J76\xe9Vqi\xb7\xc8\xff\ -\xa9\xa4\xfc\xe7\xa1\x13\xd4\xe7\xf4\x8fY\x06\xfd\xe1VX\ -\xf2^<\xc0u+gG\xfa\xc3\xa6\x02\xc4&\x0a\xc4\ -\xceH\x10\x9bk\xd0D\x82&\x0a4\x11\xa0S\xfd\xb1\ ->=\xd5\x1f\xed\xd3\xa9\xfe\xe0\xca\x9c\xd3\x9f\x99\xfc\xcc\ -\xd4g&>S\xed\x99J\xcfTyN\x85g\xb8a\ -\xfd\x05\x1b\xeeW\x7f\x95;u{\x90\x9dN\xdd\xc6\xb2\ -\xc3\xa6\xba\xc3f\xc2\xc3f\xca\xc3\xe6\xd2\xc3f\xda\xe3\ -\x06I\x9e(\xf2H{\xd8D|\x101\xb3S\xf5\x91\ -S\x9b\x8d\x18l\xee\x80\xd1\x83$\xb3\x01\x1a6Q\x1f\ -\x9d\xce\xb4g&=3\xe59'<3\xdd\x89.o\ -\xac;\xd1\x15\x9d\x08O\xeb\xf6N\x95\x87\xcd\xa4\x87\xcd\ -\xb4g&=S\xe5\x99\x08\xcfTw\xa6\xb2s\xaa:\ -v\xd0\xb6O\xff+-\xe9s\x87\xf6\xfb\x8a\xfe\x5c\x17\ -\xdf\xff\x06=GYN\ -\x00\x00\x0bM\ +y=\x2227\x22\x0a inks\ +cape:window-maxi\ +mized=\x221\x22\x0a i\ +nkscape:current-\ +layer=\x22svg6\x22 />\x0a\ + \x0a \x0a<\ +/svg>\x0a\ +\x00\x00\x08v\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0a\x0a\ +\x0a\x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x08L\ +\x00\ +\x00\x1d\xa9x\xda\xedYY\x8f\xdb\xc8\x11~\xf7\xaf \ +8/\x1eD\xa4\xfa>4\xd2,\x12\x18\x8b\x0d\xb0A\ +\x80]{s\xbc\x04\x1c\xb2\xa5\xe1\x0eE\x0aMJ\x9a\ +\xf1\xafO5\xc5S\xa2\xc6c\xac\xb3@\x90\xc8\xb0\xad\ +\xae\xea\xa3\xce\xaf\xaa[\xcb\xef\x9e\xb7\x99w0\xb6L\ +\x8b|\xe5\xe3\x10\xf9\x9e\xc9\xe3\x22I\xf3\xcd\xca\xff\xf4\ +\xf1\xfb@\xf9^YEy\x12eEnV~^\xf8\ +\xdf\xdd\xbf[\x96\x87\xcd;\xcf\xf3\x8eiR=\xae|\ +\xa6|7z4\xe9\xe6\xb1\xea\x86\x87\xd4\x1c\xffT<\ +\xaf|\xe4!\x8f)\xaf!\xa7\xc9\xca\x87\xe5\xe44\xa7\ +?\x19\x9f\xb8\xf9S\x19G;\xb3\x18r\xbc\xf7\xb1P\ +\x86\x90\x98*9\xf3\x08\x228@< \xf4\xb6^R\ +\x82\xb4;\xf8\xbbH\x8a8\x8f\xb6 d\x9a\xef\xf6U\ +\xf9\xaf(\x8f\xb2\x972-=\x12\xc2\x81\xf5\x5c\xd06\ +/\x17\xed!+\xff\xb1\xaav\x8b\xf9\xfcx<\x86-\ +1,\xecf\xee\xf6)wQl\xcayK\x1f\xaco\ +O\xec\xd6\xb7\x84\xb0,\xf666k\xd8\xc2\x84\xb9\xa9\ +\xe6\x1f>~\xe8\x98\x01\x0a\x93*\xe9\xb7\x19\x9d~\xa4\ +\xf5\xb9\x04!4\x1f\x0b\x0b\xa37\xce\xb4\xc9zj&\ +\xd6Z\xcf\x11\x99\x13\x12\xc0\x8c\xa0|\xc9\xab\xe89\xc8\ +\xcb\x9b\xc1\xd28\xeeV\xc6\xd6DUz0q\xb1\xdd\ +\x16yy2\xc7hr\xd2O\xde\xedmV\xcfH\xe2\ +\xb9\xc9\xcc\xd6\xe4U9\x07\x8f\xcd\xfd{\x98\xbf\xdc\x9a\ +*J\xa2*rkO\x9eo)\x98\xd43`\x0e\xc8\ +\xb4\xf8\xe9\xc3\xf7\xa7\x11\x8c\xe3x\xf1\xb7\xc2>5C\ +\xf8\xb8\x09\xd1C\xb1\x87\xc8\xf2\xef;\xf22\x89\x17`\ +\xe7mT\xdd\xa7\xdbhc\x9c-\xfe\x00\xf2-\xe7=\ +c4\xb9z\xd9\x99~\xd3\xd3\xb6\xd6\x9c\x1c6\xa9O\ +\x12oS\xb7h\xfes\x95f\xd9\x9f\xdd!\xbe7\xef\ +\xe4\x9c7\x826j\xcc\x07z,\xe7\xad\x9a\xf5(1\ +\xeb\xb2\xb7\x80\x1ba\xd4j\xbf\x8d\xec\x93\xb1\xad\x5c]\ +\xf4\x97U\x11?\xb9\xd9\x7f\xb4\xb68\xe2\x1f!\x05m\ +\xe5\xb7\xd3\x0a\x9b\x82\xa1W~\xb4\xaf\x8a\x8eh\xcd\xfa\ +\x1f\x90k\x90\xc1\x03\xca\xdf\xc7\x94\xab;\x96\xd5K\x06\ +V( \xeb\xd6Yq\x5c\x1c\xd22}\xc8\x8c\x7f!\ +XZ\xd6\xa2\xad\xfc\xca\xeeM\xe7\x8e\xe5.\xaa\x1e{\ +\xe3\xbac\x1c\x85q\xad\xfc\x9e\x0c\xd4\xbfx \xce\x0c\ +\xfez?z\x1c\xbe\x05\xbc\xfe\x1a`\x12\xf2\x01\xf9D\ +m\xa7~\xf6\x06\x9b4\x92\xae\xc1%\x81\xddgfa\ +\x0e&/\x92\xe4\xae\xacl\xf1d\x167\xa8\xfe4\xc3\ +\xa0F\xa8\x05\xe0\xda\xae\x1alR\xd9(/]\x90\x00\ +\x14\xc5Qf\xde\xa3P\xdd\x9e\xa8YT\x99\xf7'q\ +n;w\x83Ck?5#\xd0\xad26o\xf7k\ +\x86\x9f\xf2\xb4\x82\xa4\xde\x97\xc6\xfe\xec\xa0\xe3\xaf\xf9\xa7\ +\xb2\xb7`\x03\x954\xa4\x88\x11ID\xc7\xe8P3\xd4\ +\x5c\x0b\x8czN\xb3\xef\xc7^\xd8^B\x19\x0a\xc1\xb5\ +\x96|\xa6CF%l\xaanGnn\x16\xbb9\xbd\ +\x9b*\xf3\x5c\xf5V\x80lY\xd4 \x07\xb3!\x13\x8c\ +=\x98\x09C\x17y\x15\xd4\xdf\x17\xb9\xcb\xaa\xec\xae\xa6\ +\x1ck\xa9G\xa42\xfdl\x16\x22\xe4\x5cR\xb2{\xbe\ +\xcb\xd2\xdc\x04'\xe5\xc0\xfe\x84\x9f&\xad\xa3m\x9a\xbd\ +,J\xd0#\x80\x13\xd3\xf5\x9d\xf3\xe4\xe2\xe6\x81\xba?\ +\xf5 (@&\xc8\xbc\x05n}\x9aC\xe9\x19;\x14\ +\x85XPM\xe9@^(4\x80\xb0\x8c\x12\xc2\x98\x16\ +\x03\xc6\x8b\xb3\xad\x12Br\xa9\xfdq\x90:{`.\ +\x85\x7f\xbf\xac\xc0\x12\xf9\x10\x1f\xba\xb2b\x0bg\x07\xa7\ +\x8e?\xe4\xd7\xeb\xdd\x22\xd8\x80\x8d8\x83\x10}]\xb1\ +\xeb\xca\xbc\xa2\xce\x99B\xf7h9\xaf\xc5\xb8\x87\xffA\ +\x9d6`\x1b\xff\x9f\xe0\xc8aN\xfd\xadS\xca\x15\xb8\ +\xc4U\xe8wM\xa8m\x00\xf0\xb3\xc2\xae\xfc\x9bu\xfd\ +iN|(lbl\xcb\x12\xf5g\xc4jt\x82:\ +\xdd\x90\x8b\x87_M\x5cU`4\x08V\x17[\xb8\xc5\ +\x9f\x8d\x05u\xa7\xe8\xfb41S\x8c\x0eu\x9cx\xdd\ +A\x93\xdc\xf21J\x8a\xe3\xca'\xe7\xccc\x9a\x03#\ +h\xd2\x0f+\xae\xae\xcch\xf3\x10#.\xfd\x1e\xae;\ +C\xb5\xeb\xca\xc7\xe2\xe84\x01\x07GY\x97\xe0\xddn\ +\x9f\x8b\x02\x12\x15\xd3\x90\x13\xa4:\x9fv\xec\x18\xfcJ\ +5\x80\x80\x96\xe8B\x92\x18\xb4\xa38\x14\x1a+\xca\xae\ +\x88\x09\xeb\xf95\x1e,\x0f\xae\xa9\xb7\x8d\x9e\xd3-d\ +h\xd2{\xaa?wo-\x14\x94 \x8b^\x0c\xb8y\ +\x83\x09\x9f4r\xfchb@\xc1\x87\x22\xb2\x89\xf3\xc3\ +\x09\x1e\x97\x9b\xdeZ\x1b\x86yW\xdb6C<\xda0\ +\xce\xd8\x97\x0b\x06E\x17\x05c\x86\xbc\x1f\x5c\xff\xf8\x8b\ +\xfb\xe7\x07\xe8%\xff9\xcc\xe2N\x87\x22\xcf!\xee\x0a\ +\x1b\x806\x87\xa8\xda[\xd3\x87\xcayV:@\x19\xd6\ +\xf2\xcdX\x94\x8dFx\xbaZ@Wa\xd3\xe7\xf7P\ +O$\xd5D\xb3\x19H7\xebGB\x87\xd0lq\xcc\ +gD\x86X\x11M\xf1\xed\xb0g\xb1 \xe15\xa4\x18\ +\x80\xdc\xe2F\xd7\x9f1L@HQ\xc5\x90\x14\xbc\xa5\ +;L\x02\xe5\x01\xa1\xf6y2$\xfeZ\xa4\xf9\x98\x0a\ +\xad\x8c\xb1\x19D@\xb5`--\x89 k\xac\x8d^\ +F\x00\xdb\x81\xd4\x05\xda9\xe95\x1bcQ[\xd6D\ +((\x15z\x0c\x84mJQ\x1eb\xaa\xe8\x19L:\ +\x84\x13(\x94\x12i\xca\xcf\x01.\xc0:\x84$\x80U\ +#\x8e\x05\x16\x0f\xa9\x96\x9a\x0b6\xf0\xe0\xd8\x87\x8d\x17\ +%\xd3r\xb4\xba\x9a\xaa\xa4(\xe4\x0a\xd2\x11a=t\ +\xd5\xf9\x86\xcd\x96\x83\xcc\xb8\x1e\x1d4D\x08#@\xee\ +::\xa0\x95\xe0\x1a\x11\xc4g\x18\x83\x1d\xa4\xc2\xcaE\ +\x87@\x9a\x102>\xf2\x22/\xc6\xb6\x17\x08a\xff\x9c\ +y%\x84\xba\xd2\xa2\xa4\xd2\x9a^,s\xad\xb8\x17p\ +\xe9\x84\xa3J\xcc\x02,C\x821b\xda{\x84\xfb\x92\ +F\x8cQ\xea\x1d<\x16R\x0e>\x17@\x0d:\xf2\xe7\ +\x91\xe5_\x95\x1b\xba!\x09\xed\xc9\x7f\xa7\xd8\xfc?'\ +6\x0a\x85\x84b\x84'\xc5\xa6\xfc7\xc9\xad\xbe\xb5\xdc\ +8\xa4\x0c1,'\xe5fW\xe4fSro\xceO\ +\x88l\x1aA\xddy0Y_\x97\xbc\xcb\x1eM*q\ +=\xf4\x07\xcd'\xa5\x9c\xd1\xc9\xe6\xb3n\xc6\x10JX\ +\x14]t_\x00\x00J\x5cl\x7f\x99\xd8\x00V\x94S\ +\x00\xba\x13\xee\x0f\x86\xee\x02#\x88V\x92B\xbeK)\ +\x00M\xe8yn_q[ge\x0a-=!\x14\xf6\ +b\xa1\x84\x86\x10+\xb0&\xd4\x16\xe8#\x98\x00#\x07\ +\xae\xa7\xa0L0/\x83\x0bS\x08Q\xcf\xb9\x00!\x00\ +F\xa4\x0b\x1eh\x179\xb4\x0eZ\x03\x1f\xd8\x88\x01\x1e\ +\xcf\x82\x96\xff\x08\xd7)A\x98R\xa4\xf6\x17\xa0\x8f\x10\ +\xb4?\x80\x03\x15\xd6\x13\xae\xf4\xc9\x87B 0\x0a\xf8\ +\xf0R\xde\xaeZSL\xd4\xa5\x8f\xe7\x9b3\xc2\xf8\xd6\ +\xf1\x96\xbb\xc7o\xb9\x81\xb8X\x14\x8a~\xf5\x0d\xa4)\ +\xb9_q\x03AJ\x93\x0b\xa1]U\xe3\x02\x12\x0a\x0b\ +&/\xb8\xae\xb2\x89P\x0b\x81\x99\xd0W\xc3\x1d\x92\x9e\ +N\xdeI\xdev39\xbb\x9f\xb8\xdd\xd8\xc4\x84\xd15\ +\xe55\xed\xbf\xa0\xf1\x97t>\xd7z\xfa\xc6\xf2?\x1d\ +-\x12\xec\x82'\x83\x05pEA\xcb\x87\xd8k\xc1\xc2\ +\xd07\x0d\x16\xf5{\x04\xcb\xb4\xca\xe7J\xff?V\xce\ +\x0c\x87C\xe6\xdaIq-X\xa0\x8feR\xbd\x1e,\ +\xc1\xb7\xc5\x16\x15\xfc\x0e\xe8rU\xefs\xcd_\x8b\x98\ +\xb3\xd2t\xa5\xc3\x17\xec\x8b\x1d~]J1\x81\x1a\xdb\ +4\x02\xdd0\xe0\xee5\x87c<\x0bT\x88\xb5T\x84\ +\xb375\xf9o\xb8\xeb\x8e\xab\xef\xa5\xa9\x9cy\xdd/\ +4\xa3\xbbm\xfb\xaa\x9e\xda83W\xf2\xa0wI\xdf\ + NG\xebd\x07\x05y!)\xa6o\xbb\x95>\x98\ +\x83\xc9\xbe\xfeV\xea\xa8\xc5z]\x9aj\x81.n\xaa\ +w\xbb(\x85\xfc\xab\xdf\xa3\x9a\xb4\xbdj6\x8c&\xfa\ +\x5c\xf7*\x03\x17N\xaa\x05\xe1\x97\xc1\xec\x9ee\xb0\x0a\ +%\x22\x92]Z\xdd\x02\x93\x01\x06Ph\xa3\xde\xd6\xa8\ +\x8fR\xa31\xe8k\xef\xd9\x97\x16\x97!TR\xc1\xde\ +f\xf1\xda\xc8\xdf\xea\x1d\xa0\xebW\x09\x98\x8b\x11h2\ +g\x14\xae\x0fD\xc3m\xd6\x03\x1bA?,\xb5{\x93\ +\xc6\x081\xf5\x9a\x17./)o\x7f\xcb9\xc3*\xb0\ +\x97q\xbf\xd4\x94+?\x8e\xcf|0\xca\xf9\xc1\xa0\xfb\ +\xda\x7f\xe9\xe0`\xf2\x9d\x00\x1ae$$Q\xd0\xa0\x13\ +\x1e*%A\xe7\xf1\x93\xfb\x86a\xd6?J\x9c?\x7f\ +\x09\xdck|\xed!\x02\x13\xa6\x89n\x7fw\xa8%[\ +\xba\x1f\xb6\xee\xdf\xfd\x1b\xda\x80\xb5 \ +\x00\x00\x06\xc6\ +\x00\ +\x00$\xebx\xda\xddZYo\xe36\x10~\xcf\xafP\ +\xb5/\xbb\xa8EqxS\xb5S\xa0],\xd0\xd7\x1e\ +\xe8\xb3\x221\xb6\xba\xb2dHr\x9c\xf4\xd7w(\xdf\ +\x87\x80\xb4pQ\xd7r\x82\x84\x9c\xe1\xf5\xe9\x9b\x8b\xc9\ +\xf8\xfb\xd7y\x19\xbc\xb8\xa6-\xeaj\x12\x02\xa1a\xe0\ +\xaa\xac\xce\x8bj:\x09\x7f\xfb\xf5Kd\xc2\xa0\xed\xd2\ +*O\xcb\xbar\x93\xb0\xaa\xc3\xef\x1f\x1f\xc6\xdfDQ\ +\xf0c\xe3\xd2\xce\xe5\xc1\xaa\xe8f\xc1O\xd5\xd76K\ +\x17.\xf88\xeb\xbaE\x12\xc7\xab\xd5\x8a\x14\x9bNR\ +7\xd3\xf8S\x10E\x8f\x0f\x0f\xe3\xf6e\xfa\x10\x04\x01\ +\xae[\xb5I\x9eM\xc2\xcd\x80\xc5\xb2){\xc5<\x8b\ +]\xe9\xe6\xae\xea\xda\x18\x08\xc4\xe1^=\xdb\xabg~\ +\xf5\xe2\xc5e\xf5|^Wm?\xb2j?\x1c(7\ +\xf9\xf3N\xdb\xeff\xc5{%\xb0\xd6\xc6\x94\xc5\x8cE\ +\xa8\x11\xb5oU\x97\xbeF\xc7Cq\x8f\x97\x862J\ +i\x8c\xb2\xbd\xe6\xfb\xb4\x92\x16\x01]\xe0\xf7N}\xdb\ +A\xdaz\xd9d\xee\x19\xc79R\xb9.\xfe\xfc\xeb\xe7\ +\x9d0\xa2$\xef\xf2\x83i\xb6x\x1e\xadz\x04r\x95\ +\xce]\xbbH3\xd7\xc6\xdb\xfe~\xfc\xaa\xc8\xbb\xd9$\ +\x14\xa6o\xcd\x5c1\x9du\xbb\xe6K\xe1V?\xd4\xaf\ +\x93\x90\x064\x10\x06\xbf\x08\xf5\x0f\xf4\xd2\x22\x9f\x84x\ +\x1a\xb6V\xdd3e#\xdd\xac\x92\xec$\x94XFx\ +\xf0\x91\x09*\xa5P\xa3\x80Q0\x11\xe5\x11\xc0\xa7~\ +\xc8\xf6xI^g~\xbf8}6ss|\x9b\x19\ +\xf1\xb0=\xa2\xd28w\xcf\xadW^\xaf\xef[\x22\x0c\ +\xe2^\xb4\x1b\xef\x07\xe7~\xf3{\xc5\xa7\xb4]\x1f8\ +\x08\x16\xe9\x14\xc9Q\xd6\xcd$\xfc\xf0\xdc?\x1b\xc1S\ +\xdd\xe4\xae\xd9\x8aT\xff\x1c\x89j\x04\xb0\xe8\xde\xd6\xe6\ +\xb0\x99{{L?\xebNN/\xcb\xdbY\x9a\xd7\xab\ +I\xc8N\x85\x7f\xd6\xf5\x1cQ'\xda(!\x0d?\x15\ +g\xf8\x0a\x04\x10\xa9\xad\xa5\xfaL\xe8\xf7#\x09\xe7\x16\ +@\x9e\x0a\x11\xc9\xa57\x98hY\x15\x1d\x92r\xf1z\ +6|\xd94^\xa1L\xdf\x1c\x1e{\xca\x85\x80\x8dN\ +;\xabW\xd3\xc6\xa3\xf7\x9c\x96;\xf8\x06gZ\x15\x15\ +\x9e.\xda0\x0a\x8c\x84\x01\x8d-\xcb\x8029\xa0\x82\ +\x07Vv@\x86\xe7ez@6O_\x8by\xf1\xa7\ +\xc3=\xc3\x96\x16s\xd7\xa5y\xda\xa5{2l{t\ +O)TA{O~\xfe\xfce\xdd\xc2v\x96%\xbf\ +\xd7\xcd\xd7M\x13\x1f\xaf\x90>\xd5K\xdcu\xf8\xb8\xeb\ +\x1e\xe7Y\x82\x16\x8a\x0c},\xe6\xf8~\xbdq\x7f\x8b\ +\x169\x8e\xf7\x82#\xe5\xeem\xe1\xf6\x93\xae\xa7m\xdc\ +\xda\xd4/\xfa\xbb<\x9b\x17~P\xfcKW\x94\xe5O\ +~\x91\xcd\xb1\x0e&-\xba\xd2\xed;\xc7\xf1f\xf7\x9b\ +\xb3\xc5\x07\x87\x1b\xc7\xdb\xa3\xf7\xad\xe9\x09\x88e\xfa\xe4\ +\xcaI\xf8c\xbaH\x83\xb3\x977m\xea\xe5b^\xe7\ +\xb8\xd1\x9e+\xe1\x1e\xcf\xbe\xbd\x1d\xd05i\xd5\xfa\xc3\ +O\xc2\xfe\xd7\x12c\xc1G:\x8a\x80RA\xb8b\xec\ +\xd3\x16\xf5\xe9\xf6\x18~\x8eC\xe2\x1dM\x82 6\xc5\ +\xebGJ\x8cR\xa0\xb8\xe4#\xea?\xfb&#Jj\ +m\xb4\x1d\x01\xd7\x044\xe3\x1b\x7f\xd2s\xb8{+q\ +\xc7\xcf\x88^\xb2\xb1\xf6\xef\xda\xae\xa9\xbf\xba\xe4\x83\xc8\ +\xfd'\xdc\xbf\xf5\xa2\xc9\xca\x83\xf7\xd3xC\x97\xe1\xbe\ +\xa375J\x0d\xe1 \xf5a?\xd2\x95\x09\x22\x85\xb4\ +\xc6\x1c\xf4\xfbs-\xd2n\xc69W\x07\xdd\x97\xf6\xe4\ +\x1b\xd1\xc6\x7f$\xb0n6\xcb\xd2%\xee\xc5Uu\x9e\ +\xef6m\xfbg\xd3\x5c\x1b[\x02\x8b\xd7mGYT\ +\x0e_W\xf2\xb4\xec\xba\xc3\xbe?\xea\xa2J\x90K\xae\ +\xd9\xf6\xee\x16; \xd4{!\x00N\x80\xdbS\x08\x10\ +}j\xa8\xa0l\x00\x82\x88\xdf\x15\x08L!\x9dA\x9d\ +\x80 8\xb1\xc2\x22\x1b\x87@\xb8/&p\xeb\xad\x8f\ +\x9f\x82@\x89\xa0\x82\x0b>\x04\x82\xbe+\x10\x84&\x9a\ +\x9a3\x8f`\x10\x1a\xab\xe5\xa09\xc8\xfb\x02A\xa2K\ +fp\x02\x02\x08\xc2\xa4\xa20\xec\x13\xee\x0b\x05.\x09\ +H\x90'(HB\xadB\x8a\x98A\xa7\xc0\xee\xcb5\ +bLV\xe6\xcc+\x10\x83D\x10\x1a\x86P\xb0\xf7\x15\ +$\x11\x04\xabN\xe3\x03\x00\x11\xc2\x02\x1b\xa4\x02\xdc\x1b\ +\x138\xb3\xa7\xf6\xc0\x01\xa9`\xc4\x91\xcb<\x06!\xa2\ +\xf7\xe5\x16\x18\xc1\xbc\xf4\x0c\x06d\x08f\xbd\xc3T\xb8\ +3\x8b\xc0\x04\xd1\x08v\x1a&}a\x0bL\xb3a\x14\ +\xfe'y\xa3\xdf\xf1\xc1\x19v\x15v]\xe1\xb4]\xdd\ +DXk\xbf\xa4\xdd\xb2\xc1\xfd\xd3\x0b\xa7\x15L\x1e\x1a\ +\xbf/T\x03E\xa84ZZ9B[\xc2\xac[I\ +\x16h\xc2\x14\xa5J\xca\x11\x96\xfd\xda\x9a\xf7\xa0\xf3~\ +8\xfe>\x18}\xa3\xc4\xba\xbbK\xc4\xb6/O\xdbY\ +\xda4\xe9[R\xd5\x95\xfb\xb7a\x93\xa7\xb01_\x1f\ +\x1a\x0c\xba\x08\x1bhb\xb1\xb8\x0c8\xa1\x0c\xfd.\x1f\ +E\x98\x98\x09j\xaf\x0a\x9b_\x8fY\xae\x99\xbe%:\ +\xe9S\x5c\xc0\xfb!\x8a;\x1d\xf5\xf1\x89\x09\x90\x01P\ +\xacX\xb4\x11b\x14q\x82\x19\x1c\x5c\x19\x18+\x94\x05\ +\xa5\xd5-\x01c\xcf\xed\x8c#G\xa4\xf4\xc0`\x0e\x87\ +\x95|\x00}%\xc7\x8d\x85\x11\x10k\xb5\xbd:.\xfe\ +\xc2\x00\xf8\x0d\xe1\xa2\xe0\x82!I\xad\xad\xf6\x86\xc4\x0d\ +\xd1J\xc8 B|\x941\xdc\x8e\x14a\x8c\x9ak\x1b\ +\x12\xb2\xd2\xb2\x9b\xe2\x8b\xe2g\xb8\xa0\x13\x06i,\x1b\ +\xad\xcb?t\xccA\x84\xb9\x9dF\xa3\xe30\x8a\x80(\ +\xad\xafN\x18.\x05\x03sK\xc0\x9c\x19\x12\xc6x-\ +\xac\x06\x1f\xb0\xb0\xf8\xe3T\xeb\xc0\xdfN3*\x90C\ +@8F\xb3k\xe3\x02\x80a\xf0\x96\xe2\xb8>\xb3#\ +\xc1\x884\xe8_F\xfd\xbd\x11\xd5\x5c\x04\x91%^S\ +2\xefw\xb9T\xd7\xf6\xbb\xdaR\x81\xab\xdd\x12]\xf4\ +Y\xa0\x16\xfe\xf5\xf9\x0b\x82\xb5\x7f\x91T\x8b\x00c\x94\ +\x95\xbc\xb7\x22\xf4\x06T]\xdd\xc1p\xaa4h{K\ +\xc0\x9cGjt\xb2\x80Et\xefx)\x014|\xb4\ +#\x00\xa0F\xa3\xdf\x15\xe6\xea\xb0h\xc1\xb1&\xa3\xb7\ +dGG\xb9\xed\xda\xefb\xb5\x80\x01\x9a\xf5\x89\x9d\xbf\ +{4:0\xc42\xa9\xf4\x88\x11\xd0\x92_\x1b\x15L\ +\xb5%\xa3\xfc\xa6\xbcKt\x16\x8f\xb0\x944\x18\x8f\x94\ +\x8fGX]\x0b\xcdT\x10!\xd5Aa|\x1aE\x98\ +\x02#T\xd7\x86\x86S,\xd0,\xbb1h\x8en\xd8\ +\xd7\xe0X\x22A\xaf\x835:\x19\xcc\xe8\xd0\xfbz/\ +\xac\x14\x02\x86\xe9\x0c\x03q\xf3\xe0\xbc\xf7\xd6\xc9bV\ +\x7f\x94\xab\xf6E6\xc5\x9aQJ*\x87\x8b\xec\xab]\ +\xc9S\x9a\x8b4\xfd\xaf\xef\x9d,\xa1 /\xdcFc\ +\xc5\xa3\x94\x1d\x86A\xfd?`\xb8B\x0d\xc4/\x84\x1c\ +j,e\xc2')\xda\xc7\xe5 \x0b(\xa6pT\x03\ +\xfa\x10\x8a\xe9\x0az\x15\xe1o\x1f\x00\x98w*\x12\xb0\ +\xae>\xed\xf8\xc7\x86t\x091\xffO#\x06\x0dV\x8a\ +\xeb@7\x8e\xa7\xeb?\x84\xe3\x8f\xb1\xff{\xfd\xe3\xc3\ +__|\xbf\xa1\ +\x00\x00\x0a\xb1\ +\x00\ +\x000Hx\xda\xedZk\x8f\xdb\xc6\x15\xfd\xee_\xc1\ +*_l\x943\x9a\xf7C^9@\x13\x04\xc8\xd76\ +E?\x16\xb4D\xef\xaa\x96\xc8\x85\xc4\xf5\xda\xfe\xf59\ +w\xf8\x90DJ\xb1\x93\xb4@\xbd\xb6\x16\xb6\x86\xf3\xbc\ +s\xe6\xcc\xb9\xf7r\xf7\xe6\xfb\xf7\xbbm\xf6\xae\xdc\x1f\ +6u\xb5\x9cI.fYY\xad\xea\xf5\xa6\xba]\xce\ +\xfe\xf9\xcbO,\xcc\xb2CST\xebb[W\xe5r\ +V\xd5\xb3\xef_=\xbb\xf9\x0bc\xd9\x0f\xfb\xb2h\xca\ +u\xf6\xb8i\xee\xb2\x9f\xab\xb7\x87Uq_f\xcf\xef\ +\x9a\xe6~1\x9f?>>\xf2MW\xc9\xeb\xfd\xed\xfc\ +E\xc6\xd8\xabg\xcfn\x0e\xefn\x9feY\x86u\xab\ +\xc3b\xbdZ\xce\xba\x01\xf7\x0f\xfbm\xea\xb8^\xcd\xcb\ +m\xb9+\xab\xe60\x97\x5c\xceg\xc7\xee\xabc\xf7\x15\ +\xad\xbeyW\xae\xea\xdd\xae\xae\x0eidu\xf8\xee\xa4\ +\xf3~\xfdf\xe8M\xd6<\xea\xd4I\xc6\x18\xe7B\xcd\ +\x95b\xe8\xc1\x0e\x1f\xaa\xa6x\xcf\xce\x87\xc2\xc6KC\ +\x95\x10b\x8e\xb6c\xcf\xcf\xeb\xb58\x00\xd0{\xfc\x1b\ +\xba\xf7\x15\xfcP?\xecW\xe5\x1b\x8c+yU6\xf3\ +\x1f\x7f\xf9qhd\x82\xaf\x9b\xf5\xc94=\x9eg\xab\ +\x9e\x81\x5c\x15\xbb\xf2p_\xac\xca\xc3\xbc\xafO\xe3\x1f\ +7\xeb\xe6n93!=\xdd\x95\x9b\xdb\xbbfx|\ +\xb7)\x1f\xffV\xbf_\xceD&2\x13\xb8\xa0\x8f<\ +\x96R\xa7\xcdz9\xc3\xa6T;\xe2H\x98\xae\xb5[\ +l1\xb4\x08\x1e\x15\xd7\xd9se\x84\xb5\xc6\xe5\x99\x12\ +20\xa1\x99\x94/\xd2\x90~\x97\x8bu\xbd\x22\xb3\x97\ +\xb3\xdb\xfdf\xfd\xef\xcd\xaa\xae8\xa1\xf7\x0a\x9dn\xd6\ +\xe5\x9b\x03un\xd7\xa7'3\xcb\xe6\xa9i\x18O\x83\ +\xd7\xb4\x87c\xc7\xd7\xc5\xa1\xddw\x96\xdd\x17\xb7\xe0\xc8\ +\xb6\xde/g\xdf\xbdI\x9f\xae\xe1u\xbd_\x97\xfb\xbe\ +\xc9\xa5\xcfYS\x0d\x1c7\xcd\x87\xf6Vts\xf7\xdb\ +\xa4Y\x87vq\xb9\xfdpW\xac\xeb\xc7\xe5L\x8d\x1b\ +?\xd6\xf5\x8ef\xb5FE\x17\xc2\xb8y\x85\x93`\xd2\ +X.\xac\xb4r\xd2J\x06I\xc9ut\xde\x8c\x1b\x01\ +\xe5\x03]\x1c\xf6Pm\x1a\x90\xf3\xfe\xfdd\xf8\xc3~\ +O\x1d\xb6\xc5\x87\x12\xfbN_\xfd\x1a\x87\xbb\xfa\x91\xce\ +`9{Sl\x07\x00\xafN\xf5\xb8\xa9\xb0?\xd6Q\ +K\x86\xa9\xad]\x8f\x9enR({\xa5\x0b\xb6\xec\xe2\ +\x956lX\xf9+m\xbb\xe2\xfdf\xb7\xf9X\xc2f\ +\xd9\x13cW6\xc5\xbah\x8a#\x1d\xfa\x1a\x9fH\x85\ +.\xb8\xf8\x8b\xbf\xff\xf8S\xfb\x84\xe7\xd5j\xf1\xafz\ +\xff\xb6{\xc4\x87:\x14\xaf\xeb\x07X={5T\xdf\ +\xacW\x0b\x5c\xd5]\xd1\xbc\xda\xecp\xc2t\xcb\xff\x8a\ +\xaby3?6\x9cun>\xdc\x97\xc7I\xdbi\xf7\ +e{\xe7/\x0a\xdfz\xb5\xdb\xd0\xa0\xf9?\x9a\xcdv\ +\xfb3-\xd2m\xebd\xd2M\xb3-\x8f\x957\xf3\xce\ +\xfano\xf3\x93\xcd\xdd\xcc\xfb\xad\xa7\xa7\xdb\x11\x88\xdb\ +\xe2u\xb9]\xce~(\xee\x8blrx\xb7\xfb\xfa\xe1\ +~W\xaf\xcb\x8e%\xb3#\x9eg\xaci\xf6Eu\xa0\ +\xcd/g\xa9\xb8\x85Sx.r&\x850\x5c;\xa5\ +^\xf4\xa8\xdf\xf6\xdb\xa09n\x83\xd7\xb3\xbe\xe2\xe2\x1c\ +,\xe0\x0aH\xa1!\x1e\xcc(\x1eL\x08\xe1\xc50\xe4\ +\xd0|\xd8\xc2\xb4C\xb3\xaf\xdf\x96\x8b\xefb\xfa\xbcl\ +\x1fYw5\x17r8\xbc\x9br\xbb\xdd\xdc\x1fNN\ +c\x0f^\x19\x1e\x83w*\xccN\xaaAE\xcb\xa5\x91\ +\x22j\x7fR\x9f\xee\x9d\x90\x8aK\x1b\xcf\xea\xd1?B\ +(\x83\xd3\xea\xb4\x9e\xf6x_4wFjwR\xdd\ +\x99=\x18\xf8\xf2\x0d\xcey0\x9f\x1e\xd8y\x1b\xdb?\ +l\xcbE\xf9\xae\xac\xea\xf5\xfa\xe5\xe5\xed\xa6+\xb8\xb0\ +\xfd\xe3vS\x95\xff\xa97\xd5\x02'X\xf5c\x18\x88\ +U\xee\xb7\xb8-\xcd\xc2\xf4u\xeb\x02\x22\xb5\xdf\x17\x1f\ +\x16\x15\xbc\xfb\x14\xbd\x13\x96]\xc1\xcf\x04\xe9\x80\xd4\x08\ +@\xc3\x9d\x8cVX3\x01\xd0\x08.\x95\xd7#\x00\xa9\ +Vzc\xf4\x15\x00\x99|\xb2\x10Znb\xd4B\xd8\ +\x09\x07\x9d\x83\xa4\x8a)\x84\x10\x7fc\x83\x1bA\xa8#\ +wV*\xe5\xaeA\xf8tY\xe8\xb8\xf6\xce\x06\x1fG\ +\x10:n\xbd\xf2Q\xca)\x0b\x15\xb7R\x8fY\xe8\xb9\ +3N\xf8\xeb,TO\x98\x85\xdeXe\xce\xd8\xd3\xb2\ +0*\x04n\xd1N T\x1e\xa8\x9b8\x82PY\x0e\ +\x95\x0e\xee*\x0b\xc5S\x80\x90vs\xb2\x8d!\x10\x85\ +\xb3$\xe7\x8dhi\xb5:\x05`\x08\xbe\xea\xaa*W\ +M\xbdg\x08\xc3\xde\x15\xcd\xc3\x1e\xdb\x17\x17\xa1\xf2\xa7\ +\xa4\xa5\x10&\xc3\xb5wA\x89hr\xf8\xc4\x08\xbd\x0c\ +2\x93\x1aA\xa2B\x98\x98\xb3\xc8\x8d\x17\x17\x08:\xc5\ +\xf4\xb3A4\xa7 b\x03\xe7\x18\x0e\xc8&0\xbf \ +d\xf5\x04Y\x01\xd2*K\xc0\x02P\xc4\xd5\x8a\x80u\ +QK\x15sx|\x0fu\xf9\x06\xec\xa7\x81\xb5c`\ +u\xe0Z8\xadU\x8b\xac\xf3^f\x8cr\x17-\xad\ +\x95\x04\xadu\xd2}\x83\xf6\xd3\xd0\xfa1\xb4\x90_\x85\ +8J\x82\xa0BE\x1e\x11l\x93Bh\x1f\xb4\xf19\ +\xe4A\x85\xf8E\x03{3\xbf\xbd\x9c6\x04\xff\xdbi\ +\x03\x02wD\xf5\xce\xe8< }\x88\xc1\x98\x17\xb3+\ +g\xf5\xfb\x8f\x22\xa8\x89.+\xc5q\x10Q\x85<\xa5\ +\x07VD\x9bid\x09FY\x9bk\x88\x87\xd2\x99\xe4\ +A\xc7\x18d\x0e?+\x8c\xc9<\x12\x86h\xac\xcf\x19\ +\x06x'\xaf\x9cTB\xe8\xfa1\x05A?\xe7\xc7\xa4\ +?\xef\x98\xbe(o\x18T\xfc\x1c\xd0\x99G\xdafD\ +\x0c\xa0\xbf\x89\x22>!P\xff\x00fZ^\x92\x0c\x87\ +t\x8d\xfc\x9c\x92tGT\x86\xecC+$\xae\xb9\xe7\ +\x11\x92\x911d\xc4\xc29\x19\xc0T\xe1\xce\x92\x8f\xaf\ +\x11C\xfd9\xbc\x93\x5c\xea(4.\xb3\x86&\x0b\xfd\ +\xe4/\xf3\x9f\xbd\xcez\x12(H\x0b\x87\x15\x83&f\ +*z\xebl2\x8a\x0d\xbc5\x11\xcc\x0cJ\x99l\x95\ +1\x01\xf7\xa6\x82\xf7PU\xad\xbd\xcf\x04(j]\xae\ +8\xf8\xea\x10XPL\xecR\xb0\x01\xe1\xd7\xd9\x162\ +l\x85A\x0a\x082[%\xecWN\xe6I\x0c\xa1\x11\ +\xda\x02\xea(\xdb\x18\x22\xc4\x989b0\x5cln\xb8\ +0A\x13\x82QQD\xe1\xb8\xf0\xea+G\xd0\xe8\x0b\ +\x92\xea\xa3\x0e\x9e\x88\xab!\x9d6\x1a\xb0\x12\x91\xb0\xd2\ +D:\xa3\x82\xfd\xe6\xda\x7f\x1bS{!\x1b\xa3W\xa9\ +*\xb12\xc0?\x01S\xe6\xb8\x91\xc6\xc3\xa9\x03U'\ +\xe2W\xee\xdb\xcd4\x1dHd\x93IA%.1\x8a\ +\xf0\xed\x01\xc1&\xbd\x1bP\x1c.\x0bI-I\xabv\ +\x019\x03\xf7&\xa8\xaf\x1c\xc4IP\x89\x1b\xac\x90\xeb\ +'\xe6I\xc4\x90\xf8?\xa3\xac5F\x1b \x88V\x04\ +\x93\x19\x8e\xa4K\x07\x93\xe3\x9a#\xa6\xff\xe6\xeb?\x81\ +\xb2\xfd\x1c_\x8f\xa8\xd3D\x8f\xc4\x0dn\x06\xf7=\x03\ +a\xa54\xc8\xdc(.\x05T\x92z$\xdc\xa5Cp\ +\x0f\x86\xfb\xaf\x9b\xbb\xf6\xd2\xfb\x80\xe8\xa2$\xea\x1a\xc4\ +I\xc1G\xc4\xa5J9g\x15\xf2`\x19\x82{\xfaT\ +\xfd\x93\x9e\xc8\xb3\x89\x7f7\x9c\xd2ve\xdb\xf7W\xd2\ +j\x9b\x11U\xad\x0d\xc6\xc1\x13\x05\xeb\x02\x85L\xda\x18\ +%\x0c\x02\xd1\x18\xc5\x17\x9c\xcb_}\xe5\xe2\xc3\xf8\xd7\ +\xae\xbf\xf5\xa6\xfeS\xbf\x92\xbd\xf0\xf6fW4\xfb\xcd\ +\xfb\xe7\x021\x7f4\x11\xe1\xa7\xa0\x9f\xe1\x09\xe4v\xd6\ +\x04\xa1rC>\xcc\x00\xfe\xeb\xeft\xba\xf3T\x13\xdd\ +q\x1c\xf9\x84S\x94\x1fD\xc9\x8dA\x8a\xb0\xa2\xac\x01\ +7D\x90\xe4\xc0/bI\xa8\x8f\xe6\x11\xea\xc4\xadA\ +\x0a\xc1$\x9c\x82\xa5?\x83\xd19\x0b\x5cK\x8c\xa1_\ +V\xe6\xc8F\x8c\xa5b\xa0bT]\x11\x13g\x225\ +\x06JX\x84O\xad\x96\xca}\xf36\xc3\x9cR\x0cs\ +*\xb2CRWIY\x0fVFb\x8e\xf8;\xb4%\ +$;\x12\x06:r\xe3.\xd2\xb7\xa3\x15\xa8:KU\ +T\xc1R5\xeb\xfa\xb2\x94\x14E\xfa\xa6\xbe\xc9\x98d\ +K2%Y\xd2\x1a\xc2N,\xe9\x0ca\xc9\x12\x96\xe6\ +\xb6d0L`\xc9\x9a\xae\x8c5\x04\x1d\xac\xa7\x85,\ +oO\xd9w\x0b\x1e\x9fi\xe1dc2\xd1e\xa7-\ +\xc06`\xb4\x86\x92\x13<\xfdv\xdb\x05\x12<=\xe4\ +\x1d\xe2\x84\x1emC\xa5\x92C\x91\x12\xbeT\x94\xd4\x83\ +\x96B\x80C\x99 ]KM\xb1\x8fnK\xd4\x80\xb5\ +R\x05\xc1%\xbbbj\x14m\xce\x9ep\x94]\x1d;\ +i\xff\xf8\x87$\xe5\xbfpG\xae;\x8b\x9e\xdeS\xb1\ +b\x88\x96\xad\x8c!\x90\x5c\xb9\xc0\xbd\x0b!\xb15\x0a\ ++\x08(\xa5\xa4\x22\xaf`\x5c\x00\x81\xb1e\xaf\xe9\x99\ +\xc2lK\x09\x9f7\x944\x93\x7fvRir\xc68\ +\x05\x9b\xa6P\xd1\x09\xd4P\x0an\x1d\xe58N\xcbh\ +\xd3\xe1EE\xaf@\x04\x92\x9e\xf6&x\xc2\x15\x1e\xc8\ +:M\xcf\x98\x9b\xc8\x17\x90g\xb6\x97\xc1\x0a\x04\xf4\xb0\ +\x02\x13\x98v\x86\x10\x13\x159Fz\xc4\x00\x8c\x02X\ +\x15LKFc\x84\xc51\xd3L\xce\xa4\x93B\x1a \ +Ub\x8b0:\x10!\xbdN9+\xc5\xb9\x12[B\ +K\xc4D\xa2=p\x1bu\x9a\x87\x22\x8a\x9c\x12\x09\xa5\ +Z\x14\xbcG\x18Gw:\xb6,E\xa6K&\xb7\x83\ +\xb3\xd4Qj\x00\xd7\x0e\xb6Y\xea)\xb4JP\x1a\x1f\ +\xb2n\x19\xf0\xab\x1d\x9d\xb5\xab\xd0\xb4\xedhZ7\xad\ +c\xf348\xbd\xc2 `\x88\xcc\x09\x186 #\xba\ +\x97\x98\x032\x09\x18I\x07\xd2\x03\xd3\xe2\xd2\xaaE\x0b\ +\x0b\xf5J\xb0\xf4\xa8\x90n\x09\x0a\xa1:PB\x9e0\ +\xd1\x83\xad\xda\xe5\x1d&\xed\xae\xa4\x8c#c\xe9\xb7\x89\ +\x9d\xb5=(\xa4I\x09\x14\xd6\xa3\x22\xf3\x0e\x14\xd6\xa1\ +\x82-\xb1\x0e\x16\x22\x81\x11>\xaaT\xe3(}\xc3w\ +4\xd2\x05:\x10\x1f|\xaa\x91\x0a%\xfa\xd3\x1e\x8c\x02\ +\x85\x88\x01-\xf3\x90M\xb3D=\xdd\xde|\xc4\xe4!\ +\x10bZS\xacH\x1am\x9d#\xc4\x9c\x11I\x06\xa2\ +\xf52\xa9w\x14\xa4\x0b\x10\xae\xe0\xa2\xa64'J\xaf\ +\xc9j\xe4\xe31\xa9\x9e\xf6&\x19--r\xf4D\x22\ +\x5c\x8ad\x0fu\x05\x18i\xb4\xa7\x0a\xea*\x13e\xd0\ +3k;\xe2\xac\xdb\xc1:\x1bV\xe9\xc6f\xc3*\xdd\ +\xd8\xac[\xc5\xe7\xdd\x22\xff\x87j\xf2\xbb\xc3$\xe8\xce\ +\xd9_\x92\x0c\xca#\x9ct\xe4\xb2D\x84\xb3\xd6\xde\x9d\ +(\x0f\x1bK\x0f\x1bi\x0f\xbb >l\xaa>#\xf1\ +\x19i\xcfHz\xce\x95\xc7\x85\xfc\x5cyL\xc8\xc7\xca\ +\x83\xcbrIy&\xc23\xd1\x9d\x89\xec\x8cUg,\ +:c\xcd9\x97\x9c\xe1n\xf5Wk\xb8Y\xfd%\xee\ +t\xed(8\x9d\xae\x9d\x0a\x0e\x1b+\x0e\x9bH\x0e\x9b\ +h\x0e\x9b\x8a\x0e\x9b\xa8\x8e\x1f\xc4x\xa4\xc5'\xaa\xc3\ +F\xb2\x83\xe8\x98\x9d\xeb\x8e\x1a\xdbl\xe5`s\x07\x8c\ +\x19\xc4\x98\x0d\xd0\xb0\x91\xee\x98|\xa2:\x13\xd1\x99h\ +\xce%\xc9\x99(Nrv\xa7\x8a\x93\x9c\xd0\x99\xe4\xb4\ +\x0e\xef\x5cs\xd8Dt\xd8Du&\xa23\xd6\x9c\x91\ +\xe4\x8c\x15g,8\xe7z\xe3\x06U\xfb\xf8\xbf\x91\x91\ +.OH_7\xf47\xb0\xaf\x9e\xfd\x0a,nNV\ +\ +\x00\x00\x0b\x05\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0d\x0a \ - \x0d\ -\x0a \x0d\ -\x0a \x0d\x0a \x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x04V\ +ature=\x220\x22\x0a \ + style=\x22fill:non\ +e\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x04Q\ \x00\ -\x00+\xa6x\xda\xedZ\xdbn\xe36\x10}_`\xff\ -AU^\x12tE\x91\xd4\xc5\x92je\x816X`\ -_\xdb-\xfa\xcc\x88\xb4\xad\x8d$\x1a\x14\x1d\xc7\xfb\xf5\ -;\x94us\xe2\x14i\x03\x08\x01\x22\x01A\xcc3C\ -rxf\xc8c\x0a^~~(\x0b\xeb^\xa8:\x97\ -Uj\x13\x84mKT\x99\xe4y\xb5N\xed\xbf\xbf}\ -q\x22\xdb\xaa5\xab8+d%R\xbb\x92\xf6\xe7\xeb\ -\x8f\x1f\x96\xbf8\x8e\xf5\x87\x12L\x0bn\xeds\xbd\xb1\ -\xbeVwu\xc6\xb6\xc2\xba\xdch\xbdM\x5cw\xbf\xdf\ -\xa3\xbc\x05\x91Tk\xf7\xcar\x1c\xe8\x0a\x9d\xeb\xfb\xf5\ -\xc7\x0f\x96e\xc1\xdcU\x9d\xf0,\xb5\xdb>\xdb\x9d*\ -\x1a_\x9e\xb9\xa2\x10\xa5\xa8t\xed\x12D\x5c{\xe4\x9f\ -\x0d\xfe\x99\x89 \xbf\x17\x99,KY\xd5M\xd7\xaa\xbe\ -\x18{+\xbe\xea\xddMH{\xaf\xf1\x22q\x1c\xbb\x98\ -\xba\x94:\xe0\xe1\xd4\x87J\xb3\x07\xe7Q_\x88\xf3\x5c\ -_\x8a1v\xc16r}\xa1[R\x03\xb3[\xf8\xeb\ -\xfd;\x00\xd5r\xa72\xb1\x82\x8e\x02UB\xbb7\xdf\ -nz\xa3\x83\x11\xd7|\x08\x8cb\x8a\x02\xeb\x92\xe2\x10\x8b\x8c\xac\ -\xe2\xd5'\x8bb\x8a\x1d\xec;8\xba\xb2\xafM\xbfe\ -)4\xe3L\xb3f\x90c\xc0\x1d\x14\x1d]\xc0\x09\xf2\ -\x98\xfcy\xf3\xa5m\x02\x90e\xc9?R\xddumx\ -\x8c\x0b\xbb\x95;X\x8e}=\xe0K\x9e%\xc0|\xc9\ -\xf4u^\xb2\xb50Y\xfb\x15\x88^\xba\x83\xe1\xd4[\ -\x1f\xb6b4\xeeqd%\x8eI<[\xce<+s\ -\xd3\xcb\xfdK\xe7E\xf1\xd5Lc[\xee\xe3as]\ -\x88\x11\xbat\xdb5tkt\xc7\x8b\x5c\xba\x1d\x09\xc7\ -&\x17\xabz\xc4\x90i\x86\xdd\x1c\xcb>7&1\xdc\ -\xe4\xb0u\xddB$\x99,\xa4J\xed\x8bU\xf3\xd8\xad\ -\xe5V*.Tg\x0b\x9b\xe7\xd4&\xa1\xc0`UP\ -\x1c\x1d.o\xbf\x8bLkY\x08\xc5*C\x05\xc1\x9d\ -i\xad\xa0\xb2\xce\x1av9\x17g-}\xbd\x98 \xfb\ -\xc9\xce\x9b\xeb\x0d\xe3r\x9f\xda\xf4\x89u\x9fW`q\ -\xba\xc2\x8e\xfc\xe89\x97\xbe\xd61\x19|\x80\xca\x9e3\ -\xbfC\xeb\x8d\xdc\x9b\x05\xa5\xf6\x8a\x15\xb5x2\xe0\x0f\ -)K\x88\x05\xf9A\xe4\xc1\xf3\xc4\x9e\xc1\xfeq\x08E\ -q\xec\x07\x1eyj\x86e\xc6!\xa2a\xe4\xf9\xe4\xb9\ -ha\x88\xc5\xb3\xab\x85\x01h\xf0\x9c\xb1d\x0fy\x99\ -\xff\x10|\x94\xb9a\xee\x9dRp\xf0:\x05;\x08\xd5\ -\x9e\x0c]\x15\xadG\xa4\xacc\xaf\xcf\x84\x86\xd4\xd5f\ -\xa7\xa4v\xf3\xb1\x00a\xb8$(&\x01\x0dH\xb7\x8d\ -\xcd\x1e\x85\xe2\xe8K^\x1d\x9aC(\xc6a\xcf\x8fe\ -\x19,Fa\xec\xc7\xc4\x1f\xd0\x87\x06%$\x0a\xfd\x91\ -o\x97.\x8a\x07\xac\xcd\xf2\x182\xc1\x9a\x89#B\x07\ -\xb0\xd6\x87\x02j\xad-\xaa\x84\xfc\xb6\x82m\x99\x5c\xc4\ -\xcd\xd34\x9c\xc1Vk%\xefDR\x81\x04\xb6\x9f\x8f\ -\xd5\x94xh\xb1\x88\x03\xba\x08\xc3\x0e/\xf2J\x00\x8d\ -\x89\x92\xbb\x8a\x8f\xc1\xef2\xafNQ8\x10\x84* \ -\x11:\xf1;\x8c3\xa8csh\x9eL6D\xb2e\ -9\xa4\xa6\xd9|I\xc9\xd4\x1d\x9c\xa3\xd6\xd1\xc921\ -\x0fG\xcak\xa8\x0e(\xa2\x86\xeb\xe85T;\xdeL\ -\xf6K\xc8\x8e\x02\xe4\xe1\x00G\xfe\xeb\xc8v\xc2\x99\xee\ -\x17\x1d#$B^\x1c\x0dg\xee\xff\xa4{1\xd3\xfd\ -\x22\xba\x03\x82\x00\x0c\xbcW\xd2\x1d\xbc\x17\xba\x97\xee\xfa\ -Tj\xff]Z?y\x1e\xf2\x82 \xf6\xbc+\xfb\x91\ -6;\xf1\x9b\x91]g\x16\xde)\x85w\xa6{b\xe9\ -u\xa2\x99\xf0I\xc5\x17\xce\xb6\x99\xf0)\xe5\xf7\xfd|\ -\xdf\xf9\xaf\x02\x1c\x86h\xd1(\xe4S\x01\xf6\xde\x8e\x00\ -\xcf\xb7\x83I\x05\x98\xcctO+\xc0\xf37\x9e\xa9\x05\ -x~\xbd3\xb1\x02\x93Y\x81\xcf+0\xc1\x18\xe1p\ -\x11\x9d\xb9\x01\xfboG\x81\xe7\x17F\x93*\xf0|#\ -\x9bX\x81\xfd\x99\xf0i\x158\x98\x09\x9fV\x80\xf1,\ -\xc0\xcf\x08\xb0\xe7!\x9fz\x8b3\xef\xa0\xbd\xf0\xed(\ -\xf0|)\x9bT\x81\xf1L\xf7\xb4\x0a<\xbf\xe3\x99X\ -\x81\xe7+\xf0\xc4\x0aL\xdf\x97\x02/\xcd\x0f\x11\xe1\xff\ -O\x84\x93\xbf\xc0\ -\x00\x00\x0e\xc9\ +\x00*\x95x\xda\xedZ]o\xa38\x14}\xcf\xaf`\ +\xe9K\xab\x1d\x8c\xcdW\x80\x85\x8c\xb4[\x8d4\xaf\xbb\ +3\x9ag\x17;\x09S\xc0\x91q\x9af~\xfd^\x13\ +>\x92&\xdd\xeev$\xb6R\xb1T)>\xf7\xda\xbe\ +>\xf7\xda\x07P\x93\x8f\x8fea\ +\x8f|g\x1e\x04\x1d^\xe4\x15\x07\xeeb)\xb6\x15;\ +\x06\xbf\x8b\xbc:E\xe1\xacsY\x00\xf9*\xf6:\x8c\ +Q\xa8X}\x0d\x9e,6D\xb2\xa19\xe4\xa39a\ +qI\xe5=\x5c\x8d\xc6\xc1\xc9\xd01\xf7\xb7\xc5\xab)\ +\xf6\x1d\xe4h\x8e\xc3WSl\xb9\x13\xc9/\x90\x1c\xfa\ +\xc8\xc5>\x0e\xbd\x9f \xd9\x0a&\x9a_\xba.H\x88\ +\xdc(\xec\xef\xd3W\xd1<\x9fh~\x89f\x9f \xc0\ +|\xf7gh\xf6\xdf\x07\xcd\x89\xbd:\x96\xcf\x7f\xd6\xcb\ +\x0f\xae\x8b\x5c\xdf\x8f\x5c\xf7\xc6<\x95[+\xfa\xff\xa5\ +\xd4\x9a\xc4t\x0c1\x9dh\x1eIN\xadp\x22z\x14\ +A\x85\xcbk\x22z\x0cI}/\xcf.\xffMT\x83\ +\x00\xcd\x1b\xe9;\x13U\xf7\x0d\x88\xea\xf4T?\x8a\xa8\ +\x92\x89\xe6qDuzz\x19KT\xa7\xcf.#\xa9\ +*\x99T\xf5\x5cU\x09\xc6\x08\x07\xf3\xf0\xfcM\xd5{\ +\x03\xaa:}\xc4\x19EU\xa77\xa8\x91T\xd5\x9b\x88\ +\x1eGU\xfd\x89\xe8qD\x15O\xa2zAT]\x17\ +y\x8e;?\xff\xfe\xeb\x06o@U\xa7\x97\xa8QT\ +\x15O4\x8f\xa3\xaa\xd3\xb7\x97\x91TuzU\x1dI\ +U\x9dw\xa4\xaa\x89\xfe\x7f\xbc\xc5\xeco-U\xb1\xe3\ +\ +\x00\x00\x0ee\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \ + \x0d\x0a \ -\x0d\x0a\ - \ -\x0d\x0a \x0d\x0a \x0d\x0a\ - \x0d\ -\x0a \x0d\x0a \x0a \ + \x0a <\ +rect\x0a st\ +yle=\x22fill:#99999\ +9;stroke:none;st\ +roke-width:2;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:round;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;paint-order:ma\ +rkers stroke fil\ +l;fill-opacity:1\ +\x22\x0a id=\x22r\ +ect846-5-0\x22\x0a \ + width=\x2270.5\ +59952\x22\x0a \ +height=\x2223.64993\ +3\x22\x0a x=\x22-\ +341.26895\x22\x0a \ + y=\x22-172.0720\ +2\x22 />\x0a \x0a \ + \x0a \ + \x0d\x0a \ - \x0d\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09U\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a <\ -g\x0d\x0a id=\x22g831\ -\x22\x0d\x0a style=\x22s\ -troke:#37c8ab;st\ -roke-width:21;st\ +nejoin:miter;str\ +oke-miterlimit:4\ +;stroke-dasharra\ +y:none;stroke-op\ +acity:1;fill-opa\ +city:1\x22\x0a \ + sodipodi:nodety\ +pes=\x22cc\x22 />\x0a \ + \x0d\x0a <\ -path\x0d\x0a ink\ -scape:connector-\ -curvature=\x220\x22\x0d\x0a \ - id=\x22path81\ -2\x22\x0d\x0a d=\x22M \ -59.837063,61.191\ -958 134.85037,13\ -5.42536\x22\x0d\x0a \ - style=\x22fill:non\ -e;fill-rule:even\ -odd;stroke:#ff80\ -80;stroke-width:\ -15.57077312;stro\ -ke-linecap:round\ -;stroke-linejoin\ -:miter;stroke-mi\ -terlimit:4;strok\ -e-dasharray:none\ -;stroke-opacity:\ -1\x22\x0d\x0a sodip\ -odi:nodetypes=\x22c\ -c\x22 />\x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x83\ -\x00\ -\x00\x85\xa0x\xda\xed]\xebn\xe3\xc6\x15\xfe_ \xef\ -@h\x7fd\x8d\x8a\xd4\xdc/Zk\x83\xb6A\x9a\x00\ -\x09\x0a4\x9b6\xed\x9f\x80&)YYI\x14H\xda\ -\xb2\xf7\xb5\xfa\x1e}\xa6\x9e\xa1x\x95H\xd9\xd6\x8eQ\ -`E!\x17\xf1\xccp.\xe7\x9bs\xf944\xe7\xfa\ -\x9b\x87\xf5\xca\xb9\x8f\x92t\x19of#\xec\xa1\x91\x13\ -m\x828\x5cn\x16\xb3\xd1/\x1f\xbes\xd5\xc8I3\ -\x7f\x13\xfa\xabx\x13\xcdF\x9bx\xf4\xcd\xfb\xaf\xfep\ -\x9d\xde/\xbe\xfa\x83\xe38\xbbe\x98\xdd\xceFL\x8d\ -\xf2\xcb\xdbh\xb9\xb8\xcd\xea\xeb\xfbe\xb4\xfbs\xfc0\ -\x1b!\x079L9\xa5|\x19\xceF\xd0\x04)j\xd5\ -\xfd\xe3\xa2|\xf31\x0d\xfcm4m\x16y\xc4y\x8b\ -|\x84\x829\xa7T\x8f\x1d\x82\x08q\x11\xfc\xc3\xae\xf6\ -w\xa50\xee-\xfc;\x0d\xe3`\xe3\xafa\xb8q\x16\ -\xce\x7f\xcbR\x0f\xfa\xdaW\x81\xe9n\xd2i\xd9\xfcl\ -t\x9be\xdb\xe9d\xb2\xdb\xed\xbcR\xe8\xc5\xc9bb\ -nO\xb7~\x10\xa5\x93R\xdel\xa0\xec\xa9j\xa0\x14\ -xi|\x97\x04\xd1\x1c\xda\x88\xbcM\x94M\xbe\xfd\xf0\ -mU\xe8\x22/\xcc\xc2f;\x0f+h\xbd5\x8a\x1d\ -\xcd\xfb\xc7Z\xebI^\xda\xa8\xdeU\x91 \x84&\x07\ -\xd3\x83\xcb\xe7VM\xc2yo\xf7\x88L@\xc1P\xc3\ -M\x1f7\x99\xff\xe0n\xd27\xcd{\x83\xa0\xba5H\ -\x22?[\xdeGA\xbc^\xc7\x9bt\xaf\xc2v\xed\xb0\ -\xae\xbd\xbdKVy\x950\x98D\xabh\x1dm\xb2t\ -\x02\x00OF\xef\xcd\x0d\xd7\xeb(\xf3C?\xf3\xf3\xbb\ -\xf7\x8b\xa5\x14a\xb2\xaf\x03\xb5``\xd3\xbf\x7f\xfb]\ -q\x09\x82 \x98\xfe3N>\x96\xd7\xf01U\xfc\x9b\ -\xf8\x0eV\xe4\xe8}-\xbf\x0e\x83) \xb4\xf6\xb3\xf7\ -\xcb\xb5\xbf\x88\x8cR\xfe\x08\xa3\xbc\x9e\xd4\x05\xed\xda\xd9\ -\xe36j\xb4\xbbo9\x89\xf6`w\xce+\x0c\xd6K\ -s\xd7\xe4\xe7l\xb9Z\xfd`\xba\x199\x93z\xb0\x93\ -b\xb4\xe5l&\xcd\xe9\x5cO\xca\xf9\xee/\xc3h\x9e\ -6\x94a.1\xaa\x14\x01\xab$\xf2\x93\xbf&~\xb8\ -\x04MV\xc3\xacl(\x88W\xab(\x00\x1d\xf8\xab\x9d\ -\xff\x98\x8e\xea\x1a\xd0V\xfbfL4\xa95u\x9df\ -\xf1\xb61\xed4{\x5c\xc1l\x8d\xd4\x85F\xe3d\xfa\ -&\x08\x10\x9a\xcf\xdf\xe5\xa2\x18\xec\x05\xe6<\xc5\xa3\xc6\ -=\xf1|\x9eF\xd07j\x0as\xf3\x87[0Q\xaa\ -\xa5\x15\x8b\x1d\xe2\xee\x0e5\xaa;\xbc\x9e\xb4g_\x8a\ -\xd7~\xf21J\x8e\x15\x09-\x04\x1fMS\x7fJ\x92\ -x\x87\x7f\x04\xc7\x98du7qb\x1a\x015\xdfe\ -q-M\xa2\xf9\xbf`\xfa\x1ej\x89~=\x10\xf5\xb7\ -Z\xe8 \x06O8_\xc5\xbb\xe9\xfd2]\xde\xac\xa2\ -\xd1\xf1\xf0\x96i>\xc0\xd9(K\xee\xa2\x06\x8a[?\ -\xbb=\xd0\x85\x111\xaeUSG \xfe\xc9\x81A\x8d\ -\xe1_\xe7G\x87\xc37\x97\xe7_]L<\xde\x10\xef\ -\xa5e\xd5O\xce\xe8\x18\xb29,z7\xb9[E\xd3\ -\xe8>\xda\xc4a\x08\x88%\xf1\xc7h\xfa\x06\xe5\x9f\xe2\ -\xd2\xcd\xe3\xc7\x14\xe2\xce6k\xb6\x92%\xfe&5\x96\ -\x08\xb0\x05\xfe*z\x8b\xbc\x05l\x10E\x94\xc81\xa8x\x0cW\x92)0\ -\xc81\xe4d\x84\x08\x84\x04&c\x97z\x18S\xcc\x18\ -\xad<\x0b\xa4\x04\x10l\xf7_+\x832\xc9ahR\ -\xdb\xa2\xdf-\x04\xf7<<\x81\xfa\xe6\xf9\xa7\x1c\xd1M\ -\x9c\x84QR\x96\x89\xfc\xd3.+bX#^\xc57\ -\xbf\x03JY\xbc\x8a`\x12&\xbb\xc0\x95a,\x12X\ -g\x9d\x05w\xcb0\xea,\xa9\xcd\x1e\x06Yu\xd6]\ -\x9c\xde\xfaa\xbc\x9b\x8d\xc8Q\xe9n\xb9\x81\x12\xb7\xc8\ -\xf6\x09\xd3\xbc\xafJ\xc9\x000\xc2\xd5L\xcd\xb2\xa9t\ -V\x81\x9a\xde\xc6;3!\xb02\x7fU\x83X5\xf8\ -)\x8e\xd7f9i\x8c\x19W\xe2\xa8<\x007\xe82\ -0#\xaa\x10g\xc7\xc50M*<\xaa\x94b\xa2o\ -\xb4\xd0\x84\xe8\x9d\x0a4@d_\xe1\xda\x7fX\xae\x97\ -\x9f\xa2\xb0\x81\x5c\xdd\xf7]\x92\xc0*tW\xfec\x94\ -4\x99\xce\x81\xc2\x83\xdb(\x00\x03\xbe\x89\xfd$4\xa0\ -\x94\x8bnQT\xf6\x93\xa5\x0f\x8d\xdcD\xab\xd9\xe8\xbf\ -\xff\xa9\x14W\xf8\xa6\x18z\xc8\xbfO7&g]\xbd\ -\xcb%\xbb\x1c\x80\x96(\x85qNASZ@\xf8\xa2\ -Rm\x1f\xde\x19+.\xb0\x02\xb7E\xf8\xbe\xe2\xdc_\ -/W\x8f\xd3\x14\x8c\xc7\x05\x0b[\xce\xdf\xad\xa2,\x8b\ -\x12\xd7P!\xa0\x84S\x04\xb7\xee`\xdd\xb6\x04\xc6I\ -N\xdf\x84\x0c!\xce\xf3\x8b:1+\xdd\xe5\x06\xc8\xe3\ -\x91\xaf\x94\x0cST\xdb\xbeY\x09Y\xf4\x90)\xc0\xba\ -ti-Gnh\x80C\xa9\x87`\x16b\x8c\xb9'\ -0\x04W\xe9\xdc:.\xf3H>9ge\xbe3\xa1\ -\xa8\xa2\xa6\x06\x16B\x12\xe7/\x0e\x81\xd8\xad\xb5\xc2t\ -L\xa4\x87\x14\x91J\x1b\x19&\x12\xeb\xbc)\x8a\xc17\ -8Xy\x98QBq-\x0a\x1c\x97@\xa8EJ\xaa\ -1r\xc0CH*\xb5dc\xeaQ\xa4(!\x0d\x91\ -\xf0\xa4R\x1c1\x18\x10\xf2\x04cL*\xb8\x1dAE\ -$\xb9\x1cC;\x5cJ\x8d\xa9\x83!\x91\xd0\x12\x06c\ -\xeeUHS\x18\x8c\xc74\xd6\xaa)b0P,4\ -D\x09\x88\x10\x84a\xc9a\xa4\xd8\xd3\x08S\xc1A\x04\ -\xc9\x08\xf4`F\x8a\x14\x92\xda\x01O\xc6$\x11\x18D\ -P\x1d\xa6\x0bc\x03-S\x0cJ\x18\x97\xed\x1b\x114\ -\x05\xaeo\x5cu\x047r\xcc\xb9\x22p\xa3\xa0D\xc0\ -\xb0A$%\xa5\xd2\xd4\xc2R3\x22\x1a\x22P6F\ -\x5cc\x07\xd57\xc0\x84\x95\x04\xc7\x09\x1di@\x87r\ -\x98\x11T\x220\xfc\xa6\x84)\x18 L\xa8R)(\ -\x05am&T\x8b\x0a0\x09\xb4\x0f\xa3U\x1a1\x91\ -\x0f\x922\xc8rr/\xad\x11L\x85\x19\x99@\x98\x1b\ -E\x82\x12\x84V\x9a;\x9f\x8e\xf2\x94\x1e;\xb97\xc6\ -\xb5\xc9\x9e\xb4\x9d,\x89\xb2\xe0\xb6%+\xcc\xe4\xeb\x9f\ -?\xfc\xf0\xab\xf3\x13,\xd1\xaf\xdf\xb9\xa5]\xbb\xfb\xbb\ - \xb5\x5c\xce\x97\x01\x90\xe2x\xd3\xaa\xb87\x96\x82\xc5\ -t\x1aK\xaf\x81\xd4\x99\x80\xa6\xb5\xaf\x98,\xda>#\ -;\x0a}\xc8\xc3\x0a\x16#e*\x8f}\xe6\x12#\x04\ -\xb0\x8d])`\xa1j\xa2\xe1\xabY\xfb\x84\x12\xa5\xaf\ -\x9a\x06\xb9\xc0\x00\xbf[\x1bd\x02\xa1\xe9(\x11\xac&\ -\xb0\x9f\x1c\xe7\x08\x85\xac\xc7\x13\x94\xa5\xad\xb9\x82Mk\ -\xcd\xa1\xf3Jn\xfc\x13\xa8s\x9a\xc4w\x9b\xb0)\xfc\ -=^n\xa67\x90\x8d\xadJ)\xf0\xec(Y\x813\ -\xce\xa6\xd5\xed\xa1\x0f\xb1,I\xfc\xc7\x96\xe71\xd2=\ -=\x9cV\x99[=\xc0\xad\xbf\x04\xe4\xf2\xa0<\xdd\x17\ -:f\x0a\xce>\xc9:\xa0\xcdF\x0f\x0a3W6\x12\ -\x9d\x22:b\x08Y\xc8\xac\xd9\xba\xa4\x0a\x8aE\x91l\ -\xa4A\xb3\x91\xa1\x06R*\xd1HwL>\xc0\xb5\xc7\ -\x89\x89]u\xc27h\xbf\xad}\x0a\xe9\xf0g\xab\x9f\ -\x94\xfa?R?\x03L\xf4\xa0\xfe^\xf5\x0b\xd7\xc2\xea\ -g\xbd\xea\x17\x0c7\x7f\x1e\x1a\xd4\x7f\xe8{\x5c\xf1\xf9\ -\xea\x17{\xf5\xeb\xc1\xf7\xbcP\xfb\xdc%\xda\x82\xef\xef\ -S\xbf\xe4\x90<\x0d\xea\xefw\xfd\xdc\xc5\xe4\xf3\xf5\x8f\ -\xd1\xb0\xfe\xcft\xfe\xc4\x95\x16\xf4_F\xdfA\xff/\ -\xd4\xbfv\x91\x05\xff\x83\xd9\xa0\xffs\xf5\x8f]j!\ -\x00c\xd1\x87\xc0\x10\x02N#@\x5c\xf4j\xe4\x8bj\ -\xcf\xfc0=\x18\xc0)\xf2\x05\x09(y5\xfee\x10\ -`lX\xff\xa7\xe8\x17r\x05~5\x06\x06\x00\x10\xad\ -\x07\x06v\x92\x81iWIk$L\x91\xc1\x09\xbd\x98\ -\x85Q\xd7\x1e\x0d\xeb\x00\x80aJ\x07\xfd\x9f\xa2a\xc2\ -\xb5\xc8\xc3\x860|\x06\x0fC6\x12\xa1\x1e&6 \ -\xf0\x0c&`\xc7\x04\xd8\x00\xc0\xf9T\x8c\xb8T\xbe\x1a\ -\x19\x1b\xe2\xc0\x93\x10\x10\xd7\xcaN\x18\xa3XK\xce\xda\ -\xea\xc7\xcaS\x0a\x93\xc1\x04N\x911b#\x0f\x22\x05\ -\x02\x1d\x00P-\x062v\x8a\x8c)\x1bA\x80\x15\x00\ -\x88#\x00\xb46u_\x06\x80\x9c\x13\xbf\xef1\x83\xaa\ -\xf4\xcb\xe1b\xd2\x06\x02\xa2\x17\x81s|\xd0%!\x00\ -\x5c\x0c\xac\xc0\x0a\x19\xebD\x00\x12!\xa4\x90\x1a\x108\ -\xb9)f#\x0c\x186f P\x83\x0d\xbc\x9c\x8dY\ -\xdb\x17\x1b\x108\x8f\x0ch\x1bO\x05a6\x00\xf0\x19\ -\x1bc\xae\xa5\x9d\xb1.\x08\xce\x8b\x03\x97\xb53\x86]\ -\xfcZtL+\x8fSM\x04\x1e\x008\xb97\xa6]\ -\xf2Z\x84\x0c `ZJ\xc4\x06\x08N\xee\x8e1\x1b\ -\xc9P7%\x03\x08\x04'B\xea!\x12\x9c\xdc\x1e\x93\ -6\x82q\x11\x08\x84\xb6\xe2\x88.\x8c\x93\xb9\xcaJ,\ -\xe8\x83@\x0a\x81\xf4@\xca\x9e\xd8\x22c\xafG\xcb\x06\ -3x\xe6&\x19w\xd9k\x11\xb3\x01\x83\xe7m\x93!\ -+\xdc\x98\x0d\x10|\xd6F\x99\x8d\x1f\xe9\xba\xc9\xd9\xb9\ -\xf1\xe0\xa2\x12Sl\xc3\x0f)\x0f\xc3G\x12\xd9\xd2\xbf\ -\x041\xd5\x0c\x93A\xff'\xb8\x19\xb2\xb1WIJ\x04\ -\x0e\x01@Z*&\x07\x00N03a\xe3\x81\x15\xd6\ -\x07\x00\xe1D\xd1!\x0c\x9c\xe2e\xd4\x12+\xcb\x01\x10\ -V\x5c\xd0e\xb12b\xe3\x07R\xd5\x07\x00\x15\x82\xbc\ -\xf8\xd1i\xd0%\xef\x07\xa0(\xfdr8\x19\xb2\xc1\x8a\ -\x0d#3\x10(+&pI\x08\x00#\x13\xb6\x1e[\ -\x1c\x108\x93\x0cp+\xdb4E \x16\x03\x02g\xd0\ -1ne\xb3R\xf4\x18\xc1Y\x81\xe0\xb2v\xca\x98\x8d\ -m\x9an6\xc6\xa5g^\x0cD\x86\x9d\xb2\xd3;e\ -\xd2F \xe8\xe6c\x06\x02\xce\x15\x1f\x9e\x1d}\xe2\xef\ -\xc8lD\x02\xd6\x07\x81\x86<\x89\x0e;e\xa7w\xca\ -\xb8\x8d\x84\xb4\x08\x04\x07\x7f\xcez\xae#\xba\xb4\x9d2\ -+/\xb4Q\xdd\x10(\x0f\x11F\xb8\x1a\xf2\xa1\xd3;\ -e\xda\x06\x06%/\x13V\xcc\xe0\xc2x\x19\x02K`\ -\xf6\x98\xd9\x80\xc19;e\xd2\xd6N\xd9\x00\xc1\xf9;\ -e\xcc\xd6c\x8c\xc7\xe4\xec\xdcxpQ\x7f\xdcm\xe5\ -\x8f\xca\xccjGT\xa2\xf6\x93+Tz\xd4<\xda8\ -p\xb3S\xdc\xcc\xca\x0fD\xa4@\x00\x1f\x01\xc0\xb9y\ -\xacn\x00\xa0\x9f\x99\xd9y\x82\xb1\x0f\x00\x8e\x91\x1e\x1e\ -e?E\xcb\xec<\xbeX\xe8\x9f[\xf1@\x97E\xca\ -\x98\x8d\x19\xb3\ -\xc1\x8aU\x1f\x04D\x11\xaa\x07J\xf0\xc4>\x19\xb5\xf2\ -\xf4\x1c\xeaJ\x88\xce5\x83\x8b\xdb'\xc3v^\xf5a\ -\x13\x83\xcb\xe2\x05\xe6\x07R\xf5Z\xd4\xec\x5c\x08\x82\xc0\ -?\x11\x0d\x8a\xd2/j\x9fL\xdb\xd9'\xeb\x01\xa1\x1d\ -\x0f\x8e\x0e<\xcb\x8f)c\x98W\xee\xb0\xeb\x044\x85\ -0`\x89Hq\x02\x9aT\xdc\x9c G\xc7\xae\x94\x9e\ -bX2\x91\x9f\x80\xa69C\x14_U\xc7\x9d-\xaa\ -\xa14\x1am\x1c\x1c\xeb!$$1\xc7\xf6\x11\xee)\ -%\x89\xd6WmE\xc1\xc8X\xf35\x0d\x8bv\xa9n\ -N7\xeb:\xb54?3\xb4:\xb5\xb4\xb8r\xa9Y\ -\x9b\xe6\xb5\xa0\xe6\x88<\xc9 \xcf\x16\xf4\xaaq\x02\xee\ -\xe2\xe0\xfc\xd8\x85f\xb8\xe7\x80\xe5\xc6t\x90\x06\x16\xc0\ -)\x1d\x13\xf3\x8e\x15B$\xbbj\x9d\x9b\xbeh\x9d\x81\ -\xde\xa5gM%\xd3Z\xcbB\xcf\xd5\xa5+\x99G@\ -S\x9c\x83\xaa\xa49\x17\x99\x1a=\xb7\xda\xab\x80\xac\xcf\ -\x9b\xeb\xec\xb7\xac\xc9A\xb1\xef\xdb%\x87'\xff\x1e\x1e\ -\xa0K\xd1\xe8\xa8t\x7fH\xef\x189\xdf;L9\xff\ -0\xff\xf9\xdeA\xce\xbf\x8fk6N\xd2\xdd\x80yf\ -q\xe2\x06w\xc9\xbd\x9f\xdd%\xd1\xc1\x09\xe7G\xa7\x08\ -\xe7\x86\xd8<\xeb|\x7f\x82\xef\xe2\xf4D\xcfYu\x07\ -k\xcf%G\xbdv\xabS`\xde\xdcl\xea_\x92`\ -IHb^B\xac)\xd3J\xe0\xfc(G\x22%\x96\ -\xe6\x10H\xae0!\x08\x1f\x0d\xab:\xd1\xbd\x8b \xd6\ -\xe7\xb9\xb7F\xdc\xd4R\xfd\xbd\xf2\x03\xe5\xff\x1b\xae9\ -1\x8e\xc3#L\x0b\xce\xaa\xf0\x002\x86=J)\xa9\ -\x0fnz\xc8\xcf+V\x1c\xc6Ze\xb4\xa5\x97\xe2\x1e\ -\x95\x14\xe1\xfa\xfd\xee\x85c\xa3\xcc\xd3\x12\xd2V\xdc<\ -'\xd1t\xce\xb8\x16\xf53|M\xec!\xf71\x9f\xfe\ -\xcc(/m\x85\x04s\xda\xa6B\x12|\xec\xf3BB\ -K\xfa\xfc\x90\xd0\xed\xfe\x0b\x97\xbf\xf7\xff\xfb\x9a\x95\xfb\ -=R3\x87\xb5\xc0\xe9\x81\x9a1\xd1\x98\xa8\x96\x9a\xa9\ - H\xd4\xaa\xaf\xd5\xac\x00'Y?\x1eQ\x1e2\x0c\ -w\x80\xfaQ\xb7\x9ai\xfd\x8blS\xd1w\xc9\xea\xed\ -\xf1\x09\xd6\xec\xea\xd9\xc7\xd2\x82\xda\x11\xa3\x8a\xfe\x1f\x94\ -\xbe?at\xaf\xe7\xebIzo\x96\xf5\xff\x00\xa5\x8f\ -&^\ -\x00\x00\x0d\x0a\ +ay:none;stroke-o\ +pacity:1;fill-op\ +acity:1\x22\x0a \ + sodipodi:nodet\ +ypes=\x22cc\x22 />\x0a \ + \x0a \x0a\x0a\ +\x00\x00\x09\x10\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/sv\ -g+xml\x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a\ + \ +\x0a \x0a\ + \x0a \ +\x0a \x0a \x0a \x0a \ +\x0a \x0a\x0a\ +\x00\x00\x0do\ +\x00\ +\x00\x82\xfbx\xda\xed]\xe9\x8e\xe3\xc6\x11\xfe\xef\xa7 \ +\xb4?\xbc\x83\x88T\xdf\x87v\xb4F\x92\x85\x0f\xc0F\ +\x80x\x9d8\xf9cpHJC\xaf$\x0a$5\x9a\ +\xd9\xd7\xca{\xe4\x99RM\xf1\x94HyF\xd4 \xc0\ +\x8a\xc2\x1ed\xf5\xfdu\xf5\xd7Uj\x8au\xfb\xcd\xe3\ +ji=\x04q\x12F\xeb\xd9\x08;hd\x05k/\ +\xf2\xc3\xf5b6\xfa\xe5\xe3\xb7\xb6\x1aYI\xea\xae}\ +w\x19\xad\x83\xd9h\x1d\x8d\xbey\xff\xd5m\xf2\xb0\xf8\ +\xca\xb2\xac]\xe8\xa7\xf7\xb3\x11S#sw\x1f\x84\x8b\ +\xfb\xb4\xbc}\x08\x83\xdd_\xa2\xc7\xd9\x08Y\xc8b\xca\ +\xca\xc5\xa1?\x1bAq\xb2\xcfS\xb5\x8c\xf7\xa9\xebO\ +\x89\xe7n\x82i=\xc5!\xd6[\xe4\x22\xe4\xcd9\xa5\ +zl\x11D\x88\x8d\xe0\x0f\xbb\xc9\x0a%\xd0\xdf\x0d\xfc\ +\x9d\xfa\x91\xb7vW\xd0\xcd(\xf5\xe7\xbf\xa5\x89\x03\x0d\ +e9`\x94\xebdZT>\x1b\xdd\xa7\xe9f:\x99\ +\xecv;\xa7\x10:Q\xbc\x98\x98\xd2\xc9\xc6\xf5\x82d\ +R\xc8k\xe5\x8bv\xca\xf2\x85\xc0I\xa2m\xec\x05s\ +\xa8\x22p\xd6A:\xf9\xf0\xf1C\x99h#\xc7O\xfd\ +Z5\x8fK\xa8\xbb\xd1\x87\x1d\xcdZ\xc7Z\xebI\x96\ +Z\xe5n\xcbG\x10B\x93\xe6\xd0\xe0\xee\x999c\x7f\ +\xde\xd96\x22\x13@\x16r\xd8\xc9\xd3:u\x1f\xedu\ +\xf2\xa6V\xd4\xf3\xca\x92^\x1c\xb8i\xf8\x10x\xd1j\ +\x15\xad\x93=x\x8d\xcc~\x95y\xb3\x8d\x97Y\x0e\xdf\ +\x9b\x04\xcb`\x15\xac\xd3d\x02\xf3:\x19\xbd\x87\xfc\xb7\ +\xab u}7uM\xd9\xbd~\x14\x12L\xb2\x1c\x90\ +\x07\xfa4\xfd\xfb\x87o\xf7wp\xefy\xd3\x7fF\xf1\ +\xa7\xfc\x16>&\x83{\x17mA\xffF\xefK\xf1\xad\ +\xefMaVVn\xfa>\x5c\xb9\x8b\xc0`\xf1'\xe8\ +\xdf\xed\xa4JhdN\x9f6AU\xe9\xbe\xda8\xd8\ +Oo\xebx|o\x15\x9aB\x93\x9f\xd3p\xb9\xfc\xc1\ +42\xb2&e?'yG\xf3aLj\xe3\xb8\x9d\ +\x14\xc3\xcc\xee\xfc`\x9eT\x08\x98;\x8c\x8a\xd1\x83J\ +\x04n\xfc]\xec\xfa!`W\xf4\xaf\x5c+^\xb4\x5c\ +\x06\x1e\x8c\xdc]\xee\xdc\xa7dTf\x80\x8a\x9aE1\ +\xd1\xa4\x84\xe76I\xa3M5\xd8$}Z\xc2\x18\x8d\ +\xd0\x86\x1a\xa3x\xfa\xc6\xf3\x10\x9a\xcf\xdfe\xa2\x08\x96\ +\x05\x8ct\x8aGU\x91h>O\x02h\x17\xd5d\xd9\ +\xfa\x86\x02\x98(UG\xe2b\x8d\xe1\xd6\xc64*\x1b\ +\xbb\x9d4\x07\x9dKWn\xfc)\x88\x8f\xc0\x83\xe2\xde\ +'S\xcf\x9f\xe38\xda\xe1\x1f\x81\xed\xe2\xb4l\x22\x8a\ +M\x0d\x80\xec6\x8dJa\x1c\xcc\xff\x05\x83vP]\ +\xf2kS\xd2Yc>\xf2\x08\x08n\xbe\x8cv\xd3\x87\ +0\x09\xef\x96\xc1\xe8\xa8ca\x92um6J\xe3m\ +PM\xda\xc6M\xef\x9b\x00\x18\x09\xe3Z\xd5p\x01\xe9\ +O\x16tg\x0c\x7f\xad\x1f-\x0eW6\xcf.mL\ +\x1c^\x13\xef\xa5E\xd6\xcf\xd6\xe8h\x8e\xe6\xa0\xd7v\ +\xbc]\x06\xd3\xe0!XG\xbe\x0fS\x14G\x9f\x82\xe9\ +\x1b\x94}\xf2[;\xdb\x0c\xa6\xb0\x85l\xd2Z%i\ +\xec\xae\x13\xb3\xd2`\xa2\xc8\x01\xc8\xde}\xe0\xc1\x02\xbd\ +\x8b\xdc\xd87\xf3\x90\xab\xd7b\x9f\xd5\x8dC\x17j\xb8\ +\x0b\x96\xb3\xd1\x7f\xffS\xa0\x95\xb3N\x04\xb5g\xd7\xd3\ +\xb51-\x97\xef2\xc9.\xc3\xbc!J\xa0\x8bS\x00\ +H\x0b\xd8\x89\xa8T\x9b\xc7wf\x99\xe6\xd3\x03\x84D\ +\xf8>\xe3\xdc]\x85\xcb\xa7i\x02k\xc4\x86u\x14\xce\ +\xdf-\x834\x0db\xdb8)\xe0\xa3M\x11\x14\xdd\x81\ +\x8e6\x04\x86\xfe\xa6o|\x86\x10\xe7\xd9MeO\x15\ +D\xb8\x06o\xee\x88\x05%\xc3\x14\x95\xeb\xdb\xcc~\x1a\ +<\xa6\x0a&8\xa7\xab:=\x1b3\xdd\xa2\xd4A0\ +\x041\xc6\xdc\x11\x18vIi\xdd[6sH62\ +ki\xae\x99PTQ\x93\x03\x0b!\x89\xf5W\x8b\xc0\ +\x1e\xac\xb5\xc2tL\xa4\x83\x14\x91J\x1b\x19&\x12\xeb\ +\xac*\x8aa\xfd[X9\x98QBq%\xf2,\x9b\ +\xc0\xae\x89\x94Tcd\x01\x0bH*\xb5dc\xeaP\ +\xa4(!5\x91p\xa4R\x1c1\xe8\x10r\x04cL\ +*(\x8e #\x92\x5c\x8e\xa1\x1e.\xa5\xc6\xd4\xc2`\ +\x10h\x09\x9d1e\x15\xd2\x14:\xe30\x8d\xb5\xaa\x8b\ +\x18t\x14\x0b\x0d\xec\x0f\xccO\x18\x96\x1cz\x8a\x1d\x8d\ +0\x15\x1cD`T@\x0b\xa6\xa7H!\xa9-`+\ +&\x89\xc0 \x82\xec0\x5c\xe8\x1b@L1\x800.\ +\xea7\x22\xa8\x0a\xe8m\x5c6\x04\x059\xe6\x5c\x11(\ +((\x11\xd0m\x10II\xa94\xb9\xb0\xd4\x8c\x88\x9a\ +\x08\xc0\xc6\x88kl\xa1\xaa\x00\x0cXI GhH\ +\xc3\xecP\x0e#\x82L\x04\xba_\x970\x05\x1d\x84\x01\ +\x95\x90\x02(\x08k3\xa0J\x94O&\x81\xfa\xa1\xb7\ +J#&\xb2NR\x06\x06K\xc6\xc4\x1a\xc1P\x98\x91\ +\x09\x84\xb9\x01\x12@\x10Zin}>\xb4::\xd6\ +\xc8\x83YW\xeb\xf4\x0f\xd7M\x1a\x07\xa9w\xdf\x90\xe5\ +K\xe4\xeb\x9f?\xfe\xf0\xab\xf5\x13(\xe8\xd7\xef\xecb\ +A\xdb\xfbR` \x86\xf3\xd0\x03\x875Z72\xee\ +\x17J\xeex\xb4.\x94\xae\xc5Qm\xf0\x9a\x96\x1c1\ +Y\xd4\xa9\x22=\xda\xd9\x90\x83\x15\xe8!e*\xdb\xda\ +\xcc-F\x08fllK\x01:\xaa\x89\x86K\xa3\xf6\ +\x84\x12\xa5oj\x0bq\x81a\xe2\xedr!\xc6\xb0\xfb\ +\x1c\xdase\xcf\xf7\xa3\xe2\x1c!\x9fu,\xff\x22\xb5\ +1HX\xcbZsh\xb9\x94\x1bR\x02\x1c\xa7q\xb4\ +]\xfbu\xe1\xefQ\xb8\x9e\xde\x81q\xb5,\xa4\xe0\x05\ +\x07\xf1\x12\xc87\x9d\x96\xc5}\x17v\xac8v\x9f\x1a\ +tc\xa4{_nZ\x1abU\x077n\x08S\x96\ +\xed\xba\xd3}\xa2e\x86`\xed\xcd\xa6\xa6okPP\ +\x98\xd9\xb22_\xf2-\x10\xc3\xde\x84\x8c\xa6\x96\x09\xe5\ +\xce\x97\xa7\xc8\xca\xb6\x99\x8d\x8c]/\xa5\x12\x95\x11c\ +\xf6z\xae\x1dN\xcc\x1eU\x1ao\x03\xecu\xd8)\xd8\ +\xb5\xfdp'\x05\xf0\x87\xb83\x98\x0b=\xe0\xde\x8e\xbb\ +\xb0\xfb\xea;\xeb\xc2]0\x5c\xfb\xd6f\xc0\xbdI3\ +\xb6\xe8\x89\xbb\xd8\xe3\xae\x07\x9ay\x01\xec\xdc&\xba/\ +\xbfw\xe0.9\xd8D\x03\xee\x1d\xf4\xcemLz\x02\ +\x8f\xd1\xa0\xf1g\x10<\xb1e_\xe0\x8b\xadu\x00\xfe\ +\x05\xc0k\x1b\xf5\xa5\x1a\xcc\x06\xe0\xcf\x01\x1e\xdb\xb4\xef\ +\xee\x8aE\x07\xf4\x03\xcd\x9f\x80\x9e\xd8\xe8U\xbc'\xaa\ +\x1d\xf3m\xf1\xa0\xf2\x9d\xde\x13\xd8\x93\xe4U\x1c(\x03\ +=c\x83\xc6w\xfaO\xc8\x16\xf8U\x5c(@\x9eh\ +=\xb8P\xdd.\x94\xb6\x95\xbc\x8c\x17\xa5\xc8\xc07/\ +r\xa3\xa8}!?\xea\x18y\x86)\x1d\x80\xef\xf4\xa3\ +\x84})Gj\xd8c_\xe8H\xa1\xde\xe6M\xbb+\ +5@\xffG\x16\xfd\x05\x94\x9e\x0d\xc8\x9f\xe7K\x11\x9b\ +\xcaW\xf1\xa6\x06\xae?\x8d=\xb1\xfb\x9fE1\x8a\xb5\ +\xe4\xac\x81;V\x8eR\x98\x0cJ\xdf\xe9M\x91\xde\xd6\ +\x0d\xc9\xa1?F\x9ej1xS\x9d\xde\x94\xeaM\xf4\ +,G^\x1c\x22\xaf\xb5\xc9\xf9\x12\xe4\xe5\x9c\xb8]\x87\ +\xf9e\xea\x17\xe3L\xc9\xde\xd0\x8b.\xe8_N7W\ +\x04=8S\xa0\xf7\xfd\xbd\xa96\xe8\xc1\xbcA\x0a\xa9\ +\x01\xfa\xeec\xa9\xdeTo\xdc)\x83\xbd\x1a\xb4\xfee\ +\xee\xd4eN\xa6\x06\xe8_n\xd4\xeb\xdeO\xdb`6\ + \x7f\xe6\xd1\x94}\x89\xb3\xa9\x16\xec\xcf\xe1\xfa\xab:\ +\x9b\xc26~\x0d\x7fJ+\x87SM\x04\x1e\x90\xef>\ +\x9d\xd26y\x0d\x8f\x0a\xb0gZJ\xc4\x06\xec\xbb\xcf\ +\xa7Xo\x13\xa7\xd5\xa7\x02\xec\x05'B\xea\x81\xed\xbb\ +\x0f\xa8d\xef\x9d6'{\xa1\xfbs\xceu9U\xb6\ +\xea\xcf\xf7\x1d\xd8K!\x90\x1e\xbc\xaaS\x87T\xecu\ +\xfc\xaaA\xf1\x9fsL\xc5m\xf6\x1a\x9e\xd5\x00\xfe3\ +\x0e\xaaP\x7f\xaf\x96\x0d\xd8\x9f}T\xd5\xfb\x9b\xb4V\ +\xef\xea<\xce\xbf&;\x13\xf7\xa6\x1c\xe5`\xf8H\x22\ +\xeb\xc0K\x90R\xcd0\x19\x80\xefr\xaeP\xefcB\ +R@\x7f\x80<\xd2R19 \xdf\xe5Z\x89\xde\xcf\ +\x83\xb0\x0e\xe4\x09'\x8a\x0eT\xdf\xe9X\xd1K\xb8U\ +\x19\xf2\xa2?\xdb\x5c\x95[Ez\x7f}\xa9:\x90\xa7\ +B\x90\x17>h\x0c \xf2n\xe4\xf3\xd4/\xc6\xa9B\ +\xbd\xfdY\xe3R\x19\xecU\x7f\xa5\xbf\x22\xe8\xc1\xa5\x12\ +\x17y\xf2o\x80\xfe\x0c\xa3\x9e\xf7?/\xc9wY1\ +@\xffB\x7f\x8a\xf7?'\x14\xedj\x7f\x06\xd9_\xd5\ +Y\x15\xeb}^\xd2\xeaNq\xe9\x98\x17\xda\x90\xe1\xac\ +\xea\xc4Y\x95\xecM\xf6\xad\x0e\x95\xc1\x9es\xc5\x87\xe7\ +.O\xfd\x96\xaa7\xdb\xb3\x0e\xec5\x18?t8\xab\ +:qV\xc5{\xdb\x979\xd97\x7f\xbdy\x1e\xe7\x5c\ +\xd9YU\xff\xf7\xb0\xa8V\xec\x95\x83\x08#\x5c\x0dV\ +\xce\x89\xb3*\xdd\x1b\xfc\xc2\xb1\x12\xfd\x15\xff\xba\x1c+\ +\x04\xba\xcf.\xe4Z\x0d\xe0\xbf\xf4\xacJ^\xe4\xacj\ +\xc0\xfe\xbc\xb3*v\x91'\x01\x8f\xbc\xab\xf38\xff\x9a\ +~\xbd\xdc\xff\x87UF\xc1\x11\x95\xa8\xf1`\x08\x95\x0e\ +5\x0f\x07\x0e\xceU\xa7s\xd5\xff\xcb\x1c\x92C\x8f\x0f\ +\x91\xe7\xdc<\x9f6 \xdf\xe1Z]\xe0!\xc0\x0e\xe4\ +9Fzx\xe2\xbb\xd3\xaf\xba\xc0\x13\x809\xf0\xbc?\ +\xd9\x5c\x95W\xc5z[7\xaa\x03yA\x18\x95\x83O\ +\xd5\xedS\xb1\xfeF=\xca\xb1\xef\xaf\xf4\xd7\xe5Q\xd1\ +\xfe\xce,\xb9\x18\xf4wT\xa1n\xe8\xf3\xd4/\xe6}\ +\x7f\x17xI\xc5\x1ey1 \xffBoJ\xf6\xd7z\ +\xd1\x8e\xfd\x19\x5c\x7fU'U\xaa7\xd5\xb7:SX\ +:\x88\xc3gx=\xc8\xa9w\xfe\xf5\xb6pZ\xdd)\ +\x83=\xa6\xc3\xab\xe7N\x9eT\xf5\xd7{\xd6\x81=\x16\ +J\xcb\xe1\x11\xb4S\xaf\xfd\xeb\x8d}A\xf6\xb2?\xe7\ +\x5c\xd9I\x15\xeb\xed\xcf\xaa\x0e\xec\x89\x22T\x0f\xa6\xfd\ +\xa9\x93*\xda\xff94\xd4b\xe6\x9c\xa7\xf8\xd7vR\ +\x85/\xf0\xbe\x8a\x8b\x81\x7fU\xf6\xbd\xf9\xfaR\xbd\x86\ +ou\x1e\xf6\x9e\xe7\x9e`\xfc<\xf5K:\xa9\xd2\x17\ +8\xa9jG\xbf\xc1\xf9\x07A\xaf\xb2XU\x0c\xf3\x82\ +\xf2\xda\x82`)\x84a\x02\x11\xc9\x83`I\xc5M\xfc\ +0:\xb6\xa5t\x14\xc3\x92\x89,\x08\x96\xe6\x0cQ|\ +S\x84\xbcZ|u\x1c\x15\xb4\x16\x0a\xd4AHHb\ +B\xb6\x11\xee(%\x89\xd67\x0dt\xa0W\xac\xf6\xca\ +\x81E#M\xd7\x06\x99\xb6E\xa4\xccbB\x96\x11)\ +\xf3;\x9b\x1aU4\xef\xa24\xa1\xd1$\x03sY\xd0\ +\x9b*\x9a\xe9\xa2\x19\x0et\xa1\x19n\x8f\x8c[\x1b\x07\ +\xd2`\xc7sJ\xc7\xc4\xbc\x1b\x84\x10\xc9n\xea\xf1\xac\ +\x17\xf5\xe0\xd4m\xe0j*\x99\xd6Z\xe6\xe0\x96\xb7\xb6\ +d\x0e\x01\x808\x07\x84\xa4\x89iK\x0d\xb8\xf5\xea\xca\ +\xb9+\xe3\x8c\xb55Z\xe4\xe3\x80\xe6\xfbF\xc2A\xf4\ +\xd6\xc38\xa8\x14\x8d\x0e\x13\xf7\x91V\xc7\xc8\xfa\xde\x04\ +\x88\xff\x87\xf9\xe7{\x0bY\xff>\xcaX\x8b\x88\xba\x86\ +5\x98F\xb1\xedm\xe3\x077\xdd\xc6A3\xfc\xf4Q\ +\x1c\xd8l\xb1\xd5\x02Q\xef\xa3\xb0.N\x0d\xf0\x0c\x0d\ +;\xd03\x9b\x1c\xb6\xd8\x8a\xa1\xc0\xbcv\xc4\xd3\xad~\ +\xb0^\x90\xc4\xbc\x98SM\x99V\x02g\xe1\xfa\x88\x94\ +X\x9a@\x7f\x5caB\x10>\xecR\x19h\xbb\xcd\xa5\ +\xab\xc2l\xd7{[C\xa7\xbc,\x96y\xfe_E\xb8\ +\xb1\xe1\x04\x870-8+\xe8\x1eD\x0c;\x94RR\ +F\xeey\xcc\x22\xcd*\x0e],L\xd1\x82{\xb8C\ +%E\xb8|-xNV\x949Z\x82\xc1\x89kQ\ +\xf0L\xb3\x8ckQ>\xf4V\x9fg\xb0^\xcc\xa7\xdb\ +\xb6\xc9R\x1b\x14o\x82(*$\x814\x9fG\xf1\x0d\ +\xe9\xf3)\xbe\x9d\xces\x0a\xdf\xf3\xf9>g\xc1\xa9\x87\ +\xf0r\x98|N\x9b\xf0b\xa21Qux\xa9 H\ +\x94\x88W\xf0*\x98\x1cY>oP\x04\x89\x85\xfc\x80\ +:j\x85\x97\x96\xdf\x8a\xd6\x01\xde\xc6\xcb\xb7\xc7\xd1\x86\ +\xd9\xcd\xb3C\x8c\x02\xdc\x88QE\xff\x0f`\xef#F\ +f\xf8\xdeN\x92\x07\xd0\xe2\xff\x01R3\x03\xfd\ +\x00\x00\x0c\xb1\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \ -\x0d\x0a \x0d\x0a \x0a\ + \x0a \xce\xb7\ -\x0d\ -\x0a \x0d\x0a \x0d\x0a\ - \ -\x0d\x0a \x0a\ + \x0a \x0a \xce\xb7\ -\x0d\x0a \x0d\ -\x0a\x0d\x0a\ -\x00\x00\x0a\x95\ +ily:sans-serif;l\ +etter-spacing:0p\ +x;word-spacing:0\ +px;fill:#0088aa;\ +fill-opacity:1;s\ +troke:none;strok\ +e-width:0.982808\ +\x22\x0a id=\x22g6094\ +3\x22\x0a transfor\ +m=\x22translate(-10\ +9.2077,-9.468178\ +2)\x22>\x0a \ +\xce\xb7\x0a \x0a\x0a\ +\ +\x00\x00\x0aB\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ -\x0d\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0a \ +\x0a \ + \x0a \ + \x0a image/svg+\ +xml\x0a\ + \x0a \x0a \ +\x0a <\ +/rdf:RDF>\x0a \x0a \x0a \x0a <\ +ellipse\x0a i\ +d=\x22path12-3\x22\x0a \ + cx=\x2230.65420\ +5\x22\x0a cy=\x2210\ +29.3185\x22\x0a \ +rx=\x2214.376685\x22\x0a \ + ry=\x2213.796\ +513\x22\x0a styl\ +e=\x22fill:none;str\ +oke:#999999;stro\ +ke-width:3.31116\ +295;stroke-miter\ +limit:4;stroke-d\ +asharray:none;st\ +roke-opacity:1\x22 \ +/>\x0a <\ +tspan\x0a s\ +odipodi:role=\x22li\ +ne\x22\x0a id=\ +\x22tspan837\x22\x0a \ + x=\x2219.404564\ +\x22\x0a y=\x2210\ +36.9392\x22\x0a \ style=\x22stroke-\ width:0.45910597\ \x22>?\x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x08\xed\ +t>\x0a \x0a\ +\x0a\ +\x00\x00\x08\xa8\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ +\x0a \x0a \x0a\ + \x0a image/s\ +vg+xml\x0a \x0a \x0a \x0a \x0a \ +\x0a \x0a \x0a \ + \x0a \x0a \x0a\ +\x0a\ +\x00\x00\x0b(\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - \ -image/svg+xml\x0d\x0a \ - \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \x0a \ + \x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0a \x0a\ + \x0a\ + \x0d\x0a\ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0bw\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a d=\x22M0\ - 0h48v48h-48z\x22\x0d\x0a\ - id=\x22path2\x22\x0d\ -\x0a fill=\x22none\ -\x22 />\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -path\x0d\x0a sodip\ -odi:nodetypes=\x22c\ -c\x22\x0d\x0a inkscap\ -e:connector-curv\ -ature=\x220\x22\x0d\x0a \ -id=\x22path812-3\x22\x0d\x0a\ - d=\x22M 25.553\ -478,18.109299 9.\ -9652983,18.12775\ -9\x22\x0d\x0a style=\x22\ -fill:#37c8ab;fil\ -l-rule:evenodd;s\ -troke:#aeaeae;st\ -roke-width:3.125\ -64;stroke-lineca\ -p:round;stroke-l\ -inejoin:miter;st\ -roke-miterlimit:\ -4;stroke-dasharr\ -ay:none;stroke-o\ -pacity:1\x22 />\x0d\x0a\x0d\x0a\ -\x00\x00\x06\xfd\ +0\x22\x0a sodipodi\ +:nodetypes=\x22cc\x22 \ +/>\x0a \x0a \x0a\ +\x0a\ +\x00\x00\x06\xc2\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a\ - image/svg+xml\ -\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + im\ +age/svg+xml\x0a \ +\x0a \ + \x0a \x0a \x0a \x0a\ + \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\x87\ +x=\x22-82.372882\x22\x0a \ + inkscape:cy=\ +\x2224\x22\x0a inksca\ +pe:window-x=\x2269\x22\ +\x0a inkscape:w\ +indow-y=\x2227\x22\x0a \ + inkscape:windo\ +w-maximized=\x221\x22\x0a\ + inkscape:cu\ +rrent-layer=\x22svg\ +4\x22 />\x0a \x0a\ +\x0a\ +\x00\x00\x0d;\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \ -\x0d\x0a \ - \x0d\x0a image/svg+\ -xml\x0d\ -\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a \x0a \x0a \x0a \ + i\ +mage/svg+xml\x0a \ + \x0a \ + \x0a \ + \x0a \ +\x0a \x0a \x0d\x0a \ - \x0a \ +\x0a \ +\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xa8\ +0\x22\x0a id=\x22pa\ +th812\x22\x0a d=\ +\x22M 59.837063,61.\ +191958 134.85037\ +,135.42536\x22\x0a \ + style=\x22fill:#\ +ff0000;fill-rule\ +:evenodd;stroke:\ +#ff8080;stroke-w\ +idth:15.5708;str\ +oke-linecap:roun\ +d;stroke-linejoi\ +n:miter;stroke-m\ +iterlimit:4;stro\ +ke-dasharray:non\ +e;stroke-opacity\ +:1\x22\x0a sodip\ +odi:nodetypes=\x22c\ +c\x22 />\x0a \x0a \x0a\x0a\ +\x00\x00\x07n\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0a\x0a \x0a \x0a \x0a \ + imag\ +e/svg+xml\x0a \x0a \ + \x0a \ +\x0a \x0a \x0a \x0d\x0a \x0d\x0a \x0d\x0a<\ -/svg>\x0d\x0a\ -\x00\x00\x0e\x1e\ -<\ -?xml version=\x221.\ -0\x22 encoding=\x22UTF\ --8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/s\ -vg+xml\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a <\ -/metadata>\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a <\ -/g>\x0d\x0a\x0d\x0a\ -\x00\x00\x09$\ +4\x22 />\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\xd1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0a \ + \x0a \ +\x0a \x0a <\ +/g>\x0a \x0a \x0a \x0a \x0a\x0a\ +\ +\x00\x00\x08\xdf\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0d\x0a \x0d\x0a \x0d\x0a <\ -cc:Work\x0d\x0a \ - rdf:about=\x22\x22>\x0d\ -\x0a image/svg+xm\ -l\x0d\x0a \ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a \ -\x0d\x0a <\ -defs\x0d\x0a id=\x22d\ -efs6\x22 />\x0d\x0a \x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a\ - \x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x0d\xd9\ +x=\x2257\x22\x0a inks\ +cape:window-y=\x222\ +7\x22\x0a inkscape\ +:window-maximize\ +d=\x221\x22\x0a inksc\ +ape:current-laye\ +r=\x22g831\x22 />\x0a \x0a \ +\x0a \x0a\ + \x0a\x0a\ +\x00\x00\x0d\x92\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ - image/svg+xml<\ -/dc:format>\x0d\x0a \ - \x0d\x0a \x0d\x0a \ -\x0d\x0a \ -\x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a \x0a \x0a \ + ima\ +ge/svg+xml\x0a <\ +dc:type\x0a \ + rdf:resource=\ +\x22http://purl.org\ +/dc/dcmitype/Sti\ +llImage\x22 />\x0a \ + \ +\x0a \x0a \ +\x0a \x0a \ + \x0a \x0d\x0a \x0a \x0a\ + \x0a \ + \x0a \x0d\x0a \x0d\x0a \x0d\ -\x0a \x0d\x0a\ -\x0d\x0a\ -\x00\x00\x09h\ +\x0a sodipodi\ +:role=\x22line\x22\x0a \ + id=\x22tspan452\ +2-0-3\x22\x0a x=\ +\x22-48.97916\x22\x0a \ + y=\x2264.775017\x22\ +\x0a style=\x22f\ +ont-style:normal\ +;font-variant:no\ +rmal;font-weight\ +:normal;font-str\ +etch:normal;font\ +-family:sans-ser\ +if;-inkscape-fon\ +t-specification:\ +sans-serif;fill:\ +#216778;fill-opa\ +city:1;stroke-wi\ +dth:0.77554256\x22 \ +/>\x0a\ +\x0a\ +\x00\x00\x09^\ \x00\ -\x00Qox\xda\xed\x9cY\x8f\xdb8\x12\x80\xdf\x03\xe4\ -?\x08\xcaK\x82\xb5h\xde\x87\xa7\xdd\x83]\x04\x83Y\ -`\xf6ew\xf6|Y\xa8%\xb6[\xd3\xb6dHr\ -\xbb\x93_\xbfE\xf9\x92Mvbe3@\x80\xc8}\ -\xc0&i\x1e\x1f\x8b\xc5\x22\x8b\xe2\xcd\x8f\xcf\xabe\xf4\ -d\xeb\xa6\xa8\xcayL\x10\x8e#[fU^\x94\x8b\ -y\xfc\xf7_\x7fJt\x1c5mZ\xe6\xe9\xb2*\xed\ -<.\xab\xf8\xc7\xdb\xd7\xafn\x9a\xa7\xc5\xebWQ\x14\ -m\x8b\xbc}\x98\xc7\x5c\xc7\xdd\xc7\x07[,\x1e\xda\xd3\ -\xe7\xa7\xc2n\xffT=\xcfc\x1c\xe1\x88\xeb\xe8\x10^\ -\xe4\xf3\x18\xb2\xa0\xfbT\xa7\xf2\xc9>\xbe|l\xb2t\ -mg\xfd(D\xa3\xb78\xc58\xbb\x17\x8c\x99ID\ -1\xa5\x09\x86_\xfen\xf7\xad\x06\xea\xbd\x86\xbfY^\ -ee\xba\x82\xeaf\xcbM\xd3\xda\x1aZ\xf3\xdfMc\ -\x11\x14\xb9K\x09\xad\x9e5\xeb4\x83$\xeb\xda6\xb6\ -~\xb2\xc7\x88\xb2\x99\x1d\x8a\x9f\xc7\x0fm\xbb\x9eM\xa7\ -\xdb\xed\x16\x1d\x02QU/\xa6.\xfb.\x83fz\x08\ -\xefgp\xa8\xc91\x83C\x00j\xaaM\x9d\xd9{\xc8\ -\xc3\xa2\xd2\xb6\xd3\xf7\xbf\xbe?F&\x18\xe5m\xde\xcb\ -\xe7\xac\xfc-\xebJ\xa6\x18\xe3i\xbf!\xae\xb8\xa7\xc5\ -\xb5I\xeb\xfc>\x94\x94\x18c\xa6\x98N\x81(\xa4H\ -\x9a\x0fe\x9b>'e\xf3\xa6\xff\xdd,;~5\xab\ -m\xda\x16O6\xabV\xab\xaalvL\xceS\xe7\xa7\ -\xd4\xebM\xbd\xec\x92\xe4\xd9\xd4.\xed\xca\x96m3\x85\ -\x1e\x9d\xc6\xb77+\xdb\xa6y\xda\xa6\xdd7w\x92q\ -\x08\x22\x14\xe2\xa1:\xb3\xbf\xbe\xff\xe9\xf6&\xcbf\xff\ -\xac\xea\xc7}:\xf7rQ\xe9]\xb5\x01\x81\x83\x84y\ -6\x03\xac\xab\xb4\xbd-V\xe9\xc2\xba\x86\xff\x01jr\ -3=E\xb84\xed\x87\xb5\xed\xe5\xb1\xcb\x05d\xa0\xeb\ -\x97`\x8d\xf3lU\xb8oM\xff\xd6\x16\xcb\xe5\x9f]\ -\xe6q4\xbd\xbd\x99\xeek\x04\xef\x8e\x95\x9c\x1e\xea\x0e\ -e\xd9\xfb\xa6\xd7(\xf7\x91`\xd7\xe0\xb4~\xb4\xf5\xb1\ -\x0aGQo\xda*{t)\xffX\xd7\xd5\x96\xfc\x02\ -\xc3\xaen\xe3c\xba\xaa.\x00\xdbM\x97\x8d\xf52\xfcX\ -U\xd0K\x1cQ%1'\xca\x8b\xcf`NI(G\ -J\x1b\xaa\x89\x1f\x0d\xcdd\x1a\x19\xa6t v_[\ -\xc8B\xbc\xd8\x14\xc8\x80\xaa\x97\x22W\xe9s\xb1*>\ -\xda\xbc\xd7s\xa7\xb27u\x0d#5Y\xa6\x1f,t\ -\xfc\x82\x13\xe1\x13w\xed\xff4\xf5N\xae\x1el\x06B\ -xW\xa5u\x1e\xea\xb7\xdc6\x8f\x07\xf9\xca\x89\xfb\xe9\ -dw\xd1C\xbf+\xfe\x14v\x08\x15\x9c\x9f\x86Fo\ -`\x9cFCB\x90\x90F\x13\xc2\xde}j\xb83\xec\ -\x0f\xf7\x09\x8e~v\xd3\xfd?\xdc\xbf\x9fa\xea\xffO\ -?\xcd\x89TU\x96 \xedU\x9d\x00\xb3\xa7\xb4\xdd\xd4\ -\xb6\xd7\xca\x8bq?+\xc1\x00\xd9\x0d\xcdE\xbf9\xc1\ -\xba\xc3\xd0\xc7RQ\xcd&\x09\x15HkE\x8dy\x17\ -_ \x80\xa0\x8fk\x1fN)\x0e\x92\x81\x09\xa4.\ -\x9eAg(.\x95dRM\xb0\xfb\xe9}D \xab\ -Zp\xe3\xdeji\x04Q\x1d:\xbb\x5c\x16\xeb\xc6\xbe\ -\xd0\xac74\x13i\x8a\x7f\xe8t\xdb~\x8c\xce\xc8A\ -\xb1\xb9F\x9fk5\x81\x043X\x1c\x02\x97\x05 L\ -\xd7\xb3\xba\xda\x94y?\xf0\xb7\xaa(\xcfCa\x16\xb3\ -\xf5\x12\x04\xb7\x9d\xf1CX\x9e\x82\x04\xd6u\xfa\xe1\xac\ -\xa4S5\xd6i\x01\xa2\xdc)\xab\xd9N#6\xd1.\ -Q\xe4*\x1c\x07DBs\x9aH*\xfbQn\xb4R\ -\x8d\xa8\xa6\x8c\xb3\xb3\x08\x18f\x06a)\x05\x13\xfd\xf0\ -\xfa\xd9Y|Rq\xc3\xb5:\x8bp\xca\x12)\x86\x09\ -h!\xd7y\xdf!\x5c\x96\x90K\xb8\x0c\x04\xce\x10F\ -\xc5%\x5c\x8d\x08H'\x91z\xa4{\xad\xe8&:@\ -WP\xa5\xb1\xba\xa4K\xc0R\xe1\x02~G\xbaW\xd2\ -U\x89\xf2\xe8R\xc4`\x1a\xd1\xcaW\x0c0I1#\ -\xf9H\xf7J\xba\x221\x01\xb5k\x04\x15\x9ax\xb2\x0b\ -\xb0\x8cbD\x8dt\xaf\xd5\xbb\x22\xa1\x01\xd5 \xb96\ -\xdaS\xbc\x84!\xa286r\xc4{\xb5\xcd\x90`\x0f\ -/CXQNt@z9%\x9a\x91\x11\xef\x95x\ -M@x\x05\xe2Fh\xc1\xc6y\xed\xff\xa5K\x12\x16\ -\x98\xd78\x18\xb6\x01\xba\x1ciL(\x1eU\xc3\xb5t\ -\xa9o5\xc0\xbc\xa6\x08\x86\xf5\x84GW ,\xc89\ -\xf5\x11\xee\xa7L2\x9c\x88\x80\xde%\x86\x09\xed\xd1\x95\ -\x88\x03[.F\xab\xe1j\xbd\xcb\x02F\x99@\x862\ -\xaaBF\x99\xe0\xd2\x98Qz\xaf\xb6\x1a\xb0?\xaf\x81\ -n\xe0RisIW\xc0b\x98\x819aF\xba\x03\ -\xe8\x06\xf8\x0a$)f\x5c\xfb\xbb\x0d\x14p\x8d6\xef\ -0\xbe\xfe~\x83\x84E\x854Z\x87,\x07\x90`=\ -\x02\x1e\x048\xb4(V\x0ak\xe2i\x08\xa2\x90\xe2T\ -\x90\x11\xf0 \xc0\xbeu\xc6\x11\xc7 \xaa\x1e_\x89\x98\ -\x14j\x9c\xde\x06\xe1\xf5\x97\x16\x1cQ\xca\x04\xf7w\x1d\ -@\xb09\xbb\xd8\xa9\xfcj\x80\x99\xcatz7\x000\ -1\x9c\xf2o\xdeS\x91x\xbe\x0a\x83\x18S\x86hO\ -~)\x83\xc5Exu!\xa8\xd1\x1c\x07\xf8\xc2\x1aP\ -\x11N\xbeW\xc0\x0c\xd6\xc6\x9e\xbf\xc2m>R\xac\x95\ -'\xc0\x94\x22\xa2\x8d4#\xe0!\x0e\x0b\xdfD\x03\xc0\ -Lk\xcdM@\x82\x8dQT\x88\x11\xf0\x00\x9f\x85o\ -B\x10\xd0\x04\x1c$U\x04\x00\x83\x82\xa0L\x8e\x80\x07\ -\xb8-\xfc9\xce #0\xd6\xc6\x07\x0c\xab\x0f\xcd\x19\ -\x1e%x\x90\xe7\x22\xa8\x84\xb91\xe2\xc2U\xdf\x1d|\ -A\x18\x03I>\x12\x1e\xe2\xbc\x08(\x09\x8a\x14\x91\xc6\ -\xb7\xd3(A`\x8cI\xadF\xc2\x03\xfc\x17\x09\xf7\x00\ -\xbb\x8d4\xc9\x8d\x18\xa7\xb9\xaf\xe1\xc2\xf0\x17r\xce\x8d\ -)\x8cd>`\x8d\x84\x92\xcc\x8c\x12<\xc4\x8b\xe1\xef\ -\xf5\x180\x84\xb5\xe2\x01%\xac\x91v\x1ed:\x02\x1e\ -\xe2\xc9\x08\xe8\x08\x864\x98c\xbe/\x83b$0h\ -\x8f\x91\xf0 g\x86\xef-R\xb0fc\x94\x9a\x80\xa5\ -\xc69\x1b\x97r\xc3v{\xb0\xaf\x22\x04V\xcc\xf8\xce\ -\x22\x83\xa8q\xe7\xa3G\xc0\xc3\xfc\x19\x81\x0d5\xe4v\ -{\xb8\x7f\xc2\x8f:\x96\xd2\xd0\x91\xf1@\x9f\x86\xbf\xa9\ -F$2Ji\xa3\x033\x9ddR\xf2q\xc5<\xd0\ -\xad\xe1/\xe9\xc0\x9ap\xbc\xa4'\xc7\x8c\xb8\x0d\xf9\x8b\ -\xe3\x12#\xe3\xcf{6|u,\x90\x82\xa5E\xe0\xc8\ -\x1f\xc3\x08\x10K3\xae9\x06\xba7\x02\xba\x82\x22\xad\ -\xa9\x112\xc0XH\xae\xc8\xefdT`\x9c\xa69\x1f\ -\xc0\x18\xe6e\xca\xbem\xc6\x8f\xe1Lp\xdcet\xb7\xaf\ -_\xfd\x0fR\xaa\xd9\x91\ -\x00\x00\x0b\xf1\ +\x00O\xf4x\xda\xed\x5cY\x8f\xdb8\x12~\xcf\xaf\x10\ +\x94\x97\x04k\xd1\xbc\x0fO\xbb\x07\xbb\x08\x06\xb3\xc0\xec\ +\xcb\xee\xec\xf9\xb2PKl\xb7\xa6m\xc9\x90\xe4>\xf2\ +\xeb\xb7([\xb6$\xaa\x13u\xb2\x03\x04\x88\xdc\x07\xec\ +\x22E\xb2>~,\x16Y4\xaf~|\xdam\x83\x07\ +[VY\x91\xafC\x82p\x18\xd8<)\xd2,\xdf\xac\ +\xc3\xbf\xff\xfaS\xa4\xc3\xa0\xaa\xe3<\x8d\xb7En\xd7\ +a^\x84?^\xbf\xb9\xaa\x1e6o\x82 x\xcc\xd2\ +\xfan\x1dr\x1d\xbaOw6\xdb\xdc\xd5\xe7\x8f\x0f\x99\ +}\xfcS\xf1\xb4\x0eq\x80\x03\xae\x83\x938K\xd7!\ +\xae\xef.\xf0\xb9\xf2\ +\x9d\x84\x0b\xa3\xc3\x8b\x18\xa4\x7f\x09\xa0\x1d\x0b\xf8\x0b~\ +\x09\x04\xbc\x8bD\xf36\x22\x14\x89\x8e\xf8(m\xb3~\ +\x0c:\x85\x9c\x9ax\x0b\xa0G\xe5akW\xf6\xc1\xe6\ +E\x9a\xfeP\xd5eqoWoq\xf3:}\x8c\x1a\ +\xcb\xb3\x02{\xb5\xaf;\x85\xd4e\x9cW\xae\xf7\xc1\xc4\ +$\xf1\xd6\xbe\xc3H\xbf?J\xb7qm\xdf\x1d\x9b\xf3\ +\xfe\xd8\xa1\xc7\xbe\x817\xae\xb7\xae\xaf\xceF\xc4\x0d\xf2\ +\xd4\x19\xafc\xb9{`@Rl\x8br\x1d\xbe\xbdm\ +^\xa7\x0ao\x8a2\xb5e\x9b$\x9bW/\xa9\x00K\ +\x01\x5c\x02\x13v\x12\x177\xbf\xd9\xa4\xae\x8b\xad\x85\x16\ +9\xfe\x91\xb6\xef6%\xe83&?d\xa9\x1dK8\ +\xf7\x98k\xde\xb9\xa2\xd1\xd4\xea.N\x8b\xc7uH\x87\ +\x89\x8fY\x0e\x09\xd1\xc9\x88S\x81\xc5\x0b9Z\xc3N\ +0i5tT8\x03\xd5\x92\xa1\xba+\x1e\x9d&\xd0\ +\x8d\xf1\xb6\xb2\xc3\xd2>\x16\x05t\x0cGTI\xcc\x89\ +\x1a&'0UD\x94#\xa5\x0d\xd5\xc4K\x05\xf5\x98\ +F\x86)\xed'\x9e\xda\x09\x05\x88\x97t\x80\xc7\xa9z\ +!m\x17?e\xbb\xec\xa3M/]u\xa9\xf7P\x96\ +0\x1a\xa3m\xfcl\xa1\x9f7\x9c\x08\x0fe\xa7\xf7'\ +\x91n8tg\x13\xe0\xdbM\x11\x97\xe9HO\xa5\xb6\ +\xbao\xb9\x94\x12\xf7\xd3\xb0ts\x81\xfbX\xf5Y\xd4\ +\x0a\x05\xe7\xe7\x11\xd0\xe1\xff\x85\xf4\x11AB\x1aM\x08\ +{\xff\x89\x11\xcd\xb07\xa2\x178\xf8\xd9M\xdc\xffp\ +\xff~\x86I\xfc?\x9d,\x17\x80\x8a<\x07V\x17e\ +\x04P=\xc4\xf5\xa1\xb4\x17\xf5\x06#{\x95\x83\x13q\ +\x1c}\x9b\x8e\x22\xa3\xcd\x86\xb1\x8d\xa5\xa2\x9a-\x22*\ +\x90\xd6\x8a\x1a\xf3>\xec\xebN@\xf7\x0eJ'1\xa5\ +x\x0c\x11\x98\x12\xca\xec\x09L\x82\xe2RI&\xd5\x02\ +\xbb\x9f\xceG\x04\xbc\xd4\x82\x1b\xf7VK#\x88j \ +\xb3\xdbm\xb6\xaf\xec\xb8Foi\x22\xe2\x18\xff\xd0\x18\ +\xae\xd3@\x5c\x91\xd6j9}\xfb&K \xc1\x0c\x16\ +\xadp\x9b\x01x\xf1~U\x16\x87<\xed\x0a\x7f+\xb2\ +\xbc/\x85y\xc9\x96[ j\xbd\xe2\xad,\x8d\x81s\ +e\x19?\xf7j\xba4c\x1fg\xc0\xdd\xc6\x1a\xad\x8e\ +\xf6\xae\x0a\x8e\x99\x02\xd7\xe0\xd0g\x82\xe64\x92Tv\ +R\xdc\xb8\xa4\x1aQM\x19g]9\x0c)\x83\xb0\x94\ +\x82\x89\x8e\xb8|r>\x9bT\xdcp\xad\xbarg\x08\ +\x91b\x98\x80\x9dq\x9d\xf6\xdd\xc1\xca\x222\x80\x95\x01\ +\xcf\x0caT\x0c`\xd5\x88\x00'\x89\xd43\xaeS\xe8\ +\x1ai\x1fWA\x95\xc6j\x80+\x01\xb7\x83\x0b\xf8\x9d\ +q\x9d\x80\xab\x8a\xd4\x10W\x8a\x18L\x15Zyf\x00\ +f!f$\x9fq\x9d\x80\xab\x88\x8co^\x8d\xa0B\ +\x93!_\x01(\xa3\x18Q3\xaeS\xec\xab\x88\xa8o\ +\x08$\xd7F\x0f\x0d,a\x88(\x8e\x8d\x9c\x81\x9d\xe4\ +\x0fDx\x08,CXQN\xb4\xcfXN\x89fd\ +\x06v\x02\xb0\xc6'\xac@\xdc\x08-\xd8\xb2\x02I\x8a\x19\xd7\xde.\x01\x05\ +\xa8f\x1fv:\xb2\xde>\x81\x84\xe5\x814Z\x8fx\ +\x05\xc0Z=C;\x19\xda\x91%\xadRX\x93\xa1=\ + \x0a)N\x05\x99\xa1\x9d\x0c\xad\xe7sq\xc41\xf0\ +s\x88\xacDL\x0a5O`\x93\x81\xf5\x16\x09\x1cQ\ +\xca\x04\xf7v\x0b\x80\xcb\x9c\xf5\xb7\x13\xffO\xd02\x95\ +\xe8\xf8\xe6\x15\xd0\x12\xc3)\xff\xd6\xa3\x07\xd10~`\ +\x10c\xca\x10=\xe4,e\xb0L\x18]'\x08j4\ +\xc7>\xb2\xb0\x88S\x84\x93\xef\x13Z\x06+\xdba\x0c\ +\xc1\xed\x11R\xac\xd5\x90\xb4\x94\x22\xa2\x8d43\xb4S\ +\x83\x08\x9e\xe3\x05\xd02\xad57>k\x8dQT\x88\ +\x19\xda\x89q\x04\xcf= 0\xf09\xd0S\xf8\xd0\x82\ +9\xa0L\xce\xd0N\x0c%x\xb3\x98AF`\xac\x8d\ +\x07-,#4gxf\xed\xe4h\xc2\x98\xb1\xe5\xc6\ +\x88~|\xbc9Z\x820\x06\x10\xf9\x8c\xed\xd4\x80\x82\ +o\x12(RD\x1a\xcf\xfb\xa2\x04\x81\x8f%\xb5\x9a\xb1\ +\x9d\x18S\x88\xf8\x10Z\xb7\xe9%\xb9\x11\xf3D\xf6\x95\ +a\x05o1\xe6\x22\x89\xc2H\xe6A\xab\x91P\x92\x99\ +\x99\xb5S#\x0b\xde\xee\x8c\x01\xc7V+\xee\x1b[\x8d\ +\xb4\x8b\xde\xd2\x19\xda\xa9\xd1\x05\xdf\x220\xa4\xc1\xcb\xf2\ +\xe2\x0b\x14#\x81\xc1T\xcc\xd8N\x0e0x\xb1\x1b\x05\ +\x0b/F\xa9\xf1\xfd/\xce\xd9\xbc\x1c\x9b\xbe?\x83=\ +\x83 \xb0b\xc6\x0b\xdd\x18D\x8d;S\x14R.\x80\xa3\x14+\xc1U\ +@\x05r\xdfc2d\xe1\x0e{JX\xdf\x92\xe0.\ + \x06\x14\xa0\xb4w\x88\xf9\xd2?\xa4\x1f=\xeb\xdc\xf0\ +\x95\x17\xa9u\xd73U\xeb0I\x92\x06\xdfoG\xfb\ +1UAQ\xee.n1\x8bf\xbav]6\xaa2\ +\xc5x\x8a\xca\xe7\xcbSz\x17\xa84\xbc\xd2\x06{\x5c\ +\xf0\xb0h\x95\xa7I\x8c\xb5\x19\xde\xa6\xf4%g\xb6?\ +3:\x87\xb7\xca\x00\x1eR\xbb\xaf\xad,`\x92\xc5\xc6\ +\x91%\x80w\x5c\xb8\x9b^\xc0\x077\x0d\xad\x030f\ +\xccaE\x17\xce\xad\x1c\x19\xc2\x8c\xf5\x06\xd1d~\xfc\ +>\x884f\xeb\x8b\x10\xd99\xed\x19s\x83\xa5\x83H\ +\xc4\x91\x03I\xeb\x05\x01\xfa8\xd9\x18\x04\x9c|\x16\x82\ +\x1e_\xdc%i\xd7o\xfe\x07\x154\xc6R\ +\x00\x00\x0b\xa1\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a image/svg\ -+xml\ -\x0d\x0a \x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \x0a\x0a \x0a <\ +rdf:RDF>\x0a <\ +cc:Work\x0a \ + rdf:about=\x22\x22>\x0a \ + image/svg+xml<\ +/dc:format>\x0a \ + \ +\x0a \x0a \ + \x0a\ + \x0a \ + \x0a <\ +defs\x0a id=\x22de\ +fs8\x22 />\x0a \x0d\x0a \x0d\x0a \ - \x0d\x0a \ - \x0d\x0a Bus<\ -/tspan>\x0d\x0a\ - \x0d\x0a\x0d\x0a\ +\x22\x0a borderopa\ +city=\x221\x22\x0a ob\ +jecttolerance=\x221\ +0\x22\x0a gridtole\ +rance=\x2210\x22\x0a \ +guidetolerance=\x22\ +10\x22\x0a inkscap\ +e:pageopacity=\x220\ +\x22\x0a inkscape:\ +pageshadow=\x222\x22\x0a \ + inkscape:win\ +dow-width=\x221863\x22\ +\x0a inkscape:w\ +indow-height=\x2210\ +25\x22\x0a id=\x22nam\ +edview6\x22\x0a sh\ +owgrid=\x22false\x22\x0a \ + inkscape:zoo\ +m=\x223.390625\x22\x0a \ + inkscape:cx=\x22-\ +113.52136\x22\x0a \ +inkscape:cy=\x2282.\ +051545\x22\x0a ink\ +scape:window-x=\x22\ +57\x22\x0a inkscap\ +e:window-y=\x2227\x22\x0a\ + inkscape:wi\ +ndow-maximized=\x22\ +1\x22\x0a inkscape\ +:current-layer=\x22\ +svg4\x22 />\x0a \x0a \x0a\ + \ +\x0a <\ +tspan\x0a s\ +tyle=\x22fill:#9999\ +99;fill-opacity:\ +1;stroke-width:0\ +.29937106px;stro\ +ke:#999999\x22\x0a \ + y=\x2227.66311\ +5\x22\x0a x=\x221\ +5.134903\x22\x0a \ + id=\x22tspan837\x22\ +\x0a sodipo\ +di:role=\x22line\x22>B\ +us\x0a \x0a\x0a\ \ -\x00\x00\x08\x97\ +\x00\x00\x08]\ <\ ?xml version=\x221.\ 0\x22 encoding=\x22UTF\ -8\x22 standalone=\x22\ -no\x22?>\x0d\x0a\ -\x0d\x0a\x0d\x0a\x0a\x0a\ +\x0a\x0d\x0a \ - \ -\x0d\x0a \x0d\ -\x0a \x0d\x0a \ - imag\ -e/svg+xml\x0d\x0a <\ -dc:type\x0d\x0a \ - rdf:resource\ -=\x22http://purl.or\ -g/dc/dcmitype/St\ -illImage\x22 />\x0d\x0a \ - \x0d\x0a \x0d\x0a \x0d\x0a \x0d\x0a \ -\x0d\x0a \x0a <\ +metadata\x0a id\ +=\x22metadata8\x22>\x0a \ + \x0a \ + \x0a image/svg+x\ +ml\x0a \ + \x0a \x0a <\ +/cc:Work>\x0a \x0a \x0a \x0a \x0a \x0a\x0a\ +\x00\x00\x1a\x1d\ +<\ +?xml version=\x221.\ +0\x22 encoding=\x22UTF\ +-8\x22 standalone=\x22\ +no\x22?>\x0a\x0a\ +\x0a\x0a \x0a \ +\x0a \ +\x0a\ + image/svg+xml\ +\x0a \ + \x0a \x0a \x0a \x0a \x0a \x0a \ + \x0a \x0a \ + \x0a <\ +/linearGradient>\ +\x0a \x0a \ + \x0a \ +\x0a \x0a <\ +linearGradient\x0a \ + inkscape:c\ +ollect=\x22always\x22\x0a\ + xlink:hre\ +f=\x22#linearGradie\ +nt842\x22\x0a id\ +=\x22linearGradient\ +917\x22\x0a x1=\x22\ +-1032.6266\x22\x0a \ + y1=\x2268.369415\ +\x22\x0a x2=\x22-98\ +2.63611\x22\x0a \ +y2=\x2268.369415\x22\x0a \ + gradientUn\ +its=\x22userSpaceOn\ +Use\x22 />\x0a \x0a \x0a \x0d\x0a \x0d\x0a\x0d\x0a\ -\x00\x00\x07\xe3\ -\x00\ -\x00\x1a\xc9x\xda\xe5X[o\xdbF\x16~/\xd0\xff\ -\xc0\xca/1JRs\xbf(r\x0al\x83.\xfa\xb4\ -\xc06\xd9\x05\xf6\x8d&G\x12\x1b\x894H\xca\xb2\xf3\ -\xeb\xf7\x1bJ\xbcYr\xe0 .\x02\xec\xd2\xb0=<\ -sf\xe6\x5c\xbes\x19.\x7fy\xd8m\x83{W\xd5\ -yY\xdc\xcchLf\x81+\xd22\xcb\x8b\xf5\xcd\xec\ -\xe3\x87\xdf\x223\x0b\xea&)\xb2d[\x16\xeefV\ -\x94\xb3_\xde\xfd\xf8\xc3\xf2\xa7(\x0a~\xad\x5c\xd2\xb8\ -,8\xe4\xcd&\xf8\xbd\xf8T\xa7\xc9\x9d\x0b\xdel\x9a\ -\xe6n1\x9f\x1f\x0e\x878?\x11\xe3\xb2Z\xcf\xaf\x83\ -(\xc2R,\xae\xef\xd7?\xfe\x10\x04\x01\xce.\xeaE\ -\x96\xde\xccNk\xee\xf6\xd5\xb6\xe5\xcd\xd2\xb9\xdb\xba\x9d\ -+\x9azNc:\x9f\x8d\xf8\xd3\x81?\xf5\x12\xe4\xf7\ -.-w\xbb\xb2\xa8\xdb\xa5E}5\xe6\xae\xb2U\xcf\ -\xeeE:\xf0\x96\x8bZk\xe7\x84\xcd\x19\x8b\xc0\x11\xd5\ -\x8fE\x93\x8f\xfc\xa3\xf8X\xbbs\xb6\ -\x0fUR\xd4>N\x10\x96IS\xe5\x0fo|Ls\ -\xc2\x15\xe1!\xc1\x0f\x8d\x99\xc2\xf1\xd4\x86\x86\xe8X\x1a\ -.5h\x12\xd2X)\xafG\xd6\xfe\x1ef\x95\xe6U\ -\x157\x9akK4k\x15'\xb1\xb6FS\x0d;h\ -#b\x8d\x8a\xc0a\x83Xj\xc4\x84\xba\xfe\x8b\xfd\xf9\ -}\xed\xaa\xc8\xeb\x02\x8a\x08\xa34\x97c@1\x1a\x1a\ -JbN\x8d\x91!l\x11k&\x99\xfe\x9f6\xab\xa5\ -\xf2\x89z\x94p\xa0N\x1a6\xd5O\xc2dVq+\ -\x9f\xe8G\x09B\x90C\x91\xa9~\x17\xd8_\xc1i\xda\ -Hf\xa4B0\xc4\x94ie\x8d\xd0!:\x19\xca\xa9\ -\x8f\x00\x1a\x8e8\x22Fll\xb9\x114\xa4\x02}\x09\ -\x95\xca^\x7fo[\xebs[\xb3X1\xa5\xa6\xb6V\ -&\xe6\xca\x0a\xfa\xd4\xd6\xd6\x80\x1b\xf0\xa3S[_`\ -\xff\xb2\xad\xbf\xaf\x15\x04\xfd?D\x1cz?\xf4O\xc7\ -a\xdf\xd3\xfa\x866\xf3\xbd\xefI\x94;tqm\xcf\ -\x01\x9b\xae\xda\xa7\x13\xf2\xb6\xac2Wus\xaa}\xa6\ -s\xa7\xc6d\xd4\x84\x94\xb7\x7f\xc2uM\xb9u\xd0\xcb\ -\xb7\x91\xb4\xcf\xa0\xeb\x0a\x1d\xf9\xc5\x89}\x9e\xb9\x8b3\ -=$\xbc\x90\xfda\x97\xa7\xebM\x92\x95\x87\x9b\x19;\ -\x9b=\xe4\x05f\xa2\xeeB`$\x7f\x8e\xa5\xbf#\x10\ -\xd6{\xd4\x83\xa9\xb7Y\xdf\xbd\xd4\x9b\xf2\xe0\x15\xba\x99\ -\xad\x92\xed\xe0\xd7~\xc3\xcfe\xb9k\xaf&\x04\x0eb\ -\xe72\xa5\xb8w0.P\x02\xd4\x80\xa9a\x16ZF\ -\x1a\xb5V\x13m\x9e\x13\x16;(\xfd\xdc$6`\xcf\ -N\xee\x92\x87|\x97\x7fv\xd9\xc8q\xc3\xd9\xfb\xaa\x02\ -.\xa3m\xf2\xe8\xaa\xd3\x85\xaa\xc3\xd3zd\x93\xb51\ -\xb6[\xdc\x5c\x041`I\x95\xea{\x08m(\x1a\x86\ -\x90Z\x0fd\x22\xac\x1fq\xca\xa5\xd2\xd7}\x87\x7f\x97\ -4\x9bK\x09\xa1(\x80\xaa\xb2\x8a \xdc}\xd2\xec+\ -7\xe9\xb3\xbd8~%\x22b \xfa\xfbU 8\xc5\ -\x19\x96\x98\x90\xa1\xb0*.Yp\x1f\xa0\xdaRb\x89\ -4\xfdH\x05\x9b\x00\xa1\xacPze70\xc1\xbf\x02\ -$J\x83\xa16A\xbf|\x13D=\xc3\xe7\xe1\xb4S\ -\x07\xbf\xc2\xbdh\x81\x1b\xd3\x9b\xab\xb3F\xe2\xfa\xad\x9f\ -\x1c]\x1e\xea\xa6*?\xb9EQ\x16\xee4>Bt\ -\x01Th\xcd8U\xb6\xa3\xe3\xda\xe5\xaa-|\xd6,\ -DG\xcb\x12 \xbe\xaa\x92\xc7\xc9\x0e\xc3Ua\xc8\xb7\ -\x13\xa3\x0ey\xa0D\xd0\xe12\x87\x1c\x95\x0e\xcf\xec[\ -\xac/\x9eZ_\xa1=Q\xb0`(U\xac\xa4\xa2\x8a\ -\x06i\x10QdR\xa3\x98\x08\xa9D;\xc2\x04\x0f\x22\ -\xee\xb3\x9b\xe6,d:F\xc4\x18\x1dD\x02\x05\x86\x19\ -\xcaC\xc1\xb1\x89`\xcc\x06@\x0e|\x09D\x05\xd4\xc4\ -\x0c\xe8B*\x0c\xb0\x02\xad8\xd5\x18\xa2\xa7\x82\x9b\xb4\ -\x15\x1aC&c)\x8d\x95\x18rl\xe5Sd\x10\x0d\ -;D\xa3-\xa2\xd1\x1e\x14\x92\xa2Z\x98\x90\xf2\xd8X\ -\xa6m\x00\x08\x11\xa99\x0d!$\xb7\x84\xd3`*\x1a\ -S\x00\x92WI\x9a0:\xa9D\x83V#e\x91\xb8\ -\x8f*Q5,\x8b\xfau'\x81\xe4 \x10\xb1#\x81\ -d\xabTt\xd2J\xf9\xf1I-\xe1\xc7\xbd^g\x86\ -\x19\xec\xe2\xb7\xf85\x10\x16\xb1\x86\xba/B\xa3b\xc1\ -\xe0\x0b\x0dq\x04*\x875*T(!\xcch\xc3/\ -z\xec?/G\xb94/G9\x8f\xb9\xa0J@\xd8\ -\xbf\x00\xe5_\x0f\xdeq\x9bt\x04/Cm\xd7\xdc\xa2\ -\xb0\xc2P\xdcpk\x87\xdc!\xba\x81\xf1\x99\x03\xad\xb9\ -=\xfe%\x84\x83)\xea'\xa3\x9e\xdf\xe7\x8d\x8e\xe3+\ -\xf2\x86\x10_\x937\x90\xea\xac4\xaf\x927\x96\xf3\xf5\ -\xf1\xff\xc8\xaeca\xcf\x8fg1\xb1\x8ah\xce\xedy\ -M\xf9\xa2\x17ZsG\x00gl)c\x08\x22\x81 \ -\xa2L\x22\xd26\xb03\xb2-\xda\x1a\x8et,\x81}\ -k\xac\xd5\xde\x9a\xc3\xc4\xe7q\xa9\xf6\xe2>W\xb0\x18\ -y\xbe`E\xbe\x1b\x94D\xa3\xdd:U,\xdc\xd4\xac\ -\xa2\x04\x11\xac\x91\x0b(\xc2\x87\x86J\xc4(b\xa8_\ -\xfd\xfd\xac\xfft\xd3:\xe5\x8a\x90$\xc9D_\xcf\xd6\ -\x13\xa0\xad\xad\x185\x8a\xe72\xb4m\xb9\x06\xdcZ\x09\ -\x867\xdc\xbd\x81E\x8a\xa8\x8c(G\xdc\x10c\xd8\xf5\ -\xe8\xf3\xd5\x04\xfa\x17\xdc\xd4\x02\xa8\xdao\xdd\xc2\xdd;\ -\xe4\xfd\xac\xc3\xd0\x05\xc4\xe1\x98\xeb\xa9_Ml\x85\xb0\ -\xc4\xf6q\xea\x17\xc0\xad\x8b\xaa\xdc\x17\xd9\x98\xf8g\x99\ -\x17\x8b\x16s\xdf\x02\xc0\x91&Gd\xa0\x872\xc8J\ -Z\x86\xb8t\xe0\xf2\xca\xa8A\x19\xf1\xf7a&CF\ -cA\xb90\xd6'\xb3\ -\x1d\xb3\x86\x9a\x90_\x9au\x9e)\xc3u:\xf9H\xf8\ -\x05\xb7^r\x9c\xa0g\xa9\xe2\xeb\x1c/\x9f8\x9e\x22\ -\xda\xa8A\x97\xaa\x9ez\xfev\xdf4g\x8e\x9f\xc0\xe1\ -\x95\x1cO|eS\xbe\x18A\x0a$\xb76\xa1r\xff\ -\x05%\xa2\xc2\x7f\x84C\x83\xd9\xd2\x00[4\x94\xc6\xb7\ -k\x80\xcb8\xc3\x0e\xde\x12@I\xc4_\xd3a\xbea\ -\x1a}f]\x8f2\xe7\xd2\x7f\x80\xc7\xff\xff\x02\x1e\xf0\ -+C\ -\x00\x00\x07\xb3\ +\x22 />\x0a \ +\x0a \ +\x0a \ +\x0a \x0a \ +\x0a \x0a <\ +g\x0a id=\x22g820\x22\ +\x0a transform=\ +\x22matrix(-0.85507\ +769,0,0,0.867961\ +07,-713.13031,64\ +.155131)\x22\x0a s\ +tyle=\x22stroke:#00\ +aad4\x22>\x0a \x0a \x0a <\ +path\x0a st\ +yle=\x22fill:url(#l\ +inearGradient941\ +);fill-opacity:1\ +;fill-rule:eveno\ +dd;stroke:url(#l\ +inearGradient915\ +);stroke-width:1\ +.59182346;stroke\ +-linecap:butt;st\ +roke-linejoin:ro\ +und;stroke-miter\ +limit:4;stroke-d\ +asharray:none;st\ +roke-opacity:1\x22\x0a\ + d=\x22m -1\ +009.116,56.34619\ +9 -10.3735,-14.5\ +83166 -10.9179,1\ +8.872102 z\x22\x0a \ + id=\x22path448\ +9-3\x22\x0a in\ +kscape:connector\ +-curvature=\x220\x22\x0a \ + sodipodi\ +:nodetypes=\x22cccc\ +\x22 />\x0a \x0a \ +\x0a\x0a\ +\x00\x00\x07\xad\ \x00\ -\x00+[x\xda\xe5ZK\x8f\xe3\xb8\x11\xbe/\xb0\xff\ -A\xd1\x5cf\x10\x8bb\xf1M\xaf=\x0bd\x07\x0b\xec\ -!\x97d\x83\x1c\x03\xb5\xc4\xb6\xb5cK\x86$\xb7\xbb\ -\xf7\xd7\xa7([j\xd9V;3\xd8\xee\xc4\xe3\xd8\xdd\ -0X\xc5G\xf1c\xbdX\xd2\xec\xc7\xc7\xf5*xp\ -U\x9d\x97\xc5<\x04B\xc3\xc0\x15i\x99\xe5\xc5b\x1e\ -\xfe\xe3\xd7\x9f#\x13\x06u\x93\x14Y\xb2*\x0b7\x0f\ -\x8b2\xfc\xf1\xe3\xf7\xdf\xcd\xfe\x14E\xc1O\x95K\x1a\ -\x97\x05\xbb\xbcY\x06\xbf\x14\x9f\xeb4\xd9\xb8\xe0\xfd\xb2\ -i6\xd38\xde\xedv$?\x10IY-\xe2\x0fA\ -\x14\xe1P\x1c\x5c?,\xbe\xff.\x08\x86\xebB\xd8R\ -\xf2l\x1e\x22\x97\xed[\xbb\ -\xcb\xd2)\x22\x8e\x0a\xf21_'\x0b\xe71\xf93\x0a\ -9\x8b\x9f\x19\xc7\xbd\x9b\xa7\x8d\x1b\xcc\xbb\x9f\xb9r\xfb\ -\xc3\x1b\xddV\x96\xaes?*\xfe{\x93\xafV\xbf\xf8\ -e\xc2 ~\x166>H\xdb\xed&\x1eng\x16w\ -\xdb\xdd73w_\x0f\xb0\xf0M\xd5\xcd6\xeb\x8d\xc0\ -\xeb`\xe6\x8d\xe5\xd0u\x83k\xa6\xe5\xaa\xac\xe6\xe1\xbb\ -\xfb\xf6\x13\x1e8we\x95\xb9\xaa\xe3\xa9\xf6s\xcc+\ -Q\x97Q~4\x92\x8e^\xde\xfd\xe6\xd2\xa6)W\xae\ -J\x0a\xbfi\xa0\x1dkQ\xa1\x09\x8f2\xb6y\xe6F\ -9\xbd5z!\xfb\xc5\xc6\xd9\xf52\xc9\xca\xddY\xd5\xeel\xbe\xdf\xcbr\xed]\x87\xe6\x86Sq\ -.R\x8a~\x8aq\x22\x8dbT\x9esq\x93h\xd5\ -\xc8\xb4\xd4Z\xf5\x92\xb48\x87\xb4\xf4%\xae?\x15m\ -_\xe2\xae\x93\xc7|\x9d\xff\xee\xb218\xd3mU\xa1\ -\xb1E\xab\xe4\xc9\xe1\xd1/\x0c\x87Q\xc8\xd1}\xa6\x9f\ -]uW&U;O\xa7k\x8b\x01v\xc3\xc1u\xf3\ -\xb4\xc2\xf3\xad\x9b\xaa\xfc\xec\xa6\xef\xb8NMr\xf7\xc3\ -\xbe\xb9?\x9e)\x83\xae\x8d\x86\xe1\xaa\x15\x0a\xd9LE\ -G\xcb\x12<\xe5\xaaJ\x9e\xa6\x05F\xa0\xde\xc6\x17\xbd\ -\xd1\xf5\xe2\xad\x92;\xb7\x9a\x87?%\x9b$\xe8\xd7\xdf\ -K\xd4\xeej@kP\xedjo\xcf\xe8>\x92\xa6\xca\ -\x1f\xdfsb\xc1(\xca\xd4\x84\xe2\xf7\xb9\x15\x81\xd6x\ -*\x82\x9bI\xc4\xadf\xc4Zf><\xfb\x8c\x81 \ -\x87\xcds!\x06+\x8d\xad\xe5\x8fY\x81\xe2\x92\xb7\x8b\ -\x0d\x9aB\x13\xc6\xb9\x011\x01\xa1\x08\xd3\x18{>\x0c\ -\xe7:\xa0y\x8f\x8ecz\xb0\xdc\x1f:hE\xe6\xbf\ -\x7f\x1c\xda\xbd\xc7\xcc\xabtu\xe2\xd8\xbcr\xcb\xf0\x88\ -\xe6\xb5\x16(gD3~\xcaBUE\x86B4\xcc\ -1\xc7\xa3\xb4I\x9a%\xe7\x5cE\x10\xd9c\xee\xd8\x16\ -}#:\xf8\x82)\xec\x9b\xd5v\xe5\xa6\xee\xc1\x15e\ -\x96\xf5\x18d\x02\x03\x19=\xc6\x006\x8f\x1da\x95\x17\ -\x0eUez\xb7m\x9a!\xed\xb72/\xa6-B\x1d\ -\xb5_l\xe8\x9a\x11\x17/\xf7\xf1fz\x03*\x0b\x9c\ -\xbc)\xab\x08M\xe9!i\xb6\x95\x1b\xd8\xd9\xf1\xce\x05\ -\xd3\x10\xf1c\x9e\x8fd\x01\x02f\xc0{\x88\x09\xa2\x0a\ -Dh\xa6\x02\xef\x15@\x01\x15\x93H\x13\xab\xa4\xf9B\ -\xbc\xbe\x18 \x8a.\x8br.\xae\x11'\x09#()\ -B\xa5\xd1\xd2JD\x09=*(\xc9\x024\x1cE\xa9\ -\x92r\x22\x09\xd7\xf6\xd5A\x82\xaf\xc7\xe6?\x9b\xdc\x7f\ -\x0bE5\x86\x22\xa3Djm\xb5\xf2\xbaf\x88VB\ -\x06\x91$B\x19\x83\x09/z\x1fF\xdf@\xd5\x0c\x13\ -`\xf95\xaa\x9a\x1a3H\x86z\x85\x06i\xbdA\xa2\ -s\xd6\xa8kA\x04\x18\xe4\x99\xd4\x1c0:\x10\xa5\xf5\ -\xeb\xa3d\x05\x97\x82]#J\xa7\x96\xb5G\x09\x03\x03\ -\xe5\x92yU\x02K\xd0G\xe9\xc0\x10\xcb\xa4\xd2\x13F\ -\x00\xc3\xd8\x05\x88l\xfb\xf9r\x1f\x7f\xe8\x7f\xea\xc2\xd0\ -\xfa%\xbbVW\x1f\xa91go\x89\x04\xbd\xd7-4\ -@cA\x04\x11\xfa6\x8d97\x9b\xa0)2\x10\xdf\ -\x84\xb3\xff\xaad\x81\x1a\xc21\x1f?O\x16\x98 R\ -Hk.d\x0b\xaf\x98)\x8ci\x11\xfc\xcf@\x01\x8c\ -b\x98]\x8edP\x9aPC\x05e\x17R(~\xb3\ -\xb00E8f\xc6\xe7\xb0\x08L\xd0\x855\xda^\x80\ -\xe5v\xb5\x85{\x17\xab\xf9\x08,\x94\x08*\xb8\xe0\x17\ -`\xd17\x0b\x8b\x8f\xcf\xd4\x8cy\x16\x83x\xd9\xc1\x05\ -\x7f\x04\x16y\xbb\xb0H_U\x80sX@\x10\x8c\xd0\ -\x14.\xfa\x16\xf9-\xdd\xce\xbe\xce\x8a$\x01\x09#\xb7\ -VI\xa8U\xa8I\x97\xae\xad\x8a\xdd\xae\xd3ex\x81\ -bb\x14\x17\xc6\x19\xb5\xea\x02.\xf6f\xd5\x05\x18Q\ -V\x8d\xc4\x22\xbc\x0d\x08a\x81]\xacr\xdcn\xe6b\ -\x09\x13\xa7q\xb8u\xba\x14o\xe4RRy\xb1\xf8\xa3\ -o\xda\x8c\x98\x1d+\x8a\x011\xd4\x88\xd3@u\x02\x0c\ -\xbd\xdd\xecE\x13#\xd8\x88\xc2`\x7f\x0dL\xb3\x8b\xb8\ -\xdcp\xb2k\x09\x059\x1e\xa7\x05H\xa5\xecE`\xbe\ -\xa9t\xf7\xd5\xca\x83c5\x1b\xc0@e,e\xc2\x97\ -\x075\xb1 \x834\xa0\x84S\xaaAL\x22\xcc\x91\x19\ -S\x81\xf0\x05C\x00\xe6\xab\xaa\x12\x848#\xfc\x91\x9b\ -\xf7x\x8d\xc22\x83\xb7\xfd\xab\xc4Q\x8e\x17\x08\x8d2\ -\x18\xef}U\x07q\xe4\x08\x12\xc7\x1c\x00C\x1d\x9fD\ -\x98S\x0bj_\x1f$\xff\x04\x8c\xeb\xab\x04I\x8f)\ -\x9b\x7f\xf6AQ\xe6I\x9b\x220\xb4\xd4\x00|\x01O\ -\x1b\x81\xca\xc6\x09\xa6\xde\xf0\x06\xaa$\x94\x85\xebD\xc9\ -\x8eV\xec9j\x8f\x94\x1e%\xcc\xbb\x85\xb4\x01\xb4W\ -xn,L\x80X\xab\xed[\x80\xe4\x0bJWYk\ -\x1e\x03\x09\x03\xa3\x16V\x83\x7f\xac\x81>\x9fS\xad\x03\ -\x89\xc01*\xd0\x04\x81p\xa3\xe5\x1b\x80\x04\xc0\xb5\xbd\ -\xce\xc2\xe9\x08H\x82\x11iP\x93&mu\x88j.\ -\x82\xc8\x12\xdfY2on\x5c\xaa707m\xa9\xb8\ -\xce\xe7\x88c\x8e[\xf8S\xf57\xfb}aYR-\ -\x02tSV\xf2\xf6\x91\x05\xfaX\xaa\xcc\x1bxnN\ -\x95\xbe\xce\x12\xbc\x1eO\x13\x04(e\xda\xe7_\x94\x80\ -`\x80\xe6\x06\x00\xd4\xe8\x89\x22\xc2\xbc\x05FZp\xcc\ -\xfd_\x0d\xa3Y\xbc\xe8_\x13Z\x8c\xbc\x1a\xe1\xdfG\ -@gr\xf1\xcd\x07\xef'1\x5c)\x03\x87\xb7\x11\xfa\ -&G\x14\x14gj\x82\x9eI\x00\x8an\x07/#\x1c\ -\xa1qtU\xf7\xe0\xe0\x0d\x87\x9eK\xfe,\xf7\xc9\xc9\ -~\xc5\xb9v\xa7j\x8e\xebVH\xfdk -*\xa1\ -\xa6\x8aO\x14\x10\xb0`\xa5\xc18#\x88\x91x\xeb\x98\ -\x80\x8f<\x982\xaa\x17\xdf\xa88l\xe3\xe5C=\xde\ -\xd8!1\x96xo\xa1\xe6\xf4D\xabr[d\xaf\xff\ -\x80x(z\xffzW\x999\xffFY=\x0f\xd3\xf4\ -H=^\x05\xe6\xe3;W\x0b4pN0\xc5V\xc2\ -\x03-\x01\x8cR\x81\xf2nRi\xdb\xe2\x0c\x14C\xef\ -\xff\x09\xce\x9d\xe9\xed\x7fg\xfe\x9dA\xfc\xfd7\x87\xde\ -8R\ +\x00*mx\xda\xe5Z\xddo\xe36\x12\x7f\xcf_\xa1\ +\xd3\xbe\xec\xe2,\x9a\xc3o\xbav\x0a\x5c\x17\x05\xfap\ +/\xd7\x16\xf7xP$\xc6V\xd7\x96\x0cI\x89\x93\xfe\ +\xf57\x94%\xf9K\xceeQ\xf7\xce\xebS\x12\x04\xe4\ +P\xe4\xcc\x8f\xf3\xc5\xa1\xa6\xdf\xbf\xac\x96\xc1\xb3+\xab\ +\xac\xc8g!\x10\x1a\x06.O\x8a4\xcb\xe7\xb3\xf0\xd7\ +_~\x8cL\x18Tu\x9c\xa7\xf1\xb2\xc8\xdd,\xcc\x8b\ +\xf0\xfb\xfb\xbb\xe9_\xa2(\xf8\xa1tq\xed\xd2`\x93\ +\xd5\x8b\xe0\xa7\xfcK\x95\xc4k\x17|\x5c\xd4\xf5z2\ +\x1eo6\x1b\x92\xb5\x9d\xa4(\xe7\xe3OA\x14\xdd\xdf\ +\xddM\xab\xe7\xf9]\x10\xec\xaf\x09\xa1\xef\xc8\xd2Y\x88\ +4\xd646YZ/\x90f\xb7\xcd\x85\xcb\xe6\x8bz\ +\xd7~\xce\xdc\xe6o\xc5\xcb,\xa4\x01\x0d\xb03\xe8\x08\ +\x15r\xbe\xc6\xbfIZ$y\xbcB\x86S\xb7t\xb5\ +\xfbW\x95,\xdc*\xae\xb3\x84\xe0\x1a\xdb\xf5Z\xe6&\ +\xfb\x9c\x10\x16|\xa41\xa5\xc9\xa3\xe4\xdc\x8e\x02F\x19\ +\x8b(\xfe\x8aO\xcdK\x88V^M\xbaWg\xe19\ +a\xfd\xda\xd5:N\x5c5\xee\xfa\xf7\xde\xef\xb8\xec\xdf\ +\xef:HU<\x95\x89{\xc4)\x1c\xc9]=\xfe\xfc\ +\xcb\xe7\x9e\x18Q\x92\xd6\xe9n\x9a\x83\xd57\xbcY\x97\ +QJ\xc7\x9d\x84\xedb\xcf\xf3w\x8e,\xd3\xc7\xa1\x91\ +`\xad\x1dS6F$pDT\xbd\xe6u\xfc\x12\xe5\ +\xd5\x87\xbdW\x93\xa4\x7f3\xf1j\x91=\xbb\xa4X\xad\ +\x8a\xbc\xda\xc2q08\xdd\x0d^?\x95\xcbfD\x9a\ +\x8cq\xa3V.\xaf\xab1\xee\xc38\xbc\xc7\xf1\xd3\x95\ +\xab\xe34\xaec\xff\xeeVC\xba\x1e\xd3\x0c\xc0!\xc8\ +\xd2\xe4\x1f\x9f\x7f\xdc\xb6\xb0\x9d$\x93\x7f\x16\xe5\x97\xb6\ +\x89\x8f\x1f\x10?\x14O\xa8>\xe1}\xdf=M\x93\x09\ +\xc2\x8c*q\x9f\xad\xe2\xb9\xf3P\xfc\x15\xd9\x9b\x8ew\ +\x84\x83\xc1\xf5\xeb\xda\xed&\xddN[\xba\xed~\x0d\x8a\ +\x93&\xab\xcc\xbf4\xfe\xb9\xce\x96\xcb\x9f\xfc\x22a0\ +\xee\xf9\x1c\xb7\x8c\xb6b\x8c\xf7\xe4\x98\x8e;)\x9bV\ +\xea\x1e\xab\x1d\x00\xbe\xa5\xda\x89\xa6\xbd\xba{}K\xbd\ +Ul\x07\xaeq\xb1\xa4X\x16\xe5,\xfc\xf0\xd8<\xe1\ +\x96\xf0P\x94\xa9+;\x92j\x9e\x03R\x81J\x8bl\ +\xa31\xb4\xdd\xc5\xc3o.\xa9\xebb\xe9\xca8\xf7\xa2\ +\x02m)\xf3\x12\x8dt\xa8\xff)K\xdd\x10\xa1\xb78\ +\xcf^\xbf\xd0 \xb5Z\xc4i\xb1\x99\x85\xec\x98\xb8\xc9\ +r$D\x9d\x7f\x90\x1a\xce\x8c\xe8\x5c\x86\x96\xfd\x1c\x88\ +^\x8f\x93h;\xabE\xb1\xf1\x82\xcc\xc2\xc7xY\xb9\ +\xe3\xc9~/\x8a\x95w\x0c\x9a\x1bN\xc5\x097\x09\xba\ + \xc6\x894\x8aQyBD\xe1\xd0f\x91f\xa9\xb5\ +\xea\x0c\x9f8\x83\xb4\xf4\x0c\xd1\xef\x83\xb6g\x88\xab\xf8\ +%[e\xbf\xbbt\x00\xc3\xe4\xa9,\xd1\x96\xa2e\xfc\ +\xeap\xa7\xe7\x86\xc3\x10\xcc\xe8\x14\x93/\xae|(\xe2\ +\xb2\x99\xa5U\xab\xf9\x0e\xb0\xbd7\xab\xfau\x89\xdbY\ +\xd5e\xf1\xc5M>p\x9d\x98\xf8\xe1\xbbms\xbb!\ +\x13\x06]\x1bu\xdf\x95K\xe4\xaf\x9e\x88\xae/\x8dq\ +[\xcb2~\x9d\xe4\x18K:\x03\x9ewV\xd5s\xb6\ +\x8c\x1f\xdcr\x16\xfe\x10\xaf\xe3\xa0[|\xcbM#\xce\ +\xae\xabF\x0d\xab\xbc\xb1\xa2_\x88\xeb2{\xf9\xc8\x89\ +\x05\xa3(S#\x8a?\xbbV\x04Z\xe3N\x08nF\ +\x11\xb7\x9a\x11k\x99\xf9\xd4\xfb\x83\x1d\x13\xad\xd4\x5c\x88\ +\xdd2C\x0b\xf9}U\xa0\xb8\xe4\xcdJ{M\xa1\x09\ +\xe3\xdc\x80\x18\x81P\x84i\x0c$\x9f\xf6\xa6jQ|\ +D\x9f0im\xf3\xbb\x0eR\x91\xfa\x9f?\x0c\xe9\xd6\ +\x0ffe\xb2<\xf4X^\x91e\xb8\xdf\xe5U\x14(\ +gD3~DA\xbd\xc4~\x858\x98\x03\x82\x87g\ +\x1d\xd7\x0b\xce\xb9\x8a \xb2\x07\xc4!\xe1|#j\xad\ +}\x02\xdbf\xf9\xb4t\x13\xf7\xec\xf2\x22M{\xe9S\ +\x81!\x89\x1eJ\x0f\xeb\x97\xaec\x99\xe5\x0e\xd5c\xf2\ +\xf0T\xd7\xfb}\xbf\x15Y>i\xb0\xe9z\xfb\xc5\xf6\ +\xfc-\x22\xe2\xb9>\x90\xa47\x96\x22\xc7\xa9\xeb\xa2\x8c\ +\xd0l\x9e\xe3\xfa\xa9t;\x93:\x94Z0\x0d\x11?\ + \xf9\xa0\x14 T\x06\xbc\x1b\x18!\x9c@\x84f*\ +\xf0\xb6\x0f\x0a\xa8\x18E\x9aX%\xcd\xfb\xa0z76\ +\x14\xbd\x12\xe5\x5c\x5c\x1dD\x12N\x01R\x84J\xa3\xa5\ +\x95\x08\x10zLP\x92\x05h(\x8aR%\xe5H\x12\ +\xae\xed\xa5\xf1\x81\xaf\x87\xe5?\x9b\xd8\x7f\x05@5\x00\ + \xa3Djm\xb5\xf2\x1af\x88VB\x06\x91$B\ +\x19\x83\x89*:\x1aF/\xaf`\x86\x09\xb0\xfc\xea\x14\ +L\x0dX CmB\x0b\xb4\xde\x02\xd1\x05k\xd4\xb0\ + \x02\x8c\xdcLj\x0e\x18\x00\x88\xd2\xfa\xe2\x00Y\xc1\ +\xa5`W\x07\xd0\x91-m\x01B\xe7O\xb9d^\x81\ +\xc0\x12\xf4G:0\xc42\xa9\xf4\x88\x11\xc08u\x1e\ +\x1d\xdb<\xefw\xe5\xed\xf8cw\x85\xd6.\xd9Uz\ +\xf4H\x0d\xf8tK$\xe8\xadF\xa1\xc5\x19\x0b\x22\x88\ +\xd0\x8fi\xcc\x99\xd9\x08m\x8f\x81\xf8\x06|\xfaW$\ +\x02\xd4\x10\x8e)\xf5I\x22\xc0\x04\x91BZs>\x13\ +\xb8\x5c\x160\xa4:\xf0\xbf\x81\x030Na\xb2x\x9a\ +\x17iB\x0d\x15\x94\x9dO\x8c\xf8M\x02\xc2\x14\xe1\x98\ +\xe5\x9e\x00\x220\xd1\x16\xd6h{\x1e\x90\xdb\xd4\x10\xee\ +\xfd\xa8\xe6\xa7\x80P\x22\xa8\xe0\x82\x9f\x07D\xdf$ \ +>\xf2R3\xe0A\x0c\x02ewg\xf1\x01@\xe4m\ +\x02\x22}\x01\x00N\x00\x01A0\xf2Rx\xcb\x87\xc8\ +o\xe7l\xf556#\x09H8=mJB\xadB\ +\xe5y\xe3\xb8\xa9\xd8m\xbaU\x86\xc7\x1f&\x86\x10a\ +\x9cQ\xab\xce#boRE\x80\x11e\xd5i\x9c\xc1\ +t^\x08\x0b\xec\xad\x8a\xc4mf\x22\x960q\x14^\ +\x1b\xb7J\xf1\x08-%\x95o\x95h\xf4\xcd\x1a\x0d\xb3\ +\x03E+ \x86\x1aq\x14\x83\x8e \xa1\xb7\x99\x8dh\ +b\x04;U\x12\x1c\xad\x81i\xf6\x16\x227\x9a\xb0Z\ +BA\x0eF_\x01R)\xfb\x16$\xdfP\xcaz\xa1\ +\xba\xdd@Y\x050\x08\x19K\x99\xf0u;M,\xc8\ + \x09(\xe1\x94j\x10\xa3\x08\xf3\x5c\xc6T |%\ +\x0f\x80\xf9J\xa7\x04!N:\xfe\xc01y\xb8\x96`\ +\x99\xc1\x93\xf9\xf5A(\x07+wF\x19\x0c\xe3\xbe\xf0\ +\x82\x10r\xc4\x87ch\xc78\xc6G\x11&\xc6\x82\xda\ +\x8b\xe3\xe3o\x9d\xb8\xbe>|\xf4\x80\x8a\xf9\xeb\x07\x8a\ +\xfc\x8e\x9a\xc8\xcf\xd02\x03\xf0\xa55m\x04\xaa\x18'\ +\x98?\xc3\xe5\x15H(\x0bW\x08\x90\x1d\xaa\x9ds\xd4\ +\x19)=@\x98=\x0bi\x03hN\xdc\xdcX\x18\x01\ +\xb1V\xdb?\x01\x1f_\xf2\xb9\xbe\xd2\xef\x00>\x18\xf7\ +\xb4\xb0\x1a\xfc\xdd\x02zvN\xb5\x0e$b\xc6\xa8@\ +\x9b\x03\xc2\x8d\x96\x97\xc7\x07\x80k{\x85\xc5\xccS|\ +\x04#\xd2\xa0\xfe\x8c\x9a\x0a\x0e\xd5\x5c\x04\x91%~\xac\ +d\xde\xbe\xb8T\x97\xb7/m\xa9\xb8\xc2\xdb\xbb\x01\xff\ +,\xfcf\xfa\xb3\xf8\xb6\xce+\xa9\x16\x01\xba$+y\ +so\x80\xbe\x94*sy\x07\xcd\xa9\xd2WX\x0c\xd7\ +\x839\x80\x00\xa5Ls\xf5D\x09\x08\x06h_\x00@\ +\x8d\x1e)\x22\xcc\x9f\x00\x8f\x16\x1c\xb3\xf8K\xc13\x1d\ +\xcf\xbb\xefl\xe6'\x9f\x1d\xf8\xfb~t\x1co}V\ +\xe0\xdd!\xc6#e\xa0\xbd\xed\xef\x9b\x1c\xe5W\x9c\xa9\ +\x11:!\x01\xc8\xb5\xdd]\xf6\x1f\xe0pp\xbc\xf6\xb0\ +\xe0)\x85\x9e\xf2\xdcs|\xb8\x9d\xef\xdf\xccn+\xcd\ +Ai\x09;\xff\x1eH\x8bZ\xa7\xa9\xe2#\x05\x04,\ +Xi0\x90\x08b$\x1e\x1dF\xe0C\x0b\xe6\x80\xea\ +\xdc\xc7\x0a\xad\x04\xe7w\xf2P\xa66\xcb\x95x\xf8\xa0\ +\xe6x\x1b\xcb\xe2)O/\x7f\x17\xbb\xc7y\xffeT\ +\x91:\xff\x19V5\x0b\x93d_%.\x00\xf0\xc1\xa9\ +\xa9\x81\x188'\x98.+\xe1!\x96\x00F\xa9@y\ +g\xa8\xb4m\x10\x06\x8aa\xf5\xff\x01\xe1\xd6\xd2\x9a\x7f\ +S\xffu\xdd\xfd\xdd\xbf\x01\xcb`,<\ " qt_resource_name = b"\ @@ -30224,23 +30211,18 @@ \x06\xf4\x91\x87\ \x00c\ \x00o\x00n\x00s\x00o\x00l\x00e\x00.\x00s\x00v\x00g\ -\x00\x0a\ -\x0f\xad;G\ -\x00d\ -\x00i\x00v\x00i\x00d\x00e\x00.\x00s\x00v\x00g\ \x00\x07\ \x03\x83Z'\ \x00m\ \x00a\x00p\x00.\x00s\x00v\x00g\ +\x00\x0a\ +\x0f\xad;G\ +\x00d\ +\x00i\x00v\x00i\x00d\x00e\x00.\x00s\x00v\x00g\ \x00\x0b\ \x05dO\xa7\ \x00r\ \x00a\x00t\x00e\x00_\x00b\x00r\x00.\x00s\x00v\x00g\ -\x00\x14\ -\x0dK\x88'\ -\x00C\ -\x00a\x00t\x00a\x00l\x00o\x00g\x00u\x00e\x00P\x00r\x00i\x00v\x00a\x00t\x00e\x00.\ -\x00s\x00v\x00g\ \x00\x11\ \x09\xaa9g\ \x00p\ @@ -30603,329 +30585,327 @@ \x00\x00\x00\x10\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00.\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x90*\xaa\xec\x0f\ -\x00\x00\x00T\x00\x02\x00\x00\x00\xa0\x00\x00\x00\x05\ +\x00\x00\x01\x8b\xd7}+v\ +\x00\x00\x00T\x00\x02\x00\x00\x00\x9f\x00\x00\x00\x05\ \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x0d\xb6\x00\x00\x00\x00\x00\x01\x00\x05\x18\x9b\ -\x00\x00\x01\x90*\xaa\xecB\ -\x00\x00\x0bV\x00\x00\x00\x00\x00\x01\x00\x04-,\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x13\xb4\x00\x00\x00\x00\x00\x01\x00\x07\x11^\ -\x00\x00\x01\x90*\xaa\xec\x5c\ -\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x98\xae\ -\x00\x00\x01\x90*\xaa\xec!\ -\x00\x00\x0a(\x00\x00\x00\x00\x00\x01\x00\x03\xc8\xf9\ -\x00\x00\x01\x90*\xaa\xecK\ -\x00\x00\x11\xe6\x00\x00\x00\x00\x00\x01\x00\x06t\xd3\ -\x00\x00\x01\x90*\xaa\xec7\ -\x00\x00\x13\xee\x00\x01\x00\x00\x00\x01\x00\x07%\xee\ -\x00\x00\x01\x90*\xaa\xecW\ -\x00\x00\x07\x88\x00\x00\x00\x00\x00\x01\x00\x02\xd7T\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x05~\x00\x00\x00\x00\x00\x01\x00\x028S\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x00\x80\xd8\ -\x00\x00\x01\x90*\xaa\xecO\ -\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01\x0f\xe1\ -\x00\x00\x01\x90*\xaa\xec0\ -\x00\x00\x0f2\x00\x00\x00\x00\x00\x01\x00\x05\xa1\xf2\ -\x00\x00\x01\x90*\xaa\xec'\ -\x00\x00\x13$\x00\x00\x00\x00\x00\x01\x00\x06\xe2\xcb\ -\x00\x00\x01\x90*\xaa\xec\x1e\ -\x00\x00\x0d.\x00\x00\x00\x00\x00\x01\x00\x04\xf5\xc2\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x0cx\x00\x00\x00\x00\x00\x01\x00\x04\x99\xb8\ -\x00\x00\x01\x90*\xaa\xec[\ -\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x02 \xfb\ -\x00\x00\x01\x90*\xaa\xecV\ -\x00\x00\x0fT\x00\x00\x00\x00\x00\x01\x00\x05\xab\xc9\ -\x00\x00\x01\x90*\xaa\xec/\ -\x00\x00\x0f\x88\x00\x01\x00\x00\x00\x01\x00\x05\xc1\xef\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x12h\x00\x00\x00\x00\x00\x01\x00\x06\xa7\x8e\ -\x00\x00\x01\x90*\xaa\xec8\ -\x00\x00\x05\x12\x00\x00\x00\x00\x00\x01\x00\x02\x11\x04\ -\x00\x00\x01\x90*\xaa\xecK\ -\x00\x00\x09F\x00\x01\x00\x00\x00\x01\x00\x03h\xb1\ -\x00\x00\x01\x90*\xaa\xecA\ -\x00\x00\x07<\x00\x01\x00\x00\x00\x01\x00\x02\xc2\x9e\ -\x00\x00\x01\x90*\xaa\xecT\ -\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x01\xf0\xc8\ -\x00\x00\x01\x90*\xaa\xecE\ -\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x01\x00\x04\x07\x81\ -\x00\x00\x01\x90*\xaa\xec5\ -\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00'\xd4\ -\x00\x00\x01\x90*\xaa\xecK\ -\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x02\x01l\ -\x00\x00\x01\x90*\xaa\xec>\ -\x00\x00\x0e\xfe\x00\x00\x00\x00\x00\x01\x00\x05\x7f}\ -\x00\x00\x01\x90*\xaa\xecY\ -\x00\x00\x07T\x00\x01\x00\x00\x00\x01\x00\x02\xc7[\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x11\x86\ -\x00\x00\x01\x90*\xaa\xec-\ -\x00\x00\x0bv\x00\x01\x00\x00\x00\x01\x00\x04:t\ -\x00\x00\x01\x90*\xaa\xec*\ -\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00f\x18\ -\x00\x00\x01\x90*\xaa\xec[\ -\x00\x00\x01|\x00\x00\x00\x00\x00\x01\x00\x00\xa7K\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x10\xee\x00\x00\x00\x00\x00\x01\x00\x060r\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x10\xb2\x00\x01\x00\x00\x00\x01\x00\x06\x1cR\ -\x00\x00\x01\x90*\xaa\xec3\ -\x00\x00\x0aL\x00\x01\x00\x00\x00\x01\x00\x03\xd2n\ -\x00\x00\x01\x90*\xaa\xec\x1f\ -\x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x03\xady\ -\x00\x00\x01\x90*\xaa\xec^\ -\x00\x00\x0dn\x00\x01\x00\x00\x00\x01\x00\x05\x0c'\ -\x00\x00\x01\x90*\xaa\xec!\ -\x00\x00\x04\x18\x00\x01\x00\x00\x00\x01\x00\x01\xa9\xcc\ -\x00\x00\x01\x90*\xaa\xecR\ -\x00\x00\x09Z\x00\x00\x00\x00\x00\x01\x00\x03}>\ -\x00\x00\x01\x90*\xaa\xecM\ -\x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x03%\x00\ -\x00\x00\x01\x90*\xaa\xec%\ -\x00\x00\x0d\xdc\x00\x00\x00\x00\x00\x01\x00\x05 s\ -\x00\x00\x01\x90*\xaa\xec>\ -\x00\x00\x0a\x00\x00\x01\x00\x00\x00\x01\x00\x03\xbb%\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x013B\ -\x00\x00\x01\x90*\xaa\xec(\ -\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xf8\xa1\ -\x00\x00\x01\x90*\xaa\xecY\ -\x00\x00\x08\xf8\x00\x00\x00\x00\x00\x01\x00\x03MD\ -\x00\x00\x01\x90*\xaa\xecB\ -\x00\x00\x06\xac\x00\x01\x00\x00\x00\x01\x00\x02\x98\xe8\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x0ex\x00\x01\x00\x00\x00\x01\x00\x05Z~\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00C\x97\ -\x00\x00\x01\x90*\xaa\xecN\ -\x00\x00\x0eF\x00\x01\x00\x00\x00\x01\x00\x05E\x82\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x22{\ -\x00\x00\x01\x90*\xaa\xecZ\ -\x00\x00\x12\x22\x00\x01\x00\x00\x00\x01\x00\x06\x8c\xf9\ -\x00\x00\x01\x90*\xaa\xecG\ -\x00\x00\x03\xea\x00\x01\x00\x00\x00\x01\x00\x01\x96\xdf\ -\x00\x00\x01\x90*\xaa\xecM\ -\x00\x00\x03\xbe\x00\x01\x00\x00\x00\x01\x00\x01\x82(\ -\x00\x00\x01\x90*\xaa\xec2\ -\x00\x00\x0b\x98\x00\x01\x00\x00\x00\x01\x00\x04B\x1b\ -\x00\x00\x01\x90*\xaa\xec<\ -\x00\x00\x03R\x00\x00\x00\x00\x00\x01\x00\x01a\x9e\ -\x00\x00\x01\x90*\xaa\xec.\ -\x00\x00\x13n\x00\x00\x00\x00\x00\x01\x00\x06\xfa\x15\ -\x00\x00\x01\x90*\xaa\xecE\ -\x00\x00\x12\x88\x00\x00\x00\x00\x00\x01\x00\x06\xb2'\ -\x00\x00\x01\x90*\xaa\xecN\ -\x00\x00\x13\x0a\x00\x00\x00\x00\x00\x01\x00\x06\xdb\x1f\ -\x00\x00\x01\x90*\xaa\xec<\ -\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x017\xa9\ -\x00\x00\x01\x90*\xaa\xec2\ -\x00\x00\x02\xa8\x00\x01\x00\x00\x00\x01\x00\x01\x1bJ\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x0f\xd0\x00\x01\x00\x00\x00\x01\x00\x05\xce\x90\ -\x00\x00\x01\x90*\xaa\xecI\ -\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\xb1/\ -\x00\x00\x01\x90*\xaa\xec\x22\ -\x00\x00\x0c\xbc\x00\x01\x00\x00\x00\x01\x00\x04\xd1T\ -\x00\x00\x01\x90*\xaa\xec]\ -\x00\x00\x12>\x00\x00\x00\x00\x00\x01\x00\x06\x9a\x80\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00 \x16\ -\x00\x00\x01\x90*\xaa\xec8\ -\x00\x00\x12\xa2\x00\x00\x00\x00\x00\x01\x00\x06\xbb\x18\ -\x00\x00\x01\x90*\xaa\xec_\ -\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x03U\x15\ -\x00\x00\x01\x90*\xaa\xec,\ -\x00\x00\x04h\x00\x00\x00\x00\x00\x01\x00\x01\xbe\xa7\ -\x00\x00\x01\x90*\xaa\xecJ\ -\x00\x00\x10\x10\x00\x00\x00\x00\x00\x01\x00\x05\xe8a\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x01\xe2\x00\x01\x00\x00\x00\x01\x00\x00\xd7\xb1\ -\x00\x00\x01\x90*\xaa\xecE\ -\x00\x00\x06\x9a\x00\x00\x00\x00\x00\x01\x00\x02\x89Q\ -\x00\x00\x01\x90*\xaa\xecC\ -\x00\x00\x10\xd0\x00\x00\x00\x00\x00\x01\x00\x06%Y\ -\x00\x00\x01\x90*\xaa\xecC\ -\x00\x00\x04\x06\x00\x01\x00\x00\x00\x01\x00\x01\xa3\xc7\ -\x00\x00\x01\x90*\xaa\xecH\ -\x00\x00\x11\x92\x00\x01\x00\x00\x00\x01\x00\x06Zl\ -\x00\x00\x01\x90*\xaa\xec;\ -\x00\x00\x07\xa2\x00\x00\x00\x00\x00\x01\x00\x02\xe1\xaa\ -\x00\x00\x01\x90*\xaa\xecX\ -\x00\x00\x0ft\x00\x00\x00\x00\x00\x01\x00\x05\xb7(\ -\x00\x00\x01\x90*\xaa\xec\x1d\ -\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xe3\x9c\ -\x00\x00\x01\x90*\xaa\xec%\ -\x00\x00\x0a\xc6\x00\x00\x00\x00\x00\x01\x00\x03\xfb\x0b\ -\x00\x00\x01\x90*\xaa\xec?\ -\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x02H]\ -\x00\x00\x01\x90*\xaa\xec\x5c\ -\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x01?\xd5\ -\x00\x00\x01\x90*\xaa\xec\x1c\ -\x00\x00\x07\x00\x00\x00\x00\x00\x00\x01\x00\x02\xa8\x9e\ -\x00\x00\x01\x90*\xaa\xecZ\ -\x00\x00\x0e\x98\x00\x00\x00\x00\x00\x01\x00\x05a\xa6\ -\x00\x00\x01\x90*\xaa\xec&\ -\x00\x00\x12\xc0\x00\x00\x00\x00\x00\x01\x00\x06\xc6\x93\ -\x00\x00\x01\x90*\xaa\xec[\ -\x00\x00\x0c\xe6\x00\x00\x00\x00\x00\x01\x00\x04\xe4B\ -\x00\x00\x01\x90*\xaa\xecQ\ -\x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x03\x10\x1b\ -\x00\x00\x01\x90*\xaa\xecU\ -\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x02q\x08\ -\x00\x00\x01\x90*\xaa\xec.\ -\x00\x00\x11\xce\x00\x01\x00\x00\x00\x01\x00\x06py\ -\x00\x00\x01\x90*\xaa\xec!\ -\x00\x00\x13\xd8\x00\x00\x00\x00\x00\x01\x00\x07\x1dS\ -\x00\x00\x01\x90*\xaa\xec#\ -\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x03F\xcd\ -\x00\x00\x01\x90*\xaa\xec1\ -\x00\x00\x03>\x00\x00\x00\x00\x00\x01\x00\x01K2\ -\x00\x00\x01\x90*\xaa\xec\x22\ -\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x0314\ -\x00\x00\x01\x90*\xaa\xecX\ -\x00\x00\x0b$\x00\x00\x00\x00\x00\x01\x00\x04\x1aX\ -\x00\x00\x01\x90*\xaa\xecU\ -\x00\x00\x0a\x12\x00\x00\x00\x00\x00\x01\x00\x03\xc1\x1f\ -\x00\x00\x01\x90*\xaa\xecP\ -\x00\x00\x10^\x00\x00\x00\x00\x00\x01\x00\x05\xfd\x89\ -\x00\x00\x01\x90*\xaa\xecL\ -\x00\x00\x0c\x98\x00\x00\x00\x00\x00\x01\x00\x04\xa8\xb7\ -\x00\x00\x01\x90*\xaa\xecT\ -\x00\x00\x0a\xde\x00\x01\x00\x00\x00\x01\x00\x04\x02\xc4\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x11\xb2\x00\x00\x00\x00\x00\x01\x00\x06e(\ -\x00\x00\x01\x90*\xaa\xec0\ -\x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x03\x01\x95\ -\x00\x00\x01\x90*\xaa\xecP\ -\x00\x00\x14\x04\x00\x01\x00\x00\x00\x01\x00\x07-\xd5\ -\x00\x00\x01\x90*\xaa\xec7\ -\x00\x00\x03\xa0\x00\x00\x00\x00\x00\x01\x00\x01v\xc2\ -\x00\x00\x01\x90*\xaa\xec \ -\x00\x00\x13P\x00\x00\x00\x00\x00\x01\x00\x06\xf0\xed\ -\x00\x00\x01\x90*\xaa\xecC\ -\x00\x00\x04|\x00\x01\x00\x00\x00\x01\x00\x01\xcb\x04\ -\x00\x00\x01\x90*\xaa\xec+\ -\x00\x00\x0c\xd2\x00\x00\x00\x00\x00\x01\x00\x04\xd6D\ -\x00\x00\x01\x90*\xaa\xec&\ -\x00\x00\x09\xa4\x00\x01\x00\x00\x00\x01\x00\x03\x98S\ -\x00\x00\x01\x90*\xaa\xecI\ -\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x001\x03\ -\x00\x00\x01\x90*\xaa\xec$\ -\x00\x00\x11r\x00\x01\x00\x00\x00\x01\x00\x06S\x97\ -\x00\x00\x01\x90*\xaa\xecR\ -\x00\x00\x05`\x00\x00\x00\x00\x00\x01\x00\x02-B\ -\x00\x00\x01\x90*\xaa\xec?\ -\x00\x00\x0a\x9c\x00\x00\x00\x00\x00\x01\x00\x03\xedB\ -\x00\x00\x01\x90*\xaa\xec\x1f\ -\x00\x00\x10\x96\x00\x00\x00\x00\x00\x01\x00\x06\x0d\xde\ -\x00\x00\x01\x90*\xaa\xec4\ -\x00\x00\x12\x06\x00\x00\x00\x00\x00\x01\x00\x06\x83\xa0\ -\x00\x00\x01\x90*\xaa\xec5\ -\x00\x00\x05\xf8\x00\x01\x00\x00\x00\x01\x00\x02a\xa5\ -\x00\x00\x01\x90*\xaa\xec1\ -\x00\x00\x09\xcc\x00\x00\x00\x00\x00\x01\x00\x03\xa4\xc9\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x02V\xc3\ -\x00\x00\x01\x90*\xaa\xecW\ -\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x9f\x1c\ -\x00\x00\x01\x90*\xaa\xecU\ -\x00\x00\x0cJ\x00\x01\x00\x00\x00\x01\x00\x04\x93,\ -\x00\x00\x01\x90*\xaa\xec>\ -\x00\x00\x08(\x00\x00\x00\x00\x00\x01\x00\x03\x09\x12\ -\x00\x00\x01\x90*\xaa\xecG\ -\x00\x00\x07r\x00\x00\x00\x00\x00\x01\x00\x02\xcc6\ -\x00\x00\x01\x90*\xaa\xecG\ -\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x01\xd0v\ -\x00\x00\x01\x90*\xaa\xecM\ -\x00\x00\x0e*\x00\x00\x00\x00\x00\x01\x00\x05>\x5c\ -\x00\x00\x01\x90*\xaa\xec*\ -\x00\x00\x0c\xfe\x00\x00\x00\x00\x00\x01\x00\x04\xeb\xa4\ -\x00\x00\x01\x90*\xaa\xec@\ -\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xcfT\ -\x00\x00\x01\x90*\xaa\xec9\ -\x00\x00\x01\xaa\x00\x01\x00\x00\x00\x01\x00\x00\xcab\ -\x00\x00\x01\x90*\xaa\xec&\ -\x00\x00\x100\x00\x01\x00\x00\x00\x01\x00\x05\xf6h\ -\x00\x00\x01\x90*\xaa\xec#\ -\x00\x00\x0f\xe8\x00\x00\x00\x00\x00\x01\x00\x05\xd5T\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00s@\ -\x00\x00\x01\x90*\xaa\xec:\ -\x00\x00\x028\x00\x01\x00\x00\x00\x01\x00\x00\xef\xad\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x01\xe9s\ -\x00\x00\x01\x90*\xaa\xecJ\ -\x00\x00\x0e\xe8\x00\x00\x00\x00\x00\x01\x00\x05u\xbf\ -\x00\x00\x01\x90*\xaa\xecO\ -\x00\x00\x10t\x00\x01\x00\x00\x00\x01\x00\x06\x05\x01\ -\x00\x00\x01\x90*\xaa\xec)\ -\x00\x00\x03h\x00\x01\x00\x00\x00\x01\x00\x01j\xc4\ -\x00\x00\x01\x90*\xaa\xec3\ -\x00\x00\x0f\xb2\x00\x01\x00\x00\x00\x01\x00\x05\xc8\xcf\ -\x00\x00\x01\x90*\xaa\xec$\ -\x00\x00\x07(\x00\x00\x00\x00\x00\x01\x00\x02\xb2\xf2\ -\x00\x00\x01\x90*\xaa\xec9\ -\x00\x00\x0d\xf2\x00\x00\x00\x00\x00\x01\x00\x05(0\ -\x00\x00\x01\x90*\xaa\xecX\ -\x00\x00\x0e\x0e\x00\x00\x00\x00\x00\x01\x00\x053\x97\ -\x00\x00\x01\x90*\xaa\xecJ\ -\x00\x00\x11,\x00\x00\x00\x00\x00\x01\x00\x06B\x8b\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x0b<\x00\x00\x00\x00\x00\x01\x00\x04#\xda\ -\x00\x00\x01\x90*\xaa\xec4\ -\x00\x00\x0d\x9e\x00\x00\x00\x00\x00\x01\x00\x05\x10\x80\ -\x00\x00\x01\x90*\xaa\xecQ\ -\x00\x00\x02l\x00\x00\x00\x00\x00\x01\x00\x01\x05B\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02O\xce\ -\x00\x00\x01\x90*\xaa\xecW\ -\x00\x00\x11\x16\x00\x00\x00\x00\x00\x01\x00\x06;\x04\ -\x00\x00\x01\x90*\xaa\xecD\ -\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x01\xb1N\ -\x00\x00\x01\x90*\xaa\xecB\ -\x00\x00\x11B\x00\x01\x00\x00\x00\x01\x00\x06K?\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x09v\x00\x00\x00\x00\x00\x01\x00\x03\x86\xfa\ -\x00\x00\x01\x90\xe4\x1d\xbaE\ -\x00\x00\x0b\xdc\x00\x00\x00\x00\x00\x01\x00\x04T\xce\ -\x00\x00\x01\x90*\xaa\xec^\ -\x00\x00\x0a|\x00\x01\x00\x00\x00\x01\x00\x03\xd7\x86\ -\x00\x00\x01\x90*\xaa\xec@\ -\x00\x00\x08\x5c\x00\x00\x00\x00\x00\x01\x00\x03\x17\xfc\ -\x00\x00\x01\x90*\xaa\xec\x1f\ -\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\x88$\ -\x00\x00\x01\x90*\xaa\xec]\ -\x00\x00\x03\x86\x00\x01\x00\x00\x00\x01\x00\x01q\x90\ -\x00\x00\x01\x90*\xaa\xecZ\ -\x00\x00\x0b\xfe\x00\x00\x00\x00\x00\x01\x00\x04q\x14\ -\x00\x00\x01\x90*\xaa\xec\x1c\ -\x00\x00\x0dV\x00\x00\x00\x00\x00\x01\x00\x04\xfe\x97\ -\x00\x00\x01\x90*\xaa\xecS\ -\x00\x00\x0b\xb8\x00\x00\x00\x00\x00\x01\x00\x04G+\ -\x00\x00\x01\x90*\xaa\xecV\ -\x00\x00\x0e\xb8\x00\x01\x00\x00\x00\x01\x00\x05i\xec\ -\x00\x00\x01\x90*\xaa\xec#\ -\x00\x00\x01>\x00\x00\x00\x00\x00\x01\x00\x00\x8dd\ -\x00\x00\x01\x90*\xaa\xec'\ -\x00\x00\x13\x8a\x00\x01\x00\x00\x00\x01\x00\x07\x07\xf2\ -\x00\x00\x01\x90*\xaa\xec)\ -\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x02g\x0a\ -\x00\x00\x01\x90*\xaa\xecP\ -\x00\x00\x08\xc2\x00\x00\x00\x00\x00\x01\x00\x03;e\ -\x00\x00\x01\x90*\xaa\xec0\ -\x00\x00\x0c\x1e\x00\x00\x00\x00\x00\x01\x00\x04z\x96\ -\x00\x00\x01\x90*\xaa\xec=\ -\x00\x00\x09,\x00\x00\x00\x00\x00\x01\x00\x03^C\ -\x00\x00\x01\x90*\xaa\xec8\ -\x00\x00\x06l\x00\x00\x00\x00\x00\x01\x00\x02\x7f;\ -\x00\x00\x01\x90*\xaa\xec?\ -\x00\x00\x12\xe4\x00\x00\x00\x00\x00\x01\x00\x06\xcd\x94\ -\x00\x00\x01\x90*\xaa\xecC\ +\x00\x00\x0d\x88\x00\x00\x00\x00\x00\x01\x00\x05\x10\xca\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b(\x00\x00\x00\x00\x00\x01\x00\x04\x12\xc1\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x86\x00\x00\x00\x00\x00\x01\x00\x06\xffv\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x00\x95\xa7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09\xfa\x00\x00\x00\x00\x00\x01\x00\x03\xb0[\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x11\xb8\x00\x00\x00\x00\x00\x01\x00\x06f\x8c\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x13\xc0\x00\x00\x00\x00\x00\x01\x00\x07\x13|\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x07\x88\x00\x00\x00\x00\x00\x01\x00\x02\xd5I\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05~\x00\x00\x00\x00\x00\x01\x00\x02-H\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01$\x00\x00\x00\x00\x00\x01\x00\x00~d\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01\x0a\xa7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\x04\x00\x00\x00\x00\x00\x01\x00\x05\x97~\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\xf6\x00\x00\x00\x00\x00\x01\x00\x06\xd1\xc6\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x01\x00\x04\xee\xc8\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0cJ\x00\x00\x00\x00\x00\x01\x00\x04\x89\x0f\ +\x00\x00\x01\x8d\x0d\x8c\x812\ +\x00\x00\x05(\x00\x00\x00\x00\x00\x01\x00\x02\x16\x90\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0f&\x00\x00\x00\x00\x00\x01\x00\x05\xa1\x13\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0fZ\x00\x01\x00\x00\x00\x01\x00\x05\xb6\xa7\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x12:\x00\x00\x00\x00\x00\x01\x00\x06\x981\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\x12\x00\x00\x00\x00\x00\x01\x00\x02\x06\xec\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x09,\x00\x01\x00\x00\x00\x01\x00\x03X\x83\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07<\x00\x01\x00\x00\x00\x01\x00\x02\xc0\xe3\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x04\xce\x00\x00\x00\x00\x00\x01\x00\x01\xe7c\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\xd2\x00\x00\x00\x00\x00\x01\x00\x03\xed\xf9\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x00\xae\x00\x00\x00\x00\x00\x01\x00\x00'2\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x01\xf7\xb0\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0e\xd0\x00\x00\x00\x00\x00\x01\x00\x05u\x90\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x07T\x00\x01\x00\x00\x00\x01\x00\x02\xc5\x9c\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x00d\x00\x00\x00\x00\x00\x01\x00\x00\x11y\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x0bH\x00\x01\x00\x00\x00\x01\x00\x04\x1f\xb2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00d4\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01|\x00\x00\x00\x00\x00\x01\x00\x00\xa3\xc2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\xc0\x00\x00\x00\x00\x00\x01\x00\x06#N\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\x84\x00\x01\x00\x00\x00\x01\x00\x06\x0f\x80\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\x1e\x00\x01\x00\x00\x00\x01\x00\x03\xb9\x8b\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x09\xb6\x00\x00\x00\x00\x00\x01\x00\x03\x95w\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0d@\x00\x01\x00\x00\x00\x01\x00\x05\x04\x95\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04\x18\x00\x01\x00\x00\x00\x01\x00\x01\xa1\xcc\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x09Z\x00\x00\x00\x00\x00\x01\x00\x03w,\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08x\x00\x00\x00\x00\x00\x01\x00\x03 \xda\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0d\xae\x00\x00\x00\x00\x00\x01\x00\x05\x18c\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09\xd2\x00\x01\x00\x00\x00\x01\x00\x03\xa2\xc9\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x02\xee\x00\x01\x00\x00\x00\x01\x00\x01-S\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xf5\xc8\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08\xf8\x00\x00\x00\x00\x00\x01\x00\x03H\x0b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06\xac\x00\x01\x00\x00\x00\x01\x00\x02\x97\xf3\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0eJ\x00\x01\x00\x00\x00\x01\x00\x05Q5\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x00\xd8\x00\x00\x00\x00\x00\x01\x00\x00B:\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x0e\x18\x00\x01\x00\x00\x00\x01\x00\x05<]\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x01\x1c\xf5\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x11\xf4\x00\x01\x00\x00\x00\x01\x00\x06~\x09\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x03\xea\x00\x01\x00\x00\x00\x01\x00\x01\x8e\xf7\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\xbe\x00\x01\x00\x00\x00\x01\x00\x01z\xa0\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0bj\x00\x00\x00\x00\x00\x01\x00\x04'T\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03R\x00\x00\x00\x00\x00\x01\x00\x01Z\xb2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13@\x00\x00\x00\x00\x00\x01\x00\x06\xe8~\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12Z\x00\x00\x00\x00\x00\x01\x00\x06\xa2w\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x12\xdc\x00\x00\x00\x00\x00\x01\x00\x06\xcaT\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03\x06\x00\x00\x00\x00\x00\x01\x00\x011\xb4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x02\xa8\x00\x01\x00\x00\x00\x01\x00\x01\x15\xc8\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\xa2\x00\x01\x00\x00\x00\x01\x00\x05\xc38\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x01\x90\x00\x00\x00\x00\x00\x01\x00\x00\xadk\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0c\x8e\x00\x00\x00\x00\x00\x01\x00\x04\xc0\x07\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x12\x10\x00\x00\x00\x00\x00\x01\x00\x06\x8b|\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xb1\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12t\x00\x00\x00\x00\x00\x01\x00\x06\xab#\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x09\x10\x00\x00\x00\x00\x00\x01\x00\x03O\x9d\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04h\x00\x00\x00\x00\x00\x01\x00\x01\xb6H\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0f\xe2\x00\x00\x00\x00\x00\x01\x00\x05\xdc\x97\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xe2\x00\x01\x00\x00\x00\x01\x00\x00\xd3*\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06\x9a\x00\x00\x00\x00\x00\x01\x00\x02\x88\xce\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10\xa2\x00\x00\x00\x00\x00\x01\x00\x06\x18\x80\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04\x06\x00\x01\x00\x00\x00\x01\x00\x01\x9b\xcf\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x11d\x00\x01\x00\x00\x00\x01\x00\x06Ly\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xa2\x00\x00\x00\x00\x00\x01\x00\x02\xdfP\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x0fF\x00\x00\x00\x00\x00\x01\x00\x05\xac*\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x02\x1a\x00\x00\x00\x00\x00\x01\x00\x00\xdf\x03\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0a\x98\x00\x00\x00\x00\x00\x01\x00\x03\xe1\xc4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xa0\x00\x00\x00\x00\x00\x01\x00\x02<\xed\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\x18\x00\x00\x00\x00\x00\x01\x00\x019\xa4\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x07\x00\x00\x00\x00\x00\x00\x01\x00\x02\xa7\x98\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0ej\x00\x00\x00\x00\x00\x01\x00\x05XR\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\x92\x00\x00\x00\x00\x00\x01\x00\x06\xb6O\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0c\xb8\x00\x00\x00\x00\x00\x01\x00\x04\xdd\xcc\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x08@\x00\x00\x00\x00\x00\x01\x00\x03\x0c\x8a\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x060\x00\x00\x00\x00\x00\x01\x00\x02q)\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\xa0\x00\x01\x00\x00\x00\x01\x00\x06b7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\xaa\x00\x00\x00\x00\x00\x01\x00\x07\x0b\x1b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08\xe2\x00\x00\x00\x00\x00\x01\x00\x03A\xca\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03>\x00\x00\x00\x00\x00\x01\x00\x01D\xb7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08\x9e\x00\x00\x00\x00\x00\x01\x00\x03,\xbd\ +\x00\x00\x01\x8e.\xfc\xa1\x87\ +\x00\x00\x0a\xf6\x00\x00\x00\x00\x00\x01\x00\x04\x00\x83\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x09\xe4\x00\x00\x00\x00\x00\x01\x00\x03\xa8\xbb\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x100\x00\x00\x00\x00\x00\x01\x00\x05\xf1]\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0cj\x00\x00\x00\x00\x00\x01\x00\x04\x97\xa2\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0a\xb0\x00\x01\x00\x00\x00\x01\x00\x03\xe9C\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\x84\x00\x00\x00\x00\x00\x01\x00\x06W.\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07\xfa\x00\x00\x00\x00\x00\x01\x00\x02\xfev\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x13\xd6\x00\x01\x00\x00\x00\x01\x00\x07-\x9d\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x03\xa0\x00\x00\x00\x00\x00\x01\x00\x01o\x88\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x22\x00\x00\x00\x00\x00\x01\x00\x06\xdf\x9b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04|\x00\x01\x00\x00\x00\x01\x00\x01\xc2T\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0c\xa4\x00\x00\x00\x00\x00\x01\x00\x04\xd0)\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09v\x00\x01\x00\x00\x00\x01\x00\x03\x80\x9e\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x000\x1c\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x11D\x00\x01\x00\x00\x00\x01\x00\x06E\xaf\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x05`\x00\x00\x00\x00\x00\x01\x00\x02\x22\x82\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0an\x00\x00\x00\x00\x00\x01\x00\x03\xd4Q\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x10h\x00\x00\x00\x00\x00\x01\x00\x06\x01k\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\xd8\x00\x00\x00\x00\x00\x01\x00\x06t\xf5\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xf8\x00\x00\x00\x00\x00\x01\x00\x02U\xa8\ +\x00\x00\x01\x8d\x0d\x8c\x812\ +\x00\x00\x09\x9e\x00\x00\x00\x00\x00\x01\x00\x03\x8d\x01\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x05\xde\x00\x00\x00\x00\x00\x01\x00\x02K\x12\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x06\xd8\x00\x01\x00\x00\x00\x01\x00\x02\x9e!\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0c\x1c\x00\x01\x00\x00\x00\x01\x00\x04\x82\x8b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x08(\x00\x00\x00\x00\x00\x01\x00\x03\x05\xb7\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07r\x00\x00\x00\x00\x00\x01\x00\x02\xcan\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x01\xc7\xbe\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0d\xfc\x00\x00\x00\x00\x00\x01\x00\x055q\ +\x00\x00\x01\x8f\x04\xde\x0ap\ +\x00\x00\x0c\xd0\x00\x00\x00\x00\x00\x01\x00\x04\xe4\xf3\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xcc\x00\x00\x00\x00\x00\x01\x00\x00\xcb\x07\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\xaa\x00\x01\x00\x00\x00\x01\x00\x00\xc6\x1d\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x10\x02\x00\x01\x00\x00\x00\x01\x00\x05\xeaE\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\xba\x00\x00\x00\x00\x00\x01\x00\x05\xc9\xf2\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00q\x06\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x028\x00\x01\x00\x00\x00\x01\x00\x00\xea\xc3\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x04\xb6\x00\x00\x00\x00\x00\x01\x00\x01\xe0D\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0e\xba\x00\x00\x00\x00\x00\x01\x00\x05l\x19\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x10F\x00\x01\x00\x00\x00\x01\x00\x05\xf8\x99\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x03h\x00\x01\x00\x00\x00\x01\x00\x01c\x9e\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0f\x84\x00\x01\x00\x00\x00\x01\x00\x05\xbd}\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x07(\x00\x00\x00\x00\x00\x01\x00\x02\xb1\x9f\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0d\xc4\x00\x00\x00\x00\x00\x01\x00\x05\x1f\xe6\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0d\xe0\x00\x00\x00\x00\x00\x01\x00\x05*\xfd\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x10\xfe\x00\x00\x00\x00\x00\x01\x00\x064\xe5\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\x0e\x00\x00\x00\x00\x00\x01\x00\x04\x09\xb4\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0dp\x00\x00\x00\x00\x00\x01\x00\x05\x08\xe9\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x02l\x00\x00\x00\x00\x00\x01\x00\x01\x00R\ +\x00\x00\x01\x90N\xda\x14\x95\ +\x00\x00\x05\xb2\x00\x01\x00\x00\x00\x01\x00\x02D\x22\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x10\xe8\x00\x00\x00\x00\x00\x01\x00\x06-\x9a\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x04D\x00\x00\x00\x00\x00\x01\x00\x01\xa9J\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x11\x14\x00\x01\x00\x00\x00\x01\x00\x06=_\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\xae\x00\x00\x00\x00\x00\x01\x00\x04E,\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0aN\x00\x01\x00\x00\x00\x01\x00\x03\xbe\x9d\ +\x00\x00\x01\x8b\xd7}+z\ +\x00\x00\x08\x5c\x00\x00\x00\x00\x00\x01\x00\x03\x141\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x03\xd6\x00\x00\x00\x00\x00\x01\x00\x01\x80\x94\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x03\x86\x00\x01\x00\x00\x00\x01\x00\x01j^\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0b\xd0\x00\x00\x00\x00\x00\x01\x00\x04a+\ +\x00\x00\x01\x88\xae\xf9[%\ +\x00\x00\x0d(\x00\x00\x00\x00\x00\x01\x00\x04\xf7Y\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x0b\x8a\x00\x00\x00\x00\x00\x01\x00\x047\xed\ +\x00\x00\x01\x8b\xd7}+~\ +\x00\x00\x0e\x8a\x00\x01\x00\x00\x00\x01\x00\x05`Y\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x01>\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x97\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x13\x5c\x00\x01\x00\x00\x00\x01\x00\x06\xf6\x14\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ +\x00\x00\x06\x0c\x00\x00\x00\x00\x00\x01\x00\x02gq\ +\x00\x00\x01\x88\xae\xf9[-\ +\x00\x00\x08\xc2\x00\x00\x00\x00\x00\x01\x00\x036\xaa\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x0b\xf0\x00\x00\x00\x00\x00\x01\x00\x04jo\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x09@\x00\x00\x00\x00\x00\x01\x00\x03m\x0b\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x06l\x00\x00\x00\x00\x00\x01\x00\x02\x7f\x01\ +\x00\x00\x01\x88\xae\xf9[)\ +\x00\x00\x12\xb6\x00\x00\x00\x00\x00\x01\x00\x06\xbd\x15\ +\x00\x00\x01\x8e.\xfc\xa1\x83\ " def qInitResources(): diff --git a/src/GridCalEngine/Compilers/circuit_to_bentayga.py b/src/GridCalEngine/Compilers/circuit_to_bentayga.py index 6403fffef..7fd509d07 100644 --- a/src/GridCalEngine/Compilers/circuit_to_bentayga.py +++ b/src/GridCalEngine/Compilers/circuit_to_bentayga.py @@ -17,7 +17,7 @@ import os.path import numpy as np -from GridCalEngine.enumerations import SolverType, ReactivePowerControlMode, HvdcControlType +from GridCalEngine.enumerations import SolverType, HvdcControlType from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -618,7 +618,7 @@ def get_snapshots_from_bentayga(circuit: MultiCircuit): data.k_qf_m = btg_data.control_indices.k_qf_m data.k_zero_beq = btg_data.control_indices.k_zero_beq data.k_vf_beq = btg_data.control_indices.k_vf_beq - data.k_vt_m = btg_data.control_indices.k_vt_m + data.k_vt_m = btg_data.control_indices.k_v_m data.k_qt_m = btg_data.control_indices.k_qt_m data.k_pf_dp = btg_data.control_indices.k_pf_dp data.i_vsc = btg_data.control_indices.i_vsc @@ -645,8 +645,8 @@ def get_bentayga_pf_options(opt: PowerFlowOptions): SolverType.FASTDECOUPLED: btg.PowerFlowSolvers.FastDecoupled } - q_control_dict = {ReactivePowerControlMode.NoControl: btg.QControlMode.NoControl, - ReactivePowerControlMode.Direct: btg.QControlMode.Direct} + q_control_dict = {False: btg.QControlMode.NoControl, + True: btg.QControlMode.Direct} solver_type = solver_dict.get(opt.solver_type, btg.PowerFlowSolvers.NewtonRaphson) diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 7f4ef7f44..5dff0f5e4 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -23,7 +23,7 @@ from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.enumerations import (BusMode, BranchImpedanceMode, ExternalGridMode, ConverterControlType, - TransformerControlType, HvdcControlType) + TapPhaseControl, TapModuleControl, HvdcControlType) from GridCalEngine.basic_structures import BoolVec import GridCalEngine.DataStructures as ds @@ -79,6 +79,18 @@ def set_bus_control_voltage(i: int, expected_value=bus_data.Vbus[i]) +def set_branch_control_mode(k: int, i: int, f: int, t: int, + mode: Union[TransformerControlType, ConverterControlType], + bus_data: ds.BusData, bus_voltage_used: BoolVec,): + + if mode == TransformerControlType.V: + bus_data.bus_types[i] = BusMode.PQV_tpe.value # remote bus to PQV type + elif mode == TransformerControlType.PtV: + pass + if mode == ConverterControlType.type_I_1: # VAC + pass + + def get_bus_data(circuit: MultiCircuit, areas_dict: Dict[Area, int], t_idx: int = -1, @@ -917,10 +929,7 @@ def get_branch_data(circuit: MultiCircuit, data.monitor_loading[ii] = int(elm.monitor_loading) if not use_stored_guess: - if elm.control_mode == TransformerControlType.V: - bus_data.Vbus[t] = elm.vset - - elif elm.control_mode == TransformerControlType.PtV: # 2a:Vdc + if elm.tap_module_control_mode == TapModuleControl.Vm: bus_data.Vbus[t] = elm.vset ii += 1 @@ -1002,10 +1011,7 @@ def get_branch_data(circuit: MultiCircuit, data.monitor_loading[ii] = int(elm.monitor_loading) if not use_stored_guess: - if elm.control_mode == TransformerControlType.V: - bus_data.Vbus[t] = elm.vset - - elif elm.control_mode == TransformerControlType.PtV: # 2a:Vdc + if elm.tap_module_control_mode == TapModuleControl.Vm: bus_data.Vbus[t] = elm.vset ii += 1 diff --git a/src/GridCalEngine/Compilers/circuit_to_newton_pa.py b/src/GridCalEngine/Compilers/circuit_to_newton_pa.py index efd9e224e..d8be912de 100644 --- a/src/GridCalEngine/Compilers/circuit_to_newton_pa.py +++ b/src/GridCalEngine/Compilers/circuit_to_newton_pa.py @@ -22,7 +22,7 @@ from GridCalEngine.basic_structures import IntVec, Vec from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.enumerations import (TransformerControlType, HvdcControlType, SolverType, TimeGrouping, - ReactivePowerControlMode, ZonalGrouping, MIPSolvers, ContingencyMethod) + ZonalGrouping, MIPSolvers, ContingencyMethod) import GridCalEngine.Devices as dev from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import PowerFlowResults @@ -715,7 +715,8 @@ def add_transformer_data(circuit: MultiCircuit, if override_controls: tr2.setAllControlMode(npa.BranchControlModes.Fixed) else: - tr2.setAllControlMode(ctrl_dict[elm.control_mode]) # TODO: Warn about this + # tr2.setAllControlMode(ctrl_dict[elm.control_mode]) # TODO: implement this in Newton + pass tr2.phase_min = elm.tap_phase_min tr2.phase_max = elm.tap_phase_max @@ -1111,7 +1112,7 @@ def get_snapshots_from_newtonpa(circuit: MultiCircuit, override_branch_controls= data.k_qf_m = control_indices.k_qf_m data.k_zero_beq = control_indices.k_zero_beq data.k_vf_beq = control_indices.k_vf_beq - data.k_vt_m = control_indices.k_vt_m + data.k_vt_m = control_indices.k_v_m data.k_qt_m = control_indices.k_qt_m data.k_pf_dp = control_indices.k_pf_dp data.i_vsc = control_indices.i_vsc @@ -1138,8 +1139,8 @@ def get_newton_pa_pf_options(opt: PowerFlowOptions) -> "npa.PowerFlowOptions": SolverType.FASTDECOUPLED: npa.SolverType.FD } - q_control_dict = {ReactivePowerControlMode.NoControl: npa.ReactivePowerControlMode.NoControl, - ReactivePowerControlMode.Direct: npa.ReactivePowerControlMode.Direct} + q_control_dict = {False: npa.ReactivePowerControlMode.NoControl, + True: npa.ReactivePowerControlMode.Direct} if opt.solver_type in solver_dict.keys(): solver_type = solver_dict[opt.solver_type] @@ -1195,8 +1196,8 @@ def get_newton_pa_nonlinear_opf_options(pf_opt: PowerFlowOptions, :param opf_opt: OptimalPowerFlowOptions instance :return: NonlinearOpfOptions """ - q_control_dict = {ReactivePowerControlMode.NoControl: npa.ReactivePowerControlMode.NoControl, - ReactivePowerControlMode.Direct: npa.ReactivePowerControlMode.Direct} + q_control_dict = {False: npa.ReactivePowerControlMode.NoControl, + True: npa.ReactivePowerControlMode.Direct} solver_dict = {MIPSolvers.CBC: npa.LpSolvers.Highs, MIPSolvers.HIGHS: npa.LpSolvers.Highs, @@ -1279,10 +1280,12 @@ def newton_pa_pf(circuit: MultiCircuit, :param opf_results: Instance of :return: Newton Power flow results object """ + override_branch_controls = not (pf_opt.control_taps_modules and pf_opt.control_taps_phase) + npa_circuit, _ = to_newton_pa(circuit, use_time_series=time_series, time_indices=None, - override_branch_controls=pf_opt.override_branch_controls, + override_branch_controls=override_branch_controls, opf_results=opf_results) pf_options = get_newton_pa_pf_options(pf_opt) @@ -1319,10 +1322,13 @@ def newton_pa_contingencies(circuit: MultiCircuit, :param time_indices: Array of time indices :return: Newton Power flow results object """ + + override_branch_controls = not (con_opt.pf_options.control_taps_modules and con_opt.pf_options.control_taps_phase) + npa_circuit, _ = to_newton_pa(circuit, use_time_series=time_series, time_indices=None, - override_branch_controls=con_opt.pf_options.override_branch_controls) + override_branch_controls=override_branch_controls) pf_options = get_newton_pa_pf_options(con_opt.pf_options) lin_opt = get_newton_pa_linear_options(con_opt.lin_options) diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 89ec71eb7..7251a6a8b 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -105,10 +105,8 @@ def __init__(self, nelm: int, nbus: int): self.alpha2: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha2) self.alpha3: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha3) self.control_mode: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_tower_types: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_underground_line_types: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_sequence_line_types: ObjVec = np.zeros(self.nelm, dtype=object) - self.possible_transformer_types: ObjVec = np.zeros(self.nelm, dtype=object) + self.tap_module_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) + self.tap_phase_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) self.contingency_enabled: IntVec = np.ones(self.nelm, dtype=int) self.monitor_loading: IntVec = np.ones(self.nelm, dtype=int) @@ -122,11 +120,6 @@ def __init__(self, nelm: int, nbus: int): self.original_idx: IntVec = np.zeros(nelm, dtype=int) - self.possible_transformer_types = np.ones(self.nelm, dtype=list) - self.possible_tower_types = np.ones(self.nelm, dtype=list) - self.possible_underground_line_types = np.ones(self.nelm, dtype=list) - self.possible_sequence_line_types = np.ones(self.nelm, dtype=list) - def size(self) -> int: """ Get size of the structure @@ -179,6 +172,9 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.conn = self.conn[elm_idx] # winding connection data.control_mode = self.control_mode[elm_idx] + data.tap_phase_control_mode = self.tap_phase_control_mode[elm_idx] + data.tap_module_control_mode = self.tap_module_control_mode[elm_idx] + data.contingency_enabled = self.contingency_enabled[elm_idx] data.monitor_loading = self.monitor_loading[elm_idx] @@ -265,6 +261,9 @@ def copy(self) -> "BranchData": data.conn = self.conn.copy() # winding connection data.control_mode = self.control_mode.copy() + data.tap_phase_control_mode = self.tap_phase_control_mode.copy() + data.tap_module_control_mode = self.tap_module_control_mode.copy() + data.contingency_enabled = self.contingency_enabled.copy() data.monitor_loading = self.monitor_loading.copy() diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 7c21a6395..f2bf119e7 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -174,7 +174,7 @@ class NumericalCircuit: 'k_qf_m', 'k_zero_beq', 'k_vf_beq', - 'k_vt_m', + 'k_v_m', 'k_qt_m', 'k_pf_dp', 'i_vsc', @@ -1190,15 +1190,15 @@ def k_vf_beq(self): return self.simulation_indices_.k_vf_beq @property - def k_vt_m(self): + def k_v_m(self): """ - Get k_vt_m + Get k_v_m :return: """ if self.simulation_indices_ is None: self.simulation_indices_ = self.get_simulation_indices() - return self.simulation_indices_.k_vt_m + return self.simulation_indices_.k_v_m @property def k_qt_m(self): @@ -1627,7 +1627,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] idx_dvm = np.r_[self.pq, self.p] - idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_vt_m] + idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_v_m] idx_dtau = np.r_[self.k_pf_tau, self.k_pf_dp] # idx_dbeq = np.r_[self.k_zero_beq, self.k_vf_beq] idx_dbeq = np.r_[self.k_zero_beq] @@ -1789,11 +1789,11 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: index=self.branch_data.names[self.k_vf_beq], ) - elif structure_type == 'k_vt_m': + elif structure_type == 'k_v_m': df = pd.DataFrame( - data=self.k_vt_m, - columns=['k_vt_m'], - index=self.branch_data.names[self.k_vt_m], + data=self.k_v_m, + columns=['k_v_m'], + index=self.branch_data.names[self.k_v_m], ) elif structure_type == 'k_qt_m': diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index 76103a273..0c0d07f6d 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -21,9 +21,8 @@ from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.Devices.Associations.association import Associations from GridCalEngine.enumerations import (TransformerControlType, WindingsConnection, BuildStatus, - TapAngleControl, TapModuleControl, TapChangerTypes, SubObjectType) + TapPhaseControl, TapModuleControl, TapChangerTypes) from GridCalEngine.Devices.Parents.controllable_branch_parent import ControllableBranchParent from GridCalEngine.Devices.Branches.transformer_type import TransformerType, reverse_transformer_short_circuit_study from GridCalEngine.Devices.Parents.editable_device import DeviceType @@ -67,9 +66,9 @@ def __init__(self, temp_base: float = 20.0, temp_oper: float = 20.0, alpha: float = 0.00330, - control_mode: TransformerControlType = TransformerControlType.fixed, # legacy? + control_mode: TransformerControlType = TransformerControlType.fixed, # legacy? tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, - tap_angle_control_mode: TapAngleControl = TapAngleControl.fixed, + tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, template: TransformerType = None, contingency_factor: float = 1.0, protection_rating_factor: float = 1.4, @@ -180,7 +179,7 @@ def __init__(self, alpha=alpha, control_mode=control_mode, tap_module_control_mode=tap_module_control_mode, - tap_angle_control_mode=tap_angle_control_mode, + tap_phase_control_mode=tap_phase_control_mode, contingency_factor=contingency_factor, protection_rating_factor=protection_rating_factor, contingency_enabled=contingency_enabled, @@ -226,10 +225,6 @@ def __init__(self, # type template self.template = template - # association with transformer templates - self.possible_transformer_types: Associations = Associations(device_type=DeviceType.TransformerTypeDevice) - self.data = Associations(device_type=DeviceType.TransformerTypeDevice) - # register self.register(key='HV', units='kV', tpe=float, definition='High voltage rating') self.register(key='LV', units='kV', tpe=float, definition='Low voltage rating') @@ -244,23 +239,6 @@ def __init__(self, self.register(key='template', units='', tpe=DeviceType.TransformerTypeDevice, definition='', editable=False) - self.register(key='possible_transformer_types', units='', tpe=SubObjectType.Associations, - definition='Possible transformer types (>1 to denote association), - to denote no association', - display=False) - - def apply_templates_to_transformers(self, obj, Sbase, logger=Logger()): - """ - Apply the given template to all possible transformer types in the main circuit. - - :param self: The main circuit containing possible transformer types. - :param obj: The template object to apply. - :param Sbase: The base power for the template. - :param logger: Logger for capturing errors and information. - """ - for transformer_type in self.possible_transformer_types: - if transformer_type in self.data: - self.data[transformer_type].apply_template(obj, Sbase, logger) - def set_hv_and_lv(self, HV: float, LV: float): """ set the high and low voltage values @@ -284,6 +262,50 @@ def set_hv_and_lv(self, HV: float, LV: float): else: self.LV = LV + # def copy(self, bus_dict=None): + # """ + # Returns a copy of the branch + # @return: A new with the same content as this + # """ + # + # if bus_dict is None: + # f = self.bus_from + # t = self.bus_to + # else: + # f = bus_dict[self.bus_from] + # t = bus_dict[self.bus_to] + # + # # z_series = complex(self.R, self.X) + # # y_shunt = complex(self.G, self.B) + # b = Transformer2W(bus_from=f, + # bus_to=t, + # name=self.name, + # r=self.R, + # x=self.X, + # g=self.G, + # b=self.B, + # rate=self.rate, + # tap_module=self.tap_module, + # tap_phase=self.tap_phase, + # active=self.active, + # mttf=self.mttf, + # mttr=self.mttr, + # vset=self.vset, + # temp_base=self.temp_base, + # temp_oper=self.temp_oper, + # alpha=self.alpha, + # template=self.template, + # opex=self.opex, + # capex=self.capex) + # + # b.regulation_bus = self.regulation_bus + # b.regulation_cn = self.regulation_cn + # b.active_prof = self.active_prof + # b.rate_prof = self.rate_prof + # b.Cost_prof = self.Cost_prof + # + # return b + def get_from_to_nominal_voltages(self) -> Tuple[float, float]: """ @@ -342,6 +364,7 @@ def apply_template(self, obj: TransformerType, Sbase, logger=Logger()): """ if isinstance(obj, TransformerType): + VH, VL = self.get_sorted_buses_voltages() # get the transformer impedance in the base of the transformer @@ -381,18 +404,17 @@ def get_save_data(self): for property_name, properties in self.registered_properties.items(): obj = getattr(self, property_name) - if obj is not None: - if properties.tpe == DeviceType.BusDevice: - obj = obj.idtag + if properties.tpe == DeviceType.BusDevice: + obj = obj.idtag - elif properties.tpe == DeviceType.TransformerTypeDevice: - if obj is None: - obj = '' - else: - obj = obj.idtag + elif properties.tpe == DeviceType.TransformerTypeDevice: + if obj is None: + obj = '' + else: + obj = obj.idtag - elif properties.tpe not in [str, float, int, bool]: - obj = str(obj) + elif properties.tpe not in [str, float, int, bool]: + obj = str(obj) data.append(obj) return data @@ -502,48 +524,3 @@ def get_transformer_type(self, Sbase: float = 100.0) -> TransformerType: name='type from ' + self.name) return tpe - - - # def copy(self, bus_dict=None): - # """ - # Returns a copy of the branch - # @return: A new with the same content as this - # """ - # - # if bus_dict is None: - # f = self.bus_from - # t = self.bus_to - # else: - # f = bus_dict[self.bus_from] - # t = bus_dict[self.bus_to] - # - # # z_series = complex(self.R, self.X) - # # y_shunt = complex(self.G, self.B) - # b = Transformer2W(bus_from=f, - # bus_to=t, - # name=self.name, - # r=self.R, - # x=self.X, - # g=self.G, - # b=self.B, - # rate=self.rate, - # tap_module=self.tap_module, - # tap_phase=self.tap_phase, - # active=self.active, - # mttf=self.mttf, - # mttr=self.mttr, - # vset=self.vset, - # temp_base=self.temp_base, - # temp_oper=self.temp_oper, - # alpha=self.alpha, - # template=self.template, - # opex=self.opex, - # capex=self.capex) - # - # b.regulation_bus = self.regulation_bus - # b.regulation_cn = self.regulation_cn - # b.active_prof = self.active_prof - # b.rate_prof = self.rate_prof - # b.Cost_prof = self.Cost_prof - # - # return b diff --git a/src/GridCalEngine/Devices/Branches/winding.py b/src/GridCalEngine/Devices/Branches/winding.py index 8fa91a263..3d4379dc9 100644 --- a/src/GridCalEngine/Devices/Branches/winding.py +++ b/src/GridCalEngine/Devices/Branches/winding.py @@ -19,7 +19,7 @@ from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode from GridCalEngine.enumerations import (TransformerControlType, WindingsConnection, BuildStatus, - TapAngleControl, TapModuleControl) + TapPhaseControl, TapModuleControl) from GridCalEngine.Devices.Branches.transformer_type import TransformerType from GridCalEngine.Devices.Branches.transformer import Transformer2W from GridCalEngine.Devices.Parents.editable_device import DeviceType @@ -65,7 +65,7 @@ def __init__(self, alpha: float = 0.00330, control_mode: TransformerControlType = TransformerControlType.fixed, tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, - tap_angle_control_mode: TapAngleControl = TapAngleControl.fixed, + tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, template: TransformerType = None, contingency_factor: float = 1.0, protection_rating_factor: float = 1.4, @@ -174,7 +174,7 @@ def __init__(self, alpha=alpha, control_mode=control_mode, tap_module_control_mode=tap_module_control_mode, - tap_angle_control_mode=tap_angle_control_mode, + tap_phase_control_mode=tap_phase_control_mode, contingency_factor=contingency_factor, protection_rating_factor=protection_rating_factor, contingency_enabled=contingency_enabled, diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index a0f138865..8be471882 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -19,7 +19,7 @@ from typing import Union from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import (TransformerControlType, BuildStatus, TapModuleControl, TapAngleControl, +from GridCalEngine.enumerations import (TransformerControlType, BuildStatus, TapModuleControl, TapPhaseControl, SubObjectType, TapChangerTypes) from GridCalEngine.Devices.Parents.branch_parent import BranchParent from GridCalEngine.Devices.Branches.tap_changer import TapChanger @@ -60,7 +60,7 @@ def __init__(self, alpha: float, control_mode: TransformerControlType, tap_module_control_mode: TapModuleControl, - tap_angle_control_mode: TapAngleControl, + tap_phase_control_mode: TapPhaseControl, contingency_factor: float, protection_rating_factor: float, contingency_enabled: bool, @@ -213,7 +213,7 @@ def __init__(self, self.control_mode: TransformerControlType = control_mode # Legacy self.tap_module_control_mode: TapModuleControl = tap_module_control_mode - self.tap_angle_control_mode: TapAngleControl = tap_angle_control_mode + self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode self.regulation_branch: BranchParent = regulation_branch @@ -256,8 +256,8 @@ def __init__(self, self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, definition='Control available with the tap module') - self.register(key='tap_angle_control_mode', units='', tpe=TapAngleControl, - definition='Control available with the tap angle') + self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, + definition='Control available with the tap angle', old_names=['tap_angle_control_mode']) self.register(key='vset', units='p.u.', tpe=float, definition='Objective voltage at the "to" side of the bus when regulating the tap.') diff --git a/src/GridCalEngine/Devices/Parents/editable_device.py b/src/GridCalEngine/Devices/Parents/editable_device.py index 146b06d3a..496301697 100644 --- a/src/GridCalEngine/Devices/Parents/editable_device.py +++ b/src/GridCalEngine/Devices/Parents/editable_device.py @@ -20,11 +20,11 @@ from GridCalEngine.Devices.profile import Profile from typing import List, Dict, AnyStr, Any, Optional, Union, Type, Tuple from GridCalEngine.enumerations import (DeviceType, TimeFrame, BuildStatus, WindingsConnection, TransformerControlType, - ConverterControlType, TapModuleControl, TapAngleControl, SubObjectType, + ConverterControlType, TapModuleControl, TapPhaseControl, SubObjectType, HvdcControlType, ActionType, AvailableTransferMode, ContingencyMethod, CpfParametrization, CpfStopAt, InvestmentEvaluationMethod, SolverType, InvestmentsEvaluationObjectives, NodalCapacityMethod, TimeGrouping, - ZonalGrouping, MIPSolvers, AcOpfMode, ReactivePowerControlMode, + ZonalGrouping, MIPSolvers, AcOpfMode, BranchImpedanceMode, FaultType) # types that can be assigned to a GridCal property @@ -41,7 +41,7 @@ Type[TransformerControlType], Type[ConverterControlType], Type[TapModuleControl], - Type[TapAngleControl], + Type[TapPhaseControl], Type[ActionType], Type[AvailableTransferMode], Type[ContingencyMethod], @@ -55,7 +55,6 @@ Type[ZonalGrouping], Type[MIPSolvers], Type[AcOpfMode], - Type[ReactivePowerControlMode], Type[BranchImpedanceMode], Type[FaultType] ] diff --git a/src/GridCalEngine/IO/gridcal/json_parser.py b/src/GridCalEngine/IO/gridcal/json_parser.py index c798ffad1..9a9a87d9b 100644 --- a/src/GridCalEngine/IO/gridcal/json_parser.py +++ b/src/GridCalEngine/IO/gridcal/json_parser.py @@ -27,7 +27,7 @@ from GridCalEngine.Devices.profile import Profile from GridCalEngine.Devices.Parents.editable_device import EditableDevice from GridCalEngine.enumerations import (DeviceType, ConverterControlType, HvdcControlType, BuildStatus, - TransformerControlType) + TransformerControlType, TapModuleControl, TapPhaseControl) def add_to_dict(main_dict: Dict[str, List[Any]], data_to_append: Dict[Any, Any], key: str): @@ -1765,12 +1765,15 @@ def save_json_file_v3(file_path: str, circuit: MultiCircuit, simulation_drivers: circuit.get_dc_lines()] # Transformer 2W - control_modes = {TransformerControlType.fixed: 0, - TransformerControlType.V: 1, - TransformerControlType.Pf: 2, - TransformerControlType.PtV: 3, - TransformerControlType.Qt: 4, - TransformerControlType.PtQt: 5} + control_modes = {TapModuleControl.fixed: None, + TapModuleControl.Vm: "Vm", + TapModuleControl.Qf: "Qf", + TapModuleControl.Qt: "Qt", + TapPhaseControl.fixed: None, + TapPhaseControl.Pf: "Pf", + TapPhaseControl.Pt: "Pt", + } + elements["Transformer2w"] = [{'id': elm.idtag, 'type': 'transformer', 'phases': 'ps', @@ -1804,7 +1807,8 @@ def save_json_file_v3(file_path: str, circuit: MultiCircuit, simulation_drivers: 'max_tap_angle': elm.tap_phase_max, 'id_tap_angle_table': "", - 'control_mode': control_modes[elm.control_mode], + 'tap_phase_control_mode': control_modes[elm.tap_phase_control_mode], + 'tap_module_control_mode': control_modes[elm.tap_module_control_mode], # 'min_tap_position': self.tap_changer.min_tap, # 'max_tap_position': self.tap_changer.max_tap, @@ -1867,7 +1871,8 @@ def save_json_file_v3(file_path: str, circuit: MultiCircuit, simulation_drivers: 'max_tap_angle': elm.tap_phase_max, 'id_tap_angle_table': "", - 'control_mode': control_modes[elm.control_mode], + 'tap_phase_control_mode': control_modes[elm.tap_phase_control_mode], + 'tap_module_control_mode': control_modes[elm.tap_module_control_mode], # 'min_tap_position': self.tap_changer.min_tap, # 'max_tap_position': self.tap_changer.max_tap, diff --git a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py index 1555dcc13..78f6da2ab 100644 --- a/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py +++ b/src/GridCalEngine/Simulations/ContinuationPowerFlow/continuation_power_flow.py @@ -17,7 +17,7 @@ import numpy as np -from GridCalEngine.enumerations import ReactivePowerControlMode, CpfParametrization, CpfStopAt +from GridCalEngine.enumerations import CpfParametrization, CpfStopAt from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_direct from GridCalEngine.Topology.simulation_indices import compile_types @@ -540,7 +540,7 @@ def continuation_nr(Ybus, Cf, Ct, Yf, Yt, branch_rates, Sbase, Sbus_base, Sbus_t vd: IntVec, pv: IntVec, pq: IntVec, pqv: IntVec, p: IntVec, step: float, approximation_order: CpfParametrization, adapt_step, step_min, step_max, error_tol=1e-3, tol=1e-6, max_it=20, - stop_at=CpfStopAt.Nose, control_q=ReactivePowerControlMode.NoControl, + stop_at=CpfStopAt.Nose, control_q=False, qmax_bus=None, qmin_bus=None, original_bus_types=None, base_overload_number=0, verbose=False, call_back_fx=None) -> CpfNumericResults: """ @@ -718,7 +718,7 @@ def continuation_nr(Ybus, Cf, Ct, Yf, Yt, branch_rates, Sbase, Sbus_base, Sbus_t print(V) # Check controls - if control_q == ReactivePowerControlMode.Direct: + if control_q == True: Vm = np.abs(V) (V, diff --git a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py index 835176229..4ce78758d 100644 --- a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py +++ b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf.py @@ -26,7 +26,7 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_worker import multi_island_pf_nc from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions -from GridCalEngine.enumerations import ReactivePowerControlMode, AcOpfMode +from GridCalEngine.enumerations import AcOpfMode from typing import Union from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf_derivatives import (x2var, var2x, eval_f, @@ -671,7 +671,7 @@ def ac_optimal_power_flow(nc: NumericalCircuit, # Number of inequalities: Line ratings, max and min angle of buses, voltage module range and - if pf_options.control_Q == ReactivePowerControlMode.NoControl: + if pf_options.control_Q == False: NI = 2 * n_br_mon + 2 * npq + 4 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl # No Reactive constraint (power curve) else: NI = 2 * n_br_mon + 2 * npq + 5 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl diff --git a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py index df3ce7ae1..fe1097ea7 100644 --- a/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py +++ b/src/GridCalEngine/Simulations/OPF/NumericalMethods/ac_opf_derivatives.py @@ -24,7 +24,7 @@ from GridCalEngine.Utils.Sparse.csc import diags from typing import Tuple, Union from GridCalEngine.basic_structures import Vec, CxVec, IntVec, csr_matrix, csc_matrix -from GridCalEngine.enumerations import ReactivePowerControlMode, AcOpfMode +from GridCalEngine.enumerations import AcOpfMode def x2var(x: Vec, @@ -520,7 +520,7 @@ def eval_g(x: Vec, Ybus: csc_matrix, Yf: csc_matrix, Cg: csc_matrix, Sd: CxVec, def eval_h(x: Vec, Yf: csc_matrix, Yt: csc_matrix, from_idx: Vec, to_idx: Vec, nslcap:int, pq: Vec, k_m: Vec, k_tau: Vec, Vm_max: Vec, Vm_min: Vec, Pg_max: Vec, Pg_min: Vec, Qg_max: Vec, Qg_min: Vec, tapm_max: Vec, tapm_min: Vec, tapt_max: Vec, tapt_min: Vec, Pdcmax: Vec, rates: Vec, il: Vec, ig: Vec, - tanmax: Vec, ctQ: ReactivePowerControlMode, acopf_mode: AcOpfMode) -> Tuple[Vec, CxVec, CxVec]: + tanmax: Vec, ctQ: bool, acopf_mode: AcOpfMode) -> Tuple[Vec, CxVec, CxVec]: """ Calculates the inequality constraints at the current state (given by x) :param x: State vector @@ -610,7 +610,7 @@ def eval_h(x: Vec, Yf: csc_matrix, Yt: csc_matrix, from_idx: Vec, to_idx: Vec, n tapt_min - tapt # Tap phase lower bound ] - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # if reactive power control... hval = np.r_[hval, np.power(Qg, 2.0) - np.power(tanmax, 2.0) * np.power(Pg, 2.0)] if ndc != 0: @@ -624,7 +624,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc slack: Vec, nslcap: int, nodal_capacity_sign: float, capacity_nodes_idx: IntVec, pq: Vec, pv: Vec, tanmax: Vec, alltapm: Vec, alltapt: Vec, fdc: Vec, tdc: Vec, k_m: Vec, k_tau: Vec, mu, lmbda, R: Vec, X: Vec, F: Vec, T: Vec, - ctQ: ReactivePowerControlMode, acopf_mode: AcOpfMode, compute_jac: bool, + ctQ: bool, acopf_mode: AcOpfMode, compute_jac: bool, compute_hess: bool) -> Tuple[Vec, csc, csc, csc, csc, csc, Vec]: """ @@ -674,7 +674,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc ndc = len(fdc) npq = len(pq) - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # if reactive power control... nqct = Ng else: nqct = 0 @@ -966,7 +966,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc HSf = 2 * (Sfmat.real @ SfX.real + Sfmat.imag @ SfX.imag) HSt = 2 * (Stmat.real @ StX.real + Stmat.imag @ StX.imag) - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # if reactive power control... # tanmax curves (simplified capability curves of generators) Hqmaxp = - 2 * np.power(tanmax, 2) * Pg Hqmaxq = 2 * Qg @@ -1160,7 +1160,7 @@ def jacobians_and_hessians(x: Vec, c1: Vec, c2: Vec, c_s: Vec, c_v: Vec, Cg: csc Sfvavm = Sfvmva.T Sfvmvm = vm_inv @ Ff @ vm_inv - if ctQ != ReactivePowerControlMode.NoControl: + if ctQ: # using reactive power control Hqpgpg = diags(-2 * np.power(tanmax, 2) * mu[-Ng:]) Hqqgqg = diags(np.array([2] * Ng) * mu[-Ng:]) else: diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py index 1ade21602..775087651 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/fast_decoupled.py @@ -5,14 +5,13 @@ import time import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method np.set_printoptions(linewidth=320) def FDPF(Vbus, S0, I0, Y0, Ybus, B1, B2, pv_, pq_, pqv_, p_, Qmin, Qmax, tol=1e-9, max_it=100, - control_q=ReactivePowerControlMode.NoControl, ) -> NumericPowerFlowResults: + control_q=False) -> NumericPowerFlowResults: """ Fast decoupled power flow :param Vbus: array of initial voltages @@ -118,7 +117,7 @@ def FDPF(Vbus, S0, I0, Y0, Ybus, B1, B2, pv_, pq_, pqv_, p_, Qmin, Qmax, tol=1e- # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and normQ < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and normQ < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py index 1143ffe2a..67ea2b291 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/generalised_power_flow.py @@ -24,7 +24,7 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_worker import multi_island_pf_nc from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions -from GridCalEngine.enumerations import ReactivePowerControlMode, AcOpfMode +from GridCalEngine.enumerations import AcOpfMode from typing import Union from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf_derivatives import (x2var, var2x, eval_f, @@ -577,7 +577,7 @@ def ac_optimal_power_flow(nc: NumericalCircuit, # Number of inequalities: Line ratings, max and min angle of buses, voltage module range and - if pf_options.control_Q == ReactivePowerControlMode.NoControl: + if not pf_options.control_Q: NI = 2 * n_br_mon + 2 * npq + 4 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl # No Reactive constraint (power curve) else: NI = 2 * n_br_mon + 2 * npq + 5 * n_gen_disp + 2 * ntapm + 2 * ntapt + 2 * n_disp_hvdc + nsl diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py index 960bb1535..f587741eb 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/iwamoto_newton_raphson.py @@ -23,7 +23,6 @@ from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc, CSC import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.basic_structures import Vec, CxVec, IntVec, Logger @@ -70,8 +69,7 @@ def mu(Ybus, J: CSC, incS: Vec, dV: CxVec, dx: Vec, block1_idx: IntVec, block2_i def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, - control_q=ReactivePowerControlMode.NoControl, robust=False, - logger: Logger = None) -> NumericPowerFlowResults: + control_q=False, robust=False, logger: Logger = None) -> NumericPowerFlowResults: """ Solves the power flow using a full Newton's method with the Iwamoto optimal step factor. :param Ybus: Admittance matrix @@ -87,8 +85,9 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= :param Qmax: Array of nodal maximum reactive power injections :param tol: Tolerance :param max_it: Maximum number of iterations - :param control_q: ReactivePowerControlMode + :param control_q: Control reactive power? :param robust: use of the Iwamoto optimal step factor?. + :param logger: Logger :return: Voltage solution, converged?, error, calculated power Injections """ start = time.time() @@ -189,7 +188,7 @@ def IwamotoNR(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it= # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and norm_f < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and norm_f < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py index e0dd5f726..afefd54d0 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt.py @@ -23,7 +23,6 @@ from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.basic_structures import Logger import GridCalEngine.Utils.Sparse.csc2 as csc @@ -35,8 +34,7 @@ def levenberg_marquardt_pf(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=50, - control_q=ReactivePowerControlMode.NoControl, - verbose=False, logger: Logger = None) -> NumericPowerFlowResults: + control_q=False, verbose=False, logger: Logger = None) -> NumericPowerFlowResults: """ Solves the power flow problem by the Levenberg-Marquardt power flow algorithm. It is usually better than Newton-Raphson, but it takes an order of magnitude more time to converge. @@ -190,7 +188,7 @@ def levenberg_marquardt_pf(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and normF < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and normF < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index 8f497a556..eb82b714f 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -101,7 +101,7 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, k_qt_m=nc.k_qt_m, - k_vt_m=nc.k_vt_m, + k_vt_m=nc.k_v_m, k_pf_tau=nc.k_pf_tau, k_pf_dp=nc.k_pf_dp) # ------------------------------------------------------------------------- @@ -170,7 +170,7 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # evaluate Jacobian if update_jacobian: - H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_vt_m, nc.k_zero_beq, + H = fubm_jacobian(nb, nl, nc.k_pf_tau, nc.k_pf_dp, nc.k_qf_m, nc.k_qt_m, nc.k_v_m, nc.k_zero_beq, nc.k_vf_beq, nc.i_vf_beq, nc.i_vt_m, F, T, Ys, k2, tap, m, Bc, Beq, Kdp, V, Ybus, Yf, Yt, Cf, Ct, pvpq, pq) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py index 9af73b0b6..d4ff5beb0 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson.py @@ -22,7 +22,6 @@ from GridCalEngine.Simulations.derivatives.ac_jacobian import AC_jacobianVc import GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions as cf from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.basic_structures import Logger from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc @@ -33,7 +32,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, mu_0=1.0, - acceleration_parameter=0.05, control_q=ReactivePowerControlMode.NoControl, + acceleration_parameter=0.05, control_q=False, verbose=False, logger: Logger = None) -> NumericPowerFlowResults: """ Solves the power flow using a full Newton's method with backtracking correction. @@ -192,7 +191,7 @@ def NR_LS(Ybus, S0, V0, I0, Y0, pv_, pq_, pqv_, p_, Qmin, Qmax, tol, max_it=15, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and norm_f < 1e-2 and (len(pv) + len(p)) > 0: + if control_q and norm_f < 1e-2 and (len(pv) + len(p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 56dce5af7..23581fc42 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -28,8 +28,6 @@ compute_converter_losses, compute_power, compute_zip_power) from GridCalEngine.basic_structures import CxVec -from GridCalEngine.enumerations import ReactivePowerControlMode -# import GridCalEngine.Utils.NumericalMethods.sparse_solve as gcsp from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc @@ -43,7 +41,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, mu_0=1.0, acceleration_parameter=0.05, verbose=False, - control_q=ReactivePowerControlMode.NoControl) -> NumericPowerFlowResults: + control_q=False) -> NumericPowerFlowResults: """ Newton-Raphson Line search with the FUBM formulation :param nc: NumericalCircuit @@ -108,7 +106,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, idx_dtheta = np.r_[pv, pq, p, pqv] idx_dvm = np.r_[pq, p] - idx_dm = np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_vt_m] + idx_dm = np.r_[nc.k_qf_m, nc.k_qt_m, nc.k_v_m] idx_dtau = np.r_[nc.k_pf_tau, nc.k_pf_dp] idx_dbeq = np.r_[nc.k_zero_beq, nc.k_vf_beq] idx_dP = np.r_[pv, pq, p, pqv] @@ -126,7 +124,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, k_qt_m=nc.k_qt_m, - k_vt_m=nc.k_vt_m, + k_vt_m=nc.k_v_m, k_pf_tau=nc.k_pf_tau, k_pf_dp=nc.k_pf_dp) @@ -357,7 +355,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if control_q != ReactivePowerControlMode.NoControl and (len(pv) + len(pqv)) > 0: + if control_q and (len(pv) + len(pqv)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, @@ -378,7 +376,7 @@ def NR_LS_ACDC(nc: NumericalCircuit, k_vf_beq=nc.k_vf_beq, k_qf_m=nc.k_qf_m, k_qt_m=nc.k_qt_m, - k_vt_m=nc.k_vt_m, + k_vt_m=nc.k_v_m, k_pf_tau=nc.k_pf_tau, k_pf_dp=nc.k_pf_dp) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py index 7177a94a4..81cc20f42 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py @@ -24,7 +24,6 @@ from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_power, compute_zip_power) from GridCalEngine.Utils.NumericalMethods.common import (ConvexMethodResult, ConvexFunctionResult) from GridCalEngine.Utils.NumericalMethods.newton_raphson import newton_raphson -from GridCalEngine.enumerations import ReactivePowerControlMode from scipy.sparse import csr_matrix, csc_matrix from GridCalEngine.basic_structures import Vec, CscMat, CxVec, IntVec, Logger @@ -39,7 +38,7 @@ def NR_LS_GENERAL(nc: NumericalCircuit, mu_0=1.0, acceleration_parameter=0.05, verbose=False, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, pf_options=None) -> NumericPowerFlowResults: """ Newton-Raphson Line search with the FUBM formulation diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index acc911620..5b9de58d4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -21,14 +21,13 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit -from GridCalEngine.enumerations import ReactivePowerControlMode import GridCalEngine.Simulations.derivatives.csc_derivatives as deriv -from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, spsolve_csc +from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, - compute_fx, polar_to_rect) + polar_to_rect) from GridCalEngine.basic_structures import Vec, IntVec, CxVec @@ -123,19 +122,38 @@ def adv_jacobian(nbus: int, # compose the Jacobian J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, - dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, - dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, - dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_], + [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, + dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, + dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, + dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_], n_rows=4, n_cols=5) return J +@njit() +def get_Sf(k: IntVec, Vm: Vec, V: CxVec, yff: CxVec, yft: CxVec, F: IntVec, T: IntVec): + """ + + :param k: + :param Vm: + :param V: + :param yff: + :param yft: + :param F: + :param T: + :return: + """ + f = F[k] + t = T[k] + return np.power(Vm[f], 2.0) * np.conj(yff[k]) + V[f] * np.conj(V[t]) * np.conj(yft[k]) + + class PfAdvancedFormulation(PfFormulationTemplate): - def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, - pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, k_pf_tau: IntVec, k_v_m: IntVec, k_beq_zero: IntVec, + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, # Pset: Vec, + pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, + # k_pf_tau: IntVec, k_v_m: IntVec, k_qf_beq: IntVec, nc: NumericalCircuit, options: PowerFlowOptions): """ @@ -151,7 +169,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: :param p: :param k_pf_tau: :param k_v_m: - :param k_beq_zero: + :param k_qf_beq: :param nc: :param options: """ @@ -166,21 +184,23 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Qmin = Qmin self.Qmax = Qmax - self.k_pf_tau: IntVec = k_pf_tau - self.k_v_m: IntVec = k_v_m - self.k_beq_zero: IntVec = k_beq_zero + self.Pset = nc.branch_data.Pfset[nc.k_pf_tau] + + self.k_pf_tau: IntVec = nc.k_pf_tau + self.k_v_m: IntVec = nc.k_v_m + self.k_qf_beq: IntVec = nc.k_zero_beq - self.idx_dQf = self.k_beq_zero - self.idx_dbeq = self.k_beq_zero + self.idx_dQf = self.k_qf_beq + self.idx_dbeq = self.k_qf_beq self.idx_dPf = self.k_pf_tau self.idx_dtau = self.k_pf_tau self.idx_dm = self.k_v_m - self.m: Vec = np.zeros(len(pqv)) - self.tau: Vec = np.zeros(len(k_pf_tau)) - self.beq: Vec = np.zeros(len(k_beq_zero)) + self.m: Vec = np.zeros(len(self.pqv)) + self.tau: Vec = np.zeros(len(self.k_pf_tau)) + self.beq: Vec = np.zeros(len(self.k_qf_beq)) - if not len(self.k_v_m) == len(self.pqv): + if not len(self.pqv) >= len(self.k_v_m): raise ValueError("k_v_m indices must be the same size as pqv indices!") if not np.all(self.idx_dtau == self.idx_dPf): @@ -203,7 +223,7 @@ def x2var(self, x: Vec): b = a + len(self.idx_dVm) c = b + len(self.k_pf_tau) d = c + len(self.k_v_m) - e = d + len(self.k_beq_zero) + e = d + len(self.k_qf_beq) # update the vectors self.Va[self.idx_dVa] = x[0:a] @@ -252,9 +272,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes if update_controls: - if (self.options.control_Q != ReactivePowerControlMode.NoControl and - self._error < 1e-2 - and (len(self.pv) + len(self.p)) > 0): + if self.options.control_Q and self._error < 1e-2 and (len(self.pv) + len(self.p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, @@ -287,12 +305,26 @@ def fx(self) -> Vec: # Assumes the internal vars were updated already with self.x2var() Sbus = compute_zip_power(self.S0, self.I0, self.Y0, self.Vm) self.Scalc = compute_power(self.adm.Ybus, self.V) - self._f = compute_fx(self.Scalc, Sbus, self.idx_dP, self.idx_dQ) + + dS = self.Scalc - Sbus # compute the mismatch + + Pf = get_Sf(k=self.k_pf_tau, Vm=self.Vm, V=self.V, + yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real + + Qf = get_Sf(k=self.k_qf_beq, Vm=self.Vm, V=self.V, + yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real + + self._f = np.r_[ + dS[self.idx_dP].real, + dS[self.idx_dQ].imag, + Pf - self.Pset, + Qf # Qf - 0 + ] return self._f def Jacobian(self) -> CSC: """ - + Get the Jacobian :return: """ # Assumes the internal vars were updated already with self.x2var() @@ -306,6 +338,14 @@ def Jacobian(self) -> CSC: raise ValueError("Incorrect J indices!") # NOTE: beq, m, and tau are not of size nbranch + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + m[self.k_v_m] = self.m + tau[self.k_pf_tau] = self.tau + beq[self.k_qf_beq] = self.beq + tap = polar_to_rect(m, tau) J = adv_jacobian(nbus=self.nc.nbus, idx_dtheta=self.idx_dVa, @@ -321,10 +361,10 @@ def Jacobian(self) -> CSC: T=self.nc.T, Ys=1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X), kconv=self.nc.branch_data.k, - complex_tap=polar_to_rect(self.m, self.tau), - tap_modules=self.m, + complex_tap=tap, + tap_modules=m, Bc=self.nc.branch_data.B, - Beq=self.beq, + Beq=beq, V=self.V, Vm=self.Vm, Ybus_x=self.adm.Ybus.data, @@ -342,13 +382,21 @@ def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResul :param iterations: Iteration number :return: NumericPowerFlowResults """ + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + m[self.k_v_m] = self.m + tau[self.k_pf_tau] = self.tau + beq[self.k_qf_beq] = self.beq + return NumericPowerFlowResults(V=self.V, converged=self.converged, norm_f=self.error, Scalc=self.Scalc, - m=None, - tau=None, - Beq=None, + m=m, + tau=tau, + Beq=beq, Ybus=self.adm.Ybus, Yf=self.adm.Yf, Yt=self.adm.Yt, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py index fff303feb..af3f240f1 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py @@ -19,7 +19,6 @@ from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions -from GridCalEngine.enumerations import ReactivePowerControlMode from GridCalEngine.Simulations.derivatives.ac_jacobian import create_J_vc_csc from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method @@ -111,9 +110,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes if update_controls: - if (self.options.control_Q != ReactivePowerControlMode.NoControl and - self._error < 1e-2 - and (len(self.pv) + len(self.p)) > 0): + if self.options.control_Q and self._error < 1e-2 and (len(self.pv) + len(self.p)) > 0: # check and adjust the reactive power # this function passes pv buses to pq when the limits are violated, diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py index 74dfd97b2..9a2bc10d4 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_options.py @@ -15,7 +15,7 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from GridCalEngine.enumerations import BranchImpedanceMode, ReactivePowerControlMode, SolverType, TapsControlMode +from GridCalEngine.enumerations import BranchImpedanceMode, SolverType from GridCalEngine.Simulations.options_template import OptionsTemplate @@ -26,24 +26,23 @@ class PowerFlowOptions(OptionsTemplate): def __init__(self, solver_type: SolverType = SolverType.NR, - retry_with_other_methods=True, - verbose=0, - initialize_with_existing_solution=False, - tolerance=1e-6, - max_iter=25, - max_outer_loop_iter=100, - control_q=ReactivePowerControlMode.NoControl, - control_taps=TapsControlMode.NoControl, - apply_temperature_correction=False, + retry_with_other_methods: bool = True, + verbose: int = 0, + initialize_with_existing_solution: bool = False, + tolerance: float = 1e-6, + max_iter: int = 25, + max_outer_loop_iter: int = 100, + control_q: bool = False, + control_taps_modules: bool = False, + control_taps_phase: bool = False, + apply_temperature_correction: bool = False, branch_impedance_tolerance_mode=BranchImpedanceMode.Specified, - distributed_slack=False, - ignore_single_node_islands=False, - trust_radius=1.0, - backtracking_parameter=0.05, - use_stored_guess=False, - override_branch_controls=False, - generate_report=False, - generalised_pf=False): + distributed_slack: bool = False, + ignore_single_node_islands: bool = False, + trust_radius: float = 1.0, + backtracking_parameter: float = 0.05, + use_stored_guess: bool = False, + generate_report: bool = False): """ Power flow options class :param solver_type: Solver type @@ -53,8 +52,6 @@ def __init__(self, :param max_iter: Maximum number of iterations for the power flow numerical method :param max_outer_loop_iter: Maximum number of iterations for the controls outer loop :param control_q: Control mode for the PV nodes reactive power limits - :param control_taps: Control mode for the transformer taps equipped with a voltage regulator - (as part of the outer loop) :param apply_temperature_correction: Apply the temperature correction to the resistance of the Branches? :param branch_impedance_tolerance_mode: Type of modification of the Branches impedance :param distributed_slack: Applies the redistribution of the slack power proportionally among the controlled generators @@ -62,9 +59,7 @@ def __init__(self, :param trust_radius: :param backtracking_parameter: parameter used to correct the "bad" iterations, typically 0.5 :param use_stored_guess: Use the existing solution from the Bus class (Vm0, Va0) - :param override_branch_controls: - :param generate_report: - :param generalised_pf: + :param generate_report: Generate the power flow report after the solution? """ OptionsTemplate.__init__(self, name='PowerFlowOptions') @@ -84,7 +79,9 @@ def __init__(self, self.initialize_with_existing_solution = initialize_with_existing_solution - self.control_taps = control_taps + self.control_taps_modules = control_taps_modules + + self.control_taps_phase = control_taps_phase self.apply_temperature_correction = apply_temperature_correction @@ -100,8 +97,6 @@ def __init__(self, self.use_stored_guess = use_stored_guess - self.override_branch_controls = override_branch_controls - self.generate_report = generate_report self.register(key="solver_type", tpe=SolverType) @@ -109,10 +104,11 @@ def __init__(self, self.register(key="tolerance", tpe=float) self.register(key="max_iter", tpe=int) self.register(key="max_outer_loop_iter", tpe=int) - self.register(key="control_Q", tpe=ReactivePowerControlMode) + self.register(key="control_Q", tpe=bool) self.register(key="verbose", tpe=int) self.register(key="initialize_with_existing_solution", tpe=bool) - self.register(key="control_taps", tpe=bool) + self.register(key="control_taps_modules", tpe=bool) + self.register(key="control_taps_phase", tpe=bool) self.register(key="apply_temperature_correction", tpe=bool) self.register(key="branch_impedance_tolerance_mode", tpe=BranchImpedanceMode) self.register(key="distributed_slack", tpe=bool) @@ -120,5 +116,4 @@ def __init__(self, self.register(key="trust_radius", tpe=float) self.register(key="backtracking_parameter", tpe=float) self.register(key="use_stored_guess", tpe=bool) - self.register(key="override_branch_controls", tpe=bool) self.register(key="generate_report", tpe=bool) diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index 559b0eb8f..dbdbf5353 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -25,6 +25,7 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_basic_formulation import PfBasicFormulation +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import PfAdvancedFormulation from GridCalEngine.Simulations.PowerFlow.NumericalMethods.newton_raphson_fx import newton_raphson_fx from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -232,16 +233,37 @@ def solve(circuit: NumericalCircuit, elif solver_type == SolverType.NR: if circuit.any_control: # Solve NR with the AC/DC algorithm - solution = pflw.NR_LS_ACDC(nc=circuit, - V0=V0, - S0=S0, - I0=I0, - Y0=Y0, - tolerance=options.tolerance, - max_iter=options.max_iter, - acceleration_parameter=options.backtracking_parameter, - mu_0=options.trust_radius, - control_q=options.control_Q) + + problem = PfAdvancedFormulation(V0=final_solution.V, + S0=S0, + I0=I0, + Y0=Y0, + Qmin=Qmin, + Qmax=Qmax, + pv=pv, + pq=pq, + pqv=pqv, + p=p, + nc=circuit, + options=options) + + solution = newton_raphson_fx(problem=problem, + tol=options.tolerance, + max_iter=options.max_iter, + trust=options.trust_radius, + verbose=options.verbose, + logger=logger) + + # solution = pflw.NR_LS_ACDC(nc=circuit, + # V0=V0, + # S0=S0, + # I0=I0, + # Y0=Y0, + # tolerance=options.tolerance, + # max_iter=options.max_iter, + # acceleration_parameter=options.backtracking_parameter, + # mu_0=options.trust_radius, + # control_q=options.control_Q) else: # Solve NR with the AC algorithm problem = PfBasicFormulation(V0=final_solution.V, diff --git a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py index e931264f4..ba7c08f47 100644 --- a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py @@ -806,7 +806,7 @@ def fubm_jacobian_old(nb, nl, :param k_pf_dp: indices of the Pf-droop controlled Branches :param k_qf_m: indices of the Qf controlled with ma Branches :param k_qt_m: Indices of the Qt controlled with ma Branches - :param k_vt_m: Indices of the Vt controlled with ma Branches + :param k_v_m: Indices of the Vt controlled with ma Branches :param k_zero_beq: Indices of the Qf made zero with the equivalent susceptance Branches :param k_vf_beq: Indices of the Vf Controlled with the equivalent susceptance Branches :param i_vf_beq: Indices of the buses where Vf is controlled with Beq diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index d95efb545..5cfdd403a 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -224,7 +224,7 @@ def __init__(self, self.k_vf_beq: IntVec = np.zeros(0, dtype=int) # (old iVtma) indices of the Branches when controlling Vt with ma - self.k_vt_m: IntVec = np.zeros(0, dtype=int) + self.k_v_m: IntVec = np.zeros(0, dtype=int) # (old iQtma) indices of the Branches controlling the Qt flow with ma self.k_qt_m: IntVec = np.zeros(0, dtype=int) @@ -262,12 +262,12 @@ def __init__(self, # (old Vtmabus) indices of the buses where Vt is controlled by ma self.i_vt_m: IntVec = np.zeros(0, dtype=int) + # determine the branch indices (may affect the bus types) + self.compile_control_indices(control_mode=control_mode, F=F, T=T) + # determine the bus indices self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=Pbus, types=bus_types) - # determine the branch indices - self.compile_control_indices(control_mode=control_mode, F=F, T=T) - def recompile_types(self, bus_types: IntVec, Pbus: Vec): @@ -376,6 +376,7 @@ def compile_control_indices(self, elif tpe == TransformerControlType.V: k_vt_m_lst.append(k) + self.control_mode k_m_modif_lst.append(k) i_m_modif_lst.append(T[k]) self.any_control = True @@ -477,7 +478,7 @@ def compile_control_indices(self, self.k_qf_m = np.array(k_qf_m_lst, dtype=int) self.k_zero_beq = np.array(k_zero_beq_lst, dtype=int) self.k_vf_beq = np.array(k_vf_beq_lst, dtype=int) - self.k_vt_m = np.array(k_vt_m_lst, dtype=int) + self.k_v_m = np.array(k_vt_m_lst, dtype=int) self.k_qt_m = np.array(k_qt_m_lst, dtype=int) self.k_pf_dp = np.array(k_pf_dp_lst, dtype=int) self.k_m = np.array(k_m_modif_lst, dtype=int) @@ -488,5 +489,3 @@ def compile_control_indices(self, self.i_mtau = np.array(i_mtau_modif_lst, dtype=int) self.iPfdp_va = np.array(iPfdp_va_lst, dtype=int) self.i_vsc = np.array(i_vsc_lst, dtype=int) - - diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index e3f0c9767..5bdee1561 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -206,157 +206,157 @@ def argparse(s): return s -class ReactivePowerControlMode(Enum): - """ - The :ref:`ReactivePowerControlMode` offers 3 modes to control how - :ref:`Generator` objects supply reactive power: - - **NoControl**: In this mode, the :ref:`generators` don't try to regulate - the voltage at their :ref:`bus`. - - **Direct**: In this mode, the :ref:`generators` try to regulate the - voltage at their :ref:`bus`. **GridCal** does so by applying the following - algorithm in an outer control loop. For grids with numerous - :ref:`generators` tied to the same system, for example wind farms, this - control method sometimes fails with some :ref:`generators` not trying - hard enough*. In this case, the simulation converges but the voltage controlled - :ref:`buses` do not reach their target voltage, while their - :ref:`generator(s)` haven't reached their reactive power limit. In this - case, the slower **Iterative** control mode may be used (see below). - - ON PV-PQ BUS TYPE SWITCHING LOGIC IN POWER FLOW COMPUTATION - Jinquan Zhao - - 1) Bus i is a PQ bus in the previous iteration and its - reactive power was fixed at its lower limit: - - If its voltage magnitude Vi >= Viset, then - - it is still a PQ bus at current iteration and set Qi = Qimin . - - If Vi < Viset , then - - compare Qi with the upper and lower limits. - - If Qi >= Qimax , then - it is still a PQ bus but set Qi = Qimax . - If Qi <= Qimin , then - it is still a PQ bus and set Qi = Qimin . - If Qimin < Qi < Qi max , then - it is switched to PV bus, set Vinew = Viset. - - 2) Bus i is a PQ bus in the previous iteration and - its reactive power was fixed at its upper limit: - - If its voltage magnitude Vi <= Viset , then: - bus i still a PQ bus and set Q i = Q i max. - - If Vi > Viset , then - - Compare between Qi and its upper/lower limits - - If Qi >= Qimax , then - it is still a PQ bus and set Q i = Qimax . - If Qi <= Qimin , then - it is still a PQ bus but let Qi = Qimin in current iteration. - If Qimin < Qi < Qimax , then - it is switched to PV bus and set Vinew = Viset - - 3) Bus i is a PV bus in the previous iteration. - - Compare Q i with its upper and lower limits. - - If Qi >= Qimax , then - it is switched to PQ and set Qi = Qimax . - If Qi <= Qimin , then - it is switched to PQ and set Qi = Qimin . - If Qi min < Qi < Qimax , then - it is still a PV bus. - - **Iterative**: As mentioned above, the **Direct** control mode may not yield - satisfying results in some isolated cases. The **Direct** control mode tries to - jump to the final solution in a single or few iterations, but in grids where a - significant change in reactive power at one :ref:`generator` has a - significant impact on other :ref:`generators`, additional iterations may - be required to reach a satisfying solution. - - Instead of trying to jump to the final solution, the **Iterative** mode raises or - lowers each :ref:`generator's` reactive power incrementally. The - increment is determined using a logistic function based on the difference between - the current :ref:`bus` voltage its target voltage. The steepness factor - :code:`k` of the logistic function was determined through trial and error, with the - intent of reducing the number of iterations while avoiding instability. Other - values may be specified in :ref:`PowerFlowOptions`. - - The :math:`Q_{Increment}` in per unit is determined by: - - .. math:: - - Q_{Increment} = 2 * \\left[\\frac{1}{1 + e^{-k|V_2 - V_1|}}-0.5\\right] - - Where: - - k = 30 (by default) - - """ - NoControl = "NoControl" - Direct = "Direct" - Iterative = "Iterative" - - -class TapsControlMode(Enum): - """ - The :ref:`TapsControlMode` offers 3 modes to control how - :ref:`transformers`' :ref:`tap changer` regulate - voltage on their regulated :ref:`bus`: - - **NoControl**: In this mode, the :ref:`transformers` don't try to - regulate the voltage at their :ref:`bus`. - - **Direct**: In this mode, the :ref:`transformers` try to regulate - the voltage at their bus. **GridCal** does so by jumping straight to the tap that - corresponds to the desired transformation ratio, or the highest or lowest tap if - the desired ratio is outside of the tap range. - - This behavior may fail in certain cases, especially if both the - :ref:`TapControlMode` and :ref:`ReactivePowerControlMode` - are set to **Direct**. In this case, the simulation converges but the voltage - controlled :ref:`buses` do not reach their target voltage, while their - :ref:`generator(s)` haven't reached their reactive power limit. When - this happens, the slower **Iterative** control mode may be used (see below). - - **Iterative**: As mentioned above, the **Direct** control mode may not yield - satisfying results in some isolated cases. The **Direct** control mode tries to - jump to the final solution in a single or few iterations, but in grids where a - significant change of tap at one :ref:`transformer` has a - significant impact on other :ref:`transformers`, additional - iterations may be required to reach a satisfying solution. - - Instead of trying to jump to the final solution, the **Iterative** mode raises or - lowers each :ref:`transformer's` tap incrementally. - """ - - NoControl = "NoControl" - Direct = "Direct" - Iterative = "Iterative" - - def __str__(self): - return self.value - - def __repr__(self): - return str(self) - - @staticmethod - def argparse(s): - """ - - :param s: - :return: - """ - try: - return TapsControlMode[s] - except KeyError: - return s +# class ReactivePowerControlMode(Enum): +# """ +# The :ref:`ReactivePowerControlMode` offers 3 modes to control how +# :ref:`Generator` objects supply reactive power: +# +# **NoControl**: In this mode, the :ref:`generators` don't try to regulate +# the voltage at their :ref:`bus`. +# +# **Direct**: In this mode, the :ref:`generators` try to regulate the +# voltage at their :ref:`bus`. **GridCal** does so by applying the following +# algorithm in an outer control loop. For grids with numerous +# :ref:`generators` tied to the same system, for example wind farms, this +# control method sometimes fails with some :ref:`generators` not trying +# hard enough*. In this case, the simulation converges but the voltage controlled +# :ref:`buses` do not reach their target voltage, while their +# :ref:`generator(s)` haven't reached their reactive power limit. In this +# case, the slower **Iterative** control mode may be used (see below). +# +# ON PV-PQ BUS TYPE SWITCHING LOGIC IN POWER FLOW COMPUTATION +# Jinquan Zhao +# +# 1) Bus i is a PQ bus in the previous iteration and its +# reactive power was fixed at its lower limit: +# +# If its voltage magnitude Vi >= Viset, then +# +# it is still a PQ bus at current iteration and set Qi = Qimin . +# +# If Vi < Viset , then +# +# compare Qi with the upper and lower limits. +# +# If Qi >= Qimax , then +# it is still a PQ bus but set Qi = Qimax . +# If Qi <= Qimin , then +# it is still a PQ bus and set Qi = Qimin . +# If Qimin < Qi < Qi max , then +# it is switched to PV bus, set Vinew = Viset. +# +# 2) Bus i is a PQ bus in the previous iteration and +# its reactive power was fixed at its upper limit: +# +# If its voltage magnitude Vi <= Viset , then: +# bus i still a PQ bus and set Q i = Q i max. +# +# If Vi > Viset , then +# +# Compare between Qi and its upper/lower limits +# +# If Qi >= Qimax , then +# it is still a PQ bus and set Q i = Qimax . +# If Qi <= Qimin , then +# it is still a PQ bus but let Qi = Qimin in current iteration. +# If Qimin < Qi < Qimax , then +# it is switched to PV bus and set Vinew = Viset +# +# 3) Bus i is a PV bus in the previous iteration. +# +# Compare Q i with its upper and lower limits. +# +# If Qi >= Qimax , then +# it is switched to PQ and set Qi = Qimax . +# If Qi <= Qimin , then +# it is switched to PQ and set Qi = Qimin . +# If Qi min < Qi < Qimax , then +# it is still a PV bus. +# +# **Iterative**: As mentioned above, the **Direct** control mode may not yield +# satisfying results in some isolated cases. The **Direct** control mode tries to +# jump to the final solution in a single or few iterations, but in grids where a +# significant change in reactive power at one :ref:`generator` has a +# significant impact on other :ref:`generators`, additional iterations may +# be required to reach a satisfying solution. +# +# Instead of trying to jump to the final solution, the **Iterative** mode raises or +# lowers each :ref:`generator's` reactive power incrementally. The +# increment is determined using a logistic function based on the difference between +# the current :ref:`bus` voltage its target voltage. The steepness factor +# :code:`k` of the logistic function was determined through trial and error, with the +# intent of reducing the number of iterations while avoiding instability. Other +# values may be specified in :ref:`PowerFlowOptions`. +# +# The :math:`Q_{Increment}` in per unit is determined by: +# +# .. math:: +# +# Q_{Increment} = 2 * \\left[\\frac{1}{1 + e^{-k|V_2 - V_1|}}-0.5\\right] +# +# Where: +# +# k = 30 (by default) +# +# """ +# NoControl = "NoControl" +# Direct = "Direct" +# Iterative = "Iterative" +# +# +# class TapsControlMode(Enum): +# """ +# The :ref:`TapsControlMode` offers 3 modes to control how +# :ref:`transformers`' :ref:`tap changer` regulate +# voltage on their regulated :ref:`bus`: +# +# **NoControl**: In this mode, the :ref:`transformers` don't try to +# regulate the voltage at their :ref:`bus`. +# +# **Direct**: In this mode, the :ref:`transformers` try to regulate +# the voltage at their bus. **GridCal** does so by jumping straight to the tap that +# corresponds to the desired transformation ratio, or the highest or lowest tap if +# the desired ratio is outside of the tap range. +# +# This behavior may fail in certain cases, especially if both the +# :ref:`TapControlMode` and :ref:`ReactivePowerControlMode` +# are set to **Direct**. In this case, the simulation converges but the voltage +# controlled :ref:`buses` do not reach their target voltage, while their +# :ref:`generator(s)` haven't reached their reactive power limit. When +# this happens, the slower **Iterative** control mode may be used (see below). +# +# **Iterative**: As mentioned above, the **Direct** control mode may not yield +# satisfying results in some isolated cases. The **Direct** control mode tries to +# jump to the final solution in a single or few iterations, but in grids where a +# significant change of tap at one :ref:`transformer` has a +# significant impact on other :ref:`transformers`, additional +# iterations may be required to reach a satisfying solution. +# +# Instead of trying to jump to the final solution, the **Iterative** mode raises or +# lowers each :ref:`transformer's` tap incrementally. +# """ +# +# NoControl = "NoControl" +# Direct = "Direct" +# Iterative = "Iterative" +# +# def __str__(self): +# return self.value +# +# def __repr__(self): +# return str(self) +# +# @staticmethod +# def argparse(s): +# """ +# +# :param s: +# :return: +# """ +# try: +# return TapsControlMode[s] +# except KeyError: +# return s class SyncIssueType(Enum): @@ -672,7 +672,7 @@ def list(cls): return list(map(lambda c: c.value, cls)) -class TapAngleControl(Enum): +class TapPhaseControl(Enum): """ Tap angle control types """ @@ -694,7 +694,7 @@ def argparse(s): :return: """ try: - return TapAngleControl[s] + return TapPhaseControl[s] except KeyError: return s diff --git a/src/tests/newton_equivalence_utils.py b/src/tests/newton_equivalence_utils.py index 72f212f3e..b1f1205db 100644 --- a/src/tests/newton_equivalence_utils.py +++ b/src/tests/newton_equivalence_utils.py @@ -291,7 +291,7 @@ def compare_power_flow(grid_newton, grid_gc, tol=1e-6): verbose=False, tolerance=1e-6, retry_with_other_methods=True, - control_q=gce.ReactivePowerControlMode.NoControl, + control_q=False, max_iter=15) gc_power_flow = gce.PowerFlowDriver(grid_gc, gc_options) gc_power_flow.run() diff --git a/src/tests/test_ac_opf.py b/src/tests/test_ac_opf.py index ecf86cf29..91685a830 100644 --- a/src/tests/test_ac_opf.py +++ b/src/tests/test_ac_opf.py @@ -19,7 +19,7 @@ import numpy as np import GridCalEngine.api as gce -from GridCalEngine.enumerations import TransformerControlType +from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import ac_optimal_power_flow from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import NonlinearOPFResults @@ -37,7 +37,7 @@ def case9() -> NonlinearOPFResults: grid = gce.FileOpen(file_path).open() nc = gce.compile_numerical_circuit_at(grid) - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(control_q=False) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-8) return ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) @@ -59,7 +59,7 @@ def case14() -> tuple[NonlinearOPFResults, NonlinearOPFResults, NonlinearOPFResu grid.lines[ll].monitor_loading = True nc = gce.compile_numerical_circuit_at(grid) - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(control_q=False) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-8, ips_iterations=50, acopf_mode=gce.AcOpfMode.ACOPFstd) base_sol = ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) @@ -67,9 +67,10 @@ def case14() -> tuple[NonlinearOPFResults, NonlinearOPFResults, NonlinearOPFResu opf_options.acopf_mode = gce.AcOpfMode.ACOPFslacks slack_sol = ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) - grid.transformers2w[0].control_mode = TransformerControlType.PtQt - grid.transformers2w[1].control_mode = TransformerControlType.Pf - grid.transformers2w[2].control_mode = TransformerControlType.V + grid.transformers2w[0].tap_phase_control_mode = TapPhaseControl.Pf + grid.transformers2w[1].tap_phase_control_mode = TapPhaseControl.Pf + grid.transformers2w[2].tap_module_control_mode = TapModuleControl.Vm + grid.transformers2w[2].regulation_bus = grid.transformers2w[2].bus_from for ll in range(len(grid.lines)): grid.lines[ll].monitor_loading = True @@ -100,7 +101,7 @@ def case_pegase89() -> NonlinearOPFResults: nc = gce.compile_numerical_circuit_at(grid) # pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, tolerance=1e-8) # return ac_optimal_power_flow(nc=nc, pf_options=pf_options) - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(control_q=False) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-10, acopf_mode=gce.AcOpfMode.ACOPFstd) return ac_optimal_power_flow(nc=nc, pf_options=pf_options, opf_options=opf_options) diff --git a/src/tests/test_admittance_tap_derivatives.py b/src/tests/test_admittance_tap_derivatives.py index 913834671..49fb65b70 100644 --- a/src/tests/test_admittance_tap_derivatives.py +++ b/src/tests/test_admittance_tap_derivatives.py @@ -18,8 +18,8 @@ import os import numpy as np import GridCalEngine.api as gce -from GridCalEngine.enumerations import TransformerControlType -from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at +from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl +from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at, NumericalCircuit from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import ac_optimal_power_flow, NonlinearOPFResults from trunk.acopf.acopf_admittance_tap_derivation import (compute_finitediff_admittances, compute_finitediff_admittances_2dev, @@ -27,9 +27,6 @@ compute_analytic_admittances_2dev) - - - def case_3bus(): """ @@ -55,11 +52,11 @@ def case_3bus(): grid.add_generator(b1, gce.Generator('G1', vset=1.00, Cost=1.0, Cost2=2.0)) grid.add_generator(b2, gce.Generator('G2', P=10, vset=0.995, Cost=1.0, Cost2=3.0)) - tr1 = gce.Transformer2W(b1, b2, 'Trafo1', control_mode=TransformerControlType.Pf, + tr1 = gce.Transformer2W(b1, b2, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.1, tap_phase=0.02, r=0.001, x=0.05) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(b3, b1, 'Trafo1', control_mode=TransformerControlType.PtQt, + tr2 = gce.Transformer2W(b3, b1, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=-0.02, r=0.001, x=0.05) grid.add_transformer2w(tr2) @@ -76,67 +73,68 @@ def case_5bus(): grid = gce.MultiCircuit() # Add the buses and the generators and loads attached - bus1 = gce.Bus('Bus 1', Vnom=20) + bus1 = gce.Bus(name='Bus 1', Vnom=20) # bus1.is_slack = True # we may mark the bus a slack grid.add_bus(bus1) # add a generator to the bus 1 - gen1 = gce.Generator('Slack Generator', vset=1.05, Pmin=0, Pmax=1000, + gen1 = gce.Generator(name='Slack Generator', vset=1.05, Pmin=0, Pmax=1000, Qmin=-1000, Qmax=1000, Cost=15, Cost2=0.0) grid.add_generator(bus1, gen1) # add bus 2 with a load attached - bus2 = gce.Bus('Bus 2', Vnom=20) + bus2 = gce.Bus(name='Bus 2', Vnom=20) grid.add_bus(bus2) - grid.add_load(bus2, gce.Load('load 2', P=40, Q=20)) + grid.add_load(bus2, gce.Load(name='load 2', P=40, Q=20)) # add bus 3 with a load attached - bus3 = gce.Bus('Bus 3', Vnom=20) + bus3 = gce.Bus(name='Bus 3', Vnom=20) grid.add_bus(bus3) - grid.add_load(bus3, gce.Load('load 3', P=25, Q=15)) + grid.add_load(bus3, gce.Load(name='load 3', P=25, Q=15)) # add bus 4 with a load attached - bus4 = gce.Bus('Bus 4', Vnom=20) + bus4 = gce.Bus(name='Bus 4', Vnom=20) grid.add_bus(bus4) grid.add_load(bus4, gce.Load('load 4', P=40, Q=20)) # add bus 5 with a load attached - bus5 = gce.Bus('Bus 5', Vnom=20) + bus5 = gce.Bus(name='Bus 5', Vnom=20) grid.add_bus(bus5) - grid.add_load(bus5, gce.Load('load 5', P=50, Q=20)) + grid.add_load(bus5, gce.Load(name='load 5', P=50, Q=20)) # add Lines connecting the buses - #grid.add_line(gce.Line(bus1, bus2, 'line 1-2', r=0.05, x=0.11, b=0.02, rate=1000)) - grid.add_line(gce.Line(bus1, bus3, 'line 1-3', r=0.05, x=0.11, b=0.02, rate=1000)) - grid.add_line(gce.Line(bus1, bus5, 'line 1-5', r=0.03, x=0.08, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus1, bus2, 'line 1-2', r=0.05, x=0.11, b=0.02, rate=1000)) + grid.add_line(gce.Line(bus1, bus3, name='line 1-3', r=0.05, x=0.11, b=0.02, rate=1000)) + grid.add_line(gce.Line(bus1, bus5, name='line 1-5', r=0.03, x=0.08, b=0.02, rate=1000)) - tr1 = gce.Transformer2W(bus1, bus2, 'Trafo1', control_mode=TransformerControlType.fixed, + tr1 = gce.Transformer2W(bus1, bus2, name='Trafo1', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=1.1, tap_phase=0.02, r=0.05, x=0.11, b=0.02) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(bus2, bus3, 'Trafo2', control_mode=TransformerControlType.fixed, + tr2 = gce.Transformer2W(bus2, bus3, name='Trafo2', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=0.98, tap_phase=-0.02, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr2) - tr3 = gce.Transformer2W(bus2, bus5, 'Trafo3', control_mode=TransformerControlType.fixed, + tr3 = gce.Transformer2W(bus2, bus5, name='Trafo3', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=1.02, tap_phase=-0.04, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr3) - tr4 = gce.Transformer2W(bus3, bus4, 'Trafo4', control_mode=TransformerControlType.Pf, + tr4 = gce.Transformer2W(bus3, bus4, name='Trafo4', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=0.04, r=0.06, x=0.13, b=0.03) grid.add_transformer2w(tr4) - tr5 = gce.Transformer2W(bus4, bus5, 'Trafo5', control_mode=TransformerControlType.fixed, + tr5 = gce.Transformer2W(bus4, bus5, name='Trafo5', tap_phase_control_mode=TapPhaseControl.fixed, tap_module=0.97, tap_phase=-0.01, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr5) - #grid.add_line(gce.Line(bus2, bus3, 'line 2-3', r=0.04, x=0.09, b=0.02, rate=1000)) - #grid.add_line(gce.Line(bus2, bus5, 'line 2-5', r=0.04, x=0.09, b=0.02, rate=1000)) - #grid.add_line(gce.Line(bus3, bus4, 'line 3-4', r=0.06, x=0.13, b=0.03, rate=1000)) - #grid.add_line(gce.Line(bus4, bus5, 'line 4-5', r=0.04, x=0.09, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus2, bus3, 'line 2-3', r=0.04, x=0.09, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus2, bus5, 'line 2-5', r=0.04, x=0.09, b=0.02, rate=1000)) + # grid.add_line(gce.Line(bus3, bus4, 'line 3-4', r=0.06, x=0.13, b=0.03, rate=1000)) + # grid.add_line(gce.Line(bus4, bus5, 'line 4-5', r=0.04, x=0.09, b=0.02, rate=1000)) nc = gce.compile_numerical_circuit_at(grid) return nc -def case9() -> NonlinearOPFResults: + +def case9() -> NumericalCircuit: """ Test case9 from matpower :return: @@ -153,7 +151,7 @@ def case9() -> NonlinearOPFResults: return nc -def case14() -> NonlinearOPFResults: +def case14() -> NumericalCircuit: """ Test case14 from matpower :return: @@ -166,15 +164,14 @@ def case14() -> NonlinearOPFResults: grid = gce.FileOpen(file_path).open() for l in grid.get_transformers2w(): - - l.control_mode = TransformerControlType.PtQt + l.tap_phase_control_mode = TapPhaseControl.fixed nc = gce.compile_numerical_circuit_at(grid) return nc -def case_pegase89() -> NonlinearOPFResults: +def case_pegase89() -> NumericalCircuit: """ Pegase89 """ @@ -184,11 +181,11 @@ def case_pegase89() -> NonlinearOPFResults: file_path = os.path.join('data', 'grids', 'case89pegase.m') grid = gce.FileOpen(file_path).open() - grid.get_transformers2w()[3].control_mode = TransformerControlType.PtQt - grid.get_transformers2w()[7].control_mode = TransformerControlType.PtQt - grid.get_transformers2w()[18].control_mode = TransformerControlType.V - grid.get_transformers2w()[21].control_mode = TransformerControlType.PtQt - grid.get_transformers2w()[36].control_mode = TransformerControlType.Pf + grid.get_transformers2w()[3].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[7].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[18].tap_module_control_mode = TapModuleControl.Vm + grid.get_transformers2w()[21].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[36].tap_phase_control_mode = TapPhaseControl.Pf nc = gce.compile_numerical_circuit_at(grid) @@ -196,7 +193,6 @@ def case_pegase89() -> NonlinearOPFResults: def test_case_3bus(): - nc = case_3bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -226,7 +222,6 @@ def test_case_3bus(): def test_case_5bus(): - nc = case_5bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -256,7 +251,6 @@ def test_case_5bus(): def test_pegase89(): - nc = case_pegase89() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -286,7 +280,6 @@ def test_pegase89(): def test_case14(): - nc = case14() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -316,7 +309,7 @@ def test_case14(): # pass -#def test_ieee14(): +# def test_ieee14(): -#def test_pegase89(): +# def test_pegase89(): diff --git a/src/tests/test_basic.py b/src/tests/test_basic.py index d1450a6b6..0af194537 100644 --- a/src/tests/test_basic.py +++ b/src/tests/test_basic.py @@ -21,7 +21,7 @@ from GridCalEngine.Devices.Injections.static_generator import StaticGenerator from GridCalEngine.Devices.Branches.transformer import TransformerType, Transformer2W from GridCalEngine.Simulations.PowerFlow.power_flow_worker import PowerFlowOptions -from GridCalEngine.Simulations.PowerFlow.power_flow_options import ReactivePowerControlMode, SolverType +from GridCalEngine.Simulations.PowerFlow.power_flow_options import SolverType from GridCalEngine.Simulations.PowerFlow.power_flow_driver import PowerFlowDriver @@ -142,7 +142,7 @@ def test_basic(): options = PowerFlowOptions(SolverType.NR, verbose=True, use_stored_guess=True, - control_q=ReactivePowerControlMode.Direct, + control_q=True, tolerance=1e-6, max_iter=99) @@ -292,7 +292,7 @@ def test_gridcal_basic_pi(): options = PowerFlowOptions(SolverType.NR, verbose=True, use_stored_guess=True, - control_q=ReactivePowerControlMode.Direct, + control_q=True, tolerance=1e-6, max_iter=99) diff --git a/src/tests/test_cgmes_ieeee.py b/src/tests/test_cgmes_ieeee.py index 94dee8e04..009187741 100644 --- a/src/tests/test_cgmes_ieeee.py +++ b/src/tests/test_cgmes_ieeee.py @@ -141,7 +141,7 @@ def test_ieee_grids() -> None: options = gce.PowerFlowOptions(gce.SolverType.NR, verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) for grid_file, results_file in files: diff --git a/src/tests/test_contingency.py b/src/tests/test_contingency.py index 7f896a580..58922f2f2 100644 --- a/src/tests/test_contingency.py +++ b/src/tests/test_contingency.py @@ -29,7 +29,7 @@ def test_contingency() -> None: pf_options = PowerFlowOptions(SolverType.NR, verbose=False, use_stored_guess=False, - control_q=ReactivePowerControlMode.NoControl) + control_q=False) options = ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=ContingencyMethod.PowerFlow) @@ -59,7 +59,7 @@ def test_linear_contingency(): main_circuit = FileOpen(fname).open() pf_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl) + control_q=False) linear_analysis = LinearAnalysisDriver(grid=main_circuit) linear_analysis.run() @@ -81,7 +81,7 @@ def test_linear_contingency(): # verbose=False, # initialize_with_existing_solution=False, # dispatch_storage=True, -# control_q=ReactivePowerControlMode.NoControl, +# control_q=False, # control_p=False) # # linear_analysis = LinearAnalysisDriver(grid=main_circuit) @@ -102,7 +102,7 @@ def test_linear_contingency(): # verbose=False, # initialize_with_existing_solution=False, # dispatch_storage=True, -# control_q=ReactivePowerControlMode.NoControl, +# control_q=False, # control_p=False) # # branches = main_circuit.get_branches() diff --git a/src/tests/test_continuation_power_flow.py b/src/tests/test_continuation_power_flow.py index f675eef4a..c535c0599 100644 --- a/src/tests/test_continuation_power_flow.py +++ b/src/tests/test_continuation_power_flow.py @@ -22,9 +22,7 @@ def test_cpf(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(SolverType.NR, verbose=0, control_q=False) Vmbase = open_data_frame_from_zip(file_name_zip=os.path.join('data', 'results', 'Results_IEEE39_1W.zip'), file_name='Power flow Bus voltage module.csv').values[:, 0] diff --git a/src/tests/test_generator_q_control.py b/src/tests/test_generator_q_control.py index 19537c7c8..a9f28363e 100644 --- a/src/tests/test_generator_q_control.py +++ b/src/tests/test_generator_q_control.py @@ -12,7 +12,7 @@ def test_q_control_true() -> None: for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: options = PowerFlowOptions(solver_type, - control_q=ReactivePowerControlMode.Direct, + control_q=True, retry_with_other_methods=False) power_flow = PowerFlowDriver(main_circuit, options) @@ -41,7 +41,7 @@ def test_q_control_false(): for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: options = PowerFlowOptions(solver_type, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) power_flow = PowerFlowDriver(main_circuit, options) diff --git a/src/tests/test_islands.py b/src/tests/test_islands.py index 27192ed36..ff9ac4a90 100644 --- a/src/tests/test_islands.py +++ b/src/tests/test_islands.py @@ -20,7 +20,7 @@ from GridCalEngine.IO.file_handler import FileOpen from GridCalEngine.Simulations.PowerFlow.power_flow_worker import PowerFlowOptions -from GridCalEngine.Simulations.PowerFlow.power_flow_options import ReactivePowerControlMode, SolverType +from GridCalEngine.Simulations.PowerFlow.power_flow_options import SolverType from GridCalEngine.Simulations.PowerFlow.power_flow_driver import PowerFlowDriver from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Topology.topology import find_islands diff --git a/src/tests/test_latin_hypercube.py b/src/tests/test_latin_hypercube.py index 87b1cfad9..dc11bc0e1 100644 --- a/src/tests/test_latin_hypercube.py +++ b/src/tests/test_latin_hypercube.py @@ -25,13 +25,9 @@ def test_lhs(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(SolverType.NR, - verbose=False, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(SolverType.NR, verbose=False, control_q=False) print('Running LHC...') - lhs_sim = StochasticPowerFlowDriver(main_circuit, - pf_options, - sampling_points=100) + lhs_sim = StochasticPowerFlowDriver(main_circuit, pf_options, sampling_points=100) lhs_sim.run() diff --git a/src/tests/test_monte_carlo.py b/src/tests/test_monte_carlo.py index ec11eef4d..e6682ac23 100644 --- a/src/tests/test_monte_carlo.py +++ b/src/tests/test_monte_carlo.py @@ -25,18 +25,13 @@ def test_monte_carlo(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(SolverType.NR, verbose=0, control_q=False) #################################################################################################################### # Monte Carlo #################################################################################################################### print('Running MC...') - mc_sim = StochasticPowerFlowDriver(main_circuit, - pf_options, - mc_tol=1e-5, - sampling_points=1000) + mc_sim = StochasticPowerFlowDriver(main_circuit, pf_options, mc_tol=1e-5, sampling_points=1000) mc_sim.run() diff --git a/src/tests/test_opf_dispatches_controls.py b/src/tests/test_opf_dispatches_controls.py index 6c5209ea7..f8ac0a993 100644 --- a/src/tests/test_opf_dispatches_controls.py +++ b/src/tests/test_opf_dispatches_controls.py @@ -16,7 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os from GridCalEngine.api import * -from GridCalEngine.enumerations import HvdcControlType, TransformerControlType, TapAngleControl +from GridCalEngine.enumerations import HvdcControlType, TransformerControlType, TapPhaseControl def test_opf_hvdc(): @@ -26,7 +26,7 @@ def test_opf_hvdc(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -66,7 +66,7 @@ def test_opf_gen(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -108,7 +108,7 @@ def test_opf_line_monitoring(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -152,7 +152,7 @@ def test_opf_hvdc_controls(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -198,7 +198,7 @@ def test_opf_trafo_controls(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -208,22 +208,22 @@ def test_opf_trafo_controls(): generate_report=True) # trafo fixed - main_circuit.transformers2w[0].control_mode = TransformerControlType.fixed + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.fixed opf = OptimalPowerFlowDriver(grid=main_circuit, options=opf_options) opf.run() pf1 = opf.results.Sf[48] # trafo controlling - main_circuit.transformers2w[0].control_mode = TransformerControlType.Pf - main_circuit.transformers2w[0].tap_angle_control_mode = TapAngleControl.Pf + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.Pf + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.Pf opf = OptimalPowerFlowDriver(grid=main_circuit, options=opf_options) opf.run() pf2 = opf.results.Sf[48] # trafo back to fixed - main_circuit.transformers2w[0].control_mode = TransformerControlType.fixed + main_circuit.transformers2w[0].tap_phase_control_mode = TapPhaseControl.fixed opf = OptimalPowerFlowDriver(grid=main_circuit, options=opf_options) opf.run() diff --git a/src/tests/test_opf_time_concatenation.py b/src/tests/test_opf_time_concatenation.py index a1db914ab..c37764cf4 100644 --- a/src/tests/test_opf_time_concatenation.py +++ b/src/tests/test_opf_time_concatenation.py @@ -27,7 +27,7 @@ def test_opf_ts_batt(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, @@ -63,7 +63,7 @@ def test_opf_ts_hydro(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, diff --git a/src/tests/test_opf_time_series.py b/src/tests/test_opf_time_series.py index cfa61775a..69489367b 100644 --- a/src/tests/test_opf_time_series.py +++ b/src/tests/test_opf_time_series.py @@ -27,7 +27,7 @@ def test_opf_ts(): power_flow_options = PowerFlowOptions(SolverType.NR, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) opf_options = OptimalPowerFlowOptions(verbose=0, diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index 430463d99..cfccc0a24 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -20,7 +20,7 @@ from GridCalEngine.IO.file_handler import FileOpen from GridCalEngine.Simulations.PowerFlow.power_flow_worker import PowerFlowOptions -from GridCalEngine.Simulations.PowerFlow.power_flow_options import ReactivePowerControlMode, SolverType +from GridCalEngine.Simulations.PowerFlow.power_flow_options import SolverType from GridCalEngine.Simulations.PowerFlow.power_flow_driver import PowerFlowDriver from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at import GridCalEngine.api as gce @@ -47,7 +47,7 @@ def test_ieee_grids(): options = PowerFlowOptions(solver_type, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) for f1, f2 in files: @@ -93,7 +93,7 @@ def test_dc_pf_ieee14(): """ options = PowerFlowOptions(SolverType.DC, verbose=False, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'case14.m') @@ -134,7 +134,7 @@ def test_dc_pf_ieee14_ps(): """ options = PowerFlowOptions(SolverType.DC, verbose=False, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'case14_ps.m') @@ -224,7 +224,7 @@ def test_voltage_remote_control_with_generation() -> None: for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: options = PowerFlowOptions(solver_type, verbose=0, - control_q=ReactivePowerControlMode.NoControl, + control_q=False, retry_with_other_methods=False) results = gce.power_flow(grid, options) diff --git a/src/tests/test_ptdf.py b/src/tests/test_ptdf.py index e5d4de0d7..3ca4b16a9 100644 --- a/src/tests/test_ptdf.py +++ b/src/tests/test_ptdf.py @@ -219,7 +219,7 @@ def test_dcpowerflow(): pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, linear_multiple_contingencies=None) @@ -420,9 +420,7 @@ def test_mlodf() -> None: Sfmlodf = Sf0 + np.matmul(mlodf, Sf0red) # Theoretical method - pf_options = gce.PowerFlowOptions(gce.SolverType.NR, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.NR, verbose=0, control_q=False) options = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PTDF) cont_analysis_driver = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options, @@ -446,9 +444,7 @@ def test_mlodf_sanpen(): main_circuit = gce.FileOpen(fname).open() # DC power flow method - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, linear_multiple_contingencies=None) @@ -490,9 +486,7 @@ def test_ptdf_generation_contingencies(): ]: main_circuit = gce.FileOpen(fname).open() - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) # DC power flow method options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) @@ -532,9 +526,7 @@ def test_lodf_single_contingencies(): main_circuit = gce.FileOpen(fname).open() # DC power flow method - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) @@ -585,14 +577,10 @@ def test_generation_contingencies_powerflow(): ]: main_circuit = gce.FileOpen(case['conti']).open() - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) # DC power flow method with ContingencyAnalysisDriver - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, @@ -710,9 +698,7 @@ def test_ptdf_contingencies_powerflow(): linear_multi_contingency.compute(ptdf=linear_analysis.results.PTDF, lodf=linear_analysis.results.LODF) # DC power flow method with ContingencyAnalysisDriver - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PTDF) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, @@ -743,9 +729,7 @@ def test_ptdf_contingencies_powerflow(): else: # DC power flow method with ContingencyAnalysisDriver - pf_options = gce.PowerFlowOptions(gce.SolverType.DC, - verbose=0, - control_q=gce.ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(gce.SolverType.DC, verbose=0, control_q=False) options1 = gce.ContingencyAnalysisOptions(pf_options=pf_options, contingency_method=gce.ContingencyMethod.PowerFlow) cont_analysis_driver1 = gce.ContingencyAnalysisDriver(grid=main_circuit, options=options1, diff --git a/src/tests/test_short_circuit.py b/src/tests/test_short_circuit.py index 6f8f50df8..5e84f5557 100644 --- a/src/tests/test_short_circuit.py +++ b/src/tests/test_short_circuit.py @@ -26,9 +26,7 @@ def test_short_circuit(): fname = os.path.join('data', 'grids', 'IEEE39_1W.gridcal') print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(solver_type=SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(solver_type=SolverType.NR, verbose=0, control_q=False) #################################################################################################################### # PowerFlowDriver #################################################################################################################### diff --git a/src/tests/test_time_series.py b/src/tests/test_time_series.py index 4fd7f542e..6b49d72fd 100644 --- a/src/tests/test_time_series.py +++ b/src/tests/test_time_series.py @@ -26,9 +26,7 @@ def test_time_series(): print('Reading...') main_circuit = FileOpen(fname).open() - pf_options = PowerFlowOptions(solver_type=SolverType.NR, - verbose=0, - control_q=ReactivePowerControlMode.NoControl) + pf_options = PowerFlowOptions(solver_type=SolverType.NR, verbose=0, control_q=False) ts = PowerFlowTimeSeriesDriver(grid=main_circuit, options=pf_options, time_indices=np.arange(0, 96)) ts.run() diff --git a/src/tests/test_transformer_controls.py b/src/tests/test_transformer_controls.py index 2b1fd9308..59466dbf6 100644 --- a/src/tests/test_transformer_controls.py +++ b/src/tests/test_transformer_controls.py @@ -6,16 +6,14 @@ def test_v_control_true(): """ Test that when the V control is enabled the voltage at the bus is the set point """ - options = PowerFlowOptions(SolverType.NR, - control_q=ReactivePowerControlMode.Direct, - retry_with_other_methods=False) + options = PowerFlowOptions(SolverType.NR, control_q=True, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'IEEE57.gridcal') main_circuit = FileOpen(fname).open() tr = main_circuit.transformers2w[5] - tr.control_mode = TransformerControlType.V + tr.tap_module_control_mode = TapModuleControl.Vm tr.vset = 1.0 power_flow = PowerFlowDriver(main_circuit, options) @@ -31,7 +29,7 @@ def test_v_control_false(): Test that when the V control is disabled the voltage at the bus is not the set point """ options = PowerFlowOptions(SolverType.NR, - control_q=ReactivePowerControlMode.Direct, + control_q=True, retry_with_other_methods=False) fname = os.path.join('data', 'grids', 'IEEE57.gridcal') @@ -39,7 +37,7 @@ def test_v_control_false(): tr = main_circuit.transformers2w[5] - tr.control_mode = TransformerControlType.fixed + tr.tap_phase_control_mode = TapPhaseControl.fixed tr.vset = 1.0 power_flow = PowerFlowDriver(main_circuit, options) diff --git a/src/trunk/acdc_pf/generalised_pf_run.py b/src/trunk/acdc_pf/generalised_pf_run.py index 856887bbb..07f13372a 100644 --- a/src/trunk/acdc_pf/generalised_pf_run.py +++ b/src/trunk/acdc_pf/generalised_pf_run.py @@ -4,9 +4,9 @@ sys.path.append('C:/Users/raiya/Documents/8. eRoots/thesis/code/GridCal/src') import GridCalEngine.api as gce from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.Simulations.PowerFlow.NumericalMethods.generalised_power_flow import run_nonlinear_opf, \ - ac_optimal_power_flow -from GridCalEngine.enumerations import TransformerControlType, AcOpfMode, ReactivePowerControlMode +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.generalised_power_flow import (run_nonlinear_opf, + ac_optimal_power_flow) +from GridCalEngine.enumerations import TransformerControlType, AcOpfMode def example_3bus_acopf(): @@ -472,7 +472,7 @@ def case14(): for ll in range(len(grid.lines)): grid.lines[ll].monitor_loading = True - pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=False) opf_options = gce.OptimalPowerFlowOptions(solver=gce.SolverType.NONLINEAR_OPF, acopf_mode=AcOpfMode.ACOPFstd, ips_tolerance=1e-6, ips_iterations=50, verbose=1) res = run_nonlinear_opf(grid=grid, pf_options=pf_options, opf_options=opf_options, plot_error=True, pf_init=True) diff --git a/src/trunk/acopf/acopf_Q_disp.py b/src/trunk/acopf/acopf_Q_disp.py index 71bc0a34c..a92e08d67 100644 --- a/src/trunk/acopf/acopf_Q_disp.py +++ b/src/trunk/acopf/acopf_Q_disp.py @@ -38,11 +38,11 @@ def modify_grid(grid): def run_acopf(grid): - pf_options = gce.PowerFlowOptions(control_q=gce.ReactivePowerControlMode.NoControl, + pf_options = gce.PowerFlowOptions(control_q=False, ignore_single_node_islands=True, max_iter=50, max_outer_loop_iter=1000, - q_steepness_factor=1.0, + trust_radius=1.0, tolerance=1e-05) opf_options = gce.OptimalPowerFlowOptions(ips_method=gce.SolverType.NR, ips_tolerance=1e-4, diff --git a/src/trunk/acopf/acopf_run.py b/src/trunk/acopf/acopf_run.py index 724f4dfa7..807bb0b18 100644 --- a/src/trunk/acopf/acopf_run.py +++ b/src/trunk/acopf/acopf_run.py @@ -3,7 +3,7 @@ from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf, ac_optimal_power_flow from GridCalEngine.Simulations.OPF.linear_opf_ts import run_linear_opf_ts -from GridCalEngine.enumerations import TransformerControlType, ReactivePowerControlMode +from GridCalEngine.enumerations import TransformerControlType from GridCalEngine.Simulations.NodalCapacity.nodal_capacity_ts_driver import NodalCapacityTimeSeriesDriver from GridCalEngine.Simulations.NodalCapacity.nodal_capacity_options import NodalCapacityOptions import numpy as np @@ -303,7 +303,7 @@ def case14(): for ll in range(len(grid.lines)): grid.lines[ll].monitor_loading = True - pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=ReactivePowerControlMode.NoControl) + pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, control_q=False) opf_options = gce.OptimalPowerFlowOptions(solver=gce.SolverType.NONLINEAR_OPF, acopf_mode=gce.AcOpfMode.ACOPFslacks, ips_tolerance=1e-6, ips_iterations=50, verbose=1) res = run_nonlinear_opf(grid=grid, pf_options=pf_options, opf_options=opf_options, plot_error=True, pf_init=True) diff --git a/src/trunk/code_generation/property_maker.py b/src/trunk/code_generation/property_maker.py index 5f7bec2cd..bc7df2d99 100644 --- a/src/trunk/code_generation/property_maker.py +++ b/src/trunk/code_generation/property_maker.py @@ -3,7 +3,7 @@ "k_qf_m", "k_zero_beq", "k_vf_beq", - "k_vt_m", + "k_v_m", "k_qt_m", "k_pf_dp", "k_m", From b1d7eedd64dfa9fd8fd6bfad9d6b4da645eba377 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 22 Jul 2024 10:33:56 +0100 Subject: [PATCH 122/218] many changes to eliminate control_mode (WIP 2) --- .idea/workspace.xml | 229 ++++++++---------- .../Compilers/circuit_to_data.py | 77 +++--- .../Compilers/circuit_to_newton_pa.py | 34 +-- src/GridCalEngine/DataStructures/__init__.py | 2 +- .../DataStructures/branch_data.py | 10 +- .../DataStructures/numerical_circuit.py | 3 +- src/GridCalEngine/DataStructures/vsc_data.py | 12 +- .../Devices/Branches/transformer.py | 7 +- src/GridCalEngine/Devices/Branches/vsc.py | 7 +- src/GridCalEngine/Devices/Branches/winding.py | 8 +- .../Parents/controllable_branch_parent.py | 13 +- .../Devices/Parents/editable_device.py | 6 +- src/GridCalEngine/IO/gridcal/json_parser.py | 45 ++-- src/GridCalEngine/IO/gridcal/pack_unpack.py | 5 +- .../IO/matpower/matpower_parser.py | 2 +- src/GridCalEngine/Simulations/NTC/ntc_opf.py | 4 +- .../Simulations/NTC/ntc_results.py | 9 +- .../Simulations/OPF/linear_opf_ts.py | 4 +- .../Topology/simulation_indices.py | 15 +- src/GridCalEngine/enumerations.py | 188 +++++++------- 20 files changed, 320 insertions(+), 360 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a8722dbc5..e2f9d768a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,65 +28,27 @@ - - + + + + + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - @@ -951,19 +678,19 @@ + - - + + + - - - + @@ -1710,13 +1437,9 @@ - - - - - - - + + + 1656059954202 @@ -2061,7 +1784,7 @@ - @@ -2094,7 +1817,7 @@ - @@ -2107,6 +1830,10 @@ + + + + @@ -2125,14 +1852,10 @@ - - - - - - - - @@ -2527,12 +2250,12 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py - 361 + 362 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py - 365 + 366 @@ -2647,17 +2370,17 @@ - - + - + + - + @@ -2680,8 +2403,8 @@ - + @@ -2690,13 +2413,13 @@ - - + + - + @@ -2715,15 +2438,16 @@ + - - + + @@ -2760,8 +2484,8 @@ - + @@ -2777,8 +2501,8 @@ - + @@ -2828,8 +2552,8 @@ - + @@ -3042,7 +2766,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 28c9296eb..c0acc166a 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -791,7 +791,6 @@ def get_branch_data(circuit: MultiCircuit, data.virtual_tap_f[i], data.virtual_tap_t[i] = elm.get_virtual_taps() - data.control_mode[i] = 0 data.tap_phase_control_mode[i] = 0 data.tap_module_control_mode[i] = 0 @@ -836,7 +835,6 @@ def get_branch_data(circuit: MultiCircuit, data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) - data.control_mode[ii] = 0 data.tap_phase_control_mode[i] = 0 data.tap_module_control_mode[i] = 0 @@ -1096,37 +1094,6 @@ def get_branch_data(circuit: MultiCircuit, data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) - ''' - type_0_free = '0:Free' - type_I_1 = '1:Vac' - type_I_2 = '2:Pdc+Qac' - type_I_3 = '3:Pdc+Vac' - type_II_4 = '4:Vdc+Qac' - type_II_5 = '5:Vdc+Vac' - type_III_6 = '6:Droop+Qac' - type_III_7 = '7:Droop+Vac' - ''' - - # if not use_stored_guess: - # if elm.control_mode == ConverterControlType.type_I_1: # 1a:Vac - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_I_3: # 3:Pdc+Vac - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_II_4: # 4:Vdc+Qac - # bus_data.Vbus[f] = elm.Vdc_set - # - # elif elm.control_mode == ConverterControlType.type_II_5: # 5:Vdc+Vac - # bus_data.Vbus[f] = elm.Vdc_set - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_III_7: # 7:Droop+Vac - # bus_data.Vbus[t] = elm.Vac_set - # - # elif elm.control_mode == ConverterControlType.type_IV_I: # 8:Vdc - # bus_data.Vbus[f] = elm.Vdc_set - ii += 1 # UPFC diff --git a/src/tests/test_opf_dispatches_controls.py b/src/tests/test_opf_dispatches_controls.py index f8ac0a993..cb4b919c1 100644 --- a/src/tests/test_opf_dispatches_controls.py +++ b/src/tests/test_opf_dispatches_controls.py @@ -16,7 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os from GridCalEngine.api import * -from GridCalEngine.enumerations import HvdcControlType, TransformerControlType, TapPhaseControl +from GridCalEngine.enumerations import HvdcControlType, TapModuleControl, TapPhaseControl def test_opf_hvdc(): diff --git a/src/trunk/acopf/acopf_admittance_tap_derivation.py b/src/trunk/acopf/acopf_admittance_tap_derivation.py index 57a4a67b3..5baf00031 100644 --- a/src/trunk/acopf/acopf_admittance_tap_derivation.py +++ b/src/trunk/acopf/acopf_admittance_tap_derivation.py @@ -2,11 +2,12 @@ import GridCalEngine.api as gce from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf, ac_optimal_power_flow -from GridCalEngine.enumerations import TransformerControlType +from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl from scipy.sparse import csc_matrix as csc from scipy import sparse as sp import numpy as np + def example_3bus_acopf(): """ @@ -32,11 +33,11 @@ def example_3bus_acopf(): grid.add_generator(b1, gce.Generator('G1', vset=1.00, Cost=1.0, Cost2=2.0)) grid.add_generator(b2, gce.Generator('G2', P=10, vset=0.995, Cost=1.0, Cost2=3.0)) - tr1 = gce.Transformer2W(b1, b2, 'Trafo1', control_mode=TransformerControlType.Pf, + tr1 = gce.Transformer2W(b1, b2, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.1, tap_phase=0.02, r=0.001, x=0.05) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(b3, b1, 'Trafo1', control_mode=TransformerControlType.PtQt, + tr2 = gce.Transformer2W(b3, b1, 'Trafo1', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=-0.02, r=0.001, x=0.05) grid.add_transformer2w(tr2) @@ -114,7 +115,6 @@ def compute_analytic_admittances(nc): def compute_finitediff_admittances(nc, tol=1e-5): - k_m = nc.k_m k_tau = nc.k_tau @@ -145,7 +145,6 @@ def compute_finitediff_admittances(nc, tol=1e-5): def compute_analytic_admittances_2dev(nc): - k_m = nc.k_m k_tau = nc.k_tau k_mtau = nc.k_mtau @@ -221,7 +220,6 @@ def compute_analytic_admittances_2dev(nc): def compute_finitediff_admittances_2dev(nc, tol=1e-5): - k_m = nc.k_m k_tau = nc.k_tau From 058677eea067a62a5dc5fc0b38d73467df7ff31a Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 24 Jul 2024 19:27:00 +0100 Subject: [PATCH 125/218] Converted the VSC to a child of ControllableBranchParent --- .../Compilers/circuit_to_data.py | 8 +- .../Devices/Branches/transformer.py | 126 ++++++------ src/GridCalEngine/Devices/Branches/vsc.py | 182 +++++++++--------- .../Parents/controllable_branch_parent.py | 79 +------- 4 files changed, 172 insertions(+), 223 deletions(-) diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index c0acc166a..f9dac8eed 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -1084,11 +1084,11 @@ def get_branch_data(circuit: MultiCircuit, data.tap_angle_min[ii] = elm.tap_phase_min data.tap_angle_max[ii] = elm.tap_phase_max - data.Pfset[ii] = elm.Pdc_set - data.Qtset[ii] = elm.Qac_set + data.Pfset[ii] = elm.Pset + data.Qtset[ii] = 0.0 data.Kdp[ii] = elm.kdp - data.vf_set[ii] = elm.Vac_set - data.vt_set[ii] = elm.Vdc_set + # data.vf_set[ii] = elm.Vac_set + # data.vt_set[ii] = elm.Vdc_set data.tap_phase_control_mode[i] = elm.tap_phase_control_mode data.tap_module_control_mode[i] = elm.tap_module_control_mode data.contingency_enabled[ii] = int(elm.contingency_enabled) diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index 6a1f85786..56ed58b5d 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -16,12 +16,14 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import numpy as np -from typing import Tuple, Union +from typing import Tuple, Union, List from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import (WindingsConnection, BuildStatus, TapPhaseControl, TapModuleControl, TapChangerTypes) +from GridCalEngine.Devices.Branches.tap_changer import TapChanger +from GridCalEngine.enumerations import (WindingsConnection, BuildStatus, TapPhaseControl, + TapModuleControl, SubObjectType, TapChangerTypes) from GridCalEngine.Devices.Parents.controllable_branch_parent import ControllableBranchParent from GridCalEngine.Devices.Branches.transformer_type import TransformerType, reverse_transformer_short_circuit_study from GridCalEngine.Devices.Parents.editable_device import DeviceType @@ -65,7 +67,6 @@ def __init__(self, temp_base: float = 20.0, temp_oper: float = 20.0, alpha: float = 0.00330, - # control_mode: TransformerControlType = TransformerControlType.fixed, # legacy? tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, template: TransformerType = None, @@ -125,7 +126,6 @@ def __init__(self, :param temp_base: Base temperature at which `r` is measured in °C :param temp_oper: Operating temperature in °C :param alpha: Thermal constant of the material in °C - :param control_mode: Control model :param template: Branch template :param contingency_factor: Rating factor in case of contingency :param contingency_enabled: enabled for contingencies (Legacy) @@ -194,12 +194,7 @@ def __init__(self, capex=capex, opex=opex, build_status=build_status, - device_type=DeviceType.Transformer2WDevice, - tc_total_positions=tc_total_positions, - tc_neutral_position=tc_neutral_position, - tc_dV=tc_dV, - tc_asymmetry_angle=tc_asymmetry_angle, - tc_type=tc_type) + device_type=DeviceType.Transformer2WDevice) # set the high and low voltage values self.HV = HV @@ -224,7 +219,24 @@ def __init__(self, # type template self.template = template + # tap changer object + self._tap_changer = TapChanger(total_positions=tc_total_positions, + neutral_position=tc_neutral_position, + dV=tc_dV, + asymmetry_angle=tc_asymmetry_angle, + tc_type=tc_type) + + # Tap module + if tap_module != 0: + self.tap_module = tap_module + self._tap_changer.set_tap_module(self.tap_module) + else: + self.tap_module = self._tap_changer.get_tap_module() + # register + self.register(key='tap_changer', units='', tpe=SubObjectType.TapChanger, definition='Tap changer object', + editable=False) + self.register(key='HV', units='kV', tpe=float, definition='High voltage rating') self.register(key='LV', units='kV', tpe=float, definition='Low voltage rating') self.register(key='Sn', units='MVA', tpe=float, definition='Nominal power') @@ -238,6 +250,54 @@ def __init__(self, self.register(key='template', units='', tpe=DeviceType.TransformerTypeDevice, definition='', editable=False) + @property + def tap_changer(self) -> TapChanger: + """ + Cost profile + :return: Profile + """ + return self._tap_changer + + @tap_changer.setter + def tap_changer(self, val: TapChanger): + if isinstance(val, TapChanger): + self._tap_changer = val + else: + raise Exception(str(type(val)) + 'not supported to be set into a tap_changer') + + def tap_up(self): + """ + Move the tap changer one position up + """ + self.tap_changer.tap_up() + self.tap_module = self.tap_changer.get_tap_module() + self.tap_phase = self.tap_changer.get_tap_phase() + + def tap_down(self): + """ + Move the tap changer one position up + """ + self.tap_changer.tap_down() + self.tap_module = self.tap_changer.get_tap_module() + self.tap_phase = self.tap_changer.get_tap_phase() + + def apply_tap_changer(self, tap_changer: TapChanger): + """ + Apply a new tap changer + + Argument: + + **tap_changer** (:class:`GridCalEngine.Devices.branch.TapChanger`): Tap changer object + + """ + self.tap_changer = tap_changer + + if self.tap_module != 0: + self.tap_changer.set_tap_module(tap_module=self.tap_module) + else: + self.tap_module = self.tap_changer.get_tap_module() + self.tap_phase = self.tap_changer.get_tap_phase() + def set_hv_and_lv(self, HV: float, LV: float): """ set the high and low voltage values @@ -261,50 +321,6 @@ def set_hv_and_lv(self, HV: float, LV: float): else: self.LV = LV - # def copy(self, bus_dict=None): - # """ - # Returns a copy of the branch - # @return: A new with the same content as this - # """ - # - # if bus_dict is None: - # f = self.bus_from - # t = self.bus_to - # else: - # f = bus_dict[self.bus_from] - # t = bus_dict[self.bus_to] - # - # # z_series = complex(self.R, self.X) - # # y_shunt = complex(self.G, self.B) - # b = Transformer2W(bus_from=f, - # bus_to=t, - # name=self.name, - # r=self.R, - # x=self.X, - # g=self.G, - # b=self.B, - # rate=self.rate, - # tap_module=self.tap_module, - # tap_phase=self.tap_phase, - # active=self.active, - # mttf=self.mttf, - # mttr=self.mttr, - # vset=self.vset, - # temp_base=self.temp_base, - # temp_oper=self.temp_oper, - # alpha=self.alpha, - # template=self.template, - # opex=self.opex, - # capex=self.capex) - # - # b.regulation_bus = self.regulation_bus - # b.regulation_cn = self.regulation_cn - # b.active_prof = self.active_prof - # b.rate_prof = self.rate_prof - # b.Cost_prof = self.Cost_prof - # - # return b - def get_from_to_nominal_voltages(self) -> Tuple[float, float]: """ @@ -394,7 +410,7 @@ def apply_template(self, obj: TransformerType, Sbase, logger=Logger()): else: self.template = obj - def get_save_data(self): + def get_save_data(self) -> Union[None, List[str]]: """ Return the data that matches the edit_headers :return: diff --git a/src/GridCalEngine/Devices/Branches/vsc.py b/src/GridCalEngine/Devices/Branches/vsc.py index 4299ac3bc..aa956668c 100644 --- a/src/GridCalEngine/Devices/Branches/vsc.py +++ b/src/GridCalEngine/Devices/Branches/vsc.py @@ -22,30 +22,57 @@ from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import BuildStatus -from GridCalEngine.Devices.Parents.branch_parent import BranchParent +from GridCalEngine.enumerations import BuildStatus, TapModuleControl, TapPhaseControl +from GridCalEngine.Devices.Parents.controllable_branch_parent import ControllableBranchParent from GridCalEngine.Devices.Parents.editable_device import DeviceType -class VSC(BranchParent): +class VSC(ControllableBranchParent): def __init__(self, - bus_from: Bus = None, bus_to: Bus = None, + bus_from: Bus = None, + bus_to: Bus = None, cn_from: ConnectivityNode = None, cn_to: ConnectivityNode = None, - name='VSC', idtag=None, code='', active=True, - r=0.0001, x=0.05, - tap_module=1.0, tap_module_max=1.1, tap_module_min=0.8, - tap_phase=0.1, tap_phase_max=6.28, tap_phase_min=-6.28, - Beq=0.001, Beq_min=-0.1, Beq_max=0.1, - G0sw=1e-5, rate=1e-9, kdp=-0.05, k=1.0, - Pfset=0.0, Qfset=0.0, Vac_set=1.0, Vdc_set=1.0, - alpha1=0.0001, alpha2=0.015, alpha3=0.2, - mttf=0, mttr=0, cost=100, contingency_factor=1.0, + name='VSC', + idtag=None, + code='', + active=True, + r=0.0001, + x=0.05, + tap_module=1.0, + tap_module_max=1.1, + tap_module_min=0.8, + tap_phase=0.1, + tap_phase_max=6.28, + tap_phase_min=-6.28, + Beq=0.001, + Beq_min=-0.1, + Beq_max=0.1, + G0sw=1e-5, + rate=1e-9, + kdp=-0.05, + k=1.0, + alpha1=0.0001, + alpha2=0.015, + alpha3=0.2, + mttf=0.0, + mttr=0.0, + tap_module_control_mode: TapModuleControl = TapModuleControl.fixed, + tap_phase_control_mode: TapPhaseControl = TapPhaseControl.fixed, + vset: float = 1.0, + Pset: float = 0.0, + cost=100, + contingency_factor=1.0, protection_rating_factor: float = 1.4, - contingency_enabled=True, monitor_loading=True, - r0=0.0001, x0=0.05, r2=0.0001, x2=0.05, - capex=0, opex=0, build_status: BuildStatus = BuildStatus.Commissioned): + contingency_enabled=True, + monitor_loading=True, + r0=0.0001, + x0=0.05, + r2=0.0001, + x2=0.05, + capex=0, + opex=0, build_status: BuildStatus = BuildStatus.Commissioned): """ Voltage source converter (VSC) :param bus_from: @@ -69,11 +96,6 @@ def __init__(self, :param rate: :param kdp: :param k: - :param control_mode: - :param Pfset: - :param Qfset: - :param Vac_set: - :param Vdc_set: :param alpha1: :param alpha2: :param alpha3: @@ -92,27 +114,57 @@ def __init__(self, :param build_status: """ - BranchParent.__init__(self, - name=name, - idtag=idtag, - code=code, - bus_from=bus_from, - bus_to=bus_to, - cn_from=cn_from, - cn_to=cn_to, - active=active, - rate=rate, - contingency_factor=contingency_factor, - protection_rating_factor=protection_rating_factor, - contingency_enabled=contingency_enabled, - monitor_loading=monitor_loading, - mttf=mttf, - mttr=mttr, - build_status=build_status, - capex=capex, - opex=opex, - Cost=cost, - device_type=DeviceType.VscDevice) + ControllableBranchParent.__init__(self, + name=name, + idtag=idtag, + code=code, + bus_from=bus_from, + bus_to=bus_to, + cn_from=cn_from, + cn_to=cn_to, + active=active, + rate=rate, + r=r, + x=x, + g=0.0, + b=0.0, + tap_module=tap_module, + tap_module_max=tap_module_max, + tap_module_min=tap_module_min, + tap_phase=tap_phase, + tap_phase_max=tap_phase_max, + tap_phase_min=tap_phase_min, + tolerance=0.0, + Cost=cost, + mttf=mttf, + mttr=mttr, + vset=vset, + Pset=Pset, + regulation_branch=None, + regulation_bus=None, + regulation_cn=None, + temp_base=20.0, + temp_oper=20.0, + alpha=0.00330, + # control_mode=control_mode, + tap_module_control_mode=tap_module_control_mode, + tap_phase_control_mode=tap_phase_control_mode, + contingency_factor=contingency_factor, + protection_rating_factor=protection_rating_factor, + contingency_enabled=contingency_enabled, + monitor_loading=monitor_loading, + r0=r0, + x0=x0, + g0=0.0, + b0=0.0, + r2=r2, + x2=x2, + g2=0.0, + b2=0.0, + capex=capex, + opex=opex, + build_status=build_status, + device_type=DeviceType.VscDevice) # the VSC must only connect from an DC to a AC bus # this connectivity sense is done to keep track with the articles that set it @@ -136,19 +188,6 @@ def __init__(self, self.bus_from = None self.bus_to = None - # List of measurements - self.measurements = list() - - # total impedance and admittance in p.u. - self.R = r - self.X = x - - self.R0 = r0 - self.X0 = x0 - - self.R2 = r2 - self.X2 = x2 - self.G0sw = G0sw self.Beq = Beq self.tap_module = tap_module @@ -162,45 +201,16 @@ def __init__(self, self.Beq_min = Beq_min self.Beq_max = Beq_max - self.Pdc_set = Pfset - self.Qac_set = Qfset - self.Vac_set = Vac_set - self.Vdc_set = Vdc_set - # self.control_mode = control_mode - self.kdp = kdp self.alpha1 = alpha1 self.alpha2 = alpha2 self.alpha3 = alpha3 - self.register(key='R', units='p.u.', tpe=float, definition='Resistive positive sequence losses.', - old_names=['R1']) - self.register(key='X', units='p.u.', tpe=float, definition='Magnetic positive sequence losses.', - old_names=['X1']) - self.register(key='R0', units='p.u.', tpe=float, definition='Resistive zero sequence losses.') - self.register(key='X0', units='p.u.', tpe=float, definition='Magnetic zero sequence losses.') - self.register(key='R2', units='p.u.', tpe=float, definition='Resistive negative sequence losses.') - self.register(key='X2', units='p.u.', tpe=float, definition='Magnetic negative sequence losses.') - self.register(key='G0sw', units='p.u.', tpe=float, definition='Inverter losses.') self.register(key='Beq', units='p.u.', tpe=float, definition='Total shunt susceptance.') self.register(key='Beq_max', units='p.u.', tpe=float, definition='Max total shunt susceptance.') self.register(key='Beq_min', units='p.u.', tpe=float, definition='Min total shunt susceptance.') - self.register(key='tap_module', units='', tpe=float, definition='Tap changer module, it a value close to 1.0', - old_names=['m']) - self.register(key='tap_module_max', units='', tpe=float, definition='Max tap changer module', - old_names=['m_max']) - self.register(key='tap_module_min', units='', tpe=float, definition='Min tap changer module', - old_names=['m_min']) - - self.register(key='tap_phase', units='rad', tpe=float, definition='Converter firing angle.', - old_names=['theta']) - self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max converter firing angle.', - old_names=['theta_max']) - self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min converter firing angle.', - old_names=['theta_min']) - self.register(key='alpha1', units='', tpe=float, definition='Converter losses curve parameter (IEC 62751-2 loss Correction).') self.register(key='alpha2', units='', tpe=float, @@ -210,10 +220,6 @@ def __init__(self, self.register(key='k', units='p.u./p.u.', tpe=float, definition='Converter factor, typically 0.866.') self.register(key='kdp', units='p.u./p.u.', tpe=float, definition='Droop Power/Voltage slope.') - self.register(key='Pdc_set', units='MW', tpe=float, definition='DC power set point.') - self.register(key='Qac_set', units='MVAr', tpe=float, definition='AC Reactive power set point.') - self.register(key='Vac_set', units='p.u.', tpe=float, definition='AC voltage set point.') - self.register(key='Vdc_set', units='p.u.', tpe=float, definition='DC voltage set point.') def get_weight(self): """ diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index 824a4576e..df5a29fb3 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -19,10 +19,8 @@ from typing import Union from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode -from GridCalEngine.enumerations import (BuildStatus, TapModuleControl, TapPhaseControl, - SubObjectType, TapChangerTypes) +from GridCalEngine.enumerations import (BuildStatus, TapModuleControl, TapPhaseControl) from GridCalEngine.Devices.Parents.branch_parent import BranchParent -from GridCalEngine.Devices.Branches.tap_changer import TapChanger from GridCalEngine.Devices.Parents.editable_device import DeviceType from GridCalEngine.Devices.profile import Profile @@ -79,12 +77,7 @@ def __init__(self, capex: float, opex: float, build_status: BuildStatus, - device_type: DeviceType, - tc_total_positions: int = 5, - tc_neutral_position: int = 2, - tc_dV: float = 0.01, - tc_asymmetry_angle=90, - tc_type: TapChangerTypes = TapChangerTypes.NoRegulation): + device_type: DeviceType): """ Transformer constructor :param name: Name of the branch @@ -183,20 +176,8 @@ def __init__(self, # Conductor thermal constant (1/ºC) self.alpha = alpha - # tap changer object - self._tap_changer = TapChanger(total_positions=tc_total_positions, - neutral_position=tc_neutral_position, - dV=tc_dV, - asymmetry_angle=tc_asymmetry_angle, - tc_type=tc_type) - # Tap module - if tap_module != 0: - self.tap_module = tap_module - self._tap_changer.set_tap_module(self.tap_module) - else: - self.tap_module = self._tap_changer.get_tap_module() - + self.tap_module = tap_module self._tap_module_prof = Profile(default_value=tap_module, data_type=float) # Tap angle @@ -238,9 +219,6 @@ def __init__(self, definition='Tolerance expected for the impedance values% ' 'is expected for transformers0% for lines.') - self.register(key='tap_changer', units='', tpe=SubObjectType.TapChanger, definition='Tap changer object', - editable=False) - self.register(key='tap_module', units='', tpe=float, definition='Tap changer module, it a value close to 1.0', profile_name='tap_module_prof', old_names=['tap']) self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value') @@ -251,9 +229,6 @@ def __init__(self, self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) - # self.register(key='control_mode', units='', tpe=TransformerControlType, - # definition='Control type of the transformer') - self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, definition='Control available with the tap module') @@ -334,21 +309,6 @@ def temp_oper_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a temp_oper_prof') - @property - def tap_changer(self) -> TapChanger: - """ - Cost profile - :return: Profile - """ - return self._tap_changer - - @tap_changer.setter - def tap_changer(self, val: TapChanger): - if isinstance(val, TapChanger): - self._tap_changer = val - else: - raise Exception(str(type(val)) + 'not supported to be set into a tap_changer') - @property def R_corrected(self): """ @@ -385,36 +345,3 @@ def flip(self): """ F, T = self.bus_from, self.bus_to self.bus_to, self.bus_from = F, T - - def tap_up(self): - """ - Move the tap changer one position up - """ - self.tap_changer.tap_up() - self.tap_module = self.tap_changer.get_tap_module() - self.tap_phase = self.tap_changer.get_tap_phase() - - def tap_down(self): - """ - Move the tap changer one position up - """ - self.tap_changer.tap_down() - self.tap_module = self.tap_changer.get_tap_module() - self.tap_phase = self.tap_changer.get_tap_phase() - - def apply_tap_changer(self, tap_changer: TapChanger): - """ - Apply a new tap changer - - Argument: - - **tap_changer** (:class:`GridCalEngine.Devices.branch.TapChanger`): Tap changer object - - """ - self.tap_changer = tap_changer - - if self.tap_module != 0: - self.tap_changer.set_tap_module(tap_module=self.tap_module) - else: - self.tap_module = self.tap_changer.get_tap_module() - self.tap_phase = self.tap_changer.get_tap_phase() From 0953401620ec8708c5177950ad50639c399ac205 Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 25 Jul 2024 18:40:23 +0100 Subject: [PATCH 126/218] working on fixing the simulation indices --- .idea/workspace.xml | 52 ++--- .../Compilers/circuit_to_data.py | 17 +- .../DataStructures/branch_data.py | 7 + .../DataStructures/numerical_circuit.py | 3 +- src/GridCalEngine/Devices/Branches/vsc.py | 12 +- src/GridCalEngine/Devices/Substation/bus.py | 3 +- .../Topology/simulation_indices.py | 201 +----------------- 7 files changed, 49 insertions(+), 246 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ed9878eb6..d8374ace6 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,12 @@ - + - - + + + + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.ieee9_Kriti.executor": "Debug", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - + @@ -682,16 +689,16 @@ - + - + + - @@ -1441,7 +1448,8 @@ - + + 1656059954202 @@ -1786,7 +1794,7 @@ - @@ -1832,7 +1840,6 @@ - @@ -1857,7 +1864,8 @@ - @@ -2368,21 +2376,27 @@ 202 - - + - + + - + @@ -2405,8 +2419,8 @@ - + @@ -2415,13 +2429,13 @@ - - + + - + @@ -2435,6 +2449,7 @@ + @@ -2446,10 +2461,10 @@ - - + + @@ -2486,8 +2501,8 @@ - + @@ -2503,8 +2518,8 @@ - + @@ -2554,8 +2569,8 @@ - + @@ -2768,7 +2783,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index f145a3266..56823759d 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -19,6 +19,7 @@ from GridCalEngine.Devices import Associations from GridCalEngine.basic_structures import Logger +import GridCalEngine.Devices as dev from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -689,6 +690,171 @@ def get_battery_data(circuit: MultiCircuit, return data +def fill_parent_branch(i: int, + elm: Union[dev.Line, dev.DcLine, dev.Transformer2W, + dev.Winding, dev.VSC, dev.UPFC, dev.SeriesReactance], + data: ds.BranchData, + bus_dict: Dict[Bus, int], + apply_temperature: bool, + branch_tolerance_mode: BranchImpedanceMode, + t_idx: int = -1, + time_series: bool = False, + is_dc_branch: bool = False, ): + """ + + :param i: + :param elm: + :param data: + :param bus_dict: + :param apply_temperature: + :param branch_tolerance_mode: + :param t_idx: + :param time_series: + :param is_dc_branch: + :return: + """ + data.names[i] = elm.name + data.idtag[i] = elm.idtag + + data.mttf[i] = elm.mttf + data.mttr[i] = elm.mttr + + if time_series: + data.active[i] = elm.active_prof[t_idx] + data.rates[i] = elm.rate_prof[t_idx] + data.contingency_rates[i] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] + data.protection_rates[i] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] + + data.overload_cost[i] = elm.Cost_prof[t_idx] + + else: + data.active[i] = elm.active + data.rates[i] = elm.rate + data.contingency_rates[i] = elm.rate * elm.contingency_factor + data.protection_rates[i] = elm.rate * elm.protection_rating_factor + + data.overload_cost[i] = elm.Cost + + f = bus_dict[elm.bus_from] + t = bus_dict[elm.bus_to] + data.C_branch_bus_f[i, f] = 1 + data.C_branch_bus_t[i, t] = 1 + data.F[i] = f + data.T[i] = t + + if apply_temperature: + data.R[i] = elm.R_corrected + else: + data.R[i] = elm.R + + if branch_tolerance_mode == BranchImpedanceMode.Lower: + data.R[i] *= (1 - elm.tolerance / 100.0) + elif branch_tolerance_mode == BranchImpedanceMode.Upper: + data.R[i] *= (1 + elm.tolerance / 100.0) + + if not is_dc_branch: + data.X[i] = elm.X + data.B[i] = elm.B + + data.R0[i] = elm.R0 + data.X0[i] = elm.X0 + data.B0[i] = elm.B0 + + data.R2[i] = elm.R2 + data.X2[i] = elm.X2 + data.B2[i] = elm.B2 + + data.contingency_enabled[i] = int(elm.contingency_enabled) + data.monitor_loading[i] = int(elm.monitor_loading) + + data.virtual_tap_f[i], data.virtual_tap_t[i] = elm.get_virtual_taps() + + return f, t + + +def fill_controllable_branch(ii: int, + elm: Union[dev.Transformer2W, dev.Winding, dev.VSC, dev.UPFC], + data: ds.BranchData, + bus_data: ds.BusData, + bus_dict: Dict[Bus, int], + apply_temperature: bool, + branch_tolerance_mode: BranchImpedanceMode, + t_idx: int = -1, + time_series: bool = False, + opf_results: Union[OptimalPowerFlowResults, None] = None, + use_stored_guess: bool = False, ): + """ + + :param ii: + :param elm: + :param data: + :param bus_data: + :param bus_dict: + :param apply_temperature: + :param branch_tolerance_mode: + :param t_idx: + :param time_series: + :param opf_results: + :param use_stored_guess: + :return: + """ + _, t = fill_parent_branch(i=ii, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=False) + + data.conn[ii] = elm.conn + + if time_series: + + data.tap_phase_control_mode[ii] = elm.tap_phase_control_mode_prof[t_idx] + data.tap_module_control_mode[ii] = elm.tap_module_control_mode_prof[t_idx] + + reg_bus = elm.bus_to if elm.regulation_bus is None else elm.regulation_bus + data.tap_module_buses[ii] = bus_dict[reg_bus] + + data.Pset[ii] = elm.Pset_prof[t_idx] + data.vset[ii] = elm.vset_prof[t_idx] + + if opf_results is not None: + data.tap_module[ii] = elm.tap_module + data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] + else: + data.tap_module[ii] = elm.tap_module_prof[t_idx] + data.tap_angle[ii] = elm.tap_phase_prof[t_idx] + else: + + data.tap_phase_control_mode[ii] = elm.tap_phase_control_mode + data.tap_module_control_mode[ii] = elm.tap_module_control_mode + + reg_bus = elm.bus_to if elm.regulation_bus is None else elm.regulation_bus + data.tap_module_buses[ii] = bus_dict[reg_bus] + + data.Pset[ii] = elm.Pset + data.vset[ii] = elm.vset + + if opf_results is not None: + data.tap_module[ii] = elm.tap_module + data.tap_angle[ii] = opf_results.phase_shift[ii] + else: + data.tap_module[ii] = elm.tap_module + data.tap_angle[ii] = elm.tap_phase + + data.tap_module_min[ii] = elm.tap_module_min + data.tap_module_max[ii] = elm.tap_module_max + data.tap_angle_min[ii] = elm.tap_phase_min + data.tap_angle_max[ii] = elm.tap_phase_max + + if not use_stored_guess: + if elm.tap_module_control_mode == TapModuleControl.Vm: + bus_data.Vbus[t] = elm.vset + + def get_branch_data(circuit: MultiCircuit, bus_dict: Dict[Bus, int], bus_data: ds.BusData, @@ -704,6 +870,7 @@ def get_branch_data(circuit: MultiCircuit, Compile BranchData for a time step or the snapshot :param circuit: MultiCircuit :param bus_dict: Dictionary of buses to compute the indices + :param bus_data: BusData :param bus_voltage_used: :param apply_temperature: apply the temperature correction? :param branch_tolerance_mode: BranchImpedanceMode @@ -723,65 +890,15 @@ def get_branch_data(circuit: MultiCircuit, # Compile the lines for i, elm in enumerate(circuit.lines): # generic stuff - data.names[i] = elm.name - data.idtag[i] = elm.idtag - - data.mttf[i] = elm.mttf - data.mttr[i] = elm.mttr - - if time_series: - data.active[i] = elm.active_prof[t_idx] - data.rates[i] = elm.rate_prof[t_idx] - data.contingency_rates[i] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[i] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - - data.overload_cost[i] = elm.Cost_prof[t_idx] - - else: - data.active[i] = elm.active - data.rates[i] = elm.rate - data.contingency_rates[i] = elm.rate * elm.contingency_factor - data.protection_rates[i] = elm.rate * elm.protection_rating_factor - - data.overload_cost[i] = elm.Cost - - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - data.C_branch_bus_f[i, f] = 1 - data.C_branch_bus_t[i, t] = 1 - data.F[i] = f - data.T[i] = t - - if apply_temperature: - data.R[i] = elm.R_corrected - else: - data.R[i] = elm.R - - if branch_tolerance_mode == BranchImpedanceMode.Lower: - data.R[i] *= (1 - elm.tolerance / 100.0) - elif branch_tolerance_mode == BranchImpedanceMode.Upper: - data.R[i] *= (1 + elm.tolerance / 100.0) - - data.X[i] = elm.X - data.B[i] = elm.B - - data.R0[i] = elm.R0 - data.X0[i] = elm.X0 - data.B0[i] = elm.B0 - - data.R2[i] = elm.R2 - data.X2[i] = elm.X2 - data.B2[i] = elm.B2 - - # data.conn[i] = elm.conn - - data.contingency_enabled[i] = int(elm.contingency_enabled) - data.monitor_loading[i] = int(elm.monitor_loading) - - data.virtual_tap_f[i], data.virtual_tap_t[i] = elm.get_virtual_taps() - - data.tap_phase_control_mode[i] = 0 - data.tap_module_control_mode[i] = 0 + fill_parent_branch(i=i, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=False) data.possible_tower_types[i] = elm.possible_tower_types data.possible_underground_line_types[i] = elm.possible_underground_line_types @@ -792,135 +909,31 @@ def get_branch_data(circuit: MultiCircuit, # DC-lines for i, elm in enumerate(circuit.dc_lines): # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - data.dc[ii] = 1 - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - data.tap_phase_control_mode[i] = 0 - data.tap_module_control_mode[i] = 0 - - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - if apply_temperature: - data.R[ii] = elm.R_corrected - else: - data.R[ii] = elm.R - - if branch_tolerance_mode == BranchImpedanceMode.Lower: - data.R[ii] *= (1 - elm.tolerance / 100.0) - elif branch_tolerance_mode == BranchImpedanceMode.Upper: - data.R[ii] *= (1 + elm.tolerance / 100.0) + fill_parent_branch(i=ii, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=True) ii += 1 # 2-winding transformers for i, elm in enumerate(circuit.transformers2w): - - # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.R[ii] = elm.R - data.X[ii] = elm.X - data.G[ii] = elm.G - data.B[ii] = elm.B - - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - data.G0[ii] = elm.G0 - data.B0[ii] = elm.B0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 - data.G2[ii] = elm.G2 - data.B2[ii] = elm.B2 - - data.conn[ii] = elm.conn - - if time_series: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] - else: - data.tap_module[ii] = elm.tap_module_prof[t_idx] - data.tap_angle[ii] = elm.tap_phase_prof[t_idx] - else: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[ii] - else: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = elm.tap_phase - - data.tap_module_min[ii] = elm.tap_module_min - data.tap_module_max[ii] = elm.tap_module_max - data.tap_angle_min[ii] = elm.tap_phase_min - data.tap_angle_max[ii] = elm.tap_phase_max - - data.Pfset[ii] = elm.Pset - - data.tap_phase_control_mode[i] = elm.tap_phase_control_mode - data.tap_module_control_mode[i] = elm.tap_module_control_mode - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - if not use_stored_guess: - if elm.tap_module_control_mode == TapModuleControl.Vm: - bus_data.Vbus[t] = elm.vset + fill_controllable_branch(ii=ii, + elm=elm, + data=data, + bus_data=bus_data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + opf_results=opf_results, + use_stored_guess=use_stored_guess) ii += 1 @@ -929,81 +942,17 @@ def get_branch_data(circuit: MultiCircuit, if elm.bus_from is not None and elm.bus_to is not None: # generic stuff - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.R[ii] = elm.R - data.X[ii] = elm.X - data.G[ii] = elm.G - data.B[ii] = elm.B - - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - data.G0[ii] = elm.G0 - data.B0[ii] = elm.B0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 - data.G2[ii] = elm.G2 - data.B2[ii] = elm.B2 - - data.conn[ii] = elm.conn - - if time_series: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] - else: - data.tap_module[ii] = elm.tap_module_prof[t_idx] - data.tap_angle[ii] = elm.tap_phase_prof[t_idx] - else: - if opf_results is not None: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = opf_results.phase_shift[ii] - else: - data.tap_module[ii] = elm.tap_module - data.tap_angle[ii] = elm.tap_phase - - data.tap_module_min[ii] = elm.tap_module_min - data.tap_module_max[ii] = elm.tap_module_max - data.tap_angle_min[ii] = elm.tap_phase_min - data.tap_angle_max[ii] = elm.tap_phase_max - - data.Pfset[ii] = elm.Pset - - data.tap_phase_control_mode[i] = elm.tap_phase_control_mode - data.tap_module_control_mode[i] = elm.tap_module_control_mode - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - if not use_stored_guess: - if elm.tap_module_control_mode == TapModuleControl.Vm: - bus_data.Vbus[t] = elm.vset + fill_controllable_branch(ii=ii, + elm=elm, + data=data, + bus_data=bus_data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + opf_results=opf_results, + use_stored_guess=use_stored_guess) ii += 1 @@ -1014,74 +963,18 @@ def get_branch_data(circuit: MultiCircuit, for i, elm in enumerate(circuit.vsc_devices): # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.R[ii] = elm.R - data.X[ii] = elm.X - - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 - - data.G0sw[ii] = elm.G0sw - data.Beq[ii] = elm.Beq - data.tap_module[ii] = elm.tap_module - data.tap_module_max[ii] = elm.tap_module_max - data.tap_module_min[ii] = elm.tap_module_min - data.alpha1[ii] = elm.alpha1 - data.alpha2[ii] = elm.alpha2 - data.alpha3[ii] = elm.alpha3 - data.k[ii] = elm.k # 0.8660254037844386 # sqrt(3)/2 (do not confuse with k droop) - - if time_series: - if opf_results is not None: - data.tap_angle[ii] = opf_results.phase_shift[t_idx, ii] - else: - data.tap_angle[ii] = elm.tap_phase - else: - if opf_results is not None: - data.tap_angle[ii] = opf_results.phase_shift[ii] - else: - data.tap_angle[ii] = elm.tap_phase - - data.tap_angle_min[ii] = elm.tap_phase_min - data.tap_angle_max[ii] = elm.tap_phase_max - data.Pfset[ii] = elm.Pset - data.Qtset[ii] = 0.0 + fill_controllable_branch(ii=ii, + elm=elm, + data=data, + bus_data=bus_data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + opf_results=opf_results, + use_stored_guess=use_stored_guess) data.Kdp[ii] = elm.kdp - # data.vf_set[ii] = elm.Vac_set - # data.vt_set[ii] = elm.Vdc_set - data.tap_phase_control_mode[i] = elm.tap_phase_control_mode - data.tap_module_control_mode[i] = elm.tap_module_control_mode - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) ii += 1 @@ -1127,7 +1020,7 @@ def get_branch_data(circuit: MultiCircuit, ysh1 = elm.get_ysh1() data.Beq[ii] = ysh1.imag - data.Pfset[ii] = elm.Pfset + data.Pset[ii] = elm.Pfset data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) @@ -1140,59 +1033,15 @@ def get_branch_data(circuit: MultiCircuit, # Series reactance for i, elm in enumerate(circuit.series_reactances): # generic stuff - f = bus_dict[elm.bus_from] - t = bus_dict[elm.bus_to] - - data.names[ii] = elm.name - data.idtag[ii] = elm.idtag - - data.mttf[ii] = elm.mttf - data.mttr[ii] = elm.mttr - - data.dc[ii] = 0 - - if time_series: - data.active[ii] = elm.active_prof[t_idx] - data.rates[ii] = elm.rate_prof[t_idx] - data.contingency_rates[ii] = elm.rate_prof[t_idx] * elm.contingency_factor_prof[t_idx] - data.protection_rates[ii] = elm.rate_prof[t_idx] * elm.protection_rating_factor_prof[t_idx] - data.overload_cost[ii] = elm.Cost_prof[t_idx] - else: - data.active[ii] = elm.active - data.rates[ii] = elm.rate - data.contingency_rates[ii] = elm.rate * elm.contingency_factor - data.protection_rates[ii] = elm.rate * elm.protection_rating_factor - data.overload_cost[ii] = elm.Cost - - data.C_branch_bus_f[ii, f] = 1 - data.C_branch_bus_t[ii, t] = 1 - data.F[ii] = f - data.T[ii] = t - - data.contingency_enabled[ii] = int(elm.contingency_enabled) - data.monitor_loading[ii] = int(elm.monitor_loading) - - data.tap_phase_control_mode[i] = 0 - data.tap_module_control_mode[i] = 0 - - data.virtual_tap_f[ii], data.virtual_tap_t[ii] = elm.get_virtual_taps() - - if apply_temperature: - data.R[ii] = elm.R_corrected - else: - data.R[ii] = elm.R - - if branch_tolerance_mode == BranchImpedanceMode.Lower: - data.R[ii] *= (1 - elm.tolerance / 100.0) - elif branch_tolerance_mode == BranchImpedanceMode.Upper: - data.R[ii] *= (1 + elm.tolerance / 100.0) - - data.X[ii] = elm.X - data.R0[ii] = elm.R0 - data.X0[ii] = elm.X0 - - data.R2[ii] = elm.R2 - data.X2[ii] = elm.X2 + fill_parent_branch(i=ii, + elm=elm, + data=data, + bus_dict=bus_dict, + apply_temperature=apply_temperature, + branch_tolerance_mode=branch_tolerance_mode, + t_idx=t_idx, + time_series=time_series, + is_dc_branch=False) ii += 1 return data diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 5c1021c21..098f1d819 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -93,11 +93,8 @@ def __init__(self, nelm: int, nbus: int): self.virtual_tap_t: Vec = np.ones(self.nelm, dtype=float) self.virtual_tap_f: Vec = np.ones(self.nelm, dtype=float) - self.Pfset: Vec = np.zeros(nelm, dtype=float) - self.Qfset: Vec = np.zeros(nelm, dtype=float) - self.Qtset: Vec = np.zeros(nelm, dtype=float) - self.vf_set: Vec = np.ones(nelm, dtype=float) - self.vt_set: Vec = np.ones(nelm, dtype=float) + self.Pset: Vec = np.zeros(nelm, dtype=float) # always over the from bus + self.vset: Vec = np.ones(nelm, dtype=float) self.Kdp: Vec = np.ones(self.nelm, dtype=float) self.Kdp_va: Vec = np.ones(self.nelm, dtype=float) @@ -192,11 +189,8 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.tap_angle_max = self.tap_angle_max[elm_idx] data.Beq = self.Beq[elm_idx] data.G0sw = self.G0sw[elm_idx] - data.Pfset = self.Pfset[elm_idx] - data.Qfset = self.Qfset[elm_idx] - data.Qtset = self.Qtset[elm_idx] - data.vf_set = self.vf_set[elm_idx] - data.vt_set = self.vt_set[elm_idx] + data.Pset = self.Pset[elm_idx] + data.vset = self.vset[elm_idx] data.C_branch_bus_f = self.C_branch_bus_f[np.ix_(elm_idx, bus_idx)] data.C_branch_bus_t = self.C_branch_bus_t[np.ix_(elm_idx, bus_idx)] @@ -281,11 +275,8 @@ def copy(self) -> "BranchData": data.tap_angle_max = self.tap_angle_max.copy() data.Beq = self.Beq.copy() data.G0sw = self.G0sw.copy() - data.Pfset = self.Pfset.copy() - data.Qfset = self.Qfset.copy() - data.Qtset = self.Qtset.copy() - data.vf_set = self.vf_set.copy() - data.vt_set = self.vt_set.copy() + data.Pset = self.Pset.copy() + data.vset = self.vset.copy() data.C_branch_bus_f = self.C_branch_bus_f.copy() data.C_branch_bus_t = self.C_branch_bus_t.copy() diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 566871e0f..efcf79246 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -920,8 +920,8 @@ def get_fast_decoupled_amittances(self) -> ycalc.FastDecoupledAdmittanceMatrices X=self.branch_data.X, B=self.branch_data.B, tap_module=self.branch_data.tap_module, - vtap_f=self.branch_data.vf_set, - vtap_t=self.branch_data.vt_set, + vtap_f=self.branch_data.virtual_tap_f, + vtap_t=self.branch_data.virtual_tap_t, Cf=self.Cf, Ct=self.Ct, ) diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index df5a29fb3..a0bbe82fb 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -180,22 +180,27 @@ def __init__(self, self.tap_module = tap_module self._tap_module_prof = Profile(default_value=tap_module, data_type=float) + self.tap_module_max = tap_module_max + self.tap_module_min = tap_module_min + + self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode + self._tap_phase_control_mode_prof = Profile(default_value=tap_phase_control_mode, data_type=TapPhaseControl) + + self.Pset = Pset + self._Pset_prof = Profile(default_value=Pset, data_type=float) + # Tap angle self.tap_phase = tap_phase self._tap_phase_prof = Profile(default_value=tap_phase, data_type=float) - self.tap_module_max = tap_module_max - self.tap_module_min = tap_module_min self.tap_phase_max = tap_phase_max self.tap_phase_min = tap_phase_min - self.vset = vset - self.Pset = Pset - - # self.control_mode: TransformerControlType = control_mode # Legacy - self.tap_module_control_mode: TapModuleControl = tap_module_control_mode - self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode + self._tap_module_control_mode_prof = Profile(default_value=tap_module_control_mode, data_type=TapModuleControl) + + self.vset = vset + self._vset_prof = Profile(default_value=vset, data_type=float) self.regulation_branch: BranchParent = regulation_branch @@ -224,25 +229,13 @@ def __init__(self, self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value') self.register(key='tap_module_min', units='', tpe=float, definition='Tap changer module min value') - self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', - profile_name='tap_phase_prof', old_names=['angle']) - self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) - self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) - self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, - definition='Control available with the tap module') - - self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, - definition='Control available with the tap angle', old_names=['tap_angle_control_mode']) + definition='Control available with the tap module', + profile_name='tap_module_control_mode_prof') self.register(key='vset', units='p.u.', tpe=float, - definition='Objective voltage at the "to" side of the bus when regulating the tap.') - - self.register(key='Pset', units='p.u.', tpe=float, - definition='Objective power at the "from" side of when regulating the angle.') - - self.register(key='regulation_branch', units='', tpe=DeviceType.BranchDevice, - definition='Branch where the controls are applied.', editable=False) + definition='Objective voltage at the "to" side of the bus when regulating the tap.', + profile_name='vset_prof') self.register(key='regulation_bus', units='', tpe=DeviceType.BusDevice, definition='Bus where the regulation is applied.', editable=False) @@ -250,6 +243,22 @@ def __init__(self, self.register(key='regulation_cn', units='', tpe=DeviceType.ConnectivityNodeDevice, definition='Connectivity node where the regulation is applied.', editable=False) + self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', + profile_name='tap_phase_prof', old_names=['angle']) + self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) + self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) + + self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, + definition='Control available with the tap angle', old_names=['tap_angle_control_mode'], + profile_name='tap_phase_control_mode_prof') + + self.register(key='Pset', units='p.u.', tpe=float, + definition='Objective power at the "from" side of when regulating the angle.', + profile_name='Pset_prof') + + # self.register(key='regulation_branch', units='', tpe=DeviceType.BranchDevice, + # definition='Branch where the controls are applied.', editable=False) + self.register(key='temp_base', units='ºC', tpe=float, definition='Base temperature at which R was measured.') self.register(key='temp_oper', units='ºC', tpe=float, definition='Operation temperature to modify R.', profile_name='temp_oper_prof') @@ -292,6 +301,74 @@ def tap_phase_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a tap_phase_prof') + @property + def vset_prof(self) -> Profile: + """ + vset profile + :return: Profile + """ + return self._vset_prof + + @vset_prof.setter + def vset_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._vset_prof = val + elif isinstance(val, np.ndarray): + self._vset_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a vset_prof') + + @property + def Pset_prof(self) -> Profile: + """ + vset profile + :return: Profile + """ + return self._Pset_prof + + @Pset_prof.setter + def Pset_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._Pset_prof = val + elif isinstance(val, np.ndarray): + self._Pset_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a Pset_prof') + + @property + def tap_module_control_mode_prof(self) -> Profile: + """ + _tap_module_control_mode_prof profile + :return: Profile + """ + return self._tap_module_control_mode_prof + + @tap_module_control_mode_prof.setter + def tap_module_control_mode_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._tap_module_control_mode_prof = val + elif isinstance(val, np.ndarray): + self._tap_module_control_mode_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a tap_module_control_mode_prof') + + @property + def tap_phase_control_mode_prof(self) -> Profile: + """ + tap_phase_control_mode_prof profile + :return: Profile + """ + return self._tap_phase_control_mode_prof + + @tap_phase_control_mode_prof.setter + def tap_phase_control_mode_prof(self, val: Union[Profile, np.ndarray]): + if isinstance(val, Profile): + self._tap_phase_control_mode_prof = val + elif isinstance(val, np.ndarray): + self._tap_phase_control_mode_prof.set(arr=val) + else: + raise Exception(str(type(val)) + 'not supported to be set into a tap_phase_control_mode_prof') + @property def temp_oper_prof(self) -> Profile: """ diff --git a/src/GridCalEngine/Devices/Parents/editable_device.py b/src/GridCalEngine/Devices/Parents/editable_device.py index c9abaa91c..88c381aee 100644 --- a/src/GridCalEngine/Devices/Parents/editable_device.py +++ b/src/GridCalEngine/Devices/Parents/editable_device.py @@ -659,14 +659,13 @@ def create_profile(self, magnitude, index): """ # get the value of the magnitude snapshot_value = getattr(self, magnitude) - # val = Profile(default_value=snapshot_value) - val = self.get_profile(magnitude=magnitude) + prof = self.get_profile(magnitude=magnitude) - val.create_sparse(size=len(index), default_value=snapshot_value) + prof.create_sparse(size=len(index), default_value=snapshot_value) # set the profile variable associated with the magnitude - setattr(self, self.properties_with_profile[magnitude], val) + setattr(self, self.properties_with_profile[magnitude], prof) def ensure_profiles_exist(self, index): """ diff --git a/src/GridCalEngine/Devices/sparse_array.py b/src/GridCalEngine/Devices/sparse_array.py index d11504141..ef74a9d6f 100644 --- a/src/GridCalEngine/Devices/sparse_array.py +++ b/src/GridCalEngine/Devices/sparse_array.py @@ -18,6 +18,7 @@ from typing import Dict, Any, Union import numpy as np +from enum import Enum from GridCalEngine.enumerations import DeviceType from GridCalEngine.basic_structures import Numeric, NumericVec, IntVec @@ -39,6 +40,8 @@ def check_type(dtype: PROFILE_TYPES, value: Any) -> bool: assert dtype == int or dtype == float elif tpe in [float, np.float32, np.float64]: assert dtype == float + elif issubclass(tpe, Enum): + assert tpe == dtype # check that the enyum type is the same else: assert isinstance(dtype, DeviceType) @@ -87,8 +90,12 @@ def default_value(self, val): val2 = None else: val2 = val + elif issubclass(self._dtype, Enum): + # if it is an Enum type, cast the value to the Enum + val2 = self._dtype(val) else: val2 = val + check_type(dtype=self.dtype, value=val2) self._default_value = val2 diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py index eb82b714f..53ca86f85 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py @@ -58,12 +58,12 @@ def LM_ACDC(nc: NumericalCircuit, Vbus: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, # compute the ZIP power injection Sbus = cf.compute_zip_power(S0=S0, I0=I0, Y0=Y0, Vm=Vm) - Vmfset = nc.branch_data.vf_set + Vmfset = nc.branch_data.vset m = nc.branch_data.tap_module.copy() tau = nc.branch_data.tap_angle.copy() Beq = nc.branch_data.Beq.copy() Gsw = nc.branch_data.G0sw - Pfset = nc.branch_data.Pfset / nc.Sbase + Pfset = nc.branch_data.Pset / nc.Sbase Qfset = nc.branch_data.Qfset / nc.Sbase Qtset = nc.branch_data.Qfset / nc.Sbase Kdp = nc.branch_data.Kdp diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py index 23581fc42..71a9516b8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py @@ -70,12 +70,12 @@ def NR_LS_ACDC(nc: NumericalCircuit, # compute the ZIP power injection Sbus = compute_zip_power(S0=S0, I0=I0, Y0=Y0, Vm=Vm) - Vmfset = nc.branch_data.vf_set + Vmfset = nc.branch_data.vset m = nc.branch_data.tap_module.copy() tau = nc.branch_data.tap_angle.copy() Beq = nc.branch_data.Beq.copy() Gsw = nc.branch_data.G0sw - Pfset = nc.branch_data.Pfset / nc.Sbase + Pfset = nc.branch_data.Pset / nc.Sbase Qfset = nc.branch_data.Qfset / nc.Sbase Qtset = nc.branch_data.Qfset / nc.Sbase Qmin = nc.Qmin_bus diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 5b9de58d4..14bce5d56 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -184,7 +184,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Qmin = Qmin self.Qmax = Qmax - self.Pset = nc.branch_data.Pfset[nc.k_pf_tau] + self.Pset = nc.branch_data.Pset[nc.k_pf_tau] self.k_pf_tau: IntVec = nc.k_pf_tau self.k_v_m: IntVec = nc.k_v_m diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index de75709d7..17a5bf562 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -129,6 +129,30 @@ def __init__(self, # determine the bus indices self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=Pbus, types=bus_types) + @property + def k_m(self): + """ + Return a composition of all indices affected by m + :return: + """ + return self.k_v_m + + @property + def k_tau(self): + """ + Return a composition of all indices affected by tau + :return: + """ + return self.k_pf_tau + + @property + def k_mtau(self): + """ + Return a composition of all indices affected by m|tau + :return: + """ + return np.r_[self.k_m, self.k_tau] + def recompile_types(self, bus_types: IntVec, Pbus: Vec): From 89b4fc18c8b9a9cf2ecacd282a160d5b8fd35132 Mon Sep 17 00:00:00 2001 From: santi Date: Fri, 26 Jul 2024 11:14:47 +0100 Subject: [PATCH 128/218] Improved indices (WIP) --- .idea/workspace.xml | 79 +++--- .../Compilers/circuit_to_bentayga.py | 2 +- .../Compilers/circuit_to_data.py | 16 +- .../Compilers/circuit_to_newton_pa.py | 2 +- .../DataStructures/branch_data.py | 15 +- .../DataStructures/numerical_circuit.py | 202 +-------------- .../levenberg_marquardt_acdc.py | 8 +- .../NumericalMethods/newton_raphson_acdc.py | 14 +- .../pf_advanced_formulation.py | 2 +- .../Topology/simulation_indices.py | 237 ++++-------------- src/GridCalEngine/enumerations.py | 5 +- src/trunk/code_generation/property_maker.py | 2 +- 12 files changed, 132 insertions(+), 452 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8f0dc8801..ad19e92b0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,18 +28,19 @@ - + - - - + + + + + - - + + + + + - - @@ -1446,7 +1449,7 @@ - + 1656059954202 @@ -1791,7 +1794,7 @@ - @@ -1837,7 +1840,6 @@ - @@ -1862,7 +1864,8 @@ - @@ -2328,11 +2331,6 @@ 30 @@ -2436,8 +2419,8 @@ - + @@ -2780,7 +2763,7 @@ - + diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index 13569ad95..32769ef22 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -4967,9 +4967,18 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) self.label_50.setText("") +#if QT_CONFIG(tooltip) + self.control_q_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the generators, abtteries, controllable shunts, etc control their reactive power to be within limits.", None)) +#endif // QT_CONFIG(tooltip) self.control_q_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control generators Q", None)) - self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch taps", None)) - self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control branch phase", None)) +#if QT_CONFIG(tooltip) + self.control_tap_modules_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active the branches with tap module control such as transformers or VSC converters control some voltage with their tap module", None)) +#endif // QT_CONFIG(tooltip) + self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control tap module", None)) +#if QT_CONFIG(tooltip) + self.control_tap_phase_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active the branches with tap phase control such as transformers or VSC converters control their \"from\" active power flow", None)) +#endif // QT_CONFIG(tooltip) + self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control tap phase", None)) self.label_54.setText("") #if QT_CONFIG(tooltip) self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index 06d3f8ef7..0375cc644 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -3499,7 +3499,7 @@ QProgressBar::chunk{ QTabWidget::South - 7 + 0 @@ -3879,6 +3879,9 @@ QProgressBar::chunk{ + + If active, the generators, abtteries, controllable shunts, etc control their reactive power to be within limits. + Control generators Q @@ -3886,15 +3889,21 @@ QProgressBar::chunk{ + + If active the branches with tap module control such as transformers or VSC converters control some voltage with their tap module + - Control branch taps + Control tap module + + If active the branches with tap phase control such as transformers or VSC converters control their "from" active power flow + - Control branch phase + Control tap phase @@ -8711,7 +8720,6 @@ QProgressBar::chunk{ - @@ -8724,7 +8732,6 @@ QProgressBar::chunk{ - @@ -8748,6 +8755,7 @@ QProgressBar::chunk{ Actions + @@ -10007,23 +10015,11 @@ QProgressBar::chunk{ - - :/Icons/icons/CataloguePrivate.svg:/Icons/icons/CataloguePrivate.svg - - - Catalogue - - - Catalogue - - - - - + :/Icons/icons/CataloguePrivate.svg:/Icons/icons/CataloguePrivate.svg - Catalogue + Add custom catalogue diff --git a/src/GridCal/Gui/Main/SubClasses/simulations.py b/src/GridCal/Gui/Main/SubClasses/simulations.py index 981b5a689..e922c29a2 100644 --- a/src/GridCal/Gui/Main/SubClasses/simulations.py +++ b/src/GridCal/Gui/Main/SubClasses/simulations.py @@ -623,9 +623,9 @@ def get_selected_power_flow_options(self): control_q = self.ui.control_q_checkBox.isChecked() - control_taps_modules = self.ui.control_tap_modules_checkBox() + control_taps_modules = self.ui.control_tap_modules_checkBox.isChecked() - control_taps_phase = self.ui.control_tap_phase_checkBox + control_taps_phase = self.ui.control_tap_phase_checkBox.isChecked() verbose = self.ui.verbositySpinBox.value() diff --git a/src/GridCal/Gui/Main/icons.qrc b/src/GridCal/Gui/Main/icons.qrc index f7d3bbf94..766f1605b 100644 --- a/src/GridCal/Gui/Main/icons.qrc +++ b/src/GridCal/Gui/Main/icons.qrc @@ -1,7 +1,6 @@ icons/picture.svg - icons/CataloguePrivate.svg icons/record.svg icons/delete_schematic.svg icons/delete_db.svg diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index ab5896cd6..cf0f56508 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -320,6 +320,13 @@ def get_dc_indices(self) -> IntVec: """ return np.where(self.dc != 0)[0] + def get_series_admittance(self) -> CxVec: + """ + + :return: + """ + return 1.0 / (self.R + 1.0j * self.X) + def get_linear_series_admittance(self) -> Vec: """ Get the linear version of the series admittance for ACDC systems diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 60267f594..eb030e7f9 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -20,6 +20,7 @@ import scipy.sparse as sp from typing import List, Tuple, Dict, Union, TYPE_CHECKING + from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.basic_structures import Vec, IntVec, CxVec @@ -770,7 +771,7 @@ def branch_rates(self): @property def ac_indices(self): """ - Array of indices of the AC Branches + Array of indices of the AC buses :return: array of indices """ if self.simulation_indices_ is None: @@ -781,7 +782,7 @@ def ac_indices(self): @property def dc_indices(self): """ - Array of indices of the DC Branches + Array of indices of the DC buses :return: array of indices """ if self.simulation_indices_ is None: @@ -1477,92 +1478,104 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'Jacobian': - from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian + # from GridCalEngine.Simulations.derivatives.acdc_jacobian import fubm_jacobian # compute admittances - Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) - Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( - Cf=self.Cf, - Ct=self.Ct, - C_bus_shunt=self.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=self.shunt_data.Y, - shunt_active=self.shunt_data.active, - ys=Ys, - B=self.branch_data.B, - Sbase=self.Sbase, - tap_module=self.branch_data.tap_module, - tap_angle=self.branch_data.tap_angle, - Beq=self.branch_data.Beq, - Gsw=self.branch_data.G0sw, - virtual_tap_from=self.branch_data.virtual_tap_f, - virtual_tap_to=self.branch_data.virtual_tap_t, - ) - - idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] - idx_dvm = np.r_[self.pq, self.p] - idx_dm = np.r_[self.k_qf_m, self.k_qt_m, self.k_v_m] - idx_dtau = np.r_[self.k_pf_tau, self.k_pf_dp] - # idx_dbeq = np.r_[self.k_qf_beq, self.k_vf_beq] - idx_dbeq = np.r_[self.k_qf_beq] - - idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] - idx_dQ = np.r_[self.pq, self.pqv, self.i_vt_m] - idx_dQf = np.r_[self.k_qf_m, self.k_qf_beq] - idx_dQt = self.k_qt_m - idx_dPf = self.k_pf_tau - idx_dPdp = self.k_pf_dp - - J = fubm_jacobian( - nbus=self.nbus, - idx_dtheta=idx_dtheta, - idx_dvm=idx_dvm, - idx_dm=idx_dm, - idx_dtau=idx_dtau, - idx_dbeq=idx_dbeq, - idx_dP=idx_dP, - idx_dQ=idx_dQ, - idx_dQf=idx_dQf, - idx_dQt=idx_dQt, - idx_dPf=idx_dPf, - idx_dPdp=idx_dPdp, - F=self.F, - T=self.T, - Ys=Ys, - kconv=self.branch_data.k, - complex_tap=tap, - tap_modules=self.branch_data.tap_module, - Bc=self.branch_data.B, - Beq=self.branch_data.Beq, - Kdp=self.branch_data.Kdp, - V=self.Vbus, - Vm=np.abs(self.Vbus), - Ybus_x=self.Ybus.data, - Ybus_p=self.Ybus.indptr, - Ybus_i=self.Ybus.indices, - yff=self.admittances_.yff, - yft=self.admittances_.yft, - ytf=self.admittances_.ytf, - ytt=self.admittances_.ytt - ) - - cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] - cols += ['2) dVm {0}'.format(i) for i in idx_dvm] - cols += ['3) dm {0}'.format(i) for i in idx_dm] - cols += ['4) dtau {0}'.format(i) for i in idx_dtau] - cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] - - rows = ['1) dP {0}'.format(i) for i in idx_dP] - rows += ['2) dQ {0}'.format(i) for i in idx_dQ] - rows += ['3) dQf {0}'.format(i) for i in idx_dQf] - rows += ['4) dQt {0}'.format(i) for i in idx_dQt] - rows += ['5) dPf {0}'.format(i) for i in idx_dPf] - rows += ['9) dPfdp {0}'.format(i) for i in idx_dPdp] - - df = pd.DataFrame( - data=J.toarray(), - columns=cols, - index=rows, - ) + # Ys = 1.0 / (self.branch_data.R + 1j * self.branch_data.X) + # Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = ycalc.compile_y_acdc( + # Cf=self.Cf, + # Ct=self.Ct, + # C_bus_shunt=self.shunt_data.C_bus_elm.tocsc(), + # shunt_admittance=self.shunt_data.Y, + # shunt_active=self.shunt_data.active, + # ys=Ys, + # B=self.branch_data.B, + # Sbase=self.Sbase, + # tap_module=self.branch_data.tap_module, + # tap_angle=self.branch_data.tap_angle, + # Beq=self.branch_data.Beq, + # Gsw=self.branch_data.G0sw, + # virtual_tap_from=self.branch_data.virtual_tap_f, + # virtual_tap_to=self.branch_data.virtual_tap_t, + # ) + + # idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] + # idx_dvm = np.r_[self.pq, self.p] + # idx_dm = self.k_v_m + # idx_dtau = self.k_pf_tau + # idx_dbeq = self.k_qf_beq + # + # idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] + # idx_dQ = np.r_[self.pq, self.pqv] + # idx_dPf = self.k_pf_tau + # idx_dQf = self.k_qf_beq + + # J = fubm_jacobian( + # nbus=self.nbus, + # idx_dtheta=idx_dtheta, + # idx_dvm=idx_dvm, + # idx_dm=idx_dm, + # idx_dtau=idx_dtau, + # idx_dbeq=idx_dbeq, + # idx_dP=idx_dP, + # idx_dQ=idx_dQ, + # idx_dQf=idx_dQf, + # idx_dPf=idx_dPf, + # F=self.F, + # T=self.T, + # Ys=Ys, + # kconv=self.branch_data.k, + # complex_tap=tap, + # tap_modules=self.branch_data.tap_module, + # Bc=self.branch_data.B, + # Beq=self.branch_data.Beq, + # Kdp=self.branch_data.Kdp, + # V=self.Vbus, + # Vm=np.abs(self.Vbus), + # Ybus_x=self.Ybus.data, + # Ybus_p=self.Ybus.indptr, + # Ybus_i=self.Ybus.indices, + # yff=self.admittances_.yff, + # yft=self.admittances_.yft, + # ytf=self.admittances_.ytf, + # ytt=self.admittances_.ytt + # ) + from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import \ + PfAdvancedFormulation + from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions + formulation = PfAdvancedFormulation(V0=self.Vbus, + S0=self.Sbus, + I0=self.Ibus, + Y0=self.YLoadBus, + Qmin=self.Qmin_bus, + Qmax=self.Qmax_bus, + pq=self.pq, + pv=self.pv, + pqv=self.pqv, + p=self.p, + nc=self, + options=PowerFlowOptions()) + + # J = formulation.Jacobian(autodiff=True) + # + # cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] + # cols += ['2) dVm {0}'.format(i) for i in idx_dvm] + # cols += ['3) dm {0}'.format(i) for i in idx_dm] + # cols += ['4) dtau {0}'.format(i) for i in idx_dtau] + # cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] + # + # rows = ['1) dP {0}'.format(i) for i in idx_dP] + # rows += ['2) dQ {0}'.format(i) for i in idx_dQ] + # rows += ['5) dPf {0}'.format(i) for i in idx_dPf] + # rows += ['3) dQf {0}'.format(i) for i in idx_dQf] + # + # df = pd.DataFrame( + # data=J.toarray(), + # columns=cols, + # index=rows, + # ) + + df = formulation.get_jacobian_df(autodiff=True) elif structure_type == 'Qmin': df = pd.DataFrame( diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index a0bbe82fb..57b399d31 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -207,8 +207,10 @@ def __init__(self, self.regulation_bus: Bus = regulation_bus self.regulation_cn: ConnectivityNode = regulation_cn - self.register(key='R', units='p.u.', tpe=float, definition='Total positive sequence resistance.') - self.register(key='X', units='p.u.', tpe=float, definition='Total positive sequence reactance.') + self.register(key='R', units='p.u.', tpe=float, definition='Total positive sequence resistance.', + old_names=['R1', 'Rl']) + self.register(key='X', units='p.u.', tpe=float, definition='Total positive sequence reactance.', + old_names=['X1', 'Xl']) self.register(key='G', units='p.u.', tpe=float, definition='Total positive sequence shunt conductance.') self.register(key='B', units='p.u.', tpe=float, definition='Total positive sequence shunt susceptance.') self.register(key='R0', units='p.u.', tpe=float, definition='Total zero sequence resistance.') @@ -225,9 +227,11 @@ def __init__(self, 'is expected for transformers0% for lines.') self.register(key='tap_module', units='', tpe=float, definition='Tap changer module, it a value close to 1.0', - profile_name='tap_module_prof', old_names=['tap']) - self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value') - self.register(key='tap_module_min', units='', tpe=float, definition='Tap changer module min value') + profile_name='tap_module_prof', old_names=['tap', 'm']) + self.register(key='tap_module_max', units='', tpe=float, definition='Tap changer module max value', + old_names=['m_max']) + self.register(key='tap_module_min', units='', tpe=float, definition='Tap changer module min value', + old_names=['m_min']) self.register(key='tap_module_control_mode', units='', tpe=TapModuleControl, definition='Control available with the tap module', @@ -235,7 +239,7 @@ def __init__(self, self.register(key='vset', units='p.u.', tpe=float, definition='Objective voltage at the "to" side of the bus when regulating the tap.', - profile_name='vset_prof') + profile_name='vset_prof', old_names=['Vdc_set']) self.register(key='regulation_bus', units='', tpe=DeviceType.BusDevice, definition='Bus where the regulation is applied.', editable=False) @@ -244,9 +248,11 @@ def __init__(self, definition='Connectivity node where the regulation is applied.', editable=False) self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', - profile_name='tap_phase_prof', old_names=['angle']) - self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', old_names=['angle_max']) - self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', old_names=['angle_min']) + profile_name='tap_phase_prof', old_names=['angle', 'theta']) + self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max angle.', + old_names=['angle_max', 'theta_max']) + self.register(key='tap_phase_min', units='rad', tpe=float, definition='Min angle.', + old_names=['angle_min', 'theta_min']) self.register(key='tap_phase_control_mode', units='', tpe=TapPhaseControl, definition='Control available with the tap angle', old_names=['tap_angle_control_mode'], @@ -254,7 +260,7 @@ def __init__(self, self.register(key='Pset', units='p.u.', tpe=float, definition='Objective power at the "from" side of when regulating the angle.', - profile_name='Pset_prof') + profile_name='Pset_prof', old_names=['Pdc_set']) # self.register(key='regulation_branch', units='', tpe=DeviceType.BranchDevice, # definition='Branch where the controls are applied.', editable=False) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index d9928a6ff..9d49b6cc2 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -26,7 +26,7 @@ from GridCalEngine.Devices.Parents.editable_device import GCProp from GridCalEngine.Devices.profile import Profile from GridCalEngine.Devices.types import ALL_DEV_TYPES -from GridCalEngine.enumerations import (DiagramType, DeviceType, SubObjectType) +from GridCalEngine.enumerations import (DiagramType, DeviceType, SubObjectType, TapPhaseControl, TapModuleControl) def get_objects_dictionary() -> Dict[str, ALL_DEV_TYPES]: @@ -866,6 +866,37 @@ def parse_object_type_from_dataframe(main_df: pd.DataFrame, if property_name in ['is_controlled', 'Bmin', 'Bmax', 'Vset']: skip = True + if template_elm.device_type == DeviceType.VscDevice: + if property_name == 'control_mode': + if "Pdc" in property_value: + elm.tap_phase_control_mode = TapPhaseControl.Pf + skip = True + if "Vac" in property_value: + elm.tap_module_control_mode = TapModuleControl.Vm + elm.regulation_bus = elm.bus_to + skip = True + if "Vdc" in property_value: + elm.tap_module_control_mode = TapModuleControl.Vm + elm.regulation_bus = elm.bus_from + skip = True + elif property_name == 'Vac_set': + elm.vset = property_value + skip = True + + elif property_name == 'Vdc_set': + elm.vset = property_value + skip = True + + if template_elm.device_type == DeviceType.Transformer2WDevice: + if property_name == 'control_mode': + if "Pf" in property_value: + elm.tap_phase_control_mode = TapPhaseControl.Pf + skip = True + if "V" in property_value: + elm.tap_module_control_mode = TapModuleControl.Vm + elm.regulation_bus = elm.bus_to + skip = True + if property_name == 'contingency_enabled': # this is a branch with the legacy property "contingency_enabled", hence, create a contingency on_the_fly.create_contingency(elm=elm) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 5c335721b..cc667802a 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -16,12 +16,14 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Tuple import numpy as np +import pandas as pd from numba import njit -from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices +from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices, compile_y_acdc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit import GridCalEngine.Simulations.derivatives.csc_derivatives as deriv +from GridCalEngine.Utils.NumericalMethods.autodiff import calc_autodiff_jacobian from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method @@ -151,9 +153,8 @@ def get_Sf(k: IntVec, Vm: Vec, V: CxVec, yff: CxVec, yft: CxVec, F: IntVec, T: I class PfAdvancedFormulation(PfFormulationTemplate): - def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, # Pset: Vec, + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, - # k_pf_tau: IntVec, k_v_m: IntVec, k_qf_beq: IntVec, nc: NumericalCircuit, options: PowerFlowOptions): """ @@ -167,9 +168,6 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: :param pv: :param pqv: :param p: - :param k_pf_tau: - :param k_v_m: - :param k_qf_beq: :param nc: :param options: """ @@ -322,59 +320,178 @@ def fx(self) -> Vec: ] return self._f - def Jacobian(self) -> CSC: + def fx_diff(self, x: Vec): """ - Get the Jacobian + + :param x: :return: """ - # Assumes the internal vars were updated already with self.x2var() - if self.adm.Ybus.format != 'csc': - self.adm.Ybus = self.adm.Ybus.tocsc() - - n_rows = len(self.idx_dP) + len(self.idx_dQ) + len(self.idx_dQf) + len(self.idx_dPf) - n_cols = len(self.idx_dVa) + len(self.idx_dVm) + len(self.idx_dm) + len(self.idx_dtau) + len(self.idx_dbeq) - - if n_cols != n_rows: - raise ValueError("Incorrect J indices!") + a = len(self.idx_dVa) + b = a + len(self.idx_dVm) + c = b + len(self.k_pf_tau) + d = c + len(self.k_v_m) + e = d + len(self.k_qf_beq) - # NOTE: beq, m, and tau are not of size nbranch + # update the vectors + Va = self.Va.copy() + Vm = self.Vm.copy() m = np.ones(self.nc.nbr, dtype=float) tau = np.zeros(self.nc.nbr, dtype=float) beq = np.zeros(self.nc.nbr, dtype=float) - m[self.k_v_m] = self.m - tau[self.k_pf_tau] = self.tau - beq[self.k_qf_beq] = self.beq - tap = polar_to_rect(m, tau) - - J = adv_jacobian(nbus=self.nc.nbus, - idx_dtheta=self.idx_dVa, - idx_dvm=self.idx_dVm, - idx_dm=self.idx_dm, - idx_dtau=self.idx_dtau, - idx_dbeq=self.idx_dtau, - idx_dP=self.idx_dP, - idx_dQ=self.idx_dQ, - idx_dQf=self.idx_dQf, - idx_dPf=self.idx_dPf, - F=self.nc.F, - T=self.nc.T, - Ys=1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X), - kconv=self.nc.branch_data.k, - complex_tap=tap, - tap_modules=m, - Bc=self.nc.branch_data.B, - Beq=beq, - V=self.V, - Vm=self.Vm, - Ybus_x=self.adm.Ybus.data, - Ybus_p=self.adm.Ybus.indptr, - Ybus_i=self.adm.Ybus.indices, - yff=self.adm.yff, - yft=self.adm.yft) + Va[self.idx_dVa] += x[0:a] + Vm[self.idx_dVm] += x[a:b] + tau[self.k_pf_tau] += x[b:c] + m[self.k_v_m] += x[c:d] + beq[self.k_qf_beq] += x[d:e] + + # compute the complex voltage + V = polar_to_rect(Vm, Va) + + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, + Ct=self.nc.Ct, + C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=self.nc.shunt_data.Y, + shunt_active=self.nc.shunt_data.active, + ys=self.nc.branch_data.get_series_admittance(), + B=self.nc.branch_data.B, + Sbase=self.nc.Sbase, + tap_module=m, + tap_angle=tau, + Beq=beq, + Gsw=self.nc.branch_data.G0sw, + virtual_tap_from=self.nc.branch_data.virtual_tap_f, + virtual_tap_to=self.nc.branch_data.virtual_tap_t) + + Sbus = compute_zip_power(self.S0, self.I0, self.Y0, Vm) + Scalc = compute_power(Ybus, V) + + dS = Scalc - Sbus # compute the mismatch + + Pf = get_Sf(k=self.k_pf_tau, Vm=Vm, V=V, yff=yff, yft=yft, F=self.nc.F, T=self.nc.T).real + + Qf = get_Sf(k=self.k_qf_beq, Vm=Vm, V=V, yff=yff, yft=yft, F=self.nc.F, T=self.nc.T).real + + f = np.r_[ + dS[self.idx_dP].real, + dS[self.idx_dQ].imag, + Pf - self.Pset, + Qf # Qf - 0 + ] + return f + + def Jacobian(self, autodiff: bool = False) -> CSC: + """ + Get the Jacobian + :return: + """ + if autodiff: + J = calc_autodiff_jacobian(func=self.fx_diff, x=self.var2x()) + + else: + # Assumes the internal vars were updated already with self.x2var() + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + tau[self.k_pf_tau] = self.tau + m[self.k_v_m] = self.m + beq[self.k_qf_beq] = self.beq + + Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, + Ct=self.nc.Ct, + C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), + shunt_admittance=self.nc.shunt_data.Y, + shunt_active=self.nc.shunt_data.active, + ys=self.nc.branch_data.get_series_admittance(), + B=self.nc.branch_data.B, + Sbase=self.nc.Sbase, + tap_module=m, + tap_angle=tau, + Beq=beq, + Gsw=self.nc.branch_data.G0sw, + virtual_tap_from=self.nc.branch_data.virtual_tap_f, + virtual_tap_to=self.nc.branch_data.virtual_tap_t) + + n_rows = len(self.idx_dP) + len(self.idx_dQ) + len(self.idx_dQf) + len(self.idx_dPf) + n_cols = len(self.idx_dVa) + len(self.idx_dVm) + len(self.idx_dm) + len(self.idx_dtau) + len(self.idx_dbeq) + + if n_cols != n_rows: + raise ValueError("Incorrect J indices!") + + # NOTE: beq, m, and tau are not of size nbranch + m = np.ones(self.nc.nbr, dtype=float) + tau = np.zeros(self.nc.nbr, dtype=float) + beq = np.zeros(self.nc.nbr, dtype=float) + + m[self.k_v_m] = self.m + tau[self.k_pf_tau] = self.tau + beq[self.k_qf_beq] = self.beq + tap = polar_to_rect(m, tau) + + J = adv_jacobian(nbus=self.nc.nbus, + idx_dtheta=self.idx_dVa, + idx_dvm=self.idx_dVm, + idx_dm=self.idx_dm, + idx_dtau=self.idx_dtau, + idx_dbeq=self.idx_dtau, + idx_dP=self.idx_dP, + idx_dQ=self.idx_dQ, + idx_dQf=self.idx_dQf, + idx_dPf=self.idx_dPf, + F=self.nc.F, + T=self.nc.T, + Ys=1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X), + kconv=self.nc.branch_data.k, + complex_tap=tap, + tap_modules=m, + Bc=self.nc.branch_data.B, + Beq=beq, + V=self.V, + Vm=self.Vm, + Ybus_x=Ybus.data, + Ybus_p=Ybus.indptr, + Ybus_i=Ybus.indices, + yff=yff, + yft=yft) return J + def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: + """ + Get the Jacobian DataFrame + :return: DataFrame + """ + J = self.Jacobian(autodiff=autodiff) + + idx_dtheta = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dvm = np.r_[self.pq, self.p] + idx_dm = self.k_v_m + idx_dtau = self.k_pf_tau + idx_dbeq = self.k_qf_beq + + idx_dP = np.r_[self.pv, self.pq, self.p, self.pqv] + idx_dQ = np.r_[self.pq, self.pqv] + idx_dPf = self.k_pf_tau + idx_dQf = self.k_qf_beq + + cols = ['1) dVa {0}'.format(i) for i in idx_dtheta] + cols += ['2) dVm {0}'.format(i) for i in idx_dvm] + cols += ['3) dm {0}'.format(i) for i in idx_dm] + cols += ['4) dtau {0}'.format(i) for i in idx_dtau] + cols += ['5) dBeq {0}'.format(i) for i in idx_dbeq] + + rows = ['1) dP {0}'.format(i) for i in idx_dP] + rows += ['2) dQ {0}'.format(i) for i in idx_dQ] + rows += ['5) dPf {0}'.format(i) for i in idx_dPf] + rows += ['3) dQf {0}'.format(i) for i in idx_dQf] + + return pd.DataFrame( + data=J.toarray(), + columns=cols, + index=rows, + ) + def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: """ Get the problem solution diff --git a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py index ba7c08f47..fd0612e4c 100644 --- a/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/derivatives/acdc_jacobian.py @@ -871,9 +871,7 @@ def fubm_jacobian(nbus: int, idx_dP: IntVec, idx_dQ: IntVec, idx_dQf: IntVec, - idx_dQt: IntVec, idx_dPf: IntVec, - idx_dPdp: IntVec, F: IntVec, T: IntVec, Ys: CxVec, @@ -903,9 +901,7 @@ def fubm_jacobian(nbus: int, :param idx_dP: :param idx_dQ: :param idx_dQf: - :param idx_dQt: :param idx_dPf: - :param idx_dPdp: :param F: :param T: :param Ys: @@ -926,7 +922,7 @@ def fubm_jacobian(nbus: int, :param ytt: :return: """ - n_rows = len(idx_dP) + len(idx_dQ) + len(idx_dQf) + len(idx_dQt) + len(idx_dPf) + len(idx_dPdp) + n_rows = len(idx_dP) + len(idx_dQ) + len(idx_dQf) + len(idx_dPf) n_cols = len(idx_dtheta) + len(idx_dvm) + len(idx_dm) + len(idx_dtau) + len(idx_dbeq) if not np.all(idx_dtau == idx_dPf): @@ -946,39 +942,39 @@ def fubm_jacobian(nbus: int, dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dtheta) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dtheta) + dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real dQf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag # dQt_dVa_ = deriv.dSt_dVa_csc(nbus, idx_dQt, idx_dtheta, ytf, V, F, T).imag - dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real # dPdp_dVa = deriv.dSf_dVa_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, V, F, T).real dP_dVm__ = sp_slice(dS_dVm.real, idx_dP, idx_dvm) dQ_dVm__ = sp_slice(dS_dVm.imag, idx_dQ, idx_dvm) + dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real dQf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dQf, idx_dtheta, yff, yft, V, F, T).imag # dQt_dVm_ = deriv.dSt_dVm_csc(nbus, idx_dQt, idx_dtheta, ytt, ytf, V, F, T).imag - dPf_dVm_ = deriv.dSf_dVm_csc(nbus, idx_dPf, idx_dtheta, yff, yft, V, F, T).real # dPdp_dVm = deriv.dPfdp_dVm_csc(nbus, idx_dPdp, idx_dtheta, yff, yft, Kdp, V, F, T) - dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real - dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) - dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real - dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag + dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag # dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag - dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real # dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag # dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real # dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real + dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag + dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag + # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) + # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real + # compose the Jacobian # J = csc_stack_2d_ff(mats= # [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, @@ -990,10 +986,10 @@ def fubm_jacobian(nbus: int, # n_rows=6, n_cols=5) J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dbeq__, dP_dm__, dP_dtau__, - dQ_dVa__, dQ_dVm__, dQ_dbeq__, dQ_dm__, dQ_dtau__, - dQf_dVa_, dQf_dVm_, dQf_dbeq_, dQf_dm_, dQf_dtau_, - dPf_dVa_, dPf_dVm_, dPf_dbeq_, dPf_dm_, dPf_dtau_], + [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, + dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, + dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, + dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_,], n_rows=4, n_cols=5) if J.n_cols != J.n_rows: diff --git a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py index 1cb2372db..606f9908c 100644 --- a/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/derivatives/csc_derivatives.py @@ -1175,7 +1175,7 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo # from side if f_idx >= 0: - dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k], 2.0) + dyff_dBeq = 1j / (1j * kconv[k] * kconv[k] * tap_module[k] + 1e-20) Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) Ti[nnz] = f_idx Tj[nnz] = k_counter @@ -1219,7 +1219,7 @@ def dSf_dbeq_csc(sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec f = F[k] # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq - dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k], 2.0) + dyff_dBeq = 1j / (1j * kconv[k] * kconv[k] * tap_module[k] + 1e-20) # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index b2b1df998..727195ec9 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -39,7 +39,8 @@ def __init__(self, ytf: CxVec, ytt: CxVec, Yshunt_bus: CxVec, - Gsw: Vec): + Gsw: Vec, + beq: Vec): """ Constructor :param Ybus: Admittance matrix @@ -76,6 +77,8 @@ def __init__(self, self.Gsw = Gsw + self.beq = beq + def modify_taps(self, m: Vec, m2: Vec, tau: Vec, tau2: Vec, idx: Union[IntVec, None] = None) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix]: """ @@ -115,6 +118,23 @@ def modify_taps(self, m: Vec, m2: Vec, tau: Vec, tau2: Vec, return self.Ybus, self.Yf, self.Yt + def copy(self) -> "AdmittanceMatrices": + """ + Get a deep copy + """ + return AdmittanceMatrices(Ybus=self.Ybus.copy(), + Yf=self.Yf.copy(), + Yt=self.Yt.copy(), + Cf=self.Cf.copy(), + Ct=self.Ct.copy(), + yff=self.yff.copy(), + yft=self.yft.copy(), + ytf=self.ytf.copy(), + ytt=self.ytt.copy(), + Yshunt_bus=self.Yshunt_bus.copy(), + Gsw=self.Gsw.copy(), + beq=self.beq.copy()) + def compute_admittances(R: Vec, X: Vec, @@ -411,7 +431,8 @@ def compile_y_acdc(Cf: sp.csc_matrix, Beq: Vec, Gsw: Vec, virtual_tap_from: Vec, - virtual_tap_to: Vec) -> Tuple[sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec, CxVec, CxVec, CxVec, CxVec]: + virtual_tap_to: Vec) -> Tuple[ + sp.csc_matrix, sp.csc_matrix, sp.csc_matrix, CxVec, CxVec, CxVec, CxVec, CxVec]: """ Compile the admittance matrices using the variable elements :param Cf: Connectivity branch-bus "from" with the branch states computed diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index df4bfb466..557c26a0f 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -98,33 +98,32 @@ def __init__(self, # master aray of bus types (nbus) self.bus_types = bus_types - # master array of branch control types (nbr) + # arrays for branch control types (nbr) self.tap_module_control_mode = tap_module_control_mode self.tap_controlled_buses = tap_controlled_buses - self.tap_phase_control_mode = tap_phase_control_mode - self.is_converter = is_converter # AC and DC indices self.ac: IntVec = np.where(~is_dc_bus)[0] self.dc: IntVec = np.where(is_dc_bus)[0] - # bus type indices - self.pq: IntVec = np.zeros(0, dtype=int) - self.pqv: IntVec = np.zeros(0, dtype=int) - self.pv: IntVec = np.zeros(0, dtype=int) # PV-local - self.p: IntVec = np.zeros(0, dtype=int) # PV-remote - self.vd: IntVec = np.zeros(0, dtype=int) - self.no_slack: IntVec = np.zeros(0, dtype=int) - # branch control indices self.any_control: bool = False # indices of the Branches controlling Pf flow with tau + self.k_pf_tau: IntVec = np.zeros(0, dtype=int) + self.k_qf_beq: IntVec = np.zeros(0, dtype=int) + self.k_v_m: IntVec = np.zeros(0, dtype=int) self.k_pf_tau, self.k_qf_beq, self.k_v_m = self.analyze_branch_controls() # determine the bus indices + self.pq: IntVec = np.zeros(0, dtype=int) + self.pv: IntVec = np.zeros(0, dtype=int) # PV-local + self.p: IntVec = np.zeros(0, dtype=int) # PV-remote + self.pqv: IntVec = np.zeros(0, dtype=int) # PV-remote pair + self.vd: IntVec = np.zeros(0, dtype=int) # slack + self.no_slack: IntVec = np.zeros(0, dtype=int) # all bus indices that are not slack, sorted self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=Pbus, types=self.bus_types) @property From 8168a964d4ae7af231ae26bf3ac3f3df017755d2 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 30 Jul 2024 08:40:52 +0100 Subject: [PATCH 130/218] Plenty of small refactors --- .idea/workspace.xml | 276 +++++++---- .../Compilers/circuit_to_data.py | 27 +- .../DataStructures/numerical_circuit.py | 91 +--- .../continuation_power_flow.py | 2 +- .../{derivatives => Derivatives}/__init__.py | 0 .../ac_jacobian.py | 4 +- .../acdc_jacobian.py | 2 +- .../csc_derivatives.py | 2 +- .../csr_derivatives.py | 0 .../matpower_derivatives.py | 0 .../LinearFactors/linear_analysis.py | 4 +- .../OPF/NumericalMethods/ac_opf.py | 6 +- .../NumericalMethods/ac_opf_derivatives.py | 464 ++++++++++-------- .../generalised_power_flow.py | 6 +- .../iwamoto_newton_raphson.py | 2 +- .../NumericalMethods/levenberg_marquardt.py | 2 +- .../levenberg_marquardt_acdc.py | 2 +- .../NumericalMethods/newton_raphson.py | 2 +- .../NumericalMethods/newton_raphson_acdc.py | 2 +- .../NumericalMethods/newton_raphson_fx.py | 4 +- .../NumericalMethods/newton_raphson_ode.py | 2 +- .../pf_advanced_formulation.py | 77 +-- .../NumericalMethods/pf_basic_formulation.py | 2 +- .../Topology/admittance_matrices.py | 2 +- .../Utils/NumericalMethods/autodiff.py | 2 +- src/tests/newton_equivalence_utils.py | 2 +- src/tests/test_derivatives.py | 137 ++++-- src/trunk/acopf/jacobian.py | 2 +- src/trunk/pf/power_flow_research.py | 2 +- src/trunk/pf/power_flow_research_hvdc.py | 2 +- src/trunk/pf/power_flow_research_sinj.py | 2 +- 31 files changed, 606 insertions(+), 524 deletions(-) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/__init__.py (100%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/ac_jacobian.py (98%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/acdc_jacobian.py (99%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/csc_derivatives.py (99%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/csr_derivatives.py (100%) rename src/GridCalEngine/Simulations/{derivatives => Derivatives}/matpower_derivatives.py (100%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d1a70b669..136e45e5d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,22 +28,38 @@ - + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - + + + + - + - - - @@ -696,19 +672,19 @@ - - - + + + - - - + + + @@ -1457,13 +1433,6 @@ - - - - - - - 1656059954202 @@ -1808,7 +1777,7 @@ - @@ -1841,7 +1810,7 @@ - @@ -1854,6 +1823,13 @@ + + + + + + + @@ -1872,14 +1848,7 @@ - - - - - - - - @@ -2352,17 +2321,17 @@ file://$PROJECT_DIR$/src/tests/test_derivatives.py - 480 + 514 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 476 + 510 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py - 931 + 932 @@ -2373,12 +2342,12 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py - 987 + 988 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py - 997 + 998 @@ -2409,42 +2378,52 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 132 + 134 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 458 + 461 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py - 1227 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py - 1232 + 1255 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 266 + 276 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 285 + 296 file://$PROJECT_DIR$/src/tests/test_derivatives.py - 247 + 256 + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py + 251 + + + file://$PROJECT_DIR$/src/tests/test_derivatives.py + 229 + + + file://$PROJECT_DIR$/src/tests/test_derivatives.py + 475 + @@ -2572,9 +2551,10 @@ - + + @@ -2805,7 +2785,7 @@ - + @@ -2845,13 +2825,13 @@ - + - + diff --git a/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py b/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py index 5c8357fd3..182f85391 100644 --- a/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py +++ b/src/GridCalEngine/Simulations/Derivatives/acdc_jacobian.py @@ -863,6 +863,7 @@ def fubm_jacobian_old(nb, nl, # @nb.njit() def fubm_jacobian(nbus: int, + nbr: int, idx_dtheta: IntVec, idx_dvm: IntVec, idx_dm: IntVec, @@ -956,22 +957,22 @@ def fubm_jacobian(nbus: int, dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag - dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real - dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag + dPf_dm_ = deriv.dSf_dm_csc(nbr, idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real + dQf_dm_ = deriv.dSf_dm_csc(nbr, idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag # dQt_dm_ = deriv.dSt_dm_csc(idx_dQt, idx_dm, F, T, Ys, kconv, complex_tap, tap_modules, V).imag # dPdp_dm = deriv.dSf_dm_csc(idx_dPdp, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real - dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + dPf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + dQf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag # dQt_dtau_ = deriv.dSt_dtau_csc(idx_dQt, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag # dPdp_dtau = deriv.dSf_dtau_csc(idx_dPdp, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag + dPf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dQf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag # dQt_dbeq_ = CSC(len(idx_dQt), len(idx_dbeq), 0, False) # dPdp_dbeq = deriv.dSf_dbeq_csc(idx_dPdp, idx_dbeq, F, kconv, tap_modules, V).real diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 221c9a88c..0142cd9a6 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -614,6 +614,8 @@ def derivatives_tau_csc_numba(nbus, nbr, iPxsh, - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbus: + :param nbr: :param iPxsh: array of indices {iPfsh or iPfdp} :param F: Array of branch "from" bus indices :param T: Array of branch "to" bus indices @@ -711,15 +713,15 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) - j_lookup = make_lookup(nbus, bus_indices) + i_lookup = make_lookup(nbus, bus_indices) nnz = 0 # for j_counter, j in enumerate(bus_indices): # para cada columna j ... for k_counter, k in enumerate(tau_indices): f = F[k] t = T[k] - f_idx = j_lookup[f] - t_idx = j_lookup[t] + f_idx = i_lookup[f] + t_idx = i_lookup[t] # from side if f_idx >= 0: @@ -744,12 +746,13 @@ def dSbus_dtau_csc(nbus, bus_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxV @njit() -def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSf_dtau_csc(nbr, sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: number of branches :param sf_indices: array of sf indices :param tau_indices: array of branch indices with tau control (must be equal to sf_indices) :param F: Array of branch "from" bus indices @@ -767,19 +770,24 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(tau_indices): - f = F[k] - t = T[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) + i_idx = i_lookup[k] - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) - Ti[nnz] = k_idx - Tj[nnz] = k_idx - nnz += 1 + if i_idx > -1: + f = F[k] + t = T[k] + + # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift + yft_dsh = -Ys[k] / (-1j * kconv[k] * np.conj(tap[k])) + + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(yft_dsh * V[t]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -788,12 +796,13 @@ def dSf_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv @njit() -def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: +def dSt_dtau_csc(nbr, sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: number of branches :param sf_indices: array of sf indices :param tau_indices: array of branch indices with tau control :param F: Array of branch "from" bus indices @@ -813,22 +822,23 @@ def dSt_dtau_csc(sf_indices, tau_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(tau_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] - t = T[k] + if i_idx > -1: + f = F[k] + t = T[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift - ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) + # Partials of Ytt, Yff, Yft and Ytf w.r.t. Ɵ shift + ytf_dsh = -Ys[k] / (1j * kconv[k] * tap[k]) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[t] * np.conj(ytf_dsh * V[f]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -933,7 +943,7 @@ def dSbus_dm_csc(nbus, bus_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, :param Ys: Array of branch series admittances :param Bc: Array of branch total susceptance values (sum of the two legs) :param Beq: Array of regulation susceptance of the FUBM model - :param k2: Array of "k2" parameters + :param kconv: Array of "k2" parameters :param tap: Array of branch complex taps (m * exp(1j * tau) :param tap_module: Array of tap modules :param V: Array of complex voltages @@ -982,7 +992,7 @@ def dSbus_dm_csc(nbus, bus_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, @njit() -def dSf_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec, Beq: Vec, +def dSf_dm_csc(nbr, sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec, Beq: Vec, kconv: Vec, tap: CxVec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) @@ -1006,25 +1016,26 @@ def dSf_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(m_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] - t = T[k] + if i_idx > -1: + f = F[k] + t = T[k] - YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) + YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) - # Partials of Ytt, Yff, Yft and Ytf w.r.t.ma - dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) - dyft_dma = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) + # Partials of Ytt, Yff, Yft and Ytf w.r.t.ma + dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) + dyft_dma = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(dyff_dma * V[f] + dyft_dma * V[t]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(dyff_dma * V[f] + dyft_dma * V[t]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -1033,13 +1044,14 @@ def dSf_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, Bc: CxVec @njit() -def dSt_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, +def dSt_dm_csc(nbr, sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Vec, tap: CxVec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: :param sf_indices: array of sf indices :param m_indices: array of branch indices with tau control :param F: Array of branch "from" bus indices @@ -1060,21 +1072,22 @@ def dSt_dm_csc(sf_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, kconv: Ve Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(m_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] - t = T[k] + if i_idx > -1: + f = F[k] + t = T[k] - dytf_dma = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) + dytf_dma = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[t] * np.conj(dytf_dma * V[f]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[t] * np.conj(dytf_dma * V[f]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) @@ -1175,7 +1188,15 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo # from side if f_idx >= 0: - dyff_dBeq = 1j / (1j * kconv[k] * kconv[k] * tap_module[k] + 1e-20) + """ + # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq + dyff_dBeq = 1j / np.power(kconv[idx] * tap_module[idx], 2.0) + + # Partials of S w.r.t.Beq + val_f = V[f] * np.conj(dyff_dBeq * V[f]) + """ + + dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k] + 1e-20, 2.0) Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) Ti[nnz] = f_idx Tj[nnz] = k_counter @@ -1190,12 +1211,13 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo @njit() -def dSf_dbeq_csc(sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: +def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) - dSbus_dPfsh, dSf_dPfsh, dSt_dPfsh -> if iPxsh=iPfsh - dSbus_dPfdp, dSf_dPfdp, dSt_dPfdp -> if iPxsh=iPfdp + :param nbr: Number of branches :param sf_indices: array of sf indices :param beq_indices: array of branch indices with tau control :param F: Array of branch "from" bus indices @@ -1211,21 +1233,22 @@ def dSf_dbeq_csc(sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec Tx = np.empty(max_nnz, dtype=np.complex128) Ti = np.empty(max_nnz, dtype=np.int32) Tj = np.empty(max_nnz, dtype=np.int32) + i_lookup = make_lookup(nbr, sf_indices) nnz = 0 for k_idx, k in enumerate(beq_indices): - for k2_idx, k2 in enumerate(sf_indices): + i_idx = i_lookup[k] - if k2 == k: - f = F[k] + if i_idx > -1: + f = F[k] - # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq - dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k] + 1e-20, 2.0) + # Partials of Ytt, Yff, Yft and Ytf w.r.t.Beq + dyff_dBeq = 1j / np.power(kconv[k] * tap_module[k] + 1e-20, 2.0) - # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) - Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) - Ti[nnz] = k_idx - Tj[nnz] = k2_idx - nnz += 1 + # Partials of Sf w.r.t. Ɵ shift (makes sense that this is ∂Sbus/∂Pxsh assigned to the "from" bus) + Tx[nnz] = V[f] * np.conj(dyff_dBeq * V[f]) + Ti[nnz] = i_idx + Tj[nnz] = k_idx + nnz += 1 # convert to csc mat.fill_from_coo(Ti, Tj, Tx, nnz) diff --git a/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py index ac3fefcaf..1672f3956 100644 --- a/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/matpower_derivatives.py @@ -18,7 +18,7 @@ import numpy as np from typing import Tuple from scipy.sparse import diags, csc_matrix, vstack, hstack -from GridCalEngine.basic_structures import CxVec, IntVec +from GridCalEngine.basic_structures import CxVec, IntVec, Vec def dSbus_dV_matpower(Ybus: csc_matrix, V: CxVec) -> Tuple[csc_matrix, csc_matrix]: @@ -147,6 +147,144 @@ def dSt_dV_matpower(Yt, V, T, Ct, Vc, diagVc, diagE, diagV): return dSt_dVa.tocsc(), dSt_dVm.tocsc() +def dS_dm_matpower(V: CxVec, Cf: csc_matrix, Ct: csc_matrix, + R: Vec, X: Vec, B: Vec, Beq: Vec, k2: Vec, m: Vec, tau: Vec): + """ + + :param V: + :param Cf: + :param Ct: + :param R: + :param X: + :param B: + :param Beq: + :param k2: + :param m: + :param tau: + :return: + """ + diagV = diags(V) + Vf = Cf @ V + Vt = Ct @ V + diagVf = diags(Vf) + diagVt = diags(Vt) + + ys = 1.0 / (R + 1j * X + 1e-20) + + dyff_dm = (-2.0 * (ys + 1.0j * B / 2.0 + 1.0j * Beq)) / (np.power(k2, 2) * np.power(m, 3)) + dyft_dm = ys / (k2 * np.power(m, 2) * np.exp(-1j * tau)) + dytf_dm = ys / (k2 * np.power(m, 2) * np.exp(1j * tau)) + dytt_dm = np.zeros(len(m)) + + dYf_dm = diags(dyff_dm) @ Cf + diags(dyft_dm) @ Ct + dYt_dm = diags(dytf_dm) @ Cf + diags(dytt_dm) @ Ct + + dY_dm = Cf.T @ dYf_dm + Ct.T @ dYt_dm + + dS_dm = diagV @ np.conj(dY_dm @ diagV) + dSf_dm = diagVf @ diags(np.conj(dYf_dm @ V)) + dSt_dm = diagVt @ diags(np.conj(dYt_dm @ V)) + + return dS_dm, dSf_dm, dSt_dm + + +def dS_dtau_matpower(V: CxVec, Cf: csc_matrix, Ct: csc_matrix, + R: Vec, X: Vec, k2: Vec, m: Vec, tau: Vec): + """ + Ybus = Cf' * Yf + Ct' * Yt + diag(Ysh) + + Yf = Yff * Cf + Yft * Ct + Yt = Ytf * Cf + Ytt * Ct + + Ytt = Ys + 1j*Bc/2 + Yff = Gsw+( (Ytt+1j*Beq) ./ ((k2.^2).*tap .* conj(tap)) ) %%< csc_matrix: """ Computes the system Jacobian matrix in polar coordinates diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index e27d8fd05..9989e6035 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -35,6 +35,7 @@ # @njit() def adv_jacobian(nbus: int, + nbr: int, idx_dva: IntVec, idx_dvm: IntVec, idx_dm: IntVec, @@ -62,6 +63,7 @@ def adv_jacobian(nbus: int, """ :param nbus: + :param nbr: :param idx_dva: :param idx_dvm: :param idx_dm: @@ -109,18 +111,18 @@ def adv_jacobian(nbus: int, dP_dm__ = deriv.dSbus_dm_csc(nbus, idx_dP, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real dQ_dm__ = deriv.dSbus_dm_csc(nbus, idx_dQ, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag - dPf_dm_ = deriv.dSf_dm_csc(idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real - dQf_dm_ = deriv.dSf_dm_csc(idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag + dPf_dm_ = deriv.dSf_dm_csc(nbr, idx_dPf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).real + dQf_dm_ = deriv.dSf_dm_csc(nbr, idx_dQf, idx_dm, F, T, Ys, Bc, Beq, kconv, complex_tap, tap_modules, V).imag dP_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dP, idx_dtau, F, T, Ys, kconv, complex_tap, V).real dQ_dtau__ = deriv.dSbus_dtau_csc(nbus, idx_dQ, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag - dPf_dtau_ = deriv.dSf_dtau_csc(idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real - dQf_dtau_ = deriv.dSf_dtau_csc(idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag + dPf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dPf, idx_dtau, F, T, Ys, kconv, complex_tap, V).real + dQf_dtau_ = deriv.dSf_dtau_csc(nbr, idx_dQf, idx_dtau, F, T, Ys, kconv, complex_tap, V).imag dP_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dP, idx_dbeq, F, kconv, tap_modules, V).real dQ_dbeq__ = deriv.dSbus_dbeq_csc(nbus, idx_dQ, idx_dbeq, F, kconv, tap_modules, V).imag - dPf_dbeq_ = deriv.dSf_dbeq_csc(idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real - dQf_dbeq_ = deriv.dSf_dbeq_csc(idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag + dPf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dPf, idx_dbeq, F, kconv, tap_modules, V).real + dQf_dbeq_ = deriv.dSf_dbeq_csc(nbr, idx_dQf, idx_dbeq, F, kconv, tap_modules, V).imag # compose the Jacobian J = csc_stack_2d_ff(mats= @@ -431,6 +433,7 @@ def Jacobian(self, autodiff: bool = False) -> CSC: tap = polar_to_rect(m, tau) J = adv_jacobian(nbus=self.nc.nbus, + nbr=self.nc.nbr, idx_dva=self.idx_dVa, idx_dvm=self.idx_dVm, idx_dm=self.idx_dm, diff --git a/src/tests/test_derivatives.py b/src/tests/test_derivatives.py index 8acc03be4..86bf32c9e 100644 --- a/src/tests/test_derivatives.py +++ b/src/tests/test_derivatives.py @@ -227,6 +227,15 @@ def test_tau_derivatives() -> None: # tap=nc.branch_data.tap, # V=nc.Vbus) + # dSbus_dtau1, dSf_dtau1, dSt_dtau1 = mdiff.dS_dtau_matpower(V=nc.Vbus, + # Cf=nc.Cf, + # Ct=nc.Ct, + # R=nc.branch_data.R, + # X=nc.branch_data.X, + # k2=nc.branch_data.k, + # m=nc.branch_data.tap_module, + # tau=nc.branch_data.tap_angle) + # check_dSbus_dtau(dSbus_dtau1, br_idx, bus_idx, Ys, nc) dSbus_dtau2 = cscdiff.dSbus_dtau_csc(nbus=nc.nbus, @@ -239,7 +248,7 @@ def test_tau_derivatives() -> None: tap=nc.branch_data.tap, V=nc.Vbus) - dSbus_dtau3 = dSbus_dtau1.tocsc()[bus_idx, :] + dSbus_dtau3 = dSbus_dtau1[bus_idx, :] # print(f"dSbus_dsh1 (matpower):\n {dSbus_dsh1.real.toarray()}") # print(f"dSbus_dsh3 (matpower):\n {dSbus_dsh3.real.toarray()}") @@ -249,7 +258,8 @@ def test_tau_derivatives() -> None: # check_dSf_dtau(dSf_dtau1, sf_idx, br_idx, Ys, nc) - dSf_dtau2 = cscdiff.dSf_dtau_csc(sf_indices=sf_idx, + dSf_dtau2 = cscdiff.dSf_dtau_csc(nbr=nc.nbr, + sf_indices=sf_idx, tau_indices=tau_idx, F=nc.F, T=nc.T, @@ -258,7 +268,7 @@ def test_tau_derivatives() -> None: tap=nc.branch_data.tap, V=nc.Vbus) - dSf_dtau3 = dSf_dtau1.tocsc()[sf_idx, :] + dSf_dtau3 = dSf_dtau1[sf_idx, :] # print(f"dSf_dtau1 (matpower):\n {dSf_dtau1.real.toarray()}") # print(f"dSf_dtau3 (matpower):\n {dSf_dtau3.real.toarray()}") @@ -268,7 +278,8 @@ def test_tau_derivatives() -> None: # check_dSt_dtau(dSt_dtau1, sf_idx, br_idx, Ys, nc) - dSt_dtau2 = cscdiff.dSt_dtau_csc(sf_indices=sf_idx, + dSt_dtau2 = cscdiff.dSt_dtau_csc(nbr=nc.nbr, + sf_indices=sf_idx, tau_indices=tau_idx, F=nc.F, T=nc.T, @@ -277,7 +288,7 @@ def test_tau_derivatives() -> None: tap=nc.branch_data.tap, V=nc.Vbus) - dSt_dtau3 = dSt_dtau1.tocsc()[sf_idx, :] + dSt_dtau3 = dSt_dtau1[sf_idx, :] # print(f"dSt_dtau1 (matpower):\n {dSt_dtau1.real.toarray()}") # print(f"dSt_dtau3 (matpower):\n {dSt_dtau3.real.toarray()}") @@ -321,31 +332,43 @@ def test_m_derivatives() -> None: bus_idx = dta["bus_idx"] sf_idx = dta["sf_idx"] - # dSbus_dm1, dSf_dm1, dSt_dm1 = cscdiff.derivatives_ma_csc_numba(nbus=nc.nbus, - # nbr=nc.nbr, - # iXxma=m_idx, - # F=nc.F, - # T=nc.T, - # Ys=Ys, - # kconv=nc.branch_data.k, - # tap=nc.branch_data.tap, - # tap_module=nc.branch_data.tap_module, - # Bc=nc.branch_data.B, - # Beq=nc.branch_data.Beq, - # V=nc.Vbus) - - (dSbus_dm1, dSf_dm1, dSt_dm1, - dSbus_dtau1, dSf_dtau1, dSt_dtau1) = compute_branch_power_derivatives(all_tap_m=nc.branch_data.tap_module, - all_tap_tau=nc.branch_data.tap_angle, - V=nc.Vbus, - k_m=m_idx, - k_tau=np.empty(0, dtype=int), - Cf=nc.Cf, - Ct=nc.Ct, - F=nc.F, - T=nc.T, - R=nc.branch_data.R, - X=nc.branch_data.X) + dSbus_dm1, dSf_dm1, dSt_dm1 = cscdiff.derivatives_ma_csc_numba(nbus=nc.nbus, + nbr=nc.nbr, + iXxma=m_idx, + F=nc.F, + T=nc.T, + Ys=Ys, + kconv=nc.branch_data.k, + tap=nc.branch_data.tap, + tap_module=nc.branch_data.tap_module, + Bc=nc.branch_data.B, + Beq=nc.branch_data.Beq, + V=nc.Vbus) + dSbus_dm1, dSf_dm1, dSt_dm1 = mat_to_scipy(dSbus_dm1), mat_to_scipy(dSf_dm1), mat_to_scipy(dSt_dm1) + + # (dSbus_dm1, dSf_dm1, dSt_dm1, + # dSbus_dtau1, dSf_dtau1, dSt_dtau1) = compute_branch_power_derivatives(all_tap_m=nc.branch_data.tap_module, + # all_tap_tau=nc.branch_data.tap_angle, + # V=nc.Vbus, + # k_m=m_idx, + # k_tau=np.empty(0, dtype=int), + # Cf=nc.Cf, + # Ct=nc.Ct, + # F=nc.F, + # T=nc.T, + # R=nc.branch_data.R, + # X=nc.branch_data.X) + + # dSbus_dm1, dSf_dm1, dSt_dm1 = mdiff.dS_dm_matpower(V=nc.Vbus, + # Cf=nc.Cf, + # Ct=nc.Ct, + # R=nc.branch_data.R, + # X=nc.branch_data.X, + # B=nc.branch_data.B, + # Beq=nc.branch_data.Beq, + # k2=nc.branch_data.k, + # m=nc.branch_data.tap_module, + # tau=nc.branch_data.tap_angle) dSbus_dm2 = cscdiff.dSbus_dm_csc(nbus=nc.nbus, bus_indices=bus_idx, @@ -359,10 +382,11 @@ def test_m_derivatives() -> None: tap=nc.branch_data.tap, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSbus_dm3 = dSbus_dm1.tocsc()[bus_idx, :] + dSbus_dm3 = dSbus_dm1[bus_idx, :] assert np.allclose(dSbus_dm3.toarray(), dSbus_dm2.toarray()) - dSf_dm2 = cscdiff.dSf_dm_csc(sf_indices=sf_idx, + dSf_dm2 = cscdiff.dSf_dm_csc(nbr=nc.nbr, + sf_indices=sf_idx, m_indices=m_idx, F=nc.F, T=nc.T, @@ -373,10 +397,11 @@ def test_m_derivatives() -> None: tap=nc.branch_data.tap, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSf_dm3 = dSf_dm1.tocsc()[sf_idx, :] + dSf_dm3 = dSf_dm1[sf_idx, :] assert np.allclose(dSf_dm3.toarray(), dSf_dm2.toarray()) - dSt_dm2 = cscdiff.dSt_dm_csc(sf_indices=sf_idx, + dSt_dm2 = cscdiff.dSt_dm_csc(nbr=nc.nbr, + sf_indices=sf_idx, m_indices=m_idx, F=nc.F, T=nc.T, @@ -385,7 +410,8 @@ def test_m_derivatives() -> None: tap=nc.branch_data.tap, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSt_dm3 = dSt_dm1.tocsc()[sf_idx, :] + dSt_dm3 = dSt_dm1[sf_idx, :] + assert np.allclose(dSt_dm3.toarray(), dSt_dm2.toarray()) @@ -431,6 +457,13 @@ def test_beq_derivatives() -> None: kconv=nc.branch_data.k, tap_module=nc.branch_data.tap_module, V=nc.Vbus) + dSbus_dbeq1, dSf_dbeq1, dSt_dbeq1 = mat_to_scipy(dSbus_dbeq1), mat_to_scipy(dSf_dbeq1), mat_to_scipy(dSt_dbeq1) + + # dSbus_dbeq1, dSf_dbeq1, dSt_dbeq1 = mdiff.dS_dbeq_matpower(V=nc.Vbus, + # Cf=nc.Cf, + # Ct=nc.Ct, + # k2=nc.branch_data.k, + # m=nc.branch_data.tap_module) dSbus_dbeq2 = cscdiff.dSbus_dbeq_csc(nbus=nc.nbus, bus_indices=bus_idx, @@ -439,16 +472,17 @@ def test_beq_derivatives() -> None: kconv=nc.branch_data.k, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSbus_dbeq3 = mat_to_scipy(dSbus_dbeq1)[bus_idx, :] + dSbus_dbeq3 = dSbus_dbeq1[bus_idx, :] assert np.allclose(dSbus_dbeq3.toarray(), dSbus_dbeq2.toarray()) - dSf_dbeq2 = cscdiff.dSf_dbeq_csc(sf_indices=sf_idx, + dSf_dbeq2 = cscdiff.dSf_dbeq_csc(nbr=nc.nbr, + sf_indices=sf_idx, beq_indices=m_idx, F=nc.F, kconv=nc.branch_data.k, tap_module=nc.branch_data.tap_module, V=nc.Vbus) - dSf_dbeq3 = mat_to_scipy(dSf_dbeq1)[sf_idx, :] + dSf_dbeq3 = dSf_dbeq1[sf_idx, :] assert np.allclose(dSf_dbeq3.toarray(), dSf_dbeq2.toarray()) # dSt_dbeq is zero @@ -483,7 +517,7 @@ def test_jacobian(): if __name__ == '__main__': # test_branch_derivatives() - # test_tau_derivatives() - # test_m_derivatives() - # test_beq_derivatives() - test_jacobian() + test_tau_derivatives() + test_m_derivatives() + test_beq_derivatives() + # test_jacobian() From 977a9ded0eed178bbb0af37e5079f02d652c177d Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 31 Jul 2024 16:40:35 +0100 Subject: [PATCH 132/218] Added Pt and Qt derivatives --- .idea/workspace.xml | 303 +++---- src/GridCal/Gui/Main/MainWindow.py | 193 +++-- src/GridCal/Gui/Main/MainWindow.ui | 2 +- src/GridCal/Gui/Main/icons.qrc | 1 + src/GridCal/Gui/Main/icons_rc.py | 795 ++++++++++++------ .../Compilers/circuit_to_data.py | 2 + .../DataStructures/branch_data.py | 3 + .../DataStructures/numerical_circuit.py | 2 +- .../Devices/Branches/transformer.py | 2 + src/GridCalEngine/Devices/Branches/vsc.py | 2 + src/GridCalEngine/Devices/Branches/winding.py | 2 + .../Parents/controllable_branch_parent.py | 27 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 33 +- .../Derivatives/csc_derivatives.py | 22 +- .../NumericalMethods/common_functions.py | 39 +- .../pf_advanced_formulation.py | 205 ++--- .../Topology/simulation_indices.py | 55 +- src/GridCalEngine/enumerations.py | 5 +- src/tests/test_ac_opf.py | 5 +- src/tests/test_admittance_tap_derivatives.py | 22 +- src/tests/test_derivatives.py | 4 +- 21 files changed, 1100 insertions(+), 624 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 36e949659..456c0c0bd 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,12 +28,27 @@ - + + - - - - - - - - - - - - - - - - - - - - + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", - "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", - "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", - "Python tests.pytest for test_sparse2.test_expand.executor": "Run", - "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", - "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", - "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_derivatives.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_sparse2.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.test_derivatives.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - + - + @@ -697,19 +682,19 @@ + - - + - + - - + + @@ -1459,6 +1444,7 @@ + 1656059954202 @@ -1803,7 +1789,7 @@ - @@ -1849,8 +1835,6 @@ - - @@ -1874,7 +1858,9 @@ - @@ -2433,17 +2419,17 @@ - - + - + + - + @@ -2466,8 +2452,8 @@ - + @@ -2476,13 +2462,13 @@ - - + + - + @@ -2509,10 +2495,10 @@ - - + + @@ -2549,13 +2535,14 @@ - + + @@ -2567,8 +2554,8 @@ - + @@ -2619,8 +2606,8 @@ - + @@ -2830,7 +2817,7 @@ - + diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py index 3261b2d83..6c37db899 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/node_template.py @@ -52,6 +52,8 @@ def __init__(self, self._callbacks: List[Callable[[float, float], None]] = list() + + def add_position_change_callback(self, fcn: Callable[[float, float], None]): """ Add callable function diff --git a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py index 938c4f3ed..d4d5ad30d 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/Substation/substation_graphic_item.py @@ -88,7 +88,9 @@ def __init__(self, # self.resize(r) self.setAcceptHoverEvents(True) # Enable hover events for the item # self.setFlag(QtWidgets.QGraphicsItem.GraphicsItemFlag.ItemIsMovable) # Allow moving the node - self.setFlag(self.GraphicsItemFlag.ItemIsSelectable) # Allow selecting the node + self.setFlag( + self.GraphicsItemFlag.ItemIsSelectable | QGraphicsRectItem.ItemIsMovable) # Allow selecting the node + self.setCursor(QCursor(Qt.PointingHandCursor)) # Create a pen with reduced line width @@ -230,7 +232,6 @@ def deSelectItem(self): self.itemSelected = False self.setDefaultColor() - def mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent): """ Event handler for mouse release events. @@ -295,8 +296,6 @@ def contextMenuEvent(self, event: QGraphicsSceneContextMenuEvent): icon_path="", function_ptr=self.new_substation_diagram) - - menu.exec_(event.screenPos()) def create_new_line(self): @@ -338,7 +337,7 @@ def add_function(self): pass - def remove_function(self): + def remove_function(self) -> None: """ Function to be called when Action 1 is selected. """ diff --git a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py index 2b58e58e0..1db3cb589 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py @@ -136,6 +136,9 @@ def __init__(self, self.selectedItems = list() + self.setDragMode(QGraphicsView.DragMode.RubberBandDrag) + self.setRubberBandSelectionMode(Qt.IntersectsItemShape) + def mousePressEvent(self, event: QMouseEvent): """ diff --git a/src/trunk/qt_related/multi_select.py b/src/trunk/qt_related/multi_select.py new file mode 100644 index 000000000..a2500c6de --- /dev/null +++ b/src/trunk/qt_related/multi_select.py @@ -0,0 +1,34 @@ +from PySide6.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsRectItem +from PySide6.QtGui import QPen, QBrush, QColor, QPainter +from PySide6.QtCore import Qt + + +class MultiSelectScene(QGraphicsScene): + def __init__(self, parent=None): + super().__init__(parent) + + # Add items with default flags to the scene + for i in range(5): + item = QGraphicsRectItem(i * 30, i * 30, 50, 50) + item.setFlags(QGraphicsRectItem.ItemIsSelectable | QGraphicsRectItem.ItemIsMovable) + item.setPen(QPen(Qt.black)) + item.setBrush(QBrush(QColor(255, 0, 0, 127))) # Semi-transparent red + self.addItem(item) + + +class MultiSelectView(QGraphicsView): + def __init__(self, scene, parent=None): + super().__init__(scene, parent) + self.setRenderHint(QPainter.Antialiasing) + self.setDragMode(QGraphicsView.DragMode.RubberBandDrag) + + +if __name__ == "__main__": + app = QApplication([]) + + scene = MultiSelectScene() + view = MultiSelectView(scene) + view.setWindowTitle("QGraphicsScene Multi-Selection with Default Flags") + view.show() + + app.exec() From a58f188dee4f0b80d41906e4291afb7fd86239c2 Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 1 Aug 2024 15:30:13 +0100 Subject: [PATCH 134/218] Made regulation bus and cn editable Added ability to set the voltage control from the pertinent branches Removed redundant control catch code --- .../Gui/Diagrams/MapWidget/map_widget.py | 4 +-- .../Branches/transformer2w_graphics.py | 28 ++++++++++++++++- .../SchematicWidget/Branches/upfc_graphics.py | 30 ++++++++++++++++++- .../SchematicWidget/Branches/vsc_graphics.py | 29 ++++++++++++++++++ .../Gui/Main/SubClasses/Model/diagrams.py | 11 +++++-- .../Parents/controllable_branch_parent.py | 4 +-- src/GridCalEngine/IO/gridcal/pack_unpack.py | 14 ++------- 7 files changed, 101 insertions(+), 19 deletions(-) diff --git a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py index 1db3cb589..ccd6f1843 100644 --- a/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py +++ b/src/GridCal/Gui/Diagrams/MapWidget/map_widget.py @@ -30,7 +30,7 @@ from __future__ import annotations from typing import List, Union, Tuple, Callable, TYPE_CHECKING from enum import Enum -from PySide6.QtCore import Qt, QTimer, QEvent, QPointF, QRectF +from PySide6.QtCore import Qt, QTimer, QEvent, QPointF from PySide6.QtGui import (QPainter, QColor, QPixmap, QCursor, QMouseEvent, QKeyEvent, QWheelEvent, QResizeEvent, QEnterEvent, QPaintEvent, QDragEnterEvent, QDragMoveEvent, QDropEvent) @@ -497,7 +497,7 @@ def tile_src(self, tile_src: Tiles): while abs(self.view.schema_zoom - 0.015625) > 0.00001: self.view.schema_zoom = self.view.schema_zoom / self.view.map_widget.zoom_factor self.view.scale(1.0 / self.view.map_widget.zoom_factor, 1.0 / self.view.map_widget.zoom_factor) - self.GotoLevelAndPosition(level=0, longitude=None, latitude=None) + self.GotoLevelAndPosition(level=0, longitude=0, latitude=0) @property def max_level(self): diff --git a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py index b35a979f6..07f719108 100644 --- a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py +++ b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/transformer2w_graphics.py @@ -24,7 +24,7 @@ from GridCal.Gui.Diagrams.SchematicWidget.Branches.transformer_editor import TransformerEditor from GridCal.Gui.Diagrams.SchematicWidget.Branches.transformer_taps_editor import TransformerTapsEditor from GridCalEngine.Devices.Branches.transformer import Transformer2W, TransformerType -from GridCalEngine.enumerations import DeviceType +from GridCalEngine.enumerations import DeviceType, TapModuleControl if TYPE_CHECKING: # Only imports the below statements during type checking from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget @@ -107,6 +107,16 @@ def contextMenuEvent(self, event): function_ptr=self.tap_down, icon_path=":/Icons/icons/down.svg") + add_menu_entry(menu=menu, + text="Control V from", + function_ptr=self.control_v_from, + icon_path=":/Icons/icons/edit.svg") + + add_menu_entry(menu=menu, + text="Control V to", + function_ptr=self.control_v_to, + icon_path=":/Icons/icons/edit.svg") + menu.addSeparator() add_menu_entry(menu=menu, @@ -240,3 +250,19 @@ def tap_down(self): Set one tap down """ self.api_object.tap_down() + + def control_v_from(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_from + self.api_object.tap_module_control_mode = TapModuleControl.Vm + + def control_v_to(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_to + self.api_object.tap_module_control_mode = TapModuleControl.Vm diff --git a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py index b268f5de8..6ee55efed 100644 --- a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py +++ b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/upfc_graphics.py @@ -21,6 +21,7 @@ from GridCal.Gui.GuiFunctions import add_menu_entry from GridCal.Gui.Diagrams.SchematicWidget.terminal_item import BarTerminalItem from GridCalEngine.Devices.Branches.upfc import UPFC +from GridCalEngine.enumerations import TapModuleControl from GridCal.Gui.Diagrams.SchematicWidget.Branches.line_graphics_template import LineGraphicTemplateItem if TYPE_CHECKING: # Only imports the below statements during type checking @@ -90,6 +91,18 @@ def contextMenuEvent(self, event): menu.addSeparator() + add_menu_entry(menu=menu, + text="Control V from", + function_ptr=self.control_v_from, + icon_path=":/Icons/icons/edit.svg") + + add_menu_entry(menu=menu, + text="Control V to", + function_ptr=self.control_v_to, + icon_path=":/Icons/icons/edit.svg") + + menu.addSeparator() + ra6 = menu.addAction('Plot profiles') plot_icon = QIcon() plot_icon.addPixmap(QPixmap(":/Icons/icons/plot.svg")) @@ -108,7 +121,22 @@ def contextMenuEvent(self, event): ra5.setIcon(ra5_icon) ra5.triggered.connect(self.assign_status_to_profile) - menu.exec_(event.screenPos()) else: pass + + def control_v_from(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_from + self.api_object.tap_module_control_mode = TapModuleControl.Vm + + def control_v_to(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_to + self.api_object.tap_module_control_mode = TapModuleControl.Vm diff --git a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py index f572c9f2a..aed61cf4c 100644 --- a/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py +++ b/src/GridCal/Gui/Diagrams/SchematicWidget/Branches/vsc_graphics.py @@ -21,6 +21,7 @@ from GridCal.Gui.GuiFunctions import add_menu_entry from GridCal.Gui.Diagrams.SchematicWidget.terminal_item import BarTerminalItem, RoundTerminalItem from GridCalEngine.Devices.Branches.vsc import VSC +from GridCalEngine.enumerations import TapModuleControl from GridCal.Gui.Diagrams.SchematicWidget.Branches.line_graphics_template import LineGraphicTemplateItem if TYPE_CHECKING: # Only imports the below statements during type checking @@ -95,6 +96,18 @@ def contextMenuEvent(self, event): menu.addSeparator() + add_menu_entry(menu=menu, + text="Control V from", + function_ptr=self.control_v_from, + icon_path=":/Icons/icons/edit.svg") + + add_menu_entry(menu=menu, + text="Control V to", + function_ptr=self.control_v_to, + icon_path=":/Icons/icons/edit.svg") + + menu.addSeparator() + ra6 = menu.addAction('Plot profiles') plot_icon = QIcon() plot_icon.addPixmap(QPixmap(":/Icons/icons/plot.svg")) @@ -125,3 +138,19 @@ def mouseDoubleClickEvent(self, event): """ pass + + def control_v_from(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_from + self.api_object.tap_module_control_mode = TapModuleControl.Vm + + def control_v_to(self): + """ + + :return: + """ + self.api_object.regulation_bus = self.api_object.bus_to + self.api_object.tap_module_control_mode = TapModuleControl.Vm diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 30c03d4aa..a20b09d02 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -800,7 +800,6 @@ def colour_diagrams(self) -> None: """ Color the grid now """ - print("Colour!") if self.ui.available_results_to_color_comboBox.currentIndex() > -1: current_study = self.ui.available_results_to_color_comboBox.currentText() @@ -1825,6 +1824,14 @@ def set_diagrams_palette(self): cmap = self.cmap_dict[cmap_text] diagram_widget.diagram.palette = cmap + current_study = self.ui.available_results_to_color_comboBox.currentText() + val = self.ui.diagram_step_slider.value() + t_idx = val if val > -1 else None + + self.grid_colour_function(diagram=diagram_widget, + current_study=current_study, + t_idx=t_idx) + def set_diagrams_map_tile_provider(self): """ Set the size constraints @@ -1836,4 +1843,4 @@ def set_diagrams_map_tile_provider(self): if isinstance(diagram_widget, GridMapWidget): tile_name = self.ui.tile_provider_comboBox.currentText() tile_src = self.tile_name_dict[tile_name] - diagram_widget.map.tile_src = tile_src \ No newline at end of file + diagram_widget.map.tile_src = tile_src diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index 5c6c1ea0d..26bed87f4 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -250,10 +250,10 @@ def __init__(self, profile_name='Qset_prof') self.register(key='regulation_bus', units='', tpe=DeviceType.BusDevice, - definition='Bus where the regulation is applied.', editable=False) + definition='Bus where the regulation is applied.', editable=True) self.register(key='regulation_cn', units='', tpe=DeviceType.ConnectivityNodeDevice, - definition='Connectivity node where the regulation is applied.', editable=False) + definition='Connectivity node where the regulation is applied.', editable=True) self.register(key='tap_phase', units='rad', tpe=float, definition='Angle shift of the tap changer.', profile_name='tap_phase_prof', old_names=['angle', 'theta']) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 4f1b6255d..03f969081 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -820,17 +820,9 @@ def parse_object_type_from_dataframe(main_df: pd.DataFrame, prof.fill(val) except ValueError: - skip = False - if property_name == 'control_mode': - if property_value == "1:Pt": - # elm.set_snapshot_value(gc_prop.name, TransformerControlType.Pf) - # TODO: handle this - skip = True - - if not skip: - logger.add_error(f'Cannot cast value to {gc_prop.tpe}', - device=elm.name, - value=property_value) + logger.add_error(f'Cannot cast value to {gc_prop.tpe}', + device=elm.name, + value=property_value) else: raise Exception(f'Unsupported property type: {gc_prop.tpe}') From f3ace51aacc3b0794b559e85b0322aaa51022cb7 Mon Sep 17 00:00:00 2001 From: santi Date: Fri, 9 Aug 2024 11:03:54 +0100 Subject: [PATCH 135/218] Fixed k_mtau as the intersection instead of the union --- .../Parents/controllable_branch_parent.py | 39 ++- .../pf_advanced_formulation.py | 3 +- .../Topology/simulation_indices.py | 4 +- src/tests/test_admittance_tap_derivatives.py | 47 ++-- .../acopf/acopf_admittance_tap_derivation.py | 225 +++++++++++------- 5 files changed, 189 insertions(+), 129 deletions(-) diff --git a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py index 26bed87f4..71de998dd 100644 --- a/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/controllable_branch_parent.py @@ -184,7 +184,7 @@ def __init__(self, self.tap_module_max = tap_module_max self.tap_module_min = tap_module_min - self.tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode + self._tap_phase_control_mode: TapPhaseControl = tap_phase_control_mode self._tap_phase_control_mode_prof = Profile(default_value=tap_phase_control_mode, data_type=TapPhaseControl) self.Pset = Pset @@ -200,7 +200,7 @@ def __init__(self, self.tap_phase_max = tap_phase_max self.tap_phase_min = tap_phase_min - self.tap_module_control_mode: TapModuleControl = tap_module_control_mode + self._tap_module_control_mode: TapModuleControl = tap_module_control_mode self._tap_module_control_mode_prof = Profile(default_value=tap_module_control_mode, data_type=TapModuleControl) self.vset = vset @@ -417,6 +417,32 @@ def temp_oper_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a temp_oper_prof') + @property + def tap_phase_control_mode(self) -> TapPhaseControl: + """ + Get the tap phase control mode + :return: TapPhaseControl + """ + return self._tap_phase_control_mode + + @tap_phase_control_mode.setter + def tap_phase_control_mode(self, val: TapPhaseControl): + assert isinstance(val, TapPhaseControl) + self._tap_phase_control_mode = val + + @property + def tap_module_control_mode(self) -> TapModuleControl: + """ + Get the tap module control mode + :return: TapPhaseControl + """ + return self._tap_module_control_mode + + @tap_module_control_mode.setter + def tap_module_control_mode(self, val: TapModuleControl): + assert isinstance(val, TapModuleControl) + self._tap_module_control_mode = val + @property def R_corrected(self): """ @@ -453,3 +479,12 @@ def flip(self): """ F, T = self.bus_from, self.bus_to self.bus_to, self.bus_from = F, T + + def set_tap_controls(self, tap_phase_control_mode: TapPhaseControl, tap_module_control_mode: TapModuleControl): + """ + Set both tap controls + :param tap_phase_control_mode: TapPhaseControl + :param tap_module_control_mode: TapModuleControl + """ + self.tap_phase_control_mode = tap_phase_control_mode + self.tap_module_control_mode = tap_module_control_mode diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index f31b64f8b..945758575 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -204,8 +204,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.m: Vec = np.ones(len(self.idx_dm)) self.tau: Vec = np.zeros(len(self.idx_dtau)) - self.beq: Vec = np.zeros(len(self.idx_dbeq)) - self.beq += 0.001 # some initial value + self.beq: Vec = np.full(len(self.idx_dbeq), 0.001) # some initial value self.Ys = 1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X) diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index dc57fbb40..066256aab 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -148,10 +148,10 @@ def k_tau(self): @property def k_mtau(self): """ - Return a composition of all indices affected by m|tau + Return a composition of all indices affected by the intersection of "m" and "tau" :return: """ - return np.r_[self.k_m, self.k_tau] + return np.intersect1d(self.k_m, self.k_tau) def analyze_branch_controls(self) -> None: """ diff --git a/src/tests/test_admittance_tap_derivatives.py b/src/tests/test_admittance_tap_derivatives.py index 6bdd8a9ea..ab2c90175 100644 --- a/src/tests/test_admittance_tap_derivatives.py +++ b/src/tests/test_admittance_tap_derivatives.py @@ -20,14 +20,13 @@ import GridCalEngine.api as gce from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at, NumericalCircuit -from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import ac_optimal_power_flow, NonlinearOPFResults from trunk.acopf.acopf_admittance_tap_derivation import (compute_finitediff_admittances, compute_finitediff_admittances_2dev, compute_analytic_admittances, compute_analytic_admittances_2dev) -def case_3bus(): +def case_3bus() -> NumericalCircuit: """ :return: @@ -67,7 +66,7 @@ def case_3bus(): return nc -def case_5bus(): +def case_5bus() -> NumericalCircuit: """ Grid from Lynn Powel's book """ @@ -110,19 +109,19 @@ def case_5bus(): grid.add_line(gce.Line(bus1, bus3, name='line 1-3', r=0.05, x=0.11, b=0.02, rate=1000)) grid.add_line(gce.Line(bus1, bus5, name='line 1-5', r=0.03, x=0.08, b=0.02, rate=1000)) - tr1 = gce.Transformer2W(bus1, bus2, name='Trafo1', tap_phase_control_mode=TapPhaseControl.fixed, + tr1 = gce.Transformer2W(bus1, bus2, name='Trafo1', tap_module=1.1, tap_phase=0.02, r=0.05, x=0.11, b=0.02) grid.add_transformer2w(tr1) - tr2 = gce.Transformer2W(bus2, bus3, name='Trafo2', tap_phase_control_mode=TapPhaseControl.fixed, + tr2 = gce.Transformer2W(bus2, bus3, name='Trafo2', tap_module=0.98, tap_phase=-0.02, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr2) - tr3 = gce.Transformer2W(bus2, bus5, name='Trafo3', tap_phase_control_mode=TapPhaseControl.fixed, + tr3 = gce.Transformer2W(bus2, bus5, name='Trafo3', tap_module=1.02, tap_phase=-0.04, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr3) tr4 = gce.Transformer2W(bus3, bus4, name='Trafo4', tap_phase_control_mode=TapPhaseControl.Pf, tap_module=1.05, tap_phase=0.04, r=0.06, x=0.13, b=0.03) grid.add_transformer2w(tr4) - tr5 = gce.Transformer2W(bus4, bus5, name='Trafo5', tap_phase_control_mode=TapPhaseControl.fixed, + tr5 = gce.Transformer2W(bus4, bus5, name='Trafo5', tap_module=0.97, tap_phase=-0.01, r=0.04, x=0.09, b=0.02) grid.add_transformer2w(tr5) @@ -166,8 +165,7 @@ def case14() -> NumericalCircuit: grid = gce.FileOpen(file_path).open() for l in grid.get_transformers2w(): - l.tap_phase_control_mode = TapPhaseControl.Pt - l.tap_module_control_mode = TapModuleControl.Qt + l.set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) nc = gce.compile_numerical_circuit_at(grid) @@ -184,25 +182,18 @@ def case_pegase89() -> NumericalCircuit: file_path = os.path.join('data', 'grids', 'case89pegase.m') grid = gce.FileOpen(file_path).open() - grid.get_transformers2w()[3].tap_phase_control_mode = TapPhaseControl.Pt - grid.get_transformers2w()[3].tap_module_control_mode = TapModuleControl.Qt - - grid.get_transformers2w()[7].tap_phase_control_mode = TapPhaseControl.Pt - grid.get_transformers2w()[7].tap_module_control_mode = TapModuleControl.Qt - - grid.get_transformers2w()[18].tap_module_control_mode = TapModuleControl.Vm - - grid.get_transformers2w()[21].tap_phase_control_mode = TapPhaseControl.Pt - grid.get_transformers2w()[21].tap_module_control_mode = TapModuleControl.Qt - - grid.get_transformers2w()[36].tap_phase_control_mode = TapPhaseControl.Pf + grid.get_transformers2w()[3].set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) + grid.get_transformers2w()[7].set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) + grid.get_transformers2w()[18].set_tap_controls(TapPhaseControl.fixed, TapModuleControl.Vm) + grid.get_transformers2w()[21].set_tap_controls(TapPhaseControl.Pt, TapModuleControl.Qt) + grid.get_transformers2w()[36].set_tap_controls(TapPhaseControl.Pf, TapModuleControl.fixed) nc = gce.compile_numerical_circuit_at(grid) return nc -def test_case_3bus(): +def test_case_3bus() -> None: nc = case_3bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -231,7 +222,7 @@ def test_case_3bus(): assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) -def test_case_5bus(): +def test_case_5bus() -> None: nc = case_5bus() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -260,7 +251,7 @@ def test_case_5bus(): assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) -def test_pegase89(): +def test_pegase89() -> None: nc = case_pegase89() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -289,7 +280,7 @@ def test_pegase89(): assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) -def test_case14(): +def test_case14() -> None: nc = case14() A, B, C, D, E, F = compute_analytic_admittances(nc) @@ -317,9 +308,3 @@ def test_case14(): assert np.allclose(Q.toarray(), Q_.toarray(), atol=1e-1) assert np.allclose(R.toarray(), R_.toarray(), atol=1e-1) # pass - - -# def test_ieee14(): - - -# def test_pegase89(): diff --git a/src/trunk/acopf/acopf_admittance_tap_derivation.py b/src/trunk/acopf/acopf_admittance_tap_derivation.py index 5baf00031..7ad27b8ac 100644 --- a/src/trunk/acopf/acopf_admittance_tap_derivation.py +++ b/src/trunk/acopf/acopf_admittance_tap_derivation.py @@ -1,9 +1,24 @@ -import os +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import GridCalEngine.api as gce -from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at -from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf, ac_optimal_power_flow -from GridCalEngine.enumerations import TapPhaseControl, TapModuleControl -from scipy.sparse import csc_matrix as csc +from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at, NumericalCircuit +from GridCalEngine.Simulations.OPF.NumericalMethods.ac_opf import run_nonlinear_opf +from GridCalEngine.Simulations.OPF.opf_options import OptimalPowerFlowOptions +from GridCalEngine.enumerations import TapPhaseControl from scipy import sparse as sp import numpy as np @@ -57,12 +72,21 @@ def example_3bus_acopf(): # print('\n\n', grid.name) # print('\tConv:\n', power_flow.results.get_bus_df()) # print('\tConv:\n', power_flow.results.get_branch_df()) + opf_options = OptimalPowerFlowOptions() pf_options = gce.PowerFlowOptions(solver_type=gce.SolverType.NR, verbose=3) - run_nonlinear_opf(grid=grid, pf_options=pf_options, plot_error=True) + run_nonlinear_opf(grid=grid, + opf_options=opf_options, + pf_options=pf_options, + plot_error=True) -def compute_analytic_admittances(nc): +def compute_analytic_admittances(nc: NumericalCircuit): + """ + + :param nc: + :return: + """ k_m = nc.k_m k_tau = nc.k_tau k_mtau = nc.k_mtau @@ -114,40 +138,51 @@ def compute_analytic_admittances(nc): return dYbusdm, dYfdm, dYtdm, dYbusdt, dYfdt, dYtdt -def compute_finitediff_admittances(nc, tol=1e-5): - k_m = nc.k_m - k_tau = nc.k_tau - - Ybus0 = nc.Ybus - Yf0 = nc.Yf - Yt0 = nc.Yt +def compute_finitediff_admittances(nc: NumericalCircuit, tol=1e-5): + """ - nc.branch_data.tap_module[k_m] += tol - nc.reset_calculations() + :param nc: NumericalCircuit + :param tol: tolerance + :return: + """ + indices = nc.get_simulation_indices() + k_m = indices.k_m + k_tau = indices.k_tau - dYfdm = (nc.Yf - Yf0) / tol - dYtdm = (nc.Yt - Yt0) / tol - dYbusdm = (nc.Ybus - Ybus0) / tol + # base values + adm0 = nc.get_admittance_matrices() + # Modify tap modules + nc.branch_data.tap_module[k_m] += tol + adm1 = nc.get_admittance_matrices() nc.branch_data.tap_module[k_m] -= tol + dYf_dm = (adm1.Yf - adm0.Yf) / tol + dYt_dm = (adm1.Yt - adm0.Yt) / tol + dY_dm = (adm1.Ybus - adm0.Ybus) / tol + + # modify tap angles nc.branch_data.tap_angle[k_tau] += tol - nc.reset_calculations() + adm2 = nc.get_admittance_matrices() + nc.branch_data.tap_angle[k_tau] -= tol - dYfdt = (nc.Yf - Yf0) / tol - dYtdt = (nc.Yt - Yt0) / tol - dYbusdt = (nc.Ybus - Ybus0) / tol + dYf_dt = (adm2.Yf - adm0.Yf) / tol + dYt_dt = (adm2.Yt - adm0.Yt) / tol + dY_dt = (adm2.Ybus - adm0.Ybus) / tol - nc.branch_data.tap_angle[k_tau] -= tol - nc.reset_calculations() + return dY_dm, dYf_dm, dYt_dm, dY_dt, dYf_dt, dYt_dt - return dYbusdm, dYfdm, dYtdm, dYbusdt, dYfdt, dYtdt +def compute_analytic_admittances_2dev(nc: NumericalCircuit): + """ -def compute_analytic_admittances_2dev(nc): - k_m = nc.k_m - k_tau = nc.k_tau - k_mtau = nc.k_mtau + :param nc: + :return: + """ + indices = nc.get_simulation_indices() + k_m = indices.k_m + k_tau = indices.k_tau + k_mtau = indices.k_mtau tapm = nc.branch_data.tap_module tapt = nc.branch_data.tap_angle @@ -161,103 +196,109 @@ def compute_analytic_admittances_2dev(nc): tau = tapt[k_m] ylin = ys[k_m] - dYffdmdm = np.zeros(len(tapm), dtype=complex) - dYftdmdm = np.zeros(len(tapm), dtype=complex) - dYtfdmdm = np.zeros(len(tapm), dtype=complex) - dYttdmdm = np.zeros(len(tapm), dtype=complex) + # primitived + dyff_dmdm = np.zeros(nc.nbr, dtype=complex) + dyft_dmdm = np.zeros(nc.nbr, dtype=complex) + dytf_dmdm = np.zeros(nc.nbr, dtype=complex) + dytt_dmdm = np.zeros(nc.nbr, dtype=complex) - dYffdmdm[k_m] = 6 * ylin / (mp * mp * mp * mp) - dYftdmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(-1.0j * tau)) - dYtfdmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(1.0j * tau)) + dyff_dmdm[k_m] = 6 * ylin / (mp * mp * mp * mp) + dyft_dmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(-1.0j * tau)) + dytf_dmdm[k_m] = -2 * ylin / (mp * mp * mp * np.exp(1.0j * tau)) - dYfdmdm = (sp.diags(dYffdmdm) * Cf + sp.diags(dYftdmdm) * Ct) - dYtdmdm = (sp.diags(dYtfdmdm) * Cf + sp.diags(dYttdmdm) * Ct) + dYf_dmdm = (sp.diags(dyff_dmdm) * Cf + sp.diags(dyft_dmdm) * Ct) + dYt_dmdm = (sp.diags(dytf_dmdm) * Cf + sp.diags(dytt_dmdm) * Ct) - dYbusdmdm = (Cf.T * dYfdmdm + Ct.T * dYtdmdm) + dY_dmdm = (Cf.T * dYf_dmdm + Ct.T * dYt_dmdm) # Second partial derivative with respect to tap angle mp = tapm[k_tau] tau = tapt[k_tau] ylin = ys[k_tau] - dYffdtdt = np.zeros(len(tapm), dtype=complex) - dYftdtdt = np.zeros(len(tapm), dtype=complex) - dYtfdtdt = np.zeros(len(tapm), dtype=complex) - dYttdtdt = np.zeros(len(tapm), dtype=complex) + # primitives + dyff_dtdt = np.zeros(nc.nbr, dtype=complex) + dyft_dtdt = np.zeros(nc.nbr, dtype=complex) + dytf_dtdt = np.zeros(nc.nbr, dtype=complex) + dytt_dtdt = np.zeros(nc.nbr, dtype=complex) - dYftdtdt[k_tau] = ylin / (mp * np.exp(-1.0j * tau)) - dYtfdtdt[k_tau] = ylin / (mp * np.exp(1.0j * tau)) + dyft_dtdt[k_tau] = ylin / (mp * np.exp(-1.0j * tau)) + dytf_dtdt[k_tau] = ylin / (mp * np.exp(1.0j * tau)) - dYfdtdt = sp.diags(dYffdtdt) * Cf + sp.diags(dYftdtdt) * Ct - dYtdtdt = sp.diags(dYtfdtdt) * Cf + sp.diags(dYttdtdt) * Ct + dYf_dtdt = sp.diags(dyff_dtdt) * Cf + sp.diags(dyft_dtdt) * Ct + dYt_dtdt = sp.diags(dytf_dtdt) * Cf + sp.diags(dytt_dtdt) * Ct - dYbusdtdt = Cf.T * dYfdtdt + Ct.T * dYtdtdt + dY_dtdt = Cf.T * dYf_dtdt + Ct.T * dYt_dtdt # Second partial derivative with respect to both tap module and angle mp = tapm[k_mtau] tau = tapt[k_mtau] ylin = ys[k_mtau] - dYffdmdt = np.zeros(len(tapm), dtype=complex) - dYftdmdt = np.zeros(len(tapm), dtype=complex) - dYtfdmdt = np.zeros(len(tapm), dtype=complex) - dYttdmdt = np.zeros(len(tapm), dtype=complex) - - dYftdmdt[k_mtau] = 1j * ylin / (mp * mp * np.exp(-1.0j * tau)) - dYtfdmdt[k_mtau] = -1j * ylin / (mp * mp * np.exp(1.0j * tau)) + # primitives + dyffdmdt = np.zeros(nc.nbr, dtype=complex) + dyft_dmdt = np.zeros(nc.nbr, dtype=complex) + dytf_dmdt = np.zeros(nc.nbr, dtype=complex) + dyttdmdt = np.zeros(nc.nbr, dtype=complex) - dYfdmdt = sp.diags(dYffdmdt) * Cf + sp.diags(dYftdmdt) * Ct - dYtdmdt = sp.diags(dYtfdmdt) * Cf + sp.diags(dYttdmdt) * Ct + dyft_dmdt[k_mtau] = 1j * ylin / (mp * mp * np.exp(-1.0j * tau)) + dytf_dmdt[k_mtau] = -1j * ylin / (mp * mp * np.exp(1.0j * tau)) - dYbusdmdt = Cf.T * dYfdmdt + Ct.T * dYtdmdt + dYf_dmdt = sp.diags(dyffdmdt) * Cf + sp.diags(dyft_dmdt) * Ct + dYt_dmdt = sp.diags(dytf_dmdt) * Cf + sp.diags(dyttdmdt) * Ct - dYfdtdm = dYfdmdt.copy() - dYtdtdm = dYtdmdt.copy() - dYbusdtdm = dYbusdmdt.copy() + dY_dmdt = Cf.T * dYf_dmdt + Ct.T * dYt_dmdt - return (dYbusdmdm, dYfdmdm, dYtdmdm, dYbusdmdt, dYfdmdt, dYtdmdt, - dYbusdtdm, dYfdtdm, dYtdtdm, dYbusdtdt, dYfdtdt, dYtdtdt) - - -def compute_finitediff_admittances_2dev(nc, tol=1e-5): - k_m = nc.k_m - k_tau = nc.k_tau + dYf_dtdm = dYf_dmdt.copy() + dYt_dtdm = dYt_dmdt.copy() + dY_dtdm = dY_dmdt.copy() - dYb0dm, dYf0dm, dYt0dm, dYb0dt, dYf0dt, dYt0dt = compute_finitediff_admittances(nc) + return (dY_dmdm, dYf_dmdm, dYt_dmdm, dY_dmdt, dYf_dmdt, dYt_dmdt, + dY_dtdm, dYf_dtdm, dYt_dtdm, dY_dtdt, dYf_dtdt, dYt_dtdt) - nc.branch_data.tap_module[k_m] += tol - nc.reset_calculations() - dYbdm, dYfdm, dYtdm, dYbdt, dYfdt, dYtdt = compute_finitediff_admittances(nc) +def compute_finitediff_admittances_2dev(nc: NumericalCircuit, tol=1e-5): + """ - dYfdmdm = (dYfdm - dYf0dm) / tol - dYtdmdm = (dYtdm - dYt0dm) / tol - dYbusdmdm = (dYbdm - dYb0dm) / tol + :param nc: + :param tol: + :return: + """ + indices = nc.get_simulation_indices() + k_m = indices.k_m + k_tau = indices.k_tau - dYfdtdm = (dYfdt - dYf0dt) / tol - dYtdtdm = (dYtdt - dYt0dt) / tol - dYbusdtdm = (dYbdt - dYb0dt) / tol + # Refference + dY0_dm, dYf0_dm, dYt0_dm, dY0_dt, dYf0_dt, dYt0_dt = compute_finitediff_admittances(nc) + # Modify the tap module + nc.branch_data.tap_module[k_m] += tol + dY_dm, dYf_dm, dYt_dm, dY_dt, dYf_dt, dYt_dt = compute_finitediff_admittances(nc) nc.branch_data.tap_module[k_m] -= tol - nc.branch_data.tap_angle[k_tau] += tol - nc.reset_calculations() + dYf_dmdm = (dYf_dm - dYf0_dm) / tol + dYt_dmdm = (dYt_dm - dYt0_dm) / tol + dY_dmdm = (dY_dm - dY0_dm) / tol - dYbdm, dYfdm, dYtdm, dYbdt, dYfdt, dYtdt = compute_finitediff_admittances(nc) + dYf_dtdm = (dYf_dt - dYf0_dt) / tol + dYt_dtdm = (dYt_dt - dYt0_dt) / tol + dY_dtdm = (dY_dt - dY0_dt) / tol - dYfdmdt = (dYfdm - dYf0dm) / tol - dYtdmdt = (dYtdm - dYt0dm) / tol - dYbusdmdt = (dYbdm - dYb0dm) / tol + # Modify the tap angle + nc.branch_data.tap_angle[k_tau] += tol + dY_dm, dYf_dm, dYt_dm, dY_dt, dYf_dt, dYt_dt = compute_finitediff_admittances(nc) + nc.branch_data.tap_angle[k_tau] -= tol - dYfdtdt = (dYfdt - dYf0dt) / tol - dYtdtdt = (dYtdt - dYt0dt) / tol - dYbusdtdt = (dYbdt - dYb0dt) / tol + dYf_dmdt = (dYf_dm - dYf0_dm) / tol + dYt_dmdt = (dYt_dm - dYt0_dm) / tol + dY_dmdt = (dY_dm - dY0_dm) / tol - nc.branch_data.tap_angle[k_tau] -= tol - nc.reset_calculations() + dYf_dtdt = (dYf_dt - dYf0_dt) / tol + dYt_dtdt = (dYt_dt - dYt0_dt) / tol + dY_dtdt = (dY_dt - dY0_dt) / tol - return (dYbusdmdm, dYfdmdm, dYtdmdm, dYbusdmdt, dYfdmdt, dYtdmdt, - dYbusdtdm, dYfdtdm, dYtdtdm, dYbusdtdt, dYfdtdt, dYtdtdt) + return (dY_dmdm, dYf_dmdm, dYt_dmdm, dY_dmdt, dYf_dmdt, dYt_dmdt, + dY_dtdm, dYf_dtdm, dYt_dtdm, dY_dtdt, dYf_dtdt, dYt_dtdt) if __name__ == '__main__': From 9cae96ff0960c0f647fe9747996015d4f1762f76 Mon Sep 17 00:00:00 2001 From: santi Date: Fri, 9 Aug 2024 11:47:44 +0100 Subject: [PATCH 136/218] Improvements to the UI: Smaller font --- .idea/workspace.xml | 198 +- src/GridCal/Gui/Main/MainWindow.py | 2106 ++++++++------ src/GridCal/Gui/Main/MainWindow.ui | 4130 +++++++++++++++++++--------- src/GridCal/Gui/Main/icons_rc.py | 2 +- 4 files changed, 4187 insertions(+), 2249 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index dd8621bf7..a9c8fd746 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,12 +28,11 @@ - + - - + + + + + + + - + @@ -679,8 +670,8 @@ - + @@ -688,8 +679,8 @@ - + @@ -1434,17 +1425,9 @@ - - - - - - - - - - - + + + 1656059954202 @@ -1789,7 +1772,7 @@ - @@ -1817,14 +1800,6 @@ - + + + + + + + + + + + + + + + + + @@ -1851,24 +1843,7 @@ - - - - - - - - - - - - - - - - - - @@ -2410,7 +2385,7 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 443 + 454 @@ -2433,20 +2408,28 @@ 255 + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py + 144 + + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py + 153 + - - + - + - @@ -2462,16 +2445,14 @@ - - - + @@ -2480,18 +2461,17 @@ - - + + - + - @@ -2500,23 +2480,20 @@ - - - - + @@ -2552,28 +2529,22 @@ - - - + - - - - - + @@ -2590,7 +2561,6 @@ - @@ -2609,12 +2579,10 @@ - - @@ -2639,7 +2607,6 @@ - @@ -2668,7 +2635,6 @@ - @@ -2714,7 +2680,6 @@ - @@ -2722,7 +2687,6 @@ - @@ -2737,7 +2701,6 @@ - @@ -2753,7 +2716,6 @@ - @@ -2793,39 +2755,31 @@ - - - - - - - - @@ -2838,13 +2792,13 @@ - + - + diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index 2cc14f841..6beff86a8 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -1399,10 +1399,17 @@ def setupUi(self, mainWindow): self.gridLayout_19 = QGridLayout(self.frame_28) self.gridLayout_19.setObjectName(u"gridLayout_19") self.gridLayout_19.setContentsMargins(-1, -1, 0, -1) - self.simulationDataStructuresListView = QListView(self.frame_28) - self.simulationDataStructuresListView.setObjectName(u"simulationDataStructuresListView") + self.simulation_data_island_comboBox = QComboBox(self.frame_28) + self.simulation_data_island_comboBox.setObjectName(u"simulation_data_island_comboBox") + + self.gridLayout_19.addWidget(self.simulation_data_island_comboBox, 0, 2, 1, 2) + + self.exportSimulationDataButton = QPushButton(self.frame_28) + self.exportSimulationDataButton.setObjectName(u"exportSimulationDataButton") + self.exportSimulationDataButton.setMaximumSize(QSize(32, 16777215)) + self.exportSimulationDataButton.setIcon(icon19) - self.gridLayout_19.addWidget(self.simulationDataStructuresListView, 1, 0, 1, 4) + self.gridLayout_19.addWidget(self.exportSimulationDataButton, 0, 1, 1, 1) self.compute_simulation_data_pushButton = QPushButton(self.frame_28) self.compute_simulation_data_pushButton.setObjectName(u"compute_simulation_data_pushButton") @@ -1413,17 +1420,10 @@ def setupUi(self, mainWindow): self.gridLayout_19.addWidget(self.compute_simulation_data_pushButton, 0, 0, 1, 1) - self.exportSimulationDataButton = QPushButton(self.frame_28) - self.exportSimulationDataButton.setObjectName(u"exportSimulationDataButton") - self.exportSimulationDataButton.setMaximumSize(QSize(32, 16777215)) - self.exportSimulationDataButton.setIcon(icon19) - - self.gridLayout_19.addWidget(self.exportSimulationDataButton, 0, 1, 1, 1) + self.simulationDataStructuresTreeView = QTreeView(self.frame_28) + self.simulationDataStructuresTreeView.setObjectName(u"simulationDataStructuresTreeView") - self.simulation_data_island_comboBox = QComboBox(self.frame_28) - self.simulation_data_island_comboBox.setObjectName(u"simulation_data_island_comboBox") - - self.gridLayout_19.addWidget(self.simulation_data_island_comboBox, 0, 2, 1, 2) + self.gridLayout_19.addWidget(self.simulationDataStructuresTreeView, 1, 0, 1, 4) self.simulationDataSplitter.addWidget(self.frame_28) self.frame_29 = QFrame(self.simulationDataSplitter) @@ -2937,11 +2937,8 @@ def setupUi(self, mainWindow): palette18.setBrush(QPalette.Active, QPalette.WindowText, brush4) brush5 = QBrush(QColor(0, 0, 0, 255)) brush5.setStyle(Qt.SolidPattern) - palette18.setBrush(QPalette.Active, QPalette.Text, brush5) palette18.setBrush(QPalette.Inactive, QPalette.WindowText, brush5) - palette18.setBrush(QPalette.Inactive, QPalette.Text, brush5) palette18.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - palette18.setBrush(QPalette.Disabled, QPalette.Text, brush1) self.label_105.setPalette(palette18) self.label_105.setFont(font6) @@ -2982,11 +2979,8 @@ def setupUi(self, mainWindow): self.label_64.setObjectName(u"label_64") palette19 = QPalette() palette19.setBrush(QPalette.Active, QPalette.WindowText, brush4) - palette19.setBrush(QPalette.Active, QPalette.Text, brush5) palette19.setBrush(QPalette.Inactive, QPalette.WindowText, brush5) - palette19.setBrush(QPalette.Inactive, QPalette.Text, brush5) palette19.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - palette19.setBrush(QPalette.Disabled, QPalette.Text, brush1) self.label_64.setPalette(palette19) self.label_64.setFont(font6) @@ -5123,14 +5117,14 @@ def retranslateUi(self, mainWindow): self.set_profile_value_pushButton.setText("") self.tabWidget_5.setTabText(self.tabWidget_5.indexOf(self.tab_16), QCoreApplication.translate("mainWindow", u"Time series", None)) self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.DataTab), QCoreApplication.translate("mainWindow", u"Database", None)) -#if QT_CONFIG(tooltip) - self.compute_simulation_data_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"Update the islands dispayed", None)) -#endif // QT_CONFIG(tooltip) - self.compute_simulation_data_pushButton.setText("") #if QT_CONFIG(tooltip) self.exportSimulationDataButton.setToolTip(QCoreApplication.translate("mainWindow", u"Export simulation data", None)) #endif // QT_CONFIG(tooltip) self.exportSimulationDataButton.setText("") +#if QT_CONFIG(tooltip) + self.compute_simulation_data_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"Update the islands dispayed", None)) +#endif // QT_CONFIG(tooltip) + self.compute_simulation_data_pushButton.setText("") #if QT_CONFIG(tooltip) self.copyArraysToNumpyButton.setToolTip(QCoreApplication.translate("mainWindow", u"Copy to data frame to clipboard in array format", None)) #endif // QT_CONFIG(tooltip) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index e0717cf5d..396c7ea9f 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -2001,11 +2001,11 @@ QProgressBar::chunk{ 0 - - + + - - + + 32 @@ -2013,19 +2013,19 @@ QProgressBar::chunk{ - Update the islands dispayed + Export simulation data - :/Icons/icons/calculator.svg:/Icons/icons/calculator.svg + :/Icons/icons/save.svg:/Icons/icons/save.svg - - + + 32 @@ -2033,19 +2033,19 @@ QProgressBar::chunk{ - Export simulation data + Update the islands dispayed - :/Icons/icons/save.svg:/Icons/icons/save.svg + :/Icons/icons/calculator.svg:/Icons/icons/calculator.svg - - + + @@ -5696,15 +5696,6 @@ QProgressBar::chunk{ - - - - 0 - 0 - 0 - - - @@ -5716,15 +5707,6 @@ QProgressBar::chunk{ - - - - 0 - 0 - 0 - - - @@ -5736,15 +5718,6 @@ QProgressBar::chunk{ - - - - 190 - 190 - 190 - - - @@ -5850,15 +5823,6 @@ QProgressBar::chunk{ - - - - 0 - 0 - 0 - - - @@ -5870,15 +5834,6 @@ QProgressBar::chunk{ - - - - 0 - 0 - 0 - - - @@ -5890,15 +5845,6 @@ QProgressBar::chunk{ - - - - 190 - 190 - 190 - - - diff --git a/src/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py b/src/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py index 7f655425d..ce64b7986 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/compiled_arrays.py @@ -18,9 +18,11 @@ from PySide6 import QtCore from matplotlib import pyplot as plt -from GridCalEngine.enumerations import EngineType from GridCal.Gui.pandas_model import PandasModel from GridCal.Gui.Main.SubClasses.Server.server import ServerMain +import GridCal.Gui.GuiFunctions as gf + +from GridCalEngine.enumerations import EngineType from GridCalEngine.DataStructures.numerical_circuit import compile_numerical_circuit_at @@ -50,24 +52,37 @@ def __init__(self, parent=None): self.ui.copyArraysButton.clicked.connect(self.copy_simulation_objects_data) self.ui.copyArraysToNumpyButton.clicked.connect(self.copy_simulation_objects_data_to_numpy) - # list clicks - self.ui.simulationDataStructuresListView.clicked.connect(self.view_simulation_objects_data) + # tree clicks + self.ui.simulationDataStructuresTreeView.clicked.connect(self.view_simulation_objects_data) - def view_simulation_objects_data(self): + def view_simulation_objects_data(self, index): """ Simulation data structure clicked """ - i = self.ui.simulation_data_island_comboBox.currentIndex() + tree_mdl = self.ui.simulationDataStructuresTreeView.model() + item = tree_mdl.itemFromIndex(index) + path = gf.get_tree_item_path(item) + + if len(path) == 2: + group_name = path[0] + elm_type = path[1] - if i > -1 and self.circuit.valid_for_simulation(): - elm_type = self.ui.simulationDataStructuresListView.selectedIndexes()[0].data(role=QtCore.Qt.ItemDataRole.DisplayRole) + island_idx = self.ui.simulation_data_island_comboBox.currentIndex() - df = self.calculation_inputs_to_display[i].get_structure(elm_type) + if island_idx > -1 and self.circuit.valid_for_simulation(): + # elm_type = self.ui.simulationDataStructuresTreeView.selectedIndexes()[0].data(role=QtCore.Qt.ItemDataRole.DisplayRole) - mdl = PandasModel(df) + df = self.calculation_inputs_to_display[island_idx].get_structure(elm_type) - self.ui.simulationDataStructureTableView.setModel(mdl) + mdl = PandasModel(df) + + self.ui.simulationDataStructureTableView.setModel(mdl) + + else: + self.ui.simulationDataStructureTableView.setModel(None) + else: + self.ui.simulationDataStructureTableView.setModel(None) def copy_simulation_objects_data(self): """ diff --git a/src/GridCal/Gui/Main/SubClasses/Model/objects.py b/src/GridCal/Gui/Main/SubClasses/Model/objects.py index b705a00f7..c51edc0e2 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/objects.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/objects.py @@ -62,7 +62,7 @@ def __init__(self, parent=None): self.ui.dataStructuresTreeView.setModel(gf.get_tree_model(self.circuit.get_objects_with_profiles_str_dict())) self.expand_object_tree_nodes() - self.ui.simulationDataStructuresListView.setModel(gf.get_list_model(NumericalCircuit.available_structures)) + self.ui.simulationDataStructuresTreeView.setModel(gf.get_tree_model(NumericalCircuit.available_structures)) # Buttons self.ui.filter_pushButton.clicked.connect(self.objects_smart_search) diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 342112b55..a62f0d465 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -20,11 +20,10 @@ import scipy.sparse as sp from typing import List, Tuple, Dict, Union, TYPE_CHECKING - from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.basic_structures import Vec, IntVec, CxVec -from GridCalEngine.enumerations import BranchImpedanceMode +from GridCalEngine.enumerations import BranchImpedanceMode, BusMode import GridCalEngine.Topology.topology as tp import GridCalEngine.Topology.simulation_indices as si @@ -139,50 +138,66 @@ class NumericalCircuit: """ Class storing the calculation information of the devices """ - available_structures = [ - 'Vbus', - 'Sbus', - 'Ibus', - 'Ybus', - 'G', - 'B', - 'Yf', - 'Yt', - 'Bbus', - 'Bf', - 'Cf', - 'Ct', - 'Yshunt', - 'Yseries', - "B'", - "B''", - 'Types', - 'Jacobian', - 'Qmin', - 'Qmax', - 'pq', - 'pqv', - 'p', - 'pv', - 'vd', - 'pqpv', - 'tap_f', - 'tap_t', - 'k_pf_tau', - 'k_qf_beq', - 'k_v_m', - 'idx_dPf', - 'idx_dQf', - 'idx_dPt', - 'idx_dQt', - 'idx_dm', - 'idx_dtau', - 'idx_dbeq', - 'Pf_set', - 'Qf_set', - 'Pt_set', - 'Qt_set', - ] + available_structures = { + "Bus arrays": [ + 'V', 'Va', 'Vm', + 'S', 'P', 'Q', + 'I', + 'Y', + 'Qmin', + 'Qmax', + ], + "Bus indices": [ + 'Types', + 'bus_ctrl', + 'pq', + 'pqv', + 'p', + 'pv', + 'vd' + ], + "Branch arrays": [ + 'tap_f', + 'tap_t', + 'Pf_set', + 'Qf_set', + 'Pt_set', + 'Qt_set', + ], + "Branch indices": [ + 'branch_ctrl', + 'k_pf_tau', + 'k_pt_tau', + 'k_qf_m', + 'k_qt_m', + 'k_qf_beq', + 'k_v_m', + 'k_v_beq', + 'idx_dPf', + 'idx_dQf', + 'idx_dPt', + 'idx_dQt', + 'idx_dm', + 'idx_dtau', + 'idx_dbeq', + ], + "System matrices": [ + 'Ybus', + 'G', + 'B', + 'Yf', + 'Yt', + 'Bbus', + 'Bf', + 'Cf', + 'Ct', + "B'", + "B''", + 'Yshunt', + 'Yseries', + 'Jacobian', + ], + } def __init__(self, nbus: int, @@ -844,6 +859,8 @@ def get_simulation_indices(self) -> si.SimulationIndices: tap_phase_control_mode=self.branch_data.tap_phase_control_mode, tap_controlled_buses=self.branch_data.tap_module_buses, is_converter=self.branch_data.is_converter, + F=self.branch_data.F, + T=self.branch_data.T, is_dc_bus=self.bus_data.is_dc) def get_connectivity_matrices(self) -> tp.ConnectivityMatrices: @@ -1360,27 +1377,60 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: idx_dPt = self.simulation_indices_.k_pt_tau idx_dQt = self.simulation_indices_.k_qt_m - if structure_type == 'Vbus': + if structure_type == 'V': df = pd.DataFrame( data=self.Vbus, columns=['Voltage (p.u.)'], index=self.bus_data.names, ) - elif structure_type == 'Sbus': + elif structure_type == 'Va': + df = pd.DataFrame( + data=np.angle(self.Vbus), + columns=['Voltage angles (rad)'], + index=self.bus_data.names, + ) + elif structure_type == 'Vm': + df = pd.DataFrame( + data=np.abs(self.Vbus), + columns=['Voltage modules (p.u.)'], + index=self.bus_data.names, + ) + elif structure_type == 'S': df = pd.DataFrame( data=self.Sbus, columns=['Power (p.u.)'], index=self.bus_data.names, ) - elif structure_type == 'Ibus': + elif structure_type == 'P': + df = pd.DataFrame( + data=self.Sbus.real, + columns=['Power (p.u.)'], + index=self.bus_data.names, + ) + + elif structure_type == 'Q': + df = pd.DataFrame( + data=self.Sbus.imag, + columns=['Power (p.u.)'], + index=self.bus_data.names, + ) + + elif structure_type == 'I': df = pd.DataFrame( data=self.Ibus, columns=['Current (p.u.)'], index=self.bus_data.names, ) + elif structure_type == 'Y': + df = pd.DataFrame( + data=self.YLoadBus, + columns=['Admittance (p.u.)'], + index=self.bus_data.names, + ) + elif structure_type == 'Ybus': df = pd.DataFrame( data=self.Ybus.toarray(), @@ -1514,7 +1564,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: nc=self, options=PowerFlowOptions()) - df = formulation.get_jacobian_df(autodiff=True) + df = formulation.get_jacobian_df(autodiff=False) elif structure_type == 'Qmin': df = pd.DataFrame( @@ -1530,44 +1580,70 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: index=self.bus_data.names, ) + elif structure_type == 'bus_ctrl': + data1 = [BusMode.as_str(val) for val in self.bus_data.bus_types] + + df = pd.DataFrame( + data=data1, + columns=['bus_ctrl'], + index=self.bus_data.names, + ) + + elif structure_type == 'branch_ctrl': + + data1 = [val.value if val != 0 else "-" for val in self.branch_data.tap_module_control_mode] + data2 = [val.value if val != 0 else "-" for val in self.branch_data.tap_phase_control_mode] + + df = pd.DataFrame( + data=np.c_[ + self.branch_data.F, + self.branch_data.T, + self.branch_data.tap_module_buses, + data1, + data2 + ], + columns=['bus F', 'bus T', 'V ctrl bus', 'm control', 'tau control'], + index=[f"{k}) {name}" for k, name in enumerate(self.branch_data.names)], + ) + elif structure_type == 'pq': df = pd.DataFrame( - data=self.pq, + data=self.pq.astype(int).astype(str), columns=['pq'], index=self.bus_data.names[self.pq], ) elif structure_type == 'pv': df = pd.DataFrame( - data=self.pv, + data=self.pv.astype(int).astype(str), columns=['pv'], index=self.bus_data.names[self.pv], ) elif structure_type == 'pqv': df = pd.DataFrame( - data=self.pqv, + data=self.pqv.astype(int).astype(str), columns=['pqv'], index=self.bus_data.names[self.pqv], ) elif structure_type == 'p': df = pd.DataFrame( - data=self.p, + data=self.p.astype(int).astype(str), columns=['p'], index=self.bus_data.names[self.p], ) elif structure_type == 'vd': df = pd.DataFrame( - data=self.vd, + data=self.vd.astype(int).astype(str), columns=['vd'], index=self.bus_data.names[self.vd], ) elif structure_type == 'pqpv': df = pd.DataFrame( - data=self.pqpv, + data=self.pqpv.astype(int).astype(str), columns=['pqpv'], index=self.bus_data.names[self.pqpv], ) @@ -1588,70 +1664,96 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'k_pf_tau': df = pd.DataFrame( - data=self.k_pf_tau, + data=self.simulation_indices_.k_pf_tau.astype(int).astype(str), columns=['k_pf_tau'], - index=self.branch_data.names[self.k_pf_tau], + index=self.branch_data.names[self.simulation_indices_.k_pf_tau], + ) + + elif structure_type == 'k_pt_tau': + df = pd.DataFrame( + data=self.simulation_indices_.k_pt_tau.astype(int).astype(str), + columns=['k_pt_tau'], + index=self.branch_data.names[self.simulation_indices_.k_pt_tau], + ) + + elif structure_type == 'k_qf_m': + df = pd.DataFrame( + data=self.simulation_indices_.k_qf_m.astype(int).astype(str), + columns=['k_qf_m'], + index=self.branch_data.names[self.simulation_indices_.k_qf_m], + ) + + elif structure_type == 'k_qt_m': + df = pd.DataFrame( + data=self.simulation_indices_.k_qt_m.astype(int).astype(str), + columns=['k_qt_m'], + index=self.branch_data.names[self.simulation_indices_.k_qt_m], ) elif structure_type == 'k_qf_beq': df = pd.DataFrame( - data=self.k_qf_beq, + data=self.simulation_indices_.k_qf_beq.astype(int).astype(str), columns=['k_qf_beq'], - index=self.branch_data.names[self.k_qf_beq], + index=self.branch_data.names[self.simulation_indices_.k_qf_beq], ) elif structure_type == 'k_v_m': df = pd.DataFrame( - data=self.k_v_m, + data=self.simulation_indices_.k_v_m.astype(int).astype(str), columns=['k_v_m'], - index=self.branch_data.names[self.k_v_m], + index=self.branch_data.names[self.simulation_indices_.k_v_m], + ) + elif structure_type == 'k_v_beq': + df = pd.DataFrame( + data=self.simulation_indices_.k_v_beq.astype(int).astype(str), + columns=['k_v_beq'], + index=self.branch_data.names[self.simulation_indices_.k_v_beq], ) - elif structure_type == 'idx_dPf': df = pd.DataFrame( - data=idx_dPf, + data=idx_dPf.astype(int).astype(str), columns=['idx_dPf'], index=self.branch_data.names[idx_dPf], ) elif structure_type == 'idx_dQf': df = pd.DataFrame( - data=idx_dQf, + data=idx_dQf.astype(int).astype(str), columns=['idx_dQf'], index=self.branch_data.names[idx_dQf], ) elif structure_type == 'idx_dPt': df = pd.DataFrame( - data=idx_dPt, + data=idx_dPt.astype(int).astype(str), columns=['idx_dPt'], index=self.branch_data.names[idx_dPt], ) elif structure_type == 'idx_dQt': df = pd.DataFrame( - data=idx_dQt, + data=idx_dQt.astype(int).astype(str), columns=['idx_dQt'], index=self.branch_data.names[idx_dQt], ) elif structure_type == 'idx_dm': df = pd.DataFrame( - data=idx_dm, + data=idx_dm.astype(int).astype(str), columns=['idx_dm'], index=self.branch_data.names[idx_dm], ) elif structure_type == 'idx_dtau': df = pd.DataFrame( - data=idx_dtau, + data=idx_dtau.astype(int).astype(str), columns=['idx_dtau'], index=self.branch_data.names[idx_dtau], ) elif structure_type == 'idx_dbeq': df = pd.DataFrame( - data=idx_dbeq, + data=idx_dbeq.astype(int).astype(str), columns=['idx_dbeq'], index=self.branch_data.names[idx_dbeq], ) diff --git a/src/GridCalEngine/IO/matpower/matpower_parser.py b/src/GridCalEngine/IO/matpower/matpower_parser.py index eb25cd5cf..53c3777e4 100644 --- a/src/GridCalEngine/IO/matpower/matpower_parser.py +++ b/src/GridCalEngine/IO/matpower/matpower_parser.py @@ -62,10 +62,11 @@ def txt2mat(txt: str, line_splitter=';', to_float=True): # preprocess lines (remove the comments) lines2 = list() for i, line in enumerate(lines): - if line.lstrip()[0] == '%': - print('skipping', line) - else: + if line.lstrip()[0] != '%': lines2.append(line) + else: + # print('skipping', line) + pass # convert the lines to data nrows = len(lines2) @@ -395,8 +396,6 @@ def parse_branches_data(circuit: MultiCircuit, """ - - # set the from bus as a DC bus # this is by design of the matpower FUBM model, # if it is a converter, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 945758575..2b5f9e5e3 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -143,12 +143,12 @@ def adv_jacobian(nbus: int, # compose the Jacobian J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, - dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, - dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, - dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_, - dPt_dVa_, dPt_dVm_, dPt_dm_, dPt_dtau_, dPt_dbeq_, - dQt_dVa_, dQt_dVm_, dQt_dm_, dQt_dtau_, dQt_dbeq_], + [dP_dVa__, dP_dVm__, dP_dtau__, dP_dbeq__, dP_dm__, + dQ_dVa__, dQ_dVm__, dQ_dtau__, dQ_dbeq__, dQ_dm__, + dPf_dVa_, dPf_dVm_, dPf_dtau_, dPf_dbeq_, dPf_dm_, + dQf_dVa_, dQf_dVm_, dQf_dtau_, dQf_dbeq_, dQf_dm_, + dPt_dVa_, dPt_dVm_, dPt_dtau_, dPt_dbeq_, dPt_dm_, + dQt_dVa_, dQt_dVm_, dQt_dtau_, dQt_dbeq_, dQt_dm_], n_rows=6, n_cols=5) return J @@ -195,10 +195,11 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.idx_dm = np.r_[self._indices.k_v_m, self._indices.k_qf_m, self._indices.k_qt_m] self.idx_dtau = np.r_[self._indices.k_pf_tau, self._indices.k_pt_tau] - self.idx_dbeq = self._indices.k_qf_beq + self.idx_dbeq = np.r_[self._indices.k_qf_beq, self._indices.k_v_beq] self.idx_dPf = self._indices.k_pf_tau self.idx_dQf = np.r_[self._indices.k_qf_m, self._indices.k_qf_beq] + self.idx_dPt = self._indices.k_pt_tau self.idx_dQt = self._indices.k_qt_m @@ -208,8 +209,8 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Ys = 1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X) - if not len(self.pqv) >= len(self._indices.k_v_m): - raise ValueError("k_v_m indices must be the same size as pqv indices!") + # if not len(self.pqv) >= len(self._indices.k_v_m): + # raise ValueError("k_v_m indices must be the same size as pqv indices!") @property def adm(self) -> AdmittanceMatrices: @@ -226,9 +227,9 @@ def x2var(self, x: Vec): """ a = len(self.idx_dVa) b = a + len(self.idx_dVm) - c = b + len(self.idx_dm) - d = c + len(self.idx_dtau) - e = d + len(self.idx_dbeq) + c = b + len(self.idx_dtau) + d = c + len(self.idx_dbeq) + e = d + len(self.idx_dm) # update the vectors Va = self.Va.copy() @@ -239,9 +240,9 @@ def x2var(self, x: Vec): Va[self.idx_dVa] += x[0:a] Vm[self.idx_dVm] += x[a:b] - m[self.idx_dm] += x[b:c] - tau[self.idx_dtau] += x[c:d] - beq[self.idx_dbeq] += x[d:e] + tau[self.idx_dtau] += x[b:c] + beq[self.idx_dbeq] += x[c:d] + m[self.idx_dm] += x[d:e] # compute the complex voltage self.V = polar_to_rect(self.Vm, self.Va) @@ -254,9 +255,9 @@ def var2x(self) -> Vec: return np.r_[ self.Va[self.idx_dVa], self.Vm[self.idx_dVm], - self.m, self.tau, - self.beq + self.beq, + self.m, ] def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: @@ -349,9 +350,9 @@ def fx_diff(self, x: Vec): """ a = len(self.idx_dVa) b = a + len(self.idx_dVm) - c = b + len(self.idx_dm) - d = c + len(self.idx_dtau) - e = d + len(self.idx_dbeq) + c = b + len(self.idx_dtau) + d = c + len(self.idx_dbeq) + e = d + len(self.idx_dm) # update the vectors Va = self.Va.copy() @@ -362,9 +363,9 @@ def fx_diff(self, x: Vec): Va[self.idx_dVa] += x[0:a] Vm[self.idx_dVm] += x[a:b] - m[self.idx_dm] += x[b:c] - tau[self.idx_dtau] += x[c:d] - beq[self.idx_dbeq] += x[d:e] + tau[self.idx_dtau] += x[b:c] + beq[self.idx_dbeq] += x[c:d] + m[self.idx_dm] += x[d:e] # compute the complex voltage V = polar_to_rect(Vm, Va) @@ -437,8 +438,18 @@ def Jacobian(self, autodiff: bool = False) -> CSC: virtual_tap_from=self.nc.branch_data.virtual_tap_f, virtual_tap_to=self.nc.branch_data.virtual_tap_t) - n_rows = len(self.idx_dP) + len(self.idx_dQ) + len(self.idx_dPf) + len(self.idx_dQf) + len(self.idx_dPt) + len(self.idx_dQt) - n_cols = len(self.idx_dVa) + len(self.idx_dVm) + len(self.idx_dm) + len(self.idx_dtau) + len(self.idx_dbeq) + n_rows = (len(self.idx_dP) + + len(self.idx_dQ) + + len(self.idx_dPf) + + len(self.idx_dQf) + + len(self.idx_dPt) + + len(self.idx_dQt)) + + n_cols = (len(self.idx_dVa) + + len(self.idx_dVm) + + len(self.idx_dm) + + len(self.idx_dtau) + + len(self.idx_dbeq)) if n_cols != n_rows: raise ValueError("Incorrect J indices!") @@ -495,9 +506,9 @@ def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: cols = [f'dVa {i}' for i in self.idx_dVa] cols += [f'dVm {i}' for i in self.idx_dVm] - cols += [f'dm {i}' for i in self.idx_dm] cols += [f'dtau {i}' for i in self.idx_dtau] cols += [f'dBeq {i}' for i in self.idx_dbeq] + cols += [f'dm {i}' for i in self.idx_dm] rows = [f'dP {i}' for i in self.idx_dP] rows += [f'dQ {i}' for i in self.idx_dQ] diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index 066256aab..2272bb2c0 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -84,6 +84,8 @@ def __init__(self, tap_phase_control_mode: List[TapPhaseControl], tap_controlled_buses: IntVec, is_converter: BoolVec, + F: IntVec, + T: IntVec, is_dc_bus: BoolVec): """ @@ -103,6 +105,8 @@ def __init__(self, self.tap_controlled_buses = tap_controlled_buses self.tap_phase_control_mode = tap_phase_control_mode self.is_converter = is_converter + self.F = F + self.T = T # AC and DC indices self.ac: IntVec = np.where(~is_dc_bus)[0] @@ -116,8 +120,9 @@ def __init__(self, self.k_pt_tau: IntVec = np.zeros(0, dtype=int) self.k_qf_m: IntVec = np.zeros(0, dtype=int) self.k_qt_m: IntVec = np.zeros(0, dtype=int) - self.k_qf_beq: IntVec = np.zeros(0, dtype=int) + self.k_qf_beq: IntVec = np.zeros(0, dtype=int) # make Qf = 0 for DC grids self.k_v_m: IntVec = np.zeros(0, dtype=int) + self.k_v_beq: IntVec = np.zeros(0, dtype=int) self.analyze_branch_controls() # determine the bus indices @@ -162,61 +167,84 @@ def analyze_branch_controls(self) -> None: k_pt_tau = list() k_qf_m = list() k_qt_m = list() - k_qf_beq = list() + k_qfzero_beq = list() k_v_m = list() + k_v_beq = list() + + nbr = len(self.tap_phase_control_mode) + for k in range(nbr): + + ctrl_m = self.tap_module_control_mode[k] + ctrl_tau = self.tap_phase_control_mode[k] + is_conv = self.is_converter[k] + + conv_type = 1 if is_conv else 0 + + # analyze tap-module controls + if ctrl_m == TapModuleControl.Vm: - # analyze tap-module controls - for k, ctrl in enumerate(self.tap_module_control_mode): - if ctrl == TapModuleControl.Vm: # Every bus controlled by m has to become a PQV bus bus_idx = self.tap_controlled_buses[k] self.bus_types[bus_idx] = BusMode.PQV_tpe.value - k_v_m.append(k) - elif ctrl == TapModuleControl.Qf: - k_qf_m.append(k) + if is_conv and bus_idx == self.F[k]: + # if this is a converter, + # the voltage can be managed with Beq + # if the control bus is the "From" bus + k_v_beq.append(k) + conv_type = 2 + else: + # In any other case, the voltage is managed by the tap module + k_v_m.append(k) - elif ctrl == TapModuleControl.Qt: + elif ctrl_m == TapModuleControl.Qf: + + if not is_conv: + k_qf_m.append(k) + + elif ctrl_m == TapModuleControl.Qt: k_qt_m.append(k) - elif ctrl == TapModuleControl.fixed: + elif ctrl_m == TapModuleControl.fixed: pass - elif ctrl == 0: + elif ctrl_m == 0: pass else: - raise Exception(f"Unknown tap phase module mode {ctrl}") + raise Exception(f"Unknown tap phase module mode {ctrl_m}") - # analyze tap-phase controls - for k, ctrl in enumerate(self.tap_phase_control_mode): - if ctrl == TapPhaseControl.Pf: + # analyze tap-phase controls + if ctrl_tau == TapPhaseControl.Pf: k_pf_tau.append(k) - elif ctrl == TapPhaseControl.Pt: + elif ctrl_tau == TapPhaseControl.Pt: k_pt_tau.append(k) - elif ctrl == TapPhaseControl.fixed: + elif ctrl_tau == TapPhaseControl.fixed: pass - elif ctrl == 0: + # elif ctrl == TapPhaseControl.Droop: + # pass + + elif ctrl_tau == 0: pass else: - raise Exception(f"Unknown tap phase control mode {ctrl}") + raise Exception(f"Unknown tap phase control mode {ctrl_tau}") - # analyze the converter Qf=0 indices - for k, is_conv in enumerate(self.is_converter): - if is_conv: - k_qf_beq.append(k) + # Beq->qf=0 + if conv_type == 1: + k_qfzero_beq.append(k) # determine if there is any control - self.any_control = bool(len(k_pf_tau) + len(k_qf_beq) + len(k_v_m)) + self.any_control = bool(len(k_pf_tau) + len(k_qfzero_beq) + len(k_v_m)) # convert lists to integer arrays self.k_pf_tau = np.array(k_pf_tau, dtype=int) self.k_pt_tau = np.array(k_pt_tau, dtype=int) self.k_qf_m = np.array(k_qf_m, dtype=int) self.k_qt_m = np.array(k_qt_m, dtype=int) - self.k_qf_beq = np.array(k_qf_beq, dtype=int) + self.k_qf_beq = np.array(k_qfzero_beq, dtype=int) self.k_v_m = np.array(k_v_m, dtype=int) + self.k_v_beq = np.array(k_v_beq, dtype=int) diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index 93eff16d9..5f2646d94 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -46,6 +46,26 @@ def argparse(s): except KeyError: return s + @staticmethod + def as_str(val: int) -> str: + """ + Get the string representation of the numeric value + :param val: + :return: + """ + if val == 1: + return "PQ" + elif val == 2: + return "PV" + elif val == 3: + return "Slack" + elif val == 4: + return "PQV" + elif val == 5: + return "P" + else: + return "" + class CpfStopAt(Enum): """ @@ -679,6 +699,7 @@ class TapPhaseControl(Enum): fixed = 'Fixed' Pf = 'Pf' Pt = 'Pt' + # Droop = "Droop" def __str__(self) -> str: return str(self.value) From 57108821ddf6d42665af93c1c91f516cad84c873 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 12 Aug 2024 23:09:53 +0100 Subject: [PATCH 141/218] Moved the layout algorithm to the diagram settings --- .idea/workspace.xml | 26 +- src/GridCal/Gui/Main/MainWindow.py | 783 ++++++------ src/GridCal/Gui/Main/MainWindow.ui | 1642 +++++++++++-------------- src/GridCal/Gui/Main/SubClasses/io.py | 9 +- 4 files changed, 1073 insertions(+), 1387 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c954e03e7..967c4f2f1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,17 +28,11 @@ - + - - - + + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.GridCalMain.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids/CGMES_2_4_15", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + @@ -1812,7 +1816,6 @@ - @@ -1837,7 +1840,8 @@ - @@ -2377,11 +2381,6 @@ 229 - + - + @@ -2445,23 +2439,23 @@ - + - + - - + + + - @@ -2484,18 +2478,18 @@ - - + + - - + + @@ -2523,8 +2517,8 @@ - + @@ -2588,8 +2582,8 @@ - + @@ -2613,8 +2607,8 @@ - + @@ -2786,7 +2780,7 @@ - + diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index a62f0d465..b5eba1278 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -173,13 +173,6 @@ class NumericalCircuit: 'k_qf_beq', 'k_v_m', 'k_v_beq', - 'idx_dPf', - 'idx_dQf', - 'idx_dPt', - 'idx_dQt', - 'idx_dm', - 'idx_dtau', - 'idx_dbeq', ], "System matrices": [ 'Ybus', @@ -195,8 +188,21 @@ class NumericalCircuit: "B''", 'Yshunt', 'Yseries', - 'Jacobian', ], + "Power flow arrays": [ + 'idx_dPf', + 'idx_dQf', + 'idx_dPt', + 'idx_dQt', + 'idx_dVa', + 'idx_dVm', + 'idx_dm', + 'idx_dtau', + 'idx_dbeq', + 'x', + 'f(x)', + 'Jacobian', + ] } def __init__(self, @@ -1369,13 +1375,30 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: if self.simulation_indices_ is None: self.simulation_indices_ = self.get_simulation_indices() - idx_dm = np.r_[self.simulation_indices_.k_v_m, self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qt_m] - idx_dtau = np.r_[self.simulation_indices_.k_pf_tau, self.simulation_indices_.k_pt_tau] - idx_dbeq = self.simulation_indices_.k_qf_beq - idx_dPf = self.simulation_indices_.k_pf_tau - idx_dQf = np.r_[self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qf_beq] - idx_dPt = self.simulation_indices_.k_pt_tau - idx_dQt = self.simulation_indices_.k_qt_m + # idx_dm = np.r_[self.simulation_indices_.k_v_m, self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qt_m] + # idx_dtau = np.r_[self.simulation_indices_.k_pf_tau, self.simulation_indices_.k_pt_tau] + # idx_dbeq = self.simulation_indices_.k_qf_beq + # idx_dPf = self.simulation_indices_.k_pf_tau + # idx_dQf = np.r_[self.simulation_indices_.k_qf_m, self.simulation_indices_.k_qf_beq] + # idx_dPt = self.simulation_indices_.k_pt_tau + # idx_dQt = self.simulation_indices_.k_qt_m + + from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import ( + PfAdvancedFormulation) + from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions + + formulation = PfAdvancedFormulation(V0=self.Vbus, + S0=self.Sbus, + I0=self.Ibus, + Y0=self.YLoadBus, + Qmin=self.Qmin_bus, + Qmax=self.Qmax_bus, + pq=self.pq, + pv=self.pv, + pqv=self.pqv, + p=self.p, + nc=self, + options=PowerFlowOptions()) if structure_type == 'V': df = pd.DataFrame( @@ -1545,25 +1568,21 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: index=self.bus_data.names, ) - elif structure_type == 'Jacobian': + elif structure_type == 'x': + df = pd.DataFrame( + data=formulation.var2x(), + columns=['x'], + index=formulation.get_x_names(), + ) - from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import ( - PfAdvancedFormulation) - from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions - - formulation = PfAdvancedFormulation(V0=self.Vbus, - S0=self.Sbus, - I0=self.Ibus, - Y0=self.YLoadBus, - Qmin=self.Qmin_bus, - Qmax=self.Qmax_bus, - pq=self.pq, - pv=self.pv, - pqv=self.pqv, - p=self.p, - nc=self, - options=PowerFlowOptions()) + elif structure_type == 'f(x)': + df = pd.DataFrame( + data=formulation.fx(), + columns=['f(x)'], + index=formulation.get_fx_names(), + ) + elif structure_type == 'Jacobian': df = formulation.get_jacobian_df(autodiff=False) elif structure_type == 'Qmin': @@ -1711,79 +1730,93 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: ) elif structure_type == 'idx_dPf': df = pd.DataFrame( - data=idx_dPf.astype(int).astype(str), + data=formulation.idx_dPf.astype(int).astype(str), columns=['idx_dPf'], - index=self.branch_data.names[idx_dPf], + index=self.branch_data.names[formulation.idx_dPf], ) elif structure_type == 'idx_dQf': df = pd.DataFrame( - data=idx_dQf.astype(int).astype(str), + data=formulation.idx_dQf.astype(int).astype(str), columns=['idx_dQf'], - index=self.branch_data.names[idx_dQf], + index=self.branch_data.names[formulation.idx_dQf], ) elif structure_type == 'idx_dPt': df = pd.DataFrame( - data=idx_dPt.astype(int).astype(str), + data=formulation.idx_dPt.astype(int).astype(str), columns=['idx_dPt'], - index=self.branch_data.names[idx_dPt], + index=self.branch_data.names[formulation.idx_dPt], ) elif structure_type == 'idx_dQt': df = pd.DataFrame( - data=idx_dQt.astype(int).astype(str), + data=formulation.idx_dQt.astype(int).astype(str), columns=['idx_dQt'], - index=self.branch_data.names[idx_dQt], + index=self.branch_data.names[formulation.idx_dQt], + ) + + elif structure_type == 'idx_dVa': + df = pd.DataFrame( + data=formulation.idx_dVa.astype(int).astype(str), + columns=['idx_dVa'], + index=self.bus_data.names[formulation.idx_dVa], + ) + + elif structure_type == 'idx_dVm': + df = pd.DataFrame( + data=formulation.idx_dVm.astype(int).astype(str), + columns=['idx_dVm'], + index=self.bus_data.names[formulation.idx_dVm], ) elif structure_type == 'idx_dm': df = pd.DataFrame( - data=idx_dm.astype(int).astype(str), + data=formulation.idx_dm.astype(int).astype(str), columns=['idx_dm'], - index=self.branch_data.names[idx_dm], + index=self.branch_data.names[formulation.idx_dm], ) elif structure_type == 'idx_dtau': df = pd.DataFrame( - data=idx_dtau.astype(int).astype(str), + data=formulation.idx_dtau.astype(int).astype(str), columns=['idx_dtau'], - index=self.branch_data.names[idx_dtau], + index=self.branch_data.names[formulation.idx_dtau], ) elif structure_type == 'idx_dbeq': df = pd.DataFrame( - data=idx_dbeq.astype(int).astype(str), + data=formulation.idx_dbeq.astype(int).astype(str), columns=['idx_dbeq'], - index=self.branch_data.names[idx_dbeq], + index=self.branch_data.names[formulation.idx_dbeq], ) elif structure_type == 'Pf_set': df = pd.DataFrame( - data=self.branch_data.Pset[idx_dPf], + data=self.branch_data.Pset[formulation.idx_dPf], columns=['Pf_set'], - index=self.branch_data.names[idx_dPf], + index=self.branch_data.names[formulation.idx_dPf], ) elif structure_type == 'Pt_set': df = pd.DataFrame( - data=self.branch_data.Pset[idx_dPt], + data=self.branch_data.Pset[formulation.idx_dPt], columns=['Pt_set'], - index=self.branch_data.names[idx_dPt], + index=self.branch_data.names[formulation.idx_dPt], ) elif structure_type == 'Qf_set': df = pd.DataFrame( - data=self.branch_data.Pset[idx_dQf], + data=self.branch_data.Pset[formulation.idx_dQf], columns=['Qf_set'], - index=self.branch_data.names[idx_dQf], + index=self.branch_data.names[formulation.idx_dQf], ) elif structure_type == 'Qt_set': df = pd.DataFrame( - data=self.branch_data.Qset[idx_dQt], + data=self.branch_data.Qset[formulation.idx_dQt], columns=['Qt_set'], - index=self.branch_data.names[idx_dQt], + index=self.branch_data.names[formulation.idx_dQt], ) else: diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 5b16edbbb..94e7266b3 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -970,17 +970,17 @@ def dSbus_dm_csc(nbus, bus_indices, m_indices, F: IntVec, T: IntVec, Ys: CxVec, # from side if f_idx >= 0: YttB = Ys[k] + 1j * (Bc[k] / 2 + Beq[k]) - dyff_dma = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) - dyft_dma = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) - Tx[nnz] = V[f] * np.conj(dyff_dma * V[f] + dyft_dma * V[t]) + dyff_dm = -2 * YttB / (np.power(kconv[k], 2) * np.power(tap_module[k], 3)) + dyft_dm = Ys[k] / (kconv[k] * tap_module[k] * np.conj(tap[k])) + Tx[nnz] = V[f] * np.conj(dyff_dm * V[f] + dyft_dm * V[t]) Ti[nnz] = f_idx Tj[nnz] = k_counter nnz += 1 # to side if t_idx >= 0: - dytf_dma = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) - Tx[nnz] = V[t] * np.conj(dytf_dma * V[f]) + dytf_dm = Ys[k] / (kconv[k] * tap_module[k] * tap[k]) + Tx[nnz] = V[t] * np.conj(dytf_dm * V[f]) Ti[nnz] = t_idx Tj[nnz] = k_counter nnz += 1 diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 2b5f9e5e3..5ec5a9800 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -17,7 +17,8 @@ from typing import Tuple import numpy as np import pandas as pd -from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices, compile_y_acdc +from numba import njit +from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices, compile_y_acdc, compute_admittances from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit @@ -32,7 +33,7 @@ from GridCalEngine.basic_structures import Vec, IntVec, CxVec -# @njit() +@njit() def adv_jacobian(nbus: int, nbr: int, idx_dva: IntVec, @@ -143,17 +144,31 @@ def adv_jacobian(nbus: int, # compose the Jacobian J = csc_stack_2d_ff(mats= - [dP_dVa__, dP_dVm__, dP_dtau__, dP_dbeq__, dP_dm__, - dQ_dVa__, dQ_dVm__, dQ_dtau__, dQ_dbeq__, dQ_dm__, - dPf_dVa_, dPf_dVm_, dPf_dtau_, dPf_dbeq_, dPf_dm_, - dQf_dVa_, dQf_dVm_, dQf_dtau_, dQf_dbeq_, dQf_dm_, - dPt_dVa_, dPt_dVm_, dPt_dtau_, dPt_dbeq_, dPt_dm_, - dQt_dVa_, dQt_dVm_, dQt_dtau_, dQt_dbeq_, dQt_dm_], + [dP_dVa__, dP_dVm__, dP_dm__, dP_dtau__, dP_dbeq__, + dQ_dVa__, dQ_dVm__, dQ_dm__, dQ_dtau__, dQ_dbeq__, + dPf_dVa_, dPf_dVm_, dPf_dm_, dPf_dtau_, dPf_dbeq_, + dQf_dVa_, dQf_dVm_, dQf_dm_, dQf_dtau_, dQf_dbeq_, + dPt_dVa_, dPt_dVm_, dPt_dm_, dPt_dtau_, dPt_dbeq_, + dQt_dVa_, dQt_dVm_, dQt_dm_, dQt_dtau_, dQt_dbeq_], n_rows=6, n_cols=5) return J +def expand(n, arr: Vec, idx: IntVec, default: float) -> Vec: + """ + + :param n: + :param arr: + :param idx: + :param default: + :return: + """ + x = np.full(n, default) + x[idx] = arr + return x + + class PfAdvancedFormulation(PfFormulationTemplate): def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, @@ -203,22 +218,38 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.idx_dPt = self._indices.k_pt_tau self.idx_dQt = self._indices.k_qt_m - self.m: Vec = np.ones(len(self.idx_dm)) - self.tau: Vec = np.zeros(len(self.idx_dtau)) - self.beq: Vec = np.full(len(self.idx_dbeq), 0.001) # some initial value + self.m: Vec = self.nc.branch_data.tap_module[self.idx_dm] + self.tau: Vec = self.nc.branch_data.tap_angle[self.idx_dtau] + self.beq: Vec = self.nc.branch_data.Beq[self.idx_dbeq] self.Ys = 1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X) - # if not len(self.pqv) >= len(self._indices.k_v_m): - # raise ValueError("k_v_m indices must be the same size as pqv indices!") - - @property - def adm(self) -> AdmittanceMatrices: - """ + self.adm = compute_admittances( + R=self.nc.branch_data.R, + X=self.nc.branch_data.X, + G=self.nc.branch_data.G, + B=self.nc.branch_data.B, + k=self.nc.branch_data.k, + tap_module=expand(self.nc.nbr, self.m, self.idx_dm, 1.0), + vtap_f=self.nc.branch_data.virtual_tap_f, + vtap_t=self.nc.branch_data.virtual_tap_t, + tap_angle=expand(self.nc.nbr, self.tau, self.idx_dtau, 0.0), + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), + Cf=self.nc.Cf, + Ct=self.nc.Ct, + G0sw=self.nc.branch_data.G0sw, + If=np.zeros(len(self.nc.branch_data)), + a=self.nc.branch_data.a, + b=self.nc.branch_data.b, + c=self.nc.branch_data.c, + Yshunt_bus=self.nc.Yshunt_from_devices, + conn=self.nc.branch_data.conn, + seq=1, + add_windings_phase=False + ) - :return: AdmittanceMatrices - """ - return self.nc.admittances_ + if not len(self.pqv) >= len(self._indices.k_v_m): + raise ValueError("k_v_m indices must be the same size as pqv indices!") def x2var(self, x: Vec): """ @@ -227,26 +258,49 @@ def x2var(self, x: Vec): """ a = len(self.idx_dVa) b = a + len(self.idx_dVm) - c = b + len(self.idx_dtau) - d = c + len(self.idx_dbeq) - e = d + len(self.idx_dm) + c = b + len(self.idx_dm) + d = c + len(self.idx_dtau) + e = d + len(self.idx_dbeq) # update the vectors Va = self.Va.copy() Vm = self.Vm.copy() - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - Va[self.idx_dVa] += x[0:a] - Vm[self.idx_dVm] += x[a:b] - tau[self.idx_dtau] += x[b:c] - beq[self.idx_dbeq] += x[c:d] - m[self.idx_dm] += x[d:e] + Va[self.idx_dVa] = x[0:a] + Vm[self.idx_dVm] = x[a:b] + + self.m = x[b:c] + self.tau = x[c:d] + self.beq = x[d:e] # compute the complex voltage self.V = polar_to_rect(self.Vm, self.Va) + # recompute admittances + self.adm = compute_admittances( + R=self.nc.branch_data.R, + X=self.nc.branch_data.X, + G=self.nc.branch_data.G, + B=self.nc.branch_data.B, + k=self.nc.branch_data.k, + tap_module=expand(self.nc.nbr, self.m, self.idx_dm, 1.0), + vtap_f=self.nc.branch_data.virtual_tap_f, + vtap_t=self.nc.branch_data.virtual_tap_t, + tap_angle=expand(self.nc.nbr, self.tau, self.idx_dtau, 0.0), + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), + Cf=self.nc.Cf, + Ct=self.nc.Ct, + G0sw=self.nc.branch_data.G0sw, + If=np.zeros(len(self.nc.branch_data)), + a=self.nc.branch_data.a, + b=self.nc.branch_data.b, + c=self.nc.branch_data.c, + Yshunt_bus=self.nc.Yshunt_from_devices, + conn=self.nc.branch_data.conn, + seq=1, + add_windings_phase=False + ) + def var2x(self) -> Vec: """ Convert the internal decission variables into the vector @@ -255,9 +309,9 @@ def var2x(self) -> Vec: return np.r_[ self.Va[self.idx_dVa], self.Vm[self.idx_dVm], + self.m, self.tau, self.beq, - self.m, ] def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Vec]: @@ -350,9 +404,9 @@ def fx_diff(self, x: Vec): """ a = len(self.idx_dVa) b = a + len(self.idx_dVm) - c = b + len(self.idx_dtau) - d = c + len(self.idx_dbeq) - e = d + len(self.idx_dm) + c = b + len(self.idx_dm) + d = c + len(self.idx_dtau) + e = d + len(self.idx_dbeq) # update the vectors Va = self.Va.copy() @@ -361,11 +415,11 @@ def fx_diff(self, x: Vec): tau = np.zeros(self.nc.nbr, dtype=float) beq = np.zeros(self.nc.nbr, dtype=float) - Va[self.idx_dVa] += x[0:a] - Vm[self.idx_dVm] += x[a:b] - tau[self.idx_dtau] += x[b:c] - beq[self.idx_dbeq] += x[c:d] - m[self.idx_dm] += x[d:e] + Va[self.idx_dVa] = x[0:a] + Vm[self.idx_dVm] = x[a:b] + m[self.idx_dm] = x[b:c] + tau[self.idx_dtau] = x[c:d] + beq[self.idx_dbeq] = x[d:e] # compute the complex voltage V = polar_to_rect(Vm, Va) @@ -415,28 +469,20 @@ def Jacobian(self, autodiff: bool = False) -> CSC: return scipy_to_mat(J) else: # Assumes the internal vars were updated already with self.x2var() - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - - tau[self.idx_dtau] = self.tau - m[self.idx_dm] = self.m - beq[self.idx_dbeq] = self.beq - - Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, - Ct=self.nc.Ct, - C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), - shunt_admittance=self.nc.shunt_data.Y, - shunt_active=self.nc.shunt_data.active, - ys=self.nc.branch_data.get_series_admittance(), - B=self.nc.branch_data.B, - Sbase=self.nc.Sbase, - tap_module=m, - tap_angle=tau, - Beq=beq, - Gsw=self.nc.branch_data.G0sw, - virtual_tap_from=self.nc.branch_data.virtual_tap_f, - virtual_tap_to=self.nc.branch_data.virtual_tap_t) + # Ybus, Yf, Yt, tap, yff, yft, ytf, ytt = compile_y_acdc(Cf=self.nc.Cf, + # Ct=self.nc.Ct, + # C_bus_shunt=self.nc.shunt_data.C_bus_elm.tocsc(), + # shunt_admittance=self.nc.shunt_data.Y, + # shunt_active=self.nc.shunt_data.active, + # ys=self.nc.branch_data.get_series_admittance(), + # B=self.nc.branch_data.B, + # Sbase=self.nc.Sbase, + # tap_module=m, + # tap_angle=tau, + # Beq=beq, + # Gsw=self.nc.branch_data.G0sw, + # virtual_tap_from=self.nc.branch_data.virtual_tap_f, + # virtual_tap_to=self.nc.branch_data.virtual_tap_t) n_rows = (len(self.idx_dP) + len(self.idx_dQ) @@ -454,15 +500,9 @@ def Jacobian(self, autodiff: bool = False) -> CSC: if n_cols != n_rows: raise ValueError("Incorrect J indices!") - # NOTE: beq, m, and tau are not of size nbranch - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - - m[self.idx_dm] = self.m - tau[self.idx_dtau] = self.tau - beq[self.idx_dbeq] = self.beq - tap = polar_to_rect(m, tau) + tap_modules = expand(self.nc.nbr, self.m, self.idx_dm, 1.0) + tap_angles = expand(self.nc.nbr, self.tau, self.idx_dtau, 0.0) + tap = polar_to_rect(tap_modules, tap_angles) J = adv_jacobian(nbus=self.nc.nbus, nbr=self.nc.nbr, @@ -482,34 +522,39 @@ def Jacobian(self, autodiff: bool = False) -> CSC: Ys=self.Ys, kconv=self.nc.branch_data.k, complex_tap=tap, - tap_modules=m, + tap_modules=tap_modules, Bc=self.nc.branch_data.B, - Beq=beq, + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), V=self.V, Vm=self.Vm, - Ybus_x=Ybus.data, - Ybus_p=Ybus.indptr, - Ybus_i=Ybus.indices, - yff=yff, - yft=yft, - ytf=ytf, - ytt=ytt) + Ybus_x=self.adm.Ybus.data, + Ybus_p=self.adm.Ybus.indptr, + Ybus_i=self.adm.Ybus.indices, + yff=self.adm.yff, + yft=self.adm.yft, + ytf=self.adm.ytf, + ytt=self.adm.ytt) return J - def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: + def get_x_names(self): """ - Get the Jacobian DataFrame - :return: DataFrame + Names matching x + :return: """ - J = self.Jacobian(autodiff=autodiff) - cols = [f'dVa {i}' for i in self.idx_dVa] cols += [f'dVm {i}' for i in self.idx_dVm] + cols += [f'dm {i}' for i in self.idx_dm] cols += [f'dtau {i}' for i in self.idx_dtau] cols += [f'dBeq {i}' for i in self.idx_dbeq] - cols += [f'dm {i}' for i in self.idx_dm] + return cols + + def get_fx_names(self): + """ + Names matching fx + :return: + """ rows = [f'dP {i}' for i in self.idx_dP] rows += [f'dQ {i}' for i in self.idx_dQ] rows += [f'dPf {i}' for i in self.idx_dPf] @@ -517,10 +562,18 @@ def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: rows += [f'dPt {i}' for i in self.idx_dPt] rows += [f'dQt {i}' for i in self.idx_dQt] + return rows + + def get_jacobian_df(self, autodiff=True) -> pd.DataFrame: + """ + Get the Jacobian DataFrame + :return: DataFrame + """ + J = self.Jacobian(autodiff=autodiff) return pd.DataFrame( data=J.toarray(), - columns=cols, - index=rows, + columns=self.get_x_names(), + index=self.get_fx_names(), ) def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResults: diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index e48f3f388..7a347f53e 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -243,10 +243,11 @@ def compute_admittances(R: Vec, raise Exception('Unsupported sequence when computing the admittance matrix sequence={}'.format(seq)) else: # original - Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f) - Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t) - Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f) - Ytt = (ys + bc2) / (vtap_t * vtap_t) + with np.errstate(all='raise'): + Yff = Gsw + (ys + bc2 + 1.0j * Beq) / (mp * mp * vtap_f * vtap_f) + Yft = -ys / (mp * np.exp(-1.0j * tap_angle) * vtap_f * vtap_t) + Ytf = -ys / (mp * np.exp(1.0j * tap_angle) * vtap_t * vtap_f) + Ytt = (ys + bc2) / (vtap_t * vtap_t) # compose the matrices Yf = sp.diags(Yff) * Cf + sp.diags(Yft) * Ct diff --git a/src/GridCalEngine/Utils/Sparse/csc2.py b/src/GridCalEngine/Utils/Sparse/csc2.py index 4debd63c1..f2daf74d5 100644 --- a/src/GridCalEngine/Utils/Sparse/csc2.py +++ b/src/GridCalEngine/Utils/Sparse/csc2.py @@ -294,7 +294,7 @@ def imag(self) -> CSC: A = CSC(self.n_rows, self.n_cols, self.nnz, False) A.indptr = self.indptr A.indices = self.indices - A.data = self.data.real + A.data = self.data.imag return A def resize(self, nnz: int32): From 4432f185c73929d5e0cb4a5f0b4c7f4b8c8f98d1 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 13:57:17 +0100 Subject: [PATCH 143/218] branch voltage control working --- .idea/workspace.xml | 42 ++++++--- src/GridCal/__version__.py | 2 +- .../pf_advanced_formulation.py | 91 ++++++++----------- .../NumericalMethods/pf_basic_formulation.py | 7 +- .../PowerFlow/power_flow_results.py | 12 ++- src/GridCalEngine/__version__.py | 2 +- src/GridCalServer/__version__.py | 2 +- 7 files changed, 84 insertions(+), 74 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a37e5beb0..5da4a7f4d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,14 @@ - + + - - - - - - + - + @@ -204,7 +201,7 @@ - + - + @@ -669,17 +666,17 @@ - + + - @@ -1425,7 +1422,7 @@ - + 1656059954202 @@ -1770,7 +1767,7 @@ - @@ -1816,7 +1813,6 @@ - @@ -1841,7 +1837,8 @@ - @@ -2408,23 +2405,8 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 582 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py - 386 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py - 542 - - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py - 788 - @@ -2668,6 +2650,7 @@ + @@ -2800,7 +2783,7 @@ - + diff --git a/src/tests/data/grids/5Bus_LTC_FACTS_Fig4.7.gridcal b/src/tests/data/grids/5Bus_LTC_FACTS_Fig4.7.gridcal new file mode 100644 index 0000000000000000000000000000000000000000..207e6cd187ccc2c3a9d7c9397561d0dd2322d096 GIT binary patch literal 14105 zcmbW71y~eH_wZ>Xqyz<|VUh0ck`yJSW9cOpSaxX;kZwt7P)RAJRJuz*5kx>Gq(f9f z6oLP8@Aa~~Uio~#@!1FEaei~=?3|fXS{j&GSdCKmT#txCIg` zv?%(6LD`SI#B2fMpo=HUa_$+y_)uc{d_MspVRB#vb!kduj;cg>=m+r|qDn&X;ejHH z*pv7%qPL{|7x9v}9j|5`RA(F|9g6Q0Zw@Q*3$FCO%Omz5c+oHK=aW5H)!62gN6#Kz z-kBXLJUmNA+iibSfd7gB=f04Aw9jh{hct!b2hB`XfYc`WXwQ_pqCd(#=JeN}a4;y7 z>aZA(%G^ldJ~G`*ZkHZ{ia*D{rB$>Ym8*N` zXd=vt-zHIN`k>2OO_NDsiMh1)f=Da}|EJLqCyL1UG$!(09$2@fp;RMzHXBzz%l<>g zeH}Gj2P{yr`wv`PzKh0Fsn4jTR3jPIajvg4^@!45AA)8IlLp^RC0xGeE9pY_ZAkI^ zHAB%Jdn~8Asgxpj%^A)$af0*Ur8d`Ah&0>PaqrJO=n-kngR_M!V#!9;D;J&eh12B4 z98*4Dy<2~KzV3PMq0&5HNqnyNdc(S&DY-m1Mwesr>vZBA8J7s<#Q3I}FrQHQJFhns zE1#wb`d5gRUt4;LFY+~!VdWW4cA4j^v^Qz1#wrGT#Uzh4zPIKA!q6v}3nf>$qw7aL zbZTQnYx}M3tXYH1OQ{Ax0ZdCJ5w}{%qZWGXz6+RK%R9n*-&)$WUeIGTN5OSt6namn zBrUh&>61bQp7Q&05UtS%Wqm@s?Not%>wQZSX=*eild5g3>NUieAFq9zl6)k@Qg6RT zsS!`fmAtaIL;12->$2|+`aG5SH?=Pz%O#>2bf*2TvJ@gx-9x+B<4ta*BeDU}o{PyT z6i)6#gM-IfNY@d2vu8n*l53}P#{x)5L@8?$24D8u&P?(q`xT!^hb z$QAr2;?g2dJXz5iTTt_Y8~^+a4E;dpGu$;JiDBnAM9 zDDf)%_w-d7ELrc6QE=;5+>B!ot<@k>Qw^#|rwnzE?Wi8_?!D|&l*6>$9QOdK{(@EL z%@3-~3st~-xA*7)Zr~SFg$6)EH}nRl%q)DvaVoQ~*smnxDe527Qm#uUxj)IX=H%(r z=N_eTa^vP+j!P;q>khUQ2JhhI;7(9w+;egZRG9R_gxDQgqBm-|S}1%z@{jblby4tI zjjcZRRM1y$T+)rR5D~X&)c$-#fP8A}?bR=2!8Lje|Ii_8*3;D)3bePiaJKcdb^iN{ zHH#f2>R=$b`t=aM!}xqk#H?tEhG#$wRw#Z7F?qJHPDK_!e39qLTlwb?TFtC;ZusN9vKelh zF#MwWHLNLt9sqd0J0r1>gwtc-jC0Vq&guW&X9sPd>~(pDGr+j8VyOpqO@mv!IC8Z_iK)V8IFy0cBZeR9 zr*k)mqi-m}TASefb>W$3flboqO_!HvQ-Uu)tbBK)RmPM{Jrie|Uw@Zxm->LV(%Wao zi!r=6ZbMWsrBiyR^BFikV$Dark7|$7(jcK~?D?TOF>`r~YwnA-L-HoBqz~hR{Zqw@ zZv_2%6V1?{SYs?Wjx(lj=eguY(j>pV;s{+V;_xRICa5Bxdjmo6Afz z_F?46xv6L+cqYcuj{~CtxBTO(`d&r9t?b*PaDP`xdr*AH=;H29 z;ulJOE4T83|C>o*=!ZKNMZ{*b0iBO~aLaWstX00d`2qae;c1VAh%}C%EKOy~u<^?f zw7atp7On|ayK7n9-tORZ(UrIrEcsldwR0)7-e|de`_`Bd&cn#hUFghGZ_x6yC*BgQ zWw4U#NZbl58_PIG--OW~gFW4W@tk~^V3>{0U2hsPiCbHq-++<_*#Rwb zc}DF|F^W?du#3|i2GKHf$Aa1wqEbfk)>)^sU4}(0vWEuzN~L*)=GyM}h_vuqzo1FQ z<9M_1&d1k_C^2kU!M?!a!c+k!i85csIeVJ8L}eWp%sZwK^_dhiW2SQV$86AcY(?59 zq+?7`_0K{wzaEpC9)3qLc0{W{c{Je1%)$x?`IGyb3HgA+9e1#;H5B9tzrPv4@Tc>4 zj4_P9Js0>PKZFBN%*xpnX!Fl0&oFbEmm?3~I;5C~8L@6lHyazL>8$W@`x!-Ne{<~2 zRJvxGX7+tX^nOT`wh})X;HlP^_}=Vgo3@C33CgtI)@~;;UA5KCMU9a9HY zoet-6opnd_7c*aBo=qj zBcsA)pGYZAKazN>C8mKKoDsvWSSA{eA~ctj*y5V!=`g1O07z!Im~T+gwcGh4cx}+< zhiG|z+#3nvZ8dkx%Y&|_rY_C}LCT^r#4LR03G(VvcPH&(at|j9!5(F;SyB(13dNlt ziZg%tCyyThyR>?y+ret6m@UZivde^aJkUZOA1F6WW!4G~BLp_k9EU zOsJQa>aNSY=*UPA%CgydM6glinp(Fk&;}b@P7|9B^T$grzujcY(r4|FCp*lO%mPm8 zx}^5y1)9$j)%Zr7-gk>`gd9TCKf+?ZT)FGcNj0i>UzM4uwk`yskYZ_9+$z=1J5ko6 zN=k~A-!zwP6(ygp5?U*oX2iIgv9lN?a^0iXH=s1MxrIjjMZkB3$+{JS_1!`ZmgW{{ z?1!@5ZpLna2pwreX}c0TU2cb1b%^TR;`M-UMD9~%EpAoVIv1(hB7HZ}Lmwp>Uo_&< z#4p?sraz=^gw=_9GX*QI^>L)AF%NFuwPXe zZ?;b0JVxJ;cBZ(g&>f-L)Eny4>HU0qhO6tl?(slfEc5mF!N%^S@Rw6e^-h*;l;Tbk z?xfgjlp;h;k(q zz=m2*lZ+`pI7TzU*W7_5l-b6I{Ph@B=)O;TNn~TBb7)#%M)JLsr=RbIOv{+{v;uD9 zxM8K};oY*O9+G{1W1G1nDoHayQ5~WtwR?APT(?2aWmACi=5BFWakom@ZJwoQb=_gx z(G}^n+hG{tED;v?15it?ZncH<>`z7aKVEI^wq<`tat|!OWyB7kZnngW*Bg9)yV6{p zXpY?)PqK$We~Y-8HvMx5Ah5AJJZHS1ck23W6?3ygqmaOL=M=ihSQhfQ@A0Cb>{1;a zrmsO)ZW8knBpoE)VIXy>x)#SHIW);Q>NNB0=4=ra7nqoOv!an1|L~@Qq)axtM8AC9 zpkdki#E7Oxm9tRL`W{_=YF|;%_RC(nf=``gB?&6(Nsp(`$>wGR@HRHzQbu?To+ZW(P#+?q{}k`IFzlZvcSIBPc%&(~!AzB}&j=(B=x={`7#z z#6h+?g_qb^el$pwcFtG@L*(lE3(~Z%PP-sX$!ewqh8W9E5$9!q%46&CzWC6o4y1rd}fkFE6XPi*|ywOtq$x~o3@a7F35n3GU$;hYqjVUmE_JX=h@ z)(uMX2TBAfc43=WGWOI-)dk2$YUKJmw2jzIu05tK)<{ZXqT~)~(exZ*t1k(Z%6g%b zTWj1exiRZANTt2NI2-WdDv$AO$F5*)Ng#-|+AGc-7`q4>b4|^bG|myn~Fc8 zA-#P{Tvhs5>Ioqilu7zShK%Wr{*v+)qF0c-3w8XloFi^5!@?P=j$)-cb#_sj?u(9% zDftEO_vs0*=+fROc?PT-M)cT6?o~r|`?YJHrffXhu#$`%Kiv6*R4yv;2+Q z!A|r~z659Wi53x?9<-$rr~Q^`02FeBLx!i0eqX790Ko zPwqyJ4JR#EYp}iGyZLiw+BKvq4gs}pH`fg=jJXING|nk8W(Abys@NXS0sY9{OkT#! zwIO@E=h%}PAeoa1O29a}`P}CvJ=re>LsR8PSjhfq@^j zAgoI&K8+XNbbEL0*!Z=_Rr!Li*ZH!5r%S+hq2R#jK!S(l`eEM8Pj1?1toL^wafc07q*jG~h zf?-pieO%^=2D*0?TlB-kTU?2j%kluH-Ez6AfVuU{{|a|RDc z6yO=2i}Jq)2=M#mp8z3KGhteUBz)_DGgjJ*AW(PXrM#;P(X>Vo14;OT+e9SS)1}H-fyN!P=1l5Nfx9|CT44CHtt#%JFVWvibX2QV&YWW5Z$ z5>8(`!$7N~pINGyz-FMU^NPZ^ikSL}2CQ|M~mAhZr;-gf_F|F?t zQFw4SV&9?c+4>H{Gf=Wex9@A!4|h#Aj?I1i&H3|zP4fiQx!jKKJtY(RPuF_P^=7Tv zUbTLB=F*r?L?98ptK_dQEJ!gqc>Hp{VOoD~yC}?a8mjx|q1Z%aCaa9k4z34{^QTT0 z`tfXU1B221is*Lt_4$x1BtSq1$rss@FwJs zjZ|~wajKWDD8^nPVq(C#j8?nNudF6LcrGkd=b-TfOQsHh%af|bQ83o3Seh@Wg=WqU zz)}z5^60rQ7_Am9B^9qDdvSePT_={HpdG}GcWEr?xq#e~kg#Q<6Z{&#B?@4N@h9m- zJs?xdp@T7%GWYvnBvD_S%6$-CT)f93Y#Mt(4Upt3&$38bWBCH-oN}TZ6Nsd*mU)!3 zH}x)aDOhq%fMHiSO9Su0#rx|IbeGd5p}BG#!DIc}R}v+XvY}cW!Fm{_1g>i0_P2F2 z@=XcCyUtw^eAskx2=8o0%47QFiet+Mgglsm}fB7}Pb0-jeM3j7ngQt!4pG-r^^?7>y(JYk3U~YDQ zGz~STwS|CeJuKj*32P|aclvGG263AxIe!l?5Y*b?Pd19;@xgOOQ20v%cO8AscG(aY zr$P2&5g5OdK#xP`K`?yQDExyW0SN4A>j8CvJMtb#5-jPUg*fuzVW?-Y1EN;dZ{n*f zgOov0MN8~2^r$a&Uc9SJ*2yAc5-3$DNuSFD{_V(>q6B*R3KMGK~`t53}C4u0!PJw4I z#TcX;1Er?4&)d`PgpP(5h5bw2<8%Xm?|vvnGlrc1uXiz1rYcE~qqHll@BQn9`wUF_ zrDcWg_I8u2pP7!l{BU00)Vp{we26hI-BNebvB~~vh|Wav!?WDe$tSzaA^bfDQ2}#ST|nt<9jLhMfvp>0=Y&MlX^;q3XO@5Vg7UtuhV65 zt|m$|W7bm!Vb3ck1%gs)uycliY%I>oi6Wlw|D5awg#M9% zq4-;WuMCAjtp0VJe)YHh-;2Xsej7|7PDV*s{k^!GfcNk0(qywmR0wX9D)0}=Wd;Sg z{BsjMgqtEp;b_xyd;n+IiXrW})_gWuybO!%bVIG|I~HWb`VJ0Y8)rvHD@$Ohy`5c` zJ^_mLgnnKPT7t)Wffvxw_~A?0fPnT8po<5um9?;)sF;Yj5Kx>?$i_+-XeA=XCnzAm zFCZWa6y_7*`R9KwPDr|57AHZQec#%ll|!>nCt#Muq&WbMxXrilybJ$z5@W?YrTo!> zJ76$!xbf{nqC_wO`rw?_!j+bt?WKB|n4{I;OIzSejga22Z>k37hxn`S(X|rYF>R6~ z><8+^KklWu_qfNw8m$?>I8^vOy|M2Mtih+%FRS4Rk5}8h1s+CIvK&o#-qf& zfLHoK1!*z>vOU9@TXgS<0Q7r}H6e-xFS&4HtomPOu&`6arCy(8AtW=mrFk4UHs4@u zblkf=k#jXKyu`y!NGx_Z4x29Gy^3&VZN;O{eVs*q#-0y%`SxUwsY~Td{7pUYKE13w zdpyp9eA$`8R<}md>?EQPDka~Q6HN5r=2fhiFhg@M&^3SUmcdVcpsQ-<}c&9N?&|S-8^Dm z8n<>>to(A#`7j+zOOCNO#>Lsik;S1`V8_hUM!|cg;~C}s1IZKyWCd8v`Bzzz!p981 zPt1#QzStRbX1h$Gx+cG*C|^-id8vv}%S5xveuHs6^M@Vwl!~|#VI=ul^S~pO*hfb= zraFA)HL2@gvnU+ClX|3d?cxCX*|m4QbtntQR%xQofBb%Ehn*QX&`TLoVK5TH1IXfL z8zRpZkV!nIFQ0)6@}0Zz2oL`yh+w!{y>kC9CdGN9DB+1MQO-}iA4M$cpS=*c94ul z+=gFJOoUHFM979uNJv1yN>o5tRMbXLT$oQ-NJLQhr_sRfw1YbtNR+m|;SVk=F^SY? znR=|0&IG+imsE9)qvaHF8BP@A>x1KrUE-Ni?2iW`{dAScg~xGBxq zfz7I`8X@j`Gz%?94o1_EezB^umWP>@$-4!>^RDZxm^ej%Z30t9;aIvNuI~JAbDMM!( z4Kd>`njWbPzyXjv`1aYy}K-0W)v-T%1+9f+QXLd zy*mW!(KSQcxX60jHf-m83D+AgTyOBUHne~G*{nT0h2sYuJNZb^w!TLL>`A#)J~B6S zC7NdHIIPhP6}_KgN_t&xbM2_5=fwe^Abkh3THp%Kq0(Ap6wi=+);+EBY7iP&;d}nX z%6MJJnM#5RF|P5ay+W{c_IsOw^7Gz{TulnS!nVEAxO7PBYU=Kjrt z<42RFRZ5S+mz^{YjE!}r^?7?XF7#}SvAre02{89`+F2vk(m=-`$NYUeAAI+JjUc!x zerfJQos9U7oMab&jv({|cq#y)5dPa%oU@20uglL7gg%Z;JZ;PQa|9vW6GIT{v_5PASA1*vuCEY67&|8oSPKSkysw(*<=IZ40%96{(` zkRiXe^q`_p8+uMr{5VJoMs4pw1)=t@oPuI-kwE{^&4S88Jc=jI*v}D!Zgmcch1x=L z76|zS<{^Vl+eywsoTTA?jv(~c$Oz=t5>yOoW63Fo6c1@j|F)T+5)hSwe2%>dPzk3U z1ZPoBBC($%2>mfKYieGVipr02P6_F~*#Y0xr5;6~=Xm=I^`4OXo#~ujk z{%ry8EaFM|?&kf0&!Q!cUCMs*@l2X%7mUpL4NIekSV8G(X$XIe&x>*gno#O z_%}m(76DlZLHIF3*ve_P^ehDOgW!ma@c7Tn=~*~rm#YE=hmb`*3xaH3OUMv}Y$#$r z^DN#;KK17aLg#>=M+7w?@c#SkpypOjNe;-Q(?lgwrWI8()KupwkDVS#vQyrF3x;^8 zk-fMf1|$$_b`Djd--Gbs#{)rE|Kz*=&D5O*LbiI9{{kUp?apE$?=IrMSZ@Dj@Xi7u zM;2ZG3Hq7ML*=06@=m|ElaxDxmQFK!s0h?N-6_Hzj`*LmcBpvNjK(QG8-RfS)BFZ1 i9yRbk#gDNfrUA4xu;HN%8k#Wtj|kkE8@h7xum1xUQxHx7 literal 0 HcmV?d00001 diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index cfccc0a24..18170a88d 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -211,8 +211,7 @@ def test_controllable_shunt() -> None: def test_voltage_remote_control_with_generation() -> None: """ - - :return: + Check that a generator can perform remote voltage regulation """ fname = os.path.join('data', 'grids', 'RAW', 'IEEE 14 bus.raw') @@ -235,3 +234,29 @@ def test_voltage_remote_control_with_generation() -> None: assert np.isclose(vm[6], grid.generators[4].Vset, atol=options.tolerance) print(solver_type) + + +def test_voltage_control_with_ltc() -> None: + """ + Check that a transformer can regulate the voltage at a bus + """ + fname = os.path.join('data', 'grids', '5Bus_LTC_FACTS_Fig4.7.gridcal') + + grid = gce.open_file(fname) + bus_dict = grid.get_bus_index_dict() + ctrl_idx = bus_dict[grid.transformers2w[0].regulation_bus] + + for solver_type in [SolverType.NR]: + options = PowerFlowOptions(solver_type, + verbose=0, + control_q=False, + retry_with_other_methods=False) + + results = gce.power_flow(grid, options) + + vm = np.abs(results.voltage) + + assert results.converged + + # check that the bus voltage module is the the transformer voltage set point + assert np.isclose(vm[ctrl_idx], grid.transformers2w[0].vset, atol=options.tolerance) From c1abde6673928427ef24c609c4c38db39e102481 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 15:51:28 +0100 Subject: [PATCH 145/218] Fixed bug in Pset and Qset values not being scaled to per unit --- .idea/workspace.xml | 21 +++++++++---------- .../Compilers/circuit_to_data.py | 15 ++++++++----- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7e688a942..568093a30 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,9 @@ - + - - + - + - + @@ -665,17 +664,17 @@ + - + - @@ -1421,7 +1420,7 @@ - + 1656059954202 @@ -1766,7 +1765,7 @@ - @@ -1812,7 +1811,6 @@ - @@ -1837,7 +1835,8 @@ - diff --git a/src/tests/data/grids/5Bus_PST_FACTS_Fig4.10.gridcal b/src/tests/data/grids/5Bus_PST_FACTS_Fig4.10.gridcal new file mode 100644 index 0000000000000000000000000000000000000000..90e76d482638c854a8a44677122d91a3209fc7bd GIT binary patch literal 14151 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 None: # check that the bus voltage module is the the transformer voltage set point assert np.isclose(vm[ctrl_idx], grid.transformers2w[0].vset, atol=options.tolerance) + + +def test_power_flow_control_with_pst() -> None: + """ + Check that a transformer can regulate the voltage at a bus + """ + fname = os.path.join('data', 'grids', '5Bus_PST_FACTS_Fig4.10.gridcal') + + grid = gce.open_file(fname) + + for solver_type in [SolverType.NR]: + options = PowerFlowOptions(solver_type, + verbose=0, + control_q=False, + retry_with_other_methods=False) + + results = gce.power_flow(grid, options) + + assert results.converged + + # check that the bus voltage module is the the transformer voltage set point + assert np.isclose(results.Sf[7].real, grid.transformers2w[0].Pset, atol=options.tolerance) From 7d987040c10dcad50f7f76bb89ac8f67304e0573 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 16:19:38 +0100 Subject: [PATCH 147/218] Fixed PST Pt control and added test --- .idea/workspace.xml | 35 ++++++++++-------- .../Topology/simulation_indices.py | 7 +++- .../grids/5Bus_PST_FACTS_Fig4.10(Pt).gridcal | Bin 0 -> 14127 bytes src/tests/test_power_flow.py | 23 ++++++++++++ 4 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 src/tests/data/grids/5Bus_PST_FACTS_Fig4.10(Pt).gridcal diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 66a664f55..9c3393952 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,9 @@ - + - + + + + + + - + @@ -1813,7 +1819,6 @@ - @@ -1838,7 +1843,8 @@ - @@ -2404,9 +2410,9 @@ @@ -2570,6 +2576,7 @@ + @@ -2784,7 +2791,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 2c3dbb11e..9c7cabb09 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -1040,7 +1040,7 @@ def get_branch_data(circuit: MultiCircuit, ysh1 = elm.get_ysh1() data.Beq[ii] = ysh1.imag - data.Pset[ii] = elm.Pfset / Sbase + data.Pset[ii] = elm.Pfset / circuit.Sbase data.contingency_enabled[ii] = int(elm.contingency_enabled) data.monitor_loading[ii] = int(elm.monitor_loading) diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index b5eba1278..d9334f240 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1807,7 +1807,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: elif structure_type == 'Qf_set': df = pd.DataFrame( - data=self.branch_data.Pset[formulation.idx_dQf], + data=self.branch_data.Qset[formulation.idx_dQf], columns=['Qf_set'], index=self.branch_data.names[formulation.idx_dQf], ) diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index ac5c6ffd4..048b60fc1 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -16,7 +16,7 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import numpy as np -from typing import Union +from typing import Union, Tuple from GridCalEngine.basic_structures import Logger from GridCalEngine.Devices.Substation.bus import Bus from GridCalEngine.Devices.Substation.connectivity_node import ConnectivityNode @@ -385,6 +385,31 @@ def fill_design_properties(self, r_ohm, x_ohm, c_nf, length, Imax, freq, Sbase): self.rate = np.round(Imax * Vf * 1.73205080757, 6) # nominal power in MVA = kA * kV * sqrt(3) self.length = length + def get_virtual_taps(self) -> Tuple[float, float]: + """ + Get the branch virtual taps + + The virtual taps generate when a line nominal voltage ate the two connection buses differ + + Returns: + + **tap_f** (float, 1.0): Virtual tap at the *from* side + + **tap_t** (float, 1.0): Virtual tap at the *to* side + + """ + # resolve how the transformer is actually connected and set the virtual taps + bus_f_v = self.bus_from.Vnom + bus_t_v = self.bus_to.Vnom + + if bus_f_v == bus_t_v: + return 1.0, 1.0 + else: + if bus_f_v > 0.0 and bus_t_v > 0.0: + return 1.0, bus_f_v / bus_t_v + else: + return 1.0, 1.0 + def set_data_from(self, second_Line: "Line"): """ Set the data from another line diff --git a/src/GridCalEngine/Devices/Branches/vsc.py b/src/GridCalEngine/Devices/Branches/vsc.py index 039b7f02a..96bee0c3e 100644 --- a/src/GridCalEngine/Devices/Branches/vsc.py +++ b/src/GridCalEngine/Devices/Branches/vsc.py @@ -300,3 +300,5 @@ def plot_profiles(self, time_series=None, my_index=0, show_fig=True): if show_fig: plt.show() + + diff --git a/src/GridCalEngine/Devices/Parents/branch_parent.py b/src/GridCalEngine/Devices/Parents/branch_parent.py index 627375135..6060c8903 100644 --- a/src/GridCalEngine/Devices/Parents/branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/branch_parent.py @@ -362,28 +362,10 @@ def get_sorted_buses_voltages(self): def get_virtual_taps(self) -> Tuple[float, float]: """ - Get the branch virtual taps - - The virtual taps generate when a line nominal voltage ate the two connection buses differ - - Returns: - - **tap_f** (float, 1.0): Virtual tap at the *from* side - - **tap_t** (float, 1.0): Virtual tap at the *to* side - + Always unit vitual taps (unless proven otherwise) + :return: tap_f, tap_t """ - # resolve how the transformer is actually connected and set the virtual taps - bus_f_v = self.bus_from.Vnom - bus_t_v = self.bus_to.Vnom - - if bus_f_v == bus_t_v: - return 1.0, 1.0 - else: - if bus_f_v > 0.0 and bus_t_v > 0.0: - return 1.0, bus_f_v / bus_t_v - else: - return 1.0, 1.0 + return 1.0, 1.0 def get_coordinates(self): """ diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 5c578cbbd..00f6deb05 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -374,13 +374,13 @@ def fx(self) -> Vec: yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real Qf = get_Sf(k=self.idx_dQf, Vm=self.Vm, V=self.V, - yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).real + yff=self.adm.yff, yft=self.adm.yft, F=self.nc.F, T=self.nc.T).imag Pt = get_St(k=self.idx_dPt, Vm=self.Vm, V=self.V, ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T).real Qt = get_St(k=self.idx_dQt, Vm=self.Vm, V=self.V, - ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T).real + ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T).imag self._f = np.r_[ dS[self.idx_dP].real, From f1b7ac6e18db8fe25dc982465ba53fc90e28a67c Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 17:56:33 +0100 Subject: [PATCH 149/218] Added Qf and Qt control tests All pf tests passing --- .idea/workspace.xml | 91 +++++++++--------- .../grids/5Bus_PST_FACTS_Fig4.10(Qf).gridcal | Bin 0 -> 14121 bytes src/tests/test_power_flow.py | 47 ++++++++- 3 files changed, 89 insertions(+), 49 deletions(-) create mode 100644 src/tests/data/grids/5Bus_PST_FACTS_Fig4.10(Qf).gridcal diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a1dc037bd..a66a8c6eb 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,10 @@ - - + - + - + - - - - + - + - + @@ -662,20 +639,38 @@ + + + - - + + + + - - @@ -1421,7 +1416,7 @@ - + 1656059954202 @@ -1766,7 +1761,7 @@ - @@ -1812,8 +1807,6 @@ - - @@ -1837,7 +1830,9 @@ - @@ -2403,9 +2398,9 @@ @@ -2606,6 +2601,7 @@ + @@ -2792,7 +2788,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 68985270c..54fb93e57 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -26,6 +26,7 @@ from GridCalEngine.enumerations import (BusMode, BranchImpedanceMode, ExternalGridMode, TapModuleControl, HvdcControlType) from GridCalEngine.basic_structures import BoolVec +from GridCalEngine.Devices.types import BRANCH_TYPES import GridCalEngine.DataStructures as ds if TYPE_CHECKING: # Only imports the below statements during type checking @@ -691,8 +692,7 @@ def get_battery_data(circuit: MultiCircuit, def fill_parent_branch(i: int, - elm: Union[dev.Line, dev.DcLine, dev.Transformer2W, - dev.Winding, dev.VSC, dev.UPFC, dev.SeriesReactance], + elm: BRANCH_TYPES, data: ds.BranchData, bus_dict: Dict[Bus, int], apply_temperature: bool, @@ -783,6 +783,7 @@ def fill_controllable_branch(ii: int, time_series: bool, opf_results: Union[OptimalPowerFlowResults, None], use_stored_guess: bool, + bus_voltage_used: BoolVec, Sbase: float, logger: Logger): """ @@ -798,6 +799,7 @@ def fill_controllable_branch(ii: int, :param time_series: :param opf_results: :param use_stored_guess: + :param bus_voltage_used: :param Sbase: :param logger: :return: @@ -870,13 +872,20 @@ def fill_controllable_branch(ii: int, if not use_stored_guess: if elm.tap_module_control_mode == TapModuleControl.Vm: - if 0.9 <= elm.vset <= 1.1: - bus_data.Vbus[t] = elm.vset - else: - logger.add_warning("Branch control voltage out of bounds", - device_class=str(elm.device_type.value), - device=elm.name, - value=elm.vset) + bus_idx = data.tap_module_buses[ii] + if not bus_voltage_used[bus_idx]: + if 0.9 <= elm.vset <= 1.1: + bus_data.Vbus[bus_idx] = elm.vset + else: + logger.add_warning("Branch control voltage out of bounds", + device_class=str(elm.device_type.value), + device=elm.name, + value=elm.vset) + elif elm.vset != bus_data.Vbus[bus_idx]: + logger.add_error(msg='Different control voltage set points', + device=bus_data.names[bus_idx], + value=elm.vset, + expected_value=bus_data.Vbus[bus_idx]) def get_branch_data(circuit: MultiCircuit, @@ -958,6 +967,7 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, opf_results=opf_results, use_stored_guess=use_stored_guess, + bus_voltage_used=bus_voltage_used, Sbase=circuit.Sbase, logger=logger) @@ -981,6 +991,7 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, opf_results=opf_results, use_stored_guess=use_stored_guess, + bus_voltage_used=bus_voltage_used, Sbase=circuit.Sbase, logger=logger) @@ -1005,6 +1016,7 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, opf_results=opf_results, use_stored_guess=use_stored_guess, + bus_voltage_used=bus_voltage_used, Sbase=circuit.Sbase, logger=logger) data.Kdp[ii] = elm.kdp From 49b7894b9f8c082445e57ec09788859712a006e9 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 13 Aug 2024 19:13:06 +0100 Subject: [PATCH 152/218] Fixed CGMES conversion bug creating rates = None --- .../Devices/Parents/branch_parent.py | 57 ++++++++++++++++++- .../IO/cim/cgmes/cgmes_to_gridcal.py | 2 +- 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/src/GridCalEngine/Devices/Parents/branch_parent.py b/src/GridCalEngine/Devices/Parents/branch_parent.py index 6060c8903..3146be9c4 100644 --- a/src/GridCalEngine/Devices/Parents/branch_parent.py +++ b/src/GridCalEngine/Devices/Parents/branch_parent.py @@ -120,13 +120,19 @@ def __init__(self, self.build_status = build_status # line rating in MVA - self.rate = rate + if not isinstance(rate, Union[float, int]): + raise ValueError("Rate must be a float") + self._rate = float(rate) self._rate_prof = Profile(default_value=rate, data_type=float) - self.contingency_factor = contingency_factor + if not isinstance(contingency_factor, Union[float, int]): + raise ValueError("contingency_factor must be a float") + self._contingency_factor = float(contingency_factor) self._contingency_factor_prof = Profile(default_value=contingency_factor, data_type=float) - self.protection_rating_factor = protection_rating_factor + if not isinstance(protection_rating_factor, Union[float, int]): + raise ValueError("protection_rating_factor must be a float") + self._protection_rating_factor = float(protection_rating_factor) self._protection_rating_factor_prof = Profile(default_value=protection_rating_factor, data_type=float) # List of measurements @@ -334,6 +340,51 @@ def Cost_prof(self, val: Union[Profile, np.ndarray]): else: raise Exception(str(type(val)) + 'not supported to be set into a Cost_prof') + @property + def rate(self): + """ + Rate (MVA) + :return: + """ + return self._rate + + @rate.setter + def rate(self, val: float): + if isinstance(val, float): + self._rate = val + else: + raise ValueError(f'{val} is not a float') + + @property + def contingency_factor(self): + """ + Rate (MVA) + :return: + """ + return self._contingency_factor + + @contingency_factor.setter + def contingency_factor(self, val: float): + if isinstance(val, float): + self._contingency_factor = val + else: + raise ValueError(f'{val} is not a float') + + @property + def protection_rating_factor(self): + """ + Rate (MVA) + :return: + """ + return self._protection_rating_factor + + @protection_rating_factor.setter + def protection_rating_factor(self, val: float): + if isinstance(val, float): + self._protection_rating_factor = val + else: + raise ValueError(f'{val} is not a float') + def get_max_bus_nominal_voltage(self): """ GEt the maximum nominal voltage diff --git a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py index b628b99db..bffd5d2df 100644 --- a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +++ b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py @@ -767,7 +767,7 @@ def get_gcdev_ac_transformers(cgmes_model: CgmesCircuit, # windings = get_windings(cgmes_elm) # windings: List[PowerTransformerEnd] = list(cgmes_elm.references_to_me['PowerTransformerEnd']) - rate_mva = rates_dict.get(cgmes_elm.uuid, None) # min PATL rate in MW/MVA + rate_mva = rates_dict.get(cgmes_elm.uuid, 9999.0) # min PATL rate in MW/MVA if len(windings) == 2: calc_nodes, cns = find_connections(cgmes_elm=cgmes_elm, From db190f9b9e3773a0f2431c141c90f2b3473e2025 Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 15 Aug 2024 12:34:33 +0100 Subject: [PATCH 153/218] Fixed vset too strict compilation in control branches Modified the fubm check script in trunk --- .idea/workspace.xml | 183 +++++++++++------- .../Compilers/circuit_to_data.py | 2 +- .../Derivatives/csc_derivatives.py | 6 +- .../pf_advanced_formulation.py | 7 +- .../pf_formulation_template.py | 5 + src/GridCalEngine/Utils/Sparse/csc2.py | 3 + src/trunk/acdc_pf/fubm_example.py | 12 +- 7 files changed, 142 insertions(+), 76 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 94ad45d82..e431e4687 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,14 @@ - + - + + + + + - - + + + @@ -1825,8 +1830,6 @@ - - @@ -1850,7 +1853,9 @@ - @@ -2412,7 +2417,7 @@ file://$PROJECT_DIR$/src/GridCalEngine/Topology/admittance_matrices.py - 467 + 459 @@ -2443,8 +2448,13 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py - 208 - + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py + 301 + @@ -2770,7 +2780,7 @@ - + @@ -2827,7 +2837,7 @@ - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index e0ebaf2ca..e9890e542 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -1021,6 +1021,9 @@ def get_branch_data(circuit: MultiCircuit, logger=logger) data.Kdp[ii] = elm.kdp data.is_converter[ii] = True + data.alpha1[ii] = elm.alpha1 + data.alpha2[ii] = elm.alpha2 + data.alpha3[ii] = elm.alpha3 ii += 1 diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 5d71801bc..84e5df31c 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -54,10 +54,10 @@ def __init__(self, nelm: int, nbus: int): self.mttf: Vec = np.zeros(self.nelm, dtype=float) self.mttr: Vec = np.zeros(self.nelm, dtype=float) - # composite losses curve (a * x^2 + b * x + c) - self.a: Vec = np.zeros(self.nelm, dtype=float) - self.b: Vec = np.zeros(self.nelm, dtype=float) - self.c: Vec = np.zeros(self.nelm, dtype=float) + # composite losses curve (c * x^2 + b * x + a) + # self.a: Vec = np.zeros(self.nelm, dtype=float) + # self.b: Vec = np.zeros(self.nelm, dtype=float) + # self.c: Vec = np.zeros(self.nelm, dtype=float) self.R: Vec = np.zeros(self.nelm, dtype=float) self.X: Vec = np.zeros(self.nelm, dtype=float) diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index d9334f240..f4606446c 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -900,11 +900,7 @@ def get_admittance_matrices(self) -> ycalc.AdmittanceMatrices: Beq=self.branch_data.Beq, Cf=self.Cf, Ct=self.Ct, - G0sw=self.branch_data.G0sw, - If=np.zeros(len(self.branch_data)), - a=self.branch_data.a, - b=self.branch_data.b, - c=self.branch_data.c, + Gsw=self.branch_data.G0sw, Yshunt_bus=self.Yshunt_from_devices, conn=self.branch_data.conn, seq=1, diff --git a/src/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py b/src/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py index ae3fb096f..ce00acdf3 100644 --- a/src/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py +++ b/src/GridCalEngine/Simulations/ContingencyAnalysis/Methods/helm_contingencies.py @@ -88,11 +88,7 @@ def calc_V_outage(nc: NumericalCircuit, Beq=nc.branch_data.Beq[contingency_br_indices], Cf=nc.branch_data.C_branch_bus_f[contingency_br_indices, :], Ct=nc.branch_data.C_branch_bus_t[contingency_br_indices, :], - G0sw=nc.branch_data.G0sw[contingency_br_indices], - If=If[contingency_br_indices], - a=nc.branch_data.a[contingency_br_indices], - b=nc.branch_data.b[contingency_br_indices], - c=nc.branch_data.c[contingency_br_indices], + Gsw=nc.branch_data.G0sw[contingency_br_indices], Yshunt_bus=np.zeros(nc.nbus), conn=nc.branch_data.conn[contingency_br_indices], seq=1, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py index 1f6028a18..1c02ee087 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/common_functions.py @@ -210,6 +210,40 @@ def get_St(k: IntVec, Vm: Vec, V: CxVec, ytf: CxVec, ytt: CxVec, F: IntVec, T: I return np.power(Vm[t], 2.0) * np.conj(ytt[k]) + V[t] * np.conj(V[f]) * np.conj(ytf[k]) +@nb.njit() +def get_If(k: IntVec, V: CxVec, yff: CxVec, yft: CxVec, F: IntVec, T: IntVec): + """ + + :param k: + :param V: + :param yff: + :param yft: + :param F: + :param T: + :return: + """ + f = F[k] + t = T[k] + return np.conj(V[f]) * np.conj(yff[k]) + np.conj(V[t]) * np.conj(yft[k]) + + +@nb.njit() +def get_It(k: IntVec, V: CxVec, ytf: CxVec, ytt: CxVec, F: IntVec, T: IntVec): + """ + + :param k: + :param V: + :param ytf: + :param ytt: + :param F: + :param T: + :return: + """ + f = F[k] + t = T[k] + return np.conj(V[t]) * np.conj(ytt[k]) + np.conj(V[f]) * np.conj(ytf[k]) + + @nb.jit(nopython=True, cache=True, fastmath=True) def compute_acdc_fx(Vm: Vec, Sbus: CxVec, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py index f1872c5ed..fa1956ff2 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_fx.py @@ -87,33 +87,34 @@ def newton_raphson_fx(problem: PfFormulationTemplate, print("(newton_raphson_fx.py) Singular Jacobian") return problem.get_solution(elapsed=time.time() - start, iterations=iteration) - mu = trust0 - back_track_condition = True - l_iter = 0 - while back_track_condition and mu > tol: - - x2 = x - mu * dx - error2, converged2, _ = problem.update(x2, update_controls=False) - - # change mu for the next iteration - mu *= 0.5 # acceleration_parameter - - # keep back-tracking? - back_track_condition = error2 > error - l_iter += 1 - - if not back_track_condition: - # accept the solution - x = x2 - - if back_track_condition: - # this means that not even the backtracking was able to correct - # the solution, so terminate - logger.add_warning(f"Newton-Raphson's stagnated @iter {iteration}:") - return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + # mu = trust0 + # back_track_condition = True + # l_iter = 0 + # while back_track_condition and mu > tol: + # + # x2 = x - mu * dx + # error2, converged2, _ = problem.update(x2, update_controls=False) + # + # # change mu for the next iteration + # mu *= 0.5 # acceleration_parameter + # + # # keep back-tracking? + # back_track_condition = error2 > error + # l_iter += 1 + # + # if not back_track_condition: + # # accept the solution + # x = x2 + # + # if back_track_condition: + # # this means that not even the backtracking was able to correct + # # the solution, so terminate + # logger.add_warning(f"Newton-Raphson's stagnated @iter {iteration}:") + # return problem.get_solution(elapsed=time.time() - start, iterations=iteration) # set the problem state - error, converged, x = problem.update(x, update_controls=True) + + error, converged, x = problem.update(x - dx, update_controls=True) # update iteration counter iteration += 1 diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index d06059ec5..0c71724d8 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from typing import Tuple +from typing import Tuple, List import numpy as np import pandas as pd from numba import njit @@ -29,7 +29,8 @@ from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, - polar_to_rect, get_Sf, get_St) + polar_to_rect, get_Sf, get_St, + get_It) from GridCalEngine.basic_structures import Vec, IntVec, CxVec @@ -208,6 +209,8 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: # self.k_v_m: IntVec = nc.k_v_m # self.k_qf_beq: IntVec = nc.k_qf_beq + self.idx_conv = self._indices.k_vsc + self._idx_dVa = np.r_[self.pqv, self.pv, self.pq, self.p] self._idx_dVm = np.r_[self.pq, self.p] self._idx_dP = self._idx_dVa @@ -227,6 +230,8 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.tau: Vec = self.nc.branch_data.tap_angle[self.idx_dtau] self.beq: Vec = self.nc.branch_data.Beq[self.idx_dbeq] + self.Gsw = self.nc.branch_data.G0sw[self.idx_conv] + self.Ys = 1.0 / (self.nc.branch_data.R + 1j * self.nc.branch_data.X) self.adm = compute_admittances( @@ -242,11 +247,7 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), Cf=self.nc.Cf, Ct=self.nc.Ct, - G0sw=self.nc.branch_data.G0sw, - If=np.zeros(len(self.nc.branch_data)), - a=self.nc.branch_data.a, - b=self.nc.branch_data.b, - c=self.nc.branch_data.c, + Gsw=expand(self.nc.nbr, self.Gsw, self.idx_conv, 0.0), Yshunt_bus=self.nc.Yshunt_from_devices, conn=self.nc.branch_data.conn, seq=1, @@ -291,17 +292,18 @@ def x2var(self, x: Vec): Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), Cf=self.nc.Cf, Ct=self.nc.Ct, - G0sw=self.nc.branch_data.G0sw, - If=np.zeros(len(self.nc.branch_data)), - a=self.nc.branch_data.a, - b=self.nc.branch_data.b, - c=self.nc.branch_data.c, + Gsw=expand(self.nc.nbr, self.Gsw, self.idx_conv, 0.0), Yshunt_bus=self.nc.Yshunt_from_devices, conn=self.nc.branch_data.conn, seq=1, add_windings_phase=False ) + if self.options.verbose > 1: + print("V:") + for v in self.V: + print(v.real, v.imag) + def var2x(self) -> Vec: """ Convert the internal decission variables into the vector @@ -369,6 +371,16 @@ def fx(self) -> Vec: :return: """ + # Update converter losses + It = get_It(k=self.idx_conv, V=self.V, ytf=self.adm.ytf, ytt=self.adm.ytt, F=self.nc.F, T=self.nc.T) + Itm = np.abs(It) + Itm2 = Itm * Itm + PLoss_IEC = (self.nc.branch_data.alpha3[self.idx_conv] * Itm2 + + self.nc.branch_data.alpha2[self.idx_conv] * Itm2 + + self.nc.branch_data.alpha1[self.idx_conv]) + + self.Gsw = PLoss_IEC / np.power(self.Vm[self.nc.F[self.idx_conv]], 2.0) + # Assumes the internal vars were updated already with self.x2var() Sbus = compute_zip_power(self.S0, self.I0, self.Y0, self.Vm) self.Scalc = compute_power(self.adm.Ybus, self.V) @@ -438,11 +450,7 @@ def fx_diff(self, x: Vec): Beq=beq, Cf=self.nc.Cf, Ct=self.nc.Ct, - G0sw=self.nc.branch_data.G0sw, - If=np.zeros(len(self.nc.branch_data)), - a=self.nc.branch_data.a, - b=self.nc.branch_data.b, - c=self.nc.branch_data.c, + Gsw=expand(self.nc.nbr, self.Gsw, self.idx_conv, 0.0), Yshunt_bus=self.nc.Yshunt_from_devices, conn=self.nc.branch_data.conn, seq=1, @@ -531,7 +539,7 @@ def Jacobian(self, autodiff: bool = False) -> CSC: return J - def get_x_names(self): + def get_x_names(self) -> List[str]: """ Names matching x :return: @@ -544,7 +552,7 @@ def get_x_names(self): return cols - def get_fx_names(self): + def get_fx_names(self) -> List[str]: """ Names matching fx :return: diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py index 6ad0c53b4..620909f63 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -208,7 +208,7 @@ def solve_step_from_f(self, f: Vec) -> Tuple[Vec, bool]: print("dx:\n", dx) if self.options.verbose > 2: Jdf = pd.DataFrame(J.toarray()) - Jdf.to_csv('J.csv', index=False, float_format='%.4f') + Jdf.to_csv(f'J.csv', index=False, float_format='%.4f') return dx, ok diff --git a/src/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py b/src/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py index 0a5541250..1d21a9ebd 100644 --- a/src/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py +++ b/src/GridCalEngine/Simulations/ShortCircuitStudies/short_circuit_worker.py @@ -155,11 +155,7 @@ def short_circuit_unbalanced(calculation_inputs: NumericalCircuit, Beq=np.zeros(nbr), Cf=calculation_inputs.branch_data.C_branch_bus_f.tocsc(), Ct=calculation_inputs.branch_data.C_branch_bus_t.tocsc(), - G0sw=np.zeros(nbr), - If=np.zeros(nbr), - a=np.zeros(nbr), - b=np.zeros(nbr), - c=np.zeros(nbr), + Gsw=np.zeros(nbr), Yshunt_bus=Yshunt_bus0, conn=calculation_inputs.branch_data.conn, seq=0, @@ -181,11 +177,7 @@ def short_circuit_unbalanced(calculation_inputs: NumericalCircuit, Beq=calculation_inputs.branch_data.Beq, Cf=calculation_inputs.branch_data.C_branch_bus_f.tocsc(), Ct=calculation_inputs.branch_data.C_branch_bus_t.tocsc(), - G0sw=calculation_inputs.branch_data.G0sw, - If=np.zeros(nbr), - a=calculation_inputs.branch_data.a, - b=calculation_inputs.branch_data.b, - c=calculation_inputs.branch_data.c, + Gsw=calculation_inputs.branch_data.G0sw, Yshunt_bus=Yshunt_bus1, conn=calculation_inputs.branch_data.conn, seq=1, @@ -207,11 +199,7 @@ def short_circuit_unbalanced(calculation_inputs: NumericalCircuit, Beq=np.zeros(nbr), Cf=calculation_inputs.branch_data.C_branch_bus_f.tocsc(), Ct=calculation_inputs.branch_data.C_branch_bus_t.tocsc(), - G0sw=np.zeros(nbr), - If=np.zeros(nbr), - a=np.zeros(nbr), - b=np.zeros(nbr), - c=np.zeros(nbr), + Gsw=np.zeros(nbr), Yshunt_bus=Yshunt_bus2, conn=calculation_inputs.branch_data.conn, seq=2, @@ -251,11 +239,7 @@ def short_circuit_unbalanced(calculation_inputs: NumericalCircuit, Beq=np.zeros(nbr), Cf=calculation_inputs.branch_data.C_branch_bus_f.tocsc(), Ct=calculation_inputs.branch_data.C_branch_bus_t.tocsc(), - G0sw=np.zeros(nbr), - If=np.zeros(nbr), - a=calculation_inputs.branch_data.a, - b=calculation_inputs.branch_data.b, - c=calculation_inputs.branch_data.c, + Gsw=np.zeros(nbr), Yshunt_bus=np.zeros(nbus, dtype=complex), conn=calculation_inputs.branch_data.conn, seq=1, diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index 7a347f53e..79706f2d8 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -146,13 +146,9 @@ def compute_admittances(R: Vec, vtap_t: Vec, tap_angle: Vec, Beq: Vec, - If: CxVec, Cf: sp.csc_matrix, Ct: sp.csc_matrix, - G0sw: Vec, - a: Vec, - b: Vec, - c: Vec, + Gsw: Vec, Yshunt_bus: CxVec, conn: Union[List[WindingsConnection], ObjVec], seq: int, @@ -170,13 +166,9 @@ def compute_admittances(R: Vec, :param vtap_t: array of virtual taps at the "to" side :param tap_angle: array of tap angles (for all Branches, regardless of their type) :param Beq: Array of equivalent susceptance - :param If: Array of currents "from" in all the Branches :param Cf: Connectivity branch-bus "from" with the branch states computed :param Ct: Connectivity branch-bus "to" with the branch states computed - :param G0sw: base converter switch losses - :param a: quadratic converter losses coefficient - :param b: linear converter losses coefficient - :param c: constant converter losses coefficient + :param Gsw: converter switch losses :param Yshunt_bus: array of shunts equivalent power per bus, from the shunt devices (p.u.) :param seq: Sequence [0, 1, 2] :param conn: array of windings connections (numpy array of WindingsConnection) @@ -185,7 +177,7 @@ def compute_admittances(R: Vec, """ # compute G-switch - Gsw = G0sw + a * np.power(If, 2) + b * If + c + # Gsw = G0sw + a * np.power(If, 2) + b * If + c # form the admittance matrices ys = 1.0 / (R + 1.0j * X + 1e-20) # series admittance diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index 18e5019b4..718a766b3 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -123,6 +123,8 @@ def __init__(self, self.k_qf_beq: IntVec = np.zeros(0, dtype=int) # make Qf = 0 for DC grids self.k_v_m: IntVec = np.zeros(0, dtype=int) self.k_v_beq: IntVec = np.zeros(0, dtype=int) + + self.k_vsc: IntVec = np.zeros(0, dtype=int) self.analyze_branch_controls() # determine the bus indices @@ -170,6 +172,7 @@ def analyze_branch_controls(self) -> None: k_qfzero_beq = list() k_v_m = list() k_v_beq = list() + k_vsc = list() nbr = len(self.tap_phase_control_mode) for k in range(nbr): @@ -237,6 +240,9 @@ def analyze_branch_controls(self) -> None: if conv_type == 1: k_qfzero_beq.append(k) + if is_conv: + k_vsc.append(k) + # determine if there is any control self.any_control = bool(len(k_pf_tau) + len(k_pt_tau) @@ -253,3 +259,4 @@ def analyze_branch_controls(self) -> None: self.k_qf_beq = np.array(k_qfzero_beq, dtype=int) self.k_v_m = np.array(k_v_m, dtype=int) self.k_v_beq = np.array(k_v_beq, dtype=int) + self.k_vsc = np.array(k_vsc, dtype=int) From adee941a4b0c3dbb0481294362d8d5ad90673a65 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 19 Aug 2024 12:52:19 +0100 Subject: [PATCH 156/218] FUBM working on the 6 bus HVDC_vt case --- .idea/workspace.xml | 163 +++++++++--------- .../Derivatives/matpower_derivatives.py | 2 +- .../NumericalMethods/newton_raphson_fx.py | 40 ++++- .../pf_advanced_formulation.py | 131 +++++++++----- .../pf_formulation_template.py | 16 +- .../Topology/admittance_matrices.py | 26 ++- src/GridCalEngine/Utils/Sparse/csc2.py | 26 ++- 7 files changed, 258 insertions(+), 146 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e2f16d78e..29d5c4406 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,19 +28,14 @@ - + + + + + + + + + + - - - - - - + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", - "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.GridCalMain.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.fubm_example.executor": "Debug", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - + @@ -677,17 +683,17 @@ + - + - @@ -1436,7 +1442,7 @@ - + 1656059954202 @@ -1781,7 +1787,7 @@ - @@ -1827,7 +1833,6 @@ - @@ -1852,7 +1857,8 @@ - @@ -2650,6 +2656,7 @@ + @@ -2787,7 +2794,7 @@ - + @@ -2844,7 +2851,7 @@ - + diff --git a/src/tests/data/grids/fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp.m b/src/tests/data/grids/fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp.m new file mode 100644 index 000000000..0c2b2c430 --- /dev/null +++ b/src/tests/data/grids/fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp.m @@ -0,0 +1,3986 @@ +function mpc = fubm_case1354pegase_2MTDC_ctrls_pf_qt_dp +%FUBM-CASE1354PEGASE Power flow data for medium part of European system (Modified). +% Please see CASEFORMAT for details on the case file format. +% +% This case accurately represents the size and complexity of part of the +% European high voltage transmission network. The network contains 1,354 +% buses, 260 generators, and 1,991 branches and it operates at 380 and +% 220 kV. Please note that the data are fictitious and do not correspond +% to real world data. They can thus be used to validate methods and tools +% but should not be used for operation and planning of the European grid. +% +% The data stems from the Pan European Grid Advanced Simulation and State +% Estimation (PEGASE) project, part of the 7th Framework Program of the +% European Union (https://www.fp7-pegase.com/). +% +% When publishing results based on this data, please cite: +% +% C. Josz, S. Fliscounakis, J. Maeght, and P. Panciatici, "AC Power Flow +% Data in MATPOWER and QCQP Format: iTesla, RTE Snapshots, and PEGASE" +% https://arxiv.org/abs/1603.01533 +% +% S. Fliscounakis, P. Panciatici, F. Capitanescu, and L. Wehenkel, +% "Contingency ranking with respect to overloads in very large power +% systems taking into account uncertainty, preventive and corrective +% actions", Power Systems, IEEE Trans. on, (28)4:4909-4917, 2013. +% https://doi.org/10.1109/TPWRS.2013.2251015 +% +% Remarks: +% +% 1. Line flow limits are 100 MVA (at 1 p.u. voltage) lower than the +% current flow limits found in PEGASE data. +% +% 2. PEGASE data contains asymmetric shunt conductance and susceptance in +% the PI transmission line model of branches. Thus total line charging +% susceptance of branches is set to 0 p.u. and the nodal representation +% of shunt condutance and susceptance is used. As a result, power flow +% equations are left unchanged compared with original PEGASE data. +% However, line flow constraints in the optimal flow problem are +% modified. +% +% 3. Identical linear costs are used for all generators to form a loss +% minimizing OPF objective function. +% +% 4. Since some parts of the network are aggregated, some generators +% (e.g. with negative PMIN) represent aggregations of multiple loads +% and generators. +% +% Contacts: +% Cédric Josz, Stéphane Fliscounakis, Jean Maeght, Patrick Panciatici +% firstname.lastname@rte-france.com +% Réseau de Transport d'Electricité (French Transmission System Operator) +% Département Expertise Système, Immeuble "Le Colbert" +% 9 rue de la Porte de Buc, 78000 Versailles Cedex, France +% +% This file has been modified to include 1 HVDC link and 1 MTDC grid. +% Also control variables in the indicated buses are now automatic to meet +% a setting. + +% ABRAHAM ALVAREZ BUSTOS +% This code is based and created for MATPOWER +% This is part of the Flexible Universal Branch Model (FUBM) for Matpower +% For more info about the model, and modifications to this case, email: +% snoop_and@hotmail.com, abraham.alvarez-bustos@durham.ac.uk + +% May 15th, 2020 + +% MATPOWER +% Copyright (c) 2015, 2016 by Cédric Josz, Stéphane Fliscounakis, Jean Maeght, +% and Patrick Panciatici +% Licensed under the Creative Commons Attribution 4.0 International license, +% https://creativecommons.org/licenses/by/4.0/ + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin +mpc.bus = [ + 3 1 151 48.8 0 4.69 0 1.016674 -21.761632 220 5 1.1 0.9; + 4 1 171.41 23.4 0 2.1 0 1.026472 -7.007354 220 5 1.1 0.9; + 10 1 134 24.7 0 12.44 0 1.038534 -24.281644 220 5 1.1 0.9; + 21 1 161.2 39.3 0 30.71 0 1.036195 -21.958828 220 5 1.1 0.9; + 22 1 0 -0 0 0.85 0 1.035058 -18.483339 220 5 1.1 0.9; + 26 1 167.3 54.8 0 110.54 0 1.032267 -3.318448 380 5 1.1 0.9; + 29 1 152.9 49.4 0 27.65 0 0.994409 -13.816418 380 5 1.1 0.9; + 44 1 -0 0 0 7.27 0 1.045829 -22.181066 220 5 1.1 0.9; + 53 1 48.65 16.1 0 7.14 0 1.063422 -9.070013 220 5 1.1 0.9; + 58 1 0 0 0 2.31 0 0.983702 -21.159412 380 5 1.1 0.9; + 59 1 119.2 20.7 0 3.31 0 1.036808 -23.631999 220 5 1.1 0.9; + 90 1 363.25 115.39 0 3.95 0 1.042187 -27.546292 220 5 1.1 0.9; + 96 1 -8.4 28.66 0 3.49 0 1.030441 -15.689479 220 5 1.1 0.9; + 113 1 -0 -0 0 6.532711 0 1.030718 -14.242909 380 5 1.1 0.9; + 115 1 0 -0 0 4.21 0 1.066797 -19.783678 220 5 1.1 0.9; + 118 1 704.53 -35.33 0 13.102834 0 1.020256 -11.430028 380 5 1.1 0.9; + 124 2 0 0 0 0 0 1.081537 8.330657 220 5 1.1 0.9; + 128 1 23.73 12.7 0 0.52 0 1.020482 -16.063366 220 5 1.1 0.9; + 145 1 38.34 5.6 0 7.64 0 1.039096 -8.903623 220 5 1.1 0.9; + 148 1 32.34 12 0 6.1 0 1.041568 -7.991267 220 5 1.1 0.9; + 150 2 0 0 0 0 0 1.062805 2.531831 220 5 1.1 0.9; + 163 1 147.76 32.73 0 8.34 0 1.047047 -10.672351 220 5 1.1 0.9; + 171 1 100.8 13.2 0 5.24 0 1.069649 -25.153324 220 5 1.1 0.9; + 174 1 370.5 -17 0 9.91 0 1.074846 -27.942789 220 5 1.1 0.9; + 184 1 -0 -0 0 2.42 0 1.042771 -11.94851 220 5 1.1 0.9; + 188 1 36.84 13.9 0 3.3 0 1.018752 -19.550413 220 5 1.1 0.9; + 195 1 73.14 21.55 0 8.52 0 1.056337 -8.791116 220 5 1.1 0.9; + 196 1 0 -0 0 12.48 0 1.074825 -26.319857 220 5 1.1 0.9; + 198 1 39.74 11.8 0 1.44 0 1.01673 -16.306681 220 5 1.1 0.9; + 207 1 321.98 84.4 0 1.34 0 1.026604 -13.457588 220 5 1.1 0.9; + 216 1 155.6 54.7 0 2.21 0 1.039362 -24.590496 220 5 1.1 0.9; + 217 1 105.2 0.1 0 7.36 0 1.042762 -2.603638 220 5 1.1 0.9; + 218 1 69.83 15.12 0 2.23 0 1.045923 -13.114892 220 5 1.1 0.9; + 221 2 0 0 0 0 0 0.984682 -21.807603 380 5 1.1 0.9; + 225 1 0 0 0 1.15 0 1.063761 -20.174043 220 5 1.1 0.9; + 280 1 119.6 29.6 0 5.34 0 1.035725 -11.193679 220 5 1.1 0.9; + 283 1 27.33 11.9 0 1.17 0 1.035204 -12.094637 220 5 1.1 0.9; + 292 1 13.82 1.4 0 0.7 0 1.047544 -14.765137 220 5 1.1 0.9; + 305 1 103 12 0 0.63 0 1.067188 -32.434719 220 5 1.1 0.9; + 306 1 -0 0 0 4.76 0 1.030032 -18.823594 220 5 1.1 0.9; + 314 1 163.1 46.3 0 10.6 0 1.005548 -16.020947 220 5 1.1 0.9; + 333 1 524.5 43 0 6.85 0 1.014579 -42.137692 220 5 1.1 0.9; + 338 2 0 0 0 0 0 1.048249 -6.162533 220 5 1.1 0.9; + 346 1 197.5 48.3 0 0.71 0 1.040694 -21.298393 220 5 1.1 0.9; + 350 1 110.4 26.2 0 5.62 0 1.043185 -24.295117 220 5 1.1 0.9; + 352 2 0 0 0 0 0 1.055378 0.262953 380 5 1.1 0.9; + 367 1 65.17 -51.5 0 4.85 0 1.07164 -23.599251 220 5 1.1 0.9; + 401 1 56.5 36.29 0 3.08 0 1.026548 -14.262083 220 5 1.1 0.9; + 408 1 129.1 7.4 0 0.04 0 1.039791 -11.549917 220 5 1.1 0.9; + 410 1 170.89 50.38 0 6.44 0 1.041564 -26.439994 220 5 1.1 0.9; + 413 2 0 0 0 0 0 1.05013 -6.606455 220 5 1.1 0.9; + 416 1 70.68 13.5 0 6.96 0 1.0458 -6.728632 220 5 1.1 0.9; + 426 1 123.1 6.5 0 3.25 0 1.040489 -18.395441 220 5 1.1 0.9; + 432 1 -0 -0 0 68.517663 0 1.047774 2.403578 380 5 1.1 0.9; + 444 1 0 -0 0 2.45 0 1.036267 -12.201434 220 5 1.1 0.9; + 449 1 0 0 0 29.42 0 1.021739 -8.489958 380 5 1.1 0.9; + 453 2 0 0 0 0 0 1.018914 -7.857046 380 5 1.1 0.9; + 455 1 274.32 5.66 0 13.24 0 1.045882 -30.596498 220 5 1.1 0.9; + 490 1 20.52 4 0 2.77 0 1.036451 -23.014287 220 5 1.1 0.9; + 500 1 144.4 35.5 0 7.66 0 1.040423 -15.042452 220 5 1.1 0.9; + 502 1 -0 0 0 1.96 0 1.043564 -6.675538 220 5 1.1 0.9; + 506 1 -0 0 0 0.4 0 1.063297 -9.078728 380 5 1.1 0.9; + 513 1 57.46 17.1 0 1.61 0 1.038461 -7.443414 220 5 1.1 0.9; + 516 2 0 0 0 0 0 1.075592 -33.453515 220 5 1.1 0.9; + 520 1 118.5 20.4 0 2.57 0 1.048239 -27.108761 220 5 1.1 0.9; + 549 1 0 -0 0 5.15 0 1.074517 -10.959606 220 5 1.1 0.9; + 554 1 0 -0 0 1.97 0 1.024071 -20.793083 220 5 1.1 0.9; + 556 1 16.52 9 0 1.17 0 1.03694 -22.762979 220 5 1.1 0.9; + 561 1 0 -0 0 0.32 0 1.055451 -11.021763 220 5 1.1 0.9; + 564 2 0 0 0 0 0 1.069817 -47.078276 220 5 1.1 0.9; + 575 1 0 -0 0 0.67 0 1.04436 -11.163788 220 5 1.1 0.9; + 583 2 0 0 0 0 0 1.045397 -15.568574 220 5 1.1 0.9; + 594 1 67.57 17 0 5.75 0 1.036683 -8.869667 220 5 1.1 0.9; + 601 1 140.6 42.6 0 5.71 0 1.040685 -14.418335 220 5 1.1 0.9; + 604 1 33.24 4.4 0 24.54 0 0.996939 -12.93567 380 5 1.1 0.9; + 608 1 150.9 10.4 0 4.77 0 1.071753 -32.66829 220 5 1.1 0.9; + 609 1 -0 -0 0 5.67 0 1.025344 -14.779536 220 5 1.1 0.9; + 615 2 0 0 0 0 0 1.063876 -10.607341 220 5 1.1 0.9; + 616 2 0 0 0 0 0 1.048713 -12.997468 220 5 1.1 0.9; + 619 1 72.88 14.4 0 2.96 0 1.046742 -25.252227 220 5 1.1 0.9; + 639 2 0 0 0 0 0 1.051376 -29.999643 220 5 1.1 0.9; + 641 1 45.32 18.5 0 0.74 0 1.03515 -13.956622 220 5 1.1 0.9; + 658 1 258.4 66.7 0 5.87 0 1.033849 -17.442414 220 5 1.1 0.9; + 661 1 -0 -0 0 0.6 0 1.040021 2.414523 380 5 1.1 0.9; + 666 1 -5.61 -2.79 0 150.93 0 1.03076 -5.413919 380 5 1.1 0.9; + 678 1 232.1 89.8 0 0.09 0 0.986375 -18.62447 220 5 1.1 0.9; + 682 2 0 0 0 0 0 1.0691 -10.045044 220 5 1.1 0.9; + 687 1 -0 0 0 5.6 0 1.05742 -4.068613 220 5 1.1 0.9; + 707 1 83.99 21.2 0 5.36 0 1.054495 -25.620212 220 5 1.1 0.9; + 718 1 135.11 41 0 5.31 0 1.031148 -24.884639 220 5 1.1 0.9; + 720 1 -0 -0 0 23.554121 0 0.981824 -26.763103 380 5 1.1 0.9; + 726 1 400.3 189.9 0 0.53 0 1.048069 -4.933448 220 5 1.1 0.9; + 742 1 0 -0 0 2.83 0 1.05759 -4.070122 220 5 1.1 0.9; + 747 1 69.58 16 0 3.03 0 1.073922 -26.380554 220 5 1.1 0.9; + 749 2 0 0 0 0 0 1.057884 -28.950791 220 5 1.1 0.9; + 750 1 -0 -0 0 18.63 0 1.041141 -24.444747 220 5 1.1 0.9; + 757 2 0 0 0 0 0 1.017567 -13.765564 380 5 1.1 0.9; + 766 1 -0 0 0 7.85 0 1.047952 -19.8489 220 5 1.1 0.9; + 769 1 152.57 40 0 6.12 0 1.024104 -10.886119 220 5 1.1 0.9; + 772 1 343.9 141.9 0 5.55 0 1.034361 -14.167643 220 5 1.1 0.9; + 776 2 0 0 0 0 0 1.026368 -13.331099 220 5 1.1 0.9; + 778 2 0 0 0 0 0 1.049411 -6.680953 220 5 1.1 0.9; + 789 1 -0 -0 0 6.63 0 1.051689 -5.954643 220 5 1.1 0.9; + 795 2 0 0 0 0 0 1.035522 -15.484388 220 5 1.1 0.9; + 800 1 50.56 18 0 0.11 0 1.034778 -12.128589 220 5 1.1 0.9; + 803 2 0 0 0 0 0 1.041369 -24.768342 220 5 1.1 0.9; + 804 1 -0 -0 0 7.26 0 1.05585 -7.563603 220 5 1.1 0.9; + 805 1 124.5 29.6 0 15.4 0 1.05673 -11.12828 220 5 1.1 0.9; + 809 1 0 -0 0 58.088687 0 1.027525 -0.064839 380 5 1.1 0.9; + 819 1 0 -0 0 0.22 0 1.052169 -0.720463 220 5 1.1 0.9; + 823 2 0 0 0 0 0 1.044097 -2.229251 380 5 1.1 0.9; + 839 1 -0 -0 0 8.17514 0 1.024385 -1.386321 380 5 1.1 0.9; + 851 2 0 0 0 0 0 1.00025 -17.401395 220 5 1.1 0.9; + 858 2 0 0 0 0 0 1.031745 1.110134 380 5 1.1 0.9; + 870 1 110 3.4 0 11.95 0 1.040762 -24.602002 220 5 1.1 0.9; + 871 1 108.89 -21.76 0 3.72 0 1.056945 -11.955754 220 5 1.1 0.9; + 883 1 192.5 78.3 0 6.65 0 1.017176 -10.133417 220 5 1.1 0.9; + 891 2 0 0 0 0 0 1.064525 -18.97841 380 5 1.1 0.9; + 892 1 -0 -0 0 9.1 0 1.069234 -34.99461 220 5 1.1 0.9; + 900 1 0 0 0 0.15 0 1.050278 -15.385577 220 5 1.1 0.9; + 903 1 82.69 20.1 0 1.36 0 1.073885 -26.405705 220 5 1.1 0.9; + 905 1 631.71 -54.16 0 7.534129 0 1.035643 -15.075813 380 5 1.1 0.9; + 907 1 -0 -0 0 0.05 0 1.038555 -9.767436 220 5 1.1 0.9; + 908 1 125.9 -0.5 0 0.21 0 1.065214 -7.929625 220 5 1.1 0.9; + 920 1 34.44 8.5 0 1.11 0 1.045537 -20.769903 220 5 1.1 0.9; + 923 1 62.07 14.7 0 4.84 0 1.035596 -23.090183 220 5 1.1 0.9; + 933 1 -0 0 0 22.75 0 1.019946 -21.525393 220 5 1.1 0.9; + 935 1 -0 0 0 9.46 0 1.049182 -24.470238 220 5 1.1 0.9; + 953 1 108.7 -12.15 0 37.11 0 1.065973 -13.014498 380 5 1.1 0.9; + 954 1 66.27 13.6 0 0.67 0 1.044324 -21.525875 220 5 1.1 0.9; + 960 1 -0 -0 0 108.728602 0 1.063295 -9.078724 380 5 1.1 0.9; + 964 1 88.5 16.5 0 146.44 0 1.015553 -11.659761 380 5 1.1 0.9; + 972 2 0 0 0 0 0 1.072621 5.35893 380 5 1.3 0.7; + 980 1 14.71 4.6 0 7.88 0 1.047164 -25.138433 220 5 1.1 0.9; + 1001 2 0 0 0 0 0 1.074143 -33.62199 220 5 1.1 0.9; + 1002 2 0 0 0 0 0 1.041506 -20.086455 220 5 1.1 0.9; + 1005 1 0 0 0 0.81 0 1.053955 -12.379476 220 5 1.1 0.9; + 1015 1 44.55 0 0 4.78 0 1.056277 -5.398682 220 5 1.1 0.9; + 1026 1 201.4 53 0 9.67 0 1.028182 -29.352232 220 5 1.1 0.9; + 1027 1 -5.91 -2.33 0 30.393595 0 0.990542 -18.181223 380 5 1.1 0.9; + 1033 1 26.33 5.3 0 4.31 0 1.040934 -24.521854 220 5 1.1 0.9; + 1035 1 382.5 57.9 0 8.16 0 1.067815 -32.322562 220 5 1.1 0.9; + 1039 1 34.64 -0 0 0.91 0 1.034441 -19.543294 220 5 1.1 0.9; + 1040 1 31.94 8.8 0 3.79 0 1.038913 -9.027471 220 5 1.1 0.9; + 1043 2 0 0 0 0 0 1.028946 -3.693426 380 5 1.1 0.9; + 1051 1 -0 0 0 3.79 0 1.041627 -12.829065 220 5 1.1 0.9; + 1077 1 -0 0 0 0.1 0 1.035206 -12.094658 220 5 1.1 0.9; + 1078 1 -0 -0 0 4.74 0 1.061509 -3.472987 220 5 1.1 0.9; + 1081 1 277.86 58.95 0 182.880644 0 1.038644 -10.509999 380 5 1.1 0.9; + 1083 2 0 0 0 0 0 1.049472 -8.613737 220 5 1.1 0.9; + 1090 1 56.06 18.7 0 4.24 0 1.0101 -21.692579 220 5 1.1 0.9; + 1093 2 0 0 0 0 0 1.027056 -8.507308 380 5 1.1 0.9; + 1096 1 0 -0 0 0.16 0 1.050189 -1.116839 220 5 1.1 0.9; + 1100 2 0 0 0 0 0 1.042801 -4.348181 220 5 1.1 0.9; + 1101 1 -0 -0 0 2.05 0 1.033508 -14.209132 220 5 1.1 0.9; + 1102 2 0 0 0 0 0 1.049879 -6.64195 220 5 1.1 0.9; + 1105 1 29.83 7.3 0 6.49 0 1.074759 -26.325932 220 5 1.1 0.9; + 1111 1 0 0 0 1.1 0 1.036823 -8.871578 220 5 1.1 0.9; + 1129 1 190.47 55.03 0 6.7 0 1.003325 -22.532961 220 5 1.1 0.9; + 1136 1 16.22 2 0 0.71 0 1.034786 -18.539009 220 5 1.1 0.9; + 1137 1 -0 -0 0 0.05 0 1.048666 -24.42816 220 5 1.1 0.9; + 1146 1 32.84 -0 0 1.41 0 1.032638 -5.627486 220 5 1.1 0.9; + 1151 1 -0 -0 0 18.82 0 1.043354 -20.606997 220 5 1.1 0.9; + 1153 1 12.41 3.9 0 2.23 0 1.034654 -6.058841 220 5 1.1 0.9; + 1156 1 65.67 24 0 9.95 0 1.038055 -22.501868 220 5 1.1 0.9; + 1159 1 112.4 13 0 3.99 0 1.052615 -36.244174 220 5 1.1 0.9; + 1172 1 -0 -0 0 2.3 0 1.074468 -25.55724 220 5 1.1 0.9; + 1179 1 86.6 23.4 0 0.39 0 1.040896 -2.802576 220 5 1.1 0.9; + 1183 1 199.4 -19.9 0 6.68 0 1.066643 -33.081849 220 5 1.1 0.9; + 1187 1 67.57 21.2 0 5.71 0 1.039857 -4.955282 220 5 1.1 0.9; + 1188 1 30.93 6.6 0 9.09 0 1.054495 -14.222981 220 5 1.1 0.9; + 1194 1 129.6 13.3 0 13.98 0 1.03896 -15.127161 380 5 1.1 0.9; + 1198 1 0 0 0 30.637696 0 0.987964 -14.637206 380 5 1.1 0.9; + 1201 1 114.1 23.5 0 1.08 0 1.050304 -19.627666 220 5 1.1 0.9; + 1216 1 0 0 0 4.93 0 1.040626 -10.966354 220 5 1.1 0.9; + 1233 1 0 -0 0 1.72 0 1.037981 -22.526704 220 5 1.1 0.9; + 1234 1 71.78 17.9 0 1.96 0 1.022628 -16.524518 220 5 1.1 0.9; + 1237 2 0 0 0 0 0 1.108028 -6.285992 380 5 1.3 0.7; + 1248 1 0 0 0 1.17 0 1.047205 -10.673893 220 5 1.1 0.9; + 1249 1 348.93 26.47 0 9.36 0 1.019402 -11.26449 380 5 1.1 0.9; + 1251 2 0 0 0 0 0 1.027102 -8.516785 380 5 1.1 0.9; + 1262 1 -0 0 0 10.73 0 1.038607 -22.034538 220 5 1.1 0.9; + 1265 1 173 -21.3 0 5.93 0 1.066705 -50.057306 220 5 1.1 0.9; + 1275 1 52.46 2.9 0 0.35 0 1.032647 -18.856368 220 5 1.1 0.9; + 1295 2 0 0 0 0 0 1.03682 -8.643487 220 5 1.1 0.9; + 1301 1 479 99.2 0 10.68 0 1.05167 -28.720012 220 5 1.1 0.9; + 1305 1 -0 -0 0 4.34 0 1.038253 -22.269637 220 5 1.1 0.9; + 1311 1 37.94 15.2 0 35.31 0 1.033986 -21.654604 380 5 1.1 0.9; + 1326 1 0 0 0 0.98 0 1.069384 -34.995605 220 5 1.1 0.9; + 1334 1 0 0 0 0.59 0 1.025188 -16.314102 220 5 1.1 0.9; + 1341 2 0 0 0 0 0 1.032899 -14.204982 220 5 1.1 0.9; + 1343 1 -0 -0 0 58.3 0 0.996377 -14.200565 380 5 1.1 0.9; + 1354 2 0 0 0 0 0 1.041045 -7.375163 220 5 1.1 0.9; + 1355 1 -3.29 -1.32 0 190.704588 0 1.0328 -8.554156 380 5 1.1 0.9; + 1364 1 40.85 14.5 0 0.59 0 1.039851 -12.092524 220 5 1.1 0.9; + 1380 1 145.2 21.4 0 1.09 0 1.033661 -22.574327 220 5 1.1 0.9; + 1394 1 30.93 7.6 0 4.69 0 1.074659 -26.314245 220 5 1.1 0.9; + 1397 1 0 -0 0 2.14 0 1.037924 -12.820941 220 5 1.1 0.9; + 1398 1 196.7 44.2 0 0.1 0 1.017322 -19.003234 220 5 1.1 0.9; + 1401 1 11.91 2.9 0 5.27 0 1.038647 -14.758146 220 5 1.1 0.9; + 1414 1 144.7 20.3 0 6.35 0 1.022683 -27.895964 220 5 1.1 0.9; + 1415 1 0 -0 0 0.3 0 1.032141 -11.506028 220 5 1.1 0.9; + 1422 2 0 0 0 0 0 1.04353 -20.966559 220 5 1.1 0.9; + 1435 1 -0 0 0 3.85 0 1.044674 -24.345986 220 5 1.1 0.9; + 1436 2 0 0 0 0 0 1.047684 -12.917585 220 5 1.1 0.9; + 1448 1 0 0 0 9.49 0 1.075069 -15.319825 220 5 1.1 0.9; + 1459 1 -0 -0 0 3.38 0 1.042934 -21.817757 220 5 1.1 0.9; + 1462 1 -0 0 0 0.42 0 1.043552 -20.967069 220 5 1.1 0.9; + 1465 1 -11.03 -5.11 0 29.706803 0 0.988454 -15.339654 380 5 1.1 0.9; + 1478 2 0 0 0 0 0 1.048068 -15.82908 220 5 1.1 0.9; + 1483 1 0 0 0 4.86 0 1.064156 -26.867437 220 5 1.1 0.9; + 1486 1 79.59 18.8 0 6.78 0 1.034956 -23.34269 220 5 1.1 0.9; + 1494 1 -1.85 -1.63 0 31.424588 0 1.034255 -11.521816 380 5 1.1 0.9; + 1502 1 -0 0 0 37.116157 0 1.027764 -26.693479 380 5 1.1 0.9; + 1504 1 0 -0 0 1.84 0 1.025322 -14.28951 220 5 1.1 0.9; + 1526 1 -10.86 -5.93 0 12.54 0 1.042753 -11.9479 220 5 1.1 0.9; + 1538 1 36.34 15.2 0 0.3 0 1.033256 -8.75699 220 5 1.1 0.9; + 1539 1 73.58 3.24 0 52.35 0 1.059384 -15.296455 220 5 1.1 0.9; + 1541 1 125.4 45.8 0 0 0 1.039282 -23.538177 220 5 1.1 0.9; + 1545 1 42.55 8.2 0 2.06 0 1.042222 -23.472695 220 5 1.1 0.9; + 1547 1 -0 -0 0 1.02 0 1.040481 -15.042995 220 5 1.1 0.9; + 1551 1 -0 -0 0 7.99 0 1.043158 -20.41875 220 5 1.1 0.9; + 1552 1 20.42 8.1 0 35.15 0 1.042604 -16.620759 380 5 1.1 0.9; + 1554 1 0 -0 0 4.96 0 1.020729 -16.043428 220 5 1.1 0.9; + 1556 1 -0 -0 0 0.95 0 1.061796 -11.391738 220 5 1.1 0.9; + 1562 1 77.39 24.1 0 2.67 0 1.042236 -25.854486 220 5 1.1 0.9; + 1566 1 156.9 -4 0 2.48 0 1.036219 -24.756749 220 5 1.1 0.9; + 1568 1 69.08 21.5 0 1.65 0 1.046858 -25.154702 220 5 1.1 0.9; + 1578 1 0 -0 0 1.38 0 1.040417 -12.029853 220 5 1.1 0.9; + 1584 1 0 -0 0 3.24 0 1.026871 -14.239921 220 5 1.1 0.9; + 1592 1 28.33 44.8 0 0.51 0 1.037512 -2.335282 220 5 1.1 0.9; + 1595 1 71.77 13.57 0 3.84 0 1.01584 -29.283839 220 5 1.1 0.9; + 1604 2 0 0 0 0 0 1.043862 -6.640235 220 5 1.1 0.9; + 1605 1 -0 0 0 0.05 0 1.076968 -24.357645 220 5 1.1 0.9; + 1607 1 73.78 -0 0 2.69 0 1.030671 -5.514136 380 5 1.1 0.9; + 1609 1 0 0 0 6.55 0 1.05016 -20.676376 220 5 1.1 0.9; + 1625 1 73.18 22.3 0 8.77 0 1.047827 -19.847235 220 5 1.1 0.9; + 1629 1 41.95 8.5 0 1.05 0 1.043667 -11.062381 220 5 1.1 0.9; + 1642 2 0 0 0 0 0 1.028554 0.427747 380 5 1.1 0.9; + 1643 1 95.71 25.9 0 11.38 0 1.042277 -25.887944 220 5 1.1 0.9; + 1644 1 449.56 245.72 0 94.55 0 1.054472 3.4279 380 5 1.1 0.9; + 1662 1 3.67 -1.86 0 3.89 0 1.046228 -20.80193 220 5 1.1 0.9; + 1672 1 -28.13 -0.83 0 0.1 0 1.061821 -11.405066 220 5 1.1 0.9; + 1680 2 0 0 0 0 0 1.04395 -2.225166 380 5 1.1 0.9; + 1692 1 83.19 25.8 0 0.33 0 1.047275 -10.47462 220 5 1.1 0.9; + 1704 1 62.16 8 0 2.99 0 1.038923 -13.052366 220 5 1.1 0.9; + 1708 2 0 0 0 0 0 1.037938 -13.186223 380 5 1.1 0.9; + 1709 1 -15.38 -4.94 0 33.241519 0 1.007462 -14.734072 380 5 1.1 0.9; + 1711 1 25.13 -61.6 0 3.68 0 1.052686 -29.767092 220 5 1.1 0.9; + 1721 2 0 0 0 0 0 1.062238 2.466713 220 5 1.1 0.9; + 1730 1 -17.18 -4.35 0 44.419365 0 1.025799 -14.51076 380 5 1.1 0.9; + 1742 1 0 0 0 6.68 0 1.030326 -32.491405 220 5 1.1 0.9; + 1746 1 -0 0 0 1.86 0 1.049354 -24.089302 220 5 1.1 0.9; + 1750 1 58.46 6.6 0 10.13 0 1.036578 -19.191311 220 5 1.1 0.9; + 1754 2 0 0 0 0 0 1.04286 -17.149587 380 5 1.1 0.9; + 1758 1 0 -0 0 121.29 0 1.03465 -4.424306 380 5 1.1 0.9; + 1763 1 -0 -0 0 0.28 0 1.034875 -30.808254 380 5 1.1 0.9; + 1767 1 333.5 -1.4 0 8.37 0 1.049612 -45.569227 220 5 1.1 0.9; + 1768 1 73.98 22.5 0 1.15 0 1.042927 -11.13756 220 5 1.1 0.9; + 1775 1 -0 0 0 1.64 0 1.05106 -25.97492 220 5 1.1 0.9; + 1794 2 0 0 0 0 0 1.05295 -0.236871 380 5 1.1 0.9; + 1798 1 -0.63 -0.83 0 22.810288 0 0.987325 -7.424983 380 5 1.1 0.9; + 1803 1 -0 -0 0 0.05 0 1.038883 -22.036572 220 5 1.1 0.9; + 1808 2 0 0 0 0 0 1.046224 -0.834506 220 5 1.1 0.9; + 1813 1 88.92 19.79 0 2.81 0 1.029057 -7.519944 220 5 1.1 0.9; + 1817 1 108.91 33.7 0 56.24 0 1.069539 -12.567622 380 5 1.1 0.9; + 1833 1 0 0 0 3.33 0 1.036371 -22.480232 220 5 1.1 0.9; + 1838 1 0 -0 0 3.02 0 1.037419 -22.162507 220 5 1.1 0.9; + 1844 1 -28.14 -0.76 0 0.1 0 1.061839 -11.404513 220 5 1.1 0.9; + 1851 2 0 0 0 0 0 1.04762 -12.927099 220 5 1.1 0.9; + 1852 2 0 0 0 0 0 1.054325 -25.744509 220 5 1.1 0.9; + 1857 1 0 0 0 1.53 0 1.028608 -11.055937 220 5 1.1 0.9; + 1860 1 88.8 -3.2 0 13.63 0 1.060858 -25.532569 220 5 1.1 0.9; + 1866 1 209.2 23.5 0 6.44 0 1.04474 -28.285319 220 5 1.1 0.9; + 1868 1 11.71 3.8 0 2.96 0 1.035258 -15.877966 220 5 1.1 0.9; + 1876 1 -0 -0 0 6.273568 0 1.030797 -14.242223 380 5 1.1 0.9; + 1883 1 27.33 5 0 6.77 0 1.029787 -16.425673 220 5 1.1 0.9; + 1888 2 0 0 0 0 0 1.039377 -2.376673 220 5 1.1 0.9; + 1895 1 20.82 -0 0 0.14 0 1.070353 7.588403 220 5 1.1 0.9; + 1896 1 -0 -0 0 1.18 0 1.021131 -6.153674 380 5 1.1 0.9; + 1910 1 -0 0 0 2.68 0 1.049243 -6.695385 220 5 1.1 0.9; + 1914 2 0 0 0 0 0 1.035636 -20.619184 220 5 1.1 0.9; + 1917 1 197.5 -31 0 17.34 0 1.050486 -25.132946 220 5 1.1 0.9; + 1923 1 192.11 45.5 0 68.04 0 1.002407 -11.646061 380 5 1.1 0.9; + 1940 1 0 0 0 1.19 0 1.03614 -18.037347 220 5 1.1 0.9; + 1959 2 0 0 0 0 0 1.064692 -10.511132 220 5 1.1 0.9; + 1965 1 248.7 8.1 0 12.46 0 1.066548 -49.702693 220 5 1.1 0.9; + 1973 1 210.1 66.2 0 59.36 0 1.074741 -26.300211 220 5 1.1 0.9; + 1979 1 0 0 0 0.14 0 1.074144 -33.621995 220 5 1.1 0.9; + 1980 1 177.3 36.4 0 0.7 0 1.040983 -21.42173 220 5 1.1 0.9; + 1998 1 25.73 7.3 0 2.82 0 1.033294 -20.141362 220 5 1.1 0.9; + 2012 1 41.45 4.9 0 18.43 0 1.038506 -18.675791 220 5 1.1 0.9; + 2019 1 72.08 21.3 0 7.19 0 1.044528 -21.078894 220 5 1.1 0.9; + 2020 1 0 0 0 9.98 0 1.051074 -24.096673 220 5 1.1 0.9; + 2021 1 3.9 1 0 3.81 0 1.050096 -24.96566 220 5 1.1 0.9; + 2035 2 0 0 0 0 0 1.03088 0.693557 380 5 1.1 0.9; + 2042 1 14.02 6.5 0 0.09 0 1.037536 -5.903671 220 5 1.1 0.9; + 2043 1 3.2 1.7 0 0.05 0 1.043517 -20.967534 220 5 1.1 0.9; + 2044 1 0 0 0 0.14 0 1.032138 -12.426968 220 5 1.1 0.9; + 2050 2 0 0 0 0 0 1.009914 -1.144693 380 5 1.1 0.9; + 2056 1 -0 0 0 7.338808 0 1.038215 -9.076082 380 5 1.1 0.9; + 2057 1 120.2 20.5 0 19.94 0 1.04971 -30.773674 220 5 1.1 0.9; + 2072 1 101.2 2.1 0 38.43 0 1.065746 -17.405584 380 5 1.1 0.9; + 2078 1 77.19 18.6 0 2.22 0 1.020675 -14.721188 220 5 1.1 0.9; + 2079 1 0 -0 0 13.94 0 1.050272 -12.128304 220 5 1.1 0.9; + 2083 1 121.4 20.2 0 16.61 0 1.035 -18.482915 220 5 1.1 0.9; + 2085 2 0 0 0 0 0 1.040351 2.467063 380 5 1.1 0.9; + 2088 1 -0 0 0 6.02 0 1.052176 -12.052739 220 5 1.1 0.9; + 2089 1 199.86 56.93 0 46.83 0 1.04312 -25.770522 220 5 1.1 0.9; + 2093 1 -5.64 -2.84 0 34.582195 0 1.016671 -8.086067 380 5 1.1 0.9; + 2101 1 -0 -0 0 38.32 0 1.02998 -5.549174 380 5 1.1 0.9; + 2128 1 79.09 18.7 0 10.8 0 1.035961 -23.062582 220 5 1.1 0.9; + 2129 1 0 0 0 56.686515 0 1.016495 -8.242431 380 5 1.1 0.9; + 2132 1 107.3 14.2 0 20.23 0 1.039669 -15.783021 220 5 1.1 0.9; + 2142 1 0 -0 0 7.63 0 1.050391 -7.902365 220 5 1.1 0.9; + 2155 1 63.67 20.2 0 6.13 0 1.037645 -5.893797 220 5 1.1 0.9; + 2161 1 35.66 -9.39 0 7.89 0 1.048364 -28.662661 220 5 1.1 0.9; + 2166 1 20.92 7.7 0 1.21 0 1.052887 -14.673236 220 5 1.1 0.9; + 2174 1 0 0 0 61.795782 0 1.011944 -13.202451 380 5 1.1 0.9; + 2177 2 0 0 0 0 0 1.07333 -28.416356 220 5 1.1 0.9; + 2183 1 0 0 0 32.849821 0 0.995876 -16.181883 380 5 1.1 0.9; + 2189 1 -0 0 0 0.18 0 1.047761 -6.28234 220 5 1.1 0.9; + 2197 2 0 0 0 0 0 1.035528 -6.012095 380 5 1.1 0.9; + 2208 1 74.98 26.9 0 2.96 0 1.051126 -13.420372 220 5 1.1 0.9; + 2229 1 0 -0 0 2.91 0 1.062959 -13.080678 220 5 1.1 0.9; + 2230 1 0 -0 0 1.71 0 1.036513 -22.481463 220 5 1.1 0.9; + 2231 1 0 0 0 0.45 0 1.049391 1.166976 220 5 1.1 0.9; + 2242 1 -0 -0 0 2.76 0 1.02489 -19.020985 220 5 1.1 0.9; + 2252 1 100.7 -4.2 0 1.57 0 1.068023 -47.917821 220 5 1.1 0.9; + 2273 1 141.3 32.4 0 7.29 0 1.074359 -26.339387 220 5 1.1 0.9; + 2276 2 0 0 0 0 0 1.05324 -23.758819 220 5 1.1 0.9; + 2286 1 208.88 60.8 0 6.68 0 1.023269 -8.717089 220 5 1.1 0.9; + 2288 1 170.9 39 0 11.25 0 1.034468 -8.57662 220 5 1.1 0.9; + 2291 2 0 0 0 0 0 1.072528 -10.610728 220 5 1.1 0.9; + 2303 1 0 -0 0 7.94 0 1.03744 -15.856049 220 5 1.1 0.9; + 2304 1 88.7 -0.1 0 2.83 0 1.058495 -25.832763 220 5 1.1 0.9; + 2308 1 32.04 6.6 0 0.44 0 1.038612 -24.078628 220 5 1.1 0.9; + 2313 1 0 -0 0 0.41 0 1.046654 -21.265608 220 5 1.1 0.9; + 2319 1 39.64 20.9 0 0.65 0 1.061069 -8.962289 220 5 1.1 0.9; + 2327 1 114.5 25.2 0 17.57 0 1.047194 -25.133812 220 5 1.1 0.9; + 2328 1 -0 0 0 0.4 0 1.017489 -14.250876 220 5 1.1 0.9; + 2337 1 103.4 27 0 1.41 0 1.045493 -29.7818 220 5 1.1 0.9; + 2340 1 96.91 13.9 0 3.98 0 1.03958 -12.236094 220 5 1.1 0.9; + 2341 1 -0 0 0 3.28 0 1.065118 -26.070582 220 5 1.1 0.9; + 2359 2 0 0 0 0 0 1.024884 -9.921886 380 5 1.1 0.9; + 2360 1 215.5 31.3 0 14.23 0 1.044563 -21.085033 220 5 1.1 0.9; + 2361 1 16.9 3.85 0 25.09 0 1.052288 -29.004707 220 5 1.1 0.9; + 2365 1 37.94 15.4 0 117.386167 0 1.033702 -22.17424 380 5 1.1 0.9; + 2372 1 0 -0 0 14.490904 0 0.991274 -17.482034 380 5 1.1 0.9; + 2377 1 101.7 17.6 0 13.14 0 1.036655 -14.897845 220 5 1.1 0.9; + 2393 1 20.82 0 0 0.13 0 1.070495 7.700354 220 5 1.1 0.9; + 2406 1 0 0 0 1.69 0 1.048666 -24.428158 220 5 1.1 0.9; + 2421 2 0 0 0 0 0 1.047766 -23.702161 220 5 1.1 0.9; + 2424 1 44.55 16.8 0 2.31 0 1.034979 -22.416002 220 5 1.1 0.9; + 2425 2 0 0 0 0 0 1.041186 -9.882232 220 5 1.1 0.9; + 2426 2 0 0 0 0 0 1.037687 -13.762974 220 5 1.1 0.9; + 2430 1 -0 0 0 6.21 0 1.041369 -11.921713 220 5 1.1 0.9; + 2432 1 291.2 35.4 0 21.87 0 1.030479 -32.300033 220 5 1.1 0.9; + 2438 1 -0 0 0 0.64 0 1.046626 -21.265307 220 5 1.1 0.9; + 2446 2 0 0 0 0 0 1.06157 7.557722 380 5 1.1 0.9; + 2457 1 30.73 9.6 0 2.75 0 1.040059 -24.619174 220 5 1.1 0.9; + 2458 1 132 26 0 27.18 0 1.006537 -13.460583 380 5 1.1 0.9; + 2467 1 0 -0 0 11.65 0 1.018095 -14.100158 220 5 1.1 0.9; + 2468 2 0 0 0 0 0 1.048132 -6.215141 220 5 1.1 0.9; + 2475 1 0 0 0 0.21 0 1.065573 -7.808732 220 5 1.1 0.9; + 2479 1 -2.65 -1.17 0 65.673108 0 1.008158 -2.627166 380 5 1.1 0.9; + 2481 2 0 0 0 0 0 1.042777 -18.185589 220 5 1.1 0.9; + 2489 2 0 0 0 0 0 1.049366 1.167288 220 5 1.1 0.9; + 2503 1 -0 0 0 2.09 0 1.012856 -21.48175 220 5 1.1 0.9; + 2510 1 115.87 29.41 0 7.92 0 1.028486 -12.08393 220 5 1.1 0.9; + 2518 1 -5.29 -1.91 0 42.622979 0 0.999088 -11.536983 380 5 1.1 0.9; + 2526 1 238.45 46.86 0 125.534496 0 1.044376 -19.855823 380 5 1.1 0.9; + 2527 1 59.77 16.7 0 0.64 0 1.043988 -4.63491 220 5 1.1 0.9; + 2535 1 51.56 2.1 0 0.18 0 1.037544 -2.896669 220 5 1.1 0.9; + 2550 2 0 0 0 0 0 1.049384 -6.666685 220 5 1.1 0.9; + 2558 1 159.27 38.31 0 2.18 0 1.023305 -16.640241 220 5 1.1 0.9; + 2563 1 52.86 13 0 6.04 0 1.046977 -4.707678 220 5 1.1 0.9; + 2575 1 62.97 17.4 0 0.3 0 1.04159 -2.724929 220 5 1.1 0.9; + 2591 1 253.77 84.6 0 20.71 0 1.030923 -15.233022 220 5 1.1 0.9; + 2597 1 14.72 5.4 0 0.72 0 1.033106 -10.863404 220 5 1.1 0.9; + 2598 1 25.63 12.7 0 8.42 0 1.040506 -15.286014 220 5 1.1 0.9; + 2600 2 0 0 0 0 0 1.038821 -13.64341 220 5 1.1 0.9; + 2627 2 0 0 0 0 0 1.061488 7.521439 380 5 1.1 0.9; + 2629 1 203.1 65.2 0 0.64 0 1.045498 -24.492103 220 5 1.1 0.9; + 2641 1 0 0 0 1.72 0 1.042124 -11.251293 220 5 1.1 0.9; + 2644 1 0 0 0 0.19 0 1.07369 -24.808555 220 5 1.1 0.9; + 2653 2 0 0 0 0 0 1.036517 -23.007774 220 5 1.1 0.9; + 2654 1 207.1 50.4 0 4.93 0 1.019228 -18.770253 220 5 1.1 0.9; + 2656 1 -0.72 0 0 69.582294 0 1.034308 -22.749906 380 5 1.1 0.9; + 2676 1 123.24 23.65 0 6.44 0 1.035697 -14.93988 220 5 1.1 0.9; + 2689 1 0 0 0 0.45 0 1.034001 -3.213772 220 5 1.1 0.9; + 2695 1 16.22 8.9 0 2.2 0 1.038344 -21.004788 220 5 1.1 0.9; + 2702 1 151.7 27.6 0 6.49 0 1.043222 -25.609448 220 5 1.1 0.9; + 2719 2 0 0 0 0 0 1.035384 -15.495326 220 5 1.1 0.9; + 2721 1 -0 0 0 10.040547 0 0.983623 -22.371652 380 5 1.1 0.9; + 2732 1 85.59 20.72 0 142.79 0 1.013054 -10.064991 380 5 1.1 0.9; + 2749 1 55.56 26.5 0 1.09 0 1.049925 -30.124895 220 5 1.1 0.9; + 2751 1 34.54 8.6 0 5.05 0 1.042162 -21.896741 220 5 1.1 0.9; + 2754 1 -0 0 0 3.72 0 1.051994 -13.365671 220 5 1.1 0.9; + 2770 1 85.39 14.3 0 0.35 0 1.047946 -9.667144 220 5 1.1 0.9; + 2782 1 -28.13 -0.81 0 0.1 0 1.06184 -11.404239 220 5 1.1 0.9; + 2786 2 0 0 0 0 0 1.073795 6.427789 380 5 1.3 0.7; + 2794 1 0 -0 0 0.39 0 1.035004 -18.482955 220 5 1.1 0.9; + 2795 1 -0 -0 0 1.94 0 1.070164 -32.44656 220 5 1.1 0.9; + 2797 2 0 0 0 0 0 1.042226 -4.483231 220 5 1.1 0.9; + 2799 2 0 0 0 0 0 1.05396 -12.355638 220 5 1.1 0.9; + 2801 1 0 -0 0 12.17 0 1.041023 -24.502823 220 5 1.1 0.9; + 2806 1 -0 -0 0 0.39 0 1.050477 0.170291 220 5 1.1 0.9; + 2815 1 25.33 14.2 0 4.05 0 1.03655 -22.984441 220 5 1.1 0.9; + 2816 2 0 0 0 0 0 1.053944 -0.390904 380 5 1.1 0.9; + 2841 2 0 0 0 0 0 1.08248 -26.223645 220 5 1.1 0.9; + 2842 2 0 0 0 0 0 1.043712 -6.650222 220 5 1.1 0.9; + 2847 1 40.14 8.8 0 0.82 0 1.050663 -3.956106 220 5 1.1 0.9; + 2848 1 453.23 139.16 0 25.583218 0 0.998047 -7.830482 380 5 1.1 0.9; + 2850 1 -0 -0 0 4.76 0 1.03307 -18.741426 220 5 1.1 0.9; + 2854 1 -12.33 -2.65 0 69.323028 0 1.044838 -10.677353 380 5 1.1 0.9; + 2863 1 37.73 13.84 0 0.09 0 1.028402 -11.074681 220 5 1.1 0.9; + 2866 1 -0 0 0 4.21 0 1.03784 -7.272198 220 5 1.1 0.9; + 2872 2 0 0 0 0 0 1.063841 -10.631082 220 5 1.1 0.9; + 2877 1 29.93 -0 0 0.46 0 1.041807 -14.920901 220 5 1.1 0.9; + 2878 2 0 0 0 0 0 1.057626 -10.952158 220 5 1.1 0.9; + 2886 2 0 0 0 0 0 1.055151 -14.128145 220 5 1.1 0.9; + 2888 1 -0 0 0 0.22 0 1.013722 -21.258074 220 5 1.1 0.9; + 2889 1 -0 0 0 3.2 0 1.050185 -1.116811 220 5 1.1 0.9; + 2898 1 56.76 13.4 0 1.18 0 1.035844 -23.070363 220 5 1.1 0.9; + 2902 2 0 0 0 0 0 1.059072 -23.273273 220 5 1.1 0.9; + 2910 1 -0 0 0 2.87 0 1.040554 -2.262281 220 5 1.1 0.9; + 2918 1 0 0 0 53.25003 0 1.02385 -28.205516 380 5 1.1 0.9; + 2919 1 -0 0 0 32.049116 0 0.991588 -18.308905 380 5 1.1 0.9; + 2924 1 19.92 7.4 0 17.28 0 1.057573 -33.080856 220 5 1.1 0.9; + 2928 1 0 -0 0 92.38 0 1.074568 -26.335879 220 5 1.1 0.9; + 2930 2 0 0 0 0 0 1.047695 -12.912307 220 5 1.1 0.9; + 2931 1 230.7 19.3 0 4.56 0 1.043622 -32.26389 220 5 1.1 0.9; + 2934 2 0 0 0 0 0 1.051149 -6.52803 220 5 1.1 0.9; + 2938 1 0 -0 0 137.29 0 1.005521 -7.42176 380 5 1.1 0.9; + 2940 1 103 28.7 0 2.88 0 1.01671 -14.352513 220 5 1.1 0.9; + 2949 1 -0 -0 0 11.03 0 1.050433 -4.837602 220 5 1.1 0.9; + 2961 1 159.9 53.2 0 7.99 0 1.041215 -24.387727 220 5 1.1 0.9; + 2967 1 0 -0 0 0.19 0 1.046973 -17.07434 220 5 1.1 0.9; + 2968 1 112.51 16.51 0 1.63 0 1.044527 -8.952764 220 5 1.1 0.9; + 2972 1 97.82 20.59 0 6.67 0 1.038342 -15.064035 220 5 1.1 0.9; + 2980 1 -0 0 0 0.42 0 1.063297 -9.078731 380 5 1.1 0.9; + 2981 1 -0 0 0 1.68 0 1.075422 -15.322665 220 5 1.1 0.9; + 2985 2 0 0 0 0 0 1.053607 -8.47854 220 5 1.1 0.9; + 2995 1 0 -0 0 3.9 0 1.051891 -3.763961 220 5 1.1 0.9; + 3013 1 2.2 1.1 0 0.67 0 1.049575 -5.241034 220 5 1.1 0.9; + 3018 2 0 0 0 0 0 1.041705 -12.798969 220 5 1.1 0.9; + 3019 1 0 -0 0 1.37 0 1.036837 -22.763335 220 5 1.1 0.9; + 3021 1 74.38 8.8 0 6.1 0 1.042535 -11.458053 220 5 1.1 0.9; + 3022 1 149 19.8 0 23.89 0 1.038441 -14.928463 380 5 1.1 0.9; + 3028 2 0 0 0 0 0 1.030654 0.605264 380 5 1.1 0.9; + 3036 1 116.93 33.6 0 3.35 0 1.046808 -25.175878 220 5 1.1 0.9; + 3037 1 221 146.8 0 8.35 0 1.04857 -6.585978 220 5 1.1 0.9; + 3044 1 29.33 5.6 0 6.56 0 1.044991 -21.014316 220 5 1.1 0.9; + 3051 1 0 0 0 0 0 1.031148 -24.884639 220 5 1.1 0.9; + 3069 1 89.6 22.7 0 4.06 0 1.033466 -8.740353 220 5 1.1 0.9; + 3070 1 0 -0 0 4.27 0 1.013716 -21.258029 220 5 1.1 0.9; + 3071 1 0 -0 0 2.83 0 1.044715 -7.284056 220 5 1.1 0.9; + 3072 1 92.9 27.7 0 5.22 0 1.050676 -30.097241 220 5 1.1 0.9; + 3075 1 30.33 10.5 0 0.33 0 1.020662 -16.898848 220 5 1.1 0.9; + 3082 1 0 0 0 75.076038 0 0.998938 -15.122127 380 5 1.1 0.9; + 3083 1 567.97 130.73 0 1.09 0 1.068389 -27.641331 220 5 1.1 0.9; + 3085 1 64.67 24.5 0 1.46 0 1.067218 -27.697899 220 5 1.1 0.9; + 3112 1 -0 0 0 0 0 1.057299 2.403578 220 5 1.1 0.9; + 3114 2 0 0 0 0 0 1.071964 -11.598423 220 5 1.1 0.9; + 3121 1 242.16 73.64 0 12.79 0 1.031627 -7.214885 220 5 1.1 0.9; + 3126 1 104.78 20.92 0 6.17 0 1.021547 -17.925447 220 5 1.1 0.9; + 3133 2 0 0 0 0 0 1.065372 -9.169038 220 5 1.1 0.9; + 3134 2 0 0 0 0 0 1.023117 -15.704702 220 5 1.1 0.9; + 3137 1 0 -0 0 0.03 0 1.065118 -26.070583 220 5 1.1 0.9; + 3145 1 860.95 -182.67 0 18.309116 0 0.993017 -41.441031 380 5 1.1 0.9; + 3166 1 184.91 32.8 0 8.35 0 1.039048 -17.527734 220 5 1.1 0.9; + 3183 2 0 0 0 0 0 1.055515 -11.832574 220 5 1.1 0.9; + 3184 1 14.12 7.7 0 1.42 0 1.040299 -21.338667 220 5 1.1 0.9; + 3187 1 107 34.7 0 1.54 0 1.042404 -12.953299 220 5 1.1 0.9; + 3191 1 127.8 15.2 0 9.34 0 1.040776 -12.071062 220 5 1.1 0.9; + 3200 1 86.2 19.9 0 5.43 0 1.036168 -23.053307 220 5 1.1 0.9; + 3204 1 8.51 3.2 0 0.96 0 1.017023 -10.267075 220 5 1.1 0.9; + 3205 2 0 0 0 0 0 1.041982 -1.292668 380 5 1.1 0.9; + 3218 2 0 0 0 0 0 1.028507 -11.253521 220 5 1.1 0.9; + 3221 1 76.38 24.8 0 3.24 0 1.047766 -12.146786 220 5 1.1 0.9; + 3231 1 251.3 42.6 0 5.47 0 1.025161 -14.287368 220 5 1.1 0.9; + 3239 1 -5.06 -1.84 0 187.327025 0 1.056229 -11.611515 380 5 1.1 0.9; + 3240 2 0 0 0 0 0 1.050305 -1.129073 220 5 1.1 0.9; + 3241 1 132 27 0 4.66 0 1.030192 -17.957576 220 5 1.1 0.9; + 3243 1 -0 0 0 1.18 0 0.990554 -18.181283 380 5 1.1 0.9; + 3246 1 20.9 -171.5 0 0.21 0 1.080513 7.863586 220 5 1.1 0.9; + 3248 1 84.19 17.3 0 6.2 0 1.05498 -11.325947 220 5 1.1 0.9; + 3255 1 0 0 0 1.44 0 1.038882 -22.03657 220 5 1.1 0.9; + 3276 1 -0 -0 0 0.13 0 1.050076 -7.893785 220 5 1.1 0.9; + 3293 1 33.14 11.6 0 4.51 0 1.038075 -11.39812 220 5 1.1 0.9; + 3306 2 0 0 0 0 0 1.071978 8.08029 220 5 1.1 0.9; + 3324 2 0 0 0 0 0 1.014126 -16.129669 220 5 1.1 0.9; + 3325 1 -0 0 0 0.91 0 1.033998 -20.055869 220 5 1.1 0.9; + 3327 1 -0 -0 0 2.27 0 1.038066 -12.156606 220 5 1.1 0.9; + 3331 1 -0 -0 0 4.56 0 1.0175 -10.215862 220 5 1.1 0.9; + 3344 1 83.29 24.1 0 1.23 0 1.039524 -16.595479 220 5 1.1 0.9; + 3346 2 0 0 0 0 0 1.01594 -12.063974 380 5 1.1 0.9; + 3353 2 0 0 0 0 0 1.045739 -3.042188 220 5 1.1 0.9; + 3364 2 0 0 0 0 0 1.0538 -12.359552 220 5 1.1 0.9; + 3377 1 77.49 21.4 0 0.05 0 1.018192 -10.51029 220 5 1.1 0.9; + 3390 2 0 0 0 0 0 1.039984 -11.495624 220 5 1.1 0.9; + 3391 1 302.5 65.1 0 8.87 0 1.059691 -20.937372 220 5 1.1 0.9; + 3400 1 0 0 0 17.31 0 1.047571 -25.085016 220 5 1.1 0.9; + 3401 1 23.22 6.3 0 0.66 0 1.034711 -14.123031 220 5 1.1 0.9; + 3412 1 -0 0 0 0 0 1.057299 2.403578 220 5 1.1 0.9; + 3422 2 0 0 0 0 0 1.063657 -10.680951 220 5 1.1 0.9; + 3430 1 125.1 44 0 6.04 0 1.015255 -16.040907 220 5 1.1 0.9; + 3435 1 -0 0 0 10.13 0 1.043606 -25.55539 220 5 1.1 0.9; + 3436 2 0 0 0 0 0 1.060777 -13.286433 220 5 1.1 0.9; + 3445 1 45.14 -6.64 0 88.82001 0 0.999706 -5.879329 380 5 1.1 0.9; + 3450 1 78.99 16.2 0 1.97 0 1.046643 -21.48337 220 5 1.1 0.9; + 3481 1 142.5 23.6 0 4.24 0 1.023602 -20.789174 220 5 1.1 0.9; + 3483 1 157.78 276.03 0 91.192543 0 1.051877 2.264367 380 5 1.1 0.9; + 3485 1 -0 0 0 6.501668 0 0.991148 -16.268999 380 5 1.1 0.9; + 3486 1 101.5 -18.3 0 8.47 0 1.037237 -20.871205 220 5 1.1 0.9; + 3488 1 55.66 4.5 0 1.33 0 1.038891 -12.374272 220 5 1.1 0.9; + 3492 2 0 0 0 0 0 1.04852 -8.570568 220 5 1.1 0.9; + 3496 1 99.3 23.3 0 1.88 0 1.03602 -21.337931 220 5 1.1 0.9; + 3498 1 138.5 19.3 0 5.26 0 1.04022 -10.181185 220 5 1.1 0.9; + 3499 1 180.4 71.6 0 81.042938 0 1.035853 -3.63424 380 5 1.1 0.9; + 3502 1 98.2 19.1 0 10.92 0 1.020854 -10.552336 220 5 1.1 0.9; + 3503 1 -0 0 0 1.93 0 1.032128 -11.505891 220 5 1.1 0.9; + 3513 2 0 0 0 0 0 1.028771 -3.782955 380 5 1.1 0.9; + 3519 1 -0 0 0 68.053762 0 1.033967 -22.784898 380 5 1.1 0.9; + 3520 1 -0 0 0 2.47 0 1.037612 -5.896123 220 5 1.1 0.9; + 3526 1 33.34 13.2 0 0.76 0 1.056871 -4.128916 220 5 1.1 0.9; + 3535 1 -0 0 0 0.49 0 1.035787 -24.451001 220 5 1.1 0.9; + 3541 1 0 -0 0 3.34 0 1.039193 -23.983552 220 5 1.1 0.9; + 3543 1 -0 -0 0 14.079026 0 0.991625 -17.553669 380 5 1.1 0.9; + 3545 1 20.12 7.6 0 0.89 0 1.049206 -8.009952 220 5 1.1 0.9; + 3557 1 87.2 31.8 0 5.96 0 1.048975 -30.444694 220 5 1.1 0.9; + 3558 1 -0 0 0 2.51 0 1.062152 2.457422 220 5 1.1 0.9; + 3565 2 0 0 0 0 0 1.081614 -26.430835 220 5 1.1 0.9; + 3577 1 -38.7 -12.99 0 13.47383 0 1.031951 -5.185856 380 5 1.1 0.9; + 3579 1 277.72 7.35 0 3.58 0 1.072032 -39.86741 220 5 1.1 0.9; + 3580 2 0 0 0 0 0 1.07602 -33.404876 220 5 1.1 0.9; + 3589 1 37.54 18.3 0 0.22 0 1.042938 -6.728326 220 5 1.1 0.9; + 3594 1 31.43 6.6 0 3.32 0 1.034276 -19.803995 220 5 1.1 0.9; + 3601 1 0 0 0 0.23 0 1.040409 -21.360272 220 5 1.1 0.9; + 3602 1 86.6 14.9 0 1.34 0 1.032076 -18.933744 220 5 1.1 0.9; + 3608 1 0 -0 0 58.146813 0 1.00943 -41.64982 380 5 1.1 0.9; + 3609 1 -28.13 -0.82 0 0.1 0 1.061834 -11.405533 220 5 1.1 0.9; + 3610 1 185.8 31.8 0 3.73 0 1.03662 -22.744804 220 5 1.1 0.9; + 3611 2 0 0 0 0 0 1.03905 -18.955066 220 5 1.1 0.9; + 3613 1 152.5 14.4 0 24.61 0 1.03039 -28.045674 380 5 1.1 0.9; + 3643 1 24.23 6.4 0 3.9 0 1.033238 -19.364356 220 5 1.1 0.9; + 3645 1 42.55 17.6 0 17.28 0 1.057259 -33.103595 220 5 1.1 0.9; + 3649 1 -0 -0 0 4.86 0 1.049277 -36.568687 220 5 1.1 0.9; + 3654 1 20.72 5 0 6.64 0 1.074155 -26.393413 220 5 1.1 0.9; + 3656 2 0 0 0 0 0 1.070983 -11.746409 220 5 1.1 0.9; + 3657 1 131 1.3 0 120.45 0 1.075593 -26.08278 220 5 1.1 0.9; + 3661 2 0 0 0 0 0 1.059676 4.513427 380 5 1.1 0.9; + 3670 1 28.03 6.5 0 6.32 0 1.036121 -21.979516 220 5 1.1 0.9; + 3672 1 82.99 25.9 0 0.23 0 1.032626 -12.873557 220 5 1.1 0.9; + 3674 1 155.05 39.56 0 6.27 0 1.042158 -14.835571 220 5 1.1 0.9; + 3680 1 -0 -0 0 12.4 0 1.035367 -15.507057 220 5 1.1 0.9; + 3697 1 -32.71 -13.76 0 135.136611 0 1.04888 -20.581455 380 5 1.1 0.9; + 3698 2 0 0 0 0 0 1.041813 -24.312887 220 5 1.1 0.9; + 3701 1 -0 0 0 0.43 0 1.048029 -25.022699 220 5 1.1 0.9; + 3707 1 77.49 17.3 0 0.1 0 1.050811 -15.306372 220 5 1.1 0.9; + 3718 1 179.4 58.3 0 0.64 0 1.04576 -25.247909 220 5 1.1 0.9; + 3737 1 42.48 10.36 0 0.37 0 1.036909 -2.934488 220 5 1.1 0.9; + 3740 1 0 -0 0 13.03 0 1.03798 -21.218929 220 5 1.1 0.9; + 3741 2 0 0 0 0 0 1.031629 0.717314 380 5 1.1 0.9; + 3749 1 115.1 16.4 0 7.67 0 1.041217 -17.23173 220 5 1.1 0.9; + 3758 1 83.49 17.4 0 19.32 0 1.023928 -19.012865 220 5 1.1 0.9; + 3760 1 163.5 44.9 0 1.17 0 1.058074 -20.932224 220 5 1.1 0.9; + 3768 1 19.82 10.9 0 0.05 0 1.042031 -21.905161 220 5 1.1 0.9; + 3775 1 55.54 15.06 0 6.28 0 1.001347 -23.504647 220 5 1.1 0.9; + 3786 1 -0 -0 0 26.98 0 1.052535 -19.650048 220 5 1.1 0.9; + 3793 1 197.7 67.65 0 13.58 0 1.034254 -20.635259 220 5 1.1 0.9; + 3794 1 165.3 7.4 0 28.32 0 1.030869 -28.137864 380 5 1.1 0.9; + 3809 2 0 0 0 0 0 1.084785 -33.980103 220 5 1.1 0.9; + 3814 1 130.5 24.7 0 0.4 0 1.041172 -21.968498 220 5 1.1 0.9; + 3817 1 0 -0 0 1.02 0 1.089268 -15.202915 220 5 1.1 0.9; + 3818 1 44.45 10.9 0 2.23 0 1.042892 -25.785119 220 5 1.1 0.9; + 3825 2 0 0 0 0 0 1.026994 -8.529973 380 5 1.1 0.9; + 3830 1 -0 0 0 97.326028 0 0.99448 -13.765558 380 5 1.1 0.9; + 3834 1 160 69.2 0 0.19 0 1.036267 -22.248651 220 5 1.1 0.9; + 3855 1 -38.73 -15.32 0 97.23 0 1.07551 -26.170776 220 5 1.1 0.9; + 3857 1 -0 -0 0 11.68 0 1.081278 -23.127573 220 5 1.1 0.9; + 3865 1 -0 -0 0 2.26 0 1.027017 -14.866102 220 5 1.1 0.9; + 3866 1 201.06 19.46 0 2.87 0 1.048033 -27.549636 220 5 1.1 0.9; + 3869 2 0 0 0 0 0 1.031907 1.193974 380 5 1.1 0.9; + 3876 2 0 0 0 0 0 1.044501 -9.587109 220 5 1.1 0.9; + 3880 1 -28.13 -0.82 0 0.09 0 1.061821 -11.404764 220 5 1.1 0.9; + 3894 1 0 0 0 4.77 0 1.02402 -15.319245 220 5 1.1 0.9; + 3903 1 0 0 0 4.36 0 1.051358 -24.515174 220 5 1.1 0.9; + 3906 1 0 0 0 98.2 0 1.037271 -13.381903 380 5 1.1 0.9; + 3912 1 0 -0 0 19.73 0 1.038244 -21.078792 220 5 1.1 0.9; + 3916 2 0 0 0 0 0 1.043758 -14.004059 220 5 1.1 0.9; + 3918 1 -11.8 -5.47 0 88.050735 0 1.02393 -1.867594 380 5 1.1 0.9; + 3919 1 -0 0 0 39.95 0 1.024896 -6.075842 380 5 1.1 0.9; + 3925 1 89.3 25.1 0 2.98 0 1.026482 -13.116396 220 5 1.1 0.9; + 3928 1 105.2 24.2 0 0.25 0 1.046535 -4.757211 220 5 1.1 0.9; + 3929 1 48.95 11.6 0 2 0 1.03267 -20.217595 220 5 1.1 0.9; + 3951 2 0 0 0 0 0 1.027439 -12.908691 220 5 1.1 0.9; + 3956 1 -0 -0 0 1.18 0 1.049338 -24.08911 220 5 1.1 0.9; + 3962 1 19.42 11.8 0 2.6 0 1.041036 -23.700249 220 5 1.1 0.9; + 3969 1 -0 -0 0 0.84 0 1.018397 -10.494183 220 5 1.1 0.9; + 3971 2 0 0 0 0 0 1.063145 -8.854993 220 5 1.1 0.9; + 3975 1 148 26.1 0 9.44 0 0.986357 -24.771259 220 5 1.1 0.9; + 3985 1 77.19 26.5 0 6.2 0 1.047148 -0.061532 220 5 1.1 0.9; + 3994 1 36.34 10.4 0 2.67 0 1.035393 -2.725702 220 5 1.1 0.9; + 3997 1 26.13 9.7 0 2.37 0 1.042584 -11.956467 220 5 1.1 0.9; + 3999 1 110.8 36.9 0 23.2 0 1.051666 -6.639084 220 5 1.1 0.9; + 4000 1 -0 0 0 24.103274 0 0.991622 -15.520854 380 5 1.1 0.9; + 4005 1 171.18 28.49 0 0 0 1.067869 -31.620043 220 5 1.1 0.9; + 4024 2 0 0 0 0 0 1.040328 2.440561 380 5 1.1 0.9; + 4025 1 0 0 0 2.67 0 1.035538 -2.7146 220 5 1.1 0.9; + 4031 1 0 -0 0 6.42 0 1.063769 -10.640029 220 5 1.1 0.9; + 4032 1 265.7 113.5 0 1.85 0 0.999578 -11.699686 220 5 1.1 0.9; + 4039 1 -0 -0 0 1.18 0 1.037985 -22.526852 220 5 1.1 0.9; + 4049 1 -0 -0 0 0.89 0 1.017178 -10.133503 220 5 1.1 0.9; + 4054 1 0 -0 0 2.71 0 1.035023 -18.483102 220 5 1.1 0.9; + 4056 2 0 0 0 0 0 1.038526 -9.78553 220 5 1.1 0.9; + 4060 1 -0 0 0 2.08 0 1.066903 -14.674014 220 5 1.1 0.9; + 4084 2 0 0 0 0 0 1.063234 -8.796721 220 5 1.1 0.9; + 4100 1 -0 -0 0 1.23 0 1.063607 -10.700214 220 5 1.1 0.9; + 4103 1 81.09 12.5 0 2.4 0 1.037109 -21.700054 220 5 1.1 0.9; + 4110 1 13.01 3.8 0 3.59 0 1.048623 0.630118 220 5 1.1 0.9; + 4114 1 9.91 5.4 0 4.6 0 1.048622 -24.482065 220 5 1.1 0.9; + 4118 2 0 0 0 0 0 1.027195 -14.802318 220 5 1.1 0.9; + 4125 2 0 0 0 0 0 1.003502 -8.417156 380 5 1.1 0.9; + 4127 1 39.14 7.7 0 11.68 0 1.033235 -20.156948 220 5 1.1 0.9; + 4128 2 0 0 0 0 0 1.019761 -15.71382 220 5 1.1 0.9; + 4134 1 -0 0 0 0.09 0 1.074144 -33.622001 220 5 1.1 0.9; + 4141 1 -0.62 0 0 75.020288 0 1.032772 -21.096452 380 5 1.1 0.9; + 4143 1 11.11 4.1 0 0.8 0 1.05009 -1.152786 220 5 1.1 0.9; + 4144 1 310.2 4.5 0 8.51 0 1.048354 -19.735876 220 5 1.1 0.9; + 4157 1 0 0 0 1.2 0 1.074571 -26.335983 220 5 1.1 0.9; + 4185 1 87.5 21.3 0 7.52 0 1.042708 -25.806182 220 5 1.1 0.9; + 4186 1 -0 0 0 5.06 0 1.036176 -23.132591 220 5 1.1 0.9; + 4189 1 200.65 30.72 0 9.72 0 1.037191 -26.003681 220 5 1.1 0.9; + 4196 1 -3.2 -1.05 0 48.471563 0 1.029571 -7.552855 380 5 1.1 0.9; + 4197 1 9.01 4.9 0 0.64 0 1.06874 0.692131 220 5 1.1 0.9; + 4205 1 5.81 1.7 0 0.42 0 1.052019 -12.684377 220 5 1.1 0.9; + 4215 1 -0 -0 0 17.29 0 1.046292 -23.032269 220 5 1.1 0.9; + 4231 3 0 0 0 0 0 1.049182 0 380 5 1.1 0.9; + 4234 1 0 0 0 8.95 0 1.046192 -17.159976 220 5 1.1 0.9; + 4235 1 -0 -0 0 12.68 0 1.053821 -19.119448 220 5 1.1 0.9; + 4239 1 190.7 52 0 20.57 0 1.052709 -13.186066 220 5 1.1 0.9; + 4245 1 24.93 9.6 0 0.09 0 1.041034 -9.897904 220 5 1.1 0.9; + 4251 1 47.15 15.7 0 5.41 0 1.026731 -17.726744 220 5 1.1 0.9; + 4267 1 70.78 19.6 0 7.9 0 1.038616 -8.918342 220 5 1.1 0.9; + 4281 1 -0 -0 0 11.4 0 1.05107 -11.692848 220 5 1.1 0.9; + 4300 1 81.49 25.1 0 0.36 0 1.00381 -16.189999 220 5 1.1 0.9; + 4301 1 -0 -0 0 2.27 0 1.038253 -21.079157 220 5 1.1 0.9; + 4306 1 0 -0 0 0.3 0 1.034875 -30.808256 380 5 1.1 0.9; + 4313 1 133.4 29.4 0 10.87 0 1.043554 -21.132272 220 5 1.1 0.9; + 4314 1 26.13 2.7 0 1.7 0 1.044059 -14.213235 220 5 1.1 0.9; + 4324 1 307.42 -38.3 0 0 0 1.06402 -29.724601 220 5 1.1 0.9; + 4331 2 0 0 0 0 0 1.028646 -11.048944 220 5 1.1 0.9; + 4339 1 -0 -0 0 42.345005 0 0.994972 -15.805227 380 5 1.1 0.9; + 4353 1 165.8 44 0 6.15 0 1.055169 -26.615369 220 5 1.1 0.9; + 4355 1 65.07 15 0 1.37 0 1.07349 -26.435642 220 5 1.1 0.9; + 4357 1 235 58.9 0 14.47 0 1.046909 -15.944189 220 5 1.1 0.9; + 4368 1 90.6 15.8 0 7.99 0 1.060945 -25.082183 220 5 1.1 0.9; + 4395 2 0 0 0 0 0 1.039834 -20.6569 220 5 1.1 0.9; + 4402 1 -0 0 0 1.02 0 1.089271 -15.202973 220 5 1.1 0.9; + 4410 1 45.05 13.2 0 44.93 0 1.046754 -36.877378 220 5 1.1 0.9; + 4418 1 -0 0 0 0.05 0 1.076968 -24.357646 220 5 1.1 0.9; + 4419 2 0 0 0 0 0 1.059565 4.496453 380 5 1.1 0.9; + 4426 1 485.5 -63.38 0 34.92 0 1.068079 -46.755413 220 5 1.1 0.9; + 4432 1 -0 0 0 0.8 0 1.07457 -26.335948 220 5 1.1 0.9; + 4435 1 -0 -0 0 102.217726 0 1.006778 -8.596561 380 5 1.1 0.9; + 4454 1 -0 -0 0 1 0 0.987785 -18.481884 220 5 1.1 0.9; + 4480 2 0 0 0 0 0 1.071852 7.973164 220 5 1.1 0.9; + 4482 2 0 0 0 0 0 1.049914 -6.455681 220 5 1.1 0.9; + 4484 1 69.78 25 0 14.24 0 1.051896 -13.325368 220 5 1.1 0.9; + 4491 1 0 -0 0 1.75 0 1.032064 -28.901791 220 5 1.1 0.9; + 4494 1 -0 0 0 55.514618 0 1.024773 -0.869931 380 5 1.1 0.9; + 4504 1 170.1 -9.3 0 5.97 0 1.072324 -42.518571 220 5 1.1 0.9; + 4505 1 95.51 17.1 0 8.5 0 1.047176 -15.911012 220 5 1.1 0.9; + 4506 2 0 0 0 0 0 1.036047 -5.941934 220 5 1.1 0.9; + 4511 1 81.89 19.9 0 5.1 0 1.041941 -25.929686 220 5 1.1 0.9; + 4513 1 92.1 29.5 0 3.14 0 1.030552 -9.829625 220 5 1.1 0.9; + 4520 1 -0 -0 0 0.94 0 1.017179 -10.133508 220 5 1.1 0.9; + 4525 1 -0 0 0 6.12 0 1.060611 -8.826883 220 5 1.1 0.9; + 4529 1 48.48 8.7 0 10.14 0 1.055612 -15.125162 220 5 1.1 0.9; + 4541 1 0 -0 0 150.797812 0 1.023455 -9.910829 380 5 1.1 0.9; + 4544 1 -0 -0 0 14.64 0 1.047769 -14.697837 220 5 1.1 0.9; + 4549 1 0 -0 0 0.3 0 1.03214 -11.506046 220 5 1.1 0.9; + 4550 1 0 -0 0 124.2 0 1.019271 -10.38876 380 5 1.1 0.9; + 4554 1 119 21.9 0 0.95 0 1.041048 -9.799798 220 5 1.1 0.9; + 4562 1 130.5 25.7 0 2.27 0 1.02147 -16.819485 220 5 1.1 0.9; + 4566 2 0 0 0 0 0 1.073282 -27.676255 220 5 1.1 0.9; + 4580 1 11.01 3.9 0 7.98 0 1.045713 -12.00096 220 5 1.1 0.9; + 4594 1 -1.73 -1.71 0 22.062314 0 0.998779 -5.591046 380 5 1.1 0.9; + 4598 1 -0 0 0 52.958443 0 1.024757 -7.997137 380 5 1.1 0.9; + 4615 1 42.55 17.6 0 1.2 0 1.066957 -25.393864 220 5 1.1 0.9; + 4623 1 0 -0 0 80.388213 0 0.9943 -16.866228 380 5 1.1 0.9; + 4624 2 0 0 0 0 0 1.042135 -15.685962 220 5 1.1 0.9; + 4656 1 93.9 -0.4 0 3.66 0 1.052781 -19.605607 220 5 1.1 0.9; + 4661 2 0 0 0 0 0 1.049813 -26.16746 220 5 1.1 0.9; + 4674 1 124 29.2 0 0.53 0 1.032396 -12.4247 220 5 1.1 0.9; + 4679 1 102.7 17.8 0 48.05 0 1.042344 -20.616305 220 5 1.1 0.9; + 4683 1 38.84 8.5 0 7.31 0 1.052059 -3.729961 220 5 1.1 0.9; + 4685 1 46.15 11.2 0 10.16 0 1.042999 -25.790941 220 5 1.1 0.9; + 4689 1 109.7 15 0 30.97 0 1.048918 -30.792772 220 5 1.1 0.9; + 4701 2 0 0 0 0 0 1.043063 -9.879302 380 5 1.1 0.9; + 4710 1 195.4 76.84 0 8.59 0 1.026719 -9.176978 220 5 1.1 0.9; + 4711 1 -0 0 0 16.11 0 1.042937 -11.415152 220 5 1.1 0.9; + 4725 1 4.91 1.6 0 4.15 0 1.014202 -10.601951 220 5 1.1 0.9; + 4728 1 3.1 0.1 0 1.34 0 1.040401 -21.360189 220 5 1.1 0.9; + 4729 1 0 0 0 2.38 0 1.032006 -8.433928 220 5 1.1 0.9; + 4734 1 0 0 0 25.339116 0 1.014516 -10.190708 380 5 1.1 0.9; + 4738 1 101.89 25.72 0 5.11 0 1.06866 -10.715961 220 5 1.1 0.9; + 4747 1 93.3 27.8 0 6.1 0 1.035644 -12.325346 220 5 1.1 0.9; + 4748 1 -0 -0 0 1.49 0 1.032136 -12.426948 220 5 1.1 0.9; + 4765 1 33.04 10.1 0 0.43 0 1.03734 -12.246628 220 5 1.1 0.9; + 4783 2 0 0 0 0 0 1.071981 8.277038 220 5 1.1 0.9; + 4787 1 71.98 27.1 0 7.2 0 0.99123 -14.709219 380 5 1.1 0.9; + 4816 2 0 0 0 0 0 1.067305 -23.812093 220 5 1.1 0.9; + 4819 2 0 0 0 0 0 1.031907 1.213157 380 5 1.1 0.9; + 4823 2 0 0 0 0 0 1.067114 -14.648331 220 5 1.1 0.9; + 4826 1 103.6 16 0 11.22 0 1.076968 -24.357644 220 5 1.1 0.9; + 4829 1 171.9 39.1 0 4.23 0 1.020877 -5.66958 220 5 1.1 0.9; + 4831 1 130.4 44.33 0 5.22 0 1.023656 -15.867691 220 5 1.1 0.9; + 4850 2 0 0 0 0 0 1.054975 -13.889155 220 5 1.1 0.9; + 4852 1 45.55 -59.9 0 30.04 0 1.040672 -20.328499 220 5 1.1 0.9; + 4864 1 -28.21 -6 0 0.05 0 1.037977 -12.814047 220 5 1.1 0.9; + 4867 1 65.77 27.3 0 0.49 0 1.031537 -3.407292 220 5 1.1 0.9; + 4874 1 -0.58 -53.03 0 6.85 0 1.07611 -39.379591 220 5 1.1 0.9; + 4880 2 0 0 0 0 0 1.034991 -15.897969 220 5 1.1 0.9; + 4885 1 166.4 50.4 0 1.23 0 1.074189 -26.349591 220 5 1.1 0.9; + 4889 1 74.98 19.8 0 6.47 0 1.034333 -12.232863 220 5 1.1 0.9; + 4907 1 125.16 29.2 0 2.69 0 1.041821 -13.302552 220 5 1.1 0.9; + 4908 1 50.06 9.9 0 11.56 0 1.037684 -21.273347 220 5 1.1 0.9; + 4914 1 14.91 -8.73 0 34.66 0 1.036628 -22.980806 220 5 1.1 0.9; + 4918 2 0 0 0 0 0 1.057325 -11.046567 220 5 1.1 0.9; + 4925 1 -0 0 0 0.3 0 1.036525 -22.48156 220 5 1.1 0.9; + 4936 1 312.2 28 0 48.6 0 1.049019 -30.699604 220 5 1.1 0.9; + 4939 1 56.76 31.1 0 0.37 0 1.043989 -4.549265 220 5 1.1 0.9; + 4942 1 109.9 33.6 0 3.72 0 1.028311 -12.898354 220 5 1.1 0.9; + 4950 1 218.7 -9.1 0 49 0 1.036717 -40.104666 220 5 1.1 0.9; + 4951 1 183.95 -6.47 0 5.74 0 1.053531 -1.663312 220 5 1.1 0.9; + 4952 2 0 0 0 0 0 1.045386 -17.502534 220 5 1.1 0.9; + 4970 1 -0 -0 0 171.931977 0 1.064315 -17.672609 380 5 1.1 0.9; + 4974 1 89.08 26.9 0 4.68 0 1.023886 -13.4778 220 5 1.1 0.9; + 5002 1 -0 0 0 4.34 0 1.071581 -8.674239 220 5 1.1 0.9; + 5003 1 17.87 -8.59 0 0.21 0 1.042135 -9.676575 220 5 1.1 0.9; + 5004 2 0 0 0 0 0 1.0663 -15.374553 220 5 1.1 0.9; + 5007 1 0 0 0 40.291745 0 1.021829 -15.303707 380 5 1.1 0.9; + 5016 1 -0 0 0 8.347383 0 1.02139 -5.019103 380 5 1.1 0.9; + 5019 2 0 0 0 0 0 1.047693 -12.9179 220 5 1.1 0.9; + 5049 1 136.6 29 0 2.05 0 1.01997 -20.429759 220 5 1.1 0.9; + 5051 2 0 0 0 0 0 1.037373 -16.452704 220 5 1.1 0.9; + 5067 2 0 0 0 0 0 1.021924 -7.972254 380 5 1.1 0.9; + 5077 1 30.93 5.8 0 4.45 0 1.055018 -26.635396 220 5 1.1 0.9; + 5083 1 80.39 10.8 0 0.35 0 1.039314 -12.19306 220 5 1.1 0.9; + 5093 1 70.78 28 0 1.49 0 1.010775 -14.861295 220 5 1.1 0.9; + 5099 1 0 0 0 9.34 0 1.058325 1.539585 220 5 1.1 0.9; + 5106 1 39.94 13 0 2.47 0 1.071273 -31.590024 220 5 1.1 0.9; + 5110 2 0 0 0 0 0 1.032061 -10.28337 220 5 1.1 0.9; + 5120 2 0 0 0 0 0 1.055539 -23.597086 220 5 1.1 0.9; + 5131 1 -0 0 0 7.84 0 1.074641 -26.336733 220 5 1.1 0.9; + 5137 1 16.92 0 0 0.57 0 1.025017 -16.369795 220 5 1.1 0.9; + 5144 2 0 0 0 0 0 1.035201 -3.127844 380 5 1.1 0.9; + 5146 1 229.9 48.9 0 8.36 0 1.01309 -34.0847 220 5 1.1 0.9; + 5174 1 0 -0 0 8.19 0 1.045055 -21.030104 220 5 1.1 0.9; + 5179 1 179.8 5.67 0 12.83 0 1.049521 -30.437104 220 5 1.1 0.9; + 5182 1 0 0 0 0.18 0 1.04247 -7.991956 220 5 1.1 0.9; + 5212 1 -0 0 0 0.2 0 1.043532 -11.000335 220 5 1.1 0.9; + 5213 1 246.8 36.3 0 16.01 0 1.046557 -26.37211 220 5 1.1 0.9; + 5215 1 -0 -0 0 0.89 0 1.029858 -5.840941 220 5 1.1 0.9; + 5233 1 -0 -0 0 14.04 0 1.040607 -10.965139 220 5 1.1 0.9; + 5237 2 0 0 0 0 0 1.052719 -14.75067 220 5 1.1 0.9; + 5241 1 0 -0 0 70.905048 0 1.030298 -3.61649 380 5 1.1 0.9; + 5256 1 91 36 0 5.47 0 1.00434 -16.654648 220 5 1.1 0.9; + 5257 1 -0 0 0 0.18 0 1.04776 -6.282341 220 5 1.1 0.9; + 5270 1 -0 -0 0 7.4 0 1.040679 -21.118583 220 5 1.1 0.9; + 5278 2 0 0 0 0 0 1.042037 -24.259299 220 5 1.1 0.9; + 5286 1 17.22 5.1 0 0.99 0 1.037376 -22.164674 220 5 1.1 0.9; + 5288 1 -0 -0 0 3.06 0 0.998946 -15.122249 380 5 1.1 0.9; + 5297 1 55.26 11 0 7.68 0 1.041403 -24.362719 220 5 1.1 0.9; + 5300 1 -0 -0 0 1.3 0 1.045246 -10.990672 220 5 1.1 0.9; + 5308 1 0 -0 0 42.19206 0 0.984486 -18.190432 380 5 1.1 0.9; + 5317 1 293.2 87.4 0 26.36 0 1.028707 -44.346536 220 5 1.1 0.9; + 5334 1 17.52 6.6 0 3.79 0 1.033829 -12.746707 220 5 1.1 0.9; + 5340 2 0 0 0 0 0 1.054941 -11.154638 220 5 1.1 0.9; + 5341 1 64.27 17.5 0 0.43 0 1.011142 -21.65338 220 5 1.1 0.9; + 5350 1 0 0 0 28.208233 0 0.981529 -24.398889 380 5 1.1 0.9; + 5351 1 0 0 0 3.28 0 1.034562 -14.13742 220 5 1.1 0.9; + 5354 1 70.18 19.5 0 3.59 0 1.045497 -8.643995 220 5 1.1 0.9; + 5362 1 152.73 -17.2 0 45.85 0 1.043688 -24.235922 220 5 1.1 0.9; + 5365 2 0 0 0 0 0 1.061754 -11.4194 220 5 1.1 0.9; + 5379 2 0 0 0 0 0 1.107976 -6.815844 380 5 1.3 0.7; + 5383 1 0 -0 0 24.7 0 1.048549 -24.463345 220 5 1.1 0.9; + 5388 1 159.5 42 0 2.3 0 1.013391 -14.763695 220 5 1.1 0.9; + 5393 1 -0 0 0 9.43 0 1.065867 -15.42107 220 5 1.1 0.9; + 5395 2 0 0 0 0 0 1.048137 -27.33134 220 5 1.1 0.9; + 5400 1 241.62 52.78 0 0.82 0 1.025608 -14.012865 220 5 1.1 0.9; + 5410 1 69.78 26 0 5.18 0 1.045719 -21.375392 220 5 1.1 0.9; + 5413 1 -0 -0 0 5.57 0 1.036008 -18.03631 220 5 1.1 0.9; + 5417 1 32.74 5.3 0 3.07 0 1.057776 -12.050099 220 5 1.1 0.9; + 5418 1 -0 0 0 3.96 0 1.037717 -21.273778 220 5 1.1 0.9; + 5419 1 349.3 144.3 0 0.54 0 1.021201 -15.134475 220 5 1.1 0.9; + 5420 1 56.96 1.94 0 26.48 0 1.024419 -22.859247 380 5 1.1 0.9; + 5421 1 -0 -0 0 0.92 0 0.998945 -15.122174 380 5 1.1 0.9; + 5441 1 138.01 34.55 0 8.44 0 1.037781 -2.820227 220 5 1.1 0.9; + 5455 1 -0 -0 0 5.27 0 1.042465 -7.991918 220 5 1.1 0.9; + 5458 1 0 0 0 9.09 0 1.038913 -21.424694 220 5 1.1 0.9; + 5460 1 -15.89 -6.42 0 38.657071 0 0.992989 -17.9255 380 5 1.1 0.9; + 5461 2 0 0 0 0 0 1.06213 -18.41436 380 5 1.1 0.9; + 5469 1 106.6 -18.8 0 4.1 0 1.067374 -38.727555 220 5 1.1 0.9; + 5477 1 -0 -0 0 18.02 0 1.075392 -26.166931 220 5 1.1 0.9; + 5481 2 0 0 0 0 0 1.063711 -8.933875 380 5 1.1 0.9; + 5482 2 0 0 0 0 0 1.044486 -7.317519 220 5 1.1 0.9; + 5486 2 0 0 0 0 0 1.059636 4.495854 380 5 1.1 0.9; + 5488 2 0 0 0 0 0 1.041881 -29.8855 220 5 1.1 0.9; + 5490 2 0 0 0 0 0 1.068845 -15.202054 380 5 1.1 0.9; + 5502 1 -0 -0 0 0.58 0 1.038483 -20.512891 220 5 1.1 0.9; + 5519 1 0 -0 0 1.98 0 1.048798 -24.5238 220 5 1.1 0.9; + 5522 1 -0 -0 0 1.18 0 1.068862 0.701223 220 5 1.1 0.9; + 5525 1 236.33 59.35 0 18.71 0 1.03913 -14.017648 220 5 1.1 0.9; + 5529 1 0 0 0 0.36 0 1.037801 -2.820407 220 5 1.1 0.9; + 5533 2 0 0 0 0 0 1.038212 -13.663692 220 5 1.1 0.9; + 5546 2 0 0 0 0 0 1.05378 -23.67431 220 5 1.1 0.9; + 5550 1 0 -0 0 10.83 0 1.051152 -25.756092 220 5 1.1 0.9; + 5564 2 0 0 0 0 0 1.04123 -12.598948 220 5 1.1 0.9; + 5567 1 0 0 0 3.59 0 1.017813 -18.930548 220 5 1.1 0.9; + 5571 1 -0 0 0 1.01 0 1.036516 -22.481578 220 5 1.1 0.9; + 5573 1 0 -0 0 2.94 0 1.05903 -23.279891 220 5 1.1 0.9; + 5574 1 99.7 6 0 2.06 0 1.03922 -11.857544 220 5 1.1 0.9; + 5586 1 -0 0 0 0 0 1.057299 2.403578 220 5 1.1 0.9; + 5589 1 0 0 0 173.904854 0 1.034874 -30.808253 380 5 1.1 0.9; + 5610 1 99.5 9.2 0 27.55 0 1.045824 -24.167858 220 5 1.1 0.9; + 5616 1 225.2 35.2 0 11.99 0 1.076287 -35.225281 220 5 1.1 0.9; + 5627 1 -0 -0 0 0.53 0 1.030337 -32.491502 220 5 1.1 0.9; + 5630 1 0 0 0 11.52 0 1.043599 -4.085534 220 5 1.1 0.9; + 5641 1 -0 -0 0 5.98 0 1.049836 -26.047052 220 5 1.1 0.9; + 5648 1 -0 -0 0 115.528858 0 0.995233 -13.451687 380 5 1.1 0.9; + 5653 1 96.59 7.28 0 2.52 0 1.045504 -7.661043 220 5 1.1 0.9; + 5658 2 0 0 0 0 0 1.017689 -23.66504 380 5 1.1 0.9; + 5664 2 0 0 0 0 0 1.070507 0.956534 220 5 1.1 0.9; + 5666 1 124.8 34.7 0 3.66 0 1.046065 -10.74401 220 5 1.1 0.9; + 5686 1 52.26 19.6 0 2.64 0 1.030503 -10.223727 220 5 1.1 0.9; + 5688 1 14.12 5.2 0 1.44 0 1.033877 -8.079704 220 5 1.1 0.9; + 5691 1 195.1 -14.2 0 12.89 0 1.061392 -45.226837 220 5 1.1 0.9; + 5695 1 142.8 20.3 0 6.77 0 1.047646 -27.137982 220 5 1.1 0.9; + 5699 1 -0 0 0 0.59 0 1.049081 -6.522248 220 5 1.1 0.9; + 5709 2 0 0 0 0 0 1.027078 -8.525839 380 5 1.1 0.9; + 5712 1 183.07 44.65 0 2.77 0 1.0445 -4.578143 220 5 1.1 0.9; + 5720 1 337.6 -15.4 0 6.27 0 1.045667 -24.989207 220 5 1.1 0.9; + 5723 1 141.2 45.4 0 7.55 0 1.045129 -9.640756 220 5 1.1 0.9; + 5735 1 161.3 10.04 0 4.38 0 1.060348 -26.902429 220 5 1.1 0.9; + 5738 1 -0 -0 0 8.13 0 1.013795 -10.544291 220 5 1.1 0.9; + 5743 1 -0 0 0 4.28 0 1.052165 -24.123493 220 5 1.1 0.9; + 5753 1 -0 -0 0 1.81 0 1.033984 -3.213627 220 5 1.1 0.9; + 5764 1 99.4 4.3 0 3.69 0 1.034962 -25.335623 220 5 1.1 0.9; + 5781 2 0 0 0 0 0 1.0396 -11.754534 380 5 1.1 0.9; + 5789 1 0 0 0 0.35 0 1.005562 -16.021128 220 5 1.1 0.9; + 5799 1 -0 -0 0 1.38 0 1.043907 -32.265811 220 5 1.1 0.9; + 5803 1 0 -0 0 0.35 0 1.043774 -14.004171 220 5 1.1 0.9; + 5814 2 0 0 0 0 0 1.044051 -11.822108 220 5 1.1 0.9; + 5836 1 244.09 48.92 0 5.96 0 1.040266 -12.0279 220 5 1.1 0.9; + 5837 1 -0 -0 0 132.04744 0 1.019818 -10.148769 380 5 1.1 0.9; + 5853 1 122.5 38.9 0 0.84 0 1.042789 -7.464608 220 5 1.1 0.9; + 5856 2 0 0 0 0 0 1.038417 -11.615407 220 5 1.1 0.9; + 5857 1 78.39 21.2 0 0.97 0 1.057665 -21.071135 220 5 1.1 0.9; + 5881 2 0 0 0 0 0 1.065605 -10.395605 220 5 1.1 0.9; + 5891 1 14.02 5.5 0 3.3 0 1.036617 -12.108533 220 5 1.1 0.9; + 5907 1 186.1 14.8 0 17.28 0 1.046917 -8.47729 220 5 1.1 0.9; + 5918 1 73.83 16.41 0 15.77 0 1.053364 -25.787722 220 5 1.1 0.9; + 5926 1 0 -0 0 3.98 0 1.072067 -47.920607 220 5 1.1 0.9; + 5935 1 -0 0 0 5.75 0 1.065025 -22.144776 220 5 1.1 0.9; + 5940 2 0 0 0 0 0 1.030075 -14.582177 220 5 1.1 0.9; + 5944 1 71.88 21.7 0 9.63 0 1.059622 -25.872698 220 5 1.1 0.9; + 5957 1 208.06 36.6 0 3.55 0 1.025527 -16.209872 220 5 1.1 0.9; + 5971 2 0 0 0 0 0 1.070056 4.938459 380 5 1.3 0.7; + 5983 2 0 0 0 0 0 1.066029 -14.886912 380 5 1.1 0.9; + 5987 1 24.04 1.68 0 4.02 0 1.036825 -13.937479 220 5 1.1 0.9; + 5990 1 0 -0 0 4.53 0 1.023107 -10.218557 220 5 1.1 0.9; + 5993 1 0 -0 0 2.75 0 1.043528 -11.000279 220 5 1.1 0.9; + 5994 2 0 0 0 0 0 1.029184 -15.420668 220 5 1.1 0.9; + 6010 1 0 0 0 1.35 0 1.08135 -23.128077 220 5 1.1 0.9; + 6031 1 0 0 0 2.22 0 1.041572 -15.751421 220 5 1.1 0.9; + 6036 2 0 0 0 0 0 1.043738 -0.899698 380 5 1.1 0.9; + 6041 1 0 0 0 0.53 0 1.072109 -47.920883 220 5 1.1 0.9; + 6053 1 412.1 79.3 0 7.73 0 1.058134 -26.592239 220 5 1.1 0.9; + 6071 1 163.5 35.6 0 4.59 0 1.035726 -16.340255 220 5 1.1 0.9; + 6101 1 103 40.2 0 1.13 0 1.02679 -10.858615 220 5 1.1 0.9; + 6104 1 93.12 4.99 0 0.18 0 1.056405 -12.076426 220 5 1.1 0.9; + 6110 1 78.59 16 0 1.87 0 1.056871 -35.945281 220 5 1.1 0.9; + 6112 1 45.28 15.27 0 7.88 0 1.024189 -9.306431 220 5 1.1 0.9; + 6114 1 0 0 0 8.78 0 1.048769 -10.298802 220 5 1.1 0.9; + 6115 1 -0 -0 0 1.18 0 1.02848 -11.273668 220 5 1.1 0.9; + 6119 1 221.25 72.56 0 8.23 0 1.039102 -15.995867 220 5 1.1 0.9; + 6146 1 0 -0 0 3.15 0 1.028373 -12.079992 220 5 1.1 0.9; + 6151 1 60.67 33.2 0 0.31 0 1.032517 -24.013495 220 5 1.1 0.9; + 6153 2 0 0 0 0 0 0.988112 -14.90068 380 5 1.1 0.9; + 6163 1 0 -0 0 4.96 0 1.036223 -21.959198 220 5 1.1 0.9; + 6168 2 0 0 0 0 0 1.040343 -13.438292 220 5 1.1 0.9; + 6178 1 91 28.4 0 10.57 0 1.040244 -24.602196 220 5 1.1 0.9; + 6194 1 0 -0 0 3.14 0 1.026211 -16.329018 220 5 1.1 0.9; + 6199 1 -4.82 -0.88 0 224.85 0 1.072632 -12.599054 380 5 1.1 0.9; + 6203 1 14.02 5.6 0 2.34 0 1.070264 -27.353716 220 5 1.1 0.9; + 6206 1 -7.62 -2.52 0 33.197994 0 1.037591 0.03956 380 5 1.1 0.9; + 6219 1 -0 -0 0 0.22 0 1.033837 -12.746776 220 5 1.1 0.9; + 6220 1 231.9 27.6 0 0.36 0 1.055297 -22.931727 220 5 1.1 0.9; + 6224 1 0 0 0 58.990785 0 1.000545 -12.907246 380 5 1.1 0.9; + 6231 1 -0 0 0 11.5 0 1.034263 -8.032463 220 5 1.1 0.9; + 6232 1 49.25 12 0 7.28 0 1.042941 -25.794518 220 5 1.1 0.9; + 6240 1 0 -0 0 6.31 0 1.075696 -34.242457 220 5 1.1 0.9; + 6246 1 1769.94 -353.95 0 62.59 0 1.045739 -36.412972 380 5 1.1 0.9; + 6252 1 164.7 44.5 0 3.67 0 1.020382 -29.885564 220 5 1.1 0.9; + 6253 1 128.8 29.3 0 26.74 0 1.04318 -25.753603 220 5 1.1 0.9; + 6267 1 91.3 18.1 0 3.05 0 1.041192 -24.394509 220 5 1.1 0.9; + 6271 1 3.7 2.6 0 4.45 0 1.054472 -20.10439 220 5 1.1 0.9; + 6290 1 47.65 20.4 0 3.63 0 1.062557 -12.82926 220 5 1.1 0.9; + 6291 2 0 0 0 0 0 1.040598 -23.840293 220 5 1.1 0.9; + 6306 1 0 -0 0 2.13 0 1.077228 -24.297873 220 5 1.1 0.9; + 6308 1 0 -0 0 0.05 0 1.044666 -25.545467 220 5 1.1 0.9; + 6313 1 48.95 14.9 0 4.04 0 1.033893 -23.915745 220 5 1.1 0.9; + 6331 2 0 0 0 0 0 1.052181 -0.845895 220 5 1.1 0.9; + 6332 2 0 0 0 0 0 1.062214 -11.259336 220 5 1.1 0.9; + 6337 1 0 0 0 8.26 0 1.090736 -9.663194 380 5 1.1 0.9; + 6351 2 0 0 0 0 0 1.064446 -16.194964 220 5 1.1 0.9; + 6357 1 430.8 107.9 0 11.64 0 0.986449 -24.787083 220 5 1.1 0.9; + 6368 2 0 0 0 0 0 1.043835 -8.297319 220 5 1.1 0.9; + 6371 1 -0 -0 0 0.35 0 1.04624 -0.834636 220 5 1.1 0.9; + 6376 2 0 0 0 0 0 1.046714 -0.304027 220 5 1.1 0.9; + 6382 1 75.43 10.49 0 7.91 0 1.042008 -9.653397 220 5 1.1 0.9; + 6384 1 159.9 47.4 0 3.65 0 1.042953 -1.650086 220 5 1.1 0.9; + 6405 1 76.48 19.8 0 5.41 0 1.016603 -16.051975 220 5 1.1 0.9; + 6416 1 67.67 16.4 0 3.7 0 1.044399 -9.544276 220 5 1.1 0.9; + 6426 1 10.21 3.8 0 4.6 0 1.054991 1.525091 220 5 1.1 0.9; + 6427 1 83.19 22.9 0 28.5 0 1.00477 -13.123224 380 5 1.1 0.9; + 6429 2 0 0 0 0 0 1.039574 -18.343476 220 5 1.1 0.9; + 6430 1 0 -0 0 6.03 0 1.052192 -28.928753 220 5 1.1 0.9; + 6450 1 5.51 2.1 0 1.92 0 1.010198 -10.933937 220 5 1.1 0.9; + 6455 1 20.52 13.3 0 0.17 0 1.038267 -22.056487 220 5 1.1 0.9; + 6472 1 0 -0 0 9.93 0 1.042806 -24.004462 220 5 1.1 0.9; + 6474 2 0 0 0 0 0 1.06557 -7.808697 220 5 1.1 0.9; + 6475 1 -0 0 0 149.047157 0 1.026549 -8.701988 380 5 1.1 0.9; + 6478 1 141.2 34.8 0 2.37 0 1.012128 -14.390515 220 5 1.1 0.9; + 6486 1 31.74 17.4 0 0.89 0 1.048545 -3.989815 220 5 1.1 0.9; + 6495 1 49.66 12.3 0 2.2 0 1.043059 -21.768062 220 5 1.1 0.9; + 6510 1 88.2 26.7 0 8.91 0 1.050118 -26.338765 220 5 1.1 0.9; + 6516 2 0 0 0 0 0 1.052452 -3.60194 220 5 1.1 0.9; + 6521 1 0 0 0 2.3 0 1.046651 -4.738353 220 5 1.1 0.9; + 6532 1 120.69 18.1 0 15.46 0 1.075728 -31.435419 220 5 1.1 0.9; + 6552 2 0 0 0 0 0 1.048796 -21.140924 220 5 1.1 0.9; + 6555 1 -37.81 -21.64 0 83.362314 0 1.008884 -43.693382 380 5 1.1 0.9; + 6556 1 -0 -0 0 4.61 0 1.052054 -12.679594 220 5 1.1 0.9; + 6563 1 0 -0 0 8.94 0 1.040617 -24.64966 220 5 1.1 0.9; + 6565 1 0 -0 0 4.05 0 1.033616 -7.247992 220 5 1.1 0.9; + 6570 1 -0 0 0 32.43 0 1.045563 -20.766442 220 5 1.1 0.9; + 6581 1 153.8 23.4 0 87.73 0 1.042943 -2.447442 380 5 1.1 0.9; + 6612 1 41.14 15.25 0 3.96 0 1.047964 -31.701384 220 5 1.1 0.9; + 6616 1 -0 -0 0 3.06 0 1.044855 -15.904052 220 5 1.1 0.9; + 6619 1 -0 -0 0 10.67 0 1.050275 -15.385558 220 5 1.1 0.9; + 6624 1 -37.33 -11.88 0 145.18 0 1.058707 4.26077 380 5 1.1 0.9; + 6629 1 62.63 16.3 0 2.03 0 1.054419 -11.400101 220 5 1.1 0.9; + 6630 1 134.1 24.8 0 13.73 0 1.039511 -24.152951 220 5 1.1 0.9; + 6636 1 -0 0 0 0.31 0 1.036596 0.577218 220 5 1.1 0.9; + 6638 1 61.65 10.24 0 3.48 0 1.020424 -14.95076 220 5 1.1 0.9; + 6639 1 388.04 52.61 0 2.87 0 1.050408 -2.453064 220 5 1.1 0.9; + 6648 1 -26.03 -0.84 0 0.1 0 1.06183 -11.406171 220 5 1.1 0.9; + 6664 1 -0 0 0 10.68 0 1.06971 -46.294482 220 5 1.1 0.9; + 6675 1 37.94 7.5 0 11.89 0 1.035344 -23.290216 220 5 1.1 0.9; + 6684 1 -0 0 0 9.84 0 1.044665 -25.545459 220 5 1.1 0.9; + 6691 1 42.55 12.5 0 1.26 0 1.083988 -34.063221 220 5 1.1 0.9; + 6692 1 10.33 3.3 0 4.65 0 1.02441 -15.580999 220 5 1.1 0.9; + 6697 1 309 74.5 0 3.69 0 1.0463 -37.100468 220 5 1.1 0.9; + 6714 1 -0 -0 0 0.3 0 1.046238 -0.834605 220 5 1.1 0.9; + 6723 1 0 0 0 1.58 0 1.032514 -9.464819 220 5 1.1 0.9; + 6730 1 -0 0 0 2.18 0 1.038253 -21.079078 220 5 1.1 0.9; + 6734 2 0 0 0 0 0 1.061492 -3.472634 220 5 1.1 0.9; + 6735 1 -0 -0 0 0.4 0 1.041984 -1.292675 380 5 1.1 0.9; + 6737 1 0 -0 0 9.74 0 1.021139 -10.532887 220 5 1.1 0.9; + 6738 1 -4.91 -2.53 0 120.576812 0 1.029435 -24.781868 380 5 1.1 0.9; + 6742 1 137.4 23.9 0 7.26 0 1.037902 -21.502542 220 5 1.1 0.9; + 6744 1 244.12 95.29 0 7.55 0 1.033513 -10.221422 220 5 1.1 0.9; + 6757 1 0 0 0 6.57 0 1.040789 -1.178761 380 5 1.1 0.9; + 6763 1 0 -0 0 5.46 0 1.043751 -24.236704 220 5 1.1 0.9; + 6772 1 61.37 23.2 0 0.22 0 1.045385 -24.09701 220 5 1.1 0.9; + 6773 1 0 -0 0 2.18 0 1.041981 -24.273746 220 5 1.1 0.9; + 6785 1 0 0 0 8.9 0 1.054082 -0.784591 220 5 1.1 0.9; + 6791 1 46.35 9.1 0 18.2 0 1.04692 -25.227196 220 5 1.1 0.9; + 6802 1 -0 0 0 7.43 0 1.034691 -6.054841 220 5 1.1 0.9; + 6806 1 135.84 15.97 0 4.57 0 1.046591 -21.264934 220 5 1.1 0.9; + 6807 2 0 0 0 0 0 1.006037 -16.618507 220 5 1.1 0.9; + 6816 2 0 0 0 0 0 1.053803 -24.150678 220 5 1.1 0.9; + 6820 2 0 0 0 0 0 1.049557 -6.650937 220 5 1.1 0.9; + 6828 1 58.16 16.5 0 6.24 0 1.037156 -13.39716 220 5 1.1 0.9; + 6831 2 0 0 0 0 0 1.031347 -9.785828 220 5 1.1 0.9; + 6837 1 47.75 11 0 0.05 0 1.050311 -7.914424 220 5 1.1 0.9; + 6842 1 98 21.7 0 6 0 1.037762 -8.446373 220 5 1.1 0.9; + 6844 1 -0 -0 0 1.04 0 1.015966 -29.284947 220 5 1.1 0.9; + 6845 2 0 0 0 0 0 1.055216 -11.135397 220 5 1.1 0.9; + 6846 1 44.35 19.3 0 3.25 0 1.053078 -4.617698 220 5 1.1 0.9; + 6852 2 0 0 0 0 0 1.031296 -19.801967 220 5 1.1 0.9; + 6854 1 0 0 0 0 0 1.054902 -11.343079 220 5 1.1 0.9; + 6857 2 0 0 0 0 0 1.021411 -8.599284 380 5 1.1 0.9; + 6880 1 0 0 0 1.36 0 1.045265 -4.460667 220 5 1.1 0.9; + 6887 1 -0 -0 0 3.13 0 1.045229 -3.097099 220 5 1.1 0.9; + 6888 2 0 0 0 0 0 1.039234 -13.670722 220 5 1.1 0.9; + 6889 1 -12.49 -5.83 0 6.235224 0 1.040018 2.414551 380 5 1.1 0.9; + 6891 1 135.61 26.86 0 1.93 0 1.042154 -14.327292 220 5 1.1 0.9; + 6897 1 176.8 39.4 0 28.24 0 1.05642 -16.592196 380 5 1.1 0.9; + 6901 1 -37.84 -19.23 0 28.140258 0 1.010989 -32.14614 380 5 1.1 0.9; + 6908 1 0 0 0 3.01 0 1.037832 -40.113954 220 5 1.1 0.9; + 6909 1 122.5 8.7 0 15.85 0 1.036123 -23.128738 220 5 1.1 0.9; + 6921 1 -37.34 -13.33 0 251.529665 0 1.036075 -1.608828 380 5 1.1 0.9; + 6922 1 113.6 44.7 0 1.91 0 1.036504 -8.622098 220 5 1.1 0.9; + 6926 1 124.5 101.4 0 0.53 0 1.033188 -12.416059 220 5 1.1 0.9; + 6940 1 0 -0 0 10.46 0 1.057214 -27.586432 220 5 1.1 0.9; + 6947 2 0 0 0 0 0 1.051367 -3.749893 220 5 1.1 0.9; + 6952 1 180.9 33.2 0 29.17 0 1.074941 -25.158601 220 5 1.1 0.9; + 6954 1 18.12 10 0 1.03 0 1.033937 -20.057453 220 5 1.1 0.9; + 6961 1 56.56 18.4 0 3.29 0 1.046702 -0.041292 220 5 1.1 0.9; + 6969 2 0 0 0 0 0 1.059486 -23.158005 220 5 1.1 0.9; + 6982 2 0 0 0 0 0 1.036531 -20.798066 220 5 1.1 0.9; + 6989 1 0 0 0 1.91 0 1.046262 -24.006134 220 5 1.1 0.9; + 6990 1 -0 0 0 4.54 0 1.049424 -24.091607 220 5 1.1 0.9; + 7014 1 0 0 0 0.3 0 1.042775 -2.603788 220 5 1.1 0.9; + 7019 1 52.56 12.8 0 2.87 0 1.042599 -25.81851 220 5 1.1 0.9; + 7021 1 226.8 53.3 0 3.26 0 1.00593 -17.187001 220 5 1.1 0.9; + 7030 1 0 0 0 0.19 0 1.065574 -7.808728 220 5 1.1 0.9; + 7036 2 0 0 0 0 0 1.041241 -12.591424 220 5 1.1 0.9; + 7042 1 220.98 91 0 1.16 0 1.05498 -30.089269 220 5 1.1 0.9; + 7047 1 339.9 70.5 0 28.91 0 1.036489 -21.901119 220 5 1.1 0.9; + 7049 2 0 0 0 0 0 1.049669 -14.344403 220 5 1.1 0.9; + 7050 1 120 26 0 22.01 0 1.037777 -21.239311 220 5 1.1 0.9; + 7052 1 111 36.6 0 2.21 0 1.047794 -12.393218 220 5 1.1 0.9; + 7056 2 0 0 0 0 0 1.006597 -4.279873 380 5 1.1 0.9; + 7069 1 258.79 42.82 0 9.28 0 1.041721 -7.971411 220 5 1.1 0.9; + 7070 1 142.9 25.8 0 24.18 0 1.051529 -13.392684 220 5 1.1 0.9; + 7076 1 0 -0 0 0.36 0 1.032543 -12.400826 220 5 1.1 0.9; + 7092 1 44.65 8.8 0 20.17 0 1.048118 -25.098572 220 5 1.1 0.9; + 7098 1 0 -0 0 7.17 0 1.040402 -2.260554 220 5 1.1 0.9; + 7115 2 0 0 0 0 0 1.008722 -16.289324 220 5 1.1 0.9; + 7119 1 149.53 34.9 0 8.9 0 1.011547 -16.3375 220 5 1.1 0.9; + 7124 1 -0 0 0 16.73 0 1.071843 -27.185513 220 5 1.1 0.9; + 7129 1 33.34 5 0 0.38 0 1.03765 -2.840915 220 5 1.1 0.9; + 7132 1 222 90.5 0 0.16 0 1.017449 -15.909765 220 5 1.1 0.9; + 7133 1 102.3 19 0 1.84 0 1.034901 -14.267058 220 5 1.1 0.9; + 7144 1 8.48 -1.82 0 0.37 0 1.03015 -13.008541 220 5 1.1 0.9; + 7148 1 -0 -0 0 10.89 0 1.050811 -23.312468 220 5 1.1 0.9; + 7159 2 0 0 0 0 0 1.059575 4.500856 380 5 1.1 0.9; + 7162 1 -0 0 0 2.48 0 1.051693 -13.395189 220 5 1.1 0.9; + 7163 1 -0 0 0 2.9 0 1.04999 -24.866445 220 5 1.1 0.9; + 7164 1 -18.6 -6.72 0 152.683271 0 1.027379 -22.063848 380 5 1.1 0.9; + 7165 1 -0 -0 0 9.26 0 1.071048 -34.202221 220 5 1.1 0.9; + 7178 1 -0 -0 0 2.45 0 1.017469 -14.250696 220 5 1.1 0.9; + 7183 2 0 0 0 0 0 1.107733 -6.868685 380 5 1.3 0.7; + 7202 1 18.62 6.1 0 2 0 1.050711 -3.937783 220 5 1.1 0.9; + 7209 2 0 0 0 0 0 1.051113 -6.533675 220 5 1.1 0.9; + 7222 1 0 -0 0 5 0 1.068964 -23.827934 220 5 1.1 0.9; + 7226 1 144 31.3 0 3.18 0 1.022196 -15.530828 220 5 1.1 0.9; + 7231 1 0 0 0 0.05 0 1.039985 -11.495627 220 5 1.1 0.9; + 7253 1 7.51 3.1 0 0 0 1.048698 -2.446191 220 5 1.1 0.9; + 7256 1 392.25 92.02 0 9.45 0 1.022568 -35.394958 220 5 1.1 0.9; + 7259 1 82.39 0 0 0.15 0 1.06537 -7.876917 220 5 1.1 0.9; + 7264 1 0 -0 0 3.42 0 1.042846 -10.973594 220 5 1.1 0.9; + 7266 1 -0 -0 0 2.12 0 1.032954 -5.485507 220 5 1.1 0.9; + 7267 2 0 0 0 0 0 1.010817 -7.692119 380 5 1.1 0.9; + 7273 1 219.6 36.4 0 17.89 0 1.042886 -24.322652 220 5 1.1 0.9; + 7274 1 54.93 16.5 0 6.75 0 1.040156 -3.899721 220 5 1.1 0.9; + 7282 2 0 0 0 0 0 1.034538 -4.68119 380 5 1.1 0.9; + 7284 1 0 0 0 0 0 1.094644 -0.869931 220 5 1.1 0.9; + 7289 1 0 -0 0 26.5 0 1.054049 -6.174395 220 5 1.1 0.9; + 7309 1 0 -0 0 1.32 0 1.054902 -11.343079 220 5 1.1 0.9; + 7316 1 -0 0 0 0.09 0 1.044717 -7.284069 220 5 1.1 0.9; + 7325 1 0 0 0 0.41 0 1.052061 -12.679657 220 5 1.1 0.9; + 7327 2 0 0 0 0 0 1.043172 -18.073929 220 5 1.1 0.9; + 7328 2 0 0 0 0 0 0.999675 -14.476061 380 5 1.1 0.9; + 7338 1 0 -0 0 2.98 0 1.045891 -14.743514 220 5 1.1 0.9; + 7341 1 37.44 0 0 0.67 0 1.040136 -2.402429 220 5 1.1 0.9; + 7342 1 169 70.8 0 5.23 0 1.018398 -16.108009 220 5 1.1 0.9; + 7351 1 61.67 16.3 0 0.05 0 1.037551 -2.8443 220 5 1.1 0.9; + 7353 1 127.3 26.7 0 7.02 0 0.985936 -22.42059 220 5 1.1 0.9; + 7361 1 -0 -0 0 14.29 0 1.053815 -15.271705 220 5 1.1 0.9; + 7367 1 1.5 0.4 0 0.15 0 1.028631 -18.905659 220 5 1.1 0.9; + 7373 1 0 -0 0 1.81 0 1.071954 -23.60091 220 5 1.1 0.9; + 7377 1 0 0 0 0.63 0 1.014168 -16.130077 220 5 1.1 0.9; + 7380 1 105.67 0.56 0 18.05 0 0.992016 -14.57117 380 5 1.1 0.9; + 7396 1 -0 0 0 5.68 0 1.019741 -19.557023 220 5 1.1 0.9; + 7422 1 65.67 25.6 0 2.34 0 1.033674 -10.805957 220 5 1.1 0.9; + 7437 1 18.32 5.3 0 7.32 0 1.04383 -25.64578 220 5 1.1 0.9; + 7438 1 121.3 20.7 0 2.39 0 1.035924 -12.727575 220 5 1.1 0.9; + 7464 1 197.65 28.23 0 5.87 0 1.041056 -12.617278 220 5 1.1 0.9; + 7466 2 0 0 0 0 0 1.057257 -34.871885 220 5 1.1 0.9; + 7471 1 -18.95 -6.93 0 33.11439 0 1.020554 -6.279485 380 5 1.1 0.9; + 7473 1 113.44 71.42 0 11.08 0 1.035336 -16.025005 220 5 1.1 0.9; + 7474 2 0 0 0 0 0 1.027108 -14.200631 220 5 1.1 0.9; + 7485 1 44.35 10.8 0 8.72 0 1.042606 -25.826706 220 5 1.1 0.9; + 7491 1 0 -0 0 4.29 0 1.012242 -21.474958 220 5 1.1 0.9; + 7495 2 0 0 0 0 0 1.035256 -15.196734 220 5 1.1 0.9; + 7507 1 4 0.8 0 17.65 0 1.04914 -24.08765 220 5 1.1 0.9; + 7513 1 0 -0 0 38.549494 0 0.993009 -15.030612 380 5 1.1 0.9; + 7519 1 97.97 31.8 0 5.02 0 1.036786 -10.798224 220 5 1.1 0.9; + 7520 2 0 0 0 0 0 1.037447 -9.123264 380 5 1.1 0.9; + 7522 2 0 0 0 0 0 0.99994 -10.953994 380 5 1.1 0.9; + 7523 1 -0 0 0 2.11 0 1.052161 -0.72038 220 5 1.1 0.9; + 7530 1 0 0 0 31.242294 0 1.046869 -19.820201 380 5 1.1 0.9; + 7537 1 0 0 0 17.184121 0 0.989983 -15.6248 380 5 1.1 0.9; + 7539 1 40.85 15.7 0 2.08 0 1.053724 -12.373239 220 5 1.1 0.9; + 7541 1 346.42 89.04 0 43.55 0 1.054084 -16.465783 380 5 1.1 0.9; + 7571 1 -0 -0 0 13.9 0 1.044943 -13.985525 220 5 1.1 0.9; + 7576 1 0 0 0 0.5 0 1.04028 -12.028046 220 5 1.1 0.9; + 7577 1 0 0 0 6.69 0 1.0481 -10.467484 220 5 1.1 0.9; + 7579 1 136.9 11.4 0 3.05 0 1.048022 -26.50227 220 5 1.1 0.9; + 7580 1 0 0 0 0.17 0 1.05695 -11.9558 220 5 1.1 0.9; + 7582 1 0 -0 0 3.44 0 1.035758 -24.450751 220 5 1.1 0.9; + 7583 1 5.01 1.8 0 3.68 0 1.04744 -0.936009 220 5 1.1 0.9; + 7599 1 0 -0 0 2.13 0 1.034704 -6.055108 220 5 1.1 0.9; + 7624 1 32.74 10.5 0 1.78 0 1.01592 -20.903943 220 5 1.1 0.9; + 7626 1 78.89 45.6 0 0.04 0 1.032312 -12.417124 220 5 1.1 0.9; + 7635 1 0 0 0 1.86 0 1.050003 -7.891572 220 5 1.1 0.9; + 7640 1 68.78 35 0 34.52 0 1.033083 -6.005598 380 5 1.1 0.9; + 7641 2 0 0 0 0 0 1.051427 -6.243524 220 5 1.1 0.9; + 7647 1 -0 -0 0 0.1 0 1.063763 -20.174055 220 5 1.1 0.9; + 7653 1 33.94 11.4 0 0 0 1.0368 -22.767059 220 5 1.1 0.9; + 7663 1 37.14 2.7 0 2.33 0 1.042204 -11.956017 220 5 1.1 0.9; + 7691 1 0 -0 0 96.48 0 1.026843 -3.944271 380 5 1.1 0.9; + 7694 1 -14.96 -4.7 0 0.04 0 1.027078 -14.861465 220 5 1.1 0.9; + 7697 2 0 0 0 0 0 1.052424 -3.583012 220 5 1.1 0.9; + 7700 1 66.17 27.4 0 14.12 0 1.018432 -10.528155 220 5 1.1 0.9; + 7702 1 -0 -0 0 11.68 0 1.025153 -16.313747 220 5 1.1 0.9; + 7726 1 0 0 0 2.03 0 1.018323 -10.493485 220 5 1.1 0.9; + 7738 1 31.84 9.2 0 5.23 0 1.027755 -21.847912 220 5 1.1 0.9; + 7752 1 524.5 126 0 7.45 0 1.03043 -18.412915 220 5 1.1 0.9; + 7766 1 78.89 25.6 0 1.6 0 1.033279 -12.689648 220 5 1.1 0.9; + 7770 1 207.9 32.36 0 8.31 0 1.031073 -44.333742 220 5 1.1 0.9; + 7772 1 223.6 51.8 0 18.45 0 1.053846 -25.615931 220 5 1.1 0.9; + 7775 1 151.5 7.9 0 5 0 1.054984 -28.678026 220 5 1.1 0.9; + 7776 2 0 0 0 0 0 1.072261 6.181044 380 5 1.3 0.7; + 7778 1 153 21.5 0 28.85 0 1.057591 -16.510132 380 5 1.1 0.9; + 7791 1 -0 0 0 1.33 0 1.03015 -12.988362 220 5 1.1 0.9; + 7797 1 -0 -0 0 2.09 0 1.051084 -24.096828 220 5 1.1 0.9; + 7808 2 0 0 0 0 0 1.054562 -0.188042 380 5 1.1 0.9; + 7809 1 169.5 27.7 0 3.04 0 1.024952 -11.538551 220 5 1.1 0.9; + 7824 1 9.21 3.4 0 2.63 0 1.047756 -6.282298 220 5 1.1 0.9; + 7831 1 -17.17 -7.1 0 57.019803 0 1.011199 -11.417611 380 5 1.1 0.9; + 7840 1 -19.28 29.9 0 1.6 0 1.049049 -2.414341 220 5 1.1 0.9; + 7842 2 0 0 0 0 0 1.001912 -12.534976 380 5 1.1 0.9; + 7847 1 0 -0 0 1.55 0 1.040499 -8.878125 220 5 1.1 0.9; + 7857 1 0 0 0 2.36 0 1.050458 0.170436 220 5 1.1 0.9; + 7862 1 0 0 0 9.74 0 1.040593 -21.115869 220 5 1.1 0.9; + 7865 1 84.99 19.6 0 4.32 0 1.074298 -26.36902 220 5 1.1 0.9; + 7873 1 -20.94 -6.16 0 11.99 0 1.021235 -15.229234 220 5 1.1 0.9; + 7881 1 -0 -0 0 7.99 0 1.055617 -14.956341 220 5 1.1 0.9; + 7883 1 47.55 17.8 0 0.32 0 1.050929 -28.78941 220 5 1.1 0.9; + 7885 1 142.4 20 0 2.42 0 1.037839 -21.110646 220 5 1.1 0.9; + 7886 1 162.5 42.7 0 12.79 0 1.018149 -19.303853 220 5 1.1 0.9; + 7892 1 36.94 11 0 0.52 0 1.053815 -11.294264 220 5 1.1 0.9; + 7895 1 338.7 52.5 0 11.36 0 1.059845 -19.561088 220 5 1.1 0.9; + 7903 1 0 -0 0 7.78 0 1.072768 -41.998744 220 5 1.1 0.9; + 7905 1 347.1 87.2 0 88.35 0 1.046655 -17.893306 380 5 1.1 0.9; + 7913 2 0 0 0 0 0 1.063764 -8.906151 380 5 1.1 0.9; + 7923 1 0 -0 0 0.97 0 1.038632 -22.138858 220 5 1.1 0.9; + 7937 1 56.06 17 0 2.4 0 1.040168 -7.402075 220 5 1.1 0.9; + 7943 1 38.44 2 0 0.56 0 1.047179 -16.175311 220 5 1.1 0.9; + 7945 1 17.92 5.8 0 0.84 0 1.031087 -5.74962 220 5 1.1 0.9; + 7955 1 111.6 8.9 0 16.19 0 1.068312 -23.349161 220 5 1.1 0.9; + 7961 1 50.56 8.1 0 8.02 0 1.034289 -8.616758 220 5 1.1 0.9; + 7967 1 0 -0 0 5.97 0 1.043007 -11.416934 220 5 1.1 0.9; + 7972 1 237.9 68.5 0 5.12 0 1.035175 -19.298443 220 5 1.1 0.9; + 7974 1 234 13.1 0 51.03 0 1.033995 -20.055775 220 5 1.1 0.9; + 7982 1 112 19.7 0 38.04 0 1.036111 -23.13213 220 5 1.1 0.9; + 7988 1 -3.55 -1.43 0 11.834121 0 1.0339 -2.136803 380 5 1.1 0.9; + 7989 1 0 0 0 0.27 0 1.052062 -3.729978 220 5 1.1 0.9; + 7994 1 11.91 3.3 0 6.84 0 1.015764 -16.263273 220 5 1.1 0.9; + 7998 2 0 0 0 0 0 1.048854 4.223749 380 5 1.1 0.9; + 8005 1 -0 -0 0 16.77 0 1.027697 -13.719399 220 5 1.1 0.9; + 8030 1 -0 0 0 122.13 0 1.034376 -4.451962 380 5 1.1 0.9; + 8035 1 -0 0 0 4.22 0 1.023645 -16.359288 220 5 1.1 0.9; + 8043 2 0 0 0 0 0 1.066913 -11.239517 220 5 1.1 0.9; + 8057 1 69.18 9.5 0 3.67 0 1.045952 -8.643584 220 5 1.1 0.9; + 8060 1 0 -0 0 9.54 0 1.05168 -13.395033 220 5 1.1 0.9; + 8104 1 127.2 40.8 0 0.2 0 1.070946 -25.178857 220 5 1.1 0.9; + 8107 1 68.18 16.1 0 3.35 0 1.034732 -23.363006 220 5 1.1 0.9; + 8109 2 0 0 0 0 0 1.067387 -21.117921 380 5 1.1 0.9; + 8112 1 87.9 29.3 0 1.21 0 1.031544 -3.541639 220 5 1.1 0.9; + 8128 1 -0 0 0 8.1 0 1.090736 -9.663123 380 5 1.1 0.9; + 8151 1 0 0 0 14.23 0 1.044491 -25.577335 220 5 1.1 0.9; + 8158 2 0 0 0 0 0 1.052602 -0.559615 220 5 1.1 0.9; + 8165 1 0 -0 0 2.42 0 1.061504 -3.473077 220 5 1.1 0.9; + 8180 1 291.6 47 0 2.38 0 1.075394 -30.774767 220 5 1.1 0.9; + 8189 1 0 -0 0 9.54 0 1.042203 -18.144075 220 5 1.1 0.9; + 8190 1 0 -0 0 0.32 0 1.048784 -10.298904 220 5 1.1 0.9; + 8191 1 0 0 0 11.38 0 1.051859 -15.264149 220 5 1.1 0.9; + 8195 1 -101.01 -129.29 0 37.176703 0 1.02377 -17.045599 380 5 1.1 0.9; + 8200 1 0 -0 0 39.58 0 1.021119 -6.153606 380 5 1.1 0.9; + 8209 1 83.39 16.5 0 16.43 0 1.033486 -20.136338 220 5 1.1 0.9; + 8214 1 58.97 11.1 0 1.05 0 1.04259 -11.470366 220 5 1.1 0.9; + 8222 2 0 0 0 0 0 1.02335 -10.438616 380 5 1.1 0.9; + 8225 2 0 0 0 0 0 1.071504 -11.705551 220 5 1.1 0.9; + 8250 1 196.1 32.1 0 3.86 0 1.04037 -25.998622 220 5 1.1 0.9; + 8255 1 39.04 13.1 0 3.22 0 1.021879 -13.796655 220 5 1.1 0.9; + 8265 1 40.44 20.5 0 0.85 0 1.066641 -23.859918 220 5 1.1 0.9; + 8267 2 0 0 0 0 0 1.043326 -9.93055 380 5 1.1 0.9; + 8291 1 0 -0 0 6.52 0 1.043396 -7.697439 220 5 1.1 0.9; + 8293 1 112.7 14.5 0 1.24 0 1.048233 -24.806368 220 5 1.1 0.9; + 8294 1 14.22 6.3 0 0.38 0 1.043617 -11.857424 220 5 1.1 0.9; + 8307 1 -0 0 0 0.14 0 1.051092 -3.882875 220 5 1.1 0.9; + 8310 1 -0 0 0 2.46 0 1.049352 -8.638203 220 5 1.1 0.9; + 8311 2 0 0 0 0 0 1.035451 -15.519296 220 5 1.1 0.9; + 8312 2 0 0 0 0 0 1.07814 -12.220054 380 5 1.1 0.9; + 8316 1 0 0 0 0.72 0 1.084023 -26.486866 220 5 1.1 0.9; + 8328 1 82.39 14.4 0 13.37 0 1.041343 -24.415623 220 5 1.1 0.9; + 8331 1 -0 -0 0 0.05 0 1.047611 -12.932386 220 5 1.1 0.9; + 8334 1 263.96 -98.64 0 27.848535 0 1.034142 -14.749149 380 5 1.1 0.9; + 8347 1 -2.09 -1.43 0 48.358243 0 0.988493 -18.64268 380 5 1.1 0.9; + 8361 1 126.54 29.1 0 12.55 0 1.073653 -26.422933 220 5 1.1 0.9; + 8367 1 77.99 19.3 0 3.04 0 1.034784 -6.699666 220 5 1.1 0.9; + 8369 1 -0 -0 0 1.23 0 1.02695 -9.179276 220 5 1.1 0.9; + 8373 1 216.3 -6.9 0 2.44 0 1.071546 -48.132392 220 5 1.1 0.9; + 8397 1 -0 0 0 4.05 0 1.042817 -25.347834 220 5 1.1 0.9; + 8405 1 40.75 12.5 0 2.61 0 1.036479 -12.357404 220 5 1.1 0.9; + 8406 1 0 0 0 14.38 0 1.050892 -25.13855 220 5 1.1 0.9; + 8411 1 39.64 9.6 0 1.8 0 1.042819 -25.804727 220 5 1.1 0.9; + 8439 1 380.8 62.8 0 7.11 0 0.998187 -23.461096 220 5 1.1 0.9; + 8448 1 286.1 89.3 0 8.89 0 1.018069 -20.595036 220 5 1.1 0.9; + 8458 2 0 0 0 0 0 1.042925 -9.400848 380 5 1.1 0.9; + 8466 1 0 -0 0 1.97 0 1.045302 -4.473537 220 5 1.1 0.9; + 8467 1 216.2 75.3 0 2.74 0 0.98622 -22.981008 220 5 1.1 0.9; + 8468 1 21.42 11.8 0 28.85 0 1.005238 -14.948026 380 5 1.1 0.9; + 8473 2 0 0 0 0 0 1.039202 -8.879096 220 5 1.1 0.9; + 8475 1 -0 0 0 8.35 0 1.072229 -47.841521 220 5 1.1 0.9; + 8477 1 0 0 0 2.46 0 1.068335 -10.11476 220 5 1.1 0.9; + 8478 1 -0 0 0 3.01 0 1.04799 -8.490097 220 5 1.1 0.9; + 8485 1 149 99.8 0 9.27 0 1.039726 -7.369105 220 5 1.1 0.9; + 8486 2 0 0 0 0 0 1.04752 -19.530978 380 5 1.1 0.9; + 8487 1 44.45 7.68 0 17.83 0 1.003338 -3.846694 380 5 1.1 0.9; + 8494 1 235.97 34.52 0 7.15 0 1.08964 -9.846898 380 5 1.1 0.9; + 8497 1 38.84 14.2 0 3.5 0 1.046629 -14.553599 220 5 1.1 0.9; + 8507 1 37.44 9.1 0 7.87 0 1.074417 -26.347125 220 5 1.1 0.9; + 8511 1 93.6 -43.5 0 33.51 0 1.04106 -24.505876 220 5 1.1 0.9; + 8515 2 0 0 0 0 0 1.053872 -12.378436 220 5 1.1 0.9; + 8522 2 0 0 0 0 0 1.019671 -15.723378 220 5 1.1 0.9; + 8535 1 72.68 24.3 0 3.12 0 1.036308 -21.925576 220 5 1.1 0.9; + 8542 1 87.7 26 0 47.58 0 1.044937 -21.028222 220 5 1.1 0.9; + 8546 1 5.01 1.8 0 0.77 0 1.038205 -11.643532 220 5 1.1 0.9; + 8560 1 -0 0 0 1.11 0 0.984498 -18.190495 380 5 1.1 0.9; + 8564 2 0 0 0 0 0 1.019727 -19.556828 220 5 1.1 0.9; + 8568 1 175.7 56.2 0 0.13 0 1.027945 -6.041782 220 5 1.1 0.9; + 8578 1 0 -0 0 4.55 0 1.049043 -21.931929 220 5 1.1 0.9; + 8592 1 -0 0 0 0.43 0 1.051916 -3.764146 220 5 1.1 0.9; + 8626 1 136 36.1 0 6.07 0 0.99463 -17.562106 220 5 1.1 0.9; + 8627 1 -0 0 0 4.26 0 1.048517 -26.395781 220 5 1.1 0.9; + 8628 1 277.1 37 0 21.03 0 1.042001 -23.598682 220 5 1.1 0.9; + 8636 1 31.43 10.6 0 1.61 0 1.041292 -21.579777 220 5 1.1 0.9; + 8651 1 162.49 45.11 0 5.38 0 1.024808 -17.313776 220 5 1.1 0.9; + 8653 1 44.55 7.5 0 0.6 0 1.036488 -16.021006 220 5 1.1 0.9; + 8656 1 5.51 1.3 0 0.09 0 1.031987 -8.436898 220 5 1.1 0.9; + 8669 1 74.98 10.5 0 12.96 0 1.050943 -15.2714 220 5 1.1 0.9; + 8670 2 0 0 0 0 0 1.049066 -6.522112 220 5 1.1 0.9; + 8672 1 -0 -0 0 28.515005 0 1.023418 -20.934804 380 5 1.1 0.9; + 8676 2 0 0 0 0 0 1.018762 -21.841814 220 5 1.1 0.9; + 8677 1 0 0 0 2.29 0 1.018085 -10.22697 220 5 1.1 0.9; + 8683 2 0 0 0 0 0 1.041975 -24.273671 220 5 1.1 0.9; + 8689 1 42.65 18.2 0 0 0 1.036224 -20.697926 220 5 1.1 0.9; + 8691 1 305.04 77.16 0 17.43 0 1.047013 -33.585967 220 5 1.1 0.9; + 8704 1 180.7 71.8 0 2.46 0 1.039389 -7.999499 220 5 1.1 0.9; + 8707 1 101.9 24.3 0 8.53 0 1.032359 -11.707737 220 5 1.1 0.9; + 8711 1 0 0 0 3.9 0 1.040912 -12.07314 220 5 1.1 0.9; + 8721 2 0 0 0 0 0 1.054052 -15.864679 380 5 1.1 0.9; + 8722 1 -0 0 0 2.13 0 1.072192 -25.045427 220 5 1.1 0.9; + 8732 1 66.27 19.3 0 12.94 0 1.038041 -21.15003 220 5 1.1 0.9; + 8743 1 11.61 7.6 0 6.21 0 1.035613 -34.477305 220 5 1.1 0.9; + 8748 1 279.7 4.6 0 3.77 0 1.067084 -49.622846 220 5 1.1 0.9; + 8763 1 -233.23 29.6 0 207.55 0 1.04005 2.599263 380 5 1.1 0.9; + 8765 1 -0 -0 0 11.69 0 1.051157 -15.257422 220 5 1.1 0.9; + 8787 1 22.83 8 0 3.71 0 1.066984 -16.98525 220 5 1.1 0.9; + 8788 1 143.8 46.45 0 3.26 0 1.046176 -5.977711 220 5 1.1 0.9; + 8791 1 -0 -0 0 0.36 0 1.057978 -22.356166 220 5 1.1 0.9; + 8795 2 0 0 0 0 0 1.054157 -0.136311 220 5 1.1 0.9; + 8804 1 22.02 4.4 0 4.83 0 1.049065 -9.481469 220 5 1.1 0.9; + 8807 2 0 0 0 0 0 1.05109 -3.882868 220 5 1.1 0.9; + 8808 1 203.6 19.81 0 15.46 0 1.060353 -25.817931 220 5 1.1 0.9; + 8809 1 101.2 -2.9 0 0.51 0 1.029974 -32.515321 220 5 1.1 0.9; + 8818 2 0 0 0 0 0 1.050791 0.636035 220 5 1.1 0.9; + 8825 1 406.04 95.5 0 35.34 0 1.014963 -2.776003 380 5 1.1 0.9; + 8829 1 91.6 27.1 0 10.95 0 1.044583 -21.076938 220 5 1.1 0.9; + 8834 1 -0 0 0 1.52 0 1.003582 -22.536497 220 5 1.1 0.9; + 8835 1 113.7 22.3 0 15.55 0 1.036698 -22.906459 220 5 1.1 0.9; + 8843 1 208.7 63 0 3.45 0 1.054844 -11.164607 220 5 1.1 0.9; + 8846 1 20.82 0 0 0.17 0 1.070172 7.811263 220 5 1.1 0.9; + 8853 1 410.3 91.6 0 13.25 0 1.052314 -36.519464 220 5 1.1 0.9; + 8854 1 69.18 35.1 0 12.59 0 1.027794 -44.429467 220 5 1.1 0.9; + 8860 1 57.16 19.7 0 22.17 0 1.020431 -10.190501 220 5 1.1 0.9; + 8864 1 63.31 -9.8 0 5.36 0 1.048228 -31.670524 220 5 1.1 0.9; + 8872 2 0 0 0 0 0 1.053844 -15.88923 380 5 1.1 0.9; + 8873 1 0 -0 0 1.87 0 1.071142 -27.284425 220 5 1.1 0.9; + 8874 1 285.2 61.4 0 26.04 0 1.046146 -20.00976 220 5 1.1 0.9; + 8877 1 -0 0 0 1.03 0 1.039567 -20.646198 220 5 1.1 0.9; + 8879 1 0 0 0 1.47 0 1.036915 -22.747121 220 5 1.1 0.9; + 8886 1 0 -0 0 -1.392036 0 0.983701 -3.785162 380 5 1.1 0.9; + 8887 1 0 0 0 102.70867 0 1.045962 1.729833 380 5 1.1 0.9; + 8893 1 278.3 33.6 0 25.9 0 1.05128 -15.163258 220 5 1.1 0.9; + 8900 1 3.1 1.6 0 0.09 0 1.047741 -23.703947 220 5 1.1 0.9; + 8903 2 0 0 0 0 0 1.020268 -11.421507 380 5 1.1 0.9; + 8906 1 91 21 0 11.23 0 1.036 -23.062052 220 5 1.1 0.9; + 8913 1 -0 0 0 1.13 0 1.040075 -20.555337 220 5 1.1 0.9; + 8930 1 139.4 21.2 0 6.21 0 0.991658 -18.577239 220 5 1.1 0.9; + 8931 1 -0.56 -0 0 108.21 0 1.090352 -9.661963 380 5 1.1 0.9; + 8947 1 3.7 0.2 0 0.05 0 1.03998 -11.496674 220 5 1.1 0.9; + 8950 2 0 0 0 0 0 1.047268 -14.839334 220 5 1.1 0.9; + 8961 2 0 0 0 0 0 1.035459 -14.187287 220 5 1.1 0.9; + 8975 1 0 -0 0 11.04 0 1.04225 -24.276259 220 5 1.1 0.9; + 8976 2 0 0 0 0 0 1.046972 -17.074322 220 5 1.1 0.9; + 8980 1 63.97 12.8 0 0.17 0 1.042994 -11.072487 220 5 1.1 0.9; + 8989 1 88.5 24.5 0 2.23 0 1.043398 -25.575347 220 5 1.1 0.9; + 8992 1 -0 -0 0 14.64 0 1.051114 -3.785395 220 5 1.1 0.9; + 8997 2 0 0 0 0 0 0.997131 -13.27089 380 5 1.1 0.9; + 8999 1 41.15 10.3 0 2.41 0 1.044391 -21.558302 220 5 1.1 0.9; + 9002 1 119.02 12.54 0 23.45 0 1.021009 -10.528192 220 5 1.1 0.9; + 9011 1 88.4 25.2 0 12.9 0 1.036275 -23.026084 220 5 1.1 0.9; + 9012 1 25.63 6.5 0 0.52 0 1.048758 1.093286 220 5 1.1 0.9; + 9014 1 70.78 19.6 0 8.1 0 1.051072 -6.681904 220 5 1.1 0.9; + 9018 1 55.46 16.9 0 1.92 0 1.022715 -6.602667 220 5 1.1 0.9; + 9019 1 91.4 18.1 0 4.89 0 1.040421 -24.677298 220 5 1.1 0.9; + 9021 1 152.18 21.63 0 1.91 0 1.035437 -6.308005 220 5 1.1 0.9; + 9033 1 76.88 16.4 0 6.61 0 1.049786 -26.382004 220 5 1.1 0.9; + 9045 1 60.57 18.9 0 1.46 0 1.039905 -24.629587 220 5 1.1 0.9; + 9051 1 0 -0 0 2.15 0 1.036594 0.577238 220 5 1.1 0.9; + 9059 1 0 -0 0 2 0 1.072487 -27.192131 220 5 1.1 0.9; + 9065 1 -0 -0 0 0.59 0 1.040021 2.414524 380 5 1.1 0.9; + 9066 1 23.26 3.01 0 9.29 0 1.019989 -20.806005 220 5 1.1 0.9; + 9067 2 0 0 0 0 0 1.040924 1.549232 220 5 1.1 0.9; + 9091 1 0 0 0 3.65 0 1.038554 -9.767436 220 5 1.1 0.9; + 9101 2 0 0 0 0 0 1.02885 -21.628013 380 5 1.1 0.9; + 9108 2 0 0 0 0 0 1.046626 -16.441009 220 5 1.1 0.9; + 9109 1 0 -0 0 0.31 0 1.036596 0.577218 220 5 1.1 0.9; + 9112 1 0 -0 0 19.71 0 1.047611 -12.93238 220 5 1.1 0.9; + 9119 1 -0 0 0 1.24 0 1.04289 -20.527494 220 5 1.1 0.9; + 9128 1 50.56 8.7 0 0.19 0 1.042244 -2.676445 220 5 1.1 0.9; + 9130 1 245.51 9.17 0 24.25 0 1.049965 -30.721639 220 5 1.1 0.9; + 9131 1 -0 -0 0 6.62 0 1.051124 -24.097314 220 5 1.1 0.9; + 9137 2 0 0 0 0 0 1.049768 -26.378636 220 5 1.1 0.9; + 9140 2 0 0 0 0 0 1.049624 -5.232971 220 5 1.1 0.9; + 9150 2 0 0 0 0 0 1.037969 -13.200551 380 5 1.1 0.9; + 9155 1 -0 -0 0 5.01 0 1.02382 -20.860292 220 5 1.1 0.9; + 9158 1 54.96 9.42 0 5.92 0 1.025798 -14.56483 220 5 1.1 0.9; + 9164 1 7.71 2.4 0 6.93 0 1.001887 -19.403088 220 5 1.1 0.9; + 9173 1 66.07 15.6 0 5.57 0 1.032906 -20.202148 220 5 1.1 0.9; + 9174 2 0 0 0 0 0 1.03623 -32.377948 380 5 1.1 0.9; + 9176 1 -0 0 0 1.28 0 1.047842 -12.93497 220 5 1.1 0.9; + 9180 2 0 0 0 0 0 1.061189 -8.603491 220 5 1.1 0.9; + 9181 1 2.43 1.35 0 0.1 0 1.032498 -9.466095 220 5 1.1 0.9; + 9185 1 66.97 18.6 0 18.5 0 1.051815 -6.62338 220 5 1.1 0.9; + 9189 1 62.57 -61 0 55.14 0 1.048019 -25.022568 220 5 1.1 0.9; + 9191 1 -0 -0 0 2.34 0 1.073685 -24.80852 220 5 1.1 0.9; + 9203 1 627.36 -73.13 0 27.185221 0 1.001613 -12.605605 380 5 1.1 0.9; + 9213 1 -0 -0 0 10.210952 0 1.023742 -4.653017 380 5 1.1 0.9; + 9217 1 -0 0 0 6.33 0 1.040155 -8.875709 220 5 1.1 0.9; + 9222 1 -5.15 -2.04 0 154.446402 0 1.053345 -16.073005 380 5 1.1 0.9; + 9231 1 242.08 59.98 0 5.6 0 1.029833 -19.150137 220 5 1.1 0.9; + 9241 1 0 -0 0 0.36 0 1.049081 -9.481609 220 5 1.1 0.9; +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin +% FUBM BUSES + 10001 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10002 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10003 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10004 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + 10005 1 0 0 0 0 0 1 0 220 5 1.1 0.9; + ]; + +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + 124 861.3 56.53 440.32 -172.59 1.081537 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 150 67.29 -7.99 77.09 -22.54 1.062805 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 221 -155.39 97.68 183.92 -65.3 0.984682 100 1 100 -207.18 0 0 0 0 0 0 0 0 0 0 0; + 338 83.7 2.5 55.54 -19.16 1.048249 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 352 1250.4 278.94 926.35 -297.68 1.055378 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 413 231 19.11 124.12 -49.84 1.05013 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 453 260.1 57.98 257.23 -74.4 1.018914 100 1 540 0 0 0 0 0 0 0 0 0 0 0 0; + 516 539.4 190.43 261.79 -106.67 1.075592 100 1 600 200 0 0 0 0 0 0 0 0 0 0 0; + 564 -51.67 -3.31 18.47 -19.35 1.069817 100 1 100 -68.89 0 0 0 0 0 0 0 0 0 0 0; + 583 -270 3.65 17.88 -7.03 1.045397 100 1 100 -360 0 0 0 0 0 0 0 0 0 0 0; + 615 38.2 -0.39 17.09 -7.79 1.063876 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 616 379.2 37.76 217.9 -81.16 1.048713 100 1 480 160 0 0 0 0 0 0 0 0 0 0 0; + 639 -46.2 112.55 135.52 -38.9 1.051376 100 1 100 -61.6 0 0 0 0 0 0 0 0 0 0 0; + 682 37.4 8.53 38.77 -11.06 1.0691 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 749 198.88 -11.17 105.69 -43.84 1.057884 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 757 116.7 13.66 51.3 -23.41 1.017567 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 776 -111.4 3.36 18.16 -6.73 1.026368 100 1 100 -148.53 0 0 0 0 0 0 0 0 0 0 0; + 778 16.5 -0.67 12.37 -9.36 1.049411 100 1 33.58 0 0 0 0 0 0 0 0 0 0 0 0; + 795 58.4 7.75 36.75 -13.04 1.035522 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 803 -89.2 -1.52 74.03 -25.54 1.041369 100 1 100 -118.93 0 0 0 0 0 0 0 0 0 0 0; + 823 1274.2 289.74 926.68 -298.31 1.044097 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 851 59.56 50.82 96.64 -27.81 1.00025 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 858 855.6 147.86 440.67 -172.15 1.031745 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 891 1702.8 651.53 1097.41 -373.91 1.064525 100 1 2400 800 0 0 0 0 0 0 0 0 0 0 0; + 972 1221.2 393.14 934.73 -291.52 1.072621 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1001 92.1 25.97 55.02 -19.81 1.074143 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 1002 171 10.89 89.55 -35.15 1.041506 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 1043 829.5 49 387.88 -163.4 1.028946 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 1083 91.8 9.85 54.91 -19.88 1.049472 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 1093 837 83.03 550.69 -185.15 1.027056 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 1100 58.2 5.6 36.8 -13.01 1.042801 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1102 -124.15 7.32 38.05 -11.59 1.049879 100 1 100 -165.54 0 0 0 0 0 0 0 0 0 0 0; + 1237 1504.8 364.78 906.61 -319.44 1.108028 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1251 837 77.94 550.69 -185.15 1.027102 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 1295 -124.1 4.52 36.92 -12.88 1.03682 100 1 100 -165.47 0 0 0 0 0 0 0 0 0 0 0; + 1341 67.2 29.74 57.03 -17.62 1.032899 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 1354 -246.5 13.72 38.08 -11.73 1.041045 100 1 100 -328.67 0 0 0 0 0 0 0 0 0 0 0; + 1422 -101 2.33 18.09 -6.79 1.04353 100 1 100 -134.67 0 0 0 0 0 0 0 0 0 0 0; + 1436 49.4 2.95 37.72 -12.09 1.047684 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1478 62.6 7.49 36.4 -13.44 1.048068 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1604 50.6 13.86 37.66 -12.17 1.043862 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1642 50.4 11.76 37.74 -12.11 1.028554 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 1680 1250.4 274.36 928.89 -296.1 1.04395 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1708 860.8 121.94 439.37 -173.3 1.037938 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 1721 28.1 1.73 18.52 -6.39 1.062238 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 1754 40 3.62 16.99 -7.92 1.04286 100 1 41.06 0 0 0 0 0 0 0 0 0 0 0 0; + 1794 1250.4 253.94 926.35 -297.68 1.05295 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 1808 -0.6 -13.17 111.23 -38.16 1.046224 100 1 100 -0.8 0 0 0 0 0 0 0 0 0 0 0; + 1851 15.6 -1.26 11.76 -8.89 1.04762 100 1 31.92 0 0 0 0 0 0 0 0 0 0 0 0; + 1852 -241.8 10.63 58.16 -16.52 1.054325 100 1 100 -322.4 0 0 0 0 0 0 0 0 0 0 0; + 1888 573.68 42.43 396.02 -155.83 1.039377 100 1 912.78 312.78 0 0 0 0 0 0 0 0 0 0 0; + 1914 115.5 -45.22 160.36 -150.95 1.035636 100 1 472.16 39.35 0 0 0 0 0 0 0 0 0 0 0; + 1959 31 0.56 18.14 -6.75 1.064692 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 2035 855.6 149.85 441.85 -171.27 1.03088 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 2050 836.2 -16.43 962.2 -263.65 1.009914 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2085 176 31.77 88.39 -36.19 1.040351 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 2177 -121.3 13.33 58.35 -16.26 1.07333 100 1 100 -161.73 0 0 0 0 0 0 0 0 0 0 0; + 2197 -53.29 -1.42 19.51 -14.74 1.035528 100 1 100 -71.05 0 0 0 0 0 0 0 0 0 0 0; + 2276 38.9 -22.64 41.67 -36.5 1.05324 100 1 119.3 0 0 0 0 0 0 0 0 0 0 0 0; + 2291 110.5 13.69 95.69 -28.93 1.072528 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 2359 78.2 7.2 34.35 -15.5 1.024884 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2421 -320.4 4.66 37.39 -12.45 1.047766 100 1 100 -427.2 0 0 0 0 0 0 0 0 0 0 0; + 2425 -100.5 5.31 54.3 -20.49 1.041186 100 1 100 -134 0 0 0 0 0 0 0 0 0 0 0; + 2426 -43.2 -30.65 105.34 -99.02 1.037687 100 1 100 -57.6 0 0 0 0 0 0 0 0 0 0 0; + 2446 1367 286.48 921.62 -304.73 1.06157 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2468 46.8 5.15 38.02 -11.81 1.048132 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2481 31.8 11.5 39.12 -10.71 1.042777 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2489 286.5 -15.8 162.4 -61.79 1.049366 100 1 360 0 0 0 0 0 0 0 0 0 0 0 0; + 2550 54.3 4.31 58.23 -16.49 1.049384 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2600 76.48 16.9 76.08 -23.59 1.038821 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 2627 1367 302.84 921.52 -304.79 1.061488 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2653 41.92 3.94 51.94 -22.8 1.036517 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2719 77.6 -15.35 70.15 -58.1 1.035384 100 1 196.72 0 0 0 0 0 0 0 0 0 0 0 0; + 2786 1221.2 372.42 934.81 -291.47 1.073795 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2797 -95.1 -11.62 88.33 -36.33 1.042226 100 1 100 -126.8 0 0 0 0 0 0 0 0 0 0 0; + 2799 66.8 -1.21 77.91 -21.66 1.05396 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 2816 1250.4 270.9 926.26 -297.74 1.053944 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 2841 80.7 -3.29 55.98 -18.76 1.08248 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2842 31.6 5.75 18.19 -6.74 1.043712 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 2872 4.5 0.33 3.31 -2.54 1.063841 100 1 9.05 0 0 0 0 0 0 0 0 0 0 0 0; + 2878 8.95 -11.72 72.95 -68.71 1.057626 100 1 214.86 0 0 0 0 0 0 0 0 0 0 0 0; + 2886 60.9 10.71 57.69 -17.02 1.055151 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 2902 20.9 1.11 19.19 -5.72 1.059072 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 2930 53.2 2.49 37.24 -12.54 1.047695 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 2934 3.4 -0.16 2.51 -1.91 1.051149 100 1 6.83 0 0 0 0 0 0 0 0 0 0 0 0; + 2985 46.6 -69.84 184.46 -132.67 1.053607 100 1 493.35 0 0 0 0 0 0 0 0 0 0 0 0; + 3018 162.5 -4.77 89.61 -34.82 1.041705 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 3028 855.7 146.13 441.85 -171.27 1.030654 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3114 38.6 4.12 17.33 -7.61 1.071964 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 3133 85.54 0.39 113.97 -35.56 1.065372 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 3134 -136.3 -11.71 70.25 -29.33 1.023117 100 1 100 -181.73 0 0 0 0 0 0 0 0 0 0 0; + 3183 98.7 -3.57 53.7 -20.98 1.055515 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 3205 416.7 119.72 243.61 -88.46 1.041982 100 1 540 0 0 0 0 0 0 0 0 0 0 0 0; + 3218 -107.4 4.44 36.79 -13 1.028507 100 1 100 -143.2 0 0 0 0 0 0 0 0 0 0 0; + 3240 -42.3 -25.61 62.23 -51.37 1.050305 100 1 100 -56.4 0 0 0 0 0 0 0 0 0 0 0; + 3306 861.3 143.67 439.2 -173.43 1.071978 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3324 -26.48 12.72 38.13 -11.64 1.014126 100 1 100 -35.3 0 0 0 0 0 0 0 0 0 0 0; + 3346 56.8 11.49 37.1 -12.76 1.01594 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 3353 19.07 5.42 38.2 -11.61 1.045739 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 3364 44.5 -21.96 47.19 -41.44 1.0538 100 1 135.27 0 0 0 0 0 0 0 0 0 0 0 0; + 3390 2.4 12.68 54.59 -20.19 1.039984 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 3422 53.7 -3.24 58.19 -16.5 1.063657 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 3436 521 217.43 550.97 -184.89 1.060777 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 3492 -370.8 2.02 53.75 -21.08 1.04852 100 1 100 -494.4 0 0 0 0 0 0 0 0 0 0 0; + 3513 829.8 51 387.88 -163.4 1.028771 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 3565 15.88 2.27 38.83 -10.97 1.081614 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 3580 539 189.12 261.7 -107.36 1.07602 100 1 600 0 0 0 0 0 0 0 0 0 0 0 0; + 3611 -125.4 3.51 54.59 -20.12 1.03905 100 1 100 -167.2 0 0 0 0 0 0 0 0 0 0 0; + 3656 -26.2 12.26 116.07 -33.32 1.070983 100 1 100 -34.93 0 0 0 0 0 0 0 0 0 0 0; + 3661 861.2 118.75 441.04 -172.05 1.059676 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3698 -12.58 3.09 36.34 -13.47 1.041813 100 1 100 -16.78 0 0 0 0 0 0 0 0 0 0 0; + 3741 854.7 190.06 548.57 -187.16 1.031629 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 3809 257 122.15 313.01 -116.73 1.084785 100 1 700 233.33 0 0 0 0 0 0 0 0 0 0 0; + 3825 837.3 54.8 388.17 -163.4 1.026994 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 3869 855.6 148.23 440.69 -172.14 1.031907 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 3876 -25.1 6.45 34.27 -15.52 1.044501 100 1 100 -33.47 0 0 0 0 0 0 0 0 0 0 0; + 3916 -21.27 11.22 38.02 -11.77 1.043758 100 1 100 -28.37 0 0 0 0 0 0 0 0 0 0 0; + 3951 -27.1 -74.05 126.16 -127.56 1.027439 100 1 100 -36.13 0 0 0 0 0 0 0 0 0 0 0; + 3971 -134.5 9.64 55.67 -19.09 1.063145 100 1 100 -179.33 0 0 0 0 0 0 0 0 0 0 0; + 4024 89.5 40.38 97.07 -27.44 1.040328 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 4056 -76.9 3.73 38.05 -11.77 1.038526 100 1 100 -102.53 0 0 0 0 0 0 0 0 0 0 0; + 4084 366.1 46.44 264.94 -103.74 1.063234 100 1 600 0 0 0 0 0 0 0 0 0 0 0 0; + 4118 41 5.09 38.37 -11.4 1.027195 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4125 59.6 16.3 36.89 -13 1.003502 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4128 67.5 24.27 57.03 -17.63 1.019761 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 4231 2641.24 771.6 Inf -Inf 1.049182 100 1 4188.95 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 4331 60.2 6.92 36.73 -13.12 1.028646 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4395 -129.1 6.73 38.48 -11.33 1.039834 100 1 100 -172.13 0 0 0 0 0 0 0 0 0 0 0; + 4419 861.3 121.55 441.04 -172.05 1.059565 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4480 861.3 143.79 439.2 -173.43 1.071852 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4482 35.2 13.53 38.85 -10.95 1.049914 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4506 -171.8 12.84 37.86 -11.95 1.036047 100 1 100 -229.07 0 0 0 0 0 0 0 0 0 0 0; + 4566 -30.39 6.81 37.94 -11.87 1.073282 100 1 100 -40.51 0 0 0 0 0 0 0 0 0 0 0; + 4624 68 8.25 35.62 -14.19 1.042135 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4661 -78.9 2.19 19.14 -5.77 1.049813 100 1 100 -105.2 0 0 0 0 0 0 0 0 0 0 0; + 4701 93.2 -41.31 98.4 -86.29 1.043063 100 1 281.85 0 0 0 0 0 0 0 0 0 0 0 0; + 4783 861.3 141.62 439.2 -173.43 1.071981 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4816 -26.08 10.07 38.37 -11.44 1.067305 100 1 100 -34.77 0 0 0 0 0 0 0 0 0 0 0; + 4819 855.6 150.1 440.69 -172.14 1.031907 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 4823 10.3 1.59 4.44 -2.07 1.067114 100 1 10.46 0 0 0 0 0 0 0 0 0 0 0 0; + 4850 88.8 11.86 76.52 -23.19 1.054975 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 4880 -40.3 5.06 75.62 -23.96 1.034991 100 1 100 -53.73 0 0 0 0 0 0 0 0 0 0 0; + 4918 41.69 8.64 37.27 -12.57 1.057325 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 4952 -12.57 4.47 37.23 -12.61 1.045386 100 1 100 -16.77 0 0 0 0 0 0 0 0 0 0 0; + 5004 54.3 4.85 74.73 -70.41 1.0663 100 1 220.12 0 0 0 0 0 0 0 0 0 0 0 0; + 5019 49.4 2.95 37.72 -12.09 1.047693 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5051 83.48 -1.38 74.55 -24.97 1.037373 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 5067 542 142.39 258.91 -109.58 1.021924 100 1 600 0 0 0 0 0 0 0 0 0 0 0 0; + 5110 -52.51 8.27 38.28 -11.5 1.032061 100 1 100 -70.01 0 0 0 0 0 0 0 0 0 0 0; + 5120 75.6 -5.04 56.35 -18.42 1.055539 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 5144 1713.6 139.22 882.86 -343.24 1.035201 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5237 106.8 10.9 75.02 -24.74 1.052719 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 5278 119.4 -0.06 51.3 -23.49 1.042037 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 5340 -159 11.05 36.37 -13.43 1.054941 100 1 100 -212 0 0 0 0 0 0 0 0 0 0 0; + 5365 19.59 1.13 18.14 -6.75 1.061754 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 5379 1250.6 358.22 926.47 -297.63 1.107976 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5395 -395.8 3.01 58.06 -16.66 1.048137 100 1 100 -527.73 0 0 0 0 0 0 0 0 0 0 0; + 5461 43.4 10.92 38.26 -11.55 1.06213 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5481 1368.6 146.68 920.31 -305.64 1.063711 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5482 56.8 -22.21 101.32 -48.12 1.044486 100 1 249.06 0 0 0 0 0 0 0 0 0 0 0 0; + 5486 861.3 119.59 441.04 -172.05 1.059636 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 5488 -96.4 14.63 37.49 -12.33 1.041881 100 1 100 -128.53 0 0 0 0 0 0 0 0 0 0 0; + 5490 3424.8 295.7 1765.36 -686.67 1.068845 100 1 4000 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 5533 173 14.6 88.87 -35.71 1.038212 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 5546 21.5 1.97 19.16 -5.75 1.05378 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 5564 57.6 11.81 36.8 -12.99 1.04123 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5658 229.8 77.84 103.18 -46.25 1.017689 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 5664 128 14.87 72.71 -27.05 1.070507 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 5709 837 75.6 550.69 -185.15 1.027078 100 1 1200 400 0 0 0 0 0 0 0 0 0 0 0; + 5781 1102.83 396.26 779.29 -324.79 1.0396 100 1 1800 600 0 0 0 0 0 0 0 0 0 0 0; + 5814 181.2 41.72 196.98 -77.17 1.044051 100 1 440 146.67 0 0 0 0 0 0 0 0 0 0 0; + 5856 305.7 19.99 214.13 -85 1.038417 100 1 480 160 0 0 0 0 0 0 0 0 0 0 0; + 5881 60 7.13 36.72 -13.13 1.065605 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 5940 -74.9 4.51 17.21 -7.73 1.030075 100 1 100 -99.87 0 0 0 0 0 0 0 0 0 0 0; + 5971 1221.2 370.23 934.54 -291.64 1.070056 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 5983 -102.5 3.55 37.27 -12.59 1.066029 100 1 100 -136.67 0 0 0 0 0 0 0 0 0 0 0; + 5994 -87.3 -16.58 60.51 -61.08 1.029184 100 1 100 -116.4 0 0 0 0 0 0 0 0 0 0 0; + 6036 820.2 300.86 390.4 -161.16 1.043738 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 6153 94.3 -78.07 249.65 -261.82 0.988112 100 1 769.94 32.08 0 0 0 0 0 0 0 0 0 0 0; + 6168 26.3 0.4 19.86 -14.93 1.040343 100 1 53.76 0 0 0 0 0 0 0 0 0 0 0 0; + 6291 55.5 24.55 58.12 -16.6 1.040598 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 6331 48.8 5.01 37.76 -12.05 1.052181 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 6332 96 -9.58 96.56 -27.95 1.062214 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 6351 22.08 14.99 38.29 -11.56 1.064446 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 6368 -145.3 3 51.11 -23.46 1.043835 100 1 100 -193.73 0 0 0 0 0 0 0 0 0 0 0; + 6376 -27.8 -23.17 148.65 -50.73 1.046714 100 1 100 -37.07 0 0 0 0 0 0 0 0 0 0 0; + 6429 171 18.2 88.83 -35.69 1.039574 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 6474 718.5 -12.86 438.72 -174.15 1.06557 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 6516 228.2 12.73 126.73 -47.83 1.052452 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 6552 -204.2 5.93 37.58 -12.16 1.048796 100 1 100 -272.27 0 0 0 0 0 0 0 0 0 0 0; + 6734 382.7 -77.78 311.52 -132.09 1.061492 100 1 720 0 0 0 0 0 0 0 0 0 0 0 0; + 6807 44.07 31.99 77.14 -22.46 1.006037 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 6816 16.53 -8.62 77.35 -22.26 1.053803 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 6820 15.9 -0.62 11.99 -9.06 1.049557 100 1 32.53 0 0 0 0 0 0 0 0 0 0 0 0; + 6831 -57.5 4.01 35.62 -14.25 1.031347 100 1 100 -76.67 0 0 0 0 0 0 0 0 0 0 0; + 6845 102.9 17.09 53.24 -21.47 1.055216 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 6852 -344.9 1.84 18.56 -6.34 1.031296 100 1 100 -459.87 0 0 0 0 0 0 0 0 0 0 0; + 6857 2463.6 391.48 1865.83 -585.95 1.021411 100 1 4000 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 6888 133 6.97 189.31 -59.87 1.039234 100 1 300 88.67 0 0 0 0 0 0 0 0 0 0 0; + 6947 227.5 5.93 126.09 -48.29 1.051367 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 6969 39.8 -1.81 38.53 -11.27 1.059486 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 6982 -12.6 9.53 56.22 -18.44 1.036531 100 1 100 -16.8 0 0 0 0 0 0 0 0 0 0 0; + 7036 65.8 11.07 36.16 -13.72 1.041241 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 7049 55.5 16.47 58.18 -16.56 1.049669 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 7056 448.85 137.55 267.36 -100.98 1.006597 100 1 600 200 0 0 0 0 0 0 0 0 0 0 0; + 7115 65.87 13.66 95.06 -83.34 1.008722 100 1 272.28 0 0 0 0 0 0 0 0 0 0 0 0; + 7159 861.3 121.21 441.04 -172.05 1.059575 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 7183 1250.6 358.08 926.47 -297.63 1.107733 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7209 7.3 0.36 3.12 -1.46 1.051113 100 1 7.35 0 0 0 0 0 0 0 0 0 0 0 0; + 7267 -39.7 22.41 89.84 -34.84 1.010817 100 1 100 -52.93 0 0 0 0 0 0 0 0 0 0 0; + 7282 2340.4 94.47 1862.29 -588.16 1.034538 100 1 4000 1333.33 0 0 0 0 0 0 0 0 0 0 0; + 7327 59.06 19.56 76.11 -23.62 1.043172 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 7328 53 24.18 37.45 -12.39 0.999675 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 7466 -202.53 33.59 75.85 -77.06 1.057257 100 1 100 -270.04 0 0 0 0 0 0 0 0 0 0 0; + 7474 76.5 8.44 56.27 -18.41 1.027108 100 1 120 0 0 0 0 0 0 0 0 0 0 0 0; + 7495 75.8 67.52 214.23 -59.77 1.035256 100 1 200 50.53 0 0 0 0 0 0 0 0 0 0 0; + 7520 702.4 277.3 350.36 -140.73 1.037447 100 1 800 266.67 0 0 0 0 0 0 0 0 0 0 0; + 7522 508 235.59 371.11 -119.67 0.99994 100 1 800 266.67 0 0 0 0 0 0 0 0 0 0 0; + 7641 769.2 22.2 378.21 -162.35 1.051427 100 1 880 200 0 0 0 0 0 0 0 0 0 0 0; + 7697 228.2 12.72 126.73 -47.83 1.052424 100 1 280 0 0 0 0 0 0 0 0 0 0 0 0; + 7776 1221.2 354.58 934.73 -291.52 1.072261 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7808 1250.4 279.8 926.35 -297.68 1.054562 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7842 165 23.34 90.08 -34.56 1.001912 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 7913 1368.6 146.28 920.41 -305.58 1.063764 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 7998 811.8 175.43 391.57 -160.95 1.048854 100 1 900 300 0 0 0 0 0 0 0 0 0 0 0; + 8043 -27 4.11 75.67 -23.96 1.066913 100 1 100 -36 0 0 0 0 0 0 0 0 0 0 0; + 8109 992 864.28 Inf -Inf 1.067387 100 1 1041.6 0 0 0 0 0 0 0 0 0 0 0 0; + 8158 153 -2.71 91.67 -33.01 1.052602 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 8222 66.8 17.58 35.76 -14.05 1.02335 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 8225 17 6.35 19.49 -5.42 1.071504 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0; + 8267 203.4 -3.04 106.84 -42.56 1.043326 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 8311 -8.75 3.43 17.8 -7.13 1.035451 100 1 100 -11.66 0 0 0 0 0 0 0 0 0 0 0; + 8312 1702.2 433.08 1096.33 -374.64 1.07814 100 1 2400 800 0 0 0 0 0 0 0 0 0 0 0; + 8458 517.1 -58.18 474.42 -138.49 1.042925 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 8473 -135 -7.13 90.21 -34.45 1.039202 100 1 100 -180 0 0 0 0 0 0 0 0 0 0 0; + 8486 78.8 9.58 34.16 -15.67 1.04752 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 8515 32.3 -18.17 93.03 -31.43 1.053872 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 8522 -75.69 1.02 3.61 -1.69 1.019671 100 1 100 -100.92 0 0 0 0 0 0 0 0 0 0 0; + 8564 -65 20.7 51.91 -22.86 1.019727 100 1 100 -86.67 0 0 0 0 0 0 0 0 0 0 0; + 8670 -138.3 10.82 37.4 -12.46 1.049066 100 1 100 -184.4 0 0 0 0 0 0 0 0 0 0 0; + 8676 -259.1 12.69 34.92 -14.96 1.018762 100 1 100 -345.47 0 0 0 0 0 0 0 0 0 0 0; + 8683 -37.28 0.32 54.32 -20.39 1.041975 100 1 100 -49.7 0 0 0 0 0 0 0 0 0 0 0; + 8721 1232.6 152.55 932.68 -293.14 1.054052 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 8795 166.2 -6.14 111.7 -37.85 1.054157 100 1 240 0 0 0 0 0 0 0 0 0 0 0 0; + 8807 -304 3.53 35.84 -14.07 1.05109 100 1 100 -405.33 0 0 0 0 0 0 0 0 0 0 0; + 8818 44.66 -2.57 76.87 -22.75 1.050791 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; + 8872 1232.6 140.05 932.68 -293.14 1.053844 100 1 2000 666.67 0 0 0 0 0 0 0 0 0 0 0; + 8903 17 -1.08 28.99 -28.41 1.020268 100 1 86.73 0 0 0 0 0 0 0 0 0 0 0 0; + 8950 -255.7 7.67 38.23 -11.61 1.047268 100 1 100 -340.94 0 0 0 0 0 0 0 0 0 0 0; + 8961 -61.8 -11.18 53.52 -50.38 1.035459 100 1 100 -82.4 0 0 0 0 0 0 0 0 0 0 0; + 8976 110 15.22 95.65 -28.95 1.046972 100 1 200 0 0 0 0 0 0 0 0 0 0 0 0; + 8997 78.2 -5.23 107.59 -101.48 0.997131 100 1 317.09 0 0 0 0 0 0 0 0 0 0 0 0; + 9067 369.6 48.34 198.07 -76.34 1.040924 100 1 440 146.67 0 0 0 0 0 0 0 0 0 0 0; + 9101 698.8 0.54 442.99 -169.92 1.02885 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 9108 -239.23 -1.6 18.65 -14.16 1.046626 100 1 100 -318.97 0 0 0 0 0 0 0 0 0 0 0; + 9137 42.7 18.81 335.96 -93.23 1.049768 100 1 100 28.47 0 0 0 0 0 0 0 0 0 0 0; + 9140 -37.2 28.17 73.19 -26.48 1.049624 100 1 100 -49.6 0 0 0 0 0 0 0 0 0 0 0; + 9150 860.8 117.32 439.38 -173.28 1.037969 100 1 1000 333.33 0 0 0 0 0 0 0 0 0 0 0; + 9174 -331.4 142.7 175 -49.16 1.03623 100 1 100 -441.87 0 0 0 0 0 0 0 0 0 0 0; + 9180 72 7.71 77.69 -21.97 1.061189 100 1 160 0 0 0 0 0 0 0 0 0 0 0 0; +]; + +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ + %Pegase System +7351 5441 0.00018 0.000781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4314 7571 0.002961 0.01669 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5803 3916 0.00056 0.00432 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6757 6036 0.0002 0.00246 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6757 6921 0.0003 0.00377 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5019 9112 0.00014 0.00057 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2930 9112 0.00013 0.000729 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1436 9112 0.00012 0.000581 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1851 9112 0.00011 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8331 9112 0.00019 0.00056 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6220 8791 0.00062 0.004909 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 7842 7.00E-05 0.00076 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 8997 0.00066 0.00622 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 2129 0.00054 0.00752 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 29 0.00105 0.00877 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +118 8903 8.00E-05 0.00091 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +118 4598 0.00056 0.00719 0 953 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 5533 0.000531 0.002039 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 4831 0.008659 0.03769 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 8961 0.003849 0.021099 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 8522 0.00688 0.035969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 6888 0.006729 0.03713 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 3401 0.00111 0.006651 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 641 0.0023 0.008909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 2600 0.000841 0.00313 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2426 5351 0.003521 0.017479 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3051 718 3.90E-05 0.00025 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3036 2327 0.000159 0.000729 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8651 7473 0.005281 0.032099 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8651 7473 0.005651 0.029419 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +903 3654 0.000271 0.00036 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8732 7050 0.00044 0.00143 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8732 3912 0.000159 0.00074 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2273 1973 0.00019 0.000591 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5131 2928 0.00019 0.00087 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6629 4918 0.002591 0.013659 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6629 7309 0.00305 0.01168 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +413 1102 0.000159 0.000599 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +413 1102 0.000159 0.00062 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3248 4918 0.00101 0.004229 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3248 4281 0.00319 0.018651 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3248 7309 0.000729 0.00337 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1146 1187 0.002961 0.012831 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1146 7945 0.000591 0.00339 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8900 2421 0.00024 0.001219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6071 2972 0.006219 0.036341 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6071 6031 0.001841 0.01193 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 7264 0.001409 0.01113 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 283 0.00151 0.00768 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 3069 0.00599 0.03313 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3293 3390 0.001771 0.010151 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4689 4936 0.00074 0.00311 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4689 4936 0.000729 0.003159 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3218 7809 0.005271 0.01906 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3218 5455 0.00906 0.053151 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3218 1857 0.00405 0.0153 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 5410 0.00055 0.003961 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 5410 0.00055 0.003729 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 1609 0.00107 0.007789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 1609 0.00112 0.00775 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 1609 0.001031 0.00775 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 2438 0.00062 0.003219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6806 954 0.00068 0.002659 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 502 0.00193 0.012479 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 3013 0.001159 0.007229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 2949 0.00137 0.008729 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 2949 0.001401 0.00855 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9140 2949 0.001331 0.008521 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 2208 0.00031 0.00081 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 8060 0.000341 0.00119 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 4484 0.00031 0.001281 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7070 4239 0.00094 0.0035 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8535 7047 7.00E-05 0.000651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5477 3657 0.00019 0.00124 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5477 2928 0.000331 0.002539 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3145 2918 0.0016 0.02113 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7770 5317 0.000909 0.004711 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7770 5317 0.00088 0.004969 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3 8676 0.001841 0.0088 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3 8189 0.01013 0.04238 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 2938 0.00059 0.00802 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 2938 0.00054 0.0079 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 3918 0.00171 0.02128 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 3918 0.00174 0.02084 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 6581 0.00086 0.01433 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 6581 0.00087 0.01404 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 3830 0.00126 0.01447 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 5648 0.00122 0.01509 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 5648 0.00154 0.019 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4918 4907 0.00474 0.03564 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4918 5957 0.006 0.047849 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4918 5233 0.008039 0.03375 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6854 7309 2.10E-05 0.000211 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8311 3680 0.00045 0.002341 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2770 8804 0.000669 0.004281 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9241 8804 0.00068 0.00419 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3083 7124 0.000729 0.00431 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3083 7124 0.000591 0.004651 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3083 8873 0.00099 0.005081 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1566 7582 0.00212 0.013031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1566 3541 0.002159 0.01275 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 3698 0.00025 0.00095 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 3698 0.000271 0.00089 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 2801 0.001961 0.012409 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 8328 0.00044 0.00207 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 8511 0.000469 0.00143 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 6570 0.001271 0.01406 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 6570 0.00124 0.013021 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 8975 0.000409 0.00239 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 216 0.00094 0.005 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 2961 0.000219 0.0007 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 6773 6.00E-05 0.00025 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8683 5278 5.00E-05 0.000229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3768 2751 0.00019 0.000909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2276 5546 0.001711 0.00782 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2276 6816 0.002651 0.01176 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7766 444 0.001409 0.010599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7766 5334 0.001419 0.010219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 3918 0.00013 0.00212 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 809 0.00026 0.00313 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4506 2286 0.0047 0.0318 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4506 6802 0.00136 0.00768 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4506 3520 0.005669 0.027789 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 6271 0.004409 0.033091 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 1435 0.01056 0.044469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 7148 0.01963 0.07736 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7273 7437 0.01157 0.04694 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6104 871 0.000479 0.00255 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7580 871 0.000469 0.00236 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1188 1539 0.01237 0.067039 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1188 8515 0.0132 0.056229 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3971 4084 0.00026 0.001711 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3971 4084 0.000271 0.001669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6845 5340 0.000211 0.000401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8294 5814 0.00105 0.005159 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7115 6807 0.00212 0.00931 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +619 6791 0.000151 0.00068 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5418 4908 0.00019 0.00082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5120 6816 0.003219 0.01405 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6692 9158 0.007271 0.033159 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6692 8035 0.006659 0.03132 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 2848 0.00057 0.00668 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 7056 0.00057 0.00758 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 7056 0.00039 0.00607 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 1642 0.00155 0.0179 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 4594 0.00036 0.00485 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 1692 0.000581 0.004229 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 8190 0.00056 0.00431 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 5836 0.003099 0.020531 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 3191 0.00118 0.016919 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 5300 0.00188 0.01407 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6114 4889 0.00545 0.04082 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7264 444 0.00214 0.01639 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7264 4747 0.002479 0.01549 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 9011 0.000159 0.001229 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 6675 0.00026 0.00162 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 6909 0.000159 0.00113 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 8835 0.000461 0.003219 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7982 4186 0.000159 0.001229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1604 502 0.000229 0.00139 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2842 502 0.0002 0.00156 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1354 513 0.00145 0.00824 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1354 502 0.00069 0.005 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +891 3697 0.00036 0.00455 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +891 3697 0.00036 0.00453 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8312 7541 0.00066 0.00997 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8312 7541 0.00064 0.01016 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6306 4826 9.90E-05 0.00044 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 4418 6.00E-05 0.000469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 1605 3.90E-05 0.000341 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 6952 0.002531 0.01943 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4826 7124 0.00945 0.06418 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9128 217 0.000591 0.002831 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7014 217 0.00087 0.00387 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 5350 0.0015 0.01785 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 5350 0.00147 0.0182 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 639 0.00151 0.0113 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 639 0.001479 0.011521 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 9130 0.00174 0.010341 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1711 9130 0.001659 0.01206 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8209 1998 0.00069 0.000479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8209 7974 0.00044 0.00139 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 8180 0.002039 0.01601 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 7466 0.01349 0.05662 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 305 0.00082 0.00438 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 305 0.0008 0.004461 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 5106 0.001091 0.00888 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1035 5106 0.00111 0.007039 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2527 8466 0.000849 0.00537 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8669 8893 0.00061 0.00275 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 7691 0.00141 0.0188 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 6624 0.00121 0.01427 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 8158 0.001711 0.007159 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 8795 0.00545 0.02381 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 4143 0.000771 0.004331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 2797 0.00414 0.03282 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 6331 0.00264 0.011521 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 6384 0.00261 0.011 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 7523 0.00239 0.00919 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 2889 0.000539 0.00226 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3240 6887 0.00325 0.017979 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1249 4541 0.00076 0.0071 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +819 7523 0.000651 0.00343 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2304 4353 0.001219 0.00812 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2304 4816 0.00243 0.01439 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 6246 0.0006 0.00839 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 6246 0.00059 0.00856 0 1085 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 5658 0.00087 0.01328 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 5658 0.00073 0.01595 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2924 3645 0.00163 0.002039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2924 3645 0.001659 0.002 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +59 5764 0.00339 0.019669 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +59 2360 0.00239 0.017281 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6510 9033 0.00032 0.00112 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6510 5918 0.0018 0.01401 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6510 5918 0.00212 0.012469 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1275 2850 0.00063 0.00411 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6426 4110 0.009729 0.03505 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6426 3558 0.01007 0.03056 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 2816 0.00042 0.00623 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 352 0.00036 0.00722 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 6581 0.00053 0.0078 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 1923 0.00109 0.0173 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 5837 0.00071 0.01144 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 3830 0.00157 0.01884 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1758 3577 0.00032 0.00384 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 1794 0.00041 0.00649 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 7808 0.0004 0.00658 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 6581 0.00054 0.00763 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 1923 0.00107 0.01602 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 5837 0.0007 0.01165 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 5648 0.0016 0.01844 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8030 3577 0.00032 0.00376 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4615 171 0.00212 0.01207 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3137 2341 5.00E-05 0.00037 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6271 8787 0.00355 0.024651 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6252 9137 0.00675 0.04145 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5533 7133 0.00195 0.014341 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8361 4355 0.00018 0.00043 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8361 2928 0.00037 0.000969 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 1341 0.00257 0.017169 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 5419 0.00076 0.00399 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 5419 0.00075 0.00406 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 2079 0.003901 0.023961 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +609 772 0.00249 0.019211 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3654 2928 0.00025 0.001159 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 7282 0.00195 0.02924 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 2197 0.00152 0.01527 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 7640 0.00149 0.01558 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 1081 0.00253 0.0276 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 1081 0.00263 0.02648 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 2359 0.00077 0.0092 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 4196 0.00112 0.01705 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 8546 0.00226 0.01101 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 5987 0.004531 0.029039 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 8005 0.002081 0.030409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 3925 0.0053 0.03257 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 3324 0.00513 0.041901 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5856 4748 0.001461 0.01056 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8265 4816 0.0005 0.002591 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6151 6313 0.00055 0.0033 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4005 6532 0.002289 0.01763 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4005 2177 0.0075 0.043531 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5723 2079 0.00138 0.019961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5723 789 0.00126 0.018729 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2327 9189 0.00038 0.001331 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2327 3400 0.00019 0.001461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +207 4747 0.002151 0.013401 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +207 7791 0.000789 0.005669 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 6735 3.00E-05 0.00042 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 666 0.00079 0.00899 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 666 0.0008 0.00879 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 4435 0.00334 0.03393 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 1644 0.00063 0.00789 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 3483 0.0006 0.00842 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 7989 0.00011 0.00125 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 6516 0.00012 0.001091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 7697 9.90E-05 0.00125 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 416 0.00294 0.02443 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2847 0.00144 0.011151 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2563 0.001831 0.010849 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2563 0.001599 0.01055 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4683 2995 0.00144 0.019591 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5691 1001 0.0133 0.09551 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5691 4426 0.009591 0.073961 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2721 0.0007 0.00671 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2721 0.00072 0.00658 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2361 4936 0.001901 0.00964 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2361 5179 0.001711 0.01189 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2044 4748 0.00025 0.00187 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4197 5522 0.00043 0.002211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5699 8670 0.000401 0.00243 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7809 5110 0.00336 0.017 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7222 4816 0.005521 0.031031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4402 3817 9.90E-05 0.00026 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 2732 0.00045 0.00718 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 4550 0.00044 0.00665 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 4339 0.00103 0.01516 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6857 7513 0.00101 0.01546 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 26 0.00045 0.00608 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 9213 0.0004 0.00501 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 9002 0.001729 0.01337 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 6231 0.00264 0.01489 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 883 0.002341 0.018961 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6112 5738 0.001841 0.01363 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 7700 0.001219 0.00949 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 9002 0.002271 0.01151 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 5990 0.010781 0.05775 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 6450 0.00251 0.013919 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8860 7726 0.00101 0.007331 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2489 4110 0.00061 0.003909 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 6376 0.004289 0.019331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 4110 0.0008 0.004401 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 4829 0.008099 0.03519 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3985 7857 0.00063 0.004591 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2806 7857 0.000651 0.00456 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2489 9012 0.00114 0.00581 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2489 2231 0.001211 0.00538 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +658 3793 0.00418 0.030159 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +658 8497 0.00324 0.02413 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +658 8497 0.003169 0.024591 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3502 9002 0.000219 0.00088 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3502 9002 0.000289 0.00095 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6313 44 0.0035 0.022211 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6313 7582 0.00313 0.02256 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5944 8808 0.000831 0.00162 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3183 8515 0.002099 0.01068 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1005 8515 0.00224 0.00976 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8787 1448 0.00169 0.01231 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6636 9051 0.00011 0.00076 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9109 9051 0.00011 0.00068 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6961 6376 0.005479 0.021909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6961 8818 0.003331 0.017039 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5077 4353 0.000479 0.001271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 5241 0.00109 0.01629 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 8200 4.00E-05 0.00063 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 6290 0.0053 0.024531 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 2291 0.004659 0.021919 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 3656 0.001659 0.01043 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5002 4144 0.006961 0.053539 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1888 5441 0.00036 0.00288 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1888 5441 0.00038 0.003 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 4970 0.00048 0.00643 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 4970 0.00051 0.0066 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 4970 0.00046 0.00729 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 5461 0.0006 0.00868 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 7778 0.00068 0.01076 0 1842 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 6897 0.00066 0.01096 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3075 4562 0.00101 0.005099 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +564 8475 0.003901 0.02437 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +564 2252 0.00276 0.016461 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +564 7903 0.00588 0.047081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4331 1857 3.90E-05 0.000219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2877 3674 0.00131 0.00538 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2854 1081 0.00679 0.04679 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2854 8267 0.00138 0.01466 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 9176 0.003531 0.01724 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1422 0.01324 0.06936 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 8515 0.00363 0.01743 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 8515 0.00257 0.01662 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 5051 0.01399 0.056289 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1051 0.00343 0.01751 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1397 0.00301 0.015409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9112 1584 0.00857 0.033091 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6168 6888 0.003341 0.01689 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7653 3019 3.90E-05 0.000219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7341 7098 0.00087 0.00714 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4701 8267 0.00011 0.001 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1672 5365 0.000219 0.00101 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3880 5365 0.000219 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6648 5365 0.000271 0.00101 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3609 5365 0.000271 0.000979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2782 5365 0.000289 0.00107 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1844 5365 0.000289 0.00105 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4353 6053 0.001591 0.012289 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2166 5237 0.000271 0.001901 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2166 2886 0.00186 0.010711 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1043 3513 1.00E-05 0.0002 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4049 883 0.000169 0.000271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4520 883 0.000169 0.00031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1704 5814 0.00526 0.03787 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8107 1486 0.000229 0.000599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5664 5522 0.00089 0.004091 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4482 8670 0.00093 0.004 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8795 7523 0.00289 0.013099 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2337 6430 0.002599 0.016479 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 7775 0.00369 0.02712 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 3857 0.0062 0.04864 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 333 0.008021 0.059031 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +455 6940 0.004979 0.0295 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8225 3656 0.001159 0.005281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5413 7752 0.00361 0.01824 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5413 1940 0.001521 0.01075 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5413 4234 0.00868 0.041711 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 6828 0.01118 0.05986 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7571 0.003229 0.02543 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7571 0.00218 0.01869 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7571 0.001901 0.021909 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7994 0.00974 0.043969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 7226 0.003461 0.01814 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2591 1554 0.00487 0.027669 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9011 1156 0.000651 0.003961 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8689 5502 0.00169 0.00887 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3085 8873 0.001711 0.01336 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1568 980 0.00031 0.000539 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3204 3331 0.0027 0.01157 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3557 639 0.000909 0.006901 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3557 4936 0.001729 0.01214 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +416 3492 0.00614 0.03106 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +416 7937 0.00418 0.02388 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3255 1262 0.00238 0.017771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3255 1803 8.10E-05 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7373 367 0.001599 0.01618 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4251 2132 0.00532 0.026961 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4251 2132 0.00361 0.02814 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4251 5567 0.002469 0.01025 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6376 1808 0.005229 0.02675 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6376 1808 0.00512 0.02726 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6376 7857 0.00355 0.01694 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9185 7289 0.00139 0.007659 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9185 3999 0.000169 0.000669 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8653 2303 0.00111 0.00712 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +908 6474 0.00031 0.001901 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7030 6474 0.000281 0.002091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4205 6556 0.000281 0.001651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7325 6556 0.000271 0.00169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5857 3391 0.001521 0.00843 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5857 3760 0.000841 0.0062 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3707 8765 0.00019 0.00126 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +900 6619 0.000219 0.00143 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 8109 0.00121 0.01796 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 8109 0.0014 0.01512 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 2177 0.008409 0.063651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 5317 0.00918 0.07344 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 608 0.004219 0.0345 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6532 608 0.0042 0.031651 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4494 8763 0.00121 0.01381 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4494 7056 0.00107 0.01326 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6828 5814 0.003401 0.02607 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3670 21 0.000289 0.00138 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5137 7702 0.001031 0.006039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1334 7702 0.00105 0.005909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 7624 0.001091 0.007901 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 1129 0.00332 0.024021 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 3070 0.00344 0.021419 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 306 0.00095 0.010419 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 306 0.00093 0.01062 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8448 7491 0.00474 0.025409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4685 2089 0.000271 0.000841 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7485 6253 0.000271 0.00119 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7485 1562 0.000289 0.00076 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7776 1644 0.00031 0.00454 0 1842 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5971 3483 0.00032 0.0044 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2786 1644 0.00028 0.00494 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +972 3483 0.00028 0.00508 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8906 923 0.000531 0.00093 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8906 4914 0.0003 0.001031 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2656 9101 0.00139 0.02163 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2656 7164 0.00164 0.02321 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3519 9101 0.00136 0.02205 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3519 7164 0.0016 0.02367 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1775 9137 0.002091 0.01174 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1775 9137 0.001719 0.00961 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5641 1026 0.012341 0.076781 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5641 9137 0.00176 0.009419 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1096 2889 0.00031 0.00182 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7380 2732 0.00386 0.02348 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7380 4787 0.00017 0.00104 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 5308 0.00061 0.00808 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 3830 0.00059 0.0067 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 1027 0.00059 0.00748 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 5648 0.00061 0.0063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +367 1172 0.001031 0.008789 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +367 9191 0.00051 0.006169 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +367 8722 0.0005 0.00619 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 3610 0.00049 0.00376 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 3610 0.000539 0.003229 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 3962 0.001031 0.00882 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 1838 0.000711 0.00463 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1833 2230 0.000711 0.004539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5388 2467 0.00206 0.015341 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5388 2467 0.002021 0.01564 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6110 8853 0.00094 0.005781 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6110 1001 0.002219 0.016969 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7583 1808 0.00238 0.01187 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7583 2889 0.00707 0.03095 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 6624 0.00256 0.03401 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 2479 0.00203 0.02416 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 4598 0.001 0.01459 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 4231 0.00103 0.00987 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 5144 0.00038 0.00483 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +26 5144 0.00041 0.00398 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 2479 0.00167 0.01721 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 2129 0.00098 0.01487 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 9213 0.00042 0.00342 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 9213 0.00019 0.00248 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 4231 0.00105 0.00966 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 3513 0.00043 0.00473 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7691 3513 0.00041 0.00397 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1876 3906 0.00051 0.00514 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +113 3906 0.00053 0.00503 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7752 3758 0.00455 0.022771 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7752 3758 0.00557 0.02055 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7752 3758 0.00339 0.02026 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4952 8976 0.00237 0.01068 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4952 8189 0.0037 0.019479 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6119 7886 0.01407 0.056849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6119 4544 0.001669 0.015409 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6119 4544 0.001711 0.015091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 3697 0.00172 0.01619 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 7541 0.00029 0.00447 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 7541 0.00033 0.00387 0 1019 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 4141 0.00079 0.01154 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 4141 0.00077 0.01177 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7905 3022 0.00127 0.01498 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1768 163 0.00214 0.012599 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4245 2425 0.000159 0.00125 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3698 5297 0.000211 0.000669 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +750 8328 0.000341 0.001169 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +750 870 0.00024 0.001469 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +750 2961 0.00018 0.000669 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7988 0.00033 0.00683 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 2197 0.00121 0.01211 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7640 0.00123 0.01185 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 4231 0.00058 0.0097 0 1085 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 5144 0.00103 0.01292 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 3513 0.00116 0.01266 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7289 3999 0.0013 0.006841 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3018 1051 6.00E-05 0.000349 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2702 3435 0.000169 0.0007 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9131 2020 0.000169 0.000719 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6308 6684 0.000271 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4831 3680 0.008271 0.036841 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5410 2751 0.002969 0.02299 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 4623 0.00124 0.01273 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 4339 0.00106 0.00989 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 5288 7.00E-05 0.00029 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 5421 9.00E-05 0.00079 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 6475 0.00196 0.02049 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 8468 0.00158 0.01519 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 2732 0.00172 0.01811 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 7513 0.00096 0.01121 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 6475 0.00147 0.01707 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 4623 0.00129 0.0129 0 1216 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 4550 0.00179 0.01737 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 6475 0.00131 0.01935 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 9231 0.003901 0.01614 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 9231 0.002591 0.014771 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 9231 0.00224 0.0173 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 4054 0.00012 0.000849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 3481 0.00394 0.03039 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 3602 0.00189 0.01 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 2794 0.00032 0.00257 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 2794 0.00038 0.00224 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 8467 0.00751 0.03955 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 1136 0.00086 0.006531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2083 22 0.00087 0.006591 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 1001 0.003031 0.02276 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 4950 0.006331 0.03911 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 4410 0.00605 0.02986 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 6697 0.003919 0.01612 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 1159 0.002039 0.0108 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8853 7165 0.006289 0.026271 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 2848 0.00042 0.00547 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 2848 0.00043 0.00536 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 7522 0.00147 0.01373 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 7522 0.00131 0.01555 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 1642 0.00221 0.02217 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2938 809 0.00224 0.0217 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 6791 0.00095 0.003289 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 3400 0.000229 0.00082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7092 0.00068 0.00306 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 3718 0.00049 0.00256 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 3701 0.000531 0.0022 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7507 0.00136 0.00956 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7507 0.0012 0.010729 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 7507 0.00105 0.00861 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9189 2406 0.000591 0.006969 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2801 8511 0.00025 0.0008 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2801 216 0.00113 0.00632 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +453 2129 0.0003 0.00275 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 6952 0.00836 0.051659 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 6952 0.01338 0.073469 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 1183 0.0027 0.02089 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 4410 0.003419 0.02636 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8691 8743 0.009531 0.033711 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2446 8763 0.0004 0.00707 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2627 8763 0.00035 0.00701 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4951 6785 0.00194 0.01751 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4951 6785 0.00156 0.01936 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 964 0.00078 0.00941 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 964 0.00074 0.00969 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 8347 0.00042 0.00532 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 8347 0.0004 0.00473 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 8347 0.0006 0.00499 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1609 6552 0.00086 0.00638 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1609 6552 0.000969 0.00625 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1609 8999 0.002781 0.01725 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4368 4816 0.005031 0.028081 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5481 960 1.00E-05 0.00021 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7913 960 1.00E-05 0.00025 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +506 960 2.00E-05 0.00031 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2980 960 3.00E-05 0.0004 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4554 6382 0.000841 0.00474 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4554 6382 0.00082 0.00487 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6844 1595 0.00186 0.011979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3672 5334 0.00056 0.003021 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6219 5334 0.00055 0.003081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8997 6153 0.00114 0.01063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1852 5935 0.003719 0.02295 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1852 5695 0.006669 0.04288 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2931 5799 0.00243 0.0198 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2931 7124 0.00845 0.04339 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2598 3674 0.00219 0.015169 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2598 2132 0.00357 0.0302 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2558 7571 0.005849 0.032419 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8834 1129 0.00406 0.01688 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7377 3324 0.00113 0.0065 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1265 4426 0.0068 0.04613 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1265 1965 0.00337 0.02011 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8060 7162 0.00011 0.0005 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6922 5482 0.003711 0.018521 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6922 1295 0.000271 0.00145 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8369 4710 0.00326 0.01824 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8961 7133 0.00118 0.00712 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8961 6888 0.00482 0.02232 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4185 7019 0.00013 0.000469 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4185 6253 0.000229 0.00075 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 3391 0.004591 0.035021 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 1448 0.005469 0.03924 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 1448 0.00536 0.0403 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7895 115 0.00424 0.033031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 4306 2.00E-05 0.00024 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1763 1.00E-05 0.00021 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3697 0.00286 0.03653 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3794 0.00117 0.01183 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3613 0.00103 0.01336 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1502 0.00156 0.01969 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 6555 0.00449 0.05772 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 3608 0.00259 0.03469 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 4134 0.000219 0.00118 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 1979 6.00E-05 0.00095 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 516 6.00E-05 0.000651 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 3580 8.10E-05 0.000841 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 3809 0.00274 0.020831 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 5616 0.004781 0.027729 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 5616 0.002849 0.02093 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 6697 0.00513 0.03014 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 7165 0.00113 0.00651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1001 892 0.00125 0.00707 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7438 5334 0.003349 0.01463 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7438 1526 0.00245 0.0122 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6952 0.00587 0.036521 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6952 0.00569 0.03774 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6952 0.006031 0.03545 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 7883 0.000531 0.00301 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1301 6430 0.00076 0.006099 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 7209 0.008841 0.028919 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 1910 0.00169 0.007091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 6820 0.001031 0.00361 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +778 3071 0.00813 0.030961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5297 6267 0.00013 0.00068 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 3855 0.000211 0.000729 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 3855 0.000169 0.000669 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 2928 0.000669 0.00251 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 2928 0.000711 0.00238 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 1172 0.000229 0.00238 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 9191 0.0007 0.0065 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3657 8722 0.00061 0.006031 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6472 5362 0.000281 0.0018 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6472 3962 0.000211 0.002409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 1343 0.00056 0.00773 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 29 0.0023 0.01581 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7473 3680 0.005039 0.032151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7473 96 0.00364 0.01713 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7473 1868 0.002169 0.012409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +346 3184 0.00113 0.004719 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +346 6570 0.00113 0.004979 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3184 4728 0.00264 0.01174 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2654 7886 0.00494 0.03181 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2654 2132 0.003711 0.023961 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 8874 0.001409 0.01101 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 1625 0.001169 0.00593 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 1625 0.00118 0.00587 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 3786 0.00264 0.012469 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4144 3786 0.002349 0.01414 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3422 4100 0.00014 0.0007 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 4419 3.00E-05 0.00054 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 7159 3.00E-05 0.00055 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 3661 4.00E-05 0.00058 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 5486 4.00E-05 0.00054 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 4231 0.00171 0.02197 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 4231 0.00164 0.02064 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 6921 0.00136 0.01756 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 432 0.00097 0.00942 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 432 0.00086 0.01109 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6624 432 0.00085 0.0113 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3353 6887 0.000979 0.0058 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 2050 0.00052 0.00593 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 2050 0.00046 0.00672 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 8704 0.001151 0.00636 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 8704 0.001031 0.007211 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 4710 0.002341 0.02286 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 1295 0.002281 0.02518 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 1910 0.005479 0.02114 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 2985 0.011159 0.08856 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 5853 0.000669 0.00249 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 7824 0.00193 0.01643 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5482 3071 0.00024 0.0017 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4525 195 0.010159 0.065849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9066 7367 0.00294 0.02131 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9066 9155 0.018841 0.07469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9066 6357 0.015599 0.052169 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7886 3126 0.005831 0.03969 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7886 8564 0.00087 0.00661 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7886 5567 0.00637 0.024659 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 3069 0.0027 0.020419 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 3876 0.000409 0.00314 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 8804 0.001669 0.01301 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6416 8804 0.00164 0.01325 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 4550 0.00089 0.00556 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 4125 0.00186 0.01809 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 3346 0.00381 0.02853 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 2377 0.012419 0.072151 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 1401 0.0042 0.02556 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 2850 0.010771 0.0493 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 2430 0.010159 0.04995 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5525 9164 0.013169 0.05113 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8511 1033 0.000469 0.001159 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8511 6178 0.000229 0.00105 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3400 980 0.000271 0.001271 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2101 4598 0.00099 0.01194 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2101 4541 0.00077 0.01184 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2101 5144 0.00034 0.00426 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3919 2129 0.00101 0.01168 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3919 4541 0.00086 0.01046 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3919 3513 0.00035 0.00417 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6675 1486 0.000159 0.00069 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 5836 0.000781 0.00488 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 575 0.000781 0.00511 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 8214 0.00064 0.003539 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 8214 0.00057 0.003781 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 3021 0.000531 0.00111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 7967 0.000521 0.00113 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 5993 0.00176 0.00843 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4711 8804 0.002461 0.01975 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4513 6831 0.000591 0.00105 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2043 1422 0.00012 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6714 1808 0.000581 0.004419 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6371 1808 0.000651 0.004331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +513 2866 0.001289 0.008289 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 9222 0.00233 0.03502 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 9222 0.00238 0.03781 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 2072 0.00052 0.00605 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 5461 0.00023 0.00275 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 8109 0.00134 0.01343 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 8109 0.00116 0.01552 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 707 0.004169 0.027919 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 4816 0.00063 0.008 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 1866 0.004841 0.028581 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7955 5488 0.007419 0.05787 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5093 2467 0.002719 0.020331 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2328 7178 0.000789 0.005 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9180 195 0.00238 0.013219 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9180 3133 0.003771 0.02701 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +292 4544 0.001271 0.00939 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9002 6737 0.000841 0.00131 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8439 3758 0.005711 0.043039 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8439 3758 0.00562 0.041901 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4974 2940 0.00356 0.019781 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4974 163 0.004841 0.03149 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +747 8507 0.00057 0.00107 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6909 4914 0.000539 0.00213 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +444 4747 0.0007 0.00425 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1459 6495 0.0012 0.009531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1459 2751 0.00206 0.015901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3601 4728 0.00063 0.00312 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1251 6475 3.00E-05 0.00041 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1093 6475 2.00E-05 0.00043 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5709 6475 3.00E-05 0.00039 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3825 6475 3.00E-05 0.00038 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1415 3503 0.0008 0.004151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4549 3503 0.000901 0.00381 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3072 639 0.000591 0.004341 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3072 639 0.000591 0.00405 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5007 4541 0.00218 0.0275 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5007 8195 0.00184 0.01677 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 964 0.00058 0.00807 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 964 0.00056 0.00823 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 3906 0.00123 0.01146 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 3906 0.0011 0.01298 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 8347 0.00156 0.01585 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 2919 0.00226 0.02781 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3758 188 0.00614 0.02831 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3758 2242 0.00513 0.03401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3903 4114 0.013219 0.0597 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5743 6990 0.012969 0.06087 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8626 8930 0.00437 0.032831 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8626 2467 0.005651 0.033229 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2161 5488 0.008969 0.03625 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2161 7772 0.012409 0.05645 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5003 6382 0.00038 0.002271 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 4084 0.00138 0.01089 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 4084 0.001539 0.012521 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 53 0.00205 0.014229 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 7259 0.00026 0.00164 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6474 2475 0.000289 0.00169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5334 7577 0.003349 0.051211 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7961 2288 0.00038 0.001479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1592 7098 0.00082 0.00625 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3187 2079 0.00275 0.015581 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6041 5926 0.000909 0.00739 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 8486 0.00082 0.01038 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 7530 0.00093 0.01017 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 1502 0.00137 0.01431 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 1552 0.00215 0.02021 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6952 3793 0.01189 0.058841 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2526 0.00104 0.01241 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2526 0.00092 0.014 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2365 0.00055 0.00845 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 2365 0.00054 0.00861 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 3794 0.00105 0.01057 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 3613 0.00089 0.01122 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 6901 0.00223 0.02584 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8180 5106 0.00101 0.007841 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8180 5106 0.001081 0.008099 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6240 7165 0.011081 0.068479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 8721 2.00E-05 0.00033 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 8872 1.00E-05 0.00029 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 8672 0.00071 0.00892 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 7164 0.00136 0.01526 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5935 7772 0.005401 0.036021 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3134 3430 0.00437 0.033719 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3134 1051 0.005151 0.034919 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +283 800 0.00038 0.00139 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +283 1077 0.00037 0.0015 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +283 4747 0.00069 0.004461 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3391 5213 0.00688 0.040591 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3391 115 0.001341 0.008349 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3391 115 0.001229 0.009669 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4867 5753 0.00137 0.006039 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7539 6556 0.001919 0.01261 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7539 871 0.00163 0.0095 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 8874 0.00488 0.0497 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 4505 0.001289 0.0087 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 3436 0.00211 0.01524 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 3436 0.00206 0.015539 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 3436 0.00276 0.01631 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 6556 0.00305 0.019521 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 8765 0.000409 0.0023 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8893 6619 0.00036 0.00268 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8165 6734 0.00032 0.00049 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1078 6734 0.00013 0.000349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7988 4231 0.0002 0.00327 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 2142 0.000919 0.00561 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 2142 0.00094 0.00549 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 7519 0.00175 0.01976 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +804 6744 0.001729 0.019331 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2286 6802 0.00406 0.02581 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2286 769 0.00526 0.025961 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 1081 0.00179 0.02098 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 5983 0.00162 0.02148 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 8267 0.00492 0.04991 0 953 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 960 0.00109 0.01361 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 960 0.00097 0.0153 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 3906 0.00322 0.03022 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 7361 0.032831 0.074151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 6852 0.01411 0.058711 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 8515 0.02725 0.102979 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 3166 0.012229 0.04049 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 2676 0.01994 0.066719 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 3793 0.018591 0.07462 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 4529 0.008979 0.03251 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1539 4234 0.016531 0.086031 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 44 0.003591 0.02137 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 6630 0.00124 0.008 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 6630 0.001271 0.007831 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 1545 0.000469 0.00294 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8628 4215 0.000841 0.003289 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7163 1917 0.00219 0.016539 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7163 5519 0.002901 0.020901 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7647 225 0.0002 0.001211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4864 1397 9.10E-05 0.000479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7021 7119 0.005461 0.029469 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7021 3324 0.001979 0.011289 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1248 163 0.0023 0.01289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9045 2457 0.000159 0.00037 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8874 3786 0.002789 0.01562 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5891 5574 0.002531 0.012331 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5891 7663 0.00357 0.023289 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5891 4889 0.00076 0.006039 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3997 1526 0.000469 0.00075 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +184 1526 0.00044 0.00069 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2972 2088 0.00561 0.035521 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8676 933 0.004539 0.03468 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8676 933 0.00175 0.0067 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8676 3643 0.007461 0.031419 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8704 6723 0.00224 0.012909 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 21 0.0003 0.000961 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 21 0.00032 0.001409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 1551 0.002031 0.0157 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 4103 0.00038 0.00306 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 7862 0.00118 0.0083 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7047 5458 0.001229 0.00787 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5574 5666 0.00301 0.01538 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6742 5458 0.00063 0.00114 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5270 7862 0.00064 0.00111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7775 3857 0.004919 0.03837 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6290 3436 0.001831 0.008349 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3430 401 0.00536 0.03188 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2967 8976 0.00038 0.001461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2967 8976 0.000289 0.001521 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8976 2481 0.00305 0.016841 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8976 9108 0.001781 0.012729 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 7520 0.00041 0.00461 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 7520 0.0004 0.0047 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4084 5340 0.00213 0.01401 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4084 2319 0.001271 0.00887 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4084 2878 0.00462 0.02743 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2597 7422 0.001539 0.00776 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7183 8931 0.00025 0.00478 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5379 8931 0.00025 0.00487 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8128 8931 0.00025 0.00435 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6337 8931 0.00026 0.00426 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1237 8931 0.00025 0.00479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4127 9173 0.000169 0.00076 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4127 7974 0.00039 0.00126 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 4816 0.011229 0.074659 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 1866 0.014521 0.058081 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 8809 0.00064 0.003919 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 5146 0.014789 0.07768 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 6940 0.00938 0.05355 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2432 1742 0.00124 0.004289 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5213 8627 0.00968 0.04388 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5213 174 0.008531 0.067151 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5213 7437 0.00731 0.04106 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7342 5940 0.004349 0.02555 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7342 7495 0.00599 0.03462 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8808 4816 0.002961 0.021591 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8808 4816 0.002901 0.02206 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8808 6053 0.002979 0.016969 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5764 4189 0.00312 0.020021 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8507 1973 0.000219 0.000909 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1394 1973 0.000219 0.00093 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2898 2128 0.000151 0.000289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4942 8255 0.00563 0.043599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4942 4748 0.000969 0.00612 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3486 3594 0.005021 0.020719 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3486 4679 0.00988 0.041039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4656 4235 0.003159 0.02011 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4656 4235 0.003219 0.01969 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7129 5441 0.00049 0.00238 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7129 5441 0.000479 0.002419 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8250 5720 0.00264 0.019729 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8250 5720 0.002581 0.02011 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6831 6723 0.00037 0.002831 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6831 5686 0.00213 0.012789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2377 805 0.018669 0.092281 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +907 9091 3.90E-05 0.000401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4056 9091 6.00E-05 0.00044 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6837 2142 6.00E-05 0.0005 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 2641 0.001271 0.007031 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 7577 0.00055 0.003159 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 7577 0.00055 0.00338 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 7577 0.00105 0.004771 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5666 1629 0.003289 0.015039 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +726 687 0.00036 0.004349 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3526 687 0.00038 0.003669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 2425 0.00118 0.00701 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 2425 0.001229 0.00686 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 5907 0.00301 0.0217 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 5907 0.003409 0.01924 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6382 5907 0.003409 0.01938 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7847 9217 0.002719 0.02131 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2981 1448 0.00295 0.01956 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5110 5686 0.001091 0.00831 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2968 5907 0.00111 0.008211 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 2155 0.002469 0.015271 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 8112 0.00212 0.01601 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 2535 0.00037 0.0028 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 7098 0.00162 0.01238 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 7098 0.001909 0.01162 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 7098 0.001909 0.010729 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 3737 0.00089 0.00526 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 5529 0.00087 0.00536 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5441 5753 0.001521 0.01176 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9019 6563 0.00014 0.000591 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1341 1101 0.003531 0.028781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 8291 0.004599 0.03657 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 8367 0.00307 0.019159 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 1100 0.000581 0.004461 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2797 6887 0.00164 0.01161 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4939 6880 0.00057 0.003281 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7738 6982 0.020419 0.063669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6565 3121 0.01424 0.04751 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8707 280 0.00157 0.008849 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8707 2510 0.01218 0.07524 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1625 766 0.00037 0.00151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8411 6232 0.000219 0.000531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3951 1397 0.002849 0.0137 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 7282 0.00116 0.01692 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 7282 0.00133 0.01462 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 6475 0.00063 0.00821 0 887 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +964 6475 0.00064 0.00804 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 5420 0.00126 0.01272 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 8267 0.00337 0.0494 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 7328 0.0014 0.0214 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 7328 0.00137 0.02182 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 7164 0.00212 0.02063 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 410 0.00186 0.01045 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 7579 0.00426 0.021771 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 7579 0.002659 0.020539 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5550 4189 0.00606 0.049919 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7282 4196 0.00109 0.01192 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1526 3916 0.013021 0.049219 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1526 4747 0.00236 0.01239 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1526 4747 0.0027 0.015169 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 3346 0.00285 0.03283 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 3346 0.00529 0.03969 0 920 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1343 3346 0.00254 0.03721 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 2719 0.000159 0.00069 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 2719 0.000229 0.000979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 2719 0.00024 0.00082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 795 0.000169 0.00075 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 4880 0.00368 0.01756 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3680 1868 0.002599 0.020659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 5564 0.00018 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 7036 0.000159 0.000771 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 5940 0.00357 0.01981 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7464 7495 0.006021 0.03205 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4850 2886 0.001781 0.01164 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4850 7049 0.002781 0.018831 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2510 6146 0.000349 0.00281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +90 1860 0.00313 0.02444 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +90 1860 0.00368 0.02074 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 3276 9.10E-05 0.001539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 3545 0.00251 0.01111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 6842 0.003081 0.017961 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 6744 0.005341 0.030419 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2142 7635 9.90E-05 0.00126 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9091 1040 0.002169 0.017901 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2457 6178 0.00011 0.00038 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1422 1462 0.00212 0.00494 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1422 7772 0.018901 0.077349 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7881 5365 0.00957 0.0395 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7881 6982 0.02324 0.063469 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6926 3327 0.000531 0.004331 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1959 615 0.002581 0.006229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6455 1262 0.00031 0.002211 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +803 6982 0.01087 0.06114 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +803 5918 0.011581 0.061099 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7624 3070 0.002099 0.016271 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 1547 0.00093 0.005461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 5237 0.009591 0.037039 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 772 0.002591 0.017211 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +500 8950 0.00164 0.013651 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2754 2079 0.003219 0.014719 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2754 2229 0.00401 0.022229 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2754 7049 0.00126 0.010211 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4118 7873 0.009169 0.03993 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4118 3865 0.001349 0.006081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 8486 0.00156 0.01931 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 7530 0.00152 0.01968 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 7778 0.00094 0.01433 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 6897 0.00092 0.01461 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 960 0.00137 0.02012 0 1019 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 960 0.00134 0.02051 0 821 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3857 4491 0.00314 0.042151 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3857 6010 0.000651 0.00494 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3857 6940 0.003961 0.02426 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +858 1642 0.00013 0.0015 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3028 809 0.00013 0.00147 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4819 1642 0.00011 0.00172 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2035 809 0.00012 0.00166 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3869 1642 0.00012 0.00168 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3741 809 0.00012 0.00172 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +742 687 0.00093 0.005669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2910 7098 0.00105 0.00506 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5688 6231 0.00113 0.006539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5182 5455 0.00037 0.002919 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +707 5695 0.005169 0.03738 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3814 954 0.00125 0.006669 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2313 2438 0.001281 0.00661 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +195 2985 0.00226 0.0138 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 3513 0.00213 0.02677 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 3346 0.00154 0.01919 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4544 601 0.00687 0.04413 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4544 3241 0.0045 0.04725 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4544 7338 0.00138 0.00837 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3069 1538 0.000419 0.001901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3069 1538 0.00043 0.00186 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6115 4729 0.003331 0.015099 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3344 6616 0.002099 0.01631 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3809 5616 0.001331 0.01082 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3809 6691 0.00199 0.00818 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3809 6691 0.00169 0.008831 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1326 892 0.001771 0.014281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +601 616 0.003099 0.01844 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3496 1551 0.003409 0.01819 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4925 2230 0.00057 0.00369 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8057 5907 0.001081 0.00468 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5354 5907 0.00105 0.004771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3674 616 0.001979 0.01549 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3674 7338 0.001469 0.015151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 5083 0.000711 0.003969 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 7576 0.00051 0.00274 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 3191 0.000521 0.00306 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 3488 0.00188 0.011841 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5836 1578 0.002469 0.010539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +575 5300 0.00045 0.00351 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3929 9173 0.00037 0.000659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 3818 0.000401 0.0007 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 6232 0.00014 0.000531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 1643 0.000289 0.0013 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 6253 7.00E-05 0.000289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 6684 0.00051 0.002151 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2089 8151 0.00037 0.00157 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5067 449 0.00022 0.00277 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5067 449 0.00025 0.00271 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7641 3037 0.000271 0.002081 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7641 3037 0.00025 0.00231 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3191 2340 0.00095 0.00331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3191 8711 0.00093 0.00336 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8104 8722 0.000341 0.002211 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2644 9191 0.00032 0.00232 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4128 8522 3.90E-05 0.000271 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +604 7522 0.00075 0.0101 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +604 4000 0.00118 0.01455 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 9021 0.0017 0.0098 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 9021 0.001521 0.01111 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 2042 0.000169 0.001401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 687 0.002591 0.01725 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 3520 0.000169 0.001159 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2155 4729 0.00307 0.01339 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2641 4889 0.002591 0.013521 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9067 9051 0.000581 0.005031 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6969 5573 0.001419 0.00595 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 1494 0.00205 0.02664 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 2732 0.00295 0.03721 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 4550 0.00335 0.03648 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 1607 0.00022 0.00251 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +666 2093 0.00059 0.00651 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3565 2177 0.008539 0.041979 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3565 2841 0.001349 0.0052 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3611 7972 0.00245 0.013909 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3611 2481 0.001469 0.008419 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5420 7164 0.00084 0.00836 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7119 2078 0.002591 0.017789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7119 7873 0.009651 0.05968 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7422 7519 0.00143 0.00799 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7422 6744 0.001969 0.014909 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1026 1860 0.01039 0.06406 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4765 3327 0.000719 0.005331 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6036 6921 0.00052 0.00565 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8670 7069 0.002409 0.019479 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8670 7069 0.00256 0.019151 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8670 2866 0.00656 0.02288 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4032 6450 0.0027 0.014901 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4032 5738 0.003591 0.01362 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7327 2481 0.002211 0.01188 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7327 8189 0.00068 0.00357 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7474 1584 0.000211 0.000969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8947 3390 9.90E-05 0.000539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1808 6384 0.00645 0.0263 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4624 6031 0.00063 0.001901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1721 3558 0.000281 0.000669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7694 3865 0.000219 0.00064 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9181 6723 0.00014 0.00105 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8373 8748 0.003219 0.020729 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8373 8475 0.00051 0.003151 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8373 8475 0.000409 0.00331 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 6639 0.002289 0.017479 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 1187 0.002831 0.01895 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 7274 0.006289 0.036521 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 8992 0.005651 0.032169 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5630 7266 0.00414 0.02262 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3492 6734 0.01095 0.05814 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3492 1015 0.009 0.0368 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3492 8310 0.000229 0.00181 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1980 6570 0.00119 0.00726 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9137 749 0.011771 0.051669 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 2183 0.00209 0.02279 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7571 3916 0.002031 0.01443 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7571 6891 0.00145 0.008479 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2526 6199 0.00124 0.01433 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2526 6199 0.00127 0.01402 0 1776 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1483 3649 0.013039 0.052841 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 6199 0.00235 0.02739 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 6199 0.0024 0.02681 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 4141 0.00135 0.02056 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 1311 0.00087 0.01124 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8316 174 0.0012 0.00818 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +174 6430 0.006961 0.05561 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 7892 0.00105 0.00763 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 561 0.000219 0.00182 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 8843 3.90E-05 0.0002 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 8843 4.50E-05 0.000195 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5340 4239 0.0035 0.022651 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3866 1860 0.004281 0.02319 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3866 5395 0.003729 0.014021 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7042 2177 0.00212 0.01582 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8672 7164 0.00056 0.00784 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1860 7772 0.004401 0.01813 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1860 7772 0.005021 0.02144 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4885 2928 0.00018 0.000219 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4157 2928 0.000151 0.000211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4432 2928 0.000151 0.000211 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2072 5983 0.00282 0.02591 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3450 6552 0.00131 0.008539 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3956 7507 0.002159 0.015969 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5286 1838 0.00019 0.000281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5571 2230 0.0002 0.000281 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2078 8005 0.00139 0.00774 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +639 6351 0.01101 0.06739 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +639 2749 0.00063 0.00463 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +639 9130 0.002341 0.009599 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +410 4189 0.00375 0.021659 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1494 5781 0.00056 0.00749 0 1183 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +583 6616 0.00118 0.00926 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +583 6031 0.002039 0.013081 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1746 7507 0.00155 0.010961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3276 7635 3.90E-05 0.00036 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1105 196 0.00024 0.000409 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8522 7132 0.000341 0.001659 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8522 5351 0.005461 0.024919 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 7056 0.00158 0.02413 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8825 0.00155 0.02458 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 6889 0.00021 0.00256 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 6889 0.00024 0.00243 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8887 0.00144 0.02266 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8887 0.0014 0.02098 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8763 8487 0.00086 0.01074 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8748 8475 0.003341 0.02611 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 6785 0.00387 0.02063 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 6785 0.00405 0.018271 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 1179 0.00101 0.00462 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 2575 0.00088 0.00389 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +217 7274 0.005081 0.039 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7972 8189 0.00257 0.0208 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7972 8189 0.00251 0.01926 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7972 1039 0.002531 0.01314 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7253 7840 0.00132 0.00869 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4395 8913 0.00082 0.004021 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4395 4852 0.00143 0.007479 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2795 1183 0.000659 0.005771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2795 1183 0.000591 0.006539 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1305 6291 0.00589 0.025599 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1305 6982 0.00614 0.02343 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2732 1798 0.00155 0.01994 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2732 3346 0.00205 0.03218 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4550 3346 0.00233 0.03154 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4725 5738 0.002341 0.01982 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1083 8310 8.10E-05 0.000521 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1398 5567 9.90E-05 0.00069 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4281 4580 0.00276 0.016419 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7050 4908 0.00036 0.001229 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7050 3740 0.000229 0.000711 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6563 870 0.00013 0.00099 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8999 6495 0.001159 0.00689 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6888 5994 0.008531 0.03045 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5400 8005 0.000781 0.004531 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5400 8005 0.00075 0.00474 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5881 4031 0.002159 0.008349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 8334 0.00162 0.01651 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 6357 0.01236 0.044211 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 6357 0.00825 0.03989 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 3775 0.02187 0.066961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +933 3975 0.01212 0.06661 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3918 1642 0.00036 0.00534 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6802 1153 0.000229 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6802 7599 0.000219 0.000581 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4025 3994 0.000281 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1595 1414 0.005021 0.035659 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3114 3656 0.00174 0.007901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5237 2229 0.003919 0.020581 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5237 9108 0.003341 0.016349 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5237 1478 0.003271 0.016669 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2799 8515 0.000151 0.000659 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6405 7873 0.00736 0.035659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6405 3894 0.00944 0.042169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 4734 0.00068 0.00652 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 3483 0.00188 0.02281 0 1282 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 7052 0.00168 0.00956 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 7052 0.001669 0.00981 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 772 0.002229 0.01599 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2079 772 0.00218 0.01631 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1081 6475 0.00238 0.02124 0 953 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1081 6475 0.00194 0.02023 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7361 3166 0.013831 0.05955 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7361 426 0.00876 0.04875 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2863 1857 0.0002 0.00099 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1364 2430 0.00105 0.00826 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2177 749 0.0172 0.06637 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3594 2850 0.00305 0.015781 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6555 3608 0.00208 0.02105 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8475 1965 0.00614 0.043729 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8475 5926 0.000229 0.001849 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5735 6053 0.00386 0.025789 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5735 2341 0.002031 0.012 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2629 7507 0.000591 0.004 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1137 2406 9.10E-05 0.00051 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7577 5814 0.00732 0.039969 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7577 3231 0.004581 0.02031 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7663 5814 0.00132 0.00537 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1183 1159 0.007521 0.0387 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6852 5051 0.005159 0.031281 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8307 8807 9.90E-05 0.001159 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6947 8807 9.90E-05 0.00113 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4505 4357 0.00019 0.000909 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7144 7791 0.00107 0.00413 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 2085 9.00E-05 0.00058 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 4024 9.00E-05 0.00059 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 9065 8.00E-05 0.00053 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 661 8.00E-05 0.00052 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6612 8864 0.000271 0.00151 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00053 0.00585 0 1809 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00047 0.00663 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00046 0.00676 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 6199 0.00045 0.00689 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 8494 0.00028 0.00338 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8931 8494 0.0003 0.00319 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1643 4511 0.00025 0.00101 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +196 1973 0.000281 0.00119 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2902 5573 0.00018 0.00063 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4950 4410 0.00382 0.02868 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4950 333 0.00361 0.0235 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4950 6908 0.00538 0.03569 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3377 7726 6.00E-05 0.000409 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 3243 9.00E-05 0.00102 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 2458 0.0014 0.01649 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 2919 0.00034 0.00427 0 1019 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 8560 0.0001 0.00109 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 6427 0.00137 0.01682 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 8347 0.00131 0.01262 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 5610 0.00262 0.019669 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 2421 0.00082 0.00526 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 2421 0.000841 0.005151 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 2421 0.000669 0.005081 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7148 6989 0.001919 0.012669 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +44 1545 0.002659 0.02 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +44 3541 0.003031 0.02343 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6231 4710 0.01176 0.059159 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6231 8367 0.002469 0.017531 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6231 2288 0.000669 0.005729 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8291 8473 0.000781 0.00876 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8291 5455 0.00062 0.00482 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8291 7635 0.001349 0.012599 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6842 8473 0.000979 0.0082 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6842 883 0.008091 0.028831 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6842 2288 0.000711 0.005969 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3969 7726 0.00145 0.00857 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1090 1129 0.00869 0.03768 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1090 3070 0.001719 0.00837 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 5365 0.01582 0.067349 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 5365 0.01457 0.06469 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 4529 0.021711 0.090539 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8515 3364 0.00019 0.000729 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +935 5383 0.001271 0.00638 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +920 6570 3.90E-05 0.0002 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6664 4426 0.000281 0.00236 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4339 2183 0.00019 0.00329 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7513 4000 0.00035 0.00324 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 8542 0.00049 0.00349 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 8542 0.000469 0.00331 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 1662 0.00313 0.01324 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 9119 0.001031 0.006719 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6570 1151 0.00038 0.00401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +502 3589 0.00037 0.002849 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8473 1040 0.00032 0.00256 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8473 145 0.00037 0.00118 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8473 4267 0.00068 0.001151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4936 5179 0.00168 0.009841 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5317 8854 0.000599 0.002401 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9018 4 0.002169 0.00911 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9018 4829 0.002849 0.01282 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6253 5383 0.001229 0.01207 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6253 7507 0.001289 0.01089 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 1644 0.00093 0.01036 0 756 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 3483 0.00083 0.01174 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6639 7840 0.00118 0.009469 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6639 7840 0.001151 0.009651 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 8109 0.00101 0.01327 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6291 4189 0.00364 0.02486 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8405 4747 0.00056 0.00425 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8405 4580 0.00369 0.02681 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +338 7824 0.000531 0.00276 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2468 7824 0.000521 0.00281 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5257 7824 0.000419 0.00232 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2189 7824 0.000409 0.00237 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8458 8267 0.00014 0.00193 0 1414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2676 5987 0.003211 0.01481 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1187 5712 0.00381 0.01175 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1187 6521 0.003781 0.02676 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 8636 0.000919 0.005461 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 8829 0.000271 0.001211 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 4235 0.002229 0.017401 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 4235 0.00243 0.017659 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2360 4235 0.002531 0.01705 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8818 5099 0.012531 0.05451 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 4734 0.00087 0.01212 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 905 0.0006 0.00802 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 8334 0.00072 0.00667 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5781 2093 0.00234 0.02626 0 1315 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6772 6989 0.00038 0.002969 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7885 3912 0.00024 0.00045 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6730 3912 0.000229 0.000409 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4301 3912 0.000281 0.000401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5362 5610 0.001211 0.005271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5362 350 0.000281 0.00107 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5362 6763 0.00025 0.001091 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3855 1973 0.00019 0.00081 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3855 1973 0.00045 0.00136 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3481 554 0.003461 0.023289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 8222 0.0013 0.01609 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 8222 0.00128 0.0164 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 2721 0.00089 0.01082 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 2721 0.00087 0.01102 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3786 8578 0.003349 0.02514 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +490 2653 0.0003 0.00061 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +148 7069 0.000289 0.001211 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7256 8743 0.01301 0.044091 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7256 1742 0.02162 0.065969 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8930 314 0.006461 0.05275 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6954 7974 0.0002 0.000271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3325 7974 0.00018 0.00026 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5627 1742 0.00032 0.00188 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5610 6989 0.00105 0.006591 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +21 6163 0.00013 0.00055 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3749 5365 0.006151 0.04013 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3749 6982 0.007159 0.040591 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2291 3133 0.00874 0.048461 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2291 4738 0.004159 0.01606 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2291 3656 0.002919 0.01912 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 4300 0.00094 0.00394 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 5789 0.000901 0.00395 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 2467 0.003159 0.017789 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 2467 0.002419 0.018331 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +314 5256 0.00375 0.018281 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3200 2653 0.00025 0.001031 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4679 4852 0.00264 0.01238 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4679 4852 0.001289 0.00795 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4679 1151 0.00087 0.003081 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8568 5215 0.000401 0.00224 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +58 221 0.0003 0.00385 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6807 851 0.00126 0.008219 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +150 5099 0.01905 0.055729 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +150 3558 0.00201 0.00444 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7209 2934 0.00101 0.00324 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 4787 0.00105 0.00677 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 3830 0.00039 0.00502 0 1052 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 5648 0.0004 0.00492 0 854 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 4000 0.00051 0.00617 0 1249 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 3485 0.0003 0.00314 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 3830 0.00051 0.00668 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 5648 0.0005 0.00678 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 2424 0.002909 0.017 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 1156 0.00245 0.011281 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 4914 0.0027 0.01532 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 4914 0.00105 0.011151 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 3834 0.00036 0.002669 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 556 0.0018 0.011169 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 3019 0.000711 0.007771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1262 7923 0.00036 0.00257 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 4103 0.00201 0.01195 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 7862 0.001091 0.00731 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 5458 0.00105 0.007591 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1551 1838 0.00299 0.02256 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3070 2888 0.00036 0.00288 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 4504 0.00589 0.045599 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 3579 0.00157 0.0127 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 3579 0.00168 0.011969 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4874 7903 0.00289 0.021031 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6368 1102 0.00395 0.025211 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6368 9217 0.002771 0.021659 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6368 5653 0.002979 0.016901 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8478 5907 0.007419 0.034021 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5241 6921 0.00056 0.00813 0 789 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4 1813 0.00361 0.015211 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8950 7049 0.000409 0.003331 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6846 8788 0.004091 0.019599 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6846 6734 0.00294 0.012841 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4426 5616 0.020771 0.080479 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4426 1965 0.00662 0.0513 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4426 1767 0.00607 0.04581 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3037 1102 0.000669 0.0042 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3037 8485 0.001271 0.007419 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3037 5653 0.001599 0.012271 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 4661 0.009599 0.05024 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 520 0.00149 0.009219 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 6816 0.01488 0.06724 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 5918 0.003599 0.024031 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5395 5918 0.00519 0.024 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8636 1380 0.003461 0.013349 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3436 4239 0.00105 0.01236 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3436 4239 0.00199 0.012331 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3436 3656 0.00711 0.044711 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6203 7124 0.006729 0.02543 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9059 7124 0.005771 0.02999 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5994 96 0.0048 0.021771 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5049 306 0.00286 0.02212 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +718 8397 0.00351 0.02175 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +718 6982 0.008401 0.0448 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7202 8807 0.0018 0.01187 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7202 8807 0.001831 0.01163 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8592 2995 0.00075 0.00538 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6581 823 2.00E-05 0.00033 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6581 1680 1.00E-05 0.00034 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6199 953 0.00023 0.00258 0 723 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6199 1817 0.00023 0.00252 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3231 1504 0.002031 0.008531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3231 7226 0.005349 0.020789 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2928 7865 0.0002 0.00082 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3916 6891 0.002091 0.011219 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6053 171 0.00262 0.016979 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6053 171 0.002669 0.01663 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8829 3044 0.00025 0.00118 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1552 1194 0.00056 0.00715 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 3740 0.0007 0.00455 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 2695 0.000331 0.001711 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 2695 0.00011 0.000781 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3912 8877 0.00111 0.00664 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7520 8222 0.00066 0.00838 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7520 8222 0.00064 0.00854 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2421 3610 0.003091 0.017091 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2421 1414 0.00643 0.03687 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8879 3610 0.00275 0.01937 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8397 5918 0.00357 0.021289 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1914 6982 0.000289 0.002789 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7873 6638 0.002531 0.01345 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4562 7702 0.00162 0.012159 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4562 7702 0.00262 0.01168 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8835 1156 0.00099 0.006081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8835 1233 0.000909 0.005979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3390 408 0.00011 0.0008 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3390 7231 0.00011 0.00068 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3390 5993 0.00207 0.008341 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1910 2550 0.00019 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3975 7353 0.014039 0.0667 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3126 7495 0.004961 0.03043 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2689 5753 0.00056 0.003531 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1201 4235 0.001461 0.00889 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7626 7076 6.00E-05 0.000419 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4823 4060 0.00139 0.005169 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4141 1311 0.00069 0.00825 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7124 4566 0.004969 0.030781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7124 8873 0.00012 0.000969 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6684 5383 0.001091 0.010159 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8151 5383 0.000969 0.00887 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4357 6619 0.00099 0.006789 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8191 8765 0.001031 0.00586 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7466 5469 0.00401 0.03345 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3401 5351 9.10E-05 0.000349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3760 225 0.00125 0.00745 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +53 4031 0.003711 0.024219 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6921 0.00169 0.02156 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6921 0.00171 0.02114 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6556 4239 0.00088 0.00562 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6556 4239 0.0008 0.00618 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2940 7178 0.00161 0.01014 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3928 2563 0.00032 0.002031 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3928 6521 0.00011 0.000659 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1923 3830 0.00042 0.00505 0 986 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1923 5648 0.00043 0.00494 0 1151 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2815 4914 0.00038 0.000711 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2815 4914 0.00037 0.000659 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 1644 0.00248 0.03096 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +163 3498 0.00375 0.019729 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +163 2430 0.00518 0.020021 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7943 9108 0.000771 0.003711 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7943 1478 0.00076 0.003789 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2308 3541 0.000781 0.00574 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3535 7582 0.00089 0.00562 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2019 8542 0.000331 0.001401 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5174 8542 0.000401 0.00137 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7945 5215 0.00051 0.003349 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2057 9130 0.000461 0.00168 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2057 9130 0.000469 0.00164 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4661 6816 0.006081 0.03114 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7519 776 0.005831 0.02218 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8989 3435 0.00013 0.000461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7797 2020 0.00013 0.000461 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +871 4031 0.00262 0.020289 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +871 2878 0.00164 0.01194 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7353 9164 0.006479 0.02845 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7974 2012 0.00294 0.014419 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7974 2012 0.00238 0.01463 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7974 1750 0.002219 0.00993 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1401 2303 0.008651 0.04886 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4504 7903 0.00464 0.030979 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 449 0.00092 0.00889 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 449 0.00093 0.00869 0 1348 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1817 0.0022 0.03485 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 2458 0.00074 0.00941 0 1743 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 6427 0.00087 0.00884 0 1578 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1730 0.00139 0.01662 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9217 594 0.002781 0.022979 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6351 5393 0.000521 0.00407 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6194 7702 0.008479 0.032841 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2503 7491 0.005669 0.02901 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4031 2872 0.001031 0.004099 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4031 8043 0.00301 0.018719 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1813 2866 0.00257 0.01713 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5365 5417 0.010461 0.03836 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5365 4100 0.001719 0.011531 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5365 1556 9.10E-05 0.00056 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3894 3865 0.00476 0.025289 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +128 1554 0.000219 0.00164 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +198 7994 0.002159 0.01163 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +198 1554 0.00295 0.01539 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2985 3133 0.007789 0.033039 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7316 3071 0.00026 0.0013 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6486 8992 0.00162 0.013229 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8485 594 0.007919 0.04194 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +682 8477 0.001229 0.00401 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5146 5488 0.008021 0.042831 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6638 776 0.007711 0.03006 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8788 789 0.00261 0.015469 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6332 1556 0.00139 0.00536 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6332 1556 0.001419 0.00525 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1883 7702 0.006289 0.032271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1883 2132 0.011031 0.05625 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +171 2341 0.001841 0.01324 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6630 10 0.000599 0.00186 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4484 4239 0.00036 0.001591 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3044 4235 0.003849 0.027651 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +851 4454 0.00186 0.00874 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3485 2183 0.00025 0.00285 0 1480 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1156 7923 0.00207 0.008841 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1156 1233 6.00E-05 0.00039 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8913 4852 0.002159 0.008909 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4039 1233 0.000219 0.00039 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 2653 0.00011 0.000521 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 2653 0.00011 0.00049 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 556 0.000771 0.003789 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4914 3019 0.000229 0.002849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7994 5256 0.00445 0.027599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 3346 0.00218 0.02 0 1381 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 8468 0.00074 0.00865 0 1118 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7702 1234 0.002531 0.019419 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7702 8035 0.003 0.01631 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8677 3331 0.008461 0.025081 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8189 3643 0.00382 0.013669 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3133 8477 0.002581 0.01814 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6744 6101 0.00201 0.012219 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8542 4313 0.00087 0.001599 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +769 5233 0.00455 0.02394 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1965 5926 0.005651 0.041771 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9014 3999 0.00069 0.001271 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1917 8406 0.00068 0.00269 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1917 2021 0.00036 0.00261 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1917 8293 0.001669 0.012031 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4738 3656 0.009669 0.03513 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4738 8477 0.001099 0.00862 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7998 1644 0.0005 0.00711 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6734 1015 0.003919 0.017781 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6734 8992 0.00161 0.019781 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6734 789 0.0007 0.01256 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5004 5393 0.000409 0.0018 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1708 3906 2.00E-05 0.00043 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9150 3906 3.00E-05 0.0004 0 1710 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +280 9158 0.00968 0.056659 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8043 3656 0.003969 0.02925 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5712 8992 0.00219 0.01468 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5712 8466 0.000401 0.003159 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5712 6880 0.000531 0.003 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5215 7266 0.00136 0.00576 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8807 8992 0.000849 0.006289 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8807 8992 0.000841 0.006409 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8807 8992 0.00045 0.00506 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +218 2088 0.003669 0.02988 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +520 5918 0.002 0.01568 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2653 2128 0.00031 0.0008 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1216 5233 0.00043 0.00038 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8980 5993 0.00043 0.002229 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5212 5993 0.00049 0.00218 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3656 4060 0.00282 0.01844 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +883 3331 0.00462 0.014849 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5144 3346 0.00263 0.04076 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3498 2563 0.01062 0.056719 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1896 8200 0.0001 0.00105 0 657 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9130 8864 0.00239 0.017341 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3503 2510 0.001341 0.010581 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3503 6146 0.00101 0.007599 0 472 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +401 1584 0.00011 0.000289 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 6921 0.00146 0.01769 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 6921 0.0013 0.02004 0 1644 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6816 5573 0.007909 0.028349 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7396 8564 0.00012 0.00049 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7396 8564 0.00012 0.000479 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.00076 0.01018 0 1513 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.0009 0.00865 0 1677 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.00096 0.01294 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.0004 0.00756 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 432 0.00039 0.00771 0 1447 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 8200 0.00163 0.02291 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2949 3121 0.00636 0.03855 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2949 3121 0.00639 0.03863 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +953 1730 0.00113 0.01362 0 690 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1767 892 0.00861 0.05318 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4674 4889 0.0012 0.004669 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4674 7076 0.00018 0.001091 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1234 8035 0.001401 0.00612 0 357 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +115 225 0.00068 0.00387 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5720 8578 0.0043 0.033591 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3579 5469 0.003039 0.01911 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3246 124 6.00E-05 0.00111 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8846 4783 5.00E-05 0.001091 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2393 3306 3.90E-05 0.00089 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1895 4480 3.90E-05 0.000901 0 853 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +678 4454 0.000169 0.00111 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1002 4852 0.000331 0.0027 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6429 2012 0.00026 0.00369 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4889 7076 0.000341 0.00274 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5341 7491 0.00038 0.00506 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2563 6521 0.00012 0.000831 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1111 594 0.003031 0.0123 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4747 7791 0.001521 0.00774 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3906 3022 0.00059 0.00552 0 1611 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3906 1194 0.00053 0.00625 0 1545 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5993 8804 0.00143 0.01076 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1798 8487 0.00056 0.00593 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2467 7178 0.00205 0.01461 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2132 2303 0.01068 0.054521 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8992 8466 0.00194 0.011039 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8992 6880 0.00131 0.010099 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8992 2995 0.001289 0.014229 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 3221 0.00455 0.027031 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 3327 0.00239 0.01414 0 510 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 8310 0.004039 0.029669 0 491 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +805 2088 0.001099 0.007771 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 2021 0.00082 0.00762 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 4114 0.000719 0.0033 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 5519 0.000599 0.00361 0 300 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 8293 0.000521 0.004039 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5383 3435 0.000901 0.0088 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7507 6990 0.000781 0.00306 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7507 2406 0.000419 0.00399 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7507 2020 0.000841 0.009841 0 281 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6478 6146 0.004021 0.03064 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 2695 0.0023 0.009031 0 338 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 2695 0.002081 0.009469 0 376 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 5502 0.00164 0.008831 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 8877 0.00094 0.00488 0 319 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 9119 0.000901 0.00551 0 453 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4852 1151 0.00051 0.005961 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2012 1750 0.00113 0.004349 0 433 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1478 6616 0.002081 0.013031 0 395 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +809 4594 0.00116 0.01438 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8656 4729 0.00013 0.001031 0 10000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4100 615 0.00036 0.002659 0 414 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4060 5393 0.000771 0.004539 0 529 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 2426 0.000695 0.049098 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9203 2426 0.000355 0.024893 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +118 2426 0.000365 0.024372 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3145 7770 0.000411 0.023652 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 4918 0.000386 0.025673 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7267 4918 0.000344 0.029336 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 4506 0.000653 0.052104 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +839 4506 0.000767 0.043531 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 6114 0.000323 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 6114 0.000323 0.025999 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3445 7264 0.000365 0.025478 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +891 6306 0.00086 0.039291 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 1711 0.000355 0.026586 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +720 1711 0.000375 0.026313 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 3240 0.000344 0.023329 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6206 3240 0.000302 0.026375 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 2924 0.000788 0.04323 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9174 2924 0.000767 0.04407 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 5856 0.000767 0.043562 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 5856 0.000788 0.041281 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1355 5856 0.000892 0.040524 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 4683 0.000975 0.043562 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3205 4683 0.000757 0.042649 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2361 0.000261 0.030762 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5350 2361 0.000261 0.030088 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 6112 0.000323 0.026447 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5016 8860 0.000323 0.026885 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 549 0.000323 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7471 549 0.000292 0.028158 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +549 5002 0 0.009197 0 567 0 0 0 0.072386 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5490 3817 0.000736 0.044526 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2854 9112 0.00086 0.039488 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 6532 0.000365 0.024372 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2918 6532 0.000375 0.023986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4494 7284 0.000386 0.025673 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2656 1775 0.000809 0.042318 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3519 5641 0.000705 0.042038 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 367 0.000334 0.028022 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3543 1833 0.000353 0.022403 0 591 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 367 0.000313 0.026354 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2372 367 0.000323 0.025478 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1876 7752 0.000344 0.024622 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +113 7752 0.000355 0.024038 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7289 0.000881 0.038244 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3499 7289 0.000757 0.040959 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3082 2083 0.000354 0.028765 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6224 2083 0.000354 0.027114 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2174 2083 0.000695 0.04748 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 1609 0.000323 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 1609 0.000323 0.026354 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4623 1609 0.000323 0.025696 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000355 0.027305 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000355 0.026666 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000923 0.037456 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5589 1001 0.000788 0.035217 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 7473 0.000323 0.026739 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1198 7473 0.000323 0.02749 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 5482 0.000313 0.027324 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2479 5482 0.000313 0.028074 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 5525 0.000601 0.024984 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 5525 0.000715 0.022797 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7831 5525 0.000344 0.024893 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 7955 0.000365 0.024163 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4970 7955 0.000344 0.02385 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5007 7367 0.000757 0.040182 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +757 3758 0.000323 0.028937 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000354 0.026958 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000778 0.045656 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000695 0.048932 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3697 6952 0.000302 0.025926 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 8180 0.000355 0.027328 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6738 8180 0.000365 0.027156 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9222 5935 0.000355 0.024299 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7988 804 0.000375 0.026313 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7988 804 0.000375 0.025605 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 1539 0.000334 0.026291 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3239 1539 0.000705 0.046735 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 4084 0.000313 0.026875 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2056 4084 0.000302 0.027376 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4598 5110 0.000664 0.044868 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2129 5110 0.000809 0.044526 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 5550 0.00086 0.034253 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5658 5550 0.000355 0.024372 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2848 1526 0.000365 0.023788 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 7464 0.000375 0.023204 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4541 7464 0.000302 0.026593 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 3857 0.000323 0.029256 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 3857 0.000334 0.029986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1754 3857 0.000355 0.030979 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 4544 0.000302 0.025707 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2518 4544 0.000344 0.025405 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3069 6115 0.00012 0.008908 0 491 0 0 0 -0.072388 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5067 7641 0.000365 0.023715 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6036 8670 0.000365 0.023517 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6036 5522 0.000334 0.026812 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8486 8791 0.000695 0.047253 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7530 8791 0.000778 0.043759 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 7571 0.000313 0.030636 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 7571 0.000313 0.028286 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7522 7571 0.000344 0.028115 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2526 1483 0.000902 0.039425 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2365 8316 0.000355 0.024237 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8672 1860 0.000375 0.023986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8672 1860 0.000375 0.023861 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1494 583 0.000819 0.04153 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1494 583 0.000809 0.042701 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1502 2795 0.000334 0.028022 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 933 0.000632 0.048237 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 933 0.000632 0.045159 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8195 933 0.000715 0.044039 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3918 6802 0.00074 0.044479 0 10000 0 0 0.986547 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3918 4025 0.00074 0.043811 0 10000 0 0 0.986547 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 2079 0.000375 0.02385 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 2079 0.000365 0.023267 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4435 2079 0.000323 0.026739 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1081 7361 0.000684 0.047025 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9101 2177 0.000313 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6555 8475 0.000323 0.028554 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6555 8475 0.000302 0.026437 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7056 7577 0.000365 0.025551 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7056 7577 0.000344 0.024893 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7056 9051 0.000375 0.024508 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 6785 0.000778 0.041157 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 6785 0.000923 0.03702 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6889 6785 0.000302 0.026593 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 7148 0.000344 0.029667 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1027 44 0.000334 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 7148 0.000323 0.030636 0 591 0 0 0.89674 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5308 44 0.000323 0.028526 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9213 6231 0.000344 0.025332 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9213 8291 0.000334 0.024674 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +9213 6842 0.000344 0.02457 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3608 6664 0.000365 0.023788 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4339 6570 0.000365 0.023601 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4339 6570 0.000344 0.02652 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7513 6570 0.000344 0.027272 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7513 6570 0.000334 0.027563 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 6639 0.000313 0.030636 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8887 6639 0.000313 0.028286 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 4816 0.000881 0.036803 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 4816 0.000902 0.036668 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5461 4816 0.000881 0.034014 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 3786 0.000365 0.026027 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5460 3786 0.000386 0.025673 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7256 4491 0.00012 0.011186 0 586 0 0 0 0.084507 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6153 58 0.00017 0.006789 0 1216 0 0 0 -0.086984 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +%CTT T_BUS r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +6153, 6807, 0.000664, 0.047107, 0, 10000, 0, 0, 0.982143, 0, 1, -360, 360, 0, 0, 0, 1.95, 0, 0, 0, 0, 0, 0, 1.22, 0.75, 0, 0, 1, 0, 0, -360, 360, 0, 0, 0, 0, 0; %CTT +1465 1262 0.000313 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 1262 0.000334 0.025707 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1465 1551 0.000344 0.025478 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 1551 0.000344 0.027236 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7537 1551 0.000375 0.026518 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6901 4874 0.000386 0.02646 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5241 4 0.000788 0.040317 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7520 561 0.000323 0.025863 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +749 4324 1.00E-05 0.022863 0 948 0 0 0 0.04898 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4141 7124 0.000334 0.030306 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4141 7124 0.000302 0.030636 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +%PST T_BUS r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +7466, 3649, 0.00011, 0.010476, 0, 472, 0, 0, 0, -0.06138, 1, -360, 360, -290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, -100, 100, 0, 0, 0, 0, 0; %PST +8222 6556 0.000344 0.024841 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6556 0.000365 0.025029 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8222 6556 0.000355 0.024101 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 163 0.000344 0.02385 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 163 0.000411 0.02313 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4125 163 0.000829 0.042764 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 9217 0.000705 0.04748 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1448 0.000323 0.029986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5837 1448 0.000302 0.029952 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8267 5365 0.000746 0.041064 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8267 5365 0.000881 0.042214 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2359 8005 0.00086 0.041209 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2359 8005 0.000912 0.038669 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8109 171 0.000375 0.026244 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8109 171 0.000375 0.025457 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3485 1156 0.000302 0.029096 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4734 2229 0.000302 0.029667 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 7702 0.000334 0.027563 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1709 7702 0.000323 0.028074 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +905 8189 0.000736 0.041064 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8334 8189 0.001234 0.040109 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8334 8189 0.000757 0.043209 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7998 6734 0.000323 0.026586 0 854 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4196 280 0.000788 0.040296 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4196 280 0.000912 0.040514 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6475 3503 0.000798 0.042183 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6475 3503 0.000778 0.043147 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 4235 0.000323 0.027793 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 4235 0.000302 0.027918 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7328 4235 0.000302 0.025926 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 2949 0.000344 0.024956 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +6921 2949 0.000355 0.024435 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3830 306 0.000386 0.026392 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +5648 306 0.000365 0.025525 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1730 115 0.000344 0.029986 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1730 115 0.000323 0.029838 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2721 5720 0.000323 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2721 5720 0.000313 0.028001 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3246 0.000179 0.012988 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 8846 0.000198 0.012724 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 2393 0.000207 0.012469 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 1895 0.000207 0.012206 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3412 0.000217 0.012912 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 5586 0.000217 0.012627 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3112 0.000198 0.014317 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 3112 0.000189 0.014592 0 1151 0 0 0.990991 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +432 7857 0.000354 0.02725 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +960 8497 0.000628 0.042428 0 10000 0 0 1.009174 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +960 8497 0.000726 0.044039 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3577 5907 0.000365 0.024893 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3577 5907 0.000438 0.02457 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3577 5907 0.000365 0.023986 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7164 5918 0.000375 0.023267 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +7164 5918 0.000323 0.026375 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1798 2467 0.000334 0.029735 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1798 2467 0.000313 0.030237 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3346 2132 0.000767 0.044049 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3346 2132 0.000302 0.026072 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3346 2132 0.00085 0.039892 0 10000 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +3483 8992 0.000344 0.024956 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8886 8992 0.000334 0.026666 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2093 805 0.000365 0.023788 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2093 805 0.000365 0.023465 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +221 1541 0.000334 0.026447 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 5383 0.000323 0.027042 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 5383 0.000313 0.02748 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 5383 0.000302 0.028314 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 7507 0.000323 0.025853 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 7507 0.000365 0.026197 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +8347 7507 0.000365 0.025165 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4000 4852 0.000355 0.024237 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4000 2012 0.000375 0.024247 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2183 4852 0.000365 0.023267 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2183 2012 0.000342 0.023139 0 591 0 0 0.982143 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1642 7098 0.000344 0.026666 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +1642 687 0.000334 0.027021 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +809 7098 0.000302 0.027615 0 591 0 0 0.979227 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +809 687 0.000313 0.026135 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4594 8804 0.000365 0.025905 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +4594 8804 0.000355 0.025238 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +2919 4215 0.000334 0.026814 0 591 0 0 0.93617 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +10001 2072 0.0003 0.0355 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.22 0.75 1 0 1 -0.5 0.5 -360 360 0 0.001 0.0015 0.002 0; %vsc1 I +10002 8195 0.0003 0.0355 0 1000 1000 1000 1 0 1 -360 360 50 0 0 0 0 0 0 0 1.01 1.07 1.22 0.75 4 0.02 1 -0.5 0.5 -100 100 0 0.001 0.0015 0.002 0.1; %vsc2 III +10001 10002 0.0005 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP---------------------- +10003 6246 0.00025 0.041 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.0 1.06 1.22 0.75 2 0.5 1 -0.5 0.5 -360 360 0 0.001 0.0015 0.002 0; %vsc3 II +10004 7282 0.00025 0.041 0 1000 1000 1000 1 0 1 -360 360 -500 0 0 0 0 0 0 0 0 1.075 1.22 0.75 1 0.5 1 -0.5 0.5 -100 100 0 0.001 0.0015 0.002 0; %vsc4 I +10005 352 0.00025 0.041 0 1000 1000 1000 1 0 1 -360 360 -450 0 0 0 0 0 0 0 0 0 1 1 1 0.5 1 -0.5 0.5 -100 100 0 0.001 0.0015 0.002 0; %vsc5 I +10003 10004 0.0007 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +10004 10005 0.0007 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +10005 10003 0.0007 0 0 1000 1000 1000 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; + +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; + 2 0 0 3 0 1 0; +]; diff --git a/src/tests/data/grids/fubm_caseHVDC_qt.m b/src/tests/data/grids/fubm_caseHVDC_qt.m new file mode 100644 index 000000000..9bc962e90 --- /dev/null +++ b/src/tests/data/grids/fubm_caseHVDC_qt.m @@ -0,0 +1,49 @@ +function mpc = fubm_caseHVDC_qt +%%%%%%%%%%%%%%%%%%%%%%%%%% Case HVDC %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin +mpc.bus = [ + 001 3 0 0 0 0 1 1 0 135 1 1.1 0.9; + 002 1 3 0.3 0 0 1 1 0 135 1 1.1 0.9; + 003 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 004 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 005 1 1 0.5 0 0 2 1 0 135 1 1.1 0.9; + 006 2 0 0 0 0 2 1 0 135 1 1.1 0.9 +]; + +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + 001 1 0 2 -2 1 100 1 2 0 0 0 0 0 0 0 0 0 0 0 0 + 006 1 0 2 -2 1 100 1 5 0 0 0 0 0 0 0 0 0 0 0 0 +]; + +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ + 001 002 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 005 0.0500 0.50 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 003 002 0.0001 0.15 0 100 100 100 1 0 1 -360 360 0 0 0 -0.3 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC1 + 003 004 0.05 0 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 005 0.0001 0.15 0 100 100 100 0 0 1 -360 360 -0.5 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.02 0; %VSC2 + 006 005 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0 +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ +2 0 0 3 0.02 1.0 1.0; +2 0 0 3 0.01 2.0 1.0; +2 0 0 3 0.01 0.0 0.0; +2 0 0 3 0.01 0.0 0.0; +]; + diff --git a/src/tests/data/grids/fubm_caseHVDC_vt.m b/src/tests/data/grids/fubm_caseHVDC_vt.m new file mode 100644 index 000000000..09b592683 --- /dev/null +++ b/src/tests/data/grids/fubm_caseHVDC_vt.m @@ -0,0 +1,49 @@ +function mpc = fubm_caseHVDC_vt +%%%%%%%%%%%%%%%%%%%%%%%%%% Case HVDC %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin +mpc.bus = [ + 001 3 0 0 0 0 1 1 0 135 1 1.1 0.9; + 002 1 3 0.3 0 0 1 1 0 135 1 1.1 0.9; + 003 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 004 1 0 0 0 0 3 1 0 200 1 1.1 0.9; + 005 1 2 0.5 0 0 2 1 0 135 1 1.1 0.9; + 006 2 0 0 0 0 2 1 0 135 1 1.1 0.9 +]; + +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + 001 1 0 2 -2 1.1 100 1 2 0 0 0 0 0 0 0 0 0 0 0 0 + 006 1 0 2 -2 1.12 100 1 5 0 0 0 0 0 0 0 0 0 0 0 0 +]; + +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- +mpc.branch = [ + 001 002 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 005 1.0500 0.50 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 005 0.001 0.10 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 003 002 0.9 0.15 0 100 100 100 1 0 1 -360 360 0 0.0 0 0 0 0 0 0 0 1.096 2 0.1 1 0 1 -5 5 -360 360 0 0.0001 0.015 0.2 0; %VSC1 + 004 005 0.9 0.35 0 100 100 100 0 0 1 -360 360 -0.35 0.0 0 0 0 0 0 0 1.104 0 2 0.1 2 0 1 -5 5 -50 50 0 0.0001 0.015 0.02 0; %VSC2 + 003 004 2.05 0 0 100 100 100 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; % DC line +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ +2 0 0 3 0.02 1.0 1.0; +2 0 0 3 0.01 2.0 1.0; +2 0 0 3 0.01 0.0 0.0; +2 0 0 3 0.01 0.0 0.0; +]; + diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1.m new file mode 100644 index 000000000..911652c5f --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt1 +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0.01 0.0001 0.15 2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50.0 50 0.10 0.0001 0.15 2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50.0 50 0.001 0.0001 0.15 2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0.01 0.0001 0.15 2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.038 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0.01 0.0001 0.15 2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.05 0 1 1 2 0 1 -0.5 0.5 -50.0 50 0.01 0.0001 0.15 2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1_pf.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1_pf.m new file mode 100644 index 000000000..f4f370268 --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt1_pf.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt1_pf +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET TAP_MAX TAP_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50.0 50 0 0.0001 0.015 0.2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50.0 50 0 0.0001 0.015 0.2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.038 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.05 0 1 1 2 0 1 -0.5 0.5 -50.0 50 0 0.0001 0.015 0.2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2.m new file mode 100644 index 000000000..ba9d54716 --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt2 +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.01 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.15 2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.15 2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.15 2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.15 2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.15 2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.07 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.15 2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf.m new file mode 100644 index 000000000..6abee6ddd --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf.m @@ -0,0 +1,179 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt2_pf +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 1) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9; + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9; + + +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0; + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.01 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC1vdc + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 5.37 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.38 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC3z +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.07 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf_dp.m b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf_dp.m new file mode 100644 index 000000000..cc69a2f2a --- /dev/null +++ b/src/tests/data/grids/fubm_case_30_2MTDC_ctrls_vt2_pf_dp.m @@ -0,0 +1,201 @@ +function mpc = fubm_case_30_2MTDC_ctrls_vt2_pf_dp +%%%%%%%%%%%%%%%%%%%%%%%% IEEE_30_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 30 Bus System + 2 1; %area 2 DC GRID 1 + 3 901; %area 3 Transformers for VSC + 4 909; %area 4 Statcom for VSC + 5 910; %area 5 Voltage Droop + ]; + + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 30 Bus System) + 101 3 0 0 0 0 1 1 0 135 1 1.15 0.9; + 102 2 30 12.7 0 0 1 1 0 135 1 1.15 0.9; + 103 1 2.4 1.2 0 0 1 1 0 135 1 1.15 0.9; + 104 1 7.6 1.6 0 0 1 1 0 135 1 1.15 0.9; + 105 1 0 0 0 0.19 1 1 0 135 1 1.15 0.9; + 106 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 107 1 22.8 10.9 0 0 1 1 0 135 1 1.15 0.9; + 108 1 30 30 0 0 1 1 0 135 1 1.15 0.9; + 109 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 110 1 5.8 2 0 0 1 1 0 135 1 1.15 0.9; + 111 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 112 1 11.2 7.5 0 0 1 1 0 135 1 1.15 0.9; + 113 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 114 1 6.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 115 1 8.2 2.5 0 0 1 1 0 135 1 1.15 0.9; + 116 1 3.5 1.8 0 0 1 1 0 135 1 1.15 0.9; + 117 1 9 5.8 0 0 1 1 0 135 1 1.15 0.9; + 118 1 3.2 0.9 0 0 1 1 0 135 1 1.15 0.9; + 119 1 9.5 3.4 0 0 1 1 0 135 1 1.15 0.9; + 120 1 2.2 0.7 0 0 1 1 0 135 1 1.15 0.9; + 121 1 17.5 11.2 0 0 1 1 0 135 1 1.15 0.9; + 122 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 123 2 3.2 1.6 0 0 1 1 0 135 1 1.15 0.9; + 124 1 8.7 6.7 0 0.04 1 1 0 135 1 1.15 0.9; + 125 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 126 1 3.5 2.3 0 0 1 1 0 135 1 1.15 0.9; + 127 2 0 0 0 0 1 1 0 135 1 1.15 0.9; + 128 1 0 0 0 0 1 1 0 135 1 1.15 0.9; + 129 1 2.4 0.9 0 0 1 1 0 135 1 1.15 0.9; + 130 1 10.6 1.9 0 0 1 1 0 135 1 1.15 0.9; + %Area 2 (Transformers nodes for VSC DC GRID 1) + 901 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 902 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + 903 1 0 0 0 0.0887 2 1 0 200 1 1.15 0.9; + %Area 3 (Transformers nodes for VSC DC GRID 2) + 904 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 905 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9; + 906 1 0 0 0 0.0887 3 1 0 200 1 1.15 0.9 + %Area 2 (DC GRID 1) + 1 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 2 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + 3 1 0 0 0 0 2 1 0 200 1 1.15 0.9; + %Area 3 (DC GRID 2) + 4 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 5 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 6 1 0 0 0 0 3 1 0 200 1 1.15 0.9; + 7 1 -15 0 0 0 3 1 0 200 1 1.15 0.9;%Wind Farm Injection + 8 1 -10 0 0 0 3 1 0 200 1 1.15 0.9;%Wind Farm Injection + %Area 4 (Transformer nodes for STATCOMs) + 909 1 0 0 0 0 4 1 0 200 1 1.15 0.9; + %Area 4 (STATCOMs) + 9 1 0 0 0 0 4 1 0 200 1 1.15 0.9;%Fixed Node for STATCOM + %Area 5 (Transformer nodes for VSC DC GRID 3, DROOP) + 910 1 0 0 0 0 5 1 0 200 1 1.15 0.9; + 911 1 0 0 0 0 5 1 0 200 1 1.15 0.9; + %Area 4 (DC GRID 3, VSC DROOP) + 10 1 0 0 0 0 5 1 0 200 1 1.15 0.9;%Droop node + 11 1 0 0 0 0 5 1 0 200 1 1.15 0.9; +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 23.54 0 150 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 102 60.97 0 60 -20 1 100 1 80 0 0 0 0 0 0 0 0 0 0 0 0; + 122 21.59 0 62.5 -15 1 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0; + 127 26.91 0 48.7 -15 1 100 1 55 0 0 0 0 0 0 0 0 0 0 0 0; + 123 19.2 0 40 -10 1 100 1 30 0 0 0 0 0 0 0 0 0 0 0 0; + 113 37 0 44.7 -15 1 100 1 40 0 0 0 0 0 0 0 0 0 0 0 0 + %WF Generator is added as a load in bus 7 and 8 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.02 0.06 0.03 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 103 0.05 0.19 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 104 0.06 0.17 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.01 0.04 0 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 105 0.05 0.2 0.02 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 106 0.06 0.18 0.02 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.01 0.04 0 90 90 90 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 107 0.05 0.12 0.01 70 70 70 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.03 0.08 0.01 130 130 130 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.01 0.04 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 109 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 110 0 0.56 0 32 32 32 1 0 1 -360 360 0 0 0 3.0 0 0 0 0 0 0 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0;%CTT1 + 109 111 0 0.21 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0 0.11 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 112 0 0.26 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0 0.14 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 114 0.12 0.26 0 32 32 32 1 0 1 -360 360 3.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST1 + 112 115 0.07 0.13 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.09 0.2 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.22 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 116 117 0.08 0.19 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.01 1.2 0.8 0 0 1 0 0 -360 360 0 0 0 0 0;%CTT2 + 115 118 0.11 0.22 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.06 0.13 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 120 0.09 0.21 0 32 32 32 1 0 1 -360 360 7.5 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -50.0 50.0 0 0 0 0 0;%PST2 + 110 117 0.03 0.08 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 121 0.03 0.07 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 122 0.07 0.15 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.01 0.02 0 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 123 0.1 0.2 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 124 0.12 0.18 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.13 0.27 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0.19 0.33 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 126 0.25 0.38 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 127 0.11 0.21 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 127 0 0.4 0 65 65 65 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 129 0.22 0.42 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 130 0.32 0.6 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 130 0.24 0.45 0 16 16 16 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 128 0.06 0.2 0.02 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 128 0.02 0.06 0.01 32 32 32 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-2 (Transformers for VSC DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 113 901 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 902 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 903 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-3 (Transformers for VSC DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 102 904 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 905 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 906 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 (VSC of DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -3.5 0 0 0 0 0 0 0 1.1 0 1 1 4 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 -0.1; %VSC1droop + 002 902 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 -25 0 0 0 0 0 0 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC2z + 003 903 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 -2.35 0 0 0 0 0 0 0 1.1 0 1 1 3 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 -0.05; %VSC3droopZ +%Area 3 (VSC of DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 904 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC4z + 005 905 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 1.05 1.2 0.8 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC5z + 006 906 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 15 0 0 0 0 0 0 0 1.07 0 1 1 2 0 1 -0.5 0.5 -50 50 0 0.0001 0.015 0.2 0; %VSC6vdc +%Area 2 (DC GRID 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 001 002 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 001 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 002 003 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC GRID 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 004 005 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 004 006 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 005 008 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 006 007 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 1-4 (Transformers for VSC STATCOM) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 124 909 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 4 (VSC of STATCOM) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 009 901 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 1.1 0 1 1 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC9vdc +%Area 1-5 (Transformers for VSC DC GRID 3) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 123 910 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 911 0.0015 0.1121 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 5 (VSC of DC GRID 3) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 010 910 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 2 0 0 0 0 0 0 0 1.0 0 1 1 4 0 1 -0.5 0.5 -100 100 0 0.0001 0.015 0.2 -0.05; %VSC10droop + 011 911 0.0001 0.1643 0 100 100 100 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.015 0.2 0; %VSC11z +%Area 5 (DC GRID 3) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 ---------------------- + 010 011 0.05 0 0 200 200 200 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 -360 360 0 0 0 0 0; +]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.02 2 0; + 2 0 0 3 0.0175 1.75 0; + 2 0 0 3 0.0625 1 0; + 2 0 0 3 0.00834 3.25 0; + 2 0 0 3 0.025 3 0; + 2 0 0 3 0.025 3 0; + %Qg cost + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + 2 0 0 3 0.0000 0 0; + +]; diff --git a/src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.m b/src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.m new file mode 100644 index 000000000..9cd86d3a6 --- /dev/null +++ b/src/tests/data/grids/fubm_case_57_14_2MTDC_ctrls.m @@ -0,0 +1,292 @@ +function mpc = fubm_case_57_14_2MTDC_ctrls +%%%%%%%%%%%%%%%%%%%%%%%%%% IEEE_57_14_VSC Test Case %%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% MATPOWER Case Format : Version 2 +mpc.version = '2'; + +%%----- Power Flow Data -----%% +%% system MVA base +mpc.baseMVA = 100; + +%% area data +% area refbus +mpc.areas = [ + 1 101; %area 1 IEEE 57 Bus System + 2 201; %area 2 IEEE 14 Bus System + 3 1; %DC area 1 + 4 4; %DC area 2 + ]; + +%% bus data +% bus_i type Pd Qd Gs Bs area Vm Va base zone Vmax Vmin + +mpc.bus = [ + %Area 1 (IEEE 57 Bus System) + 101 3 55 17 0 0 1 1 0 0 1 1.06 0.94; + 102 2 3 88 0 0 1 1 0 0 1 1.06 0.94; + 103 2 41 21 0 0 1 1 0 0 1 1.06 0.94; + 104 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 105 1 13 4 0 0 1 1 0 0 1 1.06 0.94; + 106 2 75 2 0 0 1 1 0 0 1 1.06 0.94; + 107 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 108 2 150 22 0 0 1 1 0 0 1 1.06 0.94; + 109 2 121 26 0 0 1 1 0 0 1 1.06 0.94; + 110 1 5 2 0 0 1 1 0 0 1 1.06 0.94; + 111 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 112 2 377 24 0 0 1 1 0 0 1 1.06 0.94; + 113 1 18 2.3 0 0 1 1 0 0 1 1.06 0.94; + 114 1 10.5 5.3 0 0 1 1 0 0 1 1.06 0.94; + 115 1 22 5 0 0 1 1 0 0 1 1.06 0.94; + 116 1 43 3 0 0 1 1 0 0 1 1.06 0.94; + 117 1 42 8 0 0 1 1 0 0 1 1.06 0.94; + 118 1 27.2 9.8 0 10 1 1 0 0 1 1.06 0.94; + 119 1 3.3 0.6 0 0 1 1 0 0 1 1.06 0.94; + 120 1 2.3 1 0 0 1 1 0 0 1 1.06 0.94; + 121 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 122 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 123 1 6.3 2.1 0 0 1 1 0 0 1 1.06 0.94; + 124 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 125 1 6.3 3.2 0 5.9 1 1 0 0 1 1.06 0.94; + 126 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 127 1 9.3 0.5 0 0 1 1 0 0 1 1.06 0.94; + 128 1 4.6 2.3 0 0 1 1 0 0 1 1.06 0.94; + 129 1 17 2.6 0 0 1 1 0 0 1 1.06 0.94; + 130 1 3.6 1.8 0 0 1 1 0 0 1 1.06 0.94; + 131 1 5.8 2.9 0 0 1 1 0 0 1 1.06 0.94; + 132 1 1.6 0.8 0 0 1 1 0 0 1 1.06 0.94; + 133 1 3.8 1.9 0 0 1 1 0 0 1 1.06 0.94; + 134 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 135 1 6 3 0 0 1 1 0 0 1 1.06 0.94; + 136 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 137 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 138 1 14 7 0 0 1 1 0 0 1 1.06 0.94; + 139 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 140 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 141 1 6.3 3 0 0 1 1 0 0 1 1.06 0.94; + 142 1 7.1 4.4 0 0 1 1 0 0 1 1.06 0.94; + 143 1 2 1 0 0 1 1 0 0 1 1.06 0.94; + 144 1 12 1.8 0 0 1 1 0 0 1 1.06 0.94; + 145 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 146 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 147 1 29.7 11.6 0 0 1 1 0 0 1 1.06 0.94; + 148 1 0 0 0 0 1 1 0 0 1 1.06 0.94; + 149 1 18 8.5 0 0 1 1 0 0 1 1.06 0.94; + 150 1 21 10.5 0 0 1 1 0 0 1 1.06 0.94; + 151 1 18 5.3 0 0 1 1 0 0 1 1.06 0.94; + 152 1 4.9 2.2 0 0 1 1 0 0 1 1.06 0.94; + 153 1 20 10 0 6.3 1 1 0 0 1 1.06 0.94; + 154 1 4.1 1.4 0 0 1 1 0 0 1 1.06 0.94; + 155 1 6.8 3.4 0 0 1 1 0 0 1 1.06 0.94; + 156 1 7.6 2.2 0 0 1 1 0 0 1 1.06 0.94; + 157 1 6.7 2 0 0 1 1 0 0 1 1.06 0.94; + %Area 2 (IEEE 14 Bus System) + 201 2 0 0 0 0 2 1 0 0 1 1.06 0.94; + 202 2 21.7 12.7 0 0 2 1 0 0 1 1.06 0.94; + 203 2 94.2 19 0 0 2 1 0 0 1 1.06 0.94; + 204 1 47.8 -3.9 0 0 2 1 0 0 1 1.06 0.94; + 205 1 7.6 1.6 0 0 2 1 0 0 1 1.06 0.94; + 206 2 11.2 7.5 0 0 2 1 0 0 1 1.06 0.94; + 207 1 0 0 0 0 2 1 0 0 1 1.06 0.94; + 208 2 0 0 0 0 2 1 0 0 1 1.06 0.94; + 209 1 29.5 16.6 0 19 2 1 0 0 1 1.06 0.94; + 210 1 9 5.8 0 0 2 1 0 0 1 1.06 0.94; + 211 1 3.5 1.8 0 0 2 1 0 0 1 1.06 0.94; + 212 1 6.1 1.6 0 0 2 1 0 0 1 1.06 0.94; + 213 1 13.5 5.8 0 0 2 1 0 0 1 1.06 0.94; + 214 1 14.9 5 0 0 2 1 0 0 1 1.06 0.94; + %Area 3 (DC Area 1) + 1 1 0 0 0 0.0 3 1 0 100.0 1 1.06 0.94; %DC A3 + 2 1 0 0 0 0.0 3 1 0 100.0 1 1.06 0.94; %DC A3 + 3 1 0 0 0 0.0 3 1 0 100.0 1 1.06 0.94; %DC A3 + %Area 4 (DC Area 2) + 4 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 5 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 6 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 7 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 8 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 9 1 -20 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 + 10 1 0 0 0 0.0 4 1 0 200.0 1 1.06 0.94; %DC A4 +]; +%% generator data +% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin Pc1 Pc2 Qc1min Qc1max Qc2min Qc2max ramp_agc ramp_10 ramp_30 ramp_q apf +mpc.gen = [ + %IEEE 57 Bus System + 101 128.9 -16.1 200 -140 1.04 100 1 575.88 0 0 0 0 0 0 0 0 0 0 0 0; + 102 0 -0.8 50 -17 1.01 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 103 40 -1 60 -10 0.985 100 1 140 0 0 0 0 0 0 0 0 0 0 0 0; + 106 0 0.8 25 -8 0.98 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 108 450 62.1 200 -140 1.005 100 1 550 0 0 0 0 0 0 0 0 0 0 0 0; + 109 0 2.2 9 -3 0.98 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 112 310 128.5 155 -150 1.015 100 1 410 0 0 0 0 0 0 0 0 0 0 0 0; + %IEEE 14 Bus System + 201 232.4 -16.9 10 0 1.06 100 1 332.4 0 0 0 0 0 0 0 0 0 0 0 0; + 202 40 42.4 50 -40 1.045 100 1 140 0 0 0 0 0 0 0 0 0 0 0 0; + 203 0 23.4 40 0 1.01 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 206 0 12.2 24 -6 1.07 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + 208 0 17.4 24 -6 1.09 100 1 100 0 0 0 0 0 0 0 0 0 0 0 0; + %PV Generator is added as a load in bus 9 + ]; +%% branch data +% fbus tbus r x b rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 KDP ---------------------- +mpc.branch = [ +%Area 1 IEEE 57 Bus System + 101 102 0.0083 0.028 0.129 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 102 103 0.0298 0.085 0.0818 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 104 0.0112 0.0366 0.038 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 105 0.0625 0.132 0.0258 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 106 0.043 0.148 0.0348 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 107 0.02 0.102 0.0276 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 106 108 0.0339 0.173 0.047 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 108 109 0.0099 0.0505 0.0548 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 110 0.0369 0.1679 0.044 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 111 0.0258 0.0848 0.0218 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 112 0.0648 0.295 0.0772 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 113 0.0481 0.158 0.0406 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 113 114 0.0132 0.0434 0.011 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 113 115 0.0269 0.0869 0.023 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 115 0.0178 0.091 0.0988 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 116 0.0454 0.206 0.0546 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 101 117 0.0238 0.108 0.0286 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 103 115 0.0162 0.053 0.0544 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 118 0 0.555 0 000 0 0 0.97 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 104 118 0 0.43 0 000 0 0 0.978 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 105 106 0.0302 0.0641 0.0124 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 107 108 0.0139 0.0712 0.0194 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 112 0.0277 0.1262 0.0328 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 111 113 0.0223 0.0732 0.0188 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 113 0.0178 0.058 0.0604 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 116 0.018 0.0813 0.0216 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 112 117 0.0397 0.179 0.0476 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 115 0.0171 0.0547 0.0148 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 118 119 0.461 0.685 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 119 120 0.283 0.434 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 120 0 0.7767 0 000 0 0 1.043 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 121 122 0.0736 0.117 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 123 0.0099 0.0152 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 123 124 0.166 0.256 0.0084 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0 1.182 0 000 0 0 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 125 0 1.23 0 000 0 0 1 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 124 126 0 0.0473 0 000 0 0 1.043 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 126 127 0.165 0.254 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 127 128 0.0618 0.0954 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 128 129 0.0418 0.0587 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 107 129 0 0.0648 0 000 0 0 0.967 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 125 130 0.135 0.202 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 130 131 0.326 0.497 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 131 132 0.507 0.755 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 132 133 0.0392 0.036 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 134 132 0 0.953 0 000 0 0 0.975 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 134 135 0.052 0.078 0.0032 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 135 136 0.043 0.0537 0.0016 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 136 137 0.029 0.0366 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 137 138 0.0651 0.1009 0.002 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 137 139 0.0239 0.0379 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 136 140 0.03 0.0466 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 122 138 0.0192 0.0295 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 111 141 0 0.749 0 000 0 0 0.955 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 141 142 0.207 0.352 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 141 143 0 0.412 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 138 144 0.0289 0.0585 0.002 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 115 145 0 0.1042 0 000 0 0 0.955 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 114 146 0 0.0735 0 000 0 0 0.9 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 146 147 0.023 0.068 0.0032 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 147 148 0.0182 0.0233 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 148 149 0.0834 0.129 0.0048 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 149 150 0.0801 0.128 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 150 151 0.1386 0.22 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 110 151 0 0.0712 0 000 0 0 0.93 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 113 149 0 0.191 0 000 0 0 0.895 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 129 152 0.1442 0.187 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 152 153 0.0762 0.0984 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 153 154 0.1878 0.232 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 154 155 0.1732 0.2265 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 111 143 0 0.153 0 000 0 0 0.958 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 144 145 0.0624 0.1242 0.004 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 140 156 0 1.195 0 000 0 0 0.958 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 156 141 0.553 0.549 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 156 142 0.2125 0.354 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 139 157 0 1.355 0 000 0 0 0.98 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 157 156 0.174 0.26 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 138 149 0.115 0.177 0.003 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 138 148 0.0312 0.0482 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 109 155 0 0.1205 0 000 0 0 0.94 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 2 IEEE 14 Bus System rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + 201 202 0.01938 0.05917 0.0528 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 201 205 0.05403 0.22304 0.0492 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 202 203 0.04699 0.19797 0.0438 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 202 204 0.05811 0.17632 0.034 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 202 205 0.05695 0.17388 0.0346 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 203 204 0.06701 0.17103 0.0128 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 204 205 0.01335 0.04211 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 204 207 0 0.20912 0 000 0 0 0.978 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 204 209 0 0.55618 0 000 0 0 0.969 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 205 206 0 0.25202 0 000 0 0 0.932 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 206 211 0.09498 0.1989 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 206 212 0.12291 0.25581 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 206 213 0.06615 0.13027 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 207 208 0 0.17615 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 207 209 0 0.11001 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 209 210 0.03181 0.0845 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 209 214 0.12711 0.27038 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 210 211 0.08205 0.19207 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 212 213 0.22092 0.19988 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 213 214 0.17093 0.34802 0 000 0 0 0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; +%Area 3 (DC Area 1) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A bEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + % DC Grid + 1 2 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 2 3 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 3 1 0.020 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + % DC Converters rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + 1 212 0.0510 0.033 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 1.05 0 0 0 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv1 + 2 150 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv2 + 3 151 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv3 + % DC Transformers +%Area 4 (DC Area 2) rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + % DC Grid + 4 9 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 4 10 0.005 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 5 6 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 5 7 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 6 10 0.010 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 7 10 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + 8 9 0.015 0 0 000 500 500 0.0 0.0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -360 360 0 0 0 0 0; + % DC Converters rateA rateB rateC ratio/ma angle status angmin angmax PF QF PT QT MU_SF MU_ST MU_ANGMIN MU_ANGMAX VF_SET VT_SET MA_MAX MA_MIN CONV_A BEQ K2 BEQ_MIN BEQ_MAX SH_MIN SH_MAX GSW ALPHA1 ALPHA2 ALPHA3 + 4 101 0.0510 0.033 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 1.01 0 0 0 2 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv4 + 5 202 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv5 + 6 205 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv6 + 7 115 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv7 + 8 117 0.0765 0.050 0 000 500 500 1.0 0 1 -360 360 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 -0.5 0.5 -360 360 0 0.0001 0.005 0.05 0;%Conv8 + % DC Transformers + ]; +%%----- OPF Data -----%% +%% generator cost data +% 1 startup shutdown n x1 y1 ... xn yn +% 2 startup shutdown n c(n-1) ... c0 +mpc.gencost = [ + %Pg cost + 2 0 0 3 0.077579519 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.25 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.0222222222 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.0322580645 20 0; + 2 0 0 3 0.0430292599 20 0; + 2 0 0 3 0.25 20 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.01 40 0; + 2 0 0 3 0.01 40 0; + %Qg cost + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; + 2 0 0 3 0.000 0 0; +]; diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index 6c3be589c..067596cf6 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -350,3 +350,20 @@ def test_power_flow_control_with_pst_pt() -> None: # check that the bus voltage module is the the transformer voltage set point assert np.isclose(results.St[7].real, grid.transformers2w[0].Pset, atol=options.tolerance) + + +def test_fubm(): + """ + + :return: + """ + fname = os.path.join('data', 'grids', 'fubm_caseHVDC_vt.m') + grid = gce.open_file(fname) + + opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=0) + driver = gce.PowerFlowDriver(grid=grid, options=opt) + driver.run() + results = driver.results + vm = np.abs(results.voltage) + expected_vm = np.array([1.1000, 1.0960, 1.0975, 1.1040, 1.1119, 1.1200]) + assert np.allclose(vm, expected_vm, rtol=1e-4) diff --git a/src/trunk/acdc_pf/fubm_example.py b/src/trunk/acdc_pf/fubm_example.py index e52d663d1..b1949b18a 100644 --- a/src/trunk/acdc_pf/fubm_example.py +++ b/src/trunk/acdc_pf/fubm_example.py @@ -16,4 +16,5 @@ print() print(results.get_branch_df()) print("Error:", results.error) +print("Vm:", np.abs(results.voltage)) driver.logger.print() From e5fd7abce8c64d502a7a034054b9d1b266c424d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Pe=C3=B1ate=20Vera?= Date: Mon, 19 Aug 2024 14:54:28 +0100 Subject: [PATCH 158/218] Created test for the bus derivatives --- .idea/workspace.xml | 1451 +++++++---------- .../NumericalMethods/common_functions.py | 14 + .../pf_advanced_formulation.py | 16 +- .../Topology/admittance_matrices.py | 3 + src/tests/test_derivatives.py | 42 +- src/trunk/acdc_pf/fubm_example.py | 2 +- 6 files changed, 656 insertions(+), 872 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ba1d0405f..587b74d9a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,18 +28,12 @@ - + - + - - @@ -116,7 +115,7 @@ - { "customColor": "", @@ -137,37 +136,56 @@ "Git.Branch.Popup.ShowAllRemotes": "true", "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Debug", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", "Python tests.pytest in tests.executor": "Run", "Python.AnalysisDialogue.executor": "Run", "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", "Python.cgmes_rdfs_graph.executor": "Run", "Python.fubm_example.executor": "Run", "Python.new_circuit_objects.executor": "Run", - "Python.node_widget.executor": "Run", - "Python.power_flow_research_sinj.executor": "Debug", "Python.pymoo_example.executor": "Debug", - "Python.run.executor": "Run", - "Python.update_gui_file (1).executor": "Run", + "Python.raw_imp_exp_test.executor": "Run", "Python.update_gui_file.executor": "Run", - "Python.wind_power_wizzard.executor": "Run", + "Python.upload_to_pypi.executor": "Run", "RunOnceActivity.OpenProjectViewOnStart": "true", "RunOnceActivity.ShowReadmeOnStart": "true", "WebServerToolWindowFactoryState": "false", "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "C:/Work/git_local/GridCal/doc", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", "node.js.detected.package.eslint": "true", "node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)", "nodejs_package_manager_path": "npm", "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", "vue.rearranger.settings.migration": "true" } @@ -179,21 +197,21 @@ - - - - + + + + + + + + - - - - - + - - + + - - - + + + - - + + - - - + + + - @@ -1337,35 +1350,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1656059954202 @@ -1710,7 +1781,7 @@ - @@ -1737,39 +1808,51 @@ - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1844,6 +1927,11 @@ 55 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - + + + + + \ No newline at end of file diff --git a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py index 9dd11a177..7ab18c83d 100644 --- a/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py +++ b/src/GridCalEngine/Simulations/Derivatives/csc_derivatives.py @@ -1161,7 +1161,7 @@ def derivatives_Beq_csc_numba(nbus, nbr, iBeqx, F, V, tap_module, kconv): return dSbus_dBeq, dSf_dBeq, dSt_dBeq -# @njit() +@njit() def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ @@ -1214,7 +1214,7 @@ def dSbus_dbeq_csc(nbus, bus_indices, beq_indices, F: IntVec, kconv: Vec, tap_mo return mat -# @njit() +@njit() def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module: Vec, V: CxVec) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) @@ -1260,7 +1260,7 @@ def dSf_dbeq_csc(nbr, sf_indices, beq_indices, F: IntVec, kconv: Vec, tap_module return mat -# @njit() +@njit() def dSt_dbeq_csc(sf_indices, beq_indices) -> CxCSC: """ This function computes the derivatives of Sbus, Sf and St w.r.t. the tap angle (tau) diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 2bf679c8b..59722d018 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -36,7 +36,7 @@ from GridCalEngine.basic_structures import Vec, IntVec, CxVec -# @njit() +@njit() def adv_jacobian(nbus: int, nbr: int, idx_dva: IntVec, @@ -63,7 +63,6 @@ def adv_jacobian(nbus: int, Ybus_x: CxVec, Ybus_p: IntVec, Ybus_i: IntVec, - Ybus, yff: CxVec, yft: CxVec, ytf: CxVec, @@ -103,13 +102,13 @@ def adv_jacobian(nbus: int, :return: """ # bus-bus derivatives (always needed) - # dS_dVm_x, dS_dVa_x = deriv.dSbus_dV_numba_sparse_csc(Ybus_x, Ybus_p, Ybus_i, V, Vm) - # dS_dVm = CxCSC(nbus, nbus, len(dS_dVm_x), False).set(Ybus_i, Ybus_p, dS_dVm_x) - # dS_dVa = CxCSC(nbus, nbus, len(dS_dVa_x), False).set(Ybus_i, Ybus_p, dS_dVa_x) + dS_dVm_x, dS_dVa_x = deriv.dSbus_dV_numba_sparse_csc(Ybus_x, Ybus_p, Ybus_i, V, Vm) + dS_dVm = CxCSC(nbus, nbus, len(dS_dVm_x), False).set(Ybus_i, Ybus_p, dS_dVm_x) + dS_dVa = CxCSC(nbus, nbus, len(dS_dVa_x), False).set(Ybus_i, Ybus_p, dS_dVa_x) - dSbus_dVa, dSbus_dVm = mderiv.dSbus_dV_matpower(Ybus, V) - dS_dVa = scipy_to_cxmat(dSbus_dVa) - dS_dVm = scipy_to_cxmat(dSbus_dVm) + # dSbus_dVa, dSbus_dVm = mderiv.dSbus_dV_matpower(Ybus, V) + # dS_dVa = scipy_to_cxmat(dSbus_dVa) + # dS_dVm = scipy_to_cxmat(dSbus_dVm) dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dva) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dva) @@ -554,7 +553,6 @@ def Jacobian(self, autodiff: bool = False) -> CSC: Ybus_x=self.adm.Ybus.data, Ybus_p=self.adm.Ybus.indptr, Ybus_i=self.adm.Ybus.indices, - Ybus=self.adm.Ybus, yff=self.adm.yff, yft=self.adm.yft, ytf=self.adm.ytf, diff --git a/src/GridCalEngine/Topology/admittance_matrices.py b/src/GridCalEngine/Topology/admittance_matrices.py index c46d3fe86..cd138a1af 100644 --- a/src/GridCalEngine/Topology/admittance_matrices.py +++ b/src/GridCalEngine/Topology/admittance_matrices.py @@ -55,15 +55,15 @@ def __init__(self, :param Yshunt_bus: array of shunt admittances per bus :param Gsw: Switch losses in the converters """ - self.Ybus = Ybus + self.Ybus = Ybus if Ybus.format == 'csc' else Ybus.tocsc() - self.Yf = Yf + self.Yf = Yf if Yf.format == 'csc' else Yf.tocsc() - self.Yt = Yt + self.Yt = Yt if Yt.format == 'csc' else Yt.tocsc() - self.Cf = Cf + self.Cf = Cf if Cf.format == 'csc' else Cf.tocsc() - self.Ct = Ct + self.Ct = Ct if Ct.format == 'csc' else Ct.tocsc() self.yff = yff @@ -263,7 +263,8 @@ def compute_admittances(R: Vec, if verbose > 0: print('Ybus:', Ybus.toarray()) - return AdmittanceMatrices(Ybus, Yf, Yt, Cf, Ct, Yff, Yft, Ytf, Ytt, Yshunt_bus, Gsw, Beq) + return AdmittanceMatrices(Ybus.tocsc(), Yf.tocsc(), Yt.tocsc(), Cf.tocsc(), Ct.tocsc(), + Yff, Yft, Ytf, Ytt, Yshunt_bus, Gsw, Beq) def compute_passive_admittances(R: Vec, @@ -358,7 +359,7 @@ def compute_passive_admittances(R: Vec, Yt = sp.diags(ytf) * Cf + sp.diags(ytt) * Ct Ybus = Cf.T * Yf + Ct.T * Yt + sp.diags(Yshunt_bus) - return AdmittanceMatrices(Ybus, Yf, Yt, Cf, Ct, yff, yft, ytf, ytt, Yshunt_bus, np.zeros_like(R)) + return AdmittanceMatrices(Ybus, Yf, Yt, Cf, Ct, yff, yft, ytf, ytt, Yshunt_bus, np.zeros_like(R), np.zeros_like(R)) def compute_tap_control_admittances_injectins( From cf8b80fe101ba5bad20d641b4baff094a04275c6 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 19 Aug 2024 23:07:56 +0100 Subject: [PATCH 160/218] passing al tests --- .idea/workspace.xml | 71 +++++++++---------- .../DataStructures/numerical_circuit.py | 6 +- .../IO/matpower/matpower_parser.py | 3 + .../NumericalMethods/common_functions.py | 2 +- .../pf_advanced_formulation.py | 8 +-- .../NumericalMethods/pf_basic_formulation.py | 20 ++++-- 6 files changed, 58 insertions(+), 52 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3af6577a5..f87bb0a77 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,13 @@ +<<<<<<< HEAD @@ -35,6 +36,12 @@ +======= + + + + +>>>>>>> 12bd48dab (Capex class set up Python version) +<<<<<<< HEAD +======= + + +>>>>>>> 12bd48dab (Capex class set up Python version) @@ -1779,7 +1796,11 @@ @@ -1825,6 +1846,7 @@ +<<<<<<< HEAD @@ -1851,6 +1873,34 @@ diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index 284e1d7fe..f549e44dc 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -41,7 +41,6 @@ def add_investments_to_grid(grid): for i, line in enumerate(lines_list): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) - # templ_group = dev.TemplateGroup(name='Tg' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] grid.add_investment(investment) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 05c64c8e3..bc15756f4 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1587,7 +1587,6 @@ def add_selected_to_investment(self) -> None: for i in self.investment_checks_diag.selected_indices: elm = selected[i] if elm.type_name == 'Transformer': - print('trafo') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, @@ -1597,7 +1596,6 @@ def add_selected_to_investment(self) -> None: template=list(elm.possible_transformer_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Line': - print('seq line') if elm.type_name == 'Sequence line': con = dev.Investment(device_idtag=elm.idtag, code=elm.code, @@ -1608,7 +1606,6 @@ def add_selected_to_investment(self) -> None: template=list(elm.possible_sequence_line_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Underground line': - print('und line') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, @@ -1618,7 +1615,6 @@ def add_selected_to_investment(self) -> None: template=list(elm.possible_underground_line_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Tower': - print('tower') con = dev.Investment(device_idtag=elm.idtag, code=elm.code, name=elm.type_name + ": " + elm.name, diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py index fbfd8adef..4652e6ed0 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py @@ -33,7 +33,6 @@ def __init__(self, obj_func, n_obj): :param obj_func: :param n_obj: """ - # These will need to be inputted automatically from the csv file on GridCal vars = { "react1_bi": Binary(), "react2_bi": Binary(), @@ -113,7 +112,7 @@ def NSGA_2(obj_func, verbose=True, save_history=False) - # Shall we need this? + # Do they want opex or capex to have more weight? # weights = np.array([0.5, 0.5]) # decomp = ASF() # I = decomp(res.F, weights).argmin() From 11be3e090d5074b1cab9202510a882bd18ed7cd7 Mon Sep 17 00:00:00 2001 From: cristinafray Date: Fri, 9 Aug 2024 13:58:46 +0200 Subject: [PATCH 165/218] Fix wire catalogue and temp change to nsga2 --- .idea/workspace.xml | 635 +++++++----------- src/GridCalEngine/IO/gridcal/catalogue.py | 4 +- .../Methods/mixed_variable_NSGA_2.py | 26 +- 3 files changed, 260 insertions(+), 405 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 45bfb4ff8..e286c4dde 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,20 +28,8 @@ - - + + - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", + "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", + "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", + "Python tests.pytest for test_sparse2.test_expand.executor": "Run", + "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", + "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", + "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_derivatives.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_sparse2.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.associations_templates.executor": "Debug", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.multi_select.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.tallr_table_headers.executor": "Debug", + "Python.test_derivatives.executor": "Run", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "204__investments__evaluation", + "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} - + - + + - @@ -699,8 +698,7 @@ - @@ -1787,7 +1785,7 @@ @@ -1833,6 +1831,9 @@ + + + @@ -1855,10 +1856,7 @@ - - - - From 48627c014dd55d418142c417ff9c659d0f19b866 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 14 Aug 2024 21:11:34 -0100 Subject: [PATCH 167/218] Fix changes previous to pack/unpack --- examples/associations_templates.py | 17 ------ examples/try_template_loading.py | 52 +++++++++++++++++++ .../Devices/Aggregation/investment.py | 12 +++-- src/GridCalEngine/Devices/assets.py | 2 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 12 +++-- .../Methods/mixed_variable_NSGA_2.py | 1 - 6 files changed, 70 insertions(+), 26 deletions(-) delete mode 100644 examples/associations_templates.py create mode 100644 examples/try_template_loading.py diff --git a/examples/associations_templates.py b/examples/associations_templates.py deleted file mode 100644 index b3924cc57..000000000 --- a/examples/associations_templates.py +++ /dev/null @@ -1,17 +0,0 @@ -import os -import numpy as np -import GridCalEngine.api as gce - -# fname = os.path.join('C:/Users/J/Downloads/simple1.gridcal') -# main_circuit = gce.open_file(fname) -folder = os.path.join('..', 'Grids_and_profiles', 'grids') -fname = os.path.join(folder, 'test.gridcal') -main_circuit = gce.open_file(fname) - - -results = gce.power_flow(main_circuit) - -# print(main_circuit.name) -# print('Converged:', results.converged, 'error:', results.error) -# print(results.get_bus_df()) -# print(results.get_branch_df()) diff --git a/examples/try_template_loading.py b/examples/try_template_loading.py new file mode 100644 index 000000000..09dfcd826 --- /dev/null +++ b/examples/try_template_loading.py @@ -0,0 +1,52 @@ +import os +import GridCalEngine.api as gce +import GridCalEngine.Devices as dev +import GridCal.templates as templs + + +def open_dummy_grid(): + fname = os.path.join('C:/Users/J/Downloads/temp_tr1.gridcal') + main_circuit = gce.open_file(fname) + results = gce.power_flow(main_circuit) + print(results.voltage) + return main_circuit + + +def process_dummy_grid(): + fname = os.path.join('C:/Users/J/Downloads/temp_tr1.gridcal') + main_circuit = gce.open_file(fname) + results = gce.power_flow(main_circuit) + print(results.voltage) + + my_tr = main_circuit.transformers2w[0] + + inv_group = dev.InvestmentsGroup(name='Ig0') + investment1 = dev.Investment(name='Investment 1x', group=inv_group, template=my_tr.possible_transformer_types) + main_circuit.add_investment(investment1) + main_circuit.add_investments_group(inv_group) + gce.save_file(main_circuit, 'C:/Users/J/Downloads/temp_tr1_invested.gridcal') + return None + + +def create_dummy_grid(): + grid = gce.MultiCircuit() + + bus1 = gce.Bus(name='Bus1', Vnom=20) + bus2 = gce.Bus(name='Bus2', Vnom=20) + grid.add_bus(bus1) + grid.add_bus(bus2) + tr1 = gce.Transformer2W(bus_from=bus1, bus_to=bus2) + grid.add_transformer2w(tr1) + + grid.transformer_types = templs.get_transformer_catalogue() + grid.underground_cable_types = templs.get_cables_catalogue() + grid.circuit_wire_types = templs.get_wires_catalogue() + grid.sequence_line_types = templs.get_sequence_lines_catalogue() + + return grid + + +if __name__ == "__main__": + # open_dummy_grid() + pp = process_dummy_grid() + # gg = create_dummy_grid() diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 6264da5ea..7c8982fe1 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,6 +1,6 @@ -from typing import Union, Any +from typing import Union, Any, List -from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType +from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup @@ -21,7 +21,7 @@ def __init__(self, template: DeviceType.TransformerTypeDevice = None, comment: str = ""): """ - Investment + Investment object formed by CAPEX, OPEX, status (on/off) and possible template :param idtag: String. Element unique identifier :param name: String. Contingency name :param code: String. Contingency code name @@ -29,6 +29,7 @@ def __init__(self, :param OPEX: Float. Operating expenditures :param status: If true the investment activates when applied, otherwise is deactivated :param group: InvestmentGroup. Investment group + :param template: DeviceType. Possible templates of each component :param comment: Comment """ @@ -54,7 +55,10 @@ def __init__(self, definition='Operation expenditures. Maintenance costs among other recurrent costs.') self.register(key='status', units='', tpe=bool, definition='If true the investment activates when applied, otherwise is deactivated.') - self.register(key='template', units='', tpe=template, definition='Possible templates of each component') + # self.register(key='template', units='', tpe=SubObjectType.ObjectsList, + # definition='Possible templates of each component') + self.register(key='template', units='', tpe=DeviceType.TransformerTypeDevice, + definition='Possible templates of each component') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') @property diff --git a/src/GridCalEngine/Devices/assets.py b/src/GridCalEngine/Devices/assets.py index 86860d326..eb4447f49 100644 --- a/src/GridCalEngine/Devices/assets.py +++ b/src/GridCalEngine/Devices/assets.py @@ -3317,7 +3317,7 @@ def delete_investment_groups(self, obj: dev.InvestmentsGroup): for invst in to_del: self.delete_investment(invst) - def get_investmenst_by_groups(self) -> List[Tuple[dev.InvestmentsGroup, List[dev.Investment]]]: + def get_investments_by_groups(self) -> List[Tuple[dev.InvestmentsGroup, List[dev.Investment]]]: """ Get a dictionary of investments goups and their :return: list of investment groups and their list of associated investments diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 03f969081..29d36061b 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -735,7 +735,7 @@ def parse_object_type_from_dataframe(main_df: pd.DataFrame, could_not_fix_it = True if could_not_fix_it: - logger.add_error("Could not locate refference", + logger.add_error("Could not locate reference", device=row.get('idtag', 'not provided'), device_class=template_elm.device_type.value, device_property=gc_prop.name, @@ -1039,7 +1039,7 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, if isinstance(gc_prop.tpe, DeviceType): # this is a hyperlink to another object - # we must look for the refference in elements_dict + # we must look for the reference in elements_dict collection = elements_dict_by_type.get(gc_prop.tpe, None) if collection is not None: @@ -1106,6 +1106,12 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, elm_name=elm.name ) + elif gc_prop.tpe == SubObjectType.ObjectsList: + prop_name = elm.get_snapshot_value(gc_prop) + print('xkk') + if prop_name == 'Investment': + print('xkk') + else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") @@ -1374,7 +1380,7 @@ def parse_gridcal_data(data: Dict[str, Union[str, float, pd.DataFrame, Dict[str, circuit.set_snapshot_time_unix(val=snapshot_unix_time) else: - logger.add_error(msg=f'The file must have time data regardless of the profiles existance') + logger.add_error(msg=f'The file must have time data regardless of the profiles existence') circuit.time_profile = None # for each element type... diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py index ecf1a1de0..24a786f04 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py @@ -23,7 +23,6 @@ from pymoo.core.problem import ElementwiseProblem from pymoo.core.variable import Real, Integer, Choice, Binary -from GridCalEngine.Utils.acciona_capex import CapexAcciona from GridCalEngine.Devices.Aggregation.investment import Investment From b72ce47891c22b975577d60d8785579a806fc90c Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 14 Aug 2024 22:21:02 -0100 Subject: [PATCH 168/218] Still need to unpack correctly --- examples/try_investment_optimization.py | 2 +- examples/try_template_loading.py | 5 +++-- .../Gui/Main/SubClasses/Model/diagrams.py | 8 ++++---- .../Devices/Aggregation/investment.py | 20 ++++++++++++------- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index f549e44dc..302193fbe 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -42,7 +42,7 @@ def add_investments_to_grid(grid): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] + group=inv_group, template_src=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/examples/try_template_loading.py b/examples/try_template_loading.py index 09dfcd826..216648b1e 100644 --- a/examples/try_template_loading.py +++ b/examples/try_template_loading.py @@ -5,7 +5,8 @@ def open_dummy_grid(): - fname = os.path.join('C:/Users/J/Downloads/temp_tr1.gridcal') + # fname = os.path.join('C:/Users/J/Downloads/temp_tr1.gridcal') + fname = os.path.join('C:/Users/J/Downloads/temp_tr1_invested.gridcal') main_circuit = gce.open_file(fname) results = gce.power_flow(main_circuit) print(results.voltage) @@ -21,7 +22,7 @@ def process_dummy_grid(): my_tr = main_circuit.transformers2w[0] inv_group = dev.InvestmentsGroup(name='Ig0') - investment1 = dev.Investment(name='Investment 1x', group=inv_group, template=my_tr.possible_transformer_types) + investment1 = dev.Investment(name='Investment 1x', group=inv_group, template_src=my_tr) main_circuit.add_investment(investment1) main_circuit.add_investments_group(inv_group) gce.save_file(main_circuit, 'C:/Users/J/Downloads/temp_tr1_invested.gridcal') diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index bc15756f4..c09ab2d5e 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1593,7 +1593,7 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=list(elm.possible_transformer_types.data)) + template_src=list(elm.possible_transformer_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Line': if elm.type_name == 'Sequence line': @@ -1603,7 +1603,7 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=list(elm.possible_sequence_line_types.data)) + template_src=list(elm.possible_sequence_line_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Underground line': con = dev.Investment(device_idtag=elm.idtag, @@ -1612,7 +1612,7 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=list(elm.possible_underground_line_types.data)) + template_src=list(elm.possible_underground_line_types.data)) self.circuit.add_investment(con) elif elm.type_name == 'Tower': con = dev.Investment(device_idtag=elm.idtag, @@ -1621,7 +1621,7 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=list(elm.possible_tower_types.data)) + template_src=list(elm.possible_tower_types.data)) self.circuit.add_investment(con) else: con = dev.Investment(device_idtag=elm.idtag, diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 7c8982fe1..53666cdb2 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -18,7 +18,7 @@ def __init__(self, OPEX=0.0, status: bool = True, group: InvestmentsGroup = None, - template: DeviceType.TransformerTypeDevice = None, + template_src: Union[DeviceType.Transformer2WDevice, DeviceType.LineDevice] = None, comment: str = ""): """ Investment object formed by CAPEX, OPEX, status (on/off) and possible template @@ -29,7 +29,7 @@ def __init__(self, :param OPEX: Float. Operating expenditures :param status: If true the investment activates when applied, otherwise is deactivated :param group: InvestmentGroup. Investment group - :param template: DeviceType. Possible templates of each component + :param template_src: DeviceType. Possible templates of each component :param comment: Comment """ @@ -46,7 +46,6 @@ def __init__(self, self.OPEX = OPEX self._group: InvestmentsGroup = group self.status: bool = status - self.template = template self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, @@ -55,12 +54,19 @@ def __init__(self, definition='Operation expenditures. Maintenance costs among other recurrent costs.') self.register(key='status', units='', tpe=bool, definition='If true the investment activates when applied, otherwise is deactivated.') - # self.register(key='template', units='', tpe=SubObjectType.ObjectsList, - # definition='Possible templates of each component') - self.register(key='template', units='', tpe=DeviceType.TransformerTypeDevice, - definition='Possible templates of each component') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') + if template_src is not None: + if template_src.device_type == DeviceType.Transformer2WDevice: + self.template = template_src.possible_transformer_types + else: + raise TypeError(f'Templates for {template_src.type} not recognized') + else: + self.template = None + + self.register(key='template', units='', tpe=SubObjectType.ObjectsList, + definition='Possible templates of each component') + @property def group(self) -> InvestmentsGroup: """ From 060b29eee3d10149307049cb61f8916dce34b38a Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Thu, 15 Aug 2024 19:34:45 -0100 Subject: [PATCH 169/218] Check the investment template type inside --- .idea/workspace.xml | 179 ++++++++++-------- .../Gui/Main/SubClasses/Model/diagrams.py | 47 +---- .../Devices/Aggregation/investment.py | 10 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 27 ++- 4 files changed, 144 insertions(+), 119 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index cd74d2e8d..f27448765 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,11 @@ - + + + + @@ -1835,7 +1838,6 @@ - @@ -1860,7 +1862,8 @@ - @@ -2330,49 +2333,44 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1175 + 1178 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1189 + 1192 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1203 + 1206 file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1132 + 1135 file://$PROJECT_DIR$/examples/try_template_loading.py - 12 + 13 - - file://$PROJECT_DIR$/examples/try_template_loading.py - 28 - - - file://$PROJECT_DIR$/examples/try_template_loading.py - 27 - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1064 + 1067 file://$PROJECT_DIR$/examples/try_template_loading.py - 11 + 12 + + file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py + 1060 + diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index 302193fbe..f549e44dc 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -42,7 +42,7 @@ def add_investments_to_grid(grid): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group, template_src=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] + group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/examples/try_template_loading.py b/examples/try_template_loading.py index 216648b1e..177630a48 100644 --- a/examples/try_template_loading.py +++ b/examples/try_template_loading.py @@ -6,7 +6,8 @@ def open_dummy_grid(): # fname = os.path.join('C:/Users/J/Downloads/temp_tr1.gridcal') - fname = os.path.join('C:/Users/J/Downloads/temp_tr1_invested.gridcal') + # fname = os.path.join('C:/Users/J/Downloads/temp_tr1_invested.gridcal') + fname = os.path.join('C:/Users/J/Downloads/temp_tr2.gridcal') main_circuit = gce.open_file(fname) results = gce.power_flow(main_circuit) print(results.voltage) @@ -22,7 +23,7 @@ def process_dummy_grid(): my_tr = main_circuit.transformers2w[0] inv_group = dev.InvestmentsGroup(name='Ig0') - investment1 = dev.Investment(name='Investment 1x', group=inv_group, template_src=my_tr) + investment1 = dev.Investment(name='Investment 1x', group=inv_group, template=my_tr) main_circuit.add_investment(investment1) main_circuit.add_investments_group(inv_group) gce.save_file(main_circuit, 'C:/Users/J/Downloads/temp_tr1_invested.gridcal') @@ -48,6 +49,6 @@ def create_dummy_grid(): if __name__ == "__main__": - # open_dummy_grid() - pp = process_dummy_grid() + open_dummy_grid() + # pp = process_dummy_grid() # gg = create_dummy_grid() diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index f22f5c300..ef1f4002c 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1586,22 +1586,23 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm.device_type in [DeviceType.Transformer2WDevice, DeviceType.SequenceLineDevice, - DeviceType.UnderGroundLineDevice, DeviceType.OverheadLineTypeDevice]: - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=elm.capex, - OPEX=elm.opex, - group=group, - template_src=elm) + if elm.device_type == DeviceType.Transformer2WDevice: + possible_types = elm.possible_transformer_types.data + elif elm.device_type == DeviceType.SequenceLineDevice: + possible_types = elm.possible_sequence_line_types.data + elif elm.device_type == DeviceType.UnderGroundLineDevice: + possible_types = elm.possible_underground_line_types.data + elif elm.device_type == DeviceType.OverheadLineTypeDevice: + possible_types = elm.possible_tower_types.data else: - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=elm.capex, - OPEX=elm.opex, - group=group) + possible_types = None + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=elm.capex, + OPEX=elm.opex, + group=group, + template=possible_types) self.circuit.add_investment(con) else: diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index d12b4ca5f..379980054 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,4 +1,4 @@ -from typing import Union, Any, List +from typing import Union, Any, List, Dict from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup @@ -18,7 +18,7 @@ def __init__(self, OPEX=0.0, status: bool = True, group: InvestmentsGroup = None, - template_src: Union[DeviceType.Transformer2WDevice, DeviceType.LineDevice] = None, + template: Union[Dict, None] = None, comment: str = ""): """ Investment object formed by CAPEX, OPEX, status (on/off) and possible template @@ -29,7 +29,7 @@ def __init__(self, :param OPEX: Float. Operating expenditures :param status: If true the investment activates when applied, otherwise is deactivated :param group: InvestmentGroup. Investment group - :param template_src: DeviceType. Possible templates of each component + :param template: DeviceType. Possible templates of each component :param comment: Comment """ @@ -46,6 +46,7 @@ def __init__(self, self.OPEX = OPEX self._group: InvestmentsGroup = group self.status: bool = status + self.template = template self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, @@ -56,21 +57,7 @@ def __init__(self, definition='If true the investment activates when applied, otherwise is deactivated.') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') - if template_src is not None: - if template_src.device_type == DeviceType.Transformer2WDevice: - self.template = template_src.possible_transformer_types.data - elif template_src.device_type == DeviceType.SequenceLineDevice: - self.template = template_src.possible_sequence_line_types.data - elif template_src.device_type == DeviceType.UnderGroundLineDevice: - self.template = template_src.possible_underground_line_types.data - elif template_src.device_type == DeviceType.OverheadLineTypeDevice: - self.template = template_src.possible_tower_types.data - else: - raise Exception(f'Templates for {template_src.type} not recognized') - else: - self.template = None - - self.register(key='template', units='', tpe=SubObjectType.ObjectsList, + self.register(key='template', units='', tpe=SubObjectType.TemplateLinks, definition='Possible templates of each component') @property diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 3a0645a90..7bdeeb910 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -405,6 +405,9 @@ def gridcal_object_to_json(elm: ALL_DEV_TYPES) -> Dict[str, str]: elif prop.tpe == SubObjectType.Associations: data[name] = obj.to_dict() + elif prop.tpe == SubObjectType.TemplateLinks: + data[name] = obj + elif prop.tpe == SubObjectType.Array: data[name] = list(obj) diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index 0d51c1877..d48adfc76 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -1079,6 +1079,7 @@ class SubObjectType(Enum): Array = "Array" ObjectsList = "ObjectsList" Associations = "AssociationsList" + TemplateLinks = "TemplateLinks" def __str__(self) -> str: return str(self.value) From 8fba559cc16ecc76d397836eefcd1458b5e5f90a Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Thu, 15 Aug 2024 21:57:23 -0100 Subject: [PATCH 171/218] Templates as associations but still not working --- .idea/workspace.xml | 70 +++++------ .../Gui/Main/SubClasses/Model/diagrams.py | 119 ++++++++++-------- .../Devices/Aggregation/investment.py | 12 +- .../Devices/Associations/association.py | 2 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 5 + 5 files changed, 107 insertions(+), 101 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a275f9d5c..a782349c7 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,12 +28,11 @@ - + - - - - - @@ -1792,7 +1787,7 @@ @@ -1825,7 +1820,7 @@ - @@ -1838,7 +1833,6 @@ - @@ -1863,7 +1857,8 @@ - @@ -2338,28 +2333,18 @@ file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1114 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1057 - - - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1047 - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1054 - file://$PROJECT_DIR$/src/GridCalEngine/IO/gridcal/pack_unpack.py - 1048 - diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 6455218b1..9eda5aa8f 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -14,8 +14,8 @@ def __init__(self, device_idtag: Union[str, None] = None, name="Investment", code='', - CAPEX=0.0, - OPEX=0.0, + CAPEX: float = 0.0, + OPEX: float = 0.0, status: bool = True, group: InvestmentsGroup = None, template: SubObjectType.Associations = None, From 1da7e186e919d044251a0e8dbd5a773b5bf50719 Mon Sep 17 00:00:00 2001 From: QuimMoya Date: Fri, 2 Aug 2024 08:50:47 +0200 Subject: [PATCH 173/218] Solved multiple selection (only allowing two multiple selected item by pressing ctrl) --- .idea/workspace.xml | 1232 ++++++++--------- .../MapWidget/Substation/node_graphic_item.py | 4 +- .../Substation/substation_graphic_item.py | 39 +- .../Gui/Diagrams/MapWidget/grid_map_widget.py | 26 +- .../Gui/Diagrams/MapWidget/map_widget.py | 29 +- 5 files changed, 595 insertions(+), 735 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 818625aa0..27c6d9115 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,13 @@ - + - - - - - + + + @@ -143,18 +145,41 @@ "Python tests.Nosetests in deep_copy_test.py.executor": "Run", "Python tests.Nosetests in test_topology_processor.py.executor": "Run", "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", + "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", + "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", + "Python tests.pytest for test_sparse2.test_expand.executor": "Run", + "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", + "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", + "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_derivatives.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_sparse2.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Debug", + "Python.ExecuteGridCal.executor": "Run", "Python.cgmes_rdfs_graph.executor": "Run", + "Python.multi_select.executor": "Run", "Python.new_circuit_objects.executor": "Run", "Python.pymoo_example.executor": "Debug", "Python.raw_imp_exp_test.executor": "Run", + "Python.tallr_table_headers.executor": "Run", + "Python.test_derivatives.executor": "Run", "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", "RunOnceActivity.OpenProjectViewOnStart": "true", "RunOnceActivity.ShowReadmeOnStart": "true", "WebServerToolWindowFactoryState": "false", "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/GridCal/Gui/Diagrams/MapWidget2", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests", "node.js.detected.package.eslint": "true", "node.js.selected.package.eslint": "(autodetect)", "node.js.selected.package.tslint": "(autodetect)", @@ -172,23 +197,24 @@ + + + - - - + - - + + - - + + + + + + + + + + + + + + + - + + + + + + + + + + + + - - - - - - - - - + + + + + + - + + + - - - + + - - - - + + + - @@ -1372,17 +1436,19 @@ - - - - - - - - - - - + + + + + + + + + + + + + 1656059954202 @@ -1727,7 +1793,7 @@ - @@ -1773,32 +1839,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2186,21 +2252,6 @@ 63 - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - + + - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + + - - - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - + + - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index a0ec5613e..43aad3607 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -31,11 +31,8 @@ class Ui_mainWindow(object): def setupUi(self, mainWindow): if not mainWindow.objectName(): mainWindow.setObjectName(u"mainWindow") - mainWindow.resize(1346, 811) + mainWindow.resize(1393, 915) mainWindow.setBaseSize(QSize(0, 0)) - font = QFont() - font.setPointSize(10) - mainWindow.setFont(font) icon = QIcon() icon.addFile(u":/Program icon/GridCal_icon.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) mainWindow.setWindowIcon(icon) @@ -51,197 +48,164 @@ def setupUi(self, mainWindow): icon1 = QIcon() icon1.addFile(u":/Icons/icons/loadc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOpen_file.setIcon(icon1) - self.actionOpen_file.setFont(font) self.actionSave = QAction(mainWindow) self.actionSave.setObjectName(u"actionSave") icon2 = QIcon() icon2.addFile(u":/Icons/icons/savec.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSave.setIcon(icon2) - self.actionSave.setFont(font) self.actionTakePicture = QAction(mainWindow) self.actionTakePicture.setObjectName(u"actionTakePicture") icon3 = QIcon() icon3.addFile(u":/Icons/icons/picture.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionTakePicture.setIcon(icon3) - self.actionTakePicture.setFont(font) self.actionNew_project = QAction(mainWindow) self.actionNew_project.setObjectName(u"actionNew_project") icon4 = QIcon() icon4.addFile(u":/Icons/icons/new2c.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNew_project.setIcon(icon4) - self.actionNew_project.setFont(font) self.actionPower_flow = QAction(mainWindow) self.actionPower_flow.setObjectName(u"actionPower_flow") icon5 = QIcon() icon5.addFile(u":/Icons/icons/pf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_flow.setIcon(icon5) - self.actionPower_flow.setFont(font) self.actionPower_flow.setMenuRole(QAction.TextHeuristicRole) self.actionPower_Flow_Time_series = QAction(mainWindow) self.actionPower_Flow_Time_series.setObjectName(u"actionPower_Flow_Time_series") icon6 = QIcon() icon6.addFile(u":/Icons/icons/pf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_Flow_Time_series.setIcon(icon6) - self.actionPower_Flow_Time_series.setFont(font) self.actionBigger_nodes = QAction(mainWindow) self.actionBigger_nodes.setObjectName(u"actionBigger_nodes") icon7 = QIcon() icon7.addFile(u":/Icons/icons/plus (gray).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionBigger_nodes.setIcon(icon7) - self.actionBigger_nodes.setFont(font) self.actionSmaller_nodes = QAction(mainWindow) self.actionSmaller_nodes.setObjectName(u"actionSmaller_nodes") icon8 = QIcon() icon8.addFile(u":/Icons/icons/minus (gray).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSmaller_nodes.setIcon(icon8) - self.actionSmaller_nodes.setFont(font) self.actionPower_flow_Stochastic = QAction(mainWindow) self.actionPower_flow_Stochastic.setObjectName(u"actionPower_flow_Stochastic") icon9 = QIcon() icon9.addFile(u":/Icons/icons/stochastic_pf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPower_flow_Stochastic.setIcon(icon9) - self.actionPower_flow_Stochastic.setFont(font) self.actionVoltage_stability = QAction(mainWindow) self.actionVoltage_stability.setObjectName(u"actionVoltage_stability") icon10 = QIcon() icon10.addFile(u":/Icons/icons/continuation_power_flow.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionVoltage_stability.setIcon(icon10) - self.actionVoltage_stability.setFont(font) self.actionAbout = QAction(mainWindow) self.actionAbout.setObjectName(u"actionAbout") self.actionAbout.setIcon(icon) - self.actionAbout.setFont(font) self.actionCenter_view = QAction(mainWindow) self.actionCenter_view.setObjectName(u"actionCenter_view") icon11 = QIcon() icon11.addFile(u":/Icons/icons/resize.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionCenter_view.setIcon(icon11) - self.actionCenter_view.setFont(font) self.actionShort_Circuit = QAction(mainWindow) self.actionShort_Circuit.setObjectName(u"actionShort_Circuit") icon12 = QIcon() icon12.addFile(u":/Icons/icons/short_circuit.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionShort_Circuit.setIcon(icon12) - self.actionShort_Circuit.setFont(font) self.actionAutoatic_layout = QAction(mainWindow) self.actionAutoatic_layout.setObjectName(u"actionAutoatic_layout") icon13 = QIcon() icon13.addFile(u":/Icons/icons/automatic_layout.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAutoatic_layout.setIcon(icon13) - self.actionAutoatic_layout.setFont(font) self.actionBlackout_cascade = QAction(mainWindow) self.actionBlackout_cascade.setObjectName(u"actionBlackout_cascade") self.actionBlackout_cascade.setCheckable(True) icon14 = QIcon() icon14.addFile(u":/Icons/icons/blackout.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionBlackout_cascade.setIcon(icon14) - self.actionBlackout_cascade.setFont(font) self.actionOPF = QAction(mainWindow) self.actionOPF.setObjectName(u"actionOPF") icon15 = QIcon() icon15.addFile(u":/Icons/icons/dcopf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOPF.setIcon(icon15) - self.actionOPF.setFont(font) self.actionOPF_time_series = QAction(mainWindow) self.actionOPF_time_series.setObjectName(u"actionOPF_time_series") icon16 = QIcon() icon16.addFile(u":/Icons/icons/dcopf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOPF_time_series.setIcon(icon16) - self.actionOPF_time_series.setFont(font) self.actionDetect_transformers = QAction(mainWindow) self.actionDetect_transformers.setObjectName(u"actionDetect_transformers") icon17 = QIcon() icon17.addFile(u":/Icons/icons/detect_tr.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDetect_transformers.setIcon(icon17) - self.actionDetect_transformers.setFont(font) self.actionAuto_rate_branches = QAction(mainWindow) self.actionAuto_rate_branches.setObjectName(u"actionAuto_rate_branches") icon18 = QIcon() icon18.addFile(u":/Icons/icons/rate_br.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAuto_rate_branches.setIcon(icon18) - self.actionAuto_rate_branches.setFont(font) self.actionExport_all_the_device_s_profiles = QAction(mainWindow) self.actionExport_all_the_device_s_profiles.setObjectName(u"actionExport_all_the_device_s_profiles") icon19 = QIcon() icon19.addFile(u":/Icons/icons/save.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionExport_all_the_device_s_profiles.setIcon(icon19) - self.actionExport_all_the_device_s_profiles.setFont(font) self.actionStorage_location_suggestion = QAction(mainWindow) self.actionStorage_location_suggestion.setObjectName(u"actionStorage_location_suggestion") self.actionStorage_location_suggestion.setCheckable(True) icon20 = QIcon() icon20.addFile(u":/Icons/icons/storage_loc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionStorage_location_suggestion.setIcon(icon20) - self.actionStorage_location_suggestion.setFont(font) self.actionLaunch_data_analysis_tool = QAction(mainWindow) self.actionLaunch_data_analysis_tool.setObjectName(u"actionLaunch_data_analysis_tool") icon21 = QIcon() icon21.addFile(u":/Icons/icons/inputs_analysis 2.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionLaunch_data_analysis_tool.setIcon(icon21) - self.actionLaunch_data_analysis_tool.setFont(font) self.actionOnline_documentation = QAction(mainWindow) self.actionOnline_documentation.setObjectName(u"actionOnline_documentation") icon22 = QIcon() icon22.addFile(u":/Icons/icons/new.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOnline_documentation.setIcon(icon22) - self.actionOnline_documentation.setFont(font) self.actionExport_all_results = QAction(mainWindow) self.actionExport_all_results.setObjectName(u"actionExport_all_results") icon23 = QIcon() icon23.addFile(u":/Icons/icons/export_pickle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionExport_all_results.setIcon(icon23) - self.actionExport_all_results.setFont(font) self.actionSave_as = QAction(mainWindow) self.actionSave_as.setObjectName(u"actionSave_as") self.actionSave_as.setIcon(icon19) - self.actionSave_as.setFont(font) self.actionDelete_selected = QAction(mainWindow) self.actionDelete_selected.setObjectName(u"actionDelete_selected") icon24 = QIcon() icon24.addFile(u":/Icons/icons/delete_db.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_selected.setIcon(icon24) - self.actionDelete_selected.setFont(font) self.actionLinearAnalysis = QAction(mainWindow) self.actionLinearAnalysis.setObjectName(u"actionLinearAnalysis") icon25 = QIcon() icon25.addFile(u":/Icons/icons/ptdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionLinearAnalysis.setIcon(icon25) - self.actionLinearAnalysis.setFont(font) self.actionReset_console = QAction(mainWindow) self.actionReset_console.setObjectName(u"actionReset_console") icon26 = QIcon() icon26.addFile(u":/Icons/icons/undo.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionReset_console.setIcon(icon26) - self.actionReset_console.setFont(font) self.actionOpf_to_Power_flow = QAction(mainWindow) self.actionOpf_to_Power_flow.setObjectName(u"actionOpf_to_Power_flow") self.actionOpf_to_Power_flow.setCheckable(True) icon27 = QIcon() icon27.addFile(u":/Icons/icons/dcopf2ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOpf_to_Power_flow.setIcon(icon27) - self.actionOpf_to_Power_flow.setFont(font) self.actionTry_to_fix_buses_location = QAction(mainWindow) self.actionTry_to_fix_buses_location.setObjectName(u"actionTry_to_fix_buses_location") icon28 = QIcon() icon28.addFile(u":/Icons/icons/move_bus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionTry_to_fix_buses_location.setIcon(icon28) - self.actionTry_to_fix_buses_location.setFont(font) self.actionSet_OPF_generation_to_profiles = QAction(mainWindow) self.actionSet_OPF_generation_to_profiles.setObjectName(u"actionSet_OPF_generation_to_profiles") self.actionSet_OPF_generation_to_profiles.setIcon(icon27) - self.actionSet_OPF_generation_to_profiles.setFont(font) self.actionPTDF_time_series = QAction(mainWindow) self.actionPTDF_time_series.setObjectName(u"actionPTDF_time_series") icon29 = QIcon() icon29.addFile(u":/Icons/icons/ptdf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionPTDF_time_series.setIcon(icon29) - self.actionPTDF_time_series.setFont(font) self.actionAdd_circuit = QAction(mainWindow) self.actionAdd_circuit.setObjectName(u"actionAdd_circuit") icon30 = QIcon() icon30.addFile(u":/Icons/icons/load_add.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_circuit.setIcon(icon30) - self.actionAdd_circuit.setFont(font) self.actionSync = QAction(mainWindow) self.actionSync.setObjectName(u"actionSync") self.actionSync.setCheckable(True) @@ -258,30 +222,25 @@ def setupUi(self, mainWindow): icon33 = QIcon() icon33.addFile(u":/Icons/icons/sigma.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSigma_analysis.setIcon(icon33) - self.actionSigma_analysis.setFont(font) self.actionClear_stuff_running_right_now = QAction(mainWindow) self.actionClear_stuff_running_right_now.setObjectName(u"actionClear_stuff_running_right_now") icon34 = QIcon() icon34.addFile(u":/Icons/icons/clear_runs.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionClear_stuff_running_right_now.setIcon(icon34) - self.actionClear_stuff_running_right_now.setFont(font) self.actionAdd_default_catalogue = QAction(mainWindow) self.actionAdd_default_catalogue.setObjectName(u"actionAdd_default_catalogue") icon35 = QIcon() icon35.addFile(u":/Icons/icons/CatalogueAdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_default_catalogue.setIcon(icon35) - self.actionAdd_default_catalogue.setFont(font) self.actionFind_node_groups = QAction(mainWindow) self.actionFind_node_groups.setObjectName(u"actionFind_node_groups") self.actionFind_node_groups.setCheckable(True) icon36 = QIcon() icon36.addFile(u":/Icons/icons/color_grid2.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFind_node_groups.setIcon(icon36) - self.actionFind_node_groups.setFont(font) self.actiongrid_Generator = QAction(mainWindow) self.actiongrid_Generator.setObjectName(u"actiongrid_Generator") self.actiongrid_Generator.setIcon(icon13) - self.actiongrid_Generator.setFont(font) self.actionImportPlexosNodeLoad = QAction(mainWindow) self.actionImportPlexosNodeLoad.setObjectName(u"actionImportPlexosNodeLoad") icon37 = QIcon() @@ -295,140 +254,115 @@ def setupUi(self, mainWindow): icon38 = QIcon() icon38.addFile(u":/Icons/icons/otdf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOTDF_time_series.setIcon(icon38) - self.actionOTDF_time_series.setFont(font) self.actionImportPlexosBranchRates = QAction(mainWindow) self.actionImportPlexosBranchRates.setObjectName(u"actionImportPlexosBranchRates") self.actionImportPlexosBranchRates.setIcon(icon37) self.actionSetSelectedBusArea = QAction(mainWindow) self.actionSetSelectedBusArea.setObjectName(u"actionSetSelectedBusArea") self.actionSetSelectedBusArea.setIcon(icon32) - self.actionSetSelectedBusArea.setFont(font) self.actionSetSelectedBusZone = QAction(mainWindow) self.actionSetSelectedBusZone.setObjectName(u"actionSetSelectedBusZone") self.actionSetSelectedBusZone.setIcon(icon32) - self.actionSetSelectedBusZone.setFont(font) self.actionSetSelectedBusCountry = QAction(mainWindow) self.actionSetSelectedBusCountry.setObjectName(u"actionSetSelectedBusCountry") icon39 = QIcon() icon39.addFile(u":/Icons/icons/map.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSetSelectedBusCountry.setIcon(icon39) - self.actionSetSelectedBusCountry.setFont(font) self.actionImport_bus_coordinates = QAction(mainWindow) self.actionImport_bus_coordinates.setObjectName(u"actionImport_bus_coordinates") self.actionImport_bus_coordinates.setIcon(icon30) - self.actionImport_bus_coordinates.setFont(font) self.actionATC = QAction(mainWindow) self.actionATC.setObjectName(u"actionATC") icon40 = QIcon() icon40.addFile(u":/Icons/icons/atc.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionATC.setIcon(icon40) - self.actionATC.setFont(font) self.actionATC_Time_Series = QAction(mainWindow) self.actionATC_Time_Series.setObjectName(u"actionATC_Time_Series") icon41 = QIcon() icon41.addFile(u":/Icons/icons/atc_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionATC_Time_Series.setIcon(icon41) - self.actionATC_Time_Series.setFont(font) self.actionContingency_analysis = QAction(mainWindow) self.actionContingency_analysis.setObjectName(u"actionContingency_analysis") icon42 = QIcon() icon42.addFile(u":/Icons/icons/otdf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionContingency_analysis.setIcon(icon42) - self.actionContingency_analysis.setFont(font) self.actionOptimal_Net_Transfer_Capacity = QAction(mainWindow) self.actionOptimal_Net_Transfer_Capacity.setObjectName(u"actionOptimal_Net_Transfer_Capacity") icon43 = QIcon() icon43.addFile(u":/Icons/icons/ntc_opf.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOptimal_Net_Transfer_Capacity.setIcon(icon43) - self.actionOptimal_Net_Transfer_Capacity.setFont(font) self.actionSet_schematic_positions_from_GPS_coordinates = QAction(mainWindow) self.actionSet_schematic_positions_from_GPS_coordinates.setObjectName(u"actionSet_schematic_positions_from_GPS_coordinates") self.actionSet_schematic_positions_from_GPS_coordinates.setIcon(icon39) - self.actionSet_schematic_positions_from_GPS_coordinates.setFont(font) self.actionInputs_analysis = QAction(mainWindow) self.actionInputs_analysis.setObjectName(u"actionInputs_analysis") icon44 = QIcon() icon44.addFile(u":/Icons/icons/stats.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInputs_analysis.setIcon(icon44) - self.actionInputs_analysis.setFont(font) self.actionFuse_devices = QAction(mainWindow) self.actionFuse_devices.setObjectName(u"actionFuse_devices") icon45 = QIcon() icon45.addFile(u":/Icons/icons/fusion.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFuse_devices.setIcon(icon45) - self.actionFuse_devices.setFont(font) self.actionDelete_inconsistencies = QAction(mainWindow) self.actionDelete_inconsistencies.setObjectName(u"actionDelete_inconsistencies") icon46 = QIcon() icon46.addFile(u":/Icons/icons/delete.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_inconsistencies.setIcon(icon46) - self.actionDelete_inconsistencies.setFont(font) self.actionOptimal_Net_Transfer_Capacity_Time_Series = QAction(mainWindow) self.actionOptimal_Net_Transfer_Capacity_Time_Series.setObjectName(u"actionOptimal_Net_Transfer_Capacity_Time_Series") icon47 = QIcon() icon47.addFile(u":/Icons/icons/ntc_opf_ts.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionOptimal_Net_Transfer_Capacity_Time_Series.setIcon(icon47) - self.actionOptimal_Net_Transfer_Capacity_Time_Series.setFont(font) self.actionre_index_time = QAction(mainWindow) self.actionre_index_time.setObjectName(u"actionre_index_time") icon48 = QIcon() icon48.addFile(u":/Icons/icons/data.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionre_index_time.setIcon(icon48) - self.actionre_index_time.setFont(font) self.actionFix_generators_active_based_on_the_power = QAction(mainWindow) self.actionFix_generators_active_based_on_the_power.setObjectName(u"actionFix_generators_active_based_on_the_power") icon49 = QIcon() icon49.addFile(u":/Icons/icons/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionFix_generators_active_based_on_the_power.setIcon(icon49) - self.actionFix_generators_active_based_on_the_power.setFont(font) self.actionFix_loads_active_based_on_the_power = QAction(mainWindow) self.actionFix_loads_active_based_on_the_power.setObjectName(u"actionFix_loads_active_based_on_the_power") self.actionFix_loads_active_based_on_the_power.setIcon(icon49) - self.actionFix_loads_active_based_on_the_power.setFont(font) self.actionImport_contingencies = QAction(mainWindow) self.actionImport_contingencies.setObjectName(u"actionImport_contingencies") self.actionImport_contingencies.setIcon(icon30) - self.actionImport_contingencies.setFont(font) self.actionInitialize_contingencies = QAction(mainWindow) self.actionInitialize_contingencies.setObjectName(u"actionInitialize_contingencies") icon50 = QIcon() icon50.addFile(u":/Icons/icons/contingency_wizzard.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInitialize_contingencies.setIcon(icon50) - self.actionInitialize_contingencies.setFont(font) self.actionExport_contingencies = QAction(mainWindow) self.actionExport_contingencies.setObjectName(u"actionExport_contingencies") self.actionExport_contingencies.setIcon(icon19) - self.actionExport_contingencies.setFont(font) self.actionAdd_selected_to_contingency = QAction(mainWindow) self.actionAdd_selected_to_contingency.setObjectName(u"actionAdd_selected_to_contingency") icon51 = QIcon() icon51.addFile(u":/Icons/icons/add_contingency.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_selected_to_contingency.setIcon(icon51) - self.actionAdd_selected_to_contingency.setFont(font) self.actionAdd_selected_as_new_investment = QAction(mainWindow) self.actionAdd_selected_as_new_investment.setObjectName(u"actionAdd_selected_as_new_investment") icon52 = QIcon() icon52.addFile(u":/Icons/icons/investment.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_selected_as_new_investment.setIcon(icon52) - self.actionAdd_selected_as_new_investment.setFont(font) self.actionZoom_in = QAction(mainWindow) self.actionZoom_in.setObjectName(u"actionZoom_in") icon53 = QIcon() icon53.addFile(u":/Icons/icons/zoom_in.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionZoom_in.setIcon(icon53) - self.actionZoom_in.setFont(font) self.actionZoom_out = QAction(mainWindow) self.actionZoom_out.setObjectName(u"actionZoom_out") icon54 = QIcon() icon54.addFile(u":/Icons/icons/zoom_out.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionZoom_out.setIcon(icon54) - self.actionZoom_out.setFont(font) self.actionClustering = QAction(mainWindow) self.actionClustering.setObjectName(u"actionClustering") icon55 = QIcon() icon55.addFile(u":/Icons/icons/clustering.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionClustering.setIcon(icon55) - self.actionClustering.setFont(font) self.actionClustering.setMenuRole(QAction.NoRole) self.actionUse_clustering = QAction(mainWindow) self.actionUse_clustering.setObjectName(u"actionUse_clustering") @@ -436,29 +370,24 @@ def setupUi(self, mainWindow): icon56 = QIcon() icon56.addFile(u":/Icons/icons/clustering_use.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionUse_clustering.setIcon(icon56) - self.actionUse_clustering.setFont(font) self.actionInvestments_evaluation = QAction(mainWindow) self.actionInvestments_evaluation.setObjectName(u"actionInvestments_evaluation") icon57 = QIcon() icon57.addFile(u":/Icons/icons/expansion_planning.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionInvestments_evaluation.setIcon(icon57) - self.actionInvestments_evaluation.setFont(font) self.actionNew_bus_branch_diagram_from_selection = QAction(mainWindow) self.actionNew_bus_branch_diagram_from_selection.setObjectName(u"actionNew_bus_branch_diagram_from_selection") icon58 = QIcon() icon58.addFile(u":/Icons/icons/schematic.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNew_bus_branch_diagram_from_selection.setIcon(icon58) - self.actionNew_bus_branch_diagram_from_selection.setFont(font) self.actionAdd_general_bus_branch_diagram = QAction(mainWindow) self.actionAdd_general_bus_branch_diagram.setObjectName(u"actionAdd_general_bus_branch_diagram") self.actionAdd_general_bus_branch_diagram.setIcon(icon58) - self.actionAdd_general_bus_branch_diagram.setFont(font) self.actionAdd_map = QAction(mainWindow) self.actionAdd_map.setObjectName(u"actionAdd_map") icon59 = QIcon() icon59.addFile(u":/Icons/icons/map (add).svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_map.setIcon(icon59) - self.actionAdd_map.setFont(font) self.actionRemove_selected_diagram = QAction(mainWindow) self.actionRemove_selected_diagram.setObjectName(u"actionRemove_selected_diagram") self.actionRemove_selected_diagram.setIcon(icon8) @@ -467,109 +396,89 @@ def setupUi(self, mainWindow): icon60 = QIcon() icon60.addFile(u":/Icons/icons/bug.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionReport_a_bug.setIcon(icon60) - self.actionReport_a_bug.setFont(font) self.actionSearchDiagram = QAction(mainWindow) self.actionSearchDiagram.setObjectName(u"actionSearchDiagram") icon61 = QIcon() icon61.addFile(u":/Icons/icons/magnifying_glass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionSearchDiagram.setIcon(icon61) - self.actionSearchDiagram.setFont(font) self.actionProcess_topology = QAction(mainWindow) self.actionProcess_topology.setObjectName(u"actionProcess_topology") self.actionProcess_topology.setIcon(icon58) - self.actionProcess_topology.setFont(font) self.actionEdit_simulation_time_limits = QAction(mainWindow) self.actionEdit_simulation_time_limits.setObjectName(u"actionEdit_simulation_time_limits") icon62 = QIcon() icon62.addFile(u":/Icons/icons/time_series span.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEdit_simulation_time_limits.setIcon(icon62) - self.actionEdit_simulation_time_limits.setFont(font) self.actionactivate_time_series = QAction(mainWindow) self.actionactivate_time_series.setObjectName(u"actionactivate_time_series") self.actionactivate_time_series.setCheckable(True) icon63 = QIcon() icon63.addFile(u":/Icons/icons/time_series set.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionactivate_time_series.setIcon(icon63) - self.actionactivate_time_series.setFont(font) self.actionClean_database = QAction(mainWindow) self.actionClean_database.setObjectName(u"actionClean_database") self.actionClean_database.setIcon(icon34) - self.actionClean_database.setFont(font) self.actionSelect_buses_by_area = QAction(mainWindow) self.actionSelect_buses_by_area.setObjectName(u"actionSelect_buses_by_area") self.actionSelect_buses_by_area.setIcon(icon32) - self.actionSelect_buses_by_area.setFont(font) self.actionSelect_buses_by_zone = QAction(mainWindow) self.actionSelect_buses_by_zone.setObjectName(u"actionSelect_buses_by_zone") self.actionSelect_buses_by_zone.setIcon(icon32) - self.actionSelect_buses_by_zone.setFont(font) self.actionSelect_buses_by_country = QAction(mainWindow) self.actionSelect_buses_by_country.setObjectName(u"actionSelect_buses_by_country") self.actionSelect_buses_by_country.setIcon(icon39) - self.actionSelect_buses_by_country.setFont(font) self.actionScale = QAction(mainWindow) self.actionScale.setObjectName(u"actionScale") icon64 = QIcon() icon64.addFile(u":/Icons/icons/scale.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionScale.setIcon(icon64) - self.actionScale.setFont(font) self.actionDisable_all_results_tags = QAction(mainWindow) self.actionDisable_all_results_tags.setObjectName(u"actionDisable_all_results_tags") icon65 = QIcon() icon65.addFile(u":/Icons/icons/uncheck_all.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDisable_all_results_tags.setIcon(icon65) - self.actionDisable_all_results_tags.setFont(font) self.actionEnable_all_results_tags = QAction(mainWindow) self.actionEnable_all_results_tags.setObjectName(u"actionEnable_all_results_tags") icon66 = QIcon() icon66.addFile(u":/Icons/icons/check_all.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEnable_all_results_tags.setIcon(icon66) - self.actionEnable_all_results_tags.setFont(font) self.actionDetect_substations = QAction(mainWindow) self.actionDetect_substations.setObjectName(u"actionDetect_substations") icon67 = QIcon() icon67.addFile(u":/Icons/icons/chip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDetect_substations.setIcon(icon67) - self.actionDetect_substations.setFont(font) self.actionNodal_capacity = QAction(mainWindow) self.actionNodal_capacity.setObjectName(u"actionNodal_capacity") icon68 = QIcon() icon68.addFile(u":/Icons/icons/nodal_capacity.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionNodal_capacity.setIcon(icon68) - self.actionNodal_capacity.setFont(font) self.actionEnable_server_mode = QAction(mainWindow) self.actionEnable_server_mode.setObjectName(u"actionEnable_server_mode") self.actionEnable_server_mode.setCheckable(True) icon69 = QIcon() icon69.addFile(u":/Icons/icons/server.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionEnable_server_mode.setIcon(icon69) - self.actionEnable_server_mode.setFont(font) self.actionDelete_from_the_diagram = QAction(mainWindow) self.actionDelete_from_the_diagram.setObjectName(u"actionDelete_from_the_diagram") icon70 = QIcon() icon70.addFile(u":/Icons/icons/delete_schematic.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionDelete_from_the_diagram.setIcon(icon70) - self.actionDelete_from_the_diagram.setFont(font) self.actionRecord_video = QAction(mainWindow) self.actionRecord_video.setObjectName(u"actionRecord_video") icon71 = QIcon() icon71.addFile(u":/Icons/icons/record.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionRecord_video.setIcon(icon71) - self.actionRecord_video.setFont(font) self.actionExport_circuit_differential = QAction(mainWindow) self.actionExport_circuit_differential.setObjectName(u"actionExport_circuit_differential") self.actionExport_circuit_differential.setIcon(icon23) - self.actionExport_circuit_differential.setFont(font) self.actionAdd_custom_catalogue = QAction(mainWindow) self.actionAdd_custom_catalogue.setObjectName(u"actionAdd_custom_catalogue") icon72 = QIcon() icon72.addFile(u":/Icons/icons/CataloguePrivate.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) self.actionAdd_custom_catalogue.setIcon(icon72) - self.actionAdd_custom_catalogue.setFont(font) self.actionExportCatalogue = QAction(mainWindow) self.actionExportCatalogue.setObjectName(u"actionExportCatalogue") self.actionExportCatalogue.setIcon(icon72) - self.actionExportCatalogue.setFont(font) self.centralwidget = QWidget(mainWindow) self.centralwidget.setObjectName(u"centralwidget") self.gridLayout_3 = QGridLayout(self.centralwidget) @@ -583,21 +492,11 @@ def setupUi(self, mainWindow): self.gridLayout_7.setObjectName(u"gridLayout_7") self.progress_label = QLabel(self.progress_frame) self.progress_label.setObjectName(u"progress_label") - self.progress_label.setFont(font) - - self.gridLayout_7.addWidget(self.progress_label, 2, 3, 1, 1) - - self.cancelButton = QPushButton(self.progress_frame) - self.cancelButton.setObjectName(u"cancelButton") - self.cancelButton.setMinimumSize(QSize(0, 24)) - self.cancelButton.setFont(font) - self.cancelButton.setIcon(icon46) - self.gridLayout_7.addWidget(self.cancelButton, 4, 0, 1, 1) + self.gridLayout_7.addWidget(self.progress_label, 0, 2, 1, 1) self.progressBar = QProgressBar(self.progress_frame) self.progressBar.setObjectName(u"progressBar") - self.progressBar.setFont(font) self.progressBar.setStyleSheet(u"QProgressBar {\n" " border: 1px solid rgb(186, 189, 182);\n" " border-radius: 5px;\n" @@ -609,14 +508,20 @@ def setupUi(self, mainWindow): self.progressBar.setValue(20) self.progressBar.setInvertedAppearance(False) - self.gridLayout_7.addWidget(self.progressBar, 4, 3, 1, 1) + self.gridLayout_7.addWidget(self.progressBar, 2, 2, 1, 1) + + self.cancelButton = QPushButton(self.progress_frame) + self.cancelButton.setObjectName(u"cancelButton") + self.cancelButton.setMinimumSize(QSize(0, 24)) + self.cancelButton.setIcon(icon46) + + self.gridLayout_7.addWidget(self.cancelButton, 2, 0, 1, 1) self.gridLayout_3.addWidget(self.progress_frame, 3, 0, 1, 1) self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setObjectName(u"tabWidget") - self.tabWidget.setFont(font) self.GridTab = QWidget() self.GridTab.setObjectName(u"GridTab") self.verticalLayout_9 = QVBoxLayout(self.GridTab) @@ -685,9 +590,6 @@ def setupUi(self, mainWindow): self.verticalLayout_37.setContentsMargins(0, 0, 0, 5) self.diagramsListView = QListView(self.tab_3) self.diagramsListView.setObjectName(u"diagramsListView") - font1 = QFont() - font1.setPointSize(9) - self.diagramsListView.setFont(font1) self.diagramsListView.setFrameShape(QFrame.NoFrame) self.verticalLayout_37.addWidget(self.diagramsListView) @@ -720,7 +622,9 @@ def setupUi(self, mainWindow): self.schematic_step_label = QLabel(self.tab_3) self.schematic_step_label.setObjectName(u"schematic_step_label") - self.schematic_step_label.setFont(font1) + font = QFont() + font.setPointSize(9) + self.schematic_step_label.setFont(font) self.schematic_step_label.setAlignment(Qt.AlignCenter) self.verticalLayout_37.addWidget(self.schematic_step_label) @@ -743,171 +647,65 @@ def setupUi(self, mainWindow): self.frame_58.setObjectName(u"frame_58") self.frame_58.setFrameShape(QFrame.NoFrame) self.frame_58.setFrameShadow(QFrame.Raised) - self.gridLayout = QGridLayout(self.frame_58) - self.gridLayout.setObjectName(u"gridLayout") - self.gridLayout.setContentsMargins(6, 0, 6, 0) - self.label_9 = QLabel(self.frame_58) - self.label_9.setObjectName(u"label_9") - font2 = QFont() - font2.setPointSize(8) - self.label_9.setFont(font2) - - self.gridLayout.addWidget(self.label_9, 10, 0, 1, 1) - - self.resolution_factor_spinBox = QSpinBox(self.frame_58) - self.resolution_factor_spinBox.setObjectName(u"resolution_factor_spinBox") - self.resolution_factor_spinBox.setFont(font2) - self.resolution_factor_spinBox.setMinimum(1) - self.resolution_factor_spinBox.setMaximum(100) - self.resolution_factor_spinBox.setValue(10) - - self.gridLayout.addWidget(self.resolution_factor_spinBox, 15, 1, 1, 1) - - self.label_118 = QLabel(self.frame_58) - self.label_118.setObjectName(u"label_118") - self.label_118.setFont(font2) - - self.gridLayout.addWidget(self.label_118, 7, 0, 1, 1) - - self.label_24 = QLabel(self.frame_58) - self.label_24.setObjectName(u"label_24") - self.label_24.setFont(font2) - self.label_24.setTextFormat(Qt.PlainText) - self.label_24.setScaledContents(True) - - self.gridLayout.addWidget(self.label_24, 4, 0, 1, 1) - - self.automatic_layout_comboBox = QComboBox(self.frame_58) - self.automatic_layout_comboBox.setObjectName(u"automatic_layout_comboBox") - self.automatic_layout_comboBox.setFont(font2) - - self.gridLayout.addWidget(self.automatic_layout_comboBox, 4, 1, 1, 1) - - self.label_60 = QLabel(self.frame_58) - self.label_60.setObjectName(u"label_60") - self.label_60.setFont(font2) + self.formLayout_2 = QFormLayout(self.frame_58) + self.formLayout_2.setObjectName(u"formLayout_2") + self.formLayout_2.setContentsMargins(6, 0, 6, 0) + self.frame_3 = QFrame(self.frame_58) + self.frame_3.setObjectName(u"frame_3") + self.frame_3.setFrameShape(QFrame.NoFrame) + self.frame_3.setFrameShadow(QFrame.Raised) + self.horizontalLayout_11 = QHBoxLayout(self.frame_3) + self.horizontalLayout_11.setObjectName(u"horizontalLayout_11") + self.horizontalLayout_11.setContentsMargins(0, -1, 0, 0) + self.label_110 = QLabel(self.frame_3) + self.label_110.setObjectName(u"label_110") + self.label_110.setMinimumSize(QSize(24, 24)) + self.label_110.setMaximumSize(QSize(24, 24)) + self.label_110.setPixmap(QPixmap(u":/Icons/icons/schematic.svg")) + self.label_110.setScaledContents(True) - self.gridLayout.addWidget(self.label_60, 2, 0, 1, 1) + self.horizontalLayout_11.addWidget(self.label_110) - self.min_node_size_spinBox = QDoubleSpinBox(self.frame_58) - self.min_node_size_spinBox.setObjectName(u"min_node_size_spinBox") - self.min_node_size_spinBox.setFont(font2) - self.min_node_size_spinBox.setDecimals(1) - self.min_node_size_spinBox.setMinimum(0.100000000000000) - self.min_node_size_spinBox.setSingleStep(0.100000000000000) - self.min_node_size_spinBox.setValue(20.000000000000000) + self.label_111 = QLabel(self.frame_3) + self.label_111.setObjectName(u"label_111") + palette = QPalette() + brush = QBrush(QColor(85, 87, 83, 255)) + brush.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + brush1 = QBrush(QColor(190, 190, 190, 255)) + brush1.setStyle(Qt.SolidPattern) + palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_111.setPalette(palette) + font1 = QFont() + font1.setPointSize(12) + self.label_111.setFont(font1) + self.label_111.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) - self.gridLayout.addWidget(self.min_node_size_spinBox, 9, 1, 1, 1) + self.horizontalLayout_11.addWidget(self.label_111) - self.tile_provider_comboBox = QComboBox(self.frame_58) - self.tile_provider_comboBox.setObjectName(u"tile_provider_comboBox") - self.tile_provider_comboBox.setFont(font2) - self.gridLayout.addWidget(self.tile_provider_comboBox, 7, 1, 1, 1) + self.formLayout_2.setWidget(0, QFormLayout.SpanningRole, self.frame_3) self.label_43 = QLabel(self.frame_58) self.label_43.setObjectName(u"label_43") + font2 = QFont() + font2.setPointSize(8) self.label_43.setFont(font2) - self.gridLayout.addWidget(self.label_43, 3, 0, 1, 1) - - self.label_15 = QLabel(self.frame_58) - self.label_15.setObjectName(u"label_15") - self.label_15.setFont(font2) - - self.gridLayout.addWidget(self.label_15, 12, 0, 1, 1) - - self.label_35 = QLabel(self.frame_58) - self.label_35.setObjectName(u"label_35") - self.label_35.setFont(font2) - - self.gridLayout.addWidget(self.label_35, 1, 0, 1, 1) - - self.label = QLabel(self.frame_58) - self.label.setObjectName(u"label") - self.label.setFont(font2) - - self.gridLayout.addWidget(self.label, 9, 0, 1, 1) - - self.label_14 = QLabel(self.frame_58) - self.label_14.setObjectName(u"label_14") - self.label_14.setFont(font2) - - self.gridLayout.addWidget(self.label_14, 11, 0, 1, 1) - - self.max_branch_size_spinBox = QDoubleSpinBox(self.frame_58) - self.max_branch_size_spinBox.setObjectName(u"max_branch_size_spinBox") - self.max_branch_size_spinBox.setFont(font2) - self.max_branch_size_spinBox.setDecimals(1) - self.max_branch_size_spinBox.setSingleStep(0.100000000000000) - self.max_branch_size_spinBox.setValue(20.000000000000000) - - self.gridLayout.addWidget(self.max_branch_size_spinBox, 12, 1, 1, 1) - - self.explosion_factor_doubleSpinBox = QDoubleSpinBox(self.frame_58) - self.explosion_factor_doubleSpinBox.setObjectName(u"explosion_factor_doubleSpinBox") - self.explosion_factor_doubleSpinBox.setFont(font2) - self.explosion_factor_doubleSpinBox.setDecimals(3) - self.explosion_factor_doubleSpinBox.setMinimum(1.000000000000000) - self.explosion_factor_doubleSpinBox.setMaximum(999999999.000000000000000) - self.explosion_factor_doubleSpinBox.setSingleStep(0.100000000000000) - self.explosion_factor_doubleSpinBox.setValue(1.500000000000000) - - self.gridLayout.addWidget(self.explosion_factor_doubleSpinBox, 2, 1, 1, 1) - - self.fps_spinBox = QSpinBox(self.frame_58) - self.fps_spinBox.setObjectName(u"fps_spinBox") - self.fps_spinBox.setFont(font2) - self.fps_spinBox.setMinimum(1) - self.fps_spinBox.setMaximum(9999) - self.fps_spinBox.setValue(30) - - self.gridLayout.addWidget(self.fps_spinBox, 16, 1, 1, 1) - - self.max_node_size_spinBox = QDoubleSpinBox(self.frame_58) - self.max_node_size_spinBox.setObjectName(u"max_node_size_spinBox") - self.max_node_size_spinBox.setFont(font2) - self.max_node_size_spinBox.setDecimals(1) - self.max_node_size_spinBox.setMinimum(0.100000000000000) - self.max_node_size_spinBox.setSingleStep(0.100000000000000) - self.max_node_size_spinBox.setValue(40.000000000000000) - - self.gridLayout.addWidget(self.max_node_size_spinBox, 10, 1, 1, 1) - - self.label_150 = QLabel(self.frame_58) - self.label_150.setObjectName(u"label_150") - self.label_150.setFont(font2) - - self.gridLayout.addWidget(self.label_150, 16, 0, 1, 1) + self.formLayout_2.setWidget(1, QFormLayout.LabelRole, self.label_43) self.palette_comboBox = QComboBox(self.frame_58) self.palette_comboBox.setObjectName(u"palette_comboBox") self.palette_comboBox.setFont(font2) - self.gridLayout.addWidget(self.palette_comboBox, 3, 1, 1, 1) - - self.ask_before_appliying_layout_checkBox = QCheckBox(self.frame_58) - self.ask_before_appliying_layout_checkBox.setObjectName(u"ask_before_appliying_layout_checkBox") - self.ask_before_appliying_layout_checkBox.setFont(font2) - self.ask_before_appliying_layout_checkBox.setChecked(True) - self.ask_before_appliying_layout_checkBox.setTristate(False) - - self.gridLayout.addWidget(self.ask_before_appliying_layout_checkBox, 5, 1, 1, 1) - - self.label_32 = QLabel(self.frame_58) - self.label_32.setObjectName(u"label_32") - self.label_32.setFont(font2) - - self.gridLayout.addWidget(self.label_32, 15, 0, 1, 1) + self.formLayout_2.setWidget(1, QFormLayout.FieldRole, self.palette_comboBox) - self.min_branch_size_spinBox = QDoubleSpinBox(self.frame_58) - self.min_branch_size_spinBox.setObjectName(u"min_branch_size_spinBox") - self.min_branch_size_spinBox.setFont(font2) - self.min_branch_size_spinBox.setDecimals(1) - self.min_branch_size_spinBox.setSingleStep(0.100000000000000) - self.min_branch_size_spinBox.setValue(0.500000000000000) + self.label_35 = QLabel(self.frame_58) + self.label_35.setObjectName(u"label_35") + self.label_35.setFont(font2) - self.gridLayout.addWidget(self.min_branch_size_spinBox, 11, 1, 1, 1) + self.formLayout_2.setWidget(2, QFormLayout.LabelRole, self.label_35) self.defaultBusVoltageSpinBox = QDoubleSpinBox(self.frame_58) self.defaultBusVoltageSpinBox.setObjectName(u"defaultBusVoltageSpinBox") @@ -916,11 +714,7 @@ def setupUi(self, mainWindow): self.defaultBusVoltageSpinBox.setMaximum(999999999.000000000000000) self.defaultBusVoltageSpinBox.setValue(10.000000000000000) - self.gridLayout.addWidget(self.defaultBusVoltageSpinBox, 1, 1, 1, 1) - - self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.gridLayout.addItem(self.verticalSpacer, 17, 1, 1, 1) + self.formLayout_2.setWidget(2, QFormLayout.FieldRole, self.defaultBusVoltageSpinBox) self.frame_22 = QFrame(self.frame_58) self.frame_22.setObjectName(u"frame_22") @@ -940,86 +734,30 @@ def setupUi(self, mainWindow): self.label_100 = QLabel(self.frame_22) self.label_100.setObjectName(u"label_100") - palette = QPalette() - brush = QBrush(QColor(85, 87, 83, 255)) - brush.setStyle(Qt.SolidPattern) - palette.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - brush1 = QBrush(QColor(190, 190, 190, 255)) - brush1.setStyle(Qt.SolidPattern) - palette.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_100.setPalette(palette) - font3 = QFont() - font3.setPointSize(11) - self.label_100.setFont(font3) - self.label_100.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter) - - self.horizontalLayout_15.addWidget(self.label_100) - - - self.gridLayout.addWidget(self.frame_22, 6, 0, 1, 2) - - self.frame_3 = QFrame(self.frame_58) - self.frame_3.setObjectName(u"frame_3") - self.frame_3.setFrameShape(QFrame.NoFrame) - self.frame_3.setFrameShadow(QFrame.Raised) - self.formLayout_2 = QFormLayout(self.frame_3) - self.formLayout_2.setObjectName(u"formLayout_2") - self.formLayout_2.setContentsMargins(0, -1, 0, 0) - self.label_110 = QLabel(self.frame_3) - self.label_110.setObjectName(u"label_110") - self.label_110.setMinimumSize(QSize(24, 24)) - self.label_110.setMaximumSize(QSize(24, 24)) - self.label_110.setPixmap(QPixmap(u":/Icons/icons/schematic.svg")) - self.label_110.setScaledContents(True) - - self.formLayout_2.setWidget(0, QFormLayout.LabelRole, self.label_110) - - self.label_111 = QLabel(self.frame_3) - self.label_111.setObjectName(u"label_111") palette1 = QPalette() palette1.setBrush(QPalette.Active, QPalette.WindowText, brush) palette1.setBrush(QPalette.Inactive, QPalette.WindowText, brush) palette1.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_111.setPalette(palette1) - self.label_111.setFont(font3) - self.label_111.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter) - - self.formLayout_2.setWidget(0, QFormLayout.FieldRole, self.label_111) + self.label_100.setPalette(palette1) + self.label_100.setFont(font1) + self.label_100.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + self.horizontalLayout_15.addWidget(self.label_100) - self.gridLayout.addWidget(self.frame_3, 0, 0, 1, 2) - - self.frame_30 = QFrame(self.frame_58) - self.frame_30.setObjectName(u"frame_30") - self.frame_30.setFrameShape(QFrame.NoFrame) - self.frame_30.setFrameShadow(QFrame.Raised) - self.horizontalLayout_18 = QHBoxLayout(self.frame_30) - self.horizontalLayout_18.setObjectName(u"horizontalLayout_18") - self.horizontalLayout_18.setContentsMargins(0, 0, 0, 0) - self.label_66 = QLabel(self.frame_30) - self.label_66.setObjectName(u"label_66") - self.label_66.setMinimumSize(QSize(24, 24)) - self.label_66.setMaximumSize(QSize(24, 24)) - self.label_66.setPixmap(QPixmap(u":/Icons/icons/picture.svg")) - self.label_66.setScaledContents(True) - self.horizontalLayout_18.addWidget(self.label_66) + self.formLayout_2.setWidget(3, QFormLayout.LabelRole, self.frame_22) - self.label_45 = QLabel(self.frame_30) - self.label_45.setObjectName(u"label_45") - palette2 = QPalette() - palette2.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette2.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette2.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_45.setPalette(palette2) - self.label_45.setFont(font3) - self.label_45.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter) + self.label_118 = QLabel(self.frame_58) + self.label_118.setObjectName(u"label_118") + self.label_118.setFont(font2) - self.horizontalLayout_18.addWidget(self.label_45) + self.formLayout_2.setWidget(4, QFormLayout.LabelRole, self.label_118) + self.tile_provider_comboBox = QComboBox(self.frame_58) + self.tile_provider_comboBox.setObjectName(u"tile_provider_comboBox") + self.tile_provider_comboBox.setFont(font2) - self.gridLayout.addWidget(self.frame_30, 14, 0, 1, 2) + self.formLayout_2.setWidget(4, QFormLayout.FieldRole, self.tile_provider_comboBox) self.frame_24 = QFrame(self.frame_58) self.frame_24.setObjectName(u"frame_24") @@ -1039,42 +777,208 @@ def setupUi(self, mainWindow): self.label_155 = QLabel(self.frame_24) self.label_155.setObjectName(u"label_155") - palette3 = QPalette() - palette3.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette3.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette3.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_155.setPalette(palette3) - self.label_155.setFont(font3) - self.label_155.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter) + palette2 = QPalette() + palette2.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette2.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette2.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_155.setPalette(palette2) + self.label_155.setFont(font1) + self.label_155.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.horizontalLayout_17.addWidget(self.label_155) - self.gridLayout.addWidget(self.frame_24, 8, 0, 1, 2) + self.formLayout_2.setWidget(5, QFormLayout.LabelRole, self.frame_24) - self.branch_width_based_on_flow_checkBox = QCheckBox(self.frame_58) - self.branch_width_based_on_flow_checkBox.setObjectName(u"branch_width_based_on_flow_checkBox") - self.branch_width_based_on_flow_checkBox.setFont(font2) - self.branch_width_based_on_flow_checkBox.setChecked(False) + self.label = QLabel(self.frame_58) + self.label.setObjectName(u"label") + self.label.setFont(font2) - self.gridLayout.addWidget(self.branch_width_based_on_flow_checkBox, 13, 1, 1, 1) + self.formLayout_2.setWidget(6, QFormLayout.LabelRole, self.label) + self.min_node_size_spinBox = QDoubleSpinBox(self.frame_58) + self.min_node_size_spinBox.setObjectName(u"min_node_size_spinBox") + self.min_node_size_spinBox.setFont(font2) + self.min_node_size_spinBox.setDecimals(1) + self.min_node_size_spinBox.setMinimum(0.100000000000000) + self.min_node_size_spinBox.setSingleStep(0.100000000000000) + self.min_node_size_spinBox.setValue(20.000000000000000) - self.verticalLayout_38.addWidget(self.frame_58) + self.formLayout_2.setWidget(6, QFormLayout.FieldRole, self.min_node_size_spinBox) - self.tabWidget_6.addTab(self.tab_4, icon49, "") + self.label_9 = QLabel(self.frame_58) + self.label_9.setObjectName(u"label_9") + self.label_9.setFont(font2) - self.verticalLayout_2.addWidget(self.tabWidget_6) + self.formLayout_2.setWidget(7, QFormLayout.LabelRole, self.label_9) - self.diagram_selection_splitter.addWidget(self.diagram_selection_frame) + self.max_node_size_spinBox = QDoubleSpinBox(self.frame_58) + self.max_node_size_spinBox.setObjectName(u"max_node_size_spinBox") + self.max_node_size_spinBox.setFont(font2) + self.max_node_size_spinBox.setDecimals(1) + self.max_node_size_spinBox.setMinimum(0.100000000000000) + self.max_node_size_spinBox.setSingleStep(0.100000000000000) + self.max_node_size_spinBox.setValue(40.000000000000000) - self.verticalLayout_5.addWidget(self.diagram_selection_splitter) + self.formLayout_2.setWidget(7, QFormLayout.FieldRole, self.max_node_size_spinBox) + self.label_14 = QLabel(self.frame_58) + self.label_14.setObjectName(u"label_14") + self.label_14.setFont(font2) - self.verticalLayout_30.addWidget(self.frame_6) + self.formLayout_2.setWidget(8, QFormLayout.LabelRole, self.label_14) - self.tabWidget_3.addTab(self.GridSectionTab, icon58, "") - self.DataTab = QWidget() + self.min_branch_size_spinBox = QDoubleSpinBox(self.frame_58) + self.min_branch_size_spinBox.setObjectName(u"min_branch_size_spinBox") + self.min_branch_size_spinBox.setFont(font2) + self.min_branch_size_spinBox.setDecimals(1) + self.min_branch_size_spinBox.setSingleStep(0.100000000000000) + self.min_branch_size_spinBox.setValue(0.500000000000000) + + self.formLayout_2.setWidget(8, QFormLayout.FieldRole, self.min_branch_size_spinBox) + + self.label_15 = QLabel(self.frame_58) + self.label_15.setObjectName(u"label_15") + self.label_15.setFont(font2) + + self.formLayout_2.setWidget(9, QFormLayout.LabelRole, self.label_15) + + self.max_branch_size_spinBox = QDoubleSpinBox(self.frame_58) + self.max_branch_size_spinBox.setObjectName(u"max_branch_size_spinBox") + self.max_branch_size_spinBox.setFont(font2) + self.max_branch_size_spinBox.setDecimals(1) + self.max_branch_size_spinBox.setSingleStep(0.100000000000000) + self.max_branch_size_spinBox.setValue(20.000000000000000) + + self.formLayout_2.setWidget(9, QFormLayout.FieldRole, self.max_branch_size_spinBox) + + self.branch_width_based_on_flow_checkBox = QCheckBox(self.frame_58) + self.branch_width_based_on_flow_checkBox.setObjectName(u"branch_width_based_on_flow_checkBox") + self.branch_width_based_on_flow_checkBox.setFont(font2) + self.branch_width_based_on_flow_checkBox.setChecked(False) + + self.formLayout_2.setWidget(10, QFormLayout.LabelRole, self.branch_width_based_on_flow_checkBox) + + self.frame_30 = QFrame(self.frame_58) + self.frame_30.setObjectName(u"frame_30") + self.frame_30.setFrameShape(QFrame.NoFrame) + self.frame_30.setFrameShadow(QFrame.Raised) + self.horizontalLayout_18 = QHBoxLayout(self.frame_30) + self.horizontalLayout_18.setObjectName(u"horizontalLayout_18") + self.horizontalLayout_18.setContentsMargins(0, 0, 0, 0) + self.label_66 = QLabel(self.frame_30) + self.label_66.setObjectName(u"label_66") + self.label_66.setMinimumSize(QSize(24, 24)) + self.label_66.setMaximumSize(QSize(24, 24)) + self.label_66.setPixmap(QPixmap(u":/Icons/icons/picture.svg")) + self.label_66.setScaledContents(True) + + self.horizontalLayout_18.addWidget(self.label_66) + + self.label_45 = QLabel(self.frame_30) + self.label_45.setObjectName(u"label_45") + palette3 = QPalette() + palette3.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette3.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette3.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_45.setPalette(palette3) + self.label_45.setFont(font1) + self.label_45.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + + self.horizontalLayout_18.addWidget(self.label_45) + + + self.formLayout_2.setWidget(11, QFormLayout.SpanningRole, self.frame_30) + + self.label_32 = QLabel(self.frame_58) + self.label_32.setObjectName(u"label_32") + self.label_32.setFont(font2) + + self.formLayout_2.setWidget(12, QFormLayout.LabelRole, self.label_32) + + self.resolution_factor_spinBox = QSpinBox(self.frame_58) + self.resolution_factor_spinBox.setObjectName(u"resolution_factor_spinBox") + self.resolution_factor_spinBox.setFont(font2) + self.resolution_factor_spinBox.setMinimum(1) + self.resolution_factor_spinBox.setMaximum(100) + self.resolution_factor_spinBox.setValue(10) + + self.formLayout_2.setWidget(12, QFormLayout.FieldRole, self.resolution_factor_spinBox) + + self.label_150 = QLabel(self.frame_58) + self.label_150.setObjectName(u"label_150") + self.label_150.setFont(font2) + + self.formLayout_2.setWidget(13, QFormLayout.LabelRole, self.label_150) + + self.fps_spinBox = QSpinBox(self.frame_58) + self.fps_spinBox.setObjectName(u"fps_spinBox") + self.fps_spinBox.setFont(font2) + self.fps_spinBox.setMinimum(1) + self.fps_spinBox.setMaximum(9999) + self.fps_spinBox.setValue(30) + + self.formLayout_2.setWidget(13, QFormLayout.FieldRole, self.fps_spinBox) + + self.frame_37 = QFrame(self.frame_58) + self.frame_37.setObjectName(u"frame_37") + self.frame_37.setFrameShape(QFrame.NoFrame) + self.frame_37.setFrameShadow(QFrame.Raised) + self.horizontalLayout_19 = QHBoxLayout(self.frame_37) + self.horizontalLayout_19.setObjectName(u"horizontalLayout_19") + self.horizontalLayout_19.setContentsMargins(0, 0, 0, 0) + self.label_76 = QLabel(self.frame_37) + self.label_76.setObjectName(u"label_76") + self.label_76.setMinimumSize(QSize(24, 24)) + self.label_76.setMaximumSize(QSize(24, 24)) + self.label_76.setPixmap(QPixmap(u":/Icons/icons/plot.svg")) + self.label_76.setScaledContents(True) + + self.horizontalLayout_19.addWidget(self.label_76) + + self.label_49 = QLabel(self.frame_37) + self.label_49.setObjectName(u"label_49") + palette4 = QPalette() + palette4.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette4.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette4.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_49.setPalette(palette4) + self.label_49.setFont(font1) + self.label_49.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + + self.horizontalLayout_19.addWidget(self.label_49) + + + self.formLayout_2.setWidget(14, QFormLayout.SpanningRole, self.frame_37) + + self.label_38 = QLabel(self.frame_58) + self.label_38.setObjectName(u"label_38") + self.label_38.setFont(font2) + + self.formLayout_2.setWidget(15, QFormLayout.LabelRole, self.label_38) + + self.plt_style_comboBox = QComboBox(self.frame_58) + self.plt_style_comboBox.setObjectName(u"plt_style_comboBox") + self.plt_style_comboBox.setFont(font2) + + self.formLayout_2.setWidget(15, QFormLayout.FieldRole, self.plt_style_comboBox) + + + self.verticalLayout_38.addWidget(self.frame_58) + + self.tabWidget_6.addTab(self.tab_4, icon49, "") + + self.verticalLayout_2.addWidget(self.tabWidget_6) + + self.diagram_selection_splitter.addWidget(self.diagram_selection_frame) + + self.verticalLayout_5.addWidget(self.diagram_selection_splitter) + + + self.verticalLayout_30.addWidget(self.frame_6) + + self.tabWidget_3.addTab(self.GridSectionTab, icon58, "") + self.DataTab = QWidget() self.DataTab.setObjectName(u"DataTab") self.verticalLayout_8 = QVBoxLayout(self.DataTab) self.verticalLayout_8.setObjectName(u"verticalLayout_8") @@ -1148,7 +1052,7 @@ def setupUi(self, mainWindow): self.dataStructureTableView = QTableView(self.tab_15) self.dataStructureTableView.setObjectName(u"dataStructureTableView") - self.dataStructureTableView.setFont(font1) + self.dataStructureTableView.setFont(font) self.verticalLayout_20.addWidget(self.dataStructureTableView) @@ -1176,7 +1080,7 @@ def setupUi(self, mainWindow): self.db_step_label = QLabel(self.frame_9) self.db_step_label.setObjectName(u"db_step_label") self.db_step_label.setMinimumSize(QSize(200, 0)) - self.db_step_label.setFont(font1) + self.db_step_label.setFont(font) self.db_step_label.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignVCenter) self.horizontalLayout_25.addWidget(self.db_step_label) @@ -1245,7 +1149,7 @@ def setupUi(self, mainWindow): self.verticalLayout_14.setContentsMargins(0, 0, 0, 0) self.associationsTableView = QTableView(self.frame_20) self.associationsTableView.setObjectName(u"associationsTableView") - self.associationsTableView.setFont(font1) + self.associationsTableView.setFont(font) self.verticalLayout_14.addWidget(self.associationsTableView) @@ -1322,7 +1226,7 @@ def setupUi(self, mainWindow): self.profiles_tableView = QTableView(self.tab_16) self.profiles_tableView.setObjectName(u"profiles_tableView") - self.profiles_tableView.setFont(font1) + self.profiles_tableView.setFont(font) self.profiles_tableView.setLayoutDirection(Qt.LeftToRight) self.profiles_tableView.setAlternatingRowColors(True) self.profiles_tableView.setSelectionMode(QAbstractItemView.ContiguousSelection) @@ -1443,17 +1347,10 @@ def setupUi(self, mainWindow): self.gridLayout_19 = QGridLayout(self.frame_28) self.gridLayout_19.setObjectName(u"gridLayout_19") self.gridLayout_19.setContentsMargins(-1, -1, 0, -1) - self.simulation_data_island_comboBox = QComboBox(self.frame_28) - self.simulation_data_island_comboBox.setObjectName(u"simulation_data_island_comboBox") - - self.gridLayout_19.addWidget(self.simulation_data_island_comboBox, 0, 2, 1, 2) - - self.exportSimulationDataButton = QPushButton(self.frame_28) - self.exportSimulationDataButton.setObjectName(u"exportSimulationDataButton") - self.exportSimulationDataButton.setMaximumSize(QSize(32, 16777215)) - self.exportSimulationDataButton.setIcon(icon19) + self.simulationDataStructuresListView = QListView(self.frame_28) + self.simulationDataStructuresListView.setObjectName(u"simulationDataStructuresListView") - self.gridLayout_19.addWidget(self.exportSimulationDataButton, 0, 1, 1, 1) + self.gridLayout_19.addWidget(self.simulationDataStructuresListView, 1, 0, 1, 4) self.compute_simulation_data_pushButton = QPushButton(self.frame_28) self.compute_simulation_data_pushButton.setObjectName(u"compute_simulation_data_pushButton") @@ -1464,10 +1361,17 @@ def setupUi(self, mainWindow): self.gridLayout_19.addWidget(self.compute_simulation_data_pushButton, 0, 0, 1, 1) - self.simulationDataStructuresTreeView = QTreeView(self.frame_28) - self.simulationDataStructuresTreeView.setObjectName(u"simulationDataStructuresTreeView") + self.exportSimulationDataButton = QPushButton(self.frame_28) + self.exportSimulationDataButton.setObjectName(u"exportSimulationDataButton") + self.exportSimulationDataButton.setMaximumSize(QSize(32, 16777215)) + self.exportSimulationDataButton.setIcon(icon19) + + self.gridLayout_19.addWidget(self.exportSimulationDataButton, 0, 1, 1, 1) + + self.simulation_data_island_comboBox = QComboBox(self.frame_28) + self.simulation_data_island_comboBox.setObjectName(u"simulation_data_island_comboBox") - self.gridLayout_19.addWidget(self.simulationDataStructuresTreeView, 1, 0, 1, 4) + self.gridLayout_19.addWidget(self.simulation_data_island_comboBox, 0, 2, 1, 2) self.simulationDataSplitter.addWidget(self.frame_28) self.frame_29 = QFrame(self.simulationDataSplitter) @@ -1577,13 +1481,13 @@ def setupUi(self, mainWindow): self.label_16 = QLabel(self.frame_62) self.label_16.setObjectName(u"label_16") self.label_16.setMinimumSize(QSize(0, 24)) - palette4 = QPalette() + palette5 = QPalette() brush2 = QBrush(QColor(119, 118, 123, 255)) brush2.setStyle(Qt.SolidPattern) - palette4.setBrush(QPalette.Active, QPalette.WindowText, brush2) - palette4.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) - palette4.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_16.setPalette(palette4) + palette5.setBrush(QPalette.Active, QPalette.WindowText, brush2) + palette5.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) + palette5.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_16.setPalette(palette5) self.horizontalLayout_34.addWidget(self.label_16) @@ -1623,11 +1527,11 @@ def setupUi(self, mainWindow): self.horizontalLayout_33.setContentsMargins(0, 0, 0, 0) self.label_37 = QLabel(self.frame_60) self.label_37.setObjectName(u"label_37") - palette5 = QPalette() - palette5.setBrush(QPalette.Active, QPalette.WindowText, brush2) - palette5.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) - palette5.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_37.setPalette(palette5) + palette6 = QPalette() + palette6.setBrush(QPalette.Active, QPalette.WindowText, brush2) + palette6.setBrush(QPalette.Inactive, QPalette.WindowText, brush2) + palette6.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_37.setPalette(palette6) self.horizontalLayout_33.addWidget(self.label_37) @@ -1674,7 +1578,7 @@ def setupUi(self, mainWindow): self.verticalLayout_24.setContentsMargins(0, 0, 8, 8) self.resultsTableView = QTableView(self.frame_5) self.resultsTableView.setObjectName(u"resultsTableView") - self.resultsTableView.setFont(font1) + self.resultsTableView.setFont(font) self.resultsTableView.setAlternatingRowColors(True) self.resultsTableView.setSelectionMode(QAbstractItemView.ExtendedSelection) self.resultsTableView.setSelectionBehavior(QAbstractItemView.SelectItems) @@ -1770,7 +1674,7 @@ def setupUi(self, mainWindow): self.verticalLayout_41.setContentsMargins(-1, 6, -1, -1) self.resultsLogsTreeView = QTreeView(self.tab_14) self.resultsLogsTreeView.setObjectName(u"resultsLogsTreeView") - self.resultsLogsTreeView.setFont(font1) + self.resultsLogsTreeView.setFont(font) self.resultsLogsTreeView.setFrameShape(QFrame.StyledPanel) self.verticalLayout_41.addWidget(self.resultsLogsTreeView) @@ -1954,14 +1858,14 @@ def setupUi(self, mainWindow): self.label_69 = QLabel(self.frame_41) self.label_69.setObjectName(u"label_69") - palette6 = QPalette() - palette6.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette6.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette6.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_69.setPalette(palette6) - font4 = QFont() - font4.setPointSize(16) - self.label_69.setFont(font4) + palette7 = QPalette() + palette7.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette7.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette7.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_69.setPalette(palette7) + font3 = QFont() + font3.setPointSize(16) + self.label_69.setFont(font3) self.label_69.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.horizontalLayout_13.addWidget(self.label_69) @@ -1971,13 +1875,13 @@ def setupUi(self, mainWindow): self.line_5 = QFrame(self.frame_7) self.line_5.setObjectName(u"line_5") - palette7 = QPalette() + palette8 = QPalette() brush3 = QBrush(QColor(186, 189, 182, 255)) brush3.setStyle(Qt.SolidPattern) - palette7.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette7.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette7.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_5.setPalette(palette7) + palette8.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette8.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette8.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_5.setPalette(palette8) self.line_5.setFrameShadow(QFrame.Plain) self.line_5.setLineWidth(4) self.line_5.setFrameShape(QFrame.Shape.HLine) @@ -1992,13 +1896,11 @@ def setupUi(self, mainWindow): self.verticalLayout_17.setObjectName(u"verticalLayout_17") self.label_57 = QLabel(self.frame_25) self.label_57.setObjectName(u"label_57") - self.label_57.setFont(font1) self.verticalLayout_17.addWidget(self.label_57) self.sbase_doubleSpinBox = QDoubleSpinBox(self.frame_25) self.sbase_doubleSpinBox.setObjectName(u"sbase_doubleSpinBox") - self.sbase_doubleSpinBox.setFont(font1) self.sbase_doubleSpinBox.setDecimals(0) self.sbase_doubleSpinBox.setMinimum(1.000000000000000) self.sbase_doubleSpinBox.setMaximum(10000000000000000000.000000000000000) @@ -2008,13 +1910,11 @@ def setupUi(self, mainWindow): self.label_58 = QLabel(self.frame_25) self.label_58.setObjectName(u"label_58") - self.label_58.setFont(font1) self.verticalLayout_17.addWidget(self.label_58) self.fbase_doubleSpinBox = QDoubleSpinBox(self.frame_25) self.fbase_doubleSpinBox.setObjectName(u"fbase_doubleSpinBox") - self.fbase_doubleSpinBox.setFont(font1) self.fbase_doubleSpinBox.setDecimals(0) self.fbase_doubleSpinBox.setMinimum(50.000000000000000) self.fbase_doubleSpinBox.setMaximum(60.000000000000000) @@ -2024,13 +1924,11 @@ def setupUi(self, mainWindow): self.label_101 = QLabel(self.frame_25) self.label_101.setObjectName(u"label_101") - self.label_101.setFont(font1) self.verticalLayout_17.addWidget(self.label_101) self.snapshot_dateTimeEdit = QDateTimeEdit(self.frame_25) self.snapshot_dateTimeEdit.setObjectName(u"snapshot_dateTimeEdit") - self.snapshot_dateTimeEdit.setFont(font1) self.snapshot_dateTimeEdit.setCalendarPopup(True) self.verticalLayout_17.addWidget(self.snapshot_dateTimeEdit) @@ -2040,87 +1938,17 @@ def setupUi(self, mainWindow): self.verticalLayout_17.addWidget(self.label_40) - self.frame_43 = QFrame(self.frame_25) - self.frame_43.setObjectName(u"frame_43") - self.frame_43.setFrameShape(QFrame.NoFrame) - self.frame_43.setFrameShadow(QFrame.Raised) - self.horizontalLayout_23 = QHBoxLayout(self.frame_43) - self.horizontalLayout_23.setObjectName(u"horizontalLayout_23") - self.horizontalLayout_23.setContentsMargins(0, 0, 0, 0) - self.label_86 = QLabel(self.frame_43) - self.label_86.setObjectName(u"label_86") - self.label_86.setMinimumSize(QSize(24, 24)) - self.label_86.setMaximumSize(QSize(24, 24)) - self.label_86.setPixmap(QPixmap(u":/Icons/icons/piece.svg")) - self.label_86.setScaledContents(True) - - self.horizontalLayout_23.addWidget(self.label_86) - - self.label_65 = QLabel(self.frame_43) - self.label_65.setObjectName(u"label_65") - palette8 = QPalette() - palette8.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette8.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette8.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_65.setPalette(palette8) - font5 = QFont() - font5.setPointSize(12) - self.label_65.setFont(font5) - self.label_65.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) - - self.horizontalLayout_23.addWidget(self.label_65) - + self.label_31 = QLabel(self.frame_25) + self.label_31.setObjectName(u"label_31") + self.label_31.setFont(font1) - self.verticalLayout_17.addWidget(self.frame_43) + self.verticalLayout_17.addWidget(self.label_31) self.engineComboBox = QComboBox(self.frame_25) self.engineComboBox.setObjectName(u"engineComboBox") - self.engineComboBox.setFont(font1) self.verticalLayout_17.addWidget(self.engineComboBox) - self.label_48 = QLabel(self.frame_25) - self.label_48.setObjectName(u"label_48") - - self.verticalLayout_17.addWidget(self.label_48) - - self.frame_37 = QFrame(self.frame_25) - self.frame_37.setObjectName(u"frame_37") - self.frame_37.setFrameShape(QFrame.NoFrame) - self.frame_37.setFrameShadow(QFrame.Raised) - self.horizontalLayout_19 = QHBoxLayout(self.frame_37) - self.horizontalLayout_19.setObjectName(u"horizontalLayout_19") - self.horizontalLayout_19.setContentsMargins(0, 0, 0, 0) - self.label_76 = QLabel(self.frame_37) - self.label_76.setObjectName(u"label_76") - self.label_76.setMinimumSize(QSize(24, 24)) - self.label_76.setMaximumSize(QSize(24, 24)) - self.label_76.setPixmap(QPixmap(u":/Icons/icons/plot.svg")) - self.label_76.setScaledContents(True) - - self.horizontalLayout_19.addWidget(self.label_76) - - self.label_49 = QLabel(self.frame_37) - self.label_49.setObjectName(u"label_49") - palette9 = QPalette() - palette9.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette9.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette9.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_49.setPalette(palette9) - self.label_49.setFont(font5) - self.label_49.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) - - self.horizontalLayout_19.addWidget(self.label_49) - - - self.verticalLayout_17.addWidget(self.frame_37) - - self.plt_style_comboBox = QComboBox(self.frame_25) - self.plt_style_comboBox.setObjectName(u"plt_style_comboBox") - self.plt_style_comboBox.setFont(font1) - - self.verticalLayout_17.addWidget(self.plt_style_comboBox) - self.verticalLayout_12.addWidget(self.frame_25) @@ -2130,7 +1958,6 @@ def setupUi(self, mainWindow): self.dark_mode_checkBox = QCheckBox(self.frame_7) self.dark_mode_checkBox.setObjectName(u"dark_mode_checkBox") - self.dark_mode_checkBox.setFont(font1) self.verticalLayout_12.addWidget(self.dark_mode_checkBox) @@ -2140,7 +1967,7 @@ def setupUi(self, mainWindow): self.settings_tabWidget = QTabWidget(self.SettingsTab) self.settings_tabWidget.setObjectName(u"settings_tabWidget") self.settings_tabWidget.setEnabled(True) - self.settings_tabWidget.setFont(font) + self.settings_tabWidget.setFont(font1) self.settings_tabWidget.setAutoFillBackground(False) self.settings_tabWidget.setTabPosition(QTabWidget.South) self.settings_tabWidget.setIconSize(QSize(16, 16)) @@ -2164,23 +1991,23 @@ def setupUi(self, mainWindow): self.label_17 = QLabel(self.pf_tab) self.label_17.setObjectName(u"label_17") - palette10 = QPalette() - palette10.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette10.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette10.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_17.setPalette(palette10) - self.label_17.setFont(font4) + palette9 = QPalette() + palette9.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette9.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette9.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_17.setPalette(palette9) + self.label_17.setFont(font3) self.label_17.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.gridLayout_24.addWidget(self.label_17, 0, 1, 1, 1) self.line_14 = QFrame(self.pf_tab) self.line_14.setObjectName(u"line_14") - palette11 = QPalette() - palette11.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette11.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette11.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_14.setPalette(palette11) + palette10 = QPalette() + palette10.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette10.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette10.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_14.setPalette(palette10) self.line_14.setFrameShadow(QFrame.Plain) self.line_14.setLineWidth(4) self.line_14.setFrameShape(QFrame.Shape.HLine) @@ -2193,90 +2020,179 @@ def setupUi(self, mainWindow): self.frame_19.setFrameShadow(QFrame.Raised) self.gridLayout_22 = QGridLayout(self.frame_19) self.gridLayout_22.setObjectName(u"gridLayout_22") + self.auto_precision_checkBox = QCheckBox(self.frame_19) + self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") + + self.gridLayout_22.addWidget(self.auto_precision_checkBox, 6, 0, 1, 2) + + self.helm_retry_checkBox = QCheckBox(self.frame_19) + self.helm_retry_checkBox.setObjectName(u"helm_retry_checkBox") + self.helm_retry_checkBox.setChecked(True) + + self.gridLayout_22.addWidget(self.helm_retry_checkBox, 3, 0, 1, 2) + + self.verbositySpinBox = QSpinBox(self.frame_19) + self.verbositySpinBox.setObjectName(u"verbositySpinBox") + self.verbositySpinBox.setMaximum(2) + + self.gridLayout_22.addWidget(self.verbositySpinBox, 13, 1, 1, 1) + + self.label_5 = QLabel(self.frame_19) + self.label_5.setObjectName(u"label_5") + + self.gridLayout_22.addWidget(self.label_5, 10, 0, 1, 1) + + self.label_86 = QLabel(self.frame_19) + self.label_86.setObjectName(u"label_86") + + self.gridLayout_22.addWidget(self.label_86, 2, 0, 1, 2) + + self.label_22 = QLabel(self.frame_19) + self.label_22.setObjectName(u"label_22") + + self.gridLayout_22.addWidget(self.label_22, 14, 0, 1, 2) + self.tolerance_spinBox = QSpinBox(self.frame_19) self.tolerance_spinBox.setObjectName(u"tolerance_spinBox") - self.tolerance_spinBox.setFont(font1) self.tolerance_spinBox.setMinimum(1) self.tolerance_spinBox.setMaximum(15) self.tolerance_spinBox.setValue(4) - self.gridLayout_22.addWidget(self.tolerance_spinBox, 8, 1, 1, 1) + self.gridLayout_22.addWidget(self.tolerance_spinBox, 10, 1, 1, 1) + + self.distributed_slack_checkBox = QCheckBox(self.frame_19) + self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") + + self.gridLayout_22.addWidget(self.distributed_slack_checkBox, 4, 0, 1, 2) self.label_2 = QLabel(self.frame_19) self.label_2.setObjectName(u"label_2") - self.label_2.setFont(font1) self.gridLayout_22.addWidget(self.label_2, 0, 0, 1, 1) - self.label_22 = QLabel(self.frame_19) - self.label_22.setObjectName(u"label_22") + self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.gridLayout_22.addItem(self.verticalSpacer_10, 15, 0, 1, 1) + + self.label_11 = QLabel(self.frame_19) + self.label_11.setObjectName(u"label_11") - self.gridLayout_22.addWidget(self.label_22, 12, 0, 1, 2) + self.gridLayout_22.addWidget(self.label_11, 11, 0, 1, 1) self.max_iterations_spinBox = QSpinBox(self.frame_19) self.max_iterations_spinBox.setObjectName(u"max_iterations_spinBox") - self.max_iterations_spinBox.setFont(font1) self.max_iterations_spinBox.setMinimum(1) self.max_iterations_spinBox.setMaximum(1000) self.max_iterations_spinBox.setValue(40) - self.gridLayout_22.addWidget(self.max_iterations_spinBox, 10, 1, 1, 1) - - self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.gridLayout_22.addItem(self.verticalSpacer_10, 13, 0, 1, 1) + self.gridLayout_22.addWidget(self.max_iterations_spinBox, 12, 1, 1, 1) self.label_6 = QLabel(self.frame_19) self.label_6.setObjectName(u"label_6") - self.label_6.setFont(font1) - - self.gridLayout_22.addWidget(self.label_6, 10, 0, 1, 1) - - self.solver_comboBox = QComboBox(self.frame_19) - self.solver_comboBox.setObjectName(u"solver_comboBox") - self.solver_comboBox.setMinimumSize(QSize(200, 0)) - self.solver_comboBox.setFont(font1) - self.gridLayout_22.addWidget(self.solver_comboBox, 0, 1, 1, 1) - - self.label_5 = QLabel(self.frame_19) - self.label_5.setObjectName(u"label_5") - self.label_5.setFont(font1) - - self.gridLayout_22.addWidget(self.label_5, 8, 0, 1, 1) + self.gridLayout_22.addWidget(self.label_6, 12, 0, 1, 1) self.muSpinBox = QDoubleSpinBox(self.frame_19) self.muSpinBox.setObjectName(u"muSpinBox") - self.muSpinBox.setFont(font1) self.muSpinBox.setDecimals(4) self.muSpinBox.setMinimum(0.000100000000000) self.muSpinBox.setMaximum(1.000000000000000) self.muSpinBox.setSingleStep(0.100000000000000) self.muSpinBox.setValue(1.000000000000000) - self.gridLayout_22.addWidget(self.muSpinBox, 9, 1, 1, 1) + self.gridLayout_22.addWidget(self.muSpinBox, 11, 1, 1, 1) + + self.use_voltage_guess_checkBox = QCheckBox(self.frame_19) + self.use_voltage_guess_checkBox.setObjectName(u"use_voltage_guess_checkBox") + + self.gridLayout_22.addWidget(self.use_voltage_guess_checkBox, 7, 0, 1, 2) + + self.label_87 = QLabel(self.frame_19) + self.label_87.setObjectName(u"label_87") + + self.gridLayout_22.addWidget(self.label_87, 9, 0, 1, 2) + + self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_19) + self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") + self.ignore_single_node_islands_checkBox.setChecked(True) + + self.gridLayout_22.addWidget(self.ignore_single_node_islands_checkBox, 5, 0, 1, 2) + + self.solver_comboBox = QComboBox(self.frame_19) + self.solver_comboBox.setObjectName(u"solver_comboBox") + + self.gridLayout_22.addWidget(self.solver_comboBox, 1, 0, 1, 2) self.label_23 = QLabel(self.frame_19) self.label_23.setObjectName(u"label_23") - self.label_23.setFont(font1) - self.gridLayout_22.addWidget(self.label_23, 11, 0, 1, 1) + self.gridLayout_22.addWidget(self.label_23, 13, 0, 1, 1) - self.verbositySpinBox = QSpinBox(self.frame_19) - self.verbositySpinBox.setObjectName(u"verbositySpinBox") - self.verbositySpinBox.setFont(font1) - self.verbositySpinBox.setMaximum(2) + self.addPowerFlowReportCheckBox = QCheckBox(self.frame_19) + self.addPowerFlowReportCheckBox.setObjectName(u"addPowerFlowReportCheckBox") - self.gridLayout_22.addWidget(self.verbositySpinBox, 11, 1, 1, 1) + self.gridLayout_22.addWidget(self.addPowerFlowReportCheckBox, 8, 0, 1, 1) - self.label_11 = QLabel(self.frame_19) - self.label_11.setObjectName(u"label_11") - self.label_11.setFont(font1) - self.gridLayout_22.addWidget(self.label_11, 9, 0, 1, 1) + self.gridLayout_24.addWidget(self.frame_19, 2, 0, 1, 3) + + self.frame_36 = QFrame(self.pf_tab) + self.frame_36.setObjectName(u"frame_36") + self.frame_36.setFrameShape(QFrame.NoFrame) + self.frame_36.setFrameShadow(QFrame.Plain) + self.verticalLayout_4 = QVBoxLayout(self.frame_36) + self.verticalLayout_4.setObjectName(u"verticalLayout_4") + self.label_48 = QLabel(self.frame_36) + self.label_48.setObjectName(u"label_48") + + self.verticalLayout_4.addWidget(self.label_48) + self.reactive_power_control_mode_comboBox = QComboBox(self.frame_36) + self.reactive_power_control_mode_comboBox.setObjectName(u"reactive_power_control_mode_comboBox") - self.gridLayout_24.addWidget(self.frame_19, 2, 0, 1, 3) + self.verticalLayout_4.addWidget(self.reactive_power_control_mode_comboBox) + + self.label_641 = QLabel(self.frame_36) + self.label_641.setObjectName(u"label_641") + + self.verticalLayout_4.addWidget(self.label_641) + + self.label_50 = QLabel(self.frame_36) + self.label_50.setObjectName(u"label_50") + + self.verticalLayout_4.addWidget(self.label_50) + + self.taps_control_mode_comboBox = QComboBox(self.frame_36) + self.taps_control_mode_comboBox.setObjectName(u"taps_control_mode_comboBox") + + self.verticalLayout_4.addWidget(self.taps_control_mode_comboBox) + + self.label_65 = QLabel(self.frame_36) + self.label_65.setObjectName(u"label_65") + + self.verticalLayout_4.addWidget(self.label_65) + + self.temperature_correction_checkBox = QCheckBox(self.frame_36) + self.temperature_correction_checkBox.setObjectName(u"temperature_correction_checkBox") + + self.verticalLayout_4.addWidget(self.temperature_correction_checkBox) + + self.apply_impedance_tolerances_checkBox = QCheckBox(self.frame_36) + self.apply_impedance_tolerances_checkBox.setObjectName(u"apply_impedance_tolerances_checkBox") + + self.verticalLayout_4.addWidget(self.apply_impedance_tolerances_checkBox) + + self.override_branch_controls_checkBox = QCheckBox(self.frame_36) + self.override_branch_controls_checkBox.setObjectName(u"override_branch_controls_checkBox") + + self.verticalLayout_4.addWidget(self.override_branch_controls_checkBox) + + self.verticalSpacer_14 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_4.addItem(self.verticalSpacer_14) + + + self.gridLayout_24.addWidget(self.frame_36, 2, 3, 1, 1) self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) @@ -2293,23 +2209,23 @@ def setupUi(self, mainWindow): self.label_71 = QLabel(self.pf_tab) self.label_71.setObjectName(u"label_71") - palette12 = QPalette() - palette12.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette12.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette12.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_71.setPalette(palette12) - self.label_71.setFont(font4) + palette11 = QPalette() + palette11.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette11.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette11.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_71.setPalette(palette11) + self.label_71.setFont(font3) self.label_71.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.gridLayout_24.addWidget(self.label_71, 0, 5, 1, 1) self.line_22 = QFrame(self.pf_tab) self.line_22.setObjectName(u"line_22") - palette13 = QPalette() - palette13.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette13.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette13.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_22.setPalette(palette13) + palette12 = QPalette() + palette12.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette12.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette12.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_22.setPalette(palette12) self.line_22.setFrameShadow(QFrame.Plain) self.line_22.setLineWidth(4) self.line_22.setFrameShape(QFrame.Shape.HLine) @@ -2325,38 +2241,32 @@ def setupUi(self, mainWindow): self.gridLayout_14.setContentsMargins(-1, 0, -1, -1) self.ptdf_correct_nonsense_values_checkBox = QCheckBox(self.frame_32) self.ptdf_correct_nonsense_values_checkBox.setObjectName(u"ptdf_correct_nonsense_values_checkBox") - self.ptdf_correct_nonsense_values_checkBox.setFont(font1) self.ptdf_correct_nonsense_values_checkBox.setChecked(False) self.gridLayout_14.addWidget(self.ptdf_correct_nonsense_values_checkBox, 3, 0, 1, 2) self.usePfValuesForAtcCheckBox = QCheckBox(self.frame_32) self.usePfValuesForAtcCheckBox.setObjectName(u"usePfValuesForAtcCheckBox") - self.usePfValuesForAtcCheckBox.setFont(font1) self.usePfValuesForAtcCheckBox.setChecked(True) self.gridLayout_14.addWidget(self.usePfValuesForAtcCheckBox, 4, 0, 1, 2) self.ptdf_distributed_slack_checkBox = QCheckBox(self.frame_32) self.ptdf_distributed_slack_checkBox.setObjectName(u"ptdf_distributed_slack_checkBox") - self.ptdf_distributed_slack_checkBox.setFont(font1) self.ptdf_distributed_slack_checkBox.setChecked(False) self.gridLayout_14.addWidget(self.ptdf_distributed_slack_checkBox, 2, 0, 1, 2) self.ptdf_threshold_doubleSpinBox = QDoubleSpinBox(self.frame_32) self.ptdf_threshold_doubleSpinBox.setObjectName(u"ptdf_threshold_doubleSpinBox") - self.ptdf_threshold_doubleSpinBox.setFont(font1) self.ptdf_threshold_doubleSpinBox.setDecimals(6) self.ptdf_threshold_doubleSpinBox.setMaximum(1.000000000000000) - self.ptdf_threshold_doubleSpinBox.setSingleStep(0.001000000000000) self.ptdf_threshold_doubleSpinBox.setValue(0.010000000000000) self.gridLayout_14.addWidget(self.ptdf_threshold_doubleSpinBox, 6, 1, 1, 1) self.label_122 = QLabel(self.frame_32) self.label_122.setObjectName(u"label_122") - self.label_122.setFont(font1) self.gridLayout_14.addWidget(self.label_122, 7, 0, 1, 1) @@ -2376,17 +2286,14 @@ def setupUi(self, mainWindow): self.lodf_threshold_doubleSpinBox = QDoubleSpinBox(self.frame_32) self.lodf_threshold_doubleSpinBox.setObjectName(u"lodf_threshold_doubleSpinBox") - self.lodf_threshold_doubleSpinBox.setFont(font1) self.lodf_threshold_doubleSpinBox.setDecimals(6) self.lodf_threshold_doubleSpinBox.setMaximum(1.000000000000000) - self.lodf_threshold_doubleSpinBox.setSingleStep(0.001000000000000) self.lodf_threshold_doubleSpinBox.setValue(0.050000000000000) self.gridLayout_14.addWidget(self.lodf_threshold_doubleSpinBox, 7, 1, 1, 1) self.label_116 = QLabel(self.frame_32) self.label_116.setObjectName(u"label_116") - self.label_116.setFont(font1) self.gridLayout_14.addWidget(self.label_116, 6, 0, 1, 1) @@ -2398,102 +2305,6 @@ def setupUi(self, mainWindow): self.gridLayout_24.addWidget(self.frame_32, 2, 4, 1, 2) - self.frame_36 = QFrame(self.pf_tab) - self.frame_36.setObjectName(u"frame_36") - self.frame_36.setFrameShape(QFrame.NoFrame) - self.frame_36.setFrameShadow(QFrame.Plain) - self.verticalLayout_4 = QVBoxLayout(self.frame_36) - self.verticalLayout_4.setObjectName(u"verticalLayout_4") - self.helm_retry_checkBox = QCheckBox(self.frame_36) - self.helm_retry_checkBox.setObjectName(u"helm_retry_checkBox") - self.helm_retry_checkBox.setFont(font1) - self.helm_retry_checkBox.setChecked(True) - - self.verticalLayout_4.addWidget(self.helm_retry_checkBox) - - self.use_voltage_guess_checkBox = QCheckBox(self.frame_36) - self.use_voltage_guess_checkBox.setObjectName(u"use_voltage_guess_checkBox") - self.use_voltage_guess_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.use_voltage_guess_checkBox) - - self.auto_precision_checkBox = QCheckBox(self.frame_36) - self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") - self.auto_precision_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.auto_precision_checkBox) - - self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_36) - self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") - self.ignore_single_node_islands_checkBox.setFont(font1) - self.ignore_single_node_islands_checkBox.setChecked(True) - - self.verticalLayout_4.addWidget(self.ignore_single_node_islands_checkBox) - - self.distributed_slack_checkBox = QCheckBox(self.frame_36) - self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") - self.distributed_slack_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.distributed_slack_checkBox) - - self.label_50 = QLabel(self.frame_36) - self.label_50.setObjectName(u"label_50") - - self.verticalLayout_4.addWidget(self.label_50) - - self.control_q_checkBox = QCheckBox(self.frame_36) - self.control_q_checkBox.setObjectName(u"control_q_checkBox") - self.control_q_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.control_q_checkBox) - - self.control_tap_modules_checkBox = QCheckBox(self.frame_36) - self.control_tap_modules_checkBox.setObjectName(u"control_tap_modules_checkBox") - self.control_tap_modules_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.control_tap_modules_checkBox) - - self.control_tap_phase_checkBox = QCheckBox(self.frame_36) - self.control_tap_phase_checkBox.setObjectName(u"control_tap_phase_checkBox") - self.control_tap_phase_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.control_tap_phase_checkBox) - - self.label_54 = QLabel(self.frame_36) - self.label_54.setObjectName(u"label_54") - - self.verticalLayout_4.addWidget(self.label_54) - - self.temperature_correction_checkBox = QCheckBox(self.frame_36) - self.temperature_correction_checkBox.setObjectName(u"temperature_correction_checkBox") - self.temperature_correction_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.temperature_correction_checkBox) - - self.apply_impedance_tolerances_checkBox = QCheckBox(self.frame_36) - self.apply_impedance_tolerances_checkBox.setObjectName(u"apply_impedance_tolerances_checkBox") - self.apply_impedance_tolerances_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.apply_impedance_tolerances_checkBox) - - self.label_56 = QLabel(self.frame_36) - self.label_56.setObjectName(u"label_56") - - self.verticalLayout_4.addWidget(self.label_56) - - self.addPowerFlowReportCheckBox = QCheckBox(self.frame_36) - self.addPowerFlowReportCheckBox.setObjectName(u"addPowerFlowReportCheckBox") - self.addPowerFlowReportCheckBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.addPowerFlowReportCheckBox) - - self.verticalSpacer_14 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.verticalLayout_4.addItem(self.verticalSpacer_14) - - - self.gridLayout_24.addWidget(self.frame_36, 2, 3, 1, 1) - self.settings_tabWidget.addTab(self.pf_tab, icon5, "") self.cpf_tab = QWidget() self.cpf_tab.setObjectName(u"cpf_tab") @@ -2508,7 +2319,6 @@ def setupUi(self, mainWindow): self.gridLayout_2.setContentsMargins(-1, 0, -1, -1) self.vs_max_iterations_spinBox = QSpinBox(self.frame_21) self.vs_max_iterations_spinBox.setObjectName(u"vs_max_iterations_spinBox") - self.vs_max_iterations_spinBox.setFont(font1) self.vs_max_iterations_spinBox.setMinimum(1) self.vs_max_iterations_spinBox.setMaximum(300) self.vs_max_iterations_spinBox.setValue(20) @@ -2517,25 +2327,21 @@ def setupUi(self, mainWindow): self.label_8 = QLabel(self.frame_21) self.label_8.setObjectName(u"label_8") - self.label_8.setFont(font1) self.gridLayout_2.addWidget(self.label_8, 3, 0, 1, 1) self.label_25 = QLabel(self.frame_21) self.label_25.setObjectName(u"label_25") - self.label_25.setFont(font1) self.gridLayout_2.addWidget(self.label_25, 15, 0, 1, 3) self.vc_stop_at_comboBox = QComboBox(self.frame_21) self.vc_stop_at_comboBox.setObjectName(u"vc_stop_at_comboBox") - self.vc_stop_at_comboBox.setFont(font1) self.gridLayout_2.addWidget(self.vc_stop_at_comboBox, 3, 1, 1, 2) self.alpha_doubleSpinBox = QDoubleSpinBox(self.frame_21) self.alpha_doubleSpinBox.setObjectName(u"alpha_doubleSpinBox") - self.alpha_doubleSpinBox.setFont(font1) self.alpha_doubleSpinBox.setMinimum(-99.000000000000000) self.alpha_doubleSpinBox.setValue(2.000000000000000) @@ -2543,11 +2349,11 @@ def setupUi(self, mainWindow): self.line_17 = QFrame(self.frame_21) self.line_17.setObjectName(u"line_17") - palette14 = QPalette() - palette14.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette14.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette14.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_17.setPalette(palette14) + palette13 = QPalette() + palette13.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette13.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette13.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_17.setPalette(palette13) self.line_17.setFrameShadow(QFrame.Plain) self.line_17.setLineWidth(4) self.line_17.setFrameShape(QFrame.Shape.HLine) @@ -2556,7 +2362,6 @@ def setupUi(self, mainWindow): self.vs_departure_comboBox = QComboBox(self.frame_21) self.vs_departure_comboBox.setObjectName(u"vs_departure_comboBox") - self.vs_departure_comboBox.setFont(font1) self.gridLayout_2.addWidget(self.vs_departure_comboBox, 11, 1, 1, 2) @@ -2567,25 +2372,21 @@ def setupUi(self, mainWindow): self.label_19 = QLabel(self.frame_21) self.label_19.setObjectName(u"label_19") - self.label_19.setFont(font1) self.gridLayout_2.addWidget(self.label_19, 11, 0, 1, 1) self.start_vs_from_selected_radioButton = QRadioButton(self.frame_21) self.start_vs_from_selected_radioButton.setObjectName(u"start_vs_from_selected_radioButton") - self.start_vs_from_selected_radioButton.setFont(font1) self.gridLayout_2.addWidget(self.start_vs_from_selected_radioButton, 10, 0, 1, 3) self.vs_target_comboBox = QComboBox(self.frame_21) self.vs_target_comboBox.setObjectName(u"vs_target_comboBox") - self.vs_target_comboBox.setFont(font1) self.gridLayout_2.addWidget(self.vs_target_comboBox, 12, 1, 1, 2) self.atcRadioButton = QRadioButton(self.frame_21) self.atcRadioButton.setObjectName(u"atcRadioButton") - self.atcRadioButton.setFont(font1) self.gridLayout_2.addWidget(self.atcRadioButton, 14, 0, 1, 3) @@ -2596,19 +2397,16 @@ def setupUi(self, mainWindow): self.label_18 = QLabel(self.frame_21) self.label_18.setObjectName(u"label_18") - self.label_18.setFont(font1) self.gridLayout_2.addWidget(self.label_18, 8, 0, 1, 1) self.label_29 = QLabel(self.frame_21) self.label_29.setObjectName(u"label_29") - self.label_29.setFont(font1) self.gridLayout_2.addWidget(self.label_29, 2, 0, 1, 1) self.label_20 = QLabel(self.frame_21) self.label_20.setObjectName(u"label_20") - self.label_20.setFont(font1) self.gridLayout_2.addWidget(self.label_20, 12, 0, 1, 1) @@ -2635,12 +2433,12 @@ def setupUi(self, mainWindow): self.label_46 = QLabel(self.frame_44) self.label_46.setObjectName(u"label_46") - palette15 = QPalette() - palette15.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette15.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette15.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_46.setPalette(palette15) - self.label_46.setFont(font4) + palette14 = QPalette() + palette14.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette14.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette14.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_46.setPalette(palette14) + self.label_46.setFont(font3) self.label_46.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.horizontalLayout_16.addWidget(self.label_46) @@ -2650,13 +2448,12 @@ def setupUi(self, mainWindow): self.label_67 = QLabel(self.frame_21) self.label_67.setObjectName(u"label_67") - self.label_67.setFont(font5) + self.label_67.setFont(font1) self.gridLayout_2.addWidget(self.label_67, 5, 0, 1, 3) self.start_vs_from_default_radioButton = QRadioButton(self.frame_21) self.start_vs_from_default_radioButton.setObjectName(u"start_vs_from_default_radioButton") - self.start_vs_from_default_radioButton.setFont(font1) self.start_vs_from_default_radioButton.setChecked(True) self.gridLayout_2.addWidget(self.start_vs_from_default_radioButton, 7, 0, 1, 3) @@ -2677,32 +2474,99 @@ def setupUi(self, mainWindow): self.opf_tab.setObjectName(u"opf_tab") self.gridLayout_10 = QGridLayout(self.opf_tab) self.gridLayout_10.setObjectName(u"gridLayout_10") + self.groupBox = QGroupBox(self.opf_tab) + self.groupBox.setObjectName(u"groupBox") + font4 = QFont() + font4.setPointSize(12) + font4.setBold(False) + self.groupBox.setFont(font4) + self.gridLayout_18 = QGridLayout(self.groupBox) + self.gridLayout_18.setObjectName(u"gridLayout_18") + self.label_103 = QLabel(self.groupBox) + self.label_103.setObjectName(u"label_103") + + self.gridLayout_18.addWidget(self.label_103, 2, 0, 1, 1) + + self.label_104 = QLabel(self.groupBox) + self.label_104.setObjectName(u"label_104") + + self.gridLayout_18.addWidget(self.label_104, 3, 0, 1, 1) + + self.opfContingencyToleranceSpinBox = QDoubleSpinBox(self.groupBox) + self.opfContingencyToleranceSpinBox.setObjectName(u"opfContingencyToleranceSpinBox") + self.opfContingencyToleranceSpinBox.setDecimals(4) + self.opfContingencyToleranceSpinBox.setValue(0.050000000000000) + + self.gridLayout_18.addWidget(self.opfContingencyToleranceSpinBox, 3, 1, 1, 1) + + self.label_10 = QLabel(self.groupBox) + self.label_10.setObjectName(u"label_10") + + self.gridLayout_18.addWidget(self.label_10, 0, 0, 1, 1) + + self.label_4 = QLabel(self.groupBox) + self.label_4.setObjectName(u"label_4") + + self.gridLayout_18.addWidget(self.label_4, 1, 0, 1, 1) + + self.opfZonalGroupByComboBox = QComboBox(self.groupBox) + self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox") + + self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1) + + self.opf_time_grouping_comboBox = QComboBox(self.groupBox) + self.opf_time_grouping_comboBox.setObjectName(u"opf_time_grouping_comboBox") + + self.gridLayout_18.addWidget(self.opf_time_grouping_comboBox, 1, 1, 1, 1) + + self.mip_solver_comboBox = QComboBox(self.groupBox) + self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox") + + self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1) + + self.verticalSpacer_18 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.gridLayout_18.addItem(self.verticalSpacer_18, 10, 0, 1, 1) + + self.label_132 = QLabel(self.groupBox) + self.label_132.setObjectName(u"label_132") + + self.gridLayout_18.addWidget(self.label_132, 4, 0, 1, 2) + + self.considerContingenciesOpfCheckBox = QCheckBox(self.groupBox) + self.considerContingenciesOpfCheckBox.setObjectName(u"considerContingenciesOpfCheckBox") + + self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox, 5, 0, 1, 2) + + self.save_mip_checkBox = QCheckBox(self.groupBox) + self.save_mip_checkBox.setObjectName(u"save_mip_checkBox") + + self.gridLayout_18.addWidget(self.save_mip_checkBox, 9, 0, 1, 2) + + + self.gridLayout_10.addWidget(self.groupBox, 4, 3, 1, 1) + + self.horizontalSpacer_10 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_10.addItem(self.horizontalSpacer_10, 4, 5, 1, 1) + self.groupBox_3 = QGroupBox(self.opf_tab) self.groupBox_3.setObjectName(u"groupBox_3") - font6 = QFont() - font6.setPointSize(12) - font6.setBold(False) - self.groupBox_3.setFont(font6) + self.groupBox_3.setFont(font4) self.gridLayout_27 = QGridLayout(self.groupBox_3) self.gridLayout_27.setObjectName(u"gridLayout_27") self.label_127 = QLabel(self.groupBox_3) self.label_127.setObjectName(u"label_127") - font7 = QFont() - font7.setPointSize(9) - font7.setBold(False) - self.label_127.setFont(font7) self.gridLayout_27.addWidget(self.label_127, 3, 0, 1, 1) self.ips_method_comboBox = QComboBox(self.groupBox_3) self.ips_method_comboBox.setObjectName(u"ips_method_comboBox") - self.ips_method_comboBox.setFont(font7) self.gridLayout_27.addWidget(self.ips_method_comboBox, 0, 1, 1, 1) self.label_125 = QLabel(self.groupBox_3) self.label_125.setObjectName(u"label_125") - self.label_125.setFont(font7) self.gridLayout_27.addWidget(self.label_125, 0, 0, 1, 1) @@ -2712,13 +2576,11 @@ def setupUi(self, mainWindow): self.label_126 = QLabel(self.groupBox_3) self.label_126.setObjectName(u"label_126") - self.label_126.setFont(font7) self.gridLayout_27.addWidget(self.label_126, 1, 0, 1, 1) self.ips_tolerance_spinBox = QSpinBox(self.groupBox_3) self.ips_tolerance_spinBox.setObjectName(u"ips_tolerance_spinBox") - self.ips_tolerance_spinBox.setFont(font7) self.ips_tolerance_spinBox.setMinimum(1) self.ips_tolerance_spinBox.setMaximum(15) self.ips_tolerance_spinBox.setValue(4) @@ -2727,22 +2589,18 @@ def setupUi(self, mainWindow): self.ips_initialize_with_pf_checkBox = QCheckBox(self.groupBox_3) self.ips_initialize_with_pf_checkBox.setObjectName(u"ips_initialize_with_pf_checkBox") - self.ips_initialize_with_pf_checkBox.setFont(font7) self.gridLayout_27.addWidget(self.ips_initialize_with_pf_checkBox, 6, 0, 1, 2) self.ips_trust_radius_doubleSpinBox = QDoubleSpinBox(self.groupBox_3) self.ips_trust_radius_doubleSpinBox.setObjectName(u"ips_trust_radius_doubleSpinBox") - self.ips_trust_radius_doubleSpinBox.setFont(font7) self.ips_trust_radius_doubleSpinBox.setDecimals(4) - self.ips_trust_radius_doubleSpinBox.setSingleStep(0.100000000000000) self.ips_trust_radius_doubleSpinBox.setValue(1.000000000000000) self.gridLayout_27.addWidget(self.ips_trust_radius_doubleSpinBox, 3, 1, 1, 1) self.ips_iterations_spinBox = QSpinBox(self.groupBox_3) self.ips_iterations_spinBox.setObjectName(u"ips_iterations_spinBox") - self.ips_iterations_spinBox.setFont(font7) self.ips_iterations_spinBox.setMinimum(1) self.ips_iterations_spinBox.setMaximum(9999999) self.ips_iterations_spinBox.setValue(100) @@ -2751,7 +2609,6 @@ def setupUi(self, mainWindow): self.label_129 = QLabel(self.groupBox_3) self.label_129.setObjectName(u"label_129") - self.label_129.setFont(font7) self.gridLayout_27.addWidget(self.label_129, 2, 0, 1, 1) @@ -2761,111 +2618,36 @@ def setupUi(self, mainWindow): self.gridLayout_27.addWidget(self.label_130, 5, 0, 1, 1) - self.gridLayout_10.addWidget(self.groupBox_3, 3, 4, 1, 1) - - self.horizontalSpacer_10 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_10.addItem(self.horizontalSpacer_10, 3, 5, 1, 1) - - self.groupBox = QGroupBox(self.opf_tab) - self.groupBox.setObjectName(u"groupBox") - self.groupBox.setFont(font6) - self.gridLayout_18 = QGridLayout(self.groupBox) - self.gridLayout_18.setObjectName(u"gridLayout_18") - self.label_103 = QLabel(self.groupBox) - self.label_103.setObjectName(u"label_103") - self.label_103.setFont(font7) - - self.gridLayout_18.addWidget(self.label_103, 2, 0, 1, 1) - - self.label_104 = QLabel(self.groupBox) - self.label_104.setObjectName(u"label_104") - self.label_104.setFont(font7) - - self.gridLayout_18.addWidget(self.label_104, 3, 0, 1, 1) - - self.opfContingencyToleranceSpinBox = QDoubleSpinBox(self.groupBox) - self.opfContingencyToleranceSpinBox.setObjectName(u"opfContingencyToleranceSpinBox") - self.opfContingencyToleranceSpinBox.setFont(font7) - self.opfContingencyToleranceSpinBox.setDecimals(4) - self.opfContingencyToleranceSpinBox.setSingleStep(0.010000000000000) - self.opfContingencyToleranceSpinBox.setValue(0.050000000000000) - - self.gridLayout_18.addWidget(self.opfContingencyToleranceSpinBox, 3, 1, 1, 1) - - self.label_10 = QLabel(self.groupBox) - self.label_10.setObjectName(u"label_10") - self.label_10.setFont(font7) - - self.gridLayout_18.addWidget(self.label_10, 0, 0, 1, 1) - - self.label_4 = QLabel(self.groupBox) - self.label_4.setObjectName(u"label_4") - self.label_4.setFont(font7) - - self.gridLayout_18.addWidget(self.label_4, 1, 0, 1, 1) - - self.opfZonalGroupByComboBox = QComboBox(self.groupBox) - self.opfZonalGroupByComboBox.setObjectName(u"opfZonalGroupByComboBox") - self.opfZonalGroupByComboBox.setFont(font7) - - self.gridLayout_18.addWidget(self.opfZonalGroupByComboBox, 2, 1, 1, 1) - - self.opf_time_grouping_comboBox = QComboBox(self.groupBox) - self.opf_time_grouping_comboBox.setObjectName(u"opf_time_grouping_comboBox") - self.opf_time_grouping_comboBox.setFont(font7) - - self.gridLayout_18.addWidget(self.opf_time_grouping_comboBox, 1, 1, 1, 1) - - self.mip_solver_comboBox = QComboBox(self.groupBox) - self.mip_solver_comboBox.setObjectName(u"mip_solver_comboBox") - self.mip_solver_comboBox.setFont(font7) - - self.gridLayout_18.addWidget(self.mip_solver_comboBox, 0, 1, 1, 1) - - self.verticalSpacer_18 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.gridLayout_18.addItem(self.verticalSpacer_18, 10, 0, 1, 1) - - self.label_132 = QLabel(self.groupBox) - self.label_132.setObjectName(u"label_132") - - self.gridLayout_18.addWidget(self.label_132, 4, 0, 1, 2) - - self.considerContingenciesOpfCheckBox = QCheckBox(self.groupBox) - self.considerContingenciesOpfCheckBox.setObjectName(u"considerContingenciesOpfCheckBox") - self.considerContingenciesOpfCheckBox.setFont(font7) - - self.gridLayout_18.addWidget(self.considerContingenciesOpfCheckBox, 5, 0, 1, 2) - - self.save_mip_checkBox = QCheckBox(self.groupBox) - self.save_mip_checkBox.setObjectName(u"save_mip_checkBox") - self.save_mip_checkBox.setFont(font7) - - self.gridLayout_18.addWidget(self.save_mip_checkBox, 9, 0, 1, 2) + self.gridLayout_10.addWidget(self.groupBox_3, 4, 4, 1, 1) + self.label_72 = QLabel(self.opf_tab) + self.label_72.setObjectName(u"label_72") + self.label_72.setMinimumSize(QSize(24, 24)) + self.label_72.setMaximumSize(QSize(24, 24)) + self.label_72.setPixmap(QPixmap(u":/Icons/icons/dcopf.svg")) + self.label_72.setScaledContents(True) - self.gridLayout_10.addWidget(self.groupBox, 3, 3, 1, 1) + self.gridLayout_10.addWidget(self.label_72, 0, 0, 1, 1) self.label_73 = QLabel(self.opf_tab) self.label_73.setObjectName(u"label_73") - palette16 = QPalette() - palette16.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette16.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette16.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_73.setPalette(palette16) - self.label_73.setFont(font4) + palette15 = QPalette() + palette15.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette15.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette15.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_73.setPalette(palette15) + self.label_73.setFont(font3) self.label_73.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.gridLayout_10.addWidget(self.label_73, 0, 1, 1, 1) self.line_16 = QFrame(self.opf_tab) self.line_16.setObjectName(u"line_16") - palette17 = QPalette() - palette17.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette17.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette17.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_16.setPalette(palette17) + palette16 = QPalette() + palette16.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette16.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette16.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_16.setPalette(palette16) self.line_16.setFrameShadow(QFrame.Plain) self.line_16.setLineWidth(4) self.line_16.setFrameShape(QFrame.Shape.HLine) @@ -2874,18 +2656,16 @@ def setupUi(self, mainWindow): self.groupBox_2 = QGroupBox(self.opf_tab) self.groupBox_2.setObjectName(u"groupBox_2") - self.groupBox_2.setFont(font6) + self.groupBox_2.setFont(font4) self.gridLayout_26 = QGridLayout(self.groupBox_2) self.gridLayout_26.setObjectName(u"gridLayout_26") self.label_128 = QLabel(self.groupBox_2) self.label_128.setObjectName(u"label_128") - self.label_128.setFont(font7) self.gridLayout_26.addWidget(self.label_128, 1, 0, 1, 1) self.label_42 = QLabel(self.groupBox_2) self.label_42.setObjectName(u"label_42") - self.label_42.setFont(font7) self.gridLayout_26.addWidget(self.label_42, 0, 0, 1, 1) @@ -2895,19 +2675,16 @@ def setupUi(self, mainWindow): self.lpf_solver_comboBox = QComboBox(self.groupBox_2) self.lpf_solver_comboBox.setObjectName(u"lpf_solver_comboBox") - self.lpf_solver_comboBox.setFont(font7) self.gridLayout_26.addWidget(self.lpf_solver_comboBox, 0, 1, 1, 1) self.ips_verbose_spinBox = QSpinBox(self.groupBox_2) self.ips_verbose_spinBox.setObjectName(u"ips_verbose_spinBox") - self.ips_verbose_spinBox.setFont(font7) self.gridLayout_26.addWidget(self.ips_verbose_spinBox, 1, 1, 1, 1) self.addOptimalPowerFlowReportCheckBox = QCheckBox(self.groupBox_2) self.addOptimalPowerFlowReportCheckBox.setObjectName(u"addOptimalPowerFlowReportCheckBox") - self.addOptimalPowerFlowReportCheckBox.setFont(font7) self.gridLayout_26.addWidget(self.addOptimalPowerFlowReportCheckBox, 6, 0, 1, 2) @@ -2918,42 +2695,92 @@ def setupUi(self, mainWindow): self.opfMaximizeExcahngeCheckBox = QCheckBox(self.groupBox_2) self.opfMaximizeExcahngeCheckBox.setObjectName(u"opfMaximizeExcahngeCheckBox") - self.opfMaximizeExcahngeCheckBox.setFont(font7) self.gridLayout_26.addWidget(self.opfMaximizeExcahngeCheckBox, 5, 0, 1, 2) self.opfUnitCommitmentCheckBox = QCheckBox(self.groupBox_2) self.opfUnitCommitmentCheckBox.setObjectName(u"opfUnitCommitmentCheckBox") - self.opfUnitCommitmentCheckBox.setFont(font7) self.gridLayout_26.addWidget(self.opfUnitCommitmentCheckBox, 4, 0, 1, 2) self.skipOpfGenerationLimitsCheckBox = QCheckBox(self.groupBox_2) self.skipOpfGenerationLimitsCheckBox.setObjectName(u"skipOpfGenerationLimitsCheckBox") - self.skipOpfGenerationLimitsCheckBox.setFont(font7) self.gridLayout_26.addWidget(self.skipOpfGenerationLimitsCheckBox, 3, 0, 1, 2) - self.gridLayout_10.addWidget(self.groupBox_2, 3, 0, 1, 3) + self.gridLayout_10.addWidget(self.groupBox_2, 4, 0, 1, 3) - self.label_72 = QLabel(self.opf_tab) - self.label_72.setObjectName(u"label_72") - self.label_72.setMinimumSize(QSize(24, 24)) - self.label_72.setMaximumSize(QSize(24, 24)) - self.label_72.setPixmap(QPixmap(u":/Icons/icons/dcopf.svg")) - self.label_72.setScaledContents(True) + self.label_131 = QLabel(self.opf_tab) + self.label_131.setObjectName(u"label_131") - self.gridLayout_10.addWidget(self.label_72, 0, 0, 1, 1) + self.gridLayout_10.addWidget(self.label_131, 3, 0, 1, 3) self.settings_tabWidget.addTab(self.opf_tab, icon15, "") self.ntc_tab = QWidget() self.ntc_tab.setObjectName(u"ntc_tab") self.gridLayout_13 = QGridLayout(self.ntc_tab) self.gridLayout_13.setObjectName(u"gridLayout_13") + self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_13.addItem(self.horizontalSpacer_6, 3, 4, 2, 1) + + self.line_27 = QFrame(self.ntc_tab) + self.line_27.setObjectName(u"line_27") + palette17 = QPalette() + palette17.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette17.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette17.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_27.setPalette(palette17) + self.line_27.setFrameShadow(QFrame.Plain) + self.line_27.setLineWidth(4) + self.line_27.setFrameShape(QFrame.Shape.HLine) + + self.gridLayout_13.addWidget(self.line_27, 1, 0, 1, 4) + + self.groupBox_6 = QGroupBox(self.ntc_tab) + self.groupBox_6.setObjectName(u"groupBox_6") + self.groupBox_6.setFlat(False) + self.groupBox_6.setCheckable(False) + self.gridLayout_29 = QGridLayout(self.groupBox_6) + self.gridLayout_29.setObjectName(u"gridLayout_29") + self.verticalSpacer_24 = QSpacerItem(20, 393, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.gridLayout_29.addItem(self.verticalSpacer_24, 3, 0, 1, 1) + + self.n1ConsiderationCheckBox = QCheckBox(self.groupBox_6) + self.n1ConsiderationCheckBox.setObjectName(u"n1ConsiderationCheckBox") + self.n1ConsiderationCheckBox.setChecked(True) + + self.gridLayout_29.addWidget(self.n1ConsiderationCheckBox, 2, 0, 1, 2) + + self.label_62 = QLabel(self.groupBox_6) + self.label_62.setObjectName(u"label_62") + + self.gridLayout_29.addWidget(self.label_62, 0, 0, 1, 2) + + self.atcThresholdSpinBox = QDoubleSpinBox(self.groupBox_6) + self.atcThresholdSpinBox.setObjectName(u"atcThresholdSpinBox") + self.atcThresholdSpinBox.setDecimals(4) + self.atcThresholdSpinBox.setMaximum(1.000000000000000) + self.atcThresholdSpinBox.setValue(0.050000000000000) + + self.gridLayout_29.addWidget(self.atcThresholdSpinBox, 1, 0, 1, 2) + + + self.gridLayout_13.addWidget(self.groupBox_6, 3, 3, 2, 1) + + self.label_97 = QLabel(self.ntc_tab) + self.label_97.setObjectName(u"label_97") + self.label_97.setMinimumSize(QSize(24, 24)) + self.label_97.setMaximumSize(QSize(24, 24)) + self.label_97.setPixmap(QPixmap(u":/Icons/icons/ntc_opf.svg")) + self.label_97.setScaledContents(True) + + self.gridLayout_13.addWidget(self.label_97, 0, 0, 1, 1) + self.groupBox_5 = QGroupBox(self.ntc_tab) self.groupBox_5.setObjectName(u"groupBox_5") - self.groupBox_5.setFont(font5) self.gridLayout_15 = QGridLayout(self.groupBox_5) self.gridLayout_15.setObjectName(u"gridLayout_15") self.label_26 = QLabel(self.groupBox_5) @@ -2963,28 +2790,20 @@ def setupUi(self, mainWindow): self.consider_ntc_contingencies_checkBox = QCheckBox(self.groupBox_5) self.consider_ntc_contingencies_checkBox.setObjectName(u"consider_ntc_contingencies_checkBox") - self.consider_ntc_contingencies_checkBox.setFont(font1) self.gridLayout_15.addWidget(self.consider_ntc_contingencies_checkBox, 11, 0, 1, 2) self.ntcSelectBasedOnAcerCriteriaCheckBox = QCheckBox(self.groupBox_5) self.ntcSelectBasedOnAcerCriteriaCheckBox.setObjectName(u"ntcSelectBasedOnAcerCriteriaCheckBox") - self.ntcSelectBasedOnAcerCriteriaCheckBox.setFont(font1) self.gridLayout_15.addWidget(self.ntcSelectBasedOnAcerCriteriaCheckBox, 7, 0, 1, 1) self.label_105 = QLabel(self.groupBox_5) self.label_105.setObjectName(u"label_105") - palette18 = QPalette() - brush4 = QBrush(QColor(36, 31, 49, 255)) - brush4.setStyle(Qt.SolidPattern) - palette18.setBrush(QPalette.Active, QPalette.WindowText, brush4) - brush5 = QBrush(QColor(0, 0, 0, 255)) - brush5.setStyle(Qt.SolidPattern) - palette18.setBrush(QPalette.Inactive, QPalette.WindowText, brush5) - palette18.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_105.setPalette(palette18) - self.label_105.setFont(font6) + font5 = QFont() + font5.setPointSize(12) + font5.setBold(True) + self.label_105.setFont(font5) self.gridLayout_15.addWidget(self.label_105, 10, 0, 1, 2) @@ -2995,7 +2814,6 @@ def setupUi(self, mainWindow): self.skipNtcGenerationLimitsCheckBox = QCheckBox(self.groupBox_5) self.skipNtcGenerationLimitsCheckBox.setObjectName(u"skipNtcGenerationLimitsCheckBox") - self.skipNtcGenerationLimitsCheckBox.setFont(font1) self.skipNtcGenerationLimitsCheckBox.setChecked(True) self.gridLayout_15.addWidget(self.skipNtcGenerationLimitsCheckBox, 0, 0, 1, 2) @@ -3006,7 +2824,6 @@ def setupUi(self, mainWindow): self.ntcAlphaSpinBox = QSpinBox(self.groupBox_5) self.ntcAlphaSpinBox.setObjectName(u"ntcAlphaSpinBox") - self.ntcAlphaSpinBox.setFont(font1) self.ntcAlphaSpinBox.setMaximum(100) self.ntcAlphaSpinBox.setValue(5) @@ -3014,25 +2831,18 @@ def setupUi(self, mainWindow): self.ntcSelectBasedOnExchangeSensitivityCheckBox = QCheckBox(self.groupBox_5) self.ntcSelectBasedOnExchangeSensitivityCheckBox.setObjectName(u"ntcSelectBasedOnExchangeSensitivityCheckBox") - self.ntcSelectBasedOnExchangeSensitivityCheckBox.setFont(font1) self.ntcSelectBasedOnExchangeSensitivityCheckBox.setChecked(True) self.gridLayout_15.addWidget(self.ntcSelectBasedOnExchangeSensitivityCheckBox, 5, 0, 1, 1) self.label_64 = QLabel(self.groupBox_5) self.label_64.setObjectName(u"label_64") - palette19 = QPalette() - palette19.setBrush(QPalette.Active, QPalette.WindowText, brush4) - palette19.setBrush(QPalette.Inactive, QPalette.WindowText, brush5) - palette19.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_64.setPalette(palette19) - self.label_64.setFont(font6) + self.label_64.setFont(font5) self.gridLayout_15.addWidget(self.label_64, 4, 0, 1, 2) self.trmSpinBox = QSpinBox(self.groupBox_5) self.trmSpinBox.setObjectName(u"trmSpinBox") - self.trmSpinBox.setFont(font1) self.trmSpinBox.setMaximum(1500) self.trmSpinBox.setSingleStep(10) self.trmSpinBox.setValue(400) @@ -3042,24 +2852,21 @@ def setupUi(self, mainWindow): self.label_231 = QLabel(self.groupBox_5) self.label_231.setObjectName(u"label_231") - self.label_231.setFont(font1) self.gridLayout_15.addWidget(self.label_231, 1, 0, 1, 1) self.ntcLoadRuleSpinBox = QSpinBox(self.groupBox_5) self.ntcLoadRuleSpinBox.setObjectName(u"ntcLoadRuleSpinBox") - self.ntcLoadRuleSpinBox.setFont(font1) self.ntcLoadRuleSpinBox.setMaximum(100) self.ntcLoadRuleSpinBox.setValue(70) self.gridLayout_15.addWidget(self.ntcLoadRuleSpinBox, 8, 0, 1, 1) - self.gridLayout_13.addWidget(self.groupBox_5, 2, 2, 2, 1) + self.gridLayout_13.addWidget(self.groupBox_5, 3, 2, 2, 1) self.groupBox_4 = QGroupBox(self.ntc_tab) self.groupBox_4.setObjectName(u"groupBox_4") - self.groupBox_4.setFont(font5) self.gridLayout_20 = QGridLayout(self.groupBox_4) self.gridLayout_20.setObjectName(u"gridLayout_20") self.verticalSpacer_22 = QSpacerItem(20, 325, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) @@ -3068,19 +2875,16 @@ def setupUi(self, mainWindow): self.label_30 = QLabel(self.groupBox_4) self.label_30.setObjectName(u"label_30") - self.label_30.setFont(font1) self.gridLayout_20.addWidget(self.label_30, 3, 0, 1, 1) self.label_77 = QLabel(self.groupBox_4) self.label_77.setObjectName(u"label_77") - self.label_77.setFont(font1) self.gridLayout_20.addWidget(self.label_77, 1, 0, 1, 1) self.ntcReportLoadingThresholdSpinBox = QSpinBox(self.groupBox_4) self.ntcReportLoadingThresholdSpinBox.setObjectName(u"ntcReportLoadingThresholdSpinBox") - self.ntcReportLoadingThresholdSpinBox.setFont(font1) self.ntcReportLoadingThresholdSpinBox.setMaximum(9999) self.ntcReportLoadingThresholdSpinBox.setValue(98) @@ -3088,106 +2892,79 @@ def setupUi(self, mainWindow): self.transferMethodComboBox = QComboBox(self.groupBox_4) self.transferMethodComboBox.setObjectName(u"transferMethodComboBox") - self.transferMethodComboBox.setFont(font1) self.gridLayout_20.addWidget(self.transferMethodComboBox, 2, 0, 1, 1) - self.gridLayout_13.addWidget(self.groupBox_4, 2, 0, 2, 2) - - self.line_27 = QFrame(self.ntc_tab) - self.line_27.setObjectName(u"line_27") - palette20 = QPalette() - palette20.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette20.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette20.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_27.setPalette(palette20) - self.line_27.setFrameShadow(QFrame.Plain) - self.line_27.setLineWidth(4) - self.line_27.setFrameShape(QFrame.Shape.HLine) - - self.gridLayout_13.addWidget(self.line_27, 1, 0, 1, 4) + self.gridLayout_13.addWidget(self.groupBox_4, 3, 0, 2, 2) - self.label_97 = QLabel(self.ntc_tab) - self.label_97.setObjectName(u"label_97") - self.label_97.setMinimumSize(QSize(24, 24)) - self.label_97.setMaximumSize(QSize(24, 24)) - self.label_97.setPixmap(QPixmap(u":/Icons/icons/ntc_opf.svg")) - self.label_97.setScaledContents(True) - - self.gridLayout_13.addWidget(self.label_97, 0, 0, 1, 1) - - self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - - self.gridLayout_13.addItem(self.horizontalSpacer_6, 2, 4, 2, 1) - - self.groupBox_6 = QGroupBox(self.ntc_tab) - self.groupBox_6.setObjectName(u"groupBox_6") - self.groupBox_6.setFont(font5) - self.groupBox_6.setFlat(False) - self.groupBox_6.setCheckable(False) - self.gridLayout_29 = QGridLayout(self.groupBox_6) - self.gridLayout_29.setObjectName(u"gridLayout_29") - self.verticalSpacer_24 = QSpacerItem(20, 393, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - - self.gridLayout_29.addItem(self.verticalSpacer_24, 3, 0, 1, 1) - - self.n1ConsiderationCheckBox = QCheckBox(self.groupBox_6) - self.n1ConsiderationCheckBox.setObjectName(u"n1ConsiderationCheckBox") - self.n1ConsiderationCheckBox.setFont(font1) - self.n1ConsiderationCheckBox.setChecked(True) + self.label_96 = QLabel(self.ntc_tab) + self.label_96.setObjectName(u"label_96") + palette18 = QPalette() + palette18.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette18.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette18.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_96.setPalette(palette18) + self.label_96.setFont(font3) - self.gridLayout_29.addWidget(self.n1ConsiderationCheckBox, 2, 0, 1, 2) + self.gridLayout_13.addWidget(self.label_96, 0, 1, 1, 1) - self.label_62 = QLabel(self.groupBox_6) - self.label_62.setObjectName(u"label_62") - self.label_62.setFont(font1) + self.label_61 = QLabel(self.ntc_tab) + self.label_61.setObjectName(u"label_61") + self.label_61.setMinimumSize(QSize(0, 0)) + self.label_61.setMaximumSize(QSize(16777215, 16)) - self.gridLayout_29.addWidget(self.label_62, 0, 0, 1, 2) + self.gridLayout_13.addWidget(self.label_61, 2, 0, 1, 2) - self.atcThresholdSpinBox = QDoubleSpinBox(self.groupBox_6) - self.atcThresholdSpinBox.setObjectName(u"atcThresholdSpinBox") - self.atcThresholdSpinBox.setFont(font1) - self.atcThresholdSpinBox.setDecimals(4) - self.atcThresholdSpinBox.setMaximum(1.000000000000000) - self.atcThresholdSpinBox.setSingleStep(0.010000000000000) - self.atcThresholdSpinBox.setValue(0.050000000000000) + self.settings_tabWidget.addTab(self.ntc_tab, icon43, "") + self.nodal_capacity_tab = QWidget() + self.nodal_capacity_tab.setObjectName(u"nodal_capacity_tab") + self.gridLayout_16 = QGridLayout(self.nodal_capacity_tab) + self.gridLayout_16.setObjectName(u"gridLayout_16") + self.label_141 = QLabel(self.nodal_capacity_tab) + self.label_141.setObjectName(u"label_141") + self.label_141.setMinimumSize(QSize(24, 24)) + self.label_141.setMaximumSize(QSize(24, 24)) + self.label_141.setPixmap(QPixmap(u":/Icons/icons/nodal_capacity.svg")) + self.label_141.setScaledContents(True) - self.gridLayout_29.addWidget(self.atcThresholdSpinBox, 1, 0, 1, 2) + self.gridLayout_16.addWidget(self.label_141, 0, 0, 1, 1) + self.label_140 = QLabel(self.nodal_capacity_tab) + self.label_140.setObjectName(u"label_140") + palette19 = QPalette() + palette19.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette19.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette19.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_140.setPalette(palette19) + self.label_140.setFont(font3) - self.gridLayout_13.addWidget(self.groupBox_6, 2, 3, 2, 1) + self.gridLayout_16.addWidget(self.label_140, 0, 1, 1, 1) - self.label_96 = QLabel(self.ntc_tab) - self.label_96.setObjectName(u"label_96") - palette21 = QPalette() - palette21.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette21.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette21.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_96.setPalette(palette21) - self.label_96.setFont(font4) + self.line_32 = QFrame(self.nodal_capacity_tab) + self.line_32.setObjectName(u"line_32") + palette20 = QPalette() + palette20.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette20.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette20.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_32.setPalette(palette20) + self.line_32.setFrameShadow(QFrame.Plain) + self.line_32.setLineWidth(4) + self.line_32.setFrameShape(QFrame.Shape.HLine) - self.gridLayout_13.addWidget(self.label_96, 0, 1, 1, 1) + self.gridLayout_16.addWidget(self.line_32, 1, 0, 1, 3) - self.settings_tabWidget.addTab(self.ntc_tab, icon43, "") - self.nodal_capacity_tab = QWidget() - self.nodal_capacity_tab.setObjectName(u"nodal_capacity_tab") - self.gridLayout_16 = QGridLayout(self.nodal_capacity_tab) - self.gridLayout_16.setObjectName(u"gridLayout_16") self.groupBox_7 = QGroupBox(self.nodal_capacity_tab) self.groupBox_7.setObjectName(u"groupBox_7") - self.groupBox_7.setFont(font5) self.gridLayout_12 = QGridLayout(self.groupBox_7) self.gridLayout_12.setObjectName(u"gridLayout_12") self.label_143 = QLabel(self.groupBox_7) self.label_143.setObjectName(u"label_143") - self.label_143.setFont(font1) self.gridLayout_12.addWidget(self.label_143, 3, 0, 1, 1) self.nodal_capacity_sense_SpinBox = QDoubleSpinBox(self.groupBox_7) self.nodal_capacity_sense_SpinBox.setObjectName(u"nodal_capacity_sense_SpinBox") - self.nodal_capacity_sense_SpinBox.setFont(font1) self.nodal_capacity_sense_SpinBox.setMinimum(-1.000000000000000) self.nodal_capacity_sense_SpinBox.setMaximum(1.000000000000000) self.nodal_capacity_sense_SpinBox.setValue(1.000000000000000) @@ -3196,13 +2973,11 @@ def setupUi(self, mainWindow): self.label_142 = QLabel(self.groupBox_7) self.label_142.setObjectName(u"label_142") - self.label_142.setFont(font1) self.gridLayout_12.addWidget(self.label_142, 0, 0, 1, 1) self.nodal_capacity_method_comboBox = QComboBox(self.groupBox_7) self.nodal_capacity_method_comboBox.setObjectName(u"nodal_capacity_method_comboBox") - self.nodal_capacity_method_comboBox.setFont(font1) self.gridLayout_12.addWidget(self.nodal_capacity_method_comboBox, 1, 0, 1, 2) @@ -3216,44 +2991,16 @@ def setupUi(self, mainWindow): self.gridLayout_12.addWidget(self.label_144, 2, 0, 1, 1) - self.gridLayout_16.addWidget(self.groupBox_7, 2, 0, 1, 2) - - self.label_141 = QLabel(self.nodal_capacity_tab) - self.label_141.setObjectName(u"label_141") - self.label_141.setMinimumSize(QSize(24, 24)) - self.label_141.setMaximumSize(QSize(24, 24)) - self.label_141.setPixmap(QPixmap(u":/Icons/icons/nodal_capacity.svg")) - self.label_141.setScaledContents(True) - - self.gridLayout_16.addWidget(self.label_141, 0, 0, 1, 1) - - self.line_32 = QFrame(self.nodal_capacity_tab) - self.line_32.setObjectName(u"line_32") - palette22 = QPalette() - palette22.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette22.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette22.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_32.setPalette(palette22) - self.line_32.setFrameShadow(QFrame.Plain) - self.line_32.setLineWidth(4) - self.line_32.setFrameShape(QFrame.Shape.HLine) - - self.gridLayout_16.addWidget(self.line_32, 1, 0, 1, 3) + self.gridLayout_16.addWidget(self.groupBox_7, 3, 0, 1, 2) - self.label_140 = QLabel(self.nodal_capacity_tab) - self.label_140.setObjectName(u"label_140") - palette23 = QPalette() - palette23.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette23.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette23.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_140.setPalette(palette23) - self.label_140.setFont(font4) + self.horizontalSpacer_4 = QSpacerItem(630, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) - self.gridLayout_16.addWidget(self.label_140, 0, 1, 1, 1) + self.gridLayout_16.addItem(self.horizontalSpacer_4, 3, 2, 1, 1) - self.horizontalSpacer_4 = QSpacerItem(630, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.label_145 = QLabel(self.nodal_capacity_tab) + self.label_145.setObjectName(u"label_145") - self.gridLayout_16.addItem(self.horizontalSpacer_4, 2, 2, 1, 1) + self.gridLayout_16.addWidget(self.label_145, 2, 0, 1, 2) self.settings_tabWidget.addTab(self.nodal_capacity_tab, icon68, "") self.transfer_tab = QWidget() @@ -3268,11 +3015,11 @@ def setupUi(self, mainWindow): self.gridLayout_4.setObjectName(u"gridLayout_4") self.line_26 = QFrame(self.frame_40) self.line_26.setObjectName(u"line_26") - palette24 = QPalette() - palette24.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette24.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette24.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_26.setPalette(palette24) + palette21 = QPalette() + palette21.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette21.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette21.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_26.setPalette(palette21) self.line_26.setFrameShadow(QFrame.Plain) self.line_26.setLineWidth(4) self.line_26.setFrameShape(QFrame.Shape.HLine) @@ -3281,12 +3028,12 @@ def setupUi(self, mainWindow): self.label_95 = QLabel(self.frame_40) self.label_95.setObjectName(u"label_95") - palette25 = QPalette() - palette25.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette25.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette25.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_95.setPalette(palette25) - self.label_95.setFont(font4) + palette22 = QPalette() + palette22.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette22.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette22.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_95.setPalette(palette22) + self.label_95.setFont(font3) self.gridLayout_4.addWidget(self.label_95, 0, 1, 1, 1) @@ -3310,16 +3057,11 @@ def setupUi(self, mainWindow): self.verticalLayout_29.setObjectName(u"verticalLayout_29") self.label_41 = QLabel(self.frame_34) self.label_41.setObjectName(u"label_41") - font8 = QFont() - font8.setFamilies([u"Ubuntu"]) - font8.setPointSize(9) - self.label_41.setFont(font8) self.verticalLayout_29.addWidget(self.label_41) self.areaFromListView = QListView(self.frame_34) self.areaFromListView.setObjectName(u"areaFromListView") - self.areaFromListView.setFont(font8) self.verticalLayout_29.addWidget(self.areaFromListView) @@ -3332,13 +3074,11 @@ def setupUi(self, mainWindow): self.verticalLayout_19.setObjectName(u"verticalLayout_19") self.label_21 = QLabel(self.frame_35) self.label_21.setObjectName(u"label_21") - self.label_21.setFont(font8) self.verticalLayout_19.addWidget(self.label_21) self.areaToListView = QListView(self.frame_35) self.areaToListView.setObjectName(u"areaToListView") - self.areaToListView.setFont(font8) self.verticalLayout_19.addWidget(self.areaToListView) @@ -3369,27 +3109,23 @@ def setupUi(self, mainWindow): self.formLayout.setObjectName(u"formLayout") self.label_151 = QLabel(self.frame_4) self.label_151.setObjectName(u"label_151") - self.label_151.setFont(font1) self.formLayout.setWidget(0, QFormLayout.SpanningRole, self.label_151) self.label_152 = QLabel(self.frame_4) self.label_152.setObjectName(u"label_152") self.label_152.setMaximumSize(QSize(80, 16777215)) - self.label_152.setFont(font1) self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_152) self.contingency_filter_by_comboBox = QComboBox(self.frame_4) self.contingency_filter_by_comboBox.setObjectName(u"contingency_filter_by_comboBox") - self.contingency_filter_by_comboBox.setFont(font1) self.formLayout.setWidget(1, QFormLayout.FieldRole, self.contingency_filter_by_comboBox) self.contingency_group_filter_listView = QListView(self.frame_4) self.contingency_group_filter_listView.setObjectName(u"contingency_group_filter_listView") self.contingency_group_filter_listView.setMinimumSize(QSize(500, 0)) - self.contingency_group_filter_listView.setFont(font1) self.formLayout.setWidget(2, QFormLayout.SpanningRole, self.contingency_group_filter_listView) @@ -3404,7 +3140,6 @@ def setupUi(self, mainWindow): self.gridLayout_25.setObjectName(u"gridLayout_25") self.label_123 = QLabel(self.frame_13) self.label_123.setObjectName(u"label_123") - self.label_123.setFont(font1) self.gridLayout_25.addWidget(self.label_123, 7, 0, 1, 1) @@ -3415,31 +3150,26 @@ def setupUi(self, mainWindow): self.label_53 = QLabel(self.frame_13) self.label_53.setObjectName(u"label_53") - self.label_53.setFont(font1) self.gridLayout_25.addWidget(self.label_53, 5, 0, 1, 1) self.srap_revert_to_nominal_rating_checkBox = QCheckBox(self.frame_13) self.srap_revert_to_nominal_rating_checkBox.setObjectName(u"srap_revert_to_nominal_rating_checkBox") - self.srap_revert_to_nominal_rating_checkBox.setFont(font1) self.gridLayout_25.addWidget(self.srap_revert_to_nominal_rating_checkBox, 8, 0, 1, 1) self.use_srap_checkBox = QCheckBox(self.frame_13) self.use_srap_checkBox.setObjectName(u"use_srap_checkBox") - self.use_srap_checkBox.setFont(font1) self.gridLayout_25.addWidget(self.use_srap_checkBox, 3, 0, 1, 1) self.contingency_detailed_massive_report_checkBox = QCheckBox(self.frame_13) self.contingency_detailed_massive_report_checkBox.setObjectName(u"contingency_detailed_massive_report_checkBox") - self.contingency_detailed_massive_report_checkBox.setFont(font1) self.gridLayout_25.addWidget(self.contingency_detailed_massive_report_checkBox, 9, 0, 1, 1) self.srap_limit_doubleSpinBox = QDoubleSpinBox(self.frame_13) self.srap_limit_doubleSpinBox.setObjectName(u"srap_limit_doubleSpinBox") - self.srap_limit_doubleSpinBox.setFont(font1) self.srap_limit_doubleSpinBox.setDecimals(1) self.srap_limit_doubleSpinBox.setMaximum(9999999.000000000000000) self.srap_limit_doubleSpinBox.setValue(1400.000000000000000) @@ -3448,7 +3178,6 @@ def setupUi(self, mainWindow): self.srap_top_n_SpinBox = QSpinBox(self.frame_13) self.srap_top_n_SpinBox.setObjectName(u"srap_top_n_SpinBox") - self.srap_top_n_SpinBox.setFont(font1) self.srap_top_n_SpinBox.setMinimum(1) self.srap_top_n_SpinBox.setMaximum(9999999) self.srap_top_n_SpinBox.setValue(10) @@ -3457,7 +3186,6 @@ def setupUi(self, mainWindow): self.contingency_deadband_SpinBox = QDoubleSpinBox(self.frame_13) self.contingency_deadband_SpinBox.setObjectName(u"contingency_deadband_SpinBox") - self.contingency_deadband_SpinBox.setFont(font1) self.contingency_deadband_SpinBox.setDecimals(2) self.contingency_deadband_SpinBox.setValue(0.050000000000000) @@ -3465,7 +3193,6 @@ def setupUi(self, mainWindow): self.label_27 = QLabel(self.frame_13) self.label_27.setObjectName(u"label_27") - self.label_27.setFont(font1) self.gridLayout_25.addWidget(self.label_27, 2, 0, 1, 1) @@ -3476,13 +3203,11 @@ def setupUi(self, mainWindow): self.label_119 = QLabel(self.frame_13) self.label_119.setObjectName(u"label_119") - self.label_119.setFont(font1) self.gridLayout_25.addWidget(self.label_119, 0, 0, 1, 1) self.srap_deadband_doubleSpinBox = QDoubleSpinBox(self.frame_13) self.srap_deadband_doubleSpinBox.setObjectName(u"srap_deadband_doubleSpinBox") - self.srap_deadband_doubleSpinBox.setFont(font1) self.srap_deadband_doubleSpinBox.setDecimals(1) self.srap_deadband_doubleSpinBox.setMaximum(999999999.000000000000000) self.srap_deadband_doubleSpinBox.setValue(10.000000000000000) @@ -3495,7 +3220,6 @@ def setupUi(self, mainWindow): self.contingencyEngineComboBox = QComboBox(self.frame_13) self.contingencyEngineComboBox.setObjectName(u"contingencyEngineComboBox") - self.contingencyEngineComboBox.setFont(font1) self.gridLayout_25.addWidget(self.contingencyEngineComboBox, 1, 0, 1, 2) @@ -3520,12 +3244,12 @@ def setupUi(self, mainWindow): self.label_117 = QLabel(self.frame_78) self.label_117.setObjectName(u"label_117") - palette26 = QPalette() - palette26.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette26.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette26.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_117.setPalette(palette26) - self.label_117.setFont(font4) + palette23 = QPalette() + palette23.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette23.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette23.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_117.setPalette(palette23) + self.label_117.setFont(font3) self.label_117.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.horizontalLayout_41.addWidget(self.label_117) @@ -3539,11 +3263,11 @@ def setupUi(self, mainWindow): self.line_25 = QFrame(self.frame_76) self.line_25.setObjectName(u"line_25") - palette27 = QPalette() - palette27.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette27.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette27.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_25.setPalette(palette27) + palette24 = QPalette() + palette24.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette24.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette24.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_25.setPalette(palette24) self.line_25.setFrameShadow(QFrame.Plain) self.line_25.setLineWidth(4) self.line_25.setFrameShape(QFrame.Shape.HLine) @@ -3565,14 +3289,17 @@ def setupUi(self, mainWindow): self.gridLayout_21 = QGridLayout(self.frame_18) self.gridLayout_21.setObjectName(u"gridLayout_21") self.gridLayout_21.setContentsMargins(-1, 0, -1, -1) - self.label_7 = QLabel(self.frame_18) - self.label_7.setObjectName(u"label_7") - - self.gridLayout_21.addWidget(self.label_7, 12, 0, 1, 2) - - self.verticalSpacer_16 = QSpacerItem(20, 250, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.label_121 = QLabel(self.frame_18) + self.label_121.setObjectName(u"label_121") + palette25 = QPalette() + palette25.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette25.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette25.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_121.setPalette(palette25) + self.label_121.setFont(font3) + self.label_121.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) - self.gridLayout_21.addItem(self.verticalSpacer_16, 29, 1, 1, 1) + self.gridLayout_21.addWidget(self.label_121, 18, 1, 1, 1) self.label_120 = QLabel(self.frame_18) self.label_120.setObjectName(u"label_120") @@ -3581,7 +3308,65 @@ def setupUi(self, mainWindow): self.label_120.setPixmap(QPixmap(u":/Icons/icons/expansion_planning.svg")) self.label_120.setScaledContents(True) - self.gridLayout_21.addWidget(self.label_120, 21, 0, 1, 1) + self.gridLayout_21.addWidget(self.label_120, 18, 0, 1, 1) + + self.label_153 = QLabel(self.frame_18) + self.label_153.setObjectName(u"label_153") + + self.gridLayout_21.addWidget(self.label_153, 22, 0, 1, 2) + + self.line_29 = QFrame(self.frame_18) + self.line_29.setObjectName(u"line_29") + palette26 = QPalette() + palette26.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette26.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette26.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_29.setPalette(palette26) + self.line_29.setFrameShadow(QFrame.Plain) + self.line_29.setLineWidth(4) + self.line_29.setFrameShape(QFrame.Shape.HLine) + + self.gridLayout_21.addWidget(self.line_29, 9, 0, 1, 3) + + self.label_3 = QLabel(self.frame_18) + self.label_3.setObjectName(u"label_3") + + self.gridLayout_21.addWidget(self.label_3, 20, 0, 1, 2) + + self.label_88 = QLabel(self.frame_18) + self.label_88.setObjectName(u"label_88") + self.label_88.setMinimumSize(QSize(24, 24)) + self.label_88.setMaximumSize(QSize(24, 24)) + self.label_88.setPixmap(QPixmap(u":/Icons/icons/color_grid.svg")) + self.label_88.setScaledContents(True) + + self.gridLayout_21.addWidget(self.label_88, 13, 0, 1, 1) + + self.label_51 = QLabel(self.frame_18) + self.label_51.setObjectName(u"label_51") + + self.gridLayout_21.addWidget(self.label_51, 24, 0, 1, 2) + + self.node_distances_elements_spinBox = QSpinBox(self.frame_18) + self.node_distances_elements_spinBox.setObjectName(u"node_distances_elements_spinBox") + self.node_distances_elements_spinBox.setMinimum(1) + self.node_distances_elements_spinBox.setMaximum(99999) + self.node_distances_elements_spinBox.setValue(2) + + self.gridLayout_21.addWidget(self.node_distances_elements_spinBox, 16, 0, 1, 2) + + self.line_24 = QFrame(self.frame_18) + self.line_24.setObjectName(u"line_24") + palette27 = QPalette() + palette27.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette27.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette27.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_24.setPalette(palette27) + self.line_24.setFrameShadow(QFrame.Plain) + self.line_24.setLineWidth(4) + self.line_24.setFrameShape(QFrame.Shape.HLine) + + self.gridLayout_21.addWidget(self.line_24, 14, 0, 1, 2) self.line_30 = QFrame(self.frame_18) self.line_30.setObjectName(u"line_30") @@ -3594,7 +3379,27 @@ def setupUi(self, mainWindow): self.line_30.setLineWidth(4) self.line_30.setFrameShape(QFrame.Shape.HLine) - self.gridLayout_21.addWidget(self.line_30, 22, 0, 1, 3) + self.gridLayout_21.addWidget(self.line_30, 19, 0, 1, 2) + + self.cluster_number_spinBox = QSpinBox(self.frame_18) + self.cluster_number_spinBox.setObjectName(u"cluster_number_spinBox") + self.cluster_number_spinBox.setMinimum(1) + self.cluster_number_spinBox.setMaximum(999999) + self.cluster_number_spinBox.setValue(200) + + self.gridLayout_21.addWidget(self.cluster_number_spinBox, 11, 0, 1, 3) + + self.label_89 = QLabel(self.frame_18) + self.label_89.setObjectName(u"label_89") + palette29 = QPalette() + palette29.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette29.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette29.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_89.setPalette(palette29) + self.label_89.setFont(font3) + self.label_89.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + + self.gridLayout_21.addWidget(self.label_89, 13, 1, 1, 1) self.frame_59 = QFrame(self.frame_18) self.frame_59.setObjectName(u"frame_59") @@ -3605,12 +3410,12 @@ def setupUi(self, mainWindow): self.horizontalLayout_32.setContentsMargins(0, 0, 0, 0) self.label_93 = QLabel(self.frame_59) self.label_93.setObjectName(u"label_93") - palette29 = QPalette() - palette29.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette29.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette29.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_93.setPalette(palette29) - self.label_93.setFont(font4) + palette30 = QPalette() + palette30.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette30.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette30.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_93.setPalette(palette30) + self.label_93.setFont(font3) self.label_93.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.horizontalLayout_32.addWidget(self.label_93) @@ -3618,167 +3423,59 @@ def setupUi(self, mainWindow): self.gridLayout_21.addWidget(self.frame_59, 8, 1, 1, 1) - self.label_33 = QLabel(self.frame_18) - self.label_33.setObjectName(u"label_33") - self.label_33.setFont(font1) - - self.gridLayout_21.addWidget(self.label_33, 10, 0, 1, 2) - - self.label_31 = QLabel(self.frame_18) - self.label_31.setObjectName(u"label_31") - - self.gridLayout_21.addWidget(self.label_31, 20, 0, 1, 1) - self.max_investments_evluation_number_spinBox = QSpinBox(self.frame_18) self.max_investments_evluation_number_spinBox.setObjectName(u"max_investments_evluation_number_spinBox") - self.max_investments_evluation_number_spinBox.setFont(font1) self.max_investments_evluation_number_spinBox.setMinimum(1) self.max_investments_evluation_number_spinBox.setMaximum(999999999) self.max_investments_evluation_number_spinBox.setValue(4) - self.gridLayout_21.addWidget(self.max_investments_evluation_number_spinBox, 27, 2, 1, 1) - - self.label_38 = QLabel(self.frame_18) - self.label_38.setObjectName(u"label_38") - self.label_38.setFont(font1) - - self.gridLayout_21.addWidget(self.label_38, 16, 0, 1, 2) - - self.label_3 = QLabel(self.frame_18) - self.label_3.setObjectName(u"label_3") - self.label_3.setFont(font1) - - self.gridLayout_21.addWidget(self.label_3, 23, 0, 1, 2) - - self.line_24 = QFrame(self.frame_18) - self.line_24.setObjectName(u"line_24") - palette30 = QPalette() - palette30.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette30.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette30.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_24.setPalette(palette30) - self.line_24.setFrameShadow(QFrame.Plain) - self.line_24.setLineWidth(4) - self.line_24.setFrameShape(QFrame.Shape.HLine) - - self.gridLayout_21.addWidget(self.line_24, 14, 0, 1, 3) - - self.cluster_number_spinBox = QSpinBox(self.frame_18) - self.cluster_number_spinBox.setObjectName(u"cluster_number_spinBox") - self.cluster_number_spinBox.setFont(font1) - self.cluster_number_spinBox.setMinimum(1) - self.cluster_number_spinBox.setMaximum(999999) - self.cluster_number_spinBox.setValue(200) - - self.gridLayout_21.addWidget(self.cluster_number_spinBox, 10, 2, 1, 1) + self.gridLayout_21.addWidget(self.max_investments_evluation_number_spinBox, 25, 0, 1, 2) - self.label_153 = QLabel(self.frame_18) - self.label_153.setObjectName(u"label_153") - self.label_153.setFont(font1) + self.label_33 = QLabel(self.frame_18) + self.label_33.setObjectName(u"label_33") - self.gridLayout_21.addWidget(self.label_153, 25, 0, 1, 2) + self.gridLayout_21.addWidget(self.label_33, 10, 0, 1, 2) - self.label_88 = QLabel(self.frame_18) - self.label_88.setObjectName(u"label_88") - self.label_88.setMinimumSize(QSize(24, 24)) - self.label_88.setMaximumSize(QSize(24, 24)) - self.label_88.setPixmap(QPixmap(u":/Icons/icons/color_grid.svg")) - self.label_88.setScaledContents(True) + self.node_distances_sigma_doubleSpinBox = QDoubleSpinBox(self.frame_18) + self.node_distances_sigma_doubleSpinBox.setObjectName(u"node_distances_sigma_doubleSpinBox") + self.node_distances_sigma_doubleSpinBox.setDecimals(6) + self.node_distances_sigma_doubleSpinBox.setSingleStep(0.010000000000000) + self.node_distances_sigma_doubleSpinBox.setValue(0.750000000000000) - self.gridLayout_21.addWidget(self.label_88, 13, 0, 1, 1) + self.gridLayout_21.addWidget(self.node_distances_sigma_doubleSpinBox, 15, 0, 1, 2) - self.investment_evaluation_method_ComboBox = QComboBox(self.frame_18) - self.investment_evaluation_method_ComboBox.setObjectName(u"investment_evaluation_method_ComboBox") - self.investment_evaluation_method_ComboBox.setFont(font1) + self.label_7 = QLabel(self.frame_18) + self.label_7.setObjectName(u"label_7") - self.gridLayout_21.addWidget(self.investment_evaluation_method_ComboBox, 23, 2, 1, 1) + self.gridLayout_21.addWidget(self.label_7, 12, 0, 1, 2) self.label_44 = QLabel(self.frame_18) self.label_44.setObjectName(u"label_44") - self.gridLayout_21.addWidget(self.label_44, 18, 0, 1, 2) - - self.investment_evaluation_objfunc_ComboBox = QComboBox(self.frame_18) - self.investment_evaluation_objfunc_ComboBox.setObjectName(u"investment_evaluation_objfunc_ComboBox") - self.investment_evaluation_objfunc_ComboBox.setFont(font1) - - self.gridLayout_21.addWidget(self.investment_evaluation_objfunc_ComboBox, 25, 2, 1, 1) - - self.line_29 = QFrame(self.frame_18) - self.line_29.setObjectName(u"line_29") - palette31 = QPalette() - palette31.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette31.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette31.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_29.setPalette(palette31) - self.line_29.setFrameShadow(QFrame.Plain) - self.line_29.setLineWidth(4) - self.line_29.setFrameShape(QFrame.Shape.HLine) - - self.gridLayout_21.addWidget(self.line_29, 9, 0, 1, 3) - - self.label_51 = QLabel(self.frame_18) - self.label_51.setObjectName(u"label_51") - self.label_51.setFont(font1) - - self.gridLayout_21.addWidget(self.label_51, 27, 0, 1, 2) - - self.label_94 = QLabel(self.frame_18) - self.label_94.setObjectName(u"label_94") - self.label_94.setMinimumSize(QSize(24, 24)) - self.label_94.setMaximumSize(QSize(24, 24)) - self.label_94.setPixmap(QPixmap(u":/Icons/icons/clustering.svg")) - self.label_94.setScaledContents(True) - - self.gridLayout_21.addWidget(self.label_94, 8, 0, 1, 1) - - self.label_89 = QLabel(self.frame_18) - self.label_89.setObjectName(u"label_89") - palette32 = QPalette() - palette32.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette32.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette32.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_89.setPalette(palette32) - self.label_89.setFont(font4) - self.label_89.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) - - self.gridLayout_21.addWidget(self.label_89, 13, 1, 1, 2) + self.gridLayout_21.addWidget(self.label_44, 17, 0, 1, 2) - self.node_distances_sigma_doubleSpinBox = QDoubleSpinBox(self.frame_18) - self.node_distances_sigma_doubleSpinBox.setObjectName(u"node_distances_sigma_doubleSpinBox") - self.node_distances_sigma_doubleSpinBox.setFont(font1) - self.node_distances_sigma_doubleSpinBox.setDecimals(6) - self.node_distances_sigma_doubleSpinBox.setSingleStep(0.010000000000000) - self.node_distances_sigma_doubleSpinBox.setValue(0.750000000000000) + self.verticalSpacer_16 = QSpacerItem(20, 250, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.gridLayout_21.addWidget(self.node_distances_sigma_doubleSpinBox, 16, 2, 1, 1) + self.gridLayout_21.addItem(self.verticalSpacer_16, 26, 1, 1, 1) - self.label_121 = QLabel(self.frame_18) - self.label_121.setObjectName(u"label_121") - palette33 = QPalette() - palette33.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette33.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette33.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_121.setPalette(palette33) - self.label_121.setFont(font4) - self.label_121.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + self.investment_evaluation_method_ComboBox = QComboBox(self.frame_18) + self.investment_evaluation_method_ComboBox.setObjectName(u"investment_evaluation_method_ComboBox") - self.gridLayout_21.addWidget(self.label_121, 21, 1, 1, 2) + self.gridLayout_21.addWidget(self.investment_evaluation_method_ComboBox, 21, 0, 1, 2) - self.node_distances_elements_spinBox = QSpinBox(self.frame_18) - self.node_distances_elements_spinBox.setObjectName(u"node_distances_elements_spinBox") - self.node_distances_elements_spinBox.setFont(font1) - self.node_distances_elements_spinBox.setMinimum(1) - self.node_distances_elements_spinBox.setMaximum(99999) - self.node_distances_elements_spinBox.setValue(2) + self.label_94 = QLabel(self.frame_18) + self.label_94.setObjectName(u"label_94") + self.label_94.setMinimumSize(QSize(24, 24)) + self.label_94.setMaximumSize(QSize(24, 24)) + self.label_94.setPixmap(QPixmap(u":/Icons/icons/clustering.svg")) + self.label_94.setScaledContents(True) - self.gridLayout_21.addWidget(self.node_distances_elements_spinBox, 17, 2, 1, 1) + self.gridLayout_21.addWidget(self.label_94, 8, 0, 1, 1) - self.label_61 = QLabel(self.frame_18) - self.label_61.setObjectName(u"label_61") - self.label_61.setFont(font1) + self.investment_evaluation_objfunc_ComboBox = QComboBox(self.frame_18) + self.investment_evaluation_objfunc_ComboBox.setObjectName(u"investment_evaluation_objfunc_ComboBox") - self.gridLayout_21.addWidget(self.label_61, 17, 0, 1, 2) + self.gridLayout_21.addWidget(self.investment_evaluation_objfunc_ComboBox, 23, 0, 1, 2) self.horizontalLayout_6.addWidget(self.frame_18) @@ -3793,13 +3490,11 @@ def setupUi(self, mainWindow): self.gridLayout_6.setContentsMargins(-1, 0, -1, -1) self.stochastic_pf_method_comboBox = QComboBox(self.frame_15) self.stochastic_pf_method_comboBox.setObjectName(u"stochastic_pf_method_comboBox") - self.stochastic_pf_method_comboBox.setFont(font1) self.gridLayout_6.addWidget(self.stochastic_pf_method_comboBox, 3, 2, 1, 1) self.label_55 = QLabel(self.frame_15) self.label_55.setObjectName(u"label_55") - self.label_55.setFont(font1) self.gridLayout_6.addWidget(self.label_55, 3, 0, 1, 2) @@ -3814,47 +3509,45 @@ def setupUi(self, mainWindow): self.label_79 = QLabel(self.frame_15) self.label_79.setObjectName(u"label_79") - palette34 = QPalette() - palette34.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette34.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette34.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_79.setPalette(palette34) - self.label_79.setFont(font4) + palette31 = QPalette() + palette31.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette31.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette31.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_79.setPalette(palette31) + self.label_79.setFont(font3) self.label_79.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.gridLayout_6.addWidget(self.label_79, 8, 1, 1, 2) self.label_12 = QLabel(self.frame_15) self.label_12.setObjectName(u"label_12") - self.label_12.setFont(font1) self.gridLayout_6.addWidget(self.label_12, 5, 0, 1, 2) self.label_13 = QLabel(self.frame_15) self.label_13.setObjectName(u"label_13") - self.label_13.setFont(font1) self.gridLayout_6.addWidget(self.label_13, 6, 0, 1, 2) self.label_47 = QLabel(self.frame_15) self.label_47.setObjectName(u"label_47") - palette35 = QPalette() - palette35.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette35.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette35.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_47.setPalette(palette35) - self.label_47.setFont(font4) + palette32 = QPalette() + palette32.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette32.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette32.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_47.setPalette(palette32) + self.label_47.setFont(font3) self.label_47.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.gridLayout_6.addWidget(self.label_47, 0, 1, 1, 2) self.line_4 = QFrame(self.frame_15) self.line_4.setObjectName(u"line_4") - palette36 = QPalette() - palette36.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette36.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette36.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_4.setPalette(palette36) + palette33 = QPalette() + palette33.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette33.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette33.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_4.setPalette(palette33) self.line_4.setFrameShadow(QFrame.Plain) self.line_4.setLineWidth(4) self.line_4.setFrameShape(QFrame.Shape.HLine) @@ -3868,11 +3561,11 @@ def setupUi(self, mainWindow): self.line_10 = QFrame(self.frame_15) self.line_10.setObjectName(u"line_10") - palette37 = QPalette() - palette37.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette37.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette37.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_10.setPalette(palette37) + palette34 = QPalette() + palette34.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette34.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette34.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_10.setPalette(palette34) self.line_10.setFrameShadow(QFrame.Plain) self.line_10.setLineWidth(4) self.line_10.setFrameShape(QFrame.Shape.HLine) @@ -3881,7 +3574,6 @@ def setupUi(self, mainWindow): self.max_iterations_stochastic_spinBox = QSpinBox(self.frame_15) self.max_iterations_stochastic_spinBox.setObjectName(u"max_iterations_stochastic_spinBox") - self.max_iterations_stochastic_spinBox.setFont(font1) self.max_iterations_stochastic_spinBox.setMinimum(10) self.max_iterations_stochastic_spinBox.setMaximum(99999999) self.max_iterations_stochastic_spinBox.setValue(1000) @@ -3894,7 +3586,6 @@ def setupUi(self, mainWindow): self.tolerance_stochastic_spinBox = QSpinBox(self.frame_15) self.tolerance_stochastic_spinBox.setObjectName(u"tolerance_stochastic_spinBox") - self.tolerance_stochastic_spinBox.setFont(font1) self.tolerance_stochastic_spinBox.setMinimum(1) self.tolerance_stochastic_spinBox.setMaximum(20) self.tolerance_stochastic_spinBox.setValue(4) @@ -3912,18 +3603,16 @@ def setupUi(self, mainWindow): self.label_28 = QLabel(self.frame_15) self.label_28.setObjectName(u"label_28") - self.label_28.setFont(font1) - self.gridLayout_6.addWidget(self.label_28, 10, 0, 1, 2) + self.gridLayout_6.addWidget(self.label_28, 10, 0, 1, 3) self.cascading_islands_spinBox = QSpinBox(self.frame_15) self.cascading_islands_spinBox.setObjectName(u"cascading_islands_spinBox") - self.cascading_islands_spinBox.setFont(font1) self.cascading_islands_spinBox.setMinimum(1) self.cascading_islands_spinBox.setMaximum(999999) self.cascading_islands_spinBox.setValue(2) - self.gridLayout_6.addWidget(self.cascading_islands_spinBox, 10, 2, 1, 1) + self.gridLayout_6.addWidget(self.cascading_islands_spinBox, 11, 0, 1, 3) self.horizontalLayout_6.addWidget(self.frame_15) @@ -3937,93 +3626,118 @@ def setupUi(self, mainWindow): self.topology_tab.setObjectName(u"topology_tab") self.gridLayout_17 = QGridLayout(self.topology_tab) self.gridLayout_17.setObjectName(u"gridLayout_17") - self.horizontalSpacer_18 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + self.frame_39 = QFrame(self.topology_tab) + self.frame_39.setObjectName(u"frame_39") + self.frame_39.setFrameShape(QFrame.NoFrame) + self.frame_39.setFrameShadow(QFrame.Raised) + self.verticalLayout_36 = QVBoxLayout(self.frame_39) + self.verticalLayout_36.setObjectName(u"verticalLayout_36") + self.verticalLayout_36.setContentsMargins(-1, 0, -1, -1) + self.frame_49 = QFrame(self.frame_39) + self.frame_49.setObjectName(u"frame_49") + self.frame_49.setFrameShape(QFrame.NoFrame) + self.frame_49.setFrameShadow(QFrame.Raised) + self.horizontalLayout_21 = QHBoxLayout(self.frame_49) + self.horizontalLayout_21.setObjectName(u"horizontalLayout_21") + self.horizontalLayout_21.setContentsMargins(0, 0, 0, 0) + self.label_82 = QLabel(self.frame_49) + self.label_82.setObjectName(u"label_82") + self.label_82.setMinimumSize(QSize(24, 24)) + self.label_82.setMaximumSize(QSize(24, 24)) + self.label_82.setPixmap(QPixmap(u":/Icons/icons/automatic_layout.svg")) + self.label_82.setScaledContents(True) + + self.horizontalLayout_21.addWidget(self.label_82) + + self.label_83 = QLabel(self.frame_49) + self.label_83.setObjectName(u"label_83") + palette35 = QPalette() + palette35.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette35.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette35.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_83.setPalette(palette35) + self.label_83.setFont(font3) + self.label_83.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) - self.gridLayout_17.addItem(self.horizontalSpacer_18, 0, 2, 1, 1) + self.horizontalLayout_21.addWidget(self.label_83) - self.frame_27 = QFrame(self.topology_tab) - self.frame_27.setObjectName(u"frame_27") - self.frame_27.setFrameShape(QFrame.NoFrame) - self.frame_27.setFrameShadow(QFrame.Raised) - self.verticalLayout_21 = QVBoxLayout(self.frame_27) - self.verticalLayout_21.setObjectName(u"verticalLayout_21") - self.verticalLayout_21.setContentsMargins(-1, 0, -1, -1) - self.frame_48 = QFrame(self.frame_27) - self.frame_48.setObjectName(u"frame_48") - self.frame_48.setFrameShape(QFrame.NoFrame) - self.frame_48.setFrameShadow(QFrame.Raised) - self.horizontalLayout_20 = QHBoxLayout(self.frame_48) - self.horizontalLayout_20.setObjectName(u"horizontalLayout_20") - self.horizontalLayout_20.setContentsMargins(0, 0, 0, 0) - self.label_80 = QLabel(self.frame_48) - self.label_80.setObjectName(u"label_80") - self.label_80.setMinimumSize(QSize(24, 24)) - self.label_80.setMaximumSize(QSize(24, 24)) - self.label_80.setPixmap(QPixmap(u":/Icons/icons/grid_reduction.svg")) - self.label_80.setScaledContents(True) - self.horizontalLayout_20.addWidget(self.label_80) + self.verticalLayout_36.addWidget(self.frame_49) - self.label_81 = QLabel(self.frame_48) - self.label_81.setObjectName(u"label_81") - palette38 = QPalette() - palette38.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette38.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette38.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_81.setPalette(palette38) - self.label_81.setFont(font4) - self.label_81.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + self.line_21 = QFrame(self.frame_39) + self.line_21.setObjectName(u"line_21") + palette36 = QPalette() + palette36.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette36.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette36.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_21.setPalette(palette36) + self.line_21.setFrameShadow(QFrame.Plain) + self.line_21.setLineWidth(4) + self.line_21.setFrameShape(QFrame.Shape.HLine) - self.horizontalLayout_20.addWidget(self.label_81) + self.verticalLayout_36.addWidget(self.line_21) + self.label_24 = QLabel(self.frame_39) + self.label_24.setObjectName(u"label_24") + self.label_24.setTextFormat(Qt.PlainText) + self.label_24.setScaledContents(True) - self.verticalLayout_21.addWidget(self.frame_48) + self.verticalLayout_36.addWidget(self.label_24) - self.line_20 = QFrame(self.frame_27) - self.line_20.setObjectName(u"line_20") - palette39 = QPalette() - palette39.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette39.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette39.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_20.setPalette(palette39) - self.line_20.setFrameShadow(QFrame.Plain) - self.line_20.setLineWidth(4) - self.line_20.setFrameShape(QFrame.Shape.HLine) + self.automatic_layout_comboBox = QComboBox(self.frame_39) + self.automatic_layout_comboBox.setObjectName(u"automatic_layout_comboBox") - self.verticalLayout_21.addWidget(self.line_20) + self.verticalLayout_36.addWidget(self.automatic_layout_comboBox) - self.label_59 = QLabel(self.frame_27) - self.label_59.setObjectName(u"label_59") - self.label_59.setFont(font1) + self.ask_before_appliying_layout_checkBox = QCheckBox(self.frame_39) + self.ask_before_appliying_layout_checkBox.setObjectName(u"ask_before_appliying_layout_checkBox") + self.ask_before_appliying_layout_checkBox.setChecked(True) + self.ask_before_appliying_layout_checkBox.setTristate(False) - self.verticalLayout_21.addWidget(self.label_59) + self.verticalLayout_36.addWidget(self.ask_before_appliying_layout_checkBox) - self.removeByTypeListView = QListView(self.frame_27) - self.removeByTypeListView.setObjectName(u"removeByTypeListView") - self.removeByTypeListView.setFont(font1) + self.line_13 = QFrame(self.frame_39) + self.line_13.setObjectName(u"line_13") + palette37 = QPalette() + palette37.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette37.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette37.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_13.setPalette(palette37) + self.line_13.setFrameShadow(QFrame.Plain) + self.line_13.setLineWidth(4) + self.line_13.setFrameShape(QFrame.Shape.HLine) - self.verticalLayout_21.addWidget(self.removeByTypeListView) + self.verticalLayout_36.addWidget(self.line_13) - self.rxThresholdCheckBox = QCheckBox(self.frame_27) - self.rxThresholdCheckBox.setObjectName(u"rxThresholdCheckBox") - self.rxThresholdCheckBox.setFont(font1) - self.rxThresholdCheckBox.setChecked(True) + self.label_60 = QLabel(self.frame_39) + self.label_60.setObjectName(u"label_60") - self.verticalLayout_21.addWidget(self.rxThresholdCheckBox) + self.verticalLayout_36.addWidget(self.label_60) - self.rxThresholdSpinBox = QSpinBox(self.frame_27) - self.rxThresholdSpinBox.setObjectName(u"rxThresholdSpinBox") - self.rxThresholdSpinBox.setFont(font1) - self.rxThresholdSpinBox.setValue(5) + self.explosion_factor_doubleSpinBox = QDoubleSpinBox(self.frame_39) + self.explosion_factor_doubleSpinBox.setObjectName(u"explosion_factor_doubleSpinBox") + self.explosion_factor_doubleSpinBox.setMinimum(0.000000000000000) + self.explosion_factor_doubleSpinBox.setMaximum(999999999.000000000000000) + self.explosion_factor_doubleSpinBox.setValue(1.500000000000000) - self.verticalLayout_21.addWidget(self.rxThresholdSpinBox) + self.verticalLayout_36.addWidget(self.explosion_factor_doubleSpinBox) - self.verticalSpacer_11 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.frame_52 = QFrame(self.frame_39) + self.frame_52.setObjectName(u"frame_52") + self.frame_52.setFrameShape(QFrame.NoFrame) + self.frame_52.setFrameShadow(QFrame.Raised) + self.horizontalLayout_24 = QHBoxLayout(self.frame_52) + self.horizontalLayout_24.setObjectName(u"horizontalLayout_24") + self.horizontalLayout_24.setContentsMargins(0, 0, 0, 0) - self.verticalLayout_21.addItem(self.verticalSpacer_11) + self.verticalLayout_36.addWidget(self.frame_52) + self.verticalSpacer_13 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_36.addItem(self.verticalSpacer_13) - self.gridLayout_17.addWidget(self.frame_27, 0, 0, 1, 1) + + self.gridLayout_17.addWidget(self.frame_39, 0, 1, 1, 1) self.frame_31 = QFrame(self.topology_tab) self.frame_31.setObjectName(u"frame_31") @@ -4050,12 +3764,12 @@ def setupUi(self, mainWindow): self.label_85 = QLabel(self.frame_50) self.label_85.setObjectName(u"label_85") - palette40 = QPalette() - palette40.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette40.setBrush(QPalette.Inactive, QPalette.WindowText, brush) - palette40.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.label_85.setPalette(palette40) - self.label_85.setFont(font4) + palette38 = QPalette() + palette38.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette38.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette38.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_85.setPalette(palette38) + self.label_85.setFont(font3) self.label_85.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) self.horizontalLayout_22.addWidget(self.label_85) @@ -4065,11 +3779,11 @@ def setupUi(self, mainWindow): self.line_8 = QFrame(self.frame_31) self.line_8.setObjectName(u"line_8") - palette41 = QPalette() - palette41.setBrush(QPalette.Active, QPalette.WindowText, brush3) - palette41.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) - palette41.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) - self.line_8.setPalette(palette41) + palette39 = QPalette() + palette39.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette39.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette39.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_8.setPalette(palette39) self.line_8.setFrameShadow(QFrame.Plain) self.line_8.setLineWidth(4) self.line_8.setFrameShape(QFrame.Shape.HLine) @@ -4084,23 +3798,19 @@ def setupUi(self, mainWindow): self.verticalLayout_15.setObjectName(u"verticalLayout_15") self.label_34 = QLabel(self.frame_23) self.label_34.setObjectName(u"label_34") - self.label_34.setFont(font1) self.verticalLayout_15.addWidget(self.label_34) self.branch_rating_doubleSpinBox = QDoubleSpinBox(self.frame_23) self.branch_rating_doubleSpinBox.setObjectName(u"branch_rating_doubleSpinBox") - self.branch_rating_doubleSpinBox.setFont(font1) self.branch_rating_doubleSpinBox.setMinimum(1.000000000000000) self.branch_rating_doubleSpinBox.setMaximum(100.000000000000000) - self.branch_rating_doubleSpinBox.setSingleStep(0.100000000000000) self.branch_rating_doubleSpinBox.setValue(1.200000000000000) self.verticalLayout_15.addWidget(self.branch_rating_doubleSpinBox) self.rating_override_checkBox = QCheckBox(self.frame_23) self.rating_override_checkBox.setObjectName(u"rating_override_checkBox") - self.rating_override_checkBox.setFont(font1) self.verticalLayout_15.addWidget(self.rating_override_checkBox) @@ -4112,7 +3822,91 @@ def setupUi(self, mainWindow): self.verticalLayout_25.addItem(self.verticalSpacer_15) - self.gridLayout_17.addWidget(self.frame_31, 0, 1, 1, 1) + self.gridLayout_17.addWidget(self.frame_31, 0, 2, 1, 1) + + self.horizontalSpacer_18 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayout_17.addItem(self.horizontalSpacer_18, 0, 3, 1, 1) + + self.frame_27 = QFrame(self.topology_tab) + self.frame_27.setObjectName(u"frame_27") + self.frame_27.setFrameShape(QFrame.NoFrame) + self.frame_27.setFrameShadow(QFrame.Raised) + self.verticalLayout_21 = QVBoxLayout(self.frame_27) + self.verticalLayout_21.setObjectName(u"verticalLayout_21") + self.verticalLayout_21.setContentsMargins(-1, 0, -1, -1) + self.frame_48 = QFrame(self.frame_27) + self.frame_48.setObjectName(u"frame_48") + self.frame_48.setFrameShape(QFrame.NoFrame) + self.frame_48.setFrameShadow(QFrame.Raised) + self.horizontalLayout_20 = QHBoxLayout(self.frame_48) + self.horizontalLayout_20.setObjectName(u"horizontalLayout_20") + self.horizontalLayout_20.setContentsMargins(0, 0, 0, 0) + self.label_80 = QLabel(self.frame_48) + self.label_80.setObjectName(u"label_80") + self.label_80.setMinimumSize(QSize(24, 24)) + self.label_80.setMaximumSize(QSize(24, 24)) + self.label_80.setPixmap(QPixmap(u":/Icons/icons/grid_reduction.svg")) + self.label_80.setScaledContents(True) + + self.horizontalLayout_20.addWidget(self.label_80) + + self.label_81 = QLabel(self.frame_48) + self.label_81.setObjectName(u"label_81") + palette40 = QPalette() + palette40.setBrush(QPalette.Active, QPalette.WindowText, brush) + palette40.setBrush(QPalette.Inactive, QPalette.WindowText, brush) + palette40.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.label_81.setPalette(palette40) + self.label_81.setFont(font3) + self.label_81.setAlignment(Qt.AlignBottom|Qt.AlignLeading|Qt.AlignLeft) + + self.horizontalLayout_20.addWidget(self.label_81) + + + self.verticalLayout_21.addWidget(self.frame_48) + + self.line_20 = QFrame(self.frame_27) + self.line_20.setObjectName(u"line_20") + palette41 = QPalette() + palette41.setBrush(QPalette.Active, QPalette.WindowText, brush3) + palette41.setBrush(QPalette.Inactive, QPalette.WindowText, brush3) + palette41.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) + self.line_20.setPalette(palette41) + self.line_20.setFrameShadow(QFrame.Plain) + self.line_20.setLineWidth(4) + self.line_20.setFrameShape(QFrame.Shape.HLine) + + self.verticalLayout_21.addWidget(self.line_20) + + self.label_59 = QLabel(self.frame_27) + self.label_59.setObjectName(u"label_59") + + self.verticalLayout_21.addWidget(self.label_59) + + self.removeByTypeListView = QListView(self.frame_27) + self.removeByTypeListView.setObjectName(u"removeByTypeListView") + + self.verticalLayout_21.addWidget(self.removeByTypeListView) + + self.rxThresholdCheckBox = QCheckBox(self.frame_27) + self.rxThresholdCheckBox.setObjectName(u"rxThresholdCheckBox") + self.rxThresholdCheckBox.setChecked(True) + + self.verticalLayout_21.addWidget(self.rxThresholdCheckBox) + + self.rxThresholdSpinBox = QSpinBox(self.frame_27) + self.rxThresholdSpinBox.setObjectName(u"rxThresholdSpinBox") + self.rxThresholdSpinBox.setValue(5) + + self.verticalLayout_21.addWidget(self.rxThresholdSpinBox) + + self.verticalSpacer_11 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_21.addItem(self.verticalSpacer_11) + + + self.gridLayout_17.addWidget(self.frame_27, 0, 0, 1, 1) self.settings_tabWidget.addTab(self.topology_tab, icon13, "") self.file_tab = QWidget() @@ -4130,10 +3924,12 @@ def setupUi(self, mainWindow): self.label_115.setObjectName(u"label_115") palette42 = QPalette() palette42.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette42.setBrush(QPalette.Inactive, QPalette.WindowText, brush5) + brush4 = QBrush(QColor(0, 0, 0, 255)) + brush4.setStyle(Qt.SolidPattern) + palette42.setBrush(QPalette.Inactive, QPalette.WindowText, brush4) palette42.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.label_115.setPalette(palette42) - self.label_115.setFont(font4) + self.label_115.setFont(font3) self.gridLayout_11.addWidget(self.label_115, 0, 1, 1, 1) @@ -4152,7 +3948,6 @@ def setupUi(self, mainWindow): self.label_39 = QLabel(self.frame_77) self.label_39.setObjectName(u"label_39") - self.label_39.setFont(font1) self.gridLayout_11.addWidget(self.label_39, 2, 0, 1, 2) @@ -4171,25 +3966,21 @@ def setupUi(self, mainWindow): self.saveResultsCheckBox = QCheckBox(self.frame_77) self.saveResultsCheckBox.setObjectName(u"saveResultsCheckBox") - self.saveResultsCheckBox.setFont(font1) self.gridLayout_11.addWidget(self.saveResultsCheckBox, 6, 0, 1, 2) self.user_name_label = QLabel(self.frame_77) self.user_name_label.setObjectName(u"user_name_label") - self.user_name_label.setFont(font1) self.gridLayout_11.addWidget(self.user_name_label, 5, 0, 1, 2) self.model_version_label = QLabel(self.frame_77) self.model_version_label.setObjectName(u"model_version_label") - self.model_version_label.setFont(font1) self.gridLayout_11.addWidget(self.model_version_label, 4, 0, 1, 2) self.file_information_label = QLabel(self.frame_77) self.file_information_label.setObjectName(u"file_information_label") - self.file_information_label.setFont(font1) self.file_information_label.setWordWrap(True) self.file_information_label.setTextInteractionFlags(Qt.LinksAccessibleByMouse|Qt.TextSelectableByKeyboard|Qt.TextSelectableByMouse) @@ -4209,46 +4000,40 @@ def setupUi(self, mainWindow): self.label_134.setObjectName(u"label_134") palette44 = QPalette() palette44.setBrush(QPalette.Active, QPalette.WindowText, brush) - palette44.setBrush(QPalette.Inactive, QPalette.WindowText, brush5) + palette44.setBrush(QPalette.Inactive, QPalette.WindowText, brush4) palette44.setBrush(QPalette.Disabled, QPalette.WindowText, brush1) self.label_134.setPalette(palette44) - self.label_134.setFont(font4) + self.label_134.setFont(font3) self.gridLayout_5.addWidget(self.label_134, 0, 1, 1, 2) self.label_135 = QLabel(self.frame_79) self.label_135.setObjectName(u"label_135") - self.label_135.setFont(font1) self.gridLayout_5.addWidget(self.label_135, 2, 0, 1, 3) self.cgmes_profiles_listView = QListView(self.frame_79) self.cgmes_profiles_listView.setObjectName(u"cgmes_profiles_listView") - self.cgmes_profiles_listView.setFont(font1) self.gridLayout_5.addWidget(self.cgmes_profiles_listView, 12, 0, 1, 3) self.label_90 = QLabel(self.frame_79) self.label_90.setObjectName(u"label_90") - self.label_90.setFont(font1) self.gridLayout_5.addWidget(self.label_90, 8, 0, 1, 3) self.cgmes_version_comboBox = QComboBox(self.frame_79) self.cgmes_version_comboBox.setObjectName(u"cgmes_version_comboBox") - self.cgmes_version_comboBox.setFont(font1) self.gridLayout_5.addWidget(self.cgmes_version_comboBox, 3, 0, 1, 3) self.label_139 = QLabel(self.frame_79) self.label_139.setObjectName(u"label_139") - self.label_139.setFont(font1) self.gridLayout_5.addWidget(self.label_139, 11, 0, 1, 3) self.cgmes_single_profile_per_file_checkBox = QCheckBox(self.frame_79) self.cgmes_single_profile_per_file_checkBox.setObjectName(u"cgmes_single_profile_per_file_checkBox") - self.cgmes_single_profile_per_file_checkBox.setFont(font1) self.gridLayout_5.addWidget(self.cgmes_single_profile_per_file_checkBox, 13, 0, 1, 3) @@ -4277,13 +4062,11 @@ def setupUi(self, mainWindow): self.selectCGMESBoundarySetButton = QPushButton(self.frame_79) self.selectCGMESBoundarySetButton.setObjectName(u"selectCGMESBoundarySetButton") self.selectCGMESBoundarySetButton.setMaximumSize(QSize(80, 16777215)) - self.selectCGMESBoundarySetButton.setFont(font1) self.gridLayout_5.addWidget(self.selectCGMESBoundarySetButton, 9, 2, 1, 1) self.cgmes_boundary_set_label = QLabel(self.frame_79) self.cgmes_boundary_set_label.setObjectName(u"cgmes_boundary_set_label") - self.cgmes_boundary_set_label.setFont(font1) self.gridLayout_5.addWidget(self.cgmes_boundary_set_label, 9, 0, 1, 2) @@ -4306,7 +4089,6 @@ def setupUi(self, mainWindow): self.verticalLayout_7.setObjectName(u"verticalLayout_7") self.server_tableView = QTableView(self.tab_5) self.server_tableView.setObjectName(u"server_tableView") - self.server_tableView.setFont(font1) self.verticalLayout_7.addWidget(self.server_tableView) @@ -4319,25 +4101,21 @@ def setupUi(self, mainWindow): self.horizontalLayout_8.setContentsMargins(0, 0, 0, 0) self.label_146 = QLabel(self.frame_2) self.label_146.setObjectName(u"label_146") - self.label_146.setFont(font1) self.horizontalLayout_8.addWidget(self.label_146) self.server_url_lineEdit = QLineEdit(self.frame_2) self.server_url_lineEdit.setObjectName(u"server_url_lineEdit") - self.server_url_lineEdit.setFont(font1) self.horizontalLayout_8.addWidget(self.server_url_lineEdit) self.label_147 = QLabel(self.frame_2) self.label_147.setObjectName(u"label_147") - self.label_147.setFont(font1) self.horizontalLayout_8.addWidget(self.label_147) self.server_port_spinBox = QSpinBox(self.frame_2) self.server_port_spinBox.setObjectName(u"server_port_spinBox") - self.server_port_spinBox.setFont(font1) self.server_port_spinBox.setMaximum(9999999) self.server_port_spinBox.setValue(8000) @@ -4345,13 +4123,11 @@ def setupUi(self, mainWindow): self.label_148 = QLabel(self.frame_2) self.label_148.setObjectName(u"label_148") - self.label_148.setFont(font1) self.horizontalLayout_8.addWidget(self.label_148) self.server_pwd_lineEdit = QLineEdit(self.frame_2) self.server_pwd_lineEdit.setObjectName(u"server_pwd_lineEdit") - self.server_pwd_lineEdit.setFont(font1) self.server_pwd_lineEdit.setEchoMode(QLineEdit.Password) self.horizontalLayout_8.addWidget(self.server_pwd_lineEdit) @@ -4362,7 +4138,6 @@ def setupUi(self, mainWindow): self.server_status_label = QLabel(self.frame_2) self.server_status_label.setObjectName(u"server_status_label") - self.server_status_label.setFont(font1) self.horizontalLayout_8.addWidget(self.server_status_label) @@ -4380,8 +4155,7 @@ def setupUi(self, mainWindow): mainWindow.setCentralWidget(self.centralwidget) self.menuBar = QMenuBar(mainWindow) self.menuBar.setObjectName(u"menuBar") - self.menuBar.setGeometry(QRect(0, 0, 1346, 20)) - self.menuBar.setFont(font) + self.menuBar.setGeometry(QRect(0, 0, 1393, 22)) self.menuProject = QMenu(self.menuBar) self.menuProject.setObjectName(u"menuProject") self.menuExport = QMenu(self.menuProject) @@ -4396,10 +4170,8 @@ def setupUi(self, mainWindow): self.menuActions.setObjectName(u"menuActions") self.menuSimulations = QMenu(self.menuBar) self.menuSimulations.setObjectName(u"menuSimulations") - self.menuSimulations.setFont(font) self.menuModel = QMenu(self.menuBar) self.menuModel.setObjectName(u"menuModel") - self.menuModel.setFont(font) self.menuDiagrams = QMenu(self.menuBar) self.menuDiagrams.setObjectName(u"menuDiagrams") self.menuBus_Branch_options = QMenu(self.menuDiagrams) @@ -4562,7 +4334,7 @@ def setupUi(self, mainWindow): self.tabWidget_5.setCurrentIndex(0) self.tabWidget_4.setCurrentIndex(0) self.tabWidget_2.setCurrentIndex(0) - self.settings_tabWidget.setCurrentIndex(0) + self.settings_tabWidget.setCurrentIndex(7) QMetaObject.connectSlotsByName(mainWindow) @@ -4903,62 +4675,56 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) #if QT_CONFIG(tooltip) self.diagramsListView.setToolTip(QCoreApplication.translate("mainWindow", u"List of available diagrams", None)) -#endif // QT_CONFIG(tooltip) -#if QT_CONFIG(tooltip) - self.available_results_to_color_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Available results", None)) -#endif // QT_CONFIG(tooltip) -#if QT_CONFIG(tooltip) - self.colour_results_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"Color the grid with the selected study", None)) -#endif // QT_CONFIG(tooltip) - self.colour_results_pushButton.setText("") - self.schematic_step_label.setText(QCoreApplication.translate("mainWindow", u"Snapshot", None)) -#if QT_CONFIG(tooltip) - self.diagram_step_slider.setToolTip(QCoreApplication.translate("mainWindow", u"

Time slider

Move this time slider to select the appropriate time slot to view.

The first position sets the snapshot values, the rest attend to the time series values.

", None)) -#endif // QT_CONFIG(tooltip) - self.tabWidget_6.setTabText(self.tabWidget_6.indexOf(self.tab_3), QCoreApplication.translate("mainWindow", u"Diagrams", None)) - self.label_9.setText(QCoreApplication.translate("mainWindow", u"Node max. size", None)) -#if QT_CONFIG(tooltip) - self.resolution_factor_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Resolution factor.

1K = 1920 x 1080 pixels

", None)) -#endif // QT_CONFIG(tooltip) - self.resolution_factor_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" K", None)) - self.label_118.setText(QCoreApplication.translate("mainWindow", u"Map tile provider", None)) - self.label_24.setText(QCoreApplication.translate("mainWindow", u"Layout algorithm", None)) -#if QT_CONFIG(tooltip) - self.automatic_layout_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Algorithm to use for the automatic

layout of the grid nodes

", None)) -#endif // QT_CONFIG(tooltip) - self.label_60.setText(QCoreApplication.translate("mainWindow", u"Node expansion factor", None)) - self.min_node_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) - self.label_43.setText(QCoreApplication.translate("mainWindow", u"Palette", None)) - self.label_15.setText(QCoreApplication.translate("mainWindow", u"Branch max. size", None)) - self.label_35.setText(QCoreApplication.translate("mainWindow", u"Default voltage", None)) - self.label.setText(QCoreApplication.translate("mainWindow", u"Node min. size", None)) - self.label_14.setText(QCoreApplication.translate("mainWindow", u"Branch min. size", None)) - self.max_branch_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) +#endif // QT_CONFIG(tooltip) #if QT_CONFIG(tooltip) - self.explosion_factor_doubleSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

When expanding or contracting the distances between nodes, this is the factor that applies.

", None)) + self.available_results_to_color_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Available results", None)) #endif // QT_CONFIG(tooltip) - self.fps_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" FPS", None)) - self.max_node_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) - self.label_150.setText(QCoreApplication.translate("mainWindow", u"Video FPS", None)) #if QT_CONFIG(tooltip) - self.ask_before_appliying_layout_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Ask before running the automatic grid layout. This is because you might have a layout already and ruin it accidentally.", None)) + self.colour_results_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"Color the grid with the selected study", None)) #endif // QT_CONFIG(tooltip) - self.ask_before_appliying_layout_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ask before applying", None)) - self.label_32.setText(QCoreApplication.translate("mainWindow", u"Export resolution", None)) - self.min_branch_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) + self.colour_results_pushButton.setText("") + self.schematic_step_label.setText(QCoreApplication.translate("mainWindow", u"Snapshot", None)) +#if QT_CONFIG(tooltip) + self.diagram_step_slider.setToolTip(QCoreApplication.translate("mainWindow", u"

Time slider

Move this time slider to select the appropriate time slot to view.

The first position sets the snapshot values, the rest attend to the time series values.

", None)) +#endif // QT_CONFIG(tooltip) + self.tabWidget_6.setTabText(self.tabWidget_6.indexOf(self.tab_3), QCoreApplication.translate("mainWindow", u"Diagrams", None)) + self.label_110.setText("") + self.label_111.setText(QCoreApplication.translate("mainWindow", u"Schematic", None)) + self.label_43.setText(QCoreApplication.translate("mainWindow", u"Palette", None)) + self.label_35.setText(QCoreApplication.translate("mainWindow", u"Default voltage", None)) #if QT_CONFIG(tooltip) self.defaultBusVoltageSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Bus default voltage

This is the voltage that drag&drop buses have when they are created from the schematic.

", None)) #endif // QT_CONFIG(tooltip) self.defaultBusVoltageSpinBox.setSuffix(QCoreApplication.translate("mainWindow", u" kV", None)) self.label_99.setText("") self.label_100.setText(QCoreApplication.translate("mainWindow", u"Map", None)) - self.label_110.setText("") - self.label_111.setText(QCoreApplication.translate("mainWindow", u"Schematic", None)) - self.label_66.setText("") - self.label_45.setText(QCoreApplication.translate("mainWindow", u"Export", None)) + self.label_118.setText(QCoreApplication.translate("mainWindow", u"Map tile provider", None)) self.label_156.setText("") self.label_155.setText(QCoreApplication.translate("mainWindow", u"Display", None)) + self.label.setText(QCoreApplication.translate("mainWindow", u"Node min. size", None)) + self.min_node_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) + self.label_9.setText(QCoreApplication.translate("mainWindow", u"Node max. size", None)) + self.max_node_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) + self.label_14.setText(QCoreApplication.translate("mainWindow", u"Branch min. size", None)) + self.min_branch_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) + self.label_15.setText(QCoreApplication.translate("mainWindow", u"Branch max. size", None)) + self.max_branch_size_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" px", None)) self.branch_width_based_on_flow_checkBox.setText(QCoreApplication.translate("mainWindow", u"Width based on flow", None)) + self.label_66.setText("") + self.label_45.setText(QCoreApplication.translate("mainWindow", u"Export", None)) + self.label_32.setText(QCoreApplication.translate("mainWindow", u"Export resolution", None)) +#if QT_CONFIG(tooltip) + self.resolution_factor_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Resolution factor.

1K = 1920 x 1080 pixels

", None)) +#endif // QT_CONFIG(tooltip) + self.resolution_factor_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" K", None)) + self.label_150.setText(QCoreApplication.translate("mainWindow", u"Video FPS", None)) + self.fps_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" FPS", None)) + self.label_76.setText("") + self.label_49.setText(QCoreApplication.translate("mainWindow", u"Plotting", None)) + self.label_38.setText(QCoreApplication.translate("mainWindow", u"Style", None)) +#if QT_CONFIG(tooltip) + self.plt_style_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"MatPlotlib plot styles to choose from", None)) +#endif // QT_CONFIG(tooltip) self.tabWidget_6.setTabText(self.tabWidget_6.indexOf(self.tab_4), QCoreApplication.translate("mainWindow", u"Settings", None)) self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.GridSectionTab), QCoreApplication.translate("mainWindow", u"Diagrams", None)) #if QT_CONFIG(tooltip) @@ -5054,14 +4820,14 @@ def retranslateUi(self, mainWindow): self.set_profile_value_pushButton.setText("") self.tabWidget_5.setTabText(self.tabWidget_5.indexOf(self.tab_16), QCoreApplication.translate("mainWindow", u"Time series", None)) self.tabWidget_3.setTabText(self.tabWidget_3.indexOf(self.DataTab), QCoreApplication.translate("mainWindow", u"Database", None)) -#if QT_CONFIG(tooltip) - self.exportSimulationDataButton.setToolTip(QCoreApplication.translate("mainWindow", u"Export simulation data", None)) -#endif // QT_CONFIG(tooltip) - self.exportSimulationDataButton.setText("") #if QT_CONFIG(tooltip) self.compute_simulation_data_pushButton.setToolTip(QCoreApplication.translate("mainWindow", u"Update the islands dispayed", None)) #endif // QT_CONFIG(tooltip) self.compute_simulation_data_pushButton.setText("") +#if QT_CONFIG(tooltip) + self.exportSimulationDataButton.setToolTip(QCoreApplication.translate("mainWindow", u"Export simulation data", None)) +#endif // QT_CONFIG(tooltip) + self.exportSimulationDataButton.setText("") #if QT_CONFIG(tooltip) self.copyArraysToNumpyButton.setToolTip(QCoreApplication.translate("mainWindow", u"Copy to data frame to clipboard in array format", None)) #endif // QT_CONFIG(tooltip) @@ -5173,16 +4939,9 @@ def retranslateUi(self, mainWindow): self.fbase_doubleSpinBox.setSuffix(QCoreApplication.translate("mainWindow", u" Hz", None)) self.label_101.setText(QCoreApplication.translate("mainWindow", u"Snapshot time", None)) self.label_40.setText("") - self.label_86.setText("") - self.label_65.setText(QCoreApplication.translate("mainWindow", u"Engine", None)) + self.label_31.setText(QCoreApplication.translate("mainWindow", u"Engine", None)) #if QT_CONFIG(tooltip) self.engineComboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Engine to be used when available", None)) -#endif // QT_CONFIG(tooltip) - self.label_48.setText("") - self.label_76.setText("") - self.label_49.setText(QCoreApplication.translate("mainWindow", u"Plotting", None)) -#if QT_CONFIG(tooltip) - self.plt_style_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"MatPlotlib plot styles to choose from", None)) #endif // QT_CONFIG(tooltip) self.dark_mode_checkBox.setText(QCoreApplication.translate("mainWindow", u"Dark mode", None)) #if QT_CONFIG(tooltip) @@ -5193,25 +4952,58 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.label_63.setText("") self.label_17.setText(QCoreApplication.translate("mainWindow", u"Power flow", None)) +#if QT_CONFIG(tooltip) + self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) +#endif // QT_CONFIG(tooltip) + self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) +#if QT_CONFIG(tooltip) + self.helm_retry_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If the selected method does not converge, try a list of methods that may help

", None)) +#endif // QT_CONFIG(tooltip) + self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) +#if QT_CONFIG(tooltip) + self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) +#endif // QT_CONFIG(tooltip) + self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) + self.label_86.setText("") + self.label_22.setText("") #if QT_CONFIG(tooltip) self.tolerance_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Error tolerance of the method

", None)) #endif // QT_CONFIG(tooltip) self.tolerance_spinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) +#if QT_CONFIG(tooltip) + self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) +#endif // QT_CONFIG(tooltip) + self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) self.label_2.setText(QCoreApplication.translate("mainWindow", u"Solver", None)) - self.label_22.setText("") + self.label_11.setText(QCoreApplication.translate("mainWindow", u"Trust radius", None)) #if QT_CONFIG(tooltip) self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) #endif // QT_CONFIG(tooltip) self.label_6.setText(QCoreApplication.translate("mainWindow", u"Max. iterations", None)) - self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) #if QT_CONFIG(tooltip) self.muSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor that multiplies each increment solution.

In practice this is used to slow down troublesome solutions.

", None)) #endif // QT_CONFIG(tooltip) + self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) + self.label_87.setText("") +#if QT_CONFIG(tooltip) + self.ignore_single_node_islands_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the islands of a single node are ignored.", None)) +#endif // QT_CONFIG(tooltip) + self.ignore_single_node_islands_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ignore single node islands", None)) self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) #if QT_CONFIG(tooltip) - self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) + self.addPowerFlowReportCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Add a results report in the logs", None)) #endif // QT_CONFIG(tooltip) - self.label_11.setText(QCoreApplication.translate("mainWindow", u"Trust radius", None)) + self.addPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None)) + self.label_48.setText(QCoreApplication.translate("mainWindow", u"Reactive power control mode", None)) + self.label_641.setText("") + self.label_50.setText(QCoreApplication.translate("mainWindow", u"Transformer taps control mode", None)) + self.label_65.setText("") +#if QT_CONFIG(tooltip) + self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) +#endif // QT_CONFIG(tooltip) + self.temperature_correction_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply temperature correction", None)) + self.apply_impedance_tolerances_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply impedance tolerances", None)) + self.override_branch_controls_checkBox.setText(QCoreApplication.translate("mainWindow", u"Override branch controls", None)) self.label_70.setText("") self.label_71.setText(QCoreApplication.translate("mainWindow", u"PTDF / LODF", None)) self.ptdf_correct_nonsense_values_checkBox.setText(QCoreApplication.translate("mainWindow", u"Correct nonsense values", None)) @@ -5229,47 +5021,6 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.label_116.setText(QCoreApplication.translate("mainWindow", u"PTDF threshold", None)) self.label_124.setText("") -#if QT_CONFIG(tooltip) - self.helm_retry_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If the selected method does not converge, try a list of methods that may help

", None)) -#endif // QT_CONFIG(tooltip) - self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) - self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) -#if QT_CONFIG(tooltip) - self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) -#endif // QT_CONFIG(tooltip) - self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) -#if QT_CONFIG(tooltip) - self.ignore_single_node_islands_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the islands of a single node are ignored.", None)) -#endif // QT_CONFIG(tooltip) - self.ignore_single_node_islands_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ignore single node islands", None)) -#if QT_CONFIG(tooltip) - self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) -#endif // QT_CONFIG(tooltip) - self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) - self.label_50.setText("") -#if QT_CONFIG(tooltip) - self.control_q_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the generators, abtteries, controllable shunts, etc control their reactive power to be within limits.", None)) -#endif // QT_CONFIG(tooltip) - self.control_q_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control generators Q", None)) -#if QT_CONFIG(tooltip) - self.control_tap_modules_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active the branches with tap module control such as transformers or VSC converters control some voltage with their tap module", None)) -#endif // QT_CONFIG(tooltip) - self.control_tap_modules_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control tap module", None)) -#if QT_CONFIG(tooltip) - self.control_tap_phase_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active the branches with tap phase control such as transformers or VSC converters control their \"from\" active power flow", None)) -#endif // QT_CONFIG(tooltip) - self.control_tap_phase_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control tap phase", None)) - self.label_54.setText("") -#if QT_CONFIG(tooltip) - self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) -#endif // QT_CONFIG(tooltip) - self.temperature_correction_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply temperature correction", None)) - self.apply_impedance_tolerances_checkBox.setText(QCoreApplication.translate("mainWindow", u"Apply impedance tolerances", None)) - self.label_56.setText("") -#if QT_CONFIG(tooltip) - self.addPowerFlowReportCheckBox.setToolTip(QCoreApplication.translate("mainWindow", u"Add a results report in the logs", None)) -#endif // QT_CONFIG(tooltip) - self.addPowerFlowReportCheckBox.setText(QCoreApplication.translate("mainWindow", u"Add report", None)) self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.pf_tab), QCoreApplication.translate("mainWindow", u"Pf", None)) #if QT_CONFIG(tooltip) self.settings_tabWidget.setTabToolTip(self.settings_tabWidget.indexOf(self.pf_tab), QCoreApplication.translate("mainWindow", u"Power flow settings", None)) @@ -5299,6 +5050,26 @@ def retranslateUi(self, mainWindow): #if QT_CONFIG(tooltip) self.opf_tab.setToolTip(QCoreApplication.translate("mainWindow", u"Optimal power flow settings", None)) #endif // QT_CONFIG(tooltip) + self.groupBox.setTitle(QCoreApplication.translate("mainWindow", u"Linear settings", None)) + self.label_103.setText(QCoreApplication.translate("mainWindow", u"Zone grouping", None)) + self.label_104.setText(QCoreApplication.translate("mainWindow", u"Contingency tolerance", None)) +#if QT_CONFIG(tooltip) + self.opfContingencyToleranceSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"LODF matrix tolerance choosing contingencies", None)) +#endif // QT_CONFIG(tooltip) + self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None)) + self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None)) +#if QT_CONFIG(tooltip) + self.opf_time_grouping_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Choose the time grouping to possibly shorten the solution time.

This splits the time series by week, month, etc. and the subproblems are solved sequentially.

", None)) +#endif // QT_CONFIG(tooltip) +#if QT_CONFIG(tooltip) + self.mip_solver_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Choose the external mixed integer programming solver", None)) +#endif // QT_CONFIG(tooltip) + self.label_132.setText("") + self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Consider contingencies", None)) +#if QT_CONFIG(tooltip) + self.save_mip_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

The program will save the MIP file in .lp format in the user GridCal folder before running a linear optimization study.

", None)) +#endif // QT_CONFIG(tooltip) + self.save_mip_checkBox.setText(QCoreApplication.translate("mainWindow", u"Save MIP file", None)) self.groupBox_3.setTitle(QCoreApplication.translate("mainWindow", u"Nonlinear settings", None)) #if QT_CONFIG(tooltip) self.label_127.setToolTip(QCoreApplication.translate("mainWindow", u"Interior point trust radius", None)) @@ -5331,26 +5102,7 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.label_129.setText(QCoreApplication.translate("mainWindow", u"Iterations", None)) self.label_130.setText("") - self.groupBox.setTitle(QCoreApplication.translate("mainWindow", u"Linear settings", None)) - self.label_103.setText(QCoreApplication.translate("mainWindow", u"Zone grouping", None)) - self.label_104.setText(QCoreApplication.translate("mainWindow", u"Contingency tolerance", None)) -#if QT_CONFIG(tooltip) - self.opfContingencyToleranceSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"LODF matrix tolerance choosing contingencies", None)) -#endif // QT_CONFIG(tooltip) - self.label_10.setText(QCoreApplication.translate("mainWindow", u"MIP solver", None)) - self.label_4.setText(QCoreApplication.translate("mainWindow", u"Time grouping", None)) -#if QT_CONFIG(tooltip) - self.opf_time_grouping_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Choose the time grouping to possibly shorten the solution time.

This splits the time series by week, month, etc. and the subproblems are solved sequentially.

", None)) -#endif // QT_CONFIG(tooltip) -#if QT_CONFIG(tooltip) - self.mip_solver_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Choose the external mixed integer programming solver", None)) -#endif // QT_CONFIG(tooltip) - self.label_132.setText("") - self.considerContingenciesOpfCheckBox.setText(QCoreApplication.translate("mainWindow", u"Consider contingencies", None)) -#if QT_CONFIG(tooltip) - self.save_mip_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

The program will save the MIP file in .lp format in the user GridCal folder before running a linear optimization study.

", None)) -#endif // QT_CONFIG(tooltip) - self.save_mip_checkBox.setText(QCoreApplication.translate("mainWindow", u"Save MIP file", None)) + self.label_72.setText("") self.label_73.setText(QCoreApplication.translate("mainWindow", u"Optimal Power Flow", None)) self.groupBox_2.setTitle(QCoreApplication.translate("mainWindow", u"General settings", None)) self.label_128.setText(QCoreApplication.translate("mainWindow", u"Verbose", None)) @@ -5369,7 +5121,7 @@ def retranslateUi(self, mainWindow): self.opfMaximizeExcahngeCheckBox.setText(QCoreApplication.translate("mainWindow", u"Maximize area exchange", None)) self.opfUnitCommitmentCheckBox.setText(QCoreApplication.translate("mainWindow", u"Unit commitment", None)) self.skipOpfGenerationLimitsCheckBox.setText(QCoreApplication.translate("mainWindow", u"Skip generation limits", None)) - self.label_72.setText("") + self.label_131.setText("") self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.opf_tab), QCoreApplication.translate("mainWindow", u"Opf", None)) #if QT_CONFIG(tooltip) self.settings_tabWidget.setTabToolTip(self.settings_tabWidget.indexOf(self.opf_tab), QCoreApplication.translate("mainWindow", u"Optimal power flow settings", None)) @@ -5377,6 +5129,13 @@ def retranslateUi(self, mainWindow): #if QT_CONFIG(tooltip) self.ntc_tab.setToolTip(QCoreApplication.translate("mainWindow", u"Net transfer capacity settings", None)) #endif // QT_CONFIG(tooltip) + self.groupBox_6.setTitle(QCoreApplication.translate("mainWindow", u"Linear", None)) + self.n1ConsiderationCheckBox.setText(QCoreApplication.translate("mainWindow", u"n-1 sensibility consideration", None)) + self.label_62.setText(QCoreApplication.translate("mainWindow", u"Transfer sensitivity threshold", None)) +#if QT_CONFIG(tooltip) + self.atcThresholdSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Threshold used to discard insensitive branches", None)) +#endif // QT_CONFIG(tooltip) + self.label_97.setText("") self.groupBox_5.setTitle(QCoreApplication.translate("mainWindow", u"Optimization", None)) self.label_26.setText("") #if QT_CONFIG(tooltip) @@ -5415,17 +5174,11 @@ def retranslateUi(self, mainWindow): self.label_30.setText(QCoreApplication.translate("mainWindow", u"Loading threshold to report", None)) self.label_77.setText(QCoreApplication.translate("mainWindow", u"Transfer method", None)) self.ntcReportLoadingThresholdSpinBox.setSuffix(QCoreApplication.translate("mainWindow", u"%", None)) - self.label_97.setText("") - self.groupBox_6.setTitle(QCoreApplication.translate("mainWindow", u"Linear", None)) - self.n1ConsiderationCheckBox.setText(QCoreApplication.translate("mainWindow", u"n-1 sensibility consideration", None)) - self.label_62.setText(QCoreApplication.translate("mainWindow", u"Transfer sensitivity threshold", None)) -#if QT_CONFIG(tooltip) - self.atcThresholdSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Threshold used to discard insensitive branches", None)) -#endif // QT_CONFIG(tooltip) #if QT_CONFIG(tooltip) self.label_96.setToolTip(QCoreApplication.translate("mainWindow", u"Select the solver in the OPF tab and the areas in the areas tab", None)) #endif // QT_CONFIG(tooltip) self.label_96.setText(QCoreApplication.translate("mainWindow", u"Net transfer capacity", None)) + self.label_61.setText("") self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.ntc_tab), QCoreApplication.translate("mainWindow", u"Ntc", None)) #if QT_CONFIG(tooltip) self.settings_tabWidget.setTabToolTip(self.settings_tabWidget.indexOf(self.ntc_tab), QCoreApplication.translate("mainWindow", u"Network transfer capacity related settings", None)) @@ -5433,6 +5186,11 @@ def retranslateUi(self, mainWindow): #if QT_CONFIG(tooltip) self.nodal_capacity_tab.setToolTip(QCoreApplication.translate("mainWindow", u"Nodal capacity hosting options", None)) #endif // QT_CONFIG(tooltip) + self.label_141.setText("") +#if QT_CONFIG(tooltip) + self.label_140.setToolTip(QCoreApplication.translate("mainWindow", u"Select the solver in the OPF tab and the areas in the areas tab", None)) +#endif // QT_CONFIG(tooltip) + self.label_140.setText(QCoreApplication.translate("mainWindow", u"Nodal hosting capacity", None)) self.groupBox_7.setTitle(QCoreApplication.translate("mainWindow", u"General", None)) #if QT_CONFIG(tooltip) self.label_143.setToolTip(QCoreApplication.translate("mainWindow", u"If the sense is positive, the algorithm will asses the maximum generation capacity in the selected nodes. If it is negative it will asses the maximum loading capacity in the selected nodes.", None)) @@ -5452,11 +5210,7 @@ def retranslateUi(self, mainWindow): self.nodal_capacity_method_comboBox.setStatusTip("") #endif // QT_CONFIG(statustip) self.label_144.setText("") - self.label_141.setText("") -#if QT_CONFIG(tooltip) - self.label_140.setToolTip(QCoreApplication.translate("mainWindow", u"Select the solver in the OPF tab and the areas in the areas tab", None)) -#endif // QT_CONFIG(tooltip) - self.label_140.setText(QCoreApplication.translate("mainWindow", u"Nodal hosting capacity", None)) + self.label_145.setText("") self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.nodal_capacity_tab), QCoreApplication.translate("mainWindow", u"Nhc", None)) #if QT_CONFIG(tooltip) self.settings_tabWidget.setTabToolTip(self.settings_tabWidget.indexOf(self.nodal_capacity_tab), QCoreApplication.translate("mainWindow", u"Nodal hosting capacity related settings", None)) @@ -5522,43 +5276,40 @@ def retranslateUi(self, mainWindow): #if QT_CONFIG(tooltip) self.ml_tab.setToolTip(QCoreApplication.translate("mainWindow", u"Machine-learning related settings", None)) #endif // QT_CONFIG(tooltip) - self.label_7.setText("") + self.label_121.setText(QCoreApplication.translate("mainWindow", u"Investment evaluation", None)) self.label_120.setText("") - self.label_93.setText(QCoreApplication.translate("mainWindow", u"Clustering", None)) - self.label_33.setText(QCoreApplication.translate("mainWindow", u"Number of clusters", None)) - self.label_31.setText("") + self.label_153.setText(QCoreApplication.translate("mainWindow", u"Objective function", None)) + self.label_3.setText(QCoreApplication.translate("mainWindow", u"Method", None)) + self.label_88.setText("") + self.label_51.setText(QCoreApplication.translate("mainWindow", u"Maximum evaluations", None)) #if QT_CONFIG(tooltip) - self.max_investments_evluation_number_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Number of maximum evaluations for the optimization methods", None)) + self.node_distances_elements_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Minimum size of the group", None)) #endif // QT_CONFIG(tooltip) - self.max_investments_evluation_number_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" x number of investments", None)) - self.label_38.setText(QCoreApplication.translate("mainWindow", u"Nodal distances", None)) - self.label_3.setText(QCoreApplication.translate("mainWindow", u"Method", None)) +#if QT_CONFIG(statustip) + self.node_distances_elements_spinBox.setStatusTip("") +#endif // QT_CONFIG(statustip) + self.node_distances_elements_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" elements", None)) #if QT_CONFIG(tooltip) self.cluster_number_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Number of clusters, this affects all the simulations that deal with clustering

", None)) #endif // QT_CONFIG(tooltip) self.cluster_number_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" Clusters", None)) - self.label_153.setText(QCoreApplication.translate("mainWindow", u"Objective function", None)) - self.label_88.setText("") + self.label_89.setText(QCoreApplication.translate("mainWindow", u"Node grouping", None)) + self.label_93.setText(QCoreApplication.translate("mainWindow", u"Clustering", None)) #if QT_CONFIG(tooltip) - self.investment_evaluation_method_ComboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Select the investment evaluation method", None)) + self.max_investments_evluation_number_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Number of maximum evaluations for the optimization methods", None)) #endif // QT_CONFIG(tooltip) - self.label_44.setText("") - self.label_51.setText(QCoreApplication.translate("mainWindow", u"Maximum evaluations", None)) - self.label_94.setText("") - self.label_89.setText(QCoreApplication.translate("mainWindow", u"Node grouping", None)) + self.max_investments_evluation_number_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" x number of investments", None)) + self.label_33.setText(QCoreApplication.translate("mainWindow", u"Number of clusters", None)) #if QT_CONFIG(tooltip) self.node_distances_sigma_doubleSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"M\u00e1ximum standard deviation to determine the groups", None)) #endif // QT_CONFIG(tooltip) self.node_distances_sigma_doubleSpinBox.setSuffix(QCoreApplication.translate("mainWindow", u" \u03c3", None)) - self.label_121.setText(QCoreApplication.translate("mainWindow", u"Investment evaluation", None)) + self.label_7.setText("") + self.label_44.setText("") #if QT_CONFIG(tooltip) - self.node_distances_elements_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Minimum size of the group", None)) + self.investment_evaluation_method_ComboBox.setToolTip(QCoreApplication.translate("mainWindow", u"Select the investment evaluation method", None)) #endif // QT_CONFIG(tooltip) -#if QT_CONFIG(statustip) - self.node_distances_elements_spinBox.setStatusTip("") -#endif // QT_CONFIG(statustip) - self.node_distances_elements_spinBox.setSuffix(QCoreApplication.translate("mainWindow", u" elements", None)) - self.label_61.setText(QCoreApplication.translate("mainWindow", u"Min. group size", None)) + self.label_94.setText("") self.label_55.setText(QCoreApplication.translate("mainWindow", u"Method", None)) self.label_78.setText("") self.label_79.setText(QCoreApplication.translate("mainWindow", u"Cascading", None)) @@ -5576,14 +5327,20 @@ def retranslateUi(self, mainWindow): #if QT_CONFIG(tooltip) self.topology_tab.setToolTip(QCoreApplication.translate("mainWindow", u"Topology settings", None)) #endif // QT_CONFIG(tooltip) - self.label_80.setText("") - self.label_81.setText(QCoreApplication.translate("mainWindow", u"Grid reduction", None)) - self.label_59.setText(QCoreApplication.translate("mainWindow", u"Select branch types to reduce", None)) - self.rxThresholdCheckBox.setText(QCoreApplication.translate("mainWindow", u"Filter by r+x under threshold", None)) + self.label_82.setText("") + self.label_83.setText(QCoreApplication.translate("mainWindow", u"Node layout", None)) + self.label_24.setText(QCoreApplication.translate("mainWindow", u"Automatic layout algorithm", None)) #if QT_CONFIG(tooltip) - self.rxThresholdSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Exponent of the threshold to use.

threshold = 1x10^-factor

i.e.

factor=3

threshold = 1e-3

", None)) + self.automatic_layout_comboBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Algorithm to use for the automatic

layout of the grid nodes

", None)) +#endif // QT_CONFIG(tooltip) +#if QT_CONFIG(tooltip) + self.ask_before_appliying_layout_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Ask before running the automatic grid layout. This is because you might have a layout already and ruin it accidentally.", None)) +#endif // QT_CONFIG(tooltip) + self.ask_before_appliying_layout_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ask before applying", None)) + self.label_60.setText(QCoreApplication.translate("mainWindow", u"Node expansion factor", None)) +#if QT_CONFIG(tooltip) + self.explosion_factor_doubleSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

When expanding or contracting the distances between nodes, this is the factor that applies.

", None)) #endif // QT_CONFIG(tooltip) - self.rxThresholdSpinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) self.label_84.setText("") self.label_85.setText(QCoreApplication.translate("mainWindow", u"Branch rating", None)) self.label_34.setText(QCoreApplication.translate("mainWindow", u"Branch rating factor", None)) @@ -5591,6 +5348,14 @@ def retranslateUi(self, mainWindow): self.branch_rating_doubleSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor to aply to the branch calculated power to use as rating

", None)) #endif // QT_CONFIG(tooltip) self.rating_override_checkBox.setText(QCoreApplication.translate("mainWindow", u"override values", None)) + self.label_80.setText("") + self.label_81.setText(QCoreApplication.translate("mainWindow", u"Grid reduction", None)) + self.label_59.setText(QCoreApplication.translate("mainWindow", u"Select branch types to reduce", None)) + self.rxThresholdCheckBox.setText(QCoreApplication.translate("mainWindow", u"Filter by r+x under threshold", None)) +#if QT_CONFIG(tooltip) + self.rxThresholdSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Exponent of the threshold to use.

threshold = 1x10^-factor

i.e.

factor=3

threshold = 1e-3

", None)) +#endif // QT_CONFIG(tooltip) + self.rxThresholdSpinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) self.settings_tabWidget.setTabText(self.settings_tabWidget.indexOf(self.topology_tab), QCoreApplication.translate("mainWindow", u"Tplgy", None)) #if QT_CONFIG(tooltip) self.settings_tabWidget.setTabToolTip(self.settings_tabWidget.indexOf(self.topology_tab), QCoreApplication.translate("mainWindow", u"Topology related settings", None)) diff --git a/src/GridCal/Gui/Main/icons_rc.py b/src/GridCal/Gui/Main/icons_rc.py index 50e44a5e6..ac1074f92 100644 --- a/src/GridCal/Gui/Main/icons_rc.py +++ b/src/GridCal/Gui/Main/icons_rc.py @@ -31158,7 +31158,7 @@ \x00\x00\x11B\x00\x01\x00\x00\x00\x01\x00\x06N\xb8\ \x00\x00\x01\x88\xae\xf9[)\ \x00\x00\x09v\x00\x00\x00\x00\x00\x01\x00\x03\x80\x9e\ -\x00\x00\x01\x916\x08\x04)\ +\x00\x00\x01\x91\x0c\xf5\xa9z\ \x00\x00\x0b\xdc\x00\x00\x00\x00\x00\x01\x00\x04V\x85\ \x00\x00\x01\x8b\xd7}+~\ \x00\x00\x0a|\x00\x01\x00\x00\x00\x01\x00\x03\xcf\xf6\ diff --git a/src/GridCal/__version__.py b/src/GridCal/__version__.py index c10267ab2..1c8a40e3d 100644 --- a/src/GridCal/__version__.py +++ b/src/GridCal/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCal_VERSION__ = "5.2.0" +__GridCal_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/GridCalEngine/__version__.py b/src/GridCalEngine/__version__.py index e4b141939..e8fc85d17 100644 --- a/src/GridCalEngine/__version__.py +++ b/src/GridCalEngine/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCalEngine_VERSION__ = "5.2.0" +__GridCalEngine_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' diff --git a/src/GridCalServer/__version__.py b/src/GridCalServer/__version__.py index 7db66f638..eb2ada850 100644 --- a/src/GridCalServer/__version__.py +++ b/src/GridCalServer/__version__.py @@ -16,7 +16,7 @@ _current_year_ = datetime.datetime.now().year # do not forget to keep a three-number version!!! -__GridCalServer_VERSION__ = "5.2.0" +__GridCalServer_VERSION__ = "5.1.21" url = 'https://github.com/SanPen/GridCal' From 5faa5333a80a1a833839887aaef9c416434d3030 Mon Sep 17 00:00:00 2001 From: Santi Date: Fri, 2 Aug 2024 18:15:53 +0100 Subject: [PATCH 175/218] Some minimal fixes to the map behaviour --- .idea/workspace.xml | 1136 ++++++++--------- .../Substation/substation_graphic_item.py | 42 +- .../Gui/Diagrams/MapWidget/grid_map_widget.py | 59 +- .../Gui/Diagrams/MapWidget/map_widget.py | 27 +- .../Gui/Main/SubClasses/Model/diagrams.py | 1 - 5 files changed, 592 insertions(+), 673 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c2bbaae99..8b243f156 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,12 @@
- + - - - - + + + + @@ -88,13 +89,6 @@ - - - @@ -131,56 +125,72 @@ - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", + "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", + "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", + "Python tests.pytest for test_sparse2.test_expand.executor": "Run", + "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", + "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", + "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_derivatives.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_sparse2.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.acciona_capex.executor": "Run", + "Python.associations_templates.executor": "Debug", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.multi_select.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.tallr_table_headers.executor": "Debug", + "Python.test_derivatives.executor": "Run", + "Python.try_template_loading.executor": "Debug", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "da64cd0f", + "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +}
+ + - - @@ -202,7 +212,28 @@ - + + + + + + + + + + - - + + - + - + - - + + - - + + @@ -587,60 +666,6 @@ - - - - - - - - - - - - - + + + + - + - - - + + + - @@ -1415,8 +1439,14 @@ - - + + + + + + + + 1656059954202 @@ -1761,7 +1791,7 @@ - @@ -1794,7 +1824,7 @@ - @@ -1807,32 +1837,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2220,21 +2250,6 @@ 63 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + - - - + + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - + + + + + + + + + + + - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + \ No newline at end of file diff --git a/examples/try_template_loading.py b/examples/try_template_loading.py index 177630a48..f5c7dd5b9 100644 --- a/examples/try_template_loading.py +++ b/examples/try_template_loading.py @@ -7,7 +7,8 @@ def open_dummy_grid(): # fname = os.path.join('C:/Users/J/Downloads/temp_tr1.gridcal') # fname = os.path.join('C:/Users/J/Downloads/temp_tr1_invested.gridcal') - fname = os.path.join('C:/Users/J/Downloads/temp_tr2.gridcal') + # fname = os.path.join('C:/Users/J/Downloads/temp_tr2.gridcal') + fname = os.path.join('C:/Users/J/Downloads/jsp2.gridcal') main_circuit = gce.open_file(fname) results = gce.power_flow(main_circuit) print(results.voltage) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index e5514dcff..19989f1d8 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1587,7 +1587,8 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_transformer_types) + template_data=elm.possible_transformer_types, + template_type=elm.device_type) self.circuit.add_investment(con) elif elm.type_name == 'Line': if elm.type_name == 'Sequence line': @@ -1597,7 +1598,8 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_sequence_line_types) + template_data=elm.possible_sequence_line_types, + template_type=elm.device_type) self.circuit.add_investment(con) elif elm.type_name == 'Underground line': con = dev.Investment(device_idtag=elm.idtag, @@ -1606,7 +1608,8 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_underground_line_types) + template_data=elm.possible_underground_line_types, + template_type=elm.device_type) self.circuit.add_investment(con) elif elm.type_name == 'Tower': con = dev.Investment(device_idtag=elm.idtag, @@ -1615,7 +1618,8 @@ def add_selected_to_investment(self) -> None: CAPEX=0.0, OPEX=0.0, group=group, - template=elm.possible_tower_types) + template_data=elm.possible_tower_types, + template_type=elm.device_type) self.circuit.add_investment(con) else: con = dev.Investment(device_idtag=elm.idtag, diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 9eda5aa8f..e91bddd7d 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,7 +1,8 @@ -from typing import Union, Any +from typing import Union, Any, Dict from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup +from GridCalEngine.Devices.Associations.association import Associations class Investment(EditableDevice): @@ -18,7 +19,8 @@ def __init__(self, OPEX: float = 0.0, status: bool = True, group: InvestmentsGroup = None, - template: SubObjectType.Associations = None, + template_data: SubObjectType.Associations = None, + template_type: DeviceType = None, comment: str = ""): """ Investment @@ -44,8 +46,13 @@ def __init__(self, self.CAPEX = CAPEX self.OPEX = OPEX self._group: InvestmentsGroup = group - self.status: bool = status - self.template = template + self.status = status + self.group = group + + self.template = Associations(device_type=template_type) + if template_data is not None: + for vv in template_data: + self.template.add(val=vv) self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, @@ -54,43 +61,50 @@ def __init__(self, definition='Operation expenditures. Maintenance costs among other recurrent costs.') self.register(key='status', units='', tpe=bool, definition='If true the investment activates when applied, otherwise is deactivated.') + self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') + self.register(key='template', units='', tpe=SubObjectType.Associations, definition='Possible templates of each component') - self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') - @property - def group(self) -> InvestmentsGroup: - """ - Group of investments - :return: - """ - return self._group - @group.setter - def group(self, val: InvestmentsGroup): - self._group = val +@property +def group(self) -> InvestmentsGroup: + """ + Group of investments + :return: + """ + return self._group - @property - def category(self): - """ - Display the group category - :return: - """ - return self.group.category - - @category.setter - def category(self, val): - # The category is set through the group, so no implementation here - pass - - # @property - # def template(self): - # """ - # Template of component - # :return: - # """ - # return self.template - # - # @template.setter - # def template(self, val): - # self.template = val + +@group.setter + + +def group(self, val: InvestmentsGroup): + self._group = val + + +@property +def category(self): + """ + Display the group category + :return: + """ + return self.group.category + + +@category.setter +def category(self, val): + # The category is set through the group, so no implementation here + pass + +# @property +# def template(self): +# """ +# Template of component +# :return: +# """ +# return self.template +# +# @template.setter +# def template(self, val): +# self.template = val diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index facd9ba44..97993bd2b 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1101,7 +1101,6 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, elif gc_prop.tpe == SubObjectType.Associations: # get the list of associations - print('Enter associations') associations = elm.get_snapshot_value(gc_prop) associations.parse( data=property_value, @@ -1109,7 +1108,6 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, logger=logger, elm_name=elm.name ) - print('x') elif gc_prop.tpe == SubObjectType.TemplateLinks: print('Stop here') From c178eeafe34e8cdc9d0fd9ebc7d0cf2959d75964 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 17:50:46 -0100 Subject: [PATCH 177/218] Found a workaround but need to change associations type --- src/GridCalEngine/IO/gridcal/pack_unpack.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 97993bd2b..8d430ff1f 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1102,9 +1102,13 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, # get the list of associations associations = elm.get_snapshot_value(gc_prop) + if associations.device_type is None: + dictss = elements_dict_by_type.get(DeviceType.TransformerTypeDevice, {}) + else: + dictss = elements_dict_by_type.get(associations.device_type, {}) associations.parse( data=property_value, - elements_dict=elements_dict_by_type.get(associations.device_type, {}), + elements_dict=dictss, logger=logger, elm_name=elm.name ) From 73c57ee26abd234272efba9ae858714bf8e405c2 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 18:39:23 -0100 Subject: [PATCH 178/218] Grab all possible dictionary types and update the device type with setter --- .../Devices/Associations/association.py | 23 ++++++++++++-- src/GridCalEngine/IO/gridcal/pack_unpack.py | 30 +++++++++++++++---- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index fcb9fbf0d..1e1d5c565 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -95,6 +95,17 @@ def device_type(self) -> DeviceType: """ return self._device_type + @device_type.setter + def device_type(self, value: DeviceType): + """ + Set the device type of the association, as needed in empty investments + :param value: DeviceType + """ + if isinstance(value, DeviceType): + self._device_type = value + else: + raise ValueError("value must be an instance of DeviceType") + def add(self, val: Association): """ Add Association @@ -153,7 +164,8 @@ def parse(self, data: List[Dict[str, Union[str, float]]], elements_dict: Dict[str, ALL_DEV_TYPES], logger: Logger, - elm_name: str) -> None: + elm_name: str, + updatable_device_type: bool = False) -> None: """ Parse the data generated with to_dict() :param data: Json data @@ -170,8 +182,15 @@ def parse(self, elements_dict=elements_dict ) + if updatable_device_type: + self._device_type = assoc.api_object.device_type + if assoc.api_object is not None: - # add the entry + # Update the device type if needed (as in empty investments) + if updatable_device_type: + self.device_type = assoc.api_object.device_type # use the setter + + # Add the entry self.add(assoc) else: logger.add_error(f'Association api_object not found', diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 8d430ff1f..545b0520b 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1100,17 +1100,37 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, elif gc_prop.tpe == SubObjectType.Associations: - # get the list of associations + """ + There is no way a priori to know the template type when initializing an investment + as its type is not set. Hence, we have to check for two cases: + 1. The investment is empty, in which case we assume all types are possible, and + then update the association type depending on which dictionary it was found + 2. The associations are already set, in which case we just parse the data as we + normally would in the associations of a device + """ associations = elm.get_snapshot_value(gc_prop) + update_assoc_type = False + + # 1. Empty investment if associations.device_type is None: - dictss = elements_dict_by_type.get(DeviceType.TransformerTypeDevice, {}) + type_dicts = next((elements_dict_by_type.get(key) for key in + [DeviceType.TransformerTypeDevice, + DeviceType.OverheadLineTypeDevice, + DeviceType.UnderGroundLineDevice, + DeviceType.SequenceLineDevice] + if key in elements_dict_by_type), {}) + update_assoc_type = True + # or DeviceType.TransformerTypeDevice? + # 2. Known association type else: - dictss = elements_dict_by_type.get(associations.device_type, {}) + type_dicts = elements_dict_by_type.get(associations.device_type, {}) + associations.parse( data=property_value, - elements_dict=dictss, + elements_dict=type_dicts, logger=logger, - elm_name=elm.name + elm_name=elm.name, + updatable_device_type=update_assoc_type ) elif gc_prop.tpe == SubObjectType.TemplateLinks: From 2a162cd6c49f46d7858f6428fee4b846623c6dc0 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 18:51:17 -0100 Subject: [PATCH 179/218] Confirmed it works as expected now --- src/GridCalEngine/Devices/Associations/association.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index 1e1d5c565..33f55097e 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -172,6 +172,7 @@ def parse(self, :param elements_dict: dictionary of elements of the type self.device_type :param logger: Logger :param elm_name: base element name for reporting + :param updatable_device_type: if the device type has to be updated in case of empty investments """ for entry in data: From c957517273386cd51aea10d9412b770a1b0f81d7 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 20:53:26 -0100 Subject: [PATCH 180/218] Clean pack unpack --- src/GridCalEngine/IO/gridcal/pack_unpack.py | 28 +-------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index 545b0520b..9626dc7c3 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -1120,7 +1120,7 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, DeviceType.SequenceLineDevice] if key in elements_dict_by_type), {}) update_assoc_type = True - # or DeviceType.TransformerTypeDevice? + # 2. Known association type else: type_dicts = elements_dict_by_type.get(associations.device_type, {}) @@ -1133,32 +1133,6 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, updatable_device_type=update_assoc_type ) - elif gc_prop.tpe == SubObjectType.TemplateLinks: - print('Stop here') - - elif gc_prop.tpe == SubObjectType.ObjectsList: - - val = property_value - elm.set_snapshot_value(gc_prop.name, val) - search_and_apply_json_profile(json_entry=json_entry, - gc_prop=gc_prop, - elm=elm, - property_value=val) - - print('enter investments unpack') - - # if collection is not None: - # ref_idtag = str(property_value) - # ref_elm = collection.get(ref_idtag, None) - # - # if ref_elm is not None: - # elm.set_snapshot_value(gc_prop.name, ref_elm) - # search_and_apply_json_profile(json_entry=json_entry, - # gc_prop=gc_prop, - # elm=elm, - # property_value=ref_elm, - # collection=collection) - else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") From 7e77fa219ad6400665c1f0cae1e467f0a676f5de Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Sat, 17 Aug 2024 23:25:28 -0100 Subject: [PATCH 181/218] Fix GUI for investment associations table --- .idea/workspace.xml | 195 ++++++++++-------- .../Gui/Main/SubClasses/Model/objects.py | 8 +- src/GridCal/Gui/associations_model.py | 3 +- src/GridCalEngine/Devices/types.py | 2 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 4 +- 5 files changed, 122 insertions(+), 90 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index b5b637abf..8918fcd8d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,11 @@ - + - - + + + + + + + + + + - + @@ -89,6 +96,13 @@ + + + @@ -125,72 +139,67 @@ - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.fubm_example.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "199__finalize__cgmes__import", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} - - - + + + @@ -234,50 +243,6 @@ - @@ -1439,14 +1442,15 @@ - - - - - - - - + + + + + + + + + 1656059954202 @@ -1791,7 +1795,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1937,11 +1942,6 @@ 55 + + + + + - - + - @@ -2434,16 +2309,14 @@ - - - + @@ -2454,16 +2327,15 @@ - + - + - @@ -2472,33 +2344,30 @@ - - - - - + + - - - + + + @@ -2524,28 +2393,23 @@ - - + - - - - - + + - @@ -2555,13 +2419,12 @@ - + - @@ -2579,25 +2442,26 @@ + + - - - + + - + - + @@ -2605,10 +2469,10 @@ + - @@ -2618,6 +2482,7 @@ + @@ -2626,14 +2491,15 @@ - + + @@ -2655,19 +2521,19 @@ - + - + - + @@ -2678,36 +2544,34 @@ + - - + - + - + - - + - @@ -2716,28 +2580,28 @@ - + - - + - + + - + @@ -2745,11 +2609,11 @@ - + - + @@ -2759,72 +2623,66 @@ + - - + - - - + - - + - - - + - - + - + - + - + - + - + \ No newline at end of file diff --git a/examples/try_investment_optimization.py b/examples/try_investment_optimization.py index f549e44dc..d80450121 100644 --- a/examples/try_investment_optimization.py +++ b/examples/try_investment_optimization.py @@ -42,7 +42,7 @@ def add_investments_to_grid(grid): grid.add_line(line) inv_group = dev.InvestmentsGroup(name='Ig' + str(i)) investment = dev.Investment(device_idtag=line.idtag, name='Investment' + str(i), CAPEX=1, - group=inv_group, template=DeviceType.TransformerTypeDevice) # template=line.possible_tower_types[:] + group=inv_group) # template=line.possible_tower_types[:] grid.add_investment(investment) grid.add_investments_group(inv_group) diff --git a/examples/try_template_loading.py b/examples/try_template_loading.py index f5c7dd5b9..9add5fba7 100644 --- a/examples/try_template_loading.py +++ b/examples/try_template_loading.py @@ -24,7 +24,7 @@ def process_dummy_grid(): my_tr = main_circuit.transformers2w[0] inv_group = dev.InvestmentsGroup(name='Ig0') - investment1 = dev.Investment(name='Investment 1x', group=inv_group, template=my_tr) + investment1 = dev.Investment(name='Investment 1x', group=inv_group, device_idtag=my_tr.idtag) main_circuit.add_investment(investment1) main_circuit.add_investments_group(inv_group) gce.save_file(main_circuit, 'C:/Users/J/Downloads/temp_tr1_invested.gridcal') diff --git a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py index 19989f1d8..76e6bffbd 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/diagrams.py @@ -1580,55 +1580,13 @@ def add_selected_to_investment(self) -> None: # add the selection as investments to the group for i in self.investment_checks_diag.selected_indices: elm = selected[i] - if elm.type_name == 'Transformer': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_transformer_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - elif elm.type_name == 'Line': - if elm.type_name == 'Sequence line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_sequence_line_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - elif elm.type_name == 'Underground line': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_underground_line_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - elif elm.type_name == 'Tower': - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group, - template_data=elm.possible_tower_types, - template_type=elm.device_type) - self.circuit.add_investment(con) - else: - con = dev.Investment(device_idtag=elm.idtag, - code=elm.code, - name=elm.type_name + ": " + elm.name, - CAPEX=0.0, - OPEX=0.0, - group=group) - self.circuit.add_investment(con) + con = dev.Investment(device_idtag=elm.idtag, + code=elm.code, + name=elm.type_name + ": " + elm.name, + CAPEX=0.0, + OPEX=0.0, + group=group) + self.circuit.add_investment(con) else: info_msg("Select some elements in the schematic first", "Add selected to investment") diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index e9890e542..fc57c4fb4 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -16,8 +16,6 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from __future__ import annotations from typing import Dict, Union, TYPE_CHECKING, Tuple - -from GridCalEngine.Devices import Associations from GridCalEngine.basic_structures import Logger import GridCalEngine.Devices as dev from GridCalEngine.Devices.Substation.bus import Bus diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index e91bddd7d..5062d6c17 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -1,5 +1,21 @@ -from typing import Union, Any, Dict +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import Union from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup from GridCalEngine.Devices.Associations.association import Associations @@ -19,8 +35,6 @@ def __init__(self, OPEX: float = 0.0, status: bool = True, group: InvestmentsGroup = None, - template_data: SubObjectType.Associations = None, - template_type: DeviceType = None, comment: str = ""): """ Investment @@ -49,11 +63,6 @@ def __init__(self, self.status = status self.group = group - self.template = Associations(device_type=template_type) - if template_data is not None: - for vv in template_data: - self.template.add(val=vv) - self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, definition='Capital expenditures. This is the initial investment.') @@ -63,48 +72,27 @@ def __init__(self, definition='If true the investment activates when applied, otherwise is deactivated.') self.register(key='group', units='', tpe=DeviceType.InvestmentsGroupDevice, definition='Investment group') - self.register(key='template', units='', tpe=SubObjectType.Associations, - definition='Possible templates of each component') - - -@property -def group(self) -> InvestmentsGroup: - """ - Group of investments - :return: - """ - return self._group - - -@group.setter - - -def group(self, val: InvestmentsGroup): - self._group = val - - -@property -def category(self): - """ - Display the group category - :return: - """ - return self.group.category + @property + def group(self) -> InvestmentsGroup: + """ + Group of investments + :return: + """ + return self._group + @group.setter + def group(self, val: InvestmentsGroup): + self._group = val -@category.setter -def category(self, val): - # The category is set through the group, so no implementation here - pass + @property + def category(self): + """ + Display the group category + :return: + """ + return self.group.category -# @property -# def template(self): -# """ -# Template of component -# :return: -# """ -# return self.template -# -# @template.setter -# def template(self, val): -# self.template = val + @category.setter + def category(self, val): + # The category is set through the group, so no implementation here + pass diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index 33f55097e..d17117fb0 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -84,9 +84,17 @@ def __init__(self, device_type: DeviceType): Constructor :param device_type: DeviceType """ - self.data: Dict[str, Association] = dict() + self._data: Dict[str, Association] = dict() self._device_type = device_type + @property + def data(self): + """ + + :return: + """ + return self._data + @property def device_type(self) -> DeviceType: """ @@ -114,7 +122,7 @@ def add(self, val: Association): """ if val.api_object is not None: - self.data[val.api_object.idtag] = val + self._data[val.api_object.idtag] = val def add_object(self, api_object: ASSOCIATION_TYPES, val: float) -> Association: """ @@ -134,7 +142,7 @@ def remove(self, val: Association): :return: None """ if val.api_object is not None: - del self.data[val.api_object.idtag] + del self._data[val.api_object.idtag] def remove_by_key(self, key: str): """ @@ -142,8 +150,8 @@ def remove_by_key(self, key: str): :param key: :return: """ - if key in self.data.keys(): - del self.data[key] + if key in self._data.keys(): + del self._data[key] def at_key(self, key: str) -> Union[Association, None]: """ @@ -151,14 +159,14 @@ def at_key(self, key: str) -> Union[Association, None]: :param key: :return: """ - return self.data.get(key, None) + return self._data.get(key, None) def to_dict(self) -> List[Dict[str, Union[str, float]]]: """ Get dictionary representation of Associations :return: """ - return [val.to_dict() for _, val in self.data.items()] + return [val.to_dict() for _, val in self._data.items()] def parse(self, data: List[Dict[str, Union[str, float]]], @@ -206,20 +214,20 @@ def append(self, item: Association) -> None: self.add(item) def __len__(self) -> int: - return len(self.data) + return len(self._data) def __iter__(self) -> Iterator[Association]: - for key, val in self.data.items(): + for key, val in self._data.items(): yield val def __repr__(self) -> str: - return repr(self.data) + return repr(self._data) def clear(self) -> None: """ Clear data """ - self.data.clear() + self._data.clear() def __eq__(self, other: "Associations") -> bool: """ @@ -234,9 +242,9 @@ def __eq__(self, other: "Associations") -> bool: # different length return False - for key, val in self.data.items(): + for key, val in self._data.items(): - val2 = other.data.get(key, None) + val2 = other._data.get(key, None) if val2 is None: # a key was not found, these are not equal diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index 048b60fc1..597840384 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -278,6 +278,20 @@ def apply_template(self, obj: Union[OverheadLineType, UndergroundLineType, Seque else: logger.add_error('Template not recognised', self.name) + def get_line_type(self) -> SequenceLineType: + """ + Get the equivalent sequence line type oof this line + :return: SequenceLineType + """ + return SequenceLineType(name=f"{self.name}_type", + Imax=1, Vnom=self.get_max_bus_nominal_voltage(), + R=self.R / self.length, + X=self.X / self.length, + B=self.B / self.length, + R0=self.R0 / self.length, + X0=self.X0 / self.length, + B0=self.B0 / self.length) + def get_save_data(self): """ Return the data that matches the edit_headers diff --git a/src/GridCalEngine/Devices/multi_circuit.py b/src/GridCalEngine/Devices/multi_circuit.py index c4af9a3c6..6d3028052 100644 --- a/src/GridCalEngine/Devices/multi_circuit.py +++ b/src/GridCalEngine/Devices/multi_circuit.py @@ -406,8 +406,6 @@ def apply_all_branch_types(self) -> Logger: for branch in self._transformers2w: if branch.template is not None: branch.apply_template(branch.template, self.Sbase, logger=logger) - # for transformer types found in associations, where to put this - branch.apply_templates_to_transformers(branch.template, self.Sbase, logger=logger) return logger diff --git a/src/GridCalEngine/Devices/types.py b/src/GridCalEngine/Devices/types.py index a574877f0..bb7cc8f08 100644 --- a/src/GridCalEngine/Devices/types.py +++ b/src/GridCalEngine/Devices/types.py @@ -49,6 +49,13 @@ SeriesReactance ] +BRANCH_TEMPLATE_TYPES = Union[ + OverheadLineType, + UndergroundLineType, + SequenceLineType, + TransformerType +] + FLUID_TYPES = Union[ FluidNode, FluidPath, diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py index 24a786f04..f9624c0b5 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from typing import List, Dict, Union from pymoo.core.mixed import MixedVariableGA from pymoo.algorithms.moo.nsga2 import RankAndCrowding # from pymoo.decomposition.asf import ASF @@ -24,24 +25,99 @@ from pymoo.core.variable import Real, Integer, Choice, Binary from GridCalEngine.Devices.Aggregation.investment import Investment +from GridCalEngine.Devices.multi_circuit import MultiCircuit +from GridCalEngine.Devices.Branches.transformer import Transformer2W +from GridCalEngine.Devices.Branches.line import Line +from GridCalEngine.Devices.types import BRANCH_TYPES, BRANCH_TEMPLATE_TYPES +from GridCalEngine.enumerations import DeviceType +from GridCalEngine.basic_structures import Logger class MixedVariableProblem(ElementwiseProblem): """ Problem formulation packaging to use the pymoo library """ - def __init__(self, obj_func, n_obj): + + def __init__(self, grid: MultiCircuit, obj_func, n_obj): """ :param obj_func: :param n_obj: """ - self.templates = Investment().template - vars = { - "transformer1": Choice(options=[self.templates[0]]), - "transformer2": Choice(options=[self.templates[1]]), - "n_cables": Integer(bounds=(2, 3))} - super().__init__(n_obj=n_obj, - vars=vars) + + ElementwiseProblem.__init__(self, n_var=n_obj, n_obj=n_obj) + + self.logger = Logger() + + self.grid = grid + + all_dict = self.grid.get_all_elements_dict() + self.device_template_dict: Dict[BRANCH_TYPES, List[BRANCH_TEMPLATE_TYPES]] = dict() + + # create the decission vars + for investment_group, investments_list in self.grid.get_investments_by_groups(): + + if len(investments_list) == 1: + + for investment in investments_list: + + device = all_dict.get(investment.device_idtag, None) + + if device is not None: + if isinstance(device, Transformer2W): + + for ass_key, association in device.possible_transformer_types.data.items(): + template = association.api_object + lst = self.device_template_dict.get(device, None) + if lst is None: + self.device_template_dict[device] = [template] + else: + lst.extend(template) + + elif isinstance(device, Line): + + for association_type in [device.possible_tower_types, + device.possible_sequence_line_types, + device.possible_underground_line_types]: + + for ass_key, association in association_type.data.items(): + template = association.api_object + lst = self.device_template_dict.get(device, None) + if lst is None: + self.device_template_dict[device] = [template] + else: + lst.extend(template) + else: + self.logger.add_error("Investment device not recognized", + device=device.name, + device_class=device.device_type) + else: + self.logger.add_error("Investment device is none", + device=investment.device_idtag) + else: + self.logger.add_error("Only single-investment groups can be considered", + device=investment_group.name, + device_class=investment_group.device_type.value) + + # convert the data to decission vars: the decission vars are + # integers from 0 to the number of templates of each device (the template position in self.data[device]) + self.variables: Dict[str, Integer] = dict() + self.devices = list() # list of devices in sequential order to match the order of the vars + self.default_tamplate = list() # list of templates that represent the devices in their initial state + for elm, template_list in self.device_template_dict.items(): + self.variables[elm.idtag] = Integer(bounds=(0, len(template_list) + 1)) + self.devices.append(elm) + + if isinstance(elm, Line): + default_template = elm.get_line_type() + + elif isinstance(elm, Transformer2W): + default_template = elm.get_transformer_type(Sbase=self.grid.Sbase) + else: + raise Exception('Device not recognized') + + self.default_tamplate.append(default_template) + + super().__init__(n_obj=n_obj, vars=self.variables) self.obj_func = obj_func def _evaluate(self, x, out, *args, **kwargs): @@ -54,21 +130,21 @@ def _evaluate(self, x, out, *args, **kwargs): :return: """ - capex = CapexAcciona() - capex.print_capex() - - # Ideally, we want this to be automatically inputted: - # react1_bi, react2_bi, react3_bi, react4_bi, react5_bi, vol, n_cables, S_rtr, react1, react2, react3, react4, - # react5 = x["react1_bi"], x["react2_bi"], x["react3_bi"], x["react4_bi"], x["react5_bi"], x["vol_level"], - # x["n_cables"], x["S_rtr"], x["react1"], x["react2"], x["react3"], x["react4"], x["react5"] - # def build_grid_data - # then - # def run_pf or now run_opf - # then - # def compute_costs - # then - # obj_func = capex + opex - # to be outputted as out["F"] + for i, xi in enumerate(x): + device = self.devices[i] + if xi > 0: + template = self.data[device.idtag][xi] + + if isinstance(device, Line): + device.apply_template(template, Sbase=self.grid.Sbase, logger=self.logger) + + elif isinstance(device, Transformer2W): + device.apply_template(template, Sbase=self.grid.Sbase, logger=self.logger) + + else: + raise Exception('Device not recognized') + else: + device.apply_template(self.default_tamplate[i], Sbase=self.grid.Sbase, logger=self.logger) out["F"] = self.obj_func(x) From 92e9b03223a9d40d856b902c65a69091d89417ec Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 11:27:13 +0100 Subject: [PATCH 185/218] more refactoring --- .../Gui/Main/SubClasses/Model/objects.py | 8 +- src/GridCal/Gui/associations_model.py | 3 +- .../Compilers/circuit_to_data.py | 4 - .../DataStructures/branch_data.py | 85 ++++++++----------- .../Devices/Aggregation/investment.py | 12 ++- .../Devices/Associations/association.py | 9 +- src/GridCalEngine/Devices/Branches/line.py | 24 +++++- src/GridCalEngine/Devices/Branches/wire.py | 2 +- src/GridCalEngine/Devices/assets.py | 15 ---- src/GridCalEngine/Devices/types.py | 2 +- src/GridCalEngine/IO/gridcal/pack_unpack.py | 56 +----------- src/GridCalEngine/enumerations.py | 2 - 12 files changed, 72 insertions(+), 150 deletions(-) diff --git a/src/GridCal/Gui/Main/SubClasses/Model/objects.py b/src/GridCal/Gui/Main/SubClasses/Model/objects.py index 77677be2d..c51edc0e2 100644 --- a/src/GridCal/Gui/Main/SubClasses/Model/objects.py +++ b/src/GridCal/Gui/Main/SubClasses/Model/objects.py @@ -377,13 +377,7 @@ def display_associations(self): gc_prop = elements[0].get_property_by_name(prop_name=association_prperty_name) associations: dev.Associations = elements[0].get_snapshot_value_by_name(name=association_prperty_name) - if elements[0].device_type == DeviceType.InvestmentDevice: - associated_objects = [] - for dev_type in [DeviceType.TransformerTypeDevice, DeviceType.OverheadLineTypeDevice, - DeviceType.UnderGroundLineDevice, DeviceType.SequenceLineDevice]: - associated_objects += self.circuit.get_elements_by_type(device_type=dev_type) - else: - associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) + associated_objects = self.circuit.get_elements_by_type(device_type=associations.device_type) self.ui.association_units_label.setText(gc_prop.units) if len(associated_objects) > 0: diff --git a/src/GridCal/Gui/associations_model.py b/src/GridCal/Gui/associations_model.py index a81439a87..2f6937130 100644 --- a/src/GridCal/Gui/associations_model.py +++ b/src/GridCal/Gui/associations_model.py @@ -21,7 +21,6 @@ from PySide6 import QtCore, QtWidgets from GridCal.Gui.GuiFunctions import (FloatDelegate) -from GridCalEngine.enumerations import DeviceType from GridCalEngine.Devices.Associations.association import Association, Associations from GridCalEngine.Devices.Parents.editable_device import GCProp from GridCalEngine.Devices.types import ASSOCIATION_TYPES, ALL_DEV_TYPES @@ -85,7 +84,7 @@ def __init__(self, self._decimals = decimals - # flag for the headers text wrapper: HeaderViewWithWordWrap + # flag for the headers text wraper: HeaderViewWithWordWrap self._hide_headers_mode = False def hideHeaders(self): diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index fc57c4fb4..14f35d8bb 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -931,10 +931,6 @@ def get_branch_data(circuit: MultiCircuit, time_series=time_series, is_dc_branch=False) - data.possible_tower_types[i] = elm.possible_tower_types - data.possible_underground_line_types[i] = elm.possible_underground_line_types - data.possible_sequence_line_types[i] = elm.possible_sequence_line_types - ii += 1 # DC-lines diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 84e5df31c..bfcdc96b0 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -18,8 +18,8 @@ import pandas as pd import scipy.sparse as sp import GridCalEngine.Topology.topology as tp -from GridCalEngine.enumerations import WindingsConnection -from GridCalEngine.basic_structures import Vec, IntVec, StrVec, ObjVec, CxVec, BoolVec +from GridCalEngine.enumerations import WindingsConnection, TransformerControlType +from GridCalEngine.basic_structures import Vec, IntVec, StrVec, ObjVec from typing import List, Tuple, Dict @@ -50,14 +50,17 @@ def __init__(self, nelm: int, nbus: int): self.F: IntVec = np.zeros(self.nelm, dtype=int) # indices of the "from" buses self.T: IntVec = np.zeros(self.nelm, dtype=int) # indices of the "to" buses + self.ctrl_bus1: IntVec = np.zeros(self.nelm, dtype=int) # indices of the control buses1 + self.ctrl_bus2: IntVec = np.zeros(self.nelm, dtype=int) # indices of the control buses2 + # reliabilty self.mttf: Vec = np.zeros(self.nelm, dtype=float) self.mttr: Vec = np.zeros(self.nelm, dtype=float) - # composite losses curve (c * x^2 + b * x + a) - # self.a: Vec = np.zeros(self.nelm, dtype=float) - # self.b: Vec = np.zeros(self.nelm, dtype=float) - # self.c: Vec = np.zeros(self.nelm, dtype=float) + # composite losses curve (a * x^2 + b * x + c) + self.a: Vec = np.zeros(self.nelm, dtype=float) + self.b: Vec = np.zeros(self.nelm, dtype=float) + self.c: Vec = np.zeros(self.nelm, dtype=float) self.R: Vec = np.zeros(self.nelm, dtype=float) self.X: Vec = np.zeros(self.nelm, dtype=float) @@ -90,28 +93,26 @@ def __init__(self, nelm: int, nbus: int): self.virtual_tap_t: Vec = np.ones(self.nelm, dtype=float) self.virtual_tap_f: Vec = np.ones(self.nelm, dtype=float) - self.Pset: Vec = np.zeros(nelm, dtype=float) # always over the controlled side - self.Qset: Vec = np.zeros(nelm, dtype=float) # always over the controlled side - self.vset: Vec = np.ones(nelm, dtype=float) # always over the controlled side + self.Pfset: Vec = np.zeros(nelm, dtype=float) + self.Qfset: Vec = np.zeros(nelm, dtype=float) + self.Qtset: Vec = np.zeros(nelm, dtype=float) + self.vf_set: Vec = np.ones(nelm, dtype=float) + self.vt_set: Vec = np.ones(nelm, dtype=float) self.Kdp: Vec = np.ones(self.nelm, dtype=float) self.Kdp_va: Vec = np.ones(self.nelm, dtype=float) self.alpha1: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha1) self.alpha2: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha2) self.alpha3: Vec = np.zeros(self.nelm, dtype=float) # converter losses parameter (alpha3) - - self.tap_module_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) - self.tap_phase_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) - self.tap_module_buses: IntVec = np.zeros(self.nelm, dtype=int) - self.is_converter: BoolVec = np.zeros(self.nelm, dtype=bool) + self.control_mode: ObjVec = np.zeros(self.nelm, dtype=object) self.contingency_enabled: IntVec = np.ones(self.nelm, dtype=int) self.monitor_loading: IntVec = np.ones(self.nelm, dtype=int) - # connectivity branch with their "from" bus - self.C_branch_bus_f: sp.lil_matrix = sp.lil_matrix((self.nelm, nbus), dtype=int) - # connectivity branch with their "to" bus - self.C_branch_bus_t: sp.lil_matrix = sp.lil_matrix((self.nelm, nbus), dtype=int) + self.C_branch_bus_f: sp.lil_matrix = sp.lil_matrix((self.nelm, nbus), + dtype=int) # connectivity branch with their "from" bus + self.C_branch_bus_t: sp.lil_matrix = sp.lil_matrix((self.nelm, nbus), + dtype=int) # connectivity branch with their "to" bus self.overload_cost: Vec = np.zeros(nelm, dtype=float) @@ -168,11 +169,7 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.conn = self.conn[elm_idx] # winding connection - data.tap_phase_control_mode = self.tap_phase_control_mode[elm_idx] - data.tap_module_control_mode = self.tap_module_control_mode[elm_idx] - data.tap_module_buses = self.tap_module_buses[elm_idx] - data.is_converter = self.is_converter[elm_idx] - + data.control_mode = self.control_mode[elm_idx] data.contingency_enabled = self.contingency_enabled[elm_idx] data.monitor_loading = self.monitor_loading[elm_idx] @@ -189,9 +186,11 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.tap_angle_max = self.tap_angle_max[elm_idx] data.Beq = self.Beq[elm_idx] data.G0sw = self.G0sw[elm_idx] - data.Pset = self.Pset[elm_idx] - data.Qset = self.Qset[elm_idx] - data.vset = self.vset[elm_idx] + data.Pfset = self.Pfset[elm_idx] + data.Qfset = self.Qfset[elm_idx] + data.Qtset = self.Qtset[elm_idx] + data.vf_set = self.vf_set[elm_idx] + data.vt_set = self.vt_set[elm_idx] data.C_branch_bus_f = self.C_branch_bus_f[np.ix_(elm_idx, bus_idx)] data.C_branch_bus_t = self.C_branch_bus_t[np.ix_(elm_idx, bus_idx)] @@ -199,8 +198,13 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": # first slice, then remap data.F = self.F[elm_idx] data.T = self.T[elm_idx] + data.ctrl_bus1 = self.ctrl_bus1[elm_idx] + data.ctrl_bus2 = self.ctrl_bus2[elm_idx] bus_map: Dict[int, int] = {o: i for i, o in enumerate(bus_idx)} for k in range(data.nelm): + if data.control_mode[k] != TransformerControlType.fixed: + data.ctrl_bus1[k] = bus_map[data.ctrl_bus1[k]] + data.ctrl_bus2[k] = bus_map[data.ctrl_bus2[k]] data.F[k] = bus_map[data.F[k]] data.T[k] = bus_map[data.T[k]] @@ -251,11 +255,7 @@ def copy(self) -> "BranchData": data.conn = self.conn.copy() # winding connection - data.tap_phase_control_mode = self.tap_phase_control_mode.copy() - data.tap_module_control_mode = self.tap_module_control_mode.copy() - data.tap_module_buses = self.tap_module_buses.copy() - data.is_converter = self.is_converter.copy() - + data.control_mode = self.control_mode.copy() data.contingency_enabled = self.contingency_enabled.copy() data.monitor_loading = self.monitor_loading.copy() @@ -272,9 +272,11 @@ def copy(self) -> "BranchData": data.tap_angle_max = self.tap_angle_max.copy() data.Beq = self.Beq.copy() data.G0sw = self.G0sw.copy() - data.Pset = self.Pset.copy() - data.Qset = self.Qset.copy() - data.vset = self.vset.copy() + data.Pfset = self.Pfset.copy() + data.Qfset = self.Qfset.copy() + data.Qtset = self.Qtset.copy() + data.vf_set = self.vf_set.copy() + data.vt_set = self.vt_set.copy() data.C_branch_bus_f = self.C_branch_bus_f.copy() data.C_branch_bus_t = self.C_branch_bus_t.copy() @@ -315,13 +317,6 @@ def get_dc_indices(self) -> IntVec: """ return np.where(self.dc != 0)[0] - def get_series_admittance(self) -> CxVec: - """ - - :return: - """ - return 1.0 / (self.R + 1.0j * self.X) - def get_linear_series_admittance(self) -> Vec: """ Get the linear version of the series admittance for ACDC systems @@ -395,13 +390,5 @@ def to_df(self) -> pd.DataFrame: } return pd.DataFrame(data=data) - @property - def tap(self) -> CxVec: - """ - - :return: - """ - return self.tap_module * np.exp(1.0j * self.tap_angle) - def __len__(self) -> int: return self.nelm diff --git a/src/GridCalEngine/Devices/Aggregation/investment.py b/src/GridCalEngine/Devices/Aggregation/investment.py index 5062d6c17..e835476eb 100644 --- a/src/GridCalEngine/Devices/Aggregation/investment.py +++ b/src/GridCalEngine/Devices/Aggregation/investment.py @@ -16,9 +16,8 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Union -from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType, SubObjectType +from GridCalEngine.Devices.Parents.editable_device import EditableDevice, DeviceType from GridCalEngine.Devices.Aggregation.investments_group import InvestmentsGroup -from GridCalEngine.Devices.Associations.association import Associations class Investment(EditableDevice): @@ -56,12 +55,11 @@ def __init__(self, comment=comment) # Contingency type - self.device_idtag = device_idtag - self.CAPEX = CAPEX - self.OPEX = OPEX + self.device_idtag: str = device_idtag + self.CAPEX: float = CAPEX + self.OPEX: float = OPEX self._group: InvestmentsGroup = group - self.status = status - self.group = group + self.status: bool = status self.register(key='device_idtag', units='', tpe=str, definition='Unique ID') self.register(key='CAPEX', units='M€', tpe=float, diff --git a/src/GridCalEngine/Devices/Associations/association.py b/src/GridCalEngine/Devices/Associations/association.py index d17117fb0..39ee5c1eb 100644 --- a/src/GridCalEngine/Devices/Associations/association.py +++ b/src/GridCalEngine/Devices/Associations/association.py @@ -191,15 +191,8 @@ def parse(self, elements_dict=elements_dict ) - if updatable_device_type: - self._device_type = assoc.api_object.device_type - if assoc.api_object is not None: - # Update the device type if needed (as in empty investments) - if updatable_device_type: - self.device_type = assoc.api_object.device_type # use the setter - - # Add the entry + # add the entry self.add(assoc) else: logger.add_error(f'Association api_object not found', diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index 597840384..6c4115c94 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -104,7 +104,7 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi device_type=DeviceType.LineDevice) # line length in km - self.length = length + self._length = length # line impedance tolerance self.tolerance = tolerance @@ -191,6 +191,25 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi definition='Possible sequence line types (>1 to denote association), - to denote no association', display=False) + @property + def length(self) -> float: + """ + Line length in km + :return: float + """ + return self._length + + @length.setter + def length(self, val: float): + if isinstance(val, float): + if val > 0.0: + self._length = val + else: + print('The length cannot be zero, setting it to 1.0 km') + self._length = 1.0 + else: + raise Exception('The length must be a float value') + @property def temp_oper_prof(self) -> Profile: """ @@ -283,6 +302,9 @@ def get_line_type(self) -> SequenceLineType: Get the equivalent sequence line type oof this line :return: SequenceLineType """ + if self.length == 0.0: + raise Exception("Lenght must be greater than 0") + return SequenceLineType(name=f"{self.name}_type", Imax=1, Vnom=self.get_max_bus_nominal_voltage(), R=self.R / self.length, diff --git a/src/GridCalEngine/Devices/Branches/wire.py b/src/GridCalEngine/Devices/Branches/wire.py index 92e5eae17..fc04f563b 100644 --- a/src/GridCalEngine/Devices/Branches/wire.py +++ b/src/GridCalEngine/Devices/Branches/wire.py @@ -64,4 +64,4 @@ def copy(self): :return: """ # name='', idtag=None, gmr=0.01, r=0.01, x=0.0, max_current=1 - return Wire(name=self.name, gmr=self.gmr, r=self.r, x=self.x, max_current=self.max_current, stranding=self.stranding, material=self.material, diameter=self.diameter) + return Wire(name=self.name, gmr=self.GMR, r=self.R, x=self.X, max_current=self.max_current, stranding=self.stranding, material=self.material, diameter=self.diameter) diff --git a/src/GridCalEngine/Devices/assets.py b/src/GridCalEngine/Devices/assets.py index eb4447f49..d5b8708c1 100644 --- a/src/GridCalEngine/Devices/assets.py +++ b/src/GridCalEngine/Devices/assets.py @@ -3254,21 +3254,6 @@ def add_investment(self, obj: dev.Investment): """ self._investments.append(obj) - # def add_template(self, obj: Union[dev.OverheadLineType, dev.TransformerType, dev.UndergroundLineType]): - # """ - # Add template - # :param obj: Template - # """ - # if isinstance(obj, dev.TransformerType): - # for elm in self.transformers2w: - # elm.template = obj - # elif isinstance(obj, dev.OverheadLineType): - # for elm in self.overhead_line_types: - # elm.template = obj - # elif isinstance(obj, dev.UndergroundLineType): - # for elm in self.underground_cable_types: - # elm.template = obj - def delete_investment(self, obj: dev.Investment): """ Delete zone diff --git a/src/GridCalEngine/Devices/types.py b/src/GridCalEngine/Devices/types.py index bb7cc8f08..b557d1cde 100644 --- a/src/GridCalEngine/Devices/types.py +++ b/src/GridCalEngine/Devices/types.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from typing import Union, List +from typing import Union from GridCalEngine.Devices.Aggregation import * from GridCalEngine.Devices.Associations import * from GridCalEngine.Devices.Branches import * diff --git a/src/GridCalEngine/IO/gridcal/pack_unpack.py b/src/GridCalEngine/IO/gridcal/pack_unpack.py index e70eaf628..31b8f0c95 100644 --- a/src/GridCalEngine/IO/gridcal/pack_unpack.py +++ b/src/GridCalEngine/IO/gridcal/pack_unpack.py @@ -405,9 +405,6 @@ def gridcal_object_to_json(elm: ALL_DEV_TYPES) -> Dict[str, str]: elif prop.tpe == SubObjectType.Associations: data[name] = obj.to_dict() - elif prop.tpe == SubObjectType.TemplateLinks: - data[name] = obj - elif prop.tpe == SubObjectType.Array: data[name] = list(obj) @@ -1100,62 +1097,15 @@ def parse_object_type_from_json(template_elm: ALL_DEV_TYPES, elif gc_prop.tpe == SubObjectType.Associations: - """ - There is no way a priori to know the template type when initializing an investment - as its type is not set. Hence, we have to check for two cases: - 1. The investment is empty, in which case we assume all types are possible, and - then update the association type depending on which dictionary it was found - 2. The associations are already set, in which case we just parse the data as we - normally would in the associations of a device - """ + # get the list of associations associations = elm.get_snapshot_value(gc_prop) - update_assoc_type = False - - # 1. Empty investment - if associations.device_type is None: - type_dicts = next((elements_dict_by_type.get(key) for key in - [DeviceType.TransformerTypeDevice, - DeviceType.SequenceLineDevice, - DeviceType.OverheadLineTypeDevice, - DeviceType.UnderGroundLineDevice] - if key in elements_dict_by_type), {}) - update_assoc_type = True - - # 2. Known association type - else: - type_dicts = elements_dict_by_type.get(associations.device_type, {}) - associations.parse( data=property_value, - elements_dict=type_dicts, + elements_dict=elements_dict_by_type.get(associations.device_type, {}), logger=logger, - elm_name=elm.name, - updatable_device_type=update_assoc_type + elm_name=elm.name ) - elif gc_prop.tpe == SubObjectType.ObjectsList: - - val = property_value - elm.set_snapshot_value(gc_prop.name, val) - search_and_apply_json_profile(json_entry=json_entry, - gc_prop=gc_prop, - elm=elm, - property_value=val) - - print('enter investments unpack') - - # if collection is not None: - # ref_idtag = str(property_value) - # ref_elm = collection.get(ref_idtag, None) - # - # if ref_elm is not None: - # elm.set_snapshot_value(gc_prop.name, ref_elm) - # search_and_apply_json_profile(json_entry=json_entry, - # gc_prop=gc_prop, - # elm=elm, - # property_value=ref_elm, - # collection=collection) - else: raise Exception(f"SubObjectType {gc_prop.tpe} not implemented") diff --git a/src/GridCalEngine/enumerations.py b/src/GridCalEngine/enumerations.py index d48adfc76..8fb81da44 100644 --- a/src/GridCalEngine/enumerations.py +++ b/src/GridCalEngine/enumerations.py @@ -980,7 +980,6 @@ class DeviceType(Enum): LoadLikeDevice = 'Load like' BranchGroupDevice = 'Branch group' LambdaDevice = r"Loading from the base situation ($\lambda$)" - Template = 'Template' PiMeasurementDevice = 'Pi Measurement' QiMeasurementDevice = 'Qi Measurement' @@ -1079,7 +1078,6 @@ class SubObjectType(Enum): Array = "Array" ObjectsList = "ObjectsList" Associations = "AssociationsList" - TemplateLinks = "TemplateLinks" def __str__(self) -> str: return str(self.value) From 40c09d1942705591600ad9d07a2cf1e66b368c57 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 11:37:39 +0100 Subject: [PATCH 186/218] Improved the compare_circuits function to handle different property types --- .idea/workspace.xml | 231 ++++++++++----------- src/GridCalEngine/Devices/multi_circuit.py | 21 +- 2 files changed, 130 insertions(+), 122 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index b234ed03e..3a6954fa6 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,20 +28,9 @@ - + - + - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", + "Python tests.pytest for src.tests.test_load_save_load.test_load_save_load.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_load_save_load.py.executor": "Debug", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.fubm_example.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "199__finalize__cgmes__import", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/tests/data/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} - + - - - - - - - + - + - + + + + + + + - - - + + + + - - - - - + + + + + @@ -1788,7 +1778,7 @@ @@ -1835,7 +1825,6 @@ - @@ -1860,7 +1849,8 @@ - @@ -1935,6 +1925,11 @@ 55 - - - - - + + @@ -2307,11 +2404,13 @@ + + @@ -2334,6 +2433,7 @@ + @@ -2348,10 +2448,12 @@ + + @@ -2392,6 +2494,7 @@ + @@ -2399,8 +2502,11 @@ + + + @@ -2409,6 +2515,7 @@ + @@ -2424,6 +2531,7 @@ + @@ -2448,6 +2556,7 @@ + @@ -2473,6 +2582,7 @@ + @@ -2525,6 +2635,7 @@ + @@ -2550,6 +2661,7 @@ + @@ -2557,6 +2669,7 @@ + @@ -2571,6 +2684,7 @@ + @@ -2586,6 +2700,7 @@ + @@ -2623,36 +2738,45 @@ + + + + + + + + + @@ -2671,7 +2795,7 @@ - + diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 75a3987f4..8db60904b 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -23,9 +23,8 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit import GridCalEngine.Simulations.Derivatives.csc_derivatives as deriv -import GridCalEngine.Simulations.Derivatives.matpower_derivatives as mderiv from GridCalEngine.Utils.NumericalMethods.autodiff import calc_autodiff_jacobian -from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, scipy_to_mat, scipy_to_cxmat +from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, scipy_to_mat from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import expand from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method @@ -106,10 +105,6 @@ def adv_jacobian(nbus: int, dS_dVm = CxCSC(nbus, nbus, len(dS_dVm_x), False).set(Ybus_i, Ybus_p, dS_dVm_x) dS_dVa = CxCSC(nbus, nbus, len(dS_dVa_x), False).set(Ybus_i, Ybus_p, dS_dVa_x) - # dSbus_dVa, dSbus_dVm = mderiv.dSbus_dV_matpower(Ybus, V) - # dS_dVa = scipy_to_cxmat(dSbus_dVa) - # dS_dVm = scipy_to_cxmat(dSbus_dVm) - dP_dVa__ = sp_slice(dS_dVa.real, idx_dP, idx_dva) dQ_dVa__ = sp_slice(dS_dVa.imag, idx_dQ, idx_dva) dPf_dVa_ = deriv.dSf_dVa_csc(nbus, idx_dPf, idx_dva, yff, yft, V, F, T).real From 08c6a0c0fe990e29fbc9e295e150ea74200a9b6d Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 20 Aug 2024 18:12:29 +0100 Subject: [PATCH 189/218] LM working as a fx --- .idea/workspace.xml | 232 ++++++---- .../PowerFlow/NumericalMethods/__init__.py | 2 - .../NumericalMethods/levenberg_marquadt_fx.py | 168 +++++++ .../levenberg_marquardt_acdc.py | 319 ------------- .../NumericalMethods/newton_raphson_acdc.py | 433 ------------------ .../NumericalMethods/newton_raphson_fx.py | 12 +- .../pf_advanced_formulation.py | 11 + .../NumericalMethods/pf_basic_formulation.py | 7 + .../pf_formulation_template.py | 9 +- .../PowerFlow/power_flow_worker.py | 95 ++-- .../NumericalMethods/levenberg_marquadt.py | 4 +- src/GridCalEngine/Utils/Sparse/csc2.py | 144 +++++- src/tests/test_sparse2.py | 51 ++- src/trunk/acdc_pf/fubm_example.py | 2 +- 14 files changed, 541 insertions(+), 948 deletions(-) create mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py delete mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquardt_acdc.py delete mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_acdc.py diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c3e370548..41e9b7a80 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,21 @@ - - + + - - - - - - - + + + + - - - - + - + - + - + - + - + - + - - - + + + + + - - - - + + @@ -1453,6 +1446,7 @@ + 1656059954202 @@ -1797,7 +1791,7 @@ - @@ -1844,7 +1838,6 @@ - @@ -1869,7 +1862,8 @@ - @@ -2404,21 +2398,27 @@ 178 - - + - + + - + @@ -2441,8 +2441,8 @@ - + @@ -2451,13 +2451,13 @@ - - + + - + @@ -2486,8 +2486,8 @@ - + @@ -2524,8 +2524,8 @@ - + @@ -2543,8 +2543,8 @@ - + @@ -2578,10 +2578,10 @@ - + - + @@ -2606,7 +2606,7 @@ - + @@ -2819,13 +2819,13 @@ - + - + diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index a0ec5613e..3b88c5c6d 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -670,11 +670,6 @@ def setupUi(self, mainWindow): self.verticalLayout_2 = QVBoxLayout(self.diagram_selection_frame) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) - self.grid_name_line_edit = QLineEdit(self.diagram_selection_frame) - self.grid_name_line_edit.setObjectName(u"grid_name_line_edit") - - self.verticalLayout_2.addWidget(self.grid_name_line_edit) - self.tabWidget_6 = QTabWidget(self.diagram_selection_frame) self.tabWidget_6.setObjectName(u"tabWidget_6") self.tabWidget_6.setTabPosition(QTabWidget.North) @@ -1990,6 +1985,17 @@ def setupUi(self, mainWindow): self.frame_25.setFrameShadow(QFrame.Raised) self.verticalLayout_17 = QVBoxLayout(self.frame_25) self.verticalLayout_17.setObjectName(u"verticalLayout_17") + self.label_82 = QLabel(self.frame_25) + self.label_82.setObjectName(u"label_82") + self.label_82.setFont(font1) + + self.verticalLayout_17.addWidget(self.label_82) + + self.grid_name_line_edit = QLineEdit(self.frame_25) + self.grid_name_line_edit.setObjectName(u"grid_name_line_edit") + + self.verticalLayout_17.addWidget(self.grid_name_line_edit) + self.label_57 = QLabel(self.frame_25) self.label_57.setObjectName(u"label_57") self.label_57.setFont(font1) @@ -4898,9 +4904,6 @@ def retranslateUi(self, mainWindow): self.cancelButton.setToolTip(QCoreApplication.translate("mainWindow", u"Cancel process", None)) #endif // QT_CONFIG(tooltip) self.cancelButton.setText("") -#if QT_CONFIG(tooltip) - self.grid_name_line_edit.setToolTip(QCoreApplication.translate("mainWindow", u"Name of the grid model", None)) -#endif // QT_CONFIG(tooltip) #if QT_CONFIG(tooltip) self.diagramsListView.setToolTip(QCoreApplication.translate("mainWindow", u"List of available diagrams", None)) #endif // QT_CONFIG(tooltip) @@ -5161,6 +5164,10 @@ def retranslateUi(self, mainWindow): self.tabWidget.setTabText(self.tabWidget.indexOf(self.main_console_tab), QCoreApplication.translate("mainWindow", u"Scripting", None)) self.label_68.setText("") self.label_69.setText(QCoreApplication.translate("mainWindow", u"General settings", None)) + self.label_82.setText(QCoreApplication.translate("mainWindow", u"Grid name", None)) +#if QT_CONFIG(tooltip) + self.grid_name_line_edit.setToolTip(QCoreApplication.translate("mainWindow", u"Name of the grid model", None)) +#endif // QT_CONFIG(tooltip) self.label_57.setText(QCoreApplication.translate("mainWindow", u"Base power", None)) #if QT_CONFIG(tooltip) self.sbase_doubleSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Base power

Despite all the bibliography, changing this number to anything other than 100 MVA, might change the meaning of what sensible per-unit voltage are.

This is, 1.0 is no longer the nominal voltage and so on.

", None)) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index c28f0273e..fa8d57443 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -295,13 +295,6 @@ QProgressBar::chunk{ 0 - - - - Name of the grid model - - - @@ -3363,6 +3356,25 @@ QProgressBar::chunk{ QFrame::Raised + + + + + 9 + + + + Grid name + + + + + + + Name of the grid model + + + diff --git a/src/GridCal/Gui/Main/SubClasses/simulations.py b/src/GridCal/Gui/Main/SubClasses/simulations.py index e922c29a2..c785e40d7 100644 --- a/src/GridCal/Gui/Main/SubClasses/simulations.py +++ b/src/GridCal/Gui/Main/SubClasses/simulations.py @@ -67,6 +67,7 @@ def __init__(self, parent=None): self.solvers_dict[SolverType.NRI.value] = SolverType.NRI self.solvers_dict[SolverType.IWAMOTO.value] = SolverType.IWAMOTO self.solvers_dict[SolverType.LM.value] = SolverType.LM + self.solvers_dict[SolverType.PowellDogLeg.value] = SolverType.PowellDogLeg self.solvers_dict[SolverType.FASTDECOUPLED.value] = SolverType.FASTDECOUPLED self.solvers_dict[SolverType.HELM.value] = SolverType.HELM self.solvers_dict[SolverType.GAUSS.value] = SolverType.GAUSS @@ -297,6 +298,7 @@ def modify_ui_options_according_to_the_engine(self) -> None: self.solvers_dict[SolverType.NR.value] = SolverType.NR self.solvers_dict[SolverType.NRI.value] = SolverType.NRI self.solvers_dict[SolverType.IWAMOTO.value] = SolverType.IWAMOTO + self.solvers_dict[SolverType.LM.value] = SolverType.LM self.solvers_dict[SolverType.FASTDECOUPLED.value] = SolverType.FASTDECOUPLED self.solvers_dict[SolverType.HELM.value] = SolverType.HELM @@ -326,6 +328,7 @@ def modify_ui_options_according_to_the_engine(self) -> None: self.solvers_dict[SolverType.NRI.value] = SolverType.NRI self.solvers_dict[SolverType.IWAMOTO.value] = SolverType.IWAMOTO self.solvers_dict[SolverType.LM.value] = SolverType.LM + self.solvers_dict[SolverType.PowellDogLeg.value] = SolverType.PowellDogLeg self.solvers_dict[SolverType.FASTDECOUPLED.value] = SolverType.FASTDECOUPLED self.solvers_dict[SolverType.HELM.value] = SolverType.HELM self.solvers_dict[SolverType.GAUSS.value] = SolverType.GAUSS diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py index 7716a3dd6..30dd3398a 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/levenberg_marquadt_fx.py @@ -15,14 +15,12 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import time -import math import numpy as np import scipy.sparse as sp from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_linear_solver from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate -from GridCalEngine.Utils.Sparse.csc2 import spsolve_csc, mat_to_scipy -from GridCalEngine.Utils.Sparse.csc import diagc +from GridCalEngine.Utils.Sparse.csc2 import mat_to_scipy from GridCalEngine.basic_structures import Logger linear_solver = get_linear_solver() @@ -35,11 +33,13 @@ def levenberg_marquadt_fx(problem: PfFormulationTemplate, verbose: int = 0, logger: Logger = Logger()) -> NumericPowerFlowResults: """ - Levenberg Marquadt to solve: + Levenberg-Marquardt to solve: - min: error(g(x)) + min: error(f(x)) s.t. - g(x) = 0 + f(x) = 0 + + From METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS by K. Madsen, H.B. Nielsen, O. Tingleff :param problem: PfFormulationTemplate :param tol: Error tolerance @@ -72,7 +72,7 @@ def levenberg_marquadt_fx(problem: PfFormulationTemplate, A: sp.csc_matrix = sp.csc_matrix((0, 0)) error_evolution = np.zeros(max_iter + 1) - error, converged, x, dz = problem.update(x, update_controls=True) + error, converged, x, dz = problem.update(x, update_controls=False) # save the error evolution error_evolution[iter_] = problem.error @@ -99,7 +99,7 @@ def levenberg_marquadt_fx(problem: PfFormulationTemplate, H = mat_to_scipy(problem.Jacobian()) # system matrix # H1 = H^t - Ht = H.transpose() # .tocsr() + Ht = H.T # .tocsr() # H2 = H1·H HtH = Ht @ H @@ -114,7 +114,7 @@ def levenberg_marquadt_fx(problem: PfFormulationTemplate, # right-hand side # H^t·dz - rhs = Ht.dot(dz) + rhs = Ht @ dz # compute update step try: @@ -133,24 +133,21 @@ def levenberg_marquadt_fx(problem: PfFormulationTemplate, print("h:\n", dx) # objective function to minimize - f = 0.5 * dz.dot(dz) + f = 0.5 * dz @ dz # decision function - val = dx.dot(lbmda * dx + rhs) - if val > 0.0: - rho = (f_prev - f) / (0.5 * val) - else: - rho = -1.0 - - if rho >= 0: + dL = 0.5 * dx @ (lbmda * dx + rhs) + dF = f_prev - f + if (dL > 0.0) and (dF > 0.0): update_jacobian = True + rho = dF / dL lbmda *= max([1.0 / 3.0, 1 - (2 * rho - 1) ** 3]) nu = 2.0 # update x x -= dx - error, converged, x, dz = problem.update(x, update_controls=True) + else: update_jacobian = False lbmda *= nu diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py new file mode 100644 index 000000000..1027e4c54 --- /dev/null +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py @@ -0,0 +1,193 @@ +# GridCal +# Copyright (C) 2015 - 2024 Santiago Peñate Vera +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 3 of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +import time +import numpy as np +from GridCalEngine.Utils.NumericalMethods.sparse_solve import get_linear_solver +from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate +from GridCalEngine.Utils.Sparse.csc2 import mat_to_scipy +from GridCalEngine.basic_structures import Logger, Vec +from GridCalEngine.Utils.NumericalMethods.common import norm + +linear_solver = get_linear_solver() + + +def compute_beta(a: Vec, b: Vec, delta: float): + """ + compute the beta parameter + :param a: alpha + hsd + :param b: hgn + :param delta: trust region + :return: beta value + """ + ba = b - a + c = a @ ba + norm2_a = a @ a + norm2_ba = ba @ ba + delta2_norm2a = (delta * delta - norm2_a) + if c <= 0.0: + return (-c + np.sqrt(c * c + norm2_ba * delta2_norm2a)) / norm2_ba + else: + return delta2_norm2a / (c + np.sqrt(c * c + norm2_ba * delta2_norm2a)) + + +def compute_hdl(hgn: Vec, hsd: Vec, g: Vec, alpha: float, delta: float, f_error: float) -> Vec: + """ + Compute the Hdl vector + :param hgn: Hgn vector + :param hsd: Hsd vector + :param g: g vector + :param alpha: alpha parameter + :param delta: delta parameter (trust region size) + :param f_error: error of the function top optimize + :return: Hdl Vector, L(0) - L(hdl) + """ + if norm(hgn) <= delta: + return hgn, f_error + elif norm(hsd * alpha) >= delta: + hdl = (delta / norm(hsd)) * hsd + val = (delta * (2 * norm(alpha * g) - delta)) / (2 * alpha) + return hdl, val + else: + beta = compute_beta(a=hsd * alpha, b=hgn, delta=delta) + hdl = alpha * hsd + beta * (hgn - alpha * hsd) + val = 0.5 * alpha * (1.0 - beta) ** 2 + (g @ g) + beta * (2.0 - beta) * f_error + return hdl, val + + +def powell_fx(problem: PfFormulationTemplate, + tol: float = 1e-6, + max_iter: int = 10, + trust: float = 1.0, + verbose: int = 0, + logger: Logger = Logger()) -> NumericPowerFlowResults: + """ + Powell's Dog leg algorithm to solve: + + min: error(f(x)) + s.t. + f(x) = 0 + + From METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS by K. Madsen, H.B. Nielsen, O. Tingleff + + :param problem: PfFormulationTemplate + :param tol: Error tolerance + :param max_iter: Maximum number of iterations + :param trust: trust amount in the derivative length correctness + :param verbose: Display console information + :param logger: Logger instance + :return: ConvexMethodResult + """ + start = time.time() + + # get the initial point + x = problem.var2x() + + if len(x) == 0: + # if the lenght of x is zero, means that there's nothing to solve + # for instance there might be a single node that is a slack node + return problem.get_solution(elapsed=time.time() - start, iterations=0) + + delta = trust + f_error, converged, x, f = problem.update(x, update_controls=False) + J = mat_to_scipy(problem.Jacobian()) + g = J.T @ f + + iteration = 0 + error_evolution = np.zeros(max_iter + 1) + + # save the error evolution + error_evolution[iteration] = f_error + + if verbose > 0: + print(f'It {iteration}, error {f_error}, converged {converged}, x {x}, dx not computed yet') + + if problem.converged: + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + else: + + while not converged and iteration < max_iter: + + # update iteration counter + iteration += 1 + + # compute alpha (3.19) + g_proy = J @ g + alpha = (g @ g) / (g_proy @ g_proy) + hsd = -alpha * g + + if verbose > 0: + print('-' * 200) + print(f'Iter: {iteration}') + print('-' * 200) + + # compute update step + try: + + # compute update step: J x Δx = Δg + hgn = linear_solver(J, -f) + + except RuntimeError: + logger.add_error(f"Powell's system matrix is singular @iter {iteration}:") + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) + + # compute hdl (3.20) + hdl, L0_Lhdl = compute_hdl(hgn=hgn, hsd=hsd, g=g, alpha=alpha, delta=delta, f_error=f_error) + + if verbose > 1: + import pandas as pd + print("H:\n", pd.DataFrame(J.toarray()).to_string(index=False)) + print("f:\n", f) + print("dx:\n", hdl) + + tol2 = tol * (norm(x) + tol) + + # if norm(hdl) <= tol2: + # converged = True + # else: + x_new = x + hdl + + f_error_new, converged, x, f = problem.update(x_new, update_controls=True) + + rho = (f_error - f_error_new) / L0_Lhdl if L0_Lhdl > 0 else -1.0 + + if rho > 0.0: + x = x_new + J = mat_to_scipy(problem.Jacobian()) # compute the Jacobian too + g = J.T @ f + f_error = f_error_new + + elif rho > 0.75: + delta = max(delta, 3.0 * norm(hdl)) + + elif rho < 0.25: + delta *= 0.5 + + else: + raise Exception(f'Unhandled rho {rho}') + + # save the error evolution + error_evolution[iteration] = f_error + + if verbose > 0: + if verbose == 1: + print(f'It {iteration}, error {f_error}, converged {converged}, x {x}, dx {hdl}') + else: + print(f'error {f_error}, converged {converged}, x {x}, dx {hdl}') + + return problem.get_solution(elapsed=time.time() - start, iterations=iteration) diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index f99687398..a7e68f061 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -27,6 +27,7 @@ from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_basic_formulation import PfBasicFormulation from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_advanced_formulation import PfAdvancedFormulation from GridCalEngine.Simulations.PowerFlow.NumericalMethods.newton_raphson_fx import newton_raphson_fx +from GridCalEngine.Simulations.PowerFlow.NumericalMethods.powell_fx import powell_fx from GridCalEngine.Simulations.PowerFlow.NumericalMethods.levenberg_marquadt_fx import levenberg_marquadt_fx from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Devices.multi_circuit import MultiCircuit @@ -294,6 +295,52 @@ def solve(circuit: NumericalCircuit, verbose=options.verbose, logger=logger) + # Powell's Dog Leg (full) + elif solver_type == SolverType.PowellDogLeg: + if circuit.any_control: + # Solve NR with the AC/DC algorithm + + problem = PfAdvancedFormulation(V0=final_solution.V, + S0=S0, + I0=I0, + Y0=Y0, + Qmin=Qmin, + Qmax=Qmax, + pv=pv, + pq=pq, + pqv=pqv, + p=p, + nc=circuit, + options=options) + + solution = powell_fx(problem=problem, + tol=options.tolerance, + max_iter=options.max_iter, + trust=options.trust_radius, + verbose=options.verbose, + logger=logger) + else: + # Solve NR with the AC algorithm + problem = PfBasicFormulation(V0=final_solution.V, + S0=S0, + I0=I0, + Y0=Y0, + Qmin=Qmin, + Qmax=Qmax, + pv=pv, + pq=pq, + pqv=pqv, + p=p, + adm=circuit.admittances_, + options=options) + + solution = powell_fx(problem=problem, + tol=options.tolerance, + max_iter=options.max_iter, + trust=options.trust_radius, + verbose=options.verbose, + logger=logger) + # Newton-Raphson-Decpupled elif solver_type == SolverType.NRD: # Solve NR with the linear AC solution diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index 067596cf6..9241d3de6 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -41,7 +41,8 @@ def test_ieee_grids(): ('IEEE 118 Bus v2.raw', 'IEEE 118 Bus.sav.xlsx'), ] - for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: + for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, + SolverType.FASTDECOUPLED, SolverType.PowellDogLeg]: print(solver_type) @@ -220,7 +221,8 @@ def test_voltage_remote_control_with_generation() -> None: # control bus 6 with generator 4 grid.generators[4].control_bus = grid.buses[6] - for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, SolverType.FASTDECOUPLED]: + for solver_type in [SolverType.NR, SolverType.IWAMOTO, SolverType.LM, + SolverType.FASTDECOUPLED, SolverType.PowellDogLeg]: options = PowerFlowOptions(solver_type, verbose=0, control_q=False, @@ -246,7 +248,7 @@ def test_voltage_control_with_ltc() -> None: bus_dict = grid.get_bus_index_dict() ctrl_idx = bus_dict[grid.transformers2w[0].regulation_bus] - for solver_type in [SolverType.NR]: + for solver_type in [SolverType.NR, SolverType.LM, SolverType.PowellDogLeg]: options = PowerFlowOptions(solver_type, verbose=0, control_q=False, @@ -270,7 +272,7 @@ def test_qf_control_with_ltc() -> None: grid = gce.open_file(fname) - for solver_type in [SolverType.NR]: + for solver_type in [SolverType.NR, SolverType.LM, SolverType.PowellDogLeg]: options = PowerFlowOptions(solver_type, verbose=0, control_q=False, @@ -293,7 +295,7 @@ def test_qt_control_with_ltc() -> None: grid = gce.open_file(fname) grid.transformers2w[0].tap_module_control_mode = gce.TapModuleControl.Qt - for solver_type in [SolverType.NR]: + for solver_type in [SolverType.NR, SolverType.LM, SolverType.PowellDogLeg]: options = PowerFlowOptions(solver_type, verbose=0, control_q=False, @@ -315,7 +317,7 @@ def test_power_flow_control_with_pst_pf() -> None: grid = gce.open_file(fname) - for solver_type in [SolverType.NR]: + for solver_type in [SolverType.NR, SolverType.LM, SolverType.PowellDogLeg]: options = PowerFlowOptions(solver_type, verbose=0, control_q=False, @@ -337,7 +339,7 @@ def test_power_flow_control_with_pst_pt() -> None: grid = gce.open_file(fname) - for solver_type in [SolverType.NR]: + for solver_type in [SolverType.NR, SolverType.LM, SolverType.PowellDogLeg]: options = PowerFlowOptions(solver_type, verbose=0, control_q=False, @@ -360,10 +362,11 @@ def test_fubm(): fname = os.path.join('data', 'grids', 'fubm_caseHVDC_vt.m') grid = gce.open_file(fname) - opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=0) - driver = gce.PowerFlowDriver(grid=grid, options=opt) - driver.run() - results = driver.results - vm = np.abs(results.voltage) - expected_vm = np.array([1.1000, 1.0960, 1.0975, 1.1040, 1.1119, 1.1200]) - assert np.allclose(vm, expected_vm, rtol=1e-4) + for solver_type in [SolverType.NR, SolverType.LM, SolverType.PowellDogLeg]: + opt = gce.PowerFlowOptions(solver_type=solver_type, retry_with_other_methods=False, verbose=0) + driver = gce.PowerFlowDriver(grid=grid, options=opt) + driver.run() + results = driver.results + vm = np.abs(results.voltage) + expected_vm = np.array([1.1000, 1.0960, 1.0975, 1.1040, 1.1119, 1.1200]) + assert np.allclose(vm, expected_vm, rtol=1e-4) From aebf79b5a1cbb714b3f97d048cfd9e77c023d25b Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 21 Aug 2024 10:50:02 -0100 Subject: [PATCH 191/218] Fix list extension in case the device has more than 1 template --- .idea/workspace.xml | 740 ++++++++++-------- src/GridCalEngine/Devices/assets.py | 2 +- .../Methods/mixed_variable_NSGA_2.py | 13 +- .../investments_evaluation_driver.py | 1 + .../Simulations/driver_template.py | 2 +- 5 files changed, 404 insertions(+), 354 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3a6954fa6..4a984bc29 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,12 @@
- + - - - - + + - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_derivatives.test_tau_derivatives.executor": "Debug", + "Python tests.pytest for src.tests.test_generator_q_control.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_generator_q_control.test_q_control_true.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Run", + "Python tests.pytest for test_raw_roundtrip.test_rawx_roundtrip.executor": "Run", + "Python tests.pytest for test_sparse2.test_expand.executor": "Run", + "Python tests.pytest for test_sparse2.test_sp_slice.executor": "Run", + "Python tests.pytest for test_sparse2.test_spsolve.executor": "Debug", + "Python tests.pytest for test_sparse2.test_stack_4.executor": "Run", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_derivatives.py.executor": "Run", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_ptdf.py.executor": "Run", + "Python tests.pytest in test_sparse2.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Debug", + "Python.acciona_capex.executor": "Run", + "Python.associations_templates.executor": "Debug", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.multi_select.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.tallr_table_headers.executor": "Debug", + "Python.test_derivatives.executor": "Run", + "Python.try_template_loading.executor": "Debug", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "da64cd0f", + "last_opened_file_path": "C:/Users/some1/GridCal/Grids_and_profiles/grids", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} @@ -1837,7 +1835,6 @@ - @@ -1862,7 +1859,8 @@ - @@ -2267,7 +2265,7 @@ file://$PROJECT_DIR$/src/GridCalEngine/DataStructures/numerical_circuit.py - 782 + 805 @@ -2310,6 +2308,31 @@ 229 + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py + 69 + + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py + 70 + + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py + 71 + + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py + 72 + + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py + 73 + diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index 6c4115c94..a1a2a444b 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -299,11 +299,11 @@ def apply_template(self, obj: Union[OverheadLineType, UndergroundLineType, Seque def get_line_type(self) -> SequenceLineType: """ - Get the equivalent sequence line type oof this line + Get the equivalent sequence line type of this line :return: SequenceLineType """ if self.length == 0.0: - raise Exception("Lenght must be greater than 0") + raise Exception("Length must be greater than 0") return SequenceLineType(name=f"{self.name}_type", Imax=1, Vnom=self.get_max_bus_nominal_voltage(), diff --git a/src/GridCalEngine/Devices/Branches/transformer.py b/src/GridCalEngine/Devices/Branches/transformer.py index a98c00bfa..051c8ad62 100644 --- a/src/GridCalEngine/Devices/Branches/transformer.py +++ b/src/GridCalEngine/Devices/Branches/transformer.py @@ -465,7 +465,8 @@ def get_vcc(self) -> float: def get_transformer_type(self, Sbase: float = 100.0) -> TransformerType: """ - + Get the equivalent transformer type of this transformer + :return: SequenceLineType :param Sbase: :return: """ diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py index 928f46905..e577892e1 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/Methods/mixed_variable_NSGA_2.py @@ -104,7 +104,7 @@ def __init__(self, grid: MultiCircuit, obj_func, n_obj): self.devices = list() # list of devices in sequential order to match the order of the vars self.default_tamplate = list() # list of templates that represent the devices in their initial state for elm, template_list in self.device_template_dict.items(): - self.variables[elm.idtag] = Integer(bounds=(0, len(template_list) + 1)) + self.variables[elm.idtag] = Integer(bounds=(0, len(template_list) + 1)) # TODO: check if +1 is needed self.devices.append(elm) if isinstance(elm, Line): From 0cac6642278f9609632a5f9ebea21c94fe4fb76e Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Wed, 21 Aug 2024 12:20:32 -0100 Subject: [PATCH 193/218] From beginning to finish the NSGA2 works for a simplistic case with templates --- .idea/workspace.xml | 190 ++++++++++-------- .../Methods/mixed_variable_NSGA_2.py | 11 +- .../investments_evaluation_driver.py | 11 +- .../investments_evaluation_results.py | 12 +- 4 files changed, 130 insertions(+), 94 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 381f4e55d..86a8acb6f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,11 @@ - - + - - - - + + + + + + + + + + + - + @@ -219,7 +225,7 @@ - + - - - - + - + @@ -681,19 +664,37 @@ + + + - - + - + + - + + - - + @@ -1446,7 +1447,6 @@ - 1656059954202 @@ -1791,7 +1791,7 @@ - @@ -1838,6 +1838,10 @@ + + + + @@ -1859,11 +1863,7 @@ - - - - - @@ -1938,11 +1938,6 @@ 55 + + + + + @@ -2413,7 +2319,7 @@ - + @@ -2606,7 +2512,7 @@ - + @@ -2669,7 +2575,7 @@ - + @@ -2720,6 +2626,7 @@ + @@ -2753,8 +2660,9 @@ - + + @@ -2819,13 +2727,13 @@ - + - + diff --git a/src/GridCalEngine/Compilers/circuit_to_data.py b/src/GridCalEngine/Compilers/circuit_to_data.py index 14f35d8bb..5ee96c83e 100644 --- a/src/GridCalEngine/Compilers/circuit_to_data.py +++ b/src/GridCalEngine/Compilers/circuit_to_data.py @@ -22,7 +22,7 @@ from GridCalEngine.Devices.Aggregation.area import Area from GridCalEngine.Devices.multi_circuit import MultiCircuit from GridCalEngine.enumerations import (BusMode, BranchImpedanceMode, ExternalGridMode, - TapModuleControl, HvdcControlType) + TapModuleControl, TapPhaseControl,HvdcControlType) from GridCalEngine.basic_structures import BoolVec from GridCalEngine.Devices.types import BRANCH_TYPES import GridCalEngine.DataStructures as ds @@ -825,7 +825,7 @@ def fill_controllable_branch(ii: int, else: reg_bus = elm.regulation_bus - data.tap_module_buses[ii] = bus_dict[reg_bus] + data.tap_controlled_buses[ii] = bus_dict[reg_bus] data.Pset[ii] = elm.Pset_prof[t_idx] / Sbase data.Qset[ii] = elm.Qset_prof[t_idx] / Sbase @@ -850,7 +850,7 @@ def fill_controllable_branch(ii: int, device=elm.name) else: reg_bus = elm.regulation_bus - data.tap_module_buses[ii] = bus_dict[reg_bus] + data.tap_controlled_buses[ii] = bus_dict[reg_bus] data.Pset[ii] = elm.Pset / Sbase data.Qset[ii] = elm.Qset / Sbase @@ -868,9 +868,14 @@ def fill_controllable_branch(ii: int, data.tap_angle_min[ii] = elm.tap_phase_min data.tap_angle_max[ii] = elm.tap_phase_max + if (data.tap_module_control_mode[ii] != TapModuleControl.fixed + or data.tap_phase_control_mode[ii] != TapPhaseControl.fixed): + data._any_pf_control = True + if not use_stored_guess: - if elm.tap_module_control_mode == TapModuleControl.Vm: - bus_idx = data.tap_module_buses[ii] + if data.tap_module_control_mode[ii] == TapModuleControl.Vm: + data._any_pf_control = True + bus_idx = data.tap_controlled_buses[ii] if not bus_voltage_used[bus_idx]: if elm.vset > 0.0: bus_data.Vbus[bus_idx] = elm.vset @@ -1018,7 +1023,7 @@ def get_branch_data(circuit: MultiCircuit, data.alpha1[ii] = elm.alpha1 data.alpha2[ii] = elm.alpha2 data.alpha3[ii] = elm.alpha3 - + data._any_pf_control = True ii += 1 # UPFC diff --git a/src/GridCalEngine/DataStructures/branch_data.py b/src/GridCalEngine/DataStructures/branch_data.py index 84e5df31c..8e58801da 100644 --- a/src/GridCalEngine/DataStructures/branch_data.py +++ b/src/GridCalEngine/DataStructures/branch_data.py @@ -102,7 +102,7 @@ def __init__(self, nelm: int, nbus: int): self.tap_module_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) self.tap_phase_control_mode: ObjVec = np.zeros(self.nelm, dtype=object) - self.tap_module_buses: IntVec = np.zeros(self.nelm, dtype=int) + self.tap_controlled_buses: IntVec = np.zeros(self.nelm, dtype=int) self.is_converter: BoolVec = np.zeros(self.nelm, dtype=bool) self.contingency_enabled: IntVec = np.ones(self.nelm, dtype=int) @@ -117,6 +117,8 @@ def __init__(self, nelm: int, nbus: int): self.original_idx: IntVec = np.zeros(nelm, dtype=int) + self._any_pf_control = False + def size(self) -> int: """ Get size of the structure @@ -170,7 +172,7 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.tap_phase_control_mode = self.tap_phase_control_mode[elm_idx] data.tap_module_control_mode = self.tap_module_control_mode[elm_idx] - data.tap_module_buses = self.tap_module_buses[elm_idx] + data.tap_controlled_buses = self.tap_controlled_buses[elm_idx] data.is_converter = self.is_converter[elm_idx] data.contingency_enabled = self.contingency_enabled[elm_idx] @@ -208,6 +210,8 @@ def slice(self, elm_idx: IntVec, bus_idx: IntVec) -> "BranchData": data.original_idx = elm_idx + data._any_pf_control = self._any_pf_control + return data def copy(self) -> "BranchData": @@ -253,7 +257,7 @@ def copy(self) -> "BranchData": data.tap_phase_control_mode = self.tap_phase_control_mode.copy() data.tap_module_control_mode = self.tap_module_control_mode.copy() - data.tap_module_buses = self.tap_module_buses.copy() + data.tap_controlled_buses = self.tap_controlled_buses.copy() data.is_converter = self.is_converter.copy() data.contingency_enabled = self.contingency_enabled.copy() @@ -286,6 +290,8 @@ def copy(self) -> "BranchData": data.original_idx = self.original_idx.copy() + data._any_pf_control = self._any_pf_control + return data def get_island(self, bus_idx: Vec) -> IntVec: diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 5fd13aecb..b151f24ec 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -863,7 +863,7 @@ def get_simulation_indices(self) -> si.SimulationIndices: Pbus=self.Sbus.real, tap_module_control_mode=self.branch_data.tap_module_control_mode, tap_phase_control_mode=self.branch_data.tap_phase_control_mode, - tap_controlled_buses=self.branch_data.tap_module_buses, + tap_controlled_buses=self.branch_data.tap_controlled_buses, is_converter=self.branch_data.is_converter, F=self.branch_data.F, T=self.branch_data.T, @@ -1162,10 +1162,7 @@ def any_control(self): :return: """ - if self.simulation_indices_ is None: - self.simulation_indices_ = self.get_simulation_indices() - - return self.simulation_indices_.any_control + return self.branch_data._any_pf_control @property def k_pf_tau(self): @@ -1389,10 +1386,6 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: Y0=self.YLoadBus, Qmin=self.Qmin_bus, Qmax=self.Qmax_bus, - pq=self.pq, - pv=self.pv, - pqv=self.pqv, - p=self.p, nc=self, options=PowerFlowOptions()) @@ -1613,7 +1606,7 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: data=np.c_[ self.branch_data.F, self.branch_data.T, - self.branch_data.tap_module_buses, + self.branch_data.tap_controlled_buses, data1, data2 ], diff --git a/src/GridCalEngine/Simulations/Derivatives/ac_jacobian.py b/src/GridCalEngine/Simulations/Derivatives/ac_jacobian.py index 8f4fc390e..ed6bff711 100644 --- a/src/GridCalEngine/Simulations/Derivatives/ac_jacobian.py +++ b/src/GridCalEngine/Simulations/Derivatives/ac_jacobian.py @@ -296,15 +296,15 @@ def AC_jacobian(Ybus: csc_matrix, V: CxVec, pvpq: IntVec, pq: IntVec) -> CSC: @jit(nopython=True) def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, - idx_dtheta: IntVec, idx_dVm: IntVec, idx_dQ: IntVec) -> CSC: + idx_dtheta: IntVec, idx_dVm: IntVec, idx_dP: IntVec, idx_dQ: IntVec) -> CSC: """ Calculates Jacobian in CSC format. J has the shape - idx_dtheta idx_dVm - idx_dtheta | dP_dVa | dP_dVm | - idx_dQ | dQ_dVa | dQ_dVm | + idx_dtheta idx_dVm + idx_dP | dP_dVa | dP_dVm | + idx_dQ | dQ_dVa | dQ_dVm | :param nbus: :param Yx: @@ -313,6 +313,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, :param V: :param idx_dtheta: pv, pq, p, pqv :param idx_dVm: pq, p + :param idx_dP: pv, pq, p, pqv :param idx_dQ: pq, pqv :return: Jacobina matrix """ @@ -325,7 +326,7 @@ def create_J_vc_csc(nbus: int, Yx: CxVec, Yp: IntVec, Yi: IntVec, V: CxVec, J = CSC(nj, nj, nnz_estimate, False) # Note: The row and column pointer of of dVm and dVa are the same as the one from Ybus - lookup_dP = make_lookup(nbus, idx_dtheta) + lookup_dP = make_lookup(nbus, idx_dP) lookup_dQ = make_lookup(nbus, idx_dQ) # get length of vectors @@ -409,6 +410,6 @@ def AC_jacobianVc(Ybus: csc_matrix, V: CxVec, idx_dtheta: IntVec, idx_dVm: IntVe nbus = Ybus.shape[0] # Create J in CSC order - J = create_J_vc_csc(nbus, Ybus.data, Ybus.indptr, Ybus.indices, V, idx_dtheta, idx_dVm, idx_dQ) + J = create_J_vc_csc(nbus, Ybus.data, Ybus.indptr, Ybus.indices, V, idx_dtheta, idx_dVm, idx_dtheta, idx_dQ) return J diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 324cb4560..8e4964d89 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -23,12 +23,14 @@ from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit import GridCalEngine.Simulations.Derivatives.csc_derivatives as deriv +from GridCalEngine.Topology.simulation_indices import compile_types from GridCalEngine.Utils.NumericalMethods.autodiff import calc_autodiff_jacobian from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, scipy_to_mat from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import expand from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error from GridCalEngine.Simulations.PowerFlow.NumericalMethods.discrete_controls import control_q_inside_method from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate +from GridCalEngine.enumerations import BusMode, TapPhaseControl, TapModuleControl from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, polar_to_rect, get_Sf, get_St, get_It) @@ -155,9 +157,10 @@ def adv_jacobian(nbus: int, class PfAdvancedFormulation(PfFormulationTemplate): - def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, - pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, - nc: NumericalCircuit, options: PowerFlowOptions): + def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, + Qmin: Vec, Qmax: Vec, + nc: NumericalCircuit, + options: PowerFlowOptions): """ :param V0: @@ -166,14 +169,10 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: :param Y0: :param Qmin: :param Qmax: - :param pq: - :param pv: - :param pqv: - :param p: :param nc: :param options: """ - PfFormulationTemplate.__init__(self, V0=V0, pq=pq, pv=pv, pqv=pqv, p=p, options=options) + PfFormulationTemplate.__init__(self, V0=V0, options=options) self.nc: NumericalCircuit = nc @@ -184,30 +183,34 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Qmin = Qmin self.Qmax = Qmax - self._indices = nc.get_simulation_indices() + self.bus_types = self.nc.bus_data.bus_types.copy() + self.tap_module_control_mode = self.nc.branch_data.tap_module_control_mode.copy() + self.tap_phase_control_mode = self.nc.branch_data.tap_phase_control_mode.copy() - # self.Pset = nc.branch_data.Pset[nc.k_pf_tau] + self.pq = np.array(0, dtype=int) + self.pv = np.array(0, dtype=int) + self.pqv = np.array(0, dtype=int) + self.p = np.array(0, dtype=int) + self.idx_conv = np.array(0, dtype=int) - # self.k_pf_tau: IntVec = nc.k_pf_tau - # self.k_v_m: IntVec = nc.k_v_m - # self.k_qf_beq: IntVec = nc.k_qf_beq + self.idx_dVa = np.array(0, dtype=int) + self.idx_dVm = np.array(0, dtype=int) + self.idx_dP = np.array(0, dtype=int) + self.idx_dQ = np.array(0, dtype=int) - self.idx_conv = self._indices.k_vsc + self.idx_dm = np.array(0, dtype=int) + self.idx_dtau = np.array(0, dtype=int) + self.idx_dbeq = np.array(0, dtype=int) - self._idx_dVa = np.r_[self.pqv, self.pv, self.pq, self.p] - self._idx_dVm = np.r_[self.pq, self.p] - self._idx_dP = self._idx_dVa - self._idx_dQ = np.r_[self.pq, self.pqv] + self.idx_dPf = np.array(0, dtype=int) + self.idx_dQf = np.array(0, dtype=int) - self.idx_dm = np.r_[self._indices.k_v_m, self._indices.k_qf_m, self._indices.k_qt_m] - self.idx_dtau = np.r_[self._indices.k_pf_tau, self._indices.k_pt_tau] - self.idx_dbeq = np.r_[self._indices.k_qf_beq, self._indices.k_v_beq] + self.idx_dPt = np.array(0, dtype=int) + self.idx_dQt = np.array(0, dtype=int) - self.idx_dPf = self._indices.k_pf_tau - self.idx_dQf = np.r_[self._indices.k_qf_m, self._indices.k_qf_beq] - - self.idx_dPt = self._indices.k_pt_tau - self.idx_dQt = self._indices.k_qt_m + k_v_m = self.analyze_branch_controls() # this fills the indices above + vd, pq, pv, pqv, p, self.no_slack = compile_types(Pbus=self.nc.Sbus.real, types=self.bus_types) + self.update_types(pq=pq, pv=pv, pqv=pqv, p=p) self.m: Vec = self.nc.branch_data.tap_module[self.idx_dm] self.tau: Vec = self.nc.branch_data.tap_angle[self.idx_dtau] @@ -237,9 +240,143 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: add_windings_phase=False ) - if not len(self.pqv) >= len(self._indices.k_v_m): + if not len(self.pqv) >= len(k_v_m): raise ValueError("k_v_m indices must be the same size as pqv indices!") + def update_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec): + """ + + :param pq: + :param pv: + :param pqv: + :param p: + :return: + """ + self.pq = pq + self.pv = pv + self.pqv = pqv + self.p = p + + self.idx_dVa = np.r_[self.pqv, self.pv, self.pq, self.p] + self.idx_dVm = np.r_[self.pq, self.p] + self.idx_dP = self.idx_dVa + self.idx_dQ = np.r_[self.pq, self.pqv] + + def analyze_branch_controls(self) -> List[int]: + """ + Analyze the control branches and compute the indices + :return: k_v_m for later comparison with pqv + """ + k_pf_tau = list() + k_pt_tau = list() + k_qf_m = list() + k_qt_m = list() + k_qfzero_beq = list() + k_v_m = list() + k_v_beq = list() + k_vsc = list() + + nbr = len(self.tap_phase_control_mode) + for k in range(nbr): + + ctrl_m = self.tap_module_control_mode[k] + ctrl_tau = self.tap_phase_control_mode[k] + is_conv = self.nc.branch_data.is_converter[k] + + conv_type = 1 if is_conv else 0 + + # analyze tap-module controls + if ctrl_m == TapModuleControl.Vm: + + # Every bus controlled by m has to become a PQV bus + bus_idx = self.nc.branch_data.tap_controlled_buses[k] + self.bus_types[bus_idx] = BusMode.PQV_tpe.value + + if is_conv and bus_idx == self.nc.branch_data.F[k]: + # if this is a converter, + # the voltage can be managed with Beq + # if the control bus is the "From" bus + k_v_beq.append(k) + conv_type = 2 + else: + # In any other case, the voltage is managed by the tap module + k_v_m.append(k) + + elif ctrl_m == TapModuleControl.Qf: + + if not is_conv: + k_qf_m.append(k) + + elif ctrl_m == TapModuleControl.Qt: + k_qt_m.append(k) + + elif ctrl_m == TapModuleControl.fixed: + pass + + elif ctrl_m == 0: + pass + + else: + raise Exception(f"Unknown tap phase module mode {ctrl_m}") + + # analyze tap-phase controls + if ctrl_tau == TapPhaseControl.Pf: + k_pf_tau.append(k) + # conv_type = 1 + + elif ctrl_tau == TapPhaseControl.Pt: + k_pt_tau.append(k) + # conv_type = 1 + + elif ctrl_tau == TapPhaseControl.fixed: + if ctrl_m == TapModuleControl.fixed: + conv_type = 1 + + # elif ctrl_tau == TapPhaseControl.Droop: + # pass + + elif ctrl_tau == 0: + pass + + else: + raise Exception(f"Unknown tap phase control mode {ctrl_tau}") + + # Beq->qf=0 + if conv_type == 1: + k_qfzero_beq.append(k) + + if is_conv: + k_vsc.append(k) + + # convert lists to integer arrays + # k_pf_tau = np.array(k_pf_tau, dtype=int) + # k_pt_tau = np.array(k_pt_tau, dtype=int) + # k_qf_m = np.array(k_qf_m, dtype=int) + # k_qt_m = np.array(k_qt_m, dtype=int) + # k_qf_beq = np.array(k_qfzero_beq, dtype=int) + # k_v_m = np.array(k_v_m, dtype=int) + # k_v_beq = np.array(k_v_beq, dtype=int) + + self.idx_conv = np.array(k_vsc, dtype=int) + + self.idx_dm = np.r_[k_v_m, k_qf_m, k_qt_m].astype(int) + self.idx_dtau = np.r_[k_pf_tau, k_pt_tau].astype(int) + self.idx_dbeq = np.r_[k_qfzero_beq, k_v_beq].astype(int) + + self.idx_dPf = np.array(k_pf_tau, dtype=int) + self.idx_dQf = np.r_[k_qf_m, k_qfzero_beq].astype(int) + + self.idx_dPt = np.array(k_pt_tau, dtype=int) + self.idx_dQt = np.array(k_qt_m, dtype=int) + + self.m: Vec = self.nc.branch_data.tap_module[self.idx_dm] + self.tau: Vec = self.nc.branch_data.tap_angle[self.idx_dtau] + self.beq: Vec = self.nc.branch_data.Beq[self.idx_dbeq] + + self.Gsw = self.nc.branch_data.G0sw[self.idx_conv] + + return k_v_m + def x2var(self, x: Vec): """ Convert X to decission variables @@ -390,7 +527,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # recompute the error based on the new Scalc and S0 self._f = self.fx() - # compute the rror + # compute the error self._error = compute_fx_error(self._f) # the composition of x changed, so recompute diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py index ec0082d26..ec1526922 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py @@ -16,6 +16,8 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. from typing import Tuple import numpy as np + +from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit from GridCalEngine.Topology.admittance_matrices import AdmittanceMatrices from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions @@ -25,6 +27,7 @@ from GridCalEngine.Simulations.PowerFlow.NumericalMethods.pf_formulation_template import PfFormulationTemplate from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, compute_fx, polar_to_rect) +from GridCalEngine.Topology.simulation_indices import compile_types from GridCalEngine.basic_structures import Vec, IntVec, CxVec from GridCalEngine.Utils.Sparse.csc2 import CSC @@ -32,8 +35,7 @@ class PfBasicFormulation(PfFormulationTemplate): def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, - pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, - adm: AdmittanceMatrices, options: PowerFlowOptions): + nc: NumericalCircuit, options: PowerFlowOptions): """ :param V0: @@ -46,12 +48,12 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: :param pv: :param pqv: :param p: - :param adm: :param options: """ - PfFormulationTemplate.__init__(self, V0=V0, pq=pq, pv=pv, pqv=pqv, p=p, options=options) + PfFormulationTemplate.__init__(self, V0=V0, options=options) - self.adm: AdmittanceMatrices = adm + self.nc = nc + self.adm: AdmittanceMatrices = nc.admittances_ self.S0: CxVec = S0 self.I0: CxVec = I0 @@ -60,6 +62,14 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: self.Qmin = Qmin self.Qmax = Qmax + self.vd, self.pq, self.pv, self.pqv, self.p, self.no_slack = compile_types(Pbus=self.nc.Sbus.real, + types=self.nc.bus_data.bus_types) + + self.idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] + self.idx_dVm = np.r_[self.pq, self.p] + self.idx_dP = self.idx_dVa + self.idx_dQ = np.r_[self.pq, self.pqv] + def x2var(self, x: Vec): """ Convert X to decission variables @@ -82,6 +92,25 @@ def var2x(self) -> Vec: self.Vm[self.idx_dVm] ] + def update_bus_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec): + """ + + :param pq: + :param pv: + :param pqv: + :param p: + :return: + """ + self.pq = pq + self.pv = pv + self.pqv = pqv + self.p = p + + self.idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] + self.idx_dVm = np.r_[self.pq, self.p] + self.idx_dP = self.idx_dVa + self.idx_dQ = np.r_[self.pq, self.pqv] + def size(self) -> int: """ Size of the jacobian matrix @@ -136,7 +165,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve self.Qmax) if len(changed) > 0: - self.update_types(pq=pq, pv=pv, pqv=pqv, p=p) + self.update_bus_types(pq=pq, pv=pv, pqv=pqv, p=p) # recompute the error based on the new Scalc and S0 self._f = self.fx() @@ -173,7 +202,7 @@ def Jacobian(self) -> CSC: # Create J in CSC order J = create_J_vc_csc(nbus, self.adm.Ybus.data, self.adm.Ybus.indptr, self.adm.Ybus.indices, - self.V, self.idx_dVa, self.idx_dVm, self.idx_dQ) + self.V, self.idx_dVa, self.idx_dVm, self.idx_dP, self.idx_dQ) return J diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py index 130b6ebcf..8defc4731 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -31,14 +31,10 @@ class PfFormulationTemplate: Base Power Flow Formulation class """ - def __init__(self, V0: CxVec, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, options: PowerFlowOptions): + def __init__(self, V0: CxVec, options: PowerFlowOptions): """ :param V0: - :param pq: - :param pv: - :param pqv: - :param p: :param options: """ self.V = V0 @@ -50,40 +46,13 @@ def __init__(self, V0: CxVec, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec, op self.options = options - self.pq = pq - self.pv = pv - self.pqv = pqv - self.p = p - - self._idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] - self._idx_dVm = np.r_[self.pq, self.p] - self._idx_dP = self._idx_dVa - self._idx_dQ = np.r_[self.pq, self.pqv] - self._f = np.zeros(0) self._error: float = 0.0 self._converged: bool = False - def update_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec): - """ - - :param pq: - :param pv: - :param pqv: - :param p: - :return: - """ - self.pq = pq - self.pv = pv - self.pqv = pqv - self.p = p - self._idx_dVa = np.r_[self.pv, self.pq, self.pqv, self.p] - self._idx_dVm = np.r_[self.pq, self.p] - self._idx_dP = self._idx_dVa - self._idx_dQ = np.r_[self.pq, self.pqv] @property def converged(self) -> bool: @@ -109,37 +78,7 @@ def f(self) -> Vec: """ return self._f - @property - def idx_dVa(self) -> IntVec: - """ - Indices for the increments of Va - :return: - """ - return self._idx_dVa - - @property - def idx_dVm(self) -> IntVec: - """ - indices for the increment of Vm - :return: - """ - return self._idx_dVm - - @property - def idx_dP(self) -> IntVec: - """ - indices for the increment of P - :return: - """ - return self._idx_dP - @property - def idx_dQ(self) -> IntVec: - """ - Indices for the increment of Q - :return: - """ - return self._idx_dQ @property def Va(self) -> Vec: diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py index 1027e4c54..291bfd972 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/powell_fx.py @@ -157,17 +157,11 @@ def powell_fx(problem: PfFormulationTemplate, tol2 = tol * (norm(x) + tol) - # if norm(hdl) <= tol2: - # converged = True - # else: - x_new = x + hdl - - f_error_new, converged, x, f = problem.update(x_new, update_controls=True) + f_error_new, converged, x, f = problem.update(x + hdl, update_controls=True) rho = (f_error - f_error_new) / L0_Lhdl if L0_Lhdl > 0 else -1.0 - if rho > 0.0: - x = x_new + if rho > 0.0 or len(f) != J.shape[0]: J = mat_to_scipy(problem.Jacobian()) # compute the Jacobian too g = J.T @ f f_error = f_error_new diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index a7e68f061..3cbc1ab87 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -195,10 +195,6 @@ def solve(circuit: NumericalCircuit, Y0=Y0, Qmin=Qmin, Qmax=Qmax, - pv=pv, - pq=pq, - pqv=pqv, - p=p, nc=circuit, options=options) @@ -216,11 +212,7 @@ def solve(circuit: NumericalCircuit, Y0=Y0, Qmin=Qmin, Qmax=Qmax, - pv=pv, - pq=pq, - pqv=pqv, - p=p, - adm=circuit.admittances_, + nc=circuit, options=options) solution = levenberg_marquadt_fx(problem=problem, @@ -260,10 +252,6 @@ def solve(circuit: NumericalCircuit, Y0=Y0, Qmin=Qmin, Qmax=Qmax, - pv=pv, - pq=pq, - pqv=pqv, - p=p, nc=circuit, options=options) @@ -281,11 +269,7 @@ def solve(circuit: NumericalCircuit, Y0=Y0, Qmin=Qmin, Qmax=Qmax, - pv=pv, - pq=pq, - pqv=pqv, - p=p, - adm=circuit.admittances_, + nc=circuit, options=options) solution = newton_raphson_fx(problem=problem, @@ -306,10 +290,6 @@ def solve(circuit: NumericalCircuit, Y0=Y0, Qmin=Qmin, Qmax=Qmax, - pv=pv, - pq=pq, - pqv=pqv, - p=p, nc=circuit, options=options) @@ -327,11 +307,7 @@ def solve(circuit: NumericalCircuit, Y0=Y0, Qmin=Qmin, Qmax=Qmax, - pv=pv, - pq=pq, - pqv=pqv, - p=p, - adm=circuit.admittances_, + nc=circuit, options=options) solution = powell_fx(problem=problem, diff --git a/src/GridCalEngine/Topology/simulation_indices.py b/src/GridCalEngine/Topology/simulation_indices.py index 718a766b3..d126015a1 100644 --- a/src/GridCalEngine/Topology/simulation_indices.py +++ b/src/GridCalEngine/Topology/simulation_indices.py @@ -220,14 +220,17 @@ def analyze_branch_controls(self) -> None: # analyze tap-phase controls if ctrl_tau == TapPhaseControl.Pf: k_pf_tau.append(k) + conv_type = 1 elif ctrl_tau == TapPhaseControl.Pt: k_pt_tau.append(k) + conv_type = 1 elif ctrl_tau == TapPhaseControl.fixed: - pass + if ctrl_m == TapModuleControl.fixed: + conv_type = 1 - # elif ctrl == TapPhaseControl.Droop: + # elif ctrl_tau == TapPhaseControl.Droop: # pass elif ctrl_tau == 0: diff --git a/src/tests/test_basic.py b/src/tests/test_basic.py index 0af194537..4ca7d75ea 100644 --- a/src/tests/test_basic.py +++ b/src/tests/test_basic.py @@ -31,9 +31,9 @@ def complex_impedance(z, XR): """ z = float(abs(z)) XR = float(abs(XR)) - real = (z**2/(1+XR**2))**0.5 + real = (z ** 2 / (1 + XR ** 2)) ** 0.5 try: - imag = (z**2/(1+1/XR**2))**0.5 + imag = (z ** 2 / (1 + 1 / XR ** 2)) ** 0.5 except ZeroDivisionError: imag = 0.0 return complex(real, imag) @@ -80,7 +80,7 @@ def test_basic(): # Create static generators (with fixed power factor) M32 = StaticGenerator(name="M32", P=4.2, # MW - Q=0.0j) # MVAr + Q=0.0) # MVAr M32.bus = B_LV_M32 grid.add_static_generator(B_LV_M32, M32) @@ -169,7 +169,7 @@ def test_basic(): print(f" - {b}:") print(f" R = {round(b.R, 4)} pu") print(f" X = {round(b.X, 4)} pu") - print(f" X/R = {round(b.X/b.R, 1)}") + print(f" X/R = {round(b.X / b.R, 1)}") print(f" G = {round(b.G, 4)} pu") print(f" B = {round(b.B, 4)} pu") print() @@ -181,7 +181,7 @@ def test_basic(): print("Losses:") for i in range(len(branches)): - print(f" - {branches[i]}: losses={1000*round(power_flow.results.losses[i], 3)} kVA") + print(f" - {branches[i]}: losses={1000 * round(power_flow.results.losses[i], 3)} kVA") print() equal = True @@ -230,7 +230,7 @@ def test_gridcal_basic_pi(): # Create static generators (with fixed power factor) M32 = StaticGenerator(name="M32", P=4.2, # MW - Q=0.0j) # MVAR + Q=0.0) # MVAR M32.bus = B_LV_M32 grid.add_static_generator(B_LV_M32, M32) @@ -242,7 +242,7 @@ def test_gridcal_basic_pi(): hv_nominal_voltage=100, # kV lv_nominal_voltage=10, # kV nominal_power=s, - copper_losses=complex_impedance(z, xr).real*s*1000/Sbase, + copper_losses=complex_impedance(z, xr).real * s * 1000 / Sbase, iron_losses=6.25, # kW no_load_current=0.5, # % short_circuit_voltage=z) @@ -255,7 +255,7 @@ def test_gridcal_basic_pi(): hv_nominal_voltage=10, # kV lv_nominal_voltage=0.6, # kV nominal_power=s, - copper_losses=complex_impedance(z, xr).real*s*1000/Sbase, + copper_losses=complex_impedance(z, xr).real * s * 1000 / Sbase, iron_losses=6.25, # kW no_load_current=0.5, # % short_circuit_voltage=z) @@ -299,7 +299,7 @@ def test_gridcal_basic_pi(): power_flow = PowerFlowDriver(grid, options) power_flow.run() - approx_volt = [round(100*abs(v), 1) for v in power_flow.results.voltage] + approx_volt = [round(100 * abs(v), 1) for v in power_flow.results.voltage] solution = [100.0, 99.5, 102.7, 102.8] # Expected solution from GridCal etap_sol = [100.0, 99.6, 102.7, 102.9] # ETAP 16.1.0, for reference (ignores magnetizing branch) @@ -320,7 +320,7 @@ def test_gridcal_basic_pi(): print(f" - {b}:") print(f" R = {round(b.R, 4)} pu") print(f" X = {round(b.X, 4)} pu") - print(f" X/R = {round(b.X/b.R, 1)}") + print(f" X/R = {round(b.X / b.R, 1)}") print(f" G = {round(b.G, 4)} pu") print(f" B = {round(b.B, 4)} pu") print() @@ -332,7 +332,7 @@ def test_gridcal_basic_pi(): print("Losses:") for i in range(len(branches)): - print(f" - {branches[i]}: losses={1000*round(power_flow.results.losses[i], 3)} kVA") + print(f" - {branches[i]}: losses={1000 * round(power_flow.results.losses[i], 3)} kVA") print() equal = True @@ -344,7 +344,6 @@ def test_gridcal_basic_pi(): if __name__ == '__main__': - test_basic() test_gridcal_basic_pi() diff --git a/src/tests/test_power_flow.py b/src/tests/test_power_flow.py index 9241d3de6..d4e1ffdac 100644 --- a/src/tests/test_power_flow.py +++ b/src/tests/test_power_flow.py @@ -369,4 +369,5 @@ def test_fubm(): results = driver.results vm = np.abs(results.voltage) expected_vm = np.array([1.1000, 1.0960, 1.0975, 1.1040, 1.1119, 1.1200]) - assert np.allclose(vm, expected_vm, rtol=1e-4) + ok = np.allclose(vm, expected_vm, rtol=1e-4) + assert ok diff --git a/src/trunk/acdc_pf/fubm_example.py b/src/trunk/acdc_pf/fubm_example.py index 2417ce78e..8b204b223 100644 --- a/src/trunk/acdc_pf/fubm_example.py +++ b/src/trunk/acdc_pf/fubm_example.py @@ -7,7 +7,7 @@ fname = './../../tests/data/grids/fubm_caseHVDC_vt.m' grid = gce.open_file(fname) -opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=3, solver_type=gce.SolverType.LM) +opt = gce.PowerFlowOptions(retry_with_other_methods=False, verbose=3, solver_type=gce.SolverType.NR) driver = gce.PowerFlowDriver(grid=grid, options=opt) driver.run() results = driver.results From 4eecbfbae61e62b0b32baf9a3c279aac00a9f435 Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 21 Aug 2024 15:18:13 +0100 Subject: [PATCH 195/218] refactored some tests --- .idea/workspace.xml | 678 ++++++++++-------- .../NumericalMethods/pf_basic_formulation.py | 4 - .../Utils}/zip_file_mgmt.py | 0 src/tests/ac_dc_power_flow.py | 40 -- src/tests/conftest.py | 30 - src/tests/demo_5_node.json | 601 ---------------- src/tests/download_stats.py | 44 +- src/tests/print_power_flow_results.py | 23 - ...trix_test.py => test_admittance_matrix.py} | 0 src/tests/test_api_helm.py | 3 - src/tests/test_continuation_power_flow.py | 2 +- .../{deep_copy_test.py => test_deep_copy.py} | 0 src/tests/test_demo_5_node.py | 8 +- .../{profiles_test.py => test_profiles.py} | 0 src/tests/test_time_series.py | 2 +- 15 files changed, 408 insertions(+), 1027 deletions(-) rename src/{tests => GridCalEngine/Utils}/zip_file_mgmt.py (100%) delete mode 100644 src/tests/ac_dc_power_flow.py delete mode 100644 src/tests/conftest.py delete mode 100644 src/tests/demo_5_node.json delete mode 100644 src/tests/print_power_flow_results.py rename src/tests/{admittance_matrix_test.py => test_admittance_matrix.py} (100%) rename src/tests/{deep_copy_test.py => test_deep_copy.py} (100%) rename src/tests/{profiles_test.py => test_profiles.py} (100%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 86a8acb6f..c078f1548 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,22 @@ - - - - - - - - - - - - - - - - + + + + - + + + + + + + - - - - - - + + - - + + - - @@ -1797,7 +1795,7 @@ @@ -1844,7 +1842,6 @@ - @@ -1869,7 +1866,8 @@ - @@ -2465,7 +2463,7 @@ - + @@ -2830,7 +2828,7 @@ - + diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index 3b88c5c6d..9e1dfdc31 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -4449,21 +4449,23 @@ def setupUi(self, mainWindow): self.menuActions.addAction(self.actionAdd_default_catalogue) self.menuActions.addAction(self.actionClear_stuff_running_right_now) self.menuActions.addAction(self.actionReset_console) - self.menuSimulations.addAction(self.actionInputs_analysis) + self.menuSimulations.addAction(self.actionactivate_time_series) + self.menuSimulations.addAction(self.actionEdit_simulation_time_limits) + self.menuSimulations.addSeparator() self.menuSimulations.addAction(self.actionPower_flow) - self.menuSimulations.addAction(self.actionPower_Flow_Time_series) - self.menuSimulations.addAction(self.actionStorage_location_suggestion) + self.menuSimulations.addAction(self.actionLinearAnalysis) + self.menuSimulations.addAction(self.actionSigma_analysis) + self.menuSimulations.addSeparator() self.menuSimulations.addAction(self.actionShort_Circuit) self.menuSimulations.addAction(self.actionVoltage_stability) - self.menuSimulations.addAction(self.actionSigma_analysis) self.menuSimulations.addSeparator() self.menuSimulations.addAction(self.actionOPF) - self.menuSimulations.addAction(self.actionOPF_time_series) - self.menuSimulations.addAction(self.actionOptimal_Net_Transfer_Capacity) - self.menuSimulations.addAction(self.actionOptimal_Net_Transfer_Capacity_Time_Series) self.menuSimulations.addAction(self.actionOpf_to_Power_flow) self.menuSimulations.addAction(self.actionSet_OPF_generation_to_profiles) self.menuSimulations.addSeparator() + self.menuSimulations.addAction(self.actionATC) + self.menuSimulations.addAction(self.actionOptimal_Net_Transfer_Capacity) + self.menuSimulations.addSeparator() self.menuSimulations.addAction(self.actionClustering) self.menuSimulations.addAction(self.actionUse_clustering) self.menuSimulations.addAction(self.actionFind_node_groups) @@ -4472,17 +4474,15 @@ def setupUi(self, mainWindow): self.menuSimulations.addAction(self.actionAdd_selected_as_new_investment) self.menuSimulations.addAction(self.actionBlackout_cascade) self.menuSimulations.addSeparator() - self.menuSimulations.addAction(self.actionLinearAnalysis) - self.menuSimulations.addAction(self.actionPTDF_time_series) self.menuSimulations.addAction(self.actionContingency_analysis) - self.menuSimulations.addAction(self.actionOTDF_time_series) self.menuSimulations.addAction(self.actionInitialize_contingencies) self.menuSimulations.addAction(self.actionAdd_selected_to_contingency) - self.menuSimulations.addAction(self.actionATC) - self.menuSimulations.addAction(self.actionATC_Time_Series) + self.menuSimulations.addSeparator() + self.menuSimulations.addAction(self.actionInputs_analysis) + self.menuSimulations.addAction(self.actionStorage_location_suggestion) + self.menuSimulations.addSeparator() self.menuModel.addAction(self.actionAuto_rate_branches) self.menuModel.addAction(self.actionDetect_transformers) - self.menuModel.addAction(self.actionEdit_simulation_time_limits) self.menuModel.addAction(self.actionProcess_topology) self.menuModel.addAction(self.actionDetect_substations) self.menuModel.addAction(self.actionFuse_devices) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index fa8d57443..f5c3de2c4 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -9657,21 +9657,23 @@ QProgressBar::chunk{ Simulations - + + + - - + + + - - - - + + + @@ -9680,14 +9682,13 @@ QProgressBar::chunk{ - - - - - + + + + @@ -9700,7 +9701,6 @@ QProgressBar::chunk{ - diff --git a/src/tests/newton_equivalence_utils.py b/src/tests/newton_equivalence_utils.py index 81523a4d7..2ebdaa621 100644 --- a/src/tests/newton_equivalence_utils.py +++ b/src/tests/newton_equivalence_utils.py @@ -10,7 +10,11 @@ def convert_bus_types(arr: List["npa.BusType"]): + """ + :param arr: + :return: + """ tpe = np.zeros(len(arr), dtype=int) for i, val in enumerate(arr): if val == npa.BusType.VD: diff --git a/src/tests/download_stats.py b/src/trunk/download_stats.py similarity index 100% rename from src/tests/download_stats.py rename to src/trunk/download_stats.py From fb5135e94b30786444bdf254e324b8f9ffc929aa Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 22 Aug 2024 12:09:38 +0100 Subject: [PATCH 197/218] Fixed bug: Not considering the generators is_controlled status --- .idea/workspace.xml | 147 +++++++++--------- .../Compilers/circuit_to_data.py | 31 ++-- 2 files changed, 89 insertions(+), 89 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index d4135eccb..73a24fbfd 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,10 +28,8 @@ - + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", - "Python tests.pytest for src.tests.test_load_save_load.test_load_save_load.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_demo_5_node.test_demo_5_node.executor": "Run", - "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", - "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", - "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_sparse2.test_mat_mat_mult.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_deep_copy.py.executor": "Run", - "Python tests.pytest in test_load_save_load.py.executor": "Debug", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_profiles.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.GridCalMain.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.download_stats.executor": "Run", - "Python.fubm_example.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + - - - - + + + + @@ -684,19 +682,19 @@ - - + + + + + - - - @@ -1450,6 +1448,7 @@ + 1656059954202 @@ -1794,7 +1793,7 @@ - @@ -1841,8 +1840,6 @@ - - @@ -1866,7 +1863,9 @@ - @@ -2404,24 +2403,34 @@ file://$PROJECT_DIR$/src/tests/test_power_flow.py - 305 + 350 + + file://$PROJECT_DIR$/src/GridCalEngine/Compilers/circuit_to_data.py + 476 + + + file://$PROJECT_DIR$/src/GridCalEngine/Devices/Parents/branch_parent.py + 355 + - - + - + + - + @@ -2433,8 +2442,8 @@ - + @@ -2445,8 +2454,8 @@ - + @@ -2455,14 +2464,14 @@ - - - + + + - + @@ -2491,8 +2500,8 @@ - + @@ -2521,6 +2530,7 @@ + @@ -2529,8 +2539,8 @@ - + @@ -2548,8 +2558,8 @@ - + @@ -2619,6 +2629,7 @@ + @@ -2827,13 +2838,13 @@ - + - + diff --git a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py index bffd5d2df..02700249f 100644 --- a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +++ b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py @@ -887,7 +887,7 @@ def get_gcdev_ac_transformers(cgmes_model: CgmesCircuit, gcdev_elm.winding1.X0 = x0 gcdev_elm.winding1.G0 = g0 gcdev_elm.winding1.B0 = b0 - gcdev_elm.winding1.rate = windings[0].ratedS + gcdev_elm.winding1.rate = float(windings[0].ratedS) gcdev_elm.winding1.cn_from = cn_1 gcdev_elm.winding1.cn_to = cn_2 @@ -900,7 +900,7 @@ def get_gcdev_ac_transformers(cgmes_model: CgmesCircuit, gcdev_elm.winding2.X0 = x0 gcdev_elm.winding2.G0 = g0 gcdev_elm.winding2.B0 = b0 - gcdev_elm.winding2.rate = windings[1].ratedS + gcdev_elm.winding2.rate = float(windings[1].ratedS) gcdev_elm.winding2.cn_from = cn_2 gcdev_elm.winding2.cn_to = cn_3 @@ -913,7 +913,7 @@ def get_gcdev_ac_transformers(cgmes_model: CgmesCircuit, gcdev_elm.winding3.X0 = x0 gcdev_elm.winding3.G0 = g0 gcdev_elm.winding3.B0 = b0 - gcdev_elm.winding3.rate = windings[2].ratedS + gcdev_elm.winding3.rate = float(windings[2].ratedS) gcdev_elm.winding3.cn_from = cn_3 gcdev_elm.winding3.cn_to = cn_1 From 2b096dc90eaad2d043bf4ed57d9c906c187d86de Mon Sep 17 00:00:00 2001 From: santi Date: Thu, 22 Aug 2024 12:33:39 +0100 Subject: [PATCH 200/218] Fixed cgmes setting non-float ratings --- src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py index 02700249f..f7a121dd0 100644 --- a/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py +++ b/src/GridCalEngine/IO/cim/cgmes/cgmes_to_gridcal.py @@ -1203,6 +1203,7 @@ def get_gcdev_voltage_levels(cgmes_model: CgmesCircuit, gcdev_model.add_voltage_level(gcdev_elm) volt_lev_dict[gcdev_elm.idtag] = gcdev_elm else: + # TODO: this is very weird and cgmes_elm might not be defined logger.add_error(msg='Base voltage not found', device=str(cgmes_elm.BaseVoltage)) return volt_lev_dict From f800cd06b8394fca7bf8c4a38046ae5387cc8f46 Mon Sep 17 00:00:00 2001 From: santi Date: Sat, 24 Aug 2024 15:38:18 +0100 Subject: [PATCH 201/218] Simplified the power flow code --- .idea/workspace.xml | 213 ++-- examples/helm_run.py | 4 +- src/GridCal/Gui/Main/MainWindow.py | 16 +- src/GridCal/Gui/Main/MainWindow.ui | 21 +- .../Gui/Main/SubClasses/simulations.py | 79 +- .../Compilers/circuit_to_data.py | 201 ++-- .../DataStructures/numerical_circuit.py | 244 +++-- .../continuation_power_flow.py | 5 +- .../continuation_power_flow_driver.py | 1 + .../PowerFlow/NumericalMethods/__init__.py | 6 - .../NumericalMethods/discrete_controls.py | 400 +------- .../NumericalMethods/fast_decoupled.py | 56 +- .../NumericalMethods/gauss_power_flow.py | 49 +- .../NumericalMethods/helm_power_flow.py | 16 +- .../NumericalMethods/linearized_power_flow.py | 10 +- .../newton_raphson_current.py | 189 ---- .../newton_raphson_general.py | 966 ------------------ .../pf_advanced_formulation.py | 57 +- .../NumericalMethods/pf_basic_formulation.py | 45 +- .../PowerFlow/power_flow_options.py | 12 +- .../PowerFlow/power_flow_results.py | 4 +- .../PowerFlow/power_flow_worker.py | 804 +++++++-------- .../Topology/simulation_indices.py | 8 +- src/GridCalEngine/enumerations.py | 2 - src/tests/test_nodal_capacity.py | 4 +- src/tests/test_power_flow.py | 175 ++-- src/trunk/acdc_pf/generalised_pf_run.py | 4 +- .../acdc_pf}/generalised_power_flow.py | 0 .../levenberg_marquardt.py | 0 .../old_pf_implementations}/newton_raphson.py | 0 .../newton_raphson_decoupled.py | 0 .../newton_raphson_ode.py | 0 32 files changed, 1138 insertions(+), 2453 deletions(-) delete mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_current.py delete mode 100644 src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/newton_raphson_general.py rename src/{GridCalEngine/Simulations/PowerFlow/NumericalMethods => trunk/acdc_pf}/generalised_power_flow.py (100%) rename src/{GridCalEngine/Simulations/PowerFlow/NumericalMethods => trunk/old_pf_implementations}/levenberg_marquardt.py (100%) rename src/{GridCalEngine/Simulations/PowerFlow/NumericalMethods => trunk/old_pf_implementations}/newton_raphson.py (100%) rename src/{GridCalEngine/Simulations/PowerFlow/NumericalMethods => trunk/old_pf_implementations}/newton_raphson_decoupled.py (100%) rename src/{GridCalEngine/Simulations/PowerFlow/NumericalMethods => trunk/old_pf_implementations}/newton_raphson_ode.py (100%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 12a871586..a5df6f62c 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,39 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + - - - - - + - + + + + - - - - + @@ -716,11 +697,11 @@ + - @@ -1476,7 +1457,8 @@ - + + 1656059954202 @@ -1821,7 +1803,7 @@ - @@ -1868,7 +1850,6 @@ - @@ -1893,7 +1874,8 @@ - @@ -2420,7 +2402,7 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 675 + 751 @@ -2429,26 +2411,21 @@ 325 - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 247 - - - + - + + - + @@ -2460,8 +2437,8 @@ - + @@ -2472,8 +2449,8 @@ - + @@ -2482,14 +2459,14 @@ - - - + + + - + @@ -2518,8 +2495,8 @@ - + @@ -2559,8 +2536,8 @@ - + @@ -2578,8 +2555,8 @@ - + @@ -2861,13 +2838,13 @@ - + - + diff --git a/src/GridCal/Gui/Main/SubClasses/io.py b/src/GridCal/Gui/Main/SubClasses/io.py index 6748b3215..2f839a1ea 100644 --- a/src/GridCal/Gui/Main/SubClasses/io.py +++ b/src/GridCal/Gui/Main/SubClasses/io.py @@ -340,6 +340,10 @@ def post_open_file(self) -> None: # create the diagrams that came with the file self.create_circuit_stored_diagrams() + if len(self.diagram_widgets_list) > 0: + diagram = self.diagram_widgets_list[0] + self.set_diagram_widget(diagram) + else: if self.circuit.get_bus_number() > 1500: quit_msg = ("The grid is quite large, hence the schematic might be slow.\n" diff --git a/src/GridCalEngine/DataStructures/numerical_circuit.py b/src/GridCalEngine/DataStructures/numerical_circuit.py index 14c5666d3..3543ea9cc 100644 --- a/src/GridCalEngine/DataStructures/numerical_circuit.py +++ b/src/GridCalEngine/DataStructures/numerical_circuit.py @@ -1387,7 +1387,8 @@ def get_structure(self, structure_type: str) -> pd.DataFrame: Qmin=self.Qmin_bus, Qmax=self.Qmax_bus, nc=self, - options=PowerFlowOptions()) + options=PowerFlowOptions(), + logger=Logger()) if structure_type == 'V': df = pd.DataFrame( @@ -2018,7 +2019,6 @@ def compile_numerical_circuit_at(circuit: MultiCircuit, use_stored_guess=False, bus_dict: Union[Dict[Bus, int], None] = None, areas_dict: Union[Dict[Area, int], None] = None, - control_q: bool = True, control_taps_modules: bool = True, control_taps_phase: bool = True, control_remote_voltage: bool = True, @@ -2033,7 +2033,6 @@ def compile_numerical_circuit_at(circuit: MultiCircuit, :param use_stored_guess: use the storage voltage guess? :param bus_dict (optional) Dict[Bus, int] dictionary :param areas_dict (optional) Dict[Area, int] dictionary - :param control_q: control q? :param control_taps_modules: control taps modules? :param control_taps_phase: control taps phase? :param control_remote_voltage: control remote voltage? diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py index 370b8e83a..9d4b3940e 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py @@ -14,17 +14,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from typing import Tuple, List +from typing import Tuple, List, Callable import numpy as np import pandas as pd from numba import njit +from scipy.sparse import lil_matrix, csc_matrix from GridCalEngine.Topology.admittance_matrices import compute_admittances from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions from GridCalEngine.DataStructures.numerical_circuit import NumericalCircuit import GridCalEngine.Simulations.Derivatives.csc_derivatives as deriv from GridCalEngine.Topology.simulation_indices import compile_types -from GridCalEngine.Utils.NumericalMethods.autodiff import calc_autodiff_jacobian from GridCalEngine.Utils.Sparse.csc2 import CSC, CxCSC, sp_slice, csc_stack_2d_ff, scipy_to_mat from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import expand from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import compute_fx_error @@ -35,7 +35,7 @@ from GridCalEngine.Simulations.PowerFlow.NumericalMethods.common_functions import (compute_zip_power, compute_power, polar_to_rect, get_Sf, get_St, get_It) -from GridCalEngine.basic_structures import Vec, IntVec, CxVec +from GridCalEngine.basic_structures import Vec, IntVec, CxVec, Logger @njit() @@ -70,7 +70,7 @@ def adv_jacobian(nbus: int, ytf: CxVec, ytt: CxVec) -> CSC: """ - + Compute the advanced jacobian :param nbus: :param nbr: :param idx_dva: @@ -156,27 +156,60 @@ def adv_jacobian(nbus: int, return J +def calc_autodiff_jacobian(func: Callable[[Vec], Vec], x: Vec, h=1e-8) -> csc_matrix: + """ + Compute the Jacobian matrix of `func` at `x` using finite differences. + + :param func: function accepting a vector x and args, and returning either a vector or a + tuple where the first argument is a vector and the second. + :param x: Point at which to evaluate the Jacobian (numpy array). + :param h: Small step for finite difference. + :return: Jacobian matrix as a CSC matrix. + """ + nx = len(x) + f0 = func(x) + + n_rows = len(f0) + + jac = lil_matrix((n_rows, nx)) + + for j in range(nx): + x_plus_h = np.copy(x) + x_plus_h[j] += h + f_plus_h = func(x_plus_h) + row = (f_plus_h - f0) / h + for i in range(n_rows): + if row[i] != 0.0: + jac[i, j] = row[i] + + return jac.tocsc() + + class PfAdvancedFormulation(PfFormulationTemplate): def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, Qmin: Vec, Qmax: Vec, nc: NumericalCircuit, - options: PowerFlowOptions): + options: PowerFlowOptions, + logger: Logger): """ - - :param V0: - :param S0: - :param I0: - :param Y0: - :param Qmin: - :param Qmax: - :param nc: - :param options: + Constructor + :param V0: Initial voltage solution + :param S0: Set power injections + :param I0: Set current injections + :param Y0: Set admittance injections + :param Qmin: Minimum reactive power per bus + :param Qmax: Maximum reactive power per bus + :param nc: NumericalCircuit + :param options: PowerFlowOptions + :param logger: Logger (modified in-place) """ PfFormulationTemplate.__init__(self, V0=V0, options=options) self.nc: NumericalCircuit = nc + self.logger: Logger = logger + self.S0: CxVec = S0 self.I0: CxVec = I0 self.Y0: CxVec = Y0 @@ -247,14 +280,13 @@ def __init__(self, V0: CxVec, S0: CxVec, I0: CxVec, Y0: CxVec, if not len(self.pqv) >= len(k_v_m): raise ValueError("k_v_m indices must be the same size as pqv indices!") - def update_bus_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec): + def update_bus_types(self, pq: IntVec, pv: IntVec, pqv: IntVec, p: IntVec) -> None: """ - - :param pq: - :param pv: - :param pqv: - :param p: - :return: + Update the bus types + :param pq: Array of PQ indices + :param pv: Array of PV indices + :param pqv: Array of PQV indices + :param p: Array of P indices """ self.pq = pq self.pv = pv @@ -373,7 +405,7 @@ def analyze_branch_controls(self) -> List[int]: return k_v_m - def x2var(self, x: Vec): + def x2var(self, x: Vec) -> None: """ Convert X to decission variables :param x: solution vector @@ -420,7 +452,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve Update step :param x: Solution vector :param update_controls: - :return: error, converged?, x + :return: error, converged?, x, fx """ # set the problem state self.x2var(x) @@ -490,9 +522,6 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # compute the rror self._error = compute_fx_error(self._f) - # converged? - self._converged = self._error < self.options.tolerance - if self.options.verbose > 1: print("Vm:", self.Vm) print("Va:", self.Va) @@ -501,14 +530,15 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve print("m:", self.m) print("Gsw:", self.Gsw) - # review reactive power limits - # it is only worth checking Q limits with a low error - # since with higher errors, the Q values may be far from realistic - # finally, the Q control only makes sense if there are pv nodes - if update_controls and self._error < 1e-2: + # Update controls only below a certain error + if update_controls and self._error < self._controls_tol: any_change = False + branch_ctrl_change = False - # update Q limits control + # review reactive power limits + # it is only worth checking Q limits with a low error + # since with higher errors, the Q values may be far from realistic + # finally, the Q control only makes sense if there are pv nodes if self.options.control_Q and (len(self.pv) + len(self.p)) > 0: # check and adjust the reactive power @@ -539,13 +569,59 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # Update the objective power to reflect the slack distribution self.S0 += delta - if any_change: + # update the tap module control + if self.options.control_taps_modules: + for i, k in enumerate(self.idx_dm): + if self.m[i] < self.nc.branch_data.tap_module_min[k]: + self.m[i] = self.nc.branch_data.tap_module_min[k] + self.tap_module_control_mode[k] = TapModuleControl.fixed + branch_ctrl_change = True + self.logger.add_info("Min tap module reached", + device=self.nc.branch_data.names[k], + value=self.m[i]) + + if self.m[i] > self.nc.branch_data.tap_module_max[k]: + self.m[i] = self.nc.branch_data.tap_module_max[k] + self.tap_module_control_mode[k] = TapModuleControl.fixed + branch_ctrl_change = True + self.logger.add_info("Max tap module reached", + device=self.nc.branch_data.names[k], + value=self.m[i]) + + # update the tap phase control + if self.options.control_taps_phase: + for i, k in enumerate(self.idx_dtau): + if self.tau[i] < self.nc.branch_data.tap_angle_min[k]: + self.tau[i] = self.nc.branch_data.tap_angle_min[k] + self.tap_phase_control_mode[k] = TapPhaseControl.fixed + branch_ctrl_change = True + self.logger.add_info("Min tap phase reached", + device=self.nc.branch_data.names[k], + value=self.tau[i]) + + if self.tau[i] > self.nc.branch_data.tap_angle_max[k]: + self.tau[i] = self.nc.branch_data.tap_angle_max[k] + self.tap_phase_control_mode[k] = TapPhaseControl.fixed + branch_ctrl_change = True + self.logger.add_info("Max tap phase reached", + device=self.nc.branch_data.names[k], + value=self.tau[i]) + + if branch_ctrl_change: + k_v_m = self.analyze_branch_controls() + vd, pq, pv, pqv, p, self.no_slack = compile_types(Pbus=self.nc.Sbus.real, types=self.bus_types) + self.update_bus_types(pq=pq, pv=pv, pqv=pqv, p=p) + + if any_change or branch_ctrl_change: # recompute the error based on the new Scalc and S0 self._f = self.fx() # compute the rror self._error = compute_fx_error(self._f) + # converged? + self._converged = self._error < self.options.tolerance + return self._error, self._converged, x, self.f def fx(self) -> Vec: @@ -582,7 +658,7 @@ def fx(self) -> Vec: ] return self._f - def fx_diff(self, x: Vec): + def fx_diff(self, x: Vec) -> Vec: """ Fx for autodiff :param x: solutions vector @@ -758,21 +834,13 @@ def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResul :param iterations: Iteration number :return: NumericPowerFlowResults """ - m = np.ones(self.nc.nbr, dtype=float) - tau = np.zeros(self.nc.nbr, dtype=float) - beq = np.zeros(self.nc.nbr, dtype=float) - - m[self.idx_dm] = self.m - tau[self.idx_dtau] = self.tau - beq[self.idx_dbeq] = self.beq - return NumericPowerFlowResults(V=self.V, converged=self.converged, norm_f=self.error, Scalc=self.Scalc, - m=m, - tau=tau, - Beq=beq, + m=expand(self.nc.nbr, self.m, self.idx_dm, 1.0), + tau=expand(self.nc.nbr, self.tau, self.idx_tau, 0.0), + Beq=expand(self.nc.nbr, self.beq, self.idx_dbeq, 0.0), Ybus=self.adm.Ybus, Yf=self.adm.Yf, Yt=self.adm.Yt, diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py index 4561da902..4a447eb01 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_basic_formulation.py @@ -143,14 +143,11 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # compute the rror self._error = compute_fx_error(self._f) - # converged? - self._converged = self._error < self.options.tolerance - # review reactive power limits # it is only worth checking Q limits with a low error # since with higher errors, the Q values may be far from realistic # finally, the Q control only makes sense if there are pv nodes - if update_controls and self._error < 1e-2: + if update_controls and self._error < self._controls_tol: any_change = False # update Q limits control @@ -191,6 +188,9 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve # compute the rror self._error = compute_fx_error(self._f) + # converged? + self._converged = self._error < self.options.tolerance + return self._error, self._converged, x, self.f def fx(self) -> Vec: diff --git a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py index 8defc4731..a370ae31d 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py +++ b/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_formulation_template.py @@ -17,12 +17,11 @@ from typing import Tuple import numpy as np import pandas as pd -from GridCalEngine.basic_structures import Vec, IntVec, CxVec +from GridCalEngine.basic_structures import Vec, CxVec from GridCalEngine.Utils.Sparse.csc2 import CSC, spsolve_csc from GridCalEngine.Simulations.PowerFlow.power_flow_results import NumericPowerFlowResults from GridCalEngine.Simulations.PowerFlow.power_flow_options import PowerFlowOptions -# pd.set_option('display.precision', 4) pd.set_option('display.float_format', '{:.4f}'.format) @@ -42,17 +41,17 @@ def __init__(self, V0: CxVec, options: PowerFlowOptions): self._Vm = np.abs(V0) self._Va = np.angle(V0) - self.Scalc = np.zeros(len(V0), dtype=complex) + self.Scalc: CxVec = np.zeros(len(V0), dtype=complex) - self.options = options + self.options: PowerFlowOptions = options - self._f = np.zeros(0) + self._f: Vec = np.zeros(0) self._error: float = 0.0 self._converged: bool = False - + self._controls_tol: float = 1.0e-2 # min(1e-2, self.options.tolerance * 100.0) @property def converged(self) -> bool: @@ -78,8 +77,6 @@ def f(self) -> Vec: """ return self._f - - @property def Va(self) -> Vec: """ @@ -116,7 +113,7 @@ def update(self, x: Vec, update_controls: bool = False) -> Tuple[float, bool, Ve :param update_controls: Update controls :return: error, converged, x, f """ - return self.error, self.converged, np.zeros(len(self.V)), self._f + return self.error, self.converged, self.var2x(), self._f def size(self) -> int: """ @@ -180,4 +177,4 @@ def get_solution(self, elapsed: float, iterations: int) -> NumericPowerFlowResul :return: """ - pass \ No newline at end of file + pass diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py index a97c6eff8..bbb7cc4ef 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_driver.py @@ -179,20 +179,20 @@ def run(self) -> None: n = len(convergence_report.error_) for i in range(n): self.logger.add_info(msg=f"Method {convergence_report.methods_[i]}", - device=f"Converged", + device_property=f"Converged", value=convergence_report.converged_[i], expected_value="True") self.logger.add_info(msg=f"Method {convergence_report.methods_[i]}", - device="Elapsed (s)", - value=convergence_report.elapsed_[i]) + device_property="Elapsed (s)", + value='{:.4f}'.format(convergence_report.elapsed_[i])) self.logger.add_info(msg=f"Method {convergence_report.methods_[i]}", - device="Error (p.u.)", - value=convergence_report.error_[i], - expected_value=self.options.tolerance) + device_property="Error (p.u.)", + value='{:.4e}'.format(convergence_report.error_[i]), + expected_value=f"<{self.options.tolerance}") self.logger.add_info(msg=f"Method {convergence_report.methods_[i]}", - device="Iterations", + device_property="Iterations", value=convergence_report.iterations_[i], - expected_value=self.options.max_iter) + expected_value=f"<{self.options.max_iter}") if self.options.generate_report: self.add_report() diff --git a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py index e391b80c4..f6b17d2e6 100644 --- a/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py +++ b/src/GridCalEngine/Simulations/PowerFlow/power_flow_worker.py @@ -257,7 +257,8 @@ def solve(nc: NumericalCircuit, Qmin=Qmin, Qmax=Qmax, nc=nc, - options=options) + options=options, + logger=logger) solution = levenberg_marquadt_fx(problem=problem, tol=options.tolerance, @@ -317,7 +318,8 @@ def solve(nc: NumericalCircuit, Qmin=Qmin, Qmax=Qmax, nc=nc, - options=options) + options=options, + logger=logger) solution = newton_raphson_fx(problem=problem, tol=options.tolerance, @@ -355,7 +357,8 @@ def solve(nc: NumericalCircuit, Qmin=Qmin, Qmax=Qmax, nc=nc, - options=options) + options=options, + logger=logger) solution = powell_fx(problem=problem, tol=options.tolerance, @@ -771,7 +774,6 @@ def multi_island_pf(multi_circuit: MultiCircuit, use_stored_guess=options.use_stored_guess, bus_dict=bus_dict, areas_dict=areas_dict, - control_q=options.control_Q, control_taps_modules=options.control_taps_modules, control_taps_phase=options.control_taps_phase, control_remote_voltage=options.control_remote_voltage, diff --git a/src/GridCalEngine/Simulations/driver_template.py b/src/GridCalEngine/Simulations/driver_template.py index 0e7661843..99ba35e3f 100644 --- a/src/GridCalEngine/Simulations/driver_template.py +++ b/src/GridCalEngine/Simulations/driver_template.py @@ -88,7 +88,7 @@ def tic(self, skip_logger=False): if not skip_logger: self.logger.add_info(msg="Elapsed total (s)", - device="Started") + device_property="Started") def toc(self, skip_logger=False): """ @@ -99,8 +99,8 @@ def toc(self, skip_logger=False): if not skip_logger: self.logger.add_info(msg="Elapsed total (s)", - device="Ended", - value=self.elapsed) + device_property="Ended (s)", + value='{:.4f}'.format(self.elapsed)) def get_steps(self): """ From 2de4b289322432a59fe2a0769ce3953b9fbdd970 Mon Sep 17 00:00:00 2001 From: santi Date: Sun, 25 Aug 2024 12:53:56 +0100 Subject: [PATCH 203/218] fixed typo --- .idea/workspace.xml | 27 +++++++------------ .../pf_advanced_formulation.py | 2 +- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c90e922a5..068839d50 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,16 +28,7 @@ - + + + + + + + + + - + + + + + + + - - - - - - + + - - - + + + - - @@ -1449,7 +1469,8 @@ - + + 1656059954202 @@ -1794,7 +1815,7 @@ - @@ -1841,7 +1862,6 @@ - @@ -1866,7 +1886,8 @@ - @@ -2402,21 +2423,26 @@ 325 - - + - + + - + @@ -2428,8 +2454,8 @@ - + @@ -2440,8 +2466,8 @@ - + @@ -2450,14 +2476,14 @@ - - - + + + - + @@ -2486,8 +2512,8 @@ - + @@ -2527,8 +2553,8 @@ - + @@ -2546,8 +2572,8 @@ - + @@ -2562,6 +2588,7 @@ + @@ -2602,7 +2629,7 @@ - + @@ -2829,13 +2856,13 @@ - + - + diff --git a/requirements.txt b/requirements.txt index d884fcea8..3d13bbbd0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -33,6 +33,7 @@ fastapi starlette uvicorn websockets +cryptography opencv-python setuptools packaging \ No newline at end of file diff --git a/src/GridCal/Session/server_driver.py b/src/GridCal/Session/server_driver.py index 5572d9cc6..cb15f3dc2 100644 --- a/src/GridCal/Session/server_driver.py +++ b/src/GridCal/Session/server_driver.py @@ -14,17 +14,20 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - +import os import time import requests import asyncio +from urllib3 import disable_warnings, exceptions from typing import Callable, Dict, Union, List, Any from PySide6.QtCore import QThread, Signal from PySide6 import QtCore from GridCalEngine.basic_structures import Logger +from GridCalEngine.IO.file_system import get_create_gridcal_folder from GridCalEngine.IO.gridcal.remote import gather_model_as_jsons_for_communication, RemoteInstruction, RemoteJob from GridCalEngine.Devices.multi_circuit import MultiCircuit +disable_warnings(exceptions.InsecureRequestWarning) async def send_json_data(json_data: Dict[str, Union[str, Dict[str, Dict[str, str]]]], endpoint_url: str): """ @@ -40,6 +43,14 @@ async def send_json_data(json_data: Dict[str, Union[str, Dict[str, Dict[str, str return response.json() +def get_certificate_path() -> str: + """ + + :return: + """ + return os.path.join(get_create_gridcal_folder(), "server_cert.pem") + + class JobsModel(QtCore.QAbstractTableModel): """ Class to populate a Qt table view with a pandas data frame @@ -186,6 +197,9 @@ def __init__(self, url: str, port: int, pwd: str, sleep_time: int = 2, status_fu self.data_model = JobsModel() + self._loaded_certificate = False + self._certificate_path = os.path.join(get_create_gridcal_folder(), "server_cert.pem") + self.__cancel__ = False self.__pause__ = False @@ -220,7 +234,7 @@ def base_url(self): Base URL of the service :return: """ - return f"http://{self.url}:{self.port}" + return f"https://{self.url}:{self.port}" def is_running(self) -> bool: """ @@ -229,17 +243,55 @@ def is_running(self) -> bool: """ return self.__running__ + def get_certificate(self) -> bool: + """ + Try connecting to the server + :return: ok? + """ + # Make a GET request to the root endpoint + try: + response = requests.get(f"{self.base_url()}/get_cert", + headers={"API-Key": self.pwd}, + verify=False, + timeout=2) + + # Save the certificate to a file + + with open(self._certificate_path, "wb") as cert_file: + cert_file.write(response.content) + + # Check if the request was successful + if response.status_code == 200: + # Print the response body + # print("Response Body:", response.json()) + # self.data_model.parse_data(data=response.json()) + return True + else: + # Print error message + self.logger.add_error(msg=f"Response error", value=response.text) + return False + except ConnectionError as e: + self.logger.add_error(msg=f"Connection error", value=str(e)) + return False + except Exception as e: + self.logger.add_error(msg=f"General exception error", value=str(e)) + return False + def server_connect(self) -> bool: """ Try connecting to the server :return: ok? """ + + # get the SSL certificate (only once per class instance) + if not self._loaded_certificate: + self._loaded_certificate = self.get_certificate() + # Make a GET request to the root endpoint try: response = requests.get(f"{self.base_url()}/", - headers={ - "API-Key": self.pwd - }, + headers={"API-Key": self.pwd}, + verify=self._certificate_path, timeout=2) # Check if the request was successful @@ -266,9 +318,8 @@ def get_jobs(self) -> bool: # Make a GET request to the root endpoint try: response = requests.get(f"{self.base_url()}/jobs_list", - headers={ - "API-Key": self.pwd - }, + headers={"API-Key": self.pwd}, + verify=self._certificate_path, timeout=2) # Check if the request was successful @@ -348,7 +399,7 @@ def download_results(self, job_id: str, api_key: str, local_filename: str): chunk_size = 1024 * 1024 # 1 MB sent = 0 # Stream the download to avoid loading the entire file into memory - with requests.get(url, headers=headers, stream=True) as response: + with requests.get(url, headers=headers, stream=True, verify=self._certificate_path) as response: if response.status_code == 200: @@ -395,6 +446,7 @@ def run(self) -> None: self.__pause__ = False self.report_status("Trying to connect") + self._loaded_certificate = False # set to false, so that we force re-download ok = self.server_connect() if ok: diff --git a/src/GridCalServer/endpoints.py b/src/GridCalServer/endpoints.py index 1371dead7..ef47173ac 100644 --- a/src/GridCalServer/endpoints.py +++ b/src/GridCalServer/endpoints.py @@ -71,6 +71,16 @@ def verify_api_key(api_key: str = Header(None)): raise HTTPException(status_code=403, detail="Invalid API Key") +@app.get("/get_cert") +def get_cert(): + """ + Get the certificate from the server + :return: + """ + # Serve the certificate file + return FileResponse("cert.pem", media_type="application/x-pem-file", filename="cert.pem") + + @app.get("/") async def read_root(): """ @@ -260,6 +270,17 @@ def iterfile(chunk_size=1024 * 1024): if __name__ == "__main__": import uvicorn + from GridCalServer.generate_ssl_key import generate_ssl_certificate # uvicorn.run(app, host="0.0.0.0", port=8000, ssl_keyfile="key.pem", ssl_certfile="cert.pem") - uvicorn.run(app, host="0.0.0.0", port=8000) + # uvicorn.run(app, host="0.0.0.0", port=8000) + + key_fname = "key.pem" + cert_fname = "cert.pem" + host = "0.0.0.0" + port = 8080 + + if not os.path.exists(key_fname) or not os.path.exists(cert_fname): + generate_ssl_certificate(key_fname=key_fname, cert_fname=cert_fname) + + uvicorn.run(app, host=host, port=port, ssl_keyfile=key_fname, ssl_certfile=cert_fname) diff --git a/src/GridCalServer/generate_ssl_key.py b/src/GridCalServer/generate_ssl_key.py new file mode 100644 index 000000000..8763f176e --- /dev/null +++ b/src/GridCalServer/generate_ssl_key.py @@ -0,0 +1,81 @@ +# This file is part of GridCal. +# +# GridCal is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GridCal is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GridCal. If not, see . +from cryptography import x509 +from cryptography.x509.oid import NameOID +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes, serialization +from cryptography.hazmat.primitives.asymmetric import rsa +import datetime + + +def generate_ssl_certificate(key_fname="key.pem", cert_fname="cert.pem"): + """ + Generates a new SSL certificate and saves it to a file + :param key_fname: + :param cert_fname: + :return: + """ + # Generate a private key + private_key = rsa.generate_private_key( + public_exponent=65537, + key_size=2048, + backend=default_backend() + ) + + # Write the private key to a file + with open(key_fname, "wb") as key_file: + key_file.write(private_key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption() + )) + + # Define certificate subject and issuer details + subject = issuer = x509.Name([ + x509.NameAttribute(NameOID.COUNTRY_NAME, u"ES"), + x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, u"Las Palmas"), + x509.NameAttribute(NameOID.LOCALITY_NAME, u"San Francisco"), + x509.NameAttribute(NameOID.ORGANIZATION_NAME, u"GridCal"), + x509.NameAttribute(NameOID.COMMON_NAME, u"localhost"), + ]) + + # Build the certificate + cert = x509.CertificateBuilder().subject_name( + subject + ).issuer_name( + issuer + ).public_key( + private_key.public_key() + ).serial_number( + x509.random_serial_number() + ).not_valid_before( + datetime.datetime.utcnow() + ).not_valid_after( + # Certificate is valid for 365 days + datetime.datetime.utcnow() + datetime.timedelta(days=365) + ).add_extension( + x509.SubjectAlternativeName([x509.DNSName(u"localhost")]), + critical=False, + ).sign(private_key, hashes.SHA256(), default_backend()) + + # Write the certificate to a file + with open(cert_fname, "wb") as cert_file: + cert_file.write(cert.public_bytes(serialization.Encoding.PEM)) + + print("SSL certificate and key have been generated.") + + +if __name__ == "__main__": + generate_ssl_certificate() diff --git a/src/GridCalServer/run.py b/src/GridCalServer/run.py index 49768d8e7..85ca32c0a 100644 --- a/src/GridCalServer/run.py +++ b/src/GridCalServer/run.py @@ -21,16 +21,23 @@ sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, PACKAGE_PARENT))) from GridCalServer.__version__ import about_msg from GridCalServer.endpoints import app +from GridCalServer.generate_ssl_key import generate_ssl_certificate - -def start_server(): +def start_server(key_fname: str = "key.pem", cert_fname: str = "cert.pem", host: str = "0.0.0.0", port: int = 8000): """ + :param key_fname: + :param cert_fname: + :param host: + :param port: :return: """ - uvicorn.run(app, host="0.0.0.0", port=8000, ssl_keyfile="key.pem", ssl_certfile="cert.pem") + if not os.path.exists(key_fname) or not os.path.exists(cert_fname): + generate_ssl_certificate(key_fname=key_fname, cert_fname=cert_fname) + + uvicorn.run(app, host=host, port=port, ssl_keyfile=key_fname, ssl_certfile=cert_fname) if __name__ == "__main__": diff --git a/src/GridCalServer/setup.py b/src/GridCalServer/setup.py index 2b9aa920b..49749f58a 100644 --- a/src/GridCalServer/setup.py +++ b/src/GridCalServer/setup.py @@ -77,6 +77,7 @@ "fastapi", "uvicorn", "websockets", + "cryptography", "GridCalEngine==" + __GridCalServer_VERSION__, # the GridCalEngine version must be exactly the same ] From 81d99d018b40a8e2b84bc17d0cdbb6e4082c7b60 Mon Sep 17 00:00:00 2001 From: santi Date: Mon, 26 Aug 2024 17:50:27 +0100 Subject: [PATCH 205/218] Updated incorrect license text --- .idea/workspace.xml | 25 ++++++++------------ src/GridCal/ExecuteGridCal.py | 22 ++++++++++-------- src/GridCal/Session/server_driver.py | 17 ++++++++++---- src/GridCalServer/generate_ssl_key.py | 22 ++++++++++-------- src/GridCalServer/run.py | 33 ++++++++++++++------------- 5 files changed, 62 insertions(+), 57 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 7ee4dc22e..477e2b619 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,12 @@ - + - - - - + + @@ -154,21 +153,16 @@ "Python tests.pytest for src.tests.test_cgmes_to_gridcal_ac_transformers.test_ac_transformers3w.executor": "Debug", "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", "Python tests.pytest for src.tests.test_load_save_load.test_load_save_load.executor": "Debug", - "Python tests.pytest for src.tests.test_power_flow.executor": "Run", - "Python tests.pytest for src.tests.test_power_flow.test_controllable_shunt.executor": "Run", - "Python tests.pytest for src.tests.test_tutorials.test_define_grid_from_scratch_with_profiles.executor": "Debug", "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", "Python tests.pytest for test_demo_5_node.test_demo_5_node.executor": "Run", "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", - "Python tests.pytest for test_nodal_capacity.test_linear_vs_nonlinear_ncap.executor": "Run", "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Debug", "Python tests.pytest for test_power_flow.test_voltage_local_control_with_generation.executor": "Debug", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Debug", "Python tests.pytest for test_sparse2.test_mat_mat_mult.executor": "Run", "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", @@ -179,19 +173,16 @@ "Python tests.pytest in test_power_flow.py.executor": "Run", "Python tests.pytest in test_profiles.py.executor": "Run", "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in test_transformer_controls.py.executor": "Run", "Python tests.pytest in tests.executor": "Run", "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", + "Python.ExecuteGridCal.executor": "Debug", "Python.GridCalMain.executor": "Run", "Python.cgmes_rdfs_graph.executor": "Run", "Python.download_stats.executor": "Run", "Python.fubm_example.executor": "Run", - "Python.generate_ssl_key.executor": "Run", "Python.new_circuit_objects.executor": "Run", "Python.pymoo_example.executor": "Debug", "Python.raw_imp_exp_test.executor": "Run", - "Python.run.executor": "Run", "Python.update_gui_file.executor": "Run", "Python.upload_to_pypi.executor": "Run", "RunOnceActivity.OpenProjectViewOnStart": "true", @@ -223,11 +214,11 @@ - - + + @@ -252,6 +243,50 @@ - @@ -1464,11 +1449,7 @@ - - - - - + 1656059954202 @@ -1813,7 +1794,7 @@ - @@ -1860,6 +1841,11 @@ + + + + + @@ -1880,12 +1866,7 @@ - - - - - - @@ -2385,6 +2366,11 @@ 255 @@ -2429,8 +2430,8 @@ + - @@ -2451,7 +2452,7 @@ - + @@ -2475,7 +2476,7 @@ - + @@ -2521,7 +2522,6 @@ - @@ -2533,7 +2533,6 @@ - @@ -2581,7 +2580,6 @@ - @@ -2622,15 +2620,14 @@ - + - - + @@ -2644,7 +2641,6 @@ - @@ -2696,7 +2692,7 @@ - + @@ -2836,7 +2832,6 @@ - @@ -2849,13 +2844,13 @@ - + - + diff --git a/src/GridCalEngine/Devices/Branches/line.py b/src/GridCalEngine/Devices/Branches/line.py index a1a2a444b..57bb31b77 100644 --- a/src/GridCalEngine/Devices/Branches/line.py +++ b/src/GridCalEngine/Devices/Branches/line.py @@ -140,7 +140,7 @@ def __init__(self, bus_from: Bus = None, bus_to: Bus = None, cn_from: Connectivi # association with various templates self.possible_tower_types: Associations = Associations(device_type=DeviceType.OverheadLineTypeDevice) - self.possible_undergroud_line_types: Associations = Associations(device_type=DeviceType.UnderGroundLineDevice) + self.possible_underground_line_types: Associations = Associations(device_type=DeviceType.UnderGroundLineDevice) self.possible_sequence_line_types: Associations = Associations(device_type=DeviceType.SequenceLineDevice) # Line locations From d99cf64783a9223f067d9380d13c1da35ffc6ad7 Mon Sep 17 00:00:00 2001 From: JosepFanals Date: Mon, 26 Aug 2024 21:44:30 +0200 Subject: [PATCH 207/218] Allow running NSGA with single snapshot --- .idea/workspace.xml | 35 +++++++++++-------- examples/try_template_loading.py | 8 ++++- src/GridCalEngine/Devices/Branches/line.py | 2 +- .../investments_evaluation_driver.py | 4 +++ .../Simulations/driver_template.py | 2 +- 5 files changed, 33 insertions(+), 18 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a776c4e12..0e611f10a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,8 +28,12 @@ - - - - - - + + + + + + + + - - @@ -134,77 +133,84 @@ - { + "keyToString": { + "ASKED_ADD_EXTERNAL_FILES": "true", + "Git.Branch.Popup.ShowAllRemotes": "true", + "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", + "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", + "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", + "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", + "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", + "Python tests.Nosetests for tests.test_hydro.executor": "Run", + "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", + "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", + "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", + "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", + "Python tests.Nosetests in deep_copy_test.py.executor": "Run", + "Python tests.Nosetests in test_topology_processor.py.executor": "Run", + "Python tests.Nosetests in tests.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", + "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", + "Python tests.pytest for src.tests.test_cgmes_to_gridcal_ac_transformers.test_ac_transformers3w.executor": "Debug", + "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", + "Python tests.pytest for src.tests.test_load_save_load.test_load_save_load.executor": "Run", + "Python tests.pytest for src.tests.test_power_flow.executor": "Run", + "Python tests.pytest for src.tests.test_power_flow.test_controllable_shunt.executor": "Run", + "Python tests.pytest for src.tests.test_tutorials.test_define_grid_from_scratch_with_profiles.executor": "Debug", + "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", + "Python tests.pytest for test_demo_5_node.test_demo_5_node.executor": "Run", + "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", + "Python tests.pytest for test_nodal_capacity.test_linear_vs_nonlinear_ncap.executor": "Run", + "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", + "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", + "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Debug", + "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Run", + "Python tests.pytest for test_power_flow.test_voltage_local_control_with_generation.executor": "Debug", + "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Debug", + "Python tests.pytest for test_sparse2.test_mat_mat_mult.executor": "Run", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", + "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", + "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", + "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", + "Python tests.pytest in test_deep_copy.py.executor": "Run", + "Python tests.pytest in test_load_save_load.py.executor": "Debug", + "Python tests.pytest in test_power_flow.py.executor": "Run", + "Python tests.pytest in test_profiles.py.executor": "Run", + "Python tests.pytest in test_topology_processor.py.executor": "Run", + "Python tests.pytest in test_transformer_controls.py.executor": "Run", + "Python tests.pytest in tests.executor": "Run", + "Python.AnalysisDialogue.executor": "Run", + "Python.ExecuteGridCal.executor": "Run", + "Python.GridCalMain.executor": "Run", + "Python.cgmes_rdfs_graph.executor": "Run", + "Python.download_stats.executor": "Run", + "Python.fubm_example.executor": "Run", + "Python.generate_ssl_key.executor": "Run", + "Python.new_circuit_objects.executor": "Run", + "Python.pymoo_example.executor": "Debug", + "Python.raw_imp_exp_test.executor": "Run", + "Python.run.executor": "Run", + "Python.update_gui_file.executor": "Run", + "Python.upload_to_pypi.executor": "Run", + "RunOnceActivity.OpenProjectViewOnStart": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "WebServerToolWindowFactoryState": "false", + "git-widget-placeholder": "199__finalize__cgmes__import", + "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods", + "node.js.detected.package.eslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "run.code.analysis.last.selected.profile": "aDefault", + "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", + "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", + "vue.rearranger.settings.migration": "true" } -}]]> +} @@ -248,50 +254,6 @@ - @@ -1454,7 +1466,12 @@ - + + + + + + 1656059954202 @@ -1799,7 +1816,7 @@ - - - - - @@ -1870,8 +1883,12 @@ - - @@ -2261,12 +2278,12 @@ file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py - 372 + 368 file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py - 376 + 372 @@ -2274,6 +2291,11 @@ 210 + + file://$PROJECT_DIR$/src/GridCalEngine/Devices/Branches/sequence_line_type.py + 86 + file://$PROJECT_DIR$/src/trunk/misc/cv2_cam.py 33 @@ -2366,11 +2388,6 @@ 255 - - file://$PROJECT_DIR$/src/tests/test_transformer_controls.py - 24 - file://$PROJECT_DIR$/src/GridCalEngine/Devices/Parents/branch_parent.py 123 @@ -2386,11 +2403,6 @@ 133 - - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py - 155 - file://$PROJECT_DIR$/src/tests/test_sparse2.py 180 @@ -2402,46 +2414,76 @@ - + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods/pf_advanced_formulation.py + 751 + + + file://$PROJECT_DIR$/src/tests/test_power_flow.py - 376 - + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py + 217 + - file://$PROJECT_DIR$/src/GridCalEngine/Compilers/circuit_to_data.py - 483 - - file://$PROJECT_DIR$/src/GridCalEngine/Devices/Parents/branch_parent.py - 355 - file://$PROJECT_DIR$/src/GridCalEngine/Simulations/driver_template.py - 230 - + + file://$PROJECT_DIR$/src/GridCalEngine/Simulations/driver_template.py + 208 + + + file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/simulations.py + 2474 + + + file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/simulations.py + 281 + - file://$PROJECT_DIR$/examples/try_template_loading.py - 17 - + + file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/simulations.py + 276 + - - + - + + - + @@ -2453,11 +2495,11 @@ - + - + @@ -2465,8 +2507,8 @@ - + @@ -2475,14 +2517,14 @@ - - - + + + - + @@ -2496,7 +2538,7 @@ - + @@ -2511,8 +2553,8 @@ - + @@ -2527,6 +2569,7 @@ + @@ -2538,6 +2581,7 @@ + @@ -2550,8 +2594,8 @@ - + @@ -2569,8 +2613,8 @@ - + @@ -2585,6 +2629,7 @@ + @@ -2625,14 +2670,15 @@ - + + - + @@ -2646,6 +2692,7 @@ + @@ -2697,7 +2744,7 @@ - + @@ -2837,6 +2884,7 @@ + @@ -2849,13 +2897,13 @@ - + - + diff --git a/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py b/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py index a132a421b..6344f83e0 100644 --- a/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py +++ b/src/GridCalEngine/Simulations/InvestmentsEvaluation/investments_evaluation_driver.py @@ -216,9 +216,6 @@ def __init__(self, :param clustering_results: Clustering results """ - if len(time_indices) == 1: # Single snapshot with a [0] by default: - time_indices = None - TimeSeriesDriverTemplate.__init__(self, grid=grid, time_indices=time_indices, From d7087264a548ad0c42ae99902fd0c31318c175d2 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 27 Aug 2024 13:40:03 +0100 Subject: [PATCH 210/218] Improved the TapChanger handling inside the TransformerType --- src/GridCal/Gui/Main/MainWindow.py | 12 +- src/GridCal/Gui/Main/MainWindow.ui | 14 +- .../Devices/Branches/tap_changer.py | 27 +++- .../Devices/Branches/transformer_type.py | 147 +++++++----------- 4 files changed, 95 insertions(+), 105 deletions(-) diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index ddd2458ff..35adaa290 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -2436,17 +2436,17 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.ignore_single_node_islands_checkBox) + self.label_50 = QLabel(self.frame_36) + self.label_50.setObjectName(u"label_50") + + self.verticalLayout_4.addWidget(self.label_50) + self.distributed_slack_checkBox = QCheckBox(self.frame_36) self.distributed_slack_checkBox.setObjectName(u"distributed_slack_checkBox") self.distributed_slack_checkBox.setFont(font1) self.verticalLayout_4.addWidget(self.distributed_slack_checkBox) - self.label_50 = QLabel(self.frame_36) - self.label_50.setObjectName(u"label_50") - - self.verticalLayout_4.addWidget(self.label_50) - self.control_q_checkBox = QCheckBox(self.frame_36) self.control_q_checkBox.setObjectName(u"control_q_checkBox") self.control_q_checkBox.setFont(font1) @@ -5255,11 +5255,11 @@ def retranslateUi(self, mainWindow): self.ignore_single_node_islands_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the islands of a single node are ignored.", None)) #endif // QT_CONFIG(tooltip) self.ignore_single_node_islands_checkBox.setText(QCoreApplication.translate("mainWindow", u"Ignore single node islands", None)) + self.label_50.setText("") #if QT_CONFIG(tooltip) self.distributed_slack_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"

If active, the slack power is distributed among the generators according to their installed power "Snom"

", None)) #endif // QT_CONFIG(tooltip) self.distributed_slack_checkBox.setText(QCoreApplication.translate("mainWindow", u"Distributed slack", None)) - self.label_50.setText("") #if QT_CONFIG(tooltip) self.control_q_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"General switch for reactive power limits control", None)) #endif // QT_CONFIG(tooltip) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index 0c3020870..043e7f38d 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -4518,6 +4518,13 @@ QProgressBar::chunk{ + + + + + + + @@ -4533,13 +4540,6 @@ QProgressBar::chunk{ - - - - - - - diff --git a/src/GridCalEngine/Devices/Branches/tap_changer.py b/src/GridCalEngine/Devices/Branches/tap_changer.py index fe42579b7..744937427 100644 --- a/src/GridCalEngine/Devices/Branches/tap_changer.py +++ b/src/GridCalEngine/Devices/Branches/tap_changer.py @@ -63,7 +63,7 @@ def __init__(self, """ self.asymmetry_angle = asymmetry_angle # assymetry angle (Theta) - self.total_positions = total_positions # total number of positions + self._total_positions = total_positions # total number of positions self.dV = dV # voltage increment in p.u. self.neutral_position = neutral_position # neutral position self._tap_position = neutral_position # index with respect to the neutral position @@ -75,6 +75,22 @@ def __init__(self, self._m_array = np.zeros(total_positions) self.recalc() + @property + def total_positions(self) -> int: + """ + Tap changer total number of positions + :return: int + """ + return self._total_positions + + @total_positions.setter + def total_positions(self, value: int): + if isinstance(value, int): + self._total_positions = value + self.resize() + else: + raise TypeError(f'Expected int but got {type(value)}') + @property def tap_position(self) -> int: """ @@ -91,6 +107,15 @@ def tap_position(self, val: int): """ self._tap_position = val + def resize(self) -> None: + """ + Resize and recalc the tap positions array + """ + self._ndv = np.zeros(self.total_positions) + self._tau_array = np.zeros(self.total_positions) + self._m_array = np.zeros(self.total_positions) + self.recalc() + def recalc(self) -> None: """ Recalculate the phase and modules corresponding to each tap position diff --git a/src/GridCalEngine/Devices/Branches/transformer_type.py b/src/GridCalEngine/Devices/Branches/transformer_type.py index cb0044c0c..2a35a4002 100644 --- a/src/GridCalEngine/Devices/Branches/transformer_type.py +++ b/src/GridCalEngine/Devices/Branches/transformer_type.py @@ -78,18 +78,12 @@ def __init__(self, self.GX_hv1 = gx_hv1 - self._total_positions: int = total_positions - self._neutral_position: int = neutral_position - self._dV: float = dV - self._asymmetry_angle: float = asymmetry_angle - self._tc_type: TapChangerTypes = tc_type - - self._tap_module_min = 0.0 - self._tap_module_max = 0.0 - self._tap_phase_min = 0.0 - self._tap_phase_max = 0.0 - - self.recalc_taps() + # The tap changer parameters are stored and used with the help of the TapChanger object + self._tap_changer = TapChanger(total_positions=total_positions, + neutral_position=neutral_position, + dV=dV, + asymmetry_angle=asymmetry_angle, + tc_type=tc_type) self.register(key='HV', units='kV', tpe=float, definition='Nominal voltage al the high voltage side') self.register(key='LV', units='kV', tpe=float, definition='Nominal voltage al the low voltage side') @@ -111,145 +105,132 @@ def __init__(self, self.register(key='tap_phase_max', units='rad', tpe=float, definition='Max tap phase', editable=False) @property - def tap_module_min(self): + def tap_module_min(self) -> float: """ - - :return: + Min tap module, computed on the fly + :return: float """ - return self._tap_module_min + return self._tap_changer.get_tap_module_min() @tap_module_min.setter def tap_module_min(self, val: float): - if isinstance(val, float): - self._tap_module_min = val - else: - raise Exception(str(type(val)) + 'not supported to be set into a tap_module_min') + # this is a read only property + pass @property - def tap_module_max(self): + def tap_module_max(self) -> float: """ - - :return: + Max tap module, computed on the fly + :return: float """ - return self._tap_module_max + return self._tap_changer.get_tap_module_max() @tap_module_max.setter def tap_module_max(self, val: float): - if isinstance(val, float): - self._tap_module_max = val - else: - raise Exception(str(type(val)) + 'not supported to be set into a tap_module_min') + # this is a read only property + pass @property - def tap_phase_min(self): + def tap_phase_min(self) -> float: """ - - :return: + Min tap phase, cputed on the fly + :return: float """ - return self._tap_phase_min + return self._tap_changer.get_tap_phase_min() @tap_phase_min.setter def tap_phase_min(self, val: float): - if isinstance(val, float): - self._tap_phase_min = val - else: - raise Exception(str(type(val)) + 'not supported to be set into a tap_module_min') + # this is a read only property + pass @property - def tap_phase_max(self): + def tap_phase_max(self) -> float: """ - - :return: + Maximum tap phase (calculated) + :return: float """ - return self._tap_phase_max + return self._tap_changer.get_tap_phase_max() @tap_phase_max.setter def tap_phase_max(self, val: float): - if isinstance(val, float): - self._tap_phase_max = val - else: - raise Exception(str(type(val)) + 'not supported to be set into a tap_module_min') + # this is a read only property + pass @property - def total_positions(self): + def total_positions(self) -> int: """ - - :return: + Tap changer total number of positions + :return: int """ - return self._total_positions + return self._tap_changer.total_positions @total_positions.setter def total_positions(self, value: int): if isinstance(value, int): - self._total_positions = value - self.recalc_taps() + self._tap_changer.total_positions = value else: raise TypeError(f'Expected int but got {type(value)}') @property - def neutral_position(self): + def neutral_position(self) -> int: """ - - :return: + Tap changer neutral position + :return: int """ - return self._neutral_position + return self._tap_changer.neutral_position @neutral_position.setter def neutral_position(self, value: int): if isinstance(value, int): - if 0 <= value < self._total_positions: - self._neutral_position = value - self.recalc_taps() + if 0 <= value < self._tap_changer.total_positions: + self._tap_changer.neutral_position = value else: pass else: raise TypeError(f'Expected int but got {type(value)}') @property - def dV(self): + def dV(self) -> float: """ - - :return: + Tap changer Voltage increment per step (p.u.) + :return: float """ - return self._total_positions + return self._tap_changer.dV @dV.setter def dV(self, value: float): if isinstance(value, float): - self._dV = value - self.recalc_taps() + self._tap_changer.dV = value else: raise TypeError(f'Expected int but got {type(value)}') @property - def asymmetry_angle(self): + def asymmetry_angle(self) -> float: """ - - :return: + Tap changer assymetry angle (deg) + :return: float """ - return self._asymmetry_angle + return self._tap_changer.asymmetry_angle @asymmetry_angle.setter def asymmetry_angle(self, value: float): if isinstance(value, float): - self._asymmetry_angle = value - self.recalc_taps() + self._tap_changer.asymmetry_angle = value else: raise TypeError(f'Expected float but got {type(value)}') @property - def tc_type(self): + def tc_type(self) -> TapChangerTypes: """ - - :return: + Get the tap changer type + :return: TapChangerTypes """ - return self._tc_type + return self._tap_changer.tc_type @tc_type.setter def tc_type(self, value: TapChangerTypes): if isinstance(value, TapChangerTypes): - self._tc_type = value - self.recalc_taps() + self._tap_changer.tc_type = value else: raise TypeError(f'Expected TapChangerTypes but got {type(value)}') @@ -288,22 +269,6 @@ def get_tap_changer(self) -> TapChanger: asymmetry_angle=self.asymmetry_angle, tc_type=self.tc_type) - def recalc_taps(self): - """ - - :return: - """ - tc = TapChanger(total_positions=self.total_positions, - neutral_position=self._neutral_position, - dV=self._dV, - asymmetry_angle=self._asymmetry_angle, - tc_type=self._tc_type) - - self._tap_module_min = tc.get_tap_module_min() - self._tap_module_max = tc.get_tap_module_max() - self._tap_phase_min = tc.get_tap_phase_min() - self._tap_phase_max = tc.get_tap_phase_max() - def get_impedances(VH_bus: float, VL_bus: float, Sn: float, HV: float, LV: float, Pcu: float, Pfe: float, I0: float, Vsc: float, Sbase: float, From 554a5aefd0c164f2649209496652173d8be91934 Mon Sep 17 00:00:00 2001 From: santi Date: Tue, 27 Aug 2024 14:39:55 +0100 Subject: [PATCH 211/218] moved find_closest_number to the Utils --- .idea/workspace.xml | 62 ++++++++--------- .../Devices/Branches/tap_changer.py | 66 ++++++------------- .../Devices/Branches/transformer_type.py | 5 ++ .../Utils/NumericalMethods/common.py | 38 ++++++++--- 4 files changed, 82 insertions(+), 89 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 533da0414..c524d85b2 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,14 +28,11 @@
- - - - - + + + + + - { - "keyToString": { - "ASKED_ADD_EXTERNAL_FILES": "true", - "Git.Branch.Popup.ShowAllRemotes": "true", - "MATLAB_INTERPRETER": "/usr/local/MATLAB/R2018a/bin/matlab", - "Python tests.Nosetests for test_power_flow.test_zip.executor": "Debug", - "Python tests.Nosetests for test_topology_processor.test_topology_rts.executor": "Debug", - "Python tests.Nosetests for tests.test_ac_opf.executor": "Run", - "Python tests.Nosetests for tests.test_ac_opf.test_pegase89.executor": "Debug", - "Python tests.Nosetests for tests.test_hydro.executor": "Run", - "Python tests.Nosetests for tests.test_latin_hypercube.test_lhs.executor": "Run", - "Python tests.Nosetests for tests.test_opf_time_series.test_opf_ts.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.executor": "Run", - "Python tests.Nosetests for tests.test_topology_processor.test_topology_rts.executor": "Run", - "Python tests.Nosetests in admittance_matrix_test.py.executor": "Run", - "Python tests.Nosetests in deep_copy_test.py.executor": "Run", - "Python tests.Nosetests in test_topology_processor.py.executor": "Run", - "Python tests.Nosetests in tests.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.executor": "Run", - "Python tests.pytest for src.tests.test_cgmes_ieeee.test_ieee_grids.executor": "Debug", - "Python tests.pytest for src.tests.test_cgmes_to_gridcal_ac_transformers.test_ac_transformers3w.executor": "Debug", - "Python tests.pytest for src.tests.test_load_all_grids.test_all_grids.executor": "Run", - "Python tests.pytest for src.tests.test_load_save_load.test_load_save_load.executor": "Run", - "Python tests.pytest for src.tests.test_power_flow.executor": "Run", - "Python tests.pytest for src.tests.test_power_flow.test_controllable_shunt.executor": "Run", - "Python tests.pytest for src.tests.test_tutorials.test_define_grid_from_scratch_with_profiles.executor": "Debug", - "Python tests.pytest for test_cgmes_ieeee.test_ieee_grids.executor": "Run", - "Python tests.pytest for test_demo_5_node.test_demo_5_node.executor": "Run", - "Python tests.pytest for test_derivatives.test_bus_derivatives.executor": "Run", - "Python tests.pytest for test_nodal_capacity.test_linear_vs_nonlinear_ncap.executor": "Run", - "Python tests.pytest for test_power_flow.test_fubm.executor": "Run", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst.executor": "Debug", - "Python tests.pytest for test_power_flow.test_power_flow_control_with_pst_pt.executor": "Run", - "Python tests.pytest for test_power_flow.test_qf_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_qt_control_with_ltc.executor": "Debug", - "Python tests.pytest for test_power_flow.test_voltage_control_with_ltc.executor": "Run", - "Python tests.pytest for test_power_flow.test_voltage_local_control_with_generation.executor": "Debug", - "Python tests.pytest for test_power_flow.test_voltage_remote_control_with_generation.executor": "Debug", - "Python tests.pytest for test_sparse2.test_mat_mat_mult.executor": "Run", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_A.executor": "Debug", - "Python tests.pytest for test_topology_processor.test_topology_4_nodes_B.executor": "Debug", - "Python tests.pytest for test_transformer_controls.test_v_control_true.executor": "Debug", - "Python tests.pytest in test_cgmes_ieeee.py.executor": "Run", - "Python tests.pytest in test_deep_copy.py.executor": "Run", - "Python tests.pytest in test_load_save_load.py.executor": "Debug", - "Python tests.pytest in test_power_flow.py.executor": "Run", - "Python tests.pytest in test_profiles.py.executor": "Run", - "Python tests.pytest in test_topology_processor.py.executor": "Run", - "Python tests.pytest in test_transformer_controls.py.executor": "Run", - "Python tests.pytest in tests.executor": "Run", - "Python.AnalysisDialogue.executor": "Run", - "Python.ExecuteGridCal.executor": "Run", - "Python.GridCalMain.executor": "Run", - "Python.cgmes_rdfs_graph.executor": "Run", - "Python.download_stats.executor": "Run", - "Python.fubm_example.executor": "Run", - "Python.generate_ssl_key.executor": "Run", - "Python.new_circuit_objects.executor": "Run", - "Python.pymoo_example.executor": "Debug", - "Python.raw_imp_exp_test.executor": "Run", - "Python.run.executor": "Run", - "Python.update_gui_file.executor": "Run", - "Python.upload_to_pypi.executor": "Run", - "RunOnceActivity.OpenProjectViewOnStart": "true", - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "199__finalize__cgmes__import", - "last_opened_file_path": "/home/santi/Documentos/Git/GitHub/GridCal/src/GridCalEngine/Simulations/PowerFlow/NumericalMethods", - "node.js.detected.package.eslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "run.code.analysis.last.selected.profile": "aDefault", - "settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", - "two.files.diff.last.used.file": "C:/WorkProjects/PycharmProjects/GridCal/src/trunk/cgmes_py_generator/cgmes_v2_4_15/cgmes_enums.py", - "vue.rearranger.settings.migration": "true" + +}]]> - + @@ -1860,7 +1860,6 @@ - @@ -1885,7 +1884,8 @@ - @@ -2889,7 +2889,7 @@ - + diff --git a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py index e69c3491d..2cba06285 100644 --- a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py +++ b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py @@ -16,9 +16,6 @@ # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import json import os -import importlib -import importlib.util -import hashlib from typing import Dict, Union, Any from PySide6 import QtWidgets @@ -26,57 +23,10 @@ from GridCalEngine.IO.file_system import get_create_gridcal_folder from GridCal.Gui.Main.SubClasses.Results.results import ResultsMain from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget -from GridCal.Gui.plugins import PluginsInfo +from GridCal.Gui.plugins import PluginsInfo, load_function_from_file_path from GridCal.Gui.Diagrams.generic_graphics import set_dark_mode, set_light_mode -def load_function_from_file_path(file_path, function_name): - """ - Dynamically load a function from a Python file at a given file path. - - :param file_path: The path to the Python (.py) file. - :param function_name: The name of the function to load from the file. - :return: The loaded function object. - :raises FileNotFoundError: If the specified file does not exist. - :raises ImportError: If the module cannot be imported. - :raises AttributeError: If the function does not exist in the module. - :raises TypeError: If the retrieved attribute is not callable. - """ - # Ensure the file exists - if not os.path.isfile(file_path): - raise FileNotFoundError(f"No such file: {file_path}") - - # Generate a unique module name to avoid conflicts - # Here, we use the file's absolute path hashed to ensure uniqueness - absolute_path = os.path.abspath(file_path) - module_name = f"dynamic_module_{hashlib.md5(absolute_path.encode()).hexdigest()}" - - # Create a module specification from the file location - spec = importlib.util.spec_from_file_location(module_name, absolute_path) - if spec is None: - raise ImportError(f"Cannot create a module spec for '{file_path}'") - - # Create a new module based on the spec - module = importlib.util.module_from_spec(spec) - - try: - # Execute the module to populate its namespace - spec.loader.exec_module(module) - except Exception as e: - raise ImportError(f"Failed to execute module '{file_path}': {e}") from e - - # Retrieve the function from the module - if not hasattr(module, function_name): - raise AttributeError(f"The function '{function_name}' does not exist in '{file_path}'") - - func = getattr(module, function_name) - - if not callable(func): - raise TypeError(f"'{function_name}' in '{file_path}' is not callable") - - return func - - def config_data_to_struct(data_: Dict[str, Union[Dict[str, Any], str, Any]], struct_: Dict[str, Dict[str, Any]]) -> None: """ @@ -513,7 +463,8 @@ def process_plugins(self): # hot read python file try: - fcn = load_function_from_file_path(file_path=plugin_path, function_name=plugin_info.function_name) + fcn = load_function_from_file_path(file_path=plugin_path, + function_name=plugin_info.function_name) # call the function pointer with myself fcn(self) diff --git a/src/GridCal/Gui/plugins.py b/src/GridCal/Gui/plugins.py index a934c36ee..4ce3a3454 100644 --- a/src/GridCal/Gui/plugins.py +++ b/src/GridCal/Gui/plugins.py @@ -15,6 +15,9 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import os +import importlib +import importlib.util +import hashlib from typing import List, Dict import json @@ -114,3 +117,50 @@ def save(self): with open(self.index_fname, 'w') as json_file: data = self.to_data() json.dump(data, json_file) + + +def load_function_from_file_path(file_path, function_name): + """ + Dynamically load a function from a Python file at a given file path. + + :param file_path: The path to the Python (.py) file. + :param function_name: The name of the function to load from the file. + :return: The loaded function object. + :raises FileNotFoundError: If the specified file does not exist. + :raises ImportError: If the module cannot be imported. + :raises AttributeError: If the function does not exist in the module. + :raises TypeError: If the retrieved attribute is not callable. + """ + # Ensure the file exists + if not os.path.isfile(file_path): + raise FileNotFoundError(f"No such file: {file_path}") + + # Generate a unique module name to avoid conflicts + # Here, we use the file's absolute path hashed to ensure uniqueness + absolute_path = os.path.abspath(file_path) + module_name = f"dynamic_module_{hashlib.md5(absolute_path.encode()).hexdigest()}" + + # Create a module specification from the file location + spec = importlib.util.spec_from_file_location(module_name, absolute_path) + if spec is None: + raise ImportError(f"Cannot create a module spec for '{file_path}'") + + # Create a new module based on the spec + module = importlib.util.module_from_spec(spec) + + try: + # Execute the module to populate its namespace + spec.loader.exec_module(module) + except Exception as e: + raise ImportError(f"Failed to execute module '{file_path}': {e}") from e + + # Retrieve the function from the module + if not hasattr(module, function_name): + raise AttributeError(f"The function '{function_name}' does not exist in '{file_path}'") + + func = getattr(module, function_name) + + if not callable(func): + raise TypeError(f"'{function_name}' in '{file_path}' is not callable") + + return func \ No newline at end of file From 02ba96fe2d8ed8b95bec319312ca5d666c0b5e81 Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 28 Aug 2024 09:25:29 +0100 Subject: [PATCH 214/218] Improved plugin handling --- .idea/workspace.xml | 207 ++--- src/GridCal/Gui/GuiFunctions.py | 6 + src/GridCal/Gui/Main/GridCalMain.py | 2 +- src/GridCal/Gui/Main/MainWindow.py | 4 + src/GridCal/Gui/Main/MainWindow.ui | 6 + .../Main/SubClasses/Settings/configuration.py | 57 +- src/GridCal/Gui/Main/icons.qrc | 1 + src/GridCal/Gui/Main/icons/plugin.svg | 87 ++ src/GridCal/Gui/Main/icons_rc.py | 790 +++++++++++------- src/GridCal/Gui/plugins.py | 61 +- 10 files changed, 780 insertions(+), 441 deletions(-) create mode 100644 src/GridCal/Gui/Main/icons/plugin.svg diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 5af9fc92b..b7701c941 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,11 +28,17 @@ - - + - - - - - - @@ -1867,7 +1860,6 @@ - @@ -1892,7 +1884,8 @@ - @@ -2896,7 +2889,7 @@ - + diff --git a/src/GridCal/Gui/GuiFunctions.py b/src/GridCal/Gui/GuiFunctions.py index b89dc7232..d133ed91b 100644 --- a/src/GridCal/Gui/GuiFunctions.py +++ b/src/GridCal/Gui/GuiFunctions.py @@ -944,11 +944,13 @@ def add_menu_entry(menu: QtWidgets.QMenu, entry.setCheckable(checkeable) entry.setChecked(checked_value) - if len(icon_path) > 0: - edit_icon = QtGui.QIcon() - edit_icon.addPixmap(QtGui.QPixmap(icon_path)) - entry.setIcon(edit_icon) - elif icon_pixmap is not None: + if icon_pixmap is None: + if len(icon_path) > 0: + edit_icon = QtGui.QIcon() + edit_icon.addPixmap(QtGui.QPixmap(icon_path)) + entry.setIcon(edit_icon) + else: + # prefer the icon pixmap if provided edit_icon = QtGui.QIcon() edit_icon.addPixmap(icon_pixmap) entry.setIcon(edit_icon) diff --git a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py index 6b0a97067..2bfbdf895 100644 --- a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py +++ b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py @@ -24,7 +24,7 @@ from GridCal.Gui.Main.SubClasses.Results.results import ResultsMain from GridCal.Gui.Diagrams.SchematicWidget.schematic_widget import SchematicWidget from GridCal.Gui.Diagrams.generic_graphics import set_dark_mode, set_light_mode -from GridCal.Gui.plugins import PluginsInfo, load_function_from_file_path +from GridCal.Gui.plugins import PluginsInfo from GridCal.Gui.GuiFunctions import add_menu_entry @@ -443,6 +443,8 @@ def add_plugins(self): icon_path=":/Icons/icons/undo.svg", function_ptr=self.add_plugins) + self.plugins_info.read() # force refresh + for plugin_info in self.plugins_info.plugins: if plugin_info.function_ptr is not None: @@ -450,6 +452,7 @@ def add_plugins(self): add_menu_entry(menu=self.ui.menuplugins, text=plugin_info.name, icon_path=":/Icons/icons/plugin.svg", + icon_pixmap=plugin_info.icon, function_ptr=lambda: plugin_info.function_ptr(self)) else: diff --git a/src/GridCal/Gui/plugins.py b/src/GridCal/Gui/plugins.py index 77479992a..d515511dc 100644 --- a/src/GridCal/Gui/plugins.py +++ b/src/GridCal/Gui/plugins.py @@ -14,12 +14,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +from __future__ import annotations + import os import importlib import importlib.util import hashlib from typing import List, Dict import json +from PySide6.QtGui import QPixmap from GridCalEngine.IO.file_system import get_create_gridcal_folder @@ -47,10 +50,11 @@ def __init__(self) -> None: """ self.name = "" self.path = "" - self.icon = "" + self.icon_path = "" self.function_name = "" self.function_ptr = None + self.icon: QPixmap | None = None def to_dict(self) -> Dict[str, str]: """ @@ -60,7 +64,7 @@ def to_dict(self) -> Dict[str, str]: return { 'name': self.name, 'path': self.path, - 'icon': self.icon, + 'icon_path': self.icon_path, 'function_name': self.function_name, } @@ -72,7 +76,7 @@ def parse(self, data: Dict[str, str]): """ self.name = data.get('name', '') self.path = data.get('path', '') - self.icon = data.get('icon', '') + self.icon_path = data.get('icon_path', '') self.function_name = data.get('function_name', '') def read_plugin(self): @@ -104,6 +108,12 @@ def read_plugin(self): else: print(f"Plugin {self.name}: Path {plugin_path} not found :/") + icon_path = os.path.join(base_path, self.icon_path) + if os.path.exists(icon_path): + self.icon = QPixmap(icon_path) + else: + print(f"Plugin {self.name}: Path {icon_path} not found :/") + class PluginsInfo: """ @@ -136,6 +146,7 @@ def parse(self, data: List[Dict[str, str]]): :param data: :return: """ + self.plugins.clear() for entry in data: pl = PluginInfo() pl.parse(entry) From 97758a1a5bb97e8c2252f546e647ba6973aef1de Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 28 Aug 2024 10:51:24 +0100 Subject: [PATCH 216/218] Created the plugins docs Fixed some bugs in the docs --- .idea/workspace.xml | 189 ++++--- doc/conf.py | 12 +- doc/index.rst | 1 + doc/rst_source/other_data_models.rst | 589 ++++++++++---------- doc/rst_source/plugins.rst | 69 +++ doc/rst_source/theory/opf/nodal_cap_ex.rst | 4 + src/GridCal/Gui/Main/SubClasses/base_gui.py | 23 +- src/GridCal/Gui/plugins.py | 15 +- 8 files changed, 482 insertions(+), 420 deletions(-) create mode 100644 doc/rst_source/plugins.rst diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a4173e6b4..6f6b4a5c0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,9 +28,13 @@ - - + - - - - - + + + + + - + @@ -1865,7 +1864,6 @@ - @@ -1890,7 +1888,8 @@ - @@ -2448,12 +2447,12 @@ file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/simulations.py - 2474 + 2467 file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/simulations.py - 281 + 284 @@ -2463,7 +2462,7 @@ file://$PROJECT_DIR$/src/GridCal/Gui/Main/SubClasses/simulations.py - 276 + 279 @@ -2484,7 +2483,7 @@ - + @@ -2521,7 +2520,7 @@ - + @@ -2894,7 +2893,7 @@ - + diff --git a/src/GridCal/Gui/GuiFunctions.py b/src/GridCal/Gui/GuiFunctions.py index d133ed91b..44aa70a5e 100644 --- a/src/GridCal/Gui/GuiFunctions.py +++ b/src/GridCal/Gui/GuiFunctions.py @@ -129,7 +129,7 @@ def __init__(self, parent: QtWidgets.QTableView, objects: List[Any], object_name self.object_names = object_names @QtCore.Slot() - def currentIndexChanged(self): + def currentIndexChanged(self) -> None: """ currentIndexChanged """ @@ -186,7 +186,7 @@ class TextDelegate(QtWidgets.QItemDelegate): commitData = QtCore.Signal(object) - def __init__(self, parent): + def __init__(self, parent: QtWidgets.QTableView) -> None: """ Constructor :param parent: QTableView parent object @@ -200,7 +200,9 @@ def returnPressed(self): """ self.commitData.emit(self.sender()) - def createEditor(self, parent, option, index): + def createEditor(self, parent: QtWidgets.QWidget, + option: QtWidgets.QStyleOptionViewItem, + index: QtCore.QModelIndex) -> QtWidgets.QLineEdit: """ :param parent: @@ -256,13 +258,15 @@ def __init__(self, self.decimals = decimals @QtCore.Slot() - def returnPressed(self): + def returnPressed(self) -> None: """ returnPressed """ self.commitData.emit(self.sender()) - def createEditor(self, parent, option, index): + def createEditor(self, parent: QtWidgets.QWidget, + option: QtWidgets.QStyleOptionViewItem, + index: QtCore.QModelIndex) -> QtWidgets.QDoubleSpinBox: """ :param parent: @@ -925,7 +929,8 @@ def add_menu_entry(menu: QtWidgets.QMenu, icon_pixmap: QtGui.QPixmap = None, function_ptr=None, checkeable=False, - checked_value=False) -> QtGui.QAction: + checked_value=False, + font_size: int = 9) -> QtGui.QAction: """ Add a context menu entry :param menu: @@ -935,10 +940,15 @@ def add_menu_entry(menu: QtWidgets.QMenu, :param function_ptr: :param checkeable: :param checked_value: + :param font_size: :return: """ - entry = menu.addAction(text) + entry: QtGui.QAction = menu.addAction(text) + + font = QtGui.QFont() + font.setPointSize(font_size) + entry.setFont(font) if checkeable: entry.setCheckable(checkeable) diff --git a/src/GridCal/Gui/Main/MainWindow.py b/src/GridCal/Gui/Main/MainWindow.py index 8a0a015ef..c8438c82f 100644 --- a/src/GridCal/Gui/Main/MainWindow.py +++ b/src/GridCal/Gui/Main/MainWindow.py @@ -2199,38 +2199,35 @@ def setupUi(self, mainWindow): self.frame_19.setFrameShadow(QFrame.Raised) self.gridLayout_22 = QGridLayout(self.frame_19) self.gridLayout_22.setObjectName(u"gridLayout_22") - self.tolerance_spinBox = QSpinBox(self.frame_19) - self.tolerance_spinBox.setObjectName(u"tolerance_spinBox") - self.tolerance_spinBox.setFont(font1) - self.tolerance_spinBox.setMinimum(1) - self.tolerance_spinBox.setMaximum(15) - self.tolerance_spinBox.setValue(4) - - self.gridLayout_22.addWidget(self.tolerance_spinBox, 8, 1, 1, 1) - self.label_2 = QLabel(self.frame_19) self.label_2.setObjectName(u"label_2") self.label_2.setFont(font1) self.gridLayout_22.addWidget(self.label_2, 0, 0, 1, 1) + self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.gridLayout_22.addItem(self.verticalSpacer_10, 13, 0, 1, 1) + self.label_22 = QLabel(self.frame_19) self.label_22.setObjectName(u"label_22") self.gridLayout_22.addWidget(self.label_22, 12, 0, 1, 2) - self.max_iterations_spinBox = QSpinBox(self.frame_19) - self.max_iterations_spinBox.setObjectName(u"max_iterations_spinBox") - self.max_iterations_spinBox.setFont(font1) - self.max_iterations_spinBox.setMinimum(1) - self.max_iterations_spinBox.setMaximum(1000) - self.max_iterations_spinBox.setValue(40) + self.label_23 = QLabel(self.frame_19) + self.label_23.setObjectName(u"label_23") + self.label_23.setFont(font1) - self.gridLayout_22.addWidget(self.max_iterations_spinBox, 10, 1, 1, 1) + self.gridLayout_22.addWidget(self.label_23, 11, 0, 1, 1) - self.verticalSpacer_10 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + self.tolerance_spinBox = QSpinBox(self.frame_19) + self.tolerance_spinBox.setObjectName(u"tolerance_spinBox") + self.tolerance_spinBox.setFont(font1) + self.tolerance_spinBox.setMinimum(1) + self.tolerance_spinBox.setMaximum(15) + self.tolerance_spinBox.setValue(4) - self.gridLayout_22.addItem(self.verticalSpacer_10, 13, 0, 1, 1) + self.gridLayout_22.addWidget(self.tolerance_spinBox, 8, 1, 1, 1) self.label_6 = QLabel(self.frame_19) self.label_6.setObjectName(u"label_6") @@ -2238,12 +2235,11 @@ def setupUi(self, mainWindow): self.gridLayout_22.addWidget(self.label_6, 10, 0, 1, 1) - self.solver_comboBox = QComboBox(self.frame_19) - self.solver_comboBox.setObjectName(u"solver_comboBox") - self.solver_comboBox.setMinimumSize(QSize(200, 0)) - self.solver_comboBox.setFont(font1) + self.label_11 = QLabel(self.frame_19) + self.label_11.setObjectName(u"label_11") + self.label_11.setFont(font1) - self.gridLayout_22.addWidget(self.solver_comboBox, 0, 1, 1, 1) + self.gridLayout_22.addWidget(self.label_11, 9, 0, 1, 1) self.label_5 = QLabel(self.frame_19) self.label_5.setObjectName(u"label_5") @@ -2251,6 +2247,12 @@ def setupUi(self, mainWindow): self.gridLayout_22.addWidget(self.label_5, 8, 0, 1, 1) + self.find_automatic_precission_Button = QPushButton(self.frame_19) + self.find_automatic_precission_Button.setObjectName(u"find_automatic_precission_Button") + self.find_automatic_precission_Button.setMaximumSize(QSize(50, 16777215)) + + self.gridLayout_22.addWidget(self.find_automatic_precission_Button, 8, 2, 1, 1) + self.muSpinBox = QDoubleSpinBox(self.frame_19) self.muSpinBox.setObjectName(u"muSpinBox") self.muSpinBox.setFont(font1) @@ -2260,26 +2262,30 @@ def setupUi(self, mainWindow): self.muSpinBox.setSingleStep(0.100000000000000) self.muSpinBox.setValue(1.000000000000000) - self.gridLayout_22.addWidget(self.muSpinBox, 9, 1, 1, 1) + self.gridLayout_22.addWidget(self.muSpinBox, 9, 1, 1, 2) - self.label_23 = QLabel(self.frame_19) - self.label_23.setObjectName(u"label_23") - self.label_23.setFont(font1) + self.solver_comboBox = QComboBox(self.frame_19) + self.solver_comboBox.setObjectName(u"solver_comboBox") + self.solver_comboBox.setMinimumSize(QSize(200, 0)) + self.solver_comboBox.setFont(font1) - self.gridLayout_22.addWidget(self.label_23, 11, 0, 1, 1) + self.gridLayout_22.addWidget(self.solver_comboBox, 0, 1, 1, 2) + + self.max_iterations_spinBox = QSpinBox(self.frame_19) + self.max_iterations_spinBox.setObjectName(u"max_iterations_spinBox") + self.max_iterations_spinBox.setFont(font1) + self.max_iterations_spinBox.setMinimum(1) + self.max_iterations_spinBox.setMaximum(1000) + self.max_iterations_spinBox.setValue(40) + + self.gridLayout_22.addWidget(self.max_iterations_spinBox, 10, 1, 1, 2) self.verbositySpinBox = QSpinBox(self.frame_19) self.verbositySpinBox.setObjectName(u"verbositySpinBox") self.verbositySpinBox.setFont(font1) self.verbositySpinBox.setMaximum(2) - self.gridLayout_22.addWidget(self.verbositySpinBox, 11, 1, 1, 1) - - self.label_11 = QLabel(self.frame_19) - self.label_11.setObjectName(u"label_11") - self.label_11.setFont(font1) - - self.gridLayout_22.addWidget(self.label_11, 9, 0, 1, 1) + self.gridLayout_22.addWidget(self.verbositySpinBox, 11, 1, 1, 2) self.gridLayout_24.addWidget(self.frame_19, 2, 0, 1, 3) @@ -2423,12 +2429,6 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.use_voltage_guess_checkBox) - self.auto_precision_checkBox = QCheckBox(self.frame_36) - self.auto_precision_checkBox.setObjectName(u"auto_precision_checkBox") - self.auto_precision_checkBox.setFont(font1) - - self.verticalLayout_4.addWidget(self.auto_precision_checkBox) - self.ignore_single_node_islands_checkBox = QCheckBox(self.frame_36) self.ignore_single_node_islands_checkBox.setObjectName(u"ignore_single_node_islands_checkBox") self.ignore_single_node_islands_checkBox.setFont(font1) @@ -2471,6 +2471,12 @@ def setupUi(self, mainWindow): self.verticalLayout_4.addWidget(self.control_remote_voltage_checkBox) + self.orthogonalize_pf_controls_checkBox = QCheckBox(self.frame_36) + self.orthogonalize_pf_controls_checkBox.setObjectName(u"orthogonalize_pf_controls_checkBox") + self.orthogonalize_pf_controls_checkBox.setFont(font1) + + self.verticalLayout_4.addWidget(self.orthogonalize_pf_controls_checkBox) + self.label_54 = QLabel(self.frame_36) self.label_54.setObjectName(u"label_54") @@ -5209,25 +5215,29 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.label_63.setText("") self.label_17.setText(QCoreApplication.translate("mainWindow", u"Power flow", None)) -#if QT_CONFIG(tooltip) - self.tolerance_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Error tolerance of the method

", None)) -#endif // QT_CONFIG(tooltip) - self.tolerance_spinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) self.label_2.setText(QCoreApplication.translate("mainWindow", u"Solver", None)) self.label_22.setText("") + self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) #if QT_CONFIG(tooltip) - self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) + self.tolerance_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Error tolerance of the method

", None)) #endif // QT_CONFIG(tooltip) + self.tolerance_spinBox.setPrefix(QCoreApplication.translate("mainWindow", u"1e-", None)) self.label_6.setText(QCoreApplication.translate("mainWindow", u"Max. iterations", None)) + self.label_11.setText(QCoreApplication.translate("mainWindow", u"Trust radius", None)) self.label_5.setText(QCoreApplication.translate("mainWindow", u"Tolerance", None)) +#if QT_CONFIG(tooltip) + self.find_automatic_precission_Button.setToolTip(QCoreApplication.translate("mainWindow", u"Find the tolerance that best represents the load values for power flow", None)) +#endif // QT_CONFIG(tooltip) + self.find_automatic_precission_Button.setText(QCoreApplication.translate("mainWindow", u"Find", None)) #if QT_CONFIG(tooltip) self.muSpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Factor that multiplies each increment solution.

In practice this is used to slow down troublesome solutions.

", None)) #endif // QT_CONFIG(tooltip) - self.label_23.setText(QCoreApplication.translate("mainWindow", u"Verbosity", None)) +#if QT_CONFIG(tooltip) + self.max_iterations_spinBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Maximum numberof iterations to use.


Tipical values:

Newton Raphson: 5

Levenberg-Marquards: 20

Fast decoupled: 10

Others: 20

", None)) +#endif // QT_CONFIG(tooltip) #if QT_CONFIG(tooltip) self.verbositySpinBox.setToolTip(QCoreApplication.translate("mainWindow", u"Level of console information. 0: None, 1: some information, 2: all the information", None)) #endif // QT_CONFIG(tooltip) - self.label_11.setText(QCoreApplication.translate("mainWindow", u"Trust radius", None)) self.label_70.setText("") self.label_71.setText(QCoreApplication.translate("mainWindow", u"PTDF / LODF", None)) self.ptdf_correct_nonsense_values_checkBox.setText(QCoreApplication.translate("mainWindow", u"Correct nonsense values", None)) @@ -5250,10 +5260,6 @@ def retranslateUi(self, mainWindow): #endif // QT_CONFIG(tooltip) self.helm_retry_checkBox.setText(QCoreApplication.translate("mainWindow", u"Retry with other methods if failed", None)) self.use_voltage_guess_checkBox.setText(QCoreApplication.translate("mainWindow", u"Use voltage guess", None)) -#if QT_CONFIG(tooltip) - self.auto_precision_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful", None)) -#endif // QT_CONFIG(tooltip) - self.auto_precision_checkBox.setText(QCoreApplication.translate("mainWindow", u"Automatic precision", None)) #if QT_CONFIG(tooltip) self.ignore_single_node_islands_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If active, the islands of a single node are ignored.", None)) #endif // QT_CONFIG(tooltip) @@ -5279,6 +5285,10 @@ def retranslateUi(self, mainWindow): self.control_remote_voltage_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"General switch for generators remote voltage control", None)) #endif // QT_CONFIG(tooltip) self.control_remote_voltage_checkBox.setText(QCoreApplication.translate("mainWindow", u"Control remote voltage", None)) +#if QT_CONFIG(tooltip) + self.orthogonalize_pf_controls_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"If checked, the controls are adjusted to their closest tap", None)) +#endif // QT_CONFIG(tooltip) + self.orthogonalize_pf_controls_checkBox.setText(QCoreApplication.translate("mainWindow", u"Orthogonalize controls", None)) self.label_54.setText("") #if QT_CONFIG(tooltip) self.temperature_correction_checkBox.setToolTip(QCoreApplication.translate("mainWindow", u"Correct the branches resistance using the temperature", None)) diff --git a/src/GridCal/Gui/Main/MainWindow.ui b/src/GridCal/Gui/Main/MainWindow.ui index e0c906f9a..2e8aa884b 100644 --- a/src/GridCal/Gui/Main/MainWindow.ui +++ b/src/GridCal/Gui/Main/MainWindow.ui @@ -3942,83 +3942,74 @@ QProgressBar::chunk{ QFrame::Raised - - + + 9 - - <html><head/><body><p>Error tolerance of the method</p></body></html> - - - 1e- + + Solver - - 1 + + + + + + Qt::Vertical - - 15 + + + 20 + 40 + - - 4 + + + + + + - - + + 9 - Solver - - - - - - - + Verbosity - - + + 9 - <html><head/><body><p>Maximum numberof iterations to use.</p><p><br/></p><p>Tipical values: </p><p>Newton Raphson: 5</p><p>Levenberg-Marquards: 20</p><p>Fast decoupled: 10</p><p>Others: 20</p></body></html> + <html><head/><body><p>Error tolerance of the method</p></body></html> + + + 1e- 1 - 1000 + 15 - 40 + 4 - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -4031,19 +4022,16 @@ QProgressBar::chunk{ - - - - - 200 - 0 - - + + 9 + + Trust radius + @@ -4058,7 +4046,23 @@ QProgressBar::chunk{ - + + + + + 50 + 16777215 + + + + Find the tolerance that best represents the load values for power flow + + + Find + + + + @@ -4085,42 +4089,54 @@ QProgressBar::chunk{ - - + + + + + 200 + 0 + + 9 - - Verbosity - - - + + 9 - Level of console information. 0: None, 1: some information, 2: all the information + <html><head/><body><p>Maximum numberof iterations to use.</p><p><br/></p><p>Tipical values: </p><p>Newton Raphson: 5</p><p>Levenberg-Marquards: 20</p><p>Fast decoupled: 10</p><p>Others: 20</p></body></html> + + + 1 - 2 + 1000 + + + 40 - - + + 9 - - Trust radius + + Level of console information. 0: None, 1: some information, 2: all the information + + + 2 @@ -4485,21 +4501,6 @@ QProgressBar::chunk{ - - - - - 9 - - - - If active, GridCal finds a precission that suits the magnitude of the power injections so that the power flow is meaningful - - - Automatic precision - - - @@ -4600,6 +4601,21 @@ QProgressBar::chunk{ + + + + + 9 + + + + If checked, the controls are adjusted to their closest tap + + + Orthogonalize controls + + + diff --git a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py index 2bfbdf895..42cadb7ef 100644 --- a/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py +++ b/src/GridCal/Gui/Main/SubClasses/Settings/configuration.py @@ -223,15 +223,18 @@ def get_config_structure(self) -> Dict[str, Dict[str, any]]: "retry": self.ui.helm_retry_checkBox, "distributed_slack": self.ui.distributed_slack_checkBox, "ignore_single_node_islands": self.ui.ignore_single_node_islands_checkBox, - "automatic_precision": self.ui.auto_precision_checkBox, "use_voltage_guess": self.ui.use_voltage_guess_checkBox, "precision": self.ui.tolerance_spinBox, "acceleration": self.ui.muSpinBox, "max_iterations": self.ui.max_iterations_spinBox, "verbosity": self.ui.verbositySpinBox, + "reactive_power_control_mode": self.ui.control_q_checkBox, "transformer_taps_module_control": self.ui.control_tap_modules_checkBox, "transformer_taps_phase_control": self.ui.control_tap_phase_checkBox, + "remote_voltage_controls_switch": self.ui.control_remote_voltage_checkBox, + "orthogonalize_controls": self.ui.orthogonalize_pf_controls_checkBox, + "apply_temperature_correction": self.ui.temperature_correction_checkBox, "apply_impedance_tolerances": self.ui.apply_impedance_tolerances_checkBox, "add_pf_report": self.ui.addPowerFlowReportCheckBox, diff --git a/src/GridCal/Gui/Main/SubClasses/simulations.py b/src/GridCal/Gui/Main/SubClasses/simulations.py index f9b5022e3..a6165d477 100644 --- a/src/GridCal/Gui/Main/SubClasses/simulations.py +++ b/src/GridCal/Gui/Main/SubClasses/simulations.py @@ -237,6 +237,9 @@ def __init__(self, parent=None): self.ui.engineComboBox.currentTextChanged.connect(self.modify_ui_options_according_to_the_engine) self.ui.contingency_filter_by_comboBox.currentTextChanged.connect(self.modify_contingency_filter_mode) + # button + self.ui.find_automatic_precission_Button.clicked.connect(self.automatic_pf_precission) + def get_simulations(self) -> List[DRIVER_OBJECTS]: """ Get all threads that have to do with simulation @@ -849,16 +852,6 @@ def run_power_flow(self): # get the power flow options from the GUI options = self.get_selected_power_flow_options() - # compute the automatic precision - if self.ui.auto_precision_checkBox.isChecked(): - - options.tolerance, tol_idx = self.circuit.get_automatic_precision() - - if tol_idx > 12: - tol_idx = 12 - - self.ui.tolerance_spinBox.setValue(tol_idx) - opf_results = self.get_opf_results(use_opf=self.ui.actionOpf_to_Power_flow.isChecked()) self.ui.progress_label.setText('Running power flow...') @@ -2774,3 +2767,15 @@ def post_nodal_capacity(self): if not self.session.is_anything_running(): self.UNLOCK() + + def automatic_pf_precission(self): + """ + Find the automatic tolerance + :return: + """ + tolerance, tol_idx = self.circuit.get_automatic_precision() + + if tol_idx > 12: + tol_idx = 12 + + self.ui.tolerance_spinBox.setValue(tol_idx) From 1d2c15061fb968cc7de5c1a60e036e7bcb9627f4 Mon Sep 17 00:00:00 2001 From: santi Date: Wed, 28 Aug 2024 19:56:32 +0100 Subject: [PATCH 218/218] Set maximum resizing of a part of the settings --- .idea/workspace.xml | 174 ++++++++++++++--------------- src/GridCal/Gui/Main/MainWindow.py | 2 + src/GridCal/Gui/Main/MainWindow.ui | 12 ++ 3 files changed, 100 insertions(+), 88 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index bd96f8d00..18e21de8e 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -28,13 +28,10 @@