From fe0670716eb4301b9bdbc16198e9ae20b2935ee7 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Wed, 31 May 2023 13:45:39 +0200 Subject: [PATCH 01/32] Updates to where objectives and constraints are stored Objectives and constraints are now stored as variables of the optimization problem. This takes away a lot of the redundant operations in the optimization function that loop over the cst otherwise. Also changed the objective function to now calculate all objective function values in a separate function and then sum them up afterwards. First changes for Pareto optimization were also added with the normalization options --- matRad_fluenceOptimization.m | 3 +- .../matRad_OptimizationProblem.m | 88 +++- .../matRad_constraintFunctions.m | 150 +++---- .../matRad_constraintJacobian.m | 237 +++++------ .../matRad_getConstraintBounds.m | 58 +-- .../matRad_getJacobianStructure.m | 36 +- .../matRad_objectiveFunction.m | 306 ++++--------- .../matRad_objectiveFunctions.m | 202 +++++++++ .../matRad_objectiveGradient.m | 402 +++++++++--------- 9 files changed, 772 insertions(+), 710 deletions(-) create mode 100644 optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m diff --git a/matRad_fluenceOptimization.m b/matRad_fluenceOptimization.m index 907678f52..1cb3fe12f 100644 --- a/matRad_fluenceOptimization.m +++ b/matRad_fluenceOptimization.m @@ -249,7 +249,7 @@ backProjection.scenarios = ixForOpt; backProjection.scenarioProb = pln.multScen.scenProb; -optiProb = matRad_OptimizationProblem(backProjection); +optiProb = matRad_OptimizationProblem(backProjection,cst); optiProb.quantityOpt = pln.bioParam.quantityOpt; if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; @@ -304,6 +304,7 @@ resultGUI.wUnsequenced = wOpt; resultGUI.usedOptimizer = optimizer; resultGUI.info = info; +resultGUI.optiProb = optiProb; %Robust quantities if FLAG_ROB_OPT || numel(ixForOpt) > 1 diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index 529e20f3b..037ff56c9 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -24,6 +24,11 @@ properties BP + normalizationScheme = struct('type','none'); + objectives = {}; %cell array storing all objectives, has to be initialized at the start + constraints = {}; % + objidx; + constridx; quantityOpt = ''; useMaxApprox = 'logsumexp'; %'pnorm'; %'logsumexp'; %'none'; p = 30; %Can be chosen larger (closer to maximum) or smaller (closer to mean). Only tested 20 >= p >= 1 @@ -31,10 +36,15 @@ minimumW = NaN; maximumW = NaN; end + methods - function obj = matRad_OptimizationProblem(backProjection) - obj.BP = backProjection; + function obj = matRad_OptimizationProblem(backProjection,cst) + + obj.BP = backProjection; %needs to be initalized to have access to setBiologicalDosePrescriptions + if nargin == 2 + obj.extractObjectivesAndConstraintsFromcst(cst); + end end %Objective function declaration @@ -81,6 +91,40 @@ matRad_cfg.dispError('Maximum Bounds for Optimization Problem could not be set!'); end end + + function normalizedfVals = normalizeObjectives(optiProb,fVals) + switch optiProb.normalizationScheme.type + case 'none' + normalizedfVals = fVals; + case 'UL' + %maybe check that U and L are defined + normalizedfVals = (fVals - optiProb.normalizationScheme.L)./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); %might have to check that U and L work! + otherwise + matRad_cfg.dispError('Normalization scheme not known!'); + end + end + + function normalizedGradient = normalizeGradients(optiProb,Gradient) + switch optiProb.normalizationScheme.type + case 'none' + normalizedGradient = Gradient; + case 'UL' + %maybe check that U and L are defined + normalizedfVals = Gradient./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); %might have to check that U and L work! + otherwise + matRad_cfg.dispError('Normalization scheme not known!'); + end + end + + function updatePenalties(optiProb,newPen) %does it handle grouping? + if numel(optiProb.objectives) ~= numel(newPen) + matRad_cfg.dispError('Number of objectives in optimization Problem not equal to number of new penalties to be set!'); + end + for i=1:numel(newPen) + optiProb.objectives{i}.penalty = newPen(i)*100; + end + end + end methods (Access = protected) @@ -117,6 +161,42 @@ grad = fac * (tmp ./ pNormVal).^(p-1); end - end -end + end + + + methods (Access = private) + function extractObjectivesAndConstraintsFromcst(optiProb,cst) + %used to store objectives in cell array as property of optimization Problem + optiProb.objidx = []; + optiProb.constridx = []; + optiProb.objectives = {}; + optiProb.constraints = {}; + + for i = 1:size(cst,1) % loop over cst + + if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) + for j = 1:numel(cst{i,6}) + %check whether dose objective or constraint + obj = cst{i,6}{j}; + if isstruct(cst{i,6}{j}) + obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); + end + if contains(class(obj),'DoseObjectives') + optiProb.objidx = [optiProb.objidx;i,j]; + obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); + optiProb.objectives(end+1) = {obj}; + + elseif contains(class(obj),'DoseConstraints') + optiProb.constridx = [optiProb.constridx;i,j]; + obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); + optiProb.constraints(end+1) = {obj}; + end + end + end + end + end + + + end +end diff --git a/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m b/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m index c355e1da7..15056327c 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m +++ b/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m @@ -32,7 +32,6 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % get current dose / effect / RBExDose vector optiProb.BP.compute(dij,w); d = optiProb.BP.GetResult(); @@ -50,96 +49,77 @@ c = []; % compute objective function for every VOI. -for i = 1:size(cst,1) - - % Only take OAR or target VOI. - if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) - - % loop over the number of constraints for the current VOI - for j = 1:numel(cst{i,6}) +for i = 1:size(optiProb.constridx,1) - constraint = cst{i,6}{j}; + constraint = optiProb.constraints{i}; + curConidx = optiProb.constridx(i,1); + + robustness = constraint.robustness; - % only perform computations for constraints - if isa(constraint,'DoseConstraints.matRad_DoseConstraint') + switch robustness + case 'none' % if conventional opt: just sum objectives of nominal dose + d_i = d{1}(cst{curConidx,4}{1}); + c = [c; constraint.computeDoseConstraintFunction(d_i)]; + + case 'PROB' % if prob opt: sum up expectation value of objectives + + d_i = dExp{1}(cst{curConidx,4}{1}); + c = [c; constraint.computeDoseConstraintFunction(d_i)]; + + case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D VWWC optimization is currently not supported'); + end + + % prepare min/max dose vector + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end - % rescale dose parameters to biological optimization quantity if required - constraint = optiProb.BP.setBiologicalDosePrescriptions(constraint,cst{i,5}.alphaX,cst{i,5}.betaX); + d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); - % retrieve the robustness type - robustness = constraint.robustness; + d_max = max(d_Scen,[],2); + d_min = min(d_Scen,[],2); - switch robustness - case 'none' % if conventional opt: just sum objectives of nominal dose - d_i = d{1}(cst{i,4}{1}); - c = [c; constraint.computeDoseConstraintFunction(d_i)]; - - case 'PROB' % if prob opt: sum up expectation value of objectives - - d_i = dExp{1}(cst{i,4}{1}); - c = [c; constraint.computeDoseConstraintFunction(d_i)]; - - case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - - d_max = max(d_Scen,[],2); - d_min = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_max; - elseif isequal(cst{i,3},'TARGET') - d_i = d_min; - end - - c = [c; constraint.computeDoseConstraintFunction(d_i)]; - - case 'VWWC_INV' %inverse voxel-wise conformitiy - takes maximum dose in TARGET and minimum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D inverted VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector - if ~exist('d_tmp','var') - d_tmp = [d{:}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - d_max = max(d_Scen,[],2); - d_min = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_min; - elseif isequal(cst{i,3},'TARGET') - d_i = d_max; - end - - c = [c; constraint.computeDoseConstraintFunction(d_i)]; - otherwise - matRad_cfg.dispError('Robustness setting %s not yet supported!',constraint.robustness); + if isequal(cst{curConidx,3},'OAR') + d_i = d_max; + elseif isequal(cst{curConidx,3},'TARGET') + d_i = d_min; end + c = [c; constraint.computeDoseConstraintFunction(d_i)]; - end + case 'VWWC_INV' %inverse voxel-wise conformitiy - takes maximum dose in TARGET and minimum in OAR + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D inverted VWWC optimization is currently not supported'); + end + + % prepare min/max dose vector + if ~exist('d_tmp','var') + d_tmp = [d{:}]; + end + + d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); + d_max = max(d_Scen,[],2); + d_min = min(d_Scen,[],2); + + if isequal(cst{curConidx,3},'OAR') + d_i = d_min; + elseif isequal(cst{curConidx,3},'TARGET') + d_i = d_max; + end + + c = [c; constraint.computeDoseConstraintFunction(d_i)]; + otherwise + matRad_cfg.dispError('Robustness setting %s not yet supported!',constraint.robustness); + end - end % if we are a constraint - - end % over all defined constraints & objectives - -end % if structure not empty and oar or target - -end % over all structures +end % if we are a constraint +end + % if structure not empty and oar or target diff --git a/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m b/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m index a411cc5a2..e7f74cc22 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m +++ b/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m @@ -32,7 +32,6 @@ % LICENSE file. % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % get current dose / effect / RBExDose vector %d = matRad_backProjection(w,dij,optiProb); %d = optiProb.matRad_backProjection(w,dij); @@ -44,6 +43,7 @@ % initialize projection matrices and id containers DoseProjection{1} = sparse([]); +%DoseProjection{1} = []; mAlphaDoseProjection{1} = sparse([]); mSqrtBetaDoseProjection{1} = sparse([]); voxelID = []; @@ -59,154 +59,138 @@ contourScen = fullScen{1}; % compute objective function for every VOI. -for i = 1:size(cst,1) +for i = 1:size(optiProb.constridx,1) - % Only take OAR or target VOI. - if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) - - % loop over the number of constraints for the current VOI - for j = 1:numel(cst{i,6}) + constraint = optiProb.constraints{i}; %Get the Optimization Object + curConidx = optiProb.constridx(i,1); + robustness = constraint.robustness; + switch robustness - constraint = cst{i,6}{j}; %Get the Optimization Object - - % only perform computations for constraints - if isa(constraint,'DoseConstraints.matRad_DoseConstraint') + case 'none' % if conventional opt: just sum objectiveectives of nominal dose + d_i = d{1}(cst{curConidx,4}{1}); + jacobSub = constraint.computeDoseConstraintJacobian(d_i); + + case 'PROB' % if prob opt: sum up expectation value of objectives - % retrieve the robustness type - robustness = constraint.robustness; + d_i = dExp{1}(cst{curConidx,4}{1}); + jacobSub = constraint.computeDoseConstraintJacobian(d_i); - % rescale dose parameters to biological optimization quantity if required - constraint = optiProb.BP.setBiologicalDosePrescriptions(constraint,cst{i,5}.alphaX,cst{i,5}.betaX); + case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D VWWC optimization is currently not supported'); + end - switch robustness - - case 'none' % if conventional opt: just sum objectiveectives of nominal dose - d_i = d{1}(cst{i,4}{1}); - jacobSub = constraint.computeDoseConstraintJacobian(d_i); - - case 'PROB' % if prob opt: sum up expectation value of objectives - - d_i = dExp{1}(cst{i,4}{1}); - jacobSub = constraint.computeDoseConstraintJacobian(d_i); - - case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - - d_max = max(d_Scen,[],2); - d_min = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_max; - elseif isequal(cst{i,3},'TARGET') - d_i = d_min; - end - jacobSub = constraint.computeDoseConstraintJacobian(d_i); - - case 'VWWC_INV' %inverse voxel-wise conformitiy - takes maximum dose in TARGET and minimum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D inverted VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - - d_max = max(d_Scen,[],2); - d_min = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_min; - elseif isequal(cst{i,3},'TARGET') - d_i = d_max; - end - jacobSub = constraint.computeDoseConstraintJacobian(d_i); - - otherwise - matRad_cfg.dispError('Robustness setting %s not yet supported!',constraint.robustness); + % prepare min/max dose vector + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end + + d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); + + d_max = max(d_Scen,[],2); + d_min = min(d_Scen,[],2); + + if isequal(cst{curConidx,3},'OAR') + d_i = d_max; + elseif isequal(cst{curConidx,3},'TARGET') + d_i = d_min; + end + jacobSub = constraint.computeDoseConstraintJacobian(d_i); + + case 'VWWC_INV' %inverse voxel-wise conformitiy - takes maximum dose in TARGET and minimum in OAR + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D inverted VWWC optimization is currently not supported'); end - nConst = size(jacobSub,2); + % prepare min/max dose vector + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end + + d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); - %Iterate through columns of the sub-jacobian - if isa(optiProb.BP,'matRad_DoseProjection') && ~isempty(jacobSub) || isa(optiProb.BP,'matRad_ConstantRBEProjection') - - startIx = size(DoseProjection{1},2) + 1; - %First append the Projection matrix with sparse zeros - DoseProjection{1} = [DoseProjection{1},sparse(dij.doseGrid.numOfVoxels,nConst)]; - - %Now directly write the jacobian in there - DoseProjection{1}(cst{i,4}{1},startIx:end) = jacobSub; - - elseif isa(optiProb.BP,'matRad_EffectProjection') && ~isempty(jacobSub) - - if isa(optiProb.BP,'matRad_VariableRBEProjection') - scaledEffect = (dij.gamma(cst{i,4}{1}) + d_i); - jacobSub = jacobSub./(2*dij.bx(cst{i,4}{1}) .* scaledEffect); - end - - startIx = size(mAlphaDoseProjection{1},2) + 1; - - %First append the alphaDose matrix with sparse - %zeros then insert - mAlphaDoseProjection{1} = [mAlphaDoseProjection{1},sparse(dij.doseGrid.numOfVoxels,nConst)]; - mAlphaDoseProjection{1}(cst{i,4}{1},startIx:end) = jacobSub; - - %The betadose has a different structure due to the - %quadratic transformation, but in principle the - %same as above - mSqrtBetaDoseProjection{1} = [mSqrtBetaDoseProjection{1}, sparse(repmat(cst{i,4}{1},nConst,1),repmat(1:numel(cst{i,4}{1}),1,nConst),2*reshape(jacobSub',[],1),dij.doseGrid.numOfVoxels,nConst*numel(cst{i,4}{1}))]; - - if isempty(constraintID) - newID = 1; - else - newID = constraintID(end)+1; - end - - voxelID = [voxelID;repmat(cst{i,4}{1},nConst,1)]; %Keep track of voxels for organizing the sqrt(beta)Dose projection later - constraintID = [constraintID, ... - reshape(ones(numel(cst{i,4}{1}),1)*[newID:newID+nConst-1],[1 nConst*numel(cst{i,4}{1})])]; %Keep track of constraints for organizing the sqrt(beta)Dose projection later + d_max = max(d_Scen,[],2); + d_min = min(d_Scen,[],2); + + if isequal(cst{curConidx,3},'OAR') + d_i = d_min; + elseif isequal(cst{curConidx,3},'TARGET') + d_i = d_max; end + jacobSub = constraint.computeDoseConstraintJacobian(d_i); - + otherwise + matRad_cfg.dispError('Robustness setting %s not yet supported!',constraint.robustness); + end + + nConst = size(jacobSub,2); + + %Iterate through columns of the sub-jacobian + if isa(optiProb.BP,'matRad_DoseProjection') && ~isempty(jacobSub) || isa(optiProb.BP,'matRad_ConstantRBEProjection') + + startIx = size(DoseProjection{1},2) + 1; + %First append the Projection matrix with sparse zeros + DoseProjection{1} = [DoseProjection{1},sparse(dij.doseGrid.numOfVoxels,nConst)]; +% DoseProjection{1} = [DoseProjection{1},zeros(dij.doseGrid.numOfVoxels,nConst)]; + + %Now directly write the jacobian in there + DoseProjection{1}(cst{curConidx,4}{1},startIx:end) = jacobSub; + + + elseif isa(optiProb.BP,'matRad_EffectProjection') && ~isempty(jacobSub) + + if isa(optiProb.BP,'matRad_VariableRBEProjection') + scaledEffect = (dij.gamma(cst{curConidx,4}{1}) + d_i); + jacobSub = jacobSub./(2*dij.bx(cst{curConidx,4}{1}) .* scaledEffect); + end + + startIx = size(mAlphaDoseProjection{1},2) + 1; + + %First append the alphaDose matrix with sparse + %zeros then insert + mAlphaDoseProjection{1} = [mAlphaDoseProjection{1},sparse(dij.doseGrid.numOfVoxels,nConst)]; + mAlphaDoseProjection{1}(cst{curConidx,4}{1},startIx:end) = jacobSub; + + %The betadose has a different structure due to the + %quadratic transformation, but in principle the + %same as above + mSqrtBetaDoseProjection{1} = [mSqrtBetaDoseProjection{1}, sparse(repmat(cst{curConidx,4}{1},nConst,1),repmat(1:numel(cst{curConidx,4}{1}),1,nConst),2*reshape(jacobSub',[],1),dij.doseGrid.numOfVoxels,nConst*numel(cst{curConidx,4}{1}))]; + + if isempty(constraintID) + newID = 1; + else + newID = constraintID(end)+1; end + voxelID = [voxelID;repmat(cst{curConidx,4}{1},nConst,1)]; %Keep track of voxels for organizing the sqrt(beta)Dose projection later + constraintID = [constraintID, ... + reshape(ones(numel(cst{curConidx,4}{1}),1)*[newID:newID+nConst-1],[1 nConst*numel(cst{curConidx,4}{1})])]; %Keep track of constraints for organizing the sqrt(beta)Dose projection later end - - end - + + end - + + scenario = 1; % enter if statement also for protons using a constant RBE if isa(optiProb.BP,'matRad_DoseProjection') - if ~isempty(DoseProjection{scenario}) - jacob = DoseProjection{scenario}' * dij.physicalDose{scenario}; + jacob = transpose(DoseProjection{scenario}) * dij.physicalDose{scenario}; %for some reason here faster than shorthand notation + end elseif isa(optiProb.BP,'matRad_ConstantRBEProjection') if ~isempty(DoseProjection{scenario}) - jacob = DoseProjection{scenario}' * dij.RBE * dij.physicalDose{scenario}; + %jacob = DoseProjection{scenario}' * dij.RBE * dij.physicalDose{scenario}; + jacob = dij.RBE * (DoseProjection{scenario}' * dij.physicalDose{scenario}); end elseif isa(optiProb.BP,'matRad_EffectProjection') @@ -220,5 +204,4 @@ mSqrtBetaDoseProjection{scenario}' * dij.mSqrtBetaDose{scenario}; end -end - +end \ No newline at end of file diff --git a/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m b/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m index 000516e02..f8a875780 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m +++ b/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m @@ -28,61 +28,19 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -BPtype = class(optiProb.BP); -isEffectBP = strcmp(BPtype,'matRad_EffectProjection'); - % Initialize bounds cl = []; cu = []; % compute objective function for every VOI. -for i = 1:size(cst,1) - - % Only take OAR or target VOI. - if ~isempty(cst{i,4}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) - - % loop over the number of constraints for the current VOI - for j = 1:numel(cst{i,6}) - - optiFunc = cst{i,6}{j}; - - % only perform computations for constraints -%{ - if ~isempty(strfind(cst{i,6}(j).type,'constraint')) - - if isequal(options.quantityOpt,'effect') - param = cst{i,5}.alphaX .* cst{i,6}(j).dose + cst{i,5}.betaX .* cst{i,6}(j).dose.^2; - else - param = cst{i,6}(j).dose; - end - - if strcmp(cst{i,6}(j).robustness,'none') || strcmp(cst{i,6}(j).robustness,'probabilistic') || strcmp(cst{i,6}(j).robustness,'VWWC') ||... - strcmp(cst{i,6}(j).robustness,'COWC') || strcmp(cst{i,6}(j).robustness,'VWWC_CONF')|| strcmp(cst{i,6}(j).robustness,'OWC') - - - [clTmp,cuTmp] = matRad_getConstBounds(cst{i,6}(j),param); -%} - %if ~isempty(strfind(cst{i,6}{j}.type,'constraint')) - if isa(optiFunc,'DoseConstraints.matRad_DoseConstraint') - - if isEffectBP - - doses = optiFunc.getDoseParameters(); - effect = cst{i,5}.alphaX*doses + cst{i,5}.betaX*doses.^2; - - optiFunc = optiFunc.setDoseParameters(effect); - end - - cl = [cl;optiFunc.lowerBounds(numel(cst{i,4}{1}))]; - cu = [cu;optiFunc.upperBounds(numel(cst{i,4}{1}))]; - - %end - end - - end % over all objectives of structure +for i = 1:size(optiProb.constridx,1) + obj = optiProb.constraints{i}; + curConidx = optiProb.constridx(i,1); - end % if structure not empty and target or oar + cl = [cl;obj.lowerBounds(numel(cst{curConidx,4}{1}))]; + cu = [cu;obj.upperBounds(numel(cst{curConidx,4}{1}))]; + +end -end % over all structures - + diff --git a/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m b/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m index ab060719f..edb23fc3b 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m +++ b/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m @@ -19,7 +19,7 @@ % References % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Copyright 2016 the matRad development team. % @@ -31,26 +31,16 @@ % LICENSE file. % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % Initializes constraints +% Initializes constraints jacobStruct = sparse([]); - % compute objective function for every VOI. -for i = 1:size(cst,1) - % Only take OAR or target VOI. - if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) - % loop over the number of constraints for the current VOI - for j = 1:numel(cst{i,6}) - - obj = cst{i,6}{j}; - - % only perform computations for constraints - if isa(obj,'DoseConstraints.matRad_DoseConstraint') - - % get the jacobian structure depending on dose - jacobDoseStruct = obj.getDoseConstraintJacobianStructure(numel(cst{i,4}{1})); - nRows = size(jacobDoseStruct,2); - jacobStruct = [jacobStruct; repmat(spones(mean(dij.physicalDose{1}(cst{i,4}{1},:))),nRows,1)]; - - end - end - end - end \ No newline at end of file +% compute objective function for every VOI. +for i = 1:size(optiProb.constridx,1) + obj = optiProb.constraints{i}; + curConidx = optiProb.constridx(i,1); + + % get the jacobian structure depending on dose + jacobDoseStruct = obj.getDoseConstraintJacobianStructure(numel(cst{curConidx,4}{1})); + nRows = size(jacobDoseStruct,2); + jacobStruct = [jacobStruct; repmat(spones(mean(dij.physicalDose{1}(cst{curConidx,4}{1},:))),nRows,1)]; + +end \ No newline at end of file diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m index 6fb610331..dad91658d 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m @@ -1,221 +1,95 @@ function f = matRad_objectiveFunction(optiProb,w,dij,cst) -% matRad IPOPT objective function wrapper -% -% call -% f = matRad_objectiveFuncWrapper(optiProb,w,dij,cst) -% -% input -% optiProb: matRad optimization problem -% w: beamlet/ pencil beam weight vector -% dij: matRad dose influence struct -% cst: matRad cst struct -% scenario: index of dij scenario to consider (optional: default 1) -% -% output -% f: objective function value -% -% References -% - -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2016 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -matRad_cfg = MatRad_Config.instance(); - -% get current dose / effect / RBExDose vector -optiProb.BP.compute(dij,w); -d = optiProb.BP.GetResult(); - -% get probabilistic quantities (nearly no overhead if empty) -[dExp,dOmega] = optiProb.BP.GetResultProb(); - -% get the used scenarios -useScen = optiProb.BP.scenarios; -scenProb = optiProb.BP.scenarioProb; - -% retrieve matching 4D scenarios -fullScen = cell(ndims(d),1); -[fullScen{:}] = ind2sub(size(d),useScen); -contourScen = fullScen{1}; - -% initialize f -f = 0; - -% required for COWC opt -f_COWC = zeros(numel(useScen),1); + % matRad IPOPT objective function wrapper + % + % call + % f = matRad_objectiveFuncWrapper(optiProb,w,dij,cst) + % + % input + % optiProb: matRad optimization problem + % w: beamlet/ pencil beam weight vector + % dij: matRad dose influence struct + % cst: matRad cst struct + % scenario: index of dij scenario to consider (optional: default 1) + % + % output + % f: objective function value + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2016 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + fIndv = matRad_objectiveFunctions(optiProb,w,dij,cst); + %fIndv should be an mxn matrix where m is the number of objectives and n should be the number of scenarios used + + switch optiProb.normalizationScheme.type + case 'UL' %does not make sense together with robustness or scenarios? -> Add check? + fIndv = optiProb.normalizeObjectives(fIndv')';%ISSUES IF COWC is used - + end -% compute objective function for every VOI. -for i = 1:size(cst,1) + %TODO: sum up over scenarios - % Only take OAR or target VOI. - if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) - - % loop over the number of constraints for the current VOI - for j = 1:numel(cst{i,6}) - - objective = cst{i,6}{j}; - - % only perform gradient computations for objectiveectives - if isa(objective,'DoseObjectives.matRad_DoseObjective') - - % rescale dose parameters to biological optimization quantity if required - objective = optiProb.BP.setBiologicalDosePrescriptions(objective,cst{i,5}.alphaX,cst{i,5}.betaX); - - % retrieve the robustness type - robustness = objective.robustness; - - switch robustness - case 'none' % if conventional opt: just sum objectives of nominal dose - for ixScen = useScen - d_i = d{ixScen}(cst{i,4}{useScen(1)}); - f = f + objective.penalty * objective.computeDoseObjectiveFunction(d_i); - end - - case 'STOCH' % if prob opt: sum up expectation value of objectives - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - d_i = d{ixScen}(cst{i,4}{ixContour}); - - f = f + scenProb(s) * objective.penalty*objective.computeDoseObjectiveFunction(d_i); - - end - - case 'PROB' % if prob opt: sum up expectation value of objectives - - d_i = dExp{1}(cst{i,4}{1}); - - f = f + objective.penalty*objective.computeDoseObjectiveFunction(d_i); - - p = objective.penalty/numel(cst{i,4}{1}); - - % only one variance term per VOI - if j == 1 - f = f + p * w' * dOmega{i,1}; - end - - case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - - d_max = max(d_Scen,[],2); - d_min = min(d_Scen,[],2); - if isequal(cst{i,3},'OAR') - d_i = d_max; - elseif isequal(cst{i,3},'TARGET') - d_i = d_min; - end - - f = f + objective.penalty*objective.computeDoseObjectiveFunction(d_i); - - case 'VWWC_INV' %inverse voxel-wise conformitiy - consider the maximum and minimum dose in the target and optimize the dose conformity - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispWarning('4D inverted VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - d_max = max(d_Scen,[],2); - d_min = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_min; - elseif isequal(cst{i,3},'TARGET') - d_i = d_max; - end - - f = f + objective.penalty*objective.computeDoseObjectiveFunction(d_i); - - case 'COWC' % composite worst case consideres ovarall the worst objective function value - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - d_i = d{ixScen}(cst{i,4}{ixContour}); - - f_COWC(s) = f_COWC(s) + objective.penalty*objective.computeDoseObjectiveFunction(d_i); - end - - case 'OWC' % objective-wise worst case considers the worst individual objective function value - - f_OWC = zeros(numel(useScen),1); - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - d_i = d{ixScen}(cst{i,4}{ixContour}); - f_OWC(s) = objective.penalty*objective.computeDoseObjectiveFunction(d_i); - end - - % compute the maximum objective function value - switch optiProb.useMaxApprox - case 'logsumexp' - fMax = optiProb.logSumExp(f_OWC); - case 'pnorm' - fMax = optiProb.pNorm(f_OWC,numel(useScen)); - case 'none' - fMax = max(f_OWC); - case 'otherwise' - matRad_cfg.dispWarning('Unknown maximum approximation desired. Using ''none'' instead.'); - fMax = max(f_OWC); - end - f = f + fMax; - - otherwise - matRad_cfg.dispError('Robustness setting %s not supported!',objective.robustness); - - end %robustness type - end % objective check - end %objective loop - end %empty check -end %cst structure loop - - -%Handling the maximum of the composite worst case part -fMax = max(f_COWC(:)); -if fMax > 0 - switch optiProb.useMaxApprox - case 'logsumexp' - fMax = optiProb.logSumExp(f_COWC); - case 'pnorm' - fMax = optiProb.pNorm(f_COWC,numel(useScen)); - case 'none' - fMax = max(f_COWC); - case 'otherwise' - matRad_cfg.dispWarning('Unknown maximum approximation desired. Using ''none'' instead.'); - fMax = max(f_COWC); + %COWC calculation + + %get indices of objectives and their respective penalties + COWCidxs = []; + idxs = []; + penalties = []; + COWCpenalties = []; + f = 0; + + for i = 1:numel(optiProb.objectives) + if strcmp(optiProb.objectives{i}.robustness,'COWC') + COWCidxs = [COWCidxs,i]; + COWCpenalties = [COWCpenalties,optiProb.objectives{i}.penalty]; + else + idxs = [idxs,i]; + penalties = [penalties,optiProb.objectives{i}.penalty]; + end + end + if isempty(COWCidxs) + f_COWC = [0]; + else + f_COWCs = fIndv(COWCidxs,:); + f_COWC = COWCpenalties*f_COWCs; + end%sum over scenarios respect penalties + + fMax = max(f_COWC(:)); + if fMax > 0 + switch optiProb.useMaxApprox + case 'logsumexp' + fMax = optiProb.logSumExp(f_COWC); + case 'pnorm' + fMax = optiProb.pNorm(f_COWC,numel(useScen)); + case 'none' + fMax = max(f_COWC); + case 'otherwise' + matRad_cfg.dispWarning('Unknown maximum approximation desired. Using ''none'' instead.'); + fMax = max(f_COWC); + end + end + + f = f + fMax; + + %now sum up over other robustness scenarios + if isempty(idxs) + f_wo_COWC = [0]; + else + f_wo_COWCs = fIndv(idxs,:); + f_wo_COWC = sum(penalties*f_wo_COWCs,2); %sum over scenarios? end -end -%Sum up max of composite worst case part -f = f + fMax; + f = f + f_wo_COWC; +end \ No newline at end of file diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m new file mode 100644 index 000000000..51f608a3f --- /dev/null +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m @@ -0,0 +1,202 @@ +function fIndv = matRad_objectiveFunctions(optiProb,w,dij,cst) +% matRad IPOPT objective function wrapper +% +% call +% fIndv = matRad_objectiveFunctions(optiProb,w,dij,cst) +% +% input +% optiProb: matRad optimization problem +% w: beamlet/ pencil beam weight vector +% dij: matRad dose influence struct +% cst: matRad cst struct +% scenario: index of dij scenario to consider (optional: default 1) +% +% output +% fIndv: m x n matrix that stores all objective function values +% m: number of objectives +% n: number of scenarios +% there are some inconsistencies when using robust optimization +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2016 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + matRad_cfg = MatRad_Config.instance(); + + % get current dose / effect / RBExDose vector + optiProb.BP.compute(dij,w); + d = optiProb.BP.GetResult(); + + % get probabilistic quantities (nearly no overhead if empty) + [dExp,dOmega] = optiProb.BP.GetResultProb(); + + % get the used scenarios + useScen = optiProb.BP.scenarios; + scenProb = optiProb.BP.scenarioProb; + + % retrieve matching 4D scenarios + fullScen = cell(ndims(d),1); + [fullScen{:}] = ind2sub(size(d),useScen); + contourScen = fullScen{1}; + + % initialize matrix with objective function values + fIndv = [zeros(numel(optiProb.objectives),numel(useScen))]; + + + %individual objective functions + for i = 1:size(optiProb.objidx,1) %loop over objectives + + objective = optiProb.objectives{i}; + curObjidx = optiProb.objidx(i,1); + + %calculation differs based on robustness + robustness = objective.robustness; + + + switch robustness + case 'none' % if conventional opt: just sum objectives of nominal dose + + for ixScen = useScen + d_i = d{ixScen}(cst{curObjidx,4}{useScen(1)}); + fInd = objective.computeDoseObjectiveFunction(d_i); + fIndv(i,ixScen) = fInd; + end + + case 'STOCH' % if prob opt: sum up expectation value of objectives + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + + fInd = scenProb(s) * objective.computeDoseObjectiveFunction(d_i); + fIndv(i,s) = fInd; + + end + + case 'PROB' % if prob opt: sum up expectation value of objectives TODO: CHECK FOR VALUE TO APPEND + + %NOT UPDATED YET! + d_i = dExp{1}(cst{curObjidx,4}{1}); + + fInd = objective.computeDoseObjectiveFunction(d_i); + fIndv = [fIndv fInd] + + p = 1/numel(cst{curObjidx,4}{1}); + + % only one variance term per VOI + if j == 1 + %need to add + fInd = p * w' * dOmega{i,1}; + fIndv(end) = fIndv(end) + fInd + end + + case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR + + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D VWWC optimization is currently not supported'); + end + + % prepare min/max dose vector + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end + + d_Scen = d_tmp(cst{curObjidx,4}{contourIx},:); + + d_max = max(d_Scen,[],2); + d_min = min(d_Scen,[],2); + + if isequal(cst{curObjidx,3},'OAR') + d_i = d_max; + elseif isequal(cst{curObjidx,3},'TARGET') + d_i = d_min; + end + + fInd = objective.computeDoseObjectiveFunction(d_i); + fIndv(i,1) = fInd; %no different scenarios? + + case 'VWWC_INV' %inverse voxel-wise conformitiy - consider the maximum and minimum dose in the target and optimize the dose conformity + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispWarning('4D inverted VWWC optimization is currently not supported'); + end + + % prepare min/max dose vector + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end + + d_Scen = d_tmp(cst{curObjidx,4}{contourIx},:); + d_max = max(d_Scen,[],2); + d_min = min(d_Scen,[],2); + + if isequal(cst{curObjidx,3},'OAR') + d_i = d_min; + elseif isequal(cst{curObjidx,3},'TARGET') + d_i = d_max; + end + + fInd = objective.computeDoseObjectiveFunction(d_i); + fIndv(i,1) = fInd; + + case 'COWC' % composite worst case consideres ovarall the worst objective function value + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + fIndv(i,s) = objective.computeDoseObjectiveFunction(d_i); + end + + case 'OWC' % objective-wise worst case considers the worst individual objective function value + + f_OWC = zeros(numel(useScen),1); + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + f_OWC(s) = objective.computeDoseObjectiveFunction(d_i); + end + + % compute the maximum objective function value + switch optiProb.useMaxApprox + case 'logsumexp' + fMax = optiProb.logSumExp(f_OWC); + case 'pnorm' + fMax = optiProb.pNorm(f_OWC,numel(useScen)); + case 'none' + fMax = max(f_OWC); + case 'otherwise' + matRad_cfg.dispWarning('Unknown maximum approximation desired. Using ''none'' instead.'); + fMax = max(f_OWC); + end + fIndv(i,1) = fMax; %does this make sense? + + otherwise + matRad_cfg.dispError('Robustness setting %s not supported!',objective.robustness); + + end %robustness type + end +end \ No newline at end of file diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m index eb845956f..c7e9ef629 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m @@ -33,7 +33,6 @@ % LICENSE file. % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - matRad_cfg = MatRad_Config.instance(); % get current dose / effect / RBExDose vector @@ -55,6 +54,7 @@ doseGradient = cell(size(dij.physicalDose)); doseGradient(useScen) = {zeros(dij.doseGrid.numOfVoxels,1)}; + %For probabilistic optimization vOmega = 0; @@ -62,213 +62,207 @@ f_COWC = zeros(size(dij.physicalDose)); % compute objective function for every VOI. -for i = 1:size(cst,1) - - % Only take OAR or target VOI. - if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) +for i = 1:size(optiProb.objidx,1) + objective = optiProb.objectives{i}; + curObjidx = optiProb.objidx(i,1); + + % retrieve the robustness type + robustness = objective.robustness; + + + switch robustness + case 'none' % if conventional opt: just sum objectives of nominal dose + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + %add to dose gradient + %%TEMPORARY ADDITION TIL I FIGURE OUT HOW TO HANDLE WITH ROBUSTNESS + if isfield(optiProb.normalizationScheme,'U') && isfield(optiProb.normalizationScheme,'L') + Ui = optiProb.normalizationScheme.U(i); + Li = optiProb.normalizationScheme.L(i); + else + Ui = 1; + Li = 0; + end + doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + objective.penalty*1/(Ui-Li)*objective.computeDoseObjectiveGradient(d_i); + end + case 'STOCH' % perform stochastic optimization with weighted / random scenarios + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + + doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + ... + (objective.penalty*objective.computeDoseObjectiveGradient(d_i) * scenProb(s)); + + end + + case 'PROB' % use the expectation value and the integral variance influence matrix + %First check the speficic cache for probabilistic + if ~exist('doseGradientExp','var') + doseGradientExp{1} = zeros(dij.doseGrid.numOfVoxels,1); + end + + d_i = dExp{1}(cst{curObjidx,4}{1}); + + doseGradientExp{1}(cst{curObjidx,4}{1}) = doseGradientExp{1}(cst{curObjidx,4}{1}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); + + p = objective.penalty/numel(cst{curObjidx,4}{1}); + + vOmega = vOmega + p * dOmega{i,1}; - % loop over the number of constraints and objectives for the current VOI - for j = 1:numel(cst{i,6}) + case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D VWWC optimization is currently not supported'); + end + + % prepare min/max dose vector for voxel-wise worst case + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end + + d_Scen = d_tmp(cst{curObjidx,4}{contourIx},:); + [d_max,max_ix] = max(d_Scen,[],2); + [d_min,min_ix] = min(d_Scen,[],2); + + if isequal(cst{curObjidx,3},'OAR') + d_i = d_max; + elseif isequal(cst{curObjidx,3},'TARGET') + d_i = d_min; + end - %Get current optimization function - objective = cst{i,6}{j}; + if any(isnan(d_i)) + matRad_cfg.dispWarning('%d NaN values in gradient.',numel(isnan(d_i))); + end - % only perform gradient computations for objectives - if isa(objective,'DoseObjectives.matRad_DoseObjective') + deltaTmp = objective.penalty*objective.computeDoseObjectiveGradient(d_i); + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); - % retrieve the robustness type - robustness = objective.robustness; + if isequal(cst{curObjidx,3},'OAR') + currWcIx = double(max_ix == s); + elseif isequal(cst{curObjidx,3},'TARGET') + currWcIx = double(min_ix == s); + end - % rescale dose parameters to biological optimization quantity if required - objective = optiProb.BP.setBiologicalDosePrescriptions(objective,cst{i,5}.alphaX,cst{i,5}.betaX); + doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + deltaTmp.*currWcIx; + end + + case 'VWWC_INV' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR + contourIx = unique(contourScen); + if ~isscalar(contourIx) + % voxels need to be tracked through the 4D CT, + % not yet implemented + matRad_cfg.dispError('4D VWWC optimization is currently not supported'); + end + + % prepare min/max dose vector for voxel-wise worst case + if ~exist('d_tmp','var') + d_tmp = [d{useScen}]; + end + + d_Scen = d_tmp(cst{curObjidx,4}{1},:); + [d_max,max_ix] = max(d_Scen,[],2); + [d_min,min_ix] = min(d_Scen,[],2); + + if isequal(cst{curObjidx,3},'OAR') + d_i = d_min; + elseif isequal(cst{curObjidx,3},'TARGET') + d_i = d_max; + end + + if any(isnan(d_i)) + matRad_cfg.dispWarning('%d NaN values in gradFuncWrapper.',numel(isnan(d_i))); + end + + deltaTmp = objective.penalty*objective.computeDoseObjectiveGradient(d_i); + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + if isequal(cst{curObjidx,3},'OAR') + currWcIx = double(min_ix == s); + elseif isequal(cst{curObjidx,3},'TARGET') + currWcIx = double(max_ix == s); + end + + doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + deltaTmp.*currWcIx; + end + + case 'COWC' % composite worst case consideres ovarall the worst objective function value + %First check the speficic cache for COWC + if ~exist('delta_COWC','var') + delta_COWC = cell(size(doseGradient)); + delta_COWC(useScen) = {zeros(dij.doseGrid.numOfVoxels,1)}; + end + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + + f_COWC(ixScen) = f_COWC(ixScen) + objective.penalty*objective.computeDoseObjectiveFunction(d_i); + delta_COWC{ixScen}(cst{curObjidx,4}{ixContour}) = delta_COWC{ixScen}(cst{curObjidx,4}{ixContour}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); + end + + case 'OWC' % objective-wise worst case consideres the worst individual objective function value + %First check the speficic cache for COWC + f_OWC = zeros(size(doseGradient)); + + if ~exist('delta_OWC','var') + delta_OWC = cell(size(doseGradient)); + delta_OWC(useScen) = {zeros(dij.doseGrid.numOfVoxels,1)}; + end + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + + d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + + f_OWC(ixScen) = objective.penalty*objective.computeDoseObjectiveFunction(d_i); + + delta_OWC{ixScen}(cst{curObjidx,4}{ixContour}) = objective.penalty*objective.computeDoseObjectiveGradient(d_i); - switch robustness - case 'none' % if conventional opt: just sum objectiveectives of nominal dose - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - d_i = d{ixScen}(cst{i,4}{ixContour}); - %add to dose gradient - doseGradient{ixScen}(cst{i,4}{ixContour}) = doseGradient{ixScen}(cst{i,4}{ixContour}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); - end - case 'STOCH' % perform stochastic optimization with weighted / random scenarios - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - d_i = d{ixScen}(cst{i,4}{ixContour}); - - doseGradient{ixScen}(cst{i,4}{ixContour}) = doseGradient{ixScen}(cst{i,4}{ixContour}) + ... - (objective.penalty*objective.computeDoseObjectiveGradient(d_i) * scenProb(s)); - - end - - case 'PROB' % use the expectation value and the integral variance influence matrix - %First check the speficic cache for probabilistic - if ~exist('doseGradientExp','var') - doseGradientExp{1} = zeros(dij.doseGrid.numOfVoxels,1); - end - - d_i = dExp{1}(cst{i,4}{1}); - - doseGradientExp{1}(cst{i,4}{1}) = doseGradientExp{1}(cst{i,4}{1}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); - - p = objective.penalty/numel(cst{i,4}{1}); - - vOmega = vOmega + p * dOmega{i,1}; - - case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector for voxel-wise worst case - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{contourIx},:); - [d_max,max_ix] = max(d_Scen,[],2); - [d_min,min_ix] = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_max; - elseif isequal(cst{i,3},'TARGET') - d_i = d_min; - end - - if any(isnan(d_i)) - matRad_cfg.dispWarning('%d NaN values in gradient.',numel(isnan(d_i))); - end - - deltaTmp = objective.penalty*objective.computeDoseObjectiveGradient(d_i); - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - if isequal(cst{i,3},'OAR') - currWcIx = double(max_ix == s); - elseif isequal(cst{i,3},'TARGET') - currWcIx = double(min_ix == s); - end - - doseGradient{ixScen}(cst{i,4}{ixContour}) = doseGradient{ixScen}(cst{i,4}{ixContour}) + deltaTmp.*currWcIx; - end - - case 'VWWC_INV' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR - contourIx = unique(contourScen); - if ~isscalar(contourIx) - % voxels need to be tracked through the 4D CT, - % not yet implemented - matRad_cfg.dispError('4D VWWC optimization is currently not supported'); - end - - % prepare min/max dose vector for voxel-wise worst case - if ~exist('d_tmp','var') - d_tmp = [d{useScen}]; - end - - d_Scen = d_tmp(cst{i,4}{1},:); - [d_max,max_ix] = max(d_Scen,[],2); - [d_min,min_ix] = min(d_Scen,[],2); - - if isequal(cst{i,3},'OAR') - d_i = d_min; - elseif isequal(cst{i,3},'TARGET') - d_i = d_max; - end - - if any(isnan(d_i)) - matRad_cfg.dispWarning('%d NaN values in gradFuncWrapper.',numel(isnan(d_i))); - end - - deltaTmp = objective.penalty*objective.computeDoseObjectiveGradient(d_i); - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - if isequal(cst{i,3},'OAR') - currWcIx = double(min_ix == s); - elseif isequal(cst{i,3},'TARGET') - currWcIx = double(max_ix == s); - end - - doseGradient{ixScen}(cst{i,4}{ixContour}) = doseGradient{ixScen}(cst{i,4}{ixContour}) + deltaTmp.*currWcIx; - end - - case 'COWC' % composite worst case consideres ovarall the worst objective function value - %First check the speficic cache for COWC - if ~exist('delta_COWC','var') - delta_COWC = cell(size(doseGradient)); - delta_COWC(useScen) = {zeros(dij.doseGrid.numOfVoxels,1)}; - end - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - d_i = d{ixScen}(cst{i,4}{ixContour}); - - f_COWC(ixScen) = f_COWC(ixScen) + objective.penalty*objective.computeDoseObjectiveFunction(d_i); - delta_COWC{ixScen}(cst{i,4}{ixContour}) = delta_COWC{ixScen}(cst{i,4}{ixContour}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); - end - - case 'OWC' % objective-wise worst case consideres the worst individual objective function value - %First check the speficic cache for COWC - f_OWC = zeros(size(doseGradient)); - - if ~exist('delta_OWC','var') - delta_OWC = cell(size(doseGradient)); - delta_OWC(useScen) = {zeros(dij.doseGrid.numOfVoxels,1)}; - end - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - - d_i = d{ixScen}(cst{i,4}{ixContour}); - - f_OWC(ixScen) = objective.penalty*objective.computeDoseObjectiveFunction(d_i); - - delta_OWC{ixScen}(cst{i,4}{ixContour}) = objective.penalty*objective.computeDoseObjectiveGradient(d_i); - - end - - switch optiProb.useMaxApprox - case 'logsumexp' - [~,fGrad] = optiProb.logSumExp(f_OWC); - case 'pnorm' - [~,fGrad] = optiProb.pNorm(f_OWC,numel(useScen)); - case 'none' - [~,ix] = max(f_OWC(:)); - fGrad = zeros(size(f_OWC)); - fGrad(ix) = 1; - case 'otherwise' - matRad_cfg.dispWarning('Unknown maximum approximation desired. Using ''none'' instead.'); - [~,ix] = max(f_OWC(:)); - fGrad = zeros(size(f_OWC)); - fGrad(ix) = 1; - end - - for s = 1:numel(useScen) - ixScen = useScen(s); - ixContour = contourScen(s); - if fGrad(ixScen ) ~= 0 - doseGradient{ixScen}(cst{i,4}{ixContour}) = doseGradient{ixScen}(cst{i,4}{ixContour}) + fGrad(ixScen)*delta_OWC{ixScen}(cst{i,4}{ixContour}); - end - end - - otherwise - matRad_cfg.dispError('Robustness setting %s not supported!',objective.robustness); - - end %robustness type - end % objective check - end %objective loop + end + + switch optiProb.useMaxApprox + case 'logsumexp' + [~,fGrad] = optiProb.logSumExp(f_OWC); + case 'pnorm' + [~,fGrad] = optiProb.pNorm(f_OWC,numel(useScen)); + case 'none' + [~,ix] = max(f_OWC(:)); + fGrad = zeros(size(f_OWC)); + fGrad(ix) = 1; + case 'otherwise' + matRad_cfg.dispWarning('Unknown maximum approximation desired. Using ''none'' instead.'); + [~,ix] = max(f_OWC(:)); + fGrad = zeros(size(f_OWC)); + fGrad(ix) = 1; + end + + for s = 1:numel(useScen) + ixScen = useScen(s); + ixContour = contourScen(s); + if fGrad(ixScen ) ~= 0 + doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + fGrad(ixScen)*delta_OWC{ixScen}(cst{curObjidx,4}{ixContour}); + end + end + + otherwise + matRad_cfg.dispError('Robustness setting %s not supported!',objective.robustness); + + %objective loop end %empty check end %cst structure loop @@ -303,7 +297,7 @@ g = optiProb.BP.GetGradient(); for s = 1:numel(useScen) - weightGradient = weightGradient + g{useScen(s)}; + weightGradient = weightGradient + g{useScen(s)}; end if vOmega ~= 0 @@ -312,4 +306,4 @@ %Only implemented for first scenario now weightGradient = weightGradient + gProb{1}; -end +end \ No newline at end of file From bc7f21dc984be9bfcb256431552aa3a5e2015418 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 28 Jul 2023 12:50:15 +0200 Subject: [PATCH 02/32] Fixed bug with constraints and added some comments Readded function head to getConstraintBounds and more documentation. --- .../matRad_OptimizationProblem.m | 18 ++++++++++++++---- .../matRad_getConstraintBounds.m | 3 ++- .../matRad_objectiveGradient.m | 3 ++- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index 037ff56c9..cebd9b45a 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -93,10 +93,14 @@ end function normalizedfVals = normalizeObjectives(optiProb,fVals) + %function to normalize objectives (used for sandwich + %algorithms) switch optiProb.normalizationScheme.type case 'none' + %default case no normalization normalizedfVals = fVals; case 'UL' + %used to normalize with respect to min and max values %maybe check that U and L are defined normalizedfVals = (fVals - optiProb.normalizationScheme.L)./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); %might have to check that U and L work! otherwise @@ -105,23 +109,29 @@ end function normalizedGradient = normalizeGradients(optiProb,Gradient) + %function to normalize objectives (used for sandwich + %algorithms) switch optiProb.normalizationScheme.type + case 'none' + %default case no normalization normalizedGradient = Gradient; case 'UL' + %used to normalize with respect to min and max values %maybe check that U and L are defined - normalizedfVals = Gradient./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); %might have to check that U and L work! + normalizedGradient = Gradient./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); %might have to check that U and L work! otherwise matRad_cfg.dispError('Normalization scheme not known!'); end end - function updatePenalties(optiProb,newPen) %does it handle grouping? + function updatePenalties(optiProb,newPen) + %TODO: Allow grouping of objectives if numel(optiProb.objectives) ~= numel(newPen) matRad_cfg.dispError('Number of objectives in optimization Problem not equal to number of new penalties to be set!'); end for i=1:numel(newPen) - optiProb.objectives{i}.penalty = newPen(i)*100; + optiProb.objectives{i}.penalty = newPen(i)*100; %scaling of penalties with factor 100 end end @@ -166,7 +176,7 @@ function updatePenalties(optiProb,newPen) %does it handle grouping? methods (Access = private) function extractObjectivesAndConstraintsFromcst(optiProb,cst) - %used to store objectives in cell array as property of optimization Problem + %used to extract objectives from cst and store in cell array as property of optimization Problem optiProb.objidx = []; optiProb.constridx = []; optiProb.objectives = {}; diff --git a/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m b/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m index 71efc96f9..0b5c0ed82 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m +++ b/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m @@ -1,4 +1,5 @@ -% +function [cl,cu] = matRad_getConstraintBounds(optiProb,cst) +% matRad IPOPT get constraint bounds wrapper function % call % [cl,cu] = matRad_getConstraintBounds(optiProb,cst) % diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m index c7e9ef629..0c88e0b50 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m @@ -77,7 +77,8 @@ ixContour = contourScen(s); d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); %add to dose gradient - %%TEMPORARY ADDITION TIL I FIGURE OUT HOW TO HANDLE WITH ROBUSTNESS + %%THIS part should be changed -> see comment in pull request + if isfield(optiProb.normalizationScheme,'U') && isfield(optiProb.normalizationScheme,'L') Ui = optiProb.normalizationScheme.U(i); Li = optiProb.normalizationScheme.L(i); From 0faf8832ada5587c54afab2b5c93b7817633a570 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Tue, 15 Aug 2023 15:32:33 +0200 Subject: [PATCH 03/32] Added Pareto Sandwich support --- Pareto/matRad_ParetoOptimization.m | 631 ++++++++++++++++++ Pareto/plotting/matRad_plotPenaltyPoints.m | 48 ++ Pareto/testRun.mat | Bin 0 -> 2838724 bytes Pareto/tests/matRad_simplePhantom.m | 123 ++++ Pareto/tools/matRad_ParetoSurfFromFacets.m | 76 +++ Pareto/tools/matRad_generateAnchorPoints.m | 30 + Pareto/tools/matRad_generateDummyPoints.m | 44 ++ Pareto/tools/matRad_normalFromFacet.m | 51 ++ Pareto/tools/matRad_paretoCheck.m | 40 ++ matRad_plotParetoSurface.m | 62 ++ .../+DoseConstraints/matRad_MinMaxDose.m | 25 +- .../optimizer/matRad_OptimizerIPOPT.m | 7 +- 12 files changed, 1122 insertions(+), 15 deletions(-) create mode 100644 Pareto/matRad_ParetoOptimization.m create mode 100644 Pareto/plotting/matRad_plotPenaltyPoints.m create mode 100644 Pareto/testRun.mat create mode 100644 Pareto/tests/matRad_simplePhantom.m create mode 100644 Pareto/tools/matRad_ParetoSurfFromFacets.m create mode 100644 Pareto/tools/matRad_generateAnchorPoints.m create mode 100644 Pareto/tools/matRad_generateDummyPoints.m create mode 100644 Pareto/tools/matRad_normalFromFacet.m create mode 100644 Pareto/tools/matRad_paretoCheck.m create mode 100644 matRad_plotParetoSurface.m diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m new file mode 100644 index 000000000..91ba1381a --- /dev/null +++ b/Pareto/matRad_ParetoOptimization.m @@ -0,0 +1,631 @@ +function returnStruct = matRad_ParetoOptimization(dij,cst,pln,nIter,wInit) +% matRad inverse pareto planning wrapper function +% +% call +% [returnStruct] = matRad_paretoGeneration(dij,cst,pln,pen) +% [returnstruct] = matRad_paretoGeneration(dij,cst,pln,pen,wInit) +% +% input +% dij: matRad dij struct +% cst: matRad cst struct +% pln: matRad pln struct +% nIter: number of iterations to run/points to calculate after anchor point generation +% wInit: (optional) custom weights to initialize problems +% +% output +% retStruct: Structure contain +% +% References +% - https://dx.doi.org/10.2139/ssrn.1427721 +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2016 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +matRad_cfg = MatRad_Config.instance(); + +% consider VOI priorities +cst = matRad_setOverlapPriorities(cst); + +% check & adjust objectives and constraints internally for fractionation +for i = 1:size(cst,1) + %Compatibility Layer for old objective format + if isstruct(cst{i,6}) + cst{i,6} = arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6},'UniformOutput',false); + end + for j = 1:numel(cst{i,6}) + + obj = cst{i,6}{j}; + + %In case it is a default saved struct, convert to object + %Also intrinsically checks that we have a valid optimization + %objective or constraint function in the end + if ~isa(obj,'matRad_DoseOptimizationFunction') + try + obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); + catch + matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); + end + end + + obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); + + cst{i,6}{j} = obj; + end +end + +% resizing cst to dose cube resolution +cst = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... + dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); + +% find target indices and described dose(s) for weight vector +% initialization +V = []; +doseTarget = []; +ixTarget = []; + +for i = 1:size(cst,1) + if isequal(cst{i,3},'TARGET') && ~isempty(cst{i,6}) + V = [V;cst{i,4}{1}]; + + %Iterate through objectives/constraints + fDoses = []; + for fObjCell = cst{i,6} + dParams = fObjCell{1}.getDoseParameters(); + %Don't care for Inf constraints + dParams = dParams(isfinite(dParams)); + %Add to dose list + fDoses = [fDoses dParams]; + end + + doseTarget = [doseTarget fDoses]; + ixTarget = [ixTarget i*ones(1,length(fDoses))]; + end +end +[doseTarget,i] = max(doseTarget); +ixTarget = ixTarget(i); +wOnes = ones(dij.totalNumOfBixels,1); + +% calculate initial beam intensities wInit +% calculate initial beam intensities wInit +matRad_cfg.dispInfo('Estimating initial weights... '); + +if exist('wInit','var') + %do nothing as wInit was passed to the function + matRad_cfg.dispInfo('chosen provided wInit!\n'); + + % Write ixDose which is needed for the optimizer + if pln.bioParam.bioOpt + dij.ixDose = dij.bx~=0; + + %pre-calculations + dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); + dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); + end + +elseif strcmp(pln.bioParam.model,'constRBE') && strcmp(pln.radiationMode,'protons') + % check if a constant RBE is defined - if not use 1.1 + if ~isfield(dij,'RBE') + dij.RBE = 1.1; + end + + doseTmp = dij.physicalDose{1}*wOnes; + bixelWeight = (doseTarget)/(dij.RBE * mean(doseTmp(V))); + wInit = wOnes * bixelWeight; + matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); + +elseif pln.bioParam.bioOpt + % retrieve photon LQM parameter + [ax,bx] = matRad_getPhotonLQMParameters(cst,dij.doseGrid.numOfVoxels,dij.numOfScenarios); + + if ~isequal(dij.ax(dij.ax~=0),ax(dij.ax~=0)) || ... + ~isequal(dij.bx(dij.bx~=0),bx(dij.bx~=0)) + matRad_cfg.dispError('Inconsistent biological parameter - please recalculate dose influence matrix!\n'); + end + + for i = 1:size(cst,1) + + for j = 1:size(cst{i,6},2) + % check if prescribed doses are in a valid domain + if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') + matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); + end + + end + end + + dij.ixDose = dij.bx~=0; + + if isequal(pln.bioParam.quantityOpt,'effect') + + effectTarget = cst{ixTarget,5}.alphaX * doseTarget + cst{ixTarget,5}.betaX * doseTarget^2; + aTmp = dij.mAlphaDose{1}*wOnes; + bTmp = dij.mSqrtBetaDose{1} * wOnes; + p = sum(aTmp(V)) / sum(bTmp(V).^2); + q = -(effectTarget * length(V)) / sum(bTmp(V).^2); + + wInit = -(p/2) + sqrt((p^2)/4 -q) * wOnes; + + elseif isequal(pln.bioParam.quantityOpt,'RBExD') + + %pre-calculations + dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); + dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); + + % calculate current effect in target + aTmp = dij.mAlphaDose{1}*wOnes; + bTmp = dij.mSqrtBetaDose{1} * wOnes; + doseTmp = dij.physicalDose{1}*wOnes; + + CurrEffectTarget = aTmp(V) + bTmp(V).^2; + % ensure a underestimated biological effective dose + TolEstBio = 1.2; + % calculate maximal RBE in target + maxCurrRBE = max(-cst{ixTarget,5}.alphaX + sqrt(cst{ixTarget,5}.alphaX^2 + ... + 4*cst{ixTarget,5}.betaX.*CurrEffectTarget)./(2*cst{ixTarget,5}.betaX*doseTmp(V))); + wInit = ((doseTarget)/(TolEstBio*maxCurrRBE*max(doseTmp(V))))* wOnes; + end + + matRad_cfg.dispInfo('chosen weights adapted to biological dose calculation!\n'); +else + doseTmp = dij.physicalDose{1}*wOnes; + bixelWeight = (doseTarget)/mean(doseTmp(V)); + wInit = wOnes * bixelWeight; + matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); +end + + + + +%% calculate probabilistic quantities for probabilistic optimization if at least +% one robust objective is defined + +%Check how to use 4D data +if isfield(pln,'propOpt') && isfield(pln.propOpt,'scen4D') + scen4D = pln.propOpt.scen4D; +else + scen4D = 1; %Use only first 4D scenario for optimization +end + +%If "all" provided, use all scenarios +if isequal(scen4D,'all') + scen4D = 1:size(dij.physicalDose,1); +end + +linIxDIJ = find(~cellfun(@isempty,dij.physicalDose(scen4D,:,:)))'; + +FLAG_CALC_PROB = false; +FLAG_ROB_OPT = false; + + +for i = 1:size(cst,1) + for j = 1:numel(cst{i,6}) + if strcmp(cst{i,6}{j}.robustness,'PROB') && numel(linIxDIJ) > 1 + FLAG_CALC_PROB = true; + end + if ~strcmp(cst{i,6}{j}.robustness,'none') && numel(linIxDIJ) > 1 + FLAG_ROB_OPT = true; + end + end +end + +if FLAG_CALC_PROB + [dij] = matRad_calculateProbabilisticQuantities(dij,cst,pln); +end + + +% set optimization options +if ~FLAG_ROB_OPT || FLAG_CALC_PROB % if multiple robust objectives are defined for one structure then remove FLAG_CALC_PROB from the if clause + ixForOpt = scen4D; +else + ixForOpt = linIxDIJ; +end + +switch pln.bioParam.quantityOpt + case 'effect' + backProjection = matRad_EffectProjection; + case 'RBExD' + %Capture special case of constant RBE + if strcmp(pln.bioParam.model,'constRBE') + backProjection = matRad_ConstantRBEProjection; + else + backProjection = matRad_VariableRBEProjection; + end + case 'physicalDose' + backProjection = matRad_DoseProjection; + otherwise + warning(['Did not recognize bioloigcal setting ''' pln.probOpt.bioOptimization '''!\nUsing physical dose optimization!']); + backProjection = matRad_DoseProjection; +end + +%Give scenarios used for optimization +backProjection.scenarios = ixForOpt; +backProjection.scenarioProb = pln.multScen.scenProb; + +optiProb = matRad_OptimizationProblem(backProjection,cst); +optiProb.quantityOpt = pln.bioParam.quantityOpt; +if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') + optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; +end + +%Get Bounds +if ~isfield(pln.propOpt,'boundMU') + pln.propOpt.boundMU = false; +end + +if pln.propOpt.boundMU + if (isfield(dij,'minMU') || isfield(dij,'maxMU')) && ~isfield(dij,'numParticlesPerMU') + matRad_cfg.dispWarning('Requested MU bounds but number of particles per MU not set! Bounds will not be enforced and standard [0,Inf] will be used instead!'); + elseif ~isfield(dij,'minMU') && ~isfield(dij,'maxMU') + matRad_cfg.dispWarning('Requested MU bounds but machine bounds not defined in dij.minMU & dij.maxMU! Bounds will not be enforced and standard [0,Inf] will be used instead!'); + else + if isfield(dij,'minMU') + optiProb.minimumW = dij.numParticlesPerMU .* dij.minMU / 1e6; + matRad_cfg.dispInfo('Using lower MU bounds provided in dij!\n') + end + + if isfield(dij,'maxMU') + optiProb.maximumW = dij.numParticlesPerMU .* dij.maxMU / 1e6; + matRad_cfg.dispInfo('Using upper MU bounds provided in dij!\n') + end + end +else + matRad_cfg.dispInfo('Using standard MU bounds of [0,Inf]!\n') +end + +if ~isfield(pln.propOpt,'optimizer') + pln.propOpt.optimizer = 'IPOPT'; +end + +switch pln.propOpt.optimizer + case 'IPOPT' + optimizer = matRad_OptimizerIPOPT; + case 'fmincon' + optimizer = matRad_OptimizerFmincon; + otherwise + warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); + optimizer = matRad_OptimizerIPOPT; +end + +%check that number of penalties equals number of constraints + + +% PARETO PART +%get number of objectives at the start +objcount = numel(optiProb.objectives); + +%% generaete Anchor Points for optimization +penGrid = matRad_generateAnchorPoints(objcount); +%matRad_plotPenaltyGrid(penGrid); + +weights = zeros(numel(wInit),size(penGrid,1)); +fInd = zeros(size(penGrid,1),objcount); +objectiveFunctionVals = {}; +% loop over all penalty combinations + +for i = 1:size(penGrid,1) + optiProb.updatePenalties(penGrid(i,:)); + + + optimizer = optimizer.optimize(wInit,optiProb,dij,cst); + wOpt = optimizer.wResult; + info = optimizer.resultInfo; + weights(:,i) = wOpt; + %set values for warm start + %optimizer.optionsWarmStart.use = true; + %optimizer.optionsWarmStart.zl = info.zl; + %optimizer.optionsWarmStart.zu = info.zu; + %optimizer.optionsWarmStart.lambda = info.lambda; + fInd(i,:) = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; + objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; + +end + + + +%% try to normalize objectives + +optiProb.normalizationScheme.type = 'UL'; +optiProb.normalizationScheme.U = max(fInd,[],1); +optiProb.normalizationScheme.L = min(fInd,[],1); + +fInd = (fInd-optiProb.normalizationScheme.L)./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); + + + + +%{ +varToLoad = {'data'} +load('dataRennen.mat',varToLoad{:}) +weights = data.weights; +penGrid = data.penGrid(1:4,:); +weights = weights(:,1:4); +fInd = data.finds; +fInd = fInd(1:4,:); +%} + +%% Grouping +%{ +if isfield(pln.propOpt,'grouping') %if no grouping ignore + + switch pln.propOpt.grouping + case 'forced' %grouping of objectives forced by user -> How to store groups? Pln para? + if isfield(pln.propOpt,'groups') + groups = pln.propOpt.groups; %? + else + matRad_cfg.dispError('pln.propOpt.grouping set to forced, but no groups provided!'); + end + case 'Spearman' %grouping by correlation of spearman ranking + %tbd + 'Spearman ranking: TO BE IMPLEMENTED' + + end +end +%} +%Do we have to reoptimize as fInd would change size? +%{ +objcount = numel(groups); %update + +fInd = zeros(objcount); +[pen,penGrid] = matRad_generateAnchorPoints(objcount); +weights = zeros(numel(wInit),objcount); +%} +%% Generaete further points + +%initialize OPS boundaries +OPSA = []; +OPSb = []; +np = size(penGrid,1); + +% first on: "Balanced point" after anchor points (slightly different calculation for normal) +% + +[a,b,firstNormal] = matRad_normalFromFacet(fInd,1:np,1); + +penGrid(np+1,:) = abs(firstNormal); +newPen = abs(firstNormal); + +%update cst values + + +optiProb.updatePenalties(newPen); % change for groupings! + +%calculate new point + +optimizer = optimizer.optimize(wInit,optiProb,dij,cst); +wOpt = optimizer.wResult; +weights = [weights,wOpt]; +objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; +%wInit = wOpt; +fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; +fIndv = optiProb.normalizeObjectives(fIndv); +%fIndv = cellfun(@(group)sum(fIndv(:,group)),groups) +%grouping + +%change for groupings -> sum up over groups! +fInd = [fInd;fIndv]; + +removedfInd = []; +removedpenGrid = []; +removedweights = []; +removedOPSA = []; +removedOPSb = []; + + +OPSA = [OPSA;-penGrid(np+1,:)]; +OPSb = [OPSb;-1*fInd(np+1,:)*penGrid(np+1,:)']; +errors = []; +allErrors = {}; + +initSize = size(penGrid,1); + + +L = min(fInd,[],1); +U = max(fInd,[],1); +eps = U - L; + +%% remaining facets +%nIter = 100; +for i = 1:nIter + fprintf('Now in iteration %i',i) + %Step 1 calculate convex Hull -> Inner approximation (IPS) and gives facets + %Rennen Algorithm + fVals = fInd; + + %calculate epsilon value (used in error calculation) + + + + fValsMod = matRad_generateDummyPoints(fVals,U); %generate dummy points + % + [kmod,vol] = convhulln(fValsMod); + [kred,vol] = convhulln(fVals); + %check for relevant facets (those that contain points of the original + %fVals set) + IPSidxs = 1:size(fVals,1); + relFacetidxs = []; + + for j = 1:size(kmod,1) + if any(ismember(kmod(j,:),IPSidxs)) + relFacetidxs = [relFacetidxs,j]; + end + end + facetMods = kmod(relFacetidxs,:); + facetErrors = zeros(size(facetMods,1),1); + normals = zeros(size(facetMods)); + + %% + + %Loop over facets ands + for j = 1:size(relFacetidxs,2) + [facetPoints,refPoint,normal] = matRad_normalFromFacet(fValsMod,facetMods,j); + + + %check for sign of normals (should be redundant) + if all(normal<0) + continue + end + + %now check for OPS point for facet + lb = min(fVals,[],1); + ub = max(fVals,[],1); + z = linprog(normal,OPSA,OPSb,[],[],lb,ub); + + %hyperplane distance + b = refPoint*normal; + + %calculate error for each facet + + facetErrors(j) = (b-z'*normal)/(eps*normal); + normals(j,:) = normal; + + %{ + figure + trisurf(kmod,fValsMod(:,1),fValsMod(:,2),fValsMod(:,3),'FaceColor','cyan') + hold on + fill3(facetPoints(:,1),facetPoints(:,2),facetPoints(:,3),'green') + %} + end + allErrors(end+1) = {facetErrors}; + [A,I] = sort(facetErrors,'descend'); + + %%check for next facet to run + found = false; + facetNum= 1; + accuracy = 4; + + while ~found && facetNum <= numel(I) %loop over facets + idx = I(facetNum); + norm = normals(idx,:); + %check if facet has already been run + if ~any(ismember(round(penGrid,accuracy),round(norm,accuracy),'rows')) + + %update weights in cst + + optiProb.updatePenalties(norm); + paretoOptimal = false; + calcPointsForFacet = 0; + while ~paretoOptimal && calcPointsForFacet < 4 %more than 4 points? + if calcPointsForFacet < 3 + optimizer = optimizer.optimize(weights(:,end-calcPointsForFacet),optiProb,dij,cst); + else + optimizer = optimizer.optimize(wInit,optiProb,dij,cst); + end + %really necessary? + if optimizer.resultInfo.iter < 15 %sometimes optimizer will terminate fast (points tend to be not optimal!) + calcPointsForFacet = calcPointsForFacet + 1; + continue + end + %check number of iterations needed for optimzation + wOpt = optimizer.wResult; + + fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; + fIndv = optiProb.normalizeObjectives(fIndv); + %how does the newly generated point influence the pareto + %surface? + + dominatedPoints = matRad_paretoCheck(fInd,fIndv); + % if no point is dominated -> returns [] + % if the newly generated point is not optimal -> Returns array with a 0 inside + % if (a) previously generated point(s) is/are dominated by the + % newly generated point -> returns index in fInd -> Need to + % update penGrid, weights, fInd,OPSa,OPSb + + if isempty(dominatedPoints) + + paretoOptimal = true; + + elseif dominatedPoints == 0 + calcPointsForFacet = calcPointsForFacet + 1; + continue %% found point is dominated by previously calculated point -> has to be recalculated + + else %newly calculated point dominates points on the previous pareto surface + paretoOptimal = true; + %remove dominated points and related equations %might + %have to check if this fully works + removedfInd = [removedfInd;fInd(dominatedPoints,:)]; + removedpenGrid = [removedpenGrid;penGrid(dominatedPoints,:)]; + removedweights = [removedweights,weights(:,dominatedPoints)]; + + + fInd(dominatedPoints,:) = []; + penGrid(dominatedPoints,:) = []; + weights(:,dominatedPoints) = []; + %Issue if + if (dominatedPoints-objcount <=0) + 'Well well well' + else + removedOPSA = [removedOPSA;OPSA(dominatedPoints-objcount,:)]; + removedOPSb = [removedOPSb;OPSb(dominatedPoints-objcount,:)]; + OPSA(dominatedPoints-objcount,:) = []; % shifted index + OPSb(dominatedPoints-objcount,:) = []; + + end + %remove dominated points + + end + end + objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; + errors = [errors,facetErrors(idx)]; + newPen = norm; + %awInit = wOpt; + info = optimizer.resultInfo; + weights = [weights,wOpt]; + penGrid = [penGrid;newPen]; + + + %fIndv = cellfun(@(group)sum(fIndv(:,group)),groups) + fInd = [fInd;fIndv]; + + %% plot current convex hull and facet that was run + + figure + trisurf(kmod,fValsMod(:,1),fValsMod(:,2),fValsMod(:,3),'FaceColor','cyan') + hold on + fill3(fValsMod(facetMods(idx,:),1),fValsMod(facetMods(idx,:),2),fValsMod(facetMods(idx,:),3),'r') + + found = true; + end + facetNum = facetNum +1; + end + + + % when final point is found: Update OPSA and OPSb + + OPSA = [OPSA;-newPen]; %add normal vector of facet that was run + OPSb = [OPSb;-fIndv*newPen']; + +end + + + + + +%returnStruct.VOIObj = VOIObjNames; +returnStruct.OPSA = OPSA; +returnStruct.OPSb = OPSb; +returnStruct.weights = weights; +returnStruct.finds = fInd; +returnStruct.penGrid = penGrid; +returnStruct.errors = errors; +returnStruct.allErrors = allErrors; +returnStruct.removed = {removedfInd,removedpenGrid,removedweights,removedOPSA,removedOPSb}; +% unblock mex files +%} +returnStruct.weights = weights; +returnStruct.finds = fInd; +returnStruct.penGrid = penGrid; + +returnStruct.optiProb = optiProb; +returnStruct.allObj = objectiveFunctionVals; +returnStruct.modcst = cst; +clear mex diff --git a/Pareto/plotting/matRad_plotPenaltyPoints.m b/Pareto/plotting/matRad_plotPenaltyPoints.m new file mode 100644 index 000000000..732a0786b --- /dev/null +++ b/Pareto/plotting/matRad_plotPenaltyPoints.m @@ -0,0 +1,48 @@ +function matRad_plotPenaltyPoints(penPoints) +% matRad function to plot the penalty Vectors - works only for 2, 3 or 4 +% dimensional objectives (latter case utilizes the normalization of the objectives) +% +% +% input +% penPoints Matrix storing the penalty vectors +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2023 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +switch size(penPoints,2) + case 2 + figure + scatter(penPoints(:,1),penPoints(:,2),'filled','MarkerFaceColor',[0.4660 0.6740 0.1880]) + xlabel('Penalty 1'); + ylabel('Penalty 2'); + case 3 + figure + scatter3(penPoints(:,1),penPoints(:,2),penPoints(:,3),[], penPoints(:,3),'filled') + colormap(gca,"summer") + xlabel('Penalty 1'); + ylabel('Penalty 2'); + zlabel('Penalty 3'); + case 4 + figure + scatter3(penPoints(:,1),penPoints(:,2),penPoints(:,3),[], penPoints(:,4),'filled') + h = colorbar() + colormap(gca,"summer") + xlabel('Penalty 1'); + ylabel('Penalty 2'); + zlabel('Penalty 3'); + set(get(h,'title'),'string','Penalty 4'); + otherwise + warning(['Number of objectives for Pareto Analysis not suited for Plot!']); +end diff --git a/Pareto/testRun.mat b/Pareto/testRun.mat new file mode 100644 index 0000000000000000000000000000000000000000..998ea48d8cfaf6eb199b5fbb1f8db54351ec3bd5 GIT binary patch literal 2838724 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%0D>F9w5njsX)g25e+aAr>|OGS=(Z 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

Fm`hZSE`V8;{41P-(zC%=Y>=1-4(Fj+*lAtUfpT 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 z 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 literal 0 HcmV?d00001 diff --git a/Pareto/tests/matRad_simplePhantom.m b/Pareto/tests/matRad_simplePhantom.m new file mode 100644 index 000000000..579ad84be --- /dev/null +++ b/Pareto/tests/matRad_simplePhantom.m @@ -0,0 +1,123 @@ + +matRad_rc; +matRad_cfg = MatRad_Config.instance(); +matRad_cfg = MatRad_Config.instance(); +matRad_cfg.propOpt.defaultMaxIter = 50000; +ctDim = [200,200,100]; % x,y,z dimensions +ctResolution = [2,2,3]; % x,y,z the same here! + +builder = matRad_PhantomBuilder(ctDim,ctResolution,1); + + +objective3 = struct(DoseObjectives.matRad_SquaredDeviation(800,45)); +objective2 = struct(DoseObjectives.matRad_SquaredOverdosing(10,0)); +objective1 = struct(DoseObjectives.matRad_SquaredOverdosing(400,0)); + +builder.addBoxTarget('Volume3',[20,20,20],'objectives',objective3) +builder.addBoxOAR('Volume1',[60,30,40],'offset',[0 -15 0],'objectives',objective1); +builder.addBoxOAR('Volume2',[60,30,40],'offset',[0 15 0],'objectives',objective2); +builder.addBoxOAR('Volume4',[100,120,80],'offset',[0 0 0]); +%% + +[ct,cst] = builder.getctcst(); + +cst{1,6}{2} = DoseConstraints.matRad_MinMaxDose(40,52); +%{ +cst{1,6}{2} = DoseConstraints.matRad_MinMaxDose(0,40); + +cst{2,6}{2} = DoseConstraints.matRad_MinMaxDose(0,40); +%} +matRadGUI +%% +%pln.radiationMode = 'photons'; +%changed +pln.radiationMode = 'protons'; +pln.machine = 'Generic'; + +%% +% Define the biological optimization model for treatment planning along +% with the quantity that should be used for optimization. Possible model values +% are: +% 'none': physical optimization; +% 'constRBE': constant RBE of 1.1; +% 'MCN': McNamara-variable RBE model for protons; +% 'WED': Wedenberg-variable RBE model for protons +% 'LEM': Local Effect Model +% and possible quantityOpt are 'physicalDose', 'effect' or 'RBExD'. +modelName = 'MCN'; +quantityOpt = 'effect'; + +%% +% The remaining plan parameters are set like in the previous example files +pln.numOfFractions = 30; +pln.propStf.gantryAngles = [0,180]; +%pln.propStf.gantryAngles = [0:70:355]; +pln.propStf.couchAngles = zeros(size(pln.propStf.gantryAngles)); +pln.propStf.bixelWidth = 5; +pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); +pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); +%pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1)*[200 200 75] +pln.propOpt.runDAO = 0; +pln.propOpt.runSequencing = 0; + +% retrieve bio model parameters +pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt,modelName); + +% retrieve nominal scenario for dose calculation and optimziation +pln.multScen = matRad_multScen(ct,'nomScen'); + +% dose calculation settings +pln.propDoseCalc.doseGrid.resolution.x = 4; % [mm] +pln.propDoseCalc.doseGrid.resolution.y = 4; % [mm] +pln.propDoseCalc.doseGrid.resolution.z = 4; % [mm] + +%% Generate Beam Geometry STF +stf = matRad_generateStf(ct,cst,pln); + +%% Dose Calculation +dij = matRad_calcParticleDose(ct,stf,pln,cst); +%dij = matRad_calcPhotonDose(ct,stf,pln,cst); +%% +%% +%matRad_UIInterpolation(data,dij,pln,ct,cst) +%'a' +%% + + +%[resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln); +%matRadGUI; +%load('dataFull.mat') +%retStruct.modcst = cst2; + +%matRad_UIInterpolation(retStruct,dij,pln,ct,cst,retStruct.optiProb) +%% +retStruct = matRad_ParetoOptimization(dij,cst,pln,20); +%% +%load('correct100.mat') +%load('data50protons1constr.mat') + +%% +matRad_UIInterpolation(retStruct,dij,pln,ct,cst,retStruct.optiProb) + +%% +matRad_plotParetoSurface(retStruct) +%% +ps = retStruct.finds +%% +fValsMod = matRad_generateDummyPoints(ps,ones(3,1)) +%% +[k] = convhulln(fValsMod) +figure +trisurf(k,fValsMod(:,1),fValsMod(:,2),fValsMod(:,3),'FaceColor','cyan') +%% + +[k] = convhulln(ps); +figure +trisurf(k,ps(:,1),ps(:,2),ps(:,3),'FaceColor','cyan') +%scatter3(ps(:,1),ps(:,2),ps(:,3),'MarkerEdgeColor','black',... +% 'MarkerFaceColor',[0 0 0]) + %scatter3(psRed(:,1),psRed(:,2),psRed(:,3),'MarkerEdgeColor','black',... + % 'MarkerFaceColor',[1 1 0]) + %scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled','MarkerFaceColor','red') +%% +matRadGUI \ No newline at end of file diff --git a/Pareto/tools/matRad_ParetoSurfFromFacets.m b/Pareto/tools/matRad_ParetoSurfFromFacets.m new file mode 100644 index 000000000..cdcad4dbf --- /dev/null +++ b/Pareto/tools/matRad_ParetoSurfFromFacets.m @@ -0,0 +1,76 @@ +function [k,facets] = matRad_ParetoSurfFromFacets(fVals) +% matRad_ParetoSurfFromFacets allows to calculate the pareto surface +% +% call +% [k,facets] = matRad_ParetoSurfFromFacets(fVals) +% +% input +% fVals: Matrix storing the objective function values of the pareto surface vertices (objective function values of the calculated points) +% +% output +% k: Matrix storing the vertices belonging to the facets of the convex hull +% facets: Matrix storing only the vertices that belong to the Pareto surface (The ones associated to facets with positive normals) +% +% References +% +% TODO: Add an example how to visualize the pareto surface in low dimensions +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2023 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %calculate convex hull + [k,vol] = convhulln(fVals); + + %% + %calculate normals for each facet(normal vectors are perpendicular to their respective facet) + %Done by solving P*n= 0 where P is a matrix with the vectors spanning the hyperplane and n the + %normal vector to be calculated + + %initializing some objects that are returned by the function + cs = zeros(size(k,1),1); + facets= zeros(size(k)); + + j = 0; + %% loop over all facets of convex hull + for i = 1:size(k,1) + %% Step2: Calculate upper bounds from convex hull + %vertices of facets + ps = fVals(k(i,:),:); + %calculate vectors spanning hyperplane through refPoint + refPoint = ps(1,:); + f = ps-refPoint; % vectors spanning hyperplan through ps(1,:) + zw = f(2:end,:); % remove reference Point + % + normal = null(zw); %solve P*n=0 P Matrix + + %% check orientation of calculated normal vector + %get vertex not in facet and calculate orientation of facet + idxs = (1:size(fVals,1)); + diffs = setdiff(idxs,k(i,:)); % find vertex not in facet + + %check if orientation and normal vector face in same direction + orientationVector = fVals(diffs(1),:)-refPoint; + orientation =(orientationVector*normal>0); + + %flip orientation of normal vector if it goes in the opposite direction + normal = normal*(2*orientation-1); + normal = round(normal,4); + + %reject facet if normal has all negative components + + if any(round(normal,3)<0) + continue + end + facets(i,:) = k(i,:); + end +end \ No newline at end of file diff --git a/Pareto/tools/matRad_generateAnchorPoints.m b/Pareto/tools/matRad_generateAnchorPoints.m new file mode 100644 index 000000000..466135a52 --- /dev/null +++ b/Pareto/tools/matRad_generateAnchorPoints.m @@ -0,0 +1,30 @@ +function penPoints= matRad_generateAnchorPoints(numObj) +% matRad function that generates the anchor points for pareto analysis +% call +% penPoints = matRad_generateSphericalPenaltyGrid(numObj) +% +% input +% numObj: Number of objectives in optimization +% +% output +% penPoints: Matrix storing the penalty vectors +% e.g in 3D +% [[1,0,0] +% [0,1,0] +% [0,0,1]] +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2023 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +penPoints = eye(numObj); + diff --git a/Pareto/tools/matRad_generateDummyPoints.m b/Pareto/tools/matRad_generateDummyPoints.m new file mode 100644 index 000000000..17dafe297 --- /dev/null +++ b/Pareto/tools/matRad_generateDummyPoints.m @@ -0,0 +1,44 @@ +function fValsMod = matRad_generateDummyPoints(fVals,U) + % matRad Function that generates Dummy Points for a set of points + % + % input + % fVals: The so-far determined pareto optimal points + % U: Array storing highest objective values (should be an + % array of ones if normalized). Should be calculated after anchorpoint calculation and then kept constant to avoid issues from optimization complications + % + % output + % fValsMod: Modified pareto set to remove mixed normal facets (see + % Rennen) + % + % References + % - https://dx.doi.org/10.2139/ssrn.1427721 + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2023 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +theta = 0.1; +m = size(fVals,2); +n = size(fVals,1); + +U = U*m+theta; %modifying upper bound + +fValsMod = zeros(size(fVals,1)*size(fVals,2),size(fVals,2)); %initialize + +for i = 1:n %loop over and generate a dummy point for each dimension + temp = repmat(fVals(i,:),m,1); + for j = 1:numel(U) + temp(j,j) = U(j); + end + fValsMod((i-1)*m+1:i*m,:) = temp; +end + +fValsMod = [fVals;fValsMod]; \ No newline at end of file diff --git a/Pareto/tools/matRad_normalFromFacet.m b/Pareto/tools/matRad_normalFromFacet.m new file mode 100644 index 000000000..8ca7ed6dd --- /dev/null +++ b/Pareto/tools/matRad_normalFromFacet.m @@ -0,0 +1,51 @@ +function [facetPoints,refPoint,normal] = matRad_normalFromFacet(fVals,k,i) + % matRad helper function that calculates the normal for a facet + % + % input + % fVals: All input values of the convexHull + % k: Array with the vertex indices of the facets + % i: Index of the facet + % + % output + % facetPoints: vertices of the hyperplane in objective space + % refPoint: Reference Point, used to construct the hyperplane + % normal: Normal of the facet + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2023 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + facetPoints = fVals(k(i,:),:); %points that span the given facet + %choose a reference point of facet that hyperplane is "build on" + refPoint = facetPoints(1,:); + hyperplaneVectors = facetPoints-refPoint; % calculate difference of reference point to all other points on facet + spanningVectors = hyperplaneVectors(2:end,:); %reference point not needed for calculation of normal + + %calculate the normal of the hyperplane by solving V*n = 0 where V is + %the matrix with the vectors spanning the hyperplane + normal = null(spanningVectors); + + %we want to check if the components of the normal contain negative + %components. For that one has to check the orientation first + + %choose a point of the PS that is not part of the hyperplane currently + %investigated + idxs = (1:size(fVals,1)); + + %calculate orientation vector + orientationVector = mean(fVals(unique(k),:))-refPoint; + + orientation = (orientationVector*normal>0); %check orientation of facet (either 0 or 1) + + normal = normal*(2*orientation-1); %flip normal vector if it faces in the wrong direction + \ No newline at end of file diff --git a/Pareto/tools/matRad_paretoCheck.m b/Pareto/tools/matRad_paretoCheck.m new file mode 100644 index 000000000..58bc6b90d --- /dev/null +++ b/Pareto/tools/matRad_paretoCheck.m @@ -0,0 +1,40 @@ +function dominatedPoints = matRad_paretoCheck(fVals,newfVal) +% matRad helper function that checks if a newly generated point dominates +% another point or is dominated by a point in the previous sets. should +% be called after calculating the first initial points +% +% +% input +% fVals: The so-far determined pareto optimal points +% newfVal: New point to check against fVals +% +% output +% dominatedPoints: 0 if new point dominated by point in previous set +% empty if new point neither dominates a point in old set or is dominated by point in old set +% otherwise array refering to the indices of points +% in the old set dominated by the newly calculated +% point +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2023 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +dominatedPoints = []; +for i = 1:size(fVals,1) + if all(newfVal > fVals(i,:)) % newly generated point is not pareto optimal + dominatedPoints = [dominatedPoints,0]; + break + elseif all(newfVal < fVals(i,:)) % point i is dominated by newly generated point + dominatedPoints = [dominatedPoints,i]; + end +end \ No newline at end of file diff --git a/matRad_plotParetoSurface.m b/matRad_plotParetoSurface.m new file mode 100644 index 000000000..23c643ce7 --- /dev/null +++ b/matRad_plotParetoSurface.m @@ -0,0 +1,62 @@ +function matRad_plotParetoSurface(retStruct) +% matRad function that plots a color coded Pareto Surface. Colors are based +% on penalty values of the data points in 3 dimensions. +% Red means higher penalties of objective plotted along x-axis. +% Green means higher penalties of objective plotted along y-axis. +% Blue means higher penalties of objective plotted along z-axis. +% +% call +% cBarHandle = matRad_plotColorbar(axesHandle,cMap,window,varargin) +% +% input +% axesHandle handle to axes the colorbar will be attached to +% cMap corresponding colormap +% window colormap window (corresponds to clim) +% varargin additional key-value pairs that will be forwarded to the +% MATLAB colorbar(__) call +% +% output +% cBarHandle handle of the colorbar object +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2015 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%{ +fig2 = figure; +switch size(fInd,2) + case 2 + penGrid = [penGrid,zeros(size(penGrid,1),1)]; + scatter(fInd(:,1),fInd(:,2),[],penGrid,'filled') + xlabel("x: " + VOIObj(1)); + ylabel("y: " + VOIObj(2)); + %set(gca,'Xscale','log') + %set(gca,'Yscale','log') + case 3 + scatter3(fInd(:,1),fInd(:,2),fInd(:,3),[], penGrid,'filled') + xlabel("x: " + VOIObj(1)); + ylabel("y: " + VOIObj(2)); + zlabel("z: " + VOIObj(3)); + otherwise + warning(['Number of objectives for Pareto Analysis not suited for Plot!']); +end +%} +figure; +ps = retStruct.finds; +[k,facets] = matRad_ParetoSurfFromFacets(ps); + +trisurf(facets(all(facets,2),:),ps(:,1),ps(:,2),ps(:,3),'FaceColor',[0.8 0.8 0.8]) +hold on +scatter3(ps(:,1),ps(:,2),ps(:,3),'MarkerEdgeColor','black',... + 'MarkerFaceColor',[0 0 0]) diff --git a/optimization/+DoseConstraints/matRad_MinMaxDose.m b/optimization/+DoseConstraints/matRad_MinMaxDose.m index b6ba18611..db2a4daf4 100644 --- a/optimization/+DoseConstraints/matRad_MinMaxDose.m +++ b/optimization/+DoseConstraints/matRad_MinMaxDose.m @@ -173,41 +173,40 @@ function cDose = computeDoseConstraintFunctionLogSumExp(this,dose) dose_min = min(dose); dose_max = max(dose); - + epsilon = (this.epsilon/3)*max(dose); %Validate parameters if this.parameters{1} <= 0 && isinf(this.parameters{2}) %Constraint doesn't make sense (min = 0 & max = Inf) cDose = []; elseif this.parameters{2} == Inf %Only min dose - cDose = dose_min - this.epsilon * log( sum(exp((dose_min - dose)/this.epsilon))); + cDose = dose_min - epsilon * log( sum(exp((dose_min - dose)/epsilon))); elseif this.parameters{1} <= 0 %Only max dose - cDose = dose_max + this.epsilon * log( sum(exp((dose - dose_max)/this.epsilon))); + cDose = dose_max + epsilon * log( sum(exp((dose - dose_max)/epsilon))); else %both are set sensible - cDose(2,1) = dose_max + this.epsilon * log( sum(exp((dose - dose_max)/this.epsilon))); - cDose(1,1) = dose_min - this.epsilon * log( sum(exp((dose_min - dose)/this.epsilon))); + cDose(2,1) = dose_max + epsilon * log( sum(exp((dose - dose_max)/epsilon))); + cDose(1,1) = dose_min - epsilon * log( sum(exp((dose_min - dose)/epsilon))); end end function cDoseJacob = computeDoseConstraintJacobianLogSumExp(this,dose) %Validate parameters + epsilon = (this.epsilon/3)*max(dose); + %espilon = this.epsilon; if this.parameters{1} <= 0 && isinf(this.parameters{2}) %Constraint doesn't make sense (min = 0 & max = Inf) cDoseJacob = []; elseif this.parameters{2} == Inf %Only min dose - cDoseJacob(:,1) = exp( (min(dose)-dose)/this.epsilon ); + cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); elseif this.parameters{1} <= 0 %Only max dose - cDoseJacob(:,1) = exp( (dose-max(dose))/this.epsilon ); + cDoseJacob(:,1) = exp( (dose-max(dose))/epsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); else %both are set sensible - cDoseJacob(:,1) = exp( (min(dose)-dose)/this.epsilon ); + cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); - - cDoseJacob(:,2) = exp( (dose-max(dose))/this.epsilon ); + cDoseJacob(:,2) = exp( (dose-max(dose))/epsilon ); cDoseJacob(:,2) = cDoseJacob(:,2)/sum(cDoseJacob(:,2)); end - - + end - %Exact voxel-wise function cDose = computeDoseConstraintFunctionVoxelwise(this,dose) cDose = dose; diff --git a/optimization/optimizer/matRad_OptimizerIPOPT.m b/optimization/optimizer/matRad_OptimizerIPOPT.m index ac8393974..4ff4e6be2 100644 --- a/optimization/optimizer/matRad_OptimizerIPOPT.m +++ b/optimization/optimizer/matRad_OptimizerIPOPT.m @@ -26,9 +26,12 @@ %Visualization showPlot = true; end + + properties(GetAccess = public, SetAccess = private) + allObjectiveFunctionValues + end properties (Access = private) - allObjectiveFunctionValues axesHandle plotHandle abortRequested @@ -117,6 +120,7 @@ end function obj = optimize(obj,w0,optiProb,dij,cst) + obj.allObjectiveFunctionValues = []; matRad_cfg = MatRad_Config.instance(); % set optimization options @@ -187,7 +191,6 @@ obj.abortRequested = false; % Empty the array of stored function values - obj.allObjectiveFunctionValues = []; end function [statusmsg,statusflag] = GetStatus(obj) From 6b8aa222c231308fb92f80443a2b65b32f32101c Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Wed, 6 Sep 2023 22:49:23 +0200 Subject: [PATCH 04/32] Added navigation functionality - Added plan navigation functionality - Fixed bug with normals in higher dimensions - Added test scripts - Option to calculate voxels on dose Grid --- MatRad_Config.m | 2 +- Pareto/NavigationUI/matRad_UIData.m | 66 +++++ Pareto/NavigationUI/matRad_UIInterpolation.m | 227 ++++++++++++++++++ Pareto/NavigationUI/matRad_calcFastCubes.m | 46 ++++ .../NavigationUI/matRad_navigationProblem.m | 73 ++++++ Pareto/NavigationUI/matRad_plotPS.m | 25 ++ Pareto/tests/matRad_Prostate.m | 173 +++++++++++++ Pareto/tests/matRad_TG119.m | 224 +++++++++++++++++ Pareto/tools/matRad_normalFromFacet.m | 7 +- ThesisScripts/matRad_ProstateThesis.m | 227 ++++++++++++++++++ matRad_calcCubes.m | 132 +--------- matRad_calcCubesDoseGrid.m | 165 +++++++++++++ optimization/+DoseObjectives/matRad_EUDMin.m | 117 +++++++++ .../optimizer/matRad_OptimizerIPOPT.m | 2 +- 14 files changed, 1350 insertions(+), 136 deletions(-) create mode 100644 Pareto/NavigationUI/matRad_UIData.m create mode 100644 Pareto/NavigationUI/matRad_UIInterpolation.m create mode 100644 Pareto/NavigationUI/matRad_calcFastCubes.m create mode 100644 Pareto/NavigationUI/matRad_navigationProblem.m create mode 100644 Pareto/NavigationUI/matRad_plotPS.m create mode 100644 Pareto/tests/matRad_Prostate.m create mode 100644 Pareto/tests/matRad_TG119.m create mode 100644 ThesisScripts/matRad_ProstateThesis.m create mode 100644 matRad_calcCubesDoseGrid.m create mode 100644 optimization/+DoseObjectives/matRad_EUDMin.m diff --git a/MatRad_Config.m b/MatRad_Config.m index 0a3053810..f23b2ab53 100644 --- a/MatRad_Config.m +++ b/MatRad_Config.m @@ -177,7 +177,7 @@ function setDefaultProperties(obj) obj.propDoseCalc.defaultAirOffsetCorrection = true; - obj.propOpt.defaultMaxIter = 500; + obj.propOpt.defaultMaxIter = 50000; obj.propOpt.defaultRunDAO = 0; obj.propOpt.defaultRunSequencing = 0; diff --git a/Pareto/NavigationUI/matRad_UIData.m b/Pareto/NavigationUI/matRad_UIData.m new file mode 100644 index 000000000..8ac28b326 --- /dev/null +++ b/Pareto/NavigationUI/matRad_UIData.m @@ -0,0 +1,66 @@ +classdef matRad_UIData < handle + % matRad_UIData implements a class that allows easy storing of + % variables related to the pareto Navigation + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2020 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + wRef %weight vector of last calculated plan + fRef %objective function values of last calculated plan + fIndsAll % stores all objective function values + fIndsRed % stores only the "reduced points" + upboundInit + upboundRed + upboundSlider + lowboundSliderInit + lowboundSlider + linestyle + end + + methods + function obj = matRad_UIData(wRef,fRef,fInds) + obj.wRef = wRef; + obj.fRef = fRef; + obj.fIndsAll = fInds; + obj.fIndsRed = fInds; + obj.upboundInit = max(fInds,[],1); + obj.upboundRed = max(fInds,[],1); + obj.upboundSlider= max(fInds,[],1); + obj.lowboundSliderInit = min(fInds,[],1); + obj.lowboundSlider = min(fInds,[],1); + obj.linestyle = 2; + end + + function [sliderLowBound,sliderUpBound] = restrictObjective(obj,i,bound) + obj.upboundRed(i) = bound; + obj.fIndsRed = obj.fIndsRed(obj.fIndsRed(:,i) <= bound,:); + obj.upboundSlider= max([obj.fIndsRed;obj.fRef],[],1); + obj.upboundSlider(i) = bound; + obj.lowboundSlider = min([obj.fIndsRed;obj.fRef],[],1); + sliderLowBound = obj.lowboundSlider; + sliderUpBound = obj.upboundSlider; + end + + function releaseObjectiveBounds(obj) + obj.upboundRed = obj.upboundInit; + obj.fIndsRed = obj.fIndsAll; + obj.upboundSlider = obj.upboundInit; + obj.lowboundSlider = obj.lowboundSliderInit; + end + + end +end \ No newline at end of file diff --git a/Pareto/NavigationUI/matRad_UIInterpolation.m b/Pareto/NavigationUI/matRad_UIInterpolation.m new file mode 100644 index 000000000..35b133923 --- /dev/null +++ b/Pareto/NavigationUI/matRad_UIInterpolation.m @@ -0,0 +1,227 @@ +function matRad_UIInterpolation(data,dij,pln,ct,cst,optiProb) + + + fInds = data.finds; + + + %sort function values according to each dimension - still necessary? + [A,I] = sort(fInds(:,1),1,'ascend'); + fIndsSorted = fInds(I,:); + weights = data.weights(:,I); + %idx = round(size(fInds,1)/2); + idx = 4; + %% + + slice = round(pln.propStf.isoCenter(1,3)./ct.resolution.z); + %% + + %% + f = figure('units','normalized','outerposition',[0 0 1 1]); + DosePlot = axes('Position',[.1 .5 .4 .4]); + title('Dose Slice') + DVHPlot = axes('Position',[.6 .5 .35 .4]); + title('DVH'); + % + + %Create uipanels + p = uipanel(f,'Position',[0.05 0.1 0.3 0.35]); + p2 = uipanel(f,'Position',[0.35 0.3 0.15 0.15]); + +%extract the names of the objectives and corresponding VOI + names = {}; + for i = (1:numel(optiProb.objectives)) + names{end + 1} = optiProb.objectives{i}.name; + end + + VOIs = {}; + for i = 1:size(cst,1) + if ~isempty(cst{i,6}) + VOIs{end + 1} = cst{i,2}; + end + end + %Generate reference point (should lie somewhere in the middle of + %objective 1) + fRef = fIndsSorted(idx,:); + wRef = weights(:,idx); + refObj = matRad_UIData(wRef,fRef,fIndsSorted); + + %initial UI elements + sliders = {}; + namesui = {}; + sliderValues = {}; + fixButtons = {}; + VOIui = {}; + + %%Create interactive elements + for i = 1:size(fInds,2) + VOIui{i} = uicontrol(p,'Style','text',... + 'Units','normalized',... + 'Position',[0.02,0.9-(i-1)*0.13, 0.15,0.1],... + 'String',VOIs{i}); + + namesui{i} = uicontrol(p,'Style','text',... + 'Units','normalized',... + 'Position',[0.17,0.9-(i-1)*0.13, 0.22,0.1],... + 'String',names{i}); + + sliderValues{i} = uicontrol(p,'Style','text',... + 'Units','normalized',... + 'Position',[0.9,0.9-(i-1)*0.13, 0.1,0.05],... + 'String',fIndsSorted(idx,i)); + + sliders{i} = uicontrol(p,'Style','slider',... + 'Units','normalized',... + 'Min',min(fIndsSorted(:,i)),'Max',max(fIndsSorted(:,i)),... + 'Position',[0.4,0.9-(i-1)*0.13, 0.35,0.05]); + + + fixButtons{i} = uicontrol(p,'Style','pushbutton',... + 'Units','normalized',... + 'Position',[0.78,0.9-(i-1)*0.13, 0.1,0.05],... + 'String','Fix'); + + sliders{i}.Value = fIndsSorted(idx,i); + + end + + DVHButton = uicontrol(p2,'Style','pushbutton',... + 'Units','normalized',... + 'Position',[0.1 0.6 0.35 0.3],... + 'String','Show DVH'); + + ExportButton = uicontrol(p2,'Style','pushbutton',... + 'Units','normalized',... + 'Position',[0.55 0.6 0.35 0.3],... + 'String','Export to GUI'); + + ResetConstraintButton = uicontrol(p2,'Style','pushbutton',... + 'Units','normalized',... + 'Position',[0.2 0.3 0.6 0.2],... + 'String','Reset Constraints'); + + ParetoSurfaceButton = uicontrol(p2,'Style','pushbutton',... + 'Units','normalized',... + 'Position',[0.2 0.05 0.6 0.2],... + 'String','Show PS'); + + + %%Set callback for buttons + for i = 1:size(fInds,2) + set(sliders{i},'Callback',{@slider_callback,sliderValues,sliders,i,weights,dij,slice,DosePlot,refObj,optiProb,data.modcst,cst,pln,ct}) + end + + for i = 1:numel(fixButtons) + set(fixButtons{i},'Callback',{@FixButton_callback,refObj,sliders,i}) + end + + set(DVHButton,'Callback',{@DVHButton_callback,cst,refObj,dij,pln}) + set(ExportButton,'Callback',{@ExportButton_callback,refObj,dij}) + set(ResetConstraintButton,'Callback',{@ResetConstraintButton_callback,refObj,sliders}) + set(ParetoSurfaceButton,'Callback',{@ParetoSurfaceButton_callback,refObj}) + + + %initial plot of first point + + cubes = reshape(dij.physicalDose{1}*wRef,dij.doseGrid.dimensions); + + cubes = matRad_interp3(dij.doseGrid.x,dij.doseGrid.y',dij.doseGrid.z, ... + cubes, ... + dij.ctGrid.x,dij.ctGrid.y',dij.ctGrid.z,'linear',0); + + matRad_plotSliceWrapper(DosePlot,ct,cst,1,cubes,3,slice); + %zoom(DosePlot,1.1); + dvh = matRad_calcDVH(cst,cubes,'cum'); + matRad_showDVH(dvh,cst,pln); + +end + % End of main file + function DVHButton_callback(~,~,cst,refObj,dij,pln) + %Shows the DVH for the current plan + resultGUI = matRad_calcCubes(refObj.wRef,dij); + %dvh = matRad_calcDVH(cst,doseCube,'cum'); + dvh = matRad_calcDVH(cst,resultGUI.physicalDose,'cum'); + + matRad_showDVH(dvh,cst,pln,refObj.linestyle); + if refObj.linestyle < 4 + refObj.linestyle = refObj.linestyle + 1; + else + refObj.linestyle = 1; + end + % + + end + + function ExportButton_callback(~,~,refObj,dij) + %Export the current plan to the matRadGUi for better inspection + resultGUI = matRad_calcCubes(refObj.wRef,dij); + assignin('base',"resultGUI",resultGUI); + matRadGUI; + + end + + + function FixButton_callback(~,~,refObj,sliders,i) + + [lb,ub] = refObj.restrictObjective(i,sliders{i}.Value); %update refObjects bounds + + + for i = 1:numel(sliders) + set(sliders{i},'Min',lb(i)); + set(sliders{i},'Max',ub(i)); + end + end + + + function ResetConstraintButton_callback(~,~,refObj,sliders) + refObj.releaseObjectiveBounds(); + + for i = 1:numel(sliders) + set(sliders{i},'Min',refObj.lowboundSliderInit(i)); + set(sliders{i},'Max',refObj.upboundInit(i)); + end + end + + function ParetoSurfaceButton_callback(~,~,refObj) + %TODO: Should only show up in low dimensions + matRad_plotPS(refObj); + + end + + + % Callback subfunctions to support UI actions + function slider_callback(slider,~,textFields,sliders,idx,weights,dij,slice,DosePlot,refObj,optiProb,cstMod,cst,pln,ct) + % Update the text for the moved slider + %Calculate combination weights + + + v = matRad_navigationProblem(refObj.fIndsAll',refObj.fRef,slider.Value,idx,refObj.upboundRed); + %%need to check actual dimensions + if numel(v) == 0 + %navigation algorithm didnt find a new point + for i = 1:numel(sliders) + set(sliders{i},'Value',refObj.fRef(i)); + set(textFields{i},'String',refObj.fRef(i)); + end + + else + + wnew = weights*v;%new weights + + fNew = matRad_objectiveFunctions(optiProb,wnew,dij,cstMod); + fNew = optiProb.normalizeObjectives(fNew'); + refObj.fRef = fNew; + refObj.wRef = wnew; + + %% should be moved to seperate function + cubes = matRad_calcFastCubes(wnew,dij,pln); + %#Update the slider and text values for objective functions + + for i = 1:numel(sliders) + set(sliders{i},'Value',fNew(i)); + set(textFields{i},'String',fNew(i)); + end + + %Plot updated plan + matRad_plotSliceWrapper(DosePlot,ct,cst,1,cubes,3,slice); + end + end \ No newline at end of file diff --git a/Pareto/NavigationUI/matRad_calcFastCubes.m b/Pareto/NavigationUI/matRad_calcFastCubes.m new file mode 100644 index 000000000..29cba92de --- /dev/null +++ b/Pareto/NavigationUI/matRad_calcFastCubes.m @@ -0,0 +1,46 @@ +function cubes = matRad_calcFastCubes(w,dij,pln) +% matRad computation of cube for plan optimization quantity +% +% call +% resultGUI = matRad_calcCubes(w,dij,pln +% +% input +% w: bixel weight vector +% dij: dose influence matrix +% pln: matRad pln struct +% +% output +% cubes: Array storing cubes of optimization quantity +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2015 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + switch pln.bioParam.quantityOpt + case 'physicalDose' + cubes = reshape(dij.physicalDose{1}*w,dij.doseGrid.dimensions); + case 'RBExD' + if isfield(dij,'mAlphaDose') && isfield(dij,'mSqrtBetaDose') + %TODO + matRad_cfg.dispError('TODO'); + else + cubes = reshape(dij.physicalDose{1}*w,dij.doseGrid.dimensions)*dij.RBE; + end + case 'effect' + cubes = reshape(full(dij.mAlphaDose{1} * wBeam + (dij.mSqrtBetaDose{1} * wBeam).^2),dij.doseGrid.dimensions); + end + cubes = matRad_interp3(dij.doseGrid.x,dij.doseGrid.y',dij.doseGrid.z, ... + cubes, ... + dij.ctGrid.x,dij.ctGrid.y',dij.ctGrid.z,'linear',0); +end \ No newline at end of file diff --git a/Pareto/NavigationUI/matRad_navigationProblem.m b/Pareto/NavigationUI/matRad_navigationProblem.m new file mode 100644 index 000000000..ff924d487 --- /dev/null +++ b/Pareto/NavigationUI/matRad_navigationProblem.m @@ -0,0 +1,73 @@ +function v = matRad_navigationProblem(Y,yr,tau,j,b) + %matRad_navigation problem allows the exploration of plans that are not in the set + %of precalculated plans. + % + % input + % Y: Set of precalculated Pareto optimal plans + % yr: Reference point that is used as a starting point to calculate the new plna + % tau: Value that objective j is fixed for calculation of next point + % j: Index of the objectives + % b: Array containing the upper bounds for each objective + % + % output + % facetPoints: vertices of the hyperplane in objective space + % refPoint: Reference Point, used to construct the hyperplane + % normal: Normal of the facet + % + % + % References + % [1] DOI: 10.1088/0031-9155/53/4/011 + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2020 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + [k,m] = size(Y); + + + f = zeros(m+k+1,1); + f(end) = 1; + + %Inequality constraints + A = zeros(k,m+k+1); + A(:,1:m) = Y; + + + + %Equality constraints + Aeq = zeros(k+1,m+k+1); + Aeq(1:k,1:m) = Y; + Aeq(k+1,1:m) = 1; + Aeq(1:k,m+1:m+k) = 1; + Aeq(1:k,end) = -1; + Aeq(j,m+1:end) = 0; + + + + beq = zeros(k+1,1); + beq(1:k,1) = yr; + beq(j,1) = tau; + beq(end) = 1; + + %Bounds + lb = zeros(m+k,1); + %lb(end) = -1000000; + %ub = 1000000*zeros(m+k+1,1); + %ub(1:m) = 1; + ub = ones(1,m); + options = optimoptions('linprog','Display','iter'); + %options = optimoptions('linprog','Algorithm','interior-point','Display','iter'); + v = linprog(f,A,b,Aeq,beq,lb,ub,options); + if numel(v) > 0 + v = v(1:m); + end +end \ No newline at end of file diff --git a/Pareto/NavigationUI/matRad_plotPS.m b/Pareto/NavigationUI/matRad_plotPS.m new file mode 100644 index 000000000..0d7e863ef --- /dev/null +++ b/Pareto/NavigationUI/matRad_plotPS.m @@ -0,0 +1,25 @@ +function matRad_plotPS(refObj) + %{ + figure + scatter3(finds(:,1),finds(:,2),finds(:,3)) + hold on + scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled') + %} + ps = refObj.fIndsAll; + psRed = refObj.fIndsRed; + fNew = refObj.fRef; + [k,facets] = matRad_ParetoSurfFromFacets(ps); + figure + trisurf(facets(all(facets,2),:),ps(:,1),ps(:,2),ps(:,3),'FaceColor',[0.8 0.8 0.8]) + hold on + scatter3(ps(:,1),ps(:,2),ps(:,3),'MarkerEdgeColor','black',... + 'MarkerFaceColor',[0 0 0]) + scatter3(psRed(:,1),psRed(:,2),psRed(:,3),'MarkerEdgeColor','black',... + 'MarkerFaceColor',[1 1 0]) + scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled','MarkerFaceColor','red') + legend('approx. surface','Blocked areas','Available areas','Current point','Location','northwest') + xlabel('f_1[a.u]') + ylabel('f_2[a.u]') + zlabel('f_3[a.u]') + view(-45,5) +end \ No newline at end of file diff --git a/Pareto/tests/matRad_Prostate.m b/Pareto/tests/matRad_Prostate.m new file mode 100644 index 000000000..25981fecf --- /dev/null +++ b/Pareto/tests/matRad_Prostate.m @@ -0,0 +1,173 @@ +%% Example: Photon Treatment Plan +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2017 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% In this example we will show +% (i) how to load patient data into matRad +% (ii) how to setup a photon dose calculation and +% (iii) how to inversely optimize beamlet intensities +% (iv) how to visually and quantitatively evaluate the result +%global timed; +%timed = []; +%% Patient Data Import +% Let's begin with a clear Matlab environment. Then, import the TG119 +% phantom into your workspace. The phantom is comprised of a 'ct' and 'cst' +% structure defining the CT images and the structure set. Make sure the +% matRad root directory with all its subdirectories is added to the Matlab +% search path. + +matRad_rc; %If this throws an error, run it from the parent directory first to set the paths +%% +matRad_cfg = MatRad_Config.instance(); +matRad_cfg.propOpt.defaultAccChangeTol = 1e-6; +%% + +load('PROSTATE.mat'); + +%% + +%% + +pln.radiationMode = 'protons'; +%pln.radiationMode = 'photons'; +pln.machine = 'Generic'; + +quantityOpt = 'RBExD'; +modelName = 'constRBE'; + +%pln.propDoseCalc.calcLET = 0; + +pln.numOfFractions = 30; +%pln.propStf.gantryAngles = [0:52:359]; +pln.propStf.gantryAngles = [90 270]; +pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); +pln.propStf.bixelWidth = 5; + + +pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); +pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); + +pln.propDoseCalc.doseGrid.resolution.x = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.y = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.z = 5; % [mm] + +%% +% Enable sequencing and disable direct aperture optimization (DAO) for now. +% A DAO optimization is shown in a seperate example. +pln.propOpt.runSequencing = 1; +pln.propOpt.runDAO = 0; + +% retrieve bio model parameters +pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt, modelName); + +% retrieve scenarios for dose calculation and optimziation +pln.multScen = matRad_multScen(ct,'nomScen'); + +%% +% and et voila our treatment plan structure is ready. Lets have a look: +display(pln); + + +%% Generate Beam Geometry STF +% The steering file struct comprises the complete beam geometry along with +% ray position, pencil beam positions and energies, source to axis distance (SAD) etc. +stf = matRad_generateStf(ct,cst,pln); + +%% +% Let's display the beam geometry information of the 6th beam +%display(stf(6)); + +%% Dose Calculation +% Let's generate dosimetric information by pre-computing dose influence +% matrices for unit beamlet intensities. Having dose influences available +% allows subsequent inverse optimization. +%dij = matRad_calcPhotonDose(ct,stf,pln,cst); +dij = matRad_calcParticleDose(ct,stf,pln,cst); +%% Inverse Optimization for IMRT +% The goal of the fluence optimization is to find a set of beamlet/pencil +% beam weights which yield the best possible dose distribution according to +% the clinical objectives and constraints underlying the radiation +% treatment. Once the optimization has finished, trigger once the GUI to +% visualize the optimized dose cubes. +%% Paretooptimization +% The goal of this step is to define a grid of penalty values that +% are then evaluated using the matRad_paretoGeneration method +% The VOI and their respective penalties are defined in the following way +% It is possible to have more than one objective function per VOI +% penVal stores the Grid which is then passed on. penGrid contains an +% version easier to visualize, however harder to loop over +%% +%objective function values are returned in order of ordering in VOI +%returnStruct = matRad_paretoGenerationPGEN(dij,cst,pln,VOI); +% +cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,8)); +cst{8,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,3)); +cst{9,6}{1} = struct(DoseObjectives.matRad_MeanDose(100,0)); +cst{6,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(61.2,78.2)); +cst{7,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(50.4,64.4)); +cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); +cst{9,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); +cst{8,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); +%% +cst{5,5}.Priority = 99; +%% +%cst{17,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,38)); +%{ +tic; +resultGUI = matRad_fluenceOptimization(dij,cst,pln); +toc +%} +%% +matRadGUI +%Aaaaaaaa +%matRadGUI; +%% +tic; +retStruct = matRad_ParetoOptimization(dij,cst,pln,50); +toc +%% +resultGUIDoseGrid = matRad_calcCubesDoseGrid(retStruct.weights(:,2),dij) +%resultGUI2 = matRad_calcCubes(retStruct.weights(:,5),dij) +%matRadGUI; + +%% +figure +matRad_plotSliceWrapper(gca(),ct,retStruct.modcst,1,resultGUI.RBExD,3,40) +%% + +doseCube = resultGUIDoseGrid.physicalDose; +dvh = matRad_calcDVH(retStruct.modcst,doseCube); + +%% +cstR = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... + dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); +matRad_indicatorWrapper(matRad_setOverlapPriorities(cstR),pln,resultGUIDoseGrid) +%% +retStruct.optiProb.matRad_objectiveFunctions(retStruct.weights(:,2),dij,retStruct.modcst) +%% +matRad_showDVH(dvh,retStruct.modcst,pln); +%% +doseCube2 = resultGUI2.RBExD; +dvh2 = matRad_calcDVH(cstR,doseCube2); +matRad_showDVH(dvh2,cstR,pln,2); + +%% +%load('data50constrPTVs.mat') +%% +matRad_plotParetoSurface(retStruct) +%% +matRad_plotPenaltyGrid(retStruct.penGrid) + +%% +matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) \ No newline at end of file diff --git a/Pareto/tests/matRad_TG119.m b/Pareto/tests/matRad_TG119.m new file mode 100644 index 000000000..320173ba7 --- /dev/null +++ b/Pareto/tests/matRad_TG119.m @@ -0,0 +1,224 @@ +%% Example: Photon Treatment Plan +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2017 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% In this example we will show +% (i) how to load patient data into matRad +% (ii) how to setup a photon dose calculation and +% (iii) how to inversely optimize beamlet intensities +% (iv) how to visually and quantitatively evaluate the result +%global timed; +%timed = []; +%% Patient Data Import +% Let's begin with a clear Matlab environment. Then, import the TG119 +% phantom into your workspace. The phantom is comprised of a 'ct' and 'cst' +% structure defining the CT images and the structure set. Make sure the +% matRad root directory with all its subdirectories is added to the Matlab +% search path. + +matRad_rc; %If this throws an error, run it from the parent directory first to set the paths +matRad_rc; +matRad_cfg = MatRad_Config.instance(); +%matRad_cfg.propOpt.defaultMaxIter = 50000; +%% +load('TG119.mat'); +%% +cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(1000,0)); +cst{3,6}{1} = struct(DoseObjectives.matRad_MeanDose(1000,0)); +%% +%cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,55)); + +%pln.radiationMode = 'protons'; +pln.radiationMode = 'photons'; +pln.machine = 'Generic'; + +quantityOpt = 'physicalDose'; +modelName = 'none'; + +%pln.propDoseCalc.calcLET = 0; + +pln.numOfFractions = 30; +pln.propStf.gantryAngles = [0:40:359]; +pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); +pln.propStf.bixelWidth = 5; + + +pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); +pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); + +pln.propDoseCalc.doseGrid.resolution.x = 3; % [mm] +pln.propDoseCalc.doseGrid.resolution.y = 3; % [mm] +pln.propDoseCalc.doseGrid.resolution.z = 2.5; % [mm] + +%% +% Enable sequencing and disable direct aperture optimization (DAO) for now. +% A DAO optimization is shown in a seperate example. +pln.propOpt.runSequencing = 1; +pln.propOpt.runDAO = 0; + +% retrieve bio model parameters +pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt, modelName); + +% retrieve scenarios for dose calculation and optimziation +pln.multScen = matRad_multScen(ct,'nomScen'); + +%% +% and et voila our treatment plan structure is ready. Lets have a look: +display(pln); + + +%% Generate Beam Geometry STF +% The steering file struct comprises the complete beam geometry along with +% ray position, pencil beam positions and energies, source to axis distance (SAD) etc. +stf = matRad_generateStf(ct,cst,pln); + +%% +% Let's display the beam geometry information of the 6th beam +%display(stf(6)); + +%% Dose Calculation +% Let's generate dosimetric information by pre-computing dose influence +% matrices for unit beamlet intensities. Having dose influences available +% allows subsequent inverse optimization. +%dij = matRad_calcParticleDose(ct,stf,pln,cst); +dij = matRad_calcPhotonDose(ct,stf,pln,cst); +%% Inverse Optimization for IMRT +% The goal of the fluence optimization is to find a set of beamlet/pencil +% beam weights which yield the best possible dose distribution according to +% the clinical objectives and constraints underlying the radiation +% treatment. Once the optimization has finished, trigger once the GUI to +% visualize the optimized dose cubes. +%% Paretooptimization +% The goal of this step is to define a grid of penalty values that +% are then evaluated using the matRad_paretoGeneration method +% The VOI and their respective penalties are defined in the following way +% It is possible to have more than one objective function per VOI +% penVal stores the Grid which is then passed on. penGrid contains an +% version easier to visualize, however harder to loop over +%% +%objective function values are returned in order of ordering in VOI +%returnStruct = matRad_paretoGenerationPGEN(dij,cst,pln,VOI); +% + +%returnStruct = matRad_paretoGenerationPGEN(dij,cst,pln,VOI) + +cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,40)); +cst{3,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,45)); +%cst{2,6} = []; +%cst{2,6}{1} = struct(DoseObjectives.matRad_SquaredDeviation(1000,50)); +cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,57)); + +%% +%load('data503constr.mat') + +%% +resultGUI = resultGUIs2{2}{1} +resultGUI.physicalDose = resultGUI.physicalDose*25 +%% + +matRadGUI + +%% +matRad_plotParetoSurface(retStruct) +%% +mean(retStruct.weights(:,1)) +%% +mean(resultGUIs2{1}{1}.w) +%% +cstR = matRad_resizeCstToGrid(cst,ct.x,ct.y,ct.z,dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z) + +%% + + matRad_objectiveFunctions(retStruct.optiProb,retStruct.weights(:,3),dij,retStruct.modcst) + +%p = retStruct.optiProb.normalizeObjectives(p') +%% +Point1First = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point1{1}{1}.w*25/30,dij,retStruct.modcst) +Point1First = retStruct.optiProb.normalizeObjectives(Point1First') + +Point12nd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point1{2}{1}.w*25/30,dij,retStruct.modcst) +Point12nd = retStruct.optiProb.normalizeObjectives(Point12nd') +%% +Point2First = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point2{1}{1}.w*25/30,dij,retStruct.modcst) +Point2First = retStruct.optiProb.normalizeObjectives(Point2First') + +Point22nd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point2{2}{1}.w*25/30,dij,retStruct.modcst) +Point22nd = retStruct.optiProb.normalizeObjectives(Point22nd') +%% +Point3First = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point3{1}{1}.w*25/30,dij,retStruct.modcst) +Point3First = retStruct.optiProb.normalizeObjectives(Point3First') + +Point32nd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point3{2}{1}.w*25/30,dij,retStruct.modcst) +Point32nd = retStruct.optiProb.normalizeObjectives(Point32nd') + +Point33rd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point3{3}{1}.w*25/30,dij,retStruct.modcst) +Point33rd = retStruct.optiProb.normalizeObjectives(Point33rd') + +%% + +%% +%% +matRad_plotParetoSurface(retStruct) + +scatter3(Point1First(1),Point1First(2),Point1First(3),'MarkerEdgeColor','Red','MarkerFaceColor','Red','Marker','square') +scatter3(Point12nd(1),Point12nd(2),Point12nd(3),'MarkerEdgeColor','Red','MarkerFaceColor','Red') + +scatter3(Point2First(1),Point2First(2),Point2First(3),'MarkerEdgeColor','blue','MarkerFaceColor','blue','Marker','square') +scatter3(Point22nd(1),Point22nd(2),Point22nd(3),'MarkerEdgeColor','blue','MarkerFaceColor','blue') + + +scatter3(Point3First(1),Point3First(2),Point3First(3),'MarkerEdgeColor','green','MarkerFaceColor','green','Marker','^') +scatter3(Point32nd(1),Point32nd(2),Point32nd(3),'MarkerEdgeColor','green','MarkerFaceColor','green','Marker','square') +scatter3(Point33rd(1),Point33rd(2),Point33rd(3),'MarkerEdgeColor','green','MarkerFaceColor','green') +%% +matRad_UIInterpolation(retStruct,dij,pln,ct,cst,retStruct.optiProb) +%% + +figure +dvhInit = matRad_calcDVH(cst,resultGUIInit.physicalDose*30) +dvhMoved = matRad_calcDVH(cst,resultGUIMoved.physicalDose*30) +matRad_showDVH(dvhInit,cst,pln,1) +matRad_showDVH(dvhMoved,cst,pln,2) +%% +xlabel('Core f_{EUD}') +ylabel('Target f_{sq deviation}') +zlabel('Body f_{mean}') + +%% +matlab2tikz('width', '\fwidth', 'height', '\fheight') + +%% + +slice = round(pln.propStf.isoCenter(1,3)./ct.resolution.z); + +%% +figure +[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cst,1,resultGUIMoved.physicalDose*30,3,slice) +for j= 1: numel(hContour) + hContour{j}(1).LineWidth = 2; +end +zoom(1.4) +set(gca(),'xlabel',[]) +set(gca(),'ylabel',[]) +set(gca(),'title',[]) +set(gca(),'xtick',[]) +set(gca(),'ytick',[]) +%% +figure +matRad_plotSliceWrapper(gca(),ct,cst,1,resultGUIMoved.physicalDose,3,slice) +zoom(1.4) +%% +figure +matRad_plotSliceWrapper(gca(),ct,cst,1,resultGUIMoved.physicalDose-resultGUIInit.physicalDose,3,slice) + diff --git a/Pareto/tools/matRad_normalFromFacet.m b/Pareto/tools/matRad_normalFromFacet.m index 8ca7ed6dd..765396f9a 100644 --- a/Pareto/tools/matRad_normalFromFacet.m +++ b/Pareto/tools/matRad_normalFromFacet.m @@ -37,15 +37,16 @@ %we want to check if the components of the normal contain negative %components. For that one has to check the orientation first - + if rank(spanningVectors) ~= size(spanningVectors,1) + normal = -1*ones(size(spanningVectors,2),1); %simply return all -1 + return + end %choose a point of the PS that is not part of the hyperplane currently %investigated idxs = (1:size(fVals,1)); %calculate orientation vector orientationVector = mean(fVals(unique(k),:))-refPoint; - orientation = (orientationVector*normal>0); %check orientation of facet (either 0 or 1) - normal = normal*(2*orientation-1); %flip normal vector if it faces in the wrong direction \ No newline at end of file diff --git a/ThesisScripts/matRad_ProstateThesis.m b/ThesisScripts/matRad_ProstateThesis.m new file mode 100644 index 000000000..2f1e21d08 --- /dev/null +++ b/ThesisScripts/matRad_ProstateThesis.m @@ -0,0 +1,227 @@ +%% Example: Photon Treatment Plan +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2017 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% In this example we will show +% (i) how to load patient data into matRad +% (ii) how to setup a photon dose calculation and +% (iii) how to inversely optimize beamlet intensities +% (iv) how to visually and quantitatively evaluate the result +%global timed; +%timed = []; +%% Patient Data Import +% Let's begin with a clear Matlab environment. Then, import the TG119 +% phantom into your workspace. The phantom is comprised of a 'ct' and 'cst' +% structure defining the CT images and the structure set. Make sure the +% matRad root directory with all its subdirectories is added to the Matlab +% search path. + +matRad_rc; %If this throws an error, run it from the parent directory first to set the paths +%% +matRad_cfg = MatRad_Config.instance(); +matRad_cfg.propOpt.defaultAccChangeTol = 1e-6; +%% + +load('PROSTATE.mat'); + +%% + +%% + +pln.radiationMode = 'protons'; +%pln.radiationMode = 'photons'; +pln.machine = 'Generic'; + +quantityOpt = 'RBExD'; +modelName = 'constRBE'; + +%pln.propDoseCalc.calcLET = 0; + +pln.numOfFractions = 30; +%pln.propStf.gantryAngles = [0:52:359]; +pln.propStf.gantryAngles = [90 270]; +pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); +pln.propStf.bixelWidth = 5; + + +pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); +pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); + +pln.propDoseCalc.doseGrid.resolution.x = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.y = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.z = 5; % [mm] + +%% +% Enable sequencing and disable direct aperture optimization (DAO) for now. +% A DAO optimization is shown in a seperate example. +pln.propOpt.runSequencing = 1; +pln.propOpt.runDAO = 0; + +% retrieve bio model parameters +pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt, modelName); + +% retrieve scenarios for dose calculation and optimziation +pln.multScen = matRad_multScen(ct,'nomScen'); + +%% +% and et voila our treatment plan structure is ready. Lets have a look: +display(pln); + + +%% Generate Beam Geometry STF +% The steering file struct comprises the complete beam geometry along with +% ray position, pencil beam positions and energies, source to axis distance (SAD) etc. +stf = matRad_generateStf(ct,cst,pln); + +%% +% Let's display the beam geometry information of the 6th beam +%display(stf(6)); + +%% Dose Calculation +% Let's generate dosimetric information by pre-computing dose influence +% matrices for unit beamlet intensities. Having dose influences available +% allows subsequent inverse optimization. +%dij = matRad_calcPhotonDose(ct,stf,pln,cst); +dij = matRad_calcParticleDose(ct,stf,pln,cst); +%% Inverse Optimization for IMRT +% The goal of the fluence optimization is to find a set of beamlet/pencil +% beam weights which yield the best possible dose distribution according to +% the clinical objectives and constraints underlying the radiation +% treatment. Once the optimization has finished, trigger once the GUI to +% visualize the optimized dose cubes. +%% Paretooptimization +% The goal of this step is to define a grid of penalty values that +% are then evaluated using the matRad_paretoGeneration method +% The VOI and their respective penalties are defined in the following way +% It is possible to have more than one objective function per VOI +% penVal stores the Grid which is then passed on. penGrid contains an +% version easier to visualize, however harder to loop over +%% Assign objectives +cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,8)); +cst{8,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,3)); +cst{9,6}{1} = struct(DoseObjectives.matRad_MeanDose(100,0)); +cst{6,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(61.2,78.2)); +cst{7,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(50.4,64.4)); +cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); +cst{9,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); +cst{8,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); +%% +cst{5,5}.Priority = 99; +%% Pareto optimization - comment out to run +%{ +tic; +retStruct = matRad_ParetoOptimization(dij,cst,pln,100); +toc +%} +%load('DataFull100Points.mat') +retStruct.weights = retStruct.weights*30 +%% +%% +figure +plot(retStruct.errors,linewidth = 2) +xlabel('Iteration') +ylabel('Error [a.u]') +grid on +%% calculate example plans and plot their DVH and plan slices + +slice = round(pln.propStf.isoCenter(1,3)./ct.resolution.z); +%% DVH calculation +resultGUIDoseGrid = matRad_calcCubesDoseGrid(retStruct.weights(:,1),dij) +resultGUIDoseGrid2 = matRad_calcCubesDoseGrid(retStruct.weights(:,2),dij) +resultGUIDoseGrid3 = matRad_calcCubesDoseGrid(retStruct.weights(:,5),dij) + + +%% +cstDVH = retStruct.modcst; +cstDVH(10,:) = []; +cstDVH(5,:) = []; +cstDVH(4,:) = []; +cstDVH(3,:) = []; +cstDVH(2,:) = []; +%% +dvh = matRad_calcDVH(cstDVH,resultGUIDoseGrid.RBExD); +dvh2 = matRad_calcDVH(cstDVH,resultGUIDoseGrid2.RBExD); +dvh3 = matRad_calcDVH(cstDVH,resultGUIDoseGrid3.RBExD); + +figure +matRad_showDVH(dvh,cstDVH,pln); +matRad_showDVH(dvh2,cstDVH,pln,2); +matRad_showDVH(dvh3,cstDVH,pln,3); +%% +matlab2tikz('width', '\fwidth', 'height', '\fheight') +%% Plot slices +resultGUI = matRad_calcCubes(retStruct.weights(:,1),dij) +resultGUI2 = matRad_calcCubes(retStruct.weights(:,2),dij) +resultGUI3 = matRad_calcCubes(retStruct.weights(:,5),dij) +%% +cstI = cst; +cstI(10,:) = []; +cstI(5,:) = []; +cstI(4,:) = []; +cstI(3,:) = []; +cstI(2,:) = []; + +%% +figure +[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI.RBExD,3,slice) +for j= 1: numel(hContour) + hContour{j}(1).LineWidth = 2; +end +zoom(1.4) +set(gca(),'xlabel',[]) +set(gca(),'ylabel',[]) +set(gca(),'title',[]) +set(gca(),'xtick',[]) +set(gca(),'ytick',[]) + +%{ +figure +[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI2.RBExD,3,slice) +for j= 1: numel(hContour) + hContour{j}(1).LineWidth = 2; +end +zoom(1.4) + +figure +[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI3.RBExD,3,slice) +for j= 1: numel(hContour) + hContour{j}(1).LineWidth = 2; +end +zoom(1.4) +%} + +matlab2tikz('width', '\fwidth', 'height', '\fheight') + +%% For plot obtained from navigation +figure +[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI1.physicalDose,3,slice) +for j= 1: numel(hContour) + hContour{j}(1).LineWidth = 2; +end +zoom(1.4) +%% +figure +plot(retStruct.errors) +%% +resultGUIDoseGridNav = matRad_calcCubesDoseGrid(resultGUI.w,dij) +dvhNav = matRad_calcDVH(cstDVH,resultGUIDoseGridNav.RBExD); +figure +matRad_showDVH(dvhNav,cstDVH,pln); +%% +matRad_plotParetoSurface(retStruct) +%% +matRad_plotPenaltyGrid(retStruct.penGrid) + +%% +matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) \ No newline at end of file diff --git a/matRad_calcCubes.m b/matRad_calcCubes.m index ac650bb2b..572912094 100644 --- a/matRad_calcCubes.m +++ b/matRad_calcCubes.m @@ -29,140 +29,10 @@ % LICENSE file. % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - if nargin < 3 scenNum = 1; end - -resultGUI.w = w; - -if isfield(dij,'numParticlesPerMU') - resultGUI.MU = (w.*1e6) ./ dij.numParticlesPerMU; -end - -% get bixel - beam correspondence -for i = 1:dij.numOfBeams - beamInfo(i).suffix = ['_beam', num2str(i)]; - beamInfo(i).logIx = (dij.beamNum == i); -end -beamInfo(dij.numOfBeams+1).suffix = ''; -beamInfo(dij.numOfBeams+1).logIx = true(size(resultGUI.w,1),1); - - -%% Physical Dose -doseFields = {'physicalDose','doseToWater'}; -doseQuantities = {'','_std','_batchStd'}; -% compute physical dose for all beams individually and together -for j = 1:length(doseFields) - for k = 1:length(doseQuantities) - % Check if combination is a field in dij, otherwise skip - if isfield(dij,[doseFields{j} doseQuantities{k}]) - % Handle standard deviation fields and add quadratically - if ~isempty(strfind(lower(doseQuantities{1}),'std')) - for i = 1:length(beamInfo) - resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix]) = sqrt(reshape(full(dij.([doseFields{j} doseQuantities{k}]){scenNum}.^2 * (resultGUI.w .* beamInfo(i).logIx)),dij.doseGrid.dimensions)); - resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix])(isnan(resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix]))) = 0; - end - % Handle normal fields as usual - else - for i = 1:length(beamInfo) - resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix]) = reshape(full(dij.([doseFields{j} doseQuantities{k}]){scenNum} * (resultGUI.w .* beamInfo(i).logIx)),dij.doseGrid.dimensions); - end - end - end - end -end - - -%% LET -% consider LET -if isfield(dij,'mLETDose') - for i = 1:length(beamInfo) - LETDoseCube = reshape(full(dij.mLETDose{scenNum} * (resultGUI.w .* beamInfo(i).logIx)),dij.doseGrid.dimensions); - resultGUI.(['LET', beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); - ix = resultGUI.(['physicalDose', beamInfo(i).suffix]) > 0; - resultGUI.(['LET', beamInfo(i).suffix])(ix) = LETDoseCube(ix)./resultGUI.(['physicalDose', beamInfo(i).suffix])(ix); - end -end - - -%% RBE weighted dose -% consider RBE for protons and skip varRBE calculation -if isfield(dij,'RBE') && isscalar(dij.RBE) - for i = 1:length(beamInfo) - resultGUI.(['RBExD', beamInfo(i).suffix]) = resultGUI.(['physicalDose', beamInfo(i).suffix]) * dij.RBE; - end -elseif any(cellfun(@(teststr) ~isempty(strfind(lower(teststr),'alpha')), fieldnames(dij))) - % Load RBE models if MonteCarlo was calculated for multiple models - if isfield(dij,'RBE_models') - RBE_model = cell(1,length(dij.RBE_models)); - for i = 1:length(dij.RBE_models) - RBE_model{i} = ['_' dij.RBE_models{i}]; - end - else - RBE_model = {''}; - end - - % Loop through RBE models - for j = 1:length(RBE_model) - % Check if combination is a field in dij, otherwise skip - if isfield(dij,['mAlphaDose' RBE_model{j}]) - for i = 1:length(beamInfo) - % Get weights of current beam - wBeam = (resultGUI.w .* beamInfo(i).logIx); - - % consider biological optimization - ix = dij.bx(:,scenNum)~=0 & resultGUI.(['physicalDose', beamInfo(i).suffix])(:) > 0; - - % Calculate effect from alpha- and sqrtBetaDose - resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]) = full(dij.(['mAlphaDose' RBE_model{j}]){scenNum} * wBeam + (dij.(['mSqrtBetaDose' RBE_model{j}]){scenNum} * wBeam).^2); - resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]) = reshape(resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]),dij.doseGrid.dimensions); - - % Calculate RBExD from the effect - resultGUI.(['RBExD', RBE_model{j}, beamInfo(i).suffix]) = zeros(size(resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]))); - resultGUI.(['RBExD', RBE_model{j}, beamInfo(i).suffix])(ix) = (sqrt(dij.ax(ix).^2 + 4 .* dij.bx(ix) .* resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix])(ix)) - dij.ax(ix))./(2.*dij.bx(ix)); - - % Divide RBExD with the physicalDose to get the plain RBE cube - resultGUI.(['RBE', RBE_model{j}, beamInfo(i).suffix]) = resultGUI.(['RBExD', RBE_model{j}, beamInfo(i).suffix])./resultGUI.(['physicalDose', beamInfo(i).suffix]); - - % Initialize alpha/beta cubes - resultGUI.(['alpha', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); - resultGUI.(['beta', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); - resultGUI.(['alphaDoseCube', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); - resultGUI.(['SqrtBetaDoseCube', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); - - % Calculate alpha and weighted alphaDose - AlphaDoseCube = full(dij.(['mAlphaDose' RBE_model{j}]){scenNum} * wBeam); - resultGUI.(['alpha', RBE_model{j}, beamInfo(i).suffix])(ix) = AlphaDoseCube(ix)./resultGUI.(['physicalDose', beamInfo(i).suffix])(ix); - resultGUI.(['alphaDoseCube', RBE_model{j}, beamInfo(i).suffix])(ix) = AlphaDoseCube(ix); - - % Calculate beta and weighted sqrtBetaDose - SqrtBetaDoseCube = full(dij.(['mSqrtBetaDose' RBE_model{j}]){scenNum} * wBeam); - resultGUI.(['beta', RBE_model{j}, beamInfo(i).suffix])(ix) = (SqrtBetaDoseCube(ix)./resultGUI.(['physicalDose', beamInfo(i).suffix])(ix)).^2; - resultGUI.(['SqrtBetaDoseCube', RBE_model{j}, beamInfo(i).suffix])(ix) = SqrtBetaDoseCube(ix); - end - end - end -end - -%% Final processing -% Remove suffix for RBExD if there's only one available -if any(cellfun(@(teststr) ~isempty(strfind(lower(teststr),'alpha')), fieldnames(dij))) && isfield(dij,'RBE_models') && length(dij.RBE_models) == 1 - % Get fieldnames that include the specified RBE model - fnames = fieldnames(resultGUI); - fnames = fnames(cellfun(@(teststr) ~isempty(strfind(lower(teststr),lower(dij.RBE_models{1}))), fnames)); - - % Rename fields and remove model specifier if there's only one - for f = 1:length(fnames) - resultGUI.(erase(fnames{f},['_',dij.RBE_models{1}])) = resultGUI.(fnames{f}); - end - - % Remove old fields - resultGUI = rmfield(resultGUI,fnames); -end - -% group similar fields together -resultGUI = orderfields(resultGUI); +resultGUI = matRad_calcCubesDoseGrid(w,dij,scenNum) % interpolation if dose grid does not match ct grid if any(dij.ctGrid.dimensions~=dij.doseGrid.dimensions) diff --git a/matRad_calcCubesDoseGrid.m b/matRad_calcCubesDoseGrid.m new file mode 100644 index 000000000..71219994e --- /dev/null +++ b/matRad_calcCubesDoseGrid.m @@ -0,0 +1,165 @@ +function resultGUI = matRad_calcCubesDoseGrid(w,dij,scenNum) +% matRad computation of all cubes for the resultGUI struct +% which is used as result container and for visualization in matRad's GUI +% +% call +% resultGUI = matRad_calcCubes(w,dij) +% resultGUI = matRad_calcCubes(w,dij,scenNum) +% +% input +% w: bixel weight vector +% dij: dose influence matrix +% scenNum: optional: number of scenario to calculated (default 1) +% +% output +% resultGUI: matRad result struct +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2015 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if nargin < 3 + scenNum = 1; +end + +resultGUI.w = w; + +if isfield(dij,'numParticlesPerMU') + resultGUI.MU = (w.*1e6) ./ dij.numParticlesPerMU; +end + +% get bixel - beam correspondence +for i = 1:dij.numOfBeams + beamInfo(i).suffix = ['_beam', num2str(i)]; + beamInfo(i).logIx = (dij.beamNum == i); +end +beamInfo(dij.numOfBeams+1).suffix = ''; +beamInfo(dij.numOfBeams+1).logIx = true(size(resultGUI.w,1),1); + + +%% Physical Dose +doseFields = {'physicalDose','doseToWater'}; +doseQuantities = {'','_std','_batchStd'}; +% compute physical dose for all beams individually and together +for j = 1:length(doseFields) + for k = 1:length(doseQuantities) + % Check if combination is a field in dij, otherwise skip + if isfield(dij,[doseFields{j} doseQuantities{k}]) + % Handle standard deviation fields and add quadratically + if ~isempty(strfind(lower(doseQuantities{1}),'std')) + for i = 1:length(beamInfo) + resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix]) = sqrt(reshape(full(dij.([doseFields{j} doseQuantities{k}]){scenNum}.^2 * (resultGUI.w .* beamInfo(i).logIx)),dij.doseGrid.dimensions)); + resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix])(isnan(resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix]))) = 0; + end + % Handle normal fields as usual + else + for i = 1:length(beamInfo) + resultGUI.([doseFields{j}, doseQuantities{k}, beamInfo(i).suffix]) = reshape(full(dij.([doseFields{j} doseQuantities{k}]){scenNum} * (resultGUI.w .* beamInfo(i).logIx)),dij.doseGrid.dimensions); + end + end + end + end +end + + +%% LET +% consider LET +if isfield(dij,'mLETDose') + for i = 1:length(beamInfo) + LETDoseCube = reshape(full(dij.mLETDose{scenNum} * (resultGUI.w .* beamInfo(i).logIx)),dij.doseGrid.dimensions); + resultGUI.(['LET', beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); + ix = resultGUI.(['physicalDose', beamInfo(i).suffix]) > 0; + resultGUI.(['LET', beamInfo(i).suffix])(ix) = LETDoseCube(ix)./resultGUI.(['physicalDose', beamInfo(i).suffix])(ix); + end +end + + +%% RBE weighted dose +% consider RBE for protons and skip varRBE calculation +if isfield(dij,'RBE') && isscalar(dij.RBE) + for i = 1:length(beamInfo) + resultGUI.(['RBExD', beamInfo(i).suffix]) = resultGUI.(['physicalDose', beamInfo(i).suffix]) * dij.RBE; + end +elseif any(cellfun(@(teststr) ~isempty(strfind(lower(teststr),'alpha')), fieldnames(dij))) + % Load RBE models if MonteCarlo was calculated for multiple models + if isfield(dij,'RBE_models') + RBE_model = cell(1,length(dij.RBE_models)); + for i = 1:length(dij.RBE_models) + RBE_model{i} = ['_' dij.RBE_models{i}]; + end + else + RBE_model = {''}; + end + + % Loop through RBE models + for j = 1:length(RBE_model) + % Check if combination is a field in dij, otherwise skip + if isfield(dij,['mAlphaDose' RBE_model{j}]) + for i = 1:length(beamInfo) + % Get weights of current beam + wBeam = (resultGUI.w .* beamInfo(i).logIx); + + % consider biological optimization + ix = dij.bx(:,scenNum)~=0 & resultGUI.(['physicalDose', beamInfo(i).suffix])(:) > 0; + + % Calculate effect from alpha- and sqrtBetaDose + resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]) = full(dij.(['mAlphaDose' RBE_model{j}]){scenNum} * wBeam + (dij.(['mSqrtBetaDose' RBE_model{j}]){scenNum} * wBeam).^2); + resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]) = reshape(resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]),dij.doseGrid.dimensions); + + % Calculate RBExD from the effect + resultGUI.(['RBExD', RBE_model{j}, beamInfo(i).suffix]) = zeros(size(resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix]))); + resultGUI.(['RBExD', RBE_model{j}, beamInfo(i).suffix])(ix) = (sqrt(dij.ax(ix).^2 + 4 .* dij.bx(ix) .* resultGUI.(['effect', RBE_model{j}, beamInfo(i).suffix])(ix)) - dij.ax(ix))./(2.*dij.bx(ix)); + + % Divide RBExD with the physicalDose to get the plain RBE cube + resultGUI.(['RBE', RBE_model{j}, beamInfo(i).suffix]) = resultGUI.(['RBExD', RBE_model{j}, beamInfo(i).suffix])./resultGUI.(['physicalDose', beamInfo(i).suffix]); + + % Initialize alpha/beta cubes + resultGUI.(['alpha', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); + resultGUI.(['beta', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); + resultGUI.(['alphaDoseCube', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); + resultGUI.(['SqrtBetaDoseCube', RBE_model{j}, beamInfo(i).suffix]) = zeros(dij.doseGrid.dimensions); + + % Calculate alpha and weighted alphaDose + AlphaDoseCube = full(dij.(['mAlphaDose' RBE_model{j}]){scenNum} * wBeam); + resultGUI.(['alpha', RBE_model{j}, beamInfo(i).suffix])(ix) = AlphaDoseCube(ix)./resultGUI.(['physicalDose', beamInfo(i).suffix])(ix); + resultGUI.(['alphaDoseCube', RBE_model{j}, beamInfo(i).suffix])(ix) = AlphaDoseCube(ix); + + % Calculate beta and weighted sqrtBetaDose + SqrtBetaDoseCube = full(dij.(['mSqrtBetaDose' RBE_model{j}]){scenNum} * wBeam); + resultGUI.(['beta', RBE_model{j}, beamInfo(i).suffix])(ix) = (SqrtBetaDoseCube(ix)./resultGUI.(['physicalDose', beamInfo(i).suffix])(ix)).^2; + resultGUI.(['SqrtBetaDoseCube', RBE_model{j}, beamInfo(i).suffix])(ix) = SqrtBetaDoseCube(ix); + end + end + end +end + +%% Final processing +% Remove suffix for RBExD if there's only one available +if any(cellfun(@(teststr) ~isempty(strfind(lower(teststr),'alpha')), fieldnames(dij))) && isfield(dij,'RBE_models') && length(dij.RBE_models) == 1 + % Get fieldnames that include the specified RBE model + fnames = fieldnames(resultGUI); + fnames = fnames(cellfun(@(teststr) ~isempty(strfind(lower(teststr),lower(dij.RBE_models{1}))), fnames)); + + % Rename fields and remove model specifier if there's only one + for f = 1:length(fnames) + resultGUI.(erase(fnames{f},['_',dij.RBE_models{1}])) = resultGUI.(fnames{f}); + end + + % Remove old fields + resultGUI = rmfield(resultGUI,fnames); +end + +% group similar fields together +resultGUI = orderfields(resultGUI); \ No newline at end of file diff --git a/optimization/+DoseObjectives/matRad_EUDMin.m b/optimization/+DoseObjectives/matRad_EUDMin.m new file mode 100644 index 000000000..8447eef24 --- /dev/null +++ b/optimization/+DoseObjectives/matRad_EUDMin.m @@ -0,0 +1,117 @@ +classdef matRad_EUDMin < DoseObjectives.matRad_DoseObjective +% matRad_EUD Implements a penalized equivalent uniform dose objective +% See matRad_DoseObjective for interface description +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2020 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties (Constant) + name = 'EUD'; + parameterNames = {'EUD^{ref}', 'k'}; + parameterTypes = {'dose','numeric'}; + end + + properties + parameters = {0, 3.5}; + penalty = 1; + end + + methods + function obj = matRad_EUDMin(penalty,eudRef, eudExponent) + %If we have a struct in first argument + if nargin == 1 && isstruct(penalty) + inputStruct = penalty; + initFromStruct = true; + else + initFromStruct = false; + inputStruct = []; + end + + %Call Superclass Constructor (for struct initialization) + obj@DoseObjectives.matRad_DoseObjective(inputStruct); + + %now handle initialization from other parameters + if ~initFromStruct + if nargin >= 3 && isscalar(eudExponent) + obj.parameters{2} = eudExponent; + end + + if nargin >= 2 && isscalar(eudRef) + obj.parameters{1} = eudRef; + end + + if nargin >= 1 && isscalar(penalty) + obj.penalty = penalty; + end + end + end + + %% Calculates the Objective Function value + function fDose = computeDoseObjectiveFunction(obj,dose) + % get exponent for EUD + k = obj.parameters{2}; + + dose(dose <= 0) = 0.001; + % calculate power sum + powersum = sum(dose.^k); + + + + + %Calculate objective + + %This check is not needed since dose is always positive + fDose = nthroot(powersum/numel(dose),k); + end + + %% Calculates the Objective Function gradient + function fDoseGrad = computeDoseObjectiveGradient(obj,dose) + % get exponent for EUD + k = obj.parameters{2}; + + %numerical stability + dose(dose <= 0) = 0.001; + + % calculate power sum + powersum = sum(dose.^k); + + + %This check is not needed since dose is always positive + %if powersum > 0 + + %derivatives = nthroot(1/numel(dose),k) * powersum^((1-k)/k) * (dose.^(k-1)); + fDoseGrad = nthroot(1/numel(dose),k) * powersum^((1-k)/k) * (dose.^(k-1)); %.* (nthroot(powersum/numel(dose),k) - obj.parameters{1}); + %end + if any(~isfinite(fDoseGrad)) % check for inf and nan for numerical stability + error(['EUD computation failed. Reduce exponent to resolve numerical problems.']); + end + end + + function constr = turnIntoLexicographicConstraint(obj,goal) + objective = DoseObjectives.matRad_EUDMin(100,0,obj.parameters{1,2}); + constr = DoseConstraints.matRad_ObjectiveConstraint(objective,goal,0); + end + + function [obj,goal] = SetAsLexicographic(obj) + %update objective so it is suitable for lexicographic + goal = obj.parameters{1,1}; + obj.parameters{1,1} = 0; + obj.penalty = 100; + end + end + +end + diff --git a/optimization/optimizer/matRad_OptimizerIPOPT.m b/optimization/optimizer/matRad_OptimizerIPOPT.m index 4ff4e6be2..1bad6a84a 100644 --- a/optimization/optimizer/matRad_OptimizerIPOPT.m +++ b/optimization/optimizer/matRad_OptimizerIPOPT.m @@ -80,7 +80,7 @@ obj.options.acceptable_constr_viol_tol = 1e-2; % (Acc3) obj.options.acceptable_dual_inf_tol = 1e10; % (Acc4) obj.options.acceptable_compl_inf_tol = 1e10; % (Acc5) - obj.options.acceptable_obj_change_tol = 1e-4; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled + obj.options.acceptable_obj_change_tol = 1e-6; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled obj.options.max_iter = matRad_cfg.propOpt.defaultMaxIter; obj.options.max_cpu_time = 7200; From 22bb7e66c020c9737e8372bb236b6e3d9f70a6dd Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:11:41 +0200 Subject: [PATCH 05/32] Changed naming convention --- .../matRad_OptimizationProblem.m | 12 ++--- .../matRad_constraintFunctions.m | 20 +++---- .../matRad_constraintJacobian.m | 34 ++++++------ .../matRad_getConstraintBounds.m | 8 +-- .../matRad_getJacobianStructure.m | 8 +-- .../matRad_objectiveFunction.m | 16 +++--- .../matRad_objectiveFunctions.m | 28 +++++----- .../matRad_objectiveGradient.m | 52 +++++++++---------- 8 files changed, 89 insertions(+), 89 deletions(-) diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index cebd9b45a..9b8d13946 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -27,8 +27,8 @@ normalizationScheme = struct('type','none'); objectives = {}; %cell array storing all objectives, has to be initialized at the start constraints = {}; % - objidx; - constridx; + objIdx; + constrIdx; quantityOpt = ''; useMaxApprox = 'logsumexp'; %'pnorm'; %'logsumexp'; %'none'; p = 30; %Can be chosen larger (closer to maximum) or smaller (closer to mean). Only tested 20 >= p >= 1 @@ -177,8 +177,8 @@ function updatePenalties(optiProb,newPen) methods (Access = private) function extractObjectivesAndConstraintsFromcst(optiProb,cst) %used to extract objectives from cst and store in cell array as property of optimization Problem - optiProb.objidx = []; - optiProb.constridx = []; + optiProb.objIdx = []; + optiProb.constrIdx = []; optiProb.objectives = {}; optiProb.constraints = {}; @@ -193,12 +193,12 @@ function extractObjectivesAndConstraintsFromcst(optiProb,cst) obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); end if contains(class(obj),'DoseObjectives') - optiProb.objidx = [optiProb.objidx;i,j]; + optiProb.objIdx = [optiProb.objIdx;i,j]; obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); optiProb.objectives(end+1) = {obj}; elseif contains(class(obj),'DoseConstraints') - optiProb.constridx = [optiProb.constridx;i,j]; + optiProb.constrIdx = [optiProb.constrIdx;i,j]; obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); optiProb.constraints(end+1) = {obj}; end diff --git a/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m b/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m index 15056327c..f70388cc4 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m +++ b/optimization/@matRad_OptimizationProblem/matRad_constraintFunctions.m @@ -49,21 +49,21 @@ c = []; % compute objective function for every VOI. -for i = 1:size(optiProb.constridx,1) +for i = 1:size(optiProb.constrIdx,1) constraint = optiProb.constraints{i}; - curConidx = optiProb.constridx(i,1); + curConIdx = optiProb.constrIdx(i,1); robustness = constraint.robustness; switch robustness case 'none' % if conventional opt: just sum objectives of nominal dose - d_i = d{1}(cst{curConidx,4}{1}); + d_i = d{1}(cst{curConIdx,4}{1}); c = [c; constraint.computeDoseConstraintFunction(d_i)]; case 'PROB' % if prob opt: sum up expectation value of objectives - d_i = dExp{1}(cst{curConidx,4}{1}); + d_i = dExp{1}(cst{curConIdx,4}{1}); c = [c; constraint.computeDoseConstraintFunction(d_i)]; case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR @@ -79,14 +79,14 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curConIdx,4}{contourIx},:); d_max = max(d_Scen,[],2); d_min = min(d_Scen,[],2); - if isequal(cst{curConidx,3},'OAR') + if isequal(cst{curConIdx,3},'OAR') d_i = d_max; - elseif isequal(cst{curConidx,3},'TARGET') + elseif isequal(cst{curConIdx,3},'TARGET') d_i = d_min; end @@ -105,13 +105,13 @@ d_tmp = [d{:}]; end - d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curConIdx,4}{contourIx},:); d_max = max(d_Scen,[],2); d_min = min(d_Scen,[],2); - if isequal(cst{curConidx,3},'OAR') + if isequal(cst{curConIdx,3},'OAR') d_i = d_min; - elseif isequal(cst{curConidx,3},'TARGET') + elseif isequal(cst{curConIdx,3},'TARGET') d_i = d_max; end diff --git a/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m b/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m index e7f74cc22..1118acacc 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m +++ b/optimization/@matRad_OptimizationProblem/matRad_constraintJacobian.m @@ -59,20 +59,20 @@ contourScen = fullScen{1}; % compute objective function for every VOI. -for i = 1:size(optiProb.constridx,1) +for i = 1:size(optiProb.constrIdx,1) constraint = optiProb.constraints{i}; %Get the Optimization Object - curConidx = optiProb.constridx(i,1); + curConIdx = optiProb.constrIdx(i,1); robustness = constraint.robustness; switch robustness case 'none' % if conventional opt: just sum objectiveectives of nominal dose - d_i = d{1}(cst{curConidx,4}{1}); + d_i = d{1}(cst{curConIdx,4}{1}); jacobSub = constraint.computeDoseConstraintJacobian(d_i); case 'PROB' % if prob opt: sum up expectation value of objectives - d_i = dExp{1}(cst{curConidx,4}{1}); + d_i = dExp{1}(cst{curConIdx,4}{1}); jacobSub = constraint.computeDoseConstraintJacobian(d_i); case 'VWWC' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR @@ -88,14 +88,14 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curConIdx,4}{contourIx},:); d_max = max(d_Scen,[],2); d_min = min(d_Scen,[],2); - if isequal(cst{curConidx,3},'OAR') + if isequal(cst{curConIdx,3},'OAR') d_i = d_max; - elseif isequal(cst{curConidx,3},'TARGET') + elseif isequal(cst{curConIdx,3},'TARGET') d_i = d_min; end jacobSub = constraint.computeDoseConstraintJacobian(d_i); @@ -113,14 +113,14 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curConidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curConIdx,4}{contourIx},:); d_max = max(d_Scen,[],2); d_min = min(d_Scen,[],2); - if isequal(cst{curConidx,3},'OAR') + if isequal(cst{curConIdx,3},'OAR') d_i = d_min; - elseif isequal(cst{curConidx,3},'TARGET') + elseif isequal(cst{curConIdx,3},'TARGET') d_i = d_max; end jacobSub = constraint.computeDoseConstraintJacobian(d_i); @@ -140,14 +140,14 @@ % DoseProjection{1} = [DoseProjection{1},zeros(dij.doseGrid.numOfVoxels,nConst)]; %Now directly write the jacobian in there - DoseProjection{1}(cst{curConidx,4}{1},startIx:end) = jacobSub; + DoseProjection{1}(cst{curConIdx,4}{1},startIx:end) = jacobSub; elseif isa(optiProb.BP,'matRad_EffectProjection') && ~isempty(jacobSub) if isa(optiProb.BP,'matRad_VariableRBEProjection') - scaledEffect = (dij.gamma(cst{curConidx,4}{1}) + d_i); - jacobSub = jacobSub./(2*dij.bx(cst{curConidx,4}{1}) .* scaledEffect); + scaledEffect = (dij.gamma(cst{curConIdx,4}{1}) + d_i); + jacobSub = jacobSub./(2*dij.bx(cst{curConIdx,4}{1}) .* scaledEffect); end startIx = size(mAlphaDoseProjection{1},2) + 1; @@ -155,12 +155,12 @@ %First append the alphaDose matrix with sparse %zeros then insert mAlphaDoseProjection{1} = [mAlphaDoseProjection{1},sparse(dij.doseGrid.numOfVoxels,nConst)]; - mAlphaDoseProjection{1}(cst{curConidx,4}{1},startIx:end) = jacobSub; + mAlphaDoseProjection{1}(cst{curConIdx,4}{1},startIx:end) = jacobSub; %The betadose has a different structure due to the %quadratic transformation, but in principle the %same as above - mSqrtBetaDoseProjection{1} = [mSqrtBetaDoseProjection{1}, sparse(repmat(cst{curConidx,4}{1},nConst,1),repmat(1:numel(cst{curConidx,4}{1}),1,nConst),2*reshape(jacobSub',[],1),dij.doseGrid.numOfVoxels,nConst*numel(cst{curConidx,4}{1}))]; + mSqrtBetaDoseProjection{1} = [mSqrtBetaDoseProjection{1}, sparse(repmat(cst{curConIdx,4}{1},nConst,1),repmat(1:numel(cst{curConIdx,4}{1}),1,nConst),2*reshape(jacobSub',[],1),dij.doseGrid.numOfVoxels,nConst*numel(cst{curConIdx,4}{1}))]; if isempty(constraintID) newID = 1; @@ -168,9 +168,9 @@ newID = constraintID(end)+1; end - voxelID = [voxelID;repmat(cst{curConidx,4}{1},nConst,1)]; %Keep track of voxels for organizing the sqrt(beta)Dose projection later + voxelID = [voxelID;repmat(cst{curConIdx,4}{1},nConst,1)]; %Keep track of voxels for organizing the sqrt(beta)Dose projection later constraintID = [constraintID, ... - reshape(ones(numel(cst{curConidx,4}{1}),1)*[newID:newID+nConst-1],[1 nConst*numel(cst{curConidx,4}{1})])]; %Keep track of constraints for organizing the sqrt(beta)Dose projection later + reshape(ones(numel(cst{curConIdx,4}{1}),1)*[newID:newID+nConst-1],[1 nConst*numel(cst{curConIdx,4}{1})])]; %Keep track of constraints for organizing the sqrt(beta)Dose projection later end diff --git a/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m b/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m index 0b5c0ed82..a07248033 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m +++ b/optimization/@matRad_OptimizationProblem/matRad_getConstraintBounds.m @@ -34,12 +34,12 @@ % compute objective function for every VOI. -for i = 1:size(optiProb.constridx,1) +for i = 1:size(optiProb.constrIdx,1) obj = optiProb.constraints{i}; - curConidx = optiProb.constridx(i,1); + curConIdx = optiProb.constrIdx(i,1); - cl = [cl;obj.lowerBounds(numel(cst{curConidx,4}{1}))]; - cu = [cu;obj.upperBounds(numel(cst{curConidx,4}{1}))]; + cl = [cl;obj.lowerBounds(numel(cst{curConIdx,4}{1}))]; + cu = [cu;obj.upperBounds(numel(cst{curConIdx,4}{1}))]; end diff --git a/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m b/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m index edb23fc3b..43f6745ae 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m +++ b/optimization/@matRad_OptimizationProblem/matRad_getJacobianStructure.m @@ -34,13 +34,13 @@ % Initializes constraints jacobStruct = sparse([]); % compute objective function for every VOI. -for i = 1:size(optiProb.constridx,1) +for i = 1:size(optiProb.constrIdx,1) obj = optiProb.constraints{i}; - curConidx = optiProb.constridx(i,1); + curConIdx = optiProb.constrIdx(i,1); % get the jacobian structure depending on dose - jacobDoseStruct = obj.getDoseConstraintJacobianStructure(numel(cst{curConidx,4}{1})); + jacobDoseStruct = obj.getDoseConstraintJacobianStructure(numel(cst{curConIdx,4}{1})); nRows = size(jacobDoseStruct,2); - jacobStruct = [jacobStruct; repmat(spones(mean(dij.physicalDose{1}(cst{curConidx,4}{1},:))),nRows,1)]; + jacobStruct = [jacobStruct; repmat(spones(mean(dij.physicalDose{1}(cst{curConIdx,4}{1},:))),nRows,1)]; end \ No newline at end of file diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m index dad91658d..7f9eb3fe0 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m @@ -45,25 +45,25 @@ %COWC calculation %get indices of objectives and their respective penalties - COWCidxs = []; - idxs = []; + COWCIdxs = []; + Idxs = []; penalties = []; COWCpenalties = []; f = 0; for i = 1:numel(optiProb.objectives) if strcmp(optiProb.objectives{i}.robustness,'COWC') - COWCidxs = [COWCidxs,i]; + COWCIdxs = [COWCIdxs,i]; COWCpenalties = [COWCpenalties,optiProb.objectives{i}.penalty]; else - idxs = [idxs,i]; + Idxs = [Idxs,i]; penalties = [penalties,optiProb.objectives{i}.penalty]; end end - if isempty(COWCidxs) + if isempty(COWCIdxs) f_COWC = [0]; else - f_COWCs = fIndv(COWCidxs,:); + f_COWCs = fIndv(COWCIdxs,:); f_COWC = COWCpenalties*f_COWCs; end%sum over scenarios respect penalties @@ -85,10 +85,10 @@ f = f + fMax; %now sum up over other robustness scenarios - if isempty(idxs) + if isempty(Idxs) f_wo_COWC = [0]; else - f_wo_COWCs = fIndv(idxs,:); + f_wo_COWCs = fIndv(Idxs,:); f_wo_COWC = sum(penalties*f_wo_COWCs,2); %sum over scenarios? end f = f + f_wo_COWC; diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m index 51f608a3f..d673cb839 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m @@ -56,10 +56,10 @@ %individual objective functions - for i = 1:size(optiProb.objidx,1) %loop over objectives + for i = 1:size(optiProb.objIdx,1) %loop over objectives objective = optiProb.objectives{i}; - curObjidx = optiProb.objidx(i,1); + curObjIdx = optiProb.objIdx(i,1); %calculation differs based on robustness robustness = objective.robustness; @@ -69,7 +69,7 @@ case 'none' % if conventional opt: just sum objectives of nominal dose for ixScen = useScen - d_i = d{ixScen}(cst{curObjidx,4}{useScen(1)}); + d_i = d{ixScen}(cst{curObjIdx,4}{useScen(1)}); fInd = objective.computeDoseObjectiveFunction(d_i); fIndv(i,ixScen) = fInd; end @@ -80,7 +80,7 @@ ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); fInd = scenProb(s) * objective.computeDoseObjectiveFunction(d_i); fIndv(i,s) = fInd; @@ -90,12 +90,12 @@ case 'PROB' % if prob opt: sum up expectation value of objectives TODO: CHECK FOR VALUE TO APPEND %NOT UPDATED YET! - d_i = dExp{1}(cst{curObjidx,4}{1}); + d_i = dExp{1}(cst{curObjIdx,4}{1}); fInd = objective.computeDoseObjectiveFunction(d_i); fIndv = [fIndv fInd] - p = 1/numel(cst{curObjidx,4}{1}); + p = 1/numel(cst{curObjIdx,4}{1}); % only one variance term per VOI if j == 1 @@ -118,14 +118,14 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curObjidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curObjIdx,4}{contourIx},:); d_max = max(d_Scen,[],2); d_min = min(d_Scen,[],2); - if isequal(cst{curObjidx,3},'OAR') + if isequal(cst{curObjIdx,3},'OAR') d_i = d_max; - elseif isequal(cst{curObjidx,3},'TARGET') + elseif isequal(cst{curObjIdx,3},'TARGET') d_i = d_min; end @@ -145,13 +145,13 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curObjidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curObjIdx,4}{contourIx},:); d_max = max(d_Scen,[],2); d_min = min(d_Scen,[],2); - if isequal(cst{curObjidx,3},'OAR') + if isequal(cst{curObjIdx,3},'OAR') d_i = d_min; - elseif isequal(cst{curObjidx,3},'TARGET') + elseif isequal(cst{curObjIdx,3},'TARGET') d_i = d_max; end @@ -164,7 +164,7 @@ ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); fIndv(i,s) = objective.computeDoseObjectiveFunction(d_i); end @@ -176,7 +176,7 @@ ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); f_OWC(s) = objective.computeDoseObjectiveFunction(d_i); end diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m index 0c88e0b50..a0dd5d1c4 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m @@ -62,9 +62,9 @@ f_COWC = zeros(size(dij.physicalDose)); % compute objective function for every VOI. -for i = 1:size(optiProb.objidx,1) +for i = 1:size(optiProb.objIdx,1) objective = optiProb.objectives{i}; - curObjidx = optiProb.objidx(i,1); + curObjIdx = optiProb.objIdx(i,1); % retrieve the robustness type robustness = objective.robustness; @@ -75,7 +75,7 @@ for s = 1:numel(useScen) ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); %add to dose gradient %%THIS part should be changed -> see comment in pull request @@ -86,16 +86,16 @@ Ui = 1; Li = 0; end - doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + objective.penalty*1/(Ui-Li)*objective.computeDoseObjectiveGradient(d_i); + doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + objective.penalty*1/(Ui-Li)*objective.computeDoseObjectiveGradient(d_i); end case 'STOCH' % perform stochastic optimization with weighted / random scenarios for s = 1:numel(useScen) ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); - doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + ... + doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + ... (objective.penalty*objective.computeDoseObjectiveGradient(d_i) * scenProb(s)); end @@ -106,11 +106,11 @@ doseGradientExp{1} = zeros(dij.doseGrid.numOfVoxels,1); end - d_i = dExp{1}(cst{curObjidx,4}{1}); + d_i = dExp{1}(cst{curObjIdx,4}{1}); - doseGradientExp{1}(cst{curObjidx,4}{1}) = doseGradientExp{1}(cst{curObjidx,4}{1}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); + doseGradientExp{1}(cst{curObjIdx,4}{1}) = doseGradientExp{1}(cst{curObjIdx,4}{1}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); - p = objective.penalty/numel(cst{curObjidx,4}{1}); + p = objective.penalty/numel(cst{curObjIdx,4}{1}); vOmega = vOmega + p * dOmega{i,1}; @@ -127,13 +127,13 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curObjidx,4}{contourIx},:); + d_Scen = d_tmp(cst{curObjIdx,4}{contourIx},:); [d_max,max_ix] = max(d_Scen,[],2); [d_min,min_ix] = min(d_Scen,[],2); - if isequal(cst{curObjidx,3},'OAR') + if isequal(cst{curObjIdx,3},'OAR') d_i = d_max; - elseif isequal(cst{curObjidx,3},'TARGET') + elseif isequal(cst{curObjIdx,3},'TARGET') d_i = d_min; end @@ -147,13 +147,13 @@ ixScen = useScen(s); ixContour = contourScen(s); - if isequal(cst{curObjidx,3},'OAR') + if isequal(cst{curObjIdx,3},'OAR') currWcIx = double(max_ix == s); - elseif isequal(cst{curObjidx,3},'TARGET') + elseif isequal(cst{curObjIdx,3},'TARGET') currWcIx = double(min_ix == s); end - doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + deltaTmp.*currWcIx; + doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + deltaTmp.*currWcIx; end case 'VWWC_INV' % voxel-wise worst case - takes minimum dose in TARGET and maximum in OAR @@ -169,13 +169,13 @@ d_tmp = [d{useScen}]; end - d_Scen = d_tmp(cst{curObjidx,4}{1},:); + d_Scen = d_tmp(cst{curObjIdx,4}{1},:); [d_max,max_ix] = max(d_Scen,[],2); [d_min,min_ix] = min(d_Scen,[],2); - if isequal(cst{curObjidx,3},'OAR') + if isequal(cst{curObjIdx,3},'OAR') d_i = d_min; - elseif isequal(cst{curObjidx,3},'TARGET') + elseif isequal(cst{curObjIdx,3},'TARGET') d_i = d_max; end @@ -189,13 +189,13 @@ ixScen = useScen(s); ixContour = contourScen(s); - if isequal(cst{curObjidx,3},'OAR') + if isequal(cst{curObjIdx,3},'OAR') currWcIx = double(min_ix == s); - elseif isequal(cst{curObjidx,3},'TARGET') + elseif isequal(cst{curObjIdx,3},'TARGET') currWcIx = double(max_ix == s); end - doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + deltaTmp.*currWcIx; + doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + deltaTmp.*currWcIx; end case 'COWC' % composite worst case consideres ovarall the worst objective function value @@ -209,10 +209,10 @@ ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); f_COWC(ixScen) = f_COWC(ixScen) + objective.penalty*objective.computeDoseObjectiveFunction(d_i); - delta_COWC{ixScen}(cst{curObjidx,4}{ixContour}) = delta_COWC{ixScen}(cst{curObjidx,4}{ixContour}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); + delta_COWC{ixScen}(cst{curObjIdx,4}{ixContour}) = delta_COWC{ixScen}(cst{curObjIdx,4}{ixContour}) + objective.penalty*objective.computeDoseObjectiveGradient(d_i); end case 'OWC' % objective-wise worst case consideres the worst individual objective function value @@ -228,11 +228,11 @@ ixScen = useScen(s); ixContour = contourScen(s); - d_i = d{ixScen}(cst{curObjidx,4}{ixContour}); + d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); f_OWC(ixScen) = objective.penalty*objective.computeDoseObjectiveFunction(d_i); - delta_OWC{ixScen}(cst{curObjidx,4}{ixContour}) = objective.penalty*objective.computeDoseObjectiveGradient(d_i); + delta_OWC{ixScen}(cst{curObjIdx,4}{ixContour}) = objective.penalty*objective.computeDoseObjectiveGradient(d_i); end @@ -256,7 +256,7 @@ ixScen = useScen(s); ixContour = contourScen(s); if fGrad(ixScen ) ~= 0 - doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjidx,4}{ixContour}) + fGrad(ixScen)*delta_OWC{ixScen}(cst{curObjidx,4}{ixContour}); + doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + fGrad(ixScen)*delta_OWC{ixScen}(cst{curObjIdx,4}{ixContour}); end end From 778b4cc02bdceaf2566f144444e58095c5b8fd6a Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 27 Oct 2023 14:51:40 +0200 Subject: [PATCH 06/32] Incorporate scenario change --- .../@matRad_OptimizationProblem/matRad_objectiveFunctions.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m index d673cb839..5bd7382a2 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunctions.m @@ -45,6 +45,7 @@ % get the used scenarios useScen = optiProb.BP.scenarios; scenProb = optiProb.BP.scenarioProb; + useNominalCtScen = optiProb.BP.nominalCtScenarios; % retrieve matching 4D scenarios fullScen = cell(ndims(d),1); @@ -68,7 +69,7 @@ switch robustness case 'none' % if conventional opt: just sum objectives of nominal dose - for ixScen = useScen + for ixScen = useNominalCtScen d_i = d{ixScen}(cst{curObjIdx,4}{useScen(1)}); fInd = objective.computeDoseObjectiveFunction(d_i); fIndv(i,ixScen) = fInd; From 8cb4398dcf11c1620e122d82fb10fe4d79ea2088 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:27:37 +0200 Subject: [PATCH 07/32] Small fixes Fixed some changes mentioned in the pull request regarding normalization --- Pareto/matRad_ParetoOptimization.m | 2 +- .../matRad_OptimizationProblem.m | 2 +- .../@matRad_OptimizationProblem/matRad_objectiveFunction.m | 6 ++---- .../@matRad_OptimizationProblem/matRad_objectiveGradient.m | 1 - 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m index 91ba1381a..24c6f5354 100644 --- a/Pareto/matRad_ParetoOptimization.m +++ b/Pareto/matRad_ParetoOptimization.m @@ -334,7 +334,7 @@ %% try to normalize objectives -optiProb.normalizationScheme.type = 'UL'; +optiProb.normalizationScheme.scheme = 'UL'; optiProb.normalizationScheme.U = max(fInd,[],1); optiProb.normalizationScheme.L = min(fInd,[],1); diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index 9b8d13946..f2ac5ee2f 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -24,7 +24,7 @@ properties BP - normalizationScheme = struct('type','none'); + normalizationScheme = struct('scheme','none'); % used in pareto optimization objectives = {}; %cell array storing all objectives, has to be initialized at the start constraints = {}; % objIdx; diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m index 7f9eb3fe0..970dea194 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m @@ -34,14 +34,12 @@ fIndv = matRad_objectiveFunctions(optiProb,w,dij,cst); %fIndv should be an mxn matrix where m is the number of objectives and n should be the number of scenarios used + % normalization is so far only used for pareto optimization switch optiProb.normalizationScheme.type - case 'UL' %does not make sense together with robustness or scenarios? -> Add check? + case 'UL' % f = (f-L)/(U-L) fIndv = optiProb.normalizeObjectives(fIndv')';%ISSUES IF COWC is used - end - %TODO: sum up over scenarios - - %COWC calculation %get indices of objectives and their respective penalties diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m index 9d32149bb..8be5d9c48 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m @@ -78,7 +78,6 @@ ixContour = contourScen(s); d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); %add to dose gradient - %%THIS part should be changed -> see comment in pull request if isfield(optiProb.normalizationScheme,'U') && isfield(optiProb.normalizationScheme,'L') Ui = optiProb.normalizationScheme.U(i); From d134d853e5fd9a066cc1f094eb551323f97cf664 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:52:30 +0100 Subject: [PATCH 08/32] Final updates - Renamed type to scheme for normalization - Moved normalization to optimation problem for Gradient (not entirely happy) - Some cleanup --- Pareto/matRad_ParetoOptimization.m | 110 ++++-------------- Pareto/tests/matRad_TG119.m | 12 +- Pareto/tools/matRad_ParetoSurfFromFacets.m | 6 +- matRad_plotParetoSurface.m | 20 +--- optimization/+DoseObjectives/matRad_EUDMin.m | 5 +- .../matRad_OptimizationProblem.m | 8 +- .../matRad_objectiveFunction.m | 2 +- .../matRad_objectiveGradient.m | 12 +- 8 files changed, 41 insertions(+), 134 deletions(-) diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m index 24c6f5354..348e85251 100644 --- a/Pareto/matRad_ParetoOptimization.m +++ b/Pareto/matRad_ParetoOptimization.m @@ -296,8 +296,6 @@ optimizer = matRad_OptimizerIPOPT; end -%check that number of penalties equals number of constraints - % PARETO PART %get number of objectives at the start @@ -305,14 +303,15 @@ %% generaete Anchor Points for optimization penGrid = matRad_generateAnchorPoints(objcount); -%matRad_plotPenaltyGrid(penGrid); +%initialize matrices for weight vectors and associated objective function values weights = zeros(numel(wInit),size(penGrid,1)); fInd = zeros(size(penGrid,1),objcount); objectiveFunctionVals = {}; -% loop over all penalty combinations +% loop over all anchor points for i = 1:size(penGrid,1) + optiProb.updatePenalties(penGrid(i,:)); @@ -320,6 +319,7 @@ wOpt = optimizer.wResult; info = optimizer.resultInfo; weights(:,i) = wOpt; + %set values for warm start %optimizer.optionsWarmStart.use = true; %optimizer.optionsWarmStart.zl = info.zl; @@ -332,7 +332,7 @@ -%% try to normalize objectives +%%normalize objectives optiProb.normalizationScheme.scheme = 'UL'; optiProb.normalizationScheme.U = max(fInd,[],1); @@ -341,44 +341,7 @@ fInd = (fInd-optiProb.normalizationScheme.L)./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); - - -%{ -varToLoad = {'data'} -load('dataRennen.mat',varToLoad{:}) -weights = data.weights; -penGrid = data.penGrid(1:4,:); -weights = weights(:,1:4); -fInd = data.finds; -fInd = fInd(1:4,:); -%} - -%% Grouping -%{ -if isfield(pln.propOpt,'grouping') %if no grouping ignore - - switch pln.propOpt.grouping - case 'forced' %grouping of objectives forced by user -> How to store groups? Pln para? - if isfield(pln.propOpt,'groups') - groups = pln.propOpt.groups; %? - else - matRad_cfg.dispError('pln.propOpt.grouping set to forced, but no groups provided!'); - end - case 'Spearman' %grouping by correlation of spearman ranking - %tbd - 'Spearman ranking: TO BE IMPLEMENTED' - - end -end -%} -%Do we have to reoptimize as fInd would change size? -%{ -objcount = numel(groups); %update - -fInd = zeros(objcount); -[pen,penGrid] = matRad_generateAnchorPoints(objcount); -weights = zeros(numel(wInit),objcount); -%} +%% Maybe: Grouping based on correlation of objectives %% Generaete further points %initialize OPS boundaries @@ -395,11 +358,9 @@ newPen = abs(firstNormal); %update cst values - - optiProb.updatePenalties(newPen); % change for groupings! -%calculate new point +%calculate first new point optimizer = optimizer.optimize(wInit,optiProb,dij,cst); wOpt = optimizer.wResult; @@ -408,12 +369,10 @@ %wInit = wOpt; fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; fIndv = optiProb.normalizeObjectives(fIndv); -%fIndv = cellfun(@(group)sum(fIndv(:,group)),groups) -%grouping -%change for groupings -> sum up over groups! fInd = [fInd;fIndv]; +%initialize some variables that might be used if points are removed later on (should only happen with too high stopping criteria) removedfInd = []; removedpenGrid = []; removedweights = []; @@ -428,32 +387,28 @@ initSize = size(penGrid,1); - +%calculating for distance measure L = min(fInd,[],1); U = max(fInd,[],1); eps = U - L; -%% remaining facets -%nIter = 100; +%% calculate remaining facets + for i = 1:nIter fprintf('Now in iteration %i',i) %Step 1 calculate convex Hull -> Inner approximation (IPS) and gives facets %Rennen Algorithm fVals = fInd; - - %calculate epsilon value (used in error calculation) - - fValsMod = matRad_generateDummyPoints(fVals,U); %generate dummy points % [kmod,vol] = convhulln(fValsMod); - [kred,vol] = convhulln(fVals); + %[kred,vol] = convhulln(fVals); + %check for relevant facets (those that contain points of the original %fVals set) IPSidxs = 1:size(fVals,1); relFacetidxs = []; - for j = 1:size(kmod,1) if any(ismember(kmod(j,:),IPSidxs)) relFacetidxs = [relFacetidxs,j]; @@ -462,15 +417,13 @@ facetMods = kmod(relFacetidxs,:); facetErrors = zeros(size(facetMods,1),1); normals = zeros(size(facetMods)); - - %% - %Loop over facets ands + %Loop over facets and calculate error for j = 1:size(relFacetidxs,2) [facetPoints,refPoint,normal] = matRad_normalFromFacet(fValsMod,facetMods,j); - %check for sign of normals (should be redundant) + %check for sign of normals (might be redundant) if all(normal<0) continue end @@ -488,12 +441,6 @@ facetErrors(j) = (b-z'*normal)/(eps*normal); normals(j,:) = normal; - %{ - figure - trisurf(kmod,fValsMod(:,1),fValsMod(:,2),fValsMod(:,3),'FaceColor','cyan') - hold on - fill3(facetPoints(:,1),facetPoints(:,2),facetPoints(:,3),'green') - %} end allErrors(end+1) = {facetErrors}; [A,I] = sort(facetErrors,'descend'); @@ -506,20 +453,22 @@ while ~found && facetNum <= numel(I) %loop over facets idx = I(facetNum); norm = normals(idx,:); + %check if facet has already been run if ~any(ismember(round(penGrid,accuracy),round(norm,accuracy),'rows')) %update weights in cst - optiProb.updatePenalties(norm); paretoOptimal = false; calcPointsForFacet = 0; + while ~paretoOptimal && calcPointsForFacet < 4 %more than 4 points? if calcPointsForFacet < 3 optimizer = optimizer.optimize(weights(:,end-calcPointsForFacet),optiProb,dij,cst); else optimizer = optimizer.optimize(wInit,optiProb,dij,cst); end + %really necessary? if optimizer.resultInfo.iter < 15 %sometimes optimizer will terminate fast (points tend to be not optimal!) calcPointsForFacet = calcPointsForFacet + 1; @@ -541,7 +490,6 @@ % update penGrid, weights, fInd,OPSa,OPSb if isempty(dominatedPoints) - paretoOptimal = true; elseif dominatedPoints == 0 @@ -561,9 +509,7 @@ penGrid(dominatedPoints,:) = []; weights(:,dominatedPoints) = []; %Issue if - if (dominatedPoints-objcount <=0) - 'Well well well' - else + if ~(dominatedPoints-objcount <=0) removedOPSA = [removedOPSA;OPSA(dominatedPoints-objcount,:)]; removedOPSb = [removedOPSb;OPSb(dominatedPoints-objcount,:)]; OPSA(dominatedPoints-objcount,:) = []; % shifted index @@ -585,22 +531,13 @@ %fIndv = cellfun(@(group)sum(fIndv(:,group)),groups) fInd = [fInd;fIndv]; - - %% plot current convex hull and facet that was run - - figure - trisurf(kmod,fValsMod(:,1),fValsMod(:,2),fValsMod(:,3),'FaceColor','cyan') - hold on - fill3(fValsMod(facetMods(idx,:),1),fValsMod(facetMods(idx,:),2),fValsMod(facetMods(idx,:),3),'r') - + found = true; end facetNum = facetNum +1; end - % when final point is found: Update OPSA and OPSb - OPSA = [OPSA;-newPen]; %add normal vector of facet that was run OPSb = [OPSb;-fIndv*newPen']; @@ -610,7 +547,7 @@ -%returnStruct.VOIObj = VOIObjNames; +%defining a structure that contains all relevant information returnStruct.OPSA = OPSA; returnStruct.OPSb = OPSb; returnStruct.weights = weights; @@ -619,8 +556,7 @@ returnStruct.errors = errors; returnStruct.allErrors = allErrors; returnStruct.removed = {removedfInd,removedpenGrid,removedweights,removedOPSA,removedOPSb}; -% unblock mex files -%} + returnStruct.weights = weights; returnStruct.finds = fInd; returnStruct.penGrid = penGrid; @@ -628,4 +564,6 @@ returnStruct.optiProb = optiProb; returnStruct.allObj = objectiveFunctionVals; returnStruct.modcst = cst; + +% unblock mex files clear mex diff --git a/Pareto/tests/matRad_TG119.m b/Pareto/tests/matRad_TG119.m index 320173ba7..46ee138dd 100644 --- a/Pareto/tests/matRad_TG119.m +++ b/Pareto/tests/matRad_TG119.m @@ -57,9 +57,9 @@ pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); -pln.propDoseCalc.doseGrid.resolution.x = 3; % [mm] -pln.propDoseCalc.doseGrid.resolution.y = 3; % [mm] -pln.propDoseCalc.doseGrid.resolution.z = 2.5; % [mm] +pln.propDoseCalc.doseGrid.resolution.x = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.y = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.z = 5; % [mm] %% % Enable sequencing and disable direct aperture optimization (DAO) for now. @@ -107,11 +107,6 @@ % penVal stores the Grid which is then passed on. penGrid contains an % version easier to visualize, however harder to loop over %% -%objective function values are returned in order of ordering in VOI -%returnStruct = matRad_paretoGenerationPGEN(dij,cst,pln,VOI); -% - -%returnStruct = matRad_paretoGenerationPGEN(dij,cst,pln,VOI) cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,40)); cst{3,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,45)); @@ -120,6 +115,7 @@ cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,57)); %% +retStruct = matRad_ParetoOptimization(dij,cst,pln,30); %load('data503constr.mat') %% diff --git a/Pareto/tools/matRad_ParetoSurfFromFacets.m b/Pareto/tools/matRad_ParetoSurfFromFacets.m index cdcad4dbf..e4f07bc65 100644 --- a/Pareto/tools/matRad_ParetoSurfFromFacets.m +++ b/Pareto/tools/matRad_ParetoSurfFromFacets.m @@ -1,5 +1,6 @@ function [k,facets] = matRad_ParetoSurfFromFacets(fVals) -% matRad_ParetoSurfFromFacets allows to calculate the pareto surface +% matRad_ParetoSurfFromFacets allows to calculate the facets of the pareto surface +% from its vertices. The facets are calculated by calculating the convex hull. % % call % [k,facets] = matRad_ParetoSurfFromFacets(fVals) @@ -13,8 +14,6 @@ % % References % -% TODO: Add an example how to visualize the pareto surface in low dimensions -% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Copyright 2023 the matRad development team. @@ -37,7 +36,6 @@ %normal vector to be calculated %initializing some objects that are returned by the function - cs = zeros(size(k,1),1); facets= zeros(size(k)); j = 0; diff --git a/matRad_plotParetoSurface.m b/matRad_plotParetoSurface.m index 23c643ce7..33d9e4ecb 100644 --- a/matRad_plotParetoSurface.m +++ b/matRad_plotParetoSurface.m @@ -33,26 +33,8 @@ function matRad_plotParetoSurface(retStruct) % LICENSE file. % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%{ + fig2 = figure; -switch size(fInd,2) - case 2 - penGrid = [penGrid,zeros(size(penGrid,1),1)]; - scatter(fInd(:,1),fInd(:,2),[],penGrid,'filled') - xlabel("x: " + VOIObj(1)); - ylabel("y: " + VOIObj(2)); - %set(gca,'Xscale','log') - %set(gca,'Yscale','log') - case 3 - scatter3(fInd(:,1),fInd(:,2),fInd(:,3),[], penGrid,'filled') - xlabel("x: " + VOIObj(1)); - ylabel("y: " + VOIObj(2)); - zlabel("z: " + VOIObj(3)); - otherwise - warning(['Number of objectives for Pareto Analysis not suited for Plot!']); -end -%} -figure; ps = retStruct.finds; [k,facets] = matRad_ParetoSurfFromFacets(ps); diff --git a/optimization/+DoseObjectives/matRad_EUDMin.m b/optimization/+DoseObjectives/matRad_EUDMin.m index 8447eef24..10edbd3ac 100644 --- a/optimization/+DoseObjectives/matRad_EUDMin.m +++ b/optimization/+DoseObjectives/matRad_EUDMin.m @@ -1,5 +1,6 @@ classdef matRad_EUDMin < DoseObjectives.matRad_DoseObjective -% matRad_EUD Implements a penalized equivalent uniform dose objective +% matRad_EUD implements a penalized equivalent uniform dose objective +% as given in the literature % See matRad_DoseObjective for interface description % % References @@ -19,7 +20,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% properties (Constant) - name = 'EUD'; + name = 'EUD_{min}'; parameterNames = {'EUD^{ref}', 'k'}; parameterTypes = {'dose','numeric'}; end diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index f2ac5ee2f..37a9421f9 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -95,7 +95,7 @@ function normalizedfVals = normalizeObjectives(optiProb,fVals) %function to normalize objectives (used for sandwich %algorithms) - switch optiProb.normalizationScheme.type + switch optiProb.normalizationScheme.scheme case 'none' %default case no normalization normalizedfVals = fVals; @@ -108,10 +108,10 @@ end end - function normalizedGradient = normalizeGradients(optiProb,Gradient) + function normalizedGradient = normalizeGradient(optiProb,Gradient,i) %function to normalize objectives (used for sandwich %algorithms) - switch optiProb.normalizationScheme.type + switch optiProb.normalizationScheme.scheme case 'none' %default case no normalization @@ -119,7 +119,7 @@ case 'UL' %used to normalize with respect to min and max values %maybe check that U and L are defined - normalizedGradient = Gradient./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); %might have to check that U and L work! + normalizedGradient = Gradient./(optiProb.normalizationScheme.U(i)-optiProb.normalizationScheme.L(i)); %might have to check that U and L work! otherwise matRad_cfg.dispError('Normalization scheme not known!'); end diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m index 970dea194..b6c265361 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveFunction.m @@ -35,7 +35,7 @@ %fIndv should be an mxn matrix where m is the number of objectives and n should be the number of scenarios used % normalization is so far only used for pareto optimization - switch optiProb.normalizationScheme.type + switch optiProb.normalizationScheme.scheme case 'UL' % f = (f-L)/(U-L) fIndv = optiProb.normalizeObjectives(fIndv')';%ISSUES IF COWC is used - end diff --git a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m index 8be5d9c48..2a2c7de4b 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m +++ b/optimization/@matRad_OptimizationProblem/matRad_objectiveGradient.m @@ -78,16 +78,8 @@ ixContour = contourScen(s); d_i = d{ixScen}(cst{curObjIdx,4}{ixContour}); %add to dose gradient - - if isfield(optiProb.normalizationScheme,'U') && isfield(optiProb.normalizationScheme,'L') - Ui = optiProb.normalizationScheme.U(i); - Li = optiProb.normalizationScheme.L(i); - else - Ui = 1; - Li = 0; - end - doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + objective.penalty*1/(Ui-Li)*objective.computeDoseObjectiveGradient(d_i); - end + doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) = doseGradient{ixScen}(cst{curObjIdx,4}{ixContour}) + objective.penalty * optiProb.normalizeGradient(objective.computeDoseObjectiveGradient(d_i),i); + end case 'STOCH' % perform stochastic optimization with weighted / random scenarios for s = 1:numel(useScen) ixScen = useScen(s); From 23eee6ae577953d5c6a82a90adf49a72b75d9f51 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:58:38 +0100 Subject: [PATCH 09/32] File cleanup --- ...tRad_Prostate.m => matRad_ParetoExample.m} | 93 ++----- Pareto/tests/matRad_TG119.m | 220 ----------------- Pareto/tests/matRad_simplePhantom.m | 123 ---------- ThesisScripts/matRad_ProstateThesis.m | 227 ------------------ 4 files changed, 19 insertions(+), 644 deletions(-) rename Pareto/tests/{matRad_Prostate.m => matRad_ParetoExample.m} (60%) delete mode 100644 Pareto/tests/matRad_TG119.m delete mode 100644 Pareto/tests/matRad_simplePhantom.m delete mode 100644 ThesisScripts/matRad_ProstateThesis.m diff --git a/Pareto/tests/matRad_Prostate.m b/Pareto/tests/matRad_ParetoExample.m similarity index 60% rename from Pareto/tests/matRad_Prostate.m rename to Pareto/tests/matRad_ParetoExample.m index 25981fecf..ae73b7714 100644 --- a/Pareto/tests/matRad_Prostate.m +++ b/Pareto/tests/matRad_ParetoExample.m @@ -28,29 +28,28 @@ % search path. matRad_rc; %If this throws an error, run it from the parent directory first to set the paths -%% +matRad_rc; matRad_cfg = MatRad_Config.instance(); -matRad_cfg.propOpt.defaultAccChangeTol = 1e-6; +%matRad_cfg.propOpt.defaultMaxIter = 50000; %% - -load('PROSTATE.mat'); - +load('TG119.mat'); %% - +cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(1000,0)); +cst{3,6}{1} = struct(DoseObjectives.matRad_MeanDose(1000,0)); %% +%cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,55)); -pln.radiationMode = 'protons'; -%pln.radiationMode = 'photons'; +%pln.radiationMode = 'protons'; +pln.radiationMode = 'photons'; pln.machine = 'Generic'; -quantityOpt = 'RBExD'; -modelName = 'constRBE'; +quantityOpt = 'physicalDose'; +modelName = 'none'; %pln.propDoseCalc.calcLET = 0; pln.numOfFractions = 30; -%pln.propStf.gantryAngles = [0:52:359]; -pln.propStf.gantryAngles = [90 270]; +pln.propStf.gantryAngles = [0:40:359]; pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); pln.propStf.bixelWidth = 5; @@ -92,8 +91,8 @@ % Let's generate dosimetric information by pre-computing dose influence % matrices for unit beamlet intensities. Having dose influences available % allows subsequent inverse optimization. -%dij = matRad_calcPhotonDose(ct,stf,pln,cst); -dij = matRad_calcParticleDose(ct,stf,pln,cst); +%dij = matRad_calcParticleDose(ct,stf,pln,cst); +dij = matRad_calcPhotonDose(ct,stf,pln,cst); %% Inverse Optimization for IMRT % The goal of the fluence optimization is to find a set of beamlet/pencil % beam weights which yield the best possible dose distribution according to @@ -107,67 +106,13 @@ % It is possible to have more than one objective function per VOI % penVal stores the Grid which is then passed on. penGrid contains an % version easier to visualize, however harder to loop over -%% -%objective function values are returned in order of ordering in VOI -%returnStruct = matRad_paretoGenerationPGEN(dij,cst,pln,VOI); -% -cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,8)); -cst{8,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,3)); -cst{9,6}{1} = struct(DoseObjectives.matRad_MeanDose(100,0)); -cst{6,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(61.2,78.2)); -cst{7,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(50.4,64.4)); -cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); -cst{9,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); -cst{8,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); -%% -cst{5,5}.Priority = 99; -%% -%cst{17,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,38)); -%{ -tic; -resultGUI = matRad_fluenceOptimization(dij,cst,pln); -toc -%} -%% -matRadGUI -%Aaaaaaaa -%matRadGUI; -%% -tic; -retStruct = matRad_ParetoOptimization(dij,cst,pln,50); -toc -%% -resultGUIDoseGrid = matRad_calcCubesDoseGrid(retStruct.weights(:,2),dij) -%resultGUI2 = matRad_calcCubes(retStruct.weights(:,5),dij) -%matRadGUI; +%% Add constraints +cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,40)); +cst{3,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,45)); +cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,57)); %% -figure -matRad_plotSliceWrapper(gca(),ct,retStruct.modcst,1,resultGUI.RBExD,3,40) -%% - -doseCube = resultGUIDoseGrid.physicalDose; -dvh = matRad_calcDVH(retStruct.modcst,doseCube); - -%% -cstR = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... - dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); -matRad_indicatorWrapper(matRad_setOverlapPriorities(cstR),pln,resultGUIDoseGrid) -%% -retStruct.optiProb.matRad_objectiveFunctions(retStruct.weights(:,2),dij,retStruct.modcst) -%% -matRad_showDVH(dvh,retStruct.modcst,pln); -%% -doseCube2 = resultGUI2.RBExD; -dvh2 = matRad_calcDVH(cstR,doseCube2); -matRad_showDVH(dvh2,cstR,pln,2); - -%% -%load('data50constrPTVs.mat') -%% -matRad_plotParetoSurface(retStruct) -%% -matRad_plotPenaltyGrid(retStruct.penGrid) +retStruct = matRad_ParetoOptimization(dij,cst,pln,30); %% -matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) \ No newline at end of file +%matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) diff --git a/Pareto/tests/matRad_TG119.m b/Pareto/tests/matRad_TG119.m deleted file mode 100644 index 46ee138dd..000000000 --- a/Pareto/tests/matRad_TG119.m +++ /dev/null @@ -1,220 +0,0 @@ -%% Example: Photon Treatment Plan -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2017 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% In this example we will show -% (i) how to load patient data into matRad -% (ii) how to setup a photon dose calculation and -% (iii) how to inversely optimize beamlet intensities -% (iv) how to visually and quantitatively evaluate the result -%global timed; -%timed = []; -%% Patient Data Import -% Let's begin with a clear Matlab environment. Then, import the TG119 -% phantom into your workspace. The phantom is comprised of a 'ct' and 'cst' -% structure defining the CT images and the structure set. Make sure the -% matRad root directory with all its subdirectories is added to the Matlab -% search path. - -matRad_rc; %If this throws an error, run it from the parent directory first to set the paths -matRad_rc; -matRad_cfg = MatRad_Config.instance(); -%matRad_cfg.propOpt.defaultMaxIter = 50000; -%% -load('TG119.mat'); -%% -cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(1000,0)); -cst{3,6}{1} = struct(DoseObjectives.matRad_MeanDose(1000,0)); -%% -%cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,55)); - -%pln.radiationMode = 'protons'; -pln.radiationMode = 'photons'; -pln.machine = 'Generic'; - -quantityOpt = 'physicalDose'; -modelName = 'none'; - -%pln.propDoseCalc.calcLET = 0; - -pln.numOfFractions = 30; -pln.propStf.gantryAngles = [0:40:359]; -pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); -pln.propStf.bixelWidth = 5; - - -pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); -pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); - -pln.propDoseCalc.doseGrid.resolution.x = 5; % [mm] -pln.propDoseCalc.doseGrid.resolution.y = 5; % [mm] -pln.propDoseCalc.doseGrid.resolution.z = 5; % [mm] - -%% -% Enable sequencing and disable direct aperture optimization (DAO) for now. -% A DAO optimization is shown in a seperate example. -pln.propOpt.runSequencing = 1; -pln.propOpt.runDAO = 0; - -% retrieve bio model parameters -pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt, modelName); - -% retrieve scenarios for dose calculation and optimziation -pln.multScen = matRad_multScen(ct,'nomScen'); - -%% -% and et voila our treatment plan structure is ready. Lets have a look: -display(pln); - - -%% Generate Beam Geometry STF -% The steering file struct comprises the complete beam geometry along with -% ray position, pencil beam positions and energies, source to axis distance (SAD) etc. -stf = matRad_generateStf(ct,cst,pln); - -%% -% Let's display the beam geometry information of the 6th beam -%display(stf(6)); - -%% Dose Calculation -% Let's generate dosimetric information by pre-computing dose influence -% matrices for unit beamlet intensities. Having dose influences available -% allows subsequent inverse optimization. -%dij = matRad_calcParticleDose(ct,stf,pln,cst); -dij = matRad_calcPhotonDose(ct,stf,pln,cst); -%% Inverse Optimization for IMRT -% The goal of the fluence optimization is to find a set of beamlet/pencil -% beam weights which yield the best possible dose distribution according to -% the clinical objectives and constraints underlying the radiation -% treatment. Once the optimization has finished, trigger once the GUI to -% visualize the optimized dose cubes. -%% Paretooptimization -% The goal of this step is to define a grid of penalty values that -% are then evaluated using the matRad_paretoGeneration method -% The VOI and their respective penalties are defined in the following way -% It is possible to have more than one objective function per VOI -% penVal stores the Grid which is then passed on. penGrid contains an -% version easier to visualize, however harder to loop over -%% - -cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,40)); -cst{3,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,45)); -%cst{2,6} = []; -%cst{2,6}{1} = struct(DoseObjectives.matRad_SquaredDeviation(1000,50)); -cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,57)); - -%% -retStruct = matRad_ParetoOptimization(dij,cst,pln,30); -%load('data503constr.mat') - -%% -resultGUI = resultGUIs2{2}{1} -resultGUI.physicalDose = resultGUI.physicalDose*25 -%% - -matRadGUI - -%% -matRad_plotParetoSurface(retStruct) -%% -mean(retStruct.weights(:,1)) -%% -mean(resultGUIs2{1}{1}.w) -%% -cstR = matRad_resizeCstToGrid(cst,ct.x,ct.y,ct.z,dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z) - -%% - - matRad_objectiveFunctions(retStruct.optiProb,retStruct.weights(:,3),dij,retStruct.modcst) - -%p = retStruct.optiProb.normalizeObjectives(p') -%% -Point1First = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point1{1}{1}.w*25/30,dij,retStruct.modcst) -Point1First = retStruct.optiProb.normalizeObjectives(Point1First') - -Point12nd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point1{2}{1}.w*25/30,dij,retStruct.modcst) -Point12nd = retStruct.optiProb.normalizeObjectives(Point12nd') -%% -Point2First = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point2{1}{1}.w*25/30,dij,retStruct.modcst) -Point2First = retStruct.optiProb.normalizeObjectives(Point2First') - -Point22nd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point2{2}{1}.w*25/30,dij,retStruct.modcst) -Point22nd = retStruct.optiProb.normalizeObjectives(Point22nd') -%% -Point3First = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point3{1}{1}.w*25/30,dij,retStruct.modcst) -Point3First = retStruct.optiProb.normalizeObjectives(Point3First') - -Point32nd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point3{2}{1}.w*25/30,dij,retStruct.modcst) -Point32nd = retStruct.optiProb.normalizeObjectives(Point32nd') - -Point33rd = matRad_objectiveFunctions(retStruct.optiProb,resultGUIs2Point3{3}{1}.w*25/30,dij,retStruct.modcst) -Point33rd = retStruct.optiProb.normalizeObjectives(Point33rd') - -%% - -%% -%% -matRad_plotParetoSurface(retStruct) - -scatter3(Point1First(1),Point1First(2),Point1First(3),'MarkerEdgeColor','Red','MarkerFaceColor','Red','Marker','square') -scatter3(Point12nd(1),Point12nd(2),Point12nd(3),'MarkerEdgeColor','Red','MarkerFaceColor','Red') - -scatter3(Point2First(1),Point2First(2),Point2First(3),'MarkerEdgeColor','blue','MarkerFaceColor','blue','Marker','square') -scatter3(Point22nd(1),Point22nd(2),Point22nd(3),'MarkerEdgeColor','blue','MarkerFaceColor','blue') - - -scatter3(Point3First(1),Point3First(2),Point3First(3),'MarkerEdgeColor','green','MarkerFaceColor','green','Marker','^') -scatter3(Point32nd(1),Point32nd(2),Point32nd(3),'MarkerEdgeColor','green','MarkerFaceColor','green','Marker','square') -scatter3(Point33rd(1),Point33rd(2),Point33rd(3),'MarkerEdgeColor','green','MarkerFaceColor','green') -%% -matRad_UIInterpolation(retStruct,dij,pln,ct,cst,retStruct.optiProb) -%% - -figure -dvhInit = matRad_calcDVH(cst,resultGUIInit.physicalDose*30) -dvhMoved = matRad_calcDVH(cst,resultGUIMoved.physicalDose*30) -matRad_showDVH(dvhInit,cst,pln,1) -matRad_showDVH(dvhMoved,cst,pln,2) -%% -xlabel('Core f_{EUD}') -ylabel('Target f_{sq deviation}') -zlabel('Body f_{mean}') - -%% -matlab2tikz('width', '\fwidth', 'height', '\fheight') - -%% - -slice = round(pln.propStf.isoCenter(1,3)./ct.resolution.z); - -%% -figure -[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cst,1,resultGUIMoved.physicalDose*30,3,slice) -for j= 1: numel(hContour) - hContour{j}(1).LineWidth = 2; -end -zoom(1.4) -set(gca(),'xlabel',[]) -set(gca(),'ylabel',[]) -set(gca(),'title',[]) -set(gca(),'xtick',[]) -set(gca(),'ytick',[]) -%% -figure -matRad_plotSliceWrapper(gca(),ct,cst,1,resultGUIMoved.physicalDose,3,slice) -zoom(1.4) -%% -figure -matRad_plotSliceWrapper(gca(),ct,cst,1,resultGUIMoved.physicalDose-resultGUIInit.physicalDose,3,slice) - diff --git a/Pareto/tests/matRad_simplePhantom.m b/Pareto/tests/matRad_simplePhantom.m deleted file mode 100644 index 579ad84be..000000000 --- a/Pareto/tests/matRad_simplePhantom.m +++ /dev/null @@ -1,123 +0,0 @@ - -matRad_rc; -matRad_cfg = MatRad_Config.instance(); -matRad_cfg = MatRad_Config.instance(); -matRad_cfg.propOpt.defaultMaxIter = 50000; -ctDim = [200,200,100]; % x,y,z dimensions -ctResolution = [2,2,3]; % x,y,z the same here! - -builder = matRad_PhantomBuilder(ctDim,ctResolution,1); - - -objective3 = struct(DoseObjectives.matRad_SquaredDeviation(800,45)); -objective2 = struct(DoseObjectives.matRad_SquaredOverdosing(10,0)); -objective1 = struct(DoseObjectives.matRad_SquaredOverdosing(400,0)); - -builder.addBoxTarget('Volume3',[20,20,20],'objectives',objective3) -builder.addBoxOAR('Volume1',[60,30,40],'offset',[0 -15 0],'objectives',objective1); -builder.addBoxOAR('Volume2',[60,30,40],'offset',[0 15 0],'objectives',objective2); -builder.addBoxOAR('Volume4',[100,120,80],'offset',[0 0 0]); -%% - -[ct,cst] = builder.getctcst(); - -cst{1,6}{2} = DoseConstraints.matRad_MinMaxDose(40,52); -%{ -cst{1,6}{2} = DoseConstraints.matRad_MinMaxDose(0,40); - -cst{2,6}{2} = DoseConstraints.matRad_MinMaxDose(0,40); -%} -matRadGUI -%% -%pln.radiationMode = 'photons'; -%changed -pln.radiationMode = 'protons'; -pln.machine = 'Generic'; - -%% -% Define the biological optimization model for treatment planning along -% with the quantity that should be used for optimization. Possible model values -% are: -% 'none': physical optimization; -% 'constRBE': constant RBE of 1.1; -% 'MCN': McNamara-variable RBE model for protons; -% 'WED': Wedenberg-variable RBE model for protons -% 'LEM': Local Effect Model -% and possible quantityOpt are 'physicalDose', 'effect' or 'RBExD'. -modelName = 'MCN'; -quantityOpt = 'effect'; - -%% -% The remaining plan parameters are set like in the previous example files -pln.numOfFractions = 30; -pln.propStf.gantryAngles = [0,180]; -%pln.propStf.gantryAngles = [0:70:355]; -pln.propStf.couchAngles = zeros(size(pln.propStf.gantryAngles)); -pln.propStf.bixelWidth = 5; -pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); -pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); -%pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1)*[200 200 75] -pln.propOpt.runDAO = 0; -pln.propOpt.runSequencing = 0; - -% retrieve bio model parameters -pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt,modelName); - -% retrieve nominal scenario for dose calculation and optimziation -pln.multScen = matRad_multScen(ct,'nomScen'); - -% dose calculation settings -pln.propDoseCalc.doseGrid.resolution.x = 4; % [mm] -pln.propDoseCalc.doseGrid.resolution.y = 4; % [mm] -pln.propDoseCalc.doseGrid.resolution.z = 4; % [mm] - -%% Generate Beam Geometry STF -stf = matRad_generateStf(ct,cst,pln); - -%% Dose Calculation -dij = matRad_calcParticleDose(ct,stf,pln,cst); -%dij = matRad_calcPhotonDose(ct,stf,pln,cst); -%% -%% -%matRad_UIInterpolation(data,dij,pln,ct,cst) -%'a' -%% - - -%[resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln); -%matRadGUI; -%load('dataFull.mat') -%retStruct.modcst = cst2; - -%matRad_UIInterpolation(retStruct,dij,pln,ct,cst,retStruct.optiProb) -%% -retStruct = matRad_ParetoOptimization(dij,cst,pln,20); -%% -%load('correct100.mat') -%load('data50protons1constr.mat') - -%% -matRad_UIInterpolation(retStruct,dij,pln,ct,cst,retStruct.optiProb) - -%% -matRad_plotParetoSurface(retStruct) -%% -ps = retStruct.finds -%% -fValsMod = matRad_generateDummyPoints(ps,ones(3,1)) -%% -[k] = convhulln(fValsMod) -figure -trisurf(k,fValsMod(:,1),fValsMod(:,2),fValsMod(:,3),'FaceColor','cyan') -%% - -[k] = convhulln(ps); -figure -trisurf(k,ps(:,1),ps(:,2),ps(:,3),'FaceColor','cyan') -%scatter3(ps(:,1),ps(:,2),ps(:,3),'MarkerEdgeColor','black',... -% 'MarkerFaceColor',[0 0 0]) - %scatter3(psRed(:,1),psRed(:,2),psRed(:,3),'MarkerEdgeColor','black',... - % 'MarkerFaceColor',[1 1 0]) - %scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled','MarkerFaceColor','red') -%% -matRadGUI \ No newline at end of file diff --git a/ThesisScripts/matRad_ProstateThesis.m b/ThesisScripts/matRad_ProstateThesis.m deleted file mode 100644 index 2f1e21d08..000000000 --- a/ThesisScripts/matRad_ProstateThesis.m +++ /dev/null @@ -1,227 +0,0 @@ -%% Example: Photon Treatment Plan -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2017 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% In this example we will show -% (i) how to load patient data into matRad -% (ii) how to setup a photon dose calculation and -% (iii) how to inversely optimize beamlet intensities -% (iv) how to visually and quantitatively evaluate the result -%global timed; -%timed = []; -%% Patient Data Import -% Let's begin with a clear Matlab environment. Then, import the TG119 -% phantom into your workspace. The phantom is comprised of a 'ct' and 'cst' -% structure defining the CT images and the structure set. Make sure the -% matRad root directory with all its subdirectories is added to the Matlab -% search path. - -matRad_rc; %If this throws an error, run it from the parent directory first to set the paths -%% -matRad_cfg = MatRad_Config.instance(); -matRad_cfg.propOpt.defaultAccChangeTol = 1e-6; -%% - -load('PROSTATE.mat'); - -%% - -%% - -pln.radiationMode = 'protons'; -%pln.radiationMode = 'photons'; -pln.machine = 'Generic'; - -quantityOpt = 'RBExD'; -modelName = 'constRBE'; - -%pln.propDoseCalc.calcLET = 0; - -pln.numOfFractions = 30; -%pln.propStf.gantryAngles = [0:52:359]; -pln.propStf.gantryAngles = [90 270]; -pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); -pln.propStf.bixelWidth = 5; - - -pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); -pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); - -pln.propDoseCalc.doseGrid.resolution.x = 5; % [mm] -pln.propDoseCalc.doseGrid.resolution.y = 5; % [mm] -pln.propDoseCalc.doseGrid.resolution.z = 5; % [mm] - -%% -% Enable sequencing and disable direct aperture optimization (DAO) for now. -% A DAO optimization is shown in a seperate example. -pln.propOpt.runSequencing = 1; -pln.propOpt.runDAO = 0; - -% retrieve bio model parameters -pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt, modelName); - -% retrieve scenarios for dose calculation and optimziation -pln.multScen = matRad_multScen(ct,'nomScen'); - -%% -% and et voila our treatment plan structure is ready. Lets have a look: -display(pln); - - -%% Generate Beam Geometry STF -% The steering file struct comprises the complete beam geometry along with -% ray position, pencil beam positions and energies, source to axis distance (SAD) etc. -stf = matRad_generateStf(ct,cst,pln); - -%% -% Let's display the beam geometry information of the 6th beam -%display(stf(6)); - -%% Dose Calculation -% Let's generate dosimetric information by pre-computing dose influence -% matrices for unit beamlet intensities. Having dose influences available -% allows subsequent inverse optimization. -%dij = matRad_calcPhotonDose(ct,stf,pln,cst); -dij = matRad_calcParticleDose(ct,stf,pln,cst); -%% Inverse Optimization for IMRT -% The goal of the fluence optimization is to find a set of beamlet/pencil -% beam weights which yield the best possible dose distribution according to -% the clinical objectives and constraints underlying the radiation -% treatment. Once the optimization has finished, trigger once the GUI to -% visualize the optimized dose cubes. -%% Paretooptimization -% The goal of this step is to define a grid of penalty values that -% are then evaluated using the matRad_paretoGeneration method -% The VOI and their respective penalties are defined in the following way -% It is possible to have more than one objective function per VOI -% penVal stores the Grid which is then passed on. penGrid contains an -% version easier to visualize, however harder to loop over -%% Assign objectives -cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,8)); -cst{8,6}{1} = struct(DoseObjectives.matRad_EUDMin(100,0,3)); -cst{9,6}{1} = struct(DoseObjectives.matRad_MeanDose(100,0)); -cst{6,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(61.2,78.2)); -cst{7,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(50.4,64.4)); -cst{1,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); -cst{9,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); -cst{8,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(0,58)); -%% -cst{5,5}.Priority = 99; -%% Pareto optimization - comment out to run -%{ -tic; -retStruct = matRad_ParetoOptimization(dij,cst,pln,100); -toc -%} -%load('DataFull100Points.mat') -retStruct.weights = retStruct.weights*30 -%% -%% -figure -plot(retStruct.errors,linewidth = 2) -xlabel('Iteration') -ylabel('Error [a.u]') -grid on -%% calculate example plans and plot their DVH and plan slices - -slice = round(pln.propStf.isoCenter(1,3)./ct.resolution.z); -%% DVH calculation -resultGUIDoseGrid = matRad_calcCubesDoseGrid(retStruct.weights(:,1),dij) -resultGUIDoseGrid2 = matRad_calcCubesDoseGrid(retStruct.weights(:,2),dij) -resultGUIDoseGrid3 = matRad_calcCubesDoseGrid(retStruct.weights(:,5),dij) - - -%% -cstDVH = retStruct.modcst; -cstDVH(10,:) = []; -cstDVH(5,:) = []; -cstDVH(4,:) = []; -cstDVH(3,:) = []; -cstDVH(2,:) = []; -%% -dvh = matRad_calcDVH(cstDVH,resultGUIDoseGrid.RBExD); -dvh2 = matRad_calcDVH(cstDVH,resultGUIDoseGrid2.RBExD); -dvh3 = matRad_calcDVH(cstDVH,resultGUIDoseGrid3.RBExD); - -figure -matRad_showDVH(dvh,cstDVH,pln); -matRad_showDVH(dvh2,cstDVH,pln,2); -matRad_showDVH(dvh3,cstDVH,pln,3); -%% -matlab2tikz('width', '\fwidth', 'height', '\fheight') -%% Plot slices -resultGUI = matRad_calcCubes(retStruct.weights(:,1),dij) -resultGUI2 = matRad_calcCubes(retStruct.weights(:,2),dij) -resultGUI3 = matRad_calcCubes(retStruct.weights(:,5),dij) -%% -cstI = cst; -cstI(10,:) = []; -cstI(5,:) = []; -cstI(4,:) = []; -cstI(3,:) = []; -cstI(2,:) = []; - -%% -figure -[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI.RBExD,3,slice) -for j= 1: numel(hContour) - hContour{j}(1).LineWidth = 2; -end -zoom(1.4) -set(gca(),'xlabel',[]) -set(gca(),'ylabel',[]) -set(gca(),'title',[]) -set(gca(),'xtick',[]) -set(gca(),'ytick',[]) - -%{ -figure -[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI2.RBExD,3,slice) -for j= 1: numel(hContour) - hContour{j}(1).LineWidth = 2; -end -zoom(1.4) - -figure -[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI3.RBExD,3,slice) -for j= 1: numel(hContour) - hContour{j}(1).LineWidth = 2; -end -zoom(1.4) -%} - -matlab2tikz('width', '\fwidth', 'height', '\fheight') - -%% For plot obtained from navigation -figure -[hCMap,hDose,hCt,hContour,hIsoDose] = matRad_plotSliceWrapper(gca(),ct,cstI,1,resultGUI1.physicalDose,3,slice) -for j= 1: numel(hContour) - hContour{j}(1).LineWidth = 2; -end -zoom(1.4) -%% -figure -plot(retStruct.errors) -%% -resultGUIDoseGridNav = matRad_calcCubesDoseGrid(resultGUI.w,dij) -dvhNav = matRad_calcDVH(cstDVH,resultGUIDoseGridNav.RBExD); -figure -matRad_showDVH(dvhNav,cstDVH,pln); -%% -matRad_plotParetoSurface(retStruct) -%% -matRad_plotPenaltyGrid(retStruct.penGrid) - -%% -matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) \ No newline at end of file From b9009b1ac107b29fc1cf5b15f8d05b8c217ea285 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:01:34 +0100 Subject: [PATCH 10/32] Delete testRun.mat --- Pareto/testRun.mat | Bin 2838724 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Pareto/testRun.mat diff --git a/Pareto/testRun.mat b/Pareto/testRun.mat deleted file mode 100644 index 998ea48d8cfaf6eb199b5fbb1f8db54351ec3bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838724 zcmcG1XINCpw)P=N17Z_ZP>_sSq5)Ad3J8Mej9D^@ISq&j2?{7mQUpW=L=0oX98f?J z38DleDxw6#$dDWb2kEbNuDyGA)1Gs``<#34{5!+$s#KX`)w-IU(o>*bXqRwTl&<;?^VoHK&aSg8!PLXMe;W{O3+V`_cYm_B!5} zacckW#)}&tR4m%5r`v!y(5 zgJqZD2hXmgx92mg{_cJBx_{_~aUa(_y5H@4uJUN}``$e_xM+`^kdJEL#%{=LQfvwITHOmn#Vv5hUfgE!*Wg@wNQ z>G^Nh&z_yRygMh-=l6E^w6^-DA3b8CXB3h8&}YJil=3Ofmv-zN<6}HyUYSYO{F!p2 zqmTb~I^KFkZDn%Mma%C)5Ej&XERN=%F$?DS|xwwC@WN7o_WE*#wU<->p8c4)la5O1g6EIqwDOtU-2 zSN((JaP#|Jv1tK}udwz0^R4$b1{fvHf0*-bbXtz$-oU$C@*Z={j;mD!+RU(Q)V0hR zcs9^(VQs>v-&~V+p7Cq=qpsfdV&@?95~p$NlcMq>6XMo(%-%6$QM2sa8^wRDUYoS= zbu%~k#)ECc+Ty2AX_j#dnf7%>ngRV2Tu5+T8PI>>%i^G*O5LQKPY!E-R36;^b?JX3 z)QY@z8SVF$TPlhEdhQ07az;*l+ih1RepIr)@S^hYY$Ms8e`i*pQSYCaB|2WF`l(?xkOd39^bY$^^ z7uqgfI!RrzkGsQ5x0b5pnCv~@m9{43kz9buo|k5eyrU|ki_P9mt@|L6Rvp`XIYVEw zLs7G4_p{5HV_Qm8Rz$`Bx4(n4tMWZrpZTSue!sNq${F9OLtm5_Ot^&IqmQ}HHD9wP zZu>aH>WAr$FgYJ1JJm9yU8dm)u|8(LBQ7ndLGI+744nffT?U@^*!%fOhQXDSt{R^` z;(q8YI2OqG25lzVk%`G0vxiHlnU`pDH$)!mDTwPSGTyf#JSqMC((Ui&&fKu;QhLLb zr02`iM!NV9@oXRe*66U>L%%_nQtvHlHa^;KjGyA3z?(B`%ue(h+Z`X*mGb-LoB^u> zr*D~DnJ{ysLE?y;@!M|al-kT(pKxeOqkinx$fTp~l_MhVeZJuN$=u zy&HAYdsOO`4&J!?+qrdzhrVtcbnV8y#ec6m%9+xr7#DJP_7TO!W6dt4tNyM~?)-ah z+W0g68h^bkm^L9db?i$2p|4)r#C^^TJ0j$Vn5}E(p1j`P{fO+GY^4LIY=1jF>+p~# z*@Lc}vRnLl)=~TMb`t3G*sfC=5~Gr>H}I6xz4Ax}=LOXXN96n(wW20HRNU7gVb!7h zVA3O*nd^5S?cV8WUZM7A{k~3@a|4HTB?|d97Fd{7GEd|(H_qhhm`C=78lMdusVgtH+`%c8=g}gx-aaopVF> zy7(FNpI=(c|1RXO3){2ky~*6`W#e-^FWIFC{t*^G7xp6z73oLF$&u0Fu8Wy&)b3<$ ztCWzUr>C#B@I~2#tCu1UfAN{P2>;Z0V$O^GBUS2VXDIAGcxWpNkqMPrP0_cJ+p+ zTd#e47rS1HcNh~OGh_ZVv+@}4ez|A-2L3t!-hyYjM+R)Xc_L6qQTuyE8gdBqM>+(S z@x3A$oHPUQFdA6OI6CSmB}HcIH8>=8Dvfk>8s(9+>r+Iv6xt{Ra5tnr*gEI}{omp8 zkn{U?NsR|u zXdX}QN#{{bNr{5?H4|U``S=jCFxa(4M)tgiwm=`+DT$g5= z-lYEFMu9_d+yE|ea#J26CHT`rFM~@d73$3ov0_(hA8;}Lz)HX2oaZ+RU01I= zWbwLb*!PeEJNz$v98x%ANqgD><#35V=T!`Oc5&Z7E4_3Ny?8k2>czb+U%ZCjdQma# z?ng`GNtF?T%YcJHKMwsxp;czBWfyZ|oXxV7BT|ZVCajB|F$H>C5;yF}8^XXxYm+ym ze-Izsy(hmr3UA@Qj!X-ne~5>MJ!NZ<9%|kr+0SlI%?1S8`=(Xy4?ya2pab0BSG&}h zeR6b@GD*bx<&v35r;HTF?h-dKxDa=SAIy6{e$A$Gi@MIRxUKI^hn`rGR^x z!d>$6wy9Qay5mndtorPJ@UK(0;^ggVu$13aqC2cJ^2C$|bHh!gqnBJV`NPqRygw`b zln=eU`}@`0!x~@w2H$#Vr~0NQQWBq6p!SfgLphGM@z!X&L7e7Uw8|`byuXaS_Nc1p znQ}f#dtM-|N3@%`Qet$Gp7zL6$49gFtxH!+F5B6Is7yd;N60FyvlZj?6IBGox$n**V~?l8baE zm}8cjKL{DOHX*<3Q0Vm{|8r{(tmr8Z?TN#OtDco<0pM=JM{@fI`CdPL^fFaXxs?;> zG*YA1t(5hY=Y0g38*u57Sam(iyw)PYr#p_U7)D~&R!*H|m!0L@B zI8(u(chP=X8uC1vmpZKOh(EZM-k#vk6Y!OhLSo{Be92lDfT#GwRo*g zG~Udvk8Mb=*SjabJPjRHRLdt7n})@>_?XO2DKpD4Me&K>xPfVmF95yj2JPOiN&Efu zKCHO&Zeh5L_I{P@MhlOGG_!1djZdWocn$XKZ3tcTL2BZS`>Xz5dvFVWdy>_w%#fE6 zI)>1jUfp{#=M()H)55IOQ~U`Ru5hJw=Z}uQXtpqwbKT>+6)B!+qDMFjyW(2MZW3=ZlRBa zyOG$Si_iJ^d<%NGu0d%5LfVYvw44cloGf?iahdwLX2&k1S6t?7npP8@44V7Gvu3U% zMmm-TXX}g)beu7{Iw>p`?-;?)2SHA7N00q{WzW(A2(V-CN*`0WpOrqgWvFWnio%h9 zKQvwCI4*RZ4G%1|$6V_q0I&qM7nd3jL|uq&I#VCqTkrP!#obTOc#r*S-eai=7h{kD z-{QGN8o>ggCjr8KI`Y~TkkSN=@lajGOVb^NO@C=iD(*aKuRGZ|+G&iBGBUhaa?oC3 zee^x`cO&qj4hQM_jWg*z9EFso0NL58#TeiP^|3k4TjVo^{05p+{_8$Zb9}{e0h6u5 zwC`?dIm2&%bk+P(9oH-8rA3>rToWFr<*42tY2)NPE6rs8adkQfRyo*JncnPDSd`ue zz7NnbIJ8q92P!{>sf00s7U(Uv`FY+$cw6DVo3*Xzw!+(Y--E+;iSMlXZeW`GbV7wo zPOfq4i>p-=mJfY(_3-7~y;pNrz54ytiwUj07kCBpA5VUlU@LAOtu_3{CT5!q*MT$p z)RpF8Qx3CBySL<9?$Kd3+CqVoLF!5)X398w?5^IQIi_iZTfb2rF=cbek#(rAojBuZ zhZ~~{n-)2Gfsw0t{qGkjD3?NyCdbOlY|K_Z{0SaA-=)~O;8hX__-!v zc^cz@hk^@m3B}{f1C3_X&>vX{L0Md4w6KPFV3lWbb#R;;Y1IHtv7{|=ZeH_%H6ahS zShgj&ZEf!FDf3W9rYFwP-XPj5>jIAA!LSKAeX1GFtzp2bU5BlRc16b_xzgI1Y&xu` z;qcT;nc*Bo(6lq>md;(*@*0Sm^mM+R1P*Jn{tmhemt_ciXev~9`^yi2U;%p52*#+` zwn}RkAH_qH0Om~qBwO!Y+dAFj&TuvD$o1q%jn6I5yQ4z8<8buzvU+A1bGYtG0{uOT z%g>t`5nai5BqQK8z4xUm`+oTZ+3}+n9E^{4P zTfOhw#thxVA6*8UsJCnX+NDsxGBF|AMWN8%o7Q(=y*oKOnbxPsdxPikuKOpA0XQ(X{<&#M$Z1a>&>_E&Zt(f~ta1qS$0#I|G|K88ov7;as{Bj&`Nu z04svb0GJ#3;S!HLH!GFa-rpG6E`dXK&~whlM6?qV@B98~0Vujd9zwEPd-Y;w)Sk2) zA$4s=S`Lga6VM{|hGdtgA0%w9sA{tO3oF03+PE>{uYcR|U|=jVt~PgkcS6 zo&+qi{qhrmj8_4fC6(gi?ez>~*ha}lg3DUhGQNU|Y&`TH*O~HI9B{0)8fLBt{Uo5n z_;@n#zpZSC%_>l2o4w~dJl++dTF8l-h7kHJHggry@Fm<8+VD+UKTl}GC%Lm9!h1nu z_18?ppC2FpN6I9+P)^%(?K~}3Wy7&415Y~Y>o~~tM_UH=yRnuHuqLXj+TihHjL-)% zDfRB09AhSHdga*8e&`GN0l^CS0m6}4QT;p;cR$J29!p1SC(*lb0*!A<9uz5VUDaCs zCPSy*Xk&12a1^3m2{zq0aa8r2H*W@vdZXcN>TvIk)wiMPe=NDrmCZBQZ-jtkQ2)Mn zUAQ;{=7z6dwc%>_3=9nfB0KqfEM}`DJ9z15LyU??_7!qIQ$R+i_20eQ<)=! zRUD^pHi=KbXf!6ciBKvyqUL@VnT}z6_tAF-w20#ElQ0b9>%w|%VjxwzOUeN7W_ADK zkJ@}qB36`7hz*FjRALuRJ}L;5 zW1gGw!>b5OUXxnra{64Q8LUYOw6?qRfwMhZ(F&Qe^h=#xlVTgQ>qi4P%cEl~qSCpe z8+}gc0LXPcP4vDTXJVF;E?NcO_C z5kvSXJ21xJm*}oZpadWulmry!>T_puFyfP~Feh9~&na~iqxUBy4$(mXy%~8q`~U!d zyAE2`-ghX4InMZMc#hg*T3zlK3R;#+T}j9_`eXF+v>)`Z&|#Y2HX4<w zyAr1LpyVkcy1|L$?7UCfNO#z^PpewVg#qxUza|(lSGuMDVC_I`u_Zc1+m9y6>>Mj=K1*ZkCXvkC-Z zeG9;il>5xG8o1H324T^=Q$ef9Pa(HSxF!La5-VM)(g?(a#T!rvhNZudA78;D9O9T4 zA=ugWII{|@G4mdw&E$|BUp`37LA$b1vv;1Jb8PbXlNc|7k`g7i|1J!}(RDzAp^_OC zV0Rti9jR=iH+qXChfT?azh%c4KCZVW6t6JWPTYoXvRqjBinWK-zsUZ&!Y~HVP3kjr z%|`-3Awo1jrxDZ4pgoSy@}ubDn$ zp&C9))&S4Fh@K6fB4zYr5k`(e#sYjpT`viQ!;ZiGk1L@vbe6uS`iMpuc?4zTjAR0| z*vRW9F+^!;d=53V{9=C*F}`ADv(dqjhfBr!&o5%koB?)bu0l$i-FR0)?6G?yUxRf= zL0X0@T4D1`$x)+!0f<3XN*}RU3($}hB1rFXAe0*Jad;AllxEQr{|mqM%PW32b^s^- zZ%dB7^UYhgZXLgMYvF>M4#%^>KZAd`)oJTJ{b6;W{E&;?n6wVERoc8`?vvhpz!+L9m^bKZ`>~{}Tm)0?v6@G7(U0_72i7y)2fZ>9B~nq^A6s@_%F*JiJ!lYsqtgh~^CY-#eM6IC8V zZ3V!J$gfboQW_aTx9jMpmbeVMn7H>#BVd9`T!(ce#`Q228F%O2QJnWT&p;(p#%|tS zLNm+SHL6{{yUPgZg&GDE8fMk<^Mqu`bZ7PGRnjQSPHF2AcoC6%0j-zMnTy&i%BiGq zFI&Kr5OesALMwiOZ}XX}+K5!NYY$Th$dg~Lj9b6%`6g5ktvOC>ieb*$WT89LChtKhMRo-Z3S3NPX#8c@wFZ3Y6|P6=nwkxxlhfI8wpUXqx`zV?2|cx$c=;!WLFHS zkLbh=D0t6Er|sr1UR=Wz-%}6Cr{C;qU^vfv#J#SagzCB2<2q0rqMG)^{aI%IBW9SF z%?{f=C(GnFMB38Xs(j#Z!d=eY?!5)UVZ3d3dq4cV#oNmJzWsIR-}ipz|9k3I{=Zh= zdE3wb)%&SEqrmhCpBmD$t8Ak9@Nn_Bin}W#wa2`Zc9YamiqX=!bYuW44$8vm{5UKp z3mIy9?h?9r-|hoU94XbIeYQ;)X*psH1EjY=%B*oI!X4XB)llg=LKE6T+JoW!3M1na z=k!=F->x?x&a z0&p@?1c;;MA*3u7{UJWA;_%lzqGO>e#M!PqdDy)NujG)uQPW(Ud!%SN8gH3u(S`2fg+LDV=+i!K!Um;fm=BgxQc%s02a&CK~;C?z@BpCDf<&@+2usFtSOd-?fZ{ z@fy_NiYWWs40ih0x-jauS~F ziX(Mr9^cn_S+hv%*lER)M#WnXsosD3UtM1+U65NqXuU8MZebT_k>0W=5IO%!7rh5zgQD#9r zTfoi8FHMDtZgyyk20s$iYrsVI5qTUU#OW>$-rknv+0!g9wk9vaOLDlRHr^&nD%qp$ znLVP1C>A!Y05b$tswS%acxJ(XCZNF_m^GoZw|~nA4SsiIFJdtUZwBH+1HCl^UCPo@hXz|m(n66bp6MKJXcuvh0{KJHHe3WnvL zw<9n^hRBfLW}FDt)s0l;>xJ@v!$yDBurZw96!Wq~kD z_B~2vuLy3-9D zwJ-<9|IiUtK4+GNU+IW`{z6C8`wJbBSf3qH7olpeNmktj`tTc0Lmm|&tvC6fArn`> zZu~pyCuiwll?ZVO{H5S0lL3>whTuy=?paYDr|t*|3DQtY!)zz;_wRw0dPW&c=cPa# z?W>)Hgg|`=bMEa1pjP`~&7Q`=y!Jy@l5+j!x-<)=XG-_#=-~sfbvOn^lmJg7u!O^v z406^o>xh3>Tfq)o-bqdptkNY!?@$&eEq9VN?}Me3>;EVz*uhrS060dp@ksCi#wb!2 z)VGBHvvXG{^#4b*8cvm8jm1dlJ^mzMyRpy5FX2UZcK-WSY>eQvlNfxcKL zXY@Hi^~luO5Z-w}SFmZ>3FeBFB~9#s{FVoaYPr2#Gr!xez<#W9Y<;8`Ev7`MQfK4Q zMh(nv-p3RR&R&PxH?9CF0L>SI(2m+CHgQnKq3`#)30283P5adR+EYQoeJPetEf{Y# zk}W|)stIMolcUWVn6Q+sP|{5&iEiJyM7JW)jE(>4l##)cYSu!LHo+8Y6G9cq36=zV z&@>2PSN}NArIq1kVxL}t-QHtsaxh(_ibowmbPOS3l(Bkc0q|v!CfLjJ163-~SPll! z#gcBLI^$cVjTr38Wl5x>x@_e0c!!JkPB#iy4$o(AXG!mUIjry&IN+d3NotxCMtIQ# zenPM2yKr%qZ$!is&`WuYrm9Lj87~5O9AeU>`w1~SXgPUAyP_zQi6Mf8-sy}u+VkFO zduP-RtzW*K@~xuZ&gpHU-%j1l|37Z$uu{=)XWSRjZ|C&(|AX5(>oy8-{CBrA)J*i- zIpwD4w^Q?;$hVWs?JB4~c_l}n^}0iU(dnq1)IfdLu%C_wvLPaTIULMiiwg0&t`{bThb#~(-~i)8<`4acbVPsgEC zk{4K{6uJoh4IrNP$&6zf7#J>ClR^kb6Hh!9{#5hgNqqtpl@JOeg6|B)K3$H`lGIl% zl(BKNRZK%LIWpshHbgKj>qrZq>AAVZi!T%r`uw;N0O=Fl$3z6VhYJB6pcY>G=q%Bn zYAAe)>SI~YUZ+VQhs;Q0?PICL&VbY_5rQohG*OxDk1@42q#u@?Av8%E2EwB6QBQS+ zX0KBGZx+(F?g$|ksfUS%6dg$_fc5m_`7;b0`rgGr4l{R%)cVrkmP?WAUtWn|59i~% z`uA?$pKzB*M(E>MWWG`wn#rQ)WxbVaPVE&Li^_dC4d+)SmDpZJ(uHp8fw8HAUq(_6 z8glP)(}cTdpe4PIAyFyJ5}sKnJ2aD}juEl3Ft`!F^*GO2=x9kDi@Q{mPaHK`9d|3Au%36(+S3Tvj zXGice^DS2cIfBhS^c=J=udd*LQn?kLQosyTCP!D~=tl)9(2u@uJlVX0a34bR51G(F zGAL`xF%daa-13Br27gihSb=7`r$K=nn!Fxl{?tU`v4{*MPuHz05kw-U=p*YvYGl=< zM%Ia;T{8-XU2{U@x}96n!)oSR*8&COy2-H%T>t{CCPkuT0` z@E?6rFh>iC<9Apf>Ssvx`*;&hN_y9dwRlOH3Ih$uKi$1GBdC%YHpF)8-xDs-nyVTJ z{JqWhu=3EoZ(dwob!%PC^;r$Y7!JO-!a}oI^GxpMzX!;E)oHquVT~Az5Q%6$EwP9t zaEg(6Mzv1`y%_~OX|ioXnUY*IM5vEaiDp9g+pH-qOUMa23~AXq{Ag50QDKHPd(sXW zH%-CMg;C++?2KwYM%uvmCnPAKM~C6ceO^16DH5Q;l@)k((C~1mhp+5$bSH@btH1}I zc*;5`m-%?edXF6$tX;bHiA4z+P6@j>sBl<9&q)YeF)kp?x6VeI9Ca}zVt5P~b&=P? z3xp&JiIo6(hGe%OH~DW3h__@9%fq{cQR!`5#+{*a`Jt2{*XQt8E}HgR?!XcS6GBunnUS-3Mpc9aqqGKYSvldDvJMj=t zIL6toPjBa9iPdaE7Kp3`Vdqxe4)te(705b?%}mi=EC}c%)aOK#-qXb_)Y&`sD1-yQ zTvSXRBgP+)h6npaNHC({2rNWeMHcv5sKy%Y9ferD85JcX_+7m5!mjhz8`w*6fc;5a{A#cq7z0uqJRsU_UClLHB;kbpQ8Xxu6;0|MwSk)Mk+{=#T?>5rl1p;7J0DHK}l3 zs4^)1_Kk}MJJWhu_5w}i6^F98aPZ17YJmX|+1+Q`C%{hBeO&O=;v=>I1gcHl2N~J! zXyS@{Mq02t9OyzCruhiEf23!>v5+P_7%r?M6j>RB5Y^16=IkMLg{81_S~~|>o`FQGU2bx#Z6Ay$VvpO{vtIJ={HE7^lM|%Ak2~13ie*ek8G+2BNtV2}zUm+YeiSPS~{0EQnvJrbz zh=~G;rO&IkqB_GfKk5ppXm0+m4@GEagh;ez=%WEv9m89?_K+$^wrj68WHX1wcLte# zsL*~SrkWfmbSg_M7_F(Iy%Et9Qjzfj3;}qIDbUy2?7bZUN01TuW5%ic*fOpNCoyni z3#|E02i>^q6p*TTbrp_*?_Z;?D(bwuY{plEFfk}dQ#b%EVECXyi>U_wxT}N&lE#Xp zS9He-T`pk5t-3Sc%bKtd@GAN2`>-UnLiOTAdASmSL1>J@s|hdx%M|&UfXLzTEZRsR zQHxB_<$7{oOh8XLncs1$&e;MsmJ6AD&lRmXs{z@(_?0YB#s*{nhVos=cLJ!<+YauS zusRh%p@oD5ZrDLPt62*dwq%G3H|8G>f}*sA;$1RTODH=B+vkVjMm(RsuL;U9#No%n z3ATI?u|8{u-2_X;LuIb7(nSaoAakN-94*AghBVn<`h@67K*~FKWu%B2C)@5@6KvTQ z8c`D_SwZxFOdYCC<_yCz4A{=6>O?e21{0)${Sa&rJ%xyn+)#4echC746x;Jaz#0M~ zlV};QAoMtz19-DTp2(0UCTnW2K^u4Nf9+Z*|1Rr0O8TBV06jIOn#-W){`X7yptg{f zh(Z^mj(O)vX1KWiGrX2sC&lvh$#oXvHtP4zZXuU$HR3^!@Yjc|%N;Nr$ny13W^T#` zjF}UXY0EG)y*aXigD;oqLyT&=v&Zmq1Qh8lloyIVSZjl8vZsV0wr+&ThOj^oa7`S% z_2|+jx*i)_Ou~2Ya&A|1ncE8jWOx@z2Wqb`wh#?q8c#yc3Rh6{W|GU&^g@qm2z?MC zUP$nRc&*k3!2;_ewFqq^wtz{HP#^9Zt6C2S8S(ANg0Mhnq8`z^#DZ9AN8+%2AtP8V zklbF$1wKy%24}|tOC3oeI5+{ zVYWXWv(R!Py}4ak8vi$MuIH5qk>A`kwKgKZxxp<|wmWh36G4vG|MuqgR&r4tw$FH8 zF5dz+`oL7nd&0%z1^e!Wc-8Qp6``s|1O{Kzq9tvE_*6)D+9q)p6?&7%_MGXl{~ps| z#Ff(QIZD0$WWeYg-k%z9bRQa*DL~cuo?|cVNG@c8K~TfaB)FvZP`fj1VepBRYp~S=ZJzx7604&?$QhWgKvb4O5?2zFfL7DQVGsic3YG#s~ zAcae7l=6?pVNtU*!yRjaWe5t*BU_?)?QqmNq0dKKsIS-jkw2X}ouMz8JKJbO&3m&q zoMj>oHAV+|B(8|wLfKF)l%lkr&=v|?uG9BWbALsS{4*}H6jY#wf_H)3ANEc75~UMWl_*_T@1)z{qgRr8z%x)}kE{$>JC_%hJlag|(wdmG4D zFwA1BI8AgB1#Pb$U;DbGQZ(1=$Hl2cA0Q$-O4;JjwNKuANmZEfnjnUpf7s zsx7#g5Skv?Q*S713VQTopYjh*-?6*GI?Fr$^fsTH!Kik2(d^B5wFF#*^G327#vtMeVRQOvc zwu0Qmw}(ZbF(>xuX$=s052b;?dvNJ7u&3Q>Xo(bbcRBsmx1U(SA$Al)E=ty0PcFrS zjy{BWzDGqAatjSW_gIXqP)5nnu7k`y+>8jSnr%5j*url({*YSa3dgILTFtN!>b-!{ z86#895+Vw~i&_gEoY+-;d{iGG;sbuDw=gzA3cU51y^C6~^nLcV39$G%aqE#F!eP!@ z@F4LsoKj4ePBpJ!N~g$oM_8OaD&KM8^{Xuuyf2P+>yLNYwvgLuNx+7_^_i&kO5O=U zAo~gpSD*}OjD$w~PruQ}&Lk0w068}PUg%b@H5ObnuBK+5v^vDwn#&TL967Q)X zwotRax%mEGA4g|VksQ-}YNsfVdZEfaHgTY(H-y)e z(&$5}rreRYBLpo@L>C8oQfms-Pvu3R>&KyzhOAg+;f0EU#W}u~9t?mbDJt;^p`l2A zJdB=hvkkpY_K^)Wn+S_D`vXbBpaBEMS8wKAIq9lF#Uu%KhDd&5$%|pH<_}0MeD^^L z*w8#mdF+A3*?Kc(qSW~7Wx=!wLi0@V6#TCx^&0%(Qm+r+R%CGSR7yT-sAL&Aj1U-A zNKyE<{vBK@P!q3D?6rKaA3ho11BJ1V@eh*h^p28gemGL>8QfGH-S0Dy}eSGy- zRqNO!vVH;$5GJFNw9ca@N|JrS;)L;%|ANhz#@@r<>kQ%Os@-2!O!EM+-}-?aTQ~i5g`>T^Pm3n2%#07N z6u4jrV3}Qe$VAe_V;6$s$xZ7leJQl>66s5KZ{pAyZzNyT8Vzox@qUD!v{xPjzkMS> z7U8a{8!s#TUR?n(gj+hV2EJPP>MHo>mb8_x@;=<_=CuBsK4ysO+TDC%6f=$BJ?yHp zK}S2LL1=IgmFhKjg@gpZMi&X{*sgqGoKbx!#p9tTN$BQ3Xwes#jJ7@FNa0c_#yUV2 zEzYd%u+W%vSIfIonlFI` zc0Sa&!=5YUw5K9WjPOJQ4Qg+W1R7P+Ccn7*AhDF2^m*DBj|~$ORS?wy3!>gn6kB*D zf}sXR^ibk5Iv|+2kan~MFEbsUGF0wmjs|l@Ly4XNtKDwY>gQZ~TnlJBuiyATef6?4a)SC zn9kv3Ja2MaLF9XLS8(vKW@K~);d_*!3KCHuOmaP$giUAxl^+hk zR~s>BKA;X?>aYGe!^n0_WhSp$VC|yzKdS+ld z6m^~&w`hUDLnI!U!ykAEF>^jD9|oRhN2O#YozwUq-rkwZIONW}KIpl`;a4JrNPuZE zoBLUPaO()_Z2`nO~VD|tm;WI&h0qtUfCt2^Qa=G>nU zCo?!c49=IiewumoQQ?%M0zVfjS`w+fDILoU=iym_-@Ya7&jDr^Y2)Omvy~~kXKd+(>?I6WKEnc&nBedWl z3o7t-F#Ou(2xyb5&|9DKs@7%_6(%9<*5k`vAv3GMTOT_xT%1@tO(YJmOPh|XH+2`m zaGv-mseXLEsQ<1LI;EllR$<`C3ekg;0u-kQWCmf{i)Tewr{=b-occub^_Jqf(sC&U z!U+81TkjX_5HX~{ZeiA3S-EIzfiXRsl1-7*M0!)FUUX+PwXlr!HvrRMuabLtvJ8;d{)71{dTIewh$Hmryy7w5CRfn23!#-A;y!9%6H*S6P?uC@tYHX4 zMybRqFKBqbg?`j~Ik zf{8=jIU9s^uZy9hkGHOJDELqAmMN{9X;I=dZhcZzUSC-hr+dKBZ{a)oSRS$?!@?)H zeS#sSO(nX+Oz%Vl86`Nmh>%6G;#A!%(H%Lh+5fkWoJUth38QE;Bq_g~ErVO=8%^n! zC^&&8G5^nBaOAjBjvQp4m=mETtS`ry)T}fahqy6HOQeV@Qa_pgrO7nBH9z=Kgd6L zuDtV)_s@te-`;#PF!HjnplkV|@$crH0dlzinX>+~nV*p-%%JsF!44Vu3*;bNL*iK_c&KX-&@$B!uzp!hk)T*BpVX5el|I~Gm zT&=*OhI}Y^*N(YSy&)~*?TGYB^rzznUEK4gFAv`x&&wij+o?KVYr{%pPy2(J#cNPK zu|-Q3K!67XY)b2KUGG82qVE27Zrx!)x&Dmg7=V@2MkiF+((+xg}>Ua&+2W&UY5)hZGc7c zsI@^JwT{4F0b2aBP6!mm=%tEx$;qld*d$uCSI+X289SEGIUyy|4679RjH`szw9q6n zslQiSgO^B#^%E9n>M4S*0iAjZm6mS6Ht!@8a~%7x0I?q%2mGlaYRqZJt{QH~Y|)f# znRi!kkOjd6BqgmEEogstLtllHI)W~HGc;V5iWctmdD;{1=Ni#OY^Az^gcBgt@j*VT zESM-k0{B;u1zu8X1IPJ+Km8ZXloNLcRUQ=+$qX=Z$Vm+qVMXw>`#~ZTS*KqhXO^&! zzlKDj%TWdZ#$oHV<2F$nWx6y;^22ZSoE9%jAt9%onhOb~X;z?Fi>Mnalg8Z)isw7} zrFKgoGwbeI>FAEmZkonaeQ|*&oMegZUn_=DYb>b|;7Lb)q2w#d{#^=+-g^PtTiPAh$FZpTej>Jv4601*{7^I57%*Q%)wACj$Ku7^->>E#*7)MrcV^qR2Y{DT zD-cO7p5=Qb;yo3UB2+D&y{^_qSYO(8i1gU5-^uXj5C%-&SA(P^cD(zyqPX*N@~RbM zUtL{Xz5-c^d3Du_ke656k7zy$U90i@jj>JGme(J|MMi;$c`{zZ zT_5!8N35snJ~W|6;QsC^@Qmr*>&hTEq=m*Gwi3!7Fp~CUY{GbojI=i#|FkzUe$j`- zpGTQXq}=3WMa|k9;4qei^aw_^#V_#gxBUIla9fB^6!d zw(A+RHl`m9y+egGzXhO;E2M2hDnH6SfN*-<&BKup$)^@WAiZOQCN@cBgu4#%R%4 zy~H)=MBk5Q`k09G!fhqt(gsrbib-$z`*@I8kHZh4l%o=;9yWz6G`?O{lil(ISSQ!&6YEXRi#U~cg(>4nJ`jDlJ(6MZY;9V~jkO_jfke3dI za5khq*ec4>vz+qV5tuHs;_c;knzh0lJ8Hj^a#X95M@JilCDG8~p91GrEplHhZC`1$ zm(PVmQ@;pH1@CR5LQa=}3`KucHZzR>keXE5mV&agAVbkT0R`Sp@dF67YwvTeo$I4` zXj0$&tNu`7!Qjckc~Fkr()Iva}W|JzT`V8wig#v6&xqgLV zqIOcsS$gtZWND;~PKs*JG#B9|c^#0fV@Xv|U7A9layDW7@WYvk>M3k0Gq$pj9avUx zO>_qAk0az(@N*ofPUw9ag(M0v&WD=p1K@cWJ+2Zr+Y73HvvT7)jhVp31@Rhp?cC5u; zRB?C<@x4C1>7*P?^^mcVsIsWswB@Pd5~nF^i*P6;`k=XymZbn~AaPiAE%1{HR(PsC z4k?_$@>78=zj#{73_Pu*uZ$m<7YO(jUcmEe!Hyo`!61~wA$%#|1(-L-nz4(USTeEp z7vjB|E4ewQLMT2c!9S zs#B9K>M?7+SPK~$Px1k6hHS*X!D5>hEfFKB+sIr&G@C*N3-#-*>0h`#6; zqELZSp1Jc%1ZiiuOG4^)c$R)csiYbU;=|35#!3!Q~8_=c2h zb4H)lc#qDF0S;iX*)1zh^iD4blxzn#i2zwAAqo?Z?-&z|K2N&=lLNQU=b?aKRz#a`Ye-zUq z(k4pEY5LkH)~M24C`W- z3fV4Qw&XjvY_@1S(u`Mc;^2@B#GK_*-t^EUGL?Gu29aB+>O*yf>(L!)&7PE^C6qOw z^XfHdqemZVimR{cZ1|)U?=*LN#PXpn4?!Ts+6OFw6c`Q-+$F=wGQ|otFcN8SHA!yp zZINH=r(5c5_|!z~YIK9bZLM00=t>*-{I97_;HQ%B@v&eK5cq*()eVB;722%J5z=rT znMuv-E0p4<_nusG1%p>PxWT#qY#INP)9u~sE<4!~S3Z=*#wuL6609-cEvrT4O zQ_#R?r4;DpbJ_M@xQwFLpUR}(_F02H%RVT437CQPDS!8T3ih^YnANX#4 zg~&R#>hC*)MV3+gsJ0OK<=xz*f#gvGB?Y+~kY;6tZvCniQvEIqeH2Y2GYM;V(%IkL z*{T!tD3-Y=ug61J!Cbkc)<%q{%cgMx9TcrBKn*@L)`QiZ{7!}9XEMK{aeDJB8mA}y zWeIg^gCQk0dCMwLg%f#M#AY3Pz~b?YJDA9c%#QB$?V~zxTvac+$Z7mnt}M33f&Di) z?S6m|c-fAJ<6=;;K9Kuu^kIp7EDr3`CPmQmskJXGga&o>l#_PDldp;_SY~^umCYoH zNxd~7E=F%4vT>)^K;sijb~Gg#&l8j#Empx77xN4J+?oxo8CDXiC0g|5ow>2TQqJf|^i4!ux{m#3#C3EdR&`uDm* zK5|Y#P0l$>@N=$1g_3g-sxCJt)Y(W0${Y0ICZs0!1^+`eIkP2CWJu}d zw>p~;HiGT}CJ9%6D)D^KvRAu+6s5Vdv2^^)bEQeE+`wW?gI6F6FH1xwl1VdXxHe&^oFLjwe7ml8jH8QEB9=3spS1f)w)WUhj&9@!yMBMw z->d<5c*GH}J;4n(It&VylZ8MTs+(miDAiYIyJu*STdD+Q{otIY`r!z1Vtr(f4Y~Tg zJBeszp;!BKTau^bP04<})1l=mNYo5vC9pRl8_9a3>66Ng_iYGI>M0*NbAvD_TD4~U z2wLDzAfGtWYD|C(9`m*QO}O~eQ{BySktp#Hu5xSK8^tVhf=^10>7c#4j!S zAOZah+mXM2^L2kDX&>=g&3_YLS0acd^gn1>lsNSAmatS0V^3kRSj6eMZt&Z9~by{{y8hpf-5EZX9&&#y!$yh6{6DK7sIm-^r#arLaMu z*PBYFp_r>De}VA-6Qb?<_V@-S;Dj`@Y<&Swc4+)jV)m!_m{5kKs+TVyf$a*ck0z<* z4ntDVlhOL07XDYeb0XXF%&ZsIEg3@W8Hh5q$6*^f{u`8OwP=A*92*xPtRR(CJ=1J) zNi;IaZXb@;t7?k5rQ<&={X(Kj&QVdmvQHuaog_JS-9Ls+5RVOd9z=JJ&_;>fx<9bI-w6!?N<_uuD z_Va&MO`BIvM$i$$UDgSE<4-?bp?dM&068McxRJL~7e}RfvsLep6h;t5cKhf?lA>K) zDh_lHIur2VjJHG+scTN2Od;9*nBUv0Z0=BRrr=~yyF4j+04v$%<5OOC-Nd1pmblo7 zeHHgPA}uGW;}-A0oNNOuHim_pd!X5P;y?Ycox*d;W=c~N&PZ^mkE)}VzoSBVpFSE{ z=v;jKcecgH$Nyn$bYMRhBffz=X<=U0M22%3F{whLCGaq()uJsz%netd1ecnX?)~WZA@A|9VX7)d;R&%mW<)7(+^eJ#A1A7);^aviu}m4ed3P0Q++H|qND3*^ z?5mN=^ILy8V+SpV-G5l;`~tq6EBv3@$H^Sh$Xu%uOYvW5nLT|AOS(z0EejOa+VsJjwv>daETykl#Mjo7x2GlQ7>vh+%pmt8qNN4JBsf|`^LZ^HVMUL_=3WDg!(J05Tkne;UO#uL>l^Uc#r^nD` ziCWmkV|zItB_ZYjN~TIW1AqeaSkej((KhxKTJgMLRV4d1$sICvv5YkXzW`2sw;!4* zs(5^3;$D%#DYKW;q%o}%`^!i&cKR9zZ}ee-CP_=bZz@B*iEiq?aFC;VjrBjw>!l;OgFJHk|}? z@K_14VeKg_BIkhfPq{+uQuVz5;L9@&rVW(o&2hqzpy0DM3lMG{0%4 z|1sfge>qB0ackKfOCwT}n%|eF@6$v{DZgLenAY0>-ia5g$Od@Dbe4>2B%k{ibgABl z#3lIIZI(wGiRT`XZ*G)9<%aeVkdOiLw+UrxkHc2s>PUVp7D659IOvRPQc`1l&Czuq zorY}MU+k-G@kaUm^5bu*lmg*~0E1aTO1loxW6= zAd?fNZ0XBK!0@Nw zsAI1V>4->wC-NrQuWBGOl?9EOPLf1W1*i6)px?$%j(@I%c%om3F}UDjBPNplZcuKD z{{F}6D(<3bo)l(9!FVllz_~kX-@0_=bjX4V4VN^UsA2tP z4wK?Gjk@vBmq^hFr3_9_H-re!K!plK`-UwdFE(VUXtW${O=K6(Fl-l($SmFLjpcu7 zd=)W~uj50f$Qh`aU`+{}AOoaNS;`S0&cg}Aq#F$1C+)y6=`yvx68XsZ*OcE2EK+Fx zQ{)2l-1A^Ld9(5}g86l-(Ax-=h4{Sq;Qwi{A$tE+zHu3)S!CtY`k3twc@d%o$fVk} zXVvw=2aqtRzK3zE7H-vXR1jX3MIK)pl{(9!2zBvm~So|bm7jk};4U4Rx^ z(?@z#^}(-PA=-+}5s=!}v#V_4oz94(J@2g$Wt9h?@Qjd~f`cdA`wYjV7@xTuOovqk z7v&M2#TFvv$JFe)DtX`^Vtx%(JSwTDhe;lxR+iE`3ROtZ2$1{L>)GU{tVP-WR!1Ga zxr34w@uSdaQP$qluT_}wyv$=CnUT@~+JZS>nMWVm-3?S#F1YWT5Jw1P0EmDTG9Y{= z=E*#y{Oao2nBho2e)w$EkBBXg5AO~WBXZ7S{{#}~BQm1xp0)d@EKE$uunT@HNB~%L zUP(0`f2o{JNCn&sB={dipW&rl<>X6+8mH?+)#YPB)#JgcA4%;Ig%oSc%jM^6 zXz26Jx&7rn;&y^2%^yfeiyyYRi$7E-)wcI@m>8~6&FV`}aWnFyqAHMfL>kC>%S=c2 z*5Pp#;w)mUCL*T-k|PO7M{)V{l*U6ktxcy5d;Q6I|H=8|8fMvwd!eB>P*6fm;`3*O zOcfRuL5dcN)EDfs(qJw>elUnVFPtT?`s3WW7OJA<3Yn{%KcTTdTje;+no)?uDLYaH z2mW-OC(pS$gd<#!lxP#a*7*H?6bAim__oM>8?#Io!@08MR$q^?2=u<3*czGMs53F7 zWQJuQ32Ce**sofzL5^kCnEPx z+T#Lg8S;4lDyc+5f&W$i6f~cue}Y6dJ>?6YWU9n-Cd^8dueNGsp;4`UvOa5cGM(b~_7U5;J)Hmi_fp z8UO~z$Pq`9907c`Qerg8B`2adoXC!ytv+>QTlm+6@r9_AT;rg7e+P1O`4`CYi|YnmitPA) zC1UrSER)|(I*;!w?4Vwv1>apkQ|^;dYl);;=i+*i%{qq3Q=f2AvrfPO-o-w0H!p`~ zYi!I`K1^4!^k!^BsM3a|H9&m;XZC#P>NC!uO|8(z-dJ zIU0n7La443{ORwlo^$z+K6@o5O}|3?&ISD!8c5s76qD~x-vNt1j|WvIEkQ`H?kFPq zm)w6u-=Z1MJ0N<7eER}=hCH6%AI}0oi);r7xqo?LZJ}I%$)1-2_IAJXd`9S}Tz+1w zwXqvgm100;vamt_h^bV++oDBFU#NtIRDyJ{S^d$JgS_XcsTWC@AYGZ{mijm5Kn)H$ zZgfRGNGMENMQ*9*c3K)~jX~DLiJHcE@P=)^e3%%^U1676sqj=)MNRlx=A7*oCPpRx z1B^#l%oMVra`jrlseYbRiOS=NONgYL_yVBkW#0fwE~2y2H1eybxP<6PBP}jf{En1V zPaK0Q2TKo#g%kh2cr3<+2($H!J*Jw-vN$X%_QIOFLTM%r>&;46W%dNOX6OjnJ=-y{ zV%bbA6V!WgXU2|yR(k0kf@l(f*^f7`NXrUTMKS;7v_s1?b`Y9r;e;M&uWhf$%F+|% z@z7LYw!(A{P${4EAY|Oy1Z1?~v93ab)HOL*xUvk12|J~CF{WZ==JrDwJ5a9+=<<7W zh`1#IS37&zP!$4Is*U%f1x8I;>c794_yd|lD1A({)i zLVb5|8&@O?v{~lJgvpyZST_}s0)PQhp-KsaNgTRi)bs0)1niSUb|CbWlMA_0o|jt8 z6C^T&B;&}RZuZv~4QfZS@HF%4;C7MmD2OUSpxC*stcmhyQbM8Sw+%bsWu6Q?q$`Td zjWs=UNOU~v?Hl2ERF5l>bGAzQ%R3E9pAD;nDS@3Do*ng?KR38NEtJ}b#H02(Cjax5 zXsF0$Hh>KCr|WTBHivM8n9m`frRlCOw{P>sPztc$mH`iNrC|FrV(5-An$w9bvC$KwoSq;NG8@(qL|grf(Wj(1sO5 z$RoDE02oXQMRNoo2k+yAN(%y9I?mS3LKV7Evr$9Dtcu091HN(ZDkSr{b@ZZ1w+_Kg z7Mnl9mw7@*pWSqCx+*%@NJwNC%nP5idP2;w(9tKPEOhk5(fFZ-qr>v*_~ea1-zU5> zvmX8bN85QvMRo0a`~vC#!2tmk%SaV5YCy1$ii3zCpjcv0L`4N+*MQg%#{xEr1-pQV z8Y>94sDK5;7K(L@SP(1;(u{(R!`o+0+cUH0oISbst(EoG`|~oMz4xztzn?EbPHSTF zS$z;Xdpbv!imF3wrM(V2fOz~JK(Q0E17JUWxR)PYb@`yggXZwClwKSL9CT?ro-gm)OMkLI3rvldT$@x{ zv)@!zZ9=@^(TEZX^_a=?r*1)jQ!QMbaDm3I8($@_)`v2ZQJ!5^C?8|l&&dW#l>{9R z<@7<-Q97_>j4Ui&5;gOokq(C;XHEl}LE&EI!A6VJApB9h?c@L!Dj&a(n`f@}rd4At z_iC(pzLFsCCRKrWVB=OJ2d0E`fsOqe_RN$ICWX0kqr5Cq*O9|Vf>!{uUTe*gE)2P+tOU_bR=K;ib`2(Ql-h_1HESbdJ3tXoyiarnsi4LQxJeNZwf1k z#u2C5>`1xXqmmyjzS$HaXZC# zRm(=J5|yk&oq8q9?f@a7X(KX30{ZXZejJ>WGVdsJQ70a)TjD7RwcE=!!5?Up9v@VKqxDQ%BiQND5DRWMeDCET6AXf zq6{EEne$6+4>G9-;89K<{k_9O_s3t45d`irJ91VPszfv~(UoA*MX>)N(A=55W&K;9 z*W%rEEF?f!}URSX?e3Eq6+D5AlXa``bvAc|0UJMr{~~oJLI_7c3~- zmE-ByeHX9Uwr!Uz>BReK!e5WF4Fubi&I!q%l6jbf#ujdGax7DG8U+hmngP*@6o$Yl_wTJp77uvq8o$!5RMav)|>pYr;`n|1K2b2`Ub?SG#-n zAsv;}@&h|kcCOpv#4wk=Ej9&N9&B@sCl2Q5=}F=vo--iI9h4@yyO2rXBJB0oWd}u? z?-EK-k+2y_T7zcL>>O^|yPqoqNsrDMlo}Z7nuH}Q4}=xQ4_}=2-A@gB=E?_$FQxYS z?}kP;bBR;Qly=NtNnEKGR45Dx+fKr5``rf{&}# z&(D;4Sf&~B)=%KMIZ`G=Hm&r72k%~QGb;e(g9m9zMvn*mtJ%{r6LuNT>i4l^ZI+HD+yTY zOJ}{N1_p|ugenrfS3$iZC0PN1gL-q;uQV|RSQ{d~6Eu5m?~W%Iw@C309OUiMVzu@b%az=K-vg&B&rc4f&y|vV}4U&rX&0RaU6#Qk_n5=~8d=2r1a7WN?>Y z0j{Moqh*$qvA3`(RPRT{e$k+xZW<<&bk&bhM*A`CeXVIheWFGsbw`~#sqS=+bzWZH z?l}>{m7bXqcA7L((uBJp3oSI1kV!zOJwnj0IOg7BK4VYNiQh!*1e^{<-@r2bq349q zrG|3qQpx!@rs#)Wm_g*7u%!fQ_N+30JDJ6UJY}&6ex?0nEO(av^wINY zN6()sZ7g9_7n?vAr8WTVt3ws_R|s|$b@87psphATMkQx7lS$|Vun_L>vx;t2Oa2fL zL=bs?>npXJtK=^_kshhS0I`|}C4Kvx*|P-VCpY*}G+%lFECq@EIm*4B9=x2r<1_db$O6DKt-J$N&$~>(E1ODF(CIx!G$Fo;l=afejycMzX|E4uxi!Z3>b^EyzR<>U$!&3IU6g9#>HIEE)$Rm2 z8nPEcyg5QO{g~qoFFhyK$4BjDTUgSZ)bbHbAi5T}-L~H)Q52|_(x65MGL|a!RR-gB zthVL}CZ6^1a#GIh3QP@!f0dvq%}H(8(@U<+^QaU@Ih0A0a;ga6A+Vf+U~bOf*$h=N zOVoM|gfz`70XT%8`0LmTW2I`|r9M8)W!qHkc{~k?6Yk6uDs!;|KBR|naw+OJGR`uK zH!)#mu{Nt?P`)bS1z%}zpS_h_Wby@bTi4(0M9D`s?hh3(LINc5ko^LC{gElf6gv5Q zdL!c$P(Ys_fk<7FtR0a`k>izrx=^K@aNAqn{>_D)A*?$+lEw5EIcG^Vdx&fZu10Ws zNDW2ksZ17;N;j}@?r(O;HFt_IWq$dgFhRv>x)?kn+41qu3p{6L01>*J#hOLjRM}HO zZyFl}r9V$jlH+-PeMk&_Z(f#^VKpOVW?ppv zLL^SRD(=$@fXFyL)fy;e*#SVl?!xQ>wISC z-S$ejS<;`4s|_gH=l5fndZiyrS96pPVKO6PEbRK2B`#^w!cUuqqPkt1hJAiPj^9lv z$kQS7+tRfUAHJWlp$ys+kQ)_=R%L5)c7ses?YT9k&=*MDzJ?a<>#c1KeVjZjGca3_-hvjD<41T@t?JLd}UzQGOItDI1=D0$}k1}GX&ahq-h5)W(;lj5*hevS6Hy8 z#p<{SyeA$xpZg@j@dJD>-6A7U^kh6`H#aS%~m>jVri2;My z7M?C>dDFXs90omEAG_zzSG~d!fv=SJ)9u)v%`Px9i5B3F)m#$=%bu+`L>lSpde5m} z&-E;O=XLndW!Fu=R)Blxj^2;5F=4RMr(sCa;V?7RUmtoHrnSZf5u1ECBr=)7AuCnP zXmw`SwaG-T#kRjrh{kZa=oBfPX&2pf5K3|#e3=v%{C)`yCcH~b!2uEc*n$%9{~ROY zGUt?iSpQ8hYhTipD7_kJt-{6`!gCN^G^k&iHlsHyHP%etf@)t%Bb!ryYRp+hFSZoP zT^cz<4R3Y_%e z2KI4DYS#1UkU44_7D^Wd_Noxx%V^ya0ThSCY1YM2qXr%!)u_99v{7ssc~Mx0twwFS zZkd3Sy_d~)<;h-45O^=@K?hnxHDu)5TiKd|NLRmFx|Tw(RUtyGs+}??h(i#W%RdvOartdrZ-}k(=3}{g z#_W7AqUaQg6fQh6AVyu^T_FMzE}#d7MSdD90Od3F6dS9U5p*&9^rrIT;O421<*@)1 z&s`TzDcI`QpOpJ@Z2;}^{i>*p4=gdoomw6-1*j8%imC&@jF85?2Hlxm71$n6!8UTm z7Hr^YT;R!YY%#?heq5J+MaV9~XwUQTK?=&$zm{XGQAY+wg$G1mwbZ5reo(*h{e8;( zU>=%`0G?6>EZFGxho)DsreM)pu35CtIuHY*9*WK`MWGonu^FP0`6ynJUeRiO#ZWb| z0|ecBhK(b3byymZ6F|rB@Tr_yPHWP1Ose_zqoBJ-UyFxWi+#tjcal~S4vGKu(R3Ia zkVA7P8uDC))#A?pKI`qQ zcz91i?1*$NilTJz=fvTkPMiJz+tc~#7hO;1FTfUpsTCh-18gDW>8z(C>lrb4CF#Wc z6hx{~9tAzR|C8xo)_;F%>1$@ix5f8xFfrk3NC&}M@r7IJCi7;ckvfvJj>aZBP$^#J zFjNY93auTx*U8AlTQUq!A63pQ_Sk92b9p|1%fuHj?oP04`}+hww^c-RXqjJvUr2u7e(qkxnN&Ab`mS-|GGsi6(dP5 z^s_IOi>exOh5|fqMCU9i-fHj3;JPt7aK7&2bG}$Tk@6qFOMSCS9%(w{1GG<8@3NF0>8R@+J7^m_P;Lkmm7=%&Hpo_GHd3LPdoa@j(!al9vf9DKd4f z={L=^L^eMbkmDnVS7MXn?GnSx$eRa3+)>iV>$Y*qz(lHh#Wv~GtqZx3C2eyjh?(?o zEc89T^~dLYMf{A<`PvbF>5YNPkn6@gMHv8F-URtFfH?avFWuT-1bDIEZtGt)&6Fl= zOX)Gg$+z#V(cDz}HLGP32RjQA&p;NkDi0qSBCVX76t6rHODVYhu&t}$B^(}T?4@z^{u9@nrvd|A$ zaWIxM%>jxNiODV)N{>~LynZMKk0HgZi;U1*%)jd0ShGI6$?UVF#tDV&KoUZ1QV69PeS#!v1ah8-0B1CbZAn`sY2(FrqEk1<`;+e1nWsr$}j4#|gsa^BqL9SA$UYAw5x-hN!` zJ~;Tw6mhUmmx&~Xn>Jxif7+^cT`MTP`MCcr<7k~q9Yp;N6;Pr>DTiE0z2c{DZ_@Y)~DyNi>VL(!#>N@%u&Xsl+EOBLl7 z%osEutTOu?BE=NANofl=%sqTr+Tmkr>&x#3Phk*CSEnG?Rq|Q*IEtNTO0|h8z#PhE zwU4*mN_)~2jurx5};>Ts_}b^!n_3*R63ENojGod=kL^ui2qKq8A#2@|6x zSJTd($hiGvP90EF@Zc!2)y{wG%Tl%6EnZ{QtUi<=H|2T9sz9=Dt!_QI4d(K>qqrL|pNd&-gq=X8+<2+%P%Kt8D%^cW;RpD=`+}Jhx?+i|9ck zp9kpSHe(^SR=nuM;`vFW(N{&_l#NWzY`EP-V2lYZ_|<51uRfa0J>YVtT(*)XTjMlLiUyuSqb2BWgr0@eBWCSs%}<#rUp<9- zovN+f!8(7MW)}S8t7CBi#oxYCXx{a z97^Vg&xV^3%QJv%4 z(Ov$Xp2ED)g^u94h7G3psa?}%^hUeRnn#sxH?J&b6}P<#^5}c?Fk;pLW!4CZDwsYn zqMnyJ+}R;*t#}6zr>WQj&u24bk`-+=Bh#P(1U-9koUo|UhAC(vmx8ovcB~|@HnZ%P$;h_?cnwTe|G!^qXH>(9* zAh20QW|5GPe{l>2nLpkCX(%mDMH9js-!irQJ6VW;X=lr(WNhVtB(rpi-jVgbgO+I| zAi1yUq)$=gb;wIgm4@N=vQAG&Vw-$Ct5QXz0?~$-@WmlJR5PSZ^O;o{*yi>GoK-;4 z*^Oa^`-N(e9}Tes5u(fZ6UV~%#KE*9g)kRh3=yc!92K_xTPQQXRmPzRs^|qq60K@Q z+4(_+i&T7dcY3>*^ook{oC0cwyyJ_Q-u57l1Jc;(5{y-M-|MX=x&ukkwOldN-tur0 ztSaiN`?(fSkSZDAsWPW$<4e2n5sVpBQTI1%H@n0(bX8UOjlbKL$>X@gWP$~MDW(;v zs_}4$7s2jXm(Sao9<#=oQ|YAk>u0Ht1fl2PmJS1^S}$ys)3z1IMB5JIg*&HYmk2q3 z{mfMR0n~jYMpEOMU!O(BuS|b^IgC;{p?`fSI3oC~1YvfT54DDx%yq8hZ0+W!kzzhY zFpb?KHdF^ReEyAQ`wi8wF)@Q}ctZ@C`)Jx7aNXdloc`Gu7Jv(y`23^T8%3OCMtdFG zH71Z|1$MA>ip7>QQzgpmd9S{2 zW$3oay#cJ}fZsM-V=K(`ZcJ1M#RPva9nc6{tphZ|%6=4u@a!D_Fn>^f@89(MKtKe4 zKFj(`JLeY+kXChz{LMh$Kpm}wyq^gdUuQ*j&MI^4_`)VeCK@joSf<7?SOjRHw{ZI} zlixH`eZi(f`6|$lRUv3@g2?tLx2BWoV5HpOy1*#CZtVVma~Y7FYTCgnPBX?6THg%o zzG3uga-n$}+GqnMi|f4)oke$y$CxUy$ix?1q;(G}Ri1MjeeDt%P!L7^_tK-41R8SBJU8`)Eb| z(<=btt~lCZr1*$Wx6sk+;j}42tqCwOXzt4UQYpaP>e ztL;?n*|K`NGhZ+kv&}cL4zXzx57Pzd_?(3c!QjXt2kY1PBsY0>Bw{)Pz zEML=jixfAZZ$a11U>6|6!{0L0fuLv+jwezwkn&Bg9Uz^bKrs7xychpuwWD0(aVRs*7j3G0CZeq@e z8t>t2DLxj+a{Xp@-_!Tb3?!!<`tUryb;g%BHH`Te@+RmxQihlAOw*VoF`ClGjKmdx zzxj`#?{!p02k551jCdq$<{F*LZLuZ2-8W_hV-Nlf-Lh10F(j(T1|@1NXD%LIYsj4g zheVoFB=k$%9S$&cO#faxIwScC9b@FR-n2_IQ z;0Q5haO|ON2Toyc=B9Nm6jFJRQD|ord+L##Q)=$b#_?44>qHE__x`;bWb%N*d-g9G zCrA+Z^OXbKU0$Fjo?R!IS>Y1B`g(j_8>I)8u8}2_=nDCI-%NMX(MP!e$45zU_2+LY z+xx=dFi4b8yyU^yY?@?l<${NoKQ>|T=0j0>Xd7i@5xJ^@#?D3)TUpUbVP1S}seHZ# zK&+C;O*$#J;Ad2xsuptKX;pftrel|KJ1H4cgdW0#~znj+1XvXRiWW`<-OOQlQ{T9siez z$_M1x(+=wnwQww7DiYk+dVgJ#s)d(6eSA+Cma$Q*W5}9$sr<74Db4*4-hG{Xy&1wu ziQeS52ss#T2G3rVGGKtEM?@pa1WlVldpxaT1eOqy{aQ3)sr8QO0x2E7@2te zdLG!O+Ybu@a+Ww^wl_T!nlwcRLd%C}M3HxN3JKtuML{D_SRsfYMv)BNAe|!&_y36< zVQA_75+53W=%W^BJSC@yY7!qurZ@6I;~Nq?(cHoA-L_*#7zW45#KDXz6>&L&otz>~ zFyP&gd0*n}Hskx8QJH5-Xng8F>Sj;A2*XHP<@Cz+TQQ@eNH&??hcgM@{M}_KUg%DU zSE@;=1joU5{bM#vX~g%L|RCKfIXj z&%^|s85pC0=M<571Wlk>ap@HFWRHCoGTN8sV#S6~ zG_}vZTOv?qRj5eV(5GI%>1BLqyazhzjP_tYC|PY4-D*hgm2}5m{V3Uq5(pmVxZmnr zhxexUe(vNIm9vV*OX<^4xtD4zl)#YM&7n(s zt2h$O>_hUsf*eS=7ebDDm30rWaA4)4Hp!c);XMN2e2?_am463z`W;%AX?5~_Y1!O_ z+fv1-C!X9%9-p4G3Rgg3akaInN%SCf4FwRTqq?v8bPzpC?*_=|3f4+`r%SR3Ygr5a z{@vT}3nx;VH>i=I^($$nE7*vMcf%kJg*`V`k-e;mWqFduybE5}qAqLpp@eS>tFd5R zo9pe>eRp>#YMD-_Q=PeN>vD`6Ahes+ygjVUXn}p2!=4)Ap62DtX0Or5Oo5KR+{=SB z_CUYQFc|;#ug>SwS@yX7&HKu8E%0PbX{H6j`ctVk9XUxoa!b-_$XXrMf$@TW_NxKo z`T85Sw@!X;TS*DUIYFDdZp^L-`1^EN0JWXsv)dU)dWvzkbGjIuhvFNY&rFv|zMELQ z;USyXsfAr^V*6}CrHujJ4xoDNspVy2ci_+g`4ZVp_JZIS!0iUi4%(?BAH2klA|fE> zuoYVLbk~N1tsLe&YT@BbDXvB5BM1lq0e;H%9(5yv{Be37HD5ykta>9t)a>zLUib!Q z@iA^0DlMR}x@(oOuSB>I(@hCfWjPV*vq1C~KXH2dH%&VAMPWA8cfu|oz*de`p=!88 zV7}{-FtC-A_=k?%1M?1hAfMzWKNkzlF{esMgR}anPvqFjA*Y~&&vlVWxJCz4S;C<0 z^B*gd{?oLx=TtQ$3qrbM_G&k6aIRmEUWziyr#|@+Kg^G3_{LmpsFIVv2sq1ED57L( z?@TE||1U#Dzh~@`NjPBrz+c{QbA+DpC_v(%#P0}T{Cr<^tbs1Y(6fg^Tv5c04`2h} zFcBIGer$m`a9Zv-F zMs(aUD;@xn&d}QbYI+3D+AwSShji<9YR2zM4<=xOD=YA0pXKuv(!b6d|7m2bRv$E| zngu>IYpNKk-NuIn1EGl2KL-RFGLEW>DS2oZ2ub9g@j=j(-&93aP|PjGwF9b#B-=1X}`r-=jl1Z*N(9QYTy zH75Cc%`gI|o~sSm07ED{GCGiAXJ^MJJg4lQs#+gtB&9hCozPQiK!ZXxcYJDcj~+)` zwhyM{KCi4PyEL>jQYq%WzsPcy^Ai7$U~u{4)a z2R0;f^*V!gEiIMs0whSSlihIOeW6(~zEYTTwRRwThcf5C z!pQKY{`5_AUx{FN3e@RO{h@B>ANs9;_mTS3f9vs&kTd_Rv2Zu-Qdqq^LO{hpKld)E zqV_}z8(I;3T<+704uh_X<_4ZB$~t8m_ITtddZys)p-7rCwOtzzF&lZGMuA-{mXCtX*K#g@iGC`#JU&cO<^TP2x}Oig;CR`NP=?k0~h5$hw|t= z*aI+u9f}zy)7#{0TLT89?FkRqf){)iT>|z1Kp>!Opis}AoTVIGxH0F$d>(-*wF=m{ zbP0A~$HM`au>(8K{#?rDRul|fscxr+j{SAOS$JE?8`z-~HTTh`DWY++?4N${>k=pYqyMz3lfZE=#q$BPk@xgXvPMb-;!hkv`|{bx?lKo((|Yy~B#nlQ{4b z07m%dnR$EkqV(oK6HuQXE-p4;ZHBiv=&o6#sO0;+>K$olWocFIPE4U82|eHXV6N1_ z05_Fsw3Ca23ohFW=qUyp7;u69m0)VXs#UTnbm63$_VRFa-MUs~vx3geETgG02js*L zR3B^)Lw-~xk=)m)3ik2Zz$b>91F6WJw|ZzIGg=OOYPkJ~U(4TAs1ey3?*}o8OTY5i zkSQbVIKPcDF2cXc3v!@qLt85*w+c;;hHkM>&*iizHL_&$hmREZ4JnLVxcrfDVf>!{ zuRB`vno5WSdecf9IJ;9Lwv=jea&kwQkjpfcx zI-Jbh)%yPrC$r%G3yEHdCiPT)o6$Q#?CeqQo&kf@iYT>tH1q+ET4Q2NlPMTuo3gSl6pW`d1geTO6reXK zI!Q!@pK;opi3*aLBPe$QtD-d`xuL0?R?Qi^lcB0e*RBa+F013g1Oa}?>(`_9`lD?# z!UAH{#|P*ez`Vw8o2!J`)DVFkOrlJMp{?ZnoN|kX`!^H0{#3! zA71G7Vj;B;h@`X6Jed3=Rb{mKjfcY36gP=)3&`ERD&xCtZMIBu1W!*c9NT#IG*^)6 zyH?}yb!^dx@pWuB9&zi~fENM?O^FF-UdX-qJVH}i&9iIwATj>Mn;gc;mT1_+02bry z;=}&?ybk>=b(N`>0A++SJ#|W4n9HgtlW8tm5@cyH%ERe2Hf zeD0s;7i?7;GXMCxHzX=buVfeHpE$Gx_ft%i9(RZ&Ox^?K#8!O}M$ZFECFfDJYMhbn-qD6Oa$UJF zFh?atiz`L%!Qt~Qa4kMDX%}07%ak12(}*SD(XDQ+xmPBpG0qV;09(qGia-GZsVS^J zO(|P0nXQD)BP@?d&z;-eLthu`VDVXpZ}I6lT5LFY{8fnD4d-={_8vg|C(w_o36h!{ zrg{5o_O>Ruy|$|T#(!G0Ey+(gR+G-28n=rk+r>^YQ?wG6>nQO-C{ zO zc&HeQ-R2=tVVa_G0?}*XZAOhkX-@3PMN-X(wC50}msLa8wGI_POA@utP=dIvH%&j?gl(5UL3=0w<+bJEzSkz)Td@B-HG>Zr zKd*BJ)OgnoML6T<@5U^Fnr=E zxOb0fykr!nhs7c&*Od8vbA5&{*sZyF(Kz-qm+nbV~Mil=N=j$6_jh$;vz7e-?A7r@?L*CVC7KfU%NLbtS> z`VA*!lJ7@tU8mFp*Kgd!(K$hc>O@xGNQlvMdZ~|2aBNqBIb3)%g=>jYD)(f zoE|E^>5VryWV2El>+f3Y0}{8|g9kB?J}p|s_2Aut*xc1CWSH90u7~6+E4jic;m1B> z;GBS*X1y|E?#`atg;(GBtfXmE&Z!N;^ffrMC7T9XJS6A(iaJ*01anUg1sJV*j=x6u4z0VfQ5!{RP6J>;aT{3$KgSwW%y}FIY}&(T-VC?7MdqO{aiA zeOkn#8Up|N(ElLlBWaWRhc})7!F+c6Pt;@O7868xZ#Tfe9WebAwE zh7KgSf9q=(_YE*@8mPp4?e3nvpQ zm9O3{E>09WW{ji!>$7TMNxRKqpz>IO9>%oJd=t}h# zUh|rsl_jn5!)sojPVaS<$TL=PJCZkI*<3Gz*YjeHjYG1bztvUqEhqSF&dg^~@_EhX z!ULQuIc6)|d1bK|rd&MDv(F5BPbh;PlJ{vm2AVEzEf`sL)nL0q+yim@d9o}ih^Fu(}F z0k#D>An8)rV)5#&9b4-g(BuwilZ|e?iWSoW2MH*?7uaM+a^=hxy*~e1^xCd>#7#8u zP{mUQ%vGyymrAh4|JYjb4z8azgmY43RHPKYg$Hoqz3Ml9qOlwaZ+C~stpRhuVXo*! zDzroHP={gzsO^ydB9Rn2tn$LHi8+6KXa;I|{vG}*?^!MHDsNhX8JIuow8~rh6nm9d z{9;RZp?dI6CG_Lh_I_5so>Gx)_`Q@JL~&0-vIV=GZ#*sZ8qCctf5%}pZud*}YWXy2v_0P&XmRqgDFONB|ey zk-oPjplzZ9rYH9QB%D~J)L%!k&MF|EXe`uFKoIbt|85Bnj3(iw{BH|+(Z!Q=DiTEDW5>f*D9m`xk@7`NKz75WTSi5j_t73|MH*$ z-ztg}Ut`Ua{+{}+3yq|JKYdySEVa60##k!-w>&D(c-mimZ=z1x=i2$rvErd3LIr=eG)nQ2e{P< zcvyNUTp5v3Aa=vpnW%7xZB^KRmDI1C!c#(w#93zG`YK4 z-!&oTPLOSvCu~2@m>pF|pG+85r)*+4yj##z9t)eCp+OR;t93Y)!5foSO*NU-1dBlY zeWr;qXJ-QwaP7w)OIihWHej3q6bldp8Uhd}Y}PVYr2~(E=aZg~XQcibki&g5Larp) zIV0n@gBWpBjVVPfN5wdF-`yU#9wxtbG>t%r#M4Y>bRHV9?b*Pl)`%) zdr@dPG=HZ(Zi|zrDCeFjDQ1vigp4V(WQWx{{Xv8TWtJl;J~`X=Y3QF|7~XU4?9y+i z8($nhleQu-XJY7LLwXE;|KLD+{tW+<9UQF)+L~aNVr`lfHq{D6D#RoJKT70D27{^mMW5 zG1btw4ajfNlOH$H! z3Zdq`G!l2x42N{iV`I`7gGG(o{YA%|6x&Ib{@)tQdOO$4|mxBX_%Q zL$jj~b%2mL@n4n*Mn{H>Ibgzaz45YW(lmUFD z4RNnZ!b7F5i%-rDkNbD`cC#g1OFi5G+4Fa!qe^p~yxdfctYyxcP5|HW!`4blB^<*j z`25>H46L$&46Q~!Kt`mkg)Q&!IU;9phnk&{Y{o=m4HI6<8k$DzFs%_%gTTl$%m`Y6 z+#4>odN1M-u`ttrLW8@|q)sO*z&}gTA3tUl_O=(Z8~F>@%os_wHUK_9kLsACp$onw6Gbx6}c6`Wpgx zO2x|qwjVq<>DQ!5Q?(o{l{{g_TuWrW#Fs@%^l+*1p#%>W7(+01r8M_8Zq;2?N&&nTD*px@MGPsGsiW8?N~MUB-)8>!2_1aJ;|spmvb{O8{<8cU zgB=XEo`fI16MImn@SXEqOI0Y1TnEh8!2LRe?@YlC-*NCx0#b_ZU@oOHk!7(6(CCH5 ze32o`%9+EIE47=e!uS z10MK_)DcJV6{)GkLbb$LKs%*#KAI%JJ3#Ezvnwv{Sz(&ZD?2!V->8uNUSjObvk}Kc znqutQ_yY){r`o6gP9q=@GE-w`EB!fj$iJs`NPKTPt1_bpY;WRpjRESpxBs8*@SGJNinT)tBK8eoG7$ z7__+_xQ@k?Xr+g}x}7N{!}zpZi38r3tfD0HYszI32RjRmNC&dR83fOv7xF-eSxIT@ zic^I`2#=&)-SqcV=ey%Vk;M4Jh}Yobu}mqKNFRC)*lK{d5^o$H2&54pyA$~QJnP7A0+74hh!wz9tGpa5dM;dA4B*n6GO;8Na!uVLKN^6`t_kNuj`akB3gzr z`ggNvFaTc!YVW=m3bxL9`tWrDRf9V|{cv*qKc=6~C7v)c8GjFpG2iPK0|PByHccSK z&9gta*lm(&4g!X9i?1%u zt`YLs(!t=NyE1*K;p|dDQzvh%)n33;p70$y;2^5Wf_04iYY{5e@ z=|BB_WwnrkQ#TfFqlbZtL(O4m4}~pHef*9N-%;4HP&NNvkd~!(^eScfs3L@igG=?p zBGf0)s)j;ZiH(XL_dM{dRKgb^N%3e>9(Slp!pryGZ5DD$`z*@A9&8P1Evj!n1dk=+ zdL&Z&*7xfrX~dmbdKg~HAtm2RC5x2E_=+j&5g%$7w&xdvQVC@yoCjrhqH3sXYC^U` z_2moHw4Yv&Ek|9~zE-%dJDwc1T)0fol51%j$@D z*a6>*?udhj;>l5i#2-YjG3BU)e9Zz=zJ|T4?a;jk1zKHegX6p#c``0MAZo*y6xSb*4C~4E_e?Qczdnur<1LPz4rf_0 zB*snUdW2pEHcPT`$sJ}rjeHq=H!Km{#x0MAT$ZXNAgNuCP$@s;?6gveaACs6KVgbD zdO80RuwtA(V2YitVsGfC4_hKAv-$&zFcI4Evb3#w?%7p$mLDI<@?v6!k+9SMRZ*0b zsdG`ZO^2fBmJUTxxsF8<10|29;_FO1%Of}tU=PjphJY1Wla*SO4r5KbE3UfAz$pTE9EEk zPyaqj??z{d50;!_&8fClW>FB~issJKiVAoXiU~*^2u7iIPNa$Oim4lOcmMbZk-yVe zyq#hEu(QzO2U@xF8ivX#s@|U68e`~4w)f@Pt5z5@z3n$EKk)Uw>@2SMqAYje*wYC=@)I}Hei~4jWFUIyIqPDz^H0e5BL+<2IB7+t z4W^;88hCqpa0RVEOQ^ocVJtE%ZF;*=IGf_HRLHmbt4~706)nquFb4EzTGI>g9n__#yP-wqKgJvvo|5_NNjgNx8lc(j{{K z_J9v{tJe2_#dP*aST^DA_MP|T6t>0rS?!c}q#zY~me6{Ng0M;Ao08#JxKm;|6|OO% zZ#3I)s2O6oWg!#n%!lZD{JShy8!=jKKanN_w@ov2th0K8p;_aVFfx5d+gg;}4bi!& zNNpMY;dMAq?&Tm#)r@vepX3gQw7{wf1t(3ju+`#MhRP&-M2g|fm1r{C>(eW3NX}=C zDYPKbq?S80S%^v6151Fkfki@;yzdstc%0Vrm+`mzJvH@v%*{sH090b0A1_vA)mlrPNJTej6U@~pT~-IzH{kZ9uSGS zPJaj?0iW&|R!m?}z<*=Q^3KjVwqSZ4n1Bo3{C(h*fdM!y?oBQknP{-opx@~ez6!Pa zT$G+Bk{Txa&{oPbYYuITY;A>GIR*P3{~V>49z!P0(gEo4dx0nrwM0fH%|;^ic;(jm z26XKNX#yc7Fr>&!`vx@dLR{rrMx?O`?qxlu9JIUj$1&So{0gcpJ6K?`ixi~#&Ei&} zzn_vtO9_}!15~}Lprumg$t32)&J4_ZP$(KGbcjt_R%mzh)z4Lnn{DK+pc)H>95L%q zR@&6>8zMsmcv)!yi2>P}QvP)N01<4#4S_Rue#Vb`ojDVBGK3o`E_*DNI{g>L6qTfNp#tn{f+Evt1}Gbvytv5&sGf z(UvsUujtC?0LJYM%XX2^$rJHcLtI@dSkxtLj5UM#0O%yWdWRQyu~-BuXH(UCd%qxa zfb3@Y0K2Yf8G`;6UWbo5z4+BoiJJu2Nz_{oeIBe&1u{xN<|@GJ0e|{>o%N`tqs7>I zimF2*Y(2$453%&9psS1HUeI-@b7s;krY*Iu40JrR^KSbJ*VqO`sBmrXzsCPT!p)Lb zPQgc=rW}A!r?j^Zx*HQ>>GaqQwJI9FN5^8DN*iNj=$R6*3&x;LJJX40D19l~BT`}d5Fw{PdqjFzryyYQ=(Vt`$pfL1 z_Sumq>I?{Z)QtX9xnS|w3%a>(%g=|oB#hhyaGx|MX{Pb$U3n;vNN0BsZe9#M{ReEa z>uryUSXc~2h_aC&{dvFtSw_K5*-!tKI}#ROJ5rWAOc}IQK960$xFbKjPY1K4T%1|R zqT~Ciy9~2^RaQh+$Nu*fQGN)1MO3CkMP$TOMAs=4A;Cj2)E|^v`uOY!y;(wMq-pV0vAb#(PrC=000K{jo2f2fARY8{XKX>L z$-XxtTm$^AKRydJy~K?HC_2K!b*3ic@xTS6_ohu+lfxwMC=Q{r^B`c%>sTwR08;6L zBNX?J(xb!BRXG9OV}{Ir#b(?R3w>Rvd+`Pai1Z^CTLN=4j5R3q#j0N-1A|kQi-*ditUku0Qe08`c=Hz_I2Qy7}v{{K(-svuu2>&yWOC{>m$;HWCm>%lolrOZ_(eFziTJFS-WVM8ELD2pRuqTQB zOT-~fz0Fuv(0YA#MKri9LV%~GNZ(mob6HcGdfOcdJg_plBvl1?lf^79?^K=-;bs|? z-T2*wVoWW?wM^gFBAQuM%mkmI&wtQ}zjZR{IFw4%K7Dixi>)&4;MVIXH?0dg`bYQQ zp-no_r;na5dB^=J_NIf+m`}eLQ2RBV3i}yk67=aaY!K?)M@@7zlo;hrWJ_6|arC<# zSLxs#xi62Bs^CDe7*k++agBGmXpJ2fWx|zj69Y+j?%yxXMRgJr@-!C1X+O8EO44f{ z;yHacD=^ifa5UTbP)rMac~$`_?7gG@~ed@OKKVtT0IbbCmvxAtioMdbA=N1T{7mZDII!>|H_M)82`FUD&8) zR*`)PdMH`ck!mGn?Y^!nPRWE zL-Cp%%Skirsnwq1P*?6?EYI5mm_c(m)2v*}{@+3)w%RRj{ z_rCDfXf8o2`-*q(6(UemQz*AY2{b#}J(YP#(CF^oklUR8@X~|MgkcNDe;3htFH}co@VFCLz1gR<-C&fWgB_Sq> z4+NnE(eyZwo-oM=_hVc-!x)>$lB=WH>>X_rrm%+FMCm^M8g>o!Q`j#8rhiE0ZeW)$ z%am$Nm#$?aQBh{gXo-_nrxYn90l?EX*frG7j1l6U$Z4!*4R!z7DG`#`)2QiGXwsoj zI4WVo{Z!j-jd5E(2H9}Lot0K26=oo+L#iQc)WHn!CN2zDTIv)wUhG8f0HF6s)zbQ& zip`9f?}^{F&fkvfbl!VVmaCS3zWun0nuQrGrM&A7rF6)Las{5*JzG#|W1yMzxBT_t z|ERBqt08SK5H{}B5H>)%93J|6+NGfmPuH&Ag9yWF)yUjrWHaPK@asB z)-R@6Mf2CQI{+TY@s7PkLW(vEk8Pe@MRZPc{sDgzmNh0{qvkVNh8n4^G(Ko;|3?zU5fFNN4>NXb%6Pj@8a7+KWHfI&Lt4A@lGi{i- ze;y3uwobgCCj9j%3~$4ujXkj$FO=vh zrQ(I#=gNnKE7A}?b>=>cJ9sHP4#(F+9n>ei&-!jV@|S2^N)IA_p0|0jdr+q( z!;lVi1}Z0#^oq1pqV0S;$2}L1SCZp9%CFIU-|_m5ALRa~ z>MA?i!Go)8EOr%mjO8&q51w$VhAE{KMEHB~YmR;XV_b6l>sHs=E)(DiO^y98Nl8L8 zXBh>$_K=~+(@G_<6M&+E0OYZY@t}c^NA}Z!j?|$N7xQlexooT%m?YvEQPoxjC{e5YI zmEk$BBE|HlVc|*#=HAC=J6Sv}P|8vEgg-bj`mg5q&b1CVF&WPUOu!|7NMUCe+;H#W z*fIMI3_zLEGsN2$HEd9gmO*NdoQWd#2O^vj-Wj}%(dD9k-qR)UKe!kn^Jn@7!$xf= z-j>WWX6yloDAD%^xY)RAg;P_QR8YqgVY>&ft!S5QvG1J+V>cyyJvFUS`6C_k4cghZ zzECjuXB0RB+@&M;8;?mfS4wRN*?#}b7DN>C8VAx_0^tr-WghKcA_S?8$Ow`$>nDbq zYVqt{`RLwwT^xSI-&R7=l`+5ec-qbji-)NjMg0guDW2^O28)m#;6 zxa57J5g_KU^{ZmWcicOrk4w@-A5(f0`R9rho_&(#l9Tv+)XRmqdeo+~81|g|4@hPV z8$9$eQI_kcjGr%`S5afiIf8C>DpTs!BhAP^#0%YFLa~j%JpzLy^#&q-U;Eb%8XulE za~1H56lv&Dk>qaVho_jAg{?=8371Ja57VB*0c9507cb+~qY|?aU{we$j@z+#GCKz6 zi`|N_&g7O*WV2z%t*o=8V>6Xy1QJ)0KZWIHn;giL`UN?DH=zKH>-So~gypJ5pH)xz zFNiUUGFN*0VbYi);tVfT%3RATi4Iw$qgU5AK|kH3eV zRwf_84^u-TY6@EPa(!4~%sp7W0;bRP8x2FBz%bge5x)L}`GQHrl? zjYNKUHQ8Cx7{6(*qhTrb?dNyOtSio_gLZo=g1OUopnb5Xo&=gJwY*i+n8-0$iiO<1 z$QqW2e{ZC@+%&DKSDiCo>pJvw(yIN~H?Ls_OAU{|O2`Ua!XGh{=p`Es9)DHq)5jXc zEZP1Q{q#Yp(ItbMHKlXAYkSw#ujdj``AGvLm}&}uI7l@crdUHE|jw!RwAX-dUBi>hv0D zqix@>y9O|WcIggZ#Dm~t%c<8<12G&{N^w}K!p1t;Ry~2I*0i!d5xQKdP_f;)QF0;xB1j+XH}(6Ho%c*;j#|Dm43bE3l5}HSCyS#|?07=#MDLcUKc26ijbw}YC-#|A zCf5(xfV)ob+eHh)+@~&HM!BWStz|XN%FTAst{)a3YNr|63as?QYzMMDHak@^i5ja(TL)i-p>uTe|k3*$t0LbvK{Y%`<}r^ z!`%LkamvMBgVay%L;dN!7-a!VsgUP)LG;<<`;QfmN5KLRFM4LX!=lW?BsT^u0~Tu~ ze1WT}J@Cxz#S4+W<-F3uMZ)ppL+Y*t_=#y=Bkl|NNzxgch&=2Eok9ehfQrcA{A}t^ zPw;yvOo-o0E3x%`l=3q7o7WFemAt}E5V>`$GA=HH0jxFFY+wSYRDG3A{L*I-r=B0% zQ(-u?Z{C98^Ak>v=0a4coce^w-C?-3l#$y{Vnbdv1$pY(dxtmBu)r--%BVBl)^nYD z?{B+glEH0@b~>_jwO*N8PJNFvnbJYZ71(Q2*P2e$Bs%+M?sLsP_GfKcoD?$WFHU%735T%q*-Q=mF8e+%Mzyp_M zSHf^rrXg1b(dc;jV6oy58vw|7F&L}Z){x||IIbrTnunHK9DqD)M&naOY|^^A3|*J} z?$*C3odBy1XIdU4(uPRrFUnD!DmSl8vfF;dujOx}HY0GyyNfq5N$2LXj)s}V);riJ zc|b55+}v9^)s#yd6%K9_ZUPn6qCE&9o1zT$+IRgqO~kIjP!No#ZxZ=5W(s= zSR+5p4e=zkf8~PEZ+!IM_Cu1j+H{rrHYii(1CY!U-D({{2jBlEfdvoq-|hJH>`x^@ zL>1mkna#8Ez<`00fE@K@@-}ZPOWf)y#4FWPqNl}mXXHTdlfhCinvi=WUby<>$p!n` z{rS2TPbP8D+*e7fXo@k&{%lO&HbXmVDx`&#Wnls{ma1+|E%dYB<+*D<#911(l^>081A1FE6@8X8h89Z|T-il-&?R-D;nu(`;&WCP!lm z$)48t#igYN&2C#6*xzF3O$SHFW&u6qbLmkNZn>Bi)9iUC7^=j zcuRmf65g#s>Bs2Rwp#je@$Wh(L$}GqW_?9%l3^!9k8!ND0q{NUS}INnF6nz0Tk$m7 z?H7UOauvjKM{2$%ZG(!0>UGp1APUZzLUD_rJb0g7KZ?Em&Hl?(-E0j)f)0gL@88u6 zsUU3+dFS}SVy7V?L?S(}N5u2iQ4yN+rFrUaPsXL5y7o?_Szir_9p(9qsDc%=FkAi9 zA#*F)09pAE&ctbxh=02eh#SYX5741`tte48ubZazAd*x$lOtNz{vyDuql&kTZ<;CX z!^R&Cq6IC04YJx>O~{5Sq|o*I4$J#OM$C1WTj?k=4iRv^dQj5LLd%CbDJoj1Phzzw zDyCw~*xF1QBj&_Y%Ws=2rjuIJQ3t^^XQS*skaB6|94J!km2#4VBj>}+yp_le;~=YH(0rpj^eAbsdt!*|ayEWCXAQQXV@;o1@JzAQhM$8Cp zZ(@QUH(QjPql}wXs-u+Fk~kZ!n#jZb%lbMmDF6rAS-WEV8mSmx+Us<@KQVZ2*h4x_ zm5E)b0GPtE=Ja%I4vKK=Pf zM6b)Mgm4$+%Efi#lRHy?sN4C6KAjVHWd0NUmi6K*xMig^k;qfO?9VrPrV-b{9@TV2 zMBbvGs}sNka0=2?w&7T5E}0rz=1ehy!HnhkY}AJ*1Rjpzi_^a2!Nn6F-q0<7l}dhC zxOF|+WDW(N{WgY>1D}7%AqR#Qe|?n0Z}hZalB$NsV(wDG)}41O)9A1StxUg+Ep5+T zl49F*o|clpQ;Mv{aq5wuK17vMDxuFGBwN;52JN0)p9vzjvY+IIg`M8|lh#4WfDcOr zm*4tZqqV@Q3lIIzm!uw+X@)~OLrS8dXhYeNucZ>JtL9tOr?Ai<(A$qJ9AC75b0KHQ z4=P}Gc=##5#yClL)#QkG-k4pXb?z*`!8|u1)rI0<93BOspji4^lxoZI;4whOQJb`y z0CJ|QE1`2}R26!I&r0`P$5~Zh7h6H0HaCK`=2J#&tIx-8S(m=o(z0rvdf|^!{eHz7 zA}1u~wCv`{Zcdn~SYR?v;69fI;6@T+W8*Cx?;9FxpCqX*f)9G#O#``uTE#9!GHeK*l6+qu)(8S4avQd zKIfO!!Ngq#I;oGFWd=WP38q)#- z+tb23w7A+igxu)+1y%g;`TQRS1fiLAwLQ`T_mU06hkMOAfhVJAb0aw8Y>^Pf@P>ka z8Dkj{KQ&1`Z~;An&c_Z)i*56CIQJx~D{FZkGv}0O%wfE!5A(%^LUR(<(-@~zQ$zt- zU}M4##-$#&ohCnG!M#M!Ty;dBJ{m5QK&p5~7T6|lzLy%L*KyvgN*i~)09lKajbUaQ zk;~`?mhl2GitImMp~O3&fg1gLC}R4r)s|In%5`E;llYU4POemyFWiFzDvs-AL#6i*d@DiI>EEUHea z4Wm~RN#|_$+M77_ksPN!@8?hH2MpT3He)8RuPqNlF)Pr^9L6 z5%2ni`qLj?$!fv2m)s@xPtTtiYO4BdO=cicGcQ%mSp(JioS#LsX)g~a4~umey3#Ui zi}NGDZ^8C_c^Y&W*!z_kE!Z4-x7{VHcW51K6u5sq1=0+(--xwwi8QhV+1bxi09=go z(h+K;NA5grcr0G>`5692?u)mYX?hYnl^9l)=HDxLpr z9VCCKQ3t(g{0~ukTRxDUwYr%yq-fFfr)P)nT@1{a&nO`HoTu+!-|ZcG$N7ltn4LV) zkwH@EK$!nHVmB!e2jzqImXvbx-TLNl5x^P>M{;weHUVL_dTb;pUFjI^`o^vB>y6Er zS$XDTWRxDwO*uZb8oYX~tbfRXa05@QxDiN}CoeI)(s)*f1q5c*h&o(`8gGR*Iovc{dBd z&z{cnuK?Nl7B@d3(o_*a`&8&NtX*3qG{zL9+FlJ6Bpdo;O{Mr!K3L3=ThF~=F8ege z6sRr!(bhkUg9oV#QsusrWJUYc1E73bNW=sc#LOG+Ulq2fplJl$jtWY&3sna`VpA2* z`#txTVWZ>62URBFhJD*^2s6_jmMAPS3nTG+*E7K~3QYZSiVRi7vhz^C zFK=ZMFJ;U}xit@(;@Y??HT$gPuUls~!~%4@%{nfuA~xacsmbP}_~`f>#X?+*PWNfQ zps{Al0O2 zNeGSj%9O_Kn}Y0sR{EAZZ1hJ-DNZdf6T2(*B}AlljswScp;LD=0l&N1lOh^}sS=;& z_W%VTrZCV=R0bM4lthbnBdpG7X-$auCov++1i6(D+LO%9I=wY&OD*-M6Fmg*W2p5I z|8*@Cwj<1CzY$j8+0kB;#789l+5r>LQ|#k1l%>U!@Mq1ZxWQdnf}21@!ed2#1P-Og z+_r@B8~o=py^bUj?mc5*pv>4UH=;MG@_en~c`lt?UPKa#A6?+6Z<;le`}W3*fVOMA zl%qrV&RtUz%-ZR7>I)MFwa!OH@S9*}#ZJMsFZPsD3eRtAqx2AwvvPk1(pkU$B>fB6 zm8ayaQu3_;=L#_fgqmI;Bhg}~lG_HRhpQ#@1!9{heLqfkB|@mMAyFEuf!^T!54NQz zen*6WlNOUr5%!yyUvJ610DuzuTxVSfcR@zgX{LJwU%ARydXPUq$wg7VRd(NoRpFu) zYj?3|MWACjuAyUra;CZMR10Gu9hL2|%h;IIhMuL^Hp+(+t89b|Vumg^r}4nR&{o}= zN~r^Q3WgRx;R1^7)u>X#(trAn<8|1W)XIm;1fsXzo%)rmjeL76d$Hzg>9!`BqH<@< z18lDZJTwKtX7EzqXlqfT>cI9oQy{j=$BX(N^Zako{nS=jM+g5zw zb}QZ|twIE!pea$1&V;~d^^j;_w4e_ow*z*#vsFSbr$DD`m{a1~C_pO*CU}l?_4B1Jo2WDvj-+w74lNO!Xozshh&Ey_Azv zM*Li*VW!lwpBvf#0Gz#}6)YjQR*F#W0}+a${*c_#@fJ^K=9ASo`G0pUNl+$ZjyQNJ zN^f(BNB#0By%y2l4t5r6k9cz7Kmc!V5T1kbHDN`*B#+YL#Hzt)sUBU-tP1zG%1mu} zB4jXX1V~W*iVoZB6QcV`j#)?iMej$UQY4`v=&Qscp?LzG z@#APC{i&_2OGtUs=6%ioC*|==n3w`Vl=py|@IbRGw*9;fcLr zg;JXD#Xar1IqqjME(&PPkt8}MO<~)g`~2@M>)-nP&5nEs8p6sH(lQG{rbf;GpLkpz zCX*PnEsoA3pr66Rxxx``BW6@mxU-fRR zA<{=OW)QNv-tT)PY+D$IMLR8U4i+eTd(~MW zYA}G#yXNvwy{kKqveF6 zC|SxjN0JzfrHrkq2xV%Okf z=lxM@LA$EApl|W3Sm4XxO^^pRE#CCXNr_OH2CeJ5Hn%{G#!hlC1KiY|ML*kDp9nmo z4xH4GQQ#lwDfOqwT!gnA1Wswfa#GG9*4sIkBqW!kB;SSQ$Ybb6Pj4AyC$)lCA+E9Si&W`|SWMMGQ}?GJ7cZ zuSZhIQOJ8*N35&BH&U`QOJr^&1m@gztTcOI$^doJJS1UZPK=}v1FCuRz3c4eyctVQ zK&)P_Cf~ZlHGF=^QO5K6Ic~B?sIV%u9P+!b*NOf{`)4?V=QkYpMc8HB5 z(A3SW3R`vjLc4g?I*otu87Z+Dip%>~%7g5q@$~<;e-%h=C-TJhLZ$o3mr7{+wuEF?7Idmq2SQI`n1v4UA zqqAz$4@kE&YqDqVhF58|;#d8@Z{5ewXd9G*jsV5@b@ZIIUc?Pffc^kbCI9xxS`if; z8$!_M;(1`3FmVqgpUvVK5w&CzPwB`txXeN=pD*fMNWPE*8qbZWUshnyK?? zqB*GJLCZm>r;eq*tN%5_Ju6ypO#j@fP=u?aSm?dM=g&~wUX-_$!B}&{I4tcOpv()1 zDWE=d!hoUQWzEJtt?zC27xne`_;O~^X0-M#P2i|rV0)({`}#F+ zGPWNtRg)e<&#ANU8<1a&zFGV$Ki8|dKLh5yy(3@Tdvet6DXKAnEL*BMpFyPhMi=vl z--v#fzBL`U3nK!c&JRKheb#Rme$e-jnbJ3$&O_rkb`rz(yz)l5NijzNCy36&{B*fm zzY*Q=LLf+IS0D%azVC-3Sc-M#P+k}FimJG0*QH!i-H(prm;uaPy3C4MjwdH z^gKvc)BF}loc^BQ9oyyHoNk2W>j5>kk+ya#%!X9ow-<3irw0lcOX+=} znKlgDgceBBhRCc?CIJl9toLp@+=>1IIeNz>IaY&LMvfa%5g!_1ZPg#*Z7P9}Chp{Q zZuzB9HN}EneLZZeeCQZYHOAMI$JrACS$?s&pkG=bcOFo`m%&G~Vkfuwkh(^Bgumc&}(A7k6la!UL3h=R^`x23Q9J(gn zrs1SCxmSdZAnp{fj&EY4PJc}3JXK0WRRC^Mn4SO5#eX~t1S!#V-}q=Ym=D8MCVtd}im5c1*0ejs2lOvcn`Ceg+Za8^ErwSi-aGKcCr) zi|fkQDal^Z)LtEjqAbFnB(8O!J(*od9Ll1#;aQ5kkzETf4OL@hIAmo6i?7PQKR`(HTJS-4dRcihr zAg7qJJdvm(nU=U9$UbSw;wl9q+lJ8{vcXC=agH(g`5tl8q#MUWE4pURd4m#m2=cP+U zKOXGd$Jb=b#hmV=^xfV0?r)?Z6@7p2xmz=rj6j$wnE8^n|F_ISQcY36_jKbJKC6h; zUn8n;0bjM?g@5-~jzhhtwo#OeUy|W&e`r;(b1FgNY5%rq_-fQmi0bJmQ@IkUFO11H z-1XnBp85o~w0fGe*I)GP%>+&g`aFafx^Y~(Jlr(N-qjX`=}}#Hkqb&>xLk^sm~>7{ z#;b)*X_^te`!Qe46*x7s4*RB~Up5!SD6`Jo&w{fNc$_sJh>#jxbM-X!|5H6JN)OE6 zp_X%Y1f-xN#>2KhyWv+)(|`C+s;6)9tEYx_Rf-;`{5`vrfSftn&sRS8a;-Uc;bpa> zJZ<4pDxEfbNiOa{)01j=|g;f&ILecMJSEM+N*jhZz}<^`lb~-gd!bHlBm^ z=L|y9r3pw;R=1y&s#2<5K*jJBvncQ<2jeLM;gVVq!ZRrN+>&>vxBTAz^G`p$Z)>0l zOAEC04^bQxUpF*6ZH!O6(&?b8ZzaZ8CXJN041PyXlJgR z2gwJ9{tyt0L+jR6d@%Kk7J#Ys`KPs{;8KY}$+ukZ#pw@!I;tKIML8OVtTdxL2$b(4cgS3Yv=*0GT&ODN{yH;(=tiS@k`-%^xRlXIP;5hC8l2S*aYJdDuK{! z3Vf`El9{1$pU}2vO#tbTM#5Z@KAvd7DHR1koq3^l$dgC+#ewIxX-dyKJZ4n20!Nn$ z(po23WCr0!Kx7F=KzKM$Cej;)4|E5giz4D~+O-K5si(#= z6V;BY8m}pvGUP<)7hw|l$NST^LVck82wyJVYU?_YdKS8ah9|Z0jjQs>yHX4^=5Rxi z!pRl-_7bY|rH@RYG4NfONxN2H$*E5fOAI@&?44Bv4WH+fWPdu&YNk z8@oeA9%+~*8%@8Bp8{P@8&#U?@0n|lUC$E)-vViBq(f=8P*^N=Hym-EQLQlEecXBK z31ssh?mip+a3IK#=k*E{Bo;Cylw<7R4=cYHji@vN3Gh&2LI{$z`{nKRBFdiwE&Y)5 zF;(wC*$45mn91g6C3DeA;Jk^0~Ts7rN>T{zh?FM2&#d%x}1 zwOfB}yu)fK?y_Uy9mG%HM`|fhi3#ZL^QY7gl22$2i%RF8_~~tmKZ^09x{r1{ym*~x zp5C~jC~uVd%xU$3*V-K~P}(sfnj*I#Q(5zDtkFmQ^c^fJe|9 zUiwVy;4667$DP<76uX(SMlnktt)4=@UzHag;C92R2+&ItxbVtZqU1cMk<~uH9>@-* zHOG}sO8Pm-Yir@I!+l-~>Kh}Av!s#EQy>#eh0*sq*4AodI3=2l6|Ye+aK?xE=+OA3 zJ>$1ib-0p;5~K8CKByWVrX?^S^quf5E0izYSH-uouehy&MwGic5XEZQ-&vt#)~_{R z9ZQyJYIIaU^=?+1mP27o^V_d~d~2h4MeOLV0)dpX3(2r>G?r-0x4l228cM;oc1qoI&1AN0--geL4OH*x-V8 zJJRtNzPA^c&+E*MEkuEfC%xXf!%M*JNY_yAfrIQVl*n{o`E3UNXf!&4`teK=!BJA| zDPB=`=np=4rlI!!v?&j~gvtEQ*U9PYA|CBJXFyml-FDxFw^!S@_MUyk%7i zwil~%nW^J><34W>jAhXbv?vgHkJn#giF;s__knMK--1zI?D~>y#26cOk0;&zu1e9B z27XRC%4ZZY`a3MpP|im@-I1oVllW%&iz?c0ww@PJr(!b)Rjv8X>3`o$T$Lc5;P0)VHRfTFZ=FTSF*ZkE)4 z%z7-agkQrEi4e|`&O0N}3YqlitBhoU&n}*yZ{~I}wBSdeHu3yf5m5Z-!oh)r_WPmI zjk$8->!!CE($xzW1(kk(Wn%8!PTI~!`|KlnbVVysMZl?K>KBh;V=oDwn6zP6SY0oHwcvB3$E_(VnVYTcDo3v4ht}aBM zg9uBAhtW!&mOa}CRVH98Os^Z0a9v$0-gtfNG&0JNd7Cci@+6>ml)a+AC+1VN}Vc zEEgV3m(%MTMfu8oJ}`;?@n&<<!KS6X|TtcC<;c!9{{AaMsi&0|Nk92vC0R;DdNEQ zye{nx^xC~xjT+yuAH_(BRs0kftA>l|`?mhzCqIi=((o)l+2}zQk`+AA9@?m&_vQsz zP2oX%wy%nQvF6MiWL>)g@t+`15yua(Y0F{}PLd=s2++HpCdYN?@FYp9ZTrMQ zv!&SQ?m%a$KTb~&6jaIP$0a&Dm44@t*xinKB=4ZnbveTF+>qN7nvrU|1@MSbd1hcx zOHi3Tq$nuKHr(uhV|iA5GOJSXwFGO2Fe507o6`|-XJGyX(q)vRzZxkRKUs9jb6I$9 zMZ8*ws@kmw3~NDP6!5etU5=67t7LjccEXpiSsxpE z56=Y9c*W|BbbM~8;b*VL4j(hWtPi=L`S)!7pRz6NAu;5QF?D@5D=7nWf_Uv8u zWN>NS^@jGRUtA9AZM%XVmoZtlpx3kTkhslVra0Qv$G1P@=JFk+E&wiiKi*3*jMqa5 znPk>1l51n*1l5BKT+3#Am4!rDShH~|kv@#*izyA8SB1*ER@f7Ewx$dPNOM!#^!;k$&5s?a>LfEU$8kKz`h9zjUK`wuFo4nV^|C-Hk)L}2J~JfeAWZ{^ zp|RRsLEGjQl=rCi;rlb3mmhpjxxb4(oD1T5mEJHu&e8R98qDk#U$r$TmdAC^wAz5w zxc+|ojkVjdrdC@pR$4GLlIfUGF4mjhuyR`_s;$OcKnK6z?x1R)K1%C%?U4BTEqUYT z^)8}3GwKMl3F#n`yWQf++e(TL_xqi-a-xuSmQC%dsVb>fn&&=&A_^kY?aTRjM$Bn7 zBz?Tzv~yb@@`XEPb}h3YsE(jOTn-|+x$H7?c3kY(>H6I01zlexX1UZp`;46^boc|q zezgdXqHv-wh9sGAo4mJIPFS&1xZ^qEmHx!UHNQ#)EeI6PviQnt33!<@7c`~#L~2BK zKKnz=UHWLh%!A-;jTPeBG6}r(0r-QE>6}v;*EinL60eH9PH4UBcf2@IMjq6K)rW)Z z$?Otn>DTp~U%%}v+2?&ezQUYxD&FW8EW%AMDZ5oFBVn!@zJ9eeP|}e;xw_e9R(mhr z#V~R^)I|l^?;mz|K{sKhYryAXe0bUVSJ?0}h9O7s`>Z}bmFmgd*{+RYHr}Bqof~xaDT!<@r+q?g4SBedcEdHw6f^vtt z*wg-!MkvvV&0-jKUw^`?t%5ca!h96}bFe5r5hw)v3un2ld!8ZJ9hi)&%Q@1pbLOQo zz8lZdj+v*I53^gFM*wAiy82?IdA;hx&@n@97-3C1w|Y*U)FNnl`bUu{Y+odSd>`<44hGIxE>`)~zz9 zK-{=5a&Nvd?OJcn5DdT=LeDCJuEdM>m~GZ}D!3HT`CAZ9FAX4TaZrvEDLqgBKGR%w z(xkYby+xmLXlP03ZK+Fa=zaaB7Xq)1=*8w{_WSx%+gUYdm~)B9j*7#y@ML#jW|{NB z%uGOe$11<_Mt2h&U=UK{HEj%l)Ob3n`c(%X+*r*UB*6#e=0Lv6`9lz+V`}xT!YrhMZ?3lawoZ(tdIrBg{qlOzx2fYs z;-u>4jJzsOW@`!#9Xl_xlIim9)iCL(0C>wcZzVb}?857YQ0vxn=|Vp8#z*s>!>H-y zv9Ii^6}V%L)SrU9B9csx3>7Y@^xnUaXq*QzDBd2*JB9o5MI_u`E$>^s_QA=YOS1)h z_jDDhnB-Wk(Dw`w023)EJh7KEgOu(unhK)~CvDg}yV9n8uv$tWCudx%705AYbY0P8 zL%yRvwhz-W+OvW%vpzC#I(M%|Zb~;PDDXr#=^f z-ZoS3{&VUv(PSBGam{$US{@wrf&)(oN1>}c)u=QZ<=aDO?G=UY)rvM#kGp-lSkUTV zxPDg<2Ovk~JE^CN1@pjo>BlP(pi=z-s7AMdXJxbrK`=_T>1yZ(&QX`xwi3*Gyl_Pv*ULgpYw&m*5u4pDU5q>X2d z7{toaTvP6qH|V(QvUlWcC(JuTj*%o!JYn-%GTyj{7;m6={lI-6BoNn>ch^sT@KFra zi@dwuZIeM8w3`;SD<`KaLN#;3)S64aTf}W5N6*%*OID74ou?_;?3EaUN5X+|O{aC^ z4xf|U?kd#QTg`MeK~~3vW}VjfHPM&$wiW`zUzR0MCX;D}P%NVQEl%OQvUtpV0;0R@ zF)u^T^URz9J@TARttgcVM}{axv=%GZR$D;f&2WRSSwvz{<{vSP?6A3D^=i+apzgk6 z^JLIt3KG6-f6#Z+n|(4L-0x;-Zy_3%2TjXzG(3uwU_loHP{qR7rbjsoarIvrR;^p0 z6|r9B<1~p;-(An-Re)V{(>Ktw)*!1+7#Fx~$)FMu)o1AEAmVrjS)JamalaV~a%` z&ZhB;MM7Ayi0#>QISipt#lfoF<~evhDI!#Ox+#ddCdDG?WA(jXN2ZwC3Zkwti>Y%t zMPgK>gfn9Kkup4spH*deA$sF1)St4(+k`y{PhW|HF5UXBn|<%FK>N*9Q`Q=0$FVXz znh~CQz)Q+4WE;mQ30eb>sEni{Epsfqt!F>!L0g*k!)+c=JsabrE*p^BQvd~82YpLgr8#Op~B&MliBzv4e& zz5PX0E!FHV;Oq97yjUbKjA2?+nro>LefOg({D*la`_ZA&!#D)uPh(GE7gJl43s|>< z(8-(fP<#!-ni?H6)2P(Ln*-Et|6_yCwBc1g;?;?_Hgq@>E70@Gx6KI5k4RBl`XmBE z9gpuGFOxzUv6NN>@p|>zIe9|`E0YAx1CVj=rYcxyHr(Sx{d6_or1Bj>O<`7TR~do$ zc-d6>=rNtQg?th*FPrm$oZbyo$hK?P!AQgmdu$6dWSio~JL;_&v6On-@#2kTA6D#L zkJE|Xc5bnVX9})Tr%ijDCLauS#esEF-EGo8fx=)N-!%9do|NFKPoY(pc_=VBq7~}3 z{%i~_;9|cGuxO!PIDSzvv8a|TN)E3Uy2hq{0a@_Tbra!~^}%NoF?oVcKQ0*TZ2o5< z4iQI@yQ+CN^St?J$7@bI^JU{#|G}pGWi0-t^xuuYDbLUR=bJLC^S`kv^Jn63%7q7c zHsxzl84g9%FZ2bqx72g~lMAO(C@5hUvISnWVvdg!d~GM4YHy%QolrL~0I{L_M2g_v z;U|?WG+4<}T63uV24zI1vS#d4VrX_I0p;04ELErdF=1Nj-GKb~uhA-RzbB?j7L6mt( z@YS>yby_#q5D}T}wf<5~(_JbEbY#*&NBxBgFL8{1HTS0d9<>I={Qx7Z+i1`AKW9;PD|hyJS`NrjRLXp2X(v;tdB!J^MYfXbeT zxSzzyFR_p*6&2UiQqeR!9EO;!x=V+bG+y^_TEJUEeYhCp6{f_O)o(k|=*dTov?>8y zB7}$y)dXF!jlXd)sy2!a(CBdR6D_y>a)!Y8Z`p)k5!L{}&0*`(V;S<69lQr>#A?}Y zfMKDY3`$7|ae{FR7G=nB2e1!Um&*7)e$t?2{^LlDt5s=mwFR6XqtY+{T4yNL>Lc9- zS3)<);g<;d_)RZ}BtmoTe*TFq=`-qW3fJa85qIunO2>XH6Th7O5{1Iys2WdRlWFmQ zG0rkbkPBxIN(S~aHqGC)aNsdMDl;wrce$J-Ye8Z)^R{UwndG6qGOgzBX4(3%*y$f^ z&B-HdeQ2m=h}peNZl|7rf>Q#=+q?DJ(6WkhyA!oT9;QyvEOYelks;Uowq#LQgafGs zO{FQf@taD$sw8Pg$Z(+|RP-9m7TjHfEp{Ty06fR}@<$8N4RAV~r@xf!d%sc!^Vl2$?#vgzjQ%_O z@o&+m0TqNP9BZewF~}XWv5i-(vuTQ+fL+FB`pc})GDw@LV;mOg!ig`Sk{ht4^H+Vw z?#>G3@hhob;qRukGf2f5=n*BnO+b29DC#15X{1@E+JrhZz+~@~Iyrz%;3}?;!sG z&_I)|q?B(c5OIG$YP4$h&=5cF=_GzeHOJAETcrjT%O!4k#St$ugp<)IoDro zN@SSow^yKw1rUUN2=s|N1LCEAI*TM~9tuGaPzbI0`vUM|;O?bk$G|=9P$Ju4%*irW zqBYe599|LhIG!egvVaFaedgr_;b#P5;F?}4Z74(yxn|i>$(m!Lk#AkUftJ1j(kEWI z?39E$d!VI{p5=$97l@&|Qaj2?y^zi6(T$q?;TZvlhr9jJQ-Ss|Jn_Vo5rE9!oFL`* zVz3Gx>t#PmG)pPq>8rr8D_7n1=YComQHz;YQT$}E^BOJ;$^$VKdews7(xv&``^+DP z6?R=xnr=h~HPEraNkf|Rw;(QqbEW5v&}cXAWk6K;O~xypyTKRI=;@#X>SU#sHTQ~H zn2op8{ZWumoQV21tIG-@O)45r#ItNmZPM?D1HBG*E>7-{eth(tcay&75iCdj1%`55 zE(z4yv;30AGh+_rvgU)K96^)i)0Jkj=h5kjX>uhJ{>?o{A%)G=iRp6OT--B@N@P%+ zmW7e#uEuKop)B-jju@(552tYo`%x%y}XO~bLh z%cqF|z#uqk@yw=ET*fkVB0>xAO&y588xx{yA1gzjh>$JM^t&Sx(_=b4kb+)#C7MU2O?Z@ZMipq38}QLWu`814t!g*=VA4 zReNd0IfX}p?2I!4p^Q!COfaB9LyLHV6I;L&bor~RnISbty*@YRmi7WX$>dvU%MLwB^0CS89w>i{Wyp7+NJ&mP=3jZ2t*qY z`WrOfVIKNsb))e~`VGe=+%_zcK*k*+S2Puhc|Sh{X2YT3oD~UTbCZ43!-GoRI5hU*-bWN z8MSgVO@>GR0qS>bp>L}JJ*InQVR?I$M|QZVH4X9-JhkJjUA&x>3~-u(5O+v(4xC*u zY7#&$Ktl&xkO27)(UJOJn9_~693KHWx@%m1iL5`jYEg}nA$<^5&Sq5>e1C197Rrv2Xfh4|1*?Bd!rcbLk^Qd1h+oBpe1CvVy%-VI{B@7?aFeckk6ad^ zj>FLuo$&PQ!OoiEG1atnI6NGpS-kGIkuAw)ob%@+JuDcGjYHIk@0LZ-{T0FOxv}X> z*79!!+!9gBa8mkZU2a!VJA^{qF>z}(?e|`y(^==TWcCn}4o*;r6i&}4jWD1lPmRl_G3m#3)!np+TCJxZP~$AaMu zNOX;}#NU+Hy#A9-Ibb~grtEYYe^W;1V{b}xwZJ<=`^lQF<(8C2osQzu1*3n#rwiWn zr|E*3k$0YJ%yk1~d>iD_?|8NH3og~Q2S|#>Z7c0xSt4V?2H7|4cMxWR&SbT^v$o2D zB*4Y(A5qx@rEH`{&D3n#M0M#C)+l}JNHr7_GOyaa9{_xi57kuk>$T|wW-WEKMi$1SN>hD$eW(j%>WR8=O{P98drRAoj?QPo8HCsQuo&Kv{_u$g zZD@E|?T`$*qAD}jt+nH(X>5oO*QN!jjWR|L+z{{3=t|eKjIGqVxKiQdf6Y+oY0ESs z@F0;sAdc^O6v{3wzz2ER?T_Fr@-AO+&9vIb7|$*}Y5j>HN&u(n!d!HjA`yEGz9)6Z zIj$!qSdDnyT2nFQ>T@~B5YBKWiaH)$DuhNk`l|u$s{Gi#Rl{DsSFl?_VySH9SRl;Y z^=jhnj~#ghaFOS)%5!y$0ED|%T0q~IDsF5>jaxpVb3&cdY2#X*I(WWuaXkjnikVm zsFI_6T6KBM=h%Uk$J;NYL-Y5KBEz;E4JzmAGU{E#xXAT|j)->appQqWH)`$sw9E+* zWL)egMc%G<={}s78LXn8F0*0#9UPaLL-#{L_KduMzNMz$Z-by0`FDLT<>k6IdJ<{t z%GR{|-YjXZ6HiPobTch7N{)hV1_`}N&wkI4JfP$8W!Kl2vPcKw0w1vC zag#@E&Ia+y#-W=bYEOp4^AhHXsanX-eyuy?5}tItwMT|rK(-HtrSBJl_>M8Z z`IX9Mv1zenk1HS@A1y{B5roIBMWs6nY=lZ!sKswEdrE5i%qJR({p7@T7BUO ze0@mVv%qC+wU6l$&ABiAzi-{gk35_v4ci^W<+?&&KfrYf4OfiXTOxILayEt@_^Myu zkIi<&5$+Q|Jq93TP)i>j@b>1wFH)+ag_eH(maxV<7Lc&TjhNDRpF6x-p%e*h{m5cP zHQdWyZ!_d1^cuRHUIwAkZmyy5NtbSZyPS)+OpMKzCg6tb-G3v&Z87a!Q2VcNyK>({ z>>>(`@{ks!oGqfH;KLG?r0``=OzKEMO2mCrGsDe98l7g3G%Woo9J1QSiAL%-+ed_S zy3LcNVS3Nl%qzNLm%{p}t!F2ViJ1g`8$ix3o($6>ILO-ESZS`Kk9~kJJy}gC%=b&f zv?v6%0A&&QO9tNSW|q%WM=>S5kA>W9d`Z_ZEk+{G&e19vcNK)zFXTFW?rTUJvWSbk zi$JuXU6n&R?HnhiUxA!_u9N}tM5u_|b?=k}7qgi3sz8jQ-HmnF8BgXqu+nHDbAThO zD5L1XQdvbCRZ}Zv!PYTW>3gwbOu@N+ zLF;rmo~v@Y$3y2583vz%AVAwJpI2p}Ayb~{JvhW~I!WgW)SXQlh3voL)DNcW#&Z-x8%8pAq!|>sz7sNa^U{vvBAB);>J!%5u%pZ zybG+d;4fd9N#$ylm`si~cnq{E`jj4)^jXm94onBgazi`INRVkz+ z-*_<32D4lXUFbl}V?#pSOXVdpT%GA7OWNv8ww6Fo&^Rs%85cMVlh1s$tVewNB_i*{ zn`;)@$IrOCkl$;2c}$v|stHVZn;PIUE<92qLok17n>p;YeZ>ThH{OD|>`Kx^*CJI_ z1+J+w%k|H0zl#4Hpah>nOFtTU6Pu1ajIXLVSSt;%^&)ktm{<*re z?4+h$-;y$D)dc)9XylLhWzg68*kur<1ZUdd%Mu^NF9{|wDC>zX_?$a;E-YJ8KGN|( zbJ_6IT>z&W_l^5apWz)%H40(W2)$huRSgO!%*lc8z!`Qrtp$)2jGkh50|}_Up#ZX$ z>~B;C`ouW_khSbUKj$S)X@1doN5Dg1wz`)sV{Dr{{?#|UXuqj;qSm;k%7alsJ!}oB zgwt#0tQZMBH>9GCHHuTsNh0ON6APTr2)GEE%9-E4CgT;YOhu`JZ}>O)G0w8ej1Sn# zROixcpw3imtJ?BEK!*?6dbLrM^Dj0t25NL_yiUzwUwg|AFS`C3EB zK1D#_0;rwYM;*af_AAf8~yJ~JZH6VgS8c+=$Eo*+Y&5H>I;f}@u=_M~;=)-*|7jp2dnLFc98W4@jZFO^{+_(;djoN6X0 zmw8D*@5^|WK8PHXHUV%Fu=r{JepPPR=*E!DkwbuHHb=SXr4HTP_;jjT!c7>04#&nD zeoa(-gjZTvkknI-_D8uGwqnMt+9NcGn}^!1^IR~NQ}YAw-U-xKhpp|4Mw6^Mlwcy|9t zGW6Y%eN2Q5%l6<}?nmzr7ExXukf1=P+=TQ`%;b`^cP;yXUr+t?QLN00wd{xf`b5SR zg`IecTKliTbK=Lf_tXOKUHfLpahVfOrj>HtI_OwInszS#yCf~tQh&c^y`^$l!#Om?wzV=X_U4 zA-Qrwm=^C}3zm@-f9PuFwdHd0kx}jZ-C<12%%aT~I5yy&{lc_RRvMeOh?g%?hD0n? zfJkuqmFPi7mqnD>IU6hS96VZzl?OltIhQ#qoT`_HX+fPI=nu!-mA(%27cl+M%?y`Q z?eAXStwcsR+<;IX>il?ig(xBPn#I*q0Pz0#^@~M#n6ESOH#5@Y2!%FEn(Dr*t(E{A*LIi-zXZ;CNwE;IVuxO;X+>}O4r61A>K=-zb` z?Wdg=aNmhnQ?hxF*Ix~GCg-Ud>sb0Cv3{_mizO*ht7#9(c2W1ZbxxP&-LVl?1LqMP z`nn;6%?HpD9419V&zy0jD7V7&*s$v}?yo%5w(*t#OgFI+sFZIHR2z_>W4MYp9>bsL zUHw(O6H3kF6D(^IIVpAfGNm^1V@FGUS3>3`Fr=%sV@@W;A0W%x?(a7b{-^5@iAc!= z!eAO?yl`@Td>||LL7N{bka0Wx<{8pR!uY7^Y>e`7rp59dFQJU5D9gg4&mF6L`qd>o z(B@ZA5M$)R`X2&u85JINp8TAz#?eeGS~aMVfOuDz$n3*S!ZXy zVNU^OHW!FXkU>;jzT6D$aBT$Su6_$V9Nl%8OsT9Tu}RHs+mO(%CM)Lo+UUu-5Xb~D zB7&-!je==5{e<2roI^E-CnM@1im|y~m_oT51nH+s1Q(TCA-VKyv zf)1d2*+tn~BCutRFZbx*TrA|WWF{eRyE@q7V&v`PMjTF)lfHl)M#XsPmz7a+L%IRzP^*=v-pO?ty{t2RD4g7>8RLLuJsuZ?2Y$xcCoxHV>-UE}P zP@Ht*QAvS@{w}B)R)Yx(a8MCUwD(X}e<`e6-dnybf^qq<-Y?{TT(afhYq*&Z_r1Ct?xt>;uCY56z>QkBerw;w zk`DG0YDR6P8S3f=T(Cf{|9;3qrw2ou;uY+xg2+m{FO8risZP9l)S^ULL0r?9H+soD z#!lK7Vk^*%DtBx6kp#zBpsHAvtGopm<6r#oiK%|kft1dvelOgLrQHgJ+e#b9kp54L zDi92f+l=CD&lj4)?w#0X6ie_%b)tY&TTz1_d3_h0sa;uaE%GE>sb@a*@ACJvc#=AXSKas;nTvPk*~d{~C7Sb2mBd*R_N; z>6r7sT?1S$-XJ?lDofvF%SCoP%4EK+Zb4*6-vTigaEBiLdG1*(qH=DarGN0vcs8-% zUI+z9DePAy#tZ968u)$v-Ht!k#wc5`N;b`z*-{RhMo($fVIwQp_P>Uyu))m35`%eo zBDUKni?MB$lfDWN(T0DdfDoF>&!QtMKE?{{`ZNCNfoCF)VzGhzGu)&!{WEC*6myT* z^|_a)NpmNNS80qrgLZvAXxjil`?n=B4b>=g*R#=Q0>P6be2Ujq`7qJ|2+@L&QF$$p z2YSW4D^}RhN)%9dZ`O7#xOBF^3Dx*s+*yf8QD$TQex|AHz??;+eVha+LT{a~0!}yX z2|a?ff1^FHRP#A2McI57n9{Oi!U=|!9$qwgE7k%f>1P^H$33nKGytI#?8MyzZG8sg zio_S@g=_CC3Wr+&YgE<|Tu!_19bt=GJb7=XCwTxrN3ts2jZ8l}s$q1gOlWOZOTdh= zU+bWA3^yMIQC;`-lvdkvyPLH`C^kY!!re@66#VU@Z5UFjVE@^2=He=Bj&VHpj_z=@ z0Gnf6Rk&CrK}T>9qDW|pKVb9Hw`ncp7$^U#&M~I{0Qy!8x`gEzHxJF@M}5s7;7`-{ z(4QabgPvGWEEY~NBvj%lZEG9?u-Wk#W@mzwn!EH)i`emZk|duLJykpscMUf?M3+bV zSRVmVaUhI5WWe^C@jh1ZxqGMbv*RJBXGCs_gzo<AK-#fPQG}y6T5A81;bB5 za32Q@yAp`4aoRgt>W|0y8fAUwxP+U$jOc*cjyL+cR$~!mX|XrZ5Dexl=muyD;$!D7 zuk!g{t4^vG+m9XRH|(dt@s8tP&875pH){P6?0B@xUN1OZuH*v%P5`2Q-3diFu86}% zeJy-hgk3}3t6d`M>+kU;aw@7Kg&q*GrgfTJGp$Eu>U4b!YfvF$BTS1m?fRA+yI&NF z-RyTxie6|C(tl58r(0`n?BhHdulqGE;6%)LojwytvE#XcTWr{w^45u*=7Q~`d|Jui zdW5cJSJ!lG4aF7T5}9atVbp!7VW0u-XE|$Sm0IebCKtd7AY3D26MAsb6r?K*%!3)c z0b4@}#>YO|Swd?l%x&uI=$SO+jA93Wi;t$s@z{!>Dk?0YG!&K^(h+IdT4g!EY>lqo zwQoOiXi0AOv)hYB>Mj743op~`&hu#SXidnquH9WE#-mNAh%Ij~5kWX0(tzP^2nh!% z7Eq3LxljqqD)z>oR!F$@26W*;*6DXsi^ZMuW0}k;bgmL9oXYDRAnN7r(R*_IW`Rzj zcZ4RohY}5bQUXJ|jy&yVepvg9<1PzM2s&#Gm;JbdQI$4pkvtSSn%)Bx-3zbX1iBLl zPx#`)mcK=d4o+XM-O3mJ5T$<2#XLciBR#rr`-iSByOd#p3E~M}v}&%86V_2m$RHCx zi*)^v0u#gtiQ2~^qBjo@QX4&oHd&4!NuBP7^n*z7G0GldaiUhOgz?c7EcN(WTYH5u zgG_;#0Lex%0nXkuL7MD7Pv4RuA1d@D?W1%?XAAb`$y=mr0ocsQ5R^xGhzJtNj&-7g zZ}CJFvu|CM^KpK%LZ&3sKi%+F1~tRG^E~2(`8BeL0*EiF37D6eV>NhXq;itnf&!{0 zBFH`wFKzaCaG^BS6EAJndiYC;wcvS5dTjX$sIoK=LJldL_*oQPUo#ri1IJ!>s#Xkv zpK+QEw%%_}261&w^*fX)Flsls$%g|$hKI;jjCCZ9K5XjI;cOHq?09yiG0Rrtzrqt= zXUOT43-nn!_#734J>h!WQrY}{SR#s^4_&J*+M(#(D!3SBaKXp8i5p(Eo!f9zsXZsI z@V#X6QHT+lFwwAoMdRqTN^8y1xhs`lxR7hqUadpRh7A6|fA-kR&uTq^9E2)Y>kb#2`D+NQ~d zDm5%QbE1-ufI=M%yt3y~{+uS8uFc$qCtii!`OlqIn(dF5?{TbRS+&9ePd#Ds8!&Pp zd$8P#99Ok=Wu}c8x&ey-6m>oJVq~=fZUXY``uN{|4vJ+J@Q?=Ed-J(nM@D=B?Rt}n zupla21zP$xple07{u}mA&#@7&i~@nVD|QNc%jx!~&8Sae0r3iR-3&4h76}8w$?L{t zM}}Mjhy_A{D6w)`<1|Ng=!_skpBi0B?f-)A`ybs!Wp%L19a^^bX~R1SI`t2{p5{|e zC#wC~W@Me1Ya>SQ`fDTq5c6Jm5!TGSRiI-4Ssn(|Z3?pAkEi?(s4tZIj~BGEDu=Df z>t0GA0lXg{RKjgq`!;4baCfC|j3N}nVxH2DNMrPUXwW7SskTKZO4;%rsmy0yHj7)g zZrtIcL0p2GOl(h=YY#6-?8g`F%D|!WruMY87!sU2ZWJXGSJ$4bbVxh{axwc;EEJ{u z6(;fHvLFVJMj22^Rw5C(My{Im_y0}GD8_iuPAfJd)*VmxI0H^>>ryp;IX=S_} zjVFgPT?}wB308c62+zfn_75l7I*(FHWJBqV?P3XA+L)IqRYb08!8~seelIF!-x850 zFVqW6lBw&YxNn-A?`4`B!WtXYDya~C|KloC{BrYawRThhJV~{>wUI!m^P@`aQ+Eg2 zvwk*Y`Vp;#w0$^JDx_hd-%mOh04By5FAJInrlzVzZS+CB*JRnJ*?9X$HTe$P{}+5eO_HQz=NKNHP$K){ z#AM}2FP;DWWD&Ti%A%k8(%-qY7;&A{3gj5l(z-cM9b`g&9%%M-@bY32G*0EIqy~gN zeU>IC^Aq5ukIvold6q6WR93Rr9V1@OrL(5>t=mvFJX1-<#$s1eU)vwwg5Upt=q*hZ zidvx_?$#fUN`yS-^ut|qB?U6K)L1A2{eP&4%>Mx}{P_edpchCNk+#KONo^TyI?8{+ zc1k6dl{H2z%suYV#5i6QQbc z_)T_Ayyq^(*OLB-uO1e+$CkSihR4~-Pm=|^QJGUVn9gRl!pf%21Ysagx|+V6RzV4!w3HPgJj_0 zUX-+n5R=lSH=WCKb{L^Pxe~CnXAJQ#sYLnt_j!NI*MDBt+|ypsN&=utG$|T{x6z0U zkB%T=geP)Cr2)bn;x*c-rEbuN7wCJ=Z$TG|@Q%=>Q)YC9BP|4k&e4RtK2-Je5+sb! zjJ=N?r#9^8&6e>bEfRXJfmofw7@b zKVVm~)t~_M9fI49(pwIqp#8qU1$*5$N|&ErbA$u-Vn%w<@@udP5b;tdpa6JhmtVxr zMk*i*g3|-$_?(dAYX}&C23mHanX8mOw0vyNC*14$%0W|PS8>z{3D@1+beK)zX0H+J zZ7KhbgyOQQgn}Q|4{QI6q+U{P%0lBE+ot)Ph3DPJU23Zo{=@foqwCbBl+F*2%T%s# zBg@T!hBRQ(LY8A;b5>)Yr3EgYy9p)Ph@fRu8}yh*pDIPCdjYa>Gi%zTd>7EJx1O`K z$^tJk_BM9{uu|i$M}Vl6-g3sh%ML%XSEkD;2n)3IiD@=n!9pi*MS$pwRQDdey*EKi zf3Y{pR(yVmJhKRaL@}aLq)us{Kh3q z@Zdk=zaVqxEY7Mfed@ugEZTL9T?~{64i--($exKFnYVX8r(>Uj#4~}>_v%nN{bV*KoIFo^_YQxLfj>Ul+@N zyd}MtM)>IT)S)cpD~QM!iniR6E$RLDSCpu)*aY^dP_EHjRe5rDBqjVF9QYyyw7#c-7I@4R z^Uvl7zFl~?odJ7zww<19)!{rTp-&xbXRjDODAl7c`tVd$->t1{)e0Ae8jM>vwGPv2 z?r!!2lz_}XNK!nxmK92-%qn9GGr9PKMs}g*{$y*9i}3Q^Vz{kUD~gUnzqF`^GvH9D zU*IqV=N3p%6P7U;FKFq*aDG;|xA;j0z64c5W4r_N{x3^gF|U5lT1%kEZ2UuFAW8qMi-R(zi5NU`FxdGHL9OpK(Lrdj2;nBs@1< ze^u@kVPh~)e+(%cvZ4C@?uPxe zI5DxCdR^mFP;~vMvg;@HoA2d>iHA>V*WaOaYf#-Q({u%ujI5|q2zh(ZHBqij7YERt z^eES6@Oe%Ex&PiCw&>V~7j_gW8)}L_KBwCn7ZOj)!ykuhld@6orCR=iGTqqfOC=BV-H_3e;{-J?-`a zG)xPe&3m3m-^eCX2}dDZFiFGy{?QA%zDUe+v5B+W5#)sj+51*6?pLXv5={laBcQ`k zscnjlb+NY57x?^u)E}HP|Io)>i$*M3HLBW&V~#izi|S>1*<}Xhhi+CgMlA z!j2#01?I_=$~qaTZ|cz%t#6_m;57Fn@zHxKc?U?q@8^Jj=megw_sz`^!Q<}VYXi34 z+cBJ*jJ?Al;fQH3Gc#O@SAfeSXArcbH<5XK=vnhbO0*zo=fE`(w3B#iLkIL<>r5Ox z!5rAj*bGaBx(FDVT=pe}Y2gV`L1H5}Xy>dlXeUH(EFnc#J2S34zW()RC=pFlBdW_& zKlhbYKJ=Z&Y?=N@1@xqph(NFHwNn&UyHm#tOzm0R<~wQJLUZ0L0|=x!S;@ zBCFq`fSnc4Af|h)GS-8u2-Jw-oqs!kc2F`PJC@C(s(|kOGF{F)fMGJx-ntxUQzF9+ z_wGM&?d<`FRJ(wPT!|@b?&!>Gw`9hxb%Rycf8!n06#4CB59u4Xpml0E;DvglJKbDC zImu`(WaaUblFIIQ9P03C1!C^fC+rv6Q4`2sAd^>GbfCP?>!A-?3%8#gj-Cj#k9m7n zsP(_pr~Cd?Z%=6|&ZrjrbnD}%CDz^X&_7?-ZT^WESk~u4OJC`ot{>;ruF68M*>D%# z^15(l_p+snh@4Vr=`%%wN)0(`Pz%DnXX1x@FI`q;K?x{`CoH-2(G!4+cfUBjD&{vF z2J-56{vter;<;@$-=@nK4m{SnFBAue9=?KOcO5_16k_rE-tE<89$7@7PejU+Lu3q1 zdYKkOVhS|Oh%)!XjH{BwEMw+Z6_?fpOUg=K^zPb8qmEeG8uD0Vm7~&(zdgx`* z@AcA%A*!p?+m-Y zI!suhJpNLuWc>W$1JIp4)#Cl#>_YLoN#E-ZMA@OlYm!YMGm=NYB_bxqm_>9W70N7( z%bWuzS>Y=d zNdJp+s7p!qh*#%BnNjq4jk)1Td7ku4u0Y5W68CCPVC?o!eiq#mRWrGc(_I&lgyYH1fL;yWV;90gF#PNXt zH&99RcV@}LzPkFV-8aFv){mlQm@`&LZEgcMR>M$4AP zwJch;{*e@hDk#2_Xs z%sUrFXhxKKe7%-Furr~ZgFG|9Kg1YiBJ@upg85J5Bm)DqMa$DJJ+ zIgn1B7xw35iA%G6HrwyQD65XG8B?vGXz4>VbeEW$`O}0_nPGO0b%(PJ@hG-IO-F`t zS~*;BOiCY4ecrs6u+u7jsm;v58nLQgK(oFv@ya?8BEST}m+*?C5@+hf&cJ5d=te{& ztcZ9Wq;!}QgCcn0{f}Q;+IWkJeDC!5nUq)10`33QVlW19p2}4^HFFnUR8f(X`;0|z z{!0&p;&zk~j81kS;Y{Fog!-BVXMYOH$MsS^yCr3fl>GZ%?;#iic$yK=?ZydAPq|(W zntG8wbT#gM#V}IasbKZ_Ij{Ym4DLDckPSs61fB3f<)^p&-v0AX@;_Va(vE2IwNG1v zH8uiwti5Y;s5bibRiDYtS)qcxz=tR2_5E%71Kq{#^bGjTREq8lmeb;KR#s>wHqfhP z-;k>>CDkfK{}9TQub{GaaP<_>WtG2Vg^v>>i`US7$nm2Fo32}QbWM*8?P2TDYi!*R zCM2oCymy@)*O;$2x>YNJ3Cx-(!2nH@`L~|{3>+#WPtGgN<`D!FT|rvYqbOKWtx%Q} zGx;z-%7IAi@`#|=uxQngWytsITE8uc`SA>ny6FX}!E#%tNrTlAUyoZbwy($GNQQis z(hrd1IOWw`UXW1#n`=d9fvDvXvY1kF@|E)=LE3MqWJ2HjbpB1!XI`&6)9<%|@Ji?^ zer8OaxFmlM)-2%h&Gn*TxgPyglhHESbgmEzivT3K!b{$y{ueoCb5$9v? z+9H&qiyp`np-Lzccm~G$nm8pZTHtTqWYC6JrmwOqC#5PvF<&_k{#Uq3+=j~S)6n54 zx1$?Vw)faa&JL1vs%N5+bc)tH(XUL^QHAcNc5S%NeCVMG)$)B5<1Z>gmE;bvM4Jvf zG*9N#vQQXXq*19f(iI3bDQpK{OS&aaXPs(nr*rS5AZ({|hdgPnY{IIz{j}MXXmB*T zPTD$&jLdA<&)5}eNa|i3pX3QNIFvt~l{}&3X7IGaXNqYxHo17%i6Ae&j}I{)BRk%c zx;r@=$0Z08OGZ?n26gO^v>Bw85_wN=05qlrVpDH}YTUG)Si2NjQUPB~=v&$FtOm(b z{B-sGzhW!)pw6cCIuS4O5USv3%1UK;n66J2GnQ6cwC?30^n&dLXpbLJoKyNvu2`#b zCqK$r$WH1|Q&N_&kx{Wugs@9Q`*KV=1LR3HSLGGE6xK&=?>(nGtdpZcQtxI?;Xsb9 za{dro870z$E?*FNhCp;F)n3R}H`$o-F37V_O{t`HOd(?^@V&leZp!2H|hVR_V15%V(gh0IRm(hP`KmN^h0uYk0nZ|WY`9u=|qSRp^Y}k$| zn~WAhdn=ILDA0#K9M!7T=KcqaqWw&dG;HbLc!w_$F?s3EtWdIq!T>QQ^=M}hNzAm} z2?-dY6%DB=99D08^0d6)9~UuRTpfD0HJE;F@*Z@%;p{;P?4U?qR+|-yRYVcO+;b^< z2Dxs5t77A4S8~y6K+&=*#eizbjh*s})Kp9cnhK zbJCjN-^w6p#AQE@r!f^B;FA44;|m{Ax)jws&iqaaFJ$x@1(@KC*EnzN2RdX z7HAj&NqNrIEsMaDIr)30wI1yJA8bs!G^0J|qFjQcgeqKX9u3St$cV-fnpE~uu&(Z1 zh3nNZS(+YbsIKsXPekZpjSY&g3(s4UCO?iRs&IdnULyMrk6Uc>cKE-Ow)0!MTqWUb zVcS`cZw9KipPPrG7T$M5{6$H@MKOoK84F4{y)-oJT;{4L|tQwS7_-&O+98b`R#K1 zH6V-tw;p;gu2PJkjLzz_7wEl8Jef?E9V0xIL@@v@eReRq?(c_X0Htyf+85e%A-uHCi4U>?P$(~z;1 z@LfqZUoq;(4knY|ZLAV-NjA4qbz=rR9e8s*$v=rFXy6yBz`w6a4)`yBX}6+VZ&4YJ z_7;qo00`*mabdCz0?3P*<}uXJ3}nfi-AcE?(H%g@Q8wJ%z~Bu_qi)#Cm&@h!VRV=l z+=gZQfJ_6LJuP$`yPDAlHO!=@&T87hL6+~iOrT2r4gmq&fVb{GS#%p*u!2h8p{rYb zxZm$sMbysvgdl8&P~MlUFqLg}k-df&r84^_tD%-uwlo6Fu4$fM+Vd)QHd=Xnsf_9M z^x_Sqw0_#F8djwONs&flB}-=LBIF;MaV$fQM@W4vdoiF?riNoz(;sHg%g^cEd2Bs} z-;@uE&;slh@oW7y$blYenr|IgstAQjeEwb(uC-^b7Z~Wb#N2bh5zc*nHJ2tQAxA`) z+Um5fB*E!w;e~8NgvlN@zUt%UM4Qz^OtyzW8cFcLRY;Jj)D z?*6`?C;xe^z!^(+6wc2ED-gZHz3s zc1U^s7II8<7ZI4y6AIgc?uG%WCxaMZmn|=?tF7&v`%>H}XP3U!612gMdp|?H6@mNt zd}??Qc6Q;M0yH$HxsU^V%$*G;036mSq-EKaG?2cU$qBX70$^?nF*-oPHUa3E#l{ng zGoyoMgt-)1O@$yYhDlSeVzW+Po+yr^N@l8P#Mm_FWq8ZWSCSQeX8 zEPLI#RQA>70`d(@UrkESKS!DF^kHAAj0f4z=5%x}wqDz}nvw@VOMg7Y+61gLsE}X9 zOaPi*Sn=~V$DgRe&fQu3YmNBb}E$_seYZiK41jubhO>YZzd{Caga)8_>vB0KDwL=Q(w-7V!Fbz1H3Piex zMK@&5>B2#64De^RD_>-V;>q3sqM~r1z5$wVN6UXI=C+}84)Qo5X#?9C)SJUzg8FUD zNS{|3tTwY9)YbrhX1iu}6(xV09K{qXled*13VGvGo5+0cScniz_>mE7mVW)3ogKNdOYJImAgfvgt z9>3Ls4gK8{H;TO1cuOt3Q++^TyWv*IQQI4~6ZFSU-dc#LVWDMV+;qBmtc!A}_wt*h zn)XBnG0_`9YEls`DH+#mQVO8ucP}54+@04C%YE1R`LE)Ah0(9l6g^Hs7B{3;H11h#B)pXPzrHZTsv$@e(tE-6Y9flAPVnilBfeNb0rgO95K|tJ$osK=4Gs#Kq zSdz_ySc9z!irR5iirx=XC$w7(Eq(NS$oTc{K*JsN))tmg?&FR5;S`$e=IX7DUkTbN zJ~`(8H)#mkX^4TZJp>4$kWnMPNtbU>&gS5yuQD18!?zPtWKlIF}LQj;GWE= zn~wAphRxezAFikxN~b22son>?&Anwex4`f2%m3?qVE*2Xp8#v2VTX)AaLcQHTcFTrlnyD;Z=NcRbXVfK8a)R#SrVKH zO>=;YISWp&*u4Zc>GX_5gK1_wPs494RhI}gmgsyE>wE31EF^F9oZKAZ63LuDRsB?r z9c$F#JX|*}RuQrM!%FDyLNT5TV3F3*kR`NHM=;mNKO~J1WNWNOA$MK{EiBbgjnXDb z5cSrfbxs>TlT_7vY9?PBqOL%>M<`GRD5H3!iApp|&x>Rh&tI*yTY)r_!Od+A&?FZw zmN(jJNo-c=Qe2AA#+v<(jXf;Z22G(f8j@IvBX1|9@ zSQhF*yY4Ov)1r>6nZ+pr9Q&MhMrOEYb?!Zqr1QG9rUGpTk+B=1ulH7XW(!TL^?!Zn z7U@J*Pyihb$|s<4a6*+&u8UhjjafeU8fT(cF?ZVe&FLrSkL&^?raa<540ax{uP9s@ zg3P}!sC)#ZQB}7B^#HJUdx@KL8o(6TzqkG*x zpWE?w*D?!1A>`>1QuqBEOJvfLqOk2iO+a5`Y}ip4e1Tgn32Es}uT`4L zIGa1uBNiT?)mhESln_RzKl?fe=pd7BTU04H)NZzTgtEZGslwoXv|x&)!UEzpijwsfP4zMjn6l zdYW7v5CFF{?mDtMNT2I;;*Qc)$aqdc2axcR>9a;>>sKv6Q*=7akEUo^z(5C!I~_;h z;?YL3o!bk=JLAK7X#I3IBgy{9;OnzWYYxHwh{j4s@=EYYQ`I)zTRQK{Cy#_&&O|Sx za8Yz%{tgWub2ag~?eJ+*?u!+@>-C0Akp35EZVduWf!_5V@%kk)+%vbzrOM(TpSd;x zniP#KIdg56h_0L6*K>2&DmeB#=ba`erEBogNA-~kxB7dh%Q;IQ*+=qwH8|+vosl2v z*oT8EC5jcFf8QrDMbc;furC3X1zP&(fpA*lX-V3Vk&-v=J%<-<((IumuA6iB^Tlcr zXXv*7lq3g&Ox}d zUAr}+yw`)Zn(fo()KCAluSo>9CSpS2fRS=Sp)YYH6OeLc3n?f|Hc6 za&tpExRus~)tk>Bcrl_Q)U81S(d((kcQKHDZ`O7#xU{lx;44aiLNvX9Sowkwpa27= z==J;8ZM9pa^f53(@gkp-KaxF_- z+P2}ZV4)_6)woZJP=O+rl}1sNP&YzK0QX?$M!f!pu}71pvK*V(>s`xjZw6*<3%D~#|;DTWlP`F%t9?F{{a-wp-dgE}FN z*BL49TjOL2U+fNC!Pn*#h&2ar!_&Ov4we;*MTbdybf(^e=k$1p$;$+mDu$cEh{Qjd zqxHbdPhT{4M3qnHqQva+3;PR&5Krp)bD$UAG%v$_r<2s(ZPn!1ol}rPGuWQM3rTfW zZGp~ubbIiH^J=^jbGCxdWVN`XqSEBbMif%OVv@*soChSj#^vCH_cj<;SukN2L>CaW z{(*!ArLjX!veBKWVIJx7;Jb?$R#Kluts#7Lm&cHk$u-^&zmW1=#ovj7P(?Lytk;yZ z@%2*8-Dz}P+hjxj^fOyB-p_X=Kv7NQOkbn%4oY4(!1`#QeRO%WkM$8=9s<#Qwv8Vv zwN(;h1RGJ)T*jS}kf}%T(ua^SkRr7O5(?{>z%zIjfGz&<)1>}m@D!);ff4FzR zId(Hto3Q9z&pMpvPFT5bz=4-tUth{XODOtxN|R&vl%h*ydmh(F2oIm#Cb;Jz1`!DRwiCkJDvsI$fz~HNHh^h=7n8Mr* zS4PrYMJ92o@s=w;+8}Y~9BBg31lY&VpcrXt7v9N*%yma@%)M&r1LutNJad+g>qoIX+j>dIvsN@%yh3k5_cXC2-+Ecm1LXqpEzm z)gkd{zdg=!gCjW$tTO}i@#d{^cW-d_jakRzqfF6r?d7&|Eb!w+&-kr7_UqADT0ohvxS18|!Nne;xAfv=wPJdt72q;|A0M~eWAJ*K zx(D54cacN{K1I}{3Y8K5e3q4>;&Y_`1`u!XQ^`9CZ!fTEK1SwJREP4ki;zmz0*=V?YY9ky?t zOj?~)k$VIV;2DqrGitPPLxFrElbU0~F5gOiQi%-YmvF>@Ss~;7jJdeS$?G$))1TA6 zE0s~q?pTWoW4;kSx+}029z><4kZ%7;^hA*i9ENGkV%N~VSqdN@TLyDI00^e}v)iKmM2 zITU%Fsx3O@dC102j@vgdxd-nEf2TU^7tFCYQWD@rs{9jdl;X-mU%wU*{zJR|+UpEC z0yNuuQey8ZN7Y785p7FljAo4*zC?`%FQ*=y(tTwdL};dUQyK)NUw;x)VbyA_Snkv{ zreCng(|;`11YqFa41Ud;qv@-;l&@X|qDa)QD{iRNuORa2V@E2S5}R{+dcd0#2;o0^ z*L%O)7v!~>rvK1OADwv^8TgDExx)1ZdhFMNj$wJbYM=h&rr##VuDrUbqIW6S=%1l8 zM%b3&@5&zG+BQP=a{5R*KGnfiF_=LRC-vuD8`ej|wfTi*xt`ruxb&xP@7mx0dXZB@ zRwyyVZnlpI>2%wE^MLR;BvK~P^pv3)E@s|;{Kc&xcqd9-LIFHvv1@aBYUz8p`0iv4 zhWxKl6%pk7u^@N{+ZTPRs~PT_$ZUK`?=Y>m{8TTte1s-jjTJ-wkGAuUit6gx_$zHt zacD*{Ix-XyjS7N&R2UTmMMY5)J1Qtxu>|atLB$pkY*;+%VgL(@qS9=r*bqxX zXllUl!guc6cJADB?;P^wT`SAA^5L9xDFF0DI7^51v}10&-5M+I(dNVMYVZt;U%8@(g2{>f?=ip zVzj+V>&x^+Q$4qHDLN|c5E-6XWje5W2bq8E{jji5*)T{9hy@Xlv4G?kI%5LK1wg;Y z5B)w%f;#{>@i|HLu|VyhJL2QLkN?Vl9TL+_NJvqS49~pOqW}SkLGSh>VqwygzbC3KhkQjA}fRF-O`e*@_dVbSV zDmNBd`e*@_ckcE=rKTT)=p6XQb5wN>6Tjp4|ABVR9nm~V;VV(0fI6rZ^-ll%gxM0@ z$g?AJlT=vJe-$`(FBB^AT2Wg|7|y50!w2HF3WbFfq8H^mJ!sbtESxPtgiaw_Cg)_d zkOF0k;+n{kek!CNuU#U=Ur!BzbA{zeMHxWQt}hIIC>52iLAySn^q{O^vQqU)?$U=Y zJdpQ9KVBIS4*J4_cD?hZ-J!Um(&L4b6j;*#ymj{szT`-8L%SKwvXFX>6jJ2m3kWID zyI%gxvbBx&NbX&s*6fJVu!)E zf2*YRq`J$X<@8AIUoC?wT9ai^eIt@SNP92Om);{Cmrp~7#S`|+__@PCBz^y%!_T~! zd3uG+>WpqeN$7mQO2Lw!0utn{FFl-bsWN`6$sW{_mINz>bwYz^1#J-|VIf(t)2_{1 ztDC(uyzAcTcyMi8Zf)hfuQA#Eo8t3!zNmNaL4O0I(MOHCANQE6yYp;T-PKthgC|7I zy2f}2Id2G_w{yk9h6yOXjDu2U`A8{vxfcI@P^Ohs1q)F*m&kw>52S*cC=Gt2u|4(E zuQGFNv@WW8Gi&Af3{F+t`TC&PwYhv@m z;(QoQI$X3{p;F`IVQ(>l&J$^{B_i71wyQTJ?Lt_2-ZiR6PLWFt3=FdaamRUogex1} z4OR+xSE+3RDkd@)5!PsMvYo?_R4rYB{^^7biE&j-q?OTU`kVwg>jWaC05hK&-`Qj2Yz4~E9_wgK8$k87p$ zBCM47Vv6UsvnBoBdlO0YzkQ;b2d>d%=Ro`Uv|?nEO0RjM8D|Fw5Tas^(P9dwaRb${ zoD-nejo^DB+ZXNOyd$7)D0BiG@ywTs-hU^@T^s-KtR~Lr^TFAYW;g;<@Y4gjCaJKz z>#I9lg_0_GoBw)&6u$gN&WqXPixXi81U4~U3p`_JTY0QpG`N&)D!J(z5XDXHaTTLY zOpwD4J`ZVq04K^B1eeCnjouWi+EZ-XQ#ZPeYQ=8pF+giJN)G4PjuKGUAhmtysqlhB zwck59Zy~1f;a#_-5!?+yjm_xRzsN9qN-gzn24ROdFogm7M66PgRiV}IU_2)d9)>kG zd2{!K=BV}w7^Aq1@>@M8D;$MF2(@NI(L2?$Xxna6jWv^L#MgffG)@$AnQ1DOQy$EM zd`g1?ScIW21pAx%&r>4>Cs~B`nMOvsrg>R!fLt6KRot(?vs#DAaq*F+RB+~XOFez4 z6%P5?&c$xi_IWNvO|$8_!MaFdZU7;TdYoVV%be*7#be0M2Ipo%Qq-b&J$+G}8mva` z(6_g9N^6y?W$G+0&_9N+hRhx!RC` zqHQggNpL;R7dND;B#h` z*}>dYIm?s7C>n)M6F`U5Oob?Dw%{N$t&X1XyNsoQuv!+>u1A+Ds4~HI`Q9++9e5^y z;M5`orj{ZyvFN2tT+71ldQXX=Aui-}?5N(8eQ^b*YP$t*B!-APDG?$@*t(9RFoS)I z%{MQ->bI|A4|FGSt+oUq$303NQE$Gn0iL_wQ+?fAUdqF>-KAI>Hh^;4cYzq?l;Z70 z8klQjcDfu=5IU^bz9<8a&ow78bQC`2v{%BvLpd$hqMYhD9HD#Rir*56CW+5ERtGD_ zIsR&gD=H?9k1sUisBJEeE>eNH8`Pu=Kxac+ACYnkLFh6?KCRFDEyo_wWd^6J zgafrX&ug!bN&k#;S})NGHd7J(pJc`nN~@gct1*v#W!%oJN8WP1#7ko`osmuh0E6WXE!>==X7ZdOPE0 zqXA^hI4~5*`{~PKD7{nN{t8GSuRHAY-}m=9UD3F9v;Ez5bp@H82sz-26(;?=4PuZe zOgoCb%ms+ZE`0#>9}^gJJZ_-kmWF1b{552$~?X{&y#-5!y{98G?^{IV=3mvgm@&W z$br~ZXz3%j{tX`2OGr&&oiJ%Me!fSCBeHIXdUu9`0eNVI@DD@XzPd(4CU!U_ZU%rH zef_IepI-4s0U8M5l!&cysoYoz(=35DmCWY6{Dc_Yz_6rJ$c8ES7_4C$b1iDdl5N0Jpe#nlXSE<`O{y!6lUN?oedjTs+J*Giillb z{AqaWSDoH*>96w^B170*mhRYu-Ca8W)brS2ywn~0C)4fh?Rt0c^6m&H!66}0$P5Q+ zS)@W=NRM)lkN2b*%GFaDc#-;{T~u{WjtoergPyp~c&ic)n{Fm$JO zpav69;9`1boByB4vxPD&KfEI!Ruw6j9d_S6>k{)qy@qzCs ztXDlKUxhF5;@;L)u{%gCD%uzghmPBHF))g@Z+@ULfO=K5L@CkV&IcVh_b4J=cR?J} zkkO?_b(jpGF%XzRG`H~R!^7zj0)p(M1KOzUxQYK3H0G36$m}g_B=wb3%OqFmRyfjI z#ajAoAEm0MH9u<5u7gMLZ5l}f{|z8T&#TkRC6vPjYDT32UllM_a_s;&bePj2DNn-E zYYJpD77>ov?a~KXw*wvS1`TgIK5zX){^ti=IeGymrsyzK!ZlPSH#pYj+A}bLywd9<2(X<&-%8FjTVU(!23peN>WwS@kZqh{ zg5?D0=vE;;;kym%#ID%4OoGxAA%qmKF-HLVg24zN;2YeRYxx+J9uJWuT~MdQy20=~zs{B! zOE$pk9GM)Y$9R4-yga+^f(3tCbBYdr3P&cw0Uf{%W!fGDc_dUDHr#S^HE2fbS;WQs zzlkwtPKBM>*{)Myt2^T|bU1E<$J|#04V+MzyH6{VtR6HsJ{`8E6=#GvH*3@j1#Xrz z6}qDjLU$l%8^nvJDa1f(3dQmb*U?zIwWcT|C=;u(babIznVP1i>u4;Qojw}|e7{&( z&brhrrsQx^y{=()=Yj&r?u_{Ot=N^9m7lG+MN%f%pahr}Upp|c?lAe&%?_r7nXS)> zw(0Z=!gfO%Gw51?0;kX_Q?@X)oUlZ~clsN4f+8fDlWBbCE2=)2AsumJi?F*&Vi>*g z%Q?hyn6xY)j-Um$R|=QlS44BKXjepZ3*7IJY)uQ#+?CUx_Gy1%Q|7!mPdClI99#h0 znBC_+dwikvS%q_5#@CV)&ukohSEGYYy<{pq0tf=_6n2JemSNux_Jsq+5@sD0IQFPI zT}S#h3-`L)M`B1*sjF28^dT(Di$5^bS8kVZ%csS;xJ{gV>6bnEpvbbCbdEU9{QbAh ztF7tiNY+fLX@EXvDyjOASbDHs_m(N9YT0C&R)w7%8NAp2jjx=jk$$-AI)p?2_K&7b z@MWnd*M^#{C6s~GQ6Z1=7Q#NBTBO1iRUF)hAG$NwN!(Ql2_xeV{Tdp(;Te^RxayF6 zwU#EeQt_7dlfELlf=+rXlT>s-nt&|;pbXnEaFB4|4xl=+^$YejPoC>50$zQV?(rt`dq&+WrjlGNJ0@FvR02BT^U*@8x&V{#uH*!ygR_^y(aQ#UMG#<$ z+Tp!#`|*^Q#@&BV7$eElY_10|=WF&q8xiPsPY~VT_jT71OKvCH6k-Qc7WtN{c{6}= z$=qN*SK9oSnQ-Qm__7%HDZ>*xbmzZ8cGSYWl(TJ~=(1S2;+*-yExY>`w*zyb^!a?L z@~We4-X3@NAas!{-bvhQJYJsPM8^pWiX!8IHug1%J*;xlwJdfz)qO`jaMEDtB&xUZ z;I~-23CB3fuEm-1hY`Zg2cMtkafAmC~+p2fcd-2@G=7$@z9-i6$ zlxL&TEkuZLws3B^9`bD_xu zp>EPt?J@p<2w_Q6V=An5T*`r?N){(VhS@tG+Fcle*h>`{H<-U9in8jVOAawFUckO;(Bh4G4WIp?-^vwttNr zZWq&$Q7|Og=cmKi`qYnr|NU{~exq(0ry&CHSD%;AW$|H+pd=2^w{dx?=&Th|%wzVw zCh?%clxn@`2>YnCX0(6mu)d{g-1)6Npl@${y;W_0m}_u5F=~@G9mRMzNB|gNKrt4z zE>AsgFI$WFXu51@2p!11)E_UOGBnTr0D_lVy#ty@G5bHxVM}PN;I*mdyrZo8-Sea> z3UT}%NFN&AYQ7ydH-7jT^M83)?mYIF!Bi%N1|7vgSCN1`xOiWH9knpE?5BLEex=U^ zb6jqG#*vFt8Z)AO;hKtA7LeRW*Rm)+UWhG9z1OW&-S%^^p!2!HY43*tWCXT-*5XoZ z0^j;asjoVhEx9l0uQerl<g<-kRc!0p@#-|Dq)up~&P}=>2nUf^rMfGu#F%N> z(|XXbvaREe$+jNqi&aD&?2@O6jb+PN;ma7sOhRAAXO^4|#VnvC!RH6j;P~31Gtnh1 z9p0FAZZ!TFfMBIq=0=(w5E+n*;s%^#2_I=;B5_vmmvKalho%b>0vnPd2dfx9I6e`J+ zC$S}eKxz(APkrp~e~Yg!o%2g5b@C7r2{iHp^!5zmVh6E_6*{dVS-&T#j{8jS&+Kq&7ZL$ig&wSOdoo>CAR$SQ<0Tbj&6@S`N6zj4U25V=LD|@xm9D14bhG| zh)tSU1e2myGJdH7@j&YWnRxlFMIZ1}zDp~$ zk8957ht!w1hRs{BTk-5|+rO5w0r%)`%ebVc_$l8-Z^To+p?UT2!%dnndU1645p3-# zP&T4-Bx~<*_VoE^?F6V}dmS7b;Cv2N>HRy-=f&E@)ZLGDR8!Cc=c_tGd$0}7Ruj?( zK?|hGOyeew14gbNxd#I!W4|I(9YK?nm^kznXQ{qD814_S*s{}}n%fEZCMsk2(QZHc z6lJt2aoJo0$D#WpLk!dlW|XPLMNjN2r_YA4*zJoG+v~T=8Z-mpK8KVyHMgKNRgL)X zXD&t_mR3wdS)bWUrJfxwtIjVKC-H?RFiq*h=a=JWLibM9WI~e$RLuilF3{dsh@?;= zE2IWRe5%D0zgr(98CCZOFSRZqngLaL{?^AA>-Quz_|m=s3OqVuV^Hw)EysS!T2nCriFnRS*@jyMw#R4Dk6Zcq9b-e^?qWG;{A}G zm+~=K6~$eOWty=JhFxbs^Di{J3lg=UcRl-vMaLjP52-AVRJxu@gB}yed%4i#it19q zq5e1knb*^bltN8eEqYY3n66?y_g+TM0wlEFmm_t&GPD8C%69n9%IZ-NMxI&vR6iQX z9iar{Vx}^9_R@hC{Plf_lG|l>EX5uJe7mDUx+@Pais$&9Ws+cTyeJ+9T16vT9N%%m zBR~R_C0!9RV*rqU#`0;1H!Rf!e*jW4V_JA*{C0M37>Neo>*GL*!oSd-%!#YhBeXna z1HUseqI15hOs7}x&_qq_yk(C{KJ|J6VBL(O;DC-ZV$exY(UO_V>|{IA{{J65d&Bn^c`TzEDXFGTotGEc)rYuu8|%m(H4>bvZEV%&zV~2gKKrhd8-lYe(wt+2HQ|We;Lz4zL@7}kn-$vyax@~+lMU-6n8ZT%ps!z4_8< zX7L(`H}dO4Q6x{Fz3TGU#rx13qUmJl>qCvubJeN%4XNcy1@^YQa;$+Q`1<7&GD5I#Y|nvEB1Gf1Ju%(RFLyP}?fmMMR#^=l0)I5QaR1)VwS%5094hUa#!}}!p(o9OV<@I?V$0;hABak zq2n?ajy)4MhBf*RL-L|7I3=qPgb9>IZ`i}{8yeU#c{Wa9M+3^Bq6U;f^BYhGh5buq z5R*?&2V>5?-|fN!pa6e*VQ)9^FQEx9eWnSRgaafyxjpz(4eAKmeg}Oc^leT#eC}v?S2{H|Of6OEq+^x%`V9b78Il~hCg*z{QZ-+0f&+b#pHl2y+Hv7 z&9*_VXX-N7oRHyLw$ewFEc>Ml9~j1z-Yk9Uk8|LLXggc=ZMGxT`Y-sV)j85LlB{$d(F`qVX@R#dR? zUxC{>K=z(~z+xV|>2mJXgaRJ4Ys-Rrrm#I|^lW%%Mp1@F7Vq=g8r9poW!r+D|9Nk- zDN<_Br@Nu!5^Xbl%jD+3uOe60dZ0>KD869n_38V{x6bVQ&al2hL|xkGT9QwLilbLW zO1%ERkL`WqGHhJev_#ri2`zn;D`>*GVQCB-B0(Tewi%0yLcxs0%M*_Oo{!(#V{ z;Nxp3M+z8yh<^O(S~;@#XvLM8OC{Q*It~~pd}ns^BQBcc5|7N~*eW(-%T$%uATCys z>REwia-=~8Ek*G=WEP{hI(O0exnaXE%ze}iFi~djB6{JEfF69)<+cyq9{=6++m=?b zjEJNmGun#CM&}c*O)TlUAMJu|21V|6OE9w%3tH!x$_8Bmpl_;7gbEbWK*XC=ZERxP z#Of}lR9t<#K1vUv)yv#Z|f?gD;BH{qkH_K~ylTmT&g@WK;p{6R_r>W)^iIN!B zZub9KG#{1#|5N6sMNwUBqVy27)atbvwRg;?#IKB z8Jl->l-py~QE?WxXyc;}lMhgcB{Uze*m)HXm|D>IkPLIC=M=a4fpk=C+-R2K?W1je zWL)B6b(Gm~PCW5V9rT#$&GGawKfiryC{;(H{{a5B@${}%|6ow6CgCyVEdy(IiyC~Q zV~~kFv_T&Xlo|FQt0w5Fi(qmdxLRm^CUT^@i4{dV09VV5ZbuC}2YbveWR0gNY2=_w zj)h7im$-G1QG#~eYTKS)@#?69vp80D=rUnF&(KJ<9tkfp8k{es^_i_e_JtTBA@I;_ z3GS563WScpQvhN-2bi^V4GTZ7pe^+bmXY#YnxIIphBRIVr1EFx&Rf&E*56sp1wnX*Fq~4 zUC5=gMgCi8tOg7MATrGTg!cAf3Mu4~oh>)&>9(UUB9pa+^%-HQrrZOALC|8J|7#Q4}n<(kx>DWg-Wq|&&G+dCcP39 zQbZ-G{0-VO0}%GyK?lOuvuuu)alv#Q1ucC~PANq{Ue~vKB&95s(9(zJFh`i+l0jYv zWP@ylER|kEfR=(mOX}1GGp{Gt?+%ALuf@yl2#On`2=ZK{Mf^p-o)U-tA``H+@<#I7 zW(*toCc*42RC0H@H4@nsGQJd-IqlnHFFs*$%VY%;vP7fOfWFrgF@J&*s7%@C6Y8#? zInt;U7dM^ba40kf#hRuk0no00S=`C`RkxYF?(`NW5Y$?0u;2yLpSCd4k9hU>-3ycM z12W++hm+?#4b}V$YVdP&pI&*lw#s_q&CmXxzErE&W$FxHsD$u$KncryELop7t}>oH`TtL zzo8wwIyqAQ=ngmMZ+#a=O_suax49kX@v{f*vTh#Z)BGUB`q5Y&$qHVhl#lVJD|jqy zEjiV9ZLvfm`e*n&$KQ?;t>Ju{n+V;!&qvJ zcKv#w)7$Dzm9@hSJC0g+do)FjIhiW-^$A!irS58@vKZV6DH3$_lR z66%2CjV1Slk1gY9NLmZ1{IoTZ=l2}C-=j=T!tE+rs%m!IkUkN&jm1;=e7|W<-jqjOBsHARd7vrE(e1ayQUlmJ?H=YV#K1ZEB|^Jly&NXi;> z>Es6N2+P4!qpEJ5d8)X@8I4v7B6m~Y>08%apZQz)w)rHN#(#5|5SKh&#U_REjp`(iUg& z*ot$d%fw%<(1pLSO{J8f0`Z!9VCbASa^DLs73hrM*N1Q@`YfwU2bU(W*u2cY`5`*F zBEUif?>F-Eu`paqrPtzYg%_z}ftEhHpQ+mus^H; zhyh|0Ef&yqA`;^Xs=jVj6QvI!Q<{#uK8^2Uq>)A4vaH+S#$%b-4vc)Mkp<}P_kyLt zWqN~sU%f_FbV_bIIeZ$Is~^a!G-zWni>{$Dih*C||8 z`T0HCOr4zC$VN~mcfGS%jGp5Jxw9HmNRhiM$WULOYj>nlx#fr^^s^FaSPCBVt=(!p z{q5&AzWtebK|rNzsaD|_G@+L>G7CZrl1h5Xe)iDQ*AdIj1n_Jllmz8FA`TKbbpcH< zlo`bi^>hJC0_Jor^>6crYiSce^^Q!w80srBP=)OId)IwGKtW*CHDpl>>>(k++3}KR{2dY`Ho$2HDd?}vL>0r;ux5+9j z!}Ds#?Ab--+rzZ)@Xb?dOH9KXA5+T+ToIk5IkoA8Cz+w4XX4>zNbMa4SH#9>w)`+* zq(UowihQ>s_P^tJZ-wLV#zRJ}&)W)~5j1%c=@W@Q`Lk@0+;)rb1J=Teo&fAfxjN<) z)*T)&{F_q$wp9XzwRF!O6s7t}#_-VGq!Xbz+GGky!~%Qsy(bJ)pq~+ZOwo#xrc-J% z39Vm!HM#FU7Ano6EH)w}RA0{QSoz1h|8SQ+8WnY*dywls%^)pCiadYtch?+O>IWb(4ji3Rmu#48`TSBpr<7S?^AQ`q`nr@qIX+($6#u++2d|5 z>v3iaS`j=D+Vvj_e^9(1ZVF-(U=s}0u%g<}^sc}4bdZ9-^wGQCVD<@FH0Ib9_}TcC z2TH%QBx~!8!VI`!Q*u6HwZP2p;JihpYAhS2(=yA);O-Nhe6!Ej)RJcNm)=~?1>2Rxzpz@#hluz{!N ziq4pyi&yO_wnYld4t5K497=<5HLxCwkbF<$0lrb@Bq&J$S8@$?9i?1H1+ukTekVK- zw+{Mz0ly9k8;n;6)zDJ#>DNF9d=2P;CvV@e<4fNsrvfzv_}mG1E^Oa1_vxSg`nRcn zdFfu8o>6+eQ*bO*pa*hS4d6N%ObJoF78+ushDrG!#`>yV8M!oC3e2=VC;qC^OJU`h zt2>C%5TY+xHm6mnFMHZnDwzBGr73fV+}}?{kTjqV@bP&Nte@MC0WXJW{D57GjrwT6Ro^Ku_`q z06XuQH0hToUGKYvDX@m z@+04I>-JT4wrQ5@ZVj^OnEMz7{I6daMT=PK*q5xyvI8>ig(i%c8givT%A_EnzCIM9 z*>!TTr0Y75IT}j!yAc+#v4en+BHSFsFK@sA;C*r^-{_3q|M?#`h32f$f$yi#@waNn zDyY!w+F@N5#;;8+wsSM&^UDdkS@k_4?jl{m_41{eZ+WqfkwJ%3M$+C)8y5ZbC%)-J zD|j|8J1xTv{qDFj2S0_!ZI*;m6QpTFf~hK&9zbPbV&nTifeF?1y0(3vl@FyT4bgRf zzI-R;w;;*VTSNO-`b9)FKjGKB_huNAZIBH^hGpyMWj2q=bVPor{ z;TJT1f!w_D0O>7mz+k&@<6k6W=X~UtmdZ852zmgi^?a)AnL^{bUJ5r4ob=q1Ig=+y zV~OlQLwN;PRs~B?CK%@CgQB+vfOgze>{GYCWt-}~j3TvMeCKQN7DT8NF5e9b(Lw48 zXXhWA1{g`WpmveX?Ofz2GL|VJqj9sJ97eW*G_V)SP7`rx_v?5wShRd^w9Xpi~sY&4h`abA# z0($W}DxVDu=WD%5ko+rDtVs$oyda@q7{0dj<0%;~Q7>v)kVG_GBQ48g9yKfyK_HsH zKhAmFG0Fh#_9~^YtG&~hR@l9NFjVn=pjf&#JELg+@fTThFf7DrFV&fnYLtA+mboDB z@fV*ttvBrkKti$_e|q7;OOi}jzEV$L*c?rck=*8L zW}a7H5l{328|mv2-qR>cM$gg!uot8XQ|jyM8$nSttgQ`UE^+MV==^dDZZVZBSE{_?cN;vwCUg4h4ryxO6yn4TaNHY2~@t4uBy zCEKno6TJIY*AS-IoCb6Fd|M{-;YXsg0Z7oon>DOlO1sG=!y!{$?kq~X^|3*X5mFhzZ@N{j>zBhs?$4G z+J}DK+y~+!2M?1bv_(aSzV!1P_1Hvp0|K50OPd(m$B4M@pvKzL8;A)VeJhWQ(n>Og zCsjz47IP`MpFXB+1P`lPUG?QVZt3P)^K~tn)7_;TZd*&lZ{=5qB!=QsI?$4)*T}@z zF5h3g-5nkHEDPc$$=tmDMTof> z*b*DrWwQPaeuwEM@H^8v+d4W-xo?*KFN&h|W%xx=yK?-Z$a0y44$5S?gy%JCl%0>W z0;W-Qc*&?f70cT*9RZy~J$n;8=H7Me8Nwk8LnDZxqODBh_CkHTFYtHA zG)NzGt%x%)y3VO%MGg#ckv|1S09um7c?oj%)vIG708Euxdip3+<&KQnn;cPv3sCjQ z=PxXk3pE6_GNUXz`3gl>DSf7y?}l@uXj7q%Btv4d>D?hog-MTbf4;R)x$@hbSWifi zophublV(_A&GzHYjV@HmJ9t3=Z!aN9dX-q#$MIy9+@Kwke5}jeL${)Vg`$6Ol4{kb zng7vmbv@0b#Est+v}6X8L}-i!iiUVP-n09)5_R4bYt!a%L4xUC1fL9i=w zd>HGkNk2l253dSiQnkm*R(r-Nti*0gXsW;U?m-zgSuyZ|Hd&EwBk+hQNGK4>Pr2%h z<8H(#fb9mty{@3$lW4MH?ZB4eyIww9S}IrczU8fB3_$Gqstqq{LCj5W?$SpFee`1O z+|bg8>R2c^cVtSEN+fR`*77JHJS$ZGC>kNl?0SdEZA;~F^Wa}NbW~PxTJTFh$ zFg?YYaY6?oWK_7O#f{cJ5Fu~9RkDY|>e>%jGN;kcPsm0eHR^ucgPuwY_cLD4&6iUB ze@#n?cOXJ?XmNu%5$LQ@Ha`Ayd*iE&HUfPhLdfj*=LRa?dxkB`iHAu&wRimMrt=nF zY}nDz*!_C6MNl*%qVa{H|C2K4ax#7y)Q>2G%4rx1-Tgj0cM*vJ?;Z*gdWd{_P5l?P5FK%|WZ5pj2Cf9RhmHSyf1qXYWFxw6awM6e58V%!ot!C0 zPuHDL4cpLzCJVtsmLQoE>O0qkOn(H|zko2n33wC0c}p zsN83kWTZ!o%bp=7reNpEyJVGg+AMR69cc<-AH#EZP?e*9p6rX%C3XumFGHy)NG~bJ z)I%`sLauXgAXH2m0ochL9xD1bNJ(elQmvL1D6H-o6S}}!7DofHYPEMr$j?hRMwB`t zWjgKaL5hL99bgkpY%&*=$r(=}O!v13{r@eyATV{OXUOnQWdDD4`&1R3Ll3oKdz@Rx z%g!8eIlf5AS^Vo#L@rbyu|LH}RSOMMOETR}sx z!Tl=|oL0PT{em#{fUGowJ&#;6e&C4Vdz@eW%be*7xO`=Q`tvSJBovrB?fpQ}Zt zEGJ@(08{NCN4)2?;DG`(8UNo9ppd)VU7up1Y((eKi<3^lK=Qg{tL9u>JoTsn4@%IW z=WDesSGFRG@9Zcb3g#_qHjvZ;2sqyh<+6 zt<9QLTQfEZ!8~|&iMH3dJ8v5rZltuS6{hhuJE*QkIP|<^?VhvVUQr1%4`GYWhXGMd zij+{Qu3VXD+dUWwj$aCK52+ONRG!107*VVr?_l-axEr%{`EkX zE6^Dr;%p1PNEw|OubaoY7p^gNK}v>>M7)G?Hx-D~DWpZO+sWT$NxYj0YH2`QKk?+d ze-4aM{}yJ3GUx!f21;TL!jlorOxL8yFlP@(9yxBdF~b58}*L^GG|LDPCa`{0u@d%IXHN9E}ycUu=#{`413 zV}Zh^Eph-)5%^b_v}4{ALMXemOWx%xp*hSePPF;&+Toc};W(u0dcP>53l5oRQ0cLy z$7IoVea%TD__0BDeGvX3>Zk9xnElPEg_|&R=>DPYOa1XWji9-3J`@*u>iyh9fv!~e zV(5*l{O#xhs%wJyOsJz2 zHHWS;)bo;gSf}hSG^P^`w23j=PaOaIwcj)PzB_56%YyaWh3gvMXWdVxlM8jE#y<8c zZCR*9K)bmGEE$4rpEa~p-YQZw&VjxTkP-?Fryop2L0$>rvJIz9&d2~126h+%g9eLE zC#!z@bjVHLikp1IzAhO}qxY+xg-YDG*gqze%G;oUlZ?Eq9r@F-TT1Wr&%XeSQ(@5=@YBwZdp+${aIU3id==Gna$$qJ`VPdswhxXE> z7wX80-B5e8U6)0xPZHh`t6Fb`)otfBu2EY=(Okr%dTZU!_;JoFa-{+zQFAXX=w1Ux za@8mC!_NLYOu@g7J|V4n0d=QjY)pl?{G8~j)V6!MRugvi##(gOBl#ZaU7rhF7j!@e zv-G+7?=;%L`|XrMr8uge+4c7K=9kJ@WhJ%r(IGB~ZmJfZi1gOG5hJ-7jLDfI5kg^@ z3fa@l>!k2|A839rpQiY=?MKsllV?`#-`Z%x|CtpHL0U!hLH66hoFpt90)|mk+X6W+r9kfYS zVL2(m@4x6h~X>DjO$?MxP49Y-xn_-^9cZyyOhb?e@Ib9(8u2}KqA zOtTyRBFmoMzv&N9z5=HMS{LX_uflEs4c_fg@6JKq-;K}L;pNL)^FWt?;H|P=YLFf`Wr~#r3+)2L?2|Z$2=GN)KF(Gja`uB>1YW`S?xMyd;!a* zg`_)!HXM^(XDu_7mzWCnh=g9QKs)kl%C$*9hxRG&r^cb?_97LhrA za8s^;s)-l?aL01UyjW}0!t>Aiq13Nh9X=4bqB1p^>h`as>w2mBj^)QHI*0-?wz@Sdz(5`D^8q3$vGYetKcjo!KCc=jny*b2~fz(f{K8 z{i?sdPAdE5i82y-T#!fg&fe`Eonf$**aUxge2Oyi2zLE+ziAU(y!`D-hDK5MMl;RU zt5WHu39(THUK6N+!4jn}Lzqvqy759(fquKQNfTOyTCNyVBThxm_E1J@2YawsDWyUD z_Qh<@ZfhM%3MU3Z8Te{isee~I*<1dMbviKf@k|9DxAJ(XSg=Q6%_b&KrhHRb?aTI& zfm|X8RJyNf=Rjw}A@HaR_BEYYOiQ4{FEaD0L)&LdaBc4=zDpAS{7|IK)oq1JN^VF- zmI4}Su=n6)2>s5|bcB+kp1=G~J_Ae&&NBj4$1*sMEfxk6zz5Z|g{!wg^jLZzLC=H$ zG9wB3ZP4IWS4$&_0B#bx&nf0!aGYZ=+y-&0L0_+DL}GNJ5}Om3Nl{hgX3}sMzT%C- zt=e1e9rCgz4C^u5!tffn)I;QSh`!Q|+BcKZPt3}ehpKnyiZDw?qy%I{($u|GM>~d# z0(4^%CMsfvwRz38+fgP@K#uPWS-fdz%Ck59xsQFy>^X(~{a2e8W{5y)IckbwL&OWJ ziuNknN@l;jW2vY=r?NGJdwfNnkia2f7Hvq*=H>JUS2;lUrK>a(?&8ubLed!vvm@UjEB}f#p;35 zq5(d8Jex>}{`wH0ETMOj3W9#}zW#k9M%_3(eorBGXza=^rEJFJ*I*peW?bqdWsBh%@ z(Fa||RPQ}eEBcVKozcHk-eW<`Pq9HAY1M4WhH+O%;Q&v27$&Jg zlaA`kJ`9@4wpQnVWro7g%KO7GS(K^>?|Tihzj5PaG zj2G~2AC#LO0mp?!w-@PpG1hNZjV;uQPMlVlL1(V&XgaDx7nG{I;KiiHB}Ip7(q@JJ z2DL+Jc95ay&^8VXZR=Pv_12xrY|x z1zox3i9OYO5^NV>r*YcVwbQ{#C14%ZL({vowlS_Z+bX^+8iI*=UiY2ILCV4B-d>)B zt!{dDrBJy7vi0ygf{d-FBIah_R~-l{gNRE6w50wfT2i<=)OQAZ|C%kXZmMS$b}6QS zxtGPnrqaBQtw#{@I<+KOg*l|l?tnd{+qu{apXk;9XIa7Fwx5IDg@Pm54CuJFxl-aX z<1T$DvNSwvSli0D%>*hR)s20r@h8+-gp5`gUv*>M%>v|T#LFq?@0|#BQ_W^bT*ibA z`BsBG0zAxVv&PE@D4^I>(cxS}AYJi=8Er~jHrI6Wx7qMRwuMMkgu0?bshTyZ9Ox{P zSQ=N76dL=}C#~*M^^Rx7EIFFCh*Yk-zv9(*FG$L!#$G!UG@@$BW=747%7M2C3GMt^g6xUhn49hHr6 zA2`FWpZ>OaEF%!7-lUNR6+Kawp4T>5n_BOLp<(T2e_h^m75m2P@<64BkfcI!u>ST; zZlip}CUpd^P`vYi0+S~6bnlImMj9xbMSPp7rm8oisS&L0?)Y}vcDEDN3;Yi1lOOYY zia+2x{YFMa$pO=En)g6)VI(S#mqPWJ`99*O!%G>Ta*Dp4Z{_DIZsEOO$49>}mQk_Q5at){4q>aQ`ir;3b*AxsmSaQX`%Fqz z5m^;D3e(C{MHe+pKI@gCX zl#Z>6A)!QBthmGKU=^IN+OzMmR{ueD?WF-OD|bPR{ptNAPR9el;{= z;}z(5E&!#au|a@}Afpw3Iy4lFh6E&^%Rz~X2%eO+t%#WB7bPIC1i~zWs$Ku z3Rn;yNyBqpt2Tr>@5Te827elZ4=(=uh`2Sn?jZBVn3}x87R&5xBTod-c%6hb<`tXYVYIJ1 zdbUb8r|P>hc)7~e4{2_Uz+Ztq0nBVSh6)Z!uiJEi?W8Q70Zr|JgglnlW=Uu~Gm;7d zrD%?Sm4qF^v%b7g`EMM-#)V2aFM<&j+>?f$+aTr_8F4zMP|2rvyHQz^oan9Lxn6}z z4LN;l$^6^prc_5d{5Xn>Y;FtXo(Wk+G#xpMTTDqIG$LhyMG37u@WB-8Psm_ul~_TQ z=aDbY>Vg)YwmjQLekt@{08=;u5j5H6tKO``Tj}R;BvkbBgFw4xcH2YEHayl^`fPe8 zyzh1O_-GLon1x(@j4xsv)20-cG7;PPRA?+uP*J_%Agzq9>KRzQmJ~HGFw2;vvCJFxBM5tecbI z|8oHL6V}*nWi%tP*BTFPAgH@LpMlSBM{%5}{qDjzq zU$AM!WIJkS38x(e(K6mRF+viy9aX&<#rS~+Os>l=g*k7>Gx;2MxrX14+W$ej9R(WD za3#z3Lzp%=^on4_&_wzO_0tarM)4KdL<%}9$*X(IwxbeC5$z}_?x}7nBgre?`$krL z^go2>muU)k1cNdbvGSsK{!X`}paDRgEeck$rx-hUC#xzIn@q8{rU+Y+TBBDcZ%399 zUS^OU8_@+tGAD`L(zKd^=>xb;Xk;sJ3M=FZXMcMC4XJcHimqM3>(vcu6FIoyit4on z?FBFW+sJG_6xpX`3np?Wo(r-JD3~1+`2vFHfNr%w}zDYTU~3F;pJIjs>36anBB2V-3E`W zXudKzjB{CvT;dHVpk8+`%D_^i>bFU}JH8CxR=GC}X{)3xt%m_GfmZKPX>-3{;dEjl zS!1oo;%Rhltd3g`QdD@(FPCN#85M$7b5_SQrpGeLgJZ*+%^I~qJeIOg-n#1DsVZ$V z41D21Mt~~J0%~`%kMr2`Ym$GS-mf)UKiKP58Z>&Hkg5`qQ*d^D>VzvQLdC_AvIy*Y zv!|&lCbOEh!3gYn9Ty&y_~g3uau_zD>pZyoaINewK4_+{f)^gdLt)xxhzsxWTh3j7 z$mgRvLfrNUaj*{_ZQLYAM^jHulX6nBI?r3Q_Og&Sr=NB8t@iz^R-XpOqz(B-hPV-g z(mV%eN41#Dj9U#Um5mVB5+yUE5;0jVxX+xY!*7Dxy9bE|2d!|5igI*`zrTB9%GjW> z^bp)`pvVj+Vj~HuZoP#7CsCsd>&0wk)G_+bs3*(UKa^+GfW)2NllX?WxOKtg(mZjF`uDgef_@E!JE-iDVx~)~C zG^R3Amg-9?vYDlSpz**Tu5wM4U`n}`#eE*_b+^^Mg+B>pkNc1ATIz2yz17Vn4$fN` zMYb~%itL*LblRjgQ)k4-I==ym7~axPbcjU^^V{l3jMX&YYTKz3CpZ|N#3r4p{eVsz z&P>oA|3SMx_A=0E?^wZqydpCB8jtrBdPeYeJu9Tp`E>FQY=A6vp|~s+-t}>ng-Y7c z8kuM#w(BbyDvoyV8Ql8caCiM#eprGKDQel60x4^1gC4Iz3={l%z!9>9T>V|JMAU}? zk)oWpC94D`U|ND`?;GMG7AI)#ymJh=`>stCWdhO9_HL&@>z^0Z4PAH;7{y?0zLb`5 zAul|rfzA;Ljz#>VC5KUhOrNqg~B9wL25P3w-I?o)R!a zrTjb~`FYXgav@EW!EhtPy1}rh{^9vZotcs3YjEgae#%HJ*bgzoT)#)!r1@bIvQ*I$ zZU~G_=*UZ%xbCWqq=yEp+8c$7wnBPyN(s?!NdA2z!x`x7>`a`t;WKzi7ss5KOnRDE z>7Bb)&o-&{HL_{ zGLrx^hRqPrT(}`MWJ;xY!fZV|&6_syiXKZyR3~ zIo>pt5>TYOb<<>jk?71{AP|)}WX4hRX@I z<>Lmz-}N@9a!@Eg&(y~ivHiLEifSKH=Es}j582YbNJ+xtUpox}qin~a!aDSr5m!{V z2HAAXjk#BL{iUhswtokOeu--+0>8SJ=}cJnx6?e_^U71ga(2>Q?z+R@FqGg#vU5;j z%^*?Qy?b5(V<|gJDsYEG@0f+keLnwIdS2^9uQ1R zBkZ!TZ{I7HNihMmq<*b#3FkQP0Zdqi$IF#BMy|<-tT&H}r8M$jD2bJ(p?O~CT^Sid z#UJtAk37M+?Ix8z{l-uTh1Q zl5lU8;-+kQcKDe`uIK0a`nNcrpm`TomPYB(q}1Bs-RsnSx*zivfTfPNJh{?WkTb&s zU&Q#k5M!k`a8q2|Uef8kS##WC>W@QnZ>rrfDaO;f_3mS6C>~>2y@`gKov0)Ws(VVU z&4YG0U>8(>c0DrG*S`~`3ryRY{eliNoXUh5*508@syoLX0>d=kc<-M5N6>`k)>B?1 zj9lW@$)mEMdP?)2;?kt~Cx^8r&(Qq+pF0|7G|`bI$+kz{7lP#3;ik*-HWYn2fXb_@ z&9b5=n~pht3P+Bff@n$AdNO&(HG5~(QbE`bqk#h2WGX-R=(>Y+fmRJf+UyK4l0lA+UELLq9>Kz2A0n7L3vBgl^-*eAAPhBQw)!*y*6fXLUMi&))hnh1Pzm-L~OANNhCA93r*gf&4Dv9Iq* zig5`Y&rMdFNqv2j2b`}@kCnksKO+>T!0(E#k>*ROtdDTy*RNj7#Ay1h0$phGu7uV; z^!1N4W~6)$4~Ij;i8AK<@>OORPjKx26zdibIAG%g$4LWpVK3(&S;i`4b_akgv#4vy2OKhQO zg4^6^ioBPmiyd<$ZBBHFXoevZ{N!`QJtTcVUA?9(AX!lhAX(E@lVf-CN*k3veqr?8=#c+O zVPq_8(}2Qg=gS5ZMptJ^Qs73bHa+GA8(~To2F6Ea(Q^9(#>1?xTKrT#NY1pGU~taM z|43M|ueerXW8>4Zjnn&D?!09WT}{y8SmngTiyRtnP%2uQLb)RGjt4_yqZ8@bJn-sK z@?P+ua@9(Y(A8!NUqLvZJ>+py91LLMf{^fuYK$|A6u>3?Kt|I)z0mt?{JQp_Eq?K{ zZ+OU;K7+3r8nt=Tt9>u;N9B=?aMO6QiZ_{A#cEhr(2V6U3;f}}%+JI`Hp*y>23PVP z==`hf6tafeR~2=9i=O_Gu6tXt`^At=`-OZx1bKh=@z%Ya)p)EgFx3wjsi#k~D~UIS zr591pLbxy3rB6Ey`BEtWLM+gL5Y+~Dba)q?eF3S1r4>%JS$$8j8*`nwzX&Q+;^ls1 z9|>Aqs@4S3=w#4;YuRN@s97ZXJ)y1BLq>U`A5x2^&yrM)OCKQUy$yfNBu@;R9xS;V ztQ^Yk3o?zV!`4*n?&7n_Dt83Wn{E#tVcODLODy--T>Tz+fJt>Q$WD75q{&WW!n>&8 zG+-8gd~NcVvzmr<{lcAgZQfel?499V_XZ`5HraGiW-`+N?QP6H*MbHQd5NV3b zDu`Bmz_3KbQ~=VYL!*5%J57F8FbWAu(PW~KDy?-%E9O{~`fJW=9l>dU-tO1^c&P7Q zyu9yqJA4#g?gO;VG3{g@8r$o)${M7pW~qS)rnEwy0;CnQ$B|KBb4si)oY^*)*Ah)* zF@L8zB&q)VBm`Syut0<|*QaP}p>kCd-`D}V!YaoXIQ#(E;s!R2J%aeKYHeY9$a?JL zk0VFG1J+f=ydXGuOD#9)kNH6oEW{#l>;@;RX!k!T8^v~g3BPy1?)to7&aQV<-0@@! z331u-pxtxr;95d%v(C%Mf=bAuL1YGTksFDGtc!PLe=gkoH7~C{Xev6J+-&? zbJ z&o-_7KGQXFop!7KPG2HQlKZ3{({h&N!ExoVStEDrWF0KokfcJtCV0!D#C-G8tA6_` zM4HiQHQ+L6aXB#R%yzm}UpKYs1o&a8afuDAy~EHSKU^9l-c^DE3yLS5Ksa@v6Y&JA z^NQ-s?XN&DeBO{=$BFoog_Ze#Tv+Pg#}ziI3B}^|@C#cV>bu_vp3x=phD1~hk@tmB z3NOkoh&&PL09hTug#O#OmqA17pa=MM(ED%k>!5kR{M&U9?Z>3?gy$WehQ13RbtvH9 zVf*?%>HdVm6TUdr%w);UTr8wJv?iAbZX1gfbO!WsxuTFll|^Y!3Foo`y#B zd8IRB!Y>riKZIwiYhcFL!S1=g8W`z3tOMk+a-w*D_PR&d#XJ4D?8ZELPj?eeWaAFF#~8>|tq<64{Q08iG`kV~GYBtQWdOlEFoG z*4gsjybHHZZ}ZN8c<9!Zn9S^bQ zhit5gzRz=2k#gm?teOZ6Zh2E>st@W=V?+BY;|MGWx%2~UzC#Go1t+(JuW~BaSBbbO z+2Yl2Ps#jyA=?-2A)qvaUf303zgpjqEW>`azSBP4k>h*w341N;vCToB|hp%d)vy9OJ<&Z^@|sP|jP|J#X7+ zBsUeNJ5sKWIkjLfAoom}w_vy8+1s|<7_NfUqKw6OI>#gP`j@HuH-q(Nf+554ebd6A zX^EManb!LfuBL?L<2LGuFb=xpmpRkLRE||WnWO38d}W#1P2cL49P*qC&<^~PV#9p* zSZpPez;2J+*Mu7@nS6ZUq>m%XLUNt&V?6RH=!H%!Y4UwaCLweTXFY3BSE-&Q5SFy4 zkn$fAvwyhLhcB}owqY4|SLxG@RF!*_u(HK3nnjmv8L^_I=@d%uS6gD*=myVu8%{~? zp4{pGWl;pfOIoBE3WqORbAHd8z67kO?v=~;7jJhbdYUGkU*UI^wtvF!Dh*vK(SF;< zZVj++PX^?X^I`I6DnW7NYi}~to|<%qKsauEA)>1^XXYY`Wb4=kPNxX5Q>5vkK7_$-QucobsX`x^2(^bLH_l{_cU$>+hpjDExxkfQg7Q zR}vk#4Je`3tjqPY%eIqx`o;{H5nxAXfzjg)F87DkW^rZ;DUW-8m*okM4Nr; zDQSgP1ORI@do_EO#GFJ`hsWGbLvw4X`4yb|VSat?pCLPzKYP~*IfV;?!4QG4=|za93ToRnmay(haoG5$C9?I- zd{!b2OSviFSeP;C5jM(r)4U)FEllP6MOam;8<2T*>zS-tY!D}=9`7(|$ z@ge+Mi{}rd+s|wb#Bq!K@@KFF7fYP|SF-A7DgX^7YRL-U%G6OLvucT&gYW?K_^O`# z%Rp4g@`&&&(3io?f`Ry^=MP&#eOKc-EMuyEK$@PLfmjjk%K(#j`f}X_2df4YL-~IA zrsuyC5T@sv&7%+jXlAcdXx=Hb^j}#YtaQrdWpIH83)9zQ-%b+@_z%~FPXq7`mdlRI z3J&0<62_(GNg*_Mp1GH>V`m4c1~(~~ehoM?*AULkIZsdSYv0MKv(wY@lP`e()0E(? z%PL+~OCJ6B+YZT7;@@Y`I{=~J_#MUvnU=fl7$U$?vh!g;#{V0F{zSgKjVUuFB6 zTO%4Z85NVp#&*3wo|o&MO~hhzy8xe?HXW9dooO^_dd7b#{2s8!ZS9I z0DtxN^HEyD0@UpMwe#R!L#~g_V4Tl122D$>&n}FH7~oRBqO?70fblPu-%g1k>pF<0C1*y#(3(>JBs0V*5W1$oP&4=xiL9m1#{0 zow##S{@171UjFvR8M-w4?6vSAXQ<*mFP*z~FiPf_^>hLq##8IT08ndoBg?51n?udk zoQVeDS@hW$&*r}^+5_d%H)W%!Ac{Y2Q_B47fz-ieT^7zWHu-C? z*;tq#N&D_c)g6^3IuKRtGW6F6V*ocw;Mn(_A=6%Y$LP{YO|UvG)a)NRET>0==8$$N z=w?E9H%2W{)7&of*Y}NQC^BXXVnfXm90#@gHg_FQ+-uLk;xy2rhEOLYvnABgqcf3b z&A=oTX#u{Mrpp{)GB8=?LmO6V+2MRmJjpJ)K7|$8aTHyIPs)U=ymCpk@;lCsVSUv6W*Y3g{PfAamzI5sL zzWcsTA7AhaFi8&aY&hN)!ykQ zmwlWcp53QW#)D$z!r8sDKLP~XE(3o}C{&8LDcT$ZL_ zgQdaH=yrYi#&@YN8Ii$?mvH;5Q5A`pjEuH#PSED+`kB`hxGi<}3JY4*xcY@<_5Qz{ z>TBx5>I%Y32G*t3l&rg2yT2y9{%FGKq|VOxc`@{5!)@AOk`_?%P4v`t`D6af)Aq}k z^oU-9lPpae-<+eXhCd!|bb0Wg>ASGgXa(%+__}(qZGK9Rm}2Z1GQiBsYk>JKbb$5$ z=vUw9sEc|!fPDIMe#mLy`=?pEw>+1chd9cJdPo|)$`&-2VP-`{n8ukYnwYwr8` z-0#o({d)hranEnxY9k{Y%{KCUK8!|;{By7)~wX3(Kn z1b7eOesqoIT$4ki>CbKB*^Bl+nMKE$w_h@Eb#L53BbMglDMlKIsj%Gf29XKt6ha;< zFZ<2k{VDa~kwVv&LP~+>auIk@I?WB~X@TyZE+M`VO*%b#1Mfk}6&vXGlen8&L?&%6 zd2VB$@Bs7fS6;6s{rquQc-z?UkFt-iBFC$+D{5qSD&*Z6rPyUrPXy>8P>KgI)u(Wo zB|VLJG0@n{hV_CYZkYER0%AYP-|L9tm{~QNxNW&> z#tsegdB{qAcr5fWYqcKKO(c9+cSU))q+L-L2z-6;k*>HU=YM(&W&av>V{^cBMMHO8 zfl*|M?zV~f0$4|o#GxG@U|>t!iIx8jzuzO1?YU_=6fX62ykQMX+66v4GEn9jnCa7y z@$YGTFhSb*UNoPyF|C6#QqH17vAa4q^p0X9UC0Jr8Wi1G;VaFUOe<-Q9egMkSzNVnF0y0{=^~gloKqG&k}S zb9&F&%)nbxy3#hZt}zq*M4U3%hoeba;@^uJZX-HR@Y`zeeBC%>f3^adFKliqL zLJ+MNP^Zj?PS<4JQ-I7Z$mZ{eqh(3y81!(K_?iI)$WQ!d%w{Mup@4^EcdG1XrdG|y za7QvvSq7IB3%x~$a4@UB(!XPY9Fhu6itK*Ma8Fq=>?uPEL=f%pRKCH(xlEvRgK>Cj z<#@JlT~U{2kIysw*%k6rxT7=s53YudvTe_U!%YL}$dCn~FzGX?E***<%>GSuuh@IO z0EK6>Bv@KqmzveRhq{_hbn6 z7lDM<_JqtP%^6{3&OLkU9AhpWlh@BJ%Jo4E?v`O|F4MmP#d_hT3`Xh$<$&Q?K6Myk(5tYmm1jfBM-4L zMZ5t+)-@xHvc*YjLG1cMylNB#vrUnbHwpyxd=Kr@$X1K+V&_3{+zRcDG^l#5^Qh>* zpdhm&7&@-{;d-sJ%ABV3`ioy@Af-^qW&I=kT0q8yB%O8nT zYy|CAZ!N9bcueZcf+#)s^lO z+&x1te^|R)xw+}w(cjJw8Hp6Czyo?zuopTABnG$6-)sgWV^a-`Lg6Cy^Z#$ep>eJ5 z=Ke6AOONX#uyM+AIF`|lgf0DBuk6?G@XGu)|F|!&o4bRCay?1?7ZxdcrJyCLjrH?_ zIZFzqkQ(6;BfC&fm(@VPU3Mo&T0bLa$mS7o<;!1zmjH&HDW}if_KJR&3jO#mo_nKv zj{g0C%?I`Bd)cFRA*b5qN1Zf8u=jyJFRhb@j)bPu;`)6=NMjc8T?(s$EEQqMP{*(a!t(y0Y~${s?WveO93 zY+X6b69~CzJ(WRdR{GFaJ8;U%*9Ou!eVF|?Pa@a-0NZGD|Asj>V2Uj;WSvTDQH#Xp z4n*uvLvzXou+|~%tHPbK2bX+0go#{`d3*YM?f&hxb4+*I2EngQzp|pt$ z@~17t(+>$OO+&k|lTheA0YuhYD?8=gAFH*IdCHJ-QUA_6#PJ<-rsrM@wAsb)$Ab=z zXIISF#WOW)|4I6>Nb*2P{OimHZRCh^xP|`KBFRp;;WE$_S05p^l|HPq$nEpzB1vSO zC#3r52a4-AKkn{E3bj{QOO6Yq!F&T6tkG=saoj6c?;N!u(Uw1$q=!ZdvEN?NlKkcM zwcPkWO0TA}qyuwx7G-Jn zZF%b9;!w+@ToQOrhmV0$d-Pc+ThA^)Ibham(iT(}C=h=u)RzxIg9tls-hNN5lWkkl z?Szy3TGU|qul%XQ0$yITxbL8i8dr>nyC~*Qup@u{XAkls#K&oQ4>?{fJi_ z0@>w*e!kS(W@e;;+_of~s)dYO32DlcGJmW9V_PZ;r@$%0ca|74-33ObYEMWn(VV_9 zW+0kTVE(}jVf(_;Tb{@h`rR%Pq4PF1_xIAcG8NLE9&QA*_Q;%1+|o7yG9j+ALF~(U z&XCA8;YC7ZKzD?)K{W(ktQTfRuSb6(`&*3<0yp^DCg_mqZWU^BwB+IcMqPe#ASn^G-O&*u~p* zNygB*o%YbgnfHR4!BIO25!R8Q-fg&bUh!nu497K zOzN zm*!xQsj~iDq>Avq#yyPhLW$$MhcFY6r78HwYR+vZnX->&?hVdP)L+xrtlkB#|)ZnvP^)K78$5h;RZ}*je>Bf86kdf z=e%_g_nnorpVh&#)h6X)*HSLm?`^6^)*aNlTK$=63u9m)>Xe~qMu8#<3*fH6`O*r% zLUYPCWoaFK=Q8%k`@EL+HnsoWRSy!DyMpVs)b)V1Cxb&E5njxi@Xk?hX5F6in@(_Z zHu!wY6kEP@Cg3^Q(@272&gPC~krQOq?fmr^Bs>Oc7N7fJZ=>2-z|NkVsa zksFHQROj)XwFI;z^(yPq%7%sEQra+PT{NQyHoNFw!QNU&o}fqTVq32cihOP?fko*Q zm+;}>wc-&zl>7e@K9pV~OLK(rPQn$Y!n*gU7Czi{%|{XnXecJAnPHE`7c~>@F4dk8 z!OQ>SwKByH(99RuriIJ$(C3{b(}6DJtL8n$=6h&11SJ69(qlPK0Rep# zZ*g@I8banZgdZ<+W!0?IyZW+8W84KGE*|dF{@FZ>$GB79g$6y@sihI?=%SFE9N(0y zPPk!|uu>ko0%*b=q$9pCTw7Z{)(NVwsk?SM>8N;cyB)=a+g%25yW10@v^7nf9Os!P z_irle>(s(NcGPiO*ny^D`0__o+-|wsXt>?Do-)yKyX`KcIAzG2YemZKzT{9R7Tj+7 zCNxF~rUQW2orkz0#Q;Sm5A=MAFSk3!2aQpJg(3h)VQ#mH7;?KW7DQ3$T8A<~vrE3e z;adz(4Yk;QtJf!v2 zxIDP!e_RLRHoQ&LSb7h4b8# zJyLr~CzNo_7~h5cHHb-_ld&gEozrRL^Z%CTPkL~_!yb6z0quC``sDfq&0*+Y2j9d$;U3! zWDQe?T)1_5Uef&Fp4uKX4JsI;(kjzk1~M2Buyx+sxNSw6%A|P@MNY0pL%?VrIzwmU)IYS+3daIHsan)^sQ zTNEos#-Jgk!IP@`H8X8A?-qKwc6Zq_@8@S(Ab@bdXK2OI44#WM8}ewjn1q z*fmEl`(^o+b^rZ0Y@2GzPp;2bsF^m5`sUglF4bE~PfCNPt&~l(T~aK63;{Db zSMSEV`D&layVe!h{?fls=kk*yK`k{`e!oz?G{CY* zrP6Oqe#R}Yw>Dy7Gz9XbaEWEOFVpaWo6KVMRCVqz}L;98nhhcm0PSu^po&IPWs_5X~BKK6$aMezAla}zO$}f1TfH7*6A&j{cG5b z&0o1rlnWfOtiE)!@N4Bur=_J+cV{+f&Il_bJ;Q_Mk)o*YPtW4@S`30_zV)hLtQd#w z3WiOGv{bw>s{Ic$ZEa)O>+e&Z;V_E(eSy6M!2Pc3@r68*4O>*S4hNl1jO9dkh#0;ud5o!1eNyi<_ap59V%JC8eG8 z8H#)JqO`0a%nVEitHzWFZhEHf=)_OCV{g2-UHQ3|!fhVR_m`t~DdlkeGbnc4X$3jc z_#sTuPosh@YKn_?+u$C$=nt^m;5k972=X$xwpDsEP}w4341xqHm|;+J zE=xMq-kDoh6d?#UQxRUGHHU^GoQV->_zb$X0Xy7}W8~mLIJg1Au0PcKyBRjhwmoO2 zPO~cvxY=^>D-dbxH$uL}T1YTWc_FpHll>N6YRB6v$KGt)|7U91M9nO1k@v^&)%`g3 z8C7)#TVqj3ie)Uykv~eYqCN>3Ke^p1#qN7eGUbsl?pUp{)!Sc9e%THz9LwGl(dNNl zX&AAjOmhsOy%v^Jx0Fv_@p11DJ+f0cggH9|w#_4Jh*6OJ+NU*Xn<-t1tP--8mQm(1 z=2G(h4^8Tntwe4BX)_6EXfw#)l5P^iJz|8ctiYw|p4DD5;A(F|#le6hF%*$HbX1L8 zAF@xtDyLi2;$G~$dcuh9o(y|2P*ZKEB3;-RADW zeAagPuM3V3HHX>qz2>jJ z^LHQp;5%d6lZrWiheqsHZ8UbU;9L8cay>qc)O{=<+@tX+^9dmye8>wS;<}H;_=c{+ z!2|%82FMBl_OVfd9Fd(`6I-3=P;Y2)p?0@nq;_{$59+dSC_S<*P=0#FzLwcivN>cG z=!Jgfx`MT5#fpRVr7tGj9VYcFp=OePy`=J!q@>~;wKWy@oUzlIY0^uB>9@>;9d!w* z%j$anUvj3i}BBoV*$y9KvK?2}OAxl}OTibT0X?tl46!8Dny9z@+6T#<OV znQvvoI~)qn$`Jy?=+wfzeW(Hd8xz5QxkBv@PCK45#Y)aNAbl`leXyh-VCN1fJ z%TdBWtUD6WiOi?rk&;m2Zu3lRXvKz1YXa&p`JXaM^fXy~1$)Z)W!AH(kxK2|+WB40 z8i1Us2yfD|#%LqNy3yyYa-hMXAaZ6b5y%;QPFaBUFpDycQK3;MRA1xDCTK{;l})hM zY*$jeulXwF3Jdbs1gOI{Q`XW(pK;Wgv~bV2i%!g(M$lUl`Uf{K5Y|t_1OA~+&SOB% zw5fHJVHBBN1>>yv$|=Y}5A5;j3nGv+Oousbu(D--=IC>NqrY2v%k$Aia_c!Z+(QF) z`u#oKVP==z$J_2zusb7A{yz$RN`1jt(7F5G?i zLC*BA&p6Mf@Pbv5btO$yfmbxE1bBG&FSQg{uvU`{@BRtng7v+t?AH7HUVO@)%J&;g zd@>4FIB@IS=E<-bz93yw>7?>);cM$4zJ316I6w_)S1;%QAQC%G(*-f}%ySfXr z-xxzyG79=ypZ(5h>ejmGn{4C&4)E@Y?L2rlQ8tDus>RBqp-f0l$Ofvz*6J1 zjqw4JibT89^g6VRGzjnf#TY9G38 zjsuF3gxZRERwLzsZal%9jnZ)Q)1pd*=@pxaCV|+hhKg%=4fY!hoeJLa2f0xd9BOKW zN2;uNVjRhR$U!1ivanW_k^7`kS+NGc1Y(~;Kzu90z$Mva9HJ`Pc!f{;p0awPR%Ban zSdjsUIq~Sbp8=OZWYuPlDaalDeUR<4r?tl*aLVK$Rg}NF9ED@gD^cIF<~g!k%Csha zj5=-gx?jqApn%bEln5;q(UL}V`0g$6E3%$Z+)qr~l&d#brQB}yrNo25etN?!%b}R!y?#iJ zhokO_@^DGJBD0I%kLL`~JvckFzud!X*8Y?EqsCxFrCP%Ocf8)9b79N9@h{pA{Ik75 zivz*{^3q#126sBBb4hDF1eCbIX+CQVCKq#uM)d>ma(rSH<6!ac4b~W0=$Oz1WW*}y zwy@>MOa~WV`6Cu3I^rIyn2Rx1A$a43i|Pk(h+=D&ILFxe<;Wcjw9^~Pl20LRFz8z( z1837ej}az$n63KBa}vRjY`>!L674Y;V{N@~Vf(@NC6aKppMot%rZ9C3c-OmqUhT=4 zYnqf{=%+KjzMQg4(++@e6nI_-u8o@oR8y0h{QlRn&}P)ebS>34%DApfC5(d8VH&Dh z)R5OT1yEv754SSSI+^AkDO6ok-y9fGb|J+R2h-%JdaZYN=e*^(H~43uW(7J$uTq_jEG14=3I<*-0ca-+0ml2+0>NcXtTk4=)ialmDetIE_0d^k`jF# z(ZgI+W;Ti63-B!LYf*!Kd+Hbn*N)tbt9vr*2CnYOPAx88j*L|!#tqh{JfIfy>ox8v zo)1oq`ueQHj&aa+iEvXc#wsy1`zwV_4-^!V1eV?xg%dZh$Y1j;>0k!wAy$azKU;ThN8O!%|>CA+5yEJG); z9T|-wPvgfmv~215%Ebx?TI?|P9XD8qB=39Pq%oC1k8;?Q4SlMb;4pUsBVP0wxa#WA z!;{%j;#!NapcQI=X!Xl%ze1I&kOLrsNc&HD zQ*}O-xx@?|7^zpyP?b(ht*n5u2$p;d2XoiU-(tyQKb1mLZG!`b&8ok>{_ng)J3cfI z8fIDIgMS6!>mT#$= zrPJ!aX2_0Ik>l5r)zu*LZeUjNjWs!zF2&3yrPG$TmR4;%25X&By~P+xu)x!KLhV15 zLi$jXbPXBoDg#YB@$cJM0|pp2$!-C2emocOzIiYm9eKITppQWm%u0K-1hu z+PU9rL$GrjpD$j0;oRvLGmL`$$7Ah^D{r}zmPi&UjqUAhOEywFzq$kr(>H!hkGQ)J;>ECdhh5q6o80}higXa2jHzICa#&N zn*R~kOyWRc9lG}&Q71C=K7Zk^WWjywB)ewh?xMNY#m_aP<|!Vonc~3zAFi3`&=Kuw zFoAn@-HS2vRT~x9rC<#l|8sAAuyTJ-XpsH?JAAus(9^o(gWnYAWlQR4nm9SmGfnP8 z6NX(U1OA#pL={?0Y)N#mdP{Q)D-DIM*V&NGZYSii<#=0{%N+=?R*2G-64a=9v7blZLA-aV55@pDB?L>5z`%fGH_%NkN0FI4R4kMnb1CMwp^rfY zD%go@{1W23?pedSS_owx_72Z3nTpS@?C*o$aGm`??bFlc){E&`01Z#@K8LSu1C5GG zzX+Cavj?p~3`Ic(64)>>n&-CYR8;)~yb^A9u>f(7`ML=^>tuRc_u!YL!W>fRUQDf_W* z_pwhoGj_Zq2Y3*=DZ)3vzUxc|Ro* zR>X!`Dq+k-A>gj?A?T&DJrW5p+#7PqD@@k@p!M#tcNb+(dU(bai;b3~QUza^fAqQ= z1_X$$RQNrhdF@50c)Ahe+lHNkmf$G&u~4uvC!d8~`dYxAJnlj6n9FBvm;bup zxbSio&Bae4C8K!JDHEI-4BF|ZVc&XWMxXh8=HWRr9k@DXFg|ae20brAbnDN* ztn;B~{qc#YZd&!GoCtchv^qp`L1gCn1DkTpmcN@fqptt}8&Dj3y=nA?uv^Psw5t6H zy=5FTOzJbZ=@M4vgtl!M@6M?7ogSKAVMT6YS!X|>o%(6mGn933oF0~jhQL%#t}2ayt8diOVU92Q`Q?^eV7K#eo!{eb_q(% zj0|Oa?pffhi zhBkKtgI&EUC3o03s=s{%Mb-uu7>#kST}5*ZiL1+eW!P*{J!DEqY=zgWNsq4r;A+U( zzC8h2N1}hXE*(bZ4773ftUWxv;N%1kbkrJG7j??~ z1aXB_?EtR3V6ij!f~M5?G+4DsF50qq!GVpLX!s8B{!|y?TBS>VKv3{rbX=MzXLzZoqHwrKuy~X?`Mqq? z!PQ2%DOd66d&ZYP)*eN}5(d%_&?$h3dn;r0ZK?r_2v7NHow1IJ{yHz^+PDE{(h zD_|GRvj;>)mNc&b3S-2V_rZUiQD~=Yl40QDKd!eR%d*mc;zx|PoMn-d>&C-onQv5u zZ-JIrHjT&Dq4b7~J7Kyp*R5bMV36IglP>WwfG}7U`^g^w=KiupcK*#2`v*Mu60HLtU%>h z`WTt8orAA?Xv=NzZoS(JuIo{ump`oCt=!yn?&$Gv_6%?D{|%V62ysm!E5>2FLSmww zwl2-dX>JIb?!8lHB9c=1$P9l&_aSG^8A-zPb4mH6#rb>G^xU4_-A3 z6nQMlG)9F+olt$vr=X+!pEWd*;Kp`-3K%q4rNn!$ajFkIafT1G+xvK$Tz_IWv{{!W z&kn~DzqST5X+#mbKY+*sLGPJ2)_i$CVnXb;&Jqh^xAd^fQT?g99SL1n7hszy`cu|C z6HZEn-W4?@BJFKpI&_r-3rp29qXNZk13bRxUXVCQsZQZ+W{)G~rPL1A%QEGe-ja$L zC4Q%j4+gme3^mKR9sJh#P#7f$?ta53v{>`Vmg0e$X$%-OAyMe_xRCg2!jG9er5Rdb zNVIoGSivpCYzeX?A)Wf*JAf}|fT`A7qr$E5Uia)r4hp(kknXMUK5Ljg*fn%-e&%bd zu~*AsgRnhbke|f>D>j#hA+xhICz%v#kUKNQo+zBSARJQ)AO)J4Ynj6H{9>ePt7>| z=%NQg-_b7hnGP_}_lzo;)u#LED}APXOt0o+U!8s__Fk~hd@0SlgQ~!NZ zEio!2=9cO!{W})emaO1XA6WC11p!(oAn#H*EC<*|bIVTZ@NyC?%1#E*ZY_yx!h`*A zJ!Ju?UfbB_Z}kM>!G533BB*+?cS}!ZE8FkRxVg~kLK>bD*ihp{8=2M8wko9?aAme? zHq|L0$95Nni>fgPFo~l|pD;TUh0P+NIb{KJh$64ZZYe{G3C@auJ!OaMcBK{MOj{S| zJnLy)B(x({^rtK(J1dQ{7%?FBck|=!Gdn-$)~K9~ z{=9p|Pqw2+O(5FVg=X1Rh#;wm$wop?ssU{ba0`7YZEg8jCx%CIQl?Tax1~=8xP{;q z*8mjsEuxf8rH2ZWJcLOg3IUZr=dJVIl6&JGT{`eru(#HcCzWHaT-yKp2XDQfp4^-G z_oW07=3b(IN{2ED#ES4wC#<1kaQ^@(XE^$n#O?nyfFmhvLoFJUvNyi;Ei~VNDA;cR z;E8qgWp9EI=z`IKHEq#5y^{+D< zv`<^y>tBD1u^{FCbe@LSOgn$& z!!DCEHTQTpzFxKJ*X+)$$A2V`mXti0WA3l-Y+lLv5 zw4>}K9=(ugJ_6SY?Wb(anC$gt+~aFDag#h5lRQ%P7UXKpR-vqlI)aaez37WRQI+|F z26mK@oAkxgNXReg`)!}7N;XX$J zTSpy0vNuF!&04BbyFrjl!z}Ce@~JyNM*qyza-U$NVQeEk&v=*OuC5m}mBuG{h#S`N zi4C;j<$Q%5o{Cr!UGuZjL)!@TxMZoq7ro;1OYRii`NTH!WAedi*Vn&`kdOCMI-zoF zNvX*(!ss_%O$vvu6@PJl=jwPY_)ktmKT^Oc7D0Sb=WCX5Npj z+LS%{mv^qRTkr3C@hN*MUxFQ)3?h9uTfBD=70s<`_~J`(56}4+{kEifD48~iz%zi# z11sl=?nj44&SM?lxOnK;YbE~YHym7xwaX(jR8LA1yrqely-C21q1q^aoC&FOLO%9b zwZ}#g6wbsLT~ZnwOgrm1f871#1E2iVwKB?F##~C?|Dg%ZRs)c~prG0)FCfSUlWJ)6 zN}>HSULqA&kr_o)4ot(4;nKRAi{|=)wycXsN+R`Yu(Q5>&|UYmkkr$XqtDv;f9rm5 z&7#vor=7K5_pAG%tq)E^6`?U5wm~eg-aCX7W}5N3sAH#Tx*%qrd5+?4a^(e%ZKLzV zY*=pS<7-9p*Ka&B>-n3Bs1~MQ{%6bchYQN(=uB*Nq6?kEE!+-xDHi7?e{pX0$hAxF zY@ME$G(ULt2$J{~(bG7q^m-ka~$V^23Y?Njo7W)XzXBd*W>_3 zO+9tZ=LOCYkM zK8bJErT4dsb|mm?X*v!61%@q7BSGk_|1*eYS#H0+E%DIyrqhFl7})v5xu^OnotDBe zf`KLi4Q&IoeUScSv|H{;;>zk!?Ca&CY(jks$a%E7T?6-crR=y7m_Bn*~32>s+ExzDL4 zC4$cC(};|C^&lqcLsk$yixBrD-*!lh3x&k$f+((;0u6qvJ%MoO7*O67dJF}-8#)sF z?wYkWsG}nO$pN!{rxuKwN3|UKRv+kX*AB5DcY9oapx}{o*gRKf!uxX3<)UEMc6{i% z7Yd>Px~}L?Sw6l1E=aWByUTq_#4wo{{!=NW4>d{GknvZ(rBdWL*W|ECyuT{d(0&G; zbDi~_s88;ef3b$fHB-RO_6^pi$+4Aw8k6hGTt|^$h~#wQSK?cR+a^j4ICAJE|Q3!4NO>QzC&_sE2D+mU!e3w?7h-{9${} z|6cxZCAsS~;FJ}Gh-{rU1I;Phl%;j_oy*uC@9*bULA9yzwJbq928idWxE}b^lQAVE zCHi`kmNl%1J&gy~1swx{PLn~{xOhPCxT>7Itm zPSBXThRBu*ppZ^%oiobDIZU1_#rJZrbJuApxn`QIG|sUH`^o1(!(#vn6(OI zx+H*W-Ddup1xIE+I63jJphA*e5-ZVM>j1og6@KFD^av3IpxZeJJFbJ{*_Gd?fD*K8 zw}T`2{v;Rr!o#(hV+wLde;;JK>?s289#$&NBOl35Jbkq72{5Ihlz17|lmfREyE!dz zV2DIaUWPS`oy+W2UrIa}?58)3m6YPuq$?X%?yz&Xdm=;Wl(fCU+>NjRMiNv`@Uiz4 z*R*tlHIDjAHDR!sZ5VGWaYoH-s!^B(N&FhqG+5L%qX?WTKiSj2){rkl{m9_v|6ZCF9 zkOCkp|IDc&eAvr>uH2uZ2#(I|QQEJ^z;XMR!IDNk1{F&%rnKCc6D1-s_Nb6MY8?X_ z)1j@pf5}LHvhKv@A;IxMTutuNFl)v1N=)pJ_wXS_3Y+x@`A*ck<$tclT;-O8ldST&48af2$4?(l;r!2i2@8+w0zMp_9 z0mlb#G%ibr>EOLfF4bE~PpV765cMhJL-9lt1is#&b79N9@h{pA@Hu6J*QK*~KwI{N ziJq`icU(foPj0tLvHM<=OjySfbQvkeyek^eK;!O$sN__ta>R~)@SU;kNyVJM6?f*P z$tCq~X^O>MLr2v3bUt+Vk>`!mzqwj5`w!r01v@^CY>g)Mly!g%5)`alB&UqSe})mC zx0`Fb6e7&!$c$73>wBPG8{&~aG?f{lh*9o<%LL>5U715y0y_<=DM9o1K{bUWnT0d!tDN|AV^4;{rM zeORh*q%r1VtgRQ{l0*=g4#*t_bTS__*Qy6kY>T;L^~#`n3#{Cs{JSj84ji=x?utxe z?SmWT4k5BIpxM!+L6_yiZni@s_jxs%etGroG^}5~Qs@F!05}GCWV6I0eP~&_Ml8~Y z-kH?B)&YAIzUjkwqy?;~cQh1EAJW7xeYh*ulcA}Q5|yj1Woh8(1Vw9wwE&O+MuzV` zGRbvn~ zd-z&SqK*WAvZ$Ed(A4PGga{SjD*%whATe&gzo$FQtj(CR>E!rd-rKlstvxd5lZct! z8DhcgZZCA0)0#1L`zfiO-@Yp)7Be8Q1ke0)=TM$ z)2U0BZcvZ5sFXht68}0=eQr#i1e%u*at8^{k_z&&qC3`-jJ+e<)%x>|`oWfgw-2s_ z9q%ENm)>6UC@<~na{=Uj?CJVw{As`|fWn`8b%#KLOPcV(3`j*$!M+XK5K%;P4T-DE zd}Y{dQ9WczNNk1It4WWqR*hUAvhUgRS5yAEia=E9ld&B4|1k|ea3nA zuXPc7&2voV2hKC2T6LzPb!J*(qMf!b&B#>eUQDvE}r_?ToU8U2Bl=<&#Rt)e*jo zlz5M_@V1#jNx#@iD#U>F5B#gCs`$ju(HO+>w2VgRPj`X(n4NVSJnnu>sd=`+y+GFy zp7-M(6=WOzj*g&DygALa?Tja59+x%)Y|?DF)>U$MIT?j^x+WP0F8<@{GKySQn;fyM z^q=@Kta{j-w%F?JuO`222g+mQ<~vI}il{XJGKBlAzQ}d+#Uryn_^bVES!gqAW4e~= z8)bass5#G!C4}5yo#s=1tC(J2qSeBaSJL2BB%#otMxXN={oT@Ao{ugbgY}Cl z(=JCXDbXFZkqXYqeiwUyl$Ofvz*6J1jq%NMkPE3=>Pgnxa*;HK`!4xRIdY#fh5@3H zQNyLQuM9va3-G2vbYmgnK~#F{=BM9NeQTOPq+gV?F>P|p(P`405mx3rr)^=xE~Ok} zd;NJPaSM0hwL7c`|8xR}@lwL+a#Vj{IzH4DT$A)0G8HqMluldTT3WSHcv@>>B`n7P z?tT=k zYb}jXf=-GOFYmzSB>H$M8nlkLSB|~ewjUU@=my0@Kdbf4MIr0prm5q(UnLpa?LM!6 zE^2QclCla3agk9ciG_?B<@h~v*Nh@vH2fzvSWfs5dX{--V&7cUfOcR=i9srHS8A^2 zv>-?4nfFuRx|ht3s#N-o$+h?PYp%KJK}& z{WX|JJ&QEB#F9^F*T&U4$!mfp)jAn2Wtfjp^Lu06Hx$X`OQR%0keiZdT6tbaDOYZf z0b@bjf=mU}wZ3TF~-QEs*xd$mkwO6Z>Nyk28mnR=fLM`&SSI#@NP zM8Ga{pn$DZd+z1kg%&#h3PQTf5oJok>87VMbXE>U6)6^|HcDmv&kl%`gqpTG!72eZb~}di6b%wYQ|G*yVI{iVGd|QcUuQy}KxT(nG2> zXS%ijwQ3L{olkv)b&pGdG5{kWbh~? z1RH0tfBHHA@8pwnY~&b~ypu*e;|yWm$z{Q8jlK|eYuSs|W0J!P zqPT@TEoxLvspys17-=YF(+EIz<9f<0F-Oq3mUxRMT)BSG(lMAxTUy8%b1_}V&|jru zY0qvT*ARe6cwYgP=?%!=o|vaCAS^*fXamIDL0PjS7D6+}VjQ(K75AL6)0$}_Ccc@y zb)F1e)092u{Iq6SV%es>wkCt9^6@Coy1HSm$eCkIhaJ!ze1C^V>{e|wcCff>((~dr z53s1PtP&b7B3bp+7z9SzS^KhG+Lxjt{nK@iw@g81t&hRlm?-7JSFL|MCo_{yS|8Gv>Cb$ zpyL5CT&i6`d`g<^HH=)*1G2>?xdqk^)2@^aMhMY#$G&oaLF zcEQnc4|2y`K5M)D*9BBl)|LGW(8Fdr61F#;9yG+j&L_@2)mQ1X6yf_TRIr(>b40*q zIv)xrE8qzA|dLyz}RCRyrIyQR1b|;p@UHaXDwDtpI+V{>vkXelrv+;yS^_gvt3E? zzUHfxD=bRQB4b^AO&6x$H9uvxJEPKfdT4ru70LL_l%Ef$;mY5tNm=pfl%F81kp zN%MnOk62b;x|y-)u>wQ>aQ`$ytWA$Iuz&Uwl|2p5QzksLJ7QcXx0XOK8DEGr7}dJ& zvra*$!N^!03J8lnK9^w+3t8=W%V>bsRI z<@TD!Q<&_kbYcATEaG3D0g}S{ll8XW$dix*R7$<1RR4=dc&aYlU$hr22S&R@G25A!C8@A z%rR*fxm^nJ4N>aa+0yg-lh({n4>1a|U;DHsZ8KKRM!-f?(&Q-I=KPl6l zp1+5rS!+M=;$GvP;`!jzsISlRv#rjoNpjtEYQ*yQbHCY&qrwx8iY2CJvkYSZ5l@8& zerIjfJY;Iv?X@pj(!RM4op~*&QxHtq0PaIH!aeLZ4Q%Ns+zRMx#PeP0+n`_E1J@OO zF>Xq%@Yh$y+i99Eh?!@eqqsZ0M05Ja7-!7nEm(mWbN?qs4r#=!7YOwi1zezh-cXhq z<{ff>4TZ~Le+>m$I^PG*AOH0J0it%RtR>Y$r(cS_7wj|n*^{bKn=kF_acQ9`33A)J zO~`=6i8&a>1z-k+?}-Cj`mSCeA^!{{a?pI{347`dgH7b1d2A^2T=OU_Gb{vUMR+c+ zTHKw_IOd*6=mEim#K>B_?Yyh(*8BTje9E56|FMCJG&AvEEcs_fpq#+Du22of8l$Wvf z24Ka^wEv3bu?;t9@jqoG+jOC8;%>s8vMf|?C6NtUDmT~C`nzS?)H=%CB!+v$6f0%x z-`3~Hf*|!d^Ucndl$Ff4vf&*Lg|bE(_`7BBIc4=|1Z*@gr}iKqeewUL<$k3ngXf~4 z?)%v_{-q~_s(ErC^$>b|m{pT}LRj&_W38ER>5G;-F(9 zjIi;l`w_Pdr``Npu609Becl-RqGNqxgKUJ|wl)X*^Dp0)p4ADzHFU{cQ^F`bDgUi} zG6)lEjGR>(PdS#5j2gj)-VER%v2L{3scR<1xG3c)?0;7R*$&KyyhV^#R23QkgOSm;PE*mKjuQ`o>}R6)|^1OZwe9GzyGZ6giD;dUrynNpnV6nKLPDJ3xy-M_`D! ziIjiQcN{Yyx0==h+c*YQO>5mLUsH{ge}Q%kg7>WQ9@-=(4WZBQAd-JXlB0R$$3JN-YcHe%`Ytd2zw1k?VpS_({7P zBKLVUntplp?zHovyN^6?oc_(#irFZ<$>B^b?=wUY{ra6Uw2m3>_*{2Ic{sbi+w5YW z?m@N&-CI9+UgOnZg6qix+xY;a#RN&SeMx(S$S6qg8M#WoG5Hy{yxy7||7Sa7fyyh` zS*tyP%qUp?(Fq^?#{N{_-P%JC*VVWfcGhCa!xZvjt7#@428IwC=J6`(r!|k3bAE&8k1^cTxIaJ2IfcX zG4wTY#(ia)vh!S8Vv>uW?ue!3b2n2L)q3;e?&HkH8R6{}){><`a9P&|YhMMCM8T?e zj@poDtNK>j!Lk%rP;229*sLql0eQo*N|p3n)41ArAH&zm)l$4An#^j`ef5<-Q$D6w zOOCk|bKB6zpkj&0=*j6>I)Ir1t&l2MDD>7$Nv~8oWx5{+Pj*TA86C=A>i|yZU#kX< zge{ed$J*lgf?9hV9NhM9mk(fWkUc$reXA!s816b;`qRFb%vV!c(&m=xHLQWiEh)Lk z7~(VcM0LZ1Z%+{FddF>N>k(__8@0$&PmCjJ4EJ5~nR2|=ocU zW>wFk+`u(-Z+_-$tFc$hbf$#v`OfS0%o$h9jn;=o|MdLz9N8^pS`$A;owj;y3B-fc z+ROCjeB5(k`|DZO?Frlu-+ZX(p#%;tA#b5^ip_(DS(f-5*pRvk7ncyLmE)1kQURlf zHuKjkI5P9W$%$AiNXe+Fpzq2+5j`YtCmf~^B zhP(}=?a_CUkMoFcOwB@GM9qI=O~|07-sEMZVeTXCY*DO82j5j9n(X-z<)&;%a`t*V z{L5>lU$5Vgvh4ZWQQusYUt5}*b;s?mI$I8fOC4^Or48Vf;ypY; zw;+jbczVlTk3kGiH4%Hwb4=z3&ciuchx72HGy*z$*b?4t-e9xq3e@A0?TfnlyMH^# z?e1p(VflpFF&ka0o@T7t*&dNerIj_G^kJU*b{x`&tRx&o1~SrzW6-p;s%t>4O~oaB zI5tQ;(ucli(uYh3s8$+Oa659-hf5lTkEwKOA@}YP2Ci;KY{3ebGK7z*h)M0CVV#0$ za%`oa#^m}k*HIzK`<^#xOr>1kH>jznEbZ>_7fleUaYAqPIp?P}3u6H5H*$Y;Cc)`+6zmUf4yop-SU6{xCYQy6HKWNE8+sRM)hvmg3YA_H zhs%e|-Uh-My@|r#{eI2v%zFGs#1e@}VChDo$04gWp)<2ta_qGd|MMFTuJytglZ%@m z_bwdj*GaeIE|q%=ta^AnkOkauvrrLyLn5i5-z*D2_2cDcBoI01yYz@QHU0!f!q;7{ zaaTPVlRQ%P7UXKpRuTF-M2vQ2I#{E!Zt!{W=^uko{bK2ZM3!12Ve*Je*>>TsH;9E_R@c z3+u%`uL(l+vr~^CYGvAiM>VkKp{tdn&xh>C=oO;JLITGmff}wr8)whj!_x~+PWb&j z-C<^J#*|Gb$8*D|Z>&GpQsR`!I2A;Z<(d)Vlr^*WhrN*mEq4zi4PzVWdB(dGcLDbB zK~xx@2!n{}ni1Tt1l%U z4EBSLN}uLa#>i!>ll$Xj2ctY-iDN+0G;8pL_jUn4)*M{F=`@A+tCk*Xxx{Xfp@iY1 z66)&v)8t~1gLRW*O0+c$${k&YdnCs_$ki}<@8~v^1ep`Ziu;6csa$xG8M$+^+=kcK zRY+CmWNSjiCZMX~jF{MFK8dw$rq>tPb+OwxOA}1M;CHP9Ia5+>GrYX3DaM7VxY%Y) zgT%r%W4GE!Ln)hPyQEnDm^7an3~j_k46xN703m*;d9M8aAjZPOwV7iIaz}q3WV`HX z?J++1030v|WsOAOTDNof&phebf+ITj`Zxl5r04A!gC*ab9>mS4Pz_4so)$r8X+gdC z#3X)bwU(YG#_>aXeL)n&s0E50|9kO6{hvlELR7+l+VTHN{Lm^|EaHcfA!}${iloSb zQT*(aLrr6fWPJ2*DOaJiPjda?UY&_#o-(uJA`|Y_xV~)tA7D?}y&!=?Dn+P%PRAXb z$=i>8I)Swh;AKYSs|Wet4_Ly1{lp zN2ou!Vqe7c|1zy>Za(o7+X~%_u`AtY-PPay)B59#NQoWq9m0n~CBjh9NSx`f3L{ur z5G7f398D7Z3S>y%;Br0$l5tNU4rPoKFN6-RO^NHk#j_ji1M91Ep}R+TH7OjrR{X{J zjYr2nZyNK%wOh;o*oYkZF8OF1yQogTNZM7pPdMLETT^k*89S|+COB*p%FR!i?arw5 zogSKAVI}%559h+67xIu_o*<-Fg5DHlvW|td+9*1La@GD*DWnfIN!O6^SH1;pTcvt5dNtxBKAkwRa@sWmob-;_kU=@P*Kq)%W6|2qjI*L*BU^3 za#n}%LBh#k-om|?QcqZo?k!s9^mhXWj^C$%2x!-C0`$2{lNogI9^(7aBdVq~;um?z zP6zdYacOzL(S>HzQWgs?%@ak9Ebc$nq7yTxopCZ+voQL{2V{50z^?dA{$4{v{3>s1 zuohKr2}xj@qxcoh3CGlE!3Uw-o`5`sn@_S;m-Eo;l+Sw!i}eE-Yf#oniYR_zJcm^I zM!K`eoLcE++PY?Y&bq9cX$EKBlNfe63R6G`@P-4^eT$l9x&8XK#6#PgfbAiIh5pDO zyH$s4QdgUw9%2+^zxHWO+UA1OJbzR(u8LnnA}rw!&4AgdrFX4t{=~NA1SUl|7*L9z zDjWSF&skrIM?I5*YOMlH0h65p8ae7v5~=kibv{;7hkzZ06lB*E4m>BFqk!-x(}9-)B-?dKC)np=+6MK!(qM$wjT#GF0okMt4sE~+nYssTB(x0p$rhBaZdFWT4H~c3UcF@Ih*;Qizz3duS zlQ`G>6m5RcTo@*S5P^+=A(NNhUh^m~?dx*^gU8pGtiF> zzIZ*$+d)+u(n7(Usow1%BaP8#ooqetCmoaVLnC(x^%3YiflkT`gHE7tn(I7}BuQW_ zDsEAZ=@)0_P5T!32-JZPqTfGw>;3fP-o(EzB@p$DrU$^rqF_IL@2Us!yc8l5c&@@W z6S~HRdNTUU9T;EGXw$A}5KxL6RyfDl`Q^wR47Af53cRd_zkFp7735 zZ)V+|^P5i0n*Gjc>ejmGo7jDX*i)C`g4>!>UZ0w(0k_T+YQD!OcrW$5O?bjoyq~7o z(z1EeFQx28uHEyS@6!r$rmYKfp7pd2B(wu~FSZxS8gU^t^f~)snhTCgGC(sYkmT0+ zS{Mgbr~C#7pk)+mObAX@#P{2$ef2kIN3O&slKGzh#jco9;&;mUV313|&}!I={h#e{ z6)8Z*8k$}zd=0cWIsv020UJn}yBFMnZDSF~dZ|C&1S1gwTG1j3tKERII)L-V%knDW z(?katxY4Y0VE4qhy!TjFg=43sKIT=hs%vLU&sQ#1IM4$2C1gQv(zvf}M5oa#<96^{ z<3nNnfT|q>db~H+a~;s#e{kz|ad<7A!YG`yIDhZub9kT_-d8wCmkDQ}B&S`Wqe^yX zTW^8P899xHa4F5cX6B0UC@m|jMiSr~sqd&Ud|_0M(g_P4{Q*`RB-#^E??Z{v>jr=) zI}$cT>0xUz2@nT3jaF82ntLRy=n6fQ9s86sW5+vZbdWnhkjO{zj)QB<~COMcsK%iC`|c5kuXSd$YJeG@;&8J(*vz8ynaHfX2E^;;ZhGCDTwM?2Ojo# zroiHx2VgjwO0MkaBSrUOIL2NcEP118^o6in%U-k|lLf2#I5k#hT4WSkWO(TLl!m&NZS`aX7R#k|Pq{R8=fQ-~?a^?%11zySNQ5)Z zWE~y2U1iDl-KO!r_Fygzmu;Gmrg-S`CB1Fij5N5pH0pA@r8d=2LEwP}yuQwC&^~Q( zPo*m4z(-*LuL%(c(CGFl5mDNjCQgp?Op{Y~rRHi*3vzUxc|Ro*>N#U}jBuI_Hf&L+ zd`&rEO?!A&9Jt-FFPAzyI%+DUMCEF0S@H>4{lGR$eK@8 zvS6UV zhgF49%rEJoC~iHHh#bo6Wo8XZPTZzVF!9jF4&e8hMUuN@YPGmAKKi{o>^{eN79A50 zW@E=-1ro#sc_pw-3zZ$?xub(E(b+4(*M&ICoNlgNSd<@yECWX}+Rc#!BHiJh&gcGS z7Y`H!;C;iSVQY9<#0He)CxG1q|5XoV&9>`$a?2c!US`Ctg!1zUOTmEuEQR$no)bLL zTqd=mC(MSM$O7gVHk&I%mYHon>sfyNK-)!~nT`U}UOmXJpW+?R*AI}CE0bNA7jCe% zP3Ro&-gKEWuPhh+)EM>0`*ek0KDMtivestV_0uZ<{_u~XfO%Bw=rvCI9BKta zz?u=~3;b>x1|%j$1rUDb|3q2A4NceqVo0io!!2Fa9g?fr0c#y<-yjfJDYLXMG+U=# z8>XgDru7$K^xlrZt;Dj)GB@Fix1ItAS}N#?wXv-sNwJJ|f>C%TQ#jr|8)@gsfXpU{HzQ{#BBPC-$bK7`~`e_+iCZFv)a_VN=s@;J#>wfDy9CNTuOOO@=8} zfQAyhvKD|`xZw**U^8^zNndY{U9z;u1<|`oKvX4HhP$F~wl+j_$yf?s}HN(^?V@J{bA!<(_VG^qRf3fJk?RH^kd}5}i zhoXgcwF7QLC&JxZm|@LyOYW~?%lL$rHS=E&_N>(+3nq&{x=l<_y50CU8=TySC#<9eF zQ(o$-D;`UJZz(ojotL8G>mkmDVT(%-Ny0aKJ?FH0ttut!fMW$|?K+FDS5EB|Y6>&#P3WB5v>(GrXI;|qt=*H0)E;OiMb*N zHse9~JOW$WL`sMW$DGWMBEoFD16OMQ68R^;Wwkr(9uOad*hySSVgLMrs`7t|w-yoO*cehNB_@SBP7t?GNsq z0Kro52r;rXlq5?Lil`5jQpN%|2H0k-33wyTMCH*)GgU#M(wZ)O79XL0IKJ3{SG|4Y zLmFv@txr9I^9&xbGUsEei7xzJyfR{Uy~|aT{OEKtcCDA}uTt>kns<>-ggzdKADhGCphMjaWFwOwb9#Kn6==0AA>DV8laHT^xH6RAc06GzZPKi7KdK( zIOj|=1(U65^gF5Q!PcH(bahP-CkmRTHqB^z?jVd7ptA%tgH1W1O|gWE6q5@Lc682S zYnrLOHpw)DP2#(lWg;Q)mfW=`Vav0Z^S{1<2r*Es17v)g5criwGrrjT;O@^_ogaSB z*Jb(B@o%^Z!*gxanKUpv__XMq`Ev4K3&O3)>(4DQ*Ar!O!j>Fj=cw`!0CjDqJ4Bo)}aaL{sj8F3cI& zkv~%E_&wE6wA8w+=u5uOy)ZxQuCj|#4INrK8&s{rregy!5bNYO<2ukeU&jMo(2;O3 zC5clK50a%IonX1jW8#p^n2<`-u)}x-IpR#K+sE={zDfFm)wRr?ve(n2>%QltlfId` zU8;KG1&Pi}_==UclvwY}JH7s`hvdKEx#kvp2$~o;g~k8<83Mo3V5`FI{(F)`RF1)S z|4E@N{{R^AjDO3#Hq6~zDZQ{D^n$V*$7rqfsljB*?2iNvk%tC_pE891)_ihpeEv)R zSd_4#Aw;yRoHd)q15WfLlpaA3!r8xwCo9V?h*RjksDL2tW8HuonX+Fodo(NIM z)6YOoX!PC99=29lbB-K~ACyDqH_Y=km0A2C^rGf@Z53~`!CgbeMXX*!h_&>hPB z)dvkYH>yTRO0DbafaDsTmnbWLAvK0kA$qJvg(^L-0BO+HpIW?co>lfQp0~^Y#M5Ul zR{R5kC!rIR);%3@JnRMCAyNGR9Y8uOOhPaYmCvSIlASs6uC;5fSE=j@IR5i9L>xwv zM@KM42*XUpkPJ+x#Du1J?4CbJlHytUuuHE1Hj~Zaobk|0FZHZPMD@57Wp_F8ma3AV z4%tOFstk~_6_MCRQTo~bq-hetnojx{&K>Vv#pBMW{1sh5j^0e?M%4KJOJRp*Tw|+{m|0@Kj)#0vEx| z&^10b(Op&{7&Z@vUpNifQF`_VnvWrC?W!CzmF*74e`>-){(^pcGQWTzCtu1-Rn(&eps>!LYM?1x2Ya8OsCP|8Ag4+;zaT%ue$6IlG>EH`l}p^^=QW|lw2AiTUCDuit?UN z1#TfY>H+j6M2Sn-+95AMA8n4Q$d49nJ_j}rmX3C@&8o>B8t*DLX9ppr(sE&beAL^H zR$c%26VE!N#y4kJ6Hun{);5OM?af&JD;B*lUmxmD_;T>2K+u2*SqRgl3KDe(wwJdB zn)=DSx}&%qiMlg3+0&~;#xZaV5X)Vi^k+htX6X2p=r9$rWQ#!ivaKWAob;7lg^yn^ zli5IktwhFDvs;O_3B?o&a$5>5E(WCyT9 z#q`Q@nZ(|j6iXp-Zo@|1Bb{Z>i{2A0SC58XmQrw$N7cF_$40wMk0e@?P`IC=MHs}Y z8gHL@MEMAl|0Y#5u@oW}u`yHqvmEn}!e!?bXSwe--&_1BKbpNY$H8u}5HX^(EbZ9p1D^iEdqpa))rTA+9E^5?aX*+`F(p2A2I1 z?11Fg39C8L-i0%hIb@lnz>`1rJOL)HXUnWIphAt` z<{pmnb=BC?T)n!eAmq$j*EI*4Yc`;y`VF;f!#(s`)6hNi=6qA1uLvd&%#mT>)DV6a+TKWf$*P$q+oMq;D5tmqx^Ii%017bU6Tm z!A7(ZGT6!7tsM{yPuf#b68@Ae`cDc?As8Z$kTcCi!TRL$UJjTiqvjgAeGf4fuLMm%ue7Vlg~@$Nccb z1h9LggOLBBL6IUKwLj(YU%=@6k;U;YTJJ6C{=LsWm!8SKWO&4vQ6jcj);6#zm?=Eu zloiZ}5(dH6v;aylP4Mq=+(Q*X6HAd<_~O=J$J-OG6J}2-l{iL*uUY>`!qCN}*f@4!yU~xBAZcco4*}DtD~9SZ>o_wz#b08m9EjEN8LLM$ zM7k)qi{9szR}ZhUbXoQQZ;*%U=j8w^1sc99dpI+Ox4)Aslf@0To32;|#?fxJ%KZ>{ zPyDyu=zk8j%AD)3U39BA3QYGN7>cFvvABE{8r$u~G2&S3t&g}?NJwp5n59T2G3r$r zNj@*kN}`Pz(?2~pGYbFms7S$N`SEbdcy*enAW0a28xBrcds?e(w$?qdI{)ZC2IxJM zQUAs`fZZs2g>f_{6RujHbz=wHavSvn!PR^+03)azPj z`GVwo5--)qEi$oOZBXFRB6R|XdQUtbe6fI<$NEup>9mYG zwBAUv4Z9ubv2<^tzf(%@n&RpRiUbFSZvd7nH#aI0?h-R%* zL;nj(>L9Z2hUL>+N!>A>mDHO!Q&M{Zhnyd3r&;P;elTjxwKKvWo$i}Tz?g!^Xqm?veUKRrKNzS zd;1p3rT&nN+$B@1#f|aN@7+lZ}*B_IJ8PWC)n_HUdn^8Xaer4b* z%z3C^)pJ7&B+qTOUh6;@Mk;kXA%o9K^bSLHq^-L4@exf~QYx=aZDy&*voQ+*Yg~e# zB{YIeQK2)DoH7lJMJ*V^5NsD({WIuO_LmRYU~xmTyygY5dpWo_M!16Kk3+ySI zn$^vw5^mV890h~fDpJBJRr;IqY7>Gr|@|^yY zXeAxjsuha%k3_g#h4C<0Gw+=QKJ=o~!Zh=W+3+C~KRCw{^G$iFtFCw~`Mm{hXBXaJ zgro2w<&{YgbQva{EgCem^rsL1|H_%jYoHf7(5_bqRyS))xKR6B`6CbR7zTTY7gO%?AdCW0oKWsK?q zt14^S*q{X)1|q)B>Cg}8#r3hqnimOHKE`-1yNY#cZ*w7G?baD^Q%(A)}7@mp+nH-)*;)5cOsQukfsQ9`quTOm{@E-L)?|eFF z7v=qD-QvEqy&*EQv$Az@V4MWL0(4UMcaIy+SJX2zw@Xz|ydcqeiEOmYE@c@DEIiCE z4+*-O{$yThVtA#Y)Ut*!YkpVaiRLn?6+K}#+{E~>GFd65DpTt@fQ-%7O&V}6(Nf%U zsh)UR{cV2?&;<+A6oS&2jf?!DD!5Cd2*ulm%JaL7?_ixK`NKn@(;|47(0}$3Jd}fOJ z!pCw$WpsqXOl75okLDQ4tW^WxTS)Lm2uvIBdMor=8|C^+7r@?jOER93$X9d9*DrH9IQA185=03_$D(e!>9%y=66*!5Uo}{rg0=L(pA$v%YBOVoIsJ!#$Sa%EqZ4&Cd4`?;_dW=_5W1Nf{8}I2Atpmh2 z@*YgPJb(ovY%Z!PYvHv^24B3fJ4fdu&a`ia?kRHt7Kp$wfl^WtigXt_FIKv_T#W@>!#%6!dFuw_LUf6GKO3K7)Y zL$5Y$}L$3d~x1R9}{FHLEZ4*RA7E8MCpiUaBE88`B-JB`4;uZacWwo7?RGMK!YJne->P;zLo}HaR%O8TM__4hScT3DrTc-_f9Klq z_;c(Bsv2iz={d(C1uV@u2>re1zOx_Q_J_SGl{zGNUHFtrAoRKscAYSt!-t0Ts$*-u z^l=mtPQ{|uHCL_JS8)87w{E(#wJN3N2ZWxNXa`fK1nF`-8I<_@?p1Z|^f! z{`cxWu*`vm%fbKPWLHX|0zeI#Fw;*vVQ=R+jzY38|HQ9vT~_|v%&Iobuq!~?6?(RZ zrVUJ!o_mv?Y0+~Zma|Qtap@jO4$lEgP;J0jIB+*y4o|8m7$rRu_F4z@W1LB;$sTmn zxoHwU6e{It_;5(z)AT&9L1kYHAVS+Hw+ZwY)XeUXcNMoPwh<}7+|Lt6;}4V#Xct&J5ql_^dcSc%5~?T0mKut3;T z=50M4WK^4D{Z9H5@TZLUg!YysF}<>O<`_v5-Vg~0d2va$h{B&7l2L_a@{$A*dm$-tF@wOA zi>XTjdJX-oi%VdCncLa!L@!_;OJ{tN?O{RpVNFnnjP6W0FH#MX>?fvPBs0K^Bnah% z1d{;uXXo$D5UZ8fv~~x` zwKkoRz$$v-D+;6NbM*cNjpQn2PmSX@YS9xIA&~@Ja0_K<%stt`H@TQsO0k5`nopk? zQ6DO${DRMhSGqCym}aJ$mAAPDj(xPkeph4&ieHcRs(>0}KV;sY!y#B;F~u+R(}uBC&7iyvPM51IKE+vvXie zc|juu+*1$rIs4ItTR1eGS4K+;c8x>FELsUGwX*1`N9O_pt&@N|O3urBS~zCfELEh` z?ZV78GlfHv%cNKPg<0sdB?O0}B)AWnz~IbLE)w`!XRWz$cjq5_P8~or6r^@a64`mm zl%1tcY_26H;E^h)1X{JLL2SFsjF_V77N#FU1V4^dx z0x#p%a0O(Ivnao1dxAqG+Eh)ns@0+cjwGbDX?khZXx9ZCKC!h;{qyV9tF8(c&)emH z;_0&&EB*lzsqm3|&HKj)mV!r!k*%T3KlMloGNM(A#u~@+BHeVb#aClGJoT~1F*67u zKhqL~MLYLdeUhKkR_Sgp_I;^(YJV+i_qN(X!+ESvYs^FW2>^Z+fyD+(dy*A&I>q3M zT6Kqna#g2vC!Raw`Ikez&!KE##|* z&d@QYL{#WG3!;=KVpk7w^%Az8uqlU9D#02pw!~1m6 zy=aQ@+R@h&6YK%V>N$E=+wD%TZMv`&&x=*^kxnOlX<|ZXmaL4n5`zxHOp)_ia)8vkqm;t<~u@Xaa?iCKu6z{6iG=6 z-{y7!0?V5)StX3F>DT>~9t7ae-;0CO^V1@Yzifl*cl;Ce(2fVy+h?=zs#fR<=y4=x zxR@xmzfT|&1t;aneks0+gzWjLWaLwAo8+IE&As4~p~q$0liN44AragK2GYhRT^Z*y zu(Q^X%vfzHdhMR!_?xd6vv3;tUDp+=jw&>zu2m8Q7k^_JzMAP^4!Erld7dtpn8mn? zU6{4tdmn=>Pa4>~>*5o?7CPE~?%FMh!Zm|*@R;Xg=$2Za=&6Y$ci)BXJt^aypeqaG zP98KtH{O%==GY}mi(C-Bt3;y;rQGLUm>+gm*+r>la~++IM3%dgo5Au`=pfk3Lfl^L zz)mphd8VAZEW4oH6T+?tHp*ZH_xG?Q$^IA&78Z$_njVT4+SN#)-38}(Bsv6-Yu~Yp z_Dd5^>k!G-E_JN)W7?f8lzR`BBuNosoa~3QNI9L|d(jR8o$6am-;+$Q-qrSb6YzSi z1M*xKV2*&331ytK;jZ=J?4U>!m0>sMh+)ZNkFn{QlK;uZk(O+9B_N@zyjg4&tsNfQ zG0Rz-Lo%w2^XE;70t0L78EixE3}1-d zpw%Nur>%(4d>+6{L4SZb^a&W(I*x5`!!H{wQPpF?N_ok}5Yc~%+PRs^?m{OV@7O2h zrC|WGfytjkn_+VAAE${7t8&a#wmTgEspI=XI4fVzxm#Mw_wCC~_~Nanz=4*E zL-P^TI;*=k;uJG8{#ye+_G)1tdmQs6Fr9rKtsev`RNk!^o1&@z$NH0jqs7E2u79>!b zZb>>8WmfCzh@OU|pW&W{hyZJYCX55G966@=RU$$^jce}V6igU)#n;hqV=*l{?zOL> z>$s1N-rRBo> z_^7uXq_NwORk>9R=-wic3mL_Jbn3PVo#RE)(?`R8ysmYYFG#*8@lrho7eE4iz&QzI z!E$VP7B_~KYi20j!!eM+y7!KgKIB&bUtHJy&>UgKOa^uJnxHb74Foz#JkyC721cUN z(BkgXmJ;iId8gOE^^p8myI60&U$Trur)UMHQE4MaqtXL0fn^F@1T#a|_}D~uSsh+{h0LP7EUR1zo>fB2QBVOLEmpOt$RpjX^$BhSLG-->d>X46kjmvoTP-A z93;lZ8p_HO%*>4a?V(>ZaI8>V$f)M9{^WFR6>qcUP7jV16`o(eEZ-q?E10Iu8AtV_ao)~Dsz%t?sn6z|SrD6hWh0pdz!aw5jo%Clevk$M{ zn6d0(j`h6l_9vb+WvuvX^6)e$IT>CDYR@C-LEkMaoXG2*jN59TeV@7J+gBF4A5apI z3XYt-;<{?b=9;yS3Jyp4x@v4`u3lYK5OU_N>zV`2H5jG`;nq#L2?YtsU|L`>WUj zw=-6aw~O@TcN41!l!xYuKzDNp+B)JP6$NWfR)EZ6qYb-WZiZXlqV%RYGd<<9=DSDf zHz9up^wUm@-ovdVy;UkwLg8lm_VICPB3ZHvE}0oPHO8IA#l>#vPE1I-v+<(Z8L^wK zaH*)As|>!NnWCw{nUm2Lj-l~rQLpt?DEqGJL)be@K%p(@UF)ZAwyoM7ShJ35PUc>9 zEtJ*FQnc4P;0h7UOiB`@!MgAjDF=x72&$hTZ4cB)dDGu4K>AHwRZP*uGccSUq`IHe zNpq;(gKKE+=Z{152al&$qaDlEu32+G^+^Nwqx|T<=oFK|h45(4016`TN{+BfD+Q7* z${Ob+#@xC!rgm$b$kRYab)@IaS&y@REJ{#&q4>s3_0Mw5S6y}pNo~qp{Z)>|`Zo{o zhV&El8YJX}SxK}J*{wwEO_w?I%5u?9jZuHRhc#`qB1u!UUU`JdREj|bJ(l%+L5K)z zX$1`GFLED+-Pvm!!|V2DEdTWtqV^OPA^m8=ZvVI@#ty9?18j`;z}5W& z37~cbKyymRLHjlX8F#{p9kga9OtS*%Qc>QP!l{jsSfp=TVMB7Q5sb>}Jz+N7%-i9i zgT$K`g>KXjj{;5&eRAe{v}u zG=ad2;u$zb`{J7&a^Pr_6QlPFByddf@Gc($Wz4pUgLCG!j^!LlnfjgLFPS}M_~S@I z1y8d3m#AdOGEDj5827{Q`gd}M(jSrCGaACI`9~J|teia1`SHHmwI^ZAvzPO~zESZl zWZyfa=x36CU?_H~CI&J_pz={^T>}sC=U2Dp^+_Hk=-VCZ7{`I92bE^2$y`Mn#ymEK87l8M*Ewz-so?(Zx zIzv`nlz|QAm92ntvvoRzV)oy0INJkP(<;>6BuPXQ&!?lL044=~M|VOatl_}u&JJSO_bpLo_GwQ``+hHH*}*d37! z#k-2u1atd{#>5QePF$Qao8q~cE^?5hT`wWPMr%WNW6^YMMBBqapHg0F`d>bzlNN=h zAGfDKv1aICep-r+SLdau_HN@^6QN-C0T9WY3-`C7k;R!K#P5M#%+zO6g{ z^P4Z{?cQH;p!fCz9CzFgmv@Uiq~hx$s0NOIYl?cRf$Hw3MPEE@2ode-xN=7PxzXI_ zk&nGX*}vXgQ?~bDlh|PX{R6i50Pip)tECNwbNeL^GgN-qD~VcXsN3tQn&4RLIX@tU zb?6&l@Bn_H8@l6c4!)fG-pcT+YOtap|31t|&x3Mx`^mrSh|H^#F& z@`{91PN%B%;3Fap05DleUEC0^H_Q@dEVCiObnu=XJ@+f21FvDGveLpwa|~tHs*Ny? z22JQS@I5%k#qTZ{B6i32m|B_;0)wj>2j88tRBB7pMhBUp5Z}yjKX2*tDsP{ zv#T7Kr4PKx7)pQqhmZ<4ca*!xd9l*Xl)?;41~ zwRgsLOOPpqheRmc&^_~08)h&fvfs$?JtQMJphUAtrPQ(9vx`XUY^sBF4?`EZq?h-danqTVRfp=IkL5E#;3Ph=v9AS~oT-Lrn@qMqq)tX|BC$F;B@dqJCt7MP^XUXy9~ta302^x zjrVk(ld$n9n6i5>j(r5uV|Wu(mnu>$$Co16WafbKzPhEB| z$rVyKiH*;uYaM8I_F`{GlXLFqwLY=Mo0=j_YaTa1M-4NeLj>mYi9ndRHM!|UC8mkV zMu5P#G5Cl`rmB&mxmtw75xlNfg|nCs{$K zQw;V<9zHgc_k-kAfw09~h6+s2T3%~4Mr-S^hOb<&QrQ)7{O4!wNEjFOd!PehlhKp7 zS*HQdXzN~~>CElcw72M=YC*>KbH)b4?qTB=Rc24wbm4ZJ?3fnZ?mMDm+-~w-Gz&8J zAT+O{G(<-IbsREeJ^F&?6+DAxK}J_R#zP$gx!pH;s@P@JjLZjkv&GNd+Ce;Z64I=(=j|}7h%gAfIWRWj>{Va0xM;f z_JwBav=308^GV3Gaxc13=5ck;$sK6Tw7lU$jJ7l}vdO6$=?R*+Q^s3MQ~G3~GgL-L zXqvqCBAlJ{m)R#AE6kEvFIG9JuL!9zkogd_#^G>FS9OQvYR!upAt|-4s{@j2bYAvB zgYE>kvV!E!&=s`ZHo>Xs;{2~JnS8srKGs1BO?SKCFKmxPnMh;ii_v z`1r_Nt5j=2Pl#~%{aa-VCye^{x+3&jd8AiV&{t$=IkKF`wLunL_QO7{cn=5FhaczpAP%AbMI^@M!8 zVYvj9k*pje>jZXe8X>v1NY)8lLWQAoHf9k|Uef>UvK@}O1foLMLX*p+SNnyrwA$jB zW~Q2zx48yd_Z}kLj9?Y)H(*Fco+Y?)&Ry(=U<)^72)87NW{;X4UH9%WnQ}~rf!RR+ z2+n~8clXC|{*(oz0TdEwxfKD_N$?(EAc3YUP=t`DZK%tHa_DzeLGV#!S2c^x)#{v+ zR5G8^nyJ#)Lbu<-ZmZe*p6PM(CP1~{LJ3+72A%Fsz(8C2wwD#X1Lx;=!v>BWvw3+h zV~^v3&mOA5W)Jzf5zHLg(<6JRm^5|vFkElOw9Xz%ZkZn0!*;0bp(yYFVD@k;O!jaV z7j5QXxaod^#DKT#p~(Gdojnx#ayn-Z0UZv*yz$ergP*pNf)&-lfq# zef(a$GGceV%T<&7BE4|hiX6n7RZm3XSmGE%IWxP7h}-H0AY_W9x`Dhb$aIXf#Al|c zFMKQ)n^cqoT=bzJjlG0Bns+bu$z)NB!e5{u~J7FTY6fco-8(Pz4ouBodc!#u?{9f7>`-lKbYI#1bU9gB{FmLsN~6J% zlXn$ty4HaL;{w!S*Wu}zYJN^9RVNvhyvdK+LW>T5qCuC(EG_G|+;{b6iV~?FMJCGj zCAEwWs+MguF+k0M(UG+%L2ie|$G#IN9)_4~@);;6L|f-{^f$tkP#RPZL;CrVT*g;E zLvE~^yz8Z5ABLRr%LKheQcb8(>Z&3ooKmH~DL?KE^OR+lEmjY9&DI^byL+hnR1mLI zrrZSn1!2N8#<5dY%qq-G`UU3oK6lx%KXjzC?0M09qUGw*JxqgLDb1{M2^Cse?|pzOg;^4JOcfByOd{oB9O^mV!r! zk*%R5*$h4_(L2Nmyp>>9*%x45dOec=Y8UIx_e++M=oGEchN&J$_8(1+N6;Ly3vf!I(a*v7JWZ#-dJ-rT*zDabjzJhMR{jt?8{B~;;pB^ftCuEefF-Y zfxu|{5OxMQp+j22#q;;&pZN8y%gTT0eE4jRe5J-MHw_+!Vme(jp^9?BS?dR2)}rtk zdEXICVhd|*oT@I~Tq(c0;OO_hZtJ+-vYaSS7WYjaW0dzwLVo)ot)l6(S<@S%5WM8A z`=Xy)O1J%;caBG*L-4rv9lK~hwAMXt@oS;_A{Y6Llu+k@*`TU(^W8AB;M5NeNkI?> zpqbVG8jO7fs)9nLHC^~DuwadiQ`M2M#@KPSs{k*WftXJm!;kN{`e0^_;p11UqY*q< zt0?@%4&)xJBfg(9c!-yEDV_X9p_K)#4vZr7X>-U?P%C$HiS@p`)9c@Qux_|7q8fEa zhx-m)eW6sZ%C!aGO*xt^kCL0(gTtidKr~@&FaN%N8DBZcRq z4w?ADIhL4j%1d2!#be3uuqDvpd0*m4My0$m2?E-&j8)_9B0c%t#3};+K+?TBzu$nd zB23J~y(RvDkz#djoRzQV+$}BTY$!%4)|+f#pwEkjXh-ao{O{F$EJrQoPnmVJfs_6U z|AgZ=SvA@ZnqVOw3-8&?3Z@9=%L+_&doB~8@_mGfKXE6BDt0(W6~DCZJxzcw4NdG2 zn;%@k;V55MjV;a9tKs1>39ZRVv0-JhQc6{()^qIRBbu_LR9=s;pU1=NXa!PI>B7>#e2QnS&JVxm>$3c5 zGrIe*KL$}zMFPrM>lLS9@{ouJir+ct1T=Sc;WUs@_X)NYLh!oj!P3VLrK!y<_JUL( zZIeNWh<<4-A^J`D^sye+t&3>Dtb-={rB8>F`>t6^bv^|Am)tA2u7~7zw%$w<3>#Y& z4F@nL=of5VS)ZWXj#Ka?8!fX-S+?=QVmw!P=tbUC<6-MR&RnO)h({=p^@vVm?_GZO z>Ucm6m-Ec!j(4{|%1!#}iWiS~OPOa;?#Z3LUbEM=+}-te?x}B)7y}0@5amJ+G5O$Y zj2U9SsL0n@=5%xI!lL}Bcj%VH6tHjBI+~ls55D*3vA`JeDdr68c-4~#9K#~C_?nSf z+WM{gaDjL0QP-Js^dNyiC`vO~;7>-Grr_=`HrddVvhrZ3I1mmzJf~vLd)=}9>Tqi5 zBjOaL=r_Xs_#^{V;vi39GXwJ5WGe(%l$){^Ub}=4y3&JMWkw?Uf%ZM}olGZv*Z9~( zcUgs*%$C)mTl@^t6aC~>^5^}4w!YC4*sn5f zAOR4kv{>dSk%0a#2lxi0%U{c}TJpv|<^#2g5wOi*x@qJ(*eY|bzjo2B-l#tZTNQ5i z-;*5bjUnINNwdu$nS~k?w!Ob7@a^l0AYANny0`@Pm${woPV@p__6osAv`MlPdsVLSn(GUc5*+~Up|t%nTixk3?$e! zQVmhReAkPOR`{hX-`cqtcD?#1p_NB+pv>!5_sQL05MWs+oJASZriJX3vHrbBr<{q- zDZ2oD${NQQ&QotpIef~LYP<=T%nY0wK3$S!Ic*<9kIn=h9K} zc%iKcCktRK%J9&%N__2d06gv3@HD{zJ!at;@j+YfiX66Z+)j!T>yG*}QE`z*y6go- zE3s<(=w2L`A(Qk6lDUACA~fucGsD*S&;1$(+v+G2s$-UwvH8jE%n@d{$a%5S&E;wgZ27>! zW8tf7^-MZt)``~3L*EyzU zPz4>LtnUVfT<1U=`2HLiRt^R$KEKri^mf^PhSvn*c*kg%ofVF(GxR-qwALQ&m4Q{u zxAh(S@n-v|wm$J{Y8u=4{H3czDG{<@e3^nO&NKnj$cGjB@cO zp0dSAPT4E6$=ZgL6?-p;|H`ojZunEC7o9pil+>IH_;o}AQB&rK-9h8kQLbw{lP7}H z&{=0Dn4m{8g!`<0M@HzPcO&xim1}OZs*U&g0{|i%+iY^IYsnOuv0y6DSI5h-s7gV| znYXTM4m8(n0AuI?04gDUS1lQ1!uLoJT_JduW|mNtkG?}{0|tGeuy7jkUxlG#D^?_F zJY+J@)K59yT-0zHT5l<|jYQyJhw!<9JLBh$oLd03dq_qkgJ7_kzJn5g5be!oQ3es+ z8j+5DBbywYWE;k)m^x#gx2eqH2cZ`=&ug<6q%S2-rFKK14=~UbVSaE(?v{YFOgA^= zWa!F{-Eo5^pU8d~?Z`}}<~W3Aik#Py!y9v~sS==e11UIeZ?eJShGcoo3u5>l=q)?i~G`6 zsJPC2Gafr53`SGYqTG`5xc{57rkqv}*(2FwM%E|BCCkdniB*~DncK&uYG%nTd0mA> z*(yf#$C|$<)d~?;ZO$EoUU2$8_ zD!0(gKfDP?6)lA#>?7L}vD}&Rs$z*+6Yjm5Bsc{Uf+BQ|;kKgQxO3bhS%OEE^z9<- z(lBlEm{AvS_{7#W_0O+Yueur#a{5`@>aVZYtVd*0{M>g`I5db?S+zCM>4I0Ei}=uF+l24+q=V>GoHxJk)pm z_Ml9?0i(W|A(;&XQ`FzGq1nS2yV4>OAGcx28jq(%?^cY;&mU)LYvne9-e<~xsd|zb zB!zgb!_+znY1M7Ds|}_IF&iXd6?u}5#EkM9av1ch4aW3FM7z+x;=bTJ$5N+9d32;* zKAXZ&h=K=VY^mPsOS%=ihfl3>$Ira>%uXq+WhLvk(DBbh6Mj1gw62&VPpIp(z#3H9Z zhHYkH3wsy^0bK~yLKlYqDKxeTH z{q#JT>%tl%TX7(q){4Q?bJw1PEze%g|M~`^NN}+U;7{#%_{?aYK^_+#=Gj==TfdR!{8I|ixlnki)k?w|?AZ!BJ zG*&sL%E8QA+gTu^Vt&f3!*)CAv&KGx*|Or}DZ{`s)BUR?ky+6Oma%hDBP4}kgf*-$ z5T$4X%=U+xRVNlQe(Z&zzt^59UeM<%vf*21KiI?x8MRXvVekanGZXyfbz*ZZF)2T?^NO?Fcbo4m zev}{m7t{P3I=Ns-|6XwLX85O^X7)@KAEO;l>XY^r!V1|OYadrArMS*y5-N%QXD5ar z2nXW3`P?}^;}4pA3+>@!nX<_JJLL31l8y_r6v-q;y(%Liux2}J$%s}d8fzTOi*(Zw zPOg-d*Eo8~(rqorkPndCK~k7XhV;oC%LSM1qkv*$3KGf)J7~(*k?BRDo6F?q`-Phv zgx`_@=^xuz2J46_f-vYo?4rZlfd0o%##By4GIDWlOU8E<$;gH0aCxg#Okl0>+1|)5 z%DD!|SnvZ8d{5$~dJHZ;^jFtfk|5}5th#>2RA_@D#g8VA$A68K zsf-TN@1phIlJ4Id_`+=#rgM<&p9?ie9KwzvGWF9j*`yz!x=4B?p zqY5ud_#`56{e7;>5VI=C5j1s+~}-M0jSfs#fd-rrN0rU2 ze=6C_&Qn(F#Sz}jc+}eaJlInPv(Lc?;`QIGKfjY>@~y`fT?GIu1|M>|!(M?QVq>QI zXF2ApF2kO(0u1^{Ay-)S&yNknU}qPa9>$qj-qXW4(=dBG0WegsDu;oxu5T=Th3KW{ z9IM;Gp^^?q4E>N3C>&Id-MSm2b%dWL=%`_i-JkO!7VM$ZYyo*7Rkb!1Q}_&>j|e6@ z^D6NEuefYB$ZjIf=ajJv0X^EL*j7afm2+m$1YI^0YNr6Nt!vj2to~0o>`2B-Hje|2j_~1t{>-> zDGVKR#dk~M0Vg^374YH~PAPN0sCv@JvI~MbHr^HQoQ1N{V@O60yB-tf`x_8Fp(FEA z`qRGtrhbIo&ANm>Y%~hipVk}mh{#sIE`nOsUdOB^v5J-Nw4xTwOHGjaG0G> zXbhY)s*g}QXONsSyaf;=sT^e}oFSbZ8XLN}_vI#h@zzt|Kug6T*i&X7`ItCb*vIy6 zFa)LR2R3xa*&KX1cRVe(n3vJvX-Hr=LinIabPiR0u8jiJXX}qFyHSc=ps?G_2peu< z{G>iZtp9m{KNGiBvEF>YWEqK0QA`Uo56j=BcBBl^Fn6KSXetC)DV;O$Q!X25n*`Dw5fv%6`DW0IT4-JIsc!@ZV#dgRND4zndP5POGbC6bmYuVU zEvgi#kANW!LWD9Tgl^~nia>2<%+{)unja8)UZPz~L90s1I^bAATD#7o>y>gV0*-#S zwH-{Fie216NU5}3m>(bY7JWm_=%R>anafr%h0d??f<--0OcPc3T4&7GE^~?Aljw$R z_9WG(bkKxh(FRt@!_+XtCDBScu2m}(?H}3B{CW&%A}S~hWn993a2R0go_(LW=G#{m zSTu1%7b6P;fOhN17AJjWSK;H=%b3C*V21Falet9X*VU}}xE>?u+a3{06AWcKSB}I3 z3hRaB-4h%l(WYvmRjn2c&~lk~#oxO|U5}0NGvS7(`Fpd3&%DpF3<^afjuAl#{-=ZVw4^oWFnsM6EG$E~p zmN+JTcRqV-k)1cp-CQZXupsn;vYR#%CIsxmXUYnb@yi5KzJM@HKyYgC?LZ9uDwVON z1{*kQ3I@t4KJpNsJ5j{{NRvK+{1+o80u&mRiFWg z-LF)T9ZiQGhS=3g$m}C?R(?UWWGstZ(v5|`rbiORJ;b?~+-4+wPTn@N*EWXN?af&J z>nm#--Ss}c>NBnXZg$d#p}kFh8a7>6%4S`i5OyAmPe7Zldcx5w?lSANk)(HW%v82J z9RI25{07+e5==KaTz-IiWNL=;R4J`N6VLqElfLc>v&UG5UO0}(odqas@TOJvDt-Zw zno|PlR#GgT)gc8(x;i|wTecpHGE7w0I^d0BbNV?H$+ZpuZE<|91LcG^LxxWJOjnVz zzMPN{x7mUZvaliC$hS@KRNxel__Cl;UMrd;D!t@0v}*$cW_Nr)7G;<)rwnh=!z}1i zMn8Jk8#H6sz5x>+v^H~{x%cASFJ2qt!on7>5Vauo2#5S!8VD%*ebBtISY@g=ydT53 z2G|YBa5{Y4nJi)h3n~67b(s$%@W9bsgV1%Tu$k)@kzG$Tw~uH{%uw!Bw3)fgKD>Hk z#}5gl zQDs*(i_O*QNd-qvUU6NuV{^^gN6?#X=sB19-KstODGQidMtzMBcXDHP0}+<@hJ#b~ z^`Y*BF9%-=1Pz#wojzJ-U<^y>R)s(2*ZpjZXncqIIzi>`jz!q;VURy=E?Vyu1BTZqirO&xPAYeiWV zf|9VNKstekP!udV8e7kd`!#f)nUWx&tQC?p&|~Q=ose8Ba#1}BZx3!?;K7Zz;U4;P zZ*$}=;F;lAC<^uw4G-;(H9+Z^p~OMf5TTQ`*gV|(KS2ldOJBGCmD$Q~9vr`gYiRdC zfDZw$*SZ&vcuSdQQSQl|z6yrBRHUYAo*YkWWpAP!$l7Q#pD3?v7a%YWF#!DVNKP5v zpxwRDrz{LRm;k33B^hoM9di2Un}fzYh}7 zprv`y3Cw6ECq&Q{?_VAXGuG6K%(qR3e{5iBn$$&9PrH*^mm?gS&MTuO#b*XvC4pDR zO#e8dU&pf?xej@O{Z%H1<_Iz^eZ7Vgn9)j3>TaM8x-!u5EMDKj8v|t{ZNeU)dx)T#p?rglMc1En$ePKaL>DHHO=a8g# z0O?COtwSVRyVSAH@9f;I9mG>N?tFIDj|MU9k^EI)pbm2R~YyC$g*E-O{g)1ZE_-p-UtK1KP_r!nejsA!CZ9Q?0 zU9z;u1<|`odQ(?(u-ORNQf$0BFGa=IL;PurUga4leeXMhNqa&SxP`(E-7^JGdK)Ut zLW%Q3J5@qo>x1Lr8&r7R)1vRi0q?WMU$#N@JHC!tlE?E+Y;zfQBC6oQjY~#!~UYzsUCF8HQ z+a@?QU7Y{brE#7>w2}=l+p8ux)_TqlNU1mo;Dl}g{fP5-5Ln*8fbx{xho`)u9G`@M zu3zSnAN(ly)WAZ+YxcU9ySx6*J@xI|E*61xBpwnu_JiA$8~@oA&v`o>E52Es8)xO~ zId@A-IfZK+xz5t}-?B03`Q!hIIz3E&{#s%#Um+y;Pp~hLoK9_U3PuisV6&vfv$Qv? zLg$6j{XihKaDVoO-thYeUyO@~_Qa4CxVish05rxc$N~<}<`VNwd8w$6^~Rn$*fH)afGfX@7tdj9>Q`V? zT%(IXB9K^EmBz@2Z_km0v^GsItr~5n11dp-GWBBO^6&^Gt}>|=Jz>bWnQSNqM)l!~ z3F2M5qm);kPmf@{M_(`=h@;`5hlh@IEUT3*Co8RHW@@e;pMc}g2~5d-yX4_IJe;!J z!%@Dj8e5vHSF=8H^6`|-M0v`l1*&_4ZEI$dZP*==48^;O)&v$kCNZE|=x=Kz>I)ys zg{t2sOSBPV`ejK{;ii_v`1r_8W;FyVhfApJTE9!n|ZTWe>3$wwmEb%o`643Q1J+M#;Z5MLpHy=I1XS zHiU?FbzC{~dy#TL~8|)sYkwube26YdQY@m zJ(?X}QQ6zXbTh1jrY7e*4p~+85zjf-;?OLBEwTHK_PK(+@zBPrR zriSu!?81%rx(X(IYC;}}nJR(~BWPPr^$^fC z32mn$gkzaLkFX2G2S<_$Ggs~OwpjNBr3(~3BVp^rXhwn(HWl88IrImcGZNKQrxu^3 z;1ObEYbZ%}3V&L!JH7^pZe2n3P@k}d!y4=+j1V-Vm6Mvy|7_Stn+v^Fr zd_#FDGVK{6Q-zo@zBI7(!nK2P?E9y%-$+G@Q>p}lhwjZT9?5|+uUp;Y>!>$2GRPd8 z;`PH18P4QJ7n6AR)>+}_=6g&3&W~Xk+_f4AXHIF1r$2x{ILE4rCOTp>gio0PFGJgB zg`tc)mzW^sgY z4ZqUy3#$pjq`-t@+TZhm5}QLkr*#KACAl8L@-yqx7DC%sS>NS>6b%7whnk0@1e)1zgfjM+TJp8ydNPzHQRIq2F~K2D1M z{*uvudgtbESx&Omx+8oz%urh0F3emrQ#j-!8im0XYuz4W)p)x|PkuMCia@-sSWVKO za2uX5}Y0Q@L~&qtpUJkiYLCWQ5-QA8=BH?w#@(Au0jboGT&RYT<@UWAh;2+gBL z5@^$|SQQGb(~D!p4Yun6@63=4y=44|fdj4F0ev5`inEsR%dJ!BkPy)KAvEcfd72^j zs&3*~{Ie>EZkHB=x19BS|M(NnI;2((RN8Q1*aBVWXT2xhA?+o^47QHnnf?KK zDiEj_%Fa?JHrEo9@*~+%K+&=Lr5rl-g1zsV*n7W(vhD}hGm3y7Y4D~SB7FVQkGtA7 z$v-ihd%-0`kIS|vw{Ofw7liJjQ<95dy_#;67R)qEcor;P6mMi2r|C_maq=NtGPPRV z7$5!Kog@R(hm10|fk7t>^f!RKLq!To!8Vk|uyuUUgz+eJ3me*^yxmF})3hw;n;52t zZzj?EyXoPZc{kZN6OMj)+bxMN-%R>1y0Yv%WhwW$7v_iERd!LT*<3egQ+~w5D=sR( zZ)WeL^~xFcl)XfvV6)c{`K(p`$Lsf&{NW$-uluVUId^Fd$4c|n`3WIu9nx#|S6Xc7 zbqGEplBsH>Xs#CFaD>8o%|Z`8Vh6_=obeWoy!<&1cg zr_4)twpOLo{D9E&675=8R&Ayi01Z(3#EAM(DdiV@HoVfriTj!H7702F=wlj3;v!u& z-9&4&$~6v$Te_+{Bv)(VZFu_0o3J3qRBoBW(aRgpuU&`KlEv!K`Sr}_aQ_@AHrddV zvhrZ3I5-rnWW!KkivY!t%Ld#`cO$HO8y0&tO>i?k<`#-ZK1k)PL6ZZlTI0~T1fW4# z`sO2|v`~toq1@tza6Qfx$56(jBq2>3zXMMIomQ!sz*^z6y^&o2?(JZ!%(?#BMYnpR z{v2#oxZQtGa;P^Zc+C(NEq!q*%Ifu$EF3TPy*YSI*pJ=IdS<#owst2ykv9F!|xj%^8fH*xM4fy4?{&`jbnL{ZrFA}t8MThF#gnQ)n&~pAHHcF$y2Y`i_x4ML!Qb0 z7--Q6${t&gw&05Ug6|wlogU?#o#*Q=e7fb%rlLG{Oj>u5Oj_;%4ratf>wxw1SD>^939ofPcVu{`nKz)r zgNp{Eg>z$#lsyR+j^*qqL++)73)_NQAE*y7@RxcJd`vS_&C1(cBbB}8WZ|~mX~D5{ zZIhUVHJIN#bloU6TH%+nd~4_8$2Ur>cKMxN_pEa%5_>WirH$b?4HGB^FFH#%EGtqr zAn*#2NV|$Dd{8Y`90bdkSnta_z5cC-~8ui1fuDjBjD6s^Rn?W22vvfQS0`D-~=OWxSW-~#Mq$ah(8eDViJmphMW zC25vMXa>KV7TU|bWKaqn_khk)A4Wa6j|VZ8ya!fH)y$r$;$yVqNqy43Lg0OsJ$wCY zqun3sPaVR=DO32CPelsO5t+{UQ+BXxw(h{)-9z1{f_OulaF!|u-Ze;4oPT`ZuUK!q3d^7VW&*BYysub-&jJtlaBd%(%Wq;1d?@4&s$kEa9`} zo7!i?C%b`QY6|rDKz{D4OpVo2)gnD4+Ea=R<<(M@EIk%KNWmTl7}S4?I%w*Gg;@*) z(MLD-+;?Wp+L%Q=c}f4X%XVk*%z2gFq@^PDkt<9>*a)b{-twY95dG`_D*#JV4*wY1 zFg-|&jWv{&CzzQT``gE2(2IQXitDN!n`_phVE$0LSAKrII%sPPw^GJ(9rbG))yGG|^{F8Zl4iqlaQ-NBj#S9>KNU$2|D%m2jFXD?R#19b6KirHC= z=xieCq@#+KLJ{_nZHYMe4qS1T`)>2S#gFo%|MGQ~;fgB^CGpCMmJswz=|)~ZQt}U% zDR2S02hdZ4D)Ndjf1+KbWF2sQ`U z?&4!8Yr6RyR96ctx446)x3|7nM)8Y6wX-J*Qa2a+wnv201gQ)k&V!>EiCvnBerCaO zvM>WFIM{Lqt_D1uvX)Bu)dfet_jP0N5zXu=+l%g$Ra0)OHP4&S*7xb|mla~T6q6nC zzz%e3o}6>o*ZK@V?uapD4Cta%nxV40&ESZMe~R?{ zxLJ>W*X5qY0A?+nWlj=Iwa(Ya%LtXg3JBKdL^fJxm$Gc*g~bmq=~->JJH58)!cul< zodW>oTlBIVTyl&OW~S^a%z_#jIBP$==895aFZE4^$&z$S!g?sjMj$35xap1&5#xOItRn^R#`V_4=GMQE7j&dF029e`a~lP-5TbnG6eyl>SV;TbZN zmm8DT@8g#wR;&d`>u5<2>|J0f3VA*xR&IrE6xP_R>Z*=G0_df6Qd>#wAnU2&f@oar10%WG4pEPnRJ4u&k71m z#33Oo?CXoeuciM^^sAjzmR8aR(I0=HK zA3}(YzI2o9G5t!>SpVpj^d`kz{fClO{^JPwIjI*W3n4xTZdEXxMu4vj+BXw=0kW`< zdtVtRd^0sdkcE9bNXP^qP_lLLVoCOdoxI(={PVyEt6uhm#vN?d`K-5M#U00k7gF$l zO|nm_<@54otMk5F24j{alK=|J&ijl;$ihC{h9^Q4HTlHC4o_30^Ir3lq0alx3G?$1 z#%|EWG3JLJsZq(Vijj(sdD|*GmSDhTv)V25Uq?01bnS>DAy?HBi7F%=n!s#dc>5+V zO#ycv5~RKZZ`;7FEWYx4Ah|L5MwtcMM$wcYcNg+$WXhkoXfyX~hnU~cSSQ)}$sqt= z*+w6AHs+3O4?%nAH#cN*+XtMRvAR_>E~wb?Y*#u=IkM>0G8u9Nd~GX=GHzIgatdds zj-Dgu`kPk-_tLfFdCw=3^oz-{ohE>)1(1a@7}2yb>m;qiJeYlgH8lDFx|558LRE7<(I#S01F2uUL* zCwhNTGA`PHWyM7l+gOZ#a7gma0!s?0n7RU;8!pWG;*$9xmeKfqaV*%f+YOclmM_`f z6aM|}mNhcHWh!fXj(&HrWtCxX`Le@3$A0cta5>Lv)iE;J9vK=Rg%^@;ghb~`qaW*= zKPpI>nH;XYB1a&2GftCpM=GrCQO!(#5dfWwc_25q{K%x3 zrdv5g)g@=Dx2f7qTkH^7u`zS;ql>n)cQ_n>){wdMuZwn22s>mnNhYMDwVere2Vc+n ztPfa_#RUuav6@s-TExP8l70JC7fq_GdD@gnNR&p%ECZea!}mpEVsvYcEV249n|OtT zO5M+PCVNAzSHV6^TCX`JERcJ;%6RYm>8F+RZsf(_--szg6SU|+GJwz7mm_xOjqxWx z)Sg*HSl`V2R*M`ZNX|6Ox|-9(fsoRv@!~78wB373C%sLYZQg+4fM|T_F%nep9(G9& zn+$l+~pmtLK1vG_&~9*3!%^y#yUf%h|R_* zFNDHsiicKaet0IghVZk{n>RoMQ+mQ^PqSp&BQ|JJ4(U~7_3}fy@v1(6sRjmHW+kp? z17T!<_$CEJ=vg^NUSi*v^2fsK+p4?vBS- zQ@*(D%`eqh>UHDliCuoI#CUF%dS2OcVkdk#uS&3$Mkay7a-$bM)#khsvmUWQ;|ve$ zqiCBUjxea6txfVLZ&uE|;*Tyf)*VN=^q*WPBQ`c_7lJa*P*_i-POu9RjXGn$0Mf`1 zF+~dRO`SF5=3cT~=UkU?7NYunf^7*qef_))B7}4hw9=exYb^+2Tar(Ruo2H9$8?mA zJ!yDYPe-w17kb`^0QiG0d=gqm-{-LTmDOOd+CZW-qm+}HC8tK=y;gRL$V7TKFMf3JtLZe8dSfixDB&YE<9 zT0-0x_xrS#>F||(1OO9&fEtflI6w_<;V4-13=%-izet$+mw|nwAmoz<2uCG_z-(D{ z(uoj`g0pYLueZL)t<0-ak=5pFrBWK9u4B@JM?V<^K>uv^wDPLNEYRtn}6TOb@oCt*N5Y5L8_`Z|0u=p@CzrO@{8 ztyaT=p4Jje@67@uiD~dF0MG# zVQu(9tPs|v3|rTi!Pf>oNbw#**!SUpvPy-70d-pm;;<-gL3_R`Fbe5~r%YXHhCVqa?`z(Tf)$qbepy zj5B-^g_P-9sd7S|5+#yF971Rgf!ZydY^*11yr-4HPPr(JGswO&CJDqS$OIzyzOo{) z9S@~N9CkfMW_3Nr{3|25ObK$giKRxS_<6N;P8A!@&Scw;#DiBBKt838%m&DywZ(9J z138Ayka6P^+5}=9WC9Vl;mHMTLg$7}V#xU*2|GM7Y7m)}+hRLB^$fc==p5(**{H;! zGVe{_(I@EP$$9ACz4SKk_SVa1R$1Mjjjlo9&4bd}Qv&5iqusMzky@sxtaJ2|jXS{_ zJzPF{5dy>_r-*H4;E$WUEFiuumrlCbz)SN3rtj*YBJ1s4r&ioCM^ao(rf(Ou}-1W!OxP1I}yjiq8^o6)}v ztE>-k6*=~mG1;R*_hg||*3Ds+^gabH=!z_=tYA+PDEBIQS&=br0HR((B-CGs9yCz0ZSni!wGmhQh-*iGGE?unT=8 za6baq^#KK5>9u6`;+bsx;E;siO7*`{DwWsU8}ZR5jQ|HbTH8!JtZin@qYOSKF^FBd z7;sDUYq||A^e1^j%Pk$`F|4dfu-$iI*0wihUmmDQ+W!86@FAAC5S&e(sNA2XA%|-r z_dqr>Pdv2sm2~qWYr{R4zcMB$Pn7f(Yv|V`dt~H6Kb}N2lL$I{uSwdB3FC7T7$2mI z&@saa!s=~NQhV56uI@1ySB=c!x)3DRN#MyB8LYIM!beVwC{>hGE4Q#k*I&vBGy$x0 zrf`#n92DKJ-`qrAbYgME#CC{H$&Do!K{Fk?`%l>^@%{#|GqD1V0f6P&b)iplEPkqZc^%QQr{}OsX z)+xiLSF07tek_-Fwy%l%shVUjT~3g@o320)_X7$Lu}daT8bWk&x5JTSa(mZIjmG<% z-zl-_)f%@dBBSI4!*OI#Rgrebh0GX;pV+q6XUH>B<~?lU`1iq(f8&#%^2Tf&wIe2u zSBpw#3EBzZb??2-4>_vtre(dQLYsSt*G2bc^~!`!9)+GFC5V!Xd`W3#HuLfl(bBtV z9N8g)^lo?P>7Ik%WS0z+`@Rvc=|0d631fuO{%d!Ut-`Gfb4yTM=1xoBKgXg_$N{BijYY6 z(7im+Vje9x+qpl4?ZANjn!|-OL42rVfH|!`t;ohp>$E|o=ORMD29`tH80?951VLv* z#Ft;EZp=}h?Q3a%Ks!Fc#zT3QQ@PoGe`vTX2aX_bKC!e?j|-Y7d~JYzLOV2PIwOVa zoax>;u#$^CqSi1DTIf;94Ou}xlcE)L9Q3=Tpb^?uy;->X#X$$1!-cH0E7&i=;)_JY z1%lpzzy|aIl^GBtkQj^9wy!!&!7?p}wnYZc%VtMi>1>RuAF?-&lSQ=wXQW=V&inpW z$+kbn73RV*A?%-ETIn&M08<#mVai=Qzf51L_nl4~B)}x%Z*W09}rljw#?3)2}QauXJWj4YbOP zQs?AwIupsk-dALIxa+iGf13<%OaYbsv>dOHhsY7hV*79{+z>kwG1n2i_Bv(8m=Gvc z=GI}|Xp=0qWEzcTmL1A{amdnO1ZLA@oCmgDQ-n?P^9k;;X+{iu zthAWGQ@fq%Sc1uy8YAAxZW;WFoj6SGrbw~sP##bi=gWS>q%RjqB`MrvlKo|Z-M|fJ zW22cHQsu?ZOWfrePZ(A=Al1^*!lpjOA}M>QDtsT0xwHs#))Cf-lywC4Y4oqGDj@Xu z)@E&Xio~A%%Ub-fw9W8;Cw@2w+AzwI)gjwonQeFMRE{5Ze{h83ui;hBM1FAeB06OPTzDh(>k#D(akU@b&cJV z>@M9dpki>>w`xyHKzcjhe8_?n$pbssbj^TkC0HU4+KqA(P}-VtlIzPfrnfy3342jz zy!qXtJ@@@0Y2jo z_G(PmV@Q(Co3AEry6iQ3r_+57^j?ks%DzYPmCaaL7g@D0bIC6qM1Dd03)SG;c#jY* z!sG=_DWq`S49SWe4~b#vc9YU~fe)o#cE|p6uu0)uZ{_?u-7z$<@m|6MiEs~Vh6MKR zBpVNMQd;rG3tHoIC#|$m19XVQvm2(hAFl1%Gy<{vcjb^5`p3oPQa@`w`!T<2^{nt2 z)44`?6%ef)+^B_!hVs(P1xM4s7p>R)hEFx8On>=j{SOWM9|TvrvrRx$cvDsw;-RQA z4YsHfu#5py?%Yczo?qLa*nvN~j(Hufkw8zTT zEkFjGF%l{2Z=L@$skikEM}G`Gsnz&5TU5>3-W~Pi_A8A)1A$SrN_h0g;0^m@C^*0H z9h(DaoA5yEvVqq!18s)5fwdFWwi`^u zI#+CGIkLgk1#4_TSWOhE8g^x|hze zTNr4}Eod9#?v@A$EH<*V+Hguc`Mh-7B?6STLMJaHB{o|}*obG5V>(Jf+9_Nsb?^O@=UA)@n|?D&b&j8J)28X}-3zoa>?< z7i4O@^C50EvR$~Kv$3*v($UKv3abn-jpNma#_r3~+16pT;)nVpXWwTHSFxgeNcRAC zE!C_PkyKd$C5a-Ek%h77DNU-9^s7h;G)$6bNaBi5X1>OvB_wTaRTd7y#HWng(QcaO zis4u0qEFm|-LSWO+2Nj{`ZN!XOg_#n5rfdCn^nBTHRMLg-8`_&R@jvF#tiur7j5Q# z?GW=@!-&4F`tn886WBg~MkNHHz?EpOLL2EuOF^VdtB_tQCc=gO;2 zEXkT7;9S0VbAI^s%kFEW1jQ9(YiObv-U4{Vf)P~38^RCxcMGt*1!Nht2Ny^Z3^JcM z63eb|P^tUb&SdZY`_R5oKupcp0?b;MjMneiaC&9K`9*|tP!?I*?meZG-X`6Ci$d|! zkQ0rxGzMH1L|d#4da72pPg@prcjwE_lrL{Xvo@l#l?0RpjYwvDj71XdsmemG(7BC4 zmxu_gWf!GOq!2@LcW+!fq@xY6>{9mbN*$H%M;%*C_t$(D7V_kz;e2z4k==pX(`(;j zVo&vsMlR=*-2;6YO24M&3cXG+F6=zj%i1QB@n!D2M3g#V=^bjO)5=f@Znd%WKGK8VOoyhKa$uBH>>&Fp>>?3&nBT&sr~MFW!*0 zc;op6L@wwsswBN6U5i{d)I}=5^=0Y(VI%Zdj*zJU{cnu0V8c0R9M8Y2o8;mGE5*)s zN5kKZVtjo6#i6<#p-H4jB&U4b-bldhD15M0>|9^*CwIVvpikCpG1d=gc3qU5fo+y+ zSz2>cU`8o9g(}lQ7!VhQA~_+_cw?66842)F4*N;sMSyD8NAT1$SQc2mWP4Be_qSW1 z59k_kDP;@~Xh3p`=5#u9^r;8`*f>QeK#e^%u$8`;T#sy5K?~T_li_lTL;(B2AMEwl zsa!hN9gm!9$kO{_Fcg!27E|d9_E--`a;yWJ1WuFEh>nT^Y0M_tK&C;HZIP%@Bm+pO*%_ zp{%4NS_Am`&dVwh|5?aH>^n7Iq$9ZBoYfy_hyd&llB_ zkLg#6#`;HNTAxYj*_BFT3A9Fz>lKKHTy@nmd0KI8=>vW9HP0%b63P^x9~$H5rt|63 z3cVZo411KAYi5c_WSNQF;@SvXAvf~zr=>$>xjZC5Y=wSKa`Zui)-f}$Z{2_bi_^Ur z`z4^naLnA*s|;pL_fV^Z8bY+kKvy>ac=q?!1=MH{c^#)RE4{oV!bVR($BfUVluj8| z-_Sgq%>dx$n9<00#qcYu+GD1fxFOn0$X)V2af2rrZO+Ei*sHt$uLG|#27sSw8$Fjn zo8eW2HlhNqKwwkNQB@t0W5)T7a39OkD7JSQR~$1m{&C~;koG)QKuG_OGcOb!h5wrI z(|(%MT#*j?L!e+K-L%2#q@^euG9~Oa^INxwiKsH16de71B9gUaYn+L-^|mSJufx3= zwBC}>21I?bF|{Y7bTCLgEmPLZKl-ho`>It>%a`uYKlamGcf%R_WpZ-@sM*pjm~AU$ zf_onr^6f%tPtIV-Yu-HklBF);n#rz0-U14ecYW?@rtBriwqlyzP7?Q*`LNpx+17a) za=Na9*80U_q0qJO99ZTvIo1!<9e?>gbJ^g0$yV9@@Ui|3TYECJK~}QTV_tq*$yVH0 zHms0E29ZU5af6*ap*NuI$y3ELb7SX}u*`f^I@Tf_+-IJ#(Ak((Wt10Qx*t?VA$q*K zD#i)W+a3+}cq=|xd+YoA!e#5WqX++RKu8T)*u_6!F3VC(rQdvYbJCQSQdeD{8d549 zG(1sCrHRJ%670>rwSD@ETX%Q;vFGGhh~C_9ZyXblXGKcIh^9}77TmA;;gBj*r0)LB zKRZa0)%( z+RonLaQsWtD(GTnyQJ?g4#$U zpxpwVOTg|lJ*pa|87>GP#xFfffE3CMlE3 zD@rEv+8ZLQbhE^cq?XFF&Lv-;#=qhG%do!BTM9jkBQ23tw>Y9W|5PFG=0{DzjAhzymrHG7LBKg4lIm+Rw*Knv!Md(q<4Ou}xlcE)#&u_e2I_iNQbadFNHw$;a zxSYDom7=uR@#xnZvsW%>zpjtb>I7TYH?m+IoU?fQ#HRPhvDPNZ=&rD|H1l_ePu!TJ zJlogO{D5|Rf{lmrET?j_{r*Uj1Kymi>jMkpLVzl6SSrCYOyOJkVJ9xTE#JB2!OF+L z(-Sc4qU0GSWoM+sV+h|uDe%Ao%lT%qiW8n zC(KeWG7wdftR|#$W-zLv>IPIcKtXI}0g#sRB z&VnSNoiosNec-`ezQM$puu|$$DA{R59o}WNRD*?Er$V95wByt zC+y_y=H;IUK3MfK>1S$+eLV4DGsejcWH^!}Y#%8Ha=txVo8(X4tektrKj!xrP0HWj ze7Nur|2QN7hY*K>c-+4-@0A>d&A_JVGYX);G7L)idV)uW=lUBGGwH)KJw(_uK166R z93rIF@rL4V7`5%z<_%>s=Mrnudf5{icd%LKv)+moU?=s7*>r+6%dw555d7_IRr~i} zP1^R>OZcnC`-ictMg|dg{;=UFSeNn}4#YO9NVfh__35wF+x4rbE%lFlu=UmACpW8R z@Ag0b{Kc!K|JOkl|I@_*pXXB{=?Y1|vCV;>Ln}9%h3sC0%C&x*A zrZ?MNq^LRZjPSj^lGJM$I=;`;fOdbVa5gs6PDoStP?BmaM@dzrtXoinmtB;;+469~7Ah<2k6ziAy=qN|<+20y$L_q(=3Ye#FZ8pI7Tj`EYHPFh zCpRmWUlA)rFp&Xg^uFR%tWzP8^tgjYs!A8-{M3iiueIa))Di5pVc{QWe-CGvAhr1y z)J5FW%~X3x;F-XdN6pTcbjflZHgIX04{kHTS8F>H><+%3^;zFN@ZD37AX5S0w=nFZ zZ#P^}6K|$_fwbP&EWr6H14073(?I=|-GjyEyvX%c;~Ygww(utw5$>WpjQxV^E<+zJu`qA&$%XXbHRn#yL`>R!fSJ=cQs+X zpVzEU8}A`fk@#*Ft>3-(^r{zai~cDO++ba1GcPYO=4~rF!%V+9C+;#(#oJa#W+??$ zs<0L>q!X<+BwRO3YrT(^&Z+val!C0~yL_xy(f8u~(yb!L42n0z?oEewkMN*$rab^^ zDoCb2#Ud$ts49G-kx(`v_`6K9$ihtPlopfL`*H8=5e`Q~Ngmz4!Bh18J73VdLI3aF zi@Jpu?`S+Pz{?d*$dGH}q?kZ*?vyBV`fx&kS1ZC&-A(M+O&ouqvwbWS7SvNO=w=&e z_*gD+t`EOaki7=UYXgyM<`Xdiz%|n;Bgg(vwA^%ecl^nNt+_nY)J$BX?33NZa|M*t zOnoctQ~bfdZ0@;cnofn2Oh!|?G*OralPThw`R|95#M}WKH&fZNiLR8 zns(UXzA5&kNW`ck9@8HjlKv93(>==6_lrl29~`2S1yS%5))$C!x`&-FyMOH=&vb|= z7SB|@t7=QKa)_!+&QxzxMd=H)6$a2Nj0A?DnRZldw5xiH1WG@iZN$IZjbRH|;cPSb zZ?6m{-&Ict59(Z_3(((60VA}|uz{ogUlKnHHu6qc*Fu`$*wBI3oK>GzWaFiE+MsgW zQ-FK(z3{G7C|i;Jx#_w&qA|Y4j;Cq~jCU1}E1*Jo!=dM_P8p~v7q2_Od%8~AUBB0w zCxa^6q02&=uB9;U0KDd`fo#^(Z-^8gly|`DYp#5(7l1;aLQGa}%9;t5HeNFw)9&r# z+8qGs2{#vJmAOU9eN-f(6?L(aVGm)33jZ38FnGN6Yv=~fgus=MNAka~{H#~h_K;_yG4hc&|;`8g&Ev3qH_A-KXv>AgCXz_-11+p{4Op2b+ zvx9?)LHa+m;VSR+RMX1=N$tvqPHW0amRlNGIV7CY%~4wTrkp|q3mcN~dEt*#UYddk zCwFO#QwW1y8p=uQ_CK(9006d_!6sX(7h_)tv|pyRH$$maenn83_1bR75YV5JoTclj zYHd(~>CB-MmJscx>n`y?|DH~0q>Y=lV`_!&1)U>lm2P?gsSj2UxHB=x^2%JtG86^< zo?*WOdJmIb8p=DM{1`*EXa5cWKq^pjVvFJH{E(ySZd%q`DzsBL5Q>6MKCJzhp=o6> z@@SaKiHxUY|NVo|syz}-i+r#auKW;xbw{$0GF>ZGPRLV&>0KYNy)*HX+plMT9&{ht zhgA59h8&lUbzr#Uu!wrF2g$L{ctCg2q}G$CLHG3GWSK#$A)%#;>aG{>G-O*{Krr4E zV(>Mx1=Su(eCx<4!+Zq=8A{*!te1LL7yI|V423ftHuHa|i}~YyhRRPJ>t#OF#SI9# z$R3fX6baXkeiiMam@V;8;+}SF7bI|nmRij>FE8S*x~tlQEmbo&=S4lb?5gqmmg?zx zd65tOT$en53aAS}c?@g{$u9i0v$3*v($UKv3abn_S_uZ@#v6av3|BM_Ptao(-b4EH z;Qahz$O=vWucS-IJ{;NpWAF+)@y?;luxVBZO%!)20;S}HTc4BjGsXoe%l2Z`WlDr8 zGESsG8Ye-|>ZC5VzPQ7j;H#;a?F7OU+`a_{vSt2*9t&>41{481yibcTPGcyHUnX}t z_oRqj(0d$_1Pc@8kHDEVp|Sh2bhdR^tr)`*JP77yIs)1tYw*mMbgOLrqVB}Fek5CM z-3+-H9~-e#bj_(3NmRLD(pokWFZIJBnHlMX0L|H@bi><-dJS2|Jvy_EJ1S7B~f{|`9ZGdp^x?WcoRis(hxGO z=E&LiSt|~85b;=F7FfPyKzLjS;n?szEJ1&|;>L)1^<3GD+CpaC=Yq_qSV^d}Zeh6=5{RQpGU}1N*`Orjc^!)!|^)wKwj`?N=Iq23F5l z+Z|bb@YRxEdja8~<8y!_8BdjmXk-K+&ajLh(P$6xY{`->_q5KEY&^(GX~i2aXr19i zH=&0_h7$3c?(@Sy(@ZD_Ofx9QCw;gEj7f(3NyjJ6GSsG-yENXR3A&+VkYC4BWYh0< zdc~-PV`z&0_LAv;M(1poYs%X1sEbe8m!rZz*4Z^RkTf+JA(XaD6w}2U(iU$#zu?g& zqxCyBoL<>*ei6}%Q6jbUW$i(^gU`amEipdXLs4ZKhR_4{Up4J(g#*hJ7WGhbSGT}s zRBGZwC^Ut!mcD*-*hdXdq=gMRF)_L|M^@>Q#rg$xiLviJWKlH-aL+fh;A_{h6m)qo zv3k6{6oAIFnWD%O^B(-2&5q5lJGKJ;7^_H|k6J@P5H5<Bko@34bi+t_ z3X}nQaC-jW`TRwSh`)XrWi|$$KL1VCu#G58SIBedgKfMv)KJ4Nc{@x1q7hocB-_1A@$Sr?HzagAjCS=0=8*C0}2O;+&1#&&$D|MPk~QQ$$W_QkA4% zMN)W>P#9?mjBZH$m#oldBBF8YXwNYLWkDm7*&bsNfN)1K0a&MQqNnvsl@@hbQXn0a zg~1+*Vrk{ZoAVORNJHwoZ}8%FL+i}YK;ix-m7jYb$_#YJQC{t0s4(O)rIYWX9Vb|) z>}FMLqXeCe7ds?{7vw0ck?f5Fs`~KJnd?VveAX;DC>g2L*FDf~EmaC2`!R<5kO;`) zap+--R%U@+LWctm%20WF{Dfp|A10bELRA#cB(2+0EP7T@0Mv4q;>!OShhwG3itGvuhnggB7HzwnKT z_YXBEcJIrbvF45G=O1cL(mFV!-vc7go&@WyuV;R8>)satbZk*)y!q+NTbNBAsM441tLNV=Q(78u^qZ|M zD`9nPncgy$wLM3_JJxuxC-lWbfiuaEPEdn?XDU}-WchgNFHq00Vn!WGH5%V@#w zH>5Zl&|KXr8W&XT$U-fNrupv-m=!Jwxc>1dj>?!_t5n7X31fyicDYp~LERW^_sNQ> zQX;Byk%F>XtUk=Sg#3la)A($sWYD@~ki3+5M`i{Dn$ihA$WW-Q4 zMJk<^)l7{_r=!lsu<1;BKFrdYC{Jh%nk}4Lh5O>hB7!U^ojl|u#7Za8!gBMTYto=f za}E(<2%WPhex3AdL34w9du<_=^~7bhWa8Q<8E<-M$aKbe=i*=}qt-`~%1FC{Ks>$) z!A6YeE0Zbf1(o4!e`QQqo&<}es@>UY4VP2|gJT?U#Xl`m*2_Qot)Kgzek4SdoItb|wjuDdGi4&20 zSNvnpzJxbL@(q~7vmTm7I94&3QEa<0F5MR4x}L%zp8j8bH1iglCW zgbgdFd^6RDVQ*mQ-8O8!0=yE@Zw^vVCeOx8Rvqa$MVf+cA&j??M(Jwt@5w3hMWqn>~2iHG6BEGWSG8?qF@4iWi9DVin;m^C9C{n zd$u;opS)Q)myKCML(c|glIV>C2uG~%u5>sJx?^2Oz4{2)UE!jmV$Rr!{CT}K$_`eJ zK4_|gimbPHomz3bZQ-ANh30F!(v}@;llrx<$nJ30X~X_D8Q$m2%g|m=ND$KH=V9OT z;J=4-=;cE--d`q%l!j)JV>(J@$Ie1US-G(s9^1SzP|N0sHW9nWOtzU^xF65nKfsid~K6lW*|Wduef!0*B^UMe)R&l1KOu83%WZD zwaqQG)yNb%s%E?)YC}2@T_9L_CXeykI`_@?zczTt(pC zOLF@zB|fSlM^597h23=R#K=kyxh0KdwsZUwkH2V@Th>=*$2-#@qF6jr^{%Qd31tlw zn=PPpW7JFN4EnozGO|Sx-YY>KY{1=<^%G|Nr&ozcI)+#XYQi;VAo0tH6*79?*>^(% zwlv#FerID0y9p%9WT)#;GlkqSsQco5>!R}G(}#=x&WrocME{}^g0w4!2Ce$Al!C0~ zyL_xyJ*)q?eraOB7o|){Io2-+xhTTvE-Qp<0<`4;BR*w?d%;6$DcK1F8zxmq5Cfn zcP4$-|9Y^fvaq(46FuDh=BTncjhG&Y0BuvBiBA_v>>fCXU<*2lkWvY0aWwR(}ESu6GNbgV~F6Q@j8~AXlWvtX@>U}ba$HlIhMn~<4w$*?eh@7b)C8~ zM|rldrTGE)ZE2?rY;)agUlaFJHOXGsnupt=;i9r}9Ds`sWGkLmT`yVT5ZevAvh(xC zQqY2KX==UBc1sf_7$A_Cv7G|L>xpaCT2JPhz`%O>xE;0M*_avQVbm2^KGLM}sD7|X z#iVGgi*RC*w_}?fIsTMxj?%(6<(w1zCg#IYz6?Y7Ea43#;~h4m8Z*j-I3Y4}sy?t& z!Q_=r%y|$fm35S*q2=}#)@3GMdGROwJXB^Fl$-AEjz4*@HJ1mEPE0m944`Lb=1w@z z3eHS5#Hd;6g;J~#1tG7M3Xdj~r(ULx|$G{bskM3T0YD$m(F zVo!$9m{FSXuBM|bQepc=V_ytx^W{jUKE)y_d#EaW(7aHH{#%whsX62)W1}k*E|2*N#T3BMBte!FgtkST_Zh8`pp!}dls+$ zu-SedVy7F6H{ZAhpNALlYOL^=&Cnh0*57?irk?n!o+W`RlbZ7HuL2SBGCmdg&*AG`BD z8|^^^`sc4R_s=WO+z@HD&ke6w6s(%(jhm1f3oE1ou_)Lm03u>K*IwKWkI0LsLIa{( z16@d+0{w@F0FpCY+LdxB*aDwelp|d6Qa;y&)EYWL*<|vYk0v@MAG6|IO^9~Wb(eUc ze@};#WprReN77H3DfkyavA?J1Ti^?~ALCl4+-}BL5TFWMA=MpLNJWw<2jpYPY5|}W zk4u^j^efKC4cJ1X>SDk;c>-ACrJH1r=~s%z`bUE))6&nsRw8VsoHR=7>k8%>AwXxy zR-_COphvyWKj#ev3H#{)=yT;&Cv;9Jkpin`ZSRhn4142qRMatGb9ZkXC+@P=o4HD@@+*SMtk-tKzOo%rl;up!WlsLO9bi^;&-)Lo zf(Jce;q6JdKLNi%FCe_J>-T%3L-g~i$X)B#G|0Sv_RD}#9R)N}=@(hr?meZG-X`6C ztI%}m-n1oK+ZH^zRkVKh-qWjIv@QB4sBqn)u2hxPZIacbCI$-v`p0=7RksE&9)VbD znWD1J(MvY&9Nw(*!nPsD`7zp%(R4W>`+35*Z?oVPrN&*Sjv$<8B7(Yh%di~QD9BLy z)@Qxcv$|N+IW5_c`L|o=eiu~o>B}zYHsp@T6cI!feM8m}OCvNEgu<|fehG+CGXxa$t<=K_p#DBg^UI<`P6~Qu@3x2Coj8BWgRoa*<;;B zIY0HG^lNSUblC)*JgixQu%Zu5^F+Tn>#UQfMYj8|onG_SQ|4cTLZdl*Qx&A!B<>qv zJ3j3yK|&~pi~ta<!!GlY?5;{A zi!98vPH9DZO1E$}>7xhhM+!zD5eN zv;hd2YTfZ6jY6DZ-Ab(-KG*>;I}*!G;U}<`8B8PP7cG<)J0AUdWA@7BTet?A=|zNd zf(SYhB~lK2W#wJltjmZRDF!ceT3uK?t-5a0!GSJUAcAehj`~3CsKlYj({PWxwuYZ@ZeK*tLoUkr!U#5U_5Lii@RtnoiA%D-kw(4(Rxng_|sCkrC4;6+u?>&{R06^l5geCH5hue zkUVo;u)tuTJ9U@BIwFBHw*!B`^hXS_j}dlb@VenTm89VgZ{aU($$Jn3xEp^|B$eUC zX~B}gP3kzM*c8l~WA{NY8^m9>4Q+__Ka<~%^nRURSoLrB#RZnCAb50mujZP02H5J$ z^p>ft?K%40!Io8qz2(ae_Z<7VUm@d1U?xDN{BhhoBlh#Ll=yfP$n6`Ee9G{=nFBlE zl1n2pOt%bvcOQpoGn8elzV`+c7Ij%tj7QrrrwVQ6<a67W>G$Q|EONlwX&=3e^bF!Zc7RcJE< zQ<*j+k)cGa;fWLBH~w9zlzy3U6b?oS;ZOr1eS{t*{*vnmF?It{pSXrmve6#ai;b?}FW4p&UH}G(cq^~XXgsh#ArtYC6)d*zO z)hM`g{YY>*IM5>nMiA{oQaYhp5=|7D5uir)8aaw{FIld0u1h#88 zs0FSi2nkS=nzMPMT@kxxpk6u+PyL$FbcqQItgX8Z#h+k+h_YLYoQ6rCTHn-s#+UVIEJzn&>62X1e}q2(K_$@TP53&*p>!F zHCM3Sfs4%wkq|=a>qa=VR)&FwkL42Q`tTbC*=s<+3r>RvN|gSa_MIf?ivW)TM3!vv zI%#+PUTdBV0)P0BTCI$%L8m11YRqnXIN;&GRh020Z@9D*iQ1g{lP zElfu0V^F{+`{M9wA0Ib-x364rvs`0$z_A}+w5$~lEK^w2L(N^?VgP3km%V`p;+6SV zmR8NtZb&9ynLF%P_8L}?V80=l{jba;;+v0%GY^7W6%3~lOIrttGhGE#sQVWdqCY9( z6`QXNw~{8=J3t5nr6W>1F|yJ_Zb@UA?VPF6c2D*p%>_s#7cDh*I3D|BBn({9B9D6@y z{vKs$z+4bqf5RR>@DHD4#0vc*6%D<6a?q$#^>n?w$cKKeOP)W){|VixKCL${gf&^q zdfeKs{>-BHIrD#dv+lF;_DS5p2k3kZ{g(=;th<)#xy4czTYWu6B+;I#EaXZu50qzb zye~IDJkuT@9|H#Y!<@asB-}4EqRFUr(3e>*(WZM9{c<(ifbjhEmeuobmMJX_IQq@j zmX+o8z9cnE80!r8H>T~->~6{d4LMmZ;YBi(uU}lh@HdCJ54sGflOLg`r&NU_n$ZN_{O(BGMl?d14wPWvRPr!Do5e6aP^;wLw& zX7Bbt{`|$OrT^Tt3-`N$SqtL5VBOql8os7GpVg%7FUaLz_{PNhhnf?+_vOx5^Tzb^ z4>c#piTB%&eKm2O`MconiSHDt&MQG9l%Q9ibd)O5jur_@)6(Wcs={I2L-2(*CQvDmrZlb64 zOO?i`Q*vu7`Q)wQO;`4!G{|19J0rsS9}GD$0!<0r1)U>lm2P?gsSj3vY>%b!kAraN zT>F+WJr7CII)B***X;b~)Co&|&bK0O8t0q@CW5I#rg>z^?=b1E5l1ls7($_)lK^~` zNvPs6taGx-5SG3I>>B+OkH2V@TZVeu#gR~jGpuv6-+Vmf_#>V34Z-^Qm^}8nzHm0S zoLp}uLUbwe>UQ9%M-xrjQmQ;>ZzM60W58F2_Nk}W3x^yl3WlbdqoaQi;;9z{jT{5= zFjM5I_hG%Wu^D%8GtjG?G)RzmUzPCT?&H7qzgk8Ue0mucIY#5w!W3;^9}oxbD>Pr* zmA33)n-pjj`V^Me+9|`jjO4AaAW^PrrW1ZG+MT$(R+n#5?6C}j>4f3aiYexPIt7It zlH}Ush8ccOdf^r%K3nV5HRNg$03prvNw+P z!Z_|(Y_68zZn5!Pz~NO_`87xDGRvj@Nylyz&p8Ra|9OAJ)H&HHGv*&br>ZlNINLET zb#nP0Q|IJ>!dMe1fnhUmuT4GJ%-ctBu$iLZR>k?Z%GYi0PB_O$T-eMZOkp!fj&-1x zk;AZ=tG^;S)`2pvsR5fQ52j2F*vuUEVKYsJ>?$_!>pBczGjf>vlcB#dqQPeNF!3i( z5!lRL6KjjRPzbw03&&WG%1DEXqm1RecuvEF`^^nM=!Ap{xoNJGsL+H@N%Wi*KG-UD zuCMr$J6&gF`djD!+*k71fao4wr$U;biA$JBvWtLxxr&uIq4^@Q^+DQ(ahj@94 zI05*+5Bu7Neeczr;}!A{IU-qXAFh=StlO|Hj6&y|1pcbY_pehOk}n8(s+k8ZwokCy zcwy$IOJ=C3etmJMH~9c{(wkqZvDE9v)f2lwCzVPuNkfkNFyVbUVrSkMfAT}^m_K$x zGw&_HMuB9Lum46E7dt$&=M3g0eTW`uQ9JSN$W02J+kT};lq8gHuZ zMY49f=MPj;>s?J)@8>n^)5d$8psX2aWXhkoXfyX~hnU~c)EsxqaKx2n8{I=7WHAb8-e8VAN%e)YCF$z5Ju!`nj*d-!|D4j!sCu zOZ!~hdJ!>0auc4oXh|~}f!!fAQBDp9A6qB6(B)y}1Bn|0{;H?Sd(Y|v$10lG8F0XG zio+coSTopI7_OeCB#c5k{E+maSTy|j1!AJ0dO8aV22NX(@3>*xrMwWH(n z;5fbC-`)GS%z=z2f5e^V=R4G_^I31jiaR|=&hW`d#pS9vp$9TRsUbe1) zu%z^6U2pvd2CM|*rRNq`bDQ#9`NXIh0t)(a2<&ORIkHNZEY>fmON@Q*A*%qT@VfAcrImVI z&^+O5<2@aU?hU)yz@naz)&+qL&8X0`8Qa@kGFrc5!|9a`=NA!q!%8V$>}>2dT$30g zj?NxFlLPq7aV<@TYr7+>558LRYcJqY-nhwH&_*PT9Nk2fRb;s|M<5<;{ux?U!L6mK z|2~9AIrM9Ka{$TMK1?)S1c9o;<4{B3WBugq=H;IUK3GMM81X&2PUU)k4E#nxBriNg zLD#wp?Ao2|$NPtxuqGSEh`(x}5PlX@3IG`hh zUxqIz=YyFqtM&nzH2A-$t4Z75dI^8kc>nO6J@M67;PHubKt-ySQP)5`RL6Hm+ZXdvhZRZK%v(*QM;u0ogAj7S^RaprCv$V!d=T zQ?YZ3v^oWD!?e{2FN(6s#atx@Go5SEDA=N)C%1~$qp^|v^&cFQ0MnRn^+6&W?fkGY zU$}h^7Z3LK=__vC-Sx+wlV811IkZkg4)SS*WVOM-Z{fu%2UQ#0I`SySlgS$z+r%r9 zC(VD-O|r-ID@9}dqp{tY-h)lN_QtUeo6#Y#C6b{Z*O*veq?j(=khXZ^`2~-N`-YCJ z-Dr&@V254At7TMyhKUgR{i+*8nX$4ivT9%El3zM(g%8vnfB8Oh8B=Q!BEolmE4BqG z{pPkT_p>`yaY9Fh(inVpBiU~Jy)Q%IOoz?hYL$<=jVWL zX616iRyP2GIq8`XDbm7*oR}Eh%0$BEL^O)Yf=pREvfRdXaeZo4z_^TeV7WDB(a;yWrR|G!R0l~cW^Y4_nm3Wn`^q7~QR>G3~vA{>sv-guJwmH&(hX?MWp+TSgSY7C~Qn+rG)_NZ+ zom2Ib#&ZyF>6zd~u9Wi+#9`l)#m1h#pB8g$w|!*A#>~Z!2wjNmwz^xT^kdfyYRocT zzXwDN()-SKFqmb$-ojgotTtaewfwT@!rvPU&GfFNY4~|cq0FPw_96+Abe19+yU#CO)00PbyAiL*&S#o(@Q z)t;1q^me}aw@N*)>^ZS>D?@7SzmG&yDGY!Wm{CIgINEeiyNM))8wgg;E@;S^cm2}3 zZNF_eH(fVJG{)E1@znU7;>T%VOtb}H2wnKrWB!kgCENeL#>^tC7|c_!7j z06qT`OcfQB66aG6AM4MM9P0pFVNHkSvIF(U?!3=7){wdMFLX@g2>|FZ1N5pDBPHJNJcbR>nV<9V&Bo$S zNbc9^0y9~rU~tLBHW&{yV837B{ZiQ)8vZ`EHMr&MO>L>VCE}*?V>Sv}HkecfRaQ`SNx`dAQ?Co4_RqK-t{T@r|LP zrjekPW|&x5JXK!TRnS_$SS&PxVH1K{<)aVV5F&nfC?7TiFnK!@t(F-3Qjgv%A64C3 zvrtD3Kowy(hoey&cJ4BOUmbdw-o=2%8_t3H3Ebj`9l5i`FpS!iprkxZCRGj3&(e>M zW@etF^%@vmziZ^f>i7f&F1f+SzX*(K~vR#^FC`2(nS^Uw;n(5XodeQ3dHX32e*9 zgLg4<=$$e!OvBtYgjG}50%3_pnlFi6dpKS_eLx0IMOHQl1WM9GS?opbnoXl|wu>kh zS^g6U3PB|h2f(d9rXN~MTA_)uR+^d($7%7f*ppBI@MnK!N(idGq1UN^r-G<^(;is# zn23orgWJmTXJ%>UkLg$TI6pMT&rRpkrxkiP@{gQ(>$c*nrw`Wt9T0Lvx>?g)zd{S! zuPh8ek2M(@lcQ>=a_X-H?F8h>k&`~>nAG1A>>=Gfqncjc9T>I%*0ja@!KEs^ zz={bk-UCX%#6LlW>lSsTs;q94gypS;7C(cPdeq&-=upWP!{($A==+{mKr`M*$V+gY z=_OG;d8Bi+#@1~V}dFhci8|<=R;Z%K_7de zA9k)8Q+RXG07eG`shsUh5a92R;Vxj5wO<2lP$GjzLyon54xVQ&8yvB2!=VXU=n;ct zR}~pB%7h-8rAJ71pYrqZ{qlOwm$wkv*)l?TLkG-JES9J7?gQNR-Z)*4?4Qsow2TnS zG*t_^nU2&f@oar1RZBH1$MC%5Y@!M5ax-?4GD+*U6pNk}G*N`<^bi2{Kb6{@SSM3tm3$RWt;%c)Cfu`vv&85f9ml7;7~+W zS@|JH)!nqLw^V3zxMRWbU`~pCB1UaZZ}6kJ%g5G{<;9L(G*MWo1s%l@1i*?-hA>zy ze4L|nq4SH~dy+nVfqa&z9f*gLvtT6VnS21rsy8m$Lte+J%t|jW=?F~Qu?~D#5pXWy zgi`j2hV?RF9S6hbD@$^{oD!d4lQqZdoJK3lZCO2}`k`3hZvNLv-SB(w0)?IeR0`50c~KO%#<$ zmRK(u7u3X?>0ThM_caS}u1VZnaAEc?U-Pe4BETqv(KH~#&=U%^&R6bRHxU8VX2{Zu z2AJ(V6vfiYjW_2doRLPrJZT$^59h`H<>#Vs`f2678+kGB-nyv#`1IkTzw_d7LqL^( zjDYGlXXYENKRbsA`KYa}yTDT7gUT(}qE2QGH z#(~zUR0f1JGk(AEb`Tk0SAVC$>J zPj12$BlpHZ<3A`pe0={w+DDMQw_%06)FK-%tT^LDT;qhcyCT*c5iIl$yOStHNBj5?jDj+tQ4 z9F<$@rjaRrUTvLI#fGy;*t#5k(3ot^QZiAVxgpYQpBwZ8nu`ZJWx7_XoRFskJ(M(i zxBv0yFJ3ME2b#6P^kBE9bGwm8!p1EtkbGrVIVsyS{mQgqzcRe3W7xkRU?I{h$ zPWp!38{&`F6%54)|9vnlJs>Ajatx`J?|1nfsGmRCobB| z{n{bsw}uSm>lfEA{LLW_ngmGmu|tBfMrWXhwkO+0Z&Krf45P!z9d^8IrUrWB5aFW{ zStl>sigp@K6jNC#FTx;sS>(U@YT~BLUbA;P-9La9u!w4jShxU?d0^YJ3Uc`uzA^Fs zq2|PH0^5;jG^uM2)7h_Qf2zhmV2(TDFO^_K(g=5GA}Q1@*(LK1Nhp{D2|-KIPw;;6 z^&{KoKr6iT9yh3cPBXy}e=ZzoYLcZ(4D5E0PZ8scd}xY&R9$kWdYh`BBq0V-s3zR?`$-F6aMhx$vg6S!5RYZSKmiE3Y4L&rADhX1A+w96D18&-|Yh` zTjLc?Lui5)xX&HvjM=!EXA*yK<)cSf1>{uWQ>hVleB{K4Qbjqnatm9?M@JQbqjHBk zlRoQzEgalu9^&C_%=$IJ#TVcER%c@yH__AjrQ>^BF?jl5`JEwx&cqilBFA$F=gwij zZqJc({mmhS1t?|P!vIU<~6o5H&~6zRy~5sDu9F6f5Kw2LsN)5oi}`qsBis zN93rQ@rI}k>Ez@b?3S!Nn68$MJsy*dMNer`@qB%O*7qW$A3|uv+oMC{B6e z4URT~_+lU)O)&$LHc)7g7~suz!M36RB}iAnQ3&98;NyjFqoqojQcsq`bM%)%DH1)kghEeb>A-Vm=R z!``QX3aJD^^~+UqDLm7JH~~~23FeOPD6#uAz>9`^#u?gnBwraw={@428vc2Ok$2R# zt5$Eg4~jblcWWU5<=e)}I~y+bO^UeQra;97;xnc<1m%lH%zoYY6e8-FHGU8uY;o~- z02FHk^*qqQOO3N6Yd3OI+O2ijnmqP|wtoRArbEM3#O4nU2|YR~BP=C;!sR3?NfAjg z9jvj+wF`1mqPY%lt(jv*!Q$)@U2sXgs2W{Tn)K ztBs@~lFbO(DFeSL$P?54cSL-nn@H@*Y{XV=Zf$Y=j+}ncqWjg=>NP;FP*Q7f3eOV9 z08tqJ*~|p=81f1^w$oTvJ|WUt{5<*in{rvDf=Cq4Jruto}9Hz&5 zzZt8*L=t6@3g^ng{h3?4qaR;?rT(WsV2cBAz3TY@QYVn`gmT%rz2Z`Ss^o9uo#|egA^+uU^!AT0OU@}Dx_6f&nrwk{;myj{{cTAi1uFy z`c=4cfykSnesm0L@WBJ!)kiFyhIZE{71gFIW7V2B7RwGdMcnv!fr@0WjcFM-58ziYq>b&&#|ZqtGG42^&jJ6+GS<#QQdh*WRTrfpPt|r839q^$ zb#Ieh&+1bSVGzOX00(*2ORB$u*lR;ml(D?ch^V|@x$8E^Ul|=Q_lR_}Y=mBoXsmAx z2A*tjY7PZUD=Os_w2MN&q2Q=MFJ#TcL*b8K%Y_^nyrZCKOZj63ZoT>gEbd&$zn>wEGCTnfB zl|=B1;-0G2c}AwcZT`)^+uP`(`%HLuvpPesQf{_i*ahiUJ!QQrRa?LCqV!gz-sGUb z7VT}l_f`OXLO%fNT4fb81#Kj5aiB7|2q;M2@v6{B*&pM{FP2vBmaTEZ+uC!wcG?}E z*BU1SxX_svXBYT-=C;0yuST+mrOVYbVbf;Nz9ws2l!{VorC)2s^{KhY9otYtPAQB* z29B1kIH)c+uOP~3a|f%er>R1gESX-it@*UpCAZ(oHJ4gAZjwsxIbalL)vK;(qpDt4~#)|WTBfWy-^ z42CCm5IYuuBkuv09c1U z5b^4($S5^Z&%`Bpi0yMb%s-0~Ca<$y(28Ae1^}>5oNsANL`6GzCIZ0voWQnmpJb~H zU)+EA!+y$e>U>A1F?7WRD+6u;K?@Z_vGDvbh1H^7G@}I#sY*H*C3)G2WDuRhwWfQ> zTOhSc%|kolT8-=4nZ2cEYrE2x1-485)>mftZP#gPe>;^f+G&l!Er4Oe=pDvyx#^2} zVGM;lb!AOYtmD&+GVy5XpIJ$ADx{>@sc1#ydM7<)<9H>`ClpPg{<}#{iO$XpG}IWnI>csYcAdR%Nuc zJK-F^I6ja846b^C2le9`WQg}}L*6!JBwOF;ru0{89eQ=}D>}d}B+Ogy6yVky>*8QC z>?)#m_f)XP=#uw?T`CJNnbI=q!{pT97CKFFObRc~QdlDiUgjaeyC$1;+OqWk6T`#2 z$?!h3*kEO4ZcR>1jA>;7;$}QYiAp!zbIOV zR%8bECj%Vxsx$*3hg5m-ixPKK4Oo8_X?6H#^TGc*0Xt={Jpc!NJgB()dW7(e!EuOo zqu;EUqgN|=-#4}gyrRR+E0f|Tuf4I-QnxVa2!m(Qt|OwK44?XyFbq+`NPcy0V>jk>=)_Qx-cNy|nJaN;E_QVqyTA&%8+74@TL} zIox>c<;TorY(073Eb5FmTm7137f|81wKMU{>#t|+4Y>RD+RlXWmL=MzAS|)?kg0M& zGjCD)+{AHdbj~9HWIroUzR*<^%$(69YAs~BK8`{Wy2DNj15c<9aTAKg?gs!Q59>^XvdhA zWFE6mj_j?&-u!^bHzU9uf^r?_6v>Q5sL`(QzcOte!;R(UfD^kXiH>TrjH#opgS{)l zGVqFoi_fO}@UKT?x`Kv*pruBrSSYxF!KR81pRepb5ybAbsEOTE91{lB~PyvPYJW98|9rxlNlPbk@JwEzB-L&?SGH#gbY7@u+=OL?j!Ybnrg>5`ucYue^n$OP5w9i7 z!}dv5EV2X2KB>@r0d91OAqocqg~U9Wp>!qJX5sISai0h^PX-AD0`&;<2|9w>siR|& zA0|akqK$Ex!n@|l5qVc+TXC3un3C{zl9|7}NWxewL0=qin3Ow^hM>o*e$C&()zF(2qHzJYoX&Qo&%fR__s4+Sn_hOE1&hmxb}GA< zG6ct>2^fN)*I(4=c1R>ueIvhY;`uZn01*0kG(oq_=sbX*bA96a;_O+wz0JN}S)X8g zAbaMPx29hmu20(fF?-H8Z_R>`NMIvRALu_iBsD>ej3zRXReflsCjf|qM!OWu5FHCA zV2HxOyq2!$XIQ~C?V?*Myu+)psK0Lf@WH`{HaYAw{N9tpKGQID7m1DbXMsWm!;7NX zfdphN8##W&?>8eP|II!7jK~8dU)dy~cdtpE9Q5u`X5eWIy?gAnD!hYy>`A%Y(ymB5 zen^WThNTQJ>D>b?yU#GYrVnfn z!2k!0$|Tu|GGRPi>ZFo9ON`abdkNsFXbKM3Ij?EsWvP9tDKw?{{PNviR;zg8n@rLu zPKgIL1W$px31K)SIwofeyQ`W75J31l3yBpz+CWAbk8%{F!Hh>WQy~%ob;OoBW#sEx zyM&4)y9g)?fEV+yx$ECT8(4V&1!Whq&)JYA^Yq3+IG4Egm5FIxPZ2@XcF&!!3qSS- zyxXzj>nGJ~{}$6cl_HX+VoX`k5M^M^tiNJ8IWlDLrI?frHF_{9TuU#@|w>oG^-;pURo5yRZcw%0AHkKOBD@diNxl2}~r7@1|m(bQD6`BOs)Cy}BhgrKR&D>aJ zddL?|Th`qmB7CDA0NRFZHe9a+Ztv~hxKBD6a>u=_#ZEQG00XDE39039y%Ll~T^2M$ zasu!jH*VG{+h?kg=n&%}>?(QJUr8gu!rDW~DXoIXW-XczD7~AJ%VV>aZH%6?q1q0y zh^yraYf0uK4OrMMu3M?UbN-_7L$V|jc|2Z79iS^lnk&kS9nCdXSgFaDF~Z@t9=Gau z$as0ACuF=F;LhgZcsT&n&g^VXmg0~wDys2pl^iOfEjVldybO)I^#SAaaxrYs+TSdw zk2lrHCfRtK^6TS9lh8_qrfu~P~-0L=S&9)#QX$Eb57)*oM0m0 ziFH1t`VwtdPlnK1d0`^33yX3#e;w0S!Qmkc}g?JUAi@`)L2O~P1V|cK~q|pwTI?u{Tla0JRzqvT?rGytFy@3 zjhvKrYhAV`1~FU-?c%TvnBXI@x#RazIOd+y&7LjAdC7Y^<{b)~Dkm&>Ghymuy zjrWDt7e+t4yj}f|4RzCX3!`d%wl8`9gn%aQRQLZg4?PCR@H|pR_@QvOty;^R?iYc2 zs}7b9)7c&tGg3>^~_(#3f$en^ygY5vtp%2L0h-)(MPx#DV-`X0ZCUtYAXozoi^ zvARXm&i|e^^jDVh>HkPg6TOv95$Jf9Rj@mtuwoL{G__BPnkMkN5Wx+Z6y6%1(0WIZ z3{OiSm-B$(sdHF-9x^`C#boESr&S%}JlI1Sp8p+#*@#3~BSD3PGyoX-|HIlH#D|YgsCm8;Czq>o4 z-wag-!@^_=XQPihzaT^RSDbhB)PUX5t1Z%k`C zR67B{K61U8@}qyP)XVNz=AvF<{CH10y*m{?s5WB_%HlBqY6JR3`J`&;p`wUi-?^e~ z1$g?C7fHX$WKVbeNusrTPkt6Q%5%DQ+8v+Q8YctTtU{IR*Q>vRxKr7hwBQ#(LFhI^ z_UA`N#j?}qnKYa$+`Z|h&u0bteU=Z!ec=C0|6KI0>-39*k9J+v*T{gfk+iAY)#IQr zeyG!C==PIyv2rQhhVJHLs(JAflpv~90{3b3*D`EYYF*111*eu@c3=3%(^6C2f;4p> zcPYG+0|Gu*wvU9tY<4=FUiskSBDC&swo61ze`rdBuDTq_!ot+oaS*c+0fW@3Ujf5|Qq8pP|s!a`6{{jIs(bPV_wg@m@@isau8M-@|f$k>}@DK#okp;r#- zSrSM@$mPVENO0}m@*hxCstB5&(QRHf@--rpIz`Np6YSl_0!iuZ)b&N-S1!8}Sd1C0 zqiZb^N{(p`lT~EHulKT8;@lKoQhb4fvEaA<+pMzk(ONTRKeU_h1F}}q(aUZMtMqwe zZ3_NFZ|kcVX3p?=UkQ^Hph%RF3=n$*@&3-9GDB2;!AGQ9G|cqwX~z16CZ)INc3#Oatx0jTBJBQdfj=gFLEuH<4GCd{D-!@EbMG3-9iS#m-1V{%Vy$Zh|~@R z{-%-OE&QYT>GCKO(6h!)H+|zV9JYIWTFY4}!jj#)1{+o0Nj3`H8}jfmbth5=l)K22 zd!?-vIw5ofZ(?r%vxIlK1h%o(&W1~UlOnFSDNy;uGkCSsL*U+Jl(nsli8<)X!TeaF zZLw7(Hu|KZk~+I(@+K@t7T{&v%y*LzH**?*o1rUAT-G#2$UfdsJX_F2)pS3x7)|K4 zzWZZzxS6V;i7jekG(I86$Xnu>DtA}sf<7TA6K^TxW+j!&LEw$8C%G`TzPx2nq# zb*wW!qo7%RgxX9Ghwh$19eU8sku>Pz_~o^QSp9Ld6#~~grpokr=MOnbN z3CavWr7cjQlTm536@5Slx<3QFnHs?-85{_1?Lv|fe}k5;OK5b!wyS?~6g%0|po^VA zgF*xAF1o^;fB};@{*x9O8MU{X$}fbyfpWsHtPijLcO+k#A>>y!NsKe$x10@?fI@1I zOhBa-A)(jN8qdTLh@LYt{cZDa_TAn_7qw@4lgE-jdr{Prf@8F;cAKqGMaF|*`n@5)GUMI49fRjHd4W7uT87zv-nxoJ@LH109PC`fF|_4qQx zhT6R0v=MHy%$|+SUL)z(b-xEogR@|gv&1i|8g0DiaF!Q>!NHArQ|WOK#J3?+IYCW6 zIn&g=O?Ex2PdQW!2&{DIDeG0K+WLhTrMGh4mz5C%NaRiE8fD+)<0h++R%t!2F!A`i zwvkr47$i0)*R%RNf+PwXawtCD;LKzukjDRPJ{C!5Gz;>si1(fDocO#Jft>sfmP z?tZtAj@K<^K1U z2MXFCGZ0nV9IT)&;pMp&>N}kxetvLa?JO^Ig#}Gv**X{W)v>ULuU>#5AKFZx_&7IUG*4V z#&~dQD4W*%OWrWk2Qp_&ugd~oV-G^*GlQ^XP z6m3eeC;gV|ol=rjDi}DcKs`2%iLoEShcSZv3(c?}hKydb(gGbmh646{8d$nImogPH z3_-m;FlPd*fu364#Y+QQ8Qb(SDQ)sAcv0~y3O#X|CBOtH;ej1v8igRW2t;F$UYUjM z{!`lN?b03B&_#m#%Iv=FI!*0wr_x3D-5Xya#-YwR6rSPLsN7vDzwL7kR&`g#^yPUb zyMMPod6)>Ex#zSc8}ICVl#ke=PrC0#iZZt*Cnm$@_H*m0Tg!|MR-Tf|(geVNDA`uyt8#vYx@ukBQUaHe*6NJ|Aol@BV)De^Nt7VvqBCd-HSqh#_uYYIKTW z4EYne)^jg89{>G8hSHT>n}xqSvg^k>kfCtqjrIJW8&Ml@Q5y2fuYO12*<&5h{)XsS z|9aH1KFHx<8K9Xh-X-tTpNymj-?w=T#s};FX__u%wBeTMSwUk(azd2hy7QuEBvAhA z2tdAm@`2(S;1!0?$iX^P{}Gy@@rRC)1>5_eQNXMdEDY<;7f(qE}{=+#YI>Kj$P`PJgbR{^}Y zx~X7vUC@Twt~grUZgk;8D0Vb|Dv!1|Fva6HQGoE_q;SkEjql6@gbybU2&vMb^3|xB z!jPObh$)vTVy|gJ7e2IDJaJ8*Ad*xw7UXWYc2TByoY8?cd^i~#Gkvtund+G$M^z0S zq8-x7kRmotip?}NH_>AoZ#kwEq|d$VHut-Yx1ApqoSg;efes7ILlQnD^jHV}qA@tu zf9yvWK2)4I{>Bd+pEQUlWPnRE92lQ=frk<8ckB+Owe<%C<|X%PpU<^?eE;T}_`e zWeS7AGC==ZU9$U+6F>~~mW68~_uJlowz1{lsbC^NBp@M`p0jfT+r-ZG-TLxI7a*k4 zsbo{ic?mZo0Yi}iZ|u#0$ncW$m`Vn9szjyibnUQAVOJiGsoeR^n?zAH@xEuD;+u>$ z)lBk^SA|B(ehe(x%D28&mxKSH>^I{QMHy|`eQz`84Ty9FFh4x_rk)MKZq!*K8Y<$O&n zc0MmfWWw%%ItJgs7|jx)nG}u}0128oPY+QzT36VJ#RucQ&Tk4$DL%h^x0ltbXH6lo z2hMA6d1JZa=cXfPKb~Ll%^NG~CqK>`TkF-}Pv4A4vp_Q7?-PNipP0TrxX(i>|0#fZ z5&(G3;9i0U$xgXylNU)9&2F36>AM4bx1Dh@MFd_IH_~7x_#g_o;v*uMSzHJ?hz@R7 z+o^0VqjX^x*&`A)BH>ywuVP#jFG$o%RA|L^Sp%%An3&o0Y9;Uc#-fE@iSPZM!n>;9 z$i*kPyEx3;SV_ns%JjevUWh-B>g!`^>m8%|`rsFmW_%CVJc&&jHLZ?+USZ@Nwe70a z8@Set>;-L6evJ|dLF`wSwf9Ggo1$1+mErorgfqO082}dE&xUkE4%K<|n+@cCh#a4A zE4;67fOJC+S<_$*PvM-8xi}NM2c*lD-lVy?=9I-wM=!0ruyQ!})6XP84-C(@OJoK4 zjmuVi?oJsoa0~|sFaM^$n>KX;-a-VjBWT9~3n@UYBDxuu2(W7>>_R8z3M6CKvtWiO zyip7DeE9nO#4j#;%-Xf_?qS{h1REcZnVX(g96FSrwB?=0oUfnW#mUGP7bI|?2Z61Txs`?NA^Hr;Q-$2y?+ z%^;HQY^Y)=7M>rbuv!!eE0<%{9uZvUD(9(kjZ)4RrjRQ;4~?XaH6FA5h8T7%?b+Jr zkBY(J`F_-pk;7)q1DTJ{)_g^KMk8qI*xDWa`1&jLKiTxN>uBuG0Pm<>P#WaASC zaN3cZVjta@oT=8XVmEEEW7NHMnTsFh+Rg&p!KmKRwo@=IgBFeOCb4oDZB*D9p(=EM zJCu+kQZq^+wSHfaIgwwP#yM#3>WGRxRk}?iLjRUS?EZ9sV}R57UR0$toCMK-hy-xQ z$F+5Zn?xqXOXOfqEr#eyjroa~?j{Ss5=X|M5p;-aXc5=vB(i_6xfp-KwW~*NeoXY_{QF^bmkU z`k_;?L}cQ$`sd6B73TbG`?KpXhU0zP`?N211wF3Ib8NeL?U_cS7goVjbJGr zB8m10ii;q!1JEJFn0D^a+{ha1;qEv5%a!@wdrgJ{MEc&l%T{stKBP4Nv7HQt~<;nQy2U&7hb(9b6uyFXH z{XzNCBti4}opV^kH-KqLRz4xpTKqiu_?z;H5Sog;4COVFSg9~UeR0`3u2RpRmf0RE zIKAebyUf4(r3SP2rz%LdOWf7R4DUy2mXTEAl%V}amB!b;7do&IRJx2ic*KodDs8}Sd_y5KP+-@C8W zY;9NCvcPt!--dyb6xqlib6I||unYkOJvl)O+{Mn+yMah>KezxuNP>$YcUT@e;I$3l zz9mlq1?;jp9aCoLmv4{Vm+UItA)u^($NT=i6uAF^{9qahi$A3Csg6}7i&*|$9rHw6S9bMA_d z!RD3QJKW<9uyMR!Iy^%U%+$7@InX}j)mvyzryA1d6=%);-rH!?vxc+(NjJ+z=+%hE z`o>_|i5x8QmY;5h;U_6EDd;qUX-hLEz6Xf!8DL!ku2kUr(9j#f`>>hnn|SO+o7}R# zN;?D}wHOVfZ0=mt^3)5SmHx9n`RKzZ_j=St9Qi15XHz|-aRif*y zDlLZl?vccV5G@=zPU7;tDh|U?U+9$KZIv_@A@zE)}TxiAic zL@15sg|aX#P~JvmC6$i@%I!I-V)a9zr z;(GhSKdWR+c%`Ii5X1p+aXdd{`?If7o9EtOpb>3v&pl z>6YQ5qs{hSs4^|f5;P#0?lVNSFrD(YiiUu) zQ_6iEmFeE-g{1p=8(29voYF16xbQv53%Z^9so@+i^rQ%rio=KkclX78`_Xd>EA)y) zJnmrWsLVUnP+d;LK+sYnR4f!t6F0xP-E>IHuB9U?Qyy-G_Y`KdoRe+E=;4XGh4+I5 z4)F&@84}TnCJjR_j-lE4%=ITF$8R3auUP){;3A6k{LWP6)$NjX0V6K~kaZ4|zY^6r z4Uz%C6RBWX)0P8#7*-ifxZZ#<-?RTF{|P8HTGR#e-`}EfTE7ejn`=(WA6?LPl?|_! z`tKgxvoC4Wi`TQix^@?lfb57w+FDtkV0$2Y=9agnUmdPb+WIkj&Npw(f&h20sYaqh zjEAtRNl%V+@D?wuj*KU-FPm9RO0pAip@gNqf z0@`;^MLTXedW}T#P|aJ1wZN-7G(w_qHpbIiQM$8bF9M{k;VAluQv!OvC*B)k9)B+- zKC)a%>GoesdfqMSTXCY;aqOdLd{@;g2!^NXg+3Q#1u*|K4q1_U{v@%8=eTv~@%}3()zI7(uStQpWOH4w05R z=f#c?*$ajwjieol_8(>=9n1YyeA4DNr8xmrX5R{d`(yJl%;lgyeq2fb$B!Jz#Oszw z%9!R^BsmF8ayg8#P2Pu|4h_&lK|;IF4vrW4OLmtoJyaC&>$_3Qe9$`ycsjrJ%$Ze* z`W0Nxrr3u>uRE{xMXu%YOMtCg zQ*gM>c}<%^!4(3n2*_vR#pDtD=0?h7fX;kCvdfv*YczHwXs2RR)&x}+#HEZxcUbp$jN zuEVdiNIUJ0&ufj70T}S>mFZgQa&o-ic)z-1;>Pi|UiUqm$C4`J+v zioBUcgokY3wGFX2KF`r#4>~wxs;Bb**EauV-|cO5Q7;o38x#hsnU~#y4+wN7VCq15 z4kZP-(=zy>u3*6LYC0r@>tojZU*8&S!+P5l|6OrdeVCjYqT_I2w>>@@)o-@88)X$Y zAIi70GVT2jo%P#Bv* zrz=RmilP}qj`tu@3CT$jKYa27Wm33ijDO3dpsar<^f~kI>Snn({~EEg-7(N9l{57C zu~{$$wsFABeM*>#Q7lS(DsqNCsYxUK?EenKvb=D=^Pa5*{NFvAdy z?KB1jTomU_UHI16^XK{#dk(My3G59^Vrk`W*%~Lj34YEf|GP(Bj+IFRJgbs36fdgS zNZxad?dFBAOyFGuF9WuLbUxJQxfL`uN?6KaQf#g_M zlx6AVJbbJJR4QeLoO-70Q59>^Xvdfq4v+QjpwHe7rvJHEB0AK#;a?WLZqT}sG+*l1 zuk-IN&pY_DjP3mTktRTlg<}!3#%W=S;+Z6)4aDqj(F(_#o8?blt(p6S?{P@i5`zuJ zTJO}-@y-w{cH3Jdx4-O|1iNj8_}wdE zoKh9-lbj!9&pw!E_6a0}${&GI&OJ@q*SaEGzi z%|?b>N(7>&AQ6R4pMrVUJDCu(L&ueg7Ol_@0c}%Z_ccCkngQsg#?-tG?w$nvvhzbv zT;8#K*M{nqkBUN$`|Qx(^yHpy36?!#^j7dDP}zt%V({y!cq<~o&czU~kdqS69lVi% zl2%le_4dV0srRAlsrY@pNnFb0WGG$9wORPPV;qc~T{8sk4SaXl4~o$2Go$U1L1*3u zbgqL_TZyfQ1eKE54LFsp0JI<4K}*<8Sli}-Y8>o3*qwIaC~K-TyGl@j2rduWf%y_0hF434M- zAQTL`0%FV>Ubg^fn-!J6{U?<1)sbE&yD3vS#&6*zbxsrVB4PA8Y&`zqV}|mtZ){{f zHOA2eG=f8fcW4+%+|$6IHdL%IBSqwtMi>S4R%58nqu*>Rjvj_77?>yLc5_B009h$B z5>Ad;DK{Z%)q+yMu5s9AB@-gVEW9Tf+J}m!ivSI zhWpOMFR#CzwKrhYcxfsAm~82AN-O!IbbB7hStpVUIt+#2TR5bhw6>IPsL&*M+4b>a<1{x}g|tfR zd4-9`-?ho|>V6gY*O_cPzmv+XWEAA14>xkR7N#3kZ9*QO9Cjm%+ON0D<@g#v!ni|e z7>(L$YeiUl0|y&cM68+i|K!H1TG%9`APs8weGv)S`x2efUkiKc-wjy0FTrZ_YoRZ% zRUjHWzU@rf*8h4AvoMY}4Umi)n(o=#)4V4`N0Yzp-_g#7w!B|?Ps+_2*WJJ~vGRp) z%#~L*9sS|Jg;f|<@-SoNCoqkb12$NmtHn|)6_vD)=J8nf6|;0b8sKB#;aE9fWh!>_ zQc8S0?^oVKlV&cBUse!wtOM$H>kh-JydN|`i$5IjaFm#o^*<@u{Xgb^1M0K>U@PI_ zzoZ_%JhS}u+AV90GPKj%r8_tmcy_u8ehdOlMnS%~7okhyO(C|mNa#V0NG?`Jo6#Z< zqKJQD~P348Llr(I3rB}OCP*H34Eb;9sJFG>Aeh@ zQ)LVCheq^|kLB8$&BEeg0rby0WZ-PNyD>-_J}+}a)e`1&jLKiN3c*8K*Vje=CRkSxgf)Li6_ zZKxrq6cXJ#o9vZANj|URu41Ks&xufmk60<7j9X}ZVf4ex+tvTrPzMT^vnvmGHgr2L za>C14c{(&csV|NwjPe*{=)N;jFWTn)bnW&QBvr?B(cA>i5{LsO6i9w(5hVZkP-H)} zU)h5vkY5?5C^y``GB=;|T&lc>BxM1=GCE_$(yL`4Z@qzk7{=5oQy7eq9+g1X=YK~H z;p;w^5gs4(Z_M8!C|Ep5d&4xvi2!dLvUIw@CmGgqHEZRhppcT5P7|;M$yAJra`J+- z4(*%y`7&kX-NO(BV=zv9MuP{Y5xN)%Vbe4#-|VfGp?Am8zVu0Dkr=vVG6iiUZjsqV z*NJ+vlXPs3$CEb*ug| z|EeWhd%}OZ&L#=gT#&-qkjp`V7^HI&&;zYpA*L=juOP~3bBpLX0Yyd8C<{Z!#DsKl z$bb+YtQq!YnAec#%l^O5A#tfJr!0048ty;Gg*Ags<*Z%lOm(@jJS`sN3`lpN3LmoBm0m9fw7z3mmQ%{Z%8bEL{itaJveC>KzW@=@0aEx{TDafg1L49jAJ!a2#`TWYqpD{Wa|yVP%eWp>|o zou>A;%Y?jS4qG6(C`EEYl;OJbqGu%7pyje=ta)p)_f!2zo$~;kjjl5? z{lnD+Z;Ajqs-Y+r8Q(SvJC-n<{M(`Yq%H3}=6wD1E(XL_Hplu6WBCPSFi#&&7;DDV6S(4PmHHmPh+kf` zt_A0{@&z_4oa?Qbf1~^OpMdok6|f!y)By}r>>duZc&7-I4pHoq=6`l>47fO?oQiS} z?)~&Js#oC~nxeee(OhGNm6~i$MB5S2L*10=T9IYK+f{B$aE+mC7k=*TR1Qnxd*PsO zMo_Ku-{T>}O~{tAvji1#ip=F8P3eDYC{HuD$m_UmW$e5up1748Fy*Qe!2}G*xT&1-Jor zEE-;>#7DEE%^-a5;ds%rk(m$VkISPXbC3)~B;4e+H&$Be7A74*Qvpi90Q5&ae~LTZ zh;QLR1j`)oL}dLruF;J^P5R>)9M4PMFJ%qT%>S|d+~OVhQq!muG(ck8Wh=>VX`kqr zoGt9GY8J4VvjyvzXn{teLyU*8tK?k_mJjj=?u&r$-N1iU@d>OvMW>8@mC2s&__6pc zd<>=W$&!h;#27>)&W1qkK|2IZxkSM?pZ0=e<>a|Uh8MYP+{NZMHAG21WgZXjNP zRILL|WR}oe7DPZc6CG|7@HP+r;A}XylbVBYKrs%78yMBHRDA%3DNVrXROH-k?+*?1o+r3k*?uA8>hH>!H` ztHqDe2Ibx`8(8IG_s;%(AVcBI8|(Q$qmSG}?+;y+e|b{7=^Aqijkld26`T$JmUoZ!rV*2rAGXIjGyja-pEle>I9%k-j1V5OWpbcdDZ=+|gGJtL z|4rq;IAWd@hzEWD@NlJ*7j0De_~c;IB)PcIGQvP0-(s}s9IETNkUK9#D+Rx;px95q zdfUL+&?QtP*+oEEK&~$i%~GGgl4i=9Fb&|}0)YOmjYwQhoZkXEz_>I+6n+^r%Ry;H z{e*FC5t60;=@%`!UtO(U^Pwj=Vs(qAo&P;;AciO@C^7}IIRjl74^ybE;p~TGG)sMw zEO64r{Sn=bqjLW%^CX~zwO&O^i8b5zo2eLzh36yG4fsBK@~m|RfU(Ny^-|B|sS;Kn7lqSL zYUY&`9)JIC}##V!(y+TBdWu=^cb zq%FX?S}K5PQU!^?0~qbWt9hT|CGezrArW}M-f*K;OPi?~{@u$Bbbij1jlk7T;^I|tf-2wsq)aR*b=4CHnU(73LKB>jof zuL~GD0DTqK(AzQV9ipf8$|;MwENEX(iuOZa>n1YK9_u4|xn1c2-aXde(#%#iq%A#g zQR;vC_er+C(M{>E)H?JyS8P(ZV|uJJM&OyP1lV$}K^e2bYmT)6q;h-0wqt$N!5;4c z26SYJNyEQ8o|o(&?DBrU&VKG^5xSNdVaBmXDj*>8H2W zmlT{?_|9$qFHdi8{ks5kZ<^qB$b|+LK_n>>NfUm1(aEB?K-vMdiz4KCpX2# z)`dCXk8df1OydD!8;bEPb4WbIbkEiibMUg~RH>)s9wqrFcH`fb6?{$CS|pSl(;OzN z2p{CeTv*T#ifJZApv`&GrqV2=$1a>9{E9Zt&y2Te4z6V?vZw>4YH=JJk z@uJLsaOz{|+dmi5)7z=Ib<&GUY_;O8nkI(EX9yIdTL#F1>K#cdk|HxG0&*&4g0_N& zfJ_THs?u0)aYLl7@DB2^C*^WWyCUuQ*#KwAc`v=D$w)1-(7LXPVNf;>kS)<}=Ib?3Fd$hBOK z`I?w*dJOD{GwzzhVLlV}Meok7H(zirl8b(%y9eP`gIcpg*DtmDX8+yQ1n8H(rpzZ_ zQUqS@ki#J8+acmBz5-fag7(=&;1IrX8~P(fM?u-`gmvoqu-3nTqk9dKy|qh5D6hN9s_}J z;Gub1zs7x0Pe2_gNz9!2fQIi6hg=_WewP8=6ySF%60Q>{3L`iSk`fFF8hC>>-C~Ht zA^gy&L}g%je*729`#ktR?_&+#$=20wA!!L<2IK(%prVy)MC?NWJm+Y11mkNgI6pAba_Ut#t?w7BuE~(8YuC`l$gJO#S0Uv(isjYZrd-jr(_Xvs|2ijo8`l zn2zhslpprA zxCGg6R1|zvZHK1ShI?Ar!Wfd)=A{5quc#Lr(3juG>^a|{kNN^ZcZuF4Of#<-?v?8> z0FMFAxsfCQ%~$F*b>ubg-|Z$75=Vgr5ZP#Gs565<2O=8M19IMLzj9rE zKL~;F;%u+e#~6jxjCC88E^UPtclXw)NLi`>S_<=#=^D+TCv!b;g^meoe9qsF*l>*)kX9 z51l#x*SAL7M!&59S1`%ijhvKrYhAV`u4t{Gt`&^VWz2rwAU3>FipDP~_F?D6FX&NJ zEL1I>!V8lxtey)(_ZvlAB0daotF4}luE1f+#wyc8zM~&B0*Ez@r@y|X9EgVb|y~l3$MFd@|T}W?5P(ofdL&w}cR5V>=+*)vAemBC!HEsfOW7{M0 z=f3;TQYxW;a+;}f!tN6ANHSe1Ux7f~L=@vvM39>U;fxaKZnNJR+Urvd=3a6<{yXnJ z_68QFkwuMb-5Nx~r#2eXZE)iu@>J>cUQD)U~ZRwuGA!D{nsp)aphAS#m_QD91= zh4~l=-Y1jfb@=Z+VLts4!~HZBb2%X=UK|YgzAHwz)bEr5&uEUmB(W-l?$A@#t5UV~ z3olA<b>@Evjq$_#ZDQ$uRW}W+c=lKa zG?2^b?j*sFsWej^6S0CR!?fiM$tnR$Ii4kyg3M7dG?9E|+PEqVOl@Jyhy6&hxcN`P zzcLtpRAliJT)r}k0uw89i^Yyf;l)`BYbG0UhHn$7BXUd|Va;)Xjl*^TX*W!=6MU{U zJ=&brrvm9X!4$~zWCZg~YMwGfzkGY_zGPQyJ2ao2)vRaq#+7mw(7_bI1sFQ`^-2w9 z?@v{bZkM>rIpS5dz{pC)#QUCoif?ib|J*$Mqbg~4d|qpu3_!$=Rt^?ibtTN)SV_ns z%JjevktFzt*U_S%c($O4s_A~*faUv8LT9{AQroEfVqqBq3VL#a7HEJ-h>oERrH1ng zQYmWglF;4A_?43UV>e}nUZvb@zpx9^t$LdL zNXXs99_xS}ihW4N+&96*9_xUe-G(yD^#!MvUv^*k$J0_%-GVfAA9pEWOA2ns`bsaz zV_h@K#HU5%q<^_GALm>}BuRQi$2!3J+NPI9X_H?Oz_ucCczPb2ARG)39y&Qxq@ot2 z=St%V0u+C&n{Y3De-pu10D$J+ETF7^$NT=i6u)$+vXK6}6EE_E`pill@X8-ryT~V{ z)`(|o9e+zGbd2GDAGDbV(7LYY0bug*Zg&H)q(f2f2QKCh;TwgZMN~1AA}Xc=!xPXe zKp)jhlF^ku|9acp9|LZ0df5ezTHDtMF7Jp&8M~bqIpJljJRNWakSvUc$wIuc%OBTM zO9f)Potl%e&L1LiX+5pkz7)t6*}$%(!!Z33Dr|QZ$C!9m%$f;u=0nTMKIRqCw_6+W7e*X zcMt34C)oIS%-r;};t)Wkn!PXHNcy#)nSKR3d_a6l`Utk0$I2Lh08KV+r1y7`V4K5< z7@k}>#TdXDo~Cg=Jb^?oMw+~fWup^K%Koh`>AE*e-uO)7*z&O9h(t%*Ea?M0>^QCsM$l1iuLY){sdOL8M1dh6rLeY%rYWVMBo*%GDIf;u5l=@6UrA2 z5)g-rnr^4Ih@KNrR1}S}Fmy~zNdNFLL-|*(P>zsfw%V3uQwU9HqKt=#+_@445$Z??K6DHs(5gx8!i_H3k;A?M66$!^F6J>cSa6a{c{l&ty7 zKB#`zS4oL{A*UK+UKeLjzW1_`de#`rYZaPVDsx3tfW}om9$m5afNNm62bg_{U7W8Q zgE=Qn4+9xWijH7dUI&7BWv&}f6l|v}u)3Yl(XWWe=>u4INNxcDmq&crcNAudih$?_ zXCXns_F_cVnJECqu5ZHW)om1+K2@55kONM6xuNjVwfnR7_#R^>aLlBbonvoXZ4;MUfZVd;D;XhPi2 z@T@ga2RS}p8E$P&>z*#~$)d0Utr)&fP$RcMDqamZIh`6t&Cdh&Y9^1c4mtJrM% zc0Si&ZTd1+F3+`4-{}@ZBg3yyzz^)aK;0ZlRgw!8@oE$>xtm27;)G@<7 zvB`1(Vh#%-HIu4{3buyiE914&doMTeuk4dfhTL&4YcU>IN4+jncrRJbm@zm$16|OE zo&u~Kc4{qix?iNf&~qvs>y!n7(sZ5-640p<$D<~to!Xsnjvw7VhX~SlHV=}%aoJki zc6m4(VocydfJ_0u_=D2AwR&Nw?=) z=#vUR3{Zb|_JJ(1Gj9#Q{JG%_rV=5-%CGSNyXPg}OAR#<4$RQnpRF7JT%4W8ztr#O zcbi*Rf|JcV{`3&KT57U%f7+7G?F-O4Y5&oh)(=r@0cXzz;a8@er5mSHG?kOjbH|ik2h9SB3W3N`Z~sgE=o1hiSG?SPW9`ww92KK zEOtm+yzb(Hhj|7zI~`81d~k6QF~ifacLOLs1E%NQhipEJ&zt{R=~N1vF|GO1O^8^+ zotMQD=ce$I;tOjKp;7!xjTUvKDz9#rgz_~}>7t#wPNiHbbjq2&WJA^B^+n-VF1xM) z06$kfsaiVWPJ8~}rwG)SjLA^w)GbV5p0T9e9HkUmuw9eU3o}3hxrKq5zKAI;Lfg>ou8{(rrq!+9aTY4kHwt_v~2lT>T=?lB%=-JI-1rOCY&L{`H3>^)8DLo zv$s};-Yvrr?0q$dg#GGj%vVNm*L^Q_3M}tNVAmR_(g}|t89pjI>Dd0@L&f{Mc?L*MVB?;!K)YISqR^cC0c?EbJ1K?&)=YPG+I*wtze zu}vXh6Q&FwU)of<8AM&hWbw=}+-HyPCg5?`jEFfN13ot1G~8S>{D1_;|1Yi?*~m%a zno-F8zvr3}KzFqF1bv>N#UB`D$Ox+Pzn(0?6#a2s(4Q?` zNI?27`dpGy6=eNi2P5e}Jb=L71S%^sQtSBV6-M4s+pb#87I(@iR?9Y4#MyAEZ&Ji{ zIQAy+Nf*PyidHHc)PR_XBOaH)nD-~7$}`K`*!5I>vIpD6DF*d4ENx4MFB6HW3v!_b z=nv2UOCHi)d4cOETMXd(;a`3jgs7AU+#I58AfYZdO!g9=@D+_dfq{W^uzHlnCev5$ zd86~h-oTC-)V@1==>zk9*h4b*j(DUjl~UAvT~s~^njWN2qFixaL6p(v(FiwjM$m|{zAFkj?z2OC)02C;XaQD9ndee? z6Ef2q2ModhkDrf^dEoe=87*i?RnoaAS?g_J<=k*exA@}1_iszT#T1{+GDFG?Nzfzo zjprpvKnL_tg*W4`YH5*rsvou8kkZPdgAhq<-0aiuYAP$iP#eyvARXm&i|e^ zG;C}-68R+qnQe(%p(XuruMyi!GgZhj@|Jj}${iJ35`23&0ntFaQhSsD3}U}BeaMI+ zqOT0tSA+zB0a-iV1*$Fpui(orllB&f4jC z?Ae3NrGFu-qlP4|0Glm16;$j(MUmKMdgHj1MeTv?E7HJCP=P$w0k3+3k9AWdZb+bQ zW);u2Gy%cv(@b}fkeHSr<*YStP4<4OKlv@TX&dEore1=PZDzQHaAbad@dNd2rJH3V^lC(7ePdcV zFJS;|XwsYwp#uFADK`B~^?3mO3=toEw`z$WjrvJDI7E1dhLOZQjd1PIgqR&Vt`gOH zSVL?jinM2duiGHi9du+nw0l+fi!`QtJ~c@nSWbqiz5}T+aA}p+D#PaochnjHi`Iw4 z9yqVP<&EWvpE;*);U^qR_Y{Y1Zc~~QP(=va&Qv4OA;v@4RT5zXsEEe4Nnw})5S%ec zyUxRuH3l%Ix$ujnmAhqYoba~xoUYAvt_aJr!RR$BH3aw<9%Lw8$+cPdyJH+LGhJoN z6x`+`L1MZm| zOr&*lk!@Dy#yb+@lid`Rr%i}6C;nguJnf-CVlsTBVnR*v_6e5jvW33LGd&1!%`C|0 z)E}=1J_dkvaHHqQx&D?FLA}*f{)bw{eBbB1^v!HlDfh5L(Q?bg#w#fw7$H0Z#ml1v_?--uMDdk zn3J1taMGF_g-)_YDZ${diI4Kgm+~&Uo;5G^z3urh9$7zA|iaGfz?O^}%@$oih4WCVRT$ zPX@Mm@@`X~>@NV^%q6EIryiWwJ(z2?=J%#x*3+sfG^P0b^4(rmtDZISfJrS$HXn>%Q*dEv-c3tj_z>W>(BcOdeS2U3I(D$sYS+b!=W79!zt@KjuucP z@M)Zu+Dg4877~di?TE*Mh_pVR)KURCl`=tFK|}JOuc|k$(>Q|sb#*<@&@j=8f&^K1ZHhqcB4~+p@v4em9wQ~0#_MO;;7FoV{ z=WPKcK?9QMK0}d2`!FTp?WDUwVaohSfNp%kF0w}?YDB`dVz`$Jb5qHtxXEi{v@U{t z(}aFEU(98@iS(f&p>E&*Bvq3^FJxGJydXd%{zA)yc#q^N|@NO;XhAB1ca0H97fCQTRuXcE zGChE*`TcGX!X7dBj}6Z$9oI(O6xYgZ_Uu2s>P7n^B*J>gp-)C*XHbRJqTmvSv2(^*$|poxi=QVSe^V~2R1j$+-9nD*RRjRI zAesY^9_tGlBP(<=Rco2GEkqpae=}hiXpVKoxp@{w&W#CYh27k+eDh#@tj`H-6Fb*; z>&qKmXUP8+hdCx^3%jeD1uW*)J|Dbs9r%lmy1LDZTYqrQjnR*aGu7Y2+1R0d=`HMx z82jkK^)8#ap;CTcQP@Q_S2q0|eD7S8e|b{72w@5iNfdxKWA``#Z;XW0Na!L*taLW) zdJa|<;RwfWPO?qDA+stJP~hB)zgv2?n_ZMqj}2U4#=q3#)@Z zUO>rY>$e>%gKgb-Pa1`W#iCbaO{h3?4qaR;?rT!Hrw!JEyf$OAkJ3_{I=dC46T6x z{tBjFS+gF7)ER|lU}4el=5Wm5fxHNGfXIL~TPrEOMaNUGTK~RZ$T1FGp!WfwoeVTO zDmH&`0C^5lHz21!By$%h*-rh`0A05Wjm-6PHssQ=o@=4L(<$QT2N%}P+E6!Lw=k;K zXZw=pPwvAXbgzyieGw5Z^!84CtdHS9v&#^E^|6O9gpHC{&$A1;|Pi* z`o@u#!RX>N8|9`5k(S8TK9W|mL)S00dNof_UbmEN2Te=xGJLFA{^Zq~xj*h+GK)LGc2#R#6GWvs6Kd z;sFQ=h#EASctJppaD^a&1PBm9Nb;ZE*h*VlilX)R`S;V=*`0Zdo89lcdGqESmohF) zzBH+)F7*?5Z8&PrdvS=p=e&7&y@Ouxiz5|n=h1&F-4FVD)}cqsH&1X0NTCjY}hO>HYm<6g^?BN9TNO-15F#%kYx;M=?R_dtHR9ignd%XbWc5#nUtO9w{mpld zTC;vS^yIB4^d}5w-3vbZVlFD$Hgt;P$3*+?yWsI*`NtiO$~P{Yw#6VSZ2gVHg(;h- z3qSLsJMhPUUUXkDh&cVu*Rs&AQDPy5)%{rJjeDjq2vFssBXB~cibn~>Dv7GlS{d&mW zJ+}1cujn;5a<~1zQo{6;(r?FtWgDNLoqO}LaZ?FrAj0opKC)^G)2d%{BmcUsS20xe zucG^@8PWfS;moaDkv*c2jDK}$%&jYnHZ`pJ(j=|1{x>6gECM3Gnl$tK?|zu|(}{h( zW~T08BK~D9_EvIHBYV*=C`~`aPWf*bdyl|E(>w>8Z+Nh?h<3_9#Z%L$Cw3E9( zhoto?y*EiKkNhq(*Z;<1Z);lG{ zeE(~NFO(mw4|y@aV8fa5Ju;A=oA*Bvyt~E7Yv|C=;eq(zPr~!>E`%;-Z-wV3wF_bC zw~xmB`nMMJjstql&f9C4@9?wRb=v+C1f&05qk5h9+IP8|#uq;sbNfbg(`T@ufBM%T z82@T_^~Jl?P9N$x{28>Ij^TBm$N{l`J;Wn-{VzBm_Dist>57T{uT^hB$-e0kqdjlW z_8BKOJlT#QoM94s#Ql7~pHQ!cgddyG%KqH?k9R=)WI-@`cR<|c^=1{TQm+FA{ z2l0vffqv!lIzNM7c@N>~bL<@Uk_|L=zVXL9Aby1K)cQ6G^t)`{dwW=K0Ar5bj?=33 zTFYDuCoaqFF9m}ci8*cHxPtG#p7oDP{x2ZbLk|<1feAO>lblT!i~nO-puRZcy?^)i zgZ2+Uncd8}^d6y3-#V(OMtq26HoRTYzp=M^6*~l4mYENBi|}zFJ(IHudJ818=lRGl z%n$wj^5unq!jWHC;@0gGt zIQ0F()ju7ljQXzvN%k6{ws-$S`d>FIJ`-E-5uZIhv46APLs0zjAk zmdtxy8VFUmsf&(vKX>Q7M_9q?J5S5JQl{uF^;J-F5TlM0Qwd1>^u9gAFE zKTrHiOoDuJ|75lJ_?QHbnjMxEEZ+V(QbRVQNN+wkCPB}PP8D8%kqJJ?9rfSYX!Y32 zf7NR~diPJ}A`$V|rQSz~LH`>L64;$XM_*aI?dr;t|H3;ZNz?evV$ZB+C%yM1se@;J z6yW-@m9T~QV&uPZll!wc)^kf^!TTHqt}Ixwb5;DjSC>uxbq3IGd)(hTyZ0sdRv1Uw zpBb9^;)|N+*O!;ypOSa3;a?^1dw&~G`>);+%8PyV1nyxJ_=zNMhnTdD3qNH>Fjf8E zI^@g_KeT+ytTm?}f7`pCyFv4cWkVLfFO27*FDf-h|7K|7?LIxf|97u|#5f~y=<=;2 zPn@~8_LrFn9~j!=H|vf3+Y^RpEY7p!Tf7yV-x_c1c7XNIHqExnau*>NTI!pzaqVf42yf6fGxq(`{rgP!UjC1Sn<3wf{G5imeVGK(!=ra?ne9^i zcaxi7(W`{04`(ZZHPt7@C>cME=4ef;dVmnIv(c{G3Ntm9`shlJl()xqCn zXc}^MQR=N@WS4LKx^*Xrqi!UxO5lC+#J6?vBa6N1Q8|qspGvDWA){BV)<63l z%3}YZ!|qpT_Qim~Y|)VE6MKmT@!n+AAF`nNhdA;0zoRvjcROw$oeDE-We?f@u{(}F9 zYSa-ue0oN~mJogMR4 z_Mc>LW8kPu`uo3Gxa#mK%E(?N%#U_GRP`yu_o$}_hA!9NH}Ys@hJRlU z17)9LyRKZW`UK90$Eg}UfAow`9A~}n z{hw|Vs8EM|U_O9Om62)LxsfNYEL?YW)t9_odLQ{FLBIFN(tlN`4;cK-=j6G4O1`>u z$Gc?IeaZIQBQ4~6BZ~H9KkpAAPTO}fWy>5dXV$!;z6fORbrk3u`+4@```ORpNwZcR z{NdX_MihXX&Rpz+E7Yr}cvIj*SQG{-&qGkT*fCA=sk>EqD zM?Sv-#_?Xu#)VscI`;F{ugnGy{7-x-{*_)msMlEg-vR~9hpc+S`Zc`T=e3!cZ_ul! z^m{X=Y1A)p41OMuZTokbv_8;|?c)_N8YgZ>_PYlLso!_6%xbqzpZM+OA8>@rPR_lF`ZlO=3>t0A7ie38b7B#kFviB z*8ObH^ohUEsgaZZ`%!kgS9R-qrTf28X1#xT`;@l%LzcHag{O1>8}>4jx9=SKr#R_< z%0M{#o$eWyp^Kv5Mt&~bP@?e#F18n+PMAL7f55cnXyv~T1kugx5jr`Sva6>F;b*W; zp5{LBi1U+?r*0hOr?^i}c78g(=tj(EkhD~tJ?u74f1K}Of2}=tZ8eB5xwroI^@I;i zhPm~0(&Vj^W^X9?VeX9+5tQ0VmO%x}u%9N;{l~bdh`TGz7@bd1%GTI0*ISZkFQTSyFtMXs@iXw(ER^4wXbPx=r0P zdo{lO!1z^P&p7`5^144OpNSr7(+#6P#eOzJv&Q^5Y|WX6Us_OCeu;+SU259Z5ocdr znCt)RGTVli|8~6%q>hh>|Mwv&;vDylF436$-v^}`&}(+uM9IFm?CLo_fh_C4*;~E# z>fPSzBXS>>-2cmp)Z`xVx?55IKG*s=b<6`u?lAj;1G{P@-}(fKRN#i!zkywcW-eVe zY4hQs0ZjSHu)K5^jYB~#na8>+QG;&s11*JICG z^#zQw&)|3%KDS4_?hhShy=TFgefrU~?X#mYpLqOt-d&UD?)bAJ_3G;A4~^(IXhvB0 z@GUbIjeR_$e`6LIY)(I=f2d&b#Hr5@It>3nLHASak16Wa@w(O8=f>3S=>X8;T!&0lq zr`BkBSC8?oL5QkNL^T6Vsz;dA3{9*amsm5{t$MWEqUn3rAn=g}lqwCUOY?uYv~cI8 z1sg9d3f?+@>DGnYw=P(}b79xgEtDm8%psgy=MK`=CO{=qd3h-bo0ox=J7j+ zdX0_2@0;yfd3e-!ht_@<{q1*0_IwvRyx`#Sf}_(44(}?6K^7ePdd7us&Q8={Fl6bF zg(I{Ko(!=cH0e2V`m>SOo{iuAY)sQLlU4O$G4+w``hBVO2SoMZiS_#{>Lcj&QOdDl z;bSB7#_l^m_CVFx@Z)3mKOY-$eQeZ^N120`-~Vd)!%@p0e7l@E{K@@kPaYzlJg|Af z)R=aE(zJ&or#+Z8jX5mk{?wF*<5Ttz7Sc?NXd~ij<6LN?OKHZ|G=sY|qY#>*oQBfI z>qp_o+T%wt@klfL$RzxDPyGmuWkILTO&E55#^GGuC98%%Sfw#})v(K}v_#L&PkWrF znK&hO*slkF`1R=2Uk~s66@d=Cs1>?!#jAz8Uxn*6+%s%niPCMJ9h#T+;}E<0s@SDN z!Ui(V&pexZ@RuJC%pWvy?8G5U#x9>>iX3rpG2!O?Wj7ak-CW>ub5Y3R^P2N67|gq< zlXbx;>!Nn>1;gNrdR-S#T^<9pw&-hl3^}l6>;aEKOSg<#>M{J`7UYGQCI&M`oR~3g z&5Y46_2oarnj?P5^jkjEezer@`u3>6YHYyzHz_4Lx1zTbBJ)gF`ph-ItT%l31?jEC zH$Fq|LDWV0%ZfE016slTDy?j9#`F zH&rMwwZBh4b=T|~IV)s!s+`(D_~Dsgt1z8o9aPtJ`o4TcW41>Gsp65PPtsQvJ{JTl zZg8w+bxjn|(fs>!%US?D2G)Q%L4<@g7w!_g%Dmx#i6s{=;Mw~yXA zq)2Lk{=;K-h(@&q7(ZZM&cd4U9 zu!VYrWI@hJ3pu^$LMlh<$mU%gsWe{ZWA{2%b;5%jXIFu{&M`xsY*wwXGxSCUksD4L`X666c$MLXb)&$^WawlJI2jF{j0Pujpc6oI(&=7Gdfk-c z{*%m)Pj6qsD42KrWWlN63%IQb1wU*(l2&iH!R*G!lGRRaM^X$n9NN_~LQ#~WpofBk za^w0*UXt{}B}H{U$wyMIpWSzJ_<}7m zDCM;zQac1UemEs)6~iWTjXytHF=(d#5}iv6@DnFbyPjrwplR0mwL>E3PeJTo*}O9K zr|$2<@_ioNsOVO{TzyA)CYpsR4NXsrEpFPupIefryQ@+egUtxnE#p1Ywxos2&ATeK z=Hkfw;tg8!8-a|YdML@2m78k|GOr*hf>b|zV(H_&AQ5ONTZ>?4CL<{X z7ff;G=AfVsKEHs^FXnFxDyiKT6jayRdX~j{9v8=Tb&HYL@^7Kh_7-S+oZG3m6`*)p zpqZrB*4J>qvYfxI4Zgizg+i;#EF!<4f>HFtba9k)+Xp8-mGa`S! zw|e#Aanl0^Dlvk&8iT4OKa!3W%oIA6k9JA(!Z8B2y^PD>vbTs!khDuT9&nWBG)W(I zDlYKk+j2uKxR%BSNDig?Yb%rqq2&bdWOZ7w;y!lvv~@9wu+Y5qL>v`Blkowm5-1y ziZ~2XZb`7}AlKn3)F)L|nd4(;KV)0i1tA}C~?C}b5BvasNWZdHhE2xQdR`13Lc&6)a(buLXP#!sHs zqKY)GI-zUdGQvv3{>(-EsIPYhEDLSiQ259oxX2d1A20sUVNV z?=%S5>*aPv24pT&JJq_kc}{;VV`LSG;0)@knkvqN-U)(q}6ztCZtH#&eY>< zZ*IxjE1Wl;O1&l|%${#&c%8$d@}d>FL86lp{t?I&0OInA+CmeIvtB`7@M1)ffgkNQ zI7`gb6;*1Du@Wz7&(ocTuV6Jq7&%uG(O31n-NPk0DPXV+c0jMS%bAstou06v(uM(m zsXQ4WQ37DfoiJ8nAAV)F3N$FLAa|i->EJDOv{Fi0&+o*U-if>DgDz#=h-=~>FJ%$D z(e^yIL_!GWmmC{u6ThH|f4al3(F1J{cf^#r#U#QVm^*PEN@^T=ApAm$SAZ8f{J`dj zwS$aO7k{NZPrKN?=jFxDA+{R!k5*X?JM;DJpW|$4olD1WaAf$}H*8J$b$e6uog1Uf zIT!C~ak(W3fTFAgDw?kNfMUn(Jo-|E+|;iabu2$L7TIB4OXE$7QfOfsxdofS_~x>F zja{n(u~iz@u2s&c5JsMcmh6C+9A(tDVrVTQN9(y%wi#9{Npi5A(miO5&xtrPz<1) z^As5)1r2petpvjW@I5wdwS%keP-R}1QrB8ACr)o2VVvSDKxt-~d`?_QYNn0gEGtLl zQ`hSE>s9cdl6qBfqk~0Ybg*o3rct+WCfpqi8>x_d6vK7Ju6??#&C5dSO30LYSvV^9 zXLjqVar!<^Y85#&eC56hN@|8#Wl+ew=T}hw7aS&atCApjuFNb z!Nsmh#9n+Nry)W@6iAH)D&kSa!^W*o)*K1Sn0q3YnPV({-mTbGcK7KZdFDZBwo=9m zL|Jijz`qy|{zdUrZ6lj$XbwFa$$7-`g88KzAt>l6pI^^n9f$cTf7^*TKK~5sT{q^J z>})mnJ>BY;ZSNKXI4<}Lnc2u3m9!PDo}XT^R@|Qt*r~>j5w71IIv!}}Gc7hp|L~#- zgBG4yIb?9UZTX9CO6JMQUTwQGcki&Z*kRih^immkWKMbIU=a;)JTyM)R=!R4aN(q) zv`yBV;yBTJZl*F1w@ZtMqf!NXZS@|C&4jY+jsXQD6+T=QQRa!bCmnV7xm3$^e zMc#;~GagqFRVVW^$y1{Us&xqH%dizV429>&$A^+n=F1f85l(5j#%$@DoI&7W3FKEc z*}2Ah(OmE-B0eSn&1`UsDa%1hMEneP4l*+YQ&-M9em72_Zi5K?Mf{+O-?~KGGULiw zroT7a2t<5EgWJPy@KW{OPWsVS*_ZAB#|o!4&&|YCNVm?O24IABZT+>zGH- zw9bfV(k0O%tcxq2YeN^B@WtNx2ohe&z}?+TkKsIM+?tRyMuMLn5z7s^TVY=#O>eJ2 zYc|R!6$Qy870!ATUJqyq=+}@GIUUU50Bb>_sqi4#eJr9WsBUgCB!QF}7D8i%fLjkq z9c;oXXqZ@WwgCpbtFmoj`%Ci(mUa9YT?#MFkCva`+IqURwJa`9pvD_OECEJrB0wzr zFNg)`{k}q63(rLi&hnaMo4PPUI69@O{RGpd@&!s z7}=FKx6^}W$1cfLhFKMhM`+89tKAt(kd2lH!OQoh;U)qR>V95mxRn)~Db5|Zo^)Tg zv2sAN-D)5@g%wh-Xj@z5zDB7la3y!=2juKbdfA*g!}{z)4`EH+#^G3sh`$GQRABZ} zaeb^i&XbfVz=@kA;p?PFBML3YX(x+kA=dM@BU9)cD`)xFHSSG!k4D_`nT;rd8tB&# zaOP!%v*OO9aiW%1eyS>-o}IZf<@!UFt*D9kHMK}KDYx~F4LQsh=`P#TkcU9fi1XUr zwY8nG3Bj}o&1qBz+v2>tiEEfrKetdrM!c{(>x^MtbkMen4TeS0{@cn+3>%F)M#~*Y zS8N)H&vUibn@F-Xz`HV!y#jstlgw8UM#Z_0JsQ9lcjwP+uiV7BQWJtfGmh|{`umnY z(UCmNo+VDv5kAbiA!^j=(3Kx13F=>xR6Z8C19W1hkQH~AP7D%e^I0C#aH6hO{x#uL zoQe1wT;kiVR5b3C$VkoTOLyO&pufcIIC8SxjvYydtkS4IFC6M}@6^I?TzwP`9AFrL}987P)8o|D^56>lmvupt~u_R;KYWKa;Mwbc)2*fP6G+<<;jJJu!rMrQ|~;WM>Z z*f~A4)n~<;R|4dmh^Dgi2m`B#CJkGw@Y%(w&)^F!_+oo~-q3EJgn1$sAqZU&FRs4( zMu&7Utu2AHnOE%8kwD1Hta9}gy>^|85}!2QRaxgzGiWa@JU;e_Nu#@_CCU)MQOg@^ z0l=wSMs#hfBnw~p;u2XQEfqvV-U?j35$UqHQAhreenU*rVe1MG6XIqhZS&T5D^QwCwK6r3-wTz~b#nm1qXK%&xHZ5%EtV!-H22r+>M;ih8{ zZ`ixU1n`SeT>v@FT>-UuZkY)+Lad0@jC?Y8TiM1Kp69RG7UC<}$z3FAg7>fP;zg;1 z?s!Y7ws-pun|;Q}%JtN5AXei-`o*R=Z=iSk8Gu^tj6%=H5yshV2^coZKNBsAS3OYG zWj2=urrHD)?f3WCv>~8Er^2YhyuzBPz%}UoGZ?>TykNBYJ!P>-0AUGEZcE+V*xA{X zprA|-7;2JMzdAm@gv4UC`T>{$Gy*7!oZV6Z1&75-mpo*F z&4}{_feBp^8>jlOTauz|PinG1-c-R7UcnX4__h(+6e7mdHRGvsfd9P2zE; zuC|HeqnZPn0#b^NvRqKteOJkFi{my)TSG!{**+Cc;=7y&f;vKbrnLpqGRB;_$&-@$ zu<5-2j8j>!E?cydUvW@UCVibPZQkA$RB?ILCTpz9S1GrnsJ8hxR&@gspN6RXRW&<# zZ9y@~<;gWJ-Q%6KotPa}LtFeMp0c*oYotA!#6FJL1FeC>*>cv#+p0Nmi3xZs z*2{d?u1_spN z1R8K8iZH67#+AGlCFr``WyJ-gnW0y)>~^Pi-&Ee!G|QGCB7*wBvv~(`81=qcvoCQt ziZ3@lGu6b3cXv;|u^vTC;`=f+1!4zvMS!dBl|f}Kxfr{3CIL2hcI-*;YA6zQSJ%1L zjGAx)X*EQViM?tA-k>WLCQQ{chu$PN38oj;v}v*1+hY`x8))8}Z8)qLEpL^{Sajm1 zIFihU(Z~|W$hYCIx8-#s@<8h_n0tSZ`c!hvDo`a}3& zJ33{@%T1HZV{MbYuK2gfq&{~HNy4@F>%7DdtZcW?UnlbKYicK=-_(R_atzyAa>E5= z_{e~dGZi&_xedmR&he`b*W}6@u_jjd9F7R0Hth$Zh>8^0`cVQN`BqG12E`)<)BPwBuBhtxPAz(jUh^E{XmO2s=PY_8x>cpf zv2MBFo@uT}39Rla3qYAAW+YmdGY^@i3J6l)>O)@GJ)q4>nG|c_h)jD^bKihz)MeFj zzvUFx!NxcHBGfE~o3-KQ<4`m40@Q4_Ok8!HK%&PwJd{0c;V-;j@-)cew%`qyYOT5+ zMB-($8|fm`P!ZH=;1!qi)>CgxN;P1->1=_ zB!F@alpIi=f>I7j6DXj++-M%tUtEvm=3FMYN)tgtJk-zt8m`&ks}Bh)ib>#Co~6P+ zPgbJ7;8$oin;={{mn(FdbHjz1#UvYiWw1p6N)MS)w@?Z`jhBT#e6dA+0r!XomoqiB zQ$xOo+PFCsWmcSzTAQRoHqiB+rM`* z$Y^y`^hR!}FLE8g*6rkT%{mSXFz%0Tq%zBnMql5*E!SQ1aM;*+gBDKs*1M-XEaRW0FihXVRJov%Xv8IF))| z87%Mmv8B9Rt`LztWwM-7$4tfqCB0kP%0;2N%X7ef5qPu~Q{q0ymT_37Vdu!$TLxSL zgWyWI2uczt$)Kcxk`BrpQ0{^P`UMBrz6sUGAS+)O|y_ysiFg&N?IGS6}^G*aq3 z;UNZ8I*ZZ77b~8RGhsb6dentVqxdsZ zujmbJer_7Qkr^N=R@SFFjj&I1suA9a3v0{;4J#z-caq?NV!{omug~vPG9@jLUaw8BH9A zyJy%kn3$*%mvtOAOO>a>W0fw3`O7abG+^|&z|e?+n_+IG29-VBd(Xf;@%c0TAmsX#m0I2#f%MpPK3HfjQ7>^#zQp zI=DyZ3gc>C98ADoqK3@|HKJgYWu;}sY9m~w{%~973&lLHPkG4nkiFFq-y)W?;$(m` z<%sz4zi}#vJJk^Yn`(K>vI5IlcX;VNco{@dEpAk*(&K*PTqV(KodD;$F?m|I#y86m zr%7k>x92`=oEv}LOk>Nh`a|;0Q&t|_=NVj|`V-rJKxpRlTd8!JK%6OgcE@2!qnm6G z#jUzlrW|iY1zaWq<}wVxjiP%@Ycg{TTMn>vye4~Dj0AyUmqJ*=KD^Vsf~bjOa+}u? z2jd>bH81JbQStWYk9I_&*F)1<;P(&4TRIxPugs*piY!9|Nsl0txV_H($Y;9FW2)QJOY}MT@ zc**cnhIJCVn_78HF*ZQ_CnR-_!9MixuMQRk#CUn{iSZJF;_VM=P`vko8WeBP2l|C& z&oHS3dqDqN;M+U8kA> zxxv=(E(8D$9}*w9uJw>C@$|C#0v0Tus(Uie$pb5M{Vm==1PMoA)Cg|CbeS}$t39Uy z>LR77|K3RvH&aU?6mg(&78T>b~(5$#$et12zw^e+58-6HF@sz{?0X?^}sOJ~%xCSnLBAA3f$0j z6ux0Fe1kcBgC%@}7``F7LdR;mTu!1Nb`i2T)8BM;1uuH(FUguKZ|G8ZD(JIR-F0GbD69^yFaca?9Ra z9cLPK+1`5tbvg*wyYRXD6t1aQB+Z?(zabyAxn6}Y9;h$i9;(h&J?&}5f}h~F%wM6K zNEXQu9aSe8>f$BCUD7P|-@8KRw5O9&rKBPZ3gJu>r^9zp3!^m0Gzxs$tHK`e>=q$H zLf0Zfz@AM==sHk?61pB?*3o=D&J-0Qdu0?7#6!I+;_GozSusmaY~+*3jr=vBKs8j# zNkwkf9j#bEO;s^+y5H)(xh1>TE_gdBS`8KqsJQd6F?n}~vHkqv#u^j#e~4N*ia5Jt z`N=lKz-GxbFe`GoCgdl{sRti8*?AkfE9xe5!6DB2ZOwTKudZ852MU>#`WQ?(*H zT->ZGcS{JY44mT+)-aF&4OVTIZD1k8bm;=ilNw_ZSe>*aV!`61b3O_zVu+WZr3v;q zw8*2v4-! zlIpaSYx;~>i&&hUQkJvKr*cL1{yQy*iU%QqC{*PlVr1znV*!ETM- zTqo~9V{Nuzbr!Vf1kiz&kpMbiY02K-0JQ<=Ko<|x7jRF7&Q)kRD*Xv=%lQ?$DF~em z(N*XqLtWHlxJ!_w{(DzKD}+w$5E7k}C4l~>JO!eqb6_IL9YEA9a4hg;$3FIDQ$a}s zg#ii&6dovIP*jh7D^OFJL8@Po0>x!Nij?}eB|EMr2#xCyh0>^Mh>>Q0<$u$pH*@;$LY|3QoPx|R66Z>DHB(|?^A zKQICyYl#|JkHI>Tay&)sKap#gJq>{hFJ#Z_qT0qNLkZ(*q6YTx+od zU@AEc#t_f(f?0?q%tCygLp-PAJj8Qy>|vf02J@T|FwZf7d5$N10~)>o2j4)4Zy>=p zY-~%+n_0pWOO}*vFtM||6wi{JDiSpKd$hLm<(yX1?k-tVA-UxAIi7@7!;Lj32Q;k+ z)TuZSP`N2kuOdpXa#81y#Qf*ho6GGH!m(iMreL$}VuWynpK~nO!P$o_8tUil2+j^5 ziwLze2XGdSELv7eV;{?(Cx(B}VCX43x>KMBx3x=#ehbGjWG<$1+_YlOWb3N1!SYOJ zl9hX2sD%^6B?JorV;CG_u@1i2qP~E8#DihZ5%N9MCU;v4-9(Rr>BRftF7Z0JD`XS= z_fpsLq+O5bTsfi07W!j$o^UT=J#;~3KzEQ;!!eDrRiLZ^WgRF^plkre1(Z#o;4qEy zMSPkVbuypMSc{M=0ik>iXuv@Y>l`>$rk(oOFlm)-prHv6+U+`8>2J&RIF;}%y8#vqm^#Uuklm|dYvqnK{k1Ql2+s#Ut&N4`LkkF1IuG9+Vy;Y014K5H5^2ECZj z;Xf_+z^s7=Gx%rrji!v-G0(hOQRW|f_;h{e&p%x82g3Y|26J&#YO3K&f4_+K+X1;? z>Jr0KSH(qm>Y5M3=pYQEp)ibQ!!R<0VUz~LhzH+5hi_28H*D+xFxn6=6v}3au30eV zUMfu%8edC`!`=Cs=SothVl96W^K!b)jSSj6L;Yn634?dHV@$TLIQMR|Nwyv;H>!CA zaX1H>&P*mmwd-S2>;aILB82bY1I{?V!v_M=eq@nXPatW)Ppb<*?ORaY^gN-Nn72>i zcEbRCQr;051X4dWX4b+0TCKi-zqtVJk-M&h;DL>U2{=pOn+O|VY`ChCmB3siZ-=+C$rJZ;%K0;AeXfgnd z89Qkqz(|Y|%zdC($L1hSz&sb5lg(keRRsNcCR`8AiC8tdz?7LL=Q83{n!ha)!F&j0 zt&v0A@WW1MR^0ifgl&E!JPUFz!>zqZRdi@ADt?k?L% zl5KK99}akVwn*+BVT^!eBIx)WI#S_tDtwNE&jB+6?Ep*A5k6;$#_cll3fYK0wb%1j zciB(gsYNbli`u!-(P?Q|@_MRQyqM>vI(bdEEkx-fYp-GOtb?>G_Dd^Codd9uv6UX3 zgRuJrG=J-qkOG(?4fJ!?14xNP7I^^S2LNjnCIx&8TfnOZ`#FQN9Kfqa`#B2=HgDQv z)QHdBcuvn6Nprgh9V_5-i@TmiMm7rr!^@gi1Xl_P z*CL<^%}NZBlCL6xwF@6#!JC>SX#R$%@h2$Ns92c;5J1g(R?|I7lP#rp(eeih=xa#D zRbd2jDi*wzdz9U@d=CqI@)LfJU0thaW}KAxgl~%?1c_rai4C!t*;1x!h1|o!hqHmu zbea`{t!qsLtszf<00!3kaFV2tM&l&z?k5dzGKwwGI;j>-N)5e-?55Ds)kyyS*Dx2l@QVVAW5v=v1U19O~TpQvgLS+UVLHTGLKA3HrWyRmeoF3$X=6vb1Xyfw7T znsK*V*3J_f=M449D{V$(>xlE@%>#);P3M|=3V%?m;xXPp`;o77;s zqP&p9;e&D$0v`~Hz+cPez(|z(0LlkcJ9~tn`&T3zOlTBIvY(Xz$HxPysEPtmgkhLR z5tI;;&ih$$P!O!HAlVXNKamKSk)(Sa0NkC&Z!p9`sC(MY*lca_J?rMV*@J!V8Fi}s z&|#WvL2AbUfE!6>8iX5J#TB>;g;9h-T?HQt&rWIp?}Q?`4&#gncahNc3^D(j+^wRH zg!YlpnLRzH>CjEV}U{N_LF~6vZCIZVX)O)0(HGnNmjA{p{F@)D-?ISTMPT&jx z>^T^71HHnb7YLS~&@lo!W;G`6-qk#O3`M^BHN-~f&d`_7M8j-^xBy}p#HH|YA$(j6 zALm2IYj;?zlBzC*4gDyhTU?fUUHlVu*7KRGUO9TKWH67wv5{$Z!2cUF> zL5=~axCkIZeOzV3fRK?48qz@n4{9(64QYVsECNi&4)iKl1HJ@Ev+V%aQUJ_}eNMh4 zbdJJ?$Mz78D#GuysQ9h}v?;%_A~C6bGvG+1Bp4}5SLl;Sh`&N_Aqcw;wb!cB29*p! zDv?tNCJ`&Kwz@J?SN2fld^(-!3fR#pz>WkS7GlNBI7g~=U2BD!dBKb;F}(})$kcpm zhcV36)Ev#p?ssV(R-OKFRx}RDZ7f|pfB0xMs5%)sbuT+7(SseM+B43U#EKOT<17)b^s`ijB&g z?rtSV>iy@XKK0(R;w2R0AOiSR6F2BU^>eI zU6bJ{E+GJ(*kDHKrar>#(jv<+UDqvlUyaKhh|K`W4jjQU0USB-(Gfnz!bd&$2)G&O z4SiG`N6<0MMWUJjo7Fbgu%;Y8hZuc2EOA5yXllF8sEUV0RTv`$MpidX*%wAlV;K zxx1SzaTNpR0|`a|99SS20dVlF)s-45oG6$H3D&>}d&`StFv18}7-1OdS_om3ST)n~ zgzpyQt9jQB_%@kUP8ib-0c0$J2igY+_uaN0Xt4r_^gsd&0TNad7Lwo-)dXTd@C&%C z0HVD(Hm92`=97O{%l|#e96;>~*VA8kK_RZ-eL2 z2~C1n%T1%N2OE>Te7mwT>8GU4So(fFe0;fY+1E_pC?s>!zgy5x#Kc@I(FK|ZCbtCIVke#l>u?+FOK6LoS`QZ8v0z6BY#VDsEAkp!QW@BL zjsdIi=D=krXzv*&cZ12z(xIJYtWzPhv;1}m55(pg8J1zpk)DAzuY-UZ0d%U@@u8~q z;7^1qk0AwM@x_)T`9T1&0&=r&BK2gA4cVLtB%TY%O&a3xy_=~*Bi z1KvwwEUe!UsJn=87X%K_#kNO*!PW3eUNAj7}+-JoFg|2echSB?;kH$v%=+V-#4z5)j`O5KzI^Yn*rTR3wV)z;4;ppd9l$x58MQ&=O2;%~l_WV)Vu z(Pz4YowSI%hv`d2GBy2x;eoHsBxcKLB-6kT2{xZ?OqnedBvZ!^8C7c)v)vNB0pI1& z3&@5QSwQU$KxLMG$I?5{NZSPG833VVKZKIb6 zoQ4fn@oXSEv%xB!4Hyj@tm4@~a%M{w0f3;iWY*Q+rH6WXXjloh*PO@y5H_67Ju&z7*}M~prM0q+#lD42op>^^YllfCpJOMIjvJD z5$jCCP4S~%w;eeq#7&xbJ@C}V%bcoXiH2$B$&*gmF+GFmi)}Yt^RqGDgtu9QU=nKa z+4B+15q?%N_GYg5eBXUoaBLY#%BVb0Gr9|(r^|d(|DZO~5TC2?-;*~~y9_KO4GkYQpP zCDg~bg2@=DFI@GGQns4VEFx;5}k#A#^vr`%vhoJ1O3h~DBR@Q40ag(@<~`1)tM9VrY} z61KJS`2uDuVMmvuoiC8Tj_mYr_S`^ZolFu79^7Q?#HMq>BO6rgy94${)FQ5xyZnGNo4_8yp@BXpKK z-L{-|Lxt)|J44OtieOznETwHdG?tsBi+ ztu)+SGQZ9YfwFBpiU2{x+T+(0Y%s9TLfjcIiNDQYz>8S#`ucsVb(cMQc$ z;5@{I8i0=mnS+dxOe9#b0fiNys3EeD9iG4?WIjR;))z*8!J5>3&p)mF4YCPBjf1jiQJvsyjvvluCQ-*QX2IfVgn zLaAT*2C@>L8QPTcjQ2E~!%>N>bF{_z+CXnL2$gRJ9zctlZ&ZBMIEDnCw&Nst{J2?B z`!RGuaIGzu8w&P7_OUChsx(|Gt_dtFP=dX#@ zTnPPY(yzxiUh|3J{F+lZeMfNnwY}t*&YS=jT)I(N)j**JDI;IAXmS@mN;}1;J|BE= zpl%2NpL!um)Ewp?jfIG|XZmoYPvbjwWhq`CGjWufofS*d?2n)vxSTh^v~1O$EYaLC z_0pY63Q9#3HU2h&eqSWI5T6#&t$MUL3i1l9Ra}0LP3FV;EW?d7b>W#=2A_gY;lvKY^k6C z|07$Vn}&RMY@v3ZX%q>&7$GMf0&2@qm`2HTpvwfRHx9R8GnI2ZAImdMa{3bzA$4Yr zT;eu_>lPc@)P9SrO5nOtC9j3RE2t|I7eW$&%f$4KuE}XRSivo>C)dqR>XpV(ycVW| zDyXUb(Jd}o42a~nxJiO;j+;tts`nc+0M;%y77u3+%to(ibYG927FrYi?bK1#l~*7L zRBgQDc)lxPVf42R!8HM8qBM@92gLorCy z@%)y77^E0f2n^D*pepbPGR6{A(a0DlP#r?X7=kJW83XklMk4GTd@9!f&E$btuvs#o zB1#IjPP9Y!QN=Ab068iLu*w)%I=QYYOnaBp=_pMT8Y#~P*&Nnn4ma^;=xN)y%VUBd zs&*TJfI(`CJypXwRifY%-GxDt3`rFX-Qd6IMlESh z+9^55Fey1df$}pbr$9Lk%2`k-pd?~aLM9TNr9afsM3au z7Ufu2gJ&x=_cK8R=DtqDKo8f%r9h9}k(_P2o7Qm{Nz2#rO5@vr*Y-LYqX#q$9l`8; zgi%V!WWnYrT{iD7c$d0t&L#;U6z~%23Uz)-H^i-n-m|7{PKa%*sC|yu4OgBMYI~Q< zm5JI5%Y|MQIrO@6;gP#s4rt($_NGyTq+MqN($Yk3jKp%GkSOhHP~Rs}*(%=}92dEG z8$ddtVXG${n_N_B8DS<7~CO0 z3dUo&LIzb;V)3zjIs+)D?Q3bFU?~qKA3D%3x&YlHP#1wo35>XQptuGDu^ni#!PsjD zoCC0W9iPfM+56&}HGp|%B_R;OsZ8o5IzAjdx0q@j5CK*4`ut%=jdF*!&HHsb6qqjB zJuSIRpX9tbLP0!?1wS$ryA=9mc2tEN#TGO3TfHXv%}vp}oW|t7sn^bLCuBH0q}q*7 zMV%PY8dAy=$nC_Xwh@A63~?ato=)JwrSIhwvc7Q_R3MdGGf&(b>kT}4j=5VEZi=3Y1>xyXf&G6%#$eHIt6Pt^)0E3s_It}EDM)}SsK;{tfW&#l+ zgSXWZh$Jl`(jce`P*-GughixEL4ofR111M12GT>DT{L$x*2843bGH)wt77!=e7fBd zu(vq|>}>*eE>43Q>_LMGrctn{mPQ2>p;$m60~8R$rvi#lETE8?U~1M#zainFX zf1s`%Rk|=EUs<*!EfTy_vd9Da6(k<~%K$2YcVB>W{TnUIj9^<=!1fEl_s+p`oYGK| zLZO7%-Zc~VTWe^Fx}~9ARrijJ>H?EHN;l+$vZ>;B@>>D16f*VzPL6Nq1R|r+-CN7( zXr?^c@%%K6!;_a4Jl?b6N z;P2KcdVuANXxJ?#h>ZNMNWkS0!r5>K8t(9Zh^bID#do-4LcPBah?681NjNp^<|e+( zBdB6Lj=`{D_~_Pix04clR5_xCzX%o;xx4q~R_L6`uP_H?87P3GR~!K)859;M!ZZ1F z^j3tN{uB7PtLq>kH#izu1ROF`fnL%2Zr;EEXD<9KQZIJ?z<^@;907RnM#WAaJ)I7> z>zdv)ckwL>Bw2)j9w2SFaUd5>67CUHNyH+!B1s`9P8nGcB;B`Js)6(D7z7a|U;t;N zrOk$K6hPGx9(g~qBlHm{k3nG}5pA6f?FF1;`GrCz_?n4nZnzvJFFRO4aY~~KlDTPi zcY+l*xSY@|c0;>qnwuR!i>Ff>j?>T%A*G~HC{PpMA**)^id-DvJ*az&FHZCw{$zpZ zPI}(meZhl9RS*f|=Ztz-wMI8@qSYvuyH1naXYX&g^it-Wa^maS#;NIVUT2wfsIuaz zer4-{s1;FT-PIhX8w12b&AGsPBT9Q0-u0rMUU6l{LX-(``X5aS%++F!SNM}SC}CIP z4M65BJ_9uhZPOvT&V5)L_Zl%7ICcY}4sdgY2Br~67|MZ|Mlq-mm_{E^0UvKLpp?Tf zjc72g0Pmb#OVg`u8}>f!CkcHDTC4`NhC%zP@ZwrO5j~W=X$g7R_$2es{=23<`tTMHe zCFh(nR37HTNxp@OFmb@1GE*`YGE-84RUY*i$}mzMx2b5;&@D5V2-|=OQwN(cw=u@H z-}}05@aa7D{rz75*X#d!aqZrHUDrMC?fzV!&-?RmeLiPz3O}^j4EC&^z1O_cbQ9_| z(zl(S&imcvyE!J)dQFl1o-j1&$;nyoMjhe-IG6w&)Bp}esk`cC5a3V>;E)L5Pz7XB z1>{i${i$92$X4>Xt*9u-bV_-~(Kv6L?yf5t+DB>tlj* z8k^o`5&dBOq|aac{nDrW9GRtoj?7D*&WHo)GoSY7%zx1T#5a}S)WDqo*oS}ri`lq( zcFe=PlE1ed=`X+LIWjf5?pEBw!>gLWi@}@0rGp|5g@C93Cr+M;wFUWI(FERoVmE;M zrNz2$=qr66^EcVN@hifcg0QLtvjNQ)3tpqIuhZ8v7C;4+LFXn1lZD`NqfhO&38l(T zSFDa)rG%;p?(bwkyPJY`tKq3!4*})2=OAJ$Aag?|qGKyMBGKUlIu8Ik2mOf%7Z+{@ ze19D9eH!395AfZ2=GqhRh#q$%SYx#Hcr!%VsI=qeEJ^A`Knf+_G7?|Ir=Jso?m@^5vv)&`nm9X;jcnre89ZOT2Xh$xnny3ij=5>tATJcOPN9F5VcJ8XdS_ zDtV$htr z>ItS=2T*}r+%>2fxDUz2KVf=g^f}XQSa6RtSiyssJf};m-S*=rud$-vCh1vN>~~)5 zG_89eXJ5mGijGA^_RBFZzL*~#{|zTU*W9pbO2W;N|GW$E; z)Tx#wqE|v7>+Fx>;RQ8@(gB1;U?3^q+~=*38TA>iBa?K=rTia~C7e}b42i{t0@K!> zeqD!aW$G)O2(w%0F^S^uj-8PnKX7AYUeg#y;u%)sL~Ni3Bzz$94)--I0)tK=xQCJu z3-M6oA*f|ZK#(c-=F&Q#*I`1Tgl`dqKki6wb)SnFhOis!R5C{-r5E@#U3J4Yb0nZe zAy~W+ES{Jvgy+!Cqp8s}puW#ReUo^XOz(7-X)4Ywk>>9Lc}~rp;OM(-)~0sbuWFOI z0*?XOA1@gT9M8F%(F>&(sEXV09;%|I^mccWzytc>R5|*4a&VE)C-4jgfc`5zaru!Y zmpngC_~6|?oI3GN?kf*|a&klSfxq9@6OSG`7`wba)w#Xdr;YCDIWl8$?wH_^m!Rz2 zxU^K9Aho%V#U3DvkU5eU3}aAC3ekX~^~-S5=LWb>-@wY73wtME!vq{=`>Q5jS)KS) zu5nTZI~j+_3^p9Y#^-Rr86X8KQoc^pHuY|=Y2Tw>MXv1=zeCm{Fm{+PVY&lR zgqMsNj1C#J+F+GsB4Q+pfl}O<#p{C_$HVoRYad2mA0@AuN%ERSWs<|wvk+oE8hB!a z8zGyBu#N+&7~iFB7#Xl&wO0pN0T(?ihkh_1TEA5ucDh6f)~PEnUnN=&w9#6Lr8Rs! z%RmoYfT%pz7m+O6b4b#X(7F1Y>Rj7bvR!pkh{;faL_}C(EYsZ1G6X|415U)u@^2oC z!)*WNS75N<^*wwyQxkt;u(suF2+Ff20lq}B2(rL|Ad3_JDjT!>HE@58 z&Bcy76y5~2rLO<8Sg2~|3DE7M4$Y-pJ|2P@3ftZQ3|ALxy3; zwRvw-zyTNx?Tf{}i`VSSrp#2v8*MFmcWqr1qW*?#so`yib4xz4Q@41KpUZ&L8N{v! zGxv`?^v;zsJ=p)S$U}Ir>TN?d!^Sg9MC$28>Wrka2SJkSqafs&LxX%;LYZb9e?7nh zj|QrVN=YC|nZ{0R*ABrX8oUP3!6=d>w5YGf=6#l9I{z%^K+OrvF>OKbVu_kw-~$jD zxj6(`asHD%FxMmgl;vhg%z+o9dbz1it z3^Vm`mgEu&01j9NIx3Ybq(`;+c>1X_NioEICv#?!CI~#201~n=>;yGT!TUAccH2Ux z8*i5ZMtmh3c$CJ#Ha0^&c=*S3zfFI5aMP1lpKklUrE%Q@4>~)>XVoWMUj5v!C$`Uh zW7Kn#)-PXi*7vD@?JrlaR)iQnT)d0-!ppUdQv1qBczM8+j7`L!Ea$DoQtfvbDnMgBS%Y(%sC_dJ7eP>`ARM9mHV==FnSrfhY(qYszW^|WjNvTw_> zzyZ~@x+{vZa)*iXeA7(0sDko{0twdd`ie*~qcG1ZVJo#8J2c;&Q7!TO-q`P0R9ySV zL|L7ENsi?G%H;P#&lp^NkxHMt<-&v;&mwBDZfe$$g}S(I(aP0bqj%LE0VSyvUm`yq zxO~@U(y<&Jh3LpZvOLU4FU1UKkSr5s6kObs|No+U1N@;!_%=?MHz=LMxQOO?0_m$+{^7y+zqCy-w9F3QklA;zp!Ii&pACl!8HGjW$ zQM@Zy8?mgrY}NN;h{Z5Uwr82H@~HM=FF$F~p2mVF&2=f6j?LHlrzTCdX}ND}J^c@R z61KPp#2E&x`3d@Ud~6yBiTx-5tncyUE09fcN7f56uPep#S?Qv`45MV<_9_Q(>fSnovH%t!Q5bAEk)9nQ(LOSi;&peuU4v zGuJ{8u#|i&cz>R<#z~x#z9MIVE7H2t6{#Bo!N8$Gscs&X5=!VWW5z3ezk?MC|JND^ z6QPpW453H5i4jplI*3K^5ts-uLy8$<1+f`oh6yu>gGj8HGcWw!fG!vfPiaiNr(q|w zE-j_@LMs)b3M>6yB1s;RwZw`I;WoZ=&HB{R+*`I_$b-_5LA&tUfU`bx1AQey zq3i9#5fwSo9EuRhF^%C6ITH@;5j!-J?jMumRCV9o{BTCWG-+IZfo|?ayP!JxrYU~E zS$uS6{$^LE#ha~bGT#^pRsN2^=h}}}{!ljsJbf8iXNf-nckKl3g2TD*D{3nQai7AL_a-qQM&42GsvtIt8B^p9Y7re+;ZSbc5> z0Q_itCLy&c;P>!{6Mhfsa=u9pCTk3h5#;3)k{qbnEbbbiI}&(G)LDEV=31tL>3nRA zr5Ab`_xQkw40h*S+}r`&TpA#52!XiE{ozmqt5>EBX^XZ&#t(}C@gRo4Ul`zAC=hAz z9{$ETx4ZM9IG#gqqCh0^`keioTUr9_1siTzkKs{VTq|34u02Bk#@^Sc*$7&KqOlv! zr1~d*eIx#`CgsCl8~>*||IE!_xcxtzxvr~ysEb2*{9@m_>;+5Kd7?U(Y#8B)ItM1+ z1y|qX7s?DvgE7oqDqiSx2^Kn^n2u@7q>)4tbWJsp*%QcYL`SfWO}AT=M_C&M_i#g>+lp{xjD`3^M%MF=;3E;Mx1jPDpR~ zM6AhOs|PG6;TXb!7fe7rKZ72m^sF+3o>fYjLkQ_yQWXMwMZDEs_rpNKquEi1t$$0F zCZ}!W#%bzq);=kbaAG9!Bd_?DdJ8$4Sia-Qd%Ymxiw{p{t2ZEOAs$f+gw%L1B8=fQ z>6nTRH9BH=Yzt;ok{JLPc>>I^U`8dG0ZlVc5CfN${~XyFI5u+2C8y!LsB7{qCHLMX zt!o;+WKLW}r68uWMq2=>(RyGK|b&rCO3Kn0s0rq;uAPfR1$ z!wS`_ZvH~a6S5iDtnx(5_fd!7Dj|L!?2}7jmJs&o!jXrkNh~yA;c3)DlZm}f(=rxB zU{}j>C=Vl3!SI%>&&;K-`Q+99xjc4ZSxgFX+jmC+(T`}x_CLH%q^~pA!amRTTJ+?A zE$OfjvV45K)Z`wRqH$g$RzIRwUFC&Aw+FhMGfaact++x#bVndUJE9zEEeM#RM!L=hnTVx(ILujrEX zqFA?ybIy7cJ38hs3N8)#W3nN5?)Jc3lleyCS7OD>(UQaSewH@%#d3TC!-YE?ZiALX zAb&&?5UU{^Ljupuey9oPTMPIHZ2?xK*qZ-nW|T-|gB$P~7eYyR>~zn>QL|qoz~JS8 zr02_@+CDZ-QMGl^XXYCRceeg+!9yX9{8j%@hKIGT{pH{QyKw)^y2F!WV#aq^dyM;~ zGnh?*w-COztzxfvj|zf2_~!?At;>_5>~d@Fq!nR#a4u?jb}+~+!#_Biro6q%LU;#+*@LX zVG^Oj5sVQVRuK|;a=hKiefmE~o)AGQhGEfz$P+j5He+>JweUC-=m9;FC$pwl?8`XL z{tH#w{A|1}2K?8^6;2+6K^6SXOxIVYWP_%~tioxPmZQO-jXCp}Izc=>$t_lpFsLa$ z@Ga34hgCgX@!W~g_dg%MBSL>^_KT-8`+l9fdQ{lye4*$ew`Tl@U;N3W`ex&>mm5?o za{7*Pf{%%(N=H_d5LIS%%_(68vgT9_DK^yJ<=jQ=T@|Cx!FZ_jO~_y?o}p?Z0Dk&L zR^B_%7hyRZ1w9hB!ihLQtBgVTB!;0*^3SxbzJd_>q1gC9>~5lLKVd*Tfq)7Pu^NtP zG!d)e1jcGO=2*fxqF*YO!6A9VF&u`(F~_7ZB(5sc*~@)Ct##o1nt_E=6N=RF)1~?O zJ1hkkZO)s*3rcTJj(3r{Oj+;B3@(;ix(0R05w|u}g)a#SDs#NnS>}L`$N{6EV-ea? zG$@OX47405jT@jePKH)lK(xyDp;f}FNTO2&k?$N% zeC+;BFSVVReVk2lqp~MACfX6e2NQ z!0p0(x{ERxZmvh@PA0PBJ2+zje_P$<&o54dDz~u$287|sx!TtGStF7+7Tj>Z=ns`u zX>A#UcoHQr`((I)ifH_ajR`yfmnZQjw&$1w{ibePlhS8##TbfWO|QeIw&kWts{OU~ ztflX2-ljHBlO;Cm|($Tnc5_u8^1tSse ztSUfm9&u-7Tv^?1ZvyfgiWoD)FLZ`+Bca5{hPE>`5uwWP{UZ zFyD?keeBi8ZUr0C9kW4GzdC=H?f8%HN+;_K&$Vnr3^cX|6{p81eUNR>ecPuk$xMn_ zEcywe(C-k~9tkk~ngkdU3u4q&vYq1lyZ^hA|VQ-2Q)}RSDm0iD`-#;8k8g6L?A)hbD}@~2O=%h9}h$* z(#X5QFLIR{-qX>GIs7T{C-M7|7^rF5y$CH@OT&ezP6(y196dw_bTcX5dxAtT~HY@N8>$T<-MIncx8h^20}uqkinRrke3^IBH-Im7>96wV7WO});R{#E7rWQJPx zYkKUrdA$4?>Ri108acHx3!VQ!5~Ltg&~@mlx5k*O2K*5L3x*6yssk(ImL`;5ES zcWfNXPvot>lHQ(|>YqnG_56u#s!dU)k!H_*k7 zCA0E0i>@g$xi!{q zCX;Q~T=%j5YKv{ay(UI0Gxa~GEH)Ro?1`L?MxN(ooE&g2)Y$6>a!R?K+QA-r;#2Z& zS*g2MJ~jmeH*C}cpS?atJL;YLx$Ax}>{-PnG_5a0Cbe=|brf8N+8q;CBd8y+{Y~ zV_@)EGN|}mg+VSdtVZRf(J6fVdU-~%eMG33H)D0ftg5zC>q^2>fAyGbQu*BaLakj9 zTcGK-_VV4y!Zby^p$5sXt4d32GMDHU#5WdYexO^VZIlltE*5=Yc#o@{5#lq*@-E6s zJ~gRav$oibrlxBLR6RC!aiKvOotIlOw#RL+ROc&8qb&LBBV&4s&1bDu;`4*;iZfB! zi6Hh~K`Gb9G@mKcnHUF4WTr0NhllUF-SP*D&04fM7)>S3J7dWB)V!7E%>{E=wCV9@ z$3FkS_?@cW77mSAlOX}t^v7yHjGrqS|MJysFPOJ<<}B~ZaL;DRYRtk*vlJojj8<`Z zH6DwbEc#aOPV!4~x2vEe6{_q4Pm*_)ufW%AYtOdT=I940Se~sb+8jWi@ErPt$5K)d zh%GlergMX8IPs5a@;#d$cjs!$FUI9}JCDRf8YI~(l%?}ddCcjB()_$AMTm9)3m3dV za}ESk>e@v%I;*8G&$d$94B`6rx)t*{G9#MlmgFggIs(Cera2cHh;i^M|xLx zh_w0Eu*`+4R$tkP7C2wvYaYTW$+>!-x|w$09MXZL+aHia%If9FN}u$Qmy zn0>hXmm=M+gN-ep+Dr{eu`g`X790(#)RzY1d*#d|%T0DRL|w?ITZ%@Teyqx{6wWm@R;{(%!4SJeI*n`1o^W-&rsUHD zCi}v~#$3(zx_pf)-_~=r&+BqkDrY>RL;`A?M`lYFhd2j*7#omSX-etrIle(4ULO1# zPTcZ8+Ok?tdXfvXqgS_y!!^;tm8+c}?@|p9v?RYwhIE_h2MHFsKN+h@{!|dQJp9zA z;m$-g`H7sT2|Wn7^yKQb;nrkHVcPBIcpm3xt;xzx<}s7!sKui;yVlB-c=Wz<3#E!d zYVb<6h;AR8lj?nTC>-&hR=2(^+L`~y8Q7yxLiQ+}m>jp`SHCk~&-s2)%HLB3E%S>% zW5*UW*K(KEatHJL#(kNoNeNEJ2GKHZ6W_5nCYowRu3jpJkEJ!{C% z(-3Fsx#z@>m(w1j-EP3XBD7ui97!L?D$v*obI)Q9;PHgdOYS+6K5O0FWn;r#CN=`O*zp598uXX&B=L3+Qdr=M3_ zTx39ytL#Ey? zv-8RtPjVtM;c{(GKMbjzbh>*Qncgqf(COjK^kzEbnt`Fk&UNk+qBiepX(hKM!V==# z<~}Rx@McJ>3@v;M$N7!>g6NuejkKDptFUmLN3gXr$YM^-8Ti$`R?oNQ^vlg=h0*3L z<+|l&M343#HPnc23bY6>weQ8-Ze}EqV^`?(b`0dZyOKD#>Yll`9`>CAdpZR6PA4O; zr~50OC%Qmw@4ItFk36$3`0V%U|0zxRvGiElsh%edy-Nc55vEu$DSUMond zU6mX!tKqe^u;bN5ylX8pv}(EeWTvq?Lsu1+R3R^Q&)^z5H!pLVpKrf*L^9swZL?o# zSE(GfOTkHciFk!GKJb*az?3c?$ZWB>(=~BOHvL<9@*wM$&Yha?7uKRVO_{N&_ndLv zXny!tgil*0ks+4hEV@*>>#2o(4X4)$!Y+efweTVdhe@WQ-jYdA6ya3VTk(No{Vapn zQW0(QL|0Wx1GVhc8m-WapL27u;x_+TT@cHJtp}&v&F1f6@u^;) zd?>AQWAoOAR~{a@7}lS|ua9XS6}B$w1+8fB*5}?gx1OE!=ll14K0nXzyx*Fawtagc z@S5iA*-M{I%ro{sYb|(OsyUj(Rvem#?+m09kVy2N;emP04O({3=FP*kxebIxTd77x7YTEP94qnor4y zpn?_=#m5%l<4wc)45Vg6yN*I?3j?X06jIkf+WV~4kyf*{KQXq#SMTc<^vGSwBI|$Q z&&?v8TPRdYgNT$@srrAfwtKVI^wb##(hCE^w9;Ucu3o0_QocweG4HzIEZ>{ov0cM>oy$!Jm+?L(}x$lJEL;XWXGUl^Y zITGW%aY??BgK;5Sv7d~hG63;HpfXL;PLmg??ECZ^4PjDg>uu_rvQjzAw(&%!OnI^)@EDwR#uBV42K4rJ-M zMW1rRRoMz(roP9;)*pg#K-II8K;kT_j@6>zg@s*86|o5fpr-;5-GbVAc+61WLMd|p zH*nhW9(Q$n`~f5d{&E5+rgIQAQygq&PMCG&U?8-DLg>qY(B8OtTHomrP@Q-CI9QCk ztrTPT?g*)BMIUJ0<7{wS64?>z9XwOwj0&~gVlUy#LI+_t7BHu`2HMqK zXxu9`>Ey*&>*Ob8MhRLYzUsvGl|EQ$0^qWGgqc9Xz@T469`GaDLJcl>20K5bhH=nebypBKd~0(exzq12Q5HDR5|iPDGbQwu3MwiHuGwAScfLV`Lx&`Ci>Q{kmh@rciP%)OUMUn z{xHFhOR_vYl>B4EKLS2~HR1c&s$YTx%fGuaAzi%HT+2DNx!L#?q%oI1?mYUq36|DQ zAorX@)TTrkecY2=n{DmQn~5rxL?>?`lVd4ugp$eqFpELN)5#mj7}hvc5JuY)P?oKy zEZZ4O*Nl_V#u%0zQ=C1Z)SS;wR%#6$R!4R1D(hzFdG~dZv#PHJxz_lmlU3=Zg;Azo zsxnK91kRK4bXiN3^A~xy++q?|pG`5<<%3O|jN93H*uWmhiB>A5hJY|BCq`*44f|B8 z$+rpJ=3150SWGF&3H=?kpn-x9{`=ofeBtNGY+tyVIs8{`Y)E3~+q&=4vhG!=v38Zk zP|PNR0a%R|`=H)U7=SNZR|7PU_3gWMP5JNE^`Of2<<|AYo`Q89J)b=2{J$MlzoB(h zmPC(B7xrfA!_!5)QfN|X?}b9c%9QlY$@%!CFUhjG z{ypKD*Edt;Dm;paYv*f3d9o*82PI@Fhy*VVKg&&YO9VaB{(r5FN#k#8W2d2wsi2Js zp^aHUMO=->CiIzWO?K#Cnn$6xu8$P`S5?ZVaqD?8Si<4VVMurn3GAVx%*C;_rTwc1 zeXr#V92}Oj?@K0y?4%rgZcT8YOpc%4(zOoHp<>Yd;j@Z(!CG6t zd_eCFlT>I=n>#b@)o$gNzIp*=jq50D{5|EEAcoPZ?w+c;f@a~-Zg1kOXoDkssew~l z93-w@sjTQe+vBZY>CVi2%EGm(;Gj=;+WxQB6>PKM&|Lce;^}Q{rMD4Ex;eBPmHl8a zYdanj*p2UFVGL#l21PRlGdW{0(^6^gWDI7>koMBhTsJY82^fP}3u7=-P=i?uV=xmi z1~VBom_fe&XM@fiFkbD7iCKb@Pn zlNrK#_^D)hNJU@m)9$qhESdbHWFqQ!7f@+Z&&qbm?}F$1Un z+le@gGH6a<3Nfxp>#2q&UrbPSO#$Wf&TkppS)<~|O)250Vgkzp+aaE)!N0}5lstKP zcnVQ3e1R1E-Mo3Xf(5gv_Y4%Q0iDHuhpE(ihT-rWbva`?B`h6E*AR}QNX_fJ9i@Ml z)r_dvcd&2<72~1yX0ej0tOjPqI4M3RI@bS6E%S-e)V7=?YrUHgk|-=TLRzBHiP8-%@lIWJ z*{Va6&FbnORvk_?>lI~bU6b8v#SdvUGJ!PTXAM;Kx`}QdyO}5VMOXFpqz}xRF!Ijtj@c;6tU-CVYs~ zwd+5h2)`x&TSNc%2J*ixSJT_p87Gsgg!I1LMCUKLxXzvU!)Q=}DZ>FQpa@?MmSSz5#nqWbm`ZrHlzLj?k2tbmn%{ zX35dr&7PA2ODAY|nAMrrs=G6FTEd=LH3qQfd`~&s>6C>Aa$=8hRgSB@-XTpaJJ_V+ zsA81=cixOD#+#AIcr(K8z|Zi;67Cg6xL0L@XzN&IHSAuq1TcFIGG{ZxoEc8-+(1-z zr|1L1uti+zJ~L2ZALz6ZT5|2ygy4y5DC-)6;e-kM23=h?b`5MPjKhPd(8QQVc>B4# z{UOA*W-_gnao`4H{3CVpp`eMz=1nv+*aq;S(x6~bY2$?BQ zFEqV7Q&RH8&2`_n{0DgE=l4I8#}%KgnN*sl&V(A83CG81RRjS%={5aNhKkdnK9y0! zX$)n@6Nx-#o4@RB*SNX&u;2_w(p|kLTzhv$aL6J zu@3LGi2XNi?Q<$4HReotxV72TTO|rtL>Nk}zllMk#?&%b=D41|1=3ShdQWiDzzw!I zShc?17Y8g22JLob7h9cbL2?LKa^(Gx)@JG#t6}_N|Lw$G!%$KZr6eyyNiQ9MPMo1* z>}66@^KITuc=Db6d5CxCC>Vp9FNyJLQ@=H|ZzMT`3q{G%`flZ2f%oH;+dO<-#mZtY zQtxbF_rdu=S@@fSEWEr|r+Uk|VpgJ;u<)mQ9qgUZuPka`lt@$%9+petk18dd72+)} z6brKlYNLaTG#q8LII-wcLwLRxjvjNcHQ#vt`YEESU4w&16_rE$V#UG4Blb1X)FN&Y zciB$Taad|0Q|8bqo9LANWD55x>5iw}TS<3|44{Ww;UwloHF_B41Vu(I0^LkETLcfJxQ$nV7TP;|FnUZUy%UQvkbmOE; z*gDWEd{iA60XIwQWt9%RDm8>pXj;@l__!n8dDno?Sz9DCyZfsKT8PE$9&7&{_WjaS zt=xT5WK>+{#b6H<*%?K0>YWypa}gVsVz2NgO3aO_P7|A4PG(_myq!b z2zTgCvkfK%ZERlo>z{80rZgikrEUDlX=y*Czxk)2=(k6G`O0(b?@e!b9}Fto@q#%4 zwZFP|88=;u_}}cW*L+%$J`~udrWq5q14CXb2yg%4?=_gJNUT^7O7IG z3bui&V3VkkjH+OK+P$81w-kv^Y%;L?TQV;Yg`<>)$nd!o6aHsy%m8gn1Z}KF(aG4$ zD4ev&s1aX6EkfD?%G>*=Q%4DxfXXf*c2)MKmP&3`HzNGxyggJ_RXng8de$`PU8$u8 zG>%D|s6>Nm140rIyP(g+q{vhG;i_8@g|1J0{PjJ&(e8?%~%RGRKxlwK^#xDs4oVt zMT_|TPx_V0N(fB=sN<45g!>(?FdYTvRJb$T8pbdzFDo@L{~P<6SL^PqEtQ&49oh{a z*^ps*(Dkg|z%wRB^40rz=ENwcWrM(&T*bHS6Eq7DxzImdnlz6idnTBxj%#Ndl)**f ztVnTUo}bAb7p`(5G|22qFG`anIs1eywu{8Y^Ba}0!D&7y;?UoGr}`3|)V zq3*sh3<$sTL4O5NJUzfIFj9hN$4yFsEy1%d2+os$XAuY{buj ze}3u@ze~MZ^yj%x4b(+UJ$Ah8y%X%2jmNK!dE)yAc7B}Tn0z|-IQxx;FXqqKDQjM} zqrPI|PEEtCDE|vm*)kMncdfAIp>A8?l^%m*kF8cL({^MENNC60{+imS@}uUl!coM0 ztZFjqbe}?es)bGBQ_)?}oW3WZpu6Ygf$03KvMnh`@>H5@oq~FYsA=9YPyWvCe&Ni4 zobQWGwh&X25+P>K!R^()n==s?C)!f3q^mZidbg0zJ1^a)3JNWCO(p+gnq+n`zp%1X zbB6ra1o~g|=zk3*{}q;7bR*OaH?xU!Cw7aDkKyRx7@Jjvs8ek%3sGr^SeQ*i5b9~@ zXyy{Q+18~dJxPWZ1=66=#*S?==h@C2E(>9)T%%__;!=d1@M;CdLDT7-brIJ-q+WOW@#e}V{)%!d`;Mvv6YAdD(GogLjQx*|Jw=maB1l}3~ESZ_l^_L}b< z(}Y23NP6#QI8~DsU^OQ6-B-~Rq*|H5;-e_`d6Xgiy{hL^mTDQ2&*Nm0 zs%HyJ#miuYpGjwZVPx;ttww3ZDI}A6&le=)de$tOi@sQXbZuP%a?Ve$At~l%G{t-% zO))=}rkLMEGt$37Gtz%eGScfWl8p3LnvuSOPM<)h+q(!+qmCs$$AmhTBpZDVsbmlt zmuE7)Mbg^~)pQWWn~Y$)z!@*n}dy9A{MxgBgPY7y#{JB+nTR5S3! z=kdgtfJzr?Q~)bP(H*ww0IC^qk+I$IywKm#5QQI?3xWi}tss9x2 zB8+@%6ACwxJo0=d3B9w5o{9fKeuY{o%|&lj(Y*6+Iz-A`km`+bOq%+=bjWpxT*ZrJ zven0x&ZMmGO=xwvuj zKHb6>ITe53Q)1t_Khu-B%xEsrNE=L-JKYsp$@{6pJ;lBRv8T`KoOk!8`q*`GZILT< zbRUZoc@IBgHO|By32bpeDZ@|{SiydKY{$g@F;cb=@51p8dod$376j^US9wClWhB{) zV5&S>ntmizo~pw4k#yb`rj!%+0yf99xIdFux>24brSC&%e+Ye#>|hv0F+RMe(f0*9 zk}jMSO+_&$5F2(r^SCJS#4%-DkTP{un7TYnkshA!F!oIM*-U5JqDkGI0aCmP<#tdu z10AF)&tY`bpuqs2sH59H(8^5;X>$v*|&b?W3;etJBD`$E2hm)TXmnse{^+Z-CjwD_L2>T{?&eRSM-YV<}VGMw!wpgelb?piJok zVM=M&2oH;(OevL4A4jKWti`C>^d03%iSdN{7$!GximkRQSqjY>GRRa{(Wlt)uSgXh zvf)H?CcT)Hy^x?1s(3zXs+6GU3Tk86Do}KVkD3@Lld28?7vhkbD(~j;ya&Oi-UXWi zA43hE{zpPu%~>I&ntQO~<8Wh=a1_ekCbcB?pajpp3E(k83uPpzz(WefT1`y#i*G1{ z5`IU15!7)aKZb@Ga(&Hkp@Wn`AZxjG16I zTQ%3VRxE9*_jRIXifOQJil^p|0xG1Y#kJTHQq=;?j5M>EVNn~%cT14VXxY5telx=42#SYTwz{;r z!ctl{WsqddJwoX+ujYrU_I0+Z zxuk}Ss|At5(W}K)T4zVhp=ZSbO!*Y1q>77{+ab&a6V-l9B_5`vitt@pfd#yU4COLI zAJ}OjmO}l>NUq5y->nQk6lMsYU6_=lIo+SrJEOekT7z4AU4+!9wopk&`^X;K4NZrt zLK4gGUWwB3DC!(&Z4(JUlC_x!tMi1S9!e(<)pqVIlyXt@o&<7luy_wCnNmGiK846a zoElt&wg!vV{lC`c2_Ut3dOl~VCZc3B%JDp{>iLqTnu?OmXVYt+Ql-C3TvXzOHQr1yQiKAR-FXckNP%cEL zYw7f}6cnKpAz>?3w4k#h{yRxDlANQ&(?t}IB9*@Yl?IDEp%fv=NE7mfu@Ic6kb}lW zlb}h_lxPMtA1Db_NDP)uBL^ZY|ecR9jf4xMhI5C8-a7=de zW)d#y&NX^0SKNJ!9d7)ID5m{VWa@U@}qv|6p{BY{Rc6+K99O$ zyMlA({mDM|zHlv5$+bJzQvLpPQ4zPle`$|U@ss1*sKtU!tYcHJloj!#SgTJSdo9GD zy+p7f7VjNTBB9qO-QNn19H|?9sdb<+2;0?7@km26MjZ|~G@%e+CulmGgSvAoR*PQ` zS&K;@(R^OPG`SbHGvfl}$HD~!KTRkM)RDwq#lSpB3x-l*7&oI-*nFj?e!em;5}DN+ zQDGM;HFcX&kUaJ~o4mdW^;} znpE?Xf2tqX=kHZE@0na!RvgvT_R-izP!hhR9h8J`oC8Y2*FTT?al=9n0q0<78mbWb z6_$1KP!4!(BPeP0@lj?_5{5ECNw{hTC<#{;1<;A=11KpxZ-Hr9Hc~PlHVI}(47RNd#W!7N9+vJn_pfbICN8RoTXi;bh zXacl7Xfb=OrcSVFuu7erLyOY6T2Ppd6bp_)!6&AR)Tu)u zMA}8G*!fU^dXRCQUHRA&B*p@51s0yXa-Y87xwYk}hq!0rQyYo*ecx+OKcv2y)xYCi ziMk~gI9{XCtO}`CB8RrQ>!dbtb3^Czp(|uHL4=mpliz5qUj9}0jr*swm3&eO!Zn5x z2x{nnKu|-6RE%IK3I&5fQOGa^ih6}mlrW!Cls~-y+vIUUHlJjb0~R9W1CE3b%#pn- zX|URsHdx>BM_##1DJuF+UjXq&lFU7fSEEMxn!k!9WknGx)S@CKsgPkI`c;1w(y(IV zv=No5fFT z=8N`?D@)C?)Ni^waHV*_CWyGZc6;o`xYkKsx?yHH7ipaK zBK6F?jxzP(pOzE}2+2&&&9uA+vMEIZZ%nBACSw6_PDfei&YzZ?k0CVneC{;_x4gck>C%XXxIo6L|ODUe8}SWquf*oA7sD2wPrZLvYi zvi9ssq~aX$v)}I?oc{U!kuN>*aNiWo;;9-~ABK3>;hJ5cr`l#5^LVduBpqGjjV8Up2rwkJZVPXp+xIdm72cSSN`-A^m?P?V*N)q(43VXR zy}U%{JX59RusU5QC^A+@M5!{ZYxB%{3rj1^?)XcLKF#GjfrV7Eu(BEBcRE zH#hNF!=}7Tviy#F=r1?6o_}k{)tUDTZ&JHfY6WM%x#96#nZ~Ah-_+2#Te{Q#|BZ|+ z7Yqq{lULsxOUcN>kWnlpBk4uZBF6{A);o-q>se~@nn~?nEuqvHhT@*YG6vmqGgU+* z&JZ#};mB0f{(}-mDCi@Nk=OTv&#1O})luj*^dCi&lI@NlEdstUa}F zhW<36q82Ml+j14{8rpRD ze(12JLn0U?I}ZBym`T4+bBnGLGTxp4*vQsN^B43!^UfL8??-*|%JeMdeWSkq_M_zw zu^#)3|*Xf2tX z{EKRMuG050%f!nlgsSg-CC?_vC^T#{4(w!^BCfEN&#GMGBGut%)5Wjm*)R!=EB0ws zPSk{Du7FQN)bgE6D zqn}0S+a1T8T%sp*B#(Q|cnXI1es<3()QO#k!07||W8+xL3%D%LKnLyDCr101TAdyC zzBPQ8ZPh7NjXCs)QeV3&M40OIrZ~Mr$Pa0q zikmgg>6@ZBzAO{B#Rpqilb32iTLl(lA#7$Xj%ceehH-Pt&yl5sAE{p~GR|C@Gy9s~zYf_j?{cEIE0>8T?T`aRu0uKk|de=rsMkc~$PLR_sTw#?wjU z9b`^wa8lddakD}$tkURHaX3HN?8geM?&f5L1LtspyDl3Xy$v|;9BicDfWD(XUw22y zAfW$W64=-qZTAq^4$js+b6Ijd7ZfB(EW!=jrinl^uFql##r=tr%mw8ltF8Y-xhA81 zh>j`=hr;A9Fm1pSc!e$9ZWPYWv-yFPwi^fXSf&b)($gx}v`Dq=OuG0_dA89Rg=Es3 zdA3oJ>Q_s{Z!8;lP-@KWdzf?F+4EfN2~}UP&ybQkxwulnr@ytqO@ChA0XHbbF0{~} zJeTyTpp~|7GL9j{)VG2354;JIW9xq*q{F9!F?4V%9h^r7OXEY@(pQU=;WE{MntCaJ zVyr%iv&m!c%yhRV)Hpdc&N;bKLzQbXKj2ekILdC@RZ#V<%Y+}t^@s-UleXpdu{bC5 zdqxD8jMeg#kXsOLyaQ+@Xfm{Nvn@zf&)c?C9NVX2@_5G(NRM>CI{foXGE+e z>!dTqi7%51?nFSyw7cF$!_F3}Tag!ihm z=QwuO{zCfB7RwnDBlI$Du!+)|>$Tov1v1ada4sRV9GnXW8~Se(pHJc#3cu6-DI;kX zW9s_qQo_%{TN0YyYx?8#Rj*X0z4SjL4n19P{C5l9d~w74tgi5zFHgMwlJn|w?Q>3F zXxO0`>3jeEQ*EiyA*MMjc_n+eCZ%L7;a;;PycMy{(NY=VOgWI~_*%{;a@W~!;+uL0 zWLMY{(9M@D)7Xr{eDI!URIaI!YE%;r`P?|LiDk;igr`)l7&uO@uwe&aUFm-dhB;X)N|7e9sd5e5t6=rm+XkKugVjqmU6P$8imp{$ zQuw-E+^X8Ay)iCppGoHP=tpx;Ymtx#C3q`tOi^sLw$}7Lkl(P$Okh&g1+hz)iHsD_atgMD051@iiNxS{66NSi=Hqe@~_Fl&J4ds`gEHq_i}zu=gG^+kiF`9 ztlrsc7p;{TKtX6MtH8C^LRglw_o&j^k&1zM^z9yOq<^zl0n!tJ^xWWa9AK|e4E9o` zQ&_+8`9EBG<)NR3O)d=93#{XYO<6;rSNLP!EH1Jrc0S9Llu-zf zq<>bGy_sctJEIUFDLIr#wqRm0n%ws?vF*5iq{sDlpnG?r4&Tcle-yWwVR-?U6}EhzdJsHfbM{vl7u z2}&38ia)KhwPvm`@7?2+op+ycm_q}^_19i(H|eDmV_Uw_wAuRZSA5FvnIwFION)Z% zs($(Zl6Y#%?Z=})H3dIy`VAs2kr8&8;gqa&a~Z1nmZ6$M3_(#M6P3~-shJM(_PH}< zhHB^K0{Q^|rb%{Y^a9p*0=VAG7(8p zY1dh**vLH7Tq4G@UIm5UE5)+;=5>6;(1h&(*GE1F%I8fPL`bEEtsx?<^RLVam2aJN z#GFj!TXg}QV3|cPLds(z*^;TW>rc!i*T!m@&wJBpPF7|jZ?DJ^L;Ce8bS_1@mBmU- z%H=5I@))uy0NL#2-9a{Onc*rB*g36SxJxE*oy7ZY9Er9_5k5YR3=tc|U??N;{QL#g z0*UA6slXroepbA7Wb`9%EHykay6l^`jz92L_Ws2qQWou2f0o7J7wKPrYmM;Dj(=o+ zRT}@x%|%7IVO*8Dq$o}>S{-_(4T*ErDDxovl%@7N(^i|$Qol0qo|+b<(1Rk^XSE2C zT2(6_KCkjb&idFwB>5hXa^@q=K`3WFrcr=$<|rMBa^?{W;65I^sx0=KfY6r3NZ*SK z`ah-@jH4GIbs#Q4zIR*@LN6%Mk7h4-yG6%7i@MmM-MEHVt^cJzr>A;~yZ@#)N-jIk zQHpxvr!T*%>Fw=xn1&;)3E&}z_{chu!< zWHs_otrS_ok=z*R-jk8$7|D$nT0g=atLc54QtY_1F4sbGvjXwu%}v9?7oQM^HI4Fn z0fj(e^&0Kq5rf#rF@dmzA&=}q<^;AcoX`RuwuC`)w^NI62Y)#hHce7*lJLDY%RKD9lfziY#bZ}^OqK) zHZ9_;VBmUe)3mIB->X@Hwzq!QxohCa)#2P*gx%}6XHA3Et z3)ACcqLzBtQ7;D0{WYO(w}0a3s^qqb!cPNk#Omv6vi#DFlk_L|)GGHFKbw#j_)cJA zdL1HRN-NtC2@~J4x^{p5)gS{^U{G`mQPKV_A-<^LEDl$=P&+EmfwuRksLKis{2T+>w_|9>UkR3vyCC4*&VRvKicfWVeo zmvvcUx9BBo-dtvda^u7SV_Rm3X0pmFF$I>HTB%Gk<#wBhx(sEh=}-m(CQcY^;2dL& zZQs{9AMmET>$-m5$K&_-J$`?%?eqDZefVrU=Y8I<*Eyf_Ok=YfW@Ua9Tl`9VO7)g# z>V^d|*4Q}elld^F*`w4!8_C#d<20S{)+R^fZ28U?ml(dAT%74fJ+3ZKkZ#50RhL95 zAByi7Fr+$tLOdqP3hGyUC|q=I98iuc*a$(eb!7$)j9!-78lIoDsOAbpFmL zT}+hLZZu=_N3PahNnSiBH}$;7(c0h83f#YV9fI5BvRC8Cdh|=@99=OsV*P2XMLvpm zx#E=nslf7xKCEr>y&pAg>UsNRyY2Y_Q!&Jo^6jQ!uh>7^6DwNj$Zj)**8xc+Sw^t3 z=D{|?DynT8wBqoQ>D5&WMN@;kZ+~OD;GAhJmqzb!ug>u1*T-B_sPpQjZ@+UrF+x&p z9ik25txGV|bRyAY%Bkh$5SFcb2-$F0 z3G!C2UJPb!vYG&F-*Fkd7ISajzBYoy^>PW#_MjA;Rrd5BpqYG&EJA28>q*RTH)Kl-Bf!Jl8>XLnw$`FMp6sQWnab8b<2fpsx=--B&? zv7q}5KNpY!;7+^n)v)n7L5Gx&&2|GTK(G~)SJe!SP~OEcr;GjqL#NKJvdO<6x(3VE ze!^+%_`p60Gl1?fli?emOJNwk0izDXH~#av7`_QU7_u++;L|x;Z`1kUSBkiS=j&P| zF*bKk%JR7HEcD&9uZElqoDqi3Np#HU;;TPgrL4c$=ZErEiYPrI+W%Eq);DwFx6$d-SnO z^F%LQ-?3`U`R8ZunDG*~YFasJ!B2C3!h-bvZtd3I$x9NyIe+21s;58t#}7|G>%P9b zo_n>;nl`5GVCDhdnYYvK@okfSPZ<@P32DgV3pn^%HxMJo2e|x!4Ik8npAx)^SUgs> zb$gQ3XXSzgE6L$Ov`_?nd>D_%4d6x-0+H&G?Di=XL_`QgAcwd%u#Wowv{)o#5gw6p zmR~L4=E@mt3r*_p~iustN{)&M~MQ2Qh}AtliN_B z1_ci32y;DIKbl^(WjnJS_nJXWjx!(ExH;w<~Pj#!;oWdki z62l|Pf$bho8rsC-Wy1NPXfj~Ej9)chfmbv9%%dnh6hD~xX$l|0FKCVikmyrNn?po5 zw-G3;cqW0tA|?=C#ai-cA1|6#QZZ%zL3cI5P7rL_VBe#1viS1~1P26b6&=;*e<1Az(U0dnckj3SseYmv8nyTUHS? ztwx(m*|l243$mqSo*eYa1i&8%7B;d@HkcKy1r;2*+s3};=t?fT{CU9xj#oE3q`FgA zHI-&-M+Vpo)5{Bs9>2b3s;7YKUoQlHjDYJvEHz=F@jes<1=j*gBLK&S8;!$2)&O%W z;oYX!IT(5!0of45T^?6&w%)1a08(;9svMQCu+D zgj@rxG26k46pO~hRz9L)Umm%Lz>9$9!IO0y^F+2zI?#14RU<4&0IqR^qT~WasVf0t z!G!C#f?USIK?3On<~BJm>C4KTV7@ZAkY`X_G`n2i>x6_c&}v_|Pp5T!$0JYzD|rUy zUITW)^;WwW*#p1@lGS!fEg%P+*h|)?>l;P~>-;T{>^hfxc<$3@)=wGIEQzoW{yFI8 zj1#^|b9c>3VR2GPJt#iSTX~-Q#`Txiye%>9+A-|&!kB;cOj2Dpj_ne2NURrL91J#* zv@!}Ef@D+r{KXG%ZOm2}qvaH4q^_X*H)H==_x(1+eL0edJ5Y3QVD=DtfRU?eIDis8 z6tQA9dVmjDM;+(^vROxq@U)IK?L{c!S>1o@Ykhq@0m){y^ZzZR9QK;6^YHZE6&aqn z+Ml~U%{O}&1b&*`+$)lB)2(fH=dV89!+6IDknWCpwiGZ54PX>GfKjjjqX-ABB3bW? zACVC2NYHnHN2lLJc7R8x1hLMMF`ryB?=y0JvlW2WF3R2&+f1(cocZ`=pT%{DAT1Zn zE_naG1q0@seo?&d8_(gaA6BQ@oyjW}oVtiuuutCJ^0=tZx>)(}%7cA?QA`E{f~55M zJ3~JB^&!|drjAfq-0SG92|K(0MS5m+?t@*J6iIf-l6dI(2%{ z-7S7!VRb&as<g_@Vj}E>C#a~9miNvlUOg*^F=tZB;hu?d8@+*FA=243}j=x{& zGwq#pdM`E>qGb)(nVe#Hszl0TJx@5ttm+r<-2-%$F2*JL_wF@g;u`KZ2LR_Yk-&cj z#LicP<`cKL?rZ;m;^U>W*uVm%$~dIZPRGEb=l+>!I=N2F%HeK0uTQStm!G8Y-?cp3 zVe2S(Sgm@dT>jwf>&vc4s*Po)X^La}I_^e|0Fv$Lc!X@1 z@*$GROG0N;$ZZy7)|QMS`#1r+5d6Uk0kKnTfsky@$gEyw9YBR7J;a6c22L(vRt(-` zkP{g~Qe^^7ChH-oM{#Hbm4+u3nY|3XGJt{e% zRd(++@QHvd5`$jUrPrHXfD;|S5xI$HFyTOzDS#q63HY zL)KAz)*u|302Cc|AnF55`o`6pqez^;56$3MZO23PABMq12=W@Pba>u4dVFx$`~rN# zi3iKS@(B(G}@LsS{Mm5c8@Y(9@UyiB$zs7>u{do{Mq=>7PoCBl%Gr4r?X zgSA4f+VW*!J>OEGp6GLR=@qHgRitfK-jj5EA^zKXA@aKcqydh)v|^o`2L!Q*{D8Zm z?{&x`dBB{B2!gno>;M5L1V3OLe!vp^fCBOZF2N6Y5kFuRen4H_{kTZO#IMP<8WQMJ z3940b#f?v+$L#O87hu=%MTGe3SVHxah*3y!8;HK*GMcDZ4qf z;Jq?*Taq7wO{PM_2Ej}o&m@7s-u7W>RNlPX#2R35`{*_x)yPQ>=@BcuefT;ss}>_6 zcpnMD!S$Ed4X8|My>G_6xx5Xg$f9$*i~SU(19OkP-reE8@{QE!H~sY0vq`}PWB;{H zHTuio0PaoCFcG)RA`J}aa6J`~qp67WrOFW8 zP>9GF`gy|`5!su>t+oo{iHOvAA(p|pwa#Xq$W|5?ZH(~DS6C6i!L~(0p}ftu9ZVAn z5r~Mf$RsdZ8Ff&ULlO!_!|jBEcf7Xa!SegKl?KOZiF*%CD4c){lSohFI006ISbj}J zBfV=p<=eUmsxsRs85-J9EH~QZ7VGAg?!zHB-kr{_3b(Qo4zuTK4Hs+`y**o6oC)If z`odFIEam3%BQKlyC%Y!hb+(rVt^iL{jL0r=d?k-xd0fpKn)p zz4;tWftw-))}%Ji2FiRpoPatJ6yfiD0SAxUqlAdGV(sc%wt`fPGkCo`X@6h9Ob%Z+ ze$u2lIg3|ysOBCD>==CQp2IzxpG$n=M8$=nYlpG!Uzr%Yv1d3~mIp3{Y4*$$Sp zJzu`FthqbS>Wvbn{f2JKS(|%sS=f9TZm+{|0e;*9+=Iu8*pJ^)3FsWeCVp5Y1n5vI zHuJ|(*eKL!EH&CPHqooV00|7t1j@Iy9u7D>lt)GZN&>+omv15gTdzhqnN$n`3G>GL z5xVdO&u|j)-6T~x+okr_WjiBumkHgL$V}oDVx}?TK7+TFdO#=o3-}O}=2%G2Tu4tj z(V_rP*w&Rj&VM#=zyt4|e}+j7|1Kn{VdGBM_usgd9~=Dh=k}Y<;^3J_ z&B5<90w?HfN zKcn8q>K`j0B7tj#h|FJ1MC5c$6cNFbGbYy}$qny%y@sekB=x9UhjKwng;(gyD9YW8 zqFll#$_NNW>Ktaw$mISo;TTk=bvZp`n9V$qtxZ-~vluEu8M)ZwV`!1mC z66`%5Rja*@(S!}HcANNn3aE3D=RTZWX@*$NQ0>?t*qwoki~}j2PM)++AfQu7dEivz zl1G_NVHM|<=;V3xhLsPisLZdu{(4+?Z2X6mdG9^)vh-BY>d#N-F6Y&c{pgzmKiw?t z{Z8h;ATu~7D*$HUt}E!X`V2w?!!)OlsLt7%tf_zE4~;bmR!T&Jjz5s)(hJYR$s zN#x~5Ja(8ufvp`Lu>ywDnjCuji4sW#ILR0@Xdf7{0`^Yi%sWj(4C6 zgu$`I)B7Ley_@L@)U+$8Q8W%>xgtE?3m%?4SgL#B?Y*Wc4{J5L3zuW|IOHwLXQiIZ z3@>lTSVvW-NaD6Be@E6FTmI3JD-GKq5huqY=7&Im5Cgho8w|v$Fc4S4K(xaMK!HP~ zKqwKID4;|E5efi_nA~Ou9xsw5e3AA@WslPyDgF!EBNdvLjNu6XQQ`5%d;3zu1&MDEl{oUTVOaQ~BlxGNl977` zju>&T|HIpWvjptCtR zfPB*KD{AvI0~I(9gTF}C@4wS9#IFZG!0s2Z-*IacXb2-J32|=drP;(#+m93h_h{tO zM>zs|VEG4wY8})CWb8o~7nK1dFs{d%M9~cd>VR?qx)hMP4sV z$VC+%*9PW^Y;{_Ze@j%z?MPy7f&)#EhY}T>LE;LUL`d?ok>rIU$wNRF6I?kV;5rE? z5o04L0KVq$IIdGORRJ~|x)E5PI6HAbK{{ui{?0tjCQlsx*Z%NGNwCK~Puf_=fG%g7 z!TX$A9#h2KcYaHY=S`!;n-=9dx7uA$_=VHC{DM6pb-iV)Q7rK|N-HV6yD#*^79?of z9>zo5g-(F53(*4@`;OG_?dtiAJvKW*G5e3pI@fszFfy_3)xg(qZ_mibzJ6rRcNNi( zeK5Hu_+I|Yk7RQGcF*y^mHO9T9}-hUpq3A|S3lv92i*VAoP8Iy*-L#dtERl}c%rsz z&4sGBqycdcL?}Nnbv!_F`zOoqi2C@)LhJix=^qFKARgW)H^$6-M z3JqfeLh|~+vnyF z*A1plwXR)xzoNq2F|huFy%>`lq-}teeIRwMJ8lE(lHaQNhEFT6yy%zUAF*G2^`IY= zBl3&LRr9&fl^a=?hOe5By6K+jXC4@_|H7rgP_@$;RhvVvYXH5jW#-OB>of-!adY*9 zkRve3MH|(NgIvh!Ny0IQDntR0mK8`spayD8Dyc^m(Crx4H4xo`$NdQ@=M}#|(hM($ z=t_?pLnVKeKKwcU5R}>iplsVsJh{lNhEiNvAQIPNkF-v2u7z48%5fUD&k7Vt`9N9X zWs1d~%oN-KnHcWq+3EEtJ)`@*g80`S$XYz|$tQ-t{(f=vuxpLe1p^-57CiH(V+*e& zKly9LmN_ro_wUcwRUaMi-QbtGd)EPLNanDaH+YX;&?s(tK0SFda}1)n2ksmOhQ?o8 zoV9HJdaFw2fOa5Jemyk{N71AA;b<1uJ2YYide}Z#c^|}Fj35sOSNyzREn4H<<3xWI z@{2es^?qPS;SydYj@u!_D#9#xB9&N_-HcRXUC>qo294Lu_bj3?^FrRS=`62zOM-ZE zkoOYez3t00Cby}jV@pd(e!&-=Zd*$UEWZB}|>3w*J$_J#SyNbpG8c+axzW zH$Mj;+Yeb=i+)<1p3T~dcpveiUlrEU;5@<*Z>fyTL@U6rLsIg}RU66UjgpMX3t^ES zG`vabi^qow$Ve(6F`$ejBY{3DsEmy5myzl-R%R^nFJ&al_9S}Xh3J7b7{XJaih8t5t(RB##*bW(Up?X3>N1V-vTTn@-cs_c+Os;tgXE%!CKnD><()8d_Oa}a;eVQ3 z=ta>tFg^@{2)(H45-Hfwi)6Ssm63zLA8hVZkXVh?J{51drqmha{x#eR9IGiG$oD1RjBm8Je!DcwJ2Hw=5||IfmFABq_=@^0UnWV&mKjNC_LB&6aw z#xTn3OAp{2lRZQV5($V50OHB7GEPVQWxypLe@p$w1$}-F+ zXn6KTWcl45{21{V3}QvBSdJwAmWx9s2F!w0_(=9jcEk$NPm61D2$_B)bqgN~uBh!8 zMpB7;$UGY{Qi+q^qVv&e#estrgSHNVRqH!R25T^2e!(xzUvBh{4!pE%&WaK+O334v{_c$IV2Ly`Q=>79!KCLX# z2?4NIfNpQ%dBf1>S2J5h@*N^^9k!7$@L?e9kTD!VW`KgR)yiPl$tWo7R|a%m!TQF} zUl<3@{ox_a;XZE!&l?r>H{ON`#R5z+LQn8?#rT7xw)e(=@vAv2@Y|QC=P&1|9{<-i z^*^q9>@RED-_c{*#^MN)1}!dmo<1@WKTf&r07hSH6pUF&wBH}a`rk!)ZOMM}fsNiN zF5($F#xYN1>$u!|dvXbes)%BQBZ09iA{^mJbd90Ad{nl_we(?!OILXr<3P(xgU?u#=IX2m9$r-zj1@OYD5HinwF$?U<08hT z4TV>jLMEM*knv$yfqBFV48hQ12?iid(1v+tbX$MrCf1wxi4=0o8IqZ9-kLP@-}VBf zef@_QD`EGo;d}YjAUfOdv4wwsDW~z;qOSI>!W}0UHQdv2Y6li=W@XE#56pi4iQo%w zjK3Ij|5Sv5l<;-K^sS%o*{6IiI*zNku#)(5Wpsier@$oaT9VNlzop<+t!a$b3uQg= zf_r(X{0yI;Z!siHS*>Pawb5M;zocWo?fpg^Z5wPJjkzd@?(0~Wm`H99j@XYGMPlUh zBUjCzjX@*0gm4p|Ts2>g{s8k+qG}t^=a3;r{o?qqXrF^QB+1#SUocYu+61RDdO65} zQKP}W76aoL!r6vn_#&crvYL5BNSS}wZIw!+)h5gh!3d^TOWx6?osD)p$Yq*>M%_e4 z|HVXFk{KyZgbCsVni3EdP}$^GgbOk#jt33(#)bv#AWCo&^tun?ny#h4fJSABpq?GlgJh@N_M8h!l&jsEB{ z^cZWriOzsbH)Jy@p{~y`-15>38$bPFuyyS(VTI3q`uvzjh7LGCnHq*ec9oGCMmO>t z-~Zb+q4JeafBu|~CXcPP|9n2VEV}6AST0M8dD&U4u3Y${&-=MJt7`a|UU+-5;ZQ6< zMrYvk%>m$L>l)tbzR#onqNQ_F{b1N`@mT+X&UuIVhB@yr-;h@j4>1rk4#}K%G6Q8_ z{gj%=H7@C@WwLDJI}0+N$@8CDu&MU^Rad1uqu8(`So)k^8WQtMduC=nTN-V>{uX)_ z1pHUieES+?LFJ{|#{X#H6r-J*@4eICutHbDt^THn7=?Q=!!T?&nhSL;U?LE!7#VWm zr#G4}@eCw0fTQeyV<1K@VC@@Twz)+LzP@$8tx)c5ceKRUs)v$q{3G&>r>^&W>F%=( zezR`>^nvwO4Y+t&Gg+B$-TTqOoef{?{pZaEgkigX%6WTQTzoqiwxNlq>Ylt&m!24q za(=)n^xbnHYH<-#Xtf_xZ2nBz^yJM*JZIPq=1ajn;(j8K@Z zgc<7vldx~$-b*J-7sQ$^rO9>0g>k~dIl2SpE2&BRny{`f#LM|tit2QL!_P7BjmP3m z;Gy{l^T9h|6`P}MxZy3{gq3!OSf*of{qSU6I@l*`%c=oF0r=R3^>%$6u4QDO%RP;h z26Yp~0RF&jQwl6x>!X{9C2Nn_KaWzC6r1a@x^p8>2nu6>C6$Y1WE(AISe)5cXuwL% zam9{&vf)sLkt6lOT3xZDz0i9|!Ht}&#>&EM(}a`)D@PV0Nn@#Vj1|o;0v~Vvuo(7F zwM?Xow)#6t^Q-}RKpGQJaaI{2uY~Ab$H@kmN)3O_u}$w=>fKu6vG!uk@4i28I$u;c z0gHPRrrOm0KdH2^Z|xVX@J$y)yN$9%liQ>~Kf{er_-QGf7`ugZ_d2p$zn{~XlEUk4 zeWyHJPWg6n`N?lRGM1v#>1i#sn$W6pl)1_s8nM6AIls zZFtWS?!RNw8VGR3oWYmos%yQ?-mX5Tn&xDRATCH~%CenGZ!Q<`rYGg=sztgi^QqM4 zQbBxaVnVzwJT^4E@z~Vr<`cL9HpN2f%w_@5!)p`rB1zRT>H%(O7-Om?H7HydjM~`c zpc}5;w3GEaXbl8O zO`wO$dS;#AenfSJm7ys1h5Jib_IU;tbI1DLK1*v}X&ctt)mty!^V-fhmgoCn4>Zn9 zkzIcOy6Ks9yoa_gZ>Y=9FARCA>Beckaq&i1?b4v|WH-IZ+>S-hfldOB$}bKqC49tK z+DNcOI&L}zo0<@n$ZcO(5gM4^m&nIQEFkv^)7?R2H=v1fg+-j?kLs?gqt)F)tGg)? z5R2ntW$TDNW_lq&1I(e1-YKFJD zxwNe0Q461~wzJ6j21-He$DgsCck@lj zeh|{!q~RJpw_7!7-Lk$G9$>}l@8potdHv2`8n+|u{ptzdQ_p-ke{6SqPqg=yT{9>9 zNtMGMSd0a}TVv2>0yer=Hy$&Qlb&dq%md!gEJzbQgyT^9aB;XhM#a ztip_CyY(qe#f7Sd_3R8o9#&b;i04s`r?^v<&R1HiPnJZ)nr?;Zs%xdI>m-k3jk!Ge zPsa7e)n}cSHF=@9Z@EN|mE{r;gt3;gpdek3o8oO}uppr>Z#h|w`C60>i_1+#+{PN0 z3&A|a3O`Ya;mMLm$hoXwr23d5>23g2!;@8G$!-K|bIW#7Nn_4PUFi;TrT=tHAxlVW zQMa&9z_np5=p)uMWHIP=5k2Hebbgp%D0H%2J)4X-O^-LVq(~k#W_mML^?;wm$(e1! zn%zd-*^R}b2$jjil}8r(>q_&yp*WL0j-DwxmpKzcH2#U|Ir>jRtLZ-hZVM|>dt2`0 zq}E8=W;6W4KBl1zKo!DUAuSdhExM|A`CVA!yI`iw3h(2J5E!Jzw?LP5E3wA+;9mkC zdvxAo@7K(Ic6^8beFM8TPfL9AyLEe?Tsz|R`*YeNm-xLrHeq@fVZDeA$t)o^TIvfPXU0k9j_7I!R5A|2q)T@geCp(?y zcCj?|k>Emy!D%-*ET(LuyKVhQz;J&e%y81(gJK>Gu1T(b{_0vb^7BkCw zKTGPCJu{FT%24HyH$@xhBHukHNx@k4!{ktF>^Rx%(DENb-Pa==ADiI{%2 z88J!WovrqLx){*!2>DJRvG+{SiWur&X1G0K zvd<)P^ZQ)f+LafdzXjxI`RM7jk&OjmSGJK+oHquH|7H}+dFCIkdxF|Nn`AzGvzAj( zckTt2x;H9#Zi-Y;fQT&z?2;mC5szgw9{bRE97Do%J%H7Ou|uNwP`dloU;|H|O2f2* zCOet{n$Z1&L}WyNBy^GKh~d4Ug_eFOs+;=E*ORZ7V%`7HlaabL-h>Jt_T7g8w6F{XhD0zhKD)g|6gvj zCm=)@?y#viI>!yAn~&RDHW|)ZTZKg-m(G^{Q+P+e9EUC zdvnGpP2;Ywp13EWW^UB@6OQhJq@$B}f8)o^A2Dg{?lhxvc?0LsY0s=}zA?~~uxO2j zf1*nu-r+C%$(Vljf`O0TS3+n=x-bF{>-jl&f?piJhCs5W5LS(N38Bx(z!D4Bn=++` zxrokk0f9`p@=PeJH$@R74aZbM=u#0{LaEWF6Qqr}T0q_!NKbo=oYqP(X67JrTIDiw zEQ}z^?AytEc!xAa*)DzU#vvhkd07eJU})WXf|zwA0@jn|5^)`%K8dYoqCrzJhy_rBYU;)3)2Mce`!vsX~I=w0Ns!>UyEql`IW0 zc|&n7w{n{Zj1CX4nx4{^Ipul!PnF^HzlCbaq29gzZ9`ngJqKgj0$is&hh%LNTt9n$ z(6)uSsy&DO+h@DZdwz^*k9A%09FeszcU|!u)yC@Bu8VeQ!9Me4MIqN3tCKtSnH}!d z9-Ac9ovtqRl=I`I^~@nFN}6y;e0#USAf&}q23)bH&aUpKD&0*>`(xF$_Uu=)$1GU> zO{6g;wKl9NZF8*AGAuN)dMSid24HEv8UiV91k4uglfVqKjG$+M?@ZgLj0!G9XQ(sK zvwZ)gG3)oMPWc!dB@wWT?B!8O-dt~OKQe8TKu}m+m)cmG5?^A8%Pm}}J7TUEH>y(j zC02c|rM6xdZK|zOsZXsHRRdW$#1cWJmzGK|5hK0O>!aNipx1{0L$8m>W3^IIrUmT= z?=jWVL$*|^&72&PG}na!lfo)?oh65Kb8d8BYbp?-vSx|u&Jy{hbCWDmWS|=ky5Uky zA)!NMrTeU9?Fo8Edx1BFFI~eT5`>cz(-c*&Bs?xGZB|do$n{)EkXn<;+S_dsX>FA= z`T#8bz4VvJv%%kxf@aC@OUt#^I=T;ixZ#eh+*_cd?Bd(7G`G@&DLQl#|K-h?o0S5#wqBX23lPn?0C!eJSEig)LXVUXRq?cg zJbk?vIao&5aVF0y(|PlmUz_A*(hdQmrus56nyaA(P$A~1WokfQt>AX|SnL<1{ayCm z4I6ONNe81mFYTH&)=z~cO={+CJ6X83=aCl%M1Q_4XpXQgrFLpqlSi;ax+YW=` zd#(8vlU73@N`f|^?s`h;5#MwY%PH^>LK#qXd|1S5SRRPIusjflQ;~TgMx!bqMw8-7 zh;+ngR0YInQjUkzg|@2N7M_Dp z32D@E#Red=&?}Ts9#S-v8TOf)=>Li%v7)g%hI^1(6WYe^8tK~PKIK`;{egQ~(Z=7H z?S8A2|~ zN6&8&JA^sD{q~Pens{hEb%x7xlONZZGoIuCI+3Y605(w@c?_w>RcI)^-1rv*mI;&euHJw1AxC)rx%^nOV4 z#BJm|b2QU{5=S@WG=ucJcJr^Tvwj$2)9qq+G7|d_(|s;)ocGR2*EELz@WKOI?i)QI za@)yn*>g{gYHBcNJ%6uX*3nY)M$Wbe2v6tXmbsxxErEx`iF}iL>?ylsg~oJvB+#*- zWPv5CxJm%Bf$4E+4aH++fZQ5RQ<^O}-`VDleYKf~f=Gu|m!n<6t(O+CB;{i1O2cf8 zRa<1$?(<1;tm0~AQjbv0VI@`1#aWO5;N-~X2_%=E+=raJ`z4CXrMnYufSs%4o{0*H zO17f$`1@U-kS^e)jlCxur_2bKWw-x6i#%WRVphaj5}V=5S+VA8&akL{>Kg4*Ow($yL#dbRSx2t zxkDsj>V1a((0n_cTF@MPiwPpHt5+r6b8hED+3KeT&MKalCpbE$XZYl`#4Byg zugl-wA|96$E2(yk=jjW~fcI7bSb7(Ryf_{pUofWy1v*4)r_vqoNmOjooi(?n3PY;T zmP{8~eXTn>R89<*_{H63A%<8Y40UASMvW2+?SNRw(@;A%EbUbxm-6;ZAU5RKx#58t&1S-sP0t z!r%P|Iv$eu0wF9n+&*)w)BfEU$TR*%?)h)$v4-%228<0Kb*lBdtvwH65aewPg4BJP z-&$V+Qgzo#QTPk$hc&Bu`GB83+7oAHz#xni_O!{%~|aEHv9PQo!t-MjTvwWxWxX$#8BlbM0BWx?(?K5 z`p{Cql3#rOfx(L~{pr99LkZJXxYeaPw|>q}zk;{{<5xWSuP=F#2||%!8>C%RbX_~BaFuMsdV>?WH;|~O;LcbjtoJt zNPEr#B$K3d$khXKLTOs}1x@RaeEVwJTN9!}EIsPtAZ^YC#l8(1jq~L^lgqGc6FXR= zHKrw(cy6^S6Y}W)Uzlf1Rv94Z3(;rV8Fx%;mtF&-xbM%4b)o4PhqiCXqd#KPZCBrW z`kXb7Tqn~f-LlX|y>_RC)}5HC4XZ7_Wub+?b1iP$gbhRWSN_)Yf7Bk4XCeu1?otL9GAd4P^b7Ap(5|PCb#6OdSoT2BR!<@f~Ie!#6)UD+tbBjau zY|BW;Cf6x9KrGx6g`RJj;@IJ;cAGe>xuv0Xa?2ZzeXdJxGiMFAOi^bD$m`~Fix!p@ zNZNbcwo8RvM}iLbzL_ye#V%5>ahLGRJbFdE)S_b!ag*A6l-TDfT@#HWSW%@%fMWIi zMf`>C{vog0jr!-|sQgfI>Ya+ouRLxU)+^z5X`#GwD*2;7oK-V#|BG)76+gKA7oVAV zYa`Ep`~AYvDVe;w9M>D46q!o$i<8S2l9Z>jfI1of%iIMLgMBqIh{28M<12i;R*}F{ zsI#lesdHv(5`YAvKd>qFaN(so)xo5;iLPqZk4fzbuKL?PS}hOL7|P70YNEvcFQ+lM zCHW)>Nz{z>h9qvtZGG0=)mlh>vob3)0!n8x+%>JCUPzC)>KW0tlAmm?jrT6)OH=YZ z^)Ez4S8JQ14AO!)cXzmlrP*b6V4Tcxc65s4MtQYjh+0(7wy2ny3JJ&^jexxVo zrfXW6d1H-4s5447WERQVk!aT*Cb>A$A>`t4&e|KhSEKRz(jK=F66}uxw2=P7(XJ0Q zjfLKQwVg`>sU|zM{E*C{o{-H>(kR-~R`+@{BPF~bOk;4RN_qwLZcj2y5S-glO7mj{ zybk;$(&IOFKTi^LrfYx=1D#BhXClCGw4SlZh$w@0X0mG{)Sz{l!D%J;N2F9@~WIEsbn3`xU8 z!v>EYg^b40Ad=K%&LM9yd`jM=qq|4b-7g0l3JOz03Bve_kQo}5Tuaelt!FwWoq<^m zgj!rphl}-e-}bU*-@=l3v-Ausj}{Z`Gh^>#r<{(?>o+Tnc4Jy}xIvmxuHxr!C^H!a zs=6{ux1_kMxmQ{N7&4jHK+c{=M!dKC(*G!UkL*hbp`*}e0UE~$zW1h&Yn}VJXEFDX zx+bZOJ5=ZzUI-r+BiU0?$;dUKl3@rNRvI~zf3t65H{ZI$Rw^kpR9V}tH-sX7c~X6> zwana9T2fe8<~lAmsu=&ZOeep?_3j(V<`y2lJ)#X0&1-klG>*$z&Wv{VnQYuXuif}&-&B=BbgD|ZA=LHGn9)BoHd^4v%cI|bjkf4-(aGxww(?wMz0|NG1{ z6PQ>t2--=J?U}&Ay#g5A@%j0&Iqoj z)arEqX9vw9pwnc;A(&kDIV5(5IvPKEw9dQ05f>xTVhRKExBQOR{rkvs|Nj1Gvd<*; zViH;(kiM2qVQBCn%jb?ciaS*;pC(rYuFShVti4(Ll5NKHZC^|>FKpq9q656cH4~Dq zR6dz#$Ps8dQ&TG;gOaE^BID77eZ!_;R;BvTsRA#-f%6?FEE)xn6e$yAgj(L+5K z&loTJDq_R%C4RLxjG2rQUoDjB0F+)jC5ioWHw39!=Rtn zny1qp7z;%fPn{10YmA0$CRT_F<~lq%IwsI_UOYcrilW_->GwJ{G)CT^`P1&!;G+74A`i9Kt z)0&d`Qgn_C2PfOZIXJlYS7Y}l87w&twyH*k#)XHgU%_`*nLfcO4Y!sb5i~8ukXTiF z7HnmE5BY>j{x(t>91~%$_&6l*AuDUBS71&lCJ3J-b;HG4LiTa8X*um!GR|hfGIRKj zWM!m)NFPH=+p5XwqOGs097iIxoY5G>4tFgTc{8$_=FP<-e)HbFUii6Hv&pA;+>soW(7F&<}dESSBsVKA##hU&*lz zzmvftUX|wnNn^YQcW@FQOVSnwf^a;nb7&?|zTnnnKFmKJ&^ahGSYElj^Wn@f^5YXa z@5^L)KTsPAFpJhSlX6+WMZ#oSdmQB{F%TcgE;2n=eSz>bxYr5$Ku&QQp_G8IonjPr zk|IehLX{$rvP28wENhzJ45EU}UgQD+4y%X>M!VJRk!>8c2Q!|@LWfncUcmVFEsLFt0c zKQ(qW;T~MuZXwQp+(p9C*>0wY4Z$+{Ca;Q=v#aQP2{jPsBh)|?7bslzh}EW^xaTl{ z5ZPs#k2jw#n9x}o@U_~KwbfY~@Xw4o-=~$9tfL@p{0NfX&Sla%-vgqZUb5eYePAd2 z0$xJagC4eMr;IU7Y8HO{7O9}ijxFN7Fy(_s9^0^CgQKkLhUDev9v_pmanIgQAI5s4 z{~++QQ46)-9d|qb?GQH{?C!Cu+0$+=NPYhkt)kA^oaS93xTc;nqyVJF*%ZvUn=lo< zJL%&d3Tga>KpGVk(ilr2jdLiZaS(+x2GGYmifa5jIf3V8`Zz;s&d4cSh#k?IRTTYJ zLrU6N1h!XPu#|A%bb>bezJK5yy>7$lesp8f)o{u9|4iT85@&4)?4Ev$Dihk|+a1Np z);3M)evXqB(=@U>oU>lm#P87Vn3CMo6ZZr`I*LP537<|5RtAuVrd5Qimm0d7>?0Kf zU_L(Gu)WG`(9*VeW`jZ7tzArpWE|7g=T5MGvusDi+)0x@Jwx9L28GpuvuiAK#1S`=GqigvLCae>@jW zdo;gN*EzI&o$35qb3I^uO0bGVpk6s7sPCX&odv6C`$9q!A*eOdAPCs#02%}z1x}$r zJ}E%(B3mc;K{=pN07i%gfDMb|k2my&S)IenEm_z5>fzJCJHC5?@0bZ#N5DUUjCr>O zHS%U@z?GYQwQ?(|ww5dv*zLYz=Dw7g1@FVn8{Dw#tLvM-^&K|jvtf^g$DF%5U2BV4 z?rUiXIk{UuzWAd_Cofq9Uvb#_=chh*GFR;#`0?tC-;F$!rmT6d({ZFEYOBH+nC6>g zoR+Fd*+Q|MMGV6;mjXQ7-f+#QF zC5!Zwtg6%i#w~6Ibv;UT4mvTI-vWzV7D^f0%LzXlj3G!#5E>H0JG!5zNbbFul^Rt~ zidTDG45Yn~6m=>UD3#0;evblqI%TUO&y=#f88e~NUm+qkN_LUF#|Db}Z#K%MZ{f@m zPXvftNzLI_pt#Guu{i?Cw}8372AKP9z}#a1tKJKkJD;$+pVCBl-$H@?D6jwpj-WtN zb4FlNBU(lM30=oq;HRI;?dWGMWe!eixR4g4XndplG0vf=HBrgDfb&D~MeuUJC!Bl5 zCW_kDHB(%-YbGVPyOre26R5r=-&a>(Xw4vD#W>?N0*A<#GWJ!9j?Ml&&`jf7jf(_C8W##5_vUDBO zIh(^e{-8zJc<*l4igv!ov1aXYr-%O7TZTPXH?B zcwOMTA$(7-JNae98}Y--xO=bE?^Z92yWpd7eHVx?1vLWSVdgjFE99Kh0QxR(F{19F z0-^53(z+K&>s~(jqPl00;wxgrBZ_XeoU}KuiTptjkrCC@P;H+#sj!SYWNW?JHvLfO z62lEgwvZ>yd3w0?Xjh0@>anSO6%A9mCn3ZcebYwsPbBnpplLx#4GC!@`I@kfSIe_% ze+?pt+y9}hpcSoZU60G>(aT4u$K{97%U?(@KZxSlRk3VgZ$iuZn5JXSxENZSV`()v z{gWc-;|`FjUtp#+yyR=r93pgYqEd&OzNbwjE|%2#yovir+weMQIc+?BFX6_+t+CMJ za?wTpbgQxJJX(rtn+4}dXVdpM4v~}Iy&)mZ#^VO}(1d2Awf>w^0D^rU8?8h7CR)dL zXdQ2$b$o}`5sT(igyth91ty}v+bD1V1s0anGf7oaQ$m`L!nm*de$^+TjZ-s+D{gfv zX@lgaoXS!DdD^U=;E(Zb$>-4a0%Q)pFTbv+p<2<{p1#`XRQaNoeuwJ#Tz^e;;ZUdQ zx3%?aQd^y;rBH0e0^TioOwfr4Sey17s?IxNlE8k7&$dyDo=~VbLjY43uYzX z>vwWj-CGCMQU4lHw)1kPi7Vx6aGd!k5VHM*8LPF~xtembb1uNAv0Pkk%Hl!N#8 zn8x`5%XBNl1fI=LwJyoHu={b<+CSjga@NHdN!VB`ODZH8q!L*#$bUcy7HE4wznJ5>L!p{;f-Eh`kYdm(zi&;bvjBVBF^FZj%urn-3yA1i=-EORE!AM;86IHAy{ zB#CvZN=V>b)#y@BcoU;LCPT9_Ii-ooDdT8fn9t;tg8wq76dOpM*`sGzTn?I#TA7^E z!E=~}*Du-2-o+Rv+a;VtZWI7R80n^%0^si2$mbJ87goezO%Q#R8v23?X(!Jy6P(?h zuOic=J^W?9W2U_{5W9AxTL;2se2AzLXr{mbBU{Sw=kdM41+^Ox5*TxY+AD!OjN zhHlA`D+`TNVn&W+r(b>}dGORx**{=;64pNo>lY4M9+7n+`SN~GkC{EB=S_P~O{O?) zDu?}*u6ufSv=Iw*U)Q zQ<9HW{H~NKxT=18bM(ra)e5c1od^&7}~>V0r&T$>U4(PZY8~QP&V8{g&D)gtT?~7 z^9id*#b(loqbqnABL??S~K48J)?t8qp@U??8H3hQC_;x$=!y0;g+^2$4%Bfuu_K zmr4MhMWFI_9j#7j7n1^!C;*Oc669I^LJ|Uw2x-;t`+!V4`2B{5J4$|Ptyx*`%_VHx zI7+=ddxViw?L=>#wUdn)OZp|mP&1J`^}Z`zc=0UX3Xzn7lrtmrX7fu?of)AoNR8p*z0TCOP?;e~ccL>eB8P|)Cdp)9 z4fi}oMTv1Yp@H_kNPn$8L?e5DAz@ES1KCKbl>g0{+iR%yVOOj*l`-{uH>ux-UugZN zH5*zAwI5mvfL~}S(17#sO)z}TG!7{q=Ve;GtB|P6RD+PH(1J)B2~0ePu+ZEsG2#16 zokZ>wie~~qDh&X4ZM4$>pvLkXIuA628ydnTg+$1PL}25$=R-qySLfIQ;5VF3sUN3F z&t;i{R^@TG7|UPH5qxTn{?jI~9MSiF`H2Y~DVYzj>(Dj)q2&;rOBJ|lCT$Z^8bQwn z&}QJ=Lz=-HNiPwYI~ zvvP$_D_<8WJ?!+Xex&J`#bj8il1ubsIqmJCY;LAq_+Oh3M_@iA7*M-aFdxLfF(2%4 z@3z?EHh3~Zer#8mkW%7BTmK8XCo`Hzq>^9G5EIDZTnZeZ_*0=S0j&zHhC>B33`P#L!gA-Kyg%loPEB z%4LNw?mr-rEb6R}E}z+!2<&1{r`8bPGmx_}rtw0WkGx`e=i@ZR1kC=UP~*h3ex~mK z3rY+rVBy|Kl0{CW*`eS7P527mCRwD`&Sa6V{TFJ?#Hg_ns>V2s8q*Rr=3vyAn5waI zMvb|s8oO&FN=-6bsTXR@R)o}2h}6=H%+Vj2BNwTq8mXm+q?T_YwcLl)av@SnH44Z` z0i>2{q?VooaY@ELhvMnGwAkZ_(G5fU?7DKW;h#i0>1&T31!=%x)R>%6V_HUy33gIJ zm8qawE0mF8JNgq(VU#uNdSAZzD>6)?kXo#Gcu!i7{{6Q(CsjyJ$fawL>~4nT`dd-7 z;iX}k@bS<@v+|Z79wbcO+Vpz$h`5tpm4w`yitYXNHJ^0Jc#U4HY_x}=z( zV#A{vuXyx{y8tOBup#dY7$X{9>C)~B?I$`UlMmlse__bXtFGCOM%MA;t+ zEJk|S_TfYw4*sXcJT7TMpKD6uf{5{9UB%9^4b8O4egMMZ#pOa&oy(({AoV78sdzvaMsp+ph%k1{4#Hwdf zN|=>M9|_o(^sF?cGy^J*^y9yvs~e~cW7B*jl=P@I{GRaO<~oO~#S>m$!ipFJ=iWW- zs4hl9I?r@=rT$mws(sK^3z2=OP+&7DKp4pA zb}dhnEP8tx?e$HJS^sBZ%VOBs9S)1#?uq{xdD8!d%$gu7I01d*h#(@TU-l5womiY* zcUqjpnJ3~11mg`v8}*L9ZN?{j{N{2vN~oaHnXB)4^r07CIN^#n%_%p$+BEh3XBYnD z2iniiMITM7*j=-y?EY%wgL7xuI?qH}d&6Im!&KU#t8#bRH}tL)ZJm%~U`Wk5^V$reu^<4k*ny9aG-@P?*40npv6BFC!D-9PLDf ziUW}W8#`!*=y6o0oD|rxGEbQ-GUeCUP|>9%D=nu28!&b0gfS;$(Pl;;%aA z{rEf{-}fKf5AOTE25el{eLY{#*Yov!1>5f(7Uhj6x>jQXMUbHsL5`*fGKU~Y*IJ4r zV}KTg%Fik6JVan;GMVvOub2i%sah6YQcT&-Fr|}X%5oJ6ttQdXs)R*TlW1tw_e7}t z0zX*dy=A~iO7xu6dLwvDH1TE&U>LVPVZXpLnSsfX`m1HITu< zYt)Qu{NPl_NsTObdbjS(D!X;k&z@j)dO>34X6<@o{i4Y4BZh^nIjV~AuRV7OnJWpJ z{b2S&+7jJt9$$^p-B*#2S*~eKwfAk0K2$U`xz%L9Rhd_|cw?oZe5%wikt>Zn5z+p! zp?sRufY#@JCnADBHVB`Q8qj_?^h884PM(z-xLoPN6i(!;;e^m%MgW2Ec}nPiM(_hx z3&9T*9G3wQ@LykqXGN59Mib;0gpUQGKZHWaPbs1Q46vmT^eqT|-cN-8H&gx}&;!H4 ze`5QTPm#X>`JDp`<-Ukf0#} zIAbV+MAiqO6q5w=YaIog&r-lihcEq-mp3QV;mIyNEIk`MEq@xPG1`A`tIL`8m(%Vl zd4O|N*Ep3#XzO$yy~~o7WVUx2WcsR(+xxG8cyLLxL__5*X(F)qBZUF_+BxNzqK%`j zrzRUon(9OLAHybx2-@2$TCIiRO4}3Q$wOA@}>8=o0Yza`~zmQmY3` z!aWzeh6>@-6ogax2&ck;GbM<(_(*hlzDB(DI^r!k2F%9*4F<@`fU#Qe);f@MSQT2! z{WK$t1PO9qn49M@-M;68WhZmbq6pkg0whC5*fYKq(vxkNvQrT#(J4z(Nvlb+$X647 z^fVQM`~=rE$)hjcF!;71;FFxgQjaOVz3<2Ow$He|{$G;?e+s7#oDhQON`Gix^GoI= z>p`vROY^ppm2$pZU8ZhdeK1w|Cf&3d;p2Z1?c;KSY2uAmJ3i?PEJyZin*>YxW55II z3>n85ol=;-UjUMFxw*N)J_6KUvk4-KRr2P(A(p23Fyt0_lHH*bHE>+3c!}_JX$(=; z@1>h!MI!|nQwYe=QR*H~z1BQK48@Fr^kxjXi3cMHu6%kkfLyk}NG>lefca8}(~+%= z%s!e$0OewH#-Ao?Bzx#_3@D50 z-9DM%14x1q_9_Y?NDdsI3{i>LW!wCC(m~pac;ePj8B4_-wl^tMil+=^lZgfc6`xT> zh?XfrzGf6A#Znu_QrU-(v(wCFFpHA-lhWzW17~N-0&QOn+J0?xOlyv|`c9HOC;ART zxnIJ_*V*Qi4?LLh(Qh{_yL0&PcNO|J-M*xM zJbdcyyX4WgB!2rr>q|%OC;O}?l?5w1J95lJDj?<5y zYUz5Dm*ZDo#>5~~s2GF_KoWi?0+28&012c55I#NX=@B5bc91cZNS4YvjPH1_6yXegf|o&T|EkRtzb2`r(%Y_E^1)F;a!{7BstMRXf+XNVSp z#8>26g)?Gt>!iTS{6Q?Uv$%Cb7(F2*B~Ik*q=cS?Rgqzio$L-fQIeBx@yom%lkIu2 zN)}ZA`Nq03wc7q3l(-AzviO8{*WOd^rjH(zp7nSRo^o4`4l@{bNecYU9$Up6p9sX< z(jO=#LF1B>+&afTQK$A3jt?rYKUgm)swy%}DkDj)>xY#Ytu+)?;;oaM6*M7;vj#i? zzSLr3QtbzsdOL|^>EbE7ux}EnPD7@w#1sEpLVwD$H`{*O)Bg}0`KKXDV?BF;@*KZc zN+{2SI8dI$kZmWFC!U^7+Ra@yp+}st&zIJlsFbEtwD`2t@Gw_8=S0M!wdCJ#7|)ev z0XnWV2%nM~9^^`=0XpIY)94YdG!f7-h5~^hbY~w!clK2j2+W{BU=wAY4yl8@aTP5F z$UGoAxo#;)Fi0yXJ-lL;(x%yNS7R&zjb_HVIO98G>rHks5rm{M3Q|fpToa=p`<{qc zX4~@wP@?{TfTtP@*eJ&q_!73j&#?tg#}+8V78rvqP(?UNvPW*kfHyE;I|d|Sfc^jy zyV5et1jvbY6e2=4QIwUJZ<8au1hpsl!GQ!7B zL)Jkh9#-t@WDh@SKFAo)-i^GjM-$SUgohktz0qr4;VW0^35tAt{L>#jFzWuq`9EI7 z$B&0l>CXyTj8gx>sdFqSDn7I74aL5#BP8+DVzpWZ!7h>(fytziNC=HYuy+E7hSKTx z1f6~>D6o8id{$>)6yIESzVu}0v6&63a!$nErHO*3k##1swtZdtI9;xG)REWu`ZA$6 zs(iAm(Ua=1w8>Oe=LL!jn#!U5#bb&*dFwa?SX4Y!#8D4T;e>7RVb ziiu(%Q$s+eO5WHpoD(54(a6X60-gAAlx!^CN+&iWD!GiPG%}(xjuMrHjHpb#JW;7B zVz5!(J=Q30oLxbrABTg;YMM`f5s#(?`knYfEXfN}D+#e2z>`+h@4%A{_WO0aV=WIW zmxURogYx>j#*k`%R9DlR@0!Gu=C`=wSNYW&CyV{}20<3G`C>Yru%F^{b8RGejWK88WS2~goSx@;)miDHXJv8mD(`&lamV<)U*J^)0 z=$N`db~PjiErgD$y_<5)Y@s%eAF-h?(f*g}dsAlBgI{G3XsI)Oq*`o}hX>@UWno6159;aV@D+tk2m6~MOA*@A4 zIGSaI`<=Lndf9F}n{%Z4&c51XV-L8*4u7Qjr!5eOPz4B~LJ9M^Jhf>E`j}>I>eVSp zXU!r4`I|ord-lE?9^7^3Lag#Cgez)0l8FAkA9Tt$@KTtkoR=y8RozLVp> zl)l%LE530}BFNGf4Ih*L32wa%%iuw^4z>4-oe*5(2m(PByFS96i9a2**h%D$I z@^E$dw9(Q9^sm^-swcD6Hljc zQxaPpJILxF!4ZT?J-D)gKu|)t`*?XGm|v*zP0W5`d9Nz48&6QL_w3Qx(z|0(h+1>k zVDB3>H{JR1@X3Q8JoQyh_S^q+^e<1`-*CsoIUU31J@V+uaXILqa^SV8&t-cQcJZomxUu(76J#9M*BZ5CN*z-7QRBHHOWncHtY2POT(})?y z(8!r`_pHu>Jnllk-QRo>cb`RPdJyIA*OM77nnGB6Xz0oDX?mPVdHgRyxA*8l`o)%+ z?KBiE&T7(Ev>S4ZFw9n3Nc18ItLO=R-t;@kCYmyj`_+^x39k`<4gqlF$;`1)C*!7Qm2a;2n}FAGE{cxQGG z4^K4my>SwGy!I8$v)CPv(198Ge?2$&>0cuDJ_y9}jo`?FT|tE)J-6Rn(EQ3jPM0im z=0%ndJ$RCko&}`72ttsr+vXnMvUfrgNXiT<-@SY)d~NyWn6Q$t^y42j)%|Q3?w2ml zohNWRCw+U~(`3sN4|lHT^A%2yctM`MdPlkgjHRlo<37c*Sj+vsO*LNK`yt)x%lzqn z4`Vqbg%h@A5usP_p(uC*4Z@}n6s*`xgD|Q=ZXm>c!6N%Z!wNN>ONeAXbu*#jGfF52 zulbcC!wSSAL{LmJ-ch_mBw_>FhIrpb$@_`qu1iHVAldCSEiPkX{nRa#*KgeFIg}BS zz8{-@d>O~+i&9KYg)Dw&Gi$)p|X8j)+ZuN z+DfGo!iz$4e-2cU;OOzs#TY*tN{yzID369xFOo?lqLI83kvy#V=x{R~uKOiaFkK$6 z59>Pq(O$uMVePKH8Gl-D)XN8rH7AHg8c0#7FiJf9$eXJ0vp zuV5|QGD5d6(tfLM@4_?E)J0JHwBu_L3O3qfuYrvKHSrh~ae-Eo`qle_Y8F{tDh?r} z#9BD$%c(Z1ejT0sEX=BBDg+4t<_1AR8$Z0sH>!-TcGTuIosqXcZw^y2H z@%gzWg|gN6W6_oJ)U6;X2B7SH{JraIkohjR@k9jC-4lV7QG&7+f0V625MuSb0wy2j zDrT?~C~d)o*SQGTks)$N-imMfvGQb+W|9;VW9Z3@WDyaWv_yFv;){xW%43peuZ_52 z_+7}e+va4cWAD;G|KxkWe6gkZj`#j_-+|!CA2h$DIHmh@#Pr2CZ)y2%w!2fyA9ns2 zsmkoOX)KPFj+88t-(~{gC@+x-M@hEOb_Gp=Urk-iBQKD6?&H>Pxu||q0+cxf zDDxu5UI)k-z^#9}#C8Qyac_i~Z_jP}l*o!dA#&5|0=g5L8F8NlsuE;A>edj8plSo; zyq1#lLut5075R9aBGAH;L5!9~1Fdj+lPdC2#K}Psr`hR%6of0~tcm!Zt6J0MaG;1& zzksJ6MvFMB4jK)%$XYeYeDg%4h%@I(c#?6H|I0<3PVY-14my@(dJ~8gv?E0$a%wUbuK{8M;{vf{+*M5oIizs>l61ai2Ccs zj3H+qSl_x?G3MKw*H3#=2AUYoT7;jTXGnh(I*%Aaknlh>d8A02CJk3Mn5ia2A9g@35c9v%*iJd?(l;7@C|#L6(O6a*tx^nY z6D_uSJWti;G->>kbuuYc+Xsj6T}FsOu28!v3NW`&+8%YyosCFK5p|TNtzHm)y~!+; z7YzzUOiqd}drA17T4AaK`Lt)+VpIcybvje2qRB%FGyAJNuU&uKhm7C5Rgz5f#~H(* zy$IPeu38zDaQ6GZ({FZ>14w znSdxko|hU%aHS2P^O4$_E;R&mrB1|M9~y+uNe#nkE~pqM2)*v(O0faOzeu_L=@b!M z0alW2bUvV-mXL@-(dPs;0x1xlpQ1($MUCKSp%4MEK*?tgQHTg*z~Bo}Eqa-%HHDd~ zFwLl1kPjp2Avc@lb@yHEz1$+rVF2(uUpXXVQ zA6taEDaaT{(;K1@KyJP&@Vcb`4x+68MGZt*d_4kVUixV&h0=D+M*R>#|5Q{H?KAZj z>F8=ULdUQhi1IoY09FH+!buW04Kgw~nZf><#Y|r8LzVQFX5C06yWzNAN%B<{uaLPO zrKJIq@jb@jQ#@IJ59RPHz9dV68%skkVoP=sX;`?eqNUrFT%FIhAtIXPGa`vb|_7Cu*;k53{-xxx=B7s{M(zx~CGn+AcOHP-!kw!|R&M^($Np?d9#WD0P`V zjdGN(8}w>hM=)saD@j5Y5G4q5-+&gTieCsE%p6a5#Ns-#OZKhY6kehViKg)JsS6~& zgz8cy6k)PbHJ)BGY#-t5->UuSV8)X>jYe&FWQa}?6SOMgd#9uHp!0B9WbGDrm|Eh^ zCUrTalzBi!F{!YR_medxW@9$@>55k4ymRLRBAd^eP&-U z02zqECp6uYL|RPw+9>k1)+2VuuFg?hZ1P)DzrB#}zDw!VS7}AC_)+2RiPjNEpMG@j^t=nWGeig6`9hIW z>>RzhKJdQz3wRp6CamDGgaz`GHQx3piy&&Ta?Yd<2s`Fb0mo44^09%sbxftokT0k~ zNFSRJ?`Pyn0yPVf93qMl3H=@xGx%ObH6*G-grjs8!2zUwJ{Lcpl&ivegb3{e{J~o~ zp&Wq&DftbEu0n%7o-pV>P)zX;T1){sJ;~@p3_6V|Ly_yBhUyDsHb<)ku!RUp;lLHd z08x}~&s9uvT-*|#dH3u+*H0cnpn zO$wTE;?NCn0;;oz*d#VI7c|H{sw5I6^=grOh8`kh{2e|r{=IwpIxajn_^!e&@1U$I zqquKvQR}Z+TmOZ!x2F=ypClTPcMdfnWVb7bA4uxE8ILCHqnb&o8rJP@pmNEF)PmI< zHRQnQ&;*T96HSnq3WTDVT4;U>Ck7=ru#>?QN(K4&B_$uPpa5Yslcc1vLjaH{BU@yC zGDU{hryaJk+MA3fx^2oC@hGOmV}_pWjlt=!gLo`v#Nz;tAW^J3%@~Uvxy8&6{iCX3 z!#DyKHx8r}L@AowFo9Nbu2&O?IGHE_{_{wYtEc!T4ektd5MYhuD;aOnn%dI-z zch4+HJ{!*hE79%p=2;}2k>oQ6>9eD1Eoq`b`r47#uPwd;Q@?=FtA+g#<#o{EU0NFul$P%i9GOl9ikwV16trT*mQZh2NgsOu*m?1=DpH5$^VN$9JI$YEa zVX-2A&UC5(q0m)KU!!C4;(jL%qA{^M!%$m`04oaOsSMBWanr$PhuVL|0F?DmlI8ky z{H`q>&ll>E$#lg1+q{WHR28qWpeRu{d9fgHmxUzIdRBS&+SB#{V~l?dH4PJ))Sd;of#+eE4@2xOhGd;n74mD>O{Kz zoHyyKPbP`eoQAKqJ`O&KZ#ZUOQtPp{-A9Z-{+m{F(m*Byp&AdyNTMba)FU39;IYyv z0ZD6`>}v@v!^-DTs{zy*PKS&m@KQL9z)J|HaM`^%zvX3JwMy2OpFB}rHf_|fh4p(% zqxo)5qhsqq({DK|2UY1M)fr;@qFnp8HizA24)e4hxr(0_QkJ{3{!_Z~1)Yn7Fu}iiB)YK7yMX4vWB2-O(g$_+GM+>!e+bET!oX9WzDFX`G{mjN^-szCR9$Xg9}slXf_6<{;Nn3fyRHfu ze>&^yvGXj4%{%!8!qV-Eebrw@{^#gNA}!{n5y}zCNdQYZ1(t!7a(sf&CYC%xIoh8i zlq39+z)<30h~dcNfJYffS}bGIVk40jJIlAHVE^UOs+)nfMYcy4)2bVZw-5@+IiOrn zh(?lk#$1q!Az&R7z&d(~c^0X-nFZEyTS}w(LqqmPj&06~a{WW3ynmr$1pvy?udGGsKXI2l5oE-=kV??l?bBmtTV|d zoK#3DoOJKno8*I&=Kv?oRp%d3e4w?wOZn)F9Z6xI2kXTZl#h-I2Y5hs*NS3)V?_dY zSl3fllmPoSZO0{+UesQpr_hbqF(42B{aLcnd%agOp_@@S<5K1EL?VlqiBwekf!VpA zc*_bq^T#bs2wktuF&w7O38Jf8A;gTAhb=w6Y46F7pI5q9n{wWW_YNq!Zm23CqU*-Z z+Kvkn8M$F-e|IfKURlRb#Tw!@Hv?XCh`ky(PNrOE8(*yMdgknGx4XHuBK55m zM~}I(9B!*jJGXlP%VJVYLA+T-0c2qeNp3~82p3NYZaTio@MXgjW6{4k>Or6)P{K4y zZTTlh9RMl3F=qEReBt>>G*KjrMXEQ8v5#aBmmFfgh&ACWzU+M*`r@8HC8VDoNU4<2J6nk` z-oFQR_V)t0ZPch%cS+*jId_?f1mwhvyWo5L_$L$Izhl=X;4rU0(pb5^#gc;_*_D$ZI{cN2n`6dl9Q#@ z$GG*NCqdP^)^UvBFD0n=?(4Nk+`MCG@_P@G-&dAU%4+znAv?8KWbG+a2`jl(B(8#o z4pbk>l#@>wIIdFBxQtJ3&X=4v2tP^Jn~hFG$ElPP@4!y0v*BnwUp1`Vb?}tMb?trvd4;93{(OVM-ye11UJUngRq?-jcm4n!ggW z{FRdCuPVc6{;HkkuV6k$Q#@d?iFi1SiHG6j4HpgN8L9?JXKE0T_E3Z9nHt2z)F68D zqVDXMd8_GmX;1eoC zE;KXqxjJ@hC%Z*o%rqdE8qi%qa!jJ5e#n#Bfb^7O4!`Z`C-b&H)`nW)!g1xx<5x{T zO^vyKte&+PzVS7;#cc?ac%nEd$+3TKHEZ|oOh2oLD-_%a-#LX;Ln`*-_iXjS%GKKq z|0SQffbz`+W^-U09sq*gW#?&9ZR8`DY1DCD_8CwngPCQgp z>@Y$nh!{(U7)$ZHW2`ND$<}UI3MtBCIzKr4$YBVP(KmTsjfhx1@@E$>m)qd`^+R}qo;R0DmLc&?m z604{Cx!RAKG%*WwX4UZrbs;XV-K>uRp!B)RMfYbJNam^xT4_K1UZ?#AQjPP6YB&2^ z%-NX5+~wpT*=4kNbJ8Dg4r6A`VXA3CrxG{T_S2L3G(by<9225 zIntm*k{x!wzwr3l1t3&-OavgN(Z3dj{dwO}MXSbf^6_GoK0Y8naC!{Kt}hDZAp@Mw z+(4#N%?DL`z@nS9gZT~q9rXp5aRV7bL?b5hzOmh)j&mS85RuAC^dFCs)-wa?KbS>G zJ-Q{;?$LW!(9%2N#SYbHD9hv##c6FF6_y z5eL=+JTZtQis(PE7RWWM1@wj)Pusx|Kf>SN8-_zF)V#!HuD=W`llHv?yDj`jHGiC z@wY#U0oySk2?KPx>CIR21M$l$&I9dU(qsKW0B4)=8)CohE6MC(@7W*YWGXCVFyT+8?9l11izq@hwMK&PMIEQro^kwV=+uVpJuevXhu7pWwiU9_zKWuaIN=%j3(9wS0n8UtqC9_)gU8fgw+Qz z<$b**y#ppH@|JPnuzCzZHp2EV9-P?@8mH83Mp})kwB53B8(QG=~w}p zYzUZbQ7sCA_;f`Qjd9!y$ZVi5|EWQ-zEs2cQF}1d)30qt!UWYGV#d* z0z2al*NUAbcJ!zCNk7uuKWDC?)SC?&5n}>=SP&6 z2d_HWsW;Uea0Z%*!5j>{g)s2m2?KBQT#u_8K8s>B!AP=m;?*Pjxh&FvirN+@w=8V@ zvi+L8XWb(#?zLRh)nM7gv)+6CIQze74#Rwo)>e{KkdOMj#CPs* zJ=%{8`eWkB?F-bCq_6#L0MIGB>CgX4dG*G7NKEwR?b99Wo9}w#_BBnj_Gb)^j3`<% zvpB=p782UzMl+aG0{a4yqE=K{P3qk|-T?H0=@o+b{6A1}3_pZRED&H2q8hD6W0)It z>U2vGGeNkh@1O$uT|`;D<*L2<1#&<^V;?gRR{9P;71#Nckep6cAbogB2t{#IMQ<{@ zVp_n42Pbg~q5TJQr_1(zu5gO@(VWomg0PsWoQAl3Xecd~z4g<=HS+vtILF-X+EWhC z)}U7RE^mR?<35pA=5t%r?eU51sdA8ZNFtU8=^b+w`TiYmOcMOj&6D`kN)rhHzFKD( zGgKfD7VDV`B$cT^N~n^fo~b}8u2BV|96(rXV}LRX-3BAkZE!BS4OZs6BS%0dLX6em zvjAD`MJK|hAs_V+m>2V#>*ZyvO-wH+y+Aa{P*2p$b;gkyihw=j<-iAS90OhaDQ<-f z73{0F>&Wz6HT^5v>TP7z*5)YB;z3(BaieV2$=-;cj9W`qZjbd;7ALgIx8$03=a>q% z1%z?Rv%ky_92Up_Sv|zBB;>SV1$xGwx8Uw0Vg*Fi#k_dZIW`0Xm7B>x{ZC||{B%f@ z&2s*?6@zTz1)&(CSCg08#D!#hzmw=qc$wEbHl;8DD`6SOh-i~gmXO^;DVmJ}Hh6*% z_8y!)%8vB7g=#g(OUI{(mxUOn*&odQ`<3i*^!t*7O3*|;byM}?*4^$n^wNwgm#xM! zz_pBSw2S8jf}{^@w~EP0aTq;uyiHH!>|_zUvxRiGN0eB*f(WS4g&saSaS=1ic=@qT zyE{9jGCsOW(e-TY^h9leVX@egY56U%UYA_FIwIZW9GhrPl!px0%=A>FOjp9QHTUNj zdc3>s|pW)+KJ0iuVp*ct!ZPkO??D+7<8a>l>2(VVquo2~k%O)4|Q z$YMxAaG}lE#;#5z8j#Cu?3WQ9GYv>@O;NB<1Cm*K*c11ees=s}K{`ru{*z^B|1ar4 zRM(>eA&{~h4#w^g+;%vMA*p+f{RS22H^^iC2CuWjMZE)s>;znHr3f;NA;<;>E-TqB z>T&DJ{)i{FI-k#02I>=rjT=wx<>Fvb-EF)GPnv^gKe)8a>(kGQZzndq_b2x@*XzT@ zg%ka(4?1ZMBBxn}ygyRByMo`jV0JuCl6?8Zx-SV&vYv{1Dgx;zJ$|}hpUh`k3-6t9 zGD>rQ;z7bF?cMy#U2)5%KXzO^Oh+_IBR8~CCVt7Ur&rnClYaI*YRRr(O#C(YA)sng zJx-ib%G1A_yOi`;>oP-KTbgUW_NEJ=lgkR zwg0SV;G?lxKlsmAkiEviTejBxFr6^4m2Rl!rAw@ z3&An_28JNMD^^ml(LY6WfruaVo-bHW-Pt^>{*|}`vxyz|!%JgZ+@f=C8WDNXA~U@R zrk(2QF5`FZd4jg|EyMcj#@x4Z+t;?Z5<=^4j+$(^ICEh`@8g-x+(x3u1 zNe1-l{GEm%ZC~ZLtdGxD%96{LM;1((Hma*F&ZcgybRMlbUtDDTdELr&C-wekqa;D` zqu^s-;c|I2&hhw@cGG1*eeB~AdESI>Hmt*1cn6Gwl3T}-Wng?8A@?GDEyY(h+6E29 z10x-d7>%!7v5dLTVkl%(eUG;bE6MF63&{s>4>6#xe3Oao>zOc$_28`UWGX4zgENB) zqZSu4vAwT+vjRc+WsL33%yrQg-)T+%?U1AD-^6y&l>R6+$)P`&i3t123+t)1y%so% zi!>HjMW_bilJjqfKR$=}1NF?sl0U19qJLrr+~jH4Px}sEkTzdzPOF27I7zXn=c!7z z^xit*9%HW`Jf#ap{Qbjki6}m1==nW&Ok6%RxaRG4CW}8gZrAj`JTm^@t3I@L7;bs% zh0Vm+i~q_Q(aXb2D048iZ2dZPt+Z(_1b^HV9xyCG?>$YwKubl7&g`sqndWa z$YdQc>Q~S_wu2_Wnachey2Max5W%0sN&&xcQ&XoI_)R~V#otUhQw zx@qNx$mFI^@sMlrTVhb-Fh)|;bpkny;6&@3G$ke^N zuQQ_0dG3b&BV2DZqa4#$wc-Ecf+z0%pXH%PZ;D*GS@=luZI9+`e(9xq9z5BSd&^tX zH*YyymMs3F^6}3{wOTc6EhmNDi?SY;ZlUos!TnK!C~A?Zp;C|`G?J$I81%kiA`s+{ z+NcP`OPjuUX~#h??W^e}_Hj`t(Y$;Q!cJCO(7)fPlSP$Et-HuHN!gGASGk}%D5hWu zLW>ysx`3py6O9}d4SQ6QULlkOg=-_Z^|^f$R#iywA$tY(7wwXu0MR`}h=waVEb?;l z4fE}P^4#K8{I7I|8Qj|$=C7%o?#Ei42QwZ(J+sWbRHw>te-CH-cAH1qIOk`e zX07U6@m}X|Z`K}%rSk}L)1I-l?Opmhd5Blkekio#d6XOO8;R`v>hOLpd~+D494QVUcYhT*Cg7k&qwSUt{^pn&b`SQKhE>w7C5N4lf zK>mAXAcE|$y?EO`FAyX10!d|FAQjXLBx5|)fcShPtWZ}&EFwY)9`W{OCLpNJLjj-_ z*3IPB9CB+{G3wo519GY39Dl&zi0<-4L_dHBNH6UC=z)jppFMbq9XCYrDg3gg`G{yYb zMW{?G^!ayRUQ?XKB=&Nunr~->eKjTQD}01KYb|I-$_I<8M_^3LHeGO8JmBCkBal>T zdM{!=_eN@Z-|vJeiur_*=&LC9!1LY>9O;DTy$zoC?QoTARH64E@x1rK8^;6Bd-rw> zfakppp7#@}Subf_8rvZX`#$TAC_QxXz98s0`KH+Scb>Xg{+E+3kNx!Z7=7M?ey?wL7 zFe3ix6mI9QvHVpB0zV3$XPqDkN|4&knzm0PjrGn*V(p6d%aDHPsZNv0K(s^#Vlq>4 zrGt2Pxg0(}tx)t4gtGW~sr72z*5IcF(~P;$OYAFyw{K7DO=5yFRdl0I{~_DQZ#I`D z5(g045{5Lv0JfiN{V zug!7N^iw_dOEYtp`|VWc>DpnIcg-e?SDl<~J_12he+T5gx=J1(7f74npdAeZ|Yysym}j&S0`Y=J`5-#1JJzMww`$D zwKXvjC{u~T_yESu3^i}Ka8k~T9VWWnuf&)s8NU}Y@Cxb#vLT6K$K$kKlL5(U3M6;1 zmM~qcB}_bR33I$(OPGG{-MzNGCiH;mMCF>C=s#F5>*K|~4%jgMV6CvnRilq9`LbeY zODFso%Ahy?z3Pu%`;T7rN3lv~Fqt%MJ4ja)!!6?f(|`P*{-dWk%*EOdBKx>RY}{bF z7>}O!npg08>ew$zuRk|f5WJQH_m9M~UNY&2R~8(edyCIt;X>=dHx%)%cS@a;s-o(Q z@W{O}p|+sI*9(Rav#sO)%SC8fT7;&yG5yE0R3p5ZXoO+5jIvA_?G+e9HNw-VMi_01 zQN>wI^&iu&P5%*cUHT6+ZTLg_k1{ydGNmxt9RCIfvRa?}Flw{<*row2S(P6Ww-l?A zIvQjod_xF$MHnTdc!5;pA@gxn*N76i2|hN90!V$>A+;czzh7f(b=Ga#E1+GPGai5~ zua=Z#=~zjYtGTtBmSpLov%Rof94|)Tkl1lQqzy>o$dMeOT%bvV?2BF+9R({y* z`4>E8`?q9&8qI~*-W#Ci7-t)zlKOI;&mx1F-8yX1zbasMY}+$N9FsQH<=`Ik#JB!> zu5tvEUe!T@0hBPYCHby>kLCE`&XH~zJkf?HOzy%M~~F&Z+vD+(Up_t6dNgkJDT3u6F_p=Ll4nxG;R$Js@laL5}{ovB+P)H`jiHe%HlCYdj@sKPvQ>3BF5agydQ|7Pg@vPx0XyPt`Eph;e?5Y!L8VnEr{YZJt`9iTYi4q9kJ7N+PJ5P ze^jK32oSt&v&Kx+uiYM5yZ>iZT~(RaQ8mZhLNner%Y_ZYrzZ|+ohPqA*K|Q0q8}Tj#h(`heFHajH+}}sxnCe-#M42evoWWj)}DyJkH2TCnYD75-2&@c3E;#8%Hr^ z|2Bip63WBrX&dKa*2bAQfkZDcW`^A#v3RaJJD;G}esx;CCkbfF?#LYf{g0N+@$bVI zaG@lc^e;$-wA1&^W^&^BkRvxvK4C(8c2zNqWxe{;O*Y>YO_JV21R(wacX%GGx#^BP z2tWqgB7Y1`AAa}CAFbZKAP41cZ@fU8Y~&Zd`nT@C4r$u|yz$d?o#W^I=VQ0*I~o^~ zP;WWeotPD7)L&6-43$u?@?-O;Rg_W`v)#!*MZVQfE<8Kco)^wk0^ zSOSS|@_t(lXF2foweVFV4Ph3;%X?`ExrP`EYGcG$y-oL$(7+ler1=H3xTsYlCspj^ zEIol`aZR2&vKv1J`^m6EA+hk*oNM>O!aGV)5yYLiuWX}pQ)#s~J*d&K@u1N;Xg=qt z+XWAAE8OLb)nR2ZAB#T_^Vz&~T7jdfJ|i!* zS)9a**vYJjLuk3$KpbQ?@u%~UHiN{-Ut>n5&I`402yq@J9w4aScD)Mg0@QF@W0BJ= zgPd4G28>m^ABG6z2OoI6#Jq9aYB6!JXTzj1^#6EAiY}IoiYKQwFzJ9eiEO!KzIfOyxkkKS=o0DN~6)%XX zE&f&GKVGNG|K?6ry2mF1sfJ%k8gVXp0&LvgIhPoM?9*C?EqXP*kmPqYO{A86l+Q$g zS{nD7evmSvUR5XUxTJ?wObFG@nGRn&xNJ5Wpm{Rp{xq-rMixGBdR=?(FHE z_3>~|=^gN$dxIFtCjOSY@a>KJC$9C&?AyrT)2|0}{d?<)oTGo8WqBNp4BW=iJXJ9K zWEH9<%|6Hf3o2u%DQVHS0e!o#)K-m`qf)EO2&i1WnJ{;*7bu*hiBKjiE}*q%_fYS+ z8Pq$jPf42pg)FI^_QY_pA+%uzvzHSqiM?ESfm!+tr!mfdZ&$b3WGYe}SL6q;B<8H) z8*S=6qy>fsO?p*!Y@b&t@+Ri2EueQdpeknr>by5J;0vH~5_(sg8h_@NkgA;e=%PMm z_Qc?J2t^*n=qR@HJdqTm`6ek^r=ao_1CW=TcoI?i-%`_A9Zxh28^$tf@(86Sx3Uwe zD4rBcTRPNFpx07qe?b#NlapepD%iuS(qup!=pJbF6|5a5KdD=1%8o{VLCsX+g>h6< zdd1da6I3MMPCTqj91Zwt!WZnCtyA!xL+~M}mPpq||5O>c`${HWJ(L9K8o!^F>ju=D>z0NcAPqBeLgQT74Nwk0a@EEIkfE_M00_ED$o8 z1pUDQ-ywmFhU?L)h43rSZnlUS$lv= zR}in1B)_j90y#w;5ZJ_t@O(kcKv>*0maYYek>L?Sh4sla90Q<)%S17avL5yIggLg$ zo|!62eX{k3Q?AE%8rAYWk&;peC-QE=J2tm`qRe04erHG*KgjFqJZ5fUi7a0M=S31@ zp+60{6#42yc}a^%Z*~$ip}QdITAhqW?m8@p>dj#4V-S9QiSTPKnED1n<)c(B867ip zXx3T10|SyXhz3OGYuPa{XHOc&;m$=ZVVKl@f|i*p(guSQw6qE{YbteGl+zA`ZL`R~ zGv2)7H&F2no=jqgc!86DGqXAnHJM~@2T4!9>5TtPh0zG0paJRUJJ%yn`ooRr5mx`1f$R@ zBIFCI2Eiidhi^umZcV| zKI~Zu=!xV(&)MNr5F&Y~zcY?w5bch{icPLky6MTznnAKw2hfhSym&gD5XO1b{-dIi zYzL%~d#_N4#8;U42gBLKfq^%%|474zQGTk9*?%-p&k#Ayf?37%2RWxYZtj(VkkZXZ zTYoy08L?9fe~Wa_+tySU@y9W%np`4YhiJfwnoFoJog2lG&bP2!rEhbv1!dWtg7gOKm<%MC(a*2NWft(M4v*J>qyTir#wCneSb@2Z&6>&-n>-ygqkI zd)o_BUGB;wUDBe0)lZc4yz3#PA4r-gScV$C`{RME--YZbu8@%R%n5!14V!*{?{>5i z!qigIR_~Fo%4)_{izKR}@8+iGk5-QwcDC4WzQE%?t~#%5G8@JY9}9u~akodj1dTSU z)5!`jjVF#lThaV*FA`h|X*k&Be$Ncu?(mL@WCfty;#wQHGmp8|Yy~_|R=@!EA2ofQ zLA-I5EdddWvrA};LETtdlbN-Rq_i^Rtj{_V7010y5?qBz%({CPvtFbv2J6?+7y0}a zom3v;P*Mkx>~`wj$S2M?Jhe*&P4QKQ_GT(6))VU9vyEePqu$x60tYb#90bhe>chZ6 zKvK-*LjvLy94d<@WFfSe2%s|9th+pR^sPAK?(?JtiNi!1 zDBhRG{3GR;P(qj7R7ai8-D%Eihvt0G+An2%Ve zM`dR!9v;upCzDb>%lk-NX!j41?aeXevl7iMr1BED6P1?7seDft=2l5!*;vG}RYY^!QzfX^+=F^eDe5)H zp_m}frhZ5esy5$g@KtS|u|;I&n>ngu;WI|qeADGZk7S*d}`l?I-Oh{wrP>HOs!^(m$tz6?~%B8X`IYUXkPUt)DW zlZ4Eql8|fdC3y5R;*jN&3Tv1paVqV?+rNt-)XCRw9yb!!qpCmBMKG;TLM!QF8lRYg zFa_J$k zB%Rprog}Az2~qFp!JUAnSxcfi_*t7&?D=_Yx^&J|lw<}xbmxnA9{%ys;Zt9}duoPi zE$^wjbV~wsn#P+a?)qkZ&B{_dMlG+rGf%eMwdSvHPv3S(EAfg$dD>aZ;alXQ^_DZ8 z?Ms7%t@iiyd49zaO4MKAh{zj9)Mem^8VwxLLKx|BMBz9hBF7Om8aUGN*>pUT=eSag z=sbo~r;LrLGww9)|2R2WGCa5Q+u$SKbhmXu?Z_>rjiqzF8P!T_(iXm?C@*5W(>-Sk zzwTJjywvmWaUG+}bO+6mD)T_??m=1VccojRMIrnef6Hjm`>A^LuQ?H+3sqYnw8vA` z*KTu43Mb?vgB@PRSVcVaR6_qv&3=IhMj^PiUm4&ZB@m(GEUi`XD=zQ)8I(#)obxwu z3P`gr0oxLwDScK(vKb_)4w{VSL{NmPohAA?3bz1KCS2Wj- zBJYP0IS>byZ(kHQ%tXr2^;=EpG7T8rpC$0ULoC|qAP2>Ja=tbaxHUX#Xa z5B&BkYRLbwIMM*PHElSvkh8@p?sLDy2N&gZqTF`RJ zPkllD;0^RIr8jaVk{6{(GodmFMa;hzqJrlkF2JuzJ;W{HLUd3F@j;*4Mczs3v~2t$ z2jL5}^_{~}tKaHp=b>`{GInqFC|<6~c}(pLF4u*_ZB(BoHHpE<+Qj%xU*b1uA!{J& z1$ag&LBcs_8q3?~6d5YbowgQXbDl}rAdc#&-DNG=V|@$`UgVf-obPmd&p3|O4+$2o z3Dq@sXMZ8j4+s-BPbd~HH#s*cc{3HwIa;B|q+*ZyW6w)D#5V7L?ixIC<+k)Of1SPl zZ?lUNt3v*AYSY2D-hQs8;4e05&8oDZG16D2ZEBi3d=$Urr7^R=(n!2T)&KrM6!t{x ziS5q$wWp13Zi{9|xUl(_7{%Va^oaPg`GNJ)gawxN2EHm#yixH>exqh=(`Ii`!V6?@5NICPl8S!6YgD;Dk=l)SjPX}7~NA_gC4 zctn&w*_92#*|iQV-eS*Wuy_#?QqffimyAJv^&vz?ZiGulO^!8-kbaIJLi&l6T?i^l zOsw{;l1i2B)9BV^@;K$w-g!PjK$=ei;0*v!&rV~D!BkIcJ2{e zn2QT5$OW*tbB{Z86GAHzw8O{*hq{8!d6b5wGNCkPJ5mXSH1mK3AZ+e1Vo_aXqW8V+ zCgSaU(7_V?Ht+EY-tL%=`L4nIT7RZRN*}O^`r_!o%*w9X&T6b8TS;o1zM)zcMvWyQW?+Hyz8W2@5(+E*sRE7obfmgJWH7T9cXl|C+#hhR%$$RYQ#s zpcS)QdU|V{211gVan9xRmIv>ywRQ*p40%->9zo>R9(L<{cB`G;qOa2UbywdIEZh~4 zENBfXF^(2zM|CU<)wR|}#%Xf9UA`&qZ~j|HOZAV(b8U~CTpjUm7lr8RzH#Dgi`uIw za0JpsNYC<0eCW;vcg``ta8u9nI{M<<-+ubzJAcCZ3Y^w)z!dcYXR~y2_}t;IWXElK z^Sf7MSYPq4y*2f1slfGww>UJnG>RX+sH3Jzbp$K8W=@plR)2+at<`XgpRP3z%dTmC z@ApC_-|oI(>30il4T*FK8hjvKg5wZ+e1aYW=y5bXirQ-69LT3#A@$TnP*1x;lEvX) z2p<<5kw3}HCA6_rj^#F0YM7qFNkDg7bbUngJ{dM2EIhLLAZ7MXk$J;f(UQzUA)c)% z&5-%vaSJy=@}M2?#BN5Ma1D=J-z?WTsf9rpWhZawJ@z|-mbbE)tQCjl(iI>m(sr}3N_h-rEFOA#rN`lvIoB#5s zVZmXo_9UwzV)iJ0!?u$(K8qpVgK7tQ1gKA}PPK@>pM#QI$RXxpBjQCP|q*4KSFc3aGHaRBqN20m*M>NFPgWcLo)Sa zqdM*f*vKo3@Bkz>Pnb!kuxoFpr6#FRxEzm8`$m%?M;l?e72v>xn<=6#Ez9hq5{IcmK;W@_P^*&f|~zUln3qrug)i``b0s>*uR+9RSAbtg=4*={*B~RB}n-tZ73Z)8wu(g>N($O(aXu$2HL#{n=@5M24P(T?rvG#1lY8#b{n>z=Gn-DC&TW3^Rvs%-z` zQ|2A3lfE_!k=Ba5XG8Zrvi*gJARR5&Zz@=|O1sZ_4|h~p%L4wg(dy1WIbS~W@`B&q z9LvSxTDN4T(ql3o{MXW=9o*rea?3-8PLtc+xqXLUPb5Ni4D1sdIBN6>-jWmwTxS1( zM~>_15vfpoUrdiV^!O1y=F#J)^tgf^0k<%64Luf-qwrZ0+qj;l5e^OA*6+Y4zl>~> z=@Fi{FoS{JEVYrGus1>oz{5s5Or7uz#mE45xrURT%=Yu$x;l~V#5v8em1Q$alGUd> ze>EMf)<-xTHV{8a%LX0Hrs z8C{qJB^ZF|haB}Z@EvRWhH39#ZGw&^pV9_BW(M-1n1qPd9Heyyovat#Dx08c>5d{5IwqT9cq$RX>T1JrA4cPY7$MGS_mYN}0uq~My2MvOTAis(!`#n8b z%}!W67s%qdk7;NY$Kts<8bzhjc&@V=%L3t=98DXDjUElx#GAKoRzI0?)Ij@>X8 z>$8ANPdvfme!=wo8q;$&)+a)@gMhIc#sU@=ELEnrt*wwH;ja?E5{w^qJe2-q9u3{P zo+qK?ju`rPh!5cp5P2WtmWVOiul36c99s_@I|(?}1+m+vKel?+kG980&s6DxK8a4`+M!7S^ok^j3FKp+^Jg#krB_`LZqe0b^qMS~N#P(yLWen_% zcEwuYk)y8(N5`9fY=i4w{;p}lvstY|v~G3+**&1P0ORH2JIJuHgkylhAkuyU@DGz3 ziCwsPDo3dWDEvRB1T!)~poJ|oFFH2t+{f1K>$`J0@vk(%$`KqD`rpD4sGhR91s_Ge>0jlBG5 zXS2M7Jts}9VSFW3VGZ~Qg$3uE+n5;+A$ORH_K?sxf zu5oM9%#^v;9&_3L*J3Vno+%Zj5*oyaJfPfe5DQ6*umUl6Hy{Q(2;QM&B>07P$lxmR z=1lQ?zuJJ%64N56@$*cT=xizgP*{SXxx76K{osKi*exZ!^`zN*;&eAbN@!mMe%VODy1v45un&!}SI>Hsq$t~&q>kJ*3; z;jkOFUDmUW)qC;-4L(!BV|68WlZ|T)+qh;vNjI*R1vgs83-?s5KQKLFPJZ)BLG*#l zPqOdUw48tQd5Lne?ETkx*`8PL$ebnr`hJ5wQT$lUu=!To>C&iL2jL>wY5Ta=cdGaNkFJ8L;B-;8Cy)FEgBn(oqg4S^?-nT3pB#*F+&{{X~_@H}oV!;QQ9B;@%!1vUQovGMsIN4tA z%+5BS6xr+@=3|fPCh?TfGxJ0F$?dLv7FlfKKJdHF^qHPHiRt$?e6GzkdR=B)aW{vT zAJ)9uewXqea&&>|n-ZzQrZ|%NNS5(++wyHi<-Bn6xWt@H1wX67bFvG2eitTg7bbES&g;Qd6=C8| zDg$fKzK#f?i>he!kgB4QmmXLpO3-8jN{NZHHPIkKOmA6+kf_SOj@)-WOM@`v^I|v> zs*>hYK_Ts7Z3(2|*VAOkda=BNptgMh$%|bF5oYy#zo*albr-%@G;XVMTBn7nb6Lps z|8e*3aZ#7)`}p=@U26R#nd^sbMW!-iTMH_;06ENdFe_WxYFlcBp)zAPOu$)WU{0AD znhK?vnlQ7w<+82Glr90n%y>X2Pcv%=3Pp`?{~|zV4|in{Fu}SH2~`Sev1IGp^Fz8ye;R=y*bX``5=VoYz*NO?M`| zSw=|_AS_78J*K87ndN zU9>hy@>Zqf>&gJQ5ShVo39T$M)|*{#GQgGTo(I~%ejkws_Uqa9F1AHV8fTK&HiT`F z6~q~22(d-B5L;vpu|*aUTVxcmEgb~D80@;!4cv<_;Q$g>p1r-fZR5h~+E{A9LqJSm zub&?w&y}(7M$~p!@uphy%3bD!7)Qs3{d~)`=D2vxO_{pmDr3H^6fms>9y zW@#T=q%(4rBs|C7X}oF$tM2`i~F3q^bnqN(10(TNaLd2l#^z4JE0FX7G3- zu66d>-z4Jf`Uz>`$CNx3hs5A|BOhpA`W7Z9T8wv zR)35e7UG64^!XL>TWZz!6D5YHlaT~Kbci7E?>)u<7X=l;3v&PFD+sY60*4@9w%dQudlV{sEpv30eGv! zKN{HDbN@qI4;}r@YXP*C$f2$6xBf<|xdLtZeg?GV>#5!sq5?_*Vzw{IPpnGPIG5Ck zm$)p8>gPx4suqX=wuF}0c^ZEbD|ybJ=ih;n=k~9^YV9?tV901NU#7tCmrM1Ve3x{c zbk-BE8^#e@2)F9zX ztpEqK8>FrknSmWd>Q;bj-OWhdB~=wu8L5i|?O-;G#l1*{fpVZk8%^!4HlVq&(+g>C zEglsfew!b^%~vUut{4-^P#AqtWEvt-J2J%}o3IMBlo7E3@myNQb0KUXo(o|EE>YM( zJQurEnap^u4#c}eW)Y!+nF$LQ@my9$W+C3CONe*r5;BZ*iG3=G_qFqX7$>}Ub!@ew zgDuFC_^1!N_otzr^q5UHWugNpbz}%R9$P zaqa3ADQq%uiizt2v$_{~0D!H%%c?|e*GGz~&i3ysY+*9Ql3O7e> z&Eu#oBS&p99A@G!$(k9p1%XE>#wC^l;;*ni;YY|%aF;l0tDL)(%UxohO5*)Iy9+UZ zXzyxZdm4NF2L$x{4@w3OM0Jfkr^#Sbm)atEg0iXR9cJ@s^F`4GM|*R2gug)g^4ghh zt=w`(o42&&lY~B7*LkJi+x+wxrj=TCAA4z0jX`4u3HU4%Lyfb6|997BiV{HffdJY zqzQV;Ff~IB)8J&~MLis(LLv%aYF0jjS#a4Pf~ye`5a1XFE^4rl4n(P{fstC_jMSRJ z;MY0^zZkUz9T#rovm2R-??Q&B0liHF^!t( z{S|){l4v1dI0i+`nWUqDSQ=uD&m)s@CvjX0DPMRIr=$IbAj36G8lJ%|Megg;>z3NC z{peZClg*%y|5Q8U!GDy@`0d;sUqVW_QT_M7uRXsu&fE9PjHzu+yUcqAY3(?MD-Jkg z(RZXSM5`ub(q)X&0{M#lpx%(tTO6udGJvYIaeRi6Y0Qq-GkR+><6iUYa+XRg3pG;2 ztdjaEQMy?3c~M_?pI%ia@r$F|8apl7WxnSu`KvnqwH>M~zjJqHzm5Jd)RxY5UGlyf z+cGmeSZtsGUW?EnQsn_~q5Y!{ODCp?k#z!xp}}Ob0PtFvNQu{iQ~9RtfvP`Vtw<=)3Gp;tX_?}JAhFsZRvB*xz+&{)AQ>WyUh#tm z=@YLuhIPu3PnF{rc{72yG7=C)Tqj#QY8+ePAD`6Z+|y0s0ypMf8=?p`R9b*lZXm9| z$VJh+OrW@sC{!Fd-`kb;hC}<=<#=oTL?(LLxAV>;I};5{`FlcyTMw;$`tG2%U8O||Je4sZ>(Cs9-=4Brkis6y7!8N&w4A9-VG&e0#t48?i9(y5`VYI zcBacvv#Khk*jC>o>dRYdsTzP=DgGTomc(j3VDh_b=MU;eIUKviYXwR%Lqil$&Q1cz zLTJZTXhmW4ULvC%c(h+Mg^+ykZ-}xZOvv#^6+;pN(1pbltd^L8uJwpd)k4N?5o)A~ zGn-=Cb;LbGJnIOx=qU1LI1JntWST5xr7`u=+}Mj83sBT-#%hsUe5v+x#%eJ=VG6Cx zjya6gLc#_&*8KksZjIi|%U}lFdg=cKxCQzMfkOap5%}(hTOgB2KU0{z6f2a27OqQl z8CqJ#y!@_1(zEz^6f#Fi;*hCdPThUV?k5Bp@pn4JDosIFmqh{o9wNc5ThIOysZ}V zWHvN~q{JE-@L#DZR3S>E-EMlNw#F8!_@65$ek-=fBKL#e zqGkbx){)gP-!s1@k6B^e-Dq;OPNtP)ibNE>zZbF$B;v7@U6M5Xn`a=UF(kwF%jfS_ z>~XBR<8<1-+PK$KKQcXe0Sj3E(}4x-#Bs!h-e-UN@5f&pLSAR_%R;0_}799s5 z7eLxo5M1fJjs&P+0k>+9mbCz4Dc#7i0fX(pP~LGGFC2G37|;MQc4am|uxUmZP*wxz zSMV}!8HchM!Br+Ely!;RkSb+BXJOp}s=|aZl))sjl2OnU4)Q_?XbR~I16jbJ6}Qj9 zEVl2@891+6YHaHD{A;_t)qYkBP2toGQ%Ohn8EaFSDc&cO{-W*6P7ANpvumF1hOO_% zZnF3_-TA=|q?Z?r!dp>AM&;IWa_ zgaMw*=^x+Pu;~aAU`#Ez%$oL%+dPf~Ryk!yq;lxCf|^2G3CIS@;C9JkShR2-hn?EL zU?3|E@(Pe%2yT&PHH>3m%mVEevZTT%IsEkzhrgItPJ@x-4GyGiW|1xzk6S;lPuTF_5&d{>R3Bs{ST610{*m79>#Bf%veU4?Dje=X`lZH!R+ zUx>QW#Vv&<2xX+8gZ1P28$=+l=mBn|4?DbuDe}KW}hGX$fliNo_)vE|3n|7|4ocAPc-VYP=vl zhSKl}hRLX3S80kf3G29ZH`5F3X47PKg_TX6ZZ2n~;VwZKiy71dGByu0=!wY?4wC#e z9jd%MhhHIFX@HEpBBD5tf zA);Q=5(=2iP{Un9JpwMBuyBGwaLH5AuN|Me8t_z6@98=$y? z2aMth9x#fFI~axH>UAFdX=abyuRkQWo{wCRf3dI2^WRQ!RnZ#4NMt=FFb1l(`U|@B zO1-~7p)n-l8e1J#%*;V`TuoHRbzQt3nL8w6dpApRqZK7ftpv27e9CE|R0Ot2MPQ3m z1hz;;V7nIcy2o1%poNc3hIt8m_8%yA2pMkModRVaM1|I5Bt)sO!2N-+v;?|E&LHn* zq*X_$^)|H4bWQWL?o4jZZ@WSXyE_{{o+`kphzp{Y3hDdcxlr-lvjgBue0CWjt;K}2 zvQXekd=@56LRu=WunTG+MYY~bx!@sW#72p9&9l#-=fZ2f&s@_iNi&bNxLIulub$c5JyI3hf zVf5D&B_wTPMOlh93|ko%av%(B0+w$sCTK`y_{?3%aa&BQGFWSf1OO^xp^3RK6_G+T z245PYg_^&E?s|sRaXmM*sIaNeB;G9V7Zs+>9-_vd16=RtE(6U~@WbB)(ish%Z@$%x zeEbJ2oq;0%kHSyIw4J$6@lu^kt<}mjJ$q=mz|%p=I!Giie=92BXSv!8$vU=>8)2Kk zwqmxW!i&{rN>r~lN3m@t+lI4kD%(mRAhTOv)Er&0;BJG}=F8MT?W z>d%8}prAGKlY~NPL7#K1L2FJ$QjX+T#R0m2dRtc?B)Ui*Tm3yh^;_6DeWZ2>Q0Q+KU&1bN3kwyDH|iPA~14lXIpza$(ZrNpCj&cE`pqEi--_b>@s&rA-NYrEHfoequSF zR~%bpe?@#J0zayqwHK1GP}WsgCuhRKgeYA;2@4CvV7h!>@$GF#JN>2v?=F2OWwVOH zDfPNo8adL$8t{$LX`+g;YDq9|L35Sh8SXFKq6&Tle=)fFSh0Bq3^SlKjAB(>2Q=WD zN2%h1uZF!a0J+Sokqm%kjOReF{bvNTASP^2(U*{{3^lOJV#oKhUR@G-mz!uTdh!E& z*H~OM&T67Czov6ZE8|yeM$J>RJXHppM4PxvWF)g}zu~H@xDt$|XBMX?5ZJmv9vy>J zghSY9uwU@K2@9Rz8B9pdN{MGskIFNAufoEgQ(;1o+XDSgg;E^11@{6%HZ;JyC14t` zZjpb+0M%s(mYjTQk>BUz936u>jVr{3pWZX`{ta6KJl95J!8>t}PhGhC<;L~Pb8;#8i3~GW1v>!REf(o|c) zaCL$&*o{z?akEl2uBPxN(gbz z2Ce|IL5gZYc0sv?OC3P&Bqe-+(+hsVNeT0q$`E*;E}_zxRE7=QCFZx`yE^^h`zm8Lfzk?8YSnz% zU#Z0*u3$Zv@UaY@ij@z2H?A3#u$CifAr~ybS`MIpRw_eg7S4eS$}TPiP~HAI{)@=Z zzBd=qtdWox3J}u1il+qOj$lFLfF_>Gk(Wx{>Z1ecj3HgsuDXoNu#}Z?Ax?XMb6R@a z{N1YxIVIs>erur#{1${rq;lmCQW7dlnQ6uh)MA@s{tHxv_B%$JSea+W5CXzWh^>I^ z(AZ$gkw#-!2DF3L-H2Ca&_fCA1y3Sy1OYP*HS`myTy2*~6JAI7s0WB1C?&2Rj2I>s>>M6%Rd9GKkHcFa6r#|u1$avUrK=iBS21S89w=Qq zpmc2j-l`A!QkBDNvSC7f9QjU58Zb7oh{pL zh7!Kc^!cVAewOfS!I`N~?7RKm+PTlalY7_MI}gl#Y`JvanV9(>Z~NUjt4W?3CizEa z-t5x4gBjDB>yjHI35y^*DXK|OoQmX&;+y&LERl7{-gGiDL)+ZkyJLe=K5up@%;42V z|A})`Vbj^(b(K8L^0~4iYX<9pp+R+6CGxun!Ha95Y~m-lFFnfi5GtRE*>bXAlg9o*=p4 zwF8ptQMz5(A*RwQj7CxcprDWeFP64)Ze+jdK zNJG_)#6Sm242dau)Febfl;&t*|k_3=)q* zV5k{f!qq1usAT}ussYr(qvfD7NoVj$`_yuU7XAvTb@H{FUcG(h&u&ER@qvkT7iN{* zNVUhmP90R&->)e&_NWS${M70=zMzehTfsa7z&{n$KB$w}a~cxY!1+WI4;6)WX5WJC z>x{t~1Is0WoQf{cy!+ERew2B` z_D%fFsM9R3ZCavpYIRRD9`0jU4Qo-!HFBu|mdh(|pg$c|9E@O22xlAeF!a{kP+?sn z*B1rHG*DJ4i82UV4U)vOb<7dv$ml1y7=OHntKv!xRB>Hgu+x6+B}RpHWSa4t$uFEm zp71fMH1VR+L=uC-eph90ZvAQFhNe$SmC;k<`0%{g9ATMuK`pfP=Hy4fG2;c+qXG{F zpcjdpu!VpLTM~_PozI*@nG|}~Mpz~-Ni!m>r~t@HhiBpL0X^Z>m2i~|S;A#R(RKw= zR_PeYyOAWQT#T5S>@~?~C{M*)_fUKYVrz$+5nEC?z1Zt3ZOnD=lIkwkYF4WSLx0r6 z3XTDVb@MvCdUS-DG%>12EB7B$=Dkt^lftA#w?(e}?=0a0+Co^{Z$&7DGeMB- z%F5_;^pjoh&4uMsz{(J^EhVW2Ve5v}Y*sW|@{b*0>{U%2x7L47VZ!bhF4r2)kQG(S z;8V_(>_#qLsO01@C%QS#i#ZPumKwIYN8q>O3ML5gP*I7=og~*i;=yxv4hz^etYk}j z<-UFs(BaXRg3()-R&gC3qKfOzU=NRZUk}!Ubv%j@o$OiQ)no z5Qe?Mj@l!+yppy2Xhs*2aQ&=^i(puB+ml4np!mOfSWw_sw zWC7c^2bEJq7K#5zg;$lRE2IN>=aM(Z=R{;RapabBHb+{)ahEPJMobFhOx&*A&MsLB z*`;(ymr=Ww#m>Q_ATHPChSPQrQUD!D0W=^5P)R9(7^DCMn6A|DArO=K&pzA$g;vAd z1XO{))ah&>S9y@n!#ibg78)M!RSC4LJ{5o#{0VoH4S_ey(swO?Z;5?Wkyf|-FXdTi z+D-XdDyJoBft$Vgl2>0p&MaP6a zuO0jH<$Gt|b}(oT&nb1c-}=E&E`^5JqO+lG9@vG!j28*gin$b zGIgcn)CQZ}@Gxau8_#L;WJM<<)bVvLI27hv$E1XHN5+vg;Vr1l=R7h{!a;Zop&q&* zSde8$N!R61x8OW7l#_Hu03c?Ufi0CivnnoZoos(Dp4M(XhAH%~{VfoP+oIY+s^Wq} zAynC~Pl9OR7+m24=ON+pVQ7hbs4GT+HG1NPDkw=9VgQ*?zsy2q$a@@7XyVe+I}IbZ z%d?Db*EBl!fNdR&{?m+@KdCs8k)}j#QBr|5Lio2lGujuY|A#UI9cYA5N#%wH@z%AY_Zy zm2m6m@?$S?YF*Tr2rOKYP*8|1)mx2CP53E8Tf^b342Hi_K#;)_9t4((Bag>(PN0w% zmgA}8imC8SN*+ajAF6ik{rX}YSrMKEk{jNakh=og!&}DMg##&oxJW36QGX1d(lHWS zw$}W7oesp-)egQZh%M?zK<0z2d@GMbTb&4JL0fT#8A+UBh58#sVjOAuiZ*tlsRhrWY2K_>vO6ZurN4IkNkJ)bj&={Txwe zLQV%9-x}cfR!NR;!}C`|A}y?&Rjl$2Hd@5^p)3Y}i{TF3V)D!IDZ*3%;?}Cc!-fPr zAQval1>{0bp0g|TYi$byEv!Hs56N!*^7%c}M3MI_WOCiEH@g!akK9(=w)h`|m#&i8 z>Z78%RU1_0=3_fO|4err(u7=AzGZ~#D357*U${5!EfpKTG`<+zCLl|5AK z$XZgGfkLkJ5f(_=`BA!F_!b0Igah0bCndxqGe%2zWlKrE^?hm7B^Jb1GSZ|H5}Y(LH69&hCc@x_R)U(p#9c?eL=^GVENVs)45g7Vxx0GtwN%% zbtG_>@C{zi@(pq>3Hx$^&o&=H!O#t@FR{~_me^BP-HzPAG2{l`LvG+cg8oDH2}JkYx;c3yGz!Bh5&)^2r1La)!6R$t>am}WtbMXiidSt)GZ*jgD0 zJ4Q0i0KGMQ1=sJc!k{oFXiyjw5L%y7@&?dX;{f_?P*-AKAW0mDum+ZaF+ zFg0PvSq@x5s6pV03rjIBfqk3{xl5cSd<|y_&p50!rIo{2oFzPm#YnqV&rB^E#$%Eq zm1_+0LIR{d)lj*LpTUB$6F@5uvltn_r9x8?(?N}8YD{DaAAd&}sT;2_B^>Nl$c*KN z;Rl9l@I}6FO?=o3QV{D@m072Ge#k#KswuqDzfu8ts2W=CZVgxmH;QR(ZcIMEw#11j zlkw1{#aql6o@$W~2i1g+QDgcawfx}FyQiLAbZX;E;I~#4ydnG4{=-kFq=-H}vU#q^ zS=vM= zR-{SNe5&{2A+4YBTmCJv@)I@0Z}o6h1v^HwC`Roe$8T|9i{yle{sLeN8FnS-1OGG= z5eDRh85J?39dGr! zW?ZF~@WP(&&k+6{iXk{kYj}&o!elf;3K<@6#hh04i{RO_6}tZIQ_nW?>bJ=O2XbBe|6*IQje$X&R^U+ZH6w+b4c6% zuNOWtEh=Hvk*&*O<(;$aKcm_$bijETwOi{*;W+u0nW#Ly^Pu_OlH)Uf}^%9X6_P4ZOQ&zw~q)c60P=o zWiZjI_cxsVJDCv$RfKH+bVsgO?sIi`zV7O>ZMkRO)JQ&TuijUNeVSb0vNWx}XWk;e z@8ZAY)}#NoK-lHu=GXlJTl^7+(97t8&Em#eh$!Nrk7f~|j}dg~NbZ*h&Hc^hK%2OR%eJe8O&<^@04|6NOV zNQqi%^^vFq*Ts3kgYF%$$rxxoeR=hke$JUV9@ol3}XH8Ow#tA-o8fFQH|Su#my7kDO{a5(ikTl!}smr^1ZERa~Sa3{-K& zY|4vQGQo>LP*yCmh@`Pgt%r=K*O+E;P8k;*&UwD)%ERk>$O;}+hD~LLmR+tfD&q`|tunuK!WJ*Z*L3&)Ez05UMd3GQ5DxWj5eSkS0 zhTS5t#Z_+&&|6g2f0nAZeiv|4`|Tr3AA#y=!&;-t>D0xXh#XW=&-6x1QIu4S;$Ygs zRxGL*@fdB{K9B9As2*pOY+uRtDU@P%F4&sbJ{0rVr$%^_bUd~t|C-ecYI}Z!T4$P1 zCg?~$7~Ibov`+?wL8c2>tMj6Z_224Z{kMwIf6E@|ztzY3Z#mI_E3>R=+R{0yuoS<~ zWJ~HUkX(~dzo~1XWL(ApW7nmwnJjNr0y}s(g@kcg$Z1^d3s(gL0@8(4r3JwAt>Jna z#3hQ}q$B|6fl*yC7Y$_lf!C4&;Klq21NB{rCZUY~JxK|vbn9xQ zgkneuy1^)Z+( z1MMaI*LeCB@FT*l<3YH^V#1XHxb^#2wrPBBRU`8$w6|N9+k5WzH%A^}9)(|#M`5D- z6{_4qUZ6Hg=X_BtaX9q)@)VgrVRG&(PUp-h?U4brCG9*B-Zg4BgE`cHYf$?F7*R)Y zWh0=r44gceB?~Tlx;abuk=2A`3E#}2t^NWnLR&*saj_sbig_0*Y$?fvusE{}tWIN7 z6K3E)GIlkg#}BI13MO{P3?v7r{B<`{o7TVL1nFL*fwFg#Gcc&w9cUI;8QnqlaE&{% zkns{e1(IV37x+u+w_JWuy(2XCzC3F{T&!D%d<1$IR5IbK&NX_WVYOm>(kbUv_dG_f ziV3=)`J}G1|5>jLsz#VZfkc1DWAZ#6=y=R|7qV7dLA#9pHYWW!_(cZ)lDZ#p^(DhJ z;X3=*mT`5hlkeKNDd*G3y>FXk?{xp%`}4@S%HMsVRDB+G%f=F=|0l}@&urg)FwS>M zv)O#iZs@L_#no-)%fZ(U>6Vc%V}|fdL5L3bDKLZ|(F)%8E4oK>GXLLp%b+$41BURM zBgm^g>`*EY*YXYjImGp=pm1^X7@HWa;HQ;@K_YiW6Qlnk#I=_Y7d0^KM_kZ_?C%aD zE|^Re=@2lWl#~poigeq%tD6zS-e=+`dxV8+^NUMt#T(34WmPKd2P~$i7nJ_qPpa)5 z$7i77@iDaC@VnJf$;(I8Z71&&n!eA5$ENYE=nvzR1YKWPw|VqjfJGsk)B0O)p|1&N zt2U}dAqTm}TD`R{SiJ?rRSrnB!B(1Jm~%Q0Bv!c;1-4xtbY5k;1lpn_E4Jv)8rLO3 zpH+ClJ-wt9>4z))2?4w=uilE|!Ta#hV#hV{`Ul2ls~P1oH}#23S2iuQk|!~_V^Mz9 zDFw%P^A@^aW?AXPxXi#0r+g;c?4wuG(?guxQI zc3l6W;;wK)Ukgq-e@wy;`1bxtXCjmp*yj)0*ACi0(zH84$uC5w8iu%RA}Rk(crCcoRN7v^QZEwU0?V!K$||ZNkN>kIA4g-E@gTA&U!{R`(=Qh1cG);s(e6PCfZr zW~`!X)njD;ng7Gz35?7ZzVmOeg*U{095ApxEch)!t_Znwb9R{hKu>k|9#WsH06czO zY(_nZBYpIS$1uc%QpJPv3v3@|TlkG(|3S8WoNZaF<2tm*gASJY!V8#B;gO0|_NO-! z-`c|U++zD@2JN>E>Ec1#p1(wh`MX@k=OPZw#kJ6b{$LDK>7rh1)7M@mWK9(y9M=yl6`@E$#s#{>B3?xcE)guIAiVF#T*KHCUJbdW$_iK$ z2BcY>H6bd`OQ{iD9;^wC)Nu=)j+ixJzc_31_h(Ib+tnGupMW)C?NwM4!XXB-?aM>e zQc!77abHewU110xI)(t&6+uoJr@F5+guf5@ulH*8b{{%$d4)(2u3_Wb3jpS}P|^_R z9Dcdth-ZAT?0Cp@#^o-B70jjZClzo03Kjjo;41osPruzOc)7l3rvGR5ZycSS)rd*s z6t)t}QeD2Hq^gP;6oTDa+hjKxtYYn_-hu*{W%!)gugc%uC9ZEj^Hu91gaX%pb)4dzlfm$?+a&y3=sn2IVc zM^@jerooBq6$hsRBEoO)8U(?Z_I}c>+ z2{bVHy%8#kbkrK=pVp`b>a)J4uek$E13pEHLTb1Lb6vW0p1Z`A zZh>i_OYBqKD5BXn;D~{$QX-Nli(u^q(}1XAHP+A{86EH^1T@n*?{&EZ?RWDvo8pg_ z*cMK3<4lp)jGTP0zu#JS7|b&%~;lGA0X9Yi*?Gpp+vJs8UHQ!R8jU#ltAem`FK_@Ph zQ)Y4rkhe$+a8-uz^mE5PVMb8Skh4SFFgDMDlCC1Rd4FYy(SlrsvKEro#V~5A8P%xe zN<;WS{g#Hc;G&^N@mZW4}5r!h}5_Ix(sgb+H zK4l8@JBCMZLYj%S;0jn0vf4pX6jHBk7m8zo`y!}eZ3bT5do~`=7oT)6L8r^t9kO>D zPK$$(tHJLTtNioJojwh)C=@^kc)rAf$TfP@Ji~~o5Qwq+4dpYCX<%IL@kepp}8LBo9=<0seW6y}C(wgy2k6<~b3M3D zG%qS1&9KV0Q-w?(}SyYkUwGE;2vDE0e`~I61SJ@ z!L^_D;NqbNm;IQP_28;Yo|yZh-|aMco-6NxLE-8ByW~D+O@i{^s6CHiQ23|smF7an zV=HXnf}Vs87_7lEE%0BUX9o=7`zyOzdj(y+v;q%r2=5%nq5v``KsFY=Wy!%XI|m2`v4vbd(59Wyx2i`9E`VndA|9t<_;Eh|K{(2m}+$L>QwxP}Z1v1}tj z8)bN50_u)Q>~z)*vD3S~C^h*4$@#fR$)CUA_r&xI;=c>j^)^sf>!I8hS~yZs{Cm4D z7qau-3Mx;M;4#7$j}*3eys*Wi23Ykg+M-gBpcDtFVC;T`9VKDK1yY!1EZe3nQib6|XiewB9Z?6fBA!Iawbc+iqNkFX>u9p#( zPVAAxuW$)`god0%37C%6FC(ZZJV>?}KSn$WMIl755V-C`p$rs-!Gaj3C=5U|gY(Vr zPf@rYflgtSg|t^F3PZ*g!$MJbzVJ#v_<#$6$e;Fx&sTGF zvHt*#?*R;kbDh0@xnZGiTo819H%!;ZKC$@D;bn!Mx?PTQ8%&(6(0lZdZOLLP<4Q{O zQ+;grILX9}eVgo)C6hDu8(}gw$+WKumSf?j{Z4xbJjeHy*e6E170eDACTJxXxezi9 z9=Q=2Z?QlStXB+1^MC=VP22(zVJvIC1^s=n-?2+U;WwV|l+ri>f>Txg1k@8OX$$n( zYB@G{kSig&lB2qZHIuJOc5`fBW$i*Z{)WET{$Rw%P~9HA3LcA-bN^)TI$V5(`q zE#KOJA6NPgc_Fe6$Cq$hml(zS{IH$B3|Wm31P@`GF}lBtE3v}zU`kI?u9PIOYW#bh zNYR=&32b#ch&mzpOd$}?gT1j4;X^u7ws}o6F#CexT1pHTHJ>Fnc+_!${6geQmr$!f zd|qR*r%+$zbb&yaS&%cIv8gK zP2m{@wm^zl;&tlK%8cQMV7f|TbXol?*U+V0BbpQ*dR*$W+Ro3O{kxaW0(Du}z&Ha7 zz$YB)>QK7p1s0*nL*F&Bkm~_srbV;b`U{%+zB_SC)W7jiKdmP*Z z^86a5&e9d?@;2E~sq_DO8!kI+2!ak8a3|_aR+_}|rle$#c&A)vWJvV?Oi<29_u@kmxDI zKmw=`1BszR4Cs`wr`3X?I~2*~xPwd&nK5A#d1j>in?1O8l%P!MibPfCR#YM6RD@{QO%0D>F9w5njsX)g25e+aAr>|OGS=(Z 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

Fm`hZSE`V8;{41P-(zC%=Y>=1-4(Fj+*lAtUfpT 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 z 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 From 46ec9b3d357a57f3c1cfa607d9c02ad2344a8403 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 2 Nov 2023 10:56:36 +0100 Subject: [PATCH 11/32] Updated documentation --- Pareto/matRad_ParetoOptimization.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m index 348e85251..467612667 100644 --- a/Pareto/matRad_ParetoOptimization.m +++ b/Pareto/matRad_ParetoOptimization.m @@ -13,7 +13,7 @@ % wInit: (optional) custom weights to initialize problems % % output -% retStruct: Structure contain +% retStruct: Structure containing the weights of the final plans and other important information % % References % - https://dx.doi.org/10.2139/ssrn.1427721 @@ -344,7 +344,7 @@ %% Maybe: Grouping based on correlation of objectives %% Generaete further points -%initialize OPS boundaries +%initialize array storing OPS boundaries OPSA = []; OPSb = []; np = size(penGrid,1); From 267d2b85006b0b77289b707aade76347a7e1a16f Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 2 Nov 2023 13:52:46 +0100 Subject: [PATCH 12/32] Reverted to default values Changed converge criteria and added warnings to Pareto function --- MatRad_Config.m | 2 +- Pareto/matRad_ParetoOptimization.m | 8 ++++++++ optimization/optimizer/matRad_OptimizerIPOPT.m | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/MatRad_Config.m b/MatRad_Config.m index ca51fe399..6d122dc5a 100644 --- a/MatRad_Config.m +++ b/MatRad_Config.m @@ -184,7 +184,7 @@ function setDefaultProperties(obj) obj.propDoseCalc.defaultAirOffsetCorrection = true; - obj.propOpt.defaultMaxIter = 50000; + obj.propOpt.defaultMaxIter = 500; obj.propOpt.defaultRunDAO = 0; obj.propOpt.defaultRunSequencing = 0; obj.propOpt.defaultClearUnusedVoxels = false; diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m index 467612667..86aa8f2ff 100644 --- a/Pareto/matRad_ParetoOptimization.m +++ b/Pareto/matRad_ParetoOptimization.m @@ -33,6 +33,10 @@ matRad_cfg = MatRad_Config.instance(); +if matRad_cfg.propOpt.defaultMaxIter < 10000 + warning(['Since the Pareto method relies on accurate results more exact results, meaning higher iterations are required (In combination with lower objective tolerance).']); +end + % consider VOI priorities cst = matRad_setOverlapPriorities(cst); @@ -298,7 +302,11 @@ % PARETO PART +if optimizer.options.acceptable_obj_change_tol > 1e-5 + warning(['Pareto Optimization requires more accurate results and therefore small objective change tolerance!']); +end %get number of objectives at the start + objcount = numel(optiProb.objectives); %% generaete Anchor Points for optimization diff --git a/optimization/optimizer/matRad_OptimizerIPOPT.m b/optimization/optimizer/matRad_OptimizerIPOPT.m index 1bad6a84a..4ff4e6be2 100644 --- a/optimization/optimizer/matRad_OptimizerIPOPT.m +++ b/optimization/optimizer/matRad_OptimizerIPOPT.m @@ -80,7 +80,7 @@ obj.options.acceptable_constr_viol_tol = 1e-2; % (Acc3) obj.options.acceptable_dual_inf_tol = 1e10; % (Acc4) obj.options.acceptable_compl_inf_tol = 1e10; % (Acc5) - obj.options.acceptable_obj_change_tol = 1e-6; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled + obj.options.acceptable_obj_change_tol = 1e-4; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled obj.options.max_iter = matRad_cfg.propOpt.defaultMaxIter; obj.options.max_cpu_time = 7200; From 823f44d0c52301949cc11ed8cac634ac3ef9fda2 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 11 Jan 2024 16:50:07 +0100 Subject: [PATCH 13/32] First changes based on pull request comments - Changed naming conventions - Some first moving of files --- Pareto/matRad_ParetoOptimization.m | 6 +- Pareto/matRad_paretoOptimization.m | 577 ++++++++++++++++++ Pareto/tools/matRad_ParetoSurfFromFacets.m | 6 +- Pareto/tools/matRad_paretoSurfFromFacets.m | 74 +++ .../matRad_example15_paretoOptimization.m | 2 +- .../+DoseConstraints/matRad_MinMaxDose.m | 11 +- .../matRad_OptimizationProblem.m | 6 +- 7 files changed, 667 insertions(+), 15 deletions(-) create mode 100644 Pareto/matRad_paretoOptimization.m create mode 100644 Pareto/tools/matRad_paretoSurfFromFacets.m rename Pareto/tests/matRad_ParetoExample.m => examples/matRad_example15_paretoOptimization.m (98%) diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m index 86aa8f2ff..8f0f145a3 100644 --- a/Pareto/matRad_ParetoOptimization.m +++ b/Pareto/matRad_ParetoOptimization.m @@ -1,9 +1,9 @@ -function returnStruct = matRad_ParetoOptimization(dij,cst,pln,nIter,wInit) +function returnStruct = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) % matRad inverse pareto planning wrapper function % % call -% [returnStruct] = matRad_paretoGeneration(dij,cst,pln,pen) -% [returnstruct] = matRad_paretoGeneration(dij,cst,pln,pen,wInit) +% [returnStruct] = matRad_paretoOptimization(dij,cst,pln,nIter) +% [returnstruct] = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) % % input % dij: matRad dij struct diff --git a/Pareto/matRad_paretoOptimization.m b/Pareto/matRad_paretoOptimization.m new file mode 100644 index 000000000..8f0f145a3 --- /dev/null +++ b/Pareto/matRad_paretoOptimization.m @@ -0,0 +1,577 @@ +function returnStruct = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) +% matRad inverse pareto planning wrapper function +% +% call +% [returnStruct] = matRad_paretoOptimization(dij,cst,pln,nIter) +% [returnstruct] = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) +% +% input +% dij: matRad dij struct +% cst: matRad cst struct +% pln: matRad pln struct +% nIter: number of iterations to run/points to calculate after anchor point generation +% wInit: (optional) custom weights to initialize problems +% +% output +% retStruct: Structure containing the weights of the final plans and other important information +% +% References +% - https://dx.doi.org/10.2139/ssrn.1427721 +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2016 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +matRad_cfg = MatRad_Config.instance(); + +if matRad_cfg.propOpt.defaultMaxIter < 10000 + warning(['Since the Pareto method relies on accurate results more exact results, meaning higher iterations are required (In combination with lower objective tolerance).']); +end + +% consider VOI priorities +cst = matRad_setOverlapPriorities(cst); + +% check & adjust objectives and constraints internally for fractionation +for i = 1:size(cst,1) + %Compatibility Layer for old objective format + if isstruct(cst{i,6}) + cst{i,6} = arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6},'UniformOutput',false); + end + for j = 1:numel(cst{i,6}) + + obj = cst{i,6}{j}; + + %In case it is a default saved struct, convert to object + %Also intrinsically checks that we have a valid optimization + %objective or constraint function in the end + if ~isa(obj,'matRad_DoseOptimizationFunction') + try + obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); + catch + matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); + end + end + + obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); + + cst{i,6}{j} = obj; + end +end + +% resizing cst to dose cube resolution +cst = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... + dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); + +% find target indices and described dose(s) for weight vector +% initialization +V = []; +doseTarget = []; +ixTarget = []; + +for i = 1:size(cst,1) + if isequal(cst{i,3},'TARGET') && ~isempty(cst{i,6}) + V = [V;cst{i,4}{1}]; + + %Iterate through objectives/constraints + fDoses = []; + for fObjCell = cst{i,6} + dParams = fObjCell{1}.getDoseParameters(); + %Don't care for Inf constraints + dParams = dParams(isfinite(dParams)); + %Add to dose list + fDoses = [fDoses dParams]; + end + + doseTarget = [doseTarget fDoses]; + ixTarget = [ixTarget i*ones(1,length(fDoses))]; + end +end +[doseTarget,i] = max(doseTarget); +ixTarget = ixTarget(i); +wOnes = ones(dij.totalNumOfBixels,1); + +% calculate initial beam intensities wInit +% calculate initial beam intensities wInit +matRad_cfg.dispInfo('Estimating initial weights... '); + +if exist('wInit','var') + %do nothing as wInit was passed to the function + matRad_cfg.dispInfo('chosen provided wInit!\n'); + + % Write ixDose which is needed for the optimizer + if pln.bioParam.bioOpt + dij.ixDose = dij.bx~=0; + + %pre-calculations + dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); + dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); + end + +elseif strcmp(pln.bioParam.model,'constRBE') && strcmp(pln.radiationMode,'protons') + % check if a constant RBE is defined - if not use 1.1 + if ~isfield(dij,'RBE') + dij.RBE = 1.1; + end + + doseTmp = dij.physicalDose{1}*wOnes; + bixelWeight = (doseTarget)/(dij.RBE * mean(doseTmp(V))); + wInit = wOnes * bixelWeight; + matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); + +elseif pln.bioParam.bioOpt + % retrieve photon LQM parameter + [ax,bx] = matRad_getPhotonLQMParameters(cst,dij.doseGrid.numOfVoxels,dij.numOfScenarios); + + if ~isequal(dij.ax(dij.ax~=0),ax(dij.ax~=0)) || ... + ~isequal(dij.bx(dij.bx~=0),bx(dij.bx~=0)) + matRad_cfg.dispError('Inconsistent biological parameter - please recalculate dose influence matrix!\n'); + end + + for i = 1:size(cst,1) + + for j = 1:size(cst{i,6},2) + % check if prescribed doses are in a valid domain + if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') + matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); + end + + end + end + + dij.ixDose = dij.bx~=0; + + if isequal(pln.bioParam.quantityOpt,'effect') + + effectTarget = cst{ixTarget,5}.alphaX * doseTarget + cst{ixTarget,5}.betaX * doseTarget^2; + aTmp = dij.mAlphaDose{1}*wOnes; + bTmp = dij.mSqrtBetaDose{1} * wOnes; + p = sum(aTmp(V)) / sum(bTmp(V).^2); + q = -(effectTarget * length(V)) / sum(bTmp(V).^2); + + wInit = -(p/2) + sqrt((p^2)/4 -q) * wOnes; + + elseif isequal(pln.bioParam.quantityOpt,'RBExD') + + %pre-calculations + dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); + dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); + + % calculate current effect in target + aTmp = dij.mAlphaDose{1}*wOnes; + bTmp = dij.mSqrtBetaDose{1} * wOnes; + doseTmp = dij.physicalDose{1}*wOnes; + + CurrEffectTarget = aTmp(V) + bTmp(V).^2; + % ensure a underestimated biological effective dose + TolEstBio = 1.2; + % calculate maximal RBE in target + maxCurrRBE = max(-cst{ixTarget,5}.alphaX + sqrt(cst{ixTarget,5}.alphaX^2 + ... + 4*cst{ixTarget,5}.betaX.*CurrEffectTarget)./(2*cst{ixTarget,5}.betaX*doseTmp(V))); + wInit = ((doseTarget)/(TolEstBio*maxCurrRBE*max(doseTmp(V))))* wOnes; + end + + matRad_cfg.dispInfo('chosen weights adapted to biological dose calculation!\n'); +else + doseTmp = dij.physicalDose{1}*wOnes; + bixelWeight = (doseTarget)/mean(doseTmp(V)); + wInit = wOnes * bixelWeight; + matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); +end + + + + +%% calculate probabilistic quantities for probabilistic optimization if at least +% one robust objective is defined + +%Check how to use 4D data +if isfield(pln,'propOpt') && isfield(pln.propOpt,'scen4D') + scen4D = pln.propOpt.scen4D; +else + scen4D = 1; %Use only first 4D scenario for optimization +end + +%If "all" provided, use all scenarios +if isequal(scen4D,'all') + scen4D = 1:size(dij.physicalDose,1); +end + +linIxDIJ = find(~cellfun(@isempty,dij.physicalDose(scen4D,:,:)))'; + +FLAG_CALC_PROB = false; +FLAG_ROB_OPT = false; + + +for i = 1:size(cst,1) + for j = 1:numel(cst{i,6}) + if strcmp(cst{i,6}{j}.robustness,'PROB') && numel(linIxDIJ) > 1 + FLAG_CALC_PROB = true; + end + if ~strcmp(cst{i,6}{j}.robustness,'none') && numel(linIxDIJ) > 1 + FLAG_ROB_OPT = true; + end + end +end + +if FLAG_CALC_PROB + [dij] = matRad_calculateProbabilisticQuantities(dij,cst,pln); +end + + +% set optimization options +if ~FLAG_ROB_OPT || FLAG_CALC_PROB % if multiple robust objectives are defined for one structure then remove FLAG_CALC_PROB from the if clause + ixForOpt = scen4D; +else + ixForOpt = linIxDIJ; +end + +switch pln.bioParam.quantityOpt + case 'effect' + backProjection = matRad_EffectProjection; + case 'RBExD' + %Capture special case of constant RBE + if strcmp(pln.bioParam.model,'constRBE') + backProjection = matRad_ConstantRBEProjection; + else + backProjection = matRad_VariableRBEProjection; + end + case 'physicalDose' + backProjection = matRad_DoseProjection; + otherwise + warning(['Did not recognize bioloigcal setting ''' pln.probOpt.bioOptimization '''!\nUsing physical dose optimization!']); + backProjection = matRad_DoseProjection; +end + +%Give scenarios used for optimization +backProjection.scenarios = ixForOpt; +backProjection.scenarioProb = pln.multScen.scenProb; + +optiProb = matRad_OptimizationProblem(backProjection,cst); +optiProb.quantityOpt = pln.bioParam.quantityOpt; +if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') + optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; +end + +%Get Bounds +if ~isfield(pln.propOpt,'boundMU') + pln.propOpt.boundMU = false; +end + +if pln.propOpt.boundMU + if (isfield(dij,'minMU') || isfield(dij,'maxMU')) && ~isfield(dij,'numParticlesPerMU') + matRad_cfg.dispWarning('Requested MU bounds but number of particles per MU not set! Bounds will not be enforced and standard [0,Inf] will be used instead!'); + elseif ~isfield(dij,'minMU') && ~isfield(dij,'maxMU') + matRad_cfg.dispWarning('Requested MU bounds but machine bounds not defined in dij.minMU & dij.maxMU! Bounds will not be enforced and standard [0,Inf] will be used instead!'); + else + if isfield(dij,'minMU') + optiProb.minimumW = dij.numParticlesPerMU .* dij.minMU / 1e6; + matRad_cfg.dispInfo('Using lower MU bounds provided in dij!\n') + end + + if isfield(dij,'maxMU') + optiProb.maximumW = dij.numParticlesPerMU .* dij.maxMU / 1e6; + matRad_cfg.dispInfo('Using upper MU bounds provided in dij!\n') + end + end +else + matRad_cfg.dispInfo('Using standard MU bounds of [0,Inf]!\n') +end + +if ~isfield(pln.propOpt,'optimizer') + pln.propOpt.optimizer = 'IPOPT'; +end + +switch pln.propOpt.optimizer + case 'IPOPT' + optimizer = matRad_OptimizerIPOPT; + case 'fmincon' + optimizer = matRad_OptimizerFmincon; + otherwise + warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); + optimizer = matRad_OptimizerIPOPT; +end + + +% PARETO PART +if optimizer.options.acceptable_obj_change_tol > 1e-5 + warning(['Pareto Optimization requires more accurate results and therefore small objective change tolerance!']); +end +%get number of objectives at the start + +objcount = numel(optiProb.objectives); + +%% generaete Anchor Points for optimization +penGrid = matRad_generateAnchorPoints(objcount); + +%initialize matrices for weight vectors and associated objective function values +weights = zeros(numel(wInit),size(penGrid,1)); +fInd = zeros(size(penGrid,1),objcount); +objectiveFunctionVals = {}; +% loop over all anchor points + +for i = 1:size(penGrid,1) + + optiProb.updatePenalties(penGrid(i,:)); + + + optimizer = optimizer.optimize(wInit,optiProb,dij,cst); + wOpt = optimizer.wResult; + info = optimizer.resultInfo; + weights(:,i) = wOpt; + + %set values for warm start + %optimizer.optionsWarmStart.use = true; + %optimizer.optionsWarmStart.zl = info.zl; + %optimizer.optionsWarmStart.zu = info.zu; + %optimizer.optionsWarmStart.lambda = info.lambda; + fInd(i,:) = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; + objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; + +end + + + +%%normalize objectives + +optiProb.normalizationScheme.scheme = 'UL'; +optiProb.normalizationScheme.U = max(fInd,[],1); +optiProb.normalizationScheme.L = min(fInd,[],1); + +fInd = (fInd-optiProb.normalizationScheme.L)./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); + + +%% Maybe: Grouping based on correlation of objectives +%% Generaete further points + +%initialize array storing OPS boundaries +OPSA = []; +OPSb = []; +np = size(penGrid,1); + +% first on: "Balanced point" after anchor points (slightly different calculation for normal) +% + +[a,b,firstNormal] = matRad_normalFromFacet(fInd,1:np,1); + +penGrid(np+1,:) = abs(firstNormal); +newPen = abs(firstNormal); + +%update cst values +optiProb.updatePenalties(newPen); % change for groupings! + +%calculate first new point + +optimizer = optimizer.optimize(wInit,optiProb,dij,cst); +wOpt = optimizer.wResult; +weights = [weights,wOpt]; +objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; +%wInit = wOpt; +fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; +fIndv = optiProb.normalizeObjectives(fIndv); + +fInd = [fInd;fIndv]; + +%initialize some variables that might be used if points are removed later on (should only happen with too high stopping criteria) +removedfInd = []; +removedpenGrid = []; +removedweights = []; +removedOPSA = []; +removedOPSb = []; + + +OPSA = [OPSA;-penGrid(np+1,:)]; +OPSb = [OPSb;-1*fInd(np+1,:)*penGrid(np+1,:)']; +errors = []; +allErrors = {}; + +initSize = size(penGrid,1); + +%calculating for distance measure +L = min(fInd,[],1); +U = max(fInd,[],1); +eps = U - L; + +%% calculate remaining facets + +for i = 1:nIter + fprintf('Now in iteration %i',i) + %Step 1 calculate convex Hull -> Inner approximation (IPS) and gives facets + %Rennen Algorithm + fVals = fInd; + + fValsMod = matRad_generateDummyPoints(fVals,U); %generate dummy points + % + [kmod,vol] = convhulln(fValsMod); + %[kred,vol] = convhulln(fVals); + + %check for relevant facets (those that contain points of the original + %fVals set) + IPSidxs = 1:size(fVals,1); + relFacetidxs = []; + for j = 1:size(kmod,1) + if any(ismember(kmod(j,:),IPSidxs)) + relFacetidxs = [relFacetidxs,j]; + end + end + facetMods = kmod(relFacetidxs,:); + facetErrors = zeros(size(facetMods,1),1); + normals = zeros(size(facetMods)); + + %Loop over facets and calculate error + for j = 1:size(relFacetidxs,2) + [facetPoints,refPoint,normal] = matRad_normalFromFacet(fValsMod,facetMods,j); + + + %check for sign of normals (might be redundant) + if all(normal<0) + continue + end + + %now check for OPS point for facet + lb = min(fVals,[],1); + ub = max(fVals,[],1); + z = linprog(normal,OPSA,OPSb,[],[],lb,ub); + + %hyperplane distance + b = refPoint*normal; + + %calculate error for each facet + + facetErrors(j) = (b-z'*normal)/(eps*normal); + normals(j,:) = normal; + + end + allErrors(end+1) = {facetErrors}; + [A,I] = sort(facetErrors,'descend'); + + %%check for next facet to run + found = false; + facetNum= 1; + accuracy = 4; + + while ~found && facetNum <= numel(I) %loop over facets + idx = I(facetNum); + norm = normals(idx,:); + + %check if facet has already been run + if ~any(ismember(round(penGrid,accuracy),round(norm,accuracy),'rows')) + + %update weights in cst + optiProb.updatePenalties(norm); + paretoOptimal = false; + calcPointsForFacet = 0; + + while ~paretoOptimal && calcPointsForFacet < 4 %more than 4 points? + if calcPointsForFacet < 3 + optimizer = optimizer.optimize(weights(:,end-calcPointsForFacet),optiProb,dij,cst); + else + optimizer = optimizer.optimize(wInit,optiProb,dij,cst); + end + + %really necessary? + if optimizer.resultInfo.iter < 15 %sometimes optimizer will terminate fast (points tend to be not optimal!) + calcPointsForFacet = calcPointsForFacet + 1; + continue + end + %check number of iterations needed for optimzation + wOpt = optimizer.wResult; + + fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; + fIndv = optiProb.normalizeObjectives(fIndv); + %how does the newly generated point influence the pareto + %surface? + + dominatedPoints = matRad_paretoCheck(fInd,fIndv); + % if no point is dominated -> returns [] + % if the newly generated point is not optimal -> Returns array with a 0 inside + % if (a) previously generated point(s) is/are dominated by the + % newly generated point -> returns index in fInd -> Need to + % update penGrid, weights, fInd,OPSa,OPSb + + if isempty(dominatedPoints) + paretoOptimal = true; + + elseif dominatedPoints == 0 + calcPointsForFacet = calcPointsForFacet + 1; + continue %% found point is dominated by previously calculated point -> has to be recalculated + + else %newly calculated point dominates points on the previous pareto surface + paretoOptimal = true; + %remove dominated points and related equations %might + %have to check if this fully works + removedfInd = [removedfInd;fInd(dominatedPoints,:)]; + removedpenGrid = [removedpenGrid;penGrid(dominatedPoints,:)]; + removedweights = [removedweights,weights(:,dominatedPoints)]; + + + fInd(dominatedPoints,:) = []; + penGrid(dominatedPoints,:) = []; + weights(:,dominatedPoints) = []; + %Issue if + if ~(dominatedPoints-objcount <=0) + removedOPSA = [removedOPSA;OPSA(dominatedPoints-objcount,:)]; + removedOPSb = [removedOPSb;OPSb(dominatedPoints-objcount,:)]; + OPSA(dominatedPoints-objcount,:) = []; % shifted index + OPSb(dominatedPoints-objcount,:) = []; + + end + %remove dominated points + + end + end + objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; + errors = [errors,facetErrors(idx)]; + newPen = norm; + %awInit = wOpt; + info = optimizer.resultInfo; + weights = [weights,wOpt]; + penGrid = [penGrid;newPen]; + + + %fIndv = cellfun(@(group)sum(fIndv(:,group)),groups) + fInd = [fInd;fIndv]; + + found = true; + end + facetNum = facetNum +1; + end + + % when final point is found: Update OPSA and OPSb + OPSA = [OPSA;-newPen]; %add normal vector of facet that was run + OPSb = [OPSb;-fIndv*newPen']; + +end + + + + + +%defining a structure that contains all relevant information +returnStruct.OPSA = OPSA; +returnStruct.OPSb = OPSb; +returnStruct.weights = weights; +returnStruct.finds = fInd; +returnStruct.penGrid = penGrid; +returnStruct.errors = errors; +returnStruct.allErrors = allErrors; +returnStruct.removed = {removedfInd,removedpenGrid,removedweights,removedOPSA,removedOPSb}; + +returnStruct.weights = weights; +returnStruct.finds = fInd; +returnStruct.penGrid = penGrid; + +returnStruct.optiProb = optiProb; +returnStruct.allObj = objectiveFunctionVals; +returnStruct.modcst = cst; + +% unblock mex files +clear mex diff --git a/Pareto/tools/matRad_ParetoSurfFromFacets.m b/Pareto/tools/matRad_ParetoSurfFromFacets.m index e4f07bc65..28cf12379 100644 --- a/Pareto/tools/matRad_ParetoSurfFromFacets.m +++ b/Pareto/tools/matRad_ParetoSurfFromFacets.m @@ -1,9 +1,9 @@ -function [k,facets] = matRad_ParetoSurfFromFacets(fVals) -% matRad_ParetoSurfFromFacets allows to calculate the facets of the pareto surface +function [k,facets] = matRad_paretoSurfFromFacets(fVals) +% matRad_paretoSurfFromFacets allows to calculate the facets of the pareto surface % from its vertices. The facets are calculated by calculating the convex hull. % % call -% [k,facets] = matRad_ParetoSurfFromFacets(fVals) +% [k,facets] = matRad_paretoSurfFromFacets(fVals) % % input % fVals: Matrix storing the objective function values of the pareto surface vertices (objective function values of the calculated points) diff --git a/Pareto/tools/matRad_paretoSurfFromFacets.m b/Pareto/tools/matRad_paretoSurfFromFacets.m new file mode 100644 index 000000000..28cf12379 --- /dev/null +++ b/Pareto/tools/matRad_paretoSurfFromFacets.m @@ -0,0 +1,74 @@ +function [k,facets] = matRad_paretoSurfFromFacets(fVals) +% matRad_paretoSurfFromFacets allows to calculate the facets of the pareto surface +% from its vertices. The facets are calculated by calculating the convex hull. +% +% call +% [k,facets] = matRad_paretoSurfFromFacets(fVals) +% +% input +% fVals: Matrix storing the objective function values of the pareto surface vertices (objective function values of the calculated points) +% +% output +% k: Matrix storing the vertices belonging to the facets of the convex hull +% facets: Matrix storing only the vertices that belong to the Pareto surface (The ones associated to facets with positive normals) +% +% References +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2023 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %calculate convex hull + [k,vol] = convhulln(fVals); + + %% + %calculate normals for each facet(normal vectors are perpendicular to their respective facet) + %Done by solving P*n= 0 where P is a matrix with the vectors spanning the hyperplane and n the + %normal vector to be calculated + + %initializing some objects that are returned by the function + facets= zeros(size(k)); + + j = 0; + %% loop over all facets of convex hull + for i = 1:size(k,1) + %% Step2: Calculate upper bounds from convex hull + %vertices of facets + ps = fVals(k(i,:),:); + %calculate vectors spanning hyperplane through refPoint + refPoint = ps(1,:); + f = ps-refPoint; % vectors spanning hyperplan through ps(1,:) + zw = f(2:end,:); % remove reference Point + % + normal = null(zw); %solve P*n=0 P Matrix + + %% check orientation of calculated normal vector + %get vertex not in facet and calculate orientation of facet + idxs = (1:size(fVals,1)); + diffs = setdiff(idxs,k(i,:)); % find vertex not in facet + + %check if orientation and normal vector face in same direction + orientationVector = fVals(diffs(1),:)-refPoint; + orientation =(orientationVector*normal>0); + + %flip orientation of normal vector if it goes in the opposite direction + normal = normal*(2*orientation-1); + normal = round(normal,4); + + %reject facet if normal has all negative components + + if any(round(normal,3)<0) + continue + end + facets(i,:) = k(i,:); + end +end \ No newline at end of file diff --git a/Pareto/tests/matRad_ParetoExample.m b/examples/matRad_example15_paretoOptimization.m similarity index 98% rename from Pareto/tests/matRad_ParetoExample.m rename to examples/matRad_example15_paretoOptimization.m index ae73b7714..f360380e5 100644 --- a/Pareto/tests/matRad_ParetoExample.m +++ b/examples/matRad_example15_paretoOptimization.m @@ -112,7 +112,7 @@ cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,57)); %% -retStruct = matRad_ParetoOptimization(dij,cst,pln,30); +retStruct = matRad_paretoOptimization(dij,cst,pln,30); %% %matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) diff --git a/optimization/+DoseConstraints/matRad_MinMaxDose.m b/optimization/+DoseConstraints/matRad_MinMaxDose.m index db2a4daf4..035f5e0ba 100644 --- a/optimization/+DoseConstraints/matRad_MinMaxDose.m +++ b/optimization/+DoseConstraints/matRad_MinMaxDose.m @@ -173,7 +173,7 @@ function cDose = computeDoseConstraintFunctionLogSumExp(this,dose) dose_min = min(dose); dose_max = max(dose); - epsilon = (this.epsilon/3)*max(dose); + epsilon = (this.epsilon/3)*dose_max; %Validate parameters if this.parameters{1} <= 0 && isinf(this.parameters{2}) %Constraint doesn't make sense (min = 0 & max = Inf) cDose = []; @@ -189,20 +189,21 @@ end function cDoseJacob = computeDoseConstraintJacobianLogSumExp(this,dose) %Validate parameters - epsilon = (this.epsilon/3)*max(dose); + max_dose = max(dose); + epsilon = (this.epsilon/3)*max_dose; %espilon = this.epsilon; if this.parameters{1} <= 0 && isinf(this.parameters{2}) %Constraint doesn't make sense (min = 0 & max = Inf) cDoseJacob = []; elseif this.parameters{2} == Inf %Only min dose - cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon ); + cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); elseif this.parameters{1} <= 0 %Only max dose - cDoseJacob(:,1) = exp( (dose-max(dose))/epsilon ); + cDoseJacob(:,1) = exp( (dose-max_dose)/epsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); else %both are set sensible cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); - cDoseJacob(:,2) = exp( (dose-max(dose))/epsilon ); + cDoseJacob(:,2) = exp( (dose-max_dose)/epsilon ); cDoseJacob(:,2) = cDoseJacob(:,2)/sum(cDoseJacob(:,2)); end diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index 37a9421f9..c62221deb 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -43,7 +43,7 @@ obj.BP = backProjection; %needs to be initalized to have access to setBiologicalDosePrescriptions if nargin == 2 - obj.extractObjectivesAndConstraintsFromcst(cst); + obj.extractObjectivesAndConstraintsFromCst(cst); end end @@ -95,7 +95,7 @@ function normalizedfVals = normalizeObjectives(optiProb,fVals) %function to normalize objectives (used for sandwich %algorithms) - switch optiProb.normalizationScheme.scheme + switch optiProb.normalizationScheme case 'none' %default case no normalization normalizedfVals = fVals; @@ -175,7 +175,7 @@ function updatePenalties(optiProb,newPen) methods (Access = private) - function extractObjectivesAndConstraintsFromcst(optiProb,cst) + function extractObjectivesAndConstraintsFromCst(optiProb,cst) %used to extract objectives from cst and store in cell array as property of optimization Problem optiProb.objIdx = []; optiProb.constrIdx = []; From 5ddce71bcb059e64a02e17400849ebfded1493c2 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Wed, 24 Jan 2024 13:03:15 +0100 Subject: [PATCH 14/32] Moved some files and updated GUI --- .../NavigationUI/matRad_navigationProblem.m | 4 +- Pareto/NavigationUI/matRad_plotPS.m | 6 +- Pareto/matRad_ParetoOptimization.m | 577 ------------------ Pareto/tools/matRad_ParetoSurfFromFacets.m | 74 --- ParetoGUI/matRad_ButtonWidget.m | 124 ++++ ParetoGUI/matRad_ParetoDVHWidget.m | 57 ++ ParetoGUI/matRad_ParetoData.m | 80 +++ ParetoGUI/matRad_ParetoGUI.m | 130 ++++ ParetoGUI/matRad_ParetoSliceWidget.m | 57 ++ ParetoGUI/matRad_SliderWidget.m | 463 ++++++++++++++ matRadParetoGUI.m | 47 ++ .../matRad_OptimizationProblem.m | 2 +- .../matRad_paretoOptimization.m | 0 .../tools/matRad_generateAnchorPoints.m | 0 .../tools/matRad_generateDummyPoints.m | 0 .../tools/matRad_normalFromFacet.m | 0 .../tools/matRad_paretoCheck.m | 0 .../tools/matRad_paretoSurfFromFacets.m | 0 .../matRad_plotPenaltyPoints.m | 0 19 files changed, 963 insertions(+), 658 deletions(-) delete mode 100644 Pareto/matRad_ParetoOptimization.m delete mode 100644 Pareto/tools/matRad_ParetoSurfFromFacets.m create mode 100644 ParetoGUI/matRad_ButtonWidget.m create mode 100644 ParetoGUI/matRad_ParetoDVHWidget.m create mode 100644 ParetoGUI/matRad_ParetoData.m create mode 100644 ParetoGUI/matRad_ParetoGUI.m create mode 100644 ParetoGUI/matRad_ParetoSliceWidget.m create mode 100644 ParetoGUI/matRad_SliderWidget.m create mode 100644 matRadParetoGUI.m rename {Pareto => optimization/ParetoOptimization}/matRad_paretoOptimization.m (100%) rename {Pareto => optimization/ParetoOptimization}/tools/matRad_generateAnchorPoints.m (100%) rename {Pareto => optimization/ParetoOptimization}/tools/matRad_generateDummyPoints.m (100%) rename {Pareto => optimization/ParetoOptimization}/tools/matRad_normalFromFacet.m (100%) rename {Pareto => optimization/ParetoOptimization}/tools/matRad_paretoCheck.m (100%) rename {Pareto => optimization/ParetoOptimization}/tools/matRad_paretoSurfFromFacets.m (100%) rename {Pareto/plotting => plotting}/matRad_plotPenaltyPoints.m (100%) diff --git a/Pareto/NavigationUI/matRad_navigationProblem.m b/Pareto/NavigationUI/matRad_navigationProblem.m index ff924d487..86614d5be 100644 --- a/Pareto/NavigationUI/matRad_navigationProblem.m +++ b/Pareto/NavigationUI/matRad_navigationProblem.m @@ -60,10 +60,8 @@ %Bounds lb = zeros(m+k,1); - %lb(end) = -1000000; - %ub = 1000000*zeros(m+k+1,1); - %ub(1:m) = 1; ub = ones(1,m); + options = optimoptions('linprog','Display','iter'); %options = optimoptions('linprog','Algorithm','interior-point','Display','iter'); v = linprog(f,A,b,Aeq,beq,lb,ub,options); diff --git a/Pareto/NavigationUI/matRad_plotPS.m b/Pareto/NavigationUI/matRad_plotPS.m index 0d7e863ef..08ac64aed 100644 --- a/Pareto/NavigationUI/matRad_plotPS.m +++ b/Pareto/NavigationUI/matRad_plotPS.m @@ -1,12 +1,12 @@ -function matRad_plotPS(refObj) +function matRad_plotPS(helperObj) %{ figure scatter3(finds(:,1),finds(:,2),finds(:,3)) hold on scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled') %} - ps = refObj.fIndsAll; - psRed = refObj.fIndsRed; + ps = refObj.allPoints; + psRed = refObj.; fNew = refObj.fRef; [k,facets] = matRad_ParetoSurfFromFacets(ps); figure diff --git a/Pareto/matRad_ParetoOptimization.m b/Pareto/matRad_ParetoOptimization.m deleted file mode 100644 index 8f0f145a3..000000000 --- a/Pareto/matRad_ParetoOptimization.m +++ /dev/null @@ -1,577 +0,0 @@ -function returnStruct = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) -% matRad inverse pareto planning wrapper function -% -% call -% [returnStruct] = matRad_paretoOptimization(dij,cst,pln,nIter) -% [returnstruct] = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) -% -% input -% dij: matRad dij struct -% cst: matRad cst struct -% pln: matRad pln struct -% nIter: number of iterations to run/points to calculate after anchor point generation -% wInit: (optional) custom weights to initialize problems -% -% output -% retStruct: Structure containing the weights of the final plans and other important information -% -% References -% - https://dx.doi.org/10.2139/ssrn.1427721 -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2016 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -matRad_cfg = MatRad_Config.instance(); - -if matRad_cfg.propOpt.defaultMaxIter < 10000 - warning(['Since the Pareto method relies on accurate results more exact results, meaning higher iterations are required (In combination with lower objective tolerance).']); -end - -% consider VOI priorities -cst = matRad_setOverlapPriorities(cst); - -% check & adjust objectives and constraints internally for fractionation -for i = 1:size(cst,1) - %Compatibility Layer for old objective format - if isstruct(cst{i,6}) - cst{i,6} = arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6},'UniformOutput',false); - end - for j = 1:numel(cst{i,6}) - - obj = cst{i,6}{j}; - - %In case it is a default saved struct, convert to object - %Also intrinsically checks that we have a valid optimization - %objective or constraint function in the end - if ~isa(obj,'matRad_DoseOptimizationFunction') - try - obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); - catch - matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); - end - end - - obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); - - cst{i,6}{j} = obj; - end -end - -% resizing cst to dose cube resolution -cst = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... - dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); - -% find target indices and described dose(s) for weight vector -% initialization -V = []; -doseTarget = []; -ixTarget = []; - -for i = 1:size(cst,1) - if isequal(cst{i,3},'TARGET') && ~isempty(cst{i,6}) - V = [V;cst{i,4}{1}]; - - %Iterate through objectives/constraints - fDoses = []; - for fObjCell = cst{i,6} - dParams = fObjCell{1}.getDoseParameters(); - %Don't care for Inf constraints - dParams = dParams(isfinite(dParams)); - %Add to dose list - fDoses = [fDoses dParams]; - end - - doseTarget = [doseTarget fDoses]; - ixTarget = [ixTarget i*ones(1,length(fDoses))]; - end -end -[doseTarget,i] = max(doseTarget); -ixTarget = ixTarget(i); -wOnes = ones(dij.totalNumOfBixels,1); - -% calculate initial beam intensities wInit -% calculate initial beam intensities wInit -matRad_cfg.dispInfo('Estimating initial weights... '); - -if exist('wInit','var') - %do nothing as wInit was passed to the function - matRad_cfg.dispInfo('chosen provided wInit!\n'); - - % Write ixDose which is needed for the optimizer - if pln.bioParam.bioOpt - dij.ixDose = dij.bx~=0; - - %pre-calculations - dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); - dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); - end - -elseif strcmp(pln.bioParam.model,'constRBE') && strcmp(pln.radiationMode,'protons') - % check if a constant RBE is defined - if not use 1.1 - if ~isfield(dij,'RBE') - dij.RBE = 1.1; - end - - doseTmp = dij.physicalDose{1}*wOnes; - bixelWeight = (doseTarget)/(dij.RBE * mean(doseTmp(V))); - wInit = wOnes * bixelWeight; - matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); - -elseif pln.bioParam.bioOpt - % retrieve photon LQM parameter - [ax,bx] = matRad_getPhotonLQMParameters(cst,dij.doseGrid.numOfVoxels,dij.numOfScenarios); - - if ~isequal(dij.ax(dij.ax~=0),ax(dij.ax~=0)) || ... - ~isequal(dij.bx(dij.bx~=0),bx(dij.bx~=0)) - matRad_cfg.dispError('Inconsistent biological parameter - please recalculate dose influence matrix!\n'); - end - - for i = 1:size(cst,1) - - for j = 1:size(cst{i,6},2) - % check if prescribed doses are in a valid domain - if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') - matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); - end - - end - end - - dij.ixDose = dij.bx~=0; - - if isequal(pln.bioParam.quantityOpt,'effect') - - effectTarget = cst{ixTarget,5}.alphaX * doseTarget + cst{ixTarget,5}.betaX * doseTarget^2; - aTmp = dij.mAlphaDose{1}*wOnes; - bTmp = dij.mSqrtBetaDose{1} * wOnes; - p = sum(aTmp(V)) / sum(bTmp(V).^2); - q = -(effectTarget * length(V)) / sum(bTmp(V).^2); - - wInit = -(p/2) + sqrt((p^2)/4 -q) * wOnes; - - elseif isequal(pln.bioParam.quantityOpt,'RBExD') - - %pre-calculations - dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); - dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); - - % calculate current effect in target - aTmp = dij.mAlphaDose{1}*wOnes; - bTmp = dij.mSqrtBetaDose{1} * wOnes; - doseTmp = dij.physicalDose{1}*wOnes; - - CurrEffectTarget = aTmp(V) + bTmp(V).^2; - % ensure a underestimated biological effective dose - TolEstBio = 1.2; - % calculate maximal RBE in target - maxCurrRBE = max(-cst{ixTarget,5}.alphaX + sqrt(cst{ixTarget,5}.alphaX^2 + ... - 4*cst{ixTarget,5}.betaX.*CurrEffectTarget)./(2*cst{ixTarget,5}.betaX*doseTmp(V))); - wInit = ((doseTarget)/(TolEstBio*maxCurrRBE*max(doseTmp(V))))* wOnes; - end - - matRad_cfg.dispInfo('chosen weights adapted to biological dose calculation!\n'); -else - doseTmp = dij.physicalDose{1}*wOnes; - bixelWeight = (doseTarget)/mean(doseTmp(V)); - wInit = wOnes * bixelWeight; - matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); -end - - - - -%% calculate probabilistic quantities for probabilistic optimization if at least -% one robust objective is defined - -%Check how to use 4D data -if isfield(pln,'propOpt') && isfield(pln.propOpt,'scen4D') - scen4D = pln.propOpt.scen4D; -else - scen4D = 1; %Use only first 4D scenario for optimization -end - -%If "all" provided, use all scenarios -if isequal(scen4D,'all') - scen4D = 1:size(dij.physicalDose,1); -end - -linIxDIJ = find(~cellfun(@isempty,dij.physicalDose(scen4D,:,:)))'; - -FLAG_CALC_PROB = false; -FLAG_ROB_OPT = false; - - -for i = 1:size(cst,1) - for j = 1:numel(cst{i,6}) - if strcmp(cst{i,6}{j}.robustness,'PROB') && numel(linIxDIJ) > 1 - FLAG_CALC_PROB = true; - end - if ~strcmp(cst{i,6}{j}.robustness,'none') && numel(linIxDIJ) > 1 - FLAG_ROB_OPT = true; - end - end -end - -if FLAG_CALC_PROB - [dij] = matRad_calculateProbabilisticQuantities(dij,cst,pln); -end - - -% set optimization options -if ~FLAG_ROB_OPT || FLAG_CALC_PROB % if multiple robust objectives are defined for one structure then remove FLAG_CALC_PROB from the if clause - ixForOpt = scen4D; -else - ixForOpt = linIxDIJ; -end - -switch pln.bioParam.quantityOpt - case 'effect' - backProjection = matRad_EffectProjection; - case 'RBExD' - %Capture special case of constant RBE - if strcmp(pln.bioParam.model,'constRBE') - backProjection = matRad_ConstantRBEProjection; - else - backProjection = matRad_VariableRBEProjection; - end - case 'physicalDose' - backProjection = matRad_DoseProjection; - otherwise - warning(['Did not recognize bioloigcal setting ''' pln.probOpt.bioOptimization '''!\nUsing physical dose optimization!']); - backProjection = matRad_DoseProjection; -end - -%Give scenarios used for optimization -backProjection.scenarios = ixForOpt; -backProjection.scenarioProb = pln.multScen.scenProb; - -optiProb = matRad_OptimizationProblem(backProjection,cst); -optiProb.quantityOpt = pln.bioParam.quantityOpt; -if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') - optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; -end - -%Get Bounds -if ~isfield(pln.propOpt,'boundMU') - pln.propOpt.boundMU = false; -end - -if pln.propOpt.boundMU - if (isfield(dij,'minMU') || isfield(dij,'maxMU')) && ~isfield(dij,'numParticlesPerMU') - matRad_cfg.dispWarning('Requested MU bounds but number of particles per MU not set! Bounds will not be enforced and standard [0,Inf] will be used instead!'); - elseif ~isfield(dij,'minMU') && ~isfield(dij,'maxMU') - matRad_cfg.dispWarning('Requested MU bounds but machine bounds not defined in dij.minMU & dij.maxMU! Bounds will not be enforced and standard [0,Inf] will be used instead!'); - else - if isfield(dij,'minMU') - optiProb.minimumW = dij.numParticlesPerMU .* dij.minMU / 1e6; - matRad_cfg.dispInfo('Using lower MU bounds provided in dij!\n') - end - - if isfield(dij,'maxMU') - optiProb.maximumW = dij.numParticlesPerMU .* dij.maxMU / 1e6; - matRad_cfg.dispInfo('Using upper MU bounds provided in dij!\n') - end - end -else - matRad_cfg.dispInfo('Using standard MU bounds of [0,Inf]!\n') -end - -if ~isfield(pln.propOpt,'optimizer') - pln.propOpt.optimizer = 'IPOPT'; -end - -switch pln.propOpt.optimizer - case 'IPOPT' - optimizer = matRad_OptimizerIPOPT; - case 'fmincon' - optimizer = matRad_OptimizerFmincon; - otherwise - warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); - optimizer = matRad_OptimizerIPOPT; -end - - -% PARETO PART -if optimizer.options.acceptable_obj_change_tol > 1e-5 - warning(['Pareto Optimization requires more accurate results and therefore small objective change tolerance!']); -end -%get number of objectives at the start - -objcount = numel(optiProb.objectives); - -%% generaete Anchor Points for optimization -penGrid = matRad_generateAnchorPoints(objcount); - -%initialize matrices for weight vectors and associated objective function values -weights = zeros(numel(wInit),size(penGrid,1)); -fInd = zeros(size(penGrid,1),objcount); -objectiveFunctionVals = {}; -% loop over all anchor points - -for i = 1:size(penGrid,1) - - optiProb.updatePenalties(penGrid(i,:)); - - - optimizer = optimizer.optimize(wInit,optiProb,dij,cst); - wOpt = optimizer.wResult; - info = optimizer.resultInfo; - weights(:,i) = wOpt; - - %set values for warm start - %optimizer.optionsWarmStart.use = true; - %optimizer.optionsWarmStart.zl = info.zl; - %optimizer.optionsWarmStart.zu = info.zu; - %optimizer.optionsWarmStart.lambda = info.lambda; - fInd(i,:) = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; - objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; - -end - - - -%%normalize objectives - -optiProb.normalizationScheme.scheme = 'UL'; -optiProb.normalizationScheme.U = max(fInd,[],1); -optiProb.normalizationScheme.L = min(fInd,[],1); - -fInd = (fInd-optiProb.normalizationScheme.L)./(optiProb.normalizationScheme.U-optiProb.normalizationScheme.L); - - -%% Maybe: Grouping based on correlation of objectives -%% Generaete further points - -%initialize array storing OPS boundaries -OPSA = []; -OPSb = []; -np = size(penGrid,1); - -% first on: "Balanced point" after anchor points (slightly different calculation for normal) -% - -[a,b,firstNormal] = matRad_normalFromFacet(fInd,1:np,1); - -penGrid(np+1,:) = abs(firstNormal); -newPen = abs(firstNormal); - -%update cst values -optiProb.updatePenalties(newPen); % change for groupings! - -%calculate first new point - -optimizer = optimizer.optimize(wInit,optiProb,dij,cst); -wOpt = optimizer.wResult; -weights = [weights,wOpt]; -objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; -%wInit = wOpt; -fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; -fIndv = optiProb.normalizeObjectives(fIndv); - -fInd = [fInd;fIndv]; - -%initialize some variables that might be used if points are removed later on (should only happen with too high stopping criteria) -removedfInd = []; -removedpenGrid = []; -removedweights = []; -removedOPSA = []; -removedOPSb = []; - - -OPSA = [OPSA;-penGrid(np+1,:)]; -OPSb = [OPSb;-1*fInd(np+1,:)*penGrid(np+1,:)']; -errors = []; -allErrors = {}; - -initSize = size(penGrid,1); - -%calculating for distance measure -L = min(fInd,[],1); -U = max(fInd,[],1); -eps = U - L; - -%% calculate remaining facets - -for i = 1:nIter - fprintf('Now in iteration %i',i) - %Step 1 calculate convex Hull -> Inner approximation (IPS) and gives facets - %Rennen Algorithm - fVals = fInd; - - fValsMod = matRad_generateDummyPoints(fVals,U); %generate dummy points - % - [kmod,vol] = convhulln(fValsMod); - %[kred,vol] = convhulln(fVals); - - %check for relevant facets (those that contain points of the original - %fVals set) - IPSidxs = 1:size(fVals,1); - relFacetidxs = []; - for j = 1:size(kmod,1) - if any(ismember(kmod(j,:),IPSidxs)) - relFacetidxs = [relFacetidxs,j]; - end - end - facetMods = kmod(relFacetidxs,:); - facetErrors = zeros(size(facetMods,1),1); - normals = zeros(size(facetMods)); - - %Loop over facets and calculate error - for j = 1:size(relFacetidxs,2) - [facetPoints,refPoint,normal] = matRad_normalFromFacet(fValsMod,facetMods,j); - - - %check for sign of normals (might be redundant) - if all(normal<0) - continue - end - - %now check for OPS point for facet - lb = min(fVals,[],1); - ub = max(fVals,[],1); - z = linprog(normal,OPSA,OPSb,[],[],lb,ub); - - %hyperplane distance - b = refPoint*normal; - - %calculate error for each facet - - facetErrors(j) = (b-z'*normal)/(eps*normal); - normals(j,:) = normal; - - end - allErrors(end+1) = {facetErrors}; - [A,I] = sort(facetErrors,'descend'); - - %%check for next facet to run - found = false; - facetNum= 1; - accuracy = 4; - - while ~found && facetNum <= numel(I) %loop over facets - idx = I(facetNum); - norm = normals(idx,:); - - %check if facet has already been run - if ~any(ismember(round(penGrid,accuracy),round(norm,accuracy),'rows')) - - %update weights in cst - optiProb.updatePenalties(norm); - paretoOptimal = false; - calcPointsForFacet = 0; - - while ~paretoOptimal && calcPointsForFacet < 4 %more than 4 points? - if calcPointsForFacet < 3 - optimizer = optimizer.optimize(weights(:,end-calcPointsForFacet),optiProb,dij,cst); - else - optimizer = optimizer.optimize(wInit,optiProb,dij,cst); - end - - %really necessary? - if optimizer.resultInfo.iter < 15 %sometimes optimizer will terminate fast (points tend to be not optimal!) - calcPointsForFacet = calcPointsForFacet + 1; - continue - end - %check number of iterations needed for optimzation - wOpt = optimizer.wResult; - - fIndv = matRad_objectiveFunctions(optiProb,wOpt,dij,cst)'; - fIndv = optiProb.normalizeObjectives(fIndv); - %how does the newly generated point influence the pareto - %surface? - - dominatedPoints = matRad_paretoCheck(fInd,fIndv); - % if no point is dominated -> returns [] - % if the newly generated point is not optimal -> Returns array with a 0 inside - % if (a) previously generated point(s) is/are dominated by the - % newly generated point -> returns index in fInd -> Need to - % update penGrid, weights, fInd,OPSa,OPSb - - if isempty(dominatedPoints) - paretoOptimal = true; - - elseif dominatedPoints == 0 - calcPointsForFacet = calcPointsForFacet + 1; - continue %% found point is dominated by previously calculated point -> has to be recalculated - - else %newly calculated point dominates points on the previous pareto surface - paretoOptimal = true; - %remove dominated points and related equations %might - %have to check if this fully works - removedfInd = [removedfInd;fInd(dominatedPoints,:)]; - removedpenGrid = [removedpenGrid;penGrid(dominatedPoints,:)]; - removedweights = [removedweights,weights(:,dominatedPoints)]; - - - fInd(dominatedPoints,:) = []; - penGrid(dominatedPoints,:) = []; - weights(:,dominatedPoints) = []; - %Issue if - if ~(dominatedPoints-objcount <=0) - removedOPSA = [removedOPSA;OPSA(dominatedPoints-objcount,:)]; - removedOPSb = [removedOPSb;OPSb(dominatedPoints-objcount,:)]; - OPSA(dominatedPoints-objcount,:) = []; % shifted index - OPSb(dominatedPoints-objcount,:) = []; - - end - %remove dominated points - - end - end - objectiveFunctionVals(end + 1) = {optimizer.allObjectiveFunctionValues}; - errors = [errors,facetErrors(idx)]; - newPen = norm; - %awInit = wOpt; - info = optimizer.resultInfo; - weights = [weights,wOpt]; - penGrid = [penGrid;newPen]; - - - %fIndv = cellfun(@(group)sum(fIndv(:,group)),groups) - fInd = [fInd;fIndv]; - - found = true; - end - facetNum = facetNum +1; - end - - % when final point is found: Update OPSA and OPSb - OPSA = [OPSA;-newPen]; %add normal vector of facet that was run - OPSb = [OPSb;-fIndv*newPen']; - -end - - - - - -%defining a structure that contains all relevant information -returnStruct.OPSA = OPSA; -returnStruct.OPSb = OPSb; -returnStruct.weights = weights; -returnStruct.finds = fInd; -returnStruct.penGrid = penGrid; -returnStruct.errors = errors; -returnStruct.allErrors = allErrors; -returnStruct.removed = {removedfInd,removedpenGrid,removedweights,removedOPSA,removedOPSb}; - -returnStruct.weights = weights; -returnStruct.finds = fInd; -returnStruct.penGrid = penGrid; - -returnStruct.optiProb = optiProb; -returnStruct.allObj = objectiveFunctionVals; -returnStruct.modcst = cst; - -% unblock mex files -clear mex diff --git a/Pareto/tools/matRad_ParetoSurfFromFacets.m b/Pareto/tools/matRad_ParetoSurfFromFacets.m deleted file mode 100644 index 28cf12379..000000000 --- a/Pareto/tools/matRad_ParetoSurfFromFacets.m +++ /dev/null @@ -1,74 +0,0 @@ -function [k,facets] = matRad_paretoSurfFromFacets(fVals) -% matRad_paretoSurfFromFacets allows to calculate the facets of the pareto surface -% from its vertices. The facets are calculated by calculating the convex hull. -% -% call -% [k,facets] = matRad_paretoSurfFromFacets(fVals) -% -% input -% fVals: Matrix storing the objective function values of the pareto surface vertices (objective function values of the calculated points) -% -% output -% k: Matrix storing the vertices belonging to the facets of the convex hull -% facets: Matrix storing only the vertices that belong to the Pareto surface (The ones associated to facets with positive normals) -% -% References -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2023 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - %calculate convex hull - [k,vol] = convhulln(fVals); - - %% - %calculate normals for each facet(normal vectors are perpendicular to their respective facet) - %Done by solving P*n= 0 where P is a matrix with the vectors spanning the hyperplane and n the - %normal vector to be calculated - - %initializing some objects that are returned by the function - facets= zeros(size(k)); - - j = 0; - %% loop over all facets of convex hull - for i = 1:size(k,1) - %% Step2: Calculate upper bounds from convex hull - %vertices of facets - ps = fVals(k(i,:),:); - %calculate vectors spanning hyperplane through refPoint - refPoint = ps(1,:); - f = ps-refPoint; % vectors spanning hyperplan through ps(1,:) - zw = f(2:end,:); % remove reference Point - % - normal = null(zw); %solve P*n=0 P Matrix - - %% check orientation of calculated normal vector - %get vertex not in facet and calculate orientation of facet - idxs = (1:size(fVals,1)); - diffs = setdiff(idxs,k(i,:)); % find vertex not in facet - - %check if orientation and normal vector face in same direction - orientationVector = fVals(diffs(1),:)-refPoint; - orientation =(orientationVector*normal>0); - - %flip orientation of normal vector if it goes in the opposite direction - normal = normal*(2*orientation-1); - normal = round(normal,4); - - %reject facet if normal has all negative components - - if any(round(normal,3)<0) - continue - end - facets(i,:) = k(i,:); - end -end \ No newline at end of file diff --git a/ParetoGUI/matRad_ButtonWidget.m b/ParetoGUI/matRad_ButtonWidget.m new file mode 100644 index 000000000..154a013f8 --- /dev/null +++ b/ParetoGUI/matRad_ButtonWidget.m @@ -0,0 +1,124 @@ +classdef matRad_ButtonWidget < matRad_Widget + % matRad_InfoWidget class to generate GUI widget to display system and + % version information + % + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2020 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + sliderWidgetHandle + dvhWidgetHandle + end + + methods + function this = matRad_ButtonWidget(handleParent,sliderWidgetHandle,dvhWidgetHandle) + + this = this@matRad_Widget(handleParent); + this.sliderWidgetHandle = sliderWidgetHandle; + this.dvhWidgetHandle = dvhWidgetHandle; + end + end + + methods (Access = protected) + function this = createLayout(this) + ButtonPanel= this.widgetHandle; + matRad_cfg = MatRad_Config.instance(); + %About button + DVHButton = uicontrol(... + 'Parent',ButtonPanel,... + 'Units','normalized',... + 'String','Show DVH',... + 'Tooltip', 'Show the DVH for the current plan',... + 'Position',[0.1 0.55 0.35 0.25],... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight,... + 'Tag','btn_export',... + 'Callback',@this.DVHButton_callback); + + exportButton = uicontrol(... + 'Parent',ButtonPanel,... + 'Units','normalized',... + 'String','Export',... + 'Tooltip', 'Export selected quantites to selected folder',... + 'UserData',[],... + 'Position',[0.55 0.55 0.35 0.25],... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight,... + 'Tag','btn_export',... + 'Callback',@this.ExportButton_callback); + + resetButton = uicontrol(... + 'Parent',ButtonPanel,... + 'Units','normalized',... + 'String','Reset constraints',... + 'Tooltip', 'Export selected quantites to selected folder',... + 'UserData',[],... + 'Position',[0.25 0.15 0.5 0.25],... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight,... + 'Tag','btn_export',... + 'Callback',@this.ResetConstraintButton_callback); + end + + + function DVHButton_callback(this,~,~) + %Shows the DVH for the current plan + resultGUI = matRad_calcCubes(this.sliderWidgetHandle.helperObject.currentWeights,evalin('base','dij')); + dvh = matRad_calcDVH(evalin('base','cst'),resultGUI.physicalDose,'cum'); + + matRad_showDVH(this.dvhWidgetHandle.DVHPlotAxes,... + dvh,evalin('base','cst'),evalin('base','pln'),this.sliderWidgetHandle.helperObject.linestyle); + if this.sliderWidgetHandle.helperObject.linestyle < 4 + this.sliderWidgetHandle.helperObject.linestyle = this.sliderWidgetHandle.helperObject.linestyle + 1; + else + this.sliderWidgetHandle.helperObject.linestyle = 1; + end + % + + end + + function ExportButton_callback(this,~,~) + %Export the current plan to the matRadGUi for better inspection + resultGUI = matRad_calcCubes(this.sliderWidgetHandle.helperObject.currentWeights,evalin('base','dij')); + assignin('base',"resultGUI",resultGUI); + matRadGUI; + + end + + function ResetConstraintButton_callback(this,~,~) + this.sliderWidgetHandle.helperObject.releaseObjectiveBounds(); + + for i = 1:numel(this.sliderWidgetHandle.objectiveSliders) + set(this.sliderWidgetHandle.objectiveSliders{i},'Min',this.sliderWidgetHandle.helperObject.lowboundSliderInit(i)); + set(this.sliderWidgetHandle.objectiveSliders{i},'Max',this.sliderWidgetHandle.helperObject.initialUpbound(i)); + end + end + + + end + + +end diff --git a/ParetoGUI/matRad_ParetoDVHWidget.m b/ParetoGUI/matRad_ParetoDVHWidget.m new file mode 100644 index 000000000..ff4377fa4 --- /dev/null +++ b/ParetoGUI/matRad_ParetoDVHWidget.m @@ -0,0 +1,57 @@ +classdef matRad_ParetoDVHWidget < matRad_Widget + % matRad_ParetoSliceWidget class + % + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + DVHPlotAxes + end + + methods + function this = matRad_ParetoDVHWidget(handleParent) + this = this@matRad_Widget(handleParent); + this.DVHPlotAxes = axes(this.widgetHandle,'Position',[0 0 1 1]); + end + + function this = initialize(this) + this.update(); + end + + + end + + methods (Access = protected) + function this = createLayout(this) + + parent = this.widgetHandle; + + matRad_cfg = MatRad_Config.instance(); + + + this.createHandles(); + end + + function this = doUpdate(this,evt) + %getFromWorkspace(this); + %updateInWorkspace(this); + end + end + +end + + diff --git a/ParetoGUI/matRad_ParetoData.m b/ParetoGUI/matRad_ParetoData.m new file mode 100644 index 000000000..4702e3e7c --- /dev/null +++ b/ParetoGUI/matRad_ParetoData.m @@ -0,0 +1,80 @@ +classdef matRad_ParetoData < handle + % matRad_UIData implements a class that allows easy storing of + % variables related to the pareto Navigation + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + currentWeights + allWeights + currentPoint %objective function values of last calculated plan + allPoints % matrix storing all objective function values + availablePoints % stores only the points not blocked by boundaries + initialUpbound + availableUpbound + upboundSlider + lowboundSliderInit + lowboundSlider + linestyle + end + + methods + function this = matRad_ParetoData(allPoints,allWeights) + %initialize first set + this.allWeights = allWeights; + this.allPoints = allPoints; + this.availablePoints = allPoints; + this.initialUpbound = max(allPoints,[],1); + this.availableUpbound = max(allPoints,[],1); + this.upboundSlider = max(allPoints,[],1); + this.lowboundSliderInit = min(allPoints,[],1); + this.lowboundSlider = min(allPoints,[],1); + this.linestyle = 2; + + %calculate an initial point based on the shortes distance to the + %polyhedral center + center = mean(this.allPoints,1); + shiftedPoints = this.allPoints-center; + distToCenter = sum(shiftedPoints.^2,2); + [~,idx] = min(distToCenter); + this.currentPoint = this.allPoints(idx,:); + this.currentWeights = this.allWeights(:,idx); + + end + + + function [sliderLowBound,sliderUpBound] = restrictObjective(this,i,bound) + %restrict the upper value of a specific slider + this.availableUpbound(i) = bound; + this.availablePoints = this.availablePoints(this.availablePoints(:,i) <= bound,:); + this.upboundSlider= max([this.availablePoints;this.currentPoint'],[],1); + this.upboundSlider(i) = bound; + this.lowboundSlider = min([this.availablePoints;this.currentPoint'],[],1); + sliderLowBound = this.lowboundSlider; + sliderUpBound = this.upboundSlider; + end + + function releaseObjectiveBounds(this) + %reset objective bounds + this.availableUpbound = this.initialUpbound; + this.availablePoints = this.allPoints; + this.upboundSlider = this.initialUpbound; + this.lowboundSlider = this.lowboundSliderInit; + end + + end +end \ No newline at end of file diff --git a/ParetoGUI/matRad_ParetoGUI.m b/ParetoGUI/matRad_ParetoGUI.m new file mode 100644 index 000000000..a41ee5ec9 --- /dev/null +++ b/ParetoGUI/matRad_ParetoGUI.m @@ -0,0 +1,130 @@ +classdef matRad_ParetoGUI < handle +% matRad_MainGUI Graphical User Interface configuration class +% This Class is used to create the main GUI interface where all the widgets +% are called and created. +% +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2019 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + properties + guiHandle + lastStoragePath = [] + end + + properties (Access = private) + LogoWidget + ParetoSliceWidget + SliderWidget + DVHWidget + ButtonWidget + end + + methods + function this = matRad_ParetoGUI(varargin) + %Panel for Main Widget + + matRad_cfg = MatRad_Config.instance(); + + this.guiHandle = figure(... + 'Units','normalized',... + 'Position',[0.005 0.04 0.99 0.9],... %approximate fullscreen position + 'Visible','on',... + 'Color',matRad_cfg.gui.backgroundColor,... + 'IntegerHandle','off',... + 'Colormap',[0 0 0.5625;0 0 0.625;0 0 0.6875;0 0 0.75;0 0 0.8125;0 0 0.875;0 0 0.9375;0 0 1;0 0.0625 1;0 0.125 1;0 0.1875 1;0 0.25 1;0 0.3125 1;0 0.375 1;0 0.4375 1;0 0.5 1;0 0.5625 1;0 0.625 1;0 0.6875 1;0 0.75 1;0 0.8125 1;0 0.875 1;0 0.9375 1;0 1 1;0.0625 1 1;0.125 1 0.9375;0.1875 1 0.875;0.25 1 0.8125;0.3125 1 0.75;0.375 1 0.6875;0.4375 1 0.625;0.5 1 0.5625;0.5625 1 0.5;0.625 1 0.4375;0.6875 1 0.375;0.75 1 0.3125;0.8125 1 0.25;0.875 1 0.1875;0.9375 1 0.125;1 1 0.0625;1 1 0;1 0.9375 0;1 0.875 0;1 0.8125 0;1 0.75 0;1 0.6875 0;1 0.625 0;1 0.5625 0;1 0.5 0;1 0.4375 0;1 0.375 0;1 0.3125 0;1 0.25 0;1 0.1875 0;1 0.125 0;1 0.0625 0;1 0 0;0.9375 0 0;0.875 0 0;0.8125 0 0;0.75 0 0;0.6875 0 0;0.625 0 0;0.5625 0 0],... + 'MenuBar','none',... + 'Name','matRad Pareto Navigator (NOT FOR CLINICAL USE!)',... + 'HandleVisibility','callback',... + 'Tag','figure1',... + 'CloseRequestFcn',@(src,hEvent) figure1_CloseRequestFcn(this,src,hEvent)); + + %WindowState not available in all versions + if isprop(this.guiHandle,'WindowState') + set(this.guiHandle,'WindowState','maximized'); + end + + pParetoSlice = uipanel(... + 'Parent',this.guiHandle,... + 'Units','normalized',... + 'Title','Current plan Slice',... + 'BackgroundColor',matRad_cfg.gui.backgroundColor,... + 'Tag','PlanSlicePanel',... + 'Clipping','off',... + 'Position',[0.01 0.5 0.45 0.49],... + 'FontName',matRad_cfg.gui.fontName,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontWeight',matRad_cfg.gui.fontWeight); + + + pSliderWidget = uipanel( ... + 'Parent',this.guiHandle,... + 'Units','normalized',... + 'BackgroundColor',matRad_cfg.gui.backgroundColor,... + 'Tag','SliderPanel',... + 'Clipping','off',... + 'Position',[0.005 0.005 0.5 0.49],... + 'FontName',matRad_cfg.gui.fontName,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontWeight',matRad_cfg.gui.fontWeight); + pSliderWidget.Scrollable = "on"; + + + pButtonWidget = uipanel(... + 'Parent',this.guiHandle,... + 'Units','normalized',... + 'BackgroundColor',matRad_cfg.gui.backgroundColor,... + 'Tag','Additional Button Panel',... + 'Clipping','off',... + 'Position',[0.51 0.395 0.15 0.1],... + 'FontName',matRad_cfg.gui.fontName,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontWeight',matRad_cfg.gui.fontWeight); + + pParetoDVHWidget = uipanel(... + 'Parent',this.guiHandle,... + 'Units','normalized',... + 'Title','DVH ',... + 'BackgroundColor',matRad_cfg.gui.backgroundColor,... + 'Tag','DVHPanel',... + 'Clipping','off',... + 'Position',[0.51 0.5 0.45 0.49],... + 'FontName',matRad_cfg.gui.fontName,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontWeight',matRad_cfg.gui.fontWeight); + + + + this.ParetoSliceWidget = matRad_ParetoSliceWidget(pParetoSlice); + this.SliderWidget = matRad_SliderWidget(pSliderWidget,this.ParetoSliceWidget); + this.DVHWidget = matRad_ParetoDVHWidget(pParetoDVHWidget); + this.ButtonWidget = matRad_ButtonWidget(pButtonWidget,this.SliderWidget,this.DVHWidget); + + end + + function figure1_CloseRequestFcn(this,hObject, ~) + matRad_cfg = MatRad_Config.instance(); + set(0,'DefaultUicontrolBackgroundColor',matRad_cfg.gui.backgroundColor); + selection = questdlg('Do you really want to close the matRad ParetoInterface?',... + 'Close matRad',... + 'Yes','No','Yes'); + + switch selection + case 'Yes' + delete(hObject); + delete(this); + case 'No' + return + end + end + end +end \ No newline at end of file diff --git a/ParetoGUI/matRad_ParetoSliceWidget.m b/ParetoGUI/matRad_ParetoSliceWidget.m new file mode 100644 index 000000000..25594a106 --- /dev/null +++ b/ParetoGUI/matRad_ParetoSliceWidget.m @@ -0,0 +1,57 @@ +classdef matRad_ParetoSliceWidget < matRad_Widget + % matRad_ParetoSliceWidget class + % + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + DosePlotAxes + end + + methods + function this = matRad_ParetoSliceWidget(handleParent) + this = this@matRad_Widget(handleParent); + this.DosePlotAxes = axes(this.widgetHandle,'Position',[0 0 1 1]); + end + + function this = initialize(this) + this.update(); + end + + + end + + methods (Access = protected) + function this = createLayout(this) + + parent = this.widgetHandle; + + matRad_cfg = MatRad_Config.instance(); + + + this.createHandles(); + end + + function this = doUpdate(this,evt) + %getFromWorkspace(this); + %updateInWorkspace(this); + end + end + +end + + diff --git a/ParetoGUI/matRad_SliderWidget.m b/ParetoGUI/matRad_SliderWidget.m new file mode 100644 index 000000000..a2498afb0 --- /dev/null +++ b/ParetoGUI/matRad_SliderWidget.m @@ -0,0 +1,463 @@ +classdef matRad_SliderWidget < matRad_Widget + % matRad_OptimizationWidget class to generate GUI widget to set + % optimization options + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2020 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + paretoSliceWidgetHandle + objectiveSliders + fixationButtons + helperObject + optiProb + end + + methods + function this = matRad_SliderWidget(handleParent,paretoSliceWidgetHandle) + + matRad_cfg = MatRad_Config.instance(); + this = this@matRad_Widget(handleParent); + + this.paretoSliceWidgetHandle = paretoSliceWidgetHandle; + this.objectiveSliders = {}; + %TODO: Best way to pass objective function values? + fAll = evalin('base','retStruct.finds'); + wAll = evalin('base','retStruct.weights'); + this.optiProb = evalin('base','retStruct.optiProb'); + this.helperObject = matRad_ParetoData(fAll,wAll); + this.initialize(); + %this.plotSlice(this.helperObject.currentWeights); + end + + end + + methods (Access = protected) + function this = createLayout(this) + h1 = this.widgetHandle; + + matRad_cfg = MatRad_Config.instance(); + % handle environment + switch matRad_cfg.env + case 'MATLAB' + set(h1,'SizeChangedFcn',@(hObject,eventdata) widget_SizeChangedFcn(this,hObject,eventdata)); + case 'OCTAVE' + % this creates an infinite loop in octave + %set(h1,'SizeChangedFcn',@(hObject,eventdata) widget_SizeChangedFcn(this,hObject,eventdata)); + end + + this.createHandles(); + + end + + function this = doUpdate(this,evt) + + doUpdate = true; + if nargin == 2 + %At pln changes and at cst/cst (for Isocenter and new settings) + %we need to update + doUpdate = this.checkUpdateNecessary({'cst'},evt); + end + + if doUpdate + if evalin('base','exist(''ct'')') && evalin('base','exist(''cst'')') + generateSliderTable(this, evalin('base','cst')); + else + delete(get(this.widgetHandle,'Children')); + end + end + + end + end + + methods(Access = private) + + function cst = generateSliderTable(this,cst) + matRad_cfg = MatRad_Config.instance(); + + %cst = updateStructureTable(this,cst); + handles = this.handles; + SliderPanel = this.widgetHandle; + + SliderPanelPos = get(SliderPanel,'Position'); + SliderPanelPosUnit = get(SliderPanel,'Units'); + set(SliderPanel,'Units','pixels'); + SliderPanelPosPix = get(SliderPanel,'Position'); + set(SliderPanel,'Units',SliderPanelPosUnit); + aspectRatio = SliderPanelPosPix(3) / SliderPanelPosPix(4); + + %Parameters for line height + objHeight = 0.055;% 22; + lineHeight = 0.1; %25; %Height of a table line + yTopSep = 0.12;%40; %Separation of the first line from the top + %tableViewHeight = SliderPanelPos(4) - yTopSep; %Full height of the view + tableViewHeight = 1 - yTopSep; + + %Widths of the fields + buttonW = objHeight*1.5 / aspectRatio; % Make button squared + nameW = 3*buttonW;%60; + sliderW = 5*buttonW; + functionW = 5*buttonW;%120; + paramTitleW = 4*buttonW;%120; + paramW = 1*buttonW;%30; + fieldSep = 0.25*buttonW; %Separation between fields horizontally + + %disp(num2str(sliderPos)); + SliderPanelChildren = get(SliderPanel,'Children'); + cstVertTableScroll = findobj(SliderPanelChildren,'Tag','VerticalSlider'); + if isempty(cstVertTableScroll) + sliderPos = 0; + else + sliderPos = get(cstVertTableScroll,'Max') - get(cstVertTableScroll,'Value'); + end + + ypos = @(c) tableViewHeight - c*lineHeight + sliderPos; + + delete(SliderPanelChildren); + + + %Creates a dummy axis to allow for the use of textboxes instead of uicontrol to be able to use the (la)tex interpreter + tmpAxes = axes('Parent',SliderPanel,'units','normalized','position',[0 0 1 1],'visible','off', 'FontSize',8); + + organTypes = {'OAR', 'TARGET','IGNORED'}; + + %Get all Classes & classNames + classNames = matRad_getObjectivesAndConstraints(); + + numOfObjectives = 0; + for i = 1:size(cst,1) + for j = 1:numel(cst{i,6}) + if isa(cst{i,6}{j},'DoseObjectives.matRad_DoseObjective') + numOfObjectives = numOfObjectives + 1; + end + end + end + %line + % step count + cnt = 0; + + newline = '\n'; + + %Setup Headlines + xPos = 0.01; %5 + + h2 = uicontrol(SliderPanel,'Style','text', ... + 'String','VOI name', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) nameW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'Tooltip','Name of the structure with objective/constraint', ... + 'BackgroundColor',matRad_cfg.gui.backgroundColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor); + + tmp_pos = get(h2,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + h7 = uicontrol(SliderPanel,'Style','text', ... + 'String','Function slider', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) functionW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'Tooltip','Objective/Constraint function type', ... + 'BackgroundColor',matRad_cfg.gui.backgroundColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor); + + tmp_pos = get(h7,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + h3 = uicontrol(SliderPanel,'Style','text', ... + 'String','Fix slider', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) buttonW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'Tooltip','Button to fixate a slider', ... + 'BackgroundColor',matRad_cfg.gui.backgroundColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor); + + tmp_pos = get(h3,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + h6 = uicontrol(SliderPanel,'Style','text', ... + 'String','Function', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) sliderW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'Tooltip','Objective/Constraint function type', ... + 'BackgroundColor',matRad_cfg.gui.backgroundColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor); + + tmp_pos = get(h6,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + h8 = uicontrol(SliderPanel,'Style','text', ... + 'String','| Parameters', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) paramTitleW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'Tooltip','List of parameters', ... + 'HorizontalAlignment','left', ... + 'BackgroundColor',matRad_cfg.gui.backgroundColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor); + + tmp_pos = get(h8,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + cnt = cnt + 1; + %} + %Create Objectives / Constraints controls + for i = 1:size(cst,1) + if strcmp(cst(i,3),'IGNORED')~=1 + %Compatibility Layer for old objective format + if isstruct(cst{i,6}) + cst{i,6} = num2cell(arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6})); + end + for j=1:numel(cst{i,6}) + %TODO: Add check if constraint or objective + obj = cst{i,6}{j}; + + %Convert to class if not + if ~isa(obj,'matRad_DoseOptimizationFunction') + try + obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); + catch ME + this.showWarning('Objective/Constraint not valid!\n%s',ME.message) + continue; + end + end + + if isa(obj,'DoseObjectives.matRad_DoseObjective') + xPos = 0.01; + h = uicontrol(SliderPanel','Style','edit', ... + 'String',cst{i,2}, ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) nameW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.elementColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor, ... + 'Tooltip','Name',... + 'Enable','inactive',... %Disable editing of name atm + 'UserData',[i,2]); + + tmp_pos = get(h,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + %Slider + this.objectiveSliders{cnt} = uicontrol(SliderPanel,'Units','normalized',... + 'String','Slider',... + 'Tooltip','Adjust objective penalty',... + 'Position',[xPos ypos(cnt) sliderW objHeight], ... + 'Style','slider',... + 'BusyAction','cancel',... + 'Interruptible','off',... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'Callback',@(hObject,eventdata)ObjectiveSlider_callback(this,hObject,eventdata,cnt)); + this.objectiveSliders{cnt}.Value = this.helperObject.currentPoint(cnt); + + tmp_pos = get(this.objectiveSliders{cnt},'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + this.fixationButtons{cnt} = uicontrol(SliderPanel,'Style','pushbutton', ... + 'String','fix', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) buttonW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.elementColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor, ... + 'Tooltip','Remove Objective/Constraint',... + 'Callback',@(hObject,eventdata)FixButton_callback(this,hObject,eventdata,cnt)); + tmp_pos = get(this.fixationButtons{cnt},'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + h = uicontrol(SliderPanel,'Style','text', ... + 'String',obj.name, ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) functionW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.elementColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor, ... + 'Tooltip','Objective/Constraint',... + 'UserData',{[i,j],classNames(1,:)}); + + tmp_pos = get(h,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + + + + for p = 1:numel(obj.parameterNames) + % h = text('Parent',tmpAxes,'String',['| ' obj.parameterNames{p} ':'],'VerticalAlignment','middle','Units','normalized','Position',[xPos ypos(cnt)+lineHeight/2],'Interpreter','tex','FontWeight','normal',... + % 'FontSize',get(SliderPanel,'FontSize'),'FontName',get(SliderPanel,'FontName'),'FontUnits',get(SliderPanel,'FontUnits'),'FontWeight','normal');%[xPos ypos(cnt) 100 objHeight]); + % there is no fontsize for SliderPanel + h = text('Parent',tmpAxes, ... + 'String',['| ' obj.parameterNames{p} ':'], ... + 'VerticalAlignment','middle', ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt)+lineHeight/2], ... + 'Interpreter','tex', ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.backgroundColor, ... + 'Color',matRad_cfg.gui.textColor);%[xPos ypos(cnt) 100 objHeight]); + + tmp_pos = get(h,'Extent'); + xPos = xPos + tmp_pos(3) + fieldSep; + %h = annotation(SliderPanel,'textbox','String',obj.parameters{1,p},'Units','pix','Position', [xPos ypos(cnt) 100 objHeight],'Interpreter','Tex'); + + %Check if we have a cell and therefore a parameter list + if iscell(obj.parameterTypes{p}) + h = uicontrol(SliderPanel,'Style','popupmenu', ... + 'String',obj.parameterTypes{p}', ... + 'Value',obj.parameters{p}, ... + 'Tooltip',obj.parameterNames{p}, ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) paramW*2 objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.elementColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor, ... + 'UserData',[i,j,p]); + else + h = uicontrol(SliderPanel,'Style','text', ... + 'String',num2str(obj.parameters{p}), ... + 'Tag','FunctionValueSlider',... + 'Tooltip',obj.parameterNames{p}, ... + 'Units','normalized', ... + 'Position',[xPos ypos(cnt) paramW objHeight], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.elementColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor, ... + 'UserData',[i,j,p]); + end + + tmp_pos = get(h,'Position'); + xPos = xPos + tmp_pos(3) + fieldSep; + end + + + cnt = cnt +1; + end + end + end + end + %Calculate Scrollbar + lastPos = ypos(cnt); + firstPos = ypos(0); + tableHeight = abs(firstPos - lastPos); + + exceedFac = tableHeight / tableViewHeight; + if exceedFac > 1 + sliderFac = exceedFac - 1; + uicontrol(SliderPanel,'Style','slider', ... + 'Units','normalized', ... + 'Tag','VerticalSlider',... + 'Position',[0.975 0 0.025 1], ... + 'FontSize',matRad_cfg.gui.fontSize, ... + 'FontName',matRad_cfg.gui.fontName, ... + 'FontWeight',matRad_cfg.gui.fontWeight, ... + 'BackgroundColor',matRad_cfg.gui.elementColor, ... + 'ForegroundColor',matRad_cfg.gui.textColor, ... + 'Min',0,'Max',ceil(sliderFac)*tableViewHeight, ... + 'SliderStep',[lineHeight tableViewHeight] ./ (ceil(sliderFac)*tableViewHeight), ... + 'Value',ceil(sliderFac)*tableViewHeight - sliderPos, ... + 'Callback', @(hObject,eventdata)cstTableSlider_Callback(this,hObject,eventdata)); + end + this.handles = handles; + end + + function ObjectiveSlider_callback(this,slider,~,idx) + % + v = matRad_navigationProblem(this.helperObject.allPoints',this.helperObject.currentPoint,slider.Value,idx,this.helperObject.availableUpbound); + + if numel(v) == 0 + %navigation algorithm didnt find a new point + for i = 1:numel(this.objectiveSliders) + set(this.objectiveSliders{i},'Value',this.helperObject.currentPoint(i)); + end + else + wNew = this.helperObject.allWeights*v; + + fNew = this.helperObject.allPoints'*v;% evaluate function(strictly necessary?) + %fNew = this.optiProb.normalizeObjectives(fNew'); + + + this.helperObject.currentPoint = fNew; + this.helperObject.currentWeights = wNew; + + %Open: Current + for i = 1:numel(this.objectiveSliders) + set(this.objectiveSliders{i},'Value',fNew(i)); + end + + this.plotSlice(wNew); + end + end + + function plotSlice(this,w) + slice = round(evalin('base','pln.propStf.isoCenter(1,3)./ct.resolution.z')); + cubes = matRad_calcFastCubes(w,evalin('base','dij'),evalin('base','pln')); + + matRad_plotSliceWrapper(this.paretoSliceWidgetHandle.DosePlotAxes,evalin('base','ct'),evalin('base','cst'),1,cubes,3,slice); + end + + function FixButton_callback(this,~,~,idx) + + [lb,ub] = this.helperObject.restrictObjective(idx,this.objectiveSliders{idx}.Value); %update refObjects bounds + + + for i = 1:numel(this.objectiveSliders) + set(this.objectiveSliders{i},'Min',lb(i)); + set(this.objectiveSliders{i},'Max',ub(i)); + end + end + + + % --- Executes when the widget is resized. + function widget_SizeChangedFcn(this,hObject, eventdata) + % hObject handle to h1 (see GCBO) + % eventdata reserved - to be defined in a future version of MATLAB + % handles structure with handles and user data (see GUIDATA) + try + generateSliderTable(this,evalin('base','cst')); + catch + end + end + + % --- Executes on slider movement. + function cstTableSlider_Callback(this,~,~) + % hObject handle to cstTableSlider (see GCBO) + % eventdata reserved - to be defined in a future version of MATLAB + % handles structure with handles and user data (see GUIDATA) + + % Hints: get(hObject,'Value') returns position of slider + % get(hObject,'Min') and get(hObject,'Max') to determine range of slider + try + generateSliderTable(this,evalin('base','cst')); + catch + end + end + end +end diff --git a/matRadParetoGUI.m b/matRadParetoGUI.m new file mode 100644 index 000000000..92a1f0c37 --- /dev/null +++ b/matRadParetoGUI.m @@ -0,0 +1,47 @@ +function hGUI = matRadParetoGUI(varargin) +% matRad compatability function to call the matRad_MainGUI +% The function checks input parameters and handles the GUI as a +% singleton, so following calls will not create new windows +% +% call +% hGUI = matRadGUI +% matRadGUI +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2015 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +persistent hMatRadParetoGUI; + +%Initialize navigation structures -> Check for retStruct etc. +retStruct = evalin('base','retStruct'); +finds = retStruct.finds; +weights = retStruct.weights; + +%Matrix storing objective function values of all calculated plans +assignin('base','finds',finds); + +%Matrix storing the plans' associated weights +assignin('base','weights',weights); + +matRad_ParetoGUI(); + + + + + + + diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index c62221deb..3065d65c7 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -95,7 +95,7 @@ function normalizedfVals = normalizeObjectives(optiProb,fVals) %function to normalize objectives (used for sandwich %algorithms) - switch optiProb.normalizationScheme + switch optiProb.normalizationScheme.type case 'none' %default case no normalization normalizedfVals = fVals; diff --git a/Pareto/matRad_paretoOptimization.m b/optimization/ParetoOptimization/matRad_paretoOptimization.m similarity index 100% rename from Pareto/matRad_paretoOptimization.m rename to optimization/ParetoOptimization/matRad_paretoOptimization.m diff --git a/Pareto/tools/matRad_generateAnchorPoints.m b/optimization/ParetoOptimization/tools/matRad_generateAnchorPoints.m similarity index 100% rename from Pareto/tools/matRad_generateAnchorPoints.m rename to optimization/ParetoOptimization/tools/matRad_generateAnchorPoints.m diff --git a/Pareto/tools/matRad_generateDummyPoints.m b/optimization/ParetoOptimization/tools/matRad_generateDummyPoints.m similarity index 100% rename from Pareto/tools/matRad_generateDummyPoints.m rename to optimization/ParetoOptimization/tools/matRad_generateDummyPoints.m diff --git a/Pareto/tools/matRad_normalFromFacet.m b/optimization/ParetoOptimization/tools/matRad_normalFromFacet.m similarity index 100% rename from Pareto/tools/matRad_normalFromFacet.m rename to optimization/ParetoOptimization/tools/matRad_normalFromFacet.m diff --git a/Pareto/tools/matRad_paretoCheck.m b/optimization/ParetoOptimization/tools/matRad_paretoCheck.m similarity index 100% rename from Pareto/tools/matRad_paretoCheck.m rename to optimization/ParetoOptimization/tools/matRad_paretoCheck.m diff --git a/Pareto/tools/matRad_paretoSurfFromFacets.m b/optimization/ParetoOptimization/tools/matRad_paretoSurfFromFacets.m similarity index 100% rename from Pareto/tools/matRad_paretoSurfFromFacets.m rename to optimization/ParetoOptimization/tools/matRad_paretoSurfFromFacets.m diff --git a/Pareto/plotting/matRad_plotPenaltyPoints.m b/plotting/matRad_plotPenaltyPoints.m similarity index 100% rename from Pareto/plotting/matRad_plotPenaltyPoints.m rename to plotting/matRad_plotPenaltyPoints.m From e8c621837cdfde09bb20700eb1de3c81bfeb8423 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Wed, 24 Jan 2024 14:10:24 +0100 Subject: [PATCH 15/32] Small bug fix --- .../@matRad_OptimizationProblem/matRad_OptimizationProblem.m | 2 +- optimization/ParetoOptimization/matRad_paretoOptimization.m | 2 +- optimization/optimizer/matRad_OptimizerIPOPT.m | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index 3065d65c7..2532ba905 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -95,7 +95,7 @@ function normalizedfVals = normalizeObjectives(optiProb,fVals) %function to normalize objectives (used for sandwich %algorithms) - switch optiProb.normalizationScheme.type + switch optiProb.normalizationScheme.name case 'none' %default case no normalization normalizedfVals = fVals; diff --git a/optimization/ParetoOptimization/matRad_paretoOptimization.m b/optimization/ParetoOptimization/matRad_paretoOptimization.m index 8f0f145a3..4acaef0c7 100644 --- a/optimization/ParetoOptimization/matRad_paretoOptimization.m +++ b/optimization/ParetoOptimization/matRad_paretoOptimization.m @@ -342,7 +342,7 @@ %%normalize objectives -optiProb.normalizationScheme.scheme = 'UL'; +optiProb.normalizationScheme.name = 'UL'; optiProb.normalizationScheme.U = max(fInd,[],1); optiProb.normalizationScheme.L = min(fInd,[],1); diff --git a/optimization/optimizer/matRad_OptimizerIPOPT.m b/optimization/optimizer/matRad_OptimizerIPOPT.m index 4ff4e6be2..d17bc964f 100644 --- a/optimization/optimizer/matRad_OptimizerIPOPT.m +++ b/optimization/optimizer/matRad_OptimizerIPOPT.m @@ -80,7 +80,7 @@ obj.options.acceptable_constr_viol_tol = 1e-2; % (Acc3) obj.options.acceptable_dual_inf_tol = 1e10; % (Acc4) obj.options.acceptable_compl_inf_tol = 1e10; % (Acc5) - obj.options.acceptable_obj_change_tol = 1e-4; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled + obj.options.acceptable_obj_change_tol = 1e-5; % (Acc6), Solved To Acceptable Level if (Acc1),...,(Acc6) fullfiled obj.options.max_iter = matRad_cfg.propOpt.defaultMaxIter; obj.options.max_cpu_time = 7200; From b38a85995d16fec33bc824313a469bd57553ff97 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:40:45 +0100 Subject: [PATCH 16/32] Added lexicographic optimization - Created a preProcessing function that is called at the start of fluenceOptimization and lexicographicOptimization to unify the process - Updated objectives to allow for change to lexicographic objective _ Added support for priority lists --- MatRad_Config.m | 2 +- ...tRad_example16_lexicographicOptimization.m | 51 +++ matRad_fluenceOptimization.m | 409 ++++-------------- matRad_preProcessing.m | 315 ++++++++++++++ .../matRad_DoseConstraintFromObjective.m | 17 +- .../+DoseObjectives/matRad_DoseObjective.m | 4 + optimization/+DoseObjectives/matRad_EUD.m | 13 + optimization/+DoseObjectives/matRad_EUDMin.m | 118 ----- optimization/+DoseObjectives/matRad_MaxDVH.m | 5 + .../+DoseObjectives/matRad_MeanDose.m | 13 +- optimization/+DoseObjectives/matRad_MinDVH.m | 7 + .../+DoseObjectives/matRad_SquaredDeviation.m | 14 + .../matRad_SquaredOverdosing.m | 14 + .../matRad_SquaredUnderdosing.m | 15 + .../matRad_OptimizationProblem.m | 69 +-- .../Lexicgoraphic/matRad_2pecOptimization.m | 146 +++++++ .../Lexicgoraphic/matRad_PriorityClass.m | 146 +++++++ .../Lexicgoraphic/matRad_PriorityList1.m | 96 ++++ .../Lexicgoraphic/matRad_PriorityList2.m | 53 +++ .../matRad_PriorityListConstraint.m | 33 ++ .../matRad_PriorityListObjective.m | 49 +++ 21 files changed, 1094 insertions(+), 495 deletions(-) create mode 100644 examples/matRad_example16_lexicographicOptimization.m create mode 100644 matRad_preProcessing.m delete mode 100644 optimization/+DoseObjectives/matRad_EUDMin.m create mode 100644 optimization/Lexicgoraphic/matRad_2pecOptimization.m create mode 100644 optimization/Lexicgoraphic/matRad_PriorityClass.m create mode 100644 optimization/Lexicgoraphic/matRad_PriorityList1.m create mode 100644 optimization/Lexicgoraphic/matRad_PriorityList2.m create mode 100644 optimization/Lexicgoraphic/matRad_PriorityListConstraint.m create mode 100644 optimization/Lexicgoraphic/matRad_PriorityListObjective.m diff --git a/MatRad_Config.m b/MatRad_Config.m index 6d122dc5a..8a4a143a9 100644 --- a/MatRad_Config.m +++ b/MatRad_Config.m @@ -184,7 +184,7 @@ function setDefaultProperties(obj) obj.propDoseCalc.defaultAirOffsetCorrection = true; - obj.propOpt.defaultMaxIter = 500; + obj.propOpt.defaultMaxIter = 10000; obj.propOpt.defaultRunDAO = 0; obj.propOpt.defaultRunSequencing = 0; obj.propOpt.defaultClearUnusedVoxels = false; diff --git a/examples/matRad_example16_lexicographicOptimization.m b/examples/matRad_example16_lexicographicOptimization.m new file mode 100644 index 000000000..30aa92950 --- /dev/null +++ b/examples/matRad_example16_lexicographicOptimization.m @@ -0,0 +1,51 @@ +matRad_rc; %If this throws an error, run it from the parent directory first to set the paths +load('TG119.mat'); + + +pln.radiationMode = 'photons'; +pln.machine = 'Generic'; + +quantityOpt = 'physicalDose'; +modelName = 'none'; + +% +pln.numOfFractions = 30; +pln.propStf.gantryAngles = [0:40:359]; +pln.propStf.couchAngles = zeros(1,numel(pln.propStf.gantryAngles)); +pln.propStf.bixelWidth = 5; + +pln.propStf.numOfBeams = numel(pln.propStf.gantryAngles); +pln.propStf.isoCenter = ones(pln.propStf.numOfBeams,1) * matRad_getIsoCenter(cst,ct,0); + +pln.propDoseCalc.doseGrid.resolution.x = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.y = 5; % [mm] +pln.propDoseCalc.doseGrid.resolution.z = 5; % [mm] + +pln.propSeq.runSequencing = 1; +pln.propOpt.runDAO = 0; + +% retrieve bio model parameters +pln.bioParam = matRad_bioModel(pln.radiationMode,quantityOpt, modelName); + +% retrieve scenarios for dose calculation and optimziation +pln.multScen = matRad_multScen(ct,'nomScen'); +%% +stf = matRad_generateStf(ct,cst,pln); +dij = matRad_calcPhotonDose(ct,stf,pln,cst); + +%% +PriorityList1 = matRad_PriorityList1(); +PriorityList1.addObjective(1,DoseObjectives.matRad_SquaredDeviation(100,50),4,2); +PriorityList1.addObjective(2,DoseObjectives.matRad_EUD(100,0),10,1); +PriorityList1.addObjective(3,DoseObjectives.matRad_MeanDose(100,0),5,3); + +%constraints +%PriorityList1.addConstraint(DoseConstraints.matRad_MinMaxDose(0,40),1); +%PriorityList1.addConstraint(DoseConstraints.matRad_MinMaxDose(45,57),2); +%PriorityList1.addConstraint(DoseConstraints.matRad_MinMaxDose(0,45),3); +%% +PriorityList1.printPriorityList(cst) +%% +[resultGUIs1,resultGUIs2,cst1,cst2,PriorityList2] = matRad_2pecOptimization(PriorityList1,dij,cst,pln); +%% +PriorityList1.printPriorityList(cst) \ No newline at end of file diff --git a/matRad_fluenceOptimization.m b/matRad_fluenceOptimization.m index 1b4be523b..73b5b235c 100755 --- a/matRad_fluenceOptimization.m +++ b/matRad_fluenceOptimization.m @@ -1,337 +1,84 @@ -function [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit) -% matRad inverse planning wrapper function -% -% call -% [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln) -% [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit) -% -% input -% dij: matRad dij struct -% cst: matRad cst struct -% pln: matRad pln struct -% wInit: (optional) custom weights to initialize problems -% -% output -% resultGUI: struct containing optimized fluence vector, dose, and (for -% biological optimization) RBE-weighted dose etc. -% optimizer: Used Optimizer Object -% -% References -% - -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2016 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -matRad_cfg = MatRad_Config.instance(); - -% consider VOI priorities -cst = matRad_setOverlapPriorities(cst); - -% check & adjust objectives and constraints internally for fractionation -for i = 1:size(cst,1) - %Compatibility Layer for old objective format - if isstruct(cst{i,6}) - cst{i,6} = arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6},'UniformOutput',false); - end - for j = 1:numel(cst{i,6}) - - obj = cst{i,6}{j}; - - %In case it is a default saved struct, convert to object - %Also intrinsically checks that we have a valid optimization - %objective or constraint function in the end - if ~isa(obj,'matRad_DoseOptimizationFunction') - try - obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); - catch - matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); - end - end - - obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); - - cst{i,6}{j} = obj; - end -end - -% resizing cst to dose cube resolution -cst = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... - dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); - -% Get rid of voxels that are not interesting for the optimization problem -if ~isfield(pln.propOpt, 'clearUnusedVoxels') - pln.propOpt.clearUnusedVoxels = matRad_cfg.propOpt.defaultClearUnusedVoxels; -end - -if pln.propOpt.clearUnusedVoxels - dij = matRad_clearUnusedVoxelsFromDij(cst, dij); -end - - -% find target indices and described dose(s) for weight vector -% initialization -V = []; -doseTarget = []; -ixTarget = []; - -for i = 1:size(cst,1) - if isequal(cst{i,3},'TARGET') && ~isempty(cst{i,6}) - V = [V;cst{i,4}{1}]; - - %Iterate through objectives/constraints - fDoses = []; - for fObjCell = cst{i,6} - dParams = fObjCell{1}.getDoseParameters(); - %Don't care for Inf constraints - dParams = dParams(isfinite(dParams)); - %Add do dose list - fDoses = [fDoses dParams]; - end - - doseTarget = [doseTarget fDoses]; - ixTarget = [ixTarget i*ones(1,length(fDoses))]; - end -end -[doseTarget,i] = max(doseTarget); -ixTarget = ixTarget(i); -wOnes = ones(dij.totalNumOfBixels,1); - -% calculate initial beam intensities wInit -matRad_cfg.dispInfo('Estimating initial weights... '); - -if exist('wInit','var') - %do nothing as wInit was passed to the function - matRad_cfg.dispInfo('chosen provided wInit!\n'); - - % Write ixDose which is needed for the optimizer - if pln.bioParam.bioOpt - dij.ixDose = dij.bx~=0; - - %pre-calculations - dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); - dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); - end - -elseif strcmp(pln.bioParam.model,'constRBE') && strcmp(pln.radiationMode,'protons') - % check if a constant RBE is defined - if not use 1.1 - if ~isfield(dij,'RBE') - dij.RBE = 1.1; +function [resultGUI,optimizer] = matRad_fluenceOptimizationTest(dij,cst,pln,wInit) + % matRad inverse planning wrapper function + % + % call + % [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln) + % [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit) + % + % input + % dij: matRad dij struct + % cst: matRad cst struct + % pln: matRad pln struct + % wInit: (optional) custom weights to initialize problems + % + % output + % resultGUI: struct containing optimized fluence vector, dose, and (for + % biological optimization) RBE-weighted dose etc. + % optimizer: Used Optimizer Object + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2016 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + matRad_cfg = MatRad_Config.instance(); + if exist('wInit','var') + [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln,wInit); + else + [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln); end - - doseTmp = dij.physicalDose{1}*wOnes; - bixelWeight = (doseTarget)/(dij.RBE * mean(doseTmp(V))); - wInit = wOnes * bixelWeight; - matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); - -elseif pln.bioParam.bioOpt - % retrieve photon LQM parameter - [ax,bx] = matRad_getPhotonLQMParameters(cst,dij.doseGrid.numOfVoxels,dij.numOfScenarios); - - if ~isequal(dij.ax(dij.ax~=0),ax(dij.ax~=0)) || ... - ~isequal(dij.bx(dij.bx~=0),bx(dij.bx~=0)) - matRad_cfg.dispError('Inconsistent biological parameter - please recalculate dose influence matrix!\n'); + + if ~isfield(pln.propOpt,'optimizer') + pln.propOpt.optimizer = 'IPOPT'; end - - for i = 1:size(cst,1) - - for j = 1:size(cst{i,6},2) - % check if prescribed doses are in a valid domain - if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') - matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); - end - - end + + switch pln.propOpt.optimizer + case 'IPOPT' + optimizer = matRad_OptimizerIPOPT; + case 'fmincon' + optimizer = matRad_OptimizerFmincon; + otherwise + warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); + optimizer = matRad_OptimizerIPOPT; end - - dij.ixDose = dij.bx~=0; - - if isequal(pln.bioParam.quantityOpt,'effect') - - effectTarget = cst{ixTarget,5}.alphaX * doseTarget + cst{ixTarget,5}.betaX * doseTarget^2; - aTmp = dij.mAlphaDose{1}*wOnes; - bTmp = dij.mSqrtBetaDose{1} * wOnes; - p = sum(aTmp(V)) / sum(bTmp(V).^2); - q = -(effectTarget * length(V)) / sum(bTmp(V).^2); - - wInit = -(p/2) + sqrt((p^2)/4 -q) * wOnes; - - elseif isequal(pln.bioParam.quantityOpt,'RBExD') - - %pre-calculations - dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); - dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); - - % calculate current effect in target - aTmp = dij.mAlphaDose{1}*wOnes; - bTmp = dij.mSqrtBetaDose{1} * wOnes; - doseTmp = dij.physicalDose{1}*wOnes; - - CurrEffectTarget = aTmp(V) + bTmp(V).^2; - % ensure a underestimated biological effective dose - TolEstBio = 1.2; - % calculate maximal RBE in target - maxCurrRBE = max(-cst{ixTarget,5}.alphaX + sqrt(cst{ixTarget,5}.alphaX^2 + ... - 4*cst{ixTarget,5}.betaX.*CurrEffectTarget)./(2*cst{ixTarget,5}.betaX*doseTmp(V))); - wInit = ((doseTarget)/(TolEstBio*maxCurrRBE*max(doseTmp(V))))* wOnes; + + if ~optimizer.IsAvailable() + matRad_cfg.dispError(['Optimizer ''' pln.propOpt.optimizer ''' not available!']); end - - matRad_cfg.dispInfo('chosen weights adapted to biological dose calculation!\n'); -else - doseTmp = dij.physicalDose{1}*wOnes; - bixelWeight = (doseTarget)/mean(doseTmp(V)); - wInit = wOnes * bixelWeight; - matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); -end - - -%% calculate probabilistic quantities for probabilistic optimization if at least -% one robust objective is defined - -%Check how to use 4D data -if isfield(pln,'propOpt') && isfield(pln.propOpt,'scen4D') - scen4D = pln.propOpt.scen4D; -else - scen4D = 1; %Use only first 4D scenario for optimization -end - -%If "all" provided, use all scenarios -if isequal(scen4D,'all') - scen4D = 1:size(dij.physicalDose,1); -end - -linIxDIJ = find(~cellfun(@isempty,dij.physicalDose(scen4D,:,:)))'; - -%Only select the indexes of the nominal ct Scenarios -linIxDIJ_nominalCT = find(~cellfun(@isempty,dij.physicalDose(scen4D,1,1)))'; - -FLAG_CALC_PROB = false; -FLAG_ROB_OPT = false; - - -for i = 1:size(cst,1) - for j = 1:numel(cst{i,6}) - if strcmp(cst{i,6}{j}.robustness,'PROB') && numel(linIxDIJ) > 1 - FLAG_CALC_PROB = true; + + + optimizer = optimizer.optimize(wInit,optiProb,dij,cst); + + wOpt = optimizer.wResult; + info = optimizer.resultInfo; + + resultGUI = matRad_calcCubes(wOpt,dij); + resultGUI.wUnsequenced = wOpt; + resultGUI.usedOptimizer = optimizer; + resultGUI.info = info; + resultGUI.optiProb = optiProb; + + %Robust quantities + if FLAG_ROB_OPT || numel(optiProb.BP.scenarios) > 1 + Cnt = 1; + for i = find(~cellfun(@isempty,dij.physicalDose))' + tmpResultGUI = matRad_calcCubes(wOpt,dij,i); + resultGUI.([pln.bioParam.quantityVis '_' num2str(Cnt,'%d')]) = tmpResultGUI.(pln.bioParam.quantityVis); + Cnt = Cnt + 1; end - if ~strcmp(cst{i,6}{j}.robustness,'none') && numel(linIxDIJ) > 1 - FLAG_ROB_OPT = true; - end - end -end - -if FLAG_CALC_PROB - [dij] = matRad_calculateProbabilisticQuantities(dij,cst,pln); -end - - -% set optimization options -if ~FLAG_ROB_OPT || FLAG_CALC_PROB % if multiple robust objectives are defined for one structure then remove FLAG_CALC_PROB from the if clause - ixForOpt = scen4D; -else - ixForOpt = linIxDIJ; -end - -switch pln.bioParam.quantityOpt - case 'effect' - backProjection = matRad_EffectProjection; - case 'RBExD' - %Capture special case of constant RBE - if strcmp(pln.bioParam.model,'constRBE') - backProjection = matRad_ConstantRBEProjection; - else - backProjection = matRad_VariableRBEProjection; - end - case 'physicalDose' - backProjection = matRad_DoseProjection; - otherwise - warning(['Did not recognize bioloigcal setting ''' pln.probOpt.bioOptimization '''!\nUsing physical dose optimization!']); - backProjection = matRad_DoseProjection; -end - -%Give scenarios used for optimization -backProjection.scenarios = ixForOpt; -backProjection.scenarioProb = pln.multScen.scenProb; -backProjection.nominalCtScenarios = linIxDIJ_nominalCT; - -optiProb = matRad_OptimizationProblem(backProjection,cst); -optiProb.quantityOpt = pln.bioParam.quantityOpt; -if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') - optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; -end - -%Get Bounds -if ~isfield(pln.propOpt,'boundMU') - pln.propOpt.boundMU = false; -end - -if pln.propOpt.boundMU - if (isfield(dij,'minMU') || isfield(dij,'maxMU')) && ~isfield(dij,'numParticlesPerMU') - matRad_cfg.dispWarning('Requested MU bounds but number of particles per MU not set! Bounds will not be enforced and standard [0,Inf] will be used instead!'); - elseif ~isfield(dij,'minMU') && ~isfield(dij,'maxMU') - matRad_cfg.dispWarning('Requested MU bounds but machine bounds not defined in dij.minMU & dij.maxMU! Bounds will not be enforced and standard [0,Inf] will be used instead!'); - else - if isfield(dij,'minMU') - optiProb.minimumW = dij.numParticlesPerMU .* dij.minMU / 1e6; - matRad_cfg.dispInfo('Using lower MU bounds provided in dij!\n') - end - - if isfield(dij,'maxMU') - optiProb.maximumW = dij.numParticlesPerMU .* dij.maxMU / 1e6; - matRad_cfg.dispInfo('Using upper MU bounds provided in dij!\n') - end - end -else - matRad_cfg.dispInfo('Using standard MU bounds of [0,Inf]!\n') -end - -if ~isfield(pln.propOpt,'optimizer') - pln.propOpt.optimizer = 'IPOPT'; -end - -switch pln.propOpt.optimizer - case 'IPOPT' - optimizer = matRad_OptimizerIPOPT; - case 'fmincon' - optimizer = matRad_OptimizerFmincon; - otherwise - warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); - optimizer = matRad_OptimizerIPOPT; -end - -if ~optimizer.IsAvailable() - matRad_cfg.dispError(['Optimizer ''' pln.propOpt.optimizer ''' not available!']); -end - -optimizer = optimizer.optimize(wInit,optiProb,dij,cst); - -wOpt = optimizer.wResult; -info = optimizer.resultInfo; - -resultGUI = matRad_calcCubes(wOpt,dij); -resultGUI.wUnsequenced = wOpt; -resultGUI.usedOptimizer = optimizer; -resultGUI.info = info; -resultGUI.optiProb = optiProb; - -%Robust quantities -if FLAG_ROB_OPT || numel(ixForOpt) > 1 - Cnt = 1; - for i = find(~cellfun(@isempty,dij.physicalDose))' - tmpResultGUI = matRad_calcCubes(wOpt,dij,i); - resultGUI.([pln.bioParam.quantityVis '_' num2str(Cnt,'%d')]) = tmpResultGUI.(pln.bioParam.quantityVis); - Cnt = Cnt + 1; end -end - -% unblock mex files -clear mex + + % unblock mex files + clear mex + \ No newline at end of file diff --git a/matRad_preProcessing.m b/matRad_preProcessing.m new file mode 100644 index 000000000..ba03dfd5f --- /dev/null +++ b/matRad_preProcessing.m @@ -0,0 +1,315 @@ +function [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln,wInit) +% matRad inverse planning wrapper function +% +% call +% [resultGUI,optimizer] = matRad_preProcessing(dij,cst,pln) +% [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit) +% +% input +% dij: matRad dij struct +% cst: matRad cst struct +% pln: matRad pln struct +% wInit: (optional) custom weights to initialize problems +% +% output +% resultGUI: struct containing optimized fluence vector, dose, and (for +% biological optimization) RBE-weighted dose etc. +% optimizer: Used Optimizer Object +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2024 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +matRad_cfg = MatRad_Config.instance(); +% consider VOI priorities +cst = matRad_setOverlapPriorities(cst); + +% check & adjust objectives and constraints internally for fractionation +for i = 1:size(cst,1) + %Compatibility Layer for old objective format + if isstruct(cst{i,6}) + cst{i,6} = arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6},'UniformOutput',false); + end + for j = 1:numel(cst{i,6}) + + obj = cst{i,6}{j}; + + %In case it is a default saved struct, convert to object + %Also intrinsically checks that we have a valid optimization + %objective or constraint function in the end + if ~isa(obj,'matRad_DoseOptimizationFunction') + try + obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); + catch + matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); + end + end + + obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); + + cst{i,6}{j} = obj; + end +end + + + +% resizing cst to dose cube resolution +cst = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... + dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); + +% Get rid of voxels that are not interesting for the optimization problem +if ~isfield(pln.propOpt, 'clearUnusedVoxels') + pln.propOpt.clearUnusedVoxels = matRad_cfg.propOpt.defaultClearUnusedVoxels; +end + +if pln.propOpt.clearUnusedVoxels + dij = matRad_clearUnusedVoxelsFromDij(cst, dij); +end + + +% find target indices and described dose(s) for weight vector +% initialization +V = []; +doseTarget = []; +ixTarget = []; + +for i = 1:size(cst,1) + if isequal(cst{i,3},'TARGET') && ~isempty(cst{i,6}) + V = [V;cst{i,4}{1}]; + + %Iterate through objectives/constraints + fDoses = []; + for fObjCell = cst{i,6} + dParams = fObjCell{1}.getDoseParameters(); + %Don't care for Inf constraints + dParams = dParams(isfinite(dParams)); + %Add do dose list + fDoses = [fDoses dParams]; + end + + doseTarget = [doseTarget fDoses]; + ixTarget = [ixTarget i*ones(1,length(fDoses))]; + end +end + +[doseTarget,i] = max(doseTarget); +ixTarget = ixTarget(i); +wOnes = ones(dij.totalNumOfBixels,1); + +% calculate initial beam intensities wInit +matRad_cfg.dispInfo('Estimating initial weights... '); + +if exist('wInit','var') + %do nothing as wInit was passed to the function + matRad_cfg.dispInfo('chosen provided wInit!\n'); + + % Write ixDose which is needed for the optimizer + if pln.bioParam.bioOpt + dij.ixDose = dij.bx~=0; + + %pre-calculations + dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); + dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); + end + +elseif strcmp(pln.bioParam.model,'constRBE') && strcmp(pln.radiationMode,'protons') + % check if a constant RBE is defined - if not use 1.1 + if ~isfield(dij,'RBE') + dij.RBE = 1.1; + end + + doseTmp = dij.physicalDose{1}*wOnes; + bixelWeight = (doseTarget)/(dij.RBE * mean(doseTmp(V))); + wInit = wOnes * bixelWeight; + matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); + +elseif pln.bioParam.bioOpt + % retrieve photon LQM parameter + [ax,bx] = matRad_getPhotonLQMParameters(cst,dij.doseGrid.numOfVoxels,dij.numOfScenarios); + + if ~isequal(dij.ax(dij.ax~=0),ax(dij.ax~=0)) || ... + ~isequal(dij.bx(dij.bx~=0),bx(dij.bx~=0)) + matRad_cfg.dispError('Inconsistent biological parameter - please recalculate dose influence matrix!\n'); + end + + for i = 1:size(cst,1) + + for j = 1:size(cst{i,6},2) + % check if prescribed doses are in a valid domain + if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') + matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); + end + + end + end + + dij.ixDose = dij.bx~=0; + + if isequal(pln.bioParam.quantityOpt,'effect') + + effectTarget = cst{ixTarget,5}.alphaX * doseTarget + cst{ixTarget,5}.betaX * doseTarget^2; + aTmp = dij.mAlphaDose{1}*wOnes; + bTmp = dij.mSqrtBetaDose{1} * wOnes; + p = sum(aTmp(V)) / sum(bTmp(V).^2); + q = -(effectTarget * length(V)) / sum(bTmp(V).^2); + + wInit = -(p/2) + sqrt((p^2)/4 -q) * wOnes; + + elseif isequal(pln.bioParam.quantityOpt,'RBExD') + + %pre-calculations + dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); + dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); + + % calculate current effect in target + aTmp = dij.mAlphaDose{1}*wOnes; + bTmp = dij.mSqrtBetaDose{1} * wOnes; + doseTmp = dij.physicalDose{1}*wOnes; + + CurrEffectTarget = aTmp(V) + bTmp(V).^2; + % ensure a underestimated biological effective dose + TolEstBio = 1.2; + % calculate maximal RBE in target + maxCurrRBE = max(-cst{ixTarget,5}.alphaX + sqrt(cst{ixTarget,5}.alphaX^2 + ... + 4*cst{ixTarget,5}.betaX.*CurrEffectTarget)./(2*cst{ixTarget,5}.betaX*doseTmp(V))); + wInit = ((doseTarget)/(TolEstBio*maxCurrRBE*max(doseTmp(V))))* wOnes; + end + + matRad_cfg.dispInfo('chosen weights adapted to biological dose calculation!\n'); +else + doseTmp = dij.physicalDose{1}*wOnes; + bixelWeight = (doseTarget)/mean(doseTmp(V)); + wInit = wOnes * bixelWeight; + matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); +end + +%% calculate probabilistic quantities for probabilistic optimization if at least +% one robust objective is defined + +%Check how to use 4D data +if isfield(pln,'propOpt') && isfield(pln.propOpt,'scen4D') + scen4D = pln.propOpt.scen4D; +else + scen4D = 1; %Use only first 4D scenario for optimization +end + +%If "all" provided, use all scenarios +if isequal(scen4D,'all') + scen4D = 1:size(dij.physicalDose,1); +end + +linIxDIJ = find(~cellfun(@isempty,dij.physicalDose(scen4D,:,:)))'; + +%Only select the indexes of the nominal ct Scenarios +linIxDIJ_nominalCT = find(~cellfun(@isempty,dij.physicalDose(scen4D,1,1)))'; + +FLAG_CALC_PROB = false; +FLAG_ROB_OPT = false; + + +for i = 1:size(cst,1) + for j = 1:numel(cst{i,6}) + if strcmp(cst{i,6}{j}.robustness,'PROB') && numel(linIxDIJ) > 1 + FLAG_CALC_PROB = true; + end + if ~strcmp(cst{i,6}{j}.robustness,'none') && numel(linIxDIJ) > 1 + FLAG_ROB_OPT = true; + end + end +end + +if FLAG_CALC_PROB + [dij] = matRad_calculateProbabilisticQuantities(dij,cst,pln); +end + + +% set optimization options +if ~FLAG_ROB_OPT || FLAG_CALC_PROB % if multiple robust objectives are defined for one structure then remove FLAG_CALC_PROB from the if clause + ixForOpt = scen4D; +else + ixForOpt = linIxDIJ; +end + +switch pln.bioParam.quantityOpt + case 'effect' + backProjection = matRad_EffectProjection; + case 'RBExD' + %Capture special case of constant RBE + if strcmp(pln.bioParam.model,'constRBE') + backProjection = matRad_ConstantRBEProjection; + else + backProjection = matRad_VariableRBEProjection; + end + case 'physicalDose' + backProjection = matRad_DoseProjection; + otherwise + warning(['Did not recognize bioloigcal setting ''' pln.probOpt.bioOptimization '''!\nUsing physical dose optimization!']); + backProjection = matRad_DoseProjection; +end + +%Give scenarios used for optimization +backProjection.scenarios = ixForOpt; +backProjection.scenarioProb = pln.multScen.scenProb; +backProjection.nominalCtScenarios = linIxDIJ_nominalCT; + +optiProb = matRad_OptimizationProblem(backProjection,cst); +optiProb.quantityOpt = pln.bioParam.quantityOpt; +if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') + optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; +end + +%Get Bounds +if ~isfield(pln.propOpt,'boundMU') + pln.propOpt.boundMU = false; +end + +if pln.propOpt.boundMU + if (isfield(dij,'minMU') || isfield(dij,'maxMU')) && ~isfield(dij,'numParticlesPerMU') + matRad_cfg.dispWarning('Requested MU bounds but number of particles per MU not set! Bounds will not be enforced and standard [0,Inf] will be used instead!'); + elseif ~isfield(dij,'minMU') && ~isfield(dij,'maxMU') + matRad_cfg.dispWarning('Requested MU bounds but machine bounds not defined in dij.minMU & dij.maxMU! Bounds will not be enforced and standard [0,Inf] will be used instead!'); + else + if isfield(dij,'minMU') + optiProb.minimumW = dij.numParticlesPerMU .* dij.minMU / 1e6; + matRad_cfg.dispInfo('Using lower MU bounds provided in dij!\n') + end + + if isfield(dij,'maxMU') + optiProb.maximumW = dij.numParticlesPerMU .* dij.maxMU / 1e6; + matRad_cfg.dispInfo('Using upper MU bounds provided in dij!\n') + end + end +else + matRad_cfg.dispInfo('Using standard MU bounds of [0,Inf]!\n') +end + +if ~isfield(pln.propOpt,'optimizer') + pln.propOpt.optimizer = 'IPOPT'; +end + +switch pln.propOpt.optimizer + case 'IPOPT' + optimizer = matRad_OptimizerIPOPT; + case 'fmincon' + optimizer = matRad_OptimizerFmincon; + otherwise + warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); + optimizer = matRad_OptimizerIPOPT; +end + +if ~optimizer.IsAvailable() + matRad_cfg.dispError(['Optimizer ''' pln.propOpt.optimizer ''' not available!']); +end + diff --git a/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m b/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m index 2a3ee0473..8503ae722 100644 --- a/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m +++ b/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m @@ -19,17 +19,17 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% properties (Constant) name = 'Objective Constraint'; - parameterTypes = {'objFunc','scalar'}; - parameterNames = {'f^{max}','slackParameter'}; + parameterTypes = {'objFunc'}; + parameterNames = {'f^{max}'} end properties objective; - parameters = {1e-5, 1e-3}; + parameters = {1e-5} end methods (Access = public) - function this = matRad_DoseConstraintFromObjective(objective,maxObj,slackParameter) + function this = matRad_DoseConstraintFromObjective(objective,maxObj) %check if objective is a struct and a DoseObjective or Constraint (for init from constraint) if isstruct(objective) && ~isempty(strfind(objective.className,'DoseObjectives')) @@ -48,12 +48,8 @@ if ~initFromStruct - - if nargin == 3 && isscalar(slackParameter) - this.parameters{2} = slackParameter; - end - if nargin >= 2 && isscalar(maxObj) + if nargin == 2 && isscalar(maxObj) this.parameters{1} = maxObj; end @@ -71,9 +67,10 @@ end function cu = upperBounds(this,n) - cu = this.parameters{1}+this.slackParameter; + cu = this.parameters{1}; %cu = [Inf; this.parameters{2}]; end + function cl = lowerBounds(this,n) cl = 0; end diff --git a/optimization/+DoseObjectives/matRad_DoseObjective.m b/optimization/+DoseObjectives/matRad_DoseObjective.m index 5322c97b6..221c9dd7a 100644 --- a/optimization/+DoseObjectives/matRad_DoseObjective.m +++ b/optimization/+DoseObjectives/matRad_DoseObjective.m @@ -28,6 +28,10 @@ rob = {'none','STOCH','PROB','VWWC','VWWC_INV','COWC','OWC'}; %By default, no robustness is available end end + + methods (Static,Abstract) + adaptGoalToFraction + end %These should be abstract methods, however Octave can't parse them. As soon %as Octave is able to do this, they should be made abstract again diff --git a/optimization/+DoseObjectives/matRad_EUD.m b/optimization/+DoseObjectives/matRad_EUD.m index 67f28ab25..0e4caebc6 100644 --- a/optimization/+DoseObjectives/matRad_EUD.m +++ b/optimization/+DoseObjectives/matRad_EUD.m @@ -99,6 +99,19 @@ error(['EUD computation failed. Reduce exponent to resolve numerical problems.']); end end + + function constr = turnIntoLexicographicConstraint(obj,goal) + objective = DoseObjectives.matRad_EUD(100,obj.parameters{1,1},obj.parameters{1,2}); + constr = DoseConstraints.matRad_DoseConstraintFromObjective(objective,goal); + end + + end + + methods (Static) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue/numOfFractions; + end + end end diff --git a/optimization/+DoseObjectives/matRad_EUDMin.m b/optimization/+DoseObjectives/matRad_EUDMin.m deleted file mode 100644 index 10edbd3ac..000000000 --- a/optimization/+DoseObjectives/matRad_EUDMin.m +++ /dev/null @@ -1,118 +0,0 @@ -classdef matRad_EUDMin < DoseObjectives.matRad_DoseObjective -% matRad_EUD implements a penalized equivalent uniform dose objective -% as given in the literature -% See matRad_DoseObjective for interface description -% -% References -% - -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Copyright 2020 the matRad development team. -% -% This file is part of the matRad project. It is subject to the license -% terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part -% of the matRad project, including this file, may be copied, modified, -% propagated, or distributed except according to the terms contained in the -% LICENSE file. -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - properties (Constant) - name = 'EUD_{min}'; - parameterNames = {'EUD^{ref}', 'k'}; - parameterTypes = {'dose','numeric'}; - end - - properties - parameters = {0, 3.5}; - penalty = 1; - end - - methods - function obj = matRad_EUDMin(penalty,eudRef, eudExponent) - %If we have a struct in first argument - if nargin == 1 && isstruct(penalty) - inputStruct = penalty; - initFromStruct = true; - else - initFromStruct = false; - inputStruct = []; - end - - %Call Superclass Constructor (for struct initialization) - obj@DoseObjectives.matRad_DoseObjective(inputStruct); - - %now handle initialization from other parameters - if ~initFromStruct - if nargin >= 3 && isscalar(eudExponent) - obj.parameters{2} = eudExponent; - end - - if nargin >= 2 && isscalar(eudRef) - obj.parameters{1} = eudRef; - end - - if nargin >= 1 && isscalar(penalty) - obj.penalty = penalty; - end - end - end - - %% Calculates the Objective Function value - function fDose = computeDoseObjectiveFunction(obj,dose) - % get exponent for EUD - k = obj.parameters{2}; - - dose(dose <= 0) = 0.001; - % calculate power sum - powersum = sum(dose.^k); - - - - - %Calculate objective - - %This check is not needed since dose is always positive - fDose = nthroot(powersum/numel(dose),k); - end - - %% Calculates the Objective Function gradient - function fDoseGrad = computeDoseObjectiveGradient(obj,dose) - % get exponent for EUD - k = obj.parameters{2}; - - %numerical stability - dose(dose <= 0) = 0.001; - - % calculate power sum - powersum = sum(dose.^k); - - - %This check is not needed since dose is always positive - %if powersum > 0 - - %derivatives = nthroot(1/numel(dose),k) * powersum^((1-k)/k) * (dose.^(k-1)); - fDoseGrad = nthroot(1/numel(dose),k) * powersum^((1-k)/k) * (dose.^(k-1)); %.* (nthroot(powersum/numel(dose),k) - obj.parameters{1}); - %end - if any(~isfinite(fDoseGrad)) % check for inf and nan for numerical stability - error(['EUD computation failed. Reduce exponent to resolve numerical problems.']); - end - end - - function constr = turnIntoLexicographicConstraint(obj,goal) - objective = DoseObjectives.matRad_EUDMin(100,0,obj.parameters{1,2}); - constr = DoseConstraints.matRad_ObjectiveConstraint(objective,goal,0); - end - - function [obj,goal] = SetAsLexicographic(obj) - %update objective so it is suitable for lexicographic - goal = obj.parameters{1,1}; - obj.parameters{1,1} = 0; - obj.penalty = 100; - end - end - -end - diff --git a/optimization/+DoseObjectives/matRad_MaxDVH.m b/optimization/+DoseObjectives/matRad_MaxDVH.m index bf505662c..1a58fd5a8 100644 --- a/optimization/+DoseObjectives/matRad_MaxDVH.m +++ b/optimization/+DoseObjectives/matRad_MaxDVH.m @@ -95,4 +95,9 @@ end end + methods (Static) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue; + end + end end diff --git a/optimization/+DoseObjectives/matRad_MeanDose.m b/optimization/+DoseObjectives/matRad_MeanDose.m index 93feeffe2..07a0bde4c 100644 --- a/optimization/+DoseObjectives/matRad_MeanDose.m +++ b/optimization/+DoseObjectives/matRad_MeanDose.m @@ -106,6 +106,12 @@ matRad_cfg.dispError('Invalid setting for %s in Mean Dose Objective!',obj.parameterNames{2}); end end + + function constr = turnIntoLexicographicConstraint(obj,goal) + objective = DoseObjectives.matRad_MeanDose(100,obj.parameters{1},obj.parameters{2}); + constr = DoseConstraints.matRad_DoseConstraintFromObjective(objective,goal); + end + end methods (Access = protected) @@ -125,6 +131,11 @@ fDoseGrad = (1/numel(dose))*sign(dose(:)-obj.parameters{1}); end end - + + methods (Static) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue/numOfFractions; + end + end end diff --git a/optimization/+DoseObjectives/matRad_MinDVH.m b/optimization/+DoseObjectives/matRad_MinDVH.m index 6ddd4d4f9..e00bf0f32 100644 --- a/optimization/+DoseObjectives/matRad_MinDVH.m +++ b/optimization/+DoseObjectives/matRad_MinDVH.m @@ -95,5 +95,12 @@ fDoseGrad = (2/numel(dose))*deviation; end end + + methods (Static) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue/numOfFractions; + end + + end end \ No newline at end of file diff --git a/optimization/+DoseObjectives/matRad_SquaredDeviation.m b/optimization/+DoseObjectives/matRad_SquaredDeviation.m index 75c84c8ac..66d837dc3 100644 --- a/optimization/+DoseObjectives/matRad_SquaredDeviation.m +++ b/optimization/+DoseObjectives/matRad_SquaredDeviation.m @@ -75,6 +75,15 @@ % calculate delta fDoseGrad = 2 * 1/numel(dose) * deviation; end + + function constr = turnIntoLexicographicConstraint(obj,goal) + if goal < 5e-4 + goal = 5e-4*1.03; + end + objective = DoseObjectives.matRad_SquaredDeviation(100,obj.parameters{1}); + constr = DoseConstraints.matRad_DoseConstraintFromObjective(objective,goal); + end + end methods (Static) @@ -82,6 +91,11 @@ rob = DoseObjectives.matRad_DoseObjective.availableRobustness(); rob{end+1} = 'PROB'; %By default, no robustness is available end + + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue/numOfFractions^2; + end + end end diff --git a/optimization/+DoseObjectives/matRad_SquaredOverdosing.m b/optimization/+DoseObjectives/matRad_SquaredOverdosing.m index abb0571fc..72ae7b714 100644 --- a/optimization/+DoseObjectives/matRad_SquaredOverdosing.m +++ b/optimization/+DoseObjectives/matRad_SquaredOverdosing.m @@ -78,6 +78,20 @@ % calculate delta fDoseGrad = 2 * 1/numel(dose) * overdose; end + + function constr = turnIntoLexicographicConstraint(obj,goal) + if goal < 5e-4 + goal = 5e-4*1.03; + end + objective = DoseObjectives.matRad_SquaredOverdosing(100,obj.parameters{1}); + constr = DoseConstraints.matRad_DoseConstraintFromObjective(objective,goal); + end + end + + methods (Static) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue/numOfFractions^2; + end end end diff --git a/optimization/+DoseObjectives/matRad_SquaredUnderdosing.m b/optimization/+DoseObjectives/matRad_SquaredUnderdosing.m index 006295b9a..d10c66f82 100644 --- a/optimization/+DoseObjectives/matRad_SquaredUnderdosing.m +++ b/optimization/+DoseObjectives/matRad_SquaredUnderdosing.m @@ -78,6 +78,21 @@ % calculate delta fDoseGrad = 2/numel(dose) * underdose; end + + function constr = turnIntoLexicographicConstraint(obj,goal) + if goal < 5e-4 + goal = 5e-4*1.03; + end + objective = DoseObjectives.matRad_SquaredUnderdosing(100,obj.parameters{1}); + constr = DoseConstraints.matRad_DoseConstraintFromObjective(objective,goal); + end + + end + + methods (Static) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + newGoalValue = goalValue/numOfFractions^2; + end end end diff --git a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m index 2532ba905..41c91bb7d 100644 --- a/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m +++ b/optimization/@matRad_OptimizationProblem/matRad_OptimizationProblem.m @@ -135,6 +135,40 @@ function updatePenalties(optiProb,newPen) end end + function extractObjectivesAndConstraintsFromCst(optiProb,cst) + %used to extract objectives from cst and store in cell array as property of optimization Problem + optiProb.objIdx = []; + optiProb.constrIdx = []; + optiProb.objectives = {}; + optiProb.constraints = {}; + + for i = 1:size(cst,1) % loop over cst + + if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) + + for j = 1:numel(cst{i,6}) + %check whether dose objective or constraint + obj = cst{i,6}{j}; + if isstruct(cst{i,6}{j}) + obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); + end + if contains(class(obj),'DoseObjectives') + optiProb.objIdx = [optiProb.objIdx;i,j]; + obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); + optiProb.objectives(end+1) = {obj}; + + elseif contains(class(obj),'DoseConstraints') + optiProb.constrIdx = [optiProb.constrIdx;i,j]; + obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); + optiProb.constraints(end+1) = {obj}; + end + end + end + end + end + + + end methods (Access = protected) @@ -174,39 +208,6 @@ function updatePenalties(optiProb,newPen) end - methods (Access = private) - function extractObjectivesAndConstraintsFromCst(optiProb,cst) - %used to extract objectives from cst and store in cell array as property of optimization Problem - optiProb.objIdx = []; - optiProb.constrIdx = []; - optiProb.objectives = {}; - optiProb.constraints = {}; - - for i = 1:size(cst,1) % loop over cst - - if ~isempty(cst{i,4}{1}) && ( isequal(cst{i,3},'OAR') || isequal(cst{i,3},'TARGET') ) - for j = 1:numel(cst{i,6}) - %check whether dose objective or constraint - obj = cst{i,6}{j}; - if isstruct(cst{i,6}{j}) - obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); - end - if contains(class(obj),'DoseObjectives') - optiProb.objIdx = [optiProb.objIdx;i,j]; - obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); - optiProb.objectives(end+1) = {obj}; - - elseif contains(class(obj),'DoseConstraints') - optiProb.constrIdx = [optiProb.constrIdx;i,j]; - obj = optiProb.BP.setBiologicalDosePrescriptions(obj,cst{i,5}.alphaX,cst{i,5}.betaX); - optiProb.constraints(end+1) = {obj}; - end - end - end - end - end - - - end + end diff --git a/optimization/Lexicgoraphic/matRad_2pecOptimization.m b/optimization/Lexicgoraphic/matRad_2pecOptimization.m new file mode 100644 index 000000000..f4473e9cd --- /dev/null +++ b/optimization/Lexicgoraphic/matRad_2pecOptimization.m @@ -0,0 +1,146 @@ +function [resultGUIs,resultGUIs2,cst1,cst2,PriorityList2]= matRad_2pecOptimization(PriorityList1,dij,cst,pln,wInit) + % Lexicographic optimization using the 2pec method asintroducded by + % Breedveld et al + % + % call + % + % input + % PriorityList1: Initial structure to store all objectives + % dij: matRad dij struct + % cst: modified matRad cst struct. + % pln: matRad pln struct + % wInit: (optional) custom weights to initialize problems + % + % output + % + % References + % https://iopscience.iop.org/article/10.1088/0031-9155/54/23/011 + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + matRad_cfg = MatRad_Config.instance(); + + PriorityList1.adaptToFractionSize(pln.numOfFractions); + + if exist('wInit','var') + [dij,cst,pln,wInit,optiProb] = matRad_preProcessing(dij,cst,pln,wInit); + else + [dij,cst,pln,wInit,optiProb] = matRad_preProcessing(dij,cst,pln); + end + + if ~isfield(pln.propOpt,'optimizer') + pln.propOpt.optimizer = 'IPOPT'; + end + + switch pln.propOpt.optimizer + case 'IPOPT' + optimizer = matRad_OptimizerIPOPT; + case 'fmincon' + optimizer = matRad_OptimizerFmincon; + otherwise + warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); + optimizer = matRad_OptimizerIPOPT; + end + + if ~optimizer.IsAvailable() + matRad_cfg.dispError(['Optimizer ''' pln.propOpt.optimizer ''' not available!']); + end + + resultGUIs = {}; % resultGUIs for first phase + resultGUIs2 = {}; % resultGUIs for second phase + PriorityList2 = matRad_PriorityList2(); % create empty priority list + PriorityList2.ConstraintList = PriorityList1.ConstraintList; %same constraints + + %initial update for cst with all objectives and constraints for overlap + cst = PriorityList1.generateFullCst(cst); + + %generate the actual csts that get modified throughout the algorithm + cst1 = PriorityList1.generateConstraintCst(cst); + cst2 = cst1; + + matRad_cfg.propOpt.defaultAccChangeTol = 1e-6; + %add first objective(s) to cst + cst1 = PriorityList1.modifyCst(cst1); + while PriorityList1.numOfObj <= numel(PriorityList1.GoalList) + + optiProb.extractObjectivesAndConstraintsFromCst(cst1); + + + %check if objective can be skipped + [objectives,FastCalc] = PriorityList1.fastObjectiveCalc(dij,cst1,optiProb,wInit); + + if ~FastCalc % can the objective be skipped? + %If not optimize the current objective + optimizer = optimizer.optimize(wInit,optiProb,dij,cst1); + + wOpt = optimizer.wResult; + info = optimizer.resultInfo; + + resultGUI = matRad_calcCubes(wOpt,dij); + resultGUI.wUnsequenced = wOpt; + resultGUI.usedOptimizer = optimizer; + resultGUI.info = info; + resultGUI.optiProb = optiProb; + objectives = matRad_objectiveFunctions(optiProb,wOpt,dij,cst1); + + wInit = wOpt; + + else %objectives can be met + resultGUI = matRad_calcCubes(wInit,dij); + resultGUI.wUnsequenced = wInit; + resultGUI.optiProb = optiProb; + objectives = matRad_objectiveFunctions(optiProb,wInit,dij,cst1); + end + + resultGUI.objectives = objectives; %add objectives + + resultGUIs{end+1} = resultGUI; + % exchange previously optimized objectives to constraints and remove from priorityList + [cst1,cst2,PriorityList2] = PriorityList1.updateStep(cst1,cst2,PriorityList2,objectives); + + %add next objective + if PriorityList1.numOfObj <= numel(PriorityList1.GoalList) + cst1 = PriorityList1.modifyCst(cst1); + end + end + + %step2 + matRad_cfg.propOpt.defaultAccChangeTol = 1e-6; + cst2 = PriorityList2.modifyCst(cst2); %should set objective in appropriate spot -> use VOIIdx + while PriorityList2.numOfObj <= numel(PriorityList2.GoalList) + optiProb.extractObjectivesAndConstraintsFromCst(cst2); + optimizer = optimizer.optimize(wInit,optiProb,dij,cst2); + + wOpt = optimizer.wResult; + info = optimizer.resultInfo; + + resultGUI = matRad_calcCubes(wOpt,dij); + resultGUI.wUnsequenced = wOpt; + resultGUI.usedOptimizer = optimizer; + resultGUI.info = info; + resultGUI.optiProb = optiProb; + objectives = matRad_objectiveFunctions(optiProb,wOpt,dij,cst2); + resultGUI.objectives = objectives; + wInit = wOpt; + + + resultGUIs2{end+1} = resultGUI; + [cst2] = PriorityList2.updateStep(cst2,resultGUI.objectives); + + if PriorityList2.numOfObj <= numel(PriorityList2.GoalList) + cst2 = PriorityList2.modifyCst(cst2); + end + + end +end \ No newline at end of file diff --git a/optimization/Lexicgoraphic/matRad_PriorityClass.m b/optimization/Lexicgoraphic/matRad_PriorityClass.m new file mode 100644 index 000000000..cc445493b --- /dev/null +++ b/optimization/Lexicgoraphic/matRad_PriorityClass.m @@ -0,0 +1,146 @@ +classdef(Abstract) matRad_PriorityClass < handle +% matRad_PriorityClass creates the super class for PriorityLists used in +% the lexicographic approach +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2024 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + properties + Priorities; + ConstraintList; + GoalList; + slackVariable = 1.03; + numOfObj; + end + + + methods + function obj = matRad_PriorityClass() + %add optional slack Variable adjustment + obj.Priorities = []; % list storing all priorities (e.g [1,2,2,3]) + obj.GoalList = {}; + obj.ConstraintList = {}; + obj.numOfObj = 1; + + end + + function addObjective(obj,Priority,objective,goal,cstIdx) + % function to add an objective to a priorityList + % + % input + % Priority: priority of the objective in the priority list + % objective: corresponding objective (either struct or class based) + % goal: goal value associated with the objetive + % cstIdx: Index of the VOI in the cst that this objective + % belongs to + + obj.Priorities = [obj.Priorities,Priority]; %add priority + + if ~isa(objective,'matRad_DoseOptimizationFunction') + objective = matRad_DoseOptimizationFunction.createInstanceFromStruct(objective); + end + + obj.GoalList{end+1} = matRad_PriorityListObjective(objective,goal,cstIdx); + %sort by priority + [obj.Priorities,I] = sort(obj.Priorities); + obj.GoalList = obj.GoalList(I); + end + + function addConstraint(obj,constraint,cstIdx) + % function to add an constraint to a priorityList + % + % input + % constraint: Constraint to be added (either struct or class based) + % cstIdx: Index of the VOI in the cst that this objective + % belongs to + % + if ~isa(constraint,'matRad_DoseOptimizationFunction') + constraint = matRad_DoseOptimizationFunction.createInstanceFromStruct(constraint); + end + + obj.ConstraintList{end+1} = matRad_PriorityListConstraint(constraint,cstIdx); + end + + function adaptToFractionSize(obj,numOfFractions) + % function to adapt all constraints and objectives to the fraction + % size level + %adapt constraints to fraction size + for i = 1:numel(obj.ConstraintList) + constraint = obj.ConstraintList{i}.constraint; + obj.ConstraintList{i}.constraint = constraint.setDoseParameters(constraint.getDoseParameters()/numOfFractions); + end + %adapt objectives dose and goal values to fraction size + for i= 1:numel(obj.GoalList) + objective = obj.GoalList{i}.objective; + obj.GoalList{i}.objective = objective.setDoseParameters(objective.getDoseParameters()/numOfFractions); + obj.GoalList{i}.goalValue = objective.adaptGoalToFraction(obj.GoalList{i}.goalValue,numOfFractions); + end + end + %} + + function cst = generateConstraintCst(obj,cst) + %generate a bare bone cst struct for prioritized optimization containing only the + % hard constraints + cst(:,6) = cell(1); + for i = 1:numel(obj.ConstraintList) + cst{obj.ConstraintList{i}.cstIdx,6}{end+1} = obj.ConstraintList{i}.constraint; + end + end + + function [Priority,LexiObjectives] = nextPriority(obj) %get next element(s) in prioList + Priority = obj.Priorities(obj.numOfObj); %get next highest priority + LexiObjectives = {}; %cell that is filled with the objectives of next highest prio + i = obj.numOfObj; + % get all objectives for this Priority + while i <= numel(obj.Priorities) && obj.Priorities(i) == Priority + LexiObjectives{end+1} = obj.GoalList{i}; + i = i + 1; + end + end + + function printPriorityList(obj,cst) + %%% + % Function to print out the current PriorityList in table form + %%% + %create data + goals = []; + VOINames= {}; + Objectives = {}; + AchievedValues = []; + AchievedValues2 = []; + for i = 1:numel(obj.GoalList) + idx = obj.GoalList{i}.cstIdx; + goals = [goals;obj.GoalList{i}.goalValue]; + VOINames = [VOINames;cst{idx,2}]; + Objectives = [Objectives;obj.GoalList{i}.objective.name]; + AchievedValues = [AchievedValues;obj.GoalList{i}.achievedValue]; + AchievedValues2 = [AchievedValues2;obj.GoalList{i}.achievedValue2]; + end + Priority = obj.Priorities'; + T = table(Priority,VOINames,Objectives,goals,AchievedValues,AchievedValues2); + fig = uifigure(); + uitable(fig,"Data",T); + end + + + end + + methods (Abstract) + + modifyCst + updateStep + end + +end \ No newline at end of file diff --git a/optimization/Lexicgoraphic/matRad_PriorityList1.m b/optimization/Lexicgoraphic/matRad_PriorityList1.m new file mode 100644 index 000000000..f0c6306fe --- /dev/null +++ b/optimization/Lexicgoraphic/matRad_PriorityList1.m @@ -0,0 +1,96 @@ +classdef matRad_PriorityList1 < matRad_PriorityClass +% matRad_PriorityList1 implements a class based wish list for the first +% phase of the ptwo method +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2024 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + methods + + function obj = matRad_PriorityList1() + obj = obj@matRad_PriorityClass(); + end + + function [cst,Priority] = modifyCst(obj,cst) + %get the next objective(s) from the priority list + + [Priority,nextObjectives] = obj.nextPriority(); % get next Priority + for i = 1:numel(nextObjectives) + cst{nextObjectives{i}.cstIdx,6}{end+1} = nextObjectives{i}.objective; + %set number where objective is stored in cst + nextObjectives{i}.setVOIIdx(numel(cst{nextObjectives{i}.cstIdx,6})); + end + end + + function [cst1,cst2,PriorityList2] = updateStep(obj,cst1,cst2,PriorityList2,fopt) + %Change run objectives to constraints and add them to the second priority list + + [Priority,LexiObjectives] = obj.nextPriority(); + %remove from current PriorityList + obj.numOfObj = obj.numOfObj + numel(LexiObjectives); + + %change objectives in cst to constraints and add them to PriorityList2 + for i = 1:numel(LexiObjectives) + LexiObjective = LexiObjectives{i}; + LexiObjective.achievedValue = fopt(i); + bound = LexiObjective.goalValue; + if bound < fopt(i) && fopt(i) > 1e-4 %not met + bound = fopt(i)*obj.slackVariable; + else + %objectives are used in PriorityList2 + PriorityList2.GoalList{end+1} = LexiObjective; + PriorityList2.Priorities = [PriorityList2.Priorities,Priority]; + end + %update both csts + cst1{LexiObjective.cstIdx,6}{LexiObjective.getVOIIdx()} = LexiObjective.objective.turnIntoLexicographicConstraint(bound); + cst2{LexiObjective.cstIdx,6}{LexiObjective.getVOIIdx()} = LexiObjective.objective.turnIntoLexicographicConstraint(bound); + end + end + + function [objectives,skip] = fastObjectiveCalc(obj,dij,cst,optiProb,wInit) + %fast check if objectives are already met for next iteration + %and do not have to be recalculated + + [Priority,LexiObjectives] = obj.nextPriority(); + + %preassigning + bounds = zeros(numel(LexiObjectives),1); + objidxs = []; + objectives = {}; + for i = 1:numel(LexiObjectives) + bounds(i) = LexiObjectives{i}.goalValue; + objidxs = [objidxs;LexiObjectives{i}.cstIdx,LexiObjectives{i}.getVOIIdx()]; + objectives{end+1} = LexiObjectives{i}.objective; + end + + %modify optimizationProblem + optiProb.objIdx = objidxs; + optiProb.objectives = objectives; + objectives = matRad_objectiveFunctions(optiProb,wInit,dij,cst); + + skip = all(objectives < bounds); + end + + function cst = generateFullCst(obj,cst) + cst = obj.generateConstraintCst(cst); %add constraints + for i = 1:numel(obj.GoalList) + cst{obj.GoalList{i}.cstIdx,6}{end+1} = obj.GoalList{i}.objective; + end + end + + end +end \ No newline at end of file diff --git a/optimization/Lexicgoraphic/matRad_PriorityList2.m b/optimization/Lexicgoraphic/matRad_PriorityList2.m new file mode 100644 index 000000000..ceb0d5117 --- /dev/null +++ b/optimization/Lexicgoraphic/matRad_PriorityList2.m @@ -0,0 +1,53 @@ +classdef matRad_PriorityList2 < matRad_PriorityClass +% matRad_PriorityList2 implements a class based wish list for the first +% phase of the ptwo method +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2020 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + methods + + function obj = matRad_PriorityList2() + %constructor + obj = obj@matRad_PriorityClass(); + end + + function [cst,Priority]= modifyCst(obj,cst) + %get the next objective(s) from the priority list and add to cst + [Priority,nextObjectives] = obj.nextPriority(); + for i = 1:numel(nextObjectives) + %use previously allocated position + cst{nextObjectives{i}.cstIdx,6}{nextObjectives{i}.getVOIIdx} = nextObjectives{i}.objective; + end + + end + + function [cst2] = updateStep(obj,cst2,fopt) + %change the objective to constraint + [Priority,LexiObjectives] = obj.nextPriority(); + %remove objective(s) from current PriorityList + + obj.numOfObj = obj.numOfObj + numel(LexiObjectives); + + for i = 1:numel(LexiObjectives) + LexiObjective = LexiObjectives{i}; + LexiObjective.achievedValue2 = fopt(i); + bound = fopt(i)*obj.slackVariable; + cst2{LexiObjective.cstIdx,6}{LexiObjective.getVOIIdx()} = LexiObjective.objective.turnIntoLexicographicConstraint(bound); + end + end + end +end \ No newline at end of file diff --git a/optimization/Lexicgoraphic/matRad_PriorityListConstraint.m b/optimization/Lexicgoraphic/matRad_PriorityListConstraint.m new file mode 100644 index 000000000..863dc0713 --- /dev/null +++ b/optimization/Lexicgoraphic/matRad_PriorityListConstraint.m @@ -0,0 +1,33 @@ +classdef matRad_PriorityListConstraint < handle +% matRad_PriorityListConstraint implements a helper class for the priority list +% object +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2020 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + constraint; + cstIdx; % idx of the volume in the cst + end + + methods + function obj = matRad_PriorityListConstraint(constraint,cstIdx) + %constructor + obj.constraint = constraint; + obj.cstIdx = cstIdx; + end + end +end \ No newline at end of file diff --git a/optimization/Lexicgoraphic/matRad_PriorityListObjective.m b/optimization/Lexicgoraphic/matRad_PriorityListObjective.m new file mode 100644 index 000000000..90bc34b23 --- /dev/null +++ b/optimization/Lexicgoraphic/matRad_PriorityListObjective.m @@ -0,0 +1,49 @@ +classdef matRad_PriorityListObjective < handle +% matRad_PriorityListObjective implements a helper class for a priority list +% object +% +% References +% - +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2020 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + objective; + goalValue; % aspired value for the objective + cstIdx; % idx of the volume in the cst + achievedValue = -1; %not assigned yet + achievedValue2 = -1; %not assigned yet + end + + properties (Access = private) + VOIIdx; % idx of the objective for the VOI + end + + methods + function obj = matRad_PriorityListObjective(objective,goal,cstIdx) + %constructor + obj.objective = objective; + obj.goalValue = goal; + obj.cstIdx = cstIdx; + end + + function setVOIIdx(obj,idx) + obj.VOIIdx = idx; + end + + function idx = getVOIIdx(obj) + idx = obj.VOIIdx; + end + end +end \ No newline at end of file From f19635fe508638de94d549310026839b9cbd5613 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Wed, 31 Jan 2024 18:45:13 +0100 Subject: [PATCH 17/32] Update matRad_MinMaxDose.m --- .../+DoseConstraints/matRad_MinMaxDose.m | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/optimization/+DoseConstraints/matRad_MinMaxDose.m b/optimization/+DoseConstraints/matRad_MinMaxDose.m index 035f5e0ba..e5d35e613 100644 --- a/optimization/+DoseConstraints/matRad_MinMaxDose.m +++ b/optimization/+DoseConstraints/matRad_MinMaxDose.m @@ -173,37 +173,37 @@ function cDose = computeDoseConstraintFunctionLogSumExp(this,dose) dose_min = min(dose); dose_max = max(dose); - epsilon = (this.epsilon/3)*dose_max; + modEpsilon = (this.epsilon/3)*dose_max; %Validate parameters if this.parameters{1} <= 0 && isinf(this.parameters{2}) %Constraint doesn't make sense (min = 0 & max = Inf) cDose = []; elseif this.parameters{2} == Inf %Only min dose - cDose = dose_min - epsilon * log( sum(exp((dose_min - dose)/epsilon))); + cDose = dose_min - modEpsilon * log( sum(exp((dose_min - dose)/modEpsilon))); elseif this.parameters{1} <= 0 %Only max dose - cDose = dose_max + epsilon * log( sum(exp((dose - dose_max)/epsilon))); + cDose = dose_max + modEpsilon * log( sum(exp((dose - dose_max)/modEpsilon))); else %both are set sensible - cDose(2,1) = dose_max + epsilon * log( sum(exp((dose - dose_max)/epsilon))); - cDose(1,1) = dose_min - epsilon * log( sum(exp((dose_min - dose)/epsilon))); + cDose(2,1) = dose_max + modEpsilon * log( sum(exp((dose - dose_max)/modEpsilon))); + cDose(1,1) = dose_min - modEpsilon * log( sum(exp((dose_min - dose)/modEpsilon))); end end function cDoseJacob = computeDoseConstraintJacobianLogSumExp(this,dose) %Validate parameters max_dose = max(dose); - epsilon = (this.epsilon/3)*max_dose; + modEpsilon = (this.epsilon/3)*max_dose; %espilon = this.epsilon; if this.parameters{1} <= 0 && isinf(this.parameters{2}) %Constraint doesn't make sense (min = 0 & max = Inf) cDoseJacob = []; elseif this.parameters{2} == Inf %Only min dose - cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon); + cDoseJacob(:,1) = exp( (min(dose)-dose)/modEpsilon); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); elseif this.parameters{1} <= 0 %Only max dose - cDoseJacob(:,1) = exp( (dose-max_dose)/epsilon ); + cDoseJacob(:,1) = exp( (dose-max_dose)/modEpsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); else %both are set sensible - cDoseJacob(:,1) = exp( (min(dose)-dose)/epsilon ); + cDoseJacob(:,1) = exp( (min(dose)-dose)/modEpsilon ); cDoseJacob(:,1) = cDoseJacob(:,1)/sum(cDoseJacob(:,1)); - cDoseJacob(:,2) = exp( (dose-max_dose)/epsilon ); + cDoseJacob(:,2) = exp( (dose-max_dose)/modEpsilon ); cDoseJacob(:,2) = cDoseJacob(:,2)/sum(cDoseJacob(:,2)); end From 13e4615accebc91192883259095a6d132c1a9ca2 Mon Sep 17 00:00:00 2001 From: Niklas Wahl Date: Mon, 13 May 2024 11:47:51 +0200 Subject: [PATCH 18/32] fix documentation --- matRad_preProcessing.m | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/matRad_preProcessing.m b/matRad_preProcessing.m index f6f6790eb..1c744b7e3 100644 --- a/matRad_preProcessing.m +++ b/matRad_preProcessing.m @@ -2,8 +2,8 @@ % matRad inverse planning wrapper function % % call -% [resultGUI,optimizer] = matRad_preProcessing(dij,cst,pln) -% [resultGUI,optimizer] = matRad_fluenceOptimization(dij,cst,pln,wInit) +% [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln) +% [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln,wInit) % % input % dij: matRad dij struct @@ -25,7 +25,7 @@ % % This file is part of the matRad project. It is subject to the license % terms in the LICENSE file found in the top-level directory of this -% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% distribution and at https://github.com/e0404/matRad/LICENSE.md. No part % of the matRad project, including this file, may be copied, modified, % propagated, or distributed except according to the terms contained in the % LICENSE file. @@ -56,7 +56,7 @@ matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); end end - + obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); cst{i,6}{j} = obj; @@ -145,17 +145,13 @@ if ~all(checkAxBx) matRad_cfg.dispError('Inconsistent biological parameters in dij.ax and/or dij.bx - please recalculate dose influence matrix before optimization!\n'); end - - - + for i = 1:size(cst,1) - for j = 1:size(cst{i,6},2) % check if prescribed doses are in a valid domain if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); end - end end From ece7b7f0950a9de4d0fc46886171aebea8d996fd Mon Sep 17 00:00:00 2001 From: Niklas Wahl Date: Mon, 13 May 2024 12:35:05 +0200 Subject: [PATCH 19/32] fix missing ct scenario index in calcCubesDoseGrid --- matRad_calcCubesDoseGrid.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/matRad_calcCubesDoseGrid.m b/matRad_calcCubesDoseGrid.m index 584440495..21c3a74e5 100644 --- a/matRad_calcCubesDoseGrid.m +++ b/matRad_calcCubesDoseGrid.m @@ -48,6 +48,8 @@ beamInfo(dij.numOfBeams+1).suffix = ''; beamInfo(dij.numOfBeams+1).logIx = true(size(resultGUI.w,1),1); +[ctScen,~] = ind2sub(size(dij.physicalDose),scenNum); + %% Physical Dose doseFields = {'physicalDose','doseToWater'}; From c7dc07e3184d910d5a440191a03172cc1bfabcb7 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Tue, 18 Jun 2024 17:41:00 +0200 Subject: [PATCH 20/32] First fixes --- Pareto/NavigationUI/matRad_calcFastCubes.m | 4 ++-- ...oblem.m => matRad_paretoSurfaceNavigation.m} | 2 +- examples/matRad_example15_paretoOptimization.m | 9 ++++++--- .../matRad_DoseConstraintFromObjective.m | 4 ++-- .../+DoseObjectives/matRad_DoseObjective.m | 8 ++++++-- .../Lexicgoraphic/matRad_2pecOptimization.m | 5 +++++ .../matRad_paretoOptimization.m | 17 +++++++++++++---- ...ts.m => matRad_generateParetoAnchorPoints.m} | 2 +- ...nts.m => matRad_generateParetoDummyPoints.m} | 2 +- ..._paretoCheck.m => matRad_paretoCheckPoint.m} | 2 +- 10 files changed, 38 insertions(+), 17 deletions(-) rename Pareto/NavigationUI/{matRad_navigationProblem.m => matRad_paretoSurfaceNavigation.m} (97%) rename optimization/ParetoOptimization/tools/{matRad_generateAnchorPoints.m => matRad_generateParetoAnchorPoints.m} (94%) rename optimization/ParetoOptimization/tools/{matRad_generateDummyPoints.m => matRad_generateParetoDummyPoints.m} (96%) rename optimization/ParetoOptimization/tools/{matRad_paretoCheck.m => matRad_paretoCheckPoint.m} (96%) diff --git a/Pareto/NavigationUI/matRad_calcFastCubes.m b/Pareto/NavigationUI/matRad_calcFastCubes.m index 29cba92de..352a22c7a 100644 --- a/Pareto/NavigationUI/matRad_calcFastCubes.m +++ b/Pareto/NavigationUI/matRad_calcFastCubes.m @@ -2,7 +2,7 @@ % matRad computation of cube for plan optimization quantity % % call -% resultGUI = matRad_calcCubes(w,dij,pln +% resultGUI = matRad_calcFastCubes(w,dij,pln) % % input % w: bixel weight vector @@ -17,7 +17,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% Copyright 2015 the matRad development team. +% Copyright 2024 the matRad development team. % % This file is part of the matRad project. It is subject to the license % terms in the LICENSE file found in the top-level directory of this diff --git a/Pareto/NavigationUI/matRad_navigationProblem.m b/Pareto/NavigationUI/matRad_paretoSurfaceNavigation.m similarity index 97% rename from Pareto/NavigationUI/matRad_navigationProblem.m rename to Pareto/NavigationUI/matRad_paretoSurfaceNavigation.m index 86614d5be..87430d9b7 100644 --- a/Pareto/NavigationUI/matRad_navigationProblem.m +++ b/Pareto/NavigationUI/matRad_paretoSurfaceNavigation.m @@ -1,4 +1,4 @@ -function v = matRad_navigationProblem(Y,yr,tau,j,b) +function v = matRad_paretoSurfaceNavigation(Y,yr,tau,j,b) %matRad_navigation problem allows the exploration of plans that are not in the set %of precalculated plans. % diff --git a/examples/matRad_example15_paretoOptimization.m b/examples/matRad_example15_paretoOptimization.m index f360380e5..5e735816b 100644 --- a/examples/matRad_example15_paretoOptimization.m +++ b/examples/matRad_example15_paretoOptimization.m @@ -34,7 +34,7 @@ %% load('TG119.mat'); %% -cst{1,6}{1} = struct(DoseObjectives.matRad_EUDMin(1000,0)); +cst{1,6}{1} = struct(DoseObjectives.matRad_EUD(1000,0)); cst{3,6}{1} = struct(DoseObjectives.matRad_MeanDose(1000,0)); %% %cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,55)); @@ -112,7 +112,10 @@ cst{2,6}{2} = struct(DoseConstraints.matRad_MinMaxDose(45,57)); %% -retStruct = matRad_paretoOptimization(dij,cst,pln,30); +[resultGUI,retStruct] = matRad_paretoOptimization(dij,cst,pln,3); %% -%matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) +matRadGUI +%% +matRadParetoGUI +% matRad_UIInterpolation(retStruct,dij,pln,ct,matRad_setOverlapPriorities(cst),retStruct.optiProb) diff --git a/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m b/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m index 8503ae722..6be2c6472 100644 --- a/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m +++ b/optimization/+DoseConstraints/matRad_DoseConstraintFromObjective.m @@ -20,12 +20,12 @@ properties (Constant) name = 'Objective Constraint'; parameterTypes = {'objFunc'}; - parameterNames = {'f^{max}'} + parameterNames = {'f^{max}'}; end properties objective; - parameters = {1e-5} + parameters = {1e-5}; end methods (Access = public) diff --git a/optimization/+DoseObjectives/matRad_DoseObjective.m b/optimization/+DoseObjectives/matRad_DoseObjective.m index 221c9dd7a..6a7301ed8 100644 --- a/optimization/+DoseObjectives/matRad_DoseObjective.m +++ b/optimization/+DoseObjectives/matRad_DoseObjective.m @@ -29,8 +29,12 @@ end end - methods (Static,Abstract) - adaptGoalToFraction + %These should be abstract methods, however Octave can't parse them. As soon + %as Octave is able to do this, they should be made abstract again + methods %(Static,Abstract) + function newGoalValue = adaptGoalToFraction(goalValue,numOfFractions) + error('Function needs to be implemented'); + end end %These should be abstract methods, however Octave can't parse them. As soon diff --git a/optimization/Lexicgoraphic/matRad_2pecOptimization.m b/optimization/Lexicgoraphic/matRad_2pecOptimization.m index f4473e9cd..0c033ee3c 100644 --- a/optimization/Lexicgoraphic/matRad_2pecOptimization.m +++ b/optimization/Lexicgoraphic/matRad_2pecOptimization.m @@ -12,6 +12,11 @@ % wInit: (optional) custom weights to initialize problems % % output + % resultGUIs: Plans created in the first phase + % resultGUIs2: Plans created in teh second phase + % cst1: Modified cst after the first phase + % cst2: Modified cst as after the second phase + % PriorityList2: Final priority list for lexicographic optimization % % References % https://iopscience.iop.org/article/10.1088/0031-9155/54/23/011 diff --git a/optimization/ParetoOptimization/matRad_paretoOptimization.m b/optimization/ParetoOptimization/matRad_paretoOptimization.m index 4acaef0c7..b0a6c9fde 100644 --- a/optimization/ParetoOptimization/matRad_paretoOptimization.m +++ b/optimization/ParetoOptimization/matRad_paretoOptimization.m @@ -1,4 +1,4 @@ -function returnStruct = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) +function [resultGUI,returnStruct] = matRad_paretoOptimization(dij,cst,pln,nIter,wInit) % matRad inverse pareto planning wrapper function % % call @@ -310,7 +310,7 @@ objcount = numel(optiProb.objectives); %% generaete Anchor Points for optimization -penGrid = matRad_generateAnchorPoints(objcount); +penGrid = matRad_generateParetoAnchorPoints(objcount); %initialize matrices for weight vectors and associated objective function values weights = zeros(numel(wInit),size(penGrid,1)); @@ -408,7 +408,7 @@ %Rennen Algorithm fVals = fInd; - fValsMod = matRad_generateDummyPoints(fVals,U); %generate dummy points + fValsMod = matRad_generateParetoDummyPoints(fVals,U); %generate dummy points % [kmod,vol] = convhulln(fValsMod); %[kred,vol] = convhulln(fVals); @@ -490,7 +490,7 @@ %how does the newly generated point influence the pareto %surface? - dominatedPoints = matRad_paretoCheck(fInd,fIndv); + dominatedPoints = matRad_paretoCheckPoint(fInd,fIndv); % if no point is dominated -> returns [] % if the newly generated point is not optimal -> Returns array with a 0 inside % if (a) previously generated point(s) is/are dominated by the @@ -573,5 +573,14 @@ returnStruct.allObj = objectiveFunctionVals; returnStruct.modcst = cst; +%calculate a single plan +resultGUI = matRad_calcCubes(wOpt,dij); +resultGUI.wUnsequenced = wOpt; +resultGUI.usedOptimizer = optimizer; +resultGUI.info = info; +resultGUI.optiProb = optiProb; + + + % unblock mex files clear mex diff --git a/optimization/ParetoOptimization/tools/matRad_generateAnchorPoints.m b/optimization/ParetoOptimization/tools/matRad_generateParetoAnchorPoints.m similarity index 94% rename from optimization/ParetoOptimization/tools/matRad_generateAnchorPoints.m rename to optimization/ParetoOptimization/tools/matRad_generateParetoAnchorPoints.m index 466135a52..f34aca1c5 100644 --- a/optimization/ParetoOptimization/tools/matRad_generateAnchorPoints.m +++ b/optimization/ParetoOptimization/tools/matRad_generateParetoAnchorPoints.m @@ -1,4 +1,4 @@ -function penPoints= matRad_generateAnchorPoints(numObj) +function penPoints= matRad_generateParetoAnchorPoints(numObj) % matRad function that generates the anchor points for pareto analysis % call % penPoints = matRad_generateSphericalPenaltyGrid(numObj) diff --git a/optimization/ParetoOptimization/tools/matRad_generateDummyPoints.m b/optimization/ParetoOptimization/tools/matRad_generateParetoDummyPoints.m similarity index 96% rename from optimization/ParetoOptimization/tools/matRad_generateDummyPoints.m rename to optimization/ParetoOptimization/tools/matRad_generateParetoDummyPoints.m index 17dafe297..272536344 100644 --- a/optimization/ParetoOptimization/tools/matRad_generateDummyPoints.m +++ b/optimization/ParetoOptimization/tools/matRad_generateParetoDummyPoints.m @@ -1,4 +1,4 @@ -function fValsMod = matRad_generateDummyPoints(fVals,U) +function fValsMod = matRad_generateParetoDummyPoints(fVals,U) % matRad Function that generates Dummy Points for a set of points % % input diff --git a/optimization/ParetoOptimization/tools/matRad_paretoCheck.m b/optimization/ParetoOptimization/tools/matRad_paretoCheckPoint.m similarity index 96% rename from optimization/ParetoOptimization/tools/matRad_paretoCheck.m rename to optimization/ParetoOptimization/tools/matRad_paretoCheckPoint.m index 58bc6b90d..b29e3e765 100644 --- a/optimization/ParetoOptimization/tools/matRad_paretoCheck.m +++ b/optimization/ParetoOptimization/tools/matRad_paretoCheckPoint.m @@ -1,4 +1,4 @@ -function dominatedPoints = matRad_paretoCheck(fVals,newfVal) +function dominatedPoints = matRad_paretoCheckPoint(fVals,newfVal) % matRad helper function that checks if a newly generated point dominates % another point or is dominated by a point in the previous sets. should % be called after calculating the first initial points From 74ae37960dd89033d58c43d8c6f634db08c59ef6 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:18:23 +0200 Subject: [PATCH 21/32] Optimization Preprocessing changes Pareto optimization now supports the preprocessing function and renamed to initOptimization --- matRad_fluenceOptimization.m | 4 +- ...eProcessing.m => matRad_initOptimization.m | 6 +- .../Lexicgoraphic/matRad_2pecOptimization.m | 6 +- .../matRad_paretoOptimization.m | 256 +----------------- 4 files changed, 14 insertions(+), 258 deletions(-) rename matRad_preProcessing.m => matRad_initOptimization.m (97%) diff --git a/matRad_fluenceOptimization.m b/matRad_fluenceOptimization.m index 5a8bdff52..6286a30ef 100755 --- a/matRad_fluenceOptimization.m +++ b/matRad_fluenceOptimization.m @@ -34,9 +34,9 @@ matRad_cfg = MatRad_Config.instance(); if exist('wInit','var') - [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln,wInit); + [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln,wInit); else - [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln); + [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln); end if ~isfield(pln.propOpt,'optimizer') diff --git a/matRad_preProcessing.m b/matRad_initOptimization.m similarity index 97% rename from matRad_preProcessing.m rename to matRad_initOptimization.m index 1c744b7e3..a24d3f94b 100644 --- a/matRad_preProcessing.m +++ b/matRad_initOptimization.m @@ -1,9 +1,9 @@ -function [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln,wInit) +function [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln,wInit) % matRad inverse planning wrapper function % % call -% [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln) -% [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_preProcessing(dij,cst,pln,wInit) +% [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln) +% [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln,wInit) % % input % dij: matRad dij struct diff --git a/optimization/Lexicgoraphic/matRad_2pecOptimization.m b/optimization/Lexicgoraphic/matRad_2pecOptimization.m index 0c033ee3c..902889f00 100644 --- a/optimization/Lexicgoraphic/matRad_2pecOptimization.m +++ b/optimization/Lexicgoraphic/matRad_2pecOptimization.m @@ -1,5 +1,5 @@ function [resultGUIs,resultGUIs2,cst1,cst2,PriorityList2]= matRad_2pecOptimization(PriorityList1,dij,cst,pln,wInit) - % Lexicographic optimization using the 2pec method asintroducded by + % Lexicographic optimization using the 2pec method as introducded by % Breedveld et al % % call @@ -39,9 +39,9 @@ PriorityList1.adaptToFractionSize(pln.numOfFractions); if exist('wInit','var') - [dij,cst,pln,wInit,optiProb] = matRad_preProcessing(dij,cst,pln,wInit); + [dij,cst,pln,wInit,optiProb] = matRad_initOptimization(dij,cst,pln,wInit); else - [dij,cst,pln,wInit,optiProb] = matRad_preProcessing(dij,cst,pln); + [dij,cst,pln,wInit,optiProb] = matRad_initOptimization(dij,cst,pln); end if ~isfield(pln.propOpt,'optimizer') diff --git a/optimization/ParetoOptimization/matRad_paretoOptimization.m b/optimization/ParetoOptimization/matRad_paretoOptimization.m index b0a6c9fde..6156dee2f 100644 --- a/optimization/ParetoOptimization/matRad_paretoOptimization.m +++ b/optimization/ParetoOptimization/matRad_paretoOptimization.m @@ -32,258 +32,10 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% matRad_cfg = MatRad_Config.instance(); - -if matRad_cfg.propOpt.defaultMaxIter < 10000 - warning(['Since the Pareto method relies on accurate results more exact results, meaning higher iterations are required (In combination with lower objective tolerance).']); -end - -% consider VOI priorities -cst = matRad_setOverlapPriorities(cst); - -% check & adjust objectives and constraints internally for fractionation -for i = 1:size(cst,1) - %Compatibility Layer for old objective format - if isstruct(cst{i,6}) - cst{i,6} = arrayfun(@matRad_DoseOptimizationFunction.convertOldOptimizationStruct,cst{i,6},'UniformOutput',false); - end - for j = 1:numel(cst{i,6}) - - obj = cst{i,6}{j}; - - %In case it is a default saved struct, convert to object - %Also intrinsically checks that we have a valid optimization - %objective or constraint function in the end - if ~isa(obj,'matRad_DoseOptimizationFunction') - try - obj = matRad_DoseOptimizationFunction.createInstanceFromStruct(obj); - catch - matRad_cfg.dispError('cst{%d,6}{%d} is not a valid Objective/constraint! Remove or Replace and try again!',i,j); - end - end - - obj = obj.setDoseParameters(obj.getDoseParameters()/pln.numOfFractions); - - cst{i,6}{j} = obj; - end -end - -% resizing cst to dose cube resolution -cst = matRad_resizeCstToGrid(cst,dij.ctGrid.x, dij.ctGrid.y, dij.ctGrid.z,... - dij.doseGrid.x,dij.doseGrid.y,dij.doseGrid.z); - -% find target indices and described dose(s) for weight vector -% initialization -V = []; -doseTarget = []; -ixTarget = []; - -for i = 1:size(cst,1) - if isequal(cst{i,3},'TARGET') && ~isempty(cst{i,6}) - V = [V;cst{i,4}{1}]; - - %Iterate through objectives/constraints - fDoses = []; - for fObjCell = cst{i,6} - dParams = fObjCell{1}.getDoseParameters(); - %Don't care for Inf constraints - dParams = dParams(isfinite(dParams)); - %Add to dose list - fDoses = [fDoses dParams]; - end - - doseTarget = [doseTarget fDoses]; - ixTarget = [ixTarget i*ones(1,length(fDoses))]; - end -end -[doseTarget,i] = max(doseTarget); -ixTarget = ixTarget(i); -wOnes = ones(dij.totalNumOfBixels,1); - -% calculate initial beam intensities wInit -% calculate initial beam intensities wInit -matRad_cfg.dispInfo('Estimating initial weights... '); - if exist('wInit','var') - %do nothing as wInit was passed to the function - matRad_cfg.dispInfo('chosen provided wInit!\n'); - - % Write ixDose which is needed for the optimizer - if pln.bioParam.bioOpt - dij.ixDose = dij.bx~=0; - - %pre-calculations - dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); - dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); - end - -elseif strcmp(pln.bioParam.model,'constRBE') && strcmp(pln.radiationMode,'protons') - % check if a constant RBE is defined - if not use 1.1 - if ~isfield(dij,'RBE') - dij.RBE = 1.1; - end - - doseTmp = dij.physicalDose{1}*wOnes; - bixelWeight = (doseTarget)/(dij.RBE * mean(doseTmp(V))); - wInit = wOnes * bixelWeight; - matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); - -elseif pln.bioParam.bioOpt - % retrieve photon LQM parameter - [ax,bx] = matRad_getPhotonLQMParameters(cst,dij.doseGrid.numOfVoxels,dij.numOfScenarios); - - if ~isequal(dij.ax(dij.ax~=0),ax(dij.ax~=0)) || ... - ~isequal(dij.bx(dij.bx~=0),bx(dij.bx~=0)) - matRad_cfg.dispError('Inconsistent biological parameter - please recalculate dose influence matrix!\n'); - end - - for i = 1:size(cst,1) - - for j = 1:size(cst{i,6},2) - % check if prescribed doses are in a valid domain - if any(cst{i,6}{j}.getDoseParameters() > 5) && isequal(cst{i,3},'TARGET') - matRad_cfg.dispError('Reference dose > 5 Gy[RBE] for target. Biological optimization outside the valid domain of the base data. Reduce dose prescription or use more fractions.\n'); - end - - end - end - - dij.ixDose = dij.bx~=0; - - if isequal(pln.bioParam.quantityOpt,'effect') - - effectTarget = cst{ixTarget,5}.alphaX * doseTarget + cst{ixTarget,5}.betaX * doseTarget^2; - aTmp = dij.mAlphaDose{1}*wOnes; - bTmp = dij.mSqrtBetaDose{1} * wOnes; - p = sum(aTmp(V)) / sum(bTmp(V).^2); - q = -(effectTarget * length(V)) / sum(bTmp(V).^2); - - wInit = -(p/2) + sqrt((p^2)/4 -q) * wOnes; - - elseif isequal(pln.bioParam.quantityOpt,'RBExD') - - %pre-calculations - dij.gamma = zeros(dij.doseGrid.numOfVoxels,dij.numOfScenarios); - dij.gamma(dij.ixDose) = dij.ax(dij.ixDose)./(2*dij.bx(dij.ixDose)); - - % calculate current effect in target - aTmp = dij.mAlphaDose{1}*wOnes; - bTmp = dij.mSqrtBetaDose{1} * wOnes; - doseTmp = dij.physicalDose{1}*wOnes; - - CurrEffectTarget = aTmp(V) + bTmp(V).^2; - % ensure a underestimated biological effective dose - TolEstBio = 1.2; - % calculate maximal RBE in target - maxCurrRBE = max(-cst{ixTarget,5}.alphaX + sqrt(cst{ixTarget,5}.alphaX^2 + ... - 4*cst{ixTarget,5}.betaX.*CurrEffectTarget)./(2*cst{ixTarget,5}.betaX*doseTmp(V))); - wInit = ((doseTarget)/(TolEstBio*maxCurrRBE*max(doseTmp(V))))* wOnes; - end - - matRad_cfg.dispInfo('chosen weights adapted to biological dose calculation!\n'); -else - doseTmp = dij.physicalDose{1}*wOnes; - bixelWeight = (doseTarget)/mean(doseTmp(V)); - wInit = wOnes * bixelWeight; - matRad_cfg.dispInfo('chosen uniform weight of %f!\n',bixelWeight); -end - - - - -%% calculate probabilistic quantities for probabilistic optimization if at least -% one robust objective is defined - -%Check how to use 4D data -if isfield(pln,'propOpt') && isfield(pln.propOpt,'scen4D') - scen4D = pln.propOpt.scen4D; -else - scen4D = 1; %Use only first 4D scenario for optimization -end - -%If "all" provided, use all scenarios -if isequal(scen4D,'all') - scen4D = 1:size(dij.physicalDose,1); -end - -linIxDIJ = find(~cellfun(@isempty,dij.physicalDose(scen4D,:,:)))'; - -FLAG_CALC_PROB = false; -FLAG_ROB_OPT = false; - - -for i = 1:size(cst,1) - for j = 1:numel(cst{i,6}) - if strcmp(cst{i,6}{j}.robustness,'PROB') && numel(linIxDIJ) > 1 - FLAG_CALC_PROB = true; - end - if ~strcmp(cst{i,6}{j}.robustness,'none') && numel(linIxDIJ) > 1 - FLAG_ROB_OPT = true; - end - end -end - -if FLAG_CALC_PROB - [dij] = matRad_calculateProbabilisticQuantities(dij,cst,pln); -end - - -% set optimization options -if ~FLAG_ROB_OPT || FLAG_CALC_PROB % if multiple robust objectives are defined for one structure then remove FLAG_CALC_PROB from the if clause - ixForOpt = scen4D; + [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln,wInit); else - ixForOpt = linIxDIJ; -end - -switch pln.bioParam.quantityOpt - case 'effect' - backProjection = matRad_EffectProjection; - case 'RBExD' - %Capture special case of constant RBE - if strcmp(pln.bioParam.model,'constRBE') - backProjection = matRad_ConstantRBEProjection; - else - backProjection = matRad_VariableRBEProjection; - end - case 'physicalDose' - backProjection = matRad_DoseProjection; - otherwise - warning(['Did not recognize bioloigcal setting ''' pln.probOpt.bioOptimization '''!\nUsing physical dose optimization!']); - backProjection = matRad_DoseProjection; -end - -%Give scenarios used for optimization -backProjection.scenarios = ixForOpt; -backProjection.scenarioProb = pln.multScen.scenProb; - -optiProb = matRad_OptimizationProblem(backProjection,cst); -optiProb.quantityOpt = pln.bioParam.quantityOpt; -if isfield(pln,'propOpt') && isfield(pln.propOpt,'useLogSumExpForRobOpt') - optiProb.useLogSumExpForRobOpt = pln.propOpt.useLogSumExpForRobOpt; -end - -%Get Bounds -if ~isfield(pln.propOpt,'boundMU') - pln.propOpt.boundMU = false; -end - -if pln.propOpt.boundMU - if (isfield(dij,'minMU') || isfield(dij,'maxMU')) && ~isfield(dij,'numParticlesPerMU') - matRad_cfg.dispWarning('Requested MU bounds but number of particles per MU not set! Bounds will not be enforced and standard [0,Inf] will be used instead!'); - elseif ~isfield(dij,'minMU') && ~isfield(dij,'maxMU') - matRad_cfg.dispWarning('Requested MU bounds but machine bounds not defined in dij.minMU & dij.maxMU! Bounds will not be enforced and standard [0,Inf] will be used instead!'); - else - if isfield(dij,'minMU') - optiProb.minimumW = dij.numParticlesPerMU .* dij.minMU / 1e6; - matRad_cfg.dispInfo('Using lower MU bounds provided in dij!\n') - end - - if isfield(dij,'maxMU') - optiProb.maximumW = dij.numParticlesPerMU .* dij.maxMU / 1e6; - matRad_cfg.dispInfo('Using upper MU bounds provided in dij!\n') - end - end -else - matRad_cfg.dispInfo('Using standard MU bounds of [0,Inf]!\n') + [dij,cst,pln,wInit,optiProb,FLAG_ROB_OPT] = matRad_initOptimization(dij,cst,pln); end if ~isfield(pln.propOpt,'optimizer') @@ -299,6 +51,10 @@ warning(['Optimizer ''' pln.propOpt.optimizer ''' not known! Fallback to IPOPT!']); optimizer = matRad_OptimizerIPOPT; end + +if ~optimizer.IsAvailable() + matRad_cfg.dispError(['Optimizer ''' pln.propOpt.optimizer ''' not available!']); +end % PARETO PART From 4ceb2bfdfc1c2a196a048b1a7c5ad533c058bd25 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:18:39 +0200 Subject: [PATCH 22/32] Plotting support for Pareto optimization --- Pareto/NavigationUI/matRad_plotPS2D.m | 59 +++++++++++++++++++ .../NavigationUI/matRad_plotParetoFront3D.m | 40 +++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 Pareto/NavigationUI/matRad_plotPS2D.m create mode 100644 Pareto/NavigationUI/matRad_plotParetoFront3D.m diff --git a/Pareto/NavigationUI/matRad_plotPS2D.m b/Pareto/NavigationUI/matRad_plotPS2D.m new file mode 100644 index 000000000..bfd1e7ee7 --- /dev/null +++ b/Pareto/NavigationUI/matRad_plotPS2D.m @@ -0,0 +1,59 @@ +function matRad_plotPS2D(retStruct,idx) + % matRad_plotParetoFront3D implements a function to visualize a 3d Pareto + % surface + % + % + % input + % retStruct: Structure returned from Pareto optimization + % idx(optional): + % output + % resultGUI: struct containing optimized fluence vector, dose, and (for + % biological optimization) RBE-weighted dose etc. + % optimizer: Used Optimizer Object + + % + % References + % + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ps = retStruct.finds; + if size(ps,2) < 2 + ME = MException('Matlab:WrongSize','Function requires more than one data point!'); + throw(ME); + end + if ~exist('idx','var') + if size(ps,2)>2 + ME = MException('Matlab:VariableNotFound','No indices provided!'); + throw(ME); + else %ps has exactly two objectives + idx = [1,2]; + end + else %idx variable provided + if numel(idx) ~= 2 %how many indices are provided + ME = MException('Matlab:WrongSize','Function needs exactly two indices!'); + throw(ME); + end + + if any(idx<1) || any(idx>size(ps,2)) %do the indices have the correct dimension? + ME = MException('Matlab:WrongIdx','Indices out of bounds!'); + throw(ME); + end + end + + + figure + scatter(ps(:,idx(1)),ps(:,idx(2)),'black') + xlabel('f_1[a.u]') + ylabel('f_2[a.u]') +end \ No newline at end of file diff --git a/Pareto/NavigationUI/matRad_plotParetoFront3D.m b/Pareto/NavigationUI/matRad_plotParetoFront3D.m new file mode 100644 index 000000000..38e4a826d --- /dev/null +++ b/Pareto/NavigationUI/matRad_plotParetoFront3D.m @@ -0,0 +1,40 @@ +function matRad_plotParetoFront3D(retStruct) + % matRad_plotParetoFront3D implements a function to visualize a 3d Pareto + % surface + % + % + % References + % + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + ps = retStruct.finds; + if size(ps,2) ~= 3 + ME = MException('Matlab:WrongSize','Function only supports plotting of 3D surfaces!'); + throw(ME); + end + + + [k,facets] = matRad_ParetoSurfFromFacets(ps); + figure + trisurf(facets(all(facets,2),:),ps(:,1),ps(:,2),ps(:,3),'FaceColor',[0.8 0.8 0.8]) + hold on + scatter3(ps(:,1),ps(:,2),ps(:,3),'MarkerEdgeColor','black',... + 'MarkerFaceColor',[0 0 0]) + legend('approx. surface','Location','northwest') + xlabel('f_1[a.u]') + ylabel('f_2[a.u]') + zlabel('f_3[a.u]') + view(-45,5) +end \ No newline at end of file From db5d715baeae087f895b4b922558e862757161af Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:18:56 +0200 Subject: [PATCH 23/32] Updates to the GUI --- ParetoGUI/matRad_ParetoDVHWidget.m | 24 +++- ParetoGUI/matRad_ParetoData.m | 2 +- ParetoGUI/matRad_ParetoGUI.m | 26 ++-- .../matRad_ParetoNavigationButtonWidget.m | 127 ++++++++++++++++++ ParetoGUI/matRad_ParetoSliceWidget.m | 5 - ...erWidget.m => matRad_ParetoSliderWidget.m} | 43 +++--- 6 files changed, 188 insertions(+), 39 deletions(-) create mode 100644 ParetoGUI/matRad_ParetoNavigationButtonWidget.m rename ParetoGUI/{matRad_SliderWidget.m => matRad_ParetoSliderWidget.m} (93%) diff --git a/ParetoGUI/matRad_ParetoDVHWidget.m b/ParetoGUI/matRad_ParetoDVHWidget.m index ff4377fa4..0156e12ec 100644 --- a/ParetoGUI/matRad_ParetoDVHWidget.m +++ b/ParetoGUI/matRad_ParetoDVHWidget.m @@ -1,5 +1,6 @@ classdef matRad_ParetoDVHWidget < matRad_Widget - % matRad_ParetoSliceWidget class + % matRad_ParetoDVHWidget class creates a widget for the Pareto GUI to + % display plan DVH's % % % References @@ -26,13 +27,13 @@ function this = matRad_ParetoDVHWidget(handleParent) this = this@matRad_Widget(handleParent); this.DVHPlotAxes = axes(this.widgetHandle,'Position',[0 0 1 1]); + this.plotInitialDVH(); end function this = initialize(this) this.update(); end - - + end methods (Access = protected) @@ -51,6 +52,23 @@ %updateInWorkspace(this); end end + + methods (Access = private) + function plotInitialDVH(this) + ParetoHelperObject = evalin('base','ParetoHelperObject'); + %Shows the DVH for the current plan + resultGUI = matRad_calcCubes(ParetoHelperObject.currentWeights,evalin('base','dij')); + dvh = matRad_calcDVH(evalin('base','cst'),resultGUI.physicalDose,'cum'); + + matRad_showDVH(this.DVHPlotAxes,... + dvh,evalin('base','cst'),evalin('base','pln'),ParetoHelperObject.linestyle); + if ParetoHelperObject.linestyle < 4 + ParetoHelperObject.linestyle = ParetoHelperObject.linestyle + 1; + else + ParetoHelperObject.linestyle = 1; + end + end + end end diff --git a/ParetoGUI/matRad_ParetoData.m b/ParetoGUI/matRad_ParetoData.m index 4702e3e7c..813e9cab6 100644 --- a/ParetoGUI/matRad_ParetoData.m +++ b/ParetoGUI/matRad_ParetoData.m @@ -1,5 +1,5 @@ classdef matRad_ParetoData < handle - % matRad_UIData implements a class that allows easy storing of + % matRad_ParetoData implements a class that allows easy storing of % variables related to the pareto Navigation % % References diff --git a/ParetoGUI/matRad_ParetoGUI.m b/ParetoGUI/matRad_ParetoGUI.m index a41ee5ec9..5a5a11ac4 100644 --- a/ParetoGUI/matRad_ParetoGUI.m +++ b/ParetoGUI/matRad_ParetoGUI.m @@ -1,6 +1,6 @@ classdef matRad_ParetoGUI < handle -% matRad_MainGUI Graphical User Interface configuration class -% This Class is used to create the main GUI interface where all the widgets +% matRad_ParetoGUI Pareto navigation Graphical User Interface configuration class +% This Class is used to create the Pareto GUI interface where all the widgets % are called and created. % % @@ -24,9 +24,9 @@ properties (Access = private) LogoWidget ParetoSliceWidget - SliderWidget - DVHWidget - ButtonWidget + ParetoSliderWidget + ParetoDVHWidget + ParetoNavigationButtonWidget end methods @@ -103,12 +103,18 @@ 'FontWeight',matRad_cfg.gui.fontWeight); - - this.ParetoSliceWidget = matRad_ParetoSliceWidget(pParetoSlice); - this.SliderWidget = matRad_SliderWidget(pSliderWidget,this.ParetoSliceWidget); - this.DVHWidget = matRad_ParetoDVHWidget(pParetoDVHWidget); - this.ButtonWidget = matRad_ButtonWidget(pButtonWidget,this.SliderWidget,this.DVHWidget); + fAll = evalin('base','retStruct.finds'); + wAll = evalin('base','retStruct.weights'); + assignin('base','ParetoHelperObject',matRad_ParetoData(fAll,wAll)) + %this.optiProb = evalin('base','retStruct.optiProb'); + %this.helperObject = matRad_ParetoData(fAll,wAll); + + + this.ParetoSliceWidget = matRad_ParetoSliceWidget(pParetoSlice); + this.ParetoSliderWidget = matRad_ParetoSliderWidget(pSliderWidget,this.ParetoSliceWidget); + this.ParetoDVHWidget = matRad_ParetoDVHWidget(pParetoDVHWidget); + this.ParetoNavigationButtonWidget = matRad_ParetoNavigationButtonWidget(pButtonWidget,this.ParetoSliderWidget,this.ParetoDVHWidget); end function figure1_CloseRequestFcn(this,hObject, ~) diff --git a/ParetoGUI/matRad_ParetoNavigationButtonWidget.m b/ParetoGUI/matRad_ParetoNavigationButtonWidget.m new file mode 100644 index 000000000..1877937ae --- /dev/null +++ b/ParetoGUI/matRad_ParetoNavigationButtonWidget.m @@ -0,0 +1,127 @@ +classdef matRad_ParetoNavigationButtonWidget < matRad_Widget + % matRad_ParetoNavigationButtonWidget class to generate GUI widget + % to display buttons with additional functionality for Pareto surface + % navigation + % + % References + % - + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Copyright 2024 the matRad development team. + % + % This file is part of the matRad project. It is subject to the license + % terms in the LICENSE file found in the top-level directory of this + % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part + % of the matRad project, including this file, may be copied, modified, + % propagated, or distributed except according to the terms contained in the + % LICENSE file. + % + % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + properties + sliderWidgetHandle + dvhWidgetHandle + end + + methods + function this = matRad_ParetoNavigationButtonWidget(handleParent,sliderWidgetHandle,dvhWidgetHandle) + + this = this@matRad_Widget(handleParent); + this.sliderWidgetHandle = sliderWidgetHandle; + this.dvhWidgetHandle = dvhWidgetHandle; + end + end + + methods (Access = protected) + function this = createLayout(this) + ButtonPanel= this.widgetHandle; + matRad_cfg = MatRad_Config.instance(); + %About button + DVHButton = uicontrol(... + 'Parent',ButtonPanel,... + 'Units','normalized',... + 'String','Show DVH',... + 'Tooltip', 'Show the DVH for the current plan',... + 'Position',[0.1 0.55 0.35 0.25],... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight,... + 'Tag','btn_export',... + 'Callback',@this.DVHButton_callback); + + exportButton = uicontrol(... + 'Parent',ButtonPanel,... + 'Units','normalized',... + 'String','Export',... + 'Tooltip', 'Export selected quantites to selected folder',... + 'UserData',[],... + 'Position',[0.55 0.55 0.35 0.25],... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight,... + 'Tag','btn_export',... + 'Callback',@this.ExportButton_callback); + + resetButton = uicontrol(... + 'Parent',ButtonPanel,... + 'Units','normalized',... + 'String','Reset constraints',... + 'Tooltip', 'Export selected quantites to selected folder',... + 'UserData',[],... + 'Position',[0.25 0.15 0.5 0.25],... + 'BackgroundColor',matRad_cfg.gui.elementColor,... + 'ForegroundColor',matRad_cfg.gui.textColor,... + 'FontSize',matRad_cfg.gui.fontSize,... + 'FontName',matRad_cfg.gui.fontName,... + 'FontWeight',matRad_cfg.gui.fontWeight,... + 'Tag','btn_export',... + 'Callback',@this.ResetConstraintButton_callback); + end + + + function DVHButton_callback(this,~,~) + ParetoHelperObject = evalin('base','ParetoHelperObject'); + %Shows the DVH for the current plan + resultGUI = matRad_calcCubes(ParetoHelperObject.currentWeights,evalin('base','dij')); + dvh = matRad_calcDVH(evalin('base','cst'),resultGUI.physicalDose,'cum'); + + matRad_showDVH(this.dvhWidgetHandle.DVHPlotAxes,... + dvh,evalin('base','cst'),evalin('base','pln'),ParetoHelperObject.linestyle); + if ParetoHelperObject.linestyle < 4 + ParetoHelperObject.linestyle = ParetoHelperObject.linestyle + 1; + else + ParetoHelperObject.linestyle = 1; + end + % + + end + + function ExportButton_callback(this,~,~) + ParetoHelperObject = evalin('base','ParetoHelperObject'); + %Export the current plan to the matRadGUi for better inspection + resultGUI = matRad_calcCubes(ParetoHelperObject.currentWeights,evalin('base','dij')); + assignin('base',"resultGUI",resultGUI); + matRadGUI; + + end + + function ResetConstraintButton_callback(this,~,~) + ParetoHelperObject = evalin('base','ParetoHelperObject'); + ParetoHelperObject.releaseObjectiveBounds(); + + for i = 1:numel(this.sliderWidgetHandle.objectiveSliders) + set(this.sliderWidgetHandle.objectiveSliders{i},'Min',ParetoHelperObject.lowboundSliderInit(i)); + set(this.sliderWidgetHandle.objectiveSliders{i},'Max',ParetoHelperObject.initialUpbound(i)); + end + end + + + end + + +end diff --git a/ParetoGUI/matRad_ParetoSliceWidget.m b/ParetoGUI/matRad_ParetoSliceWidget.m index 25594a106..071a11ec9 100644 --- a/ParetoGUI/matRad_ParetoSliceWidget.m +++ b/ParetoGUI/matRad_ParetoSliceWidget.m @@ -29,7 +29,6 @@ end function this = initialize(this) - this.update(); end @@ -46,10 +45,6 @@ this.createHandles(); end - function this = doUpdate(this,evt) - %getFromWorkspace(this); - %updateInWorkspace(this); - end end end diff --git a/ParetoGUI/matRad_SliderWidget.m b/ParetoGUI/matRad_ParetoSliderWidget.m similarity index 93% rename from ParetoGUI/matRad_SliderWidget.m rename to ParetoGUI/matRad_ParetoSliderWidget.m index a2498afb0..5dc2946ee 100644 --- a/ParetoGUI/matRad_SliderWidget.m +++ b/ParetoGUI/matRad_ParetoSliderWidget.m @@ -1,6 +1,6 @@ -classdef matRad_SliderWidget < matRad_Widget - % matRad_OptimizationWidget class to generate GUI widget to set - % optimization options +classdef matRad_ParetoSliderWidget < matRad_Widget + % matRad_ParetoSliderWidget class to generate GUI widget to move sliders for + % Pareto surface navigation % % References % - @@ -27,7 +27,7 @@ end methods - function this = matRad_SliderWidget(handleParent,paretoSliceWidgetHandle) + function this = matRad_ParetoSliderWidget(handleParent,paretoSliceWidgetHandle) matRad_cfg = MatRad_Config.instance(); this = this@matRad_Widget(handleParent); @@ -35,12 +35,12 @@ this.paretoSliceWidgetHandle = paretoSliceWidgetHandle; this.objectiveSliders = {}; %TODO: Best way to pass objective function values? - fAll = evalin('base','retStruct.finds'); - wAll = evalin('base','retStruct.weights'); - this.optiProb = evalin('base','retStruct.optiProb'); - this.helperObject = matRad_ParetoData(fAll,wAll); + %fAll = evalin('base','retStruct.finds'); + %wAll = evalin('base','retStruct.weights'); + %this.optiProb = evalin('base','retStruct.optiProb'); + %this.helperObject = matRad_ParetoData(fAll,wAll); this.initialize(); - %this.plotSlice(this.helperObject.currentWeights); + this.plotSlice(evalin('base','ParetoHelperObject.currentWeights')); end end @@ -64,8 +64,8 @@ end function this = doUpdate(this,evt) - doUpdate = true; + if nargin == 2 %At pln changes and at cst/cst (for Isocenter and new settings) %we need to update @@ -87,7 +87,7 @@ function cst = generateSliderTable(this,cst) matRad_cfg = MatRad_Config.instance(); - + ParetoHelperObject = evalin('base','ParetoHelperObject'); %cst = updateStructureTable(this,cst); handles = this.handles; SliderPanel = this.widgetHandle; @@ -268,7 +268,8 @@ 'FontName',matRad_cfg.gui.fontName,... 'FontWeight',matRad_cfg.gui.fontWeight, ... 'Callback',@(hObject,eventdata)ObjectiveSlider_callback(this,hObject,eventdata,cnt)); - this.objectiveSliders{cnt}.Value = this.helperObject.currentPoint(cnt); + + this.objectiveSliders{cnt}.Value = ParetoHelperObject.currentPoint(cnt); tmp_pos = get(this.objectiveSliders{cnt},'Position'); xPos = xPos + tmp_pos(3) + fieldSep; @@ -390,22 +391,23 @@ function ObjectiveSlider_callback(this,slider,~,idx) % - v = matRad_navigationProblem(this.helperObject.allPoints',this.helperObject.currentPoint,slider.Value,idx,this.helperObject.availableUpbound); + ParetoHelperObject = evalin('base','ParetoHelperObject'); + v = matRad_paretoSurfaceNavigation(ParetoHelperObject.allPoints',ParetoHelperObject.currentPoint,slider.Value,idx,ParetoHelperObject.availableUpbound); if numel(v) == 0 %navigation algorithm didnt find a new point for i = 1:numel(this.objectiveSliders) - set(this.objectiveSliders{i},'Value',this.helperObject.currentPoint(i)); + set(this.objectiveSliders{i},'Value',ParetoHelperObject.currentPoint(i)); end else - wNew = this.helperObject.allWeights*v; + wNew = ParetoHelperObject.allWeights*v; - fNew = this.helperObject.allPoints'*v;% evaluate function(strictly necessary?) + fNew = ParetoHelperObject.allPoints'*v;% evaluate function(strictly necessary?) %fNew = this.optiProb.normalizeObjectives(fNew'); - this.helperObject.currentPoint = fNew; - this.helperObject.currentWeights = wNew; + ParetoHelperObject.currentPoint = fNew; + ParetoHelperObject.currentWeights = wNew; %Open: Current for i = 1:numel(this.objectiveSliders) @@ -424,8 +426,9 @@ function plotSlice(this,w) end function FixButton_callback(this,~,~,idx) - - [lb,ub] = this.helperObject.restrictObjective(idx,this.objectiveSliders{idx}.Value); %update refObjects bounds + + ParetoHelperObject = evalin('base','ParetoHelperObject'); + [lb,ub] = ParetoHelperObject.restrictObjective(idx,this.objectiveSliders{idx}.Value); %update refObjects bounds for i = 1:numel(this.objectiveSliders) From b8df93d4e3190492622b85355083097f698f0158 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:20:02 +0200 Subject: [PATCH 24/32] Readded option to calculate Pareto surface from the given facets Actually required for plotting functions! (Forgot to include in commit) --- .../matRad_ParetoSurfFromFacets.m | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Pareto/NavigationUI/matRad_ParetoSurfFromFacets.m diff --git a/Pareto/NavigationUI/matRad_ParetoSurfFromFacets.m b/Pareto/NavigationUI/matRad_ParetoSurfFromFacets.m new file mode 100644 index 000000000..e4f07bc65 --- /dev/null +++ b/Pareto/NavigationUI/matRad_ParetoSurfFromFacets.m @@ -0,0 +1,74 @@ +function [k,facets] = matRad_ParetoSurfFromFacets(fVals) +% matRad_ParetoSurfFromFacets allows to calculate the facets of the pareto surface +% from its vertices. The facets are calculated by calculating the convex hull. +% +% call +% [k,facets] = matRad_ParetoSurfFromFacets(fVals) +% +% input +% fVals: Matrix storing the objective function values of the pareto surface vertices (objective function values of the calculated points) +% +% output +% k: Matrix storing the vertices belonging to the facets of the convex hull +% facets: Matrix storing only the vertices that belong to the Pareto surface (The ones associated to facets with positive normals) +% +% References +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Copyright 2023 the matRad development team. +% +% This file is part of the matRad project. It is subject to the license +% terms in the LICENSE file found in the top-level directory of this +% distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part +% of the matRad project, including this file, may be copied, modified, +% propagated, or distributed except according to the terms contained in the +% LICENSE file. +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %calculate convex hull + [k,vol] = convhulln(fVals); + + %% + %calculate normals for each facet(normal vectors are perpendicular to their respective facet) + %Done by solving P*n= 0 where P is a matrix with the vectors spanning the hyperplane and n the + %normal vector to be calculated + + %initializing some objects that are returned by the function + facets= zeros(size(k)); + + j = 0; + %% loop over all facets of convex hull + for i = 1:size(k,1) + %% Step2: Calculate upper bounds from convex hull + %vertices of facets + ps = fVals(k(i,:),:); + %calculate vectors spanning hyperplane through refPoint + refPoint = ps(1,:); + f = ps-refPoint; % vectors spanning hyperplan through ps(1,:) + zw = f(2:end,:); % remove reference Point + % + normal = null(zw); %solve P*n=0 P Matrix + + %% check orientation of calculated normal vector + %get vertex not in facet and calculate orientation of facet + idxs = (1:size(fVals,1)); + diffs = setdiff(idxs,k(i,:)); % find vertex not in facet + + %check if orientation and normal vector face in same direction + orientationVector = fVals(diffs(1),:)-refPoint; + orientation =(orientationVector*normal>0); + + %flip orientation of normal vector if it goes in the opposite direction + normal = normal*(2*orientation-1); + normal = round(normal,4); + + %reject facet if normal has all negative components + + if any(round(normal,3)<0) + continue + end + facets(i,:) = k(i,:); + end +end \ No newline at end of file From 5baac7a0fca996611b987c7f2c13b907671fbe35 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:20:12 +0200 Subject: [PATCH 25/32] Delete matRad_plotPS.m --- Pareto/NavigationUI/matRad_plotPS.m | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 Pareto/NavigationUI/matRad_plotPS.m diff --git a/Pareto/NavigationUI/matRad_plotPS.m b/Pareto/NavigationUI/matRad_plotPS.m deleted file mode 100644 index 08ac64aed..000000000 --- a/Pareto/NavigationUI/matRad_plotPS.m +++ /dev/null @@ -1,25 +0,0 @@ -function matRad_plotPS(helperObj) - %{ - figure - scatter3(finds(:,1),finds(:,2),finds(:,3)) - hold on - scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled') - %} - ps = refObj.allPoints; - psRed = refObj.; - fNew = refObj.fRef; - [k,facets] = matRad_ParetoSurfFromFacets(ps); - figure - trisurf(facets(all(facets,2),:),ps(:,1),ps(:,2),ps(:,3),'FaceColor',[0.8 0.8 0.8]) - hold on - scatter3(ps(:,1),ps(:,2),ps(:,3),'MarkerEdgeColor','black',... - 'MarkerFaceColor',[0 0 0]) - scatter3(psRed(:,1),psRed(:,2),psRed(:,3),'MarkerEdgeColor','black',... - 'MarkerFaceColor',[1 1 0]) - scatter3(fNew(:,1),fNew(:,2),fNew(:,3),'filled','MarkerFaceColor','red') - legend('approx. surface','Blocked areas','Available areas','Current point','Location','northwest') - xlabel('f_1[a.u]') - ylabel('f_2[a.u]') - zlabel('f_3[a.u]') - view(-45,5) -end \ No newline at end of file From 41234fed07708cc171041d1fc1e6be5f89b1eb7c Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:20:16 +0200 Subject: [PATCH 26/32] Delete matRad_ButtonWidget.m --- ParetoGUI/matRad_ButtonWidget.m | 124 -------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 ParetoGUI/matRad_ButtonWidget.m diff --git a/ParetoGUI/matRad_ButtonWidget.m b/ParetoGUI/matRad_ButtonWidget.m deleted file mode 100644 index 154a013f8..000000000 --- a/ParetoGUI/matRad_ButtonWidget.m +++ /dev/null @@ -1,124 +0,0 @@ -classdef matRad_ButtonWidget < matRad_Widget - % matRad_InfoWidget class to generate GUI widget to display system and - % version information - % - % - % References - % - - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % Copyright 2020 the matRad development team. - % - % This file is part of the matRad project. It is subject to the license - % terms in the LICENSE file found in the top-level directory of this - % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part - % of the matRad project, including this file, may be copied, modified, - % propagated, or distributed except according to the terms contained in the - % LICENSE file. - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - properties - sliderWidgetHandle - dvhWidgetHandle - end - - methods - function this = matRad_ButtonWidget(handleParent,sliderWidgetHandle,dvhWidgetHandle) - - this = this@matRad_Widget(handleParent); - this.sliderWidgetHandle = sliderWidgetHandle; - this.dvhWidgetHandle = dvhWidgetHandle; - end - end - - methods (Access = protected) - function this = createLayout(this) - ButtonPanel= this.widgetHandle; - matRad_cfg = MatRad_Config.instance(); - %About button - DVHButton = uicontrol(... - 'Parent',ButtonPanel,... - 'Units','normalized',... - 'String','Show DVH',... - 'Tooltip', 'Show the DVH for the current plan',... - 'Position',[0.1 0.55 0.35 0.25],... - 'BackgroundColor',matRad_cfg.gui.elementColor,... - 'ForegroundColor',matRad_cfg.gui.textColor,... - 'FontSize',matRad_cfg.gui.fontSize,... - 'FontName',matRad_cfg.gui.fontName,... - 'FontWeight',matRad_cfg.gui.fontWeight,... - 'Tag','btn_export',... - 'Callback',@this.DVHButton_callback); - - exportButton = uicontrol(... - 'Parent',ButtonPanel,... - 'Units','normalized',... - 'String','Export',... - 'Tooltip', 'Export selected quantites to selected folder',... - 'UserData',[],... - 'Position',[0.55 0.55 0.35 0.25],... - 'BackgroundColor',matRad_cfg.gui.elementColor,... - 'ForegroundColor',matRad_cfg.gui.textColor,... - 'FontSize',matRad_cfg.gui.fontSize,... - 'FontName',matRad_cfg.gui.fontName,... - 'FontWeight',matRad_cfg.gui.fontWeight,... - 'Tag','btn_export',... - 'Callback',@this.ExportButton_callback); - - resetButton = uicontrol(... - 'Parent',ButtonPanel,... - 'Units','normalized',... - 'String','Reset constraints',... - 'Tooltip', 'Export selected quantites to selected folder',... - 'UserData',[],... - 'Position',[0.25 0.15 0.5 0.25],... - 'BackgroundColor',matRad_cfg.gui.elementColor,... - 'ForegroundColor',matRad_cfg.gui.textColor,... - 'FontSize',matRad_cfg.gui.fontSize,... - 'FontName',matRad_cfg.gui.fontName,... - 'FontWeight',matRad_cfg.gui.fontWeight,... - 'Tag','btn_export',... - 'Callback',@this.ResetConstraintButton_callback); - end - - - function DVHButton_callback(this,~,~) - %Shows the DVH for the current plan - resultGUI = matRad_calcCubes(this.sliderWidgetHandle.helperObject.currentWeights,evalin('base','dij')); - dvh = matRad_calcDVH(evalin('base','cst'),resultGUI.physicalDose,'cum'); - - matRad_showDVH(this.dvhWidgetHandle.DVHPlotAxes,... - dvh,evalin('base','cst'),evalin('base','pln'),this.sliderWidgetHandle.helperObject.linestyle); - if this.sliderWidgetHandle.helperObject.linestyle < 4 - this.sliderWidgetHandle.helperObject.linestyle = this.sliderWidgetHandle.helperObject.linestyle + 1; - else - this.sliderWidgetHandle.helperObject.linestyle = 1; - end - % - - end - - function ExportButton_callback(this,~,~) - %Export the current plan to the matRadGUi for better inspection - resultGUI = matRad_calcCubes(this.sliderWidgetHandle.helperObject.currentWeights,evalin('base','dij')); - assignin('base',"resultGUI",resultGUI); - matRadGUI; - - end - - function ResetConstraintButton_callback(this,~,~) - this.sliderWidgetHandle.helperObject.releaseObjectiveBounds(); - - for i = 1:numel(this.sliderWidgetHandle.objectiveSliders) - set(this.sliderWidgetHandle.objectiveSliders{i},'Min',this.sliderWidgetHandle.helperObject.lowboundSliderInit(i)); - set(this.sliderWidgetHandle.objectiveSliders{i},'Max',this.sliderWidgetHandle.helperObject.initialUpbound(i)); - end - end - - - end - - -end From 94d2d46da9a38d5a64d855bf75d111b8e5cb9027 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 20 Jun 2024 10:21:47 +0200 Subject: [PATCH 27/32] Small updates to plotting functions Updates remove some errors I had with using them in the Pareto GUI. Do not interfere with the actual functionality as far as I can tell --- matRad_showDVH.m | 2 +- tools/matRad_plotSliceWrapper.m | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/matRad_showDVH.m b/matRad_showDVH.m index f61094a5e..f08bdefde 100644 --- a/matRad_showDVH.m +++ b/matRad_showDVH.m @@ -96,7 +96,7 @@ function matRad_showDVH(axesHandle,dvh,cst,pln,lineStyleIndicator) if exist('pln','var') && ~isempty(pln) if strcmp(pln.bioParam.model,'none') - xlabel('Dose [Gy]','FontSize',fontSizeValue); + xlabel(axesHandle,'Dose [Gy]','FontSize',fontSizeValue); else xlabel(axesHandle,'RBE x Dose [Gy(RBE)]','FontSize',fontSizeValue); end diff --git a/tools/matRad_plotSliceWrapper.m b/tools/matRad_plotSliceWrapper.m index deab0f402..8ef2f938e 100644 --- a/tools/matRad_plotSliceWrapper.m +++ b/tools/matRad_plotSliceWrapper.m @@ -102,7 +102,6 @@ set(axesHandle,'YDir','Reverse'); % plot ct slice hCt = matRad_plotCtSlice(axesHandle,ct.cubeHU,cubeIdx,plane,slice); -hold on; % plot dose [hDose,doseColorMap,doseWindow] = matRad_plotDoseSlice(axesHandle,dose,plane,slice,thresh,alpha,doseColorMap,doseWindow); From a0336fed7f3b5b0cc604ceb09ec9afbee473c26c Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:05:55 +0200 Subject: [PATCH 28/32] Removed some unnecessary functions --- Pareto/NavigationUI/matRad_UIData.m | 66 ------ Pareto/NavigationUI/matRad_UIInterpolation.m | 227 ------------------- 2 files changed, 293 deletions(-) delete mode 100644 Pareto/NavigationUI/matRad_UIData.m delete mode 100644 Pareto/NavigationUI/matRad_UIInterpolation.m diff --git a/Pareto/NavigationUI/matRad_UIData.m b/Pareto/NavigationUI/matRad_UIData.m deleted file mode 100644 index 8ac28b326..000000000 --- a/Pareto/NavigationUI/matRad_UIData.m +++ /dev/null @@ -1,66 +0,0 @@ -classdef matRad_UIData < handle - % matRad_UIData implements a class that allows easy storing of - % variables related to the pareto Navigation - % - % References - % - - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % Copyright 2020 the matRad development team. - % - % This file is part of the matRad project. It is subject to the license - % terms in the LICENSE file found in the top-level directory of this - % distribution and at https://github.com/e0404/matRad/LICENSES.txt. No part - % of the matRad project, including this file, may be copied, modified, - % propagated, or distributed except according to the terms contained in the - % LICENSE file. - % - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - properties - wRef %weight vector of last calculated plan - fRef %objective function values of last calculated plan - fIndsAll % stores all objective function values - fIndsRed % stores only the "reduced points" - upboundInit - upboundRed - upboundSlider - lowboundSliderInit - lowboundSlider - linestyle - end - - methods - function obj = matRad_UIData(wRef,fRef,fInds) - obj.wRef = wRef; - obj.fRef = fRef; - obj.fIndsAll = fInds; - obj.fIndsRed = fInds; - obj.upboundInit = max(fInds,[],1); - obj.upboundRed = max(fInds,[],1); - obj.upboundSlider= max(fInds,[],1); - obj.lowboundSliderInit = min(fInds,[],1); - obj.lowboundSlider = min(fInds,[],1); - obj.linestyle = 2; - end - - function [sliderLowBound,sliderUpBound] = restrictObjective(obj,i,bound) - obj.upboundRed(i) = bound; - obj.fIndsRed = obj.fIndsRed(obj.fIndsRed(:,i) <= bound,:); - obj.upboundSlider= max([obj.fIndsRed;obj.fRef],[],1); - obj.upboundSlider(i) = bound; - obj.lowboundSlider = min([obj.fIndsRed;obj.fRef],[],1); - sliderLowBound = obj.lowboundSlider; - sliderUpBound = obj.upboundSlider; - end - - function releaseObjectiveBounds(obj) - obj.upboundRed = obj.upboundInit; - obj.fIndsRed = obj.fIndsAll; - obj.upboundSlider = obj.upboundInit; - obj.lowboundSlider = obj.lowboundSliderInit; - end - - end -end \ No newline at end of file diff --git a/Pareto/NavigationUI/matRad_UIInterpolation.m b/Pareto/NavigationUI/matRad_UIInterpolation.m deleted file mode 100644 index 35b133923..000000000 --- a/Pareto/NavigationUI/matRad_UIInterpolation.m +++ /dev/null @@ -1,227 +0,0 @@ -function matRad_UIInterpolation(data,dij,pln,ct,cst,optiProb) - - - fInds = data.finds; - - - %sort function values according to each dimension - still necessary? - [A,I] = sort(fInds(:,1),1,'ascend'); - fIndsSorted = fInds(I,:); - weights = data.weights(:,I); - %idx = round(size(fInds,1)/2); - idx = 4; - %% - - slice = round(pln.propStf.isoCenter(1,3)./ct.resolution.z); - %% - - %% - f = figure('units','normalized','outerposition',[0 0 1 1]); - DosePlot = axes('Position',[.1 .5 .4 .4]); - title('Dose Slice') - DVHPlot = axes('Position',[.6 .5 .35 .4]); - title('DVH'); - % - - %Create uipanels - p = uipanel(f,'Position',[0.05 0.1 0.3 0.35]); - p2 = uipanel(f,'Position',[0.35 0.3 0.15 0.15]); - -%extract the names of the objectives and corresponding VOI - names = {}; - for i = (1:numel(optiProb.objectives)) - names{end + 1} = optiProb.objectives{i}.name; - end - - VOIs = {}; - for i = 1:size(cst,1) - if ~isempty(cst{i,6}) - VOIs{end + 1} = cst{i,2}; - end - end - %Generate reference point (should lie somewhere in the middle of - %objective 1) - fRef = fIndsSorted(idx,:); - wRef = weights(:,idx); - refObj = matRad_UIData(wRef,fRef,fIndsSorted); - - %initial UI elements - sliders = {}; - namesui = {}; - sliderValues = {}; - fixButtons = {}; - VOIui = {}; - - %%Create interactive elements - for i = 1:size(fInds,2) - VOIui{i} = uicontrol(p,'Style','text',... - 'Units','normalized',... - 'Position',[0.02,0.9-(i-1)*0.13, 0.15,0.1],... - 'String',VOIs{i}); - - namesui{i} = uicontrol(p,'Style','text',... - 'Units','normalized',... - 'Position',[0.17,0.9-(i-1)*0.13, 0.22,0.1],... - 'String',names{i}); - - sliderValues{i} = uicontrol(p,'Style','text',... - 'Units','normalized',... - 'Position',[0.9,0.9-(i-1)*0.13, 0.1,0.05],... - 'String',fIndsSorted(idx,i)); - - sliders{i} = uicontrol(p,'Style','slider',... - 'Units','normalized',... - 'Min',min(fIndsSorted(:,i)),'Max',max(fIndsSorted(:,i)),... - 'Position',[0.4,0.9-(i-1)*0.13, 0.35,0.05]); - - - fixButtons{i} = uicontrol(p,'Style','pushbutton',... - 'Units','normalized',... - 'Position',[0.78,0.9-(i-1)*0.13, 0.1,0.05],... - 'String','Fix'); - - sliders{i}.Value = fIndsSorted(idx,i); - - end - - DVHButton = uicontrol(p2,'Style','pushbutton',... - 'Units','normalized',... - 'Position',[0.1 0.6 0.35 0.3],... - 'String','Show DVH'); - - ExportButton = uicontrol(p2,'Style','pushbutton',... - 'Units','normalized',... - 'Position',[0.55 0.6 0.35 0.3],... - 'String','Export to GUI'); - - ResetConstraintButton = uicontrol(p2,'Style','pushbutton',... - 'Units','normalized',... - 'Position',[0.2 0.3 0.6 0.2],... - 'String','Reset Constraints'); - - ParetoSurfaceButton = uicontrol(p2,'Style','pushbutton',... - 'Units','normalized',... - 'Position',[0.2 0.05 0.6 0.2],... - 'String','Show PS'); - - - %%Set callback for buttons - for i = 1:size(fInds,2) - set(sliders{i},'Callback',{@slider_callback,sliderValues,sliders,i,weights,dij,slice,DosePlot,refObj,optiProb,data.modcst,cst,pln,ct}) - end - - for i = 1:numel(fixButtons) - set(fixButtons{i},'Callback',{@FixButton_callback,refObj,sliders,i}) - end - - set(DVHButton,'Callback',{@DVHButton_callback,cst,refObj,dij,pln}) - set(ExportButton,'Callback',{@ExportButton_callback,refObj,dij}) - set(ResetConstraintButton,'Callback',{@ResetConstraintButton_callback,refObj,sliders}) - set(ParetoSurfaceButton,'Callback',{@ParetoSurfaceButton_callback,refObj}) - - - %initial plot of first point - - cubes = reshape(dij.physicalDose{1}*wRef,dij.doseGrid.dimensions); - - cubes = matRad_interp3(dij.doseGrid.x,dij.doseGrid.y',dij.doseGrid.z, ... - cubes, ... - dij.ctGrid.x,dij.ctGrid.y',dij.ctGrid.z,'linear',0); - - matRad_plotSliceWrapper(DosePlot,ct,cst,1,cubes,3,slice); - %zoom(DosePlot,1.1); - dvh = matRad_calcDVH(cst,cubes,'cum'); - matRad_showDVH(dvh,cst,pln); - -end - % End of main file - function DVHButton_callback(~,~,cst,refObj,dij,pln) - %Shows the DVH for the current plan - resultGUI = matRad_calcCubes(refObj.wRef,dij); - %dvh = matRad_calcDVH(cst,doseCube,'cum'); - dvh = matRad_calcDVH(cst,resultGUI.physicalDose,'cum'); - - matRad_showDVH(dvh,cst,pln,refObj.linestyle); - if refObj.linestyle < 4 - refObj.linestyle = refObj.linestyle + 1; - else - refObj.linestyle = 1; - end - % - - end - - function ExportButton_callback(~,~,refObj,dij) - %Export the current plan to the matRadGUi for better inspection - resultGUI = matRad_calcCubes(refObj.wRef,dij); - assignin('base',"resultGUI",resultGUI); - matRadGUI; - - end - - - function FixButton_callback(~,~,refObj,sliders,i) - - [lb,ub] = refObj.restrictObjective(i,sliders{i}.Value); %update refObjects bounds - - - for i = 1:numel(sliders) - set(sliders{i},'Min',lb(i)); - set(sliders{i},'Max',ub(i)); - end - end - - - function ResetConstraintButton_callback(~,~,refObj,sliders) - refObj.releaseObjectiveBounds(); - - for i = 1:numel(sliders) - set(sliders{i},'Min',refObj.lowboundSliderInit(i)); - set(sliders{i},'Max',refObj.upboundInit(i)); - end - end - - function ParetoSurfaceButton_callback(~,~,refObj) - %TODO: Should only show up in low dimensions - matRad_plotPS(refObj); - - end - - - % Callback subfunctions to support UI actions - function slider_callback(slider,~,textFields,sliders,idx,weights,dij,slice,DosePlot,refObj,optiProb,cstMod,cst,pln,ct) - % Update the text for the moved slider - %Calculate combination weights - - - v = matRad_navigationProblem(refObj.fIndsAll',refObj.fRef,slider.Value,idx,refObj.upboundRed); - %%need to check actual dimensions - if numel(v) == 0 - %navigation algorithm didnt find a new point - for i = 1:numel(sliders) - set(sliders{i},'Value',refObj.fRef(i)); - set(textFields{i},'String',refObj.fRef(i)); - end - - else - - wnew = weights*v;%new weights - - fNew = matRad_objectiveFunctions(optiProb,wnew,dij,cstMod); - fNew = optiProb.normalizeObjectives(fNew'); - refObj.fRef = fNew; - refObj.wRef = wnew; - - %% should be moved to seperate function - cubes = matRad_calcFastCubes(wnew,dij,pln); - %#Update the slider and text values for objective functions - - for i = 1:numel(sliders) - set(sliders{i},'Value',fNew(i)); - set(textFields{i},'String',fNew(i)); - end - - %Plot updated plan - matRad_plotSliceWrapper(DosePlot,ct,cst,1,cubes,3,slice); - end - end \ No newline at end of file From 130bcc7dcc11531830fe645b33ffb85fd3d54913 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:06:54 +0200 Subject: [PATCH 29/32] Temporary calcCubes fix for RBExD Added calc for variable RBE. No scenario support though --- Pareto/NavigationUI/matRad_calcFastCubes.m | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Pareto/NavigationUI/matRad_calcFastCubes.m b/Pareto/NavigationUI/matRad_calcFastCubes.m index 352a22c7a..23493d7ed 100644 --- a/Pareto/NavigationUI/matRad_calcFastCubes.m +++ b/Pareto/NavigationUI/matRad_calcFastCubes.m @@ -32,13 +32,17 @@ cubes = reshape(dij.physicalDose{1}*w,dij.doseGrid.dimensions); case 'RBExD' if isfield(dij,'mAlphaDose') && isfield(dij,'mSqrtBetaDose') - %TODO - matRad_cfg.dispError('TODO'); + %TODO + effect = (dij.mAlphaDose{1} * w + (dij.mSqrtBetaDose{1} * w).^2); + ix = dij.bx{1}~=0 & effect(:) > 0; + cubes = zeros(dij.doseGrid.dimensions); + cubes(ix) = (sqrt(dij.ax{1}(ix).^2 + 4 .* dij.bx{1}(ix).* effect(ix)) - dij.ax{1}(ix))./(2.*dij.bx{1}(ix)); + else cubes = reshape(dij.physicalDose{1}*w,dij.doseGrid.dimensions)*dij.RBE; end case 'effect' - cubes = reshape(full(dij.mAlphaDose{1} * wBeam + (dij.mSqrtBetaDose{1} * wBeam).^2),dij.doseGrid.dimensions); + cubes = reshape(full(dij.mAlphaDose{1} * w + (dij.mSqrtBetaDose{1} * w).^2),dij.doseGrid.dimensions); end cubes = matRad_interp3(dij.doseGrid.x,dij.doseGrid.y',dij.doseGrid.z, ... cubes, ... From f0fd2134ac8322511297dd59352357d0c630263b Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 21 Jun 2024 12:07:05 +0200 Subject: [PATCH 30/32] changed default linestyle --- ParetoGUI/matRad_ParetoData.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ParetoGUI/matRad_ParetoData.m b/ParetoGUI/matRad_ParetoData.m index 813e9cab6..2a1d2fbf5 100644 --- a/ParetoGUI/matRad_ParetoData.m +++ b/ParetoGUI/matRad_ParetoData.m @@ -43,7 +43,7 @@ this.upboundSlider = max(allPoints,[],1); this.lowboundSliderInit = min(allPoints,[],1); this.lowboundSlider = min(allPoints,[],1); - this.linestyle = 2; + this.linestyle = 1; %calculate an initial point based on the shortes distance to the %polyhedral center From 2210d7f8304536fb496131ae5c36b0afdfb666e9 Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Fri, 21 Jun 2024 13:24:51 +0200 Subject: [PATCH 31/32] Changed linewidth for VOIContours --- ParetoGUI/matRad_ParetoSliderWidget.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ParetoGUI/matRad_ParetoSliderWidget.m b/ParetoGUI/matRad_ParetoSliderWidget.m index 5dc2946ee..07d7333c4 100644 --- a/ParetoGUI/matRad_ParetoSliderWidget.m +++ b/ParetoGUI/matRad_ParetoSliderWidget.m @@ -422,7 +422,7 @@ function plotSlice(this,w) slice = round(evalin('base','pln.propStf.isoCenter(1,3)./ct.resolution.z')); cubes = matRad_calcFastCubes(w,evalin('base','dij'),evalin('base','pln')); - matRad_plotSliceWrapper(this.paretoSliceWidgetHandle.DosePlotAxes,evalin('base','ct'),evalin('base','cst'),1,cubes,3,slice); + matRad_plotSliceWrapper(this.paretoSliceWidgetHandle.DosePlotAxes,evalin('base','ct'),evalin('base','cst'),1,cubes,3,slice,[],[],[],[],[],[],[],[],[],'LineWidth',2); end function FixButton_callback(this,~,~,idx) From c0b95946f9c5b72620bec87af7028c2a2739584e Mon Sep 17 00:00:00 2001 From: Tobias Becher <44724749+tobiasbecher@users.noreply.github.com> Date: Thu, 4 Jul 2024 11:11:08 +0200 Subject: [PATCH 32/32] Small GUI updates --- ParetoGUI/matRad_ParetoDVHWidget.m | 2 +- ParetoGUI/matRad_ParetoGUI.m | 2 +- ParetoGUI/matRad_ParetoNavigationButtonWidget.m | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ParetoGUI/matRad_ParetoDVHWidget.m b/ParetoGUI/matRad_ParetoDVHWidget.m index 0156e12ec..1d0acc894 100644 --- a/ParetoGUI/matRad_ParetoDVHWidget.m +++ b/ParetoGUI/matRad_ParetoDVHWidget.m @@ -26,7 +26,7 @@ methods function this = matRad_ParetoDVHWidget(handleParent) this = this@matRad_Widget(handleParent); - this.DVHPlotAxes = axes(this.widgetHandle,'Position',[0 0 1 1]); + this.DVHPlotAxes = axes(this.widgetHandle,'Position',[0.09 0.1 0.9 0.89]); this.plotInitialDVH(); end diff --git a/ParetoGUI/matRad_ParetoGUI.m b/ParetoGUI/matRad_ParetoGUI.m index 5a5a11ac4..c46e41237 100644 --- a/ParetoGUI/matRad_ParetoGUI.m +++ b/ParetoGUI/matRad_ParetoGUI.m @@ -60,7 +60,7 @@ 'BackgroundColor',matRad_cfg.gui.backgroundColor,... 'Tag','PlanSlicePanel',... 'Clipping','off',... - 'Position',[0.01 0.5 0.45 0.49],... + 'Position',[0.005 0.5 0.5 0.49],... 'FontName',matRad_cfg.gui.fontName,... 'FontSize',matRad_cfg.gui.fontSize,... 'FontWeight',matRad_cfg.gui.fontWeight); diff --git a/ParetoGUI/matRad_ParetoNavigationButtonWidget.m b/ParetoGUI/matRad_ParetoNavigationButtonWidget.m index 1877937ae..23e68623b 100644 --- a/ParetoGUI/matRad_ParetoNavigationButtonWidget.m +++ b/ParetoGUI/matRad_ParetoNavigationButtonWidget.m @@ -56,7 +56,7 @@ 'Parent',ButtonPanel,... 'Units','normalized',... 'String','Export',... - 'Tooltip', 'Export selected quantites to selected folder',... + 'Tooltip', 'Export the current plan to the main GUI',... 'UserData',[],... 'Position',[0.55 0.55 0.35 0.25],... 'BackgroundColor',matRad_cfg.gui.elementColor,... @@ -71,7 +71,7 @@ 'Parent',ButtonPanel,... 'Units','normalized',... 'String','Reset constraints',... - 'Tooltip', 'Export selected quantites to selected folder',... + 'Tooltip', 'Reset all slider constraints',... 'UserData',[],... 'Position',[0.25 0.15 0.5 0.25],... 'BackgroundColor',matRad_cfg.gui.elementColor,...

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