From 7c01de7aed183431b74c6e6a50278fee084dffbd Mon Sep 17 00:00:00 2001 From: lucasward Date: Mon, 26 Jan 2009 06:49:03 +0000 Subject: [PATCH] BATCH-674: Reorganized and updated reference documentation. --- docs/models/Figures.ppt | Bin 179712 -> 181760 bytes docs/models/diagrams.ppt | Bin 0 -> 818176 bytes docs/src/site/docbook/reference/Discard.xml | 33 - .../docbook/reference/batch-job-testing.xml | 17 - .../site/docbook/reference/batch-launch.xml | 17 - .../reference/batch-performance-testing.xml | 52 - .../docbook/reference/common-patterns.xml | 232 ++ .../reference/{core.xml => domain.xml} | 737 +++---- docs/src/site/docbook/reference/execution.xml | 43 +- .../images/chunk-oriented-processing.png | Bin 0 -> 32754 bytes .../reference/images/conditional-flow.png | Bin 0 -> 20895 bytes .../reference/images/job-heirarchy.png | Bin 12736 -> 29725 bytes .../images/job-launcher-sequence-async.png | Bin 39600 -> 42291 bytes .../images/job-launcher-sequence-sync.png | Bin 27028 -> 34344 bytes .../images/job-stereotypes-parameters.png | Bin 0 -> 37187 bytes .../images/jobHeirarchyWithSteps.png | Bin 13993 -> 25295 bytes .../reference/images/sequential-flow.png | Bin 0 -> 12009 bytes .../reference/images/spring-batch-layers.png | Bin 5595 -> 18012 bytes .../images/spring-batch-reference-model.png | Bin 25194 -> 25714 bytes .../site/docbook/reference/images/step.png | Bin 0 -> 16955 bytes docs/src/site/docbook/reference/index.xml | 10 +- docs/src/site/docbook/reference/job.xml | 990 +++------ docs/src/site/docbook/reference/namespace.xml | 11 - docs/src/site/docbook/reference/outline.xml | 62 - .../reference/partitioned-containers.xml | 10 - .../docbook/reference/spring-batch-intro.xml | 392 ++-- docs/src/site/docbook/reference/step.xml | 1922 +++++++++-------- 27 files changed, 2116 insertions(+), 2412 deletions(-) create mode 100755 docs/models/diagrams.ppt delete mode 100644 docs/src/site/docbook/reference/Discard.xml delete mode 100644 docs/src/site/docbook/reference/batch-job-testing.xml delete mode 100644 docs/src/site/docbook/reference/batch-launch.xml delete mode 100644 docs/src/site/docbook/reference/batch-performance-testing.xml create mode 100644 docs/src/site/docbook/reference/common-patterns.xml rename docs/src/site/docbook/reference/{core.xml => domain.xml} (51%) create mode 100644 docs/src/site/docbook/reference/images/chunk-oriented-processing.png create mode 100644 docs/src/site/docbook/reference/images/conditional-flow.png create mode 100644 docs/src/site/docbook/reference/images/job-stereotypes-parameters.png create mode 100644 docs/src/site/docbook/reference/images/sequential-flow.png create mode 100644 docs/src/site/docbook/reference/images/step.png delete mode 100644 docs/src/site/docbook/reference/namespace.xml delete mode 100644 docs/src/site/docbook/reference/outline.xml delete mode 100644 docs/src/site/docbook/reference/partitioned-containers.xml diff --git a/docs/models/Figures.ppt b/docs/models/Figures.ppt index 081ba8c4299a602519cc2c15671fadbe65c68409..983683c5a55a60d71e955ca5e99584d84fdefa5d 100644 GIT binary patch delta 248 zcmZqp!`0BkJ;6XQj*$TZ1Q-|+fNaKzj>0VQK*q+z`HT|_IGdQ-m>8EaG3}YQiz$cq z!i&SE8){B6CIS^WOt0L<1nEqoIlQ%Dz3lahWkT8=S!}O}%OkO-7 zyI2wGRk(D3B6lo64%q&0JChsZ^opHK3W|S$`al>4{s9@WK$Rdd5c}W6#A?QW5C2q-hQ0L{N<4FCWD delta 49 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⪆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�Z+-dk(CuIKAdC)>P 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⪼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

naFxBe=sJr9FKc?8VZEzt@9b{E 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

MoygXfJ0dmOzc%|u^t#i0df|OhkilVlYTiw6 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 l0n~_55)y - - - Discard - -

- Support Stereotypes - - While item readers and writers serve as the main entry points for - item-oriented processing, they might be supplemented by a number of - support classes that perform specific tasks within the reader / writer - lifecycle. These support stereotypes are useful for dividing the work of - item readers and writers into reusable pieces, as well as abstracting away - the details of processing, such as interaction with external systems. - Additionally, they give us another opportunity to leverage the powerful - configuration features of the Spring framework, as we can switch between - several beans implementing these support interfaces without changing the - driving item reader or writer. - -
- Item Transformers - - An item transformer is a class that is capable of taking an object - and changing it somehow before processing occurs. For instance, an item - transformer my alter an object by changing its properties or by - replacing it with another object entirely, such as a wrapper or - derivative object. It can also be defined as an adaptor, allowing an - object of one type to be converted for use as an object of a second - type. -
-
- \ No newline at end of file diff --git a/docs/src/site/docbook/reference/batch-job-testing.xml b/docs/src/site/docbook/reference/batch-job-testing.xml deleted file mode 100644 index ec54f8f81..000000000 --- a/docs/src/site/docbook/reference/batch-job-testing.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - Batch Unit and Integration Tests - -
- Unit Testing - Document Batch Job Unit Testing features. This includes the use of Mock Objects, - embedded database (HSQLDB), etc. -
- -
- Integration Testing - Document how to test against the targeted database, applications, etc. -
- -
diff --git a/docs/src/site/docbook/reference/batch-launch.xml b/docs/src/site/docbook/reference/batch-launch.xml deleted file mode 100644 index 6795bcbc8..000000000 --- a/docs/src/site/docbook/reference/batch-launch.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - Run Tier - Launching Batch Jobs -
- Mapping Batch Error Codes to Launch Client Error Codes - Mapping Batch Error Codes to Launch Client Error Codes -
-
- Launch Batch from Command Line - Document Command Line Launching -
-
- Launch Batch On Demand - Document Launching Batch Jobs on Demand -
-
diff --git a/docs/src/site/docbook/reference/batch-performance-testing.xml b/docs/src/site/docbook/reference/batch-performance-testing.xml deleted file mode 100644 index 8e2b30fdc..000000000 --- a/docs/src/site/docbook/reference/batch-performance-testing.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - Batch Performance Testing -
- Performance Testing Overview - A batch performance test team needs to have the following at their disposal: - - - - - Define performance Targets - - - - Establishing the requirements for a performance testing environment - - - - Performance Data - generating adequate volumes of realistic data for performance testing - - - Performance Tools - - - - Performance Team Roles - Tool SME's, performance DBA. - - - -
- -
- Defining Performance Targets - -
- -
- Establishing Performance requirements and installing the environment. - Establishing the requirements for the performance environment. -
- -
- Performance Data - Generating adequate volumes of realistic data for performance testing. -
-
- Performance Tools - -
-
- Performance Team Roles - Tool SME's, performance dba's, environment experts (OS, JVM, etc.) -
-
diff --git a/docs/src/site/docbook/reference/common-patterns.xml b/docs/src/site/docbook/reference/common-patterns.xml new file mode 100644 index 000000000..106183f4b --- /dev/null +++ b/docs/src/site/docbook/reference/common-patterns.xml @@ -0,0 +1,232 @@ + + + + Common Batch Patterns + +
+ Introduction + + Some batch jobs can be assembled purely from off-the-shelf + components in Spring Batch, mostly the ItemReader + and ItemWriter implementations. Where this is not + possible (the majority of cases) the main API entry points for application + developers are the Tasklet, + ItemReader, ItemWriter and + the various listener interfaces. Most simple batch jobs will be able to + use off-the-shelf input from a Spring Batch + ItemReader, but it is very often the case that + there are custom concerns in the processing and writing, which normally + leads developers to implement an ItemWriter, or + ItemTransformer. + + Here we provide a few examples of common patterns in custom business + logic, mainly using the listener interfaces . It should be noted that an + ItemReader or ItemWriter can + implement the listener interfaces as well if appropriate. +
+ +
+ Logging Item Processing and Failures + + A common use case is the need for special handling of errors in a + step, item by item, perhaps logging to a special channel, or inserting a + record into a database. The StepHandlerStep + (created from the step factory beans) allows users to implement this use + case with a simple ItemReadListener, for errors on + read, and an ItemWriteListener, for errors on + write. The below code snippets illustrate a listener that logs both read + and write failures: + + public class ItemFailureLoggerListener extends ItemListenerSupport { + + private static Log logger = LogFactory.getLog("item.error"); + + public void onReadError(Exception ex) { + logger.error("Encountered error on read", e); + } + + public void onWriteError(Exception ex, Object item) { + logger.error("Encountered error on write", e); + } + +} + + Having implemented this listener it must be registered with the + step: + + <bean id="simpleStep" + class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > + ... + <property name="listeners"> + <bean class="org.example...ItemFailureLoggerListener"/> + </property> + </bean> + + Remember that if your listener does anything in an + onError() method, it will be inside a transaction that is + going to be rolled back. If you need to use a transactional resource such + as a database inside an onError() method, consider adding a + declarative transaction to that method (see Spring Core Reference Guide + for details), and giving its propagation attribute the value + REQUIRES_NEW. +
+ +
+ Stopping a Job Manually for Business Reasons + + Spring Batch provides a stop() method through the JobLauncher + interface, but this is really aimed at the operator, rather than the + application programmer. Sometimes it is more convenient or makes more + sense to stop a job execution from within the business logic. + + The simplest thing to do is to throw a RuntimeException (one that + isn't retried indefinitely or skipped), For example, a custom exception + type could be used, as in the example below: + + public class PoisonPillItemWriter extends AbstractItemWriter { + + public void write(Object item) throws Exception { + + if (isPoisonPill(item)) { + throw new PoisonPillException("Posion pill detected: "+item); + } + + } + +} + + Another simple way to stop a step from executing is to simply return + null from the ItemReader: + + public class EarlyCompletionItemReader extends AbstractItemReader { + + private ItemReader delegate; + + public void setDelegate(ItemReader delegate) { ... } + + public Object read() throws Exception { + + Object item = delegate.read(); + + if (isEndItem(item)) { + return null; // end the step here + } + + return item; + + } + +} + + The previous example actually relies on the fact that there is a + default implementation of the CompletionPolicy + strategy which signals a complete batch when the item to be processed is + null. A more sophisticated completion policy could be implemented and + injected into the Step through the + RepeatOperationsStepFactoryBean: + + <bean id="simpleStep" + class="org.springframework.batch.core.step.item.RepeatOperationsStepFactoryBean" > + ... + <property name="chunkOperations"> + <bean class="org.springframework.batch.repeat.support.RepeatTemplate"> + <property name="completionPolicy"> + <bean class="org.example...SpecialCompletionPolicy"/> + </property> + </bean> + </property> + </bean> + + An alternative is to set a flag in the + StepExecution, which is checked by the + Step implementations in the framework in between + item processing. To implement this alternative, we need access to the + current StepExecution, and this can be achieved by implementing a + StepListener and registering it with the Step. Here is an example of a + listener that sets the flag: + + public class CustomItemWriter extends ItemListenerSupport implements StepListener { + + private StepExecution stepExecution; + + public void beforeStep(StepExecution stepExecution) { + this.stepExecution = stepExecution; + } + + public void afterRead(Object item) { + + if (isPoisonPill(item)) { + stepExecution.setTerminateOnly(true); + } + + } + +} + + The default behaviour here when the flag is set is for the step to + throw a JobInterruptedException. This can be + controlled through the StepInterruptionPolicy, but + the only choice is to throw or not throw an exception, so this is always + an abnormal ending to a job. +
+ +
+ Adding a Footer Record + + A very common requirement is to aggregate information during the + output process and to append a record at the end of a file summarizing the + data, or providing a checksum. This can also be achieved with a callbacks + in the step, normally as part of a custom + ItemWriter. In this case, since a job is + accumulating state that should not be lost if the job aborts, the + ItemStream interface should be implemented: + + public class CustomItemWriter extends AbstractItemWriter implements + ItemStream, StepListener +{ + + private static final String TOTAL_AMOUNT_KEY = "total.amount"; + + private ItemWriter delegate; + + private double totalAmount = 0.0; + + public void setDelegate(ItemWriter delegate) { ... } + + public ExitStatus afterStep(StepExecution stepExecution) { + // Add the footer record here... + delegate.write("Total Amount Processed: " + totalAmount); + } + + public void open(ExecutionContext executionContext) { + if (executionContext.containsKey(TOTAL_AMOUNT_KEY) { + totalAmount = executionContext.getDouble(TOTAL_AMOUNT_KEY); + } + } + + public void update(ExecutionContext executionContext) { + executionContext.setDouble(TOTAL_AMOUNT_KEY, totalAmount); + } + + public void write(Object item) { + + delegate.write(item); + totalAmount += ((Trade) item).getAmount(); + + } + +} + + The custom writer in the example is stateful (it maintains its total + in an instance variable totalAmount), but the state is + stored through the ItemStream interface in the + ExecutionContext. In this way we can be sure that + when the open() callback is received on a restart. The + framework garuntees we always get the last value that was committed. It + should be noted that it is not always necessary to implement ItemStream. + For example, if the ItemWriter is re-runnable, in the sense that it + maintains its own state in a transactional resource like a database, there + is no need to maintain state within the writer itself. +
+
\ No newline at end of file diff --git a/docs/src/site/docbook/reference/core.xml b/docs/src/site/docbook/reference/domain.xml similarity index 51% rename from docs/src/site/docbook/reference/core.xml rename to docs/src/site/docbook/reference/domain.xml index 26fd1a7d8..d04a1bab8 100644 --- a/docs/src/site/docbook/reference/core.xml +++ b/docs/src/site/docbook/reference/domain.xml @@ -4,130 +4,69 @@ The Domain Language of Batch -
- Introduction + To any experienced batch architect, the overall concepts of batch + processing used in Spring Batch should be familiar and comfortable. There + are “Jobs” and “Steps” and developer supplied processing units called + ItemReaders and ItemWriters. However, because of the Spring patterns, + operations, templates, callbacks, and idioms, there are opportunities for + the following: + + significant improvement in adherence to a clear separation of + concerns + - To any experienced batch architect, the overall concepts of batch - processing used in Spring Batch should be familiar and comfortable. There - are “Jobs” and “Steps” and developer supplied processing units called - ItemReaders and ItemWriters. However, because of the Spring patterns, - operations, templates, callbacks, and idioms, there are opportunities for - the following: - - significant improvement in adherence to a clear separation of - concerns - + + clearly delineated architectural layers and services provided as + interfaces + - - clearly delineated architectural layers and services provided - as interfaces - + + simple and default implementations that allowed for quick + adoption and ease of use out-of-the-box + - - simple and default implementations that allowed for quick - adoption and ease of use out-of-the-box - + + significantly enhanced extensibility + + - - significantly enhanced extensibility - - + The diagram below is simplified version of the batch reference + architecture that has been used for decades. It provides an overview of the + components that make up the domain language of batch processing. This + architecture framework is a blueprint that has been proven through decades + of implementations on the last several generations of platforms + (COBOL/Mainframe, C++/Unix, and now Java/anywhere). JCL and COBOL developers + are likely to be as comfortable with the concepts as C++, C# and Java + developers. Spring Batch provides a physical implementation of the layers, + components and technical services commonly found in robust, maintainable + systems used to address the creation of simple to complex batch + applications, with the infrastructure and extensions to address very complex + processing needs. - The diagram below is only a slight variation of the batch reference - architecture that has been used for decades. It provides an overview of - the high level components, technical services, and basic operations - required by a batch architecture. This architecture framework is a - blueprint that has been proven through decades of implementations on the - last several generations of platforms (COBOL/Mainframe, C++/Unix, and now - Java/anywhere). JCL and COBOL developers are likely to be as comfortable - with the concepts as C++, C# and Java developers. Spring Batch provides a - physical implementation of the layers, components and technical services - commonly found in robust, maintainable systems used to address the - creation of simple to complex batch applications, with the infrastructure - and extensions to address very complex processing needs. -
+ + + + + + + + + + Figure 2.1: Batch Stereotypes + + + The diagram above highlights the key concepts that make up the domain + language of batch. A Job has one to many steps, which has exactly one + ItemReader, ItemProcessor, and ItemWriter. A job needs to be launched + (JobLauncher), and meta data about the currently running process needs to be + stored (JobRepository)
- Batch Application Style Interactions and Services - - - - - - - - - - - Figure 2.1: Batch Stereotypes - - - The above diagram highlights the interactions and key services - provided by the Spring Batch framework. The colors used are important to - understanding the responsibilities of a developer in Spring Batch. Grey - represents an external application such as an enterprise scheduler or a - database. It's important to note that scheduling is grey, and should thus - be considered separate from Spring Batch. Blue represents application - architecture services. In most cases these are provided by Spring Batch - with out of the box implementations, but an architecture team may make - specific implementations that better address their specific needs. Yellow - represents the pieces that must be configured by a developer. For example, - a job schedule needs to be configured so that the job is kicked off at the - appropriate time. A job configuration file also needs to be created, which - defines how a job will be run. It is also worth noting that the - ItemReader and ItemWriter - used by an application may just as easily be a custom one made by a - developer for their specific batch job, rather than one provided by Spring - Batch or an architecture team. - - The Batch Application Style is organized into four logical tiers, - which include Run, Job, Application, and Data. The primary goal for - organizing an application according to the tiers is to embed what is known - as "separation of concerns" within the system. These tiers can be - conceptual but may prove effective in mapping the deployment of the - artifacts onto physical components like Java runtimes and integration with - data sources and targets. Effective separation of concerns results in - reducing the impact of change to the system. The four conceptual tiers - containing batch artifacts are: - - - - Run Tier: The Run Tier is - concerned with the scheduling and launching of the application. A - vendor product is typically used in this tier to allow time-based - and interdependent scheduling of batch jobs as well as providing - parallel processing capabilities. - - - - Job Tier: The Job Tier is - responsible for the overall execution of a batch job. It - sequentially executes batch steps, ensuring that all steps are in - the correct state and all appropriate policies are enforced. - - - - Application Tier: The - Application Tier contains components required to execute the - program. It contains specific tasks that address required batch - functionality and enforces policies around execution (e.g., commit - intervals, capture of statistics, etc.) - - - - Data Tier: The Data Tier - provides integration with the physical data sources that might - include databases, files, or queues. - - -
- -
- Job Stereotypes + Job This section describes stereotypes relating to the concept of a batch job. A Job is an entity that encapsulates an @@ -138,7 +77,8 @@ - + @@ -147,51 +87,40 @@ -
- Job + In Spring Batch, a Job is simply a continer for Steps. It combines + multiple steps that belong logically together in a flow and allows for + configuration of properties global to all steps, such as restartability. + The job configuration contains: - A job is represented by a Spring bean that implements the - Job interface and contains all of the information - necessary to define the operations performed by a job. A job - configuration is typically contained within a Spring XML configuration - file and the job's name is determined by the "id" attribute associated - with the job configuration bean. The job configuration contains + + + The simple name of the job + - - - The simple name of the job - + + Definition and ordering of Steps + - - Definition and ordering of Steps - + + Whether or not the job is restartable + + - - Whether or not the job is restartable - - + A default simple implementation of the Job + interface is provided by Spring Batch in the form of the + SimpleJob class which creates some standard + functionality on top of Job, however the batch + namespace abstracts away the need to instaniate it directly. Instead, the + <job> tag can be used: - A default simple implementation of the Job - interface is provided by Spring Batch in the form of the - SimpleJob class which creates some standard - functionality on top of Job, namely a standard - execution logic that all jobs should utilize. In general, all jobs - should be defined using a bean of type - SimpleJob: + + <job id="footballJob"> + <step name="playerload" next="gameLoad"/> + <step name="gameLoad" next="playerSummarization"/> + <step name="playerSummarization"/> + </job> - <bean id="footballJob" - class="org.springframework.batch.core.job.SimpleJob"> - <property name="steps"> - <list> - <!-- Step Bean details ommitted for clarity --> - <bean id="playerload" parent="simpleStep" /> - <bean id="gameLoad" parent="simpleStep" /> - <bean id="playerSummarization" parent="simpleStep" /> - </list> - </property> - <property name="restartable" value="true" /> - </bean> -
+
JobInstance @@ -238,13 +167,28 @@ another?" The answer is: JobParameters. JobParameters are any set of parameters used to start a batch job, which can be used for identification or even as - reference data during the run. In the example above, where there are two - instances, one for January 1st, and another for January 2nd, there is - really only one Job, one that was started with a job parameter of - 01-01-2008 and another that was started with a parameter of 01-02-2008. - Thus, the contract can be defined as: JobInstance - = Job + JobParameters. - This allows a developer to effectively control how you a + reference data during the run: + + + + + + + + + + + + In the example above, where there are two instances, one for + January 1st, and another for January 2nd, there is really only one Job, + one that was started with a job parameter of 01-01-2008 and another that + was started with a parameter of 01-02-2008. Thus, the contract can be + defined as: JobInstance = + Job + JobParameters. This + allows a developer to effectively control how a JobInstance is defined, since they control what parameters are passed in.
@@ -258,10 +202,10 @@ JobInstance corresponding to a given execution will not be considered complete unless the execution completes successfully. Using the EndOfDay Job described - above as an example, consider a JobInstance for 01-01-2008 that failed - the first time it was run. If it is ran again, with the same job - parameters as the first run (01-01-2008), a new JobExecution will be - created. However, there will still be only one + above as an example, consider a JobInstance for + 01-01-2008 that failed the first time it was run. If it is ran again, + with the same job parameters as the first run (01-01-2008), a new + JobExecution will be created. However, there will still be only one JobInstance.
A Job defines what a job is and how it is @@ -334,6 +278,15 @@ The 'property bag' containing any user data that needs to be persisted between executions. + + + failureExceptions + + The list of exceptions encountered during the execution + of a Job. These can be useful if more + than one exception is encountered during the failure of a + Job. + @@ -573,26 +526,29 @@
- Step Stereotypes + Step A Step is a domain object that encapsulates an independent, sequential phase of a batch job. Therefore, every Job is composed entirely of one or more steps. A - Step should be thought of as a unique processing - stream that will be executed in sequence. For example, if you have one - step that loads a file into a database, another that reads from the - database, validates the data, preforms processing, and then writes to - another table, and another that reads from that table and writes out to a - file. Each of these steps will be performed completely before moving on to - the next step. The file will be completely read into the database before - step 2 can begin. As with Job, a + Step contains all of the information necessary to + define and control the actual batch processing. This is a necessarily + vague description because the contents of any given + Step are at the discretion of the developer writing + a Job. A Step can be as simple or complex as the + developer desires. A simple Step might load data + from a file into the database, requiring little or no code. (depending + upon the implementations used) A more complex Step + may have complicated business rules that are applied as part of the + processing. As with Job, a Step has an individual StepExecution that corresponds with a unique JobExecution: - + @@ -601,30 +557,6 @@ -
- Step - - A Step contains all of the information - necessary to define and control the actual batch processing. This is a - necessarily vague description because the contents of any given - Step are at the discretion of the developer - writing a Job. A Step can be as simple or complex - as the developer desires. A simple Step might - load data from a file into the database, requiring little or no code. - (depending upon the implementations used) A more complex - Step may have complicated business rules that are - applied as part of the processing. - - Steps are defined by instantiating implementations of the - Step interface. Two step implementation classes - are available in the Spring Batch framework, and they are each discussed - in detail in Chatper 4 of this guide. For most situations, the - StepHandlerStep implementation is sufficient, but - for situations where only one call is needed, such as a stored procedure - call or a wrapper around existing script, a - TaskletStep may be a better option. -
-
StepExecution @@ -753,181 +685,173 @@
+
-
- ExecutionContext +
+ ExecutionContext - An ExecutionContext represents a collection - of key/value pairs that are persisted and controlled by the framework in - order to allow developers a place to store persistent state that is - scoped to a StepExecution or - JobExecution. For those familiar with Quartz, it - is very similar to JobDataMap. The best usage - example is restart. Using flat file input as an example, while - processing individual lines, the framework periodically persists the - ExecutionContext at commit points. This allows - the ItemReader to store its state in case a fatal - error occurs during the run, or even if the power goes out. All that is - needed is to put the current number of lines read into the context, and - the framework will do the rest: + An ExecutionContext represents a collection + of key/value pairs that are persisted and controlled by the framework in + order to allow developers a place to store persistent state that is scoped + to a StepExecution or + JobExecution. For those familiar with Quartz, it is + very similar to JobDataMap. The best usage example + is to facilitate restart. Using flat file input as an example, while + processing individual lines, the framework periodically persists the + ExecutionContext at commit points. This allows the + ItemReader to store its state in case a fatal error + occurs during the run, or even if the power goes out. All that is needed + is to put the current number of lines read into the context, and the + framework will do the rest: - executionContext.putLong(getKey(LINES_READ_COUNT), reader.getPosition()); + executionContext.putLong(getKey(LINES_READ_COUNT), reader.getPosition()); - Using the EndOfDay example from the Job Stereotypes section as an - example, assume there's one step: 'loadData', that loads a file into the - database. After the first failed run, the meta data tables would look - like the following: + Using the EndOfDay example from the Job Stereotypes section as an + example, assume there's one step: 'loadData', that loads a file into the + database. After the first failed run, the meta data tables would look like + the following: - - BATCH_JOB_INSTANCE +
+ BATCH_JOB_INSTANCE - - - - JOB_INSTANCE_ID + + + + JOB_INSTANCE_ID - JOB_NAME - + JOB_NAME + - - 1 + + 1 - EndOfDayJob - - - -
- BATCH_JOB_PARAMS + EndOfDayJob + + + +
+ BATCH_JOB_PARAMS - - - - JOB_INSTANCE_ID + + + + JOB_INSTANCE_ID - TYPE_CD + TYPE_CD - KEY_NAME + KEY_NAME - DATE_VAL - + DATE_VAL + - - 1 + + 1 - DATE + DATE - schedule.Date + schedule.Date - 2008-01-01 00:00:00 - - - -
- BATCH_JOB_EXECUTION + 2008-01-01 00:00:00 + + + +
+ BATCH_JOB_EXECUTION - - - - JOB_EXECUTION_ID + + + + JOB_EXECUTION_ID - JOB_INSTANCE_ID + JOB_INSTANCE_ID - START_TIME + START_TIME - END_TIME + END_TIME - STATUS - + STATUS + - - 1 + + 1 - 1 + 1 - 2008-01-01 21:00:23.571 + 2008-01-01 21:00:23.571 - 2008-01-01 21:30:17.132 + 2008-01-01 21:30:17.132 - FAILED - - - -
- BATCH_STEP_EXECUTION + FAILED + + + +
+ BATCH_STEP_EXECUTION - - - - STEP_EXECUTION_ID + + + + STEP_EXECUTION_ID - JOB_EXECUTION_ID + JOB_EXECUTION_ID - STEP_NAME + STEP_NAME - START_TIME + START_TIME - END_TIME + END_TIME - STATUS - + STATUS + - - 1 + + 1 - 1 + 1 - loadDate + loadDate - 2008-01-01 21:00:23.571 + 2008-01-01 21:00:23.571 - 2008-01-01 21:30:17.132 + 2008-01-01 21:30:17.132 - FAILED - - - -
- BATCH_EXECUTION_CONTEXT + FAILED + + + +
+ BATCH_STEP_EXECUTION_CONTEXT - - - - EXECUTION_ID + + + + STEP_EXECUTION_ID - TYPE_CD + SHORT_CONTEXT + - KEY_NAME + + 1 - LONG_VAL - + {piece.count=40321} + + + +
In this case, the Step ran for 30 minutes + and processed 40,321 'pieces', which would represent lines in a file in + this scenario. This value will be updated just before each commit by the + framework, and can contain multiple rows corresponding to entries within + the ExecutionContext. Being notified before a + commit requires one of the various StepListeners, or an + ItemStream, which are discussed in more detail + later in this guide. As with the previous example, it is assumed that the + Job is restarted the next day. When it is restarted, the values from the + ExecutionContext of the last run are reconstituted + from the database, and when the ItemReader is + opened, it can check to see if it has any stored state in the context, and + initialize itself from there:
- - 1 - - LONG - - piece.count - - 40321 - - - - In this case, the Step ran for 30 - minutes and processed 40,321 'pieces', which would represent lines in a - file in this scenario. This value will be updated just before each - commit by the framework, and can contain multiple rows corresponding to - entries within the ExecutionContext. Being - notified before a commit requires one of the various StepListeners, or - an ItemStream, which are discussed in more detail - later in this guide. As with the previous example, it is assumed that - the Job is restarted the next day. When it is restarted, the values from - the ExecutionContext of the last run are - reconstituted from the database, and when the - ItemReader is opened, it can check to see if it - has any stored state in the context, and initialize itself from - there: - - if (executionContext.containsKey(getKey(LINES_READ_COUNT))) { + if (executionContext.containsKey(getKey(LINES_READ_COUNT))) { log.debug("Initializing for restart. Restart data is: " + executionContext); long lineCount = executionContext.getLong(getKey(LINES_READ_COUNT)); @@ -940,70 +864,75 @@ } } - In this case, after the above code is executed, the current line - will be 40,322, allowing the Step to start again - from where it left off. The ExecutionContext can - also be used for statistics that need to be persisted about the run - itself. For example, if a flat file contains orders for processing that - exist across multiple lines, it may be necessary to store how many - orders have been processed (which is much different from than the number - of lines read) so that an email can be sent at the end of the - Step with the total orders processed in the body. - The framework handles storing this for the developer, in order to - correctly scope it with an individual - JobInstance. It can be very difficult to know - whether an existing ExecutionContext should be - used or not. For example, using the 'EndOfDay' example from above, when - the 01-01 run starts again for the second time, the framework recognizes - that it is the same JobInstance and on an - individual Step basis, pulls the - ExecutionContext out of the database and hands it - as part of the StepExecution to the - Step itself. Conversely, for the 01-02 run the - framework recognizes that it is a different instance, so an empty - context must be handed to the Step. There are - many of these types of determinations that the framework makes for the - developer to ensure the state is given to them at the correct time. It - is also important to note that exactly one - ExecutionContext exists per - StepExecution at any given time. Clients of the - ExecutionContext should be careful because this - creates a shared keyspace, so care should be taken when putting values - in to ensure no data is overwritten, however, the - Step stores absolutely no data in the context, so - there is no way to adversely affect the framework. -
+ In this case, after the above code is executed, the current line + will be 40,322, allowing the Step to start again + from where it left off. The ExecutionContext can + also be used for statistics that need to be persisted about the run + itself. For example, if a flat file contains orders for processing that + exist across multiple lines, it may be necessary to store how many orders + have been processed (which is much different from than the number of lines + read) so that an email can be sent at the end of the + Step with the total orders processed in the body. + The framework handles storing this for the developer, in order to + correctly scope it with an individual JobInstance. + It can be very difficult to know whether an existing + ExecutionContext should be used or not. For + example, using the 'EndOfDay' example from above, when the 01-01 run + starts again for the second time, the framework recognizes that it is the + same JobInstance and on an individual + Step basis, pulls the + ExecutionContext out of the database and hands it + as part of the StepExecution to the + Step itself. Conversely, for the 01-02 run the + framework recognizes that it is a different instance, so an empty context + must be handed to the Step. There are many of these + types of determinations that the framework makes for the developer to + ensure the state is given to them at the correct time. It is also + important to note that exactly one ExecutionContext + exists per StepExecution at any given time. Clients + of the ExecutionContext should be careful because + this creates a shared keyspace, so care should be taken when putting + values in to ensure no data is overwritten, however, the + Step stores absolutely no data in the context, so + there is no way to adversely affect the framework. + + It is also important to note that there is at least one + ExecutionContext per + JobExecution, and one for every + StepExecution. For example, consider the following + code snippet: + + + ExecutionContext ecStep = stepExecution.getExecutionContext(); + ExecutionContext ecJob = jobExecution.getExecutionContext(); + //ecStep does not equal ecJob + + + + As noted in the comment, ecStep will not equal ecJob, they are two + different ExecutionContexts. The one scoped to the + Step will be saved at every commit point in the + Step, wheras the one scoped to the + Job will be saved in between every + Step execution.
JobRepository JobRepository is the persistence mechanism - for all of the Stereotypes mentioned above. When a job is first launched, - a JobExecution is obtained by calling the - repository's createJobExecution method, and - during the course of execution, StepExecution and - JobExecution are persisted by passing them to the - repository: + for all of the Stereotypes mentioned above. It provides CRUD operations + for JobLauncher, Job, and + Step implementations. When a + Job is first launched, a + JobExecution is obtained from the repository, and + during the course of execution StepExecution and + JobExecution implementations are persisted by + passing them to the repository: - public interface JobRepository { + + <job-repository id="jobRepository"/> - public JobExecution createJobExecution(Job job, JobParameters jobParameters) - throws JobExecutionAlreadyRunningException, JobRestartException; - - void add(StepExecution stepExecution); - - void update(JobExecution jobExecution); - - void update(StepExecution stepExecution); - - void updateExecutionContext(StepExecution stepExecution); - - StepExecution getLastStepExecution(JobInstance jobInstance, Step step); - - int getStepExecutionCount(JobInstance jobInstance, Step step); - -}
@@ -1027,25 +956,6 @@ Job. -
- JobLocator - - JobLocator represents an interface for - locating a Job: - - public interface JobLocator { - - Job getJob(String name) throws NoSuchJobException; - } - - This interface is very necessary due to the nature of Spring itself. - Because it can't be guaranteed that one - ApplicationContext equals one - Job, an abstraction is needed to obtain a - Job for a given name. It becomes especially useful - when launching jobs from within a Java EE application server. -
-
Item Reader @@ -1080,15 +990,4 @@ that it's not valid, returning null indicates that it should not be written out.
- -
- Tasklet - - A Tasklet represents the execution of a - logical unit of work, as defined by its implementation of the Spring Batch - provided Tasklet interface. A - Tasklet is useful for encapsulating processing - logic that is not natural to split into read-(transform)-write phases, - such as invoking a system command or a stored procedure. -
\ No newline at end of file diff --git a/docs/src/site/docbook/reference/execution.xml b/docs/src/site/docbook/reference/execution.xml index 24484b117..b0469a99b 100644 --- a/docs/src/site/docbook/reference/execution.xml +++ b/docs/src/site/docbook/reference/execution.xml @@ -13,8 +13,7 @@ + fileref="images/spring-batch-reference-model.png" /> @@ -457,8 +456,8 @@ </bean> The databaseType property indicates the type of incrementer that - must be used. Options include: "db2", "db2zos", "derby", "hsql", "mysql", - "oracle", and "postgres". + must be used. Options include: "db2", "db2zos", "derby", "hsql", + "mysql", "oracle", and "postgres".
@@ -1152,9 +1151,9 @@ <property name="retryableExceptionClasses" value="org.springframework.dao.DeadlockLoserDataAccessException" /> </bean> - The SkipLimitStepFactoryBean requires - a limit for the number of times an individual item can be retried, and - a list of Exceptions that are 'retryable'. + The SkipLimitStepFactoryBean requires a + limit for the number of times an individual item can be retried, and a + list of Exceptions that are 'retryable'.
@@ -1421,11 +1420,11 @@ <property name="jobRepository" ref="repository" /> </bean> - - TaskletStep will automatically register the tasklet as - StepExecutionListener if it implements - this interface - + + TaskletStep will automatically register the tasklet as + StepExecutionListener if it implements this + interface +
TaskletAdapter @@ -1565,16 +1564,14 @@
Logging Item Processing and Failures - A common use case is the need for special handling of - errors in a step, item by item, perhaps logging to a special - channel, or inserting a record into a - database. The StepHandlerStep (created - from the step factory beans) allows users to implement this use - case with a simple - ItemReadListener, for errors on read, and an - ItemWriteListener, for errors on write. The below - code snippets illustrate a listener that logs both read and write - failures: + A common use case is the need for special handling of errors in a + step, item by item, perhaps logging to a special channel, or inserting a + record into a database. The StepHandlerStep + (created from the step factory beans) allows users to implement this use + case with a simple ItemReadListener, for errors + on read, and an ItemWriteListener, for errors on + write. The below code snippets illustrate a listener that logs both read + and write failures: public class ItemFailureLoggerListener extends ItemListenerSupport { @@ -1771,4 +1768,4 @@ itself.
- + \ No newline at end of file diff --git a/docs/src/site/docbook/reference/images/chunk-oriented-processing.png b/docs/src/site/docbook/reference/images/chunk-oriented-processing.png new file mode 100644 index 0000000000000000000000000000000000000000..5098aca16b9ee918ca85233dd01db0527a7deb95 GIT binary patch literal 32754 zcmZs?Q+Q?1)4#oAYm!W?iEVRYb7I@JZQHhOdt%$R?SJO^{@%0qU>&Tzy8G&@s`072 zYKO{7i@-r+LIVH*I5AN{c>na|7sLTlZ{yApv}{Ht3t9 zqRCr3Erh(Uj6MM1X<#k<(@U|Q6BU(|UWzXvr8gZ*6}JM>F1q-`Et9w^RU1 z`JUO2$K~NGF}A+BU;|D7fL(!Zkro|rj~&5Ws|704k~&ZOQ{o!d?*>)Hnv{$T^l=KH zkAE22-`@mFlno(z2Ao{e(vy*g4JhgLZk5#qP(*|DKztquG6Q;gyl~Us$EejWDp3PY zh+M|{d31bD9Dwi%FE44rd-NqBbly%cFAp;}HZJ%9F#>>jFt?yR!bb;P%Mu))uktS5 zBi^5)Y-|MpMgS@z_$h&D35G3rs8C=WYMvZQ>mL>-V23}j1`%W9f{V~B*bq3z;7iuH zI9kA4nx8bjaJe85Lu`7ZWT`YbAOFA`z_$;xVkc)FN=vduw|F?>*qqs3Js#hl_cXaXx;Vdi+~Qng-QvNa z!=J;JK~F-34(bZP-Ry#5_VKGYySNGtiFp(ZlCO}hmZTm#)4$Zx7hCQb?2+$@Om%R$ zv*x~Q2n@1~!c_)o0dC{hOaLMsJ?yC z90@FJ&}uCuEFE@9x}tupUPWqVPO6u>J%Ufutt`*{xuNOA_}Z)!YD=tpP+u!YNWJjI zQOmr~9H1?78de?)f5RWOe)|Or5!05v>2e65+2hUa!sL(c27zU zpNhdFjUiW|WFi^I&!aje`e}dN3Zs#dgC)HO_60=5jP65uSjZsB8ua`>q*NKR8Ma_6wmd5ih>V@~>+TKM9F-IBecUCyb7 z> zZsz-se>SJy7yK&u=QT&&9iHfgJP-zON4YsPEM)amPc?o%v(>%##b<=&6;Dy5XFVuN z@n~0QRRcBtO-`sj)?)0|taGy&Oz!`_!Di%bPETUahP|zlnFUBe19Tl5+0(=Kai6MtB*s0y7G;D3e0dGc)Ux zKPS8Q@TZX{TTC_d1*{g#9Nq&x=(-xlKdj4)gP7c%nFiNy(T8j0!bOrmDILo#&y-ne zn@*e3otPhsu@i8VqLn#zGvL`LvdL`W?U0;P9X zPSg+4_Gx!`ab!`BF^JHaFf;IWgZ6sif{gYqpwRn@Ya(pQA&Ww);!Urm`)th^$~ZWv zhq#qam^MyET3Bydjq|3mM5o!E@nfOAqJrYmXt_F7VluLRIFr*Y&`<2wy`qkkub(iT zaAHU-6)_H1AsE6Lcz4k!FxuU@UyfRmMH6V}@SQ}N<_>QhyDwewQlEO!J%v=MbPeP( zHC1feD!h1r-6?%_!IOW!wMHi( z|4jt6r~>))qXQOO0R=|ArBQGIB~}2H2~dq3*mMD_PuBy8Xf5vh1YWQYbqD|>2fM)+ zss>JXTT&0Qm7g@1avG!r7t?PMi7G?@5(X4LHp(Rm|JRHtSOMBCNgcvqL><4T09?#X zjP6L-h*#`cj5Y~r9zyO^9t0V@9Fc;g?5W&O`B*tHSx1F(d9+!&*@2n&f`_~hVKl+! z-`=sl!MPc7*|C37ddCOeQwIGEW0^tn{VV2{awamTS~|)bq#d zrOP+p=8P7c25}7PdciSEVO82(P-Ql^&Apz32L;Utql$E4B1^qWx{q^2H>I)Snb(=r zSk#y`Sv8o}S=PE+fA!|RxpWiGn7$8G+=Y!rVFhy5LsS>TDvgcxzSYSz<7IZM^110) z($hie?sPC_kz|Jd3Lp z+w#gJu%~wCI9!p4HNr}4=WacGG=?_*lc(cIo9IsGOio+OQB~K~NyzA6p{(PSl=(`_ z%Uj?>skXQN#LQk|Y!%`p3Rx2aFP)eAiPD>gaajNbBNV+HH#_CmTNgJYw=%<3M@=1i z$9!Ag`jVlF?H3(kX?nyqnw?esi%kp(F8TzU-c!LD^oDQMQSM zzf|MzQN%upSq~UPsgZt_VH@fGiTQzyQ4*=$b1Zq)dOFsHQg81qR#g*Bw}s8BiXQZz$3zmnvE+V<~+V z_U4cm8RlJ7$LFf&vs(7(nHZqB7YsZXj$q9>8{tJcr9a^js!6KRs9368t>#^zpVPy? z4-aCaW-v*kbEvnlwYs$jwhg;zTz7<0-Bdtp1z%xQd zN4wbDoh7LKF}SZ!d6wq2*0Jv@^9puDbi$ zlHLlVUcSc7rqV;;^C_Ns@M5>~+1y_?2IjOER1h9Yz%7Oo1>%6eaoX4fq&IL{(B+pr zqGE^`TeS)yV{AVe`5&sXV95+B-w4qvF)g1WzTmu2l%FV(3783uf7Je5l~9+6nDm*R zm`I#>90#5lV^CmBF|5!@)XCP2*Es2#t%$F{uv^(5+HdT64JZt_htsC>O5lsoX_p-H z1=>W4h9CPZKld_2H4p_Sv@|3|L|RS3J(hoL=B}5EM+B%|CKP{@@6r8(38D=CN7?T z97|IcpL=1T(NYiCT6)FuV>h;r+L~?8Om0@y@h;w_nc${n)1yLwie43e7KbvVJ^+@< zqi~}f%qCXyEMN4BRj+@XyGudWJQ}l#jaGJ3 za*KXy?A;2P@IMsD4q4tQo$0APu^kQ_BA>Z3E?P4#J(~A!nab8;`(iY`S&zG_>xDKl zJXh{5o4_1g?R3n1$b~zC+qGWW%1pOQPfb5lmsWRG?_cv+vs!yuBjg0;gy$^feBd;1 zk88JTPi?O(c)rR`7JUJcJqZL2+J2e1zke$G@@~%Qv3ZtkB89!qBw6l%N7rEJRYoJ| zTLsXFy{9y1=icCT1UN3S2GX;7F!2k%oTm1tfDd(Sx(HCB_cz6~bhn3sMV#n(EK@Eo zz9Lxr!ORh#)bzhY(fajj^H7a04Shy`x_Y!EQb!>4a4Z4yONzY`eJ!Zae(>)3V)}zj zOz7Z(+-1M_MOf;L1MgwzK&}JfJ_Bg+!Nz@Xr-M^(xDTy2tg0`cWZt@xP_8%YBYdc# z@Bxy2EWfL~jBk9tqO*T)L)l;AKhqMbQ*lzaKQx0sp#lT%oN0%9PQ8E4>_XJk3~6uP zRfCmg=RjYDoX04bIdzdCC18sq6^769ndbcg;)V9#1(hcQOMn)KC=8SjUi-s&m^Jk= zclVjW{h1m|&IM142p>HFgL|>%`cNwA*#1}jWp+TiOCzph5o4V9pv$`}< zeuO!;g7VSt81tjP3jAr)<4@3I&YQ@E;gA`4Dh;`j4OBv*pSPbMG&xy$MO}D%)7RbG zN0MPL*w1CnN83Y?`nz;?M*Bm~?yU^h%v3M6%AbD`fdc>pe2|F1lfHc3M`R?4aftY! zkU;!Ch&qV)wIWwQ|MxM#2bq9RZz_}`Jxu(&?Y}O1(VPET{cB9h?=z5vtjL0z_`kjb zxSb&X8&*015XwzjW-BK0as$Bv2MkVq;N}k@(*~PXq!NAxF|GmDTMv zmTT=}xUMb8n9z0Fpi$WD491h#ZwFgY>{AmHg%tKdZq1~%&gaYYXjgJsJ22S!de4o< zPTucgw1bOQxY@l9($S2yx2@8vRCXcm+e>bSw6~p?%6*Ib>Kj? zHh>mU+`(S9io4$ydwf026DFW;Tiz})D3z*MYI7cm9&1E9d};dD-X*EhBjcGhUn{-s ztp^wMqrV*I>bvj2mt9mZf;#cU->f%YgZK9h+ILdW8)ZPVG~3NS8?u9;FXG+T_Fh9< zGT|v7Ef6kv4ozax$7Wr{5uSLA`gQB7Un`q&kb-^vp!MWH!Eaxjx4@7TsMA7`iE+DY zu>uRJsW$-OqEP>t`5Xu6hx?X z_=HC{E?aX64t89g*V1N_q)S804Bi$}zPR_zYRxoRx&TbcN_#!%&U2gxK^T0ZLGxfdoI31z<--O-wB@fyz*I9Mf)KPvs&mbj5)3LOE8DlvU;{Z03!c5$3=syC`_2Hs z<1hZrCqYf=zxFdwIDf4#HWCmph{K^sT(b(Z*bK$`RXtH1xamQJ7QSiNx6j!kZG z8bT@vpNc%qh>Qp9J-4SDc<_k8h5^+6(;~-S4SRnXL#+d?$zzrh)(US*aEcrLcDM&* zyS=|{K1!*F%Q|L>pT;f1f5wXAYY}g87|eVUI8w}<#>nnOn~t&2xPN55W6@{bRj@Lh z!5ElB7|n`iUHOmpd%02CQ{&w^+tq05P&f!gG`g?AcDiyIP4%5j(M;<0307pi>n-6W|yZs~{2|xwm8yo=VA7p97u1YhSPj>~yx8 z<)m!}TLLjK7LmaLcUk(9L2n zJXSicVBF$BjJw|wW|)FU3op;f*F%Kq_QSG$!T5KOL3>!8cnDJY_umopKv-EyT79U! zbzIHfjy89R!k@i%wjzy@@V>j1-tMfCY_PLkSMS7UpKf(`KlXj@c8-(DdcAkzMGIVy zrP37hzUeM`aU*uYuu7&dw4D@3hjr7;x##I$k25Re7qj;;-4u^GQmegh<-8KAT$vXT zqh4Bba^G)hVSXF`PUptiT(}p#toF( z*^YwD@(U@fu_Uli1Ldrt#)5eH3W#4L;KBNQaw%UP`-H8E^4ps1H)=8yR7kbrLBl!w zBFRS82Ym>idgm=WO@PbOYre?YF(+5QSKNF4AQ)q+r_W=um|Msf+HE7u2UdGS z$!7VOJt$L_XTa~m3<;9F<+TEVr%h-NVMBF0`e*YLUS7LqK7&p;(xGNz9FHyh1kTu)?{9iGBYnM8#3f&6)zEiE7iwby#Uz1)Y3t>%X7 zHEQHh^wQh}zWlQM1EJig=7R_Tgs{p)f;-f$KRqE*(`^Rm{6iR z7!lNlN1y}H&>@W@9P)n!);Ovk5ZO*nulW!mdxHd5>RW4f=#+q+mnt6UDG6cJ`R|z(9m!UlmWP9PqfF_nrl^p4a!(4$CBG=Cj zIe1%;I)$2NF-Y$pPTLg#z$}$FSQC}uI$LlPJxqR0+ zL-V6K?4~FG`kc+moUPRtIt$4l$_Qtl`y1=XDulWce|G`uw7^KBDyw()>aM04^Fu$| zy}scIWlEW&L?Z)@b{la=5b*b^?8yF4`0$ay^=t+^j73|+6MogN&$a^+9+{^Tn4k@K z8|nNR?+_OGaopM&`B##r)S2c2&gFrYr2A3qN8gJY#&F(>oq*)a-tA!3H7p3z&=?0$ zd@Sj1z~<%lko?gl_`86Ayy^0L?$+WFKG28?-eE8!RV^ATBH&uMhFyQUfB|opcwSyF2?-#46b_a8(B=>Jv(szLyf4mhNmAy!fX_=51Y;nBeQP9w!U zF*1^nje=K~U!Qp6lVjbE@iG21KqGJgnlJ2a{qmQRVW3P7mOd+3eYpcDq|C#6OfJu@ z>`?8^KJa6ZVhDhK@0Uknj^{ zt1l*|*eOE=bJdLqZ#3B28U)yDU9O$@`LD1VL2Ck^=v;tj51=cxwI54gPQPKs(W98} zin`mzE4#(LcAw#vz%Fs$)0rch-_NUAd%W>Al9Ronqc8h|Y6jr-Zsc0p(XGXT%a$3^ zHrHW&29&p5h~_kQt=@*b1(31OAPk6Q=+z0Fj(WCHw>^UrUH5YINI?NqkcRESEeC;b zRxr7ry4OR|*L>~)YfPm)(*rb3jO}_EJ?n>KC_jwjyuEOhLJ1DEV`{Lgs(jZg$7`ra z8YhIM3M^3LEqiy~TZ8H>LoQ9(md0#-iD6P(rw3v1jR?;7lK^|a_kp#d8RKU;7kdZ4 zQP_u^)&|SZMUVmjR|4eNrB4AYN#nW2^PzPO1}7`8z%2H2W!4S$5lq?{V&*_g_)^b# zZ;zJ&-2$2)u94A_E%@8KcWzQ)U3 zZ1MIN$3=u9BJRa08ZU7HEanV}168$jYAw@PFCh*m*sH2|H0yMKEqy z*l!3o$f~LCmV=Kx!BCmUk635S=jlk0+*w&2H=38-w^K8(eQJ{&(zVn1?KV2qjmKfT zxov_it$p{cCEprvAVgEau4#K3Z8f+soiJJUAg!_MQ3g^JYSe*8uN)b!+Q9vc>o`ZF zde)D0IJ^SRF@OAk<}{I4{oO-yF#YrC$7GLi2oC+#GyG@Zn!1&b3uS?Yp*U_mc#}|L zFyCJqA6whjPta}7Xl`tfuSeTe9$KLhCeS3qV*{;qOqV_SBFZaPkXvotHs%azFd9rl zor~SBMC;$FuvpPP5jewpz!zNBDfM^&=OTlC1}7pUWQ6K*pk4r(JF*flObNqZ=EhQM zej<3~VqaM2W3DxZ^AtFtvy|HWF!NeA*YzYZQg4QHSWEiHN@kCB@LZPcGTpy`6dX9t zWsa~<5Ug!@m?D0fH#q4hRw7Hs=Ay+Wdiqr$%uUQ{YmG_5#~#D=I8y|K%IAG#_Kb4l zw+P%hT(}P24BsAouBLQmo6A+O3M7PXH0}16ld%Ouc2q-j7TZ2#88;}123R;!H%fc< zR94%CIf0djxUNzT#)Hv@AS*;Xm^j!X#^n%qVqBKRIHj7GMkdzvQ+Q6IxtrbzrY3VS zPb0c?B-u=py{+xqtK3t~l<0aD3`vw3i@z>`sqYB`jOxe=EOam|w)MKhNY9sF_!gMh zuaJkkRdf~{wwj)BL>6EKYbscl@)D{_Y`{1IQ4jU+TQwbpf}09_>VTGYDhFeOsrO;N zPDm8Y9w-+A(sdi&OrVe1CBPRO^0V>ur|OZ`C+2pxoIZLc0Xje;+pkc@r=wMh2K`4E z)aKaholkuA@yMMI+)2#(U&&y5$vjecLYBh*ArjgAYM^r89sCa@6e&?)kLE?km7Jg6 zL{B=zOz|PSChD(zlAxrl=V-l-daDjWxGcAoy4roy4)YlNX*$@7^?KH;=$a9#_9?pD zj|!w)L(kXN-*A=3is(UkZHGPG zYX9IvleimZS~{P4o%IQ};^Yo$$(&@Ex;QN(k;QDFO)Gk&Hf>I2#M~j7)4GFA6D`oI zTl9(L+*Q?6ep)P&%`V8Zj4yk-DkOZl0J_}MmXMadG~_`4SWwpf_;~;7SRHF_eDaWm zE+V)-g@5)mfL=^9-R~?6gG`V6VLv>kuxwOw`}hGG)&nYPuj^12&N^uXY(* zf^Wz%|3|mr@W1KSytvIx`p%YhOzw{sbIyO(knSV&hOWBRE%Uo^ z2@g?qoK{dC^b1oG5{QSp@^iv{TK_#m++qck_q4tmU2ZU5fg2_?$1#R}@fD zV`F2%y?)w$@{I2d3jUeBOpF~d7>>rfQv9J5N|iiDtKG$w#C^L)f$>Ne|CH}asZ?>S zYY-+3nG(^{+duqxv1ZJ`j^yOq6Fs8Po##bLvEWPY8h;8s0dp7LvE)P!r2K? zsRH}9wQ)E*LvSI44rskKAMh+TJQW^o641HbAFI|IJ!&Kb|A-zE8I^k+FO) z1r<~vYiny68JTh;)5LMn^TuEdR_s~f#>brdS9V(3tBdBXOGk!;|7dHckPivFdpQ0e zD;Ut~h$*zV({F!H_F9$;KSjN|WXKp`0a_p?ZHLGXrO7+cK>p)BYC7#YYVufM0hk|$ z@5G(l_IWGCrr)pGebx)(XJ==&`TmOa4dO;DOe5sgRDUU}F3aZ2xNEbz(xn$Y+TC1^ zm4uY%xgo#y@V-KhLhtc^37vofd3%4QG8#Ma^ZoumTB`y9g!RMy2w@;FSoBY3lDgb$ z_8_N_h&CjQ%Iy`KD!;gNvR>WXKH0PyWI%B6@bIuYCF|(0ALO?5j1iw0GVo8~ zoU=x5A;+7~4E>|@jpE6$5ZFf$#m4*gA6-`wHTc&1Qd(NFvW^?POkC6cOIh;6ZCut< z##@OCa2P!FdOO*E9bmV&9e!?Ct-8LFn`y5d0);%eJ6Ui-t-O2oJIY{*F#I4cIi=%o zuhXFv=!d-albyeL)-8&-2nlfG>ibg!{s3o82N7E4Ay~hCiyV?}|!A1d+ z*Rh!nW0t4-qhmA92xdD|h^%1m00Sc&kfJCZDau{3xL9G_@e7{Sq;d2Y{hpR~V3#l% z{Z1OS#sGQ}qW*$ucvA>Ko}NV?^DZ^`9bDB7HvR{uty{hlxtOr^xZwCFpBs`uRn;^0 z$E;zbg{0=XCaU;GeyZ2w)z()J2to=uy|{2NpP}J__t%@YUq29HPkxEE*LS{(3=*~1 z6zSL@PC?oO$8x zGc^XLG}yc#RduzkADwb2LS=<|Cr4un%@jySfvP=nslP0Y>7=TzR;JN^M7X6p8Uy zZw-hz;ZAT|OY$m4Hkxg%MV49YfQ+FFj%76y4))(6K_FQ2Q{u(E6)P}Y!If{~H~aGaCn&=jL^Yr)O_?O*bjwa3De;^liaN&@4Z}x_ zyT%f+c2abl9rB6Z4TRo(kjg%%kub@%$D;$a){A1ufkWh-3$aKsvKxS&Nr}ZGq1Vr* zw%uwANgi`bX`JCR4MNrCO?lRQJ^pbPQxZZVpwsXt4-Fp7Viv3+8DP2uk1+dI8`rE< z5qEpleB&T&qu==W_&tMQ?&JplmoPcj2jx&-Lk68xMTkL+!>_DRo=+;`=AvgIkeJv* zwU82x-C6u$DBwl0Pg1$AwT^UQWz)+#MN_&+_l`vI;U}=)fWpo7+9vx3%1ek-Rerr(cY49Vg`c!yO5oMlf405|Ga7 z7bGPM4X7_0QN+sTo8|4u(Js`=jqzzd$m%cZY9rQ)LqCyh$HAqo?2Q76QVR`OT$M!S zA8PqB%GN4NtN4r-#mia}5)Cm#^&c}cC=$hKlI>Mv{+;v}h$`J)A8n3jtFE*80>6CX zGm>dE?K<*O?au4Ux*qe=t`1LjsE;kAQ4C{j#UuG?lucdu5uz8L%U<2Uq94pqtxE=r z`*JhNeFzms%xNiJF8QqyoWc?cDK{}O;t=JEJy)=p+;I^|S`(Y(*ygwe6 zTuc~NNv3~v z9Q#Eo0~C2C-o_N*hT4EC@U)yJzr62MC1(cVf>|IEiZuhY~=OYMp(FjHnwPlGVxT)`k8ryqdyvP zN7N8MM^Az0Y`59rI!8asUwDk|JCV-X-qu#7)>vlG&<@kcTf2kPX68<|i`_cHptBbw z5Zs|U!(ft{MsaeH8kR6Iw{ug*GDS#lf(vS6IW+<2IE+29oV|Re3TMKEi91!$CtO=( z+$viUg$M}?`+cz*h~)0e{NK&HfJi6yLnRVx%#g|R^?n%7n~R1fY7Terk;Kt?Rf<<( zX(J?wGP$!LVmMs4MA}Yx8|mlwB7YO?NyyCDpjml1TiS9vqmC#-L%6`c zz`akr zSzWHTSvOts(=$|(u&a?@=dwQo(2CYwk1|I_M!uehd8b*p$KvAR49Ai*+nwOhT;vXI z1-RF6u1mwN9N|)x=VQ>vO?>7h6oN!Ft7N-vdz@W%s=~$#fr`-9H4?sW6yiJ)y(tYB zd5-UEeOe!s>er*&c;vya!-IpJ+L#ocsQu}Cd_runT|~sE!EHqp5OCNU&D14%mPc$w zj}i^EMx^K_sBPDQ(OG0c%Iv75pr)l@i%|Vq?Qf+*Z&H~_M^2}Lb<;H#je`CP?{2?8 zKEfqgI;@AVw_AtD3T6f$6;YU5lH}!0K;~dDV;mPGwp*y{HAGvnG>_)-Vfp*T6`g^? z!OFqJM>@pxRH7apMHB0o92&EvdnwPuc@;i{vOSyKh7Y}g4s~~Llafr#;16GgDWcQb z6`2Y$;@d#Gg1X0({bBOZV z(e6f&OXElHfGF;KQQ$Ml2p=}`TuXfGE!~5Ord~>OnVWV=w@MI1K^R{UFJQ(;!1bkf z9w%@9oo}OL^R0JkFYc#=8M43%B_amH8G44g@O?!*+5!K+#m+|x>EHw+KsrPA_ZQ@K zYCD;r?TKRKX$7i4gr;RRkSp;hSI6fsN=AjU%6>`)rwJvNR;wUoAvFF!0hp zX0+=+vIBZ5A=$=OH!F#oRkIglcrQuMulrtIb9G1C%Cx2Nw(8%`PqMv4du?-l5W*C) zF9K2`jF+jY5L>ou(UDnFGBzq^yuI{?9*vD zIW&5v5^g?&FHR~0$IKXU3-RfAU%2m?y<+PqraXz&! z5^q{%$5yhvUQ7A#zh}lCKyLUg;OUTn)Ycf0$jsv%9dx<9@i%uIUe;U9Ts;pilW_;c zq+8UAe}wGD-{ifWs23(eyB<6)%sJM{9y8h%sg;4YbqNuhtn#xVgD$+v%isn8wX9v^m+jPbu?Or<=OniG%{yPb8yg_5I|c1K8sV2+)Gq7DlI(8jE-7%Zr` zD*be%r!&V_!D}oG-p&wG2dK=xCy;lo#%L?AQ$w=qnT|$5w@oCqb*mG)E_SX8yntIo z4yjSKK(i!r_!3~bM4@f%+}J5XcD9mpxc6J1tSe5rh%9g%>>f8%^>lePjl|~Z;byzn zi6-+JwO!|Yw^~b?_IA%V?>P}=p#_j@?A!d**Ev( z`|WTMna=%PS2~7hMlNf-?w`)#$~|%CjbnMN9+jIs-4;);8loS5ny3~cMkm7}xUK`U zs)qm5oU*ZENuT(bh$zLP%5U3Vhe)sB zbzDn@1#2fGS>N2!($Imd72n2Q(4{KP@6uDUP;M-bmGOxcyZ*boev1Iy`joC78@;gd6MzTN|0RVmUL?OGoq91rMOtW@9fe9~kjHWC<_CMt$g49cv#ed_+|Y;AoBMAJg2 z*9$l~lFDBeFb&S<#=c|UfA!5=G)lGz4h(b@69A3!1$;Y}+dN9{XTN;RGNWKVBWu&l za?74(DH~re(C%^f8a?t$~x%qq=oxqr=H;ETI(lJ8ZDqvk-wE8M)kf z?EcyLK|bBTeSil{^e8zfpDTO5-g-A*`ppAS;o#tw&GPr>nwK*C&D%34B7N{fT1r2* zd;RSX$1%9w8pu=f8v5U0I zpTJ6d-yo|r7ANg;#W*`rl;~`+GCVX?OhUrk!T^5wa@Ho(pJpVaXA$wAjxR?VyNQp9 z*^cRy|KXnGZk$1UpjfVy+t5$UVHLHc8YXo>1d5IGFF?D;EV_L_@r6Prxo4snB>V?m zdR8H)O{P{u6ubg_Gzop6VOyfimxS;Sr33+}=r(Vg@iIK7zdAc(VwdZa(|++l0j2Z# zprBjiVOI17V+rPJZ8p$L8@^mQEpNfdV3g{B|Ca z?BDS3mK^+mL0sHbzN2`@fM~*(cwm3R1(L+T|HjCH0mWAI^(A3%FL8k;`Hu_P5P_P+ z&5@WZh$<5lq++p_?k8thoh>!OV^a2 zrP~1_I~ZitsElcj2m~OPL4nC0O?0P7%=&I6bAbB`C6cMKqZ{qNCv7<(HDYaW9bSsT zs3CWr$%}}K>K^osqDuaUqDb)h=1fR@3><$v`E0ieZ1Bl>(mffEzb`AhYCQ$MK*_-_ ziq}7SYdbOPtezjY=HjZjhnbx`q51KP{4_jzcN;Mbd+w#1YV*{_E-N#~#rrt!z(*** zlg8j+10IgT>Bnj@={ee7IG-LQtThf_csrXUCJ>`HHtZjS;*9AI7~Hw68#?$bR%#92 zwhv(YMNABZ-zwSK`;xT%eb#la{)jgh`FSQW&FOeEF$R$MRl?&!+5bP4I1XIzJ=Svce#1<6eAeWz` zWk!9k{J;>4ah1#^rjdoR$yD0yTu*}K3a}}vz|*d%E7EG;Q%PN#x;A<^+1K8KG5oM_4Dcn@%R%4Ih=P8s$s0dq zplruDAxIT)p!JbZbN3{%booYV&`qy5%Zz=G)6!y#@JcOv0ln%aL^T4S1Oq?Y`d>On z`~9<0u@*sTej9jyqPlRl(R_q;g8Y@X{p;{SbrvgB1N`Fgzs>gX#<|U(0`hYtcT<$v zsoWkWI+>EG&lF~$hMj`C_)l(0vX!^lYu&RrbL2U8SyL(9w;I#|12t(d28(fz3FNGS z8R?r*7y#VJAy*%=5>>fcFQpC{&iq;*2qmH6=4GE1QHWAkvq6O&;Le!0s&H}J6lcW^50(_+YQC=1~xBN!4|^-zZov5Eoq>&um5u6P3wwAxJQE zn&!|KyHS?8P}ct6P~mG=os(Zhf*n4_3e^<1*zCj0oYr4O5 z{5x9A_Wpcg#Yj!tItMh|P0E|^s$(B!KmO_wP8qPXcZVB^!Do8 z?C!FqH8LEsWnj{n1<>dX>~P%w5swp+Y=ESH133|bbFq=;NDpNr33@;=Tq?#y?gej|q+#MiQ?z8#6O7rE7l{bhvHtBHIx>*hDfhN~k-lfVN_6 zDUHH7g|Ln`VORFr?~6A$p6G={Pb5%!eK4Ud8Z8+b8YPvCE&830?JXqodJ%%idF3-P zDy+tIgArwC4JEP;VwA%E0!a;(VxqCvi5lz4QA}l!6iwJnX%yFI^5pYck>6i3m1q!A zz+fM}_KADBc8fXClC2xL`48XKA{Zb6Plf=b?9$ZE*vLjkN8`i`T^@F?clxCwg&iJ! z`QXG83VX*<^6{@_ra}l<%C9jw0qP(3dtNQ3O2ls#r0@;6PzLw>e1B)KX{6JXfb*zj zgzFT7He-V+M$^_kr#z^HFc*YWr6;55Y;+ifW5v7|);ZyI?C;l$9?HKMj1MIu&8!Jz zOQ%ANgF_Nmna2%Epb_wW==Hf$GrrSZ-e;1&wfCsz>i~&bL(>vg;WqO} zu6gZL=1AS~xpY@e$2KZI+Zm*qN+blf$8&w9`rWntIh9d z>eQ0Eb5jKGbr4OP>v`MXdo+xcXk>3wPo^Z;em~9*Ui;T z@Ve)|8p>8MjV6Fr%E?Ri_{}u<^{P2jRwyg~>7QlBhsgcAmkj8!=bOE&t~V zft?^kil^-)fJObHq@gN*vNas&mwfREk*M(+lG$IYhwm_+e!cK&0jzW&!t8%&c%}2G zBLYD!z;U>$rvE&7TRROCNw+OxFiK~NkM#vS47&5s;Bl+PHtSCfim)0~t;Up=P`hk8 zyY&V0hFEKiwW2qWE3}adC~Dq^e%&t%bQgfi=;@WNLQxLM7|##Q;*ka@P=jWEQcNE7 z9k}8YZ<-oFJ5Yei`t}lxt=$%K8tja#ktO_$=DPjMy5-^DxA(YaJ)D0kOQH);=D4~d z>cf+{mV!C!V3mLVJ8jZ3fm>9+E%FxXgtM7FccJxSw=aTXb%m_QhBsWkbf2Yc8y>A- zN7B);vALObnDo`az(9vpug3>yIewc1nL5DpAzU%3!RTzB6%USTR8kyBg%`pw$#)qU zbdV%GFHWy{YPsDZ?d?fjnNZ5@zJT5g`*e`BAkbQ!JkF4W_<(TD_L>*ZLo{Fu+eK98XI67erubzwca| z)gPwO)DYADPZ<3#xck8Y8M;Yw)!jYJRzP@?zLL`{# zaUL~{1ZKv-{W)yRZ-I2yI`CfocN-2{q6VXz)JH=@!O@Y%V=)~PO%#xU2W5Gh2Lxkz z#9|TF8m}|KAhsp#4g7Xq6)v@3!byKJ)M^c5`Eo|3BSWL2S4RfXDkq}hpnh~Dy_cG( zhVV*2AdO^)rw$72tQ#z=xTt~k0@L&aran2e!v*_d6~ApQ=16rgdnQS2q&jI31vzi{ z;kwafGBTA>q=M>%ZdJkrYq%`2;0i^WyKBxN1%CXKwJIUS*o0y6Nhgv)=j4N8Un2yLF&PqalkDB1YV_7=IT= zUyR?imGp;&qLuE{Zlx(uAYh`>zeUAzr`rFCQEAypf!xc&0m9?3A*vhiQ?yJal_NYy z7o$2m7g$m9GhAt91u4Dt2hq>qCeMehFdW}fX^PYeF2TI;@Z4E!^{b^X^6f1X%g{9G zW4VTk!3q7&zi+K4AD{(8z89-PSDj@Gukp((?%F*snB{1d;olQdN67myz+xda=|vZ< zCn(EwWC+Dw;kU@mEbsr6`$^?=ZOk?oF9Q_E`fpp~^cvsdgv!1crg zqs4*_Px(Axb(=jhskdw4;GMmKO|4gY3;ZSF6UfCZlaVa|gUbrp6t10n%B2VH+5cZ`Qf(u!ofiGxvJl2F)7`!qu`WDXN zZ7@lbMWV~s!I?P<95~wn6b^e$s4oUMpH z#X`0u6YbmovaHtoCjfY*zWe_4me1U;bR^)-$ISW@G)*fUZ!}Fx1|=B;y`Mv zw6*5*v*tV_Y^~#{B%z`CX`6d>lj*Z$cvkZBYSY=Z7X$?BMtt z`_|1gSm%`wn;;T<<(@?Nnusut>f&O!^KUoT-HZ-|*o1_Hq@-13Ly0@vMik2_ubZFY zMhQS2oRbFGYe6KYRL6>ni`%b;7=LC@uzyA|NSU#^UTL~1XG~TIm{%6zN zlbzL(=GNs0kQhS0SGq}-ZE2YV=)XNbKU)JFPyJ_9d11ki#59KcqPcoK0?ijq!h+_+ z{XQ!;=KHF2GX@wAvZt^xIX&5O_C}VLmcG71XVxa;%5I(5(heNqd(H}gja&TSqDojW zXXJ)Xa*-BcW8xHWrS#^J+Ua*9mn&>;KHMJjj&-Li|7DRqNe?2JykQ16G*{VQx~Hs^ zaW}MNylc}62cs*K_A^MEy7y9t35acExdS{R0e@a?KRMB9y1KQ;H^x|XhvIK`Mr?@H zx)E-tOQAg6+fpq*L*m12DQYaI-)8P8$jUDKuzj=k%>v2!qzB$Pt?4jfD(O>X@i-QSi$2L3|JZpg@+A^r0Vt_gr;`C`P{M zkbnS*0>%a(YGw3sPS<{s#b0PQy2n8IYk|kA7)T2t)7jnoQlPV{%6uN~QvNn_2 z$lc&g{;4jELl|7#;ejqG(^r8=q4&A+mOo^Sp8wtl!=u}sAH$4O1sf`irfo)UdmWfAXU0kNjx63GeU&f!OonEceJNfSKGILQ%Q)KPG=i0O=};jZT@{vNF) z`$xvnr5E4D*#OJ>g8eYBjquX{(i~LX#;Q~GiX+HSuD>t;?#(OzwRbrgH->z5@Oey9 z383!#Ugs|{{uK?(ND!o2AT@-#H!~R(pY{X-gN+y7GE9{En4_~x8Z?f%6_J!g9k9c( z3%9P8P6Ovx%pa4@>SC{ea8%e!Q zR!Y?Q8LZeDsn~FGoePe$l>F%xxz?d{lBc6ojE-fBx;{;0K+MaZLgGIxX$icyH9ERM z*>n$*gIF{__)+gMLCrMWS$h(JAp!T84(hOQMtR|{f~@xs7_d9 z+*(S1G3oqNeJeL8 zz#J0ljxljXhbmbew1jy(o8F~&vz7)&_q1_khSA%L0vVGp>Hu+pIf-rX!$}bX+h6P9g=Sg%;BrE90yvmvvZz59!{ee8KFc#KF;Fb#{kP`O z{$X6A%?4PL1>)oswQ`l2_di9reYJgxGNj#@&yk+60Lw{$v^O4HT7o&I$IH|2EL=qQ z3zH}oVj(FM3^MLZD?f>?jNfiqmU?*1U5c3&TT|DGRK8rhO&5_B9{kcr-v8>{Z?tG`?; zwv&_Q?ue_EY-=S8f0}=36c@w=AgPB18sHgIXFt0uuxi(Z^cM)Htj@k+ zS3uw;2WrYMtupzdDGJuyBT^*5r!z7_%w{C|ds`I+V2{aRMxtLCU#Q;MvX{U6B6)dv z_xJb3eH8rv96Z4b1ZYfJYKNae3$}#O>`Er%1Pr!M7arMJ0`A%Tu2$Q9F)J#p!r7|5 zI*nGii*G5}+|Tr|=@B)S#XuF&(VSGkr5V$GY@*{f?t&5SxJ`@R*f0tSwwcD{_4&g_ z@!1_HK|IPd?iMf)d^^lRS?Yvi8gFT6JiWXC;N&ho$5L8YxbqcI7%qG9r>Cdq0p8H# za_jl&@%Qn3HK6(uNrBk=tDu*pB?hPAFd?6fyTedpVqyU8Hmg3|P)u7pU4_mC*wnbX z_MU?k|6N#sqTHwx!<^m5W<#0N&^#uYOTeMG&;m%nSx>UNcA#P^n$yrTQ)zaDz;+pc zUw&vuvk3_X#Q7xzTDP9QsiOC%5xORgx_~qQr}#4;gPmd`9AUymk}Sx+^E)>~X!&h6 zlcKL{B@)+d<1GX7-lFkT=`UcYNZ`~06e-!P=e{>IaAkIL^*UgGqyB4C_cpTZ4j`n> zy(Nh^wKaUItp{53!+MO+nUvbN%sggxk#66>`-J14l@I6BhBGU-Vl+mHFveT;*UO zf1DaMvFCmFU!2+AN9Wiqd$$~ZMoNwa<^GD|_KjnE8t6vAh1K?yx7@4}LqlI3szY{#+cGz`e!tG;WK z4!|~|yK``U8@q$j@|X8Had@}MK5-a^o)2m;QYgWvtuGs^h8MUKn9ynu3F(yN^7CEI zDI=!MN1-C^d4;7TsGJh9$SH3x{$JuTb{oZi*N)-Hu>w*2LHSUOT7GP<;dI<0Dq7=f z=zgTB4Ie*zBRDeU*KI5AkxtaN8v)YVdtwh=6Iysdy^7Vx}+R}P< zA7=7&PzM-Q_lky-wA0f+*sgj7=!;~+shsGCbFfyGis^pHXMW67m9v3Er5lqq!yx4S zFdljiquwB*Vo?3NCJdVUu8A3aZXo)K4I50?S2M@kJt#6JWZH)!=v+cm*x?u7k0h+K zz={3v<0}dS8}ANg4=|W9zlQ_9{G&PV(92)DZHS^1#lCm0T7@V=7sN}tDY3J1DQIim z4j*oNy8#xWX>@v!2^1MliSRNaJK=bZ?niQmPE+=puW||hQK1vHpyf3emG^hPuKg-g z^^M;p=6xTA^qlfO=fe+TF!cyiICIg87JyKW8FvIme*UXKkIH`iR)<1K39M2VSiL{|M4?AnBSs4+&1MLO-dv^FEIT0@n(L;8#7mnr30EgO}p26Q1m& z;F}=`1H#{nZgiwj@VIS_yj>C^g^?c&fDXyj>I(<#?qvk7XrmpN z6ASmndnWlU(|E#$4c{*gM2ODq43BjRx{WG%9^yc<4$3}*)xVD>1YC7hA6)#NVjgkG z{)7!KrgHfE=W=OD2g|#d>T^euvhaQ3rrp~|W?6wTOWSG^@*h`p2$@^?-O>N$1qeQN zL!>~Q8uF5|wOs1PHpQ-+5hV2|kLn)YAJZ5X0rC35>Ys}kd7&ykHeaag~Bw0<3to$}f{nyqkjbetQG zbE13&thuIuW>#-%^PQCPUme?g_!@D!N~7JtTXod^`sM=9!F3mN$m?C{y*QaYj^QAq zT9P=riwE`RGE-~o49Mzye=z)VvrCuONl@*V4ln(-fjIc6Ev*lqj^jw{itoU6Vgh`( zu16p=!8X|WJK|h&^$-@!g?3+o?16d!w6oBkegV|znE6!5a{oCV-lQ69vj=JP$TrHk zrisD-x3nE;5@RS)$!fhL?L1~vTehYeADZ|s&sV|ZT`PIxH*!Jz5XhV^2-?kUCN zAd0`zmAgf+f2n302W6^Hmqf#Bw>{l0|1{wI!fz}a88z-D@3bKNYM^*@l_Yk1H8YQ0 z=1tg<2XFvfp6TZ1rhcDTU^u+qW|_^Kg#&a?)yhe>@*CL`i(C~?z?Sv8+?{lwmBFNlZJYzPZ^sH;gj7;Ugl)7F33q>MhYEM**_7J0HSeE_U$^&(AR%dL;+C% z|DFU4pViBHd9U_IoBXF6#{x4LD6-4tRDA$O76rLGWi(lru{IS5jz&UaNd#0n?$XV( z+0FCc#p3~nh*B7nK#UqP7{DyzcU1l}GauXyAONp#QK!8na!Sh;*jo|*e49AL1Sp{O z1Pw`S6dMr;JNx_o*P}eKA2}Ej>tDsKu@BSgO5zYEz>?PuFyV56olHhc9+agC$MG_I z2@Cau_{#r}woOrt0JZ-rvu74$+ZH7Cp2M{KYNv;v7+}0E>~-36BIWq!%3**%iw4Zy zjeznO6A1|anppLrXyE`B^AMTdY>HZQw+Q;qY{~!uzWvc}^V17BwZFf zVOo9N=2i&FfMM5`gS+;&(~DZgio^wOANNvSv#!HNebv&bs%MbA~pjJ@#>l9>S-x2Gg;8 zCeSk{#Dag|OhB{e?MF6%^_i2y`{&2CNkFEj>)jC-ENrm6-|4X1E{My$CE#HMyD14X zt>O&ASt7altMEOz1sH;e0twN6M2eyRXD&!%<~9ly)GS1o{36skK>9!E)i%Y&Bcl=W z2D)+PcpIIt7T5U58*#l*qN?ndYCII-E3a1n7C9^4%ij-%c! zV_Ym>@HXEnaXB8|4}KNSa9WuP`gf;?DM)rp0?FDjLFT%-1+R0=%a5kx--_NOhq@Xwj%YE!eSga z&QF3{RT88zHxNTcAd2Q8Yr=5K%;4xm^}{pX_|kA3(3GBL zoskt(!C{%J-Ww~eO+|iSsm^v*w7nEank71u4#7!5B1y)>)VT0iRVz{f?Ks~0cs2zj zlTxKsWPjoQ^Y5~HO3Gl@Z2rxJgqto#n745W!hX0eV28dY)nhXa zh568vlfb+VET1&++#Ic3`Uvw}Xkav`U#D z4Gf-_?K?Kxz7WOi{a*J!*F+i1%*^nz^j)Fs2Lm_wL;gE0s|#w7p(ORavmmo5KgaJ= z7{tQ;c{AJf*l<{K#jcwh9hK83vf5}qiCk*Vio&gH-uRyE@6|rsf?^HAZ%obP8tbB) zRtifc8nuw>+ym&^WTQfsx{s;cYy|Q_q3p_~)e^T!6e|uREAaRTFEt9(kGT^l0=k*E zW{%}f1>oSH?&m2%wpgsdEvwDklhlYAA?uegjdH2m%#Mru#7h4aItgvC0uQzT=9gY_ zTtQ(`o((qS+S}q(XT{jN>N$1XEr|E&(8z6#c_SzS~ux2H!yCO#K&>fXul*Etm8 zP{hG8OPN@_K&Iz44OZU<<)iv7h zC08=Mq~$3g95ZI(5kfV4VKrS~lcsMU?+sZ+He`M&pkH6DUN4}{NXuJKp)A5tl#9GM z?vPRZ#%|ox=)24bFLc2%=1`vOx>&Zg5@Q(}Qtao!1WoOC7>}p{U)6l zO<2f#u7Tde0gC8u16+WKDkK$1f~+CIzio%(-H_AE%Z0W-TzSf;R}1W7REhxSpU1mZ zU{Oa#M*d3dUMF-t!r9#14DbX}Z&H7w+S)`;z@Ktk&mEk0Je}Gf%q;^6AZeZ@AZFUI z<_Fl6CMtiTlkkVwHE2~Etd99z4bo1+p90dx+(c|#oDA8Rbl7Cf9e~8Px3;2}7`3VZ z)!1(SlTxd)yZ?)d!uor zQLBiK{vXY$q3R!l`IRP-Hk zRy`@}D1uzP<{YEd`)Sf_f^YFfdzVAo*u|XMbX-=qF^uM*;&m1n)9mjNZ9cK--IB)z?VQv3IiS{K~p2m;uBg##W#w8$x#S-&169NB8L#-UDJ}E5u#l@X9)w#<1j)2o+IXAGD-V?#q-GHsoR2E<2s8{3y2zRcGF=X=uhs!DOcTD`flrY3_P(Y?vLF3L>EKOCn!;cq;N`!SO zi}=TK<}}fKU!^0YUo2BB-VQwz-Z8+ak!8@I2}dCq)?qu}RqXrgeb#@S{?pfcyx`ar zAo@v>!rghx!O)RH;r_0bI-*IR=uUZcbJ(NW_VzvtuMc=ceNFUbxV}+H=#~VkeyTzt zEytr2$h*Shx%}yB9dn=hj$b_NuXhB9whtvVJtt=!&=P~|YQpJ1aQ#bP11!GKwXqz% zYXB$~-6CQF>fPPGzKRNY>ad*Y>a$fWuN{!$HbBO@c@NTb$G zwE7N@wWsaWw#cF;)y$+fpP*nIXlV@=B%y_oMXh6~n=9oWP~}&Wbx)Hx?6Vesz?mn7 zhyEkb04$21Bb{eJflS=ipgHy3$(g>Ws{7@Z)XLYwePZ8>cDZDE4K=lH&wPl4FRr?x z7<^cMjI^>cnm7dRRg?-&-m+lY90<6pU(hegM;RU-?sono9Zg_7AjosvXumGpMjO@l z@ZdEwxr0VF@tD}Xh6#}AadS6c!`FO~fNmedtWQ-@H-cm|;@c_iCj$EFN8{UV z^>M&{{Axp>wRh~7o%(5u8#Q64kGJU_0#n81@U9`B|a8Z=m7-f1c9 zz>Mbu@+$FZUYYY?3?I5df$aqYms{Mq~VQ7hz*qC1+K%`nuc7YeX zqMso0@|Tme)em463TROXn8BnnxgtK9?Z^cfUrSD36Z(a}Am1)(DEI z|04vncI|hyBL|4)>a=~H%`eZ7G4S!M6dR%l6YP;_>ghjpaEN&(LTV~C(JrMBTp}O< zHn;%Ryozq47F1y4(^AR*XqEb7H(^VK^7{UE-cUJ{cQXm3=iNV>oTC|Sma2ufgR3P#gP?BVE%hqC z)$n`owwt!gow!D$hNd9~R<}PeaB@y7L@sJ^v~EPt=xXM*lcr*d-bQoex zs0?4n9-YQo4!&A2^f>FMs-LL>Xtz%OeLD1i%X6K?EI{a7|I^wk6JRXsyfsymYn+Nk z%wXY0__CkoS%vGFKt)T`xgS{c1sw8Dv#ci;`_J`1iXXk9KC#E4(ZU&dT?-+LrFzn z#Qt$xs?|W7t)&!j>sV?={y=NnHs#y}`QRId&E;V%5Cz(WNmo?zwUT~n#!niH zBumb~U=sn)1agTKCz%MqJl~XvG+sLn^-EXH{Lj$y_DPY#LxoAqo0$NM;VG5R@SXbg z`%q2e8GFHY%IBLF*Oxi3@u;-d_MLm8U#EbE6Vd_aT};!vHt&~1MN(PgFnfD@qMfFt z+&BF^?Ib`%VyNUsOdKJiIpnWY7vRX=adoOvxJ&Q zQr5L=$NK|Eao$-dAx~_uZ)iZl+N=2Jdn?VS+V1`P?CEA&Ija=X_vHw!?#i%yH<9!s zxW@VRy>~fo)KSnXdMJ|;uhW>t@5DaOzCdb2@mzNVf~OU)RO;ThFiVshJpz2%^G=VKcks4zV`+ZCTcc;VMh$ z=wu@3`#xl)Ga;huloJnxcg$o-Ezndo7L%0lEF`!w0CjeP3=GAchG7r$KLm)TxKVEu zE}ADauzWGLiH>C|T3Q|kKtaD%>=GjR^m^mk{fAL^yGB}KEogB+cXM|KY&jj=vYFW6 z*btB{7hB^yM}aM%?}P!6|5u~J&_@OS`c) z-0(Z7VLPYCKtS|h@-G7KW3R-X%nT8|(-bm|p_*Fahcd~SEG20t-ait)q=H}ILvy&( z3Iu`K2LxqdKM(a_Vj>_S5^`H5QKgK09S#u(l+&E?{xYS8+Vd$@OFns0>xr0RD)}o~ z7$9;*bh;?c%*%^jTU(1}ATGm1D$h!Mk;f#l86M2%;#|~&D$k3MCg5JxKC#k-5$^SU zz}c;~M77Le-<^j@^Ph$xmv|=ZSD9*k-t_BgI%<;nKRrb1)V)oFe0j23HGhSkd$~Vz zQ)?yd?IsU%>r0({_K*lXcle$8P-SXND{WuX9fj=u(C-#oHC?BH1gw%eoM=7sz&!e> zt$ip8>y)4GU=mla`kW`mlak|nYzy>z6*Fxu{m&x9e(`ViVu&|=OzVF)9>I=ASj~L+ zj*f=Kt--#z`8bxQdvZS_@QXBG>+CFoOsQ~F{YRcncb2?|bXHzm-kZqVo2-73hrjNCQ?9!Z{&VQa?VVG9o&k$K103Q ze9O5@hVGT+k5s}>-9g|z7B3K{FiLwT_@sopZse?_Q|Xd39&Fjgx;`8u;xjf;cP~~ z)uUFAMTX;~GuMWbsY8|L%t@!oVH40}O4j>(Zo{LomNRH0g@Cvn{0@9e2rrWZB#6)K zYYjZ-=Me&PhF=^44E%DLc_TV3rK8_Snc*f=!V+HW&;JHzw9X0o@xK-S-U)OM*SQea zcVN+mU+S7gCNjqTJGsKKMG{)YmW7&hNN}o2xHL3YM}p&39o0zmQQszTZP`G-Q?;`N zOo?;}9~*{eVXyijl%YWdn?{Ty(RZyCqdP8M5-Xwg-1*tV(|OG~+c|qY(1&kdNaTm7 zmClP0f41RW_f%&+`z01pge=iqB59*gwW{zjryS-%s-WZedGfAbBbj8x-9V%Yb!nw6 zt>n_oH@v+v+v=1VEXz)(fybs@k3Z)eZ@hKBNTpxY$|fwFzhy<-$s(ntDmfD|nX)be z!>WL86OnG7c1=9xe z1a=k{yq;Hu6n!VCBj>*RS?(Mh97b@g(H_(GZlilnDKLFmn(tP+6AFL=B*Mcp&tPu9 z`U@8eYie!|u7fO&OeAb@C2Xxt!)+m*U=4#}ryP5Korx8o$IBWdy!H#%dAj-vtjx+_s^59ZV$QTb$k{p#-^EF8U~nSz5b3wd5w z7io&Lpxgv9ice;V@+E3Kh!nNNSLs8gGr9v-MF}o@fh%866^)cin1Zc7q#VAXZ>$VZ z(#oQu7B45l_!O^WNb^*ZhwPKwDG&j~A&6u$+QL~S2s)bG&qg)+ENDvodL{-!UDdg5&o-EHou_dYTG;#FLRYnsuuoCdmg0s*|gE-e# zkH*PvUCRrtU4C1ku2_%`Rg~MsA5Oy?y(?2BQh1)h-l(@icFMet0E5H_J& zWCFta8nMFY(9WZ1zkpLSNLm6>ztKKV{kXstKGbgwiN8!9j~NbbDCT$<&ERSz3l1;vR>FTav+Fv$ zN?O%X91jhC!OKba7h+_II@>}F^0j%WM9|6O+^q%tNkKw2g!|BGxwBdOd+rhB9 zVq=yq?x!EiX*=J))Rdjo$CB~`NiTqgbOFdBz#@!S)F&wmxkvC|)raC#O_F0YQcr}D zj6(cs)<#(P^04DXPjR_HYco&%wxPBud(P#qzC0?-RMI35a`3HiGUvJSZkU z0~-g{ZEXD@+PgcaJCt2^LV$oyKcQ7WJ}v7b(DLqdiNiqJO5OEqJ3^D=w0SBf&uPl%Fo$n*&#$Y! z=v0^NLFc5UyfyP&sJ|*3xk&cdA0y$Fd+ou(WoBdZ7gz-0p;!0EvV!Y*HyFS6Z%^vt zMJpbLuuH$>@fx4j$VZcd{I#0w;xL)z_%4^MtJ(YTy#=})c`{ZG&km18xC*9J?9%=? z)KN?7$^ zt6?lvW~^9T5kDW)?+ss$!>7K_-dbwQvokCyq)K__vx1DL01ByDAF3ZeY3g1h6x)$Jmak%E8KY}jUWnJ5y1E?Y7i&%X*V?>$O=^cn z`-uAqzZ9t4F-c1e09H6BCnuEm9H=~+X^=u$NH5|9ZDluw56c<6rhf#aI~*N=qZ?1e z-VwPc+LLpD|85cJ(E?Zr9Ob{@&L9NBqOf-St;@;D(P(C?b;f#aa`b(98HkuUYoc45 z;RdD}cp;*xtu$Dw+1gfW5bE=@4`t(y!iPsqPN%5ceb0q^b1q**Pf!0o1>$3e!lDe? zJL&XOXDeFV6%vC-_$o^+;C>b|@9pa9da@Z<*Ps2vEv@8Y2?QTPBE3Eb+pVCKnfuAQ z6s;a!P3Hg>1+5~G3Q2m=8OAjwITD#5ZDyk>AW*JyP|45%3R+;j|+%pML4bmST;ZdM&<6~>`JWTJ02b_mQ;aa z8z$V>Z(>UTwJ*OJgcey01dZ)9K&ywRhoooL+y`_=^#`3wfY9X5kB{qDerO__-^cK; z&0VdaDMi-pZ@?KzTmlnLuJZ3uMK#AD$qg(5aQXKEweXcmT6tqXhNy!;#wP(!9wQ1{ z_tR#v4&cH&HyK#m+mVLWB7XFs-;sl4JV$dx)=5()-(rb^6RAPEa*(jh4nRqKjiZV9 zq4@F=WCwyicRbzcMnpysm{-{7oEn*OVn}&$BH=G3beSwpTXE~0TC`{8LF35ucZ;49r#sCQee?4 z1(r3EN8A91(f8WEbXoM~o1Ft8#*l2X1LBirB#L+M-ce8lwv)LQxzmQ-G@OWW>&xDM zKeCG)W?0X>zd3Y}5X@>m;OYKd;OEp8bv+ccFLv@&zhyDFY_L)q9^C94nc-WlKHzGkVKZOWL_s_5%8V<5D)#f-M}zdIK6MnL9P=#3l-hM9Ilpj6QH}&x3Ct!% z(fUeg!X>L_SbfmB^Je(S`mbVmb@jEV_RJjBg z;Y|&FY}E9r^h0slPHIEfeJTq>f``Jg!Ff)hJDd4S@qHG1>ad`=+RpW3RovIIUNh@St#*3 zewUx`<%ed0g&6)wSEJAEv(sj7_2P)_e* zdXlbPhK_HGHFxSht83D}msbvlNqrU=b#~Fnjgx^_lGMrLH=e)ktB9%lRW2lzUL=)X zMyYM@31b!(FIMi4m!Ub`oZsBGca!YzqE{^l$1d;N+FmVNL?m+Yxebg&NVc4lc)2%Z zMn(tUcAwJnu3av=5%<;gzKu{)X_QYw9RTxI4&r2+yLM{3T4x5pSl`RP6YGcwD4&rG zA1e>Fk%dMzUgia#41au&@}gopieYYX60xr4BL*JjVckY)a?8n@(Xm1y8-zxN8P(Hu zp-~9#lchzPNzz5g+z1*gu90{|H!s0Iq(b_%x=g7sFP#I&swP2BOKWb0)b*h_0K{Yz zK%(iG>5Qaeis?pa6r4w^_?Q|r^P$|YF~K%;w3uP&up>JON3Ddd)oB|>8d)mj?_ZAt z?yNWX{J!O31@N*?=^sie=vi0Vc5^y2-Vm0J21Bb%`5yRu5Ob|gdB{5~XXSS^SF;>c_{F-Ap87a4y_@=ICA-C=tgHvi*opQx!sd~K!FBz~<&WBeytI2)$KCq6&m zc~eh667SD7F+Sj7ipnB?5C6_2f{l;ye)ptxeR7)Tv2*qXr?9K!?94#i$i{VHthE=z zb7LY>%bmsg54G?&3`~UW4T(tV%U`;;ot47_8`FN`FoDkWY6O`9ko)U>L;ojN<#G1y zbtM&^?_glPC`Mqrv&Z|qsExHVwc|K}P{b2e=27-Nl_TFKUl;+|%e9<}t!Oubc+0Oe z_eFak7^m$j>Z@i5Y;xtp)U5w9OYX`3Ab8&@TQ4v41A>mQf?y`ux&=PP{*2<6IP#2H7Zms5$!!HIBetc)yig_JV>2= z+hW#m#2Em17_P6}Sl(`zoYDXLGQ^UeNMoIRK2e#5>qo)S;Uq?E$?u5U(~S12F$3=K z?M-v9WzIB>G=TO3dZTFUKLI^|zwy`$yB^`#XnAPh=r83@=ql~SE!H{{+x@8EDo zfmQRgc>viNqw)s|82VgFnVXkr7$#$Xbk3GZL3a}N&*D4lt7qU_tHIyr?IWL^U{Xa} zpH3AKB;OnRO*|)UD&S*p-<|m(nB84@9kS^YCfn-B3#A9yxOiJ*40{0s_omCmNlif? zViZizthDCzQ79byV~ZQJsUa3GF^eV$z#EK+3R3ptLkz}F#h42%?yS>#Cbc5G1A|+A z<`Ktq-YAx`F3^Yys8I1jX`7+Pcg0~pOy4g8VVPsnJYgt);+;$ons6OzV7>Wxxw-^0 zv#lv+AckxGedXVfb@sHzCM!+vA#4|7J`VlL0*FW4r#hP zgp)6QCZ8?Qxibh>;R?Z*9cbglmPQ$TDGNb?`iS+#ns}7WDXYIJpwo59s*bxC7G+!+ z!|lR!=MZ;XImC>Q$7W$;6KZ+fSQIP^LgdX3@LfL*+~~|px~QC=pWpW|tc63Ptnq*G zlWr$)$53LzLnIHB!>pNaX_JW~jg-s>NbO&4uT45unw4sKxKNrpl}yDcPIe=qUIAGE zi~^R?5g5*Ukn}|VRR!|@d)W_sP@`fN5fSkVz8WnpuOQ?m3Sg%BTZz7xLk_1)07r)T z2=GAl>PcPs2wka7G4i*r=Fkv4!Q$RwDWx?x`RPh@Wx9GmJT9=Ry7O)7-271A9p$U zzre%?Ok)|D+M_3-k41*I?Hx>;PFyldquaLZqdlLVjS6FNkAhU54a-V465O5+2lmT`9 wg>#aI|Gavgfk{G~0T=AA=LkY%i-f#D2fZxS1&A!tfPgkjcwbuZQHhOJK5ODJ#W?b{t370{&1#F&GgK4f6)DO zKRw|Ja^mnXI50p!K=6_hB1%9&z<&TgHYgCl8Bg}+9v~n@4hvyn1xaCHA_WIqQwwXr zbvNK@4Ko!q*~Xi7T@44*am@ge@!t*!L!n7L0uirJ_48D z^?25g`d)ByYZC?{l1wwWTOZvZyQ+`1k$5%1Vt`w@BR7=SccqImHlPb{tzQVd1I1c= zyE?Q)d0rd6mE;;&3^m~e0^(L?T4BTjdc=!juh#>UZ%bcd#E||67jTEJVM|Fx1@=4( zWK47tJ~-F{N0tjIaS4)I*VdO+fCp68@7u0m2t*SL+6Vc4EW!@d*XKi!`8i3ieO-+n zbWY|rImmC|Z|($4M0#_>5ZPxe4QcRkadUH$y}f-c1QaI>v;^)Ea!C5@WN1@{@Ap&L zBXBB!A;HB}1jGu2js$T*Y*B`74-qaJoPb`Sh}N#c!3N@_0%sC6IVG|J!+{5hZw9ey zOMtHjva9>e;18b<3ON;QEE*xgJIpcEP98-LTBKA&IO#MoGpRTUOJh#OL$#lTs_LLh zSjnf($eUFeUxi(BTwzmFSnjD1tDLLkyKOL0w_A2BQEgv7ZnMbN*jDJ~IBU#-@tzW) zX0+19QPm>j^7yQRV1m#&%88eneIh5r72D?JjBj^ofBSrPf7RFG>FnnE;dPJy5BHuB z9t+_Lt^#HTI(*nr82;`63}-+{!`01QWJJ=dXqbAPYNIUu%$51Ap1IWK(BzQ%P<*zF z$CESvQ%Bh7_U*iAJF;p#f!ZS#Pib&rfdNz3-PM`R`vb?UWWxEQD(q?sch=$kZ_Tz* zH+^Pl0;4*Sy?B$t9>Xc$%14vv5n^9pb*NRWT7+-PREiH{rq?e;{^uj@;n&6biFmU? z)uB`2h9~XKO2qVQ ze|)X%$LygR@$H~kOFjkp$|)J{_4W1~Li~p>*vQBNY351RUWRH-n>Oo| zTdeDwfjcv>3nCmRp^7=!Ap8X6b}=zgA2?m{@ZyvrJ_*M0vSI5Xnpv?)y%F~`+E~w& z)X3R5LdrO54O%veDWU?p3o;DHe=Tm^Lt#fTY`IYtSM|a@4vP1wX!q#3RLj(^6>t?k zs#eOiTv^q~mFG2os_07xOJL7u&YmuMIo!dy2DCPNUw>BrpWj;QgJtc_dKDF{f+CZ08I{Y-Y?RY!oQ` z`P=7a;5b*fH%ZKuC0hoP1K%rlhFFO(8v(^@flKWg@x5fd)Op6sJYSDcdVElJSaQHS z+mw4P`|9zR#{T^C2K*utZ@hrIB6UhhcTrAHuG`_~qVmx{Dp_Xal11}motU%cBx&br z?90RI=vifF_H#L)T4+gk!qe%6S=0-0h+u+`N5@*hNb^DmiE%{0`rS^_}nFOKq}th0rFEFk};w$Ac%c zQ>rsjz{rzLz>t6XrR8z^1`(I(d+NjeTzb&pB<@8WoFrh4-OCt^mxix{N9~2);`0n_ zmh1~{+V$w=>AW~Secjg4TcG1q8#BYVg|3CcnZZ{xT{n1zYjv4p%U6HHtDe1eu(PrO z(-(&bI3`d=Fz7L#B8WEuwOulVELB{;q^PJvv`~^)+BYUX`5fc{ik46;b~;TrP&h-` zFEYU@*)yOt^@U!a**8S6DK9i`9+=sXX8)E1zJS|^7!rPnd)SOjPl7^HQ~E)|bu23- zIUfI)({DM=zdGL)0VxAjMkxtB3jq!>5&07ZmN6MU8;DPrq0I>LmPM8{mNDkV7MGT` z=PKt1j|dmh=eulm%tf5m>^#0heOQJ%W+=85W+7~zu580w_gJI#ijm?eV6@JaHkaxg z^(_}InJ(CWCqC#MYi{HKa1*b&L2-}e>w2oLcO zZ|B-4m`9BJ0{9AOXV_#|Y&cnj2O)?3@FAv$*U(r4rFBtul~5&NHHjAgqEi+FaHN2ybS8koN zo%3Q#ua>Zm)*$|YH}UOZPGWU<@VuF@p^7Ee&l5b4vB)3YKJ#3?6`;THVR{Lx(dZe< zXKSh2vsZre0)J3WmRdE#tRN7$_4F@`FKhP3eyKQemdAfo>-csPRytgyFk+qdtWN1$ zX==GgB-|+F&1dNU8yNeV1DV_NLj9=!A@guN5{Dh{En+@p?B!Kq#_>ownSnt4{m~wq zggTZC)TRmSH;4ta(hgK)+Fu?652VHkL}w0MrwBe*#Oc@b1S(Na@HtHw>PH_2gq?@i z;` zcNb?k9x?6{e;KDwL0N#9KU)Avg`h~LETeFth@lj(2(I9)T&aY)z_c(l|5@}@@Fj*R z()!ys-aj-yOEEWo46T1^=re6N;7>d|Xkh@hY3EqY5dTR0j78sDW@Xl9Xeg$SQsSG_ zTg#gjSOFL!>4R{~sY0brqgSI) zqEV(&>wVrt(M1T)u%Qn;yDVl;?+H=p2| zP8y?|`ivp>OU`-19!ZZ5sE*jq3`{NzW{r_fw~Fsf8%ucIW%`XEL z8<-jpiD#MTVtxqhf=nI4C2!cf#gw(cIM+;XZ3qr^IBGbyr81#Cq25+yP%l@tQO8yL zDeljsF8Nb%U7MJ%UC3$EXJl@I=25(cv;lOU2}|G3{v)#{Tv7)U0K1o1D3xKKxo}Zn%}YE44uBgMn6eTu$8NRsXWR zCim$e#7*uu!)^7}uba;<-hp897qpvR4}({`ITj2u^W}@JnX8yguh=B>4&cmx?imV72;qo`oTmHpoKl+c+nt_g_`Hg%t8Bu=S18{ zl#o=zB)MueNLk|tsi;-xDnezl==`H3Y9#giN(4g-!qG6$qLXlvnpLz^Zp-M)#LWjR z&dsIIz0QKq&9G^(XIa*nq#G3Krs`Y_E!U;iVY&Z0o;YqF`V1)#c}6m33P=-)GwGL| z2?pCmOGKXet-bcMLpPCyCbc!CL`7Tw%a>{QctaOOCO6~SeJr=Hk$i{*}CR z>3K3kU25@-g+Wg{Xm|A;H-OvBHfDFBGds0a)4;d%fMJ@Ck;{k<5ju85>QxH*5B)KS zd;yII?Qkx+ns?=jPrP>H^TN&Y1E-AhYbzlx8cr?em!*sQPf2nw{rR9*=%3Tczwxo^ z9%>%3FU|eCVbg&p!nt8<`{na}_2>4Z;Um=Zw`L`qX62_#zHPI)dR#xO7I#|-w+;O; zrhl%~`zxk#hBvyMv!C+ePvH-2S9h~B9Wv81FSX^g-L(fdy*B@DzHO57g76~nmh(RG zT6HFL{_RZftS)-J%}tef164Q=1`FAHn|^$Jsrd12&Fiy!m1&`b`Z)|#7tN7xnQyviBO%<07@B=UBVK9~kE(zW9zOp7(x64%z-84ezGZs4^> zySDO7_zBGz(67%=H?cbM9sBL>)s{>jh1kcl3L+#U`A+t;tikvtaOjT{ z2s%A&KmhuX`#BJ0V=x7Bh;0D11x)Y?#7G1_rI9o6M$e!KMj0-124h`fU^V($C|VTujq@qF>} zV}*kx?yejQ3+j?tip2%CTzSVcdHL$47c|yFI(sle^8{82qQn5AK$-7e$Jy@G$>W)= z{j5nI0bhq1g4OS5?%i$A>*m!K_s>^mVN7B{C?pUbB7;g{94R5d-yon!pgZtx$RHr% zJX(+;%nlOKb0}aTzt?~rz!7N<9ryrNH@?6LaNR&02@4#Uj@9PNLEBO*Ls6&>vO|uQYx)i5a|Ka}rbF&E=hrl>#p$sXJ;ro4b@!+3;G)Fkjf8Gz@#LCUWOt}p6c#c- zdC~w$QDhLc7=S>sD-(Mx5)%o)Ofj&;2okU=Jb(c0t$`&0v4IF!7-JL^1-dAd1~))J zZKr?fmr!3A6p}s`vJ6cGQk?@ppsFjd+&#z-8K4gnNty~8vB5D^Trb|`<=%!kI5y&q zDL+l6yUyfV=SPeA?zrfc$+wG8RD^hQOEY^5{YHCplONEDZNu`agqNYNu8z7JrO$q} z)3MlFj2o+oL74=Oj<(O&P`a*qj#f|Kwi5&0r2`8G!|aKrwZQfHx$vK6+DWll5Fx)4 zQjiO}>Vg%FZ*g!cgMGqS8k*q)|PgyX7jtvh{en68Fdep zku#&TEi{)7AuoLf!$=*NBp?)Ce}bSw>;BYKx{=xV#YU#KR#%7F|NF~s?IpKxL83o0 zt!+K1visq#+~L%c;Kk?wmTyPOrR^)ivOLJ8e3UZH!+ag zJHuGza7l1X-Qn^Px((hAcZf^CaxeOmr)IfNBRwl)gQV$nm3kj$fQd81At>sGID|QH z$=Zyv*=!d-LY}3cxVPxpc^_DoI{ zM93f|uw}S0((;=C$}1@`4K_lOk6ga*h(dom{?lM9qs9>U$sfiQv6jp}5bMWYdb@F@ zq_Hq(=rigRlpLIftVr9RSTKmO4q=h1M*Py^@E96qhEQU+^LcC35tY;1j(N zVFYKednlI!^uL>><7qe}Ajz;77{)-PVajw|l07UmJ|dTxTHC?7ts~sK z$)A_a<8-L^I0YjGJ%Tnr`mFO_(*KG&_TzBz^3xifxaE-{I&RP7Q41;Ll# z+7H*uV*#(fFFRXxB;8GAO2qz;EgY2OiJjNn8;i;HusCP4d?l1|D~-%L12Fk-VRi4) zolP+|@2=UKrNZ`dnm5-Ut4b`h(v(D^qXhr`Z{~L{%loI^wxMXJX$?M;O30c;%LN+G?TdFNZi57h z5y|A?5=FJ-sZj#HguRH@YOKiIRASA zr}`qVE=3^%@g(a((g?LcTHOyP;GgmbDH`L8Yog{fQ6Qw89~@}hG;vYhzaiL*lUnyW zn)#ZfJ}$t>>G#GC$!;{c{g|m-*4O4a+1+W&m_%W*{SQ}dB`0@S*{;FPt{vz0*hOU? zg0(fpB_zflvm*FiLh}5UviggCB-#Rr*QjWu=B2HtxJx{m`bxC-CH5|LyklsP7+6t# zVwkc;F0IKq_h>8nB%_Yy^UqdLBrbWdbih`K>@ynY>p!c9Z&%V(X@XV}$E6@S* zo2}VENfY$SbLf`{$Y1jfzr`5fzh-^GjuJJ$Bc)I*#rxVfi^A5pzprsi9^r4fpj%M< z6BOdjc7v5h`Wi#C;f-(k97NaBsD^*_#5wt_r$9#tNuX`YjSjHPWE1lwVJ4)sj#*dZHcLIadD_A>-u=Is**HM zU4`gHvrtx5)77=Iy0ttdlAkNH-htfWZ@8SMo}JC%%X~?=mlMp0{Z}I$MG`l*u6qb+ zbGug|L&D)w6Js<3p_2@i%&s81#@)tKmx$AmK@HMCm}-3@%$@k zKnghz5VBmV<}=70V$&9{sYC4l7TWh2HNBS+@&7l0r#t(B*3SnsU*u|-UPvJ(bxa^^ zg!Oii3Qs|Pen><;ND5~0WkG(y{{_$g*Jty-NJq};C@D)r5hECEJy*Gg6{$-^h<;|O zpJ_4D8z3s_Ge3{9s;wFu8)0E#qt)=xO<2ILuCF^?t}Po5s@n|?V6AR+EpdqrbigEh z4RwB%vkCQO{HOWJPH_t|$cQK)s<*i*Sp@m9{}=YByQOUaVIP29g6;2$7NCHw#Qd%p ztJ+=R%{QkrIU5@qmi`O@PXAZXMuy2op9 z;*!$4U?k6JE|ypv_KUT8V_7r!cnPPci{-sNgTpY<;(u7cIQswE9A)S>APKz;l5kF@ zGsR5|(a7HPp`saIcf~1^{xz@aZT5J3Dm(4`{reXi8(U9Lk0L1{;shRqt!GbGT|+1? znO2>Li;J!Jox=(hMlruFln&vDoHvFYR*d} ztlLy3osi#at;hSr^W_GciFUo&3iFC9iW)w7*!DkYcl*uU?W7<$G(3DRje(^T6cQqr z^K1PPL<#nCrl zuX{hvi+3b~Ltv7MMG-aZsWWDX;^63~ftwPmu$a#gSp&@nvl|d(q@=8Ld%6;{MVhct z0BmET$OvG#1Uz#ko~}ebSI&g^tcOFx4M!gfE*sr6Dm;9>)i&33#m>p8%lQ&RO{u!> zYl+MTYVK7CS7@4=0D&$qb8gFM%?e4=JY+1wxVZ~YZOg$@%NWcc?C$-tmJ{JrD6hqj z`ZUwFr-X5E4=)E7$kjscEDa9r4-o9RTWAS;_R+Xr- z*+~QsVXdx~OPZl+i7r>FmC0b?7$D%V1Wo4IbgGFtqZzC6F{5`NtSQfzD>0)Qj;idR zuh#j!-?6$$XcRR5vrOab4}}FfzL$~R-2f~jl4csThmX4OA*|0!tZ1?4P5WsK9(TYt zx!o)_8k&isW|@N?5#XJAPM`w8um1)SncMt42rO7ZcG=s_5 z#w}R@+g=8O9$f}X1OLCV=wK*@Kn9@@26!2hIi>y}zvch@l(ViBJPDXg2*AsX=M@J) z16TehaM7{k20uUyYF7;2+cQF&AcevKa4iEj0*jJ}8E5l_qcQlrA&7(sxtOY|swI_? zQW!9R>q6($59835e#_wIAmZdc-*2bJBT@b@{{U<9`)-u*1U10&fE>icw}0|)eU<`I zFs8oOo$t@bF5rQuGue^d6>-Op=ZjoZ-3<-*i}C`|(b3IWPAZN6i%|b6-Whv89r^>n z_n^4WuXcNT3#|Wj2Fu<6?gfqgywv}>e|}brD*iAH0J;-pJvXPHrlX_FVm2Ph7Y_A! zx%pbrwk>A^8l`vvg+%aE-Wz_XtnKl5UN>t-lbTlx{VxPKmw&_a_6OUNs(1Oe`1e=6Cr@xSbD-SxqxMDHKH zy+59G-U@{YJ_FbX{Nlys@b>e4`(yW9v4gG*VF*ZDiKl#6LzdKQbo?z*<(di#3-_OJ zD~UalVPduC%vDrW{QjOyr5CE}Nzo|)<`8VdUKSk}6ikLHD?2-X<7%}w*Kime9o?Tr z5bs|Vs5CqwA>rUezK+muzgHnDzCUc-urM$svYF4jKi`-X=yi?%{{1sIn&0*LxL&E& z)^4$eCjajxsM3X3USfbmezx1#YaImzMbG^>`QX4vuGyjrCht241+8L^bI0wF@aHu& zF)^`Ts>Hz!5Ujv!I|hRW1e?Qym9TVvm%q*M-tL_VAF4r+Q>AFt??n`D=7SZ3Zbic~ z%1e><>`98JsYOkuG72|`|BOcCLW0VAt7dkIE1@7ZJn z28d(3-_M-t>gwjSQ+9Mf6ue9Xq0rn;*u1Vc*2@*il3Jp{S|EV+zh=bD?P5F ztJ`g}*#cMz{SatU3TuH{QYaOxRR0BAa4`aO5Kq}M4#Q4v!vQe5jE&7rZJjn)Oa_Da z=B6ezkLb6DQ>&d^BYO);Ab7wX=0M^GifaNL_J?9obVEkWDRQ|U7u4Tud;NisX$e_8 z&M=)?hAYRHmy?9+5-8gMC^3gmt5-TTJsnKEf++CGWY7oHHfuFs0FF33?Bl+cZ(Ix^ zrSLkxmmfryUvZkogvHtha%?d3dFJ%;t67@%{O-TCMr5Vy!X=fx#~= z-9QcS1^HlMeFXJFI_|0ak)ZEptqD*s3 zKD*iOw95^B_zi)82enLLO|=}ZuC1!2qebpuha8zLdV!+JgU5SmSbuYH5FiQj>qSEg zuRaw#f91HGrn@z0A?u7(Tl%4Ed4xI+pDRm zsSu#o?ST$KipA;A`$|qINeXa>LLp$cKLMnB$gnvUJkA$j%cg>Yeh~2w2^_;+-mcp_ z=|H%gf6<{Z>0X8}?^ME($t*P&i}r*A8NcRC6oa8wa8R&o0*ivZoQI{BX>g<2 zYL0x1&3Fe$HT|@7w-a}7kUL44XRRF1wNfwyCjaRE3F43Oc4$&w!_DEOJ`Z9%BVWE8 z0$>qihr^e=M)1EKp+>DWCxAyZIND5G^JVzd3aM2+43UbLyjYK`Y-O<>Cd0jHmZ@UX zn&Huk7c4xoljh_${veL@Tr3@67n%-XRzg?N%W1OFnBLt9U{m-?T2D>AN;ktLK1`OJ zQckz)=%nQ0{Y*TN`m`(eqm_1XQ<%=CUtKh8Mj9LMaC^y8gqQScXa{3}Qkc~#1*5R> z@@gwvMzHdNX!(>(F(9h00Rek40nneMj7(Hi)X*(GTsN*rr7slD(|eaRvm?coSz6wF zqS(_V?nvHb+y4@xgD^S_K?ocvSXW1qRK&#wI5@#!yz1$SkR zB59*x*wn>^yyql*8?QT_w}y!P&y)Lor@r40x&Q78d-BnY)c|PBP_6B$0?xuu3iVl1smKwV>kWeBz0<}6*t zoW4h%U)lA*?X$qc-}7J2>jJRVxhEoY=|NDDgb#Gb2GGE%CY5Og94K zPui;krhVoO+{0Vv&#x?pYdQDJ`S5V&j<{eMI@6=E__Z|{eO@jB=n`_fHS*X3T-g6A ztiS&)t3}Tq0#NH!o18Nm)}FQK~Er=jTrS!~3; zT%r2y_N(4ai$uV8UMlnhVLZ3Ezyjgi=mA5Vbqlh zI5=n{AyWqIT{W8J<{;2verL)9)Q(Y+?v2B9bm7GpbqQe8vnh=<(6gM+-)y5?d+Zq1+cFUH@tE@R8;8tUqhhvr^b zOkP3QApGdUV*&KLmA6fKUy%YluBUqRP4P0<-P)42v+K+TiiGvTmp#8*5hx9l`j}K* zd(wLY4VkL!Zusn9zlVRM7)_N=b$PnpxfXk#P-#FtqhLNhlj&Qf) z>YTUDpjX$X;FOhh#|@?&1n#c-ZHM+N5IDFwsMxl5*G5*aqTA#Um{3jg&LN0 z|13`;+ep`DyK%ZaiIxuyt`7fH$BO^`tWa-}nlz^9Zv9#=4a`^}IRRu}cK?7+Pq^9) z4u-;I>7pBO{QzJLI1gI@_ScGGKAN~&A7n3cEL7lcH+Oe>QU`lvUMe{&OWFu&LhgX=Cui`Msp6Nu00aao zt>A_jXr)A#$Cj@8l$z&$`d{JXXV3y%XQ|&8?w8I%nbU@2akGG>mDPT})$LCAKWP|g z1=g&%Jk_F;M1bE<@Qzmh0W>p)q;@dqcI>S#DA)v(XBw1u?2|yPSTX5JOGyO?Eh!nX zwR%YIT8tAw{_YzCX@NLDKVL%$Nc5qjj<&l9(eIVb1)9&c_IBV&*Ag+CYSmh0CQ?s zkErR2i;JV?$%$V42btxV(zz9X{|2V(-!H4N-R$NOz{}DcJ;HQLIAxp)DNvGjg-BGl`hP?oRA>(C8WOp*FrlAo=%p-$qI3E_?U0Pat z{)Z}>kfp@(GCq}eyo7?H66LQHb4lOWz~m%sg)H9T--e1ZgFyhEWWwW(JQ^|rcIi9} z#guy|At8~W6TWUP%C!=PaK2-y{u=)JcrgqBccjDHK(N)?+1a7^i-~Sa1X6U%hQuZP zCr}Y$2E&g5G*eUH>rvU9Q-(@XRc~U}>|v5ifUBh96p+nfaRR&ubg7u}qlk$iOz%ZAlnRB~h@GmBfQK+t| z88L%!;ri{sA`UX zw2Kf_J;mM!$G$OJw5VQXsxG`pz3J>kueXW(R<=nAoZx09Z zJN&qeNx+tQ2OGKJX@drpz`B+BV^Ul6#}Ad|5Sz^ObYm#L!D2mh{z-)HYkxjk)-h?( z}4vLQ23dmH1+(j59lqrlU3xUsr%t zN4S6!OS7W7`1JM2&nuVI{fzq5u@Wmgm`4hc>~F&?=v}TNhKMm3CM#+$NEvzBp^i<| zmU77(p<@cm9sQ8u>m=!EaWFYmn@E%|v1-qlj6M&);cO*0GH?9AkN1gSkbLo)EYFip z7J`+I4$R0+DInl+Az@%Zke7jTTKU&~f8F{XHWA}pwY?62!2RD|0MD1dc+~|#O!|b< zu40|?yinvC8!zRz5-?YbT11l)cK9iOu{WmpJ=q|{g_$XZ!*0W6+679 zljB!wzwa?)Ypc~6Q|Cr76H>;^$Qy-L9gO|5f)L3~`svDY!%arU$Bg<@3bEhF(a~RQ zv(`CTljx1q1b)6ai$SOK4=Ef?{7pC;3@zORK1R~v6P&_n#eB-V-_-azFe3bW;phad zcYE*~QScI6?vErRp+G=gu)_O@oTt*56>MNa>Compf)dvQ)X8n*!SJK9dX+Dc@*fvw zD2q&(T}H#3yq<$6UrIj-<; z5qtM~9$LR!j9IjgBBBM%y+zlYK0E7lKxBa-er|g{7^2u|Xp&~MII4$wzu#$9GJQYq zAR#cZ&aw9HAx{YgK*KDGm#UrYYcRcTSJL{GGhB)DH`*jcQU^(kt$xGPUQdWvTAx}$9O-!gl zFMguXQ8l!Ur5qm56wQ%p^tvm2u{}p$U6Zb((P+U#&_f0OTK#oL=`3(wW{B3hEs+h3XG zuOwlf)70(0y+>nk*pSpIh6A2>MnQwW0kJ;XNX8%48vq_29%coE58NM4yuY4S=Rz{% zJQPsEp!InrU?`!TuhtZIJLbGJ!UlOji^6R_)`oo_N=|Z}ysen%ygNC2k9(e*;uAS5 z8*yhk(uPv_T}IDlXqxm~uD=`9SBV*1Ix z-SBwRl4^s3Y<&~WIcH6_1||M%X^nFQNM@}t&h?zm1ru8HJua?Kfux%+QcX z9NLPNO34zE+sln^lgIT&vqT_>BAOU2(q_}<1shZm(lOdEVjI|(_TGB)OY&f>H=Faf z+jUH;cJ+kMJ(8WtsOV3(jODFwR@pBFHbhCj|dEo^#dJ_r*hU?eR#l-{kU2Q5ne<@b4X)Q2-Eo+L&UK( zC>F3h_6J}mL|phv%)}a?GNXx$Vje?24Tey(+c}!~4&LnnP0!UI_4B%&?=)Z>ZSZiZ zSiPOBC*SCnM8W%rAn2WnftBcHC^F7(e1F-kCi@Gov66il@v%xKs=bla+C*=tTMdKdezoaPzEL-OatDjA2%G5$^^fo zo-FB(ZJvYJza`t+dMbvSNGc}!q_94eF|hzMqB$kULcX%-A}8k}N8r;9v9GUkwYzFP zBe`Dhuz{;zQe2JSetMixo{b*LNMV6s`i>ueF}(|GcZy0TpUElT!bK!U*wvy7=>E zQ{|($d!s!EoZ@dmdt&X)Ay*}FaInHBoIcc)tK^u*-0zTtX4}9ZK{0{foguXl5u9hFBhsY#u^R=fIHEzX_nCfPpj z3s)x=tDHJHF`@F^QIKv|7F&A^DD+)qRH<_%<=NZYV`1*~nN|G;Ks<5XZk&kWGDtN; z0BaD4X@nHlZ{knWhlxWYgysfD11IA$F*(Uz$|h|6FGzJu>!V-uONg?5(yn2$2K5yr z;t|~w$5zc?acL_mbqzb_8ofXWpN2Mg*0(y55vw%D*sP(BF}6!}xs>_@)g4E^0p zgxAw^Tx_W6ni8if+RnYLP3$ciABYfRetupkrA(Z2-k1iAqHc2EbkKlK3Ogsl0L2|lj~$!A9w8qlYFSVMWg`yj`eO28Nt?IyXY^~ zj8v#Me@n}peqRd?r%ssSw=JOP>-9XSgv-#*yf?aoT0I<~CdiP7g#>>FQB=qt$pFp& zx(7-}Y-NM513cJY$^f3h5j~nWEw0Y&#wUd95HdTLT&Xd_^(xl8mK`y1Khdbq2p4+H zY_SWlTMMC?Q}y&a2m+Hlcl)vE?hDHMM55;m=^e`27yP16yat zWP)#qw)~$(`1E!(f&(@B4R%NIj*?&G<4PlGU4{D}>JCPbW}nqWoTwcJlhEK=^D0cXhhXgjs`aQ&ZMD>6 zQ&Zh9c^Tz3raB-Su8$82)z&l<ud8ZT=tzmz4Wc?56dM6+%5rzc(acimUrJXv^ZD> zYBVGwflSU+4Wskz4!(zM78)Wqpei3Kio_ZQe9btcI{%AypC2ABV2TJ)H9yR6?vymb z26>8a3d5i-?Z)dT#7zL>~ zVVfq#XffpTc&A<}hO}c0M1H zanSC-S<5`s5Sq?2ggdyrjC`^H#xpmv_?4;A%N!kWV1yMX?bg55sxRT$Piej8Ay7>LF^gFtM$04y*_JwuO)w>kYlYz1Ss@#HKXUYs z@T4;Jfzp8n0g)gZTBR05Xm~SVo0`ehgAmwAFbY3_m8VLPCs++N=TV^+wnVYkW>2ce zpXOY-$q=r4VF#D*PBa}4F+yZnnGb~x!sXvgJX+xf@~6+3X~pPIdXaDbUYsZTu;Q## z{bLy^fUe;IDJH@8GCa5*0-r^T=FBukrIf4qT@{hqVTiOP_PaU100hP|2&k&jXr0euWw z$bP+eKx=8RO{PaEeSDaBuor1*3FF9fHPMNb#kiti35kiS47ca65XMTfCi!8dJuh6( z_%pwm!sa+hQ@=NwtwR1-pR~gTb*2}FoaFMlB1F1`?E5)(*h$41x>I9@0(l`AYobNK z!JWbN9RZr7AdU*?0E?^(l<87NUY?VP(g$&0GZK^F4n8i&Ota1zy-^4s(n+de@l^;K z37;^W(Fv^LHw%_IHd7mrX5SM>RL?$g?{E7@11gZkQu$EysGfG__@cYuo;>^Wa7MU( z_z76=Mt{1jtSmbSniYkoY3XxzA|zY@L$3A*t&KpuxIC&raQZ*~bVS_QT1qNH>QCv# zQi4L&wc!Iu$Q;gsLQ)T4ZrSm@?WmLCM$4p#AIo3?E2|@~C~E}h59J6ZlhQ~D%W=cm zIuV!wV<@VUL3#KCWZ&?6ilUMdNUQGqNx|a~rbjPm-QEy{xOd}z_6QSJqRn5c^qzI< zZW0g$j>9GoypIUM!N=?|2^x7(3Fj`#o;l>Qcau~`{g7eTuf`eIt;}wh>ka$Ek^NJ} zQ?H~tU=S`LXp?!T;6IDf=0s`_ZU8p7GZ$XLg=QJ}g_~=D7Qky!XA!WIDrjnQJDyBY zE0>%(gcY3>AW0v>RwJ>?33|uy}iBJNds~%*kF@Zqkbdn6w+$vA3P7hl2Vg2I4$$)hm^_SD@wT3BghquVj&&SdlEN1um zq!C%Du7S!U?Rh)N{EvxdXGgCx1PU}R64D~m-A^ed?TI7K-_-BQ2J}!B{k6a?I@qyz z{T_Mr9ErjIb zF(J#+8RY(Vn(HfPG7q#^!q>MCC3BVEmBns_VP;<2X&I=J^KK;Xl}~8YLCf1-&fc{* zScTg2YhMUuQ^^peM&CP0ixZ5;6J2$Z}PMuktqpbaOp| zXFXzi5J41oR904Yutxl|6uMji@Z)ZGLFFu2J?DyS z1l3Pe)Tm?RdnDnEk7vI$TsU@^M&`jVWb4-aua}*q+6eqI$f;Lk?bp84^}Uy0HCU&N z%)|24DUtNgfH8O4%auzfSnYbX>XwH5i~z(3md9A(S%@uEUq2%nUat2uc1yZF8X`2a z&5${AtXE=6>phZ^hZB4&*Fd*k+TSj~blDXG5$+Nplfd%XHHj!u{oeI{(WT1+d^%n# zm(7K2FchDjZUJo{q(ylbOu#ov9}|Vc4wI;tRSQWgjEA2m?jvPs0amvMbC?RqPw@CW zoYv|LkwQ;MJ)WSa#UK4(OHdC-V@FZS3EZiuW0Ct92;i8<@WfsiNd9YHkdlOAa|JW! zU)b6OvJ@cBIp5Z-S+hUx^54(zNlUr%^3Q>Lhw^VG z4VYH{z>O^nBgmuowbTPY|9N45h|YW$F^5wE0)eDAsX zISLoDS7{^gZnUY1b-gbh`tXvq^6jbcmX$sJ9^ABIlDy^J18tL%P7on?-znvRma(2x zkJS;hiU?a*QG34q5`FPA;5=KAc+eoY_uA>e^)_-hj=2>S3uVxVGt|{MBx}6CwJEAf z|4S(S6DHLl!*fiGESLA;mWogk3?DZmvLr&%4rxN5uk$j|*ij!g*W+Fb-@ZVjLS0fJ zhR}cF?)zrj%Yv<8EQuvCkh>mfTwEg~Pwom=JXS*>-N+g*uA+;}7q^r(^WGRpwTvr{ zgK9xRf#aEaEXAFsOv5VTov%FQ_l=(R;Vj!{XR5&``qK7dCL;w6(^)6Hhj+`&kTUm$ z+xzR|wG5+EF-JB&1nCaH&!t!!uL^RH zs+Jpd7cdNS6QuW zo&2o>oR4T>j7w?l0ceTuK^r{>qK=?RJvi{zz0BN39r(LMC25ti7|B7cLgO*Pq9O;y zlC3j*tK4IBp=^P$Qd@H5&{T4^=X|zcaT+b&=nm8He~BA4^0b5CEJ@j5C}EAPZZfc8 zydQ3th8*R50k0^RdHQ~%H+b9nagPk-h9PiZs;Wd8AU0?|kwiii%@fnRi=6~? z4=@gkT!vnk*oq|Jo+#!E+gv9f6LaNFOiVo&dgg94?oT+Ggx4v@mVHESz93f0^@$my zu#_j#=I5_+TphdF+K66!qTjp*P5G%wY-s&9BL>>v9-F@ROxx?uj)9&IO$H{?!$r&~ zXj-ufFQ~Mz5$Vvya`l-Q`^b#JQ84blv|iJP8FSgGs=#IXG9*z~&+g0vA*(M6ImSM& zlli$B2wSp@mJAVn=P*r6%MgWpr|cu<=3q*cPkxhs-EKtXpK%crFMv7<;c_nA*h;4ybfdEGgy-~WS& z#63UvbR82pxB&-y?LQJyxO?x4?nKJvOJwNGo`qE|I6D~-msUpFv>H5La(3R?IDB`y zxwqlb60S*bW*eNX8dz6ngdo_fK#|6pb``nzFCdvPuYd37*n0XcRz;);P7>Ua0Z4WKvMi@iibe5Kgysr?MG-!t9^3(WBw4^ zo7w#RM^V-5!$0dIO?GQ%u05^s;}ujADmpMFmmWwi`@=OSO|E~q^k7!R-g1hl+dnJ7 zKBV*g^%lN7v}sM@<7z9SF~=}r<3W%TYe!7C@eszDPRY`MKg6YjM!NDhIW%lP1vdrj+t()DY>WIoZQiSS2v14RFZ zJ=-{TZ(+ElW195!gv^-BnLaxCZDSH2IaXtltAYzhsE!TE0k?S$f2roV=zcY?8~l+u zp_0Ne!Tq`eQbhKSwID5aez3_w_}f0nWtPMuKWD0;j9c{Px4CuZKGO)Iv_K4C*61AE z`jlbs|I4&E4kJ$zvblNq);RfQoOEkM!3*`%vXNo5SRj0+5elTt`_vsSM{(lw!RZ$- zh*l4U%C_8#G1BkCIH@E6EuuHRLocC5#24}rM)YCYb^2U_c zR>Eu@LIi7}y_X1<4PPFhQ=g&NsksHR%4L)=MRS%sKmsdC`J44y*hWNdt=*_fIwxKn z>?>s?o25NauVPiKz|dChnSR6V7RFcEOr?Qmh;?7*{$Dy>eJt%WQ$PEzGUs|f>eL%> zohp#vw@vO6FY>I~&I@>}k)nNUOK7pjTbs2xv@v11FVg-CWwT0rHuZbozcRVOedzCS zDrI}%XJOXVH)PyC@$1*mz8t&fB`0`Qu8hkBc8rD6cU1esg@uVny!?yen+R?rr%d5Y?Y^18Hu*sN$xLHyBuY;7XMB7b6i5Hzj75brd%NbhwLBfM| z3fqs4D>U>K5{Yh2Snt4Fow^bnE0ah5E+eV8wZSQ^ad~3lE$V>N3QBWzisYtkP+(x* zcSlwObp5RNUuxwJ?#<5bnrmFYOGDe4`%mR@Mrv+g83zwr^H(Ag={TPD!r-JRtG%^9 z@5c|6ezqV$KhD0b0JJC5_+^U{Q&;WgC)_5CAGXXW|G1uBDVV8v2rNvCwS2{Jn2w&< z{1;dkA`u{gF@|kk3YzDwBmYWS3W;E(y1ICWrO!O9jg76-Bqt@>_l6XZSn=ZleK}Cq zm;q`br3S1|Orofau2hl*SdYTIwof1ZNM4k@@Ss)GHi*wMMPC>^%-Xm+JRY%DhHYQmDpOej?N4dNTR`VVY~c zCLki4CUibDX22K7L-#IRu~mb!RjizL1%<^L9KZG6J4uM;!o;o<6WCLk$is8v)u`PZ zb`VVarG}a%yUn}*W%m64kJ-b~n>K7rf|ccNt~X!TF~VQK;|Wi9{QUs8cxfe^D#;jl z){6k6wHxL8>m=z>t*Bvy_EtG+(rLoC;`v|Q1&)cRmIw55{9^VR-%$08K${r9(c>PN zT88;p^@}>p*`A#$Y$ zkf-E1Cgi{4M8_d?kVjxtFgJwv`~blJeq8-wC#RjmM~;1xX8+sht+_WWaH;?_qRiT> zLrA~T&adM&w(6ZOMdy@#)x{~g>Qk05)BNa0@h8p`L4WR)8smgye5tT)v3P3H1y_NM z9BY2@_|19-AkTDlUO_@d73`Z&xz^1un5f1rP>Wy~d3fz{YCp)Vp{19Oxt~ef-MIzjj~U#YdIFo9v#iFTVGRttj=um4=_2 zQCBZ{mQM{huJWi5XuIrr=`{Mc_*7p8F`5%$+Pjq%K7Je}=2E5$hp`nto+B`+=xwToBBd`qE-WZQcDvqW8usFgi#aBkmblhL+1i&lmzCC-RD1ahigL3O zg1}#j+lG03goXZz5=GLI!|Yb?aW|B+F@8%au4FkME2224y$)Fq7{*IUTHb9d=fggWN$(gvB?yc%ovHX9ac$O(=whx{T?E=*ydVqDZyhMgdRfRyxE-;yF?XV_>X z-u!n~U%i4_qF_kneqd!TUoC3)!XMu_7{}ViP8*@7OiN*1IPBuySux)6WlepdxE)PJUzXkax$Wba5!)vARvh1VnPZaAYcw4AfOsBV8AAOzbL!16p3Y;g$INI zp?S;37Y2l1&IaqxkXZ8CM$>1$2PPj7un907qJtChu6;GNly0h5VUVbLMXos;Uz>N?Xz z80yi4Hr7n}pMzsf-ydz6eY{y1JQZi}nGXKO1p>mM$S_Bb1#*QK!BV3GA={KXLysYO zhTwOOu4YY6K>=|y4q`~O6WZI`fIyNBEp`Z&T;0@_k&6dX-0j^grw>9E4c-O)vMs~{ z($(cfkp47Gt9e|39eSnAjk}) zThP|$8wY*MVtk+1vJSpoJ`6E-_IwZ~5cCgF2gIhu*tSri!hvzoNU+8=he}F@e1R4s5332ta_BE46kb>tc(I_-WIE{E%|LZ z&0N=%=VCu@$cpih6sBS@*T!1jAmwy*qlEMgsdbPIFFA8ZMv6VU$-@!f=Fs-^X7A#t ztHIsT#re_W0{;y6f)Ei4=?I||ZVWcGUtbXMd=mnvM?lTl#Z_oP+#|oAa*<-GICamN z@xF$!$a3r37Uh=ccpIlX+m9zLL4(u#{ruJN^51ckZpnBGy;Db^G+H`@}f`o z;FjmT`K#G~H(fInYtpOSw<|ciO0P4YFu&6w<%<5ibQ-ChIi^|Sb^|rRu(&X(bWYcf z{raa?xFxanT64J!IrZ2VUnBD>v#(NgH6YrIM^1LQDB(|@=ar}SvnjZ7b_p+=w>Z`e z!3sg?i(6c=m=-}L9&yA_^b3yrIjxo~$z$06@_1Ru5iT=|RIYK%k}kBYT{V4_gFdo#7iA(JMZFk{qw}l8vl=P(RSZ zxMQz<>WR+?%PktGO3%7hmgdzh*Qo-n|CO9jwWq_>sb68}ISe(JT_0N#dX8_&^uV+E ztTJ3RM`#&O7_BgDfD$yFxXW-7vr_Vcj+iY}y1Ctu61CT5y<15E>+Bb~Q;s&?QU z`}{2Hins2PM-5A3Z);gCrZ)}|Xq3Mcf56obvH-3))MoJ@l4Mcc!u>*oPT8`CC1`&JA9QnDVoW3i~mXYZjH(v4nhm z7+jAeYnE?DWft|l!1U0}dS7XO^9t!8a(|7vnlYcvf`!w&uM10G%jBbVsYwvCyEAkD z$_3V7jeNLh5(KqlndPA>YfZyJL%I{oO%YxKzDl$z=Vk^H$7nW%Es`CIbE>1~-<@5$ z4c=Y(9qh2g!Iz8D3#7}~%lm!J9n8P<8+`b3XnWWsSj;#XgquNI-H1WPTgR|iJw??K zHf1n{A(io_XEHsuW?xD_Vz8}mD$dWbzRQBn?zpAA(tVV=+#ZO*j`bA! zK4R$MQEI|^MLwK{MEUaA9G!srD-ong9n_~63uLYtB;UBZBnlBkg$;z}J7~2$Tfe zUo?kwH8i0A~VUgQkr9|Ups>w6)xNaI%69MfbrwoE@9K?Ma( zilB>j;GjxBNV$)2MmMCf5t`S2uePW*Yq0uhT5DP3ZvEQ*X!5rWF_aQ9=aY$IW2r#iozo;8DN2wNq$gMSWT5(ck>0@artC3j|LsqYq^c=jG$ zsRIyy>|;aQ#g{P6;*1oA6iKHDbYhzxm<6{qE*%HU6LEjDk=nUi5AF_Qj$rV%?dpK)4KiaV<7yE+LQZ_k#t9gwq}>UenzKC9Gp*X^6xOAaqV??<6(V-u$H(cV&f^D-?6 zqG5+(l@Vm8e0uEQVd7E!a@tm1i`6#M((^QIF>69=$79^P+c-(KOlC{%tm*A;W%Awn zH73Y8nq3a$pi8wHiBT{v2J|mjpkT=a&mPMR^0SZ}aR5pS44V+%C&I~qJKsJc#2E5e zqhIO?>_ddgK^kO=pSdLGB%+81<5Y7ezl&ZO!ok5Ihp8s4BotAK7Dp5hm2i}dE57EQ z|F{=07he|Mm1yM8?&|87>;68(KAP~0X5=Y~)F(0P8hao$(yt!+B~rWpI`sg1RP z!FGRZx2-9@QSVT$D$}W!C|j!Hs=O9-=TH_J&LXuBYK_@9uU@8rD}y8Ea@m zj|C?B8!6k8a}^%xsI`B~h<>}%J#4PbzTOOSk@-q@TCu`?^3=xF6G(cCcGBslcV|=0 zUNCdONZ;nqtfEuaqpCSi(e~F>`qudISfkf%`t(+*A_ch?A4hU4E#Yi zgb)&}pj!+V8uYe6{e;PP@b16~A(u}IACyDH*{jq(GsX5&P%6=s21{ko_(q6TitG3k z@(1UJqG6y#Cg3F0D`_a57Sk4se(y2e|1P=ju@|^+f=z`z{$-ItvR1Boq}oZ}Y*Atn zp2Nz1$9{Fot531dJ)AzBPm)NKLAQ91KhP#pEPT&r;jWtn_9sbjLetNrh)9dGA5zV3 z_vpeXq$ccZS0%P(T!daZH8}+(ndMC7>*29avCLb_ikNjy_Sc35NdhYOtVa#% zH|0od_<@;28ME3;D>6;=E`=`VZkP{n_eRjwP&%-MFydX$1JEczz0o2w!V=j-ks^aa zeNh9cee+p~62BzBaeK3xUK_|=+>sW|+zh9wN=)B>q0`X}Set*q_2V$Hj#`^)%}j1o z*Yhsgq#Na-XE&fhhK*j5xRZc2qTL3Q&82dq?$0Jw@hqG3iq)*UnL3%hWRr5dYb3-) z!>M9>Hgj@)ElljB-S71XHrgGwij7uvQ*n#Ft?yn78TH>0%nn)DD4Fc4*|!}G9iW^% zH7Q&+DcPOzZW_i@0e$zm}P9m!6t_ zs41iAs@c2jv23+`zxBLD6*J6Y@=Ty8%QB53`7^y=!i z^wqmDr_1I}s(~EgER$@Z_X$huOSdW}anBM6o%mBqWA=}8!nOd%dA2}CHV z-V~^Twm&X{)L6X@F-@JVp^y>#dL9eZ3v&<1)_(BQr2EyqPq6fU-MYLqL-PYK(J!tZ zO^LJ-$X%TCU;dY#;auC5-?{c~9bS(2RtcN%gOqiE*TL4lHhCxKEBKE-dE zs|3mi=f4S|KmnNmCjng$s1UrY#I=(({ycs8lEL$m8cWHIME?OPx(}Y`l{ptdXx#7qO`p{ z;B42LY?a>%DGw{3AO``9PAV)8ned@MR~YRp8si;2AyEzmQE@z1pLaou7x{YN6u_tz~-OluX@oDdiZ|9>x{4>?U2 z?(hHegISUB+d4AIsfhmj7){j+TFeLH?bS63K~ZT1HFWUr*=KX;6a+TrzgJT#NdN38 zzdHWEXF08V{Qp^y4K=5!1)HMm^FIN?s5`;`t-WpxhNj8}ZshpyncsHX`F$}Th!rWH z%>(0{@~Hn7_W{;^LV8~;#wQ(CPHPn*VK(;P`u&M(|0e%v!vq>umhM~2`ESF(=D7a% z=5ieDJ>O>RLIFKK?c@r(QRKS_+4w82{=K-?SUMP6OBCnjdEVu@#gpKbJo{&~1BPLn z!*82|gj_RaqevVDf~`RKpgd7&=MxIESp`;0DrDH$xRKPY2&;Tr=fSs@a3u6Db|5Dm35)lpg1Q>!DYVO*A*gvotHj@uEV@cl*F z>$B`os86ob@kAi}d0sc?1#j;XB5oX)bCkGPjHn1_`A|Xz9wrKk>$*>=sbVlTmN;0T zRM#jU1AOzXMHEC^Ab)5RdrcW-Rht2~JFDF?E8C6MYC(9ZH0~jseO38fL7&Z#B>leE zqqI(o!#b{Y*T-4wRk(X8ubagXd@iEY+{nEmB@ui+y67kw_e<%7kDO-IWIcvEjHb;)IH)7p^^0`8C|K$OG z=l~N9t=XHeT!93#wr(?f?h_5^A zzvJUuoaZal<6kC4^>w{MvFb$fmTLq%?a3v&ixKx$HFr+4?|YGV7SvvMvlNv|1GurU z<}DX;isgGd%~iE_?!YLXlW4uD5+6dzZ4?!}>@_q7$g{DmSL7P4PuH63(8d9S;02}o zPUW#<5es1f`#p(PGMxdmCe6A-+~Y5bq6SXS!}B954zo|t*T|`XNJ-#8>n6WzPT3(U zsx=ygUj?azF3Q2pk~Nqmvf3K#m}GZ9jHK`pil;D3f1mtx9LbiG@SDetKPKOdu|AZ6 zL{3SCk#{eW?L!w@`T5iR)$e!|)}s6_<5@y>BID{8grj-cUlt|Mpb-q@&POSXCNcx% z>Lt$)q?!Xsk%Q5BE<3rx2Hg?O_O_vGALg#v;fp%%jqT<-mQPsbn7(tJ z$$mp%D->0&5Y2N#V5Y{fni7SwqpuKsw$w-z=5^@vr*D&!Fe%c7#i-;TViIYvJ-0;o zt8@e|+UZ>b;X)X)xPoP+)(n(IyK=sg#>E?2tzN(*^nIhXSo8q}k15q|{+NB&pQBwj zAX{;Bx{8}zsr!&8%CtKIt6NXy@%y7kkk_U312iGlST?3)_gUmh8^=+)wLs?!js_Cy zoTH@_sjuJXbu+bv?_bchddnB{VD!RdvJS8531%-hC$W_e=W2aGR>EuD9Dk*p51|{y zlLfWAKkK@HmPPitCnQrBt<_W8Ob|V4syH8zNVyt!R&!HvQ9R+YyHrcjsn%PDS936; zWasu{pKXTwxoUK@J)93RT1B{Q6v(ajX2j|@H$4&${1O!0E|4HrDU_oaN@z~Ez@IV; zq#pLuFX!`v!;#7O^|T2;(jP_@Rhm$5PEF|XfvuR&t}i1YKo{g?wUtY={F^pg*c~K< z9bhq11TNMjW5PZB3wXLWApR}f#k)9*OWhyE# zPlD1%iN^uq*%r)t_(lIO8&#}-UU=L&6Iwi0kfeHB3y7@A;wgziv#~rA2V9hq`O3>x zPpw$XJ|JiX+gA!;JX!S!7(E@H(rblLC&kC3^cj#6LxB$W6=A8UIYD6GoMO`V%l3M| z>es|&YaxZJs2v|&1V-|R4OT&T7pvni6h_S-(C<81Gp zK_pZtQVSFBYIJl*0~xj)SwdpHdIxOkEQYeu$4lAKXg-4-^b)!0naMm9{*U=%^-Z5x zwl2qG)h$ysXP+A8nYMD2B)&kGxy)qh#Vkx2{; zQU>tJ^^ip$XOu25?OtE-33++Nidm%=ln~Gx#Zm$fxiDLIkTjU>v8Nl&a)<$3YL^-@ z@{i_L`0Wh4rH@<4hY1sq@IuRzoC`z0x_SJl!t~akn=~vgJEOI2eEUT)HgK>j0L6hSW&g9(0p_pW6#p4QU);V6P_gjRk z4=TYy0WG-lzEMA}H41^nV-zS`dDy>J z8-;-EXJFs4l_#>i^9lO8N2Qa#s>J zAU{Kas0{q&B@7OIhQ2)jkt0{Fl+c|f$J={!DDln+WKodEkG9o18|K63-rOcmJX8@v zzkz63eAW?%Lkv#r4lkax-hAu3rFzQe$H87ZWeTOybkV2lWIb8UK6HY#&EZ6*Lx&+K z#2&9F6h66pf-gYGmFh|iF8pKfy_sQ7%om+&HdeHw6**tIS})C5>9QNe<5W)NXGx{O z2NSZ)cwC1rfUtwlNRgHex{<*N?fk*dS#YIYsm3nfkOI*1$BCO0BEshAR-`RQTuCY?&U?z{517?(VSl^+!_y8ftjB zp5+#T)v?Sp>rQm1bv-GUzhZ|Z=?qDvz4y7&By@qKl2JNp4z!i6P6@x*KT>dmq0RRg zjwZoHf@u8?XDZAsOk=G3ej6t&3~Shyl*$pUpxBy)(F;?48n}jl;0%p~i*a{Q)_;cN zD#;7vr-MsfUjtAgN$CP*v9Xz-;;17jVQEx!Y_u58r=DyZuYIVb)uTc7xqoi=7PeMC z<}~djpY>g^wR&dnXZvVc{C5Q z7NjjP86d#M@XG_R9Rt#_VL!y@e2z9HzelgiXt+d?CD77LJrF`&nfJ^mFAeKI7%vPU zX^lSQuHwLO1zVs;4BpUf=>vf+(hY}**@me0|!j5>LoDoNwA zVL1Ql5(_L-D=lHliXaF5c!mKWd}~()f_d2tskoIqXx0>saO#!)Rl{_hR^v5mJZrFJ zC9I=*3l3mspWk-o(};SeZ7bbo)ANm4NU5|$PIIi;;fiFGUHS6KwpjpMy*?_>VJ&jn zY9VH-vC8G5!Rgv8BQUNW?ssY$t5pQHqCW9Q3&jj*nN!e?$JLF@cpuphz=Y4%+n6m^ z2}yazP>B?WNAl@cEqQz%<#2GG-!{QaTs>$B_}HiT?ufSXqWcURZ6EjROmJ^b>UW6X z5l3sKX@}iP3g>LF$bcO|f^|?=cAPn^dPNro1SDYURC92m5g0(S)Hg_*&*WGhINg=U z02Ct}Moz1aAW6PRoc&ezB9UpxCua{QQearA)+;RS@116_Gmhg@%93<1wNjnTMM?F} z<7s3v-Qr5ER7I4yOkvuR-Ucb44tjt-!O5=W{AO=+5jnUH-&Eb$oXaM3$(8M&lMPLt zSbc{7!(zt7DC)j_x@LCkQt!|^XAoEA2^EPS-Uwic)k5hOzSkMcMT4m5c|u+(qw9KW zu+wBfKo-#E!*7J*JasS76y~8VqneSaik;&W%?h3`z+UVA6-zJjHCtoI=J1Qsd zN$VCpPHwkToUc&6AXzKQ*BGqleBI!C!Lr|#`PV1Mm;5~c81NK>x-yqMNnIS#m+$2zJgEU_G`=WfMQljM?L3Yc}ZF=rAhc zn1%o83*~Y-K3KAId253+)5v16*|oVNE<`v6_&^9UwJJ-k#Bo`x_n_IvuTn>I2iHXu z@qvGn@?(HvCv|fAPr9GT+Lok_DYP>a+?Gj41yA&p{CK9-tBLF3`v6tx87E)GwEweo zUG6d8;KTIpkCv*R)>;Tw0geCB=Pdp%-!2z{Mz~631}X4Q8DlA7hlzL%Nd1l!El5mE zaqlI9WZ1h2KQdjfkv8Z5__r?*(QIj@mMp^GKPLx#!gG`Hl1%(RnhzHb(qGSDT1Wd% z*0YI#*b+K8l1}m;o2QU^i{kmC4etd94?m#BKu*A9{k~QX15gBjk7r%}^xxn!SRl}3 zyNtAn|9@E6r|eQok*S_+x2XLAf*`wD+&l3L|F-=u^25m1c4Qnt+*mUBGld7{cxiCZfX zr2i@@)L=igD)hcVBNK2hw7Fi&=ZO>)6{U|F!yNyPC+B;)+d6W1k^JWol`s=_?ZGk< z5<^_4ZQ$wXH4{pd(sapXvu0uz+e3*3Vo?7h0WoOUp*GFq&9VDVs)^NVizC|*RY3O! zdA5gLZxEu2Edrp-Hx>ARgW+Lxz!zxLn?d=5iX5y`lzkWoX0uvpa=SJwV~2XTA2DD@ zg94jGdB{S-!or>p`$cnk-K=aCauf_G>1kit*^)V1mhH|86y*PM=*IGA)I zMLx6c>M7i0eQEnwsPc7(wHdqCA@K4llFhEv?c^N@W<;_`H*OAkZt;G78HmK?k}@Ls zSKykktA9q)lRWGTMa`t7w)<@QD~6a(B-+yaFU!09(I`3F2kXA(%xNu-hdLb|*jrsl zakTQ6JEORa1_5GnuiQ5coKgcR3@e{H&IfRj6tUl9)A|;~_h!y#uWNF0`R z(8>O*148d7P;4g+NYwWu@Q4GURV|9f7wlj%9c!s5d16FrL?!M|#$? zzj7$?@2BGt1VTHHN8lJwCM^<$w@-t5(w;@B!>v75N^}(aB_9a9w#yLg2Kwg?nT~ghNvB`McB|f zZ5TN6AoRRK;g;_k7%&z+`}dVoz}QB6FLAk?EC3F(!PTRWy+?QRcfH9mxa1}lFygz7 zV8Uv#Ql%0FF-Y{B=V)&`C`qj9(1es_%3a*3TQ28lWy3=B*ri(9?M zpdarrlgpW|4OO*D2Y=J;?rbBA$DK~M18)~pPra7ud8|gp_}!q-Ai%l0+F~7Ci|-yR#?0DJ9`o4VpBSlOOy;O-P&JPn(Y@9!_W1lI-sDSGGTgpgqinWx_JF?g>Em!jI-7MA94acRJxxEt``Hu70B3*i z!A~xe@qMA1cpx9elLHp;D$Bscgu1L#rQN#I^WzmT zfI#B4r^fEMcM){Nd^X*5ku8BB1{{x*3gnKQprGK!MCZ5Pabp(@S^w!W=MH5ZfD1f| zE|=aX&AVFcSF+;bzPd$^X8wWi4$&3~IK-o;ff|-pnMy@O1OjHdeS^i~REOu|qh;v! zzd-^24Uz*QYdWW6DZEjCt$w*hPi6Z5F{FPM5!nndk4RiLC%}h~7VDTy#vBAC%l+QZ z6&FZQ3p}!>uP@KEnhg%dodyaRW1pf3`E)8YSZ;p~YP|b8cM1?MZn^R9RB<>RitAdc zm(jftgAs9eXuvn^S5OXfY2yD43N~oe{iJ>240;k){&EtKs?$r;6zCNUU&vp%J#fbXLAnucb|a9393

e0TeSqitJOraLh>%|36j^8Du>mJ_N7$LVS&0J5$YZ zL!-Drx0ewp!AYx5|N9NJ_P^61GXM>KivhCL{Es4m!y67j8O+kWgXm~Eez@rwBo*8W zUi*OnYCxN|fr)zpy?GMpVXYlsHfL){-X7%gauWswvP z`S(w2>C&98j)k}ngmU25Tmqtq)xlP`*W!E2gQ;A#GKEI9aq`*9*r&6GW-H(WLI5vf z6$G!nF4$3=NXU(raJ<-sb6FIUtE!(6{U6(i30UNHPQ!z82uNMLmJZnEpk|Cote`aE}XcFkd;>mHhmG-M+cGsah(>t7!4>#3TiS z;Npqh|Bnj*K7fmWqWr(0BeTf_=<)lJ$-r9le;Wbx|9^mHCLyeSuHLYQEv972+VajWY<~9`@}sp z2=oJ9@8+86v^#xcy(QzMUJJeoPq#LNoLzQYmPtSfnyv!wRf|A5BGROGfk?3W_r;^I zZCml?IjoJ@@#5?j=uqI=_j0Mr5(usIJ5>z|Lji~DF_u{~d0CgdIURezZbnvFV2feI zCr2P?bST1Qu1ZHK*ENq**mN(k+b*C?JPI(#=>$IwtAL5=e}}PyDi|6fOgi!X*Bj*b z)_QFzj*RVhENvgDSKeWra@b@WqNi#BwzjI(t<}Waq+L7|!~0VjsWg~>uO^UUB{7NO z@Th3*xh#we_O>Mf6LPuK0{23?<61q{m!Xy6{GjcCp|oV6BP)S?der`rYVpfg4U35w z*`+JHRsdbZ#>eL>{$f3#MLYeRlELDX zA#3$N?mTqAVz#XvER~xDrwV-<9JHDBMVbM(eM>=l)=ws_T}QDQQCj@K?)yL2t}7X` zo7484@$|%MUCuf~!7<&&wAs&CW<$eRE3L7g<9^)V>UCG`94~O6ZzPTZzz4hKYmnap zMZo^`cShB23g<0{YLR<6XDfUn&|M^z|ARY6vI^4LB=44OZxU zmOJUK$->hU!A8wB@m+bFj5uInL5N2Ab=~){4v^~(R1bRMj_P3vSX^#?UYMIDZ! z&YHJ4WS<rFzY~N{RKe262`;B?`LN<#C-uf zH^-Hz1SR(mA%aUYYFPL-()ofuO`bC!)h#{GYO+|NVb}TsXhTA5T5U_ceJoH3;WFdL zTRtkP8u=;mS}MedCF@qI&KHOtmCCc?qVUxExVd?9S#tnoD+HZFzpDjCISkC7+jHpv z^5K~pz4Yy!ufO^PqqKAR%7kB8sHv@PPm%qkY-@EFjUf09Bt?VWFN+FN5~aRo)W^_` zV?l{|;eIX>K#d-~awQ|fxPN;n|G-b!gs-ah`f#vZK{NTgGzJ-00+rwoI`R0QdBxe5 zN*)%M+dU%bn7-Zo4$bu;tTMxAF$L)RRiJ zR=xIdI8@hs7IJz4B7z2x@Y{F0(Hhvf8l9h4y>0d(d9_4B`kYn?D@o*SfAPL-{lMSJ zWN%8Q{9w?PK_W1Qf{b;4?=2xkpp^5|agnUXKu^enPM2NS-&#)QA|XLD@anVYwdL0L zuZDWZ5<%AKE>byGN<3pP$y+SZoPrc*L1i1_CZ#xP|k z(kx5adTrDuN8>X>mEGNav$LoTG$F!Zc@8A~j$ph+_O#7md%l)j8a17%^YKaC`6%#yP%~x%4lUdknf8p! zwPaw1U08yIUQ>qOLrm}+_1RIU+XsX0@q@`QdLsLiCP?Ul55q-gLN;HB>+k9eSQNz{ z#pb(w{jzsy|pfn3+kFeZCRZqLx6EIZTPsaB3B$ zxa&t=r4}{!9hZTH`h#d;R9rX%?tJxu-%-lI1U;#=QiSJ|XT=F#aD|JRJ(pX)7&FbP zcfC$45~);lE9`WLpkInXZT23N-K+SR@mcM!u^9wH4r7asC()SfFJJDpJYi!;LWv>q z=0f0Bk@Z`2XBU6{G{eL!2)Lwxk~9y8AQwTvCWJ%~_|qE0ZnX%qoB8->b;M5cquJj& zu|oeTqBrS8=RC#db-zXa1;?eK-cV`6oQW&L#kx^AF2e^w?*bk#rOoqvaT{r;n+&rP z9_Fa@vzc-&7CgE??lJUQ&!ocpdXqcp>C@7Q$)cQAux;Y#5!rqW*4{r40odpM^|?7n z^~>EL?T zPSmZ*KdC#TrQA+v-R)##WYX+u6PHMjte)E%vF`^{Ut}ko9n<9)=~53LJ?5St%JkYV zkjy>*HsBY)>78_i!GCaA9xxz!^>X%6Q_RnsulRI(kS}c0fbb#XXKJyu8~lN(nE|~f zcCo1Ra2OnOGJ@SaOvvjZD;jA>M;KoD=~hdA3d~LrCLh&1G{`U8f4xM&!yUL56S@5* zePuJl#^({L#jB*`r+wEfKaZbKBoQuV5Dw-|}HP`~_X#0PP^ne7ZCv*0Gc9B(u{r*}f zj>N8gR2gB9UkG3X16HOI zJfm>^?h8E>M5)04o0<)Kz>=T1m_S0;@pCf%S95oPspJaCG?l#P0fR}PxOi(XeS;U8 zW=t#JDIUoaAxUx#4a1iT1_2T{bu=VULj;`0r=W+c?M6%w8#0kDZ<_)c2VjkWr@f;j zJN*fnpN}PMW1hh4;p z0dK4?Y`uc!>v^gxWu6SjGmRE`8`#C)?O8G~>BZmm7q4+DZG^y6Pb}It@vR35^1uiDX9EWaHBrVHxD`DSq-9B zg3^~;y^_n@rDjlQ^tRV| zC`qFhCMs%X&nKx_je1l<6_y-<%wNsaUlJxBZ?O7bxa{V0@*Ka9zf-Rs6)V?i(Zz*P zpGG|jWp$<4|0&jIGgc5C&A5SY}Z+7S7-7ACNN!aU-I-4 z)SRREFi}?&X%waVu^XBzwee>L7^9H(;HovjaYHi_6F}d8JP>I#Wa%OIWY48P!5WA%p1Mb&OU!44< z;tj&z&7UGwk5~LZ%{-<~Nk$Y0&Q}#9bLB+qE)&K(EeGIp=1Mzevpo}MJi;q2L8k@9 z*~E`Sl^4tt>?*#GZ1bLzXL=c2mcQd_^{PLK`T(V!Qta+VmhqVBUH}6?G7OH?RQXnnCOCrZ*YMi?Edfpc1vG?+tHl- z6J`!4BM+Wgb4lsc1LB7!7*yyec3;mA-Xi^IE&qc;mfOa-M6Lx>>4jQ1)7?8lrAPi8wKOkd#K)zsO{L z?K{(kWXNBJq#&YmUEDPgGHe=qSX0(lSZ%mAJw1x4+&T|z<9Scf;}qq)CT2VN@VJ-} zL}IX0R4CG?ZVI_)Ov@ z)Th{dBv7x0w2Vr40_bWXPm#L6DB&l%@r{HkQH|?lEiyv6rV}f}^shCILcVnY0ld4diE zU;HO1DZV+ZP~gyRP|^?lNPv2JQlHF%9a*!Rc&~k!IviEK|04uD9Vkp_>*8ZVvAI8d z6bq-!yi=3pv4_)nc_hz_nO# zhl@c?qCkqdw5fk$*ml}qHj`}`?~7i=m9cdX2Wk{AKjW&@LQHH3bh>Y%FKN|uB4T}# zu9)q?uGdlAI^UVPgI^=qGwBVzdvo<$C^Y&M*&FaYU`cZ#2y`o1H#Nre=JYsxE!=)+ zoH&ceIBf)>j@~*Qc#1Q}A8SCNo}BW9B|FWuL7Wmja>HFYQRx^x91NG*Q+;J8Y8Q5N^2*C(ZordoS=xU5e z+hD$ID~DZo_EXcou97qLKtESef3OlK(NgKizJx{+&x~G)?scJt^;+jfeeWT2DNJI{ zMvHcnMZ4-WzZd?PZ==jG;09`MT)~BhtV0Z2w^a2vZioBv{K}Gvm7}tE+4!Y{N@yx{ zkI0m8Wy?OhCvY-nR#qV<+bw9qB;Sf5VwG4iq|w-7K;h4sqv@=%a&J=E_zBK$EUoh@e)YpPFE2tnNJrIJ=DjD&GF0B-{eR)x>~E=vun_f-&EJ6-Dz5M4Q7>r~eD$(uT@QBO3&&{hGEQ%Gs|5PY+>?YR;UPNP1qyNu&7BHH|Z z6esfLD>TkJJ2dB-jaDGLIs3-Apd_shH;Pexzm6^asUrMTZB*-pdY~MmKt(p2KsfF4 zNcx7cKfe^vwJ&lck(~ur&@!L?=QzC~y3;@>MUWXH=NWSJ3z>X`fw-xc7Ob z_>+m^=31oL-WL0vWc^`cfc4@^|B?@4*4=qf3FEpu()^Rg48NGp+rk~LZ~Vru;?v{m zS2r&C(x+`F#x)Dm8l1pH<&lbu2}C>IjfmAMg<>_V`YOE*-mK8UdwqA>K!H*X49#jd zE8{;>rE_GhYPtx{?_fy}80{KXP%CZtiIqVIBO~PGEE30eC*KLUerOc_Tvk|AomRTCa0Dx>!*#R)b{N3)bWFDB%P2y@Q8P|csDP#)OV!=LZP zg%L)*v$(55u@+hQ-Rd^s>%{{>HK)_0Fz0J^Oy);cvFM_sLA-4qQC>zn_jScZXI78S@$?CNoO zwB1fAZG;STwI3K>PJAp?TNX_VYTBgkST?a3xQi~fu%>gJ#<6TXI7ZHgQr4V8?s;j* zN&FhAm4=XUwi-fW|Fos#%-aD&LbCqp6Bt)m4xhBSuel6|3JMz8oA`n*6wFM>VHxfA z>FdWnP@>sFW_csMv#H0mrGYyKSEq|Mk@V~Zb&P=Xh+=bW0I4;9L=Qy^J(aYBGh5j)8pKZfWpY$z^jeTR^J6GL}p}L1jir-r0 z7aH=KhHIIZR45Vm(bDlCLu#pV#-IwOG#gprW>>4gogkTc0hHPWgu8G8roEpTnSD)3053cqS2)=Exii!lU>8Yu{(+x}1gS^4BbrC>3(JcU}N&rd0<)A;B zYR`QbS%MfQ8Lc6Wz~8G6q7a}y&WZG4xCBAhk$6H1388}H2=QQsBj!~tIV=ir%{&kT zF;p#@KZ@^ip35&A-d_=feOvYg*CUUE`CpZ5$OS|7|Ju9uf2Q|8?$oeQEVngr3?+P7 z>pBgY=2D2X$~3oJm#kb)F1ZZ}n;Cr_sjaV=I6`BzY}3$}MaRTkBX_GrQf?_aALo3} zFW<-aPx!unem&klydIC&`}ul4U$6J;1&1eGc>L@NCt*si4Lk@! z)aag$)IT}1%~-&RB-VeM1bcsP`D#Yo3lM2nIk0X3ZTa3+6-0~Z?$e5QmJ_I5%`Lji zsG1c0o#j*OD}!*eo{0NXVPUAVw0A;*7HqeqM^Quf5qGtcJ6!67A!x26gzWDumt%Qt z7Mh6GV*GDTApP{Q8jtISQ9@#LWOQ?zXoCiVRuKT28oK7zs;XJ7`U&> zbMiGJ9dgE-KA0VZje}+~#l>fI6e7DTR!6rm51Cj626SKyJKA9j`6b6AfCg?GvV&1B zO&g+7=`Io9N1m{}s?(ho9@f|0t)kK)pYxhPpgR*d;U$IP0aNRdOP{QzuKpJ>GB}Xi zVM7DmB$G=udIyv=wgbID9H1#~uBW&2v5i801ZG9zQlO1q+hbro6I4rlZX1^G@QTvk zS6QQc97K-oxI0_z7vps@-^{8niG&{?Zw={JD|PY9aMjiSTmVb>dNXK|N{!UAxRc0A zmOykVJc)1%Y*WhkepqEpk85CX4I@cY=5`R%+*t%3?1LI+gb)(9+}{}(+eod_Pw zTqQXm9zKn^9X}lOyG((_(N3e>f+A<%-tw7rFw17aJQhbD2)%?1U##|JyOOM`t5GOg zw&BhdJi;Nk?Z*6rcl3pJb>9>@s$vwe^FB4_<1`3>@aZW^q3@>d7h~TTy>vPD+cGr3 zqu7oYI;8tJrxjgdm$eu*>b$%_uAy9bb?^52I%LM8&ZBM?@r=#fY48Y`BL%Dl9@=YY zlHnRG2$v;ZgJ88EyfWx(&EcsLW_LV7w-cst6xl(0kd;-@>$(LD9XHpSl}mavETZ~) zerkqNUpN_)xy)vuH4f~y$}6{nJzO&K||tZ?gGKEaSGg+`cX?W|9mNJl!*rCDU{$F zF6VWUw*sGoDH(0EU0dJV*Ax7W)pJuY+(7fD0VOyqMp3XMb1BcHNW+w#2>3Ts5cG_| zvjG!_b8;C%zDLLavv*S6>>L&}QEw9!l&!%OUt6xY^2tZd$M%++c&1C&P1!fm6RHN{ zm>-x6youLWbu1Y{U%!Ta2kg-Ost_4(PaW3V>XWBsFkg53TuZsMKMs^{kEY@whTC0W_lpdpIOqK(BdmySf7fg5^u+W`Dub4(028g*w|hdMNee0k6j*dL5^r`{r4aP49Lp$NZ>gU@>kIpXg-v*vCrJv!4Bw)2j`%MBPY`g`WN_( z#C`Tz&EndSn+mA#R`+-sy=>N z8EvL`d@GQ5Mj*72$!J;95l4?YV=6GVdrtTx^l4;U=)iud1>(a{ewU;{pxel#6jJ^| zn?f)cn(%GAT?EH&s|Tlz#W=Q9js0Bu_-c4>IqXqC4{4Gw<-xYGGqDK8_lxx zT^lRHfA)L7^~%7u4{~DcfZbKu)8Rda@^Uj16YiEgIlPAh*yW)x8geMjaRN?7dJTDk^I!7J{7)%RBw=S@nTPYC1Cf%4QribnPL`un*o_`)J?pCQ<_ zC;xK|qbO{%Jm3xaiJ^9j>~V)r^qeqi49Y^M?#+As#0Lo*r?YI45mSW2Acdh&50CT2i zrn{$m@2c8Gq_UzEG6Eg~1Ox=KjI_8a1O((d@G%5I0pGa3?$kg)pmJJ@i7Cs7iIFHf z*_&C~m_k5!Kvrp*t6?ZKoG$BWI+^{}3NraE;`EK=n@B?YPU8s_nTWDD1`MV+nu@TR zT2Mp;2#z8mfFdz><0FMM8ijO%i@C`99p8TT*^1DwiS)ygoa%BEj#&-?2o|K4ZHGV* zgs`#$&f17{>iT9gxzHn900h(&ls?JPsZ95wre<0X-J68^lcBAqSD|z#OVZxD#kXqo z#eu9HSfzEZTZ5R_85fUcF$fZwG{cMKp+6KSb@8^+_a-<@NDCK~MoI?m3^B%r43WR; zW`ZxEab_P*wyi$iE)AW@aQDuJoA5zE@O)-jV8(&CCWzsv(}z)NPM>4Ok~>EVy1>-5 zr>3ESxt)YCCfSSZ>uW-y$bpwWhDxn%?#|37fGF+pZ&5aapo@p@hJW1^=YZ($_9Oc7 zJj$r^uL?8dkiuiMPtY*X!Ud9q{PdJ5y4zR|-tg(@^mH$4b@iVpM1mN^9IRK^Hukqz*|M9(7q6sG&gr41RDe<8r%`7Wht&BT%<(kH_Ut$j21Ocb|@D$B$JrYG4TZi zP6BvBbGSu&B0_zrb-h=nK;%4V__0u9i70Wt0nYvw${0%MLe)azQJ0a4QI%0dItvGD+Dx{`7$dKD{-rL%WbO*%Dk21Kj*0WuNscju9xmgS2>pbww+~fXfE(@ zo;2pfdQ6E@|GLo5S=l7-c73acVuI2(#6^&rwWlc09pCKZO6YLxcy@bmdD7kF?dswF zD?7}V58d+X$$tEVedO?hi&X;2y zW$R+9(z0!~Njby$ciMYl4s%3;=OS7@g&0Ek4csCrDdC5tCly(gQYawJ{JV6(rk`$7 za#VlNGmSppJ0&%GGJ%*nfmV~Aoob9EpW%oC%lW*?qoY4!CyqTQru?K%tkX&5G8N+z zGlyoL*1a65-0zF^=Nj(JDsaVNwP__|NnbJI;l#nsQ5UC&g~#f_3b?(lBC@QkKK(!i z%X!%6btzY(!Zh|voolv2v2FdT<&!e}iKDj^8}&H)<-|9pplSlUvD0fJwQLK97VH+T zP}HByS;P%O1#foU9)`|S1skKJ+?ficP}#^`k_V_2D3ehjK1+OB_o&x7o4K|FKGx|v zl#<=8((U3czRAX%e+u_rc65%1&!@0Q(FDKqY0Fc`RP|;R^%Xmu-i|7+17p6+4<3Kg z+FK^&s@_XpI~jiQvfjB>Tbq2I52_NK(;M-2xnq^^LG33R5#ZIeQU0oRq>FXWUH{yh zlo^#@GD-I%`{s*+ph2a64dl<^)a052eYP&6Dr4VKxS^b%iDi)>lyt0$VTYqcsb} zwn@Zcf8lw(cz?9Xwj~LD^=20`5*)v4x?Vj+#boeR-xYK|o3tHmvF^1uz z6KLgCzhks~K7g5|c)=KV-?_UvEJ{ybws-awYTeht&hT$yXkv0@^4Ch&3tiw|oabEe zH~8aI$MLJLt)d>=ACCkwE?8bT8`#zd;3hAg8M3a zxKZDSUN6fpQLYlN9u9T(uy>d@g$R`~4sa=O*zq!nx5Bo2ki*Qj|9!yeEvb!hr~nm5 zR3}-UEA~2CeJbbWWgHYxKV)A${N2oT(PExInJqoV<4%%@;1?J6ErXfALo*>W`=dK8 z%RKA&PW>b1?~0W}_Cr2gxy53(p=wl9WE1~R)?_xPEAP`0Tbg)MgIwXmILo}D)dTOv zGa<$!KbE_QYR%66Jocu_4ad(9KCoAxzsoL~W0w;Nop}eACYJv6#l0)vaaAI`R&Rav z5L4ZrrTWS??p>AAz0lZniAwyZgfEY&$1XVjJ{vx#^N#k~;7R^!cQ64r(O2AJ%-F}L z+??~8dNc!t_VuYHJ{f)ZJ4CY!~xHSH@`=r;H?h$emgq5A7GcckzrjCa7u51B&&zslhsL)Nd>*~b&Ou&`-KOsP&h zbcIKG?=jx^rVK7(>w1e?n_8etEka9{7}9I_?i+V z_0iFur+TGd#93Wh!d`~JVb+`z zBRgdNU|W4NRUP?EIYXqM*!;*Ywyk~TI#l@`|2G$(Y)fJoxRE#& zL^)|>Pn`m60veyr+H31^+UHt(pGR%x%^95p%=-3!O;i1)a-?_H@%Oefx3GUp2y>6; zR)#q0)~H2c75kO|xdRm{RyHMYz%hsVBCbpt0&WFyi4%|!PlwzG_LCqdP$!xWYbA4! z5Pu2Nrut0IC$}IQM>_OPBY)aL>e?6q0Rc5iBY7pcgjT9FrgWr?r)=``TmD7fgQ&I4 zUx|I$U&1-v-2=)!79-r_$-@j|&vBFi-?MLU2h(GNs-jkZ1b;6GWs8$bw@z$J8%ouP za8EnK>Z%Ax=x*FV&ntzN>>cYBPy95^&3YBw4xieOPg%clhOJF*YIt5&|-Cr$CFuV)Qes-^Qz%i z38@r06IBpxE2<6rM)Oi{N;Fzi-~Ou}aBW#~ArfbZX!i zZF_3I>Jt;a-fu-IlY4{Xmg=0FtuPNo5vH@M75>xbcD~+F$~%nHE-%A-hg$BUxg%EQ z_F#5({fb@sP%+!dY#0~zV-jaZWnzOapv&;kaptA z;Ia{#ryZp6a#e9Oe9~a4={mP%wZm;tt@U!K@)3KzOJW@Ox7BfP9ju&yc+>+Uj`Bgw zD}fIKepmG8l(_|TPw14m2bn6`mk1f|8clMx#6B8YHHPwV`Amku80l&m{eWWO@cc*& zER5J>yyTy1+G=N|jHOZ*y_Sa-a)&+#p@-(UbhwkBmRaQLm21ap-Hfc3WtS0o?40+U zSGWE8Klgh_Gyf2hBavb;C_NAkb%>RYJ_uO4@8S5+ND-dg+?Wy*Yjd6_-{SRvDFLQ5 z=U%@qbFAPa_RFoyEh@{ZWUHhu@SoU-PJB*e-~RF$yTQ%*#<(a&RQ-YTq)F?x5`~K} zG;1VtUhmI}Vl%TxvB!lM_9McBDSR!Q{)b|aO!vzmJUFZ`UUE)CHfJPOa!9;CZZN%n zG5fphu$&3MKd0r*SLMrl%96R;(F_gQ*@sU|`Z^)&i;wt0Jm&Us>oaXxslT)g{Y$o( z#s!$UzcQeHi2oydFZ;oiaTiJ{pU#VZAcs=jw_?FBQK#W{=5+pwOWyVV7co8tUJcia zm7C{V@%Jvq!#396*o3!^21e45j+OM3v3*z<=*F~;SRxTfQQSpbP^u9E> z!S*!|F?yW7riA9Mwn*5RLqne>`lW?ORQn*rS<1uOzUL3jK|Kb73?qw!uko**KF!}5 zV^F(!7okMuWgaQs<~5mLgti0mf}zL94T+$ya-Mr*Yz@btws8$XE09F@5X>a7V*x}{ z;prCwd-kh#HK%tFMXLSGF9P1;bFel(IG>W-Gn4Bu@G-XC z{DQl~go4^UHi-6}e14nWg0HO|G+4W;fi26)ML3H%N%(B#)=2|SCXfXeMb8LZ=Bq&p zAp~#1sM5eDBgn!Rg{p@CRpZ;so_v|Tdd(DgO;4odM`1=oiSI`w`nT@+R-+$C{EYhb z>;$=nh$MVF6EWvEWGV9tt`gnb=iYX*O*U=_FVg1E9zw+HEPjOdlfkJJU5>RSjTBv( zm6de&#FvF3O*wRcBu<(5J;B!5u!&5oVW&a*byd;%z-9~ny}{i=H#g7 zcGjU&e{TH?Ke8R-{;nEbVGXerk0wvx(fi`SrzP;)2{|<#iA(qo8 zA^$r=1SaA8yIt-eFCG9wgRE!Efg}@#i3kuN6LxDF`m&k!-xVh2g3$k+_ZAO0v5Bwf zWd*-C)BQ;zJvlrzvME(WmcU`XV58MQ=jxV;4R&yWXs?kQ1*!fl(1~{6EhgjAUlB^VYKLAddm>(NY5JkRs{SoNi@lXWE zf8AJ+0-o+WwoLxsb73K%-3v|~+<(J(1SMou#q)SmKmq+c0NPa&lP>_R0zjI?ko65W ztmg6m4d4Z6cVpa-_us)WIWS1Uy^};>kUP`JDeSwpD!c+Xs&5JF)avoSQBb*EDUiTEg4vAqhuJX>hQ;~ztG?GstS!K zIsJ?{SWHdbtLVFb-ju+UvskH8C>5Y#`V{ z6!ztV-OK=+yS{@N45>E1s%K7(q?+?-b zDZBACu)uz$dAdsHR}?0_-JeF8i`jjc$bc-8Tn9JB*m&5@LGd-T4ZjD~qBk>V=SgWL zB{})wjB(gG1`N+fShBO$ zpMTk{c6i@ugQCnQv;VDi;FH%S_(V}cp#%o>y2EZ-Z*J|yiP4l`D+LfC|E=?vp0BLo zY(`MC_t{;miay4M`%+De?#g%SCmz@S06ntkm!4g$-BPJF`SPj5aJ*Ql?+XD~xw<&I zEnKY9f(o9;ZiU+?FtWaZglGHv%S(SGI`Hmomufc)Ws=ssj;rL|%IEpX$nqtkv50-I zrs1UYXlvud&z__IC|`ZgpDz^@LFIqswdi6X8>{_k(!$ z5<0$TUyXREtUyTP6Fqty9e zDi01BuhD8A!GzIZy?bW9LSwz%lZ{2$)N~|ANNDZuWEmY7*V52gog7M5R9Hvuh|~Ke zX-S-N9L+h9D&i{8&?<9sAq&s#S-0L>bYOu|R!QNvw2a&6W`Ry&K<3?1%2T5Z=6K}w z@uL03*1&STDO*VHJaXtGA+JloncjCgdyv{9D+T1JOsCI7wvhkp>(g0{ZcDxE@xm|r z^{_hcg-WfyFl07ysADupO43}1RV_`rXSKWGU1r(w(f|b^6)Q>b<#*ZfeAJ5|Si}@& z1N}w|mE<62iQ@w^1hr1rV|5#x&ZpBhY-atrDr0FyRn?i{L~?vCyLQKI$+@95V_8|* zR3<$H3>rge=LJ$I1hMX^F5ysxAG2Tyh!~`^y$X#QCarpL76zPw>HFAvzZWm=HQ)0d z_{C~H^napMY*KLq1(LDabzfmyu~52Vhy?I-lJ(l$zFQ8Ek>#oZ(N0!RYj!`h;BSuK zBdt&7{zMi&8XAO1m@_*Fubh3QNK8~z@b!LM=a)Y50J{UbQZ~QkLM3h|5lNnA-B;hI z+tr`ese!gyu^<{GAddE8&DqR4y1NszTc91d?v17U`S~SSV@UNywA(D#s}{-LoUN~) z+jiXF-=8cu08>cxc$vxL%r787%4q5Ao> z?X1=mK919B677@7^~M3P`ab^fQ`IZIGV+a!j0C&f4#gAik3T&&C$vJLi+9VQ<({5U zAZC?W_L4o%YZ&w(;|_s3Iyy)Z@vFk*5zyUUpFMLyxFCj&voM|eswd^_6 zmEoYo{?3&fv?jbvN>I=xyr5=~H|oFuYd)6SnL996x)78KDey;l-y-i15DFc7(X2jI zPlz&5+&p00kXq4>PAyn3R@rcnB0@Hn@nB-UbNE9#zov+_GRSvrg5M zBBCNHi01k{T>3v>z;7jzHPgV9%Ba_{kai0Zh@zE2i!M~@z?35yP#mFHrXSLTW*iDC>JXga?#OqchaL35pB&~O zJ$#L@Z7RmJDvqmkD&SJ#zo!I0(qareqtc0}$%2L5xHM3?=+m1}i1YPhoWqgEuX*`?3aTyv=PWanSp-Q#ml7|95$uMy4_0rEj~?X{ z*yj>3W6==R$~+Dm5KO$dY-UJIs)_r${1*ulyW0PvzQ z1QVJeM4)&*-(N85G^v#;Lk437ahp3`E9Z2*-0J8yf0yC0QG_``2G&MLRmA1cY_%TW z$sTE?U-~CgmcQ~&>~rR692-`)qV4{>#^boWp8zZ-r7sXp$cLe?D}#xJ6-M*K9UkOq zGU$MG4F5IrYdG2&3gQQNMVLlli&&HQPO6ImVXMS!swZ zpP!EmDn$|idzK-z2B=WAHrGeH2N`K-r-U(f>ONrl~Bu>~#ko%bgs2#7=613rs%`Mum@zcTYK$iC<6^=Qc~ z>Nz~TIdcMHVosYhbwQzzkVB#YC(m9T6PY}pfyhiM7S>IV=)YzNfB$iVh<`|15jF-3 z{!LyzlcOY_uUft-!D7TH1GIzyS?`>ZmWGqyG@ii$z=Jv@t14syR?8WRez}JEKio!L z5g8%QYe$sBNKl%BHf%t$5@Zu4Xk?s=UMl^2H%S=9+wk`AkDmLyS^&IC@DK0V#v8z} zHcNiu3xqwtlc@RJP9k&?UD{x!D5$AXaaatWZvV9wjj{4UZD7z$goSS;5JRM(lIA&z z!|s1{{9NT@O8LE*k`lnM%#V-jM=}pEm}M)@$vP;+JN-hf?zT@O^?HvjPdlm_hP?m| zbz8;dvLit&np3hohuzBA9INwX%I=l?Y19`6Okdy^qie3wITAVmUr5ChNvBEVih)|Z zU8qZW%r{j@?ftb|#q62ia+jXKi|$oeaQ=R~chg))nDp-IvgU*~I~ zzFkvLZjWwr%6@}0MZiXM2*~;T=OT;nI&y5M_6NIV(0$4$JS?QyW-i{Oj@lMWP=E>g z$B(r-^f%vVW4&*JLal&z4{Y3Iynt_8eCumn7kdWB4Q9?4%z8XZhjgA|<*lA&Hh3Oc z`uwC+mthG^)8*cQc(F>%={RpJpMF%(pMG+M z&92Bn_W_1*(oPuA)wLnW3^ zX4m5pJ*|}_Ax2L#X@M^NcG)fiMu0FtvMyKQ7V-EQo0s`oqR1qz7pOHRv)){(isAm@ z@N#@4>hxn;7En7SC?C^}2bLRp_WZ!^^0@yvpCD}XQ)*cd)rP5Bbc;9PnU5AaWc`(O zW6uQ0^aG(5hVS{OQx?5ipkPbO_D&xX5;L66=JYN4^*t{!ZI|kfh6=1vGNC%*eu+9R z;F)+ikvS0=@OwUO>_v#_2)saT4nxW{Dvt|<*Cd<|7a@3mODQZLOXUFeK|C+V0ud1r zA~sVptHRfs!{eH+LGUJ!n96imMPN=40&S}8e!Xhve2lm4)_thp=v}IBY3Ulf{Ah-d z#(fTc8}gQv&O%c=AUS80Yxfs4V zPAWVKL21_0q&ZG80BWM{^J_z%lZM{-_@QJkmpwXgm<_0g1cuz)+zf=Oc4g#Z!hef$ z^U`4SME9-!)mUN?kK1TS?9%T0lqDGW^Ur*robBn<$K71w!-maV#8lY4!*T$I7YS~g zz>xKm_ZJl?#&5fQgsC?R^{!{)FutwM=3y_xFuI50s!57cL<=)kpVFDm+$~*&zZ>3lP zpB9>35q0aeRi!{urpf$20f_`10Is{;!H+TBd8)7Y77qa2*hb*v0e>`Yra{C$APvY6 z=V<`690xZbr#dMK*L@urj3;JBe+FgTnCJM0ZMZq9_K!GFs{`+YNXU;teVG5hu3^cdV75eC-$2n-_6+qvh)dMZzdrQP6WRVe^4&KjvtkH-jv?^>+z1+ zCkrs7%7@sZR9dyd9*Bat2ypf_&s!X~wY$Jq6mh!Gi zDH8!heX)LA(6PTcUDYWkir`~qRT&i0ZXn&d^M5=nA-V1gN8K()UD1qijs&2l|Ai=D zYk?Vk@%!jRfziP+KDw{_hI?lfHNiUyngS3GAaHZ^6(YfKaw!afWq2G$jDdRI0CEJn zbaOR}5|*ohK@X@(xi;@tSJ`Ltd!ltJ4t7G869U9(&ZuJx&D8S#d{a4HWTaNB&mJ{U z=BDW@EHFQr@6ard9_5%to%jYZ zMks_B5-T0ye{Db(Adz+BJmu-#{j%=&RHcSb)BDqEp4Vw7V(x=jS=iVwMyNwvTrOgP zU;l8H+UC)QQ`y4f&D|PIxvldyke^7~$|*Ih$SMFmHV z^z+9B+kYw<4ooQ@e(-{j>t?n}v3z<+2n;T9Ti5Gjg-jCFTO$xs-lfDrQsLEQ?)H#B zum~94^Fg2HkoJ*RltBADp9>q1!L>|KOHzT+)P5M9FSmae{-t;P2HI<(5T<`RLFmNS;Rdg>Qy7exLC8V+g7wsZn4FrUw48U)gWf-D^a z-Cmw=iitE+aflTKaN0&H($2yFD~c-M)*f9m2V92xXQ)dHkCy+g8N&4DXdch=jS7{J zR}I)W{z7aLFqJ{Vzyqh^lg(<4hfowcn?@p*BDtZq8p-riTX;b`W9iPfC(ECd*qY$O zQ3%U1Nid2#1Oa)*W(lo}wV{;Q5T@Ik{YDyyZc5W|fOg7> zLl+sf+UnXzsFpv;t8I97K3yQi{l?fhIE$KO@cSF(1rrT3AOfVIjoFYH(!%h%9FP>K zPBk0RuEZvf>WPp;qF4BB55_v}juaIZfaptZu{g@7gR%sT&}qA*UA ze`*s3n+qZbmuml{BSVhJb|2`Ad8`0zt<=zkzW z!UX=#*5e;!C6Zf_t=zRRsrI8Casb|Lm~l}TpscWM8pF?v`Oj-`}=Ij6BZhA9+O*k#0r{H)p!C-_VD(;Q5r!jQb@-t`vK(Uh}}JE94#bdosyV5)#Ys&pxcK!?p62GfYXFBkBrL}Nb8$%gM# zF)8meNB@UpfNgBki~uqDe41S^xYfCMAt075Fd)VeTJ^9c@q@+qRPu=pZv?l)7a(cW z84m>&#MX0IyUMI;A)@&;;z6BPBpo60-T;ifNH*Ob7MPRbVBIDgEnVusa2)2OqFhE- z^Q39xK6$bL2Wb%z5!G)E3sH{`8KTPgaA=jG)!k->rJ$QBeF%t|{g zrF&+wsV3#N5dD!}69w{tg_+$>6UDRR+wTc4(wWbYtQmd1y$&C^mb8v2e#L-l*^Kdq zH~Prr$h*aYQzVy69%59?Ke_xt23NKK%MWx4n~}mxUa`8DGkI}w!A*ERN&T7w(nJj` zETj+;>gw+opJvK);P-px29j)k(O4r5)Lhm$9P=qo|G#ttpNj!{u|~)4nP#IV(_9jA z@cH?<#eDhqxwQ`~3C&y<6!~Tqb_9`WRXU*vy}`h)ye^Q6Phrx-`^>)bQNd090DTi@ z_S;1TwDq>1=1^MLmZXdu=i4_xue<^@Dg)n}@0+shSw~}CNXZr~P*Yh&>>rw=ULW>z zn!A<^jVdiTfmt;RR{e~Y@2>y|S}6xWKHiZNcs!z-%bHhaG4h4E+#Q8)%S?8Jb~L;_ zTep8vsgtU2fX#sa6Q+BE*A}0~Xk}w591&gX812Tm6wGidp5# zc~BYFFSz_Z_h>!5@@S(};@!HS^QqjH1ol*d`Uc>aG)gaCK(5HFwk*414KP1LB;ZPM z7=~a7RAg;9joBhR-}3S6>LpcZ$Y(`BxTGdH%N0k2M+CI3RRB20(#d~>tRM?8u;*rv zFs{h&_Dp4MflmmT1w2Z0OWxsApbH& zxj`MX32=!g*6C6$FFP$AB_inqB^P$x)ABDBVdXC6v%%QWjPU_6281r=z|1@&v`<3= zV7l8V2^D0@VmyeX>whz=B(!V-agq!Ifk-yMipA1Ag5KWV+jg9#OCh7YK)$UCZg|yq zARAp=)bJMoiexF`fVc<;!XS5r|9kuIujy&j&z6;4L{+xnwIGjFXA`$X_D_^NX; zgfHkC5Twx$^0s z2BI*b!N+m>=Oa>R&Z}g5K*FkTpj0jbU~M;OV=8xSSMYkJ_Rq|>tSUGTK=+9Y4Db=B z0G`tn)ySuVY~>~nLjVog|7R#&m>V34f-M>Ubaw_12N#v{X*LF=?9NG^h9Loy8~{P) z_S5#SIvp8L3=yzj&C`EREcB#zpg~HB3cpT~#Nsb#$!T*|2D5pSLdAs$ySTUr3kM`` zHIP7Z`Fwjdc5 zabceKWi!4w!^(&s|2p!~dwFlk5yA!-TVVU4h(5$xDAQ2MTvNTN9X8HOqM4AXAV=o%F}b zcX*;nH2Ve6z=R>D#ZBQ_ZU1tnN2{6O)k`x2bKHSe2L*Ppf&s$u=y!VRqZUYgzw3kP zNObB=PSS3)(ag4J_n?STKLe*F0A$J{^!IP!SsufhaaF`z>6u)@YfeMtj8u zXyaNRJ0eQ4Z6B+M1YeYX5IzXK_^H#ccgIUjta8*+Re&Mo z$dv(d#qW7Z!k%R(bzaftaj})f=k5}nmLvm2!*39SgVbl-E-y& zL#r)(^~=5Ks7k|afDt16?#j*QyH5kp#Qc%RH#d9GCFH_WkbXR!_sypf`ah5TYmru> z)b-~(1z!GAe;?gB=6${+46g~UY%m>tv>UCbFL8Bp9;c$b(vqJUGX7<=r)WvxGrR+hT_ z{dILSfBpJpN9!yv8PM7wG9}__`^S7YkImhyv4X`@db?7qzVj_d$Z%GfOAr_9=J@&- z9~ZszujAJVwzZ93mJtdbs=6+RO%ZF%Aj-y)p+ADpFD@+qG?tYb5aI>@ zbU#_jGeEG$c`xUXG%CLOo^9O>-Be&fwZ*%M8)a!W-^R3Fa0TPL+3URS%YY8P zyFTR|TSbSoLVa9Ev7RZjJY;^H6X88lAy^|8j2wE}kqG}q*v`3oHCVFXhg3yi0FkSL zc72}xGf#Qjc;%3}>$OqPhER}4&0S=*^^V}IS59Lu;~%#0h#d8=w_34*Sm(A=omUk> z|1$;ennCK~t ztUrGy$gK25K7Ee;J1p*s*PG+XsWF#W4S!nuf%5W}XMEMszvC=IiKE5wVRM15KQ8R- z9~Zt6)ch$fdGn@CPLXep3kZ$gnLPYgv~}S`d5PeZPc%fvdgotqt~4C!gF{YnuLy%A zo(oj8KXCwz0|h-i*@=_R=jH;=f@ zx3S3RkLWtXrvLf8*3zFy(A#~s-45&>*1lR9Q?AxmCnHDoC~>xg>Vr`=Gh*}+m-9s_ zM&VvRa3Keelb7fE_zM3~ke^#r0EsFhfE0v5t6B)uPV=9miQSZP1O>dVOG%wHhlBxS z(FLhikRfrobE#YV$bQnLtf8_{ug|j9GeO$(DkXN-yI5rc?vk*c?Dk^W3C24b%!&K! zb+a(*OKmT>nLo4BziVAGYTzS=lx#`(?t6O|yYdg6@4i_!S~!=1BoMW4Ntf7i)U z?kUG!oE@yC4;Zo!9N@SOFlp5rqm@#Fu1+9A$4UgWUg1XsI+q|@BUr<69&Dk1mb|T= zefl?23P~IZ-F0oF^6P%jSEGc92kAEC6FtowO=ypi%^O@2Ht`?l6ZHn(flmDC6Xd)Z zVyrl8XdMUc`1i{n?VM*6-(_BzdbE~$H@VW_Ib%ve15 zP?zCwo?oIobHXd{Wxnc1E+n|wi=|-iGc1CA_6&W)vNZZa&Regv zi_wbA@}yIdB?^yC0-b-B;(kdeC^qvEFA4k1cGMR~%8SDts2QB$x;KnuN)jLtA4kYH zG8P&RXWGr$6meq1@U>D2CKC@5hpQ07+y-Z+W+Da^et9{@P!$8LEC|J&^iALiUoq#1 zr?232Do>1A-y$4M87S<~0C`ceXJACUdl`Iwd13*tLjWI#TcMmbj)5St2P z@F%kcf^W2@Av7(WOw8#a$L%5lzM&;VMub?-IQKDFE4XnY#$brTWFo%90)S5QBLhFW zrAfuRThK~@eWR?LU?$9T^K9hR3CJC2yp??;f{u}khy6X0I~AIy~{jqQ{Pjs_ST zCK?Yed(^VYjln{j4_h^f&Y>wPdlrp1Xw54^(fQ%))0VqWe zSNo|5TKmVxPdmTSxwz(Cg?!QjAY9GSg^kexbx;jN^3lIa`zJ7ItgNhnPw?M&co>YdG|*p&W;qY}HFt@-W@C+>lzXvMpu-tpgV zck${w7fFrz`~?tDUN1+PFYwWbqya|N3ubs32OM)t=un}E*l{s2$&VNAfQkr!&E;7S zLNkWBEZZivyu7@h){8_ehQhkK1aN`jZ3bO_8`eLNBM8wUlh6{nEE6`f6`;P%1MBaT zOEDJ=Au6$8yVuQ;`9x+QMquKF-{sD4z-*Mxl*$+xz=$T?&PzLhiyy`=@S~lo(IyQk zD-!wbemfqR7AXk{(x8|HwpgjO<|~#ExKwz5fFUc$6TW>55(@?hc)q}P+2BM} zS63HM(lG_>Aq>!Q5>WsjhPDc`V6>7%ncH7l(kz|FI!qId3@}A=aCf&~ZT*>SK$v|5 z*vYhu%|qoV`E)F)?wO6mD_{&|84)YI)FEE z?<%0N93lUyToF};jdqnvP1X|^xm7vl`Gg1YZuNJXHs;ui5_O7WSmXV8O{-=D@T6f9 zKz@WHki!J5GF^br3{ZJ{hjhFAe2?bJQjW5nA_H2$!#}uyzPaXUMj#Aw-mi6dOGKy9 zzC+&k>jG0#8MMgA3Gu^bixm)2QB%wM$jA&eK;6xxu9#fe=6GE4nhf;~A9B<4K2)=( zu-bJ$W~QXTX;`pbi-X0x=|IB-c;as>IP6AX3wKUP_AB@*VNXky!8teWLV-?CyQ#xif-3-Rhz+L8J;F?PZ$O9)aJD9&y& zTH@Vb-|1qqO(`D#3?pounjj;->aZs5+urz(2yjwnCPR@+KwCVKKvV>QIv!dZDO538 zLPkauTOiAFBtmzR4^YhS?iL1^&k-3gv)Jerd);bWfY*)IYEb!H-v4&lT(xaeosgc7 z9I76)frqg&!?;Tq6`nbWto7W8_oW z18uzMGi^n!mCn;AsNFwk}X>DB~Ri7*N3fr=D|40{nxe0i*5z zj7o2X;EpET>LiizIZx&*Qsl-#TwVL)~aM|98opA%;5=0+&OVNXt<${MgUrCtBs*CJ3Uvh}CTxKDlk6zSmbvYa& z_Gg$!z6P%-`tOclGBY#(*C9?R2r$TDOx6X*&>TkYBiTWex?wRDAVG0V*E+TW$_5}9 zC#mM-#jkXDyZ45C;3T4KqXuRu+3V(`Z_H*BWC`!4EQuB_gBoCiXe!u;$bhx0?lq1L zIjBu|>jTuxm%DXfYyAv+P0Za{Us3C9xMSERq0a|;MzK@f$2 zW36n{SQH|I?n}AP^|Vyi^JVmAm1YtsEewK4j{q+j0UVqYP&hVX5GZkS(e z4(ewX!s9}MOgXUu$u3j}Q?~(?9MuJL9Io8&8zFgXMuA)5NVq}B*8m01y9A>2XbR)s zcF!xoCwOQ(iXcwH21HatvnljHGxdp{NQ`8VM~o-<=WD6Uddt7;bH+Z1At9zNP5$6I ztLb{>1tdYcCrL%XkVvmly>c@@O153BOm>bC2)G2hn*-%2#4ozD(z)5C*OgTqUdQ`u zkUCG$A)C#g+Z1_epFKiU8DM@T5exaGDSzhfgiW=27-67<+7r#SoGtGCTyk|@{)y9W z#iBYcnJzp9d765N>64=izPpSx?wR4wW+0>i#Vl%}1!|>icIyQs4vi}9(27pL4bo=4 z$n-!3+{#SkU0D&}x(>zhjXH{DBVuO8Mk!xYAuCjRR>kmd0j| z(mTcPaV}ge7#$JNg4TT-8AG$e4$9IfhKjauZ@M!#1T1e3n+bT7pjIH>^SPfUmj^rp zDk+S()DBDG=3(IIKU2Df2v8ara)lvq30l>gdI_cMOGOH9+vhZzqlw$jT)^i9nIpT* zmFwHBTIcppJKd7Rut0dcRLm*`GD^ZsDj*z=4VreDhwVVCfDvkOJX=6V_Ng0W2=VZI zHCa@RSU-ri3=d8a2HH^uu+scUK@K*o_oU>eJzH(l2rDpx2)xQ1ANmc62B`pZ-oNFJ zpSfQsKL!Saf&8~%)7yv#c{E`~bHWQb+fY$aG53Iha}k%#UGWj_YtzT59t9+q-6~DjX8ntE0I0{EJW_Ow5rA#=~N2XTI39&*Y$T6%AgA zPOUT`7xxne5+X;OosPE&kZPpK1H{S!Q=yE40%lc^b-U5s`Ry$hqwA&o(FDpBM7J&O z9wM&QV2$*_V!KDLk@_4D+|l;-Y@rM~Z3%fTXS|e*0La9g*5rhhSjyP@`he7QpbrIU zBD>pP%<2H}->lXdhXWWrG9VN!fy-{{ngNz?SqlM|Z#;*?8Y>x0s{j*rxbFX^ml|}j z4OX|*O+gw$<;%heFVclEK|$V%Ty3)b5ySS)No87y?cH2|QV#c=gr+05XBqZ%6#xm1 zwxTF-0@NQjihlu{_yZ46kW$@e69FuZ!ii)Obn2Bf<*ET$IfA}kCrhlyG5vL3q zDKzbMgmQFGPY>47s>r}h{ku276bPNoTmHbN4MGIPwkz7Yd5qr=VRJfHdoLZ+xZvECkZaV!a2g&L%X!TY}eKtct} zF^0cmQ9Q231ZqBO$SoXV$I?Oov7U84F>&_960$BYYxZld>%L=#kgz)6CpYw4l`#%Z zzGN}Crap;8{EzvAK2QIC0W~7bIBWbT_HBCzmD3$wLtJnz4%GRla_yhxKn20P7=>8S zrfz~ziDh{?ap44@7=X>_@$t9@te|G~q;uv2sNo@dUKM~oSPKKi&u+n8Zere7SMR7W z#d^Jae(o^MMiqvN;sl@#V-Md23MeyiKoF$0oGLrKsr-Pltc8x;rWl;OnHT86N=izK zLnD~MubYvr5Eh5b7AXuoD<~*PJV!rmwOX$Y?u9%_kEWPsdATR09x#Ogmgrzd=n|Ns z6L+r?@e*D@r3?y1gJ8az$_-rlmW2#65?9{R)~1yHX%{GCEaCV6PZMVW6xADd|D_j@ zSXw~3K|o4ENdbfI?q(5?l3uz)rAtb>JETQWU;$~7k`$H_>H0tX=6&b=Gs6sb*yY~4 z+`aof=X}mn^K6Rvd_}`6Wgy}cg**hs)98pE782m$aPSS>BWQVoI`%q#U zAY?N80lYR@*vQCg{m&mxadxW5@w8(3gm1YG2D}BnAqhWEtL1l{Z)9o~t0eQ8(oOIi zMHTI#y36;@7IPeF##-$(QdXo-T9|;Kj=qVal z;ew()`(3SHUo@#nO-dS)=z*6}6{X22kqOQ67s24O{CEHo6n-zWP=OS?*Y|#I;)#!z zSjEynf^xt&s-jy82TszvL}=o5=EU(S$Hh`D2!CHq^ZQz!%$WxYK$X)^A~G6WLs%tf zB2o(`!%5;uxka1N2P9(kb?;snj#s6VuD!%}kjDZ$=@Gd|)%t!=m=D?jQF^&BIf7{Qw|_E~ z=y7x9UBb{3VgcrL=SZC|ICb?*De6ls#G-$;#tQ^(hKa%c-&iHt`lr?Y`VAEVgDF7v z^B0z3{iBj+Q})Tdr0zhM*@1*ufsE1NfBFE#Vg}_!=#ty6vD)4D#IText4un67OT?p z3)@i>wN2*a*^m}RA=ZiCZf1Llz-J-66uTB6{&ZQHc^KU84zSZI(=I}7pFcl70jPSq zvH(H5jl|P?#$1H>7z$mHa-8OY(3F%@qELv%s{kn<9D z9U$#++ZdLSW-a+);E{CrE``9lg4tFEla@RPOdvf^=|%9yaZ$fofq$H0AkY7O<%zkp zG~}=Aq3hyj??x_;Rb~&{|9uA9+0+Yl!GOgm>c_0vuw9GniyV0yS{qCA#vs_vASi(@T$dUFGf)@p1LLkOUm zK<6t6F>I`}Wir`f9%nw+MpRc{sf)NKMJra6mSlQAQ75>IRJl!+fkYxIVb7J7k55k{ zXu`Lo&Hl9n-gXk}$u$IP2$o84dsvI{F)i~$m)9J2rYk?uel+)AZ1X7ZQ~K(M!77nS z^y(!O=;~=S<-`Yswg(02Rdm@hnVL-MvUu=xp<2;BU<6HZmNj zYpe^l*$;P(m0Vo&WW7<&<^vwdL$2>Z0`^{>x&6P@q7d(49NJ}M!({n6G%oYNylR=_ zOwOqN0U-5r*UewxBp4u-_ouClw8OZ4g(@ljhTtS{&u+!Ge#l-295Qf8%wU+g`1F!~ zdJOB}TFN7O7*faBk;0+go9IAj5P?GF;t!aUqTwi*fgn;Yg3$j2b$=sQ#G0x~7++A) zAIllHEYWqDd}Hhm;!?tNsl=6?z_omwk|bXvEGbHWjxLf~se9v=l2#YNXH*SQ7~DXfo8LHRx#j7lNa;kQdNxZgKh(elI8$k2h0 zBg?{!A^`M5Mq1qnH6j=VpFHaR4tAYJ9|T0dYL+Mr2c3YDKt%T>g&`OCM>kJu*uef% zWX*oHxPJ8e8>Rk(yjtQ&C|Z3qH|MtN_&i|<@t49sx0Qz{?kkFT=#7#H#;#I<|f{p z0FDGG2($x)`~2)IO;_}jHAxVdhrx}5QK2O04PdjNWaa6R(r~}O@p3Z>*$GMZAG6+v zix2c~XLY#K%SRx8$&_9!EnNOSt^ek34j+$JHvcq_Ba0&2807X|wVV`h>AOk(G|a# zm-`;VcuO9FwwWt2Q>J~_i2Q2{Ro6T`?f$V>aT-+X5C$SRtmZ7knr{g=$DP&lmgz;Z zz<=nV8;Tan{Lqf{k}KLvT9N^A;uGiVeSb%lF2AF1Am}@%xkl)uzJBu6s)?>8rFx~} zedT6B!)V&W7vJm$F*&_%{EU$XOXNj(fuf5eaM)Xu|-DmUSqt;>2}Ik(loXCMk%&17V0~Eth8^ z+1ST!To!BIT*(R8{x zCti`A(6+Cq4!MB8qva+6l`bDK%AG)HH-&qYHaUkmJ6P|H6xc%|AMWfD2^U8qc*?2Q^Jh1FX1TmV|(XZJV0gG-{#JDuzFJ$rd6)yX9$yimiWLCnl9 z?aCUP(kn8*j(R@2r6##mjRk{b(DSblo;MI8*rk$C$(KqA8}>cjyCWI_#{nX7lFF3x z6-JhM;Lh~*Y9WqT6CfhaGr&2em#E~^$|Fa)M|;h7E0szNNwH9H_Vf8{)g%;X8*1FI z<{^7s#Z|ETiAMFnr1_0Z-i&xPN%MXOv83z+3V6G=Y;fWc$Hj4F>T^}PA8$9`?`;Pj z6cA_JyDmvdJj?aR>Y0$*u8k(n^XUs#Z`(!Z*my@|Y1RX=riA{34UetAT&vV)>?$7E zd5YV3j`r0;CS$n$imdyr#-gA#wU}nnygmhH{gnxIqns`v|8L)D0sm(CT_+GJz%2yx zKm-O{p>?TjeUQaW*M2;|A24;++cnSQq(Q$64E-_AFUOT-fvnF><7Y?rRs9ui?fso3 zIqzhJl>FNUk(#%cHZN)9X`k)>?+1KuEtWf;t<1c`G!qX0gf3>wyEx$6(>+5L+pvY7 zjH5b-s}Zj8`s z=?7%41W?M@qX8gITu!JpJGMV~z(YhOGvw3rcK;WT6|$P0eOT&X`Ngl1!Oe)##h_0u z`q|3^)st3KPaV3t$RzvgP4%N!CM)PJVm~SBI<@EC=#{!J12kX&xj+=Ydut-xm6hWX zb7O^?9yw|kuF@x)j{O)Yg)!EPTTT8OqcSm7c3dt{%2`-c+Nlda7I&4kHjLPVLuCqz zy2rsC7d2U`3C`WT=BvHs2OJ`Mx$t}5pm+&t)WD$wl+2{eqLZQ3$*-|TH430vIQYEw0Sl`?IweH;l$@?wo4UjrHGC zpP=(Q@))-PbySow^=n}PpTf@xGC8cPCtki)jUA@^g$yecKb~Sxx3jZNYplJe<^#KGm0@$0_|m}_ zAWNx*9o(-kJpSRg$ynj`&DYr|Dc$R2ICNCtm+LEC1@Gr*x%ia({{lw5QOAe%k66(mIY(+(1d#o8(=e= zA*|(IQN-Sh{Cqg_c&Ymx^5ChQ40OAX3px{zOUf1+8fy1q`Wm_;7?88dKpVX*{r<7D z$%6Rscnl<Cb@p{cnIkBC^UzzYzTOH}s}n)L?K z6&UunTLlSbYAN(Mvfj|iScgIz?+UAzG$Qb`A-*n-8yzwLLiV5c zD#T#4$0ncOKDuglshQV%N*ri6R@J5?8~p6@ zY#kUFvmgC{w%%LP%^u&30mx-y_BjhNnky!;g`UeMg5n;%sFpxt0hTf7lE7xF$sQVz zZJOqW#GC|WoS`E|sBuN#bYo!ZVn$9|6@lc|)3aB8Gbv8Gdvw(KXM=r>BEa;?a3Tqu zIbDRFWXl}Ra(xM4zQ<-T;;KFYChSnnn36#7{$1&daGY9EESB%K%gp$|B;Q_t&G-2n zh177954Fo$yTf^FaX1pIwUjIUdT=qH-GU~(`MlcL7n$!+ZLX}{>55xWKVyn61r=jt z6yT3)JlG{@!aqE8)X&Kdo9m&AEAcpJ!|KTB9zOtUlRhAH0~~b|Sd79TGH9T-^eyNS zgJm`x$kT5gF|)q9a+=7j|3psgays;W!L*#duAYM72R;36GOuOS1CVtl_BVf?`U-j! z1iu(#R+ky?cf%Qw6wKS`YT7{03Rg0gDyve5XEn2mWOYz>e z#f9fh!RGD&a29k02E=pw*?)aeGH@z9b_4#u4bos3fS?zUlB>~3b>dgcF+b1 zqx)ym+k-u8_-TXtm=Jni{A!`$;Y__SHZ-KL3zttR?M#k^#JIG5MbUH2d;V!;V%~S4 zB^KIj(F=D zye}|M#+CuO*#k-v17||iw;Yh@&rdkG@WdxTUaOpg7aGK*y2UCFhQA&_Zrd~m!p-4u z9`qNhW-$O|BfDD*=kV1q?oS9>$tVcq7hBzIfiXGO@r{# zqbhZI(IZKTEdPNeT3og<>xI$_0F)~hc;mPJ`%8KhI7*6vu+}@$*?nsaP33`TgVUSg zw`n!5@mIij+Mp&`7sUjBDMF8p@JB7I`-YB*c11&Gq6qD-6z%$eNu@fCEvS+f253>{ zD(V5$Tj(=IMet!cv^K#y%ZMo)vIP6xcgQvh%M1k<4$JIpB$O%&!pjwgfvsi6Jb!KY zzzGzs&-y7%uQL0S^6yqi@bMNCyOf61X1dNre~Yf)U?H9f1dY}VF(qztG~G`su}4hk zCm|4~XCMSkvwkwmcm?8pZmklAv!FEjq7_+B+O|%=)$>=6bKd&4PL=5`52xmLH8u! zW-h*)O}0&H#c%bUU~#W~{Us$eEWl zg&;EJ310ZGsT7`%mqa&3&Lzx_fqN}~Oye`TCZjiV;cB7@S$apVBY5XP%W`#etO3rh zJz){P)G~Ra35$ARuO|O)e>=Y}mFeUdDB4{8kan!RK^d$X7f_T?*Wxf$c{~&NupF>l z2TL!?o@-=OuO+$v+uBG`PK@GJ+kUqo?5Lyta7=tLUD-fK=65|ApWHN-3RoQc_Pgg&s4s=IVkgM)oEphB=hNvt^2h%x9POIX?OR(tfK;!y2fF?~zQ}t!9d-P2T)m`H`2 zz+2IXaH>MJV!r|TGb-5e=W9sv`Ayf(X!1@CH0m|;w6E^R@O_#>ddWEFNk{p;pMt@L zNCG%NsT6f+Q?`_8L{q(P&al3tPn6D4bYq(D`t(j!7~Y0|@gCgd31=Mia}dOCl9&%a zQ54j|L)G3Y_9lXrUD`n}la_?!uRTU(!UBl zAI;{fhA!;PR2s~OvjR`V-}%dhQ77F{v8U)8k-x=DqbXe5IQWhHRjs!Y!gbAD=-X5n(AS_DI78I9T-4nDq z8Xp^Uy{3_Nr4zF}#VHWU(Lcr2THuwNc^dN~OQ;3b`5egYJ=Fo{g=Q3UqtXcG*QL{i zva{Y2&DQ0CY;H%2Pes;3yY(cox8|48tTAUJ=f^B4v6|W3A~k}PQ{g2q{rc74KOa!4 zx0%6dMmB7eK4gzT+2mnpq%cU-=G$X|+79guZ65Ns);o}z-3|YhO`ZdKOK0DML8VDs}?vP2pW5 z4*pK#L|i(0e*4SbM%zi$)ou-2 zq*t`O@NG&G)c(i$a+4`pv(3%gGJ;WfwFvTuDePmnV}Vq;l)0H4>Q9e=Vcmh_*JmR@ zL*s2_bzDKBg3tX(Ni@S~$GtfI;Ll`*3uA=G1dukH?-SB7i}}}CcEOlsK4f}*H0N*i zf9gf2qhG6P8cDJio83-dKz;mT0ky|F2m_im-}E!#K=cy#;ON-O_IGP7Q;`T{34CY! ze`sFcmU25m?wk697!=$b!I=Z)Kt~g0kG*KwV_$6&*>24TXe-0|E>5+%O}6Qu`d~p? z_<)PAol!l95rY{U?|UiRv)!%z)CV+^9bbQqS7K6`eMjVVvn!r}ivs&>UD`U0O)c~) zq4Q@UF8NiqOi>M|-26gk$z@>YQpiH9C&8=!pv+=}`TUomWhM_GvT1 z^!2aL`&>^pT|}+d8&ra2<8-F|(g)-gGnj2mf&EPtfzaPy3wNX8`Fy|@?k(d+<)RP( zOD&WXkIYvbKP;m$Op0#sf`W z;IF@wfjqed{0j5Ix4=6o>!5T-xcc7J3}_+P?t0v)R}zZ71E{A=SB41$^AZfgr1+;o4a82FJGZ5|A)P1n>enE!1V wgF|ggL^fvkc3J56ONS8E7zm$Z8v~)9oN_R>rf(#%j(jXu$-Hk8Bf&fPQt<&17A|unV_s-+svP1KqZ-)*Rpw8WW<?UnQ$2&z(~G!%mr??B?1KJ^%o+v%2rGPEGB z#vBjD%Rvi!w-JjN@rqD9i{vyd7Gom>(N>i?VnCa01zOh$?bV)t1{>NvmyhQQy;|8Fzd(P*h43IFIZ~CcF`SIs#mmp6*b_@L zu@y|!cRzDR6+F#_nLpw19Csu2s}A(P=)7?|JnvOy^kI}s#hh*IqI(DO`N&7&DoZ|@3`66 z;8Hnj+rF8$gXsdYT2&CVG6XO#>Os(N{cRgN$(TuR~Y!`i%w z;`I{3QQ>ck)IU;>g$ApC)@FE?y4~N`+uvT}Cr%|@q7)@%id>Bzi`G)9QgKjee#EiU z&V}Onhp#c8@ndm;*E7ra9&H20W4iS?Ki|+ur?Z$a)X%Sf-{SwS@vUdWl!}wqgO=%G zZ7&u(zq)INxv;Ez=(9yTd%FT_UhnuG>}q3iVHn!p@M*|IE<$kr-twN{nhIrGS#3sr z>l`sTp@fzozlEz0T`gfd|LyGQxal0xP$nW;1pN?=`mHnqXTny}V7`}fZZUdn9;6d_ z5i0egHw8cBYgP}q54n5pSCUk)v9mVQJ=T1plC8NRF_$bEf4qe6M<^GCI$!9qeOv z!|*-c4fKHT@w`a;Q^O4%@&MU}--ls&=~1ua80w|z1BH&fs(sq;{2U$GpsC`YwDb`5 z5Oo(jsB>$msju#UITZQ731}bNuRTC#lr-9y_sm{OZ?`80QSa_u2JAM^@e_CvSlng4 zZ5l}QyXw$zP~}hYm9oB2)XYCV_HRN9%WIF5a5`}{1-0%6D}|Wn7^i1tolD7{ zmb>O2JU@?%MSdyBUgXQ(2oa(y;3LiZdP9fWS+hCV827V$u({!xav4 z#Y(<@=Mr99Utg~j_$fFnm}9kK`_HhiqOUfQ-nxNQ;fG@3n%%mZh+iKD{Plyz zB4Yq5ZM?#6>|6VBPoDXFbf$Bi(F=5z_hIH!y`(yx)cZB~ zc4_%miSjoBtu56eElWv>fYQsup8Iyx&1wBl6>4W{ct8 zXVtXVQ!tvhKWG_kSi#K3Q;=u(bK>JbPzA?Kliz{0(tP>ZKa;IoCuUqpr2{*S`uyLk zWWNXgI66H{I@iL<$^B`&nU&2UHuHRRK2rFeaBD-RL(t?ym#2Z{^Tg9>mxaH#(G_X* z9}GW^9Nw+I8b7ZLD^;MB5%}Y6|2=)^KA+6ueF=$KS<168o8fqQjLFM$2r3@K;G2M& z)FE*)EL(C&#S_ad0BceRL)-yFXoc|e8k5}j^s5Vo^R8PkM#9p?+kr2fU*YS>4H5DG z;7kmgkxx(1vAv6YG5xwmiCDY2xQJ6I9lJd0Si$lkA#76cI2AwDn(G0V)R=i`&i9D# zYsLM-=g)NQBkWH`pL`9@yIYPh@kElhZV>Tv(oJ*GZW)GJLyAz`MFxOqx$s&N)uM$kXX#}_?P zv-sPTvv>x4c4qH*>6_AZOLavJgU=tjg)fzt{}XoNP&QD8@A!)$D@0fK{Qb_@K_x$R z`gfB+^p{3ouaE8e>oVUmPAV=hf5rE{US_$p?cYy@Pxteq^eh{nK3(1A^$WB#Cb0Zz zW_@MfPE$qEn%zXaHyD`oJgH5;&ACRp^S)Xx6pGm-FZA{SOW-T-S9cQ>)QPoNY5L_| z82RIwe&9sWv%L_K_s>t%DJT~GE+$MlO%_CE9-iIv+3KaBeySapbE#gbrURdY)Da5} z4UJg(d0kzdOxs8K|;7LT`~zx3Z$ROc^PeD~q~v1&Ss==yg=8G;6OUI^>$be|x`i7!D}s+ZN2q zY2gX@_WK?7rwIRt-o5t=>7J~vs^aVzOEm`C9}WE8{v?x;t6+=1*SdR5dxwl8y@%(E z86R`SH6M z%yW-c`*OSX?Fq-pmaCKAsl<7{KpX0Um~*Mp7xCras4({8-cfxRl@Ra)tLDX$ z@K3##TM@;?6gcm<{Q%~-22 z+eDi5ouL1?blGO6g{EDF+guucG;r5+emHr7MRpr3u>ON>?a-OYuy-$Quo$h2`%G-h z!D_afou0mO{d(AG`U_>DI8;txg@~VlS>y4ATMsJ5=?$XLm$$T>5*^&|yd!w(-mlf~ z=x~?T?6si8U60>}*k(BM1g0U+7^g#%^XB7n5 zG{p@wK~`9ybH!9RsQJKd+0R2ujTYU@>K`FctUN&C(4ZlR1!Df8C0slIM#=W2`@04x z^rqbLdH6pP7pw1XBqm5hdk~}YMV|WA>W5P~<+b@uEt350EXaxw@?c`^9{6+er`}IC zX@2d2Nsof_M~qN>$e%&6#_a}l2ePFYf^ZaZA=!8wM*(b7fiP7@`7VYl0d-8`mw!%M z^QBI)?nDw{1ryz561b^|dw{3L_VV*C`P~J4#jXdZ^NJf4-(tRv=lI)1hH6KKhA{gm zCxm3&!jw|HSnLS#tbDHrGkO!EZmpPkyeJpL`j9$5La=)sb|_%N_;Rs(?}gMu@_e`; zV%^3|z=5iK=d9=;d}aIG3ou%Y))FgWjELC-2K z5`N|EzWPD=2on;BWke8%VPdK>N8FGv&dH2aYN~vh8CjE<$bNzEEfmfbABArL>gii< zD#o4=gim_?2Lnpaq=FzuNLBHHo?qtntgI8wX3Orr^}PPjxbX@7$7I<00@+iW4VCBd z@9HA!@O7Qd%H7FzUvMW4_#}T&Gh?gB)N3e{BRBKcb@Df`i(*S#Qen(u&g6D}&_^~U z)N(?Bayp}M6=J%$`={ez?OX>>h<@Q#_1RgP{~D7|NJu4+Nc9h6EBL|uh7}ua2ngB$R-FpwEgVSP&zrD#8EBLlj{RK5p{lh^5QS)mp?3E`%!? z@c$9?3#n`5b9SRt4;eo+$h1&tRfCB^0Af!s4{F@7HYRBASsS z6U3D=xbN4dTe7va^+C79u+qZ)J5A_(JYq19_qg0kGRVhgeDg>q@Kl?VtYvm*f8U)e zIpA1O*->B5xc>|S%Jq}Pwfs(O{$#H z!o$A1bMT5>q->a7Cn`&J{&aAWpx$w-^TC*MJ3lbJ+@Q6sO<3dcg-Fhb zZ16>sHfM2ZO9Li`6_sj?b{aSQCc1$;S*_lLT)BLC-!E62lOmd~9=nQ~RZ!mU1*?w; z%^QdMpY-*bMJOb!T93;!)dG(bbW#vwI<~)DU53eXRvA`PBH@>Mu>m~ zPRupPQC)`K9(SmZj>dPtRU_`u-q~5X`CE;i0lJY$m0Q#OcX2R?5}wT;hn0&cmt%aq z0faJECc%$gj;tTw(Q)h%K$vWLOWh4!X9P=bK7tuGqRAc0kvfhVD1shwadDL*lw*(u zWUWNPq9+=Us0e818#jsml(ymZdtsqVfFRZcD-|CsI%P|Ozf^pLL@MQv5}D$KcQ5zF z-R_yRrGAWn3A)?#R1!dODzH}rt4Wh%+dfDljg#VfBS+rLVi8q>Q#!CfLMno9u!fJH z9|+r05nVsN?`Nha{fOOtRjYdZ%EJCZSK<0qh49rsP-kc&0+(EtwfgJsiDSLVU)AdC zixA`+@vI)4-Ii)qvE0`sVB23vk&+>E#l_{kYGYCdhNl;J8aCn5ST^QRpj+*1szauM zQUm`oGTYQ~6bs^Df)n4A2~?npW_?(EdWJJn!&5zOav_p2ytBJY8&Ul$fBe3U(cY>2 zenjZPuLIg{Mxf-SD+Vd|@4uIp^2QwQMdg*28acMd=8xO3_|Hwe7Q1mHB&k-9OQxw;>={RN`@NvNo@uB(M+EevrX9S8omO}c=(sZ~e>`0N zf&Lg9gTGt(csF;kzk;0G&6V5M>Ljkt&T!Qexdp`XerxMLQ~EsJ4bCXx`S$1Fe94u{ z<7ZwIbBhr%&50c6(kEMp%2b z&Mq%6>v7fB);=!LL)68m0aYPszb>HTTiJ+qHRQa$lDej&DNX{UjTKUe7#p0ywJsHV zOVNuF*o1`0W(>O&LIJQFl+uE|p6DgD0_IkV8=-~vuV23gvB5z!W5vT*=dD`7FA!!x zuvs0Zb-zI?_kNW05##idpVZuj*E>swXcc$5KH*`9dI#folZhj1(a1b&D#zazc^nVj zMoDd$M=8(^LBYX%VCfj6$3a0svztd2oxxd}MZALnzkaAPC;0t7EIIFwfiPcX8{L_P zeN+P$tRRd;zTWUMF^g?0MV=iZaQOmY>I$YY`u$I8VdY2XC%Xq{fvvMLl9FnyB(1Hj zJ9R`*@Ix)0+s=aHx#;bv`tey8L!GyNQhX85eztT>VtpfJX9t%VD5B}46pOgZ^vBi zy;Iyn#2hmC&rW5V%QtX9Q6O*ygrpesMw$k-ZP#0 zXlreeD!Yc5N?wbH+F4L^sD@{MR14--Sg{EM^G+Mu+qcEPY;Tvh9;Rpe6>cm_p8kYO z`%8mu&B zFl=XVY;Rq@L8=wCB&W0} zBhE=0*@y)UZPUU6a`84LxVJ+4j*zPkJ+A(Wn>uy1wKm2El3C-zy!3HbXCom7WNg6u zx3=~=c99>BzXu%^=4fWuj1G>v#*n|wN3m90)|r&6v*-Vt_VM>_uff-Z3TU&Ns~pKx z+djN!6;v*|l%MeK5ilu#XP;i)9qEFV83#h-IrNf}SNy7MbVkLx=8X*zWp;OOqoI&X;}gb@~BNo|PhkaC}6 zq#dL;JQmY(HCyS_4iOy+rUaI`9LLXA$$0JLeK#*34NaySY6rj)C*u(HNJB%z2@PB9)Kqhv}T zxA2%jK91b<50cs86ob2g$n4`}ca4|%$dlSSFx!Q-x>EZ2vAWJ%kaMQOA!s~29~GQ( zjgAazr@nie`|w6G$7-@PiA%m2vmzFOUeQXsLtiNrnEwp{1`!QZkbF$GIMuUgCVXkZ zm(kf&Ws0T*Aopm|QPm;iUuIK%QqqbcH`O<#J9i*g!hqg^5ms*d=vji*PI?Qc%SxlG zs{uYtBbAE~F5fE-$kmJ0JwCOtxwX}is&{N`tea4t1WRU7{LAri!?Jjmrn0{N)QTKU ztR@cJnyRHDqj1Whezj%!ZO0F{(a(27$lXiQZ&liKOVH&^6Z)`FgZq^fXQa(}|I!dYki4q}-q2)HKEQY58+aVI zEMB5lI=|~Hc~=9q+On%1GIS-wn6)epSL}Ar1d)8)S&3BIeXqFm_twS^9YfMZ}tyKD1~QxIPI#<^fHhNq$*bCLmk#n?*WL~}jl*5D`X z1-I_v_;uD+XkTbQ-N1W2q)KN6Vlk@j;J`E3>&5%W`raWSIo_tDiX=Fb-Og%AQo?_$dM?r0Jv*CqLP~;h zYFurkcj{FbnagpfA)x)wkN%`j^{9*2m@me6Pe|d4QuMoCk}75dhL`) zBtu_RvkiZzw4UbF6Y>Io{T+euf zs*}&PLW^!T$j5+c#*#GU{=Nj9=^+VLXr*1PvH8U2Q9$eLJFwtOFx+V~pxjgq!(aRq z#rrDx+Fa#z-da@lwUqDWa)4n{o8t3J8Jl7Sc(z|QPDmAt%g{L){ch9Vvch|ghmrN@ z?d@%6^NEb%Ya4(aB8ZpRr9-<^i%@5Q9b*n6G`GRgkSa^Xj1e#1FMAYLF~eD2P+`jh zc&UL>N7Xr-`tTYRT*DC(1s$;!#odK$&n(gG;J(q1-Y3)-iA~aeC-;0a8?pKS@teWv zG6Db}m{GmS_THX0_$IZ1)9}HpI6-{tIJR0IBvcQl(x&sC8KN0KcRW(d+>|d zZHO*4rO^H?a86hQC49Rl-u#Y1*a6}Zb%xvHn(<{9iye^zzNL|&pqb8I`YpeW-M(>w z-;yzJw$sj`)QyD&Ii0r-^<1q)9|@%0{djyNe*M<{I_M9B4hB{{{>GzipQQc|TOL)I zhlpi3wjfcOV1vSu(Z$!Ld*fOdFSL0m$oZb)5hschu-}c&rtb}tK4iZ?S?;qp(wlu3 z_k~CE$5MxK15Z#a@fu+y`bEgqA^9wCW~7Wu$@S4gS41|&&S+7M$N!GDjTWfepkM~xz&xTMH<;CnakU*Jo$CgJM^CKO(Bo(`I_~% ztrcPL$W0tMiK3qggKSr^Su^-acOA~r(%E@6J~BJcy>s?G=hwW??|ZxSx9KzQ3Hr@{ zx>P#RG(>m*QFk5JqoXIT0{< zzptb$>AEFvozWo4poD>W6CWZVA}1UioY>{eoSZ?v8~6aA{+;H8)-2EkRWNF!xRk4v zZs^)SUuyj8pAB}#U}cu|2#0Uey zAdK8JQmD_J1pX?Iv)v-j+w_w>5X+jeSNr7r@-M(1;&77QA0MY+ctm2nA99(}`sXUi z{3fGD>+Iaz+!F%tg;(Vq9RL}{RjrNWa7TS}61Agb#u1E(eDt5Y)|>Exjqg}LT8cbh zNwEZYOGf6MIW8oDXyNVE#(6Xea(q%hKt@k$OEz1!Odyqb71rO^;Q{Mawz!i;M_>u( z0IEm}unBUpmzP0(?hf_oTk;F!((btMhSQ%v2LuSF>Y+(t!3Yynon{eBD}|rD7M*+^ z@2Zm^kw$vq%E6gSqvLfxS-7Q2Cm&(G-ZJM(^m)bw;z z-*T4bYr*d_%35?LpcZXNjiwI8CAoH%)vna5QPS6G&!Uk?f(u;&#W#L9pP$q=Ha3EL z5tm4T@fwhYj}YQ8b6%&5 z;kZuO%Q(Qd^jBbH>@CO1{#j!mJtL$1J5-sW0GC=dmF*Wvj{ z_e?#mvE38<=oiJrHpK^L7e`0+TPAyV$2FCsOG`(xr9J7^e*94M;e|xiCcMojcn1Nd z0V)Ly&F6b5gXx7?IXS+q=GU4l1~wBe`2A1M=muxN`SJGXXo58rz_r)#S|WCtmE@L^ zPCz@oLhuDpLzJSaQ#yN2GPYtAmBQ>bUyu&A1u9osa;nbbjG4jAdr0^G$=th2H!sON zy1sr}p>3bmDW{(;e64g)M(uS;Kp}hn=YbZTPHAaJ@TEyEFLvJRhDm_PS$MC_oHtkm zJC8j-Ua)9G&)*&Y*CWbn1Ne3FAI#RO zL-Jd+#RGgXJbI0j8qv;!HK5Q=6#qrg^VPe3%mHu#trSp(r<>b*0oOqWKp`S)K4xXz z{Vy0nPO;(=W1B}tAS_D@z73RdrNRcgiy&b-iyrI@?>Qp!0xz3{!M*AJzf7BClvF{7 zOliU!j5q*REM>64`5=rRtkL0yUP7Zyga5&1mcLk7^Jvb?1

  • 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 HtzQ0LwH7Sb diff --git a/docs/src/site/docbook/reference/images/sequential-flow.png b/docs/src/site/docbook/reference/images/sequential-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..0036b04dbe968d8f1c7c20dd9cce5d32d3deca08 GIT binary patch literal 12009 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 literal 0 HcmV?d00001 diff --git a/docs/src/site/docbook/reference/images/spring-batch-layers.png b/docs/src/site/docbook/reference/images/spring-batch-layers.png index ff17640743c8f50ee3a8f225caab0e690c9f2d9a..136617340ceee90cbf3426377004434b7fe7af26 100644 GIT binary patch literal 18012 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 V?PxVS-QB~j3+8aM5|b;@{{R}BQY!!e diff --git a/docs/src/site/docbook/reference/images/spring-batch-reference-model.png b/docs/src/site/docbook/reference/images/spring-batch-reference-model.png index 0da2b3bbc5d30c2f3eb41425e30fb9dcdae36acb..7062d470b4a57b95270ff87ae9303c052386ab47 100644 GIT binary patch literal 25714 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 S_JbCvXbX(8z@i! literal 25194 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

    `ygvEr!><9yUM9SU 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

    h0AIzjD6$9MG(vKLGi_lzk^*f>()vQQ77pPR3 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 U6+AH+2LV4rU6Tu?=N%*e15)GJm;e9( diff --git a/docs/src/site/docbook/reference/images/step.png b/docs/src/site/docbook/reference/images/step.png new file mode 100644 index 0000000000000000000000000000000000000000..1a321fafecc9a2d1099340ea0e994a0a5535085f GIT binary patch literal 16955 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 G{r(3N!lSeR literal 0 HcmV?d00001 diff --git a/docs/src/site/docbook/reference/index.xml b/docs/src/site/docbook/reference/index.xml index f16e82c2d..890d1edc0 100644 --- a/docs/src/site/docbook/reference/index.xml +++ b/docs/src/site/docbook/reference/index.xml @@ -48,17 +48,21 @@ - + + + + + - - + + diff --git a/docs/src/site/docbook/reference/job.xml b/docs/src/site/docbook/reference/job.xml index adbbef628..92efd3f85 100644 --- a/docs/src/site/docbook/reference/job.xml +++ b/docs/src/site/docbook/reference/job.xml @@ -1,281 +1,253 @@ - - Configuring and Executing A Job + + Configuring and Running A Job + + In Chapter 2, the overall architecture design was discussed, using the + following diagram as a guide: + + + + + + + + + + + + While the Job object may seem like a simple container for steps, there + are many configuration options that developers should be aware of. + Furthermore, there are many considerations for how a + Job will be run and how its meta data will be stored + during that run. This chapter will explain the various configuration options + and runtime concerns of a Job.

    - Introduction + Configuring a Job - In Chapter 2, the overall architecture design was discussed, using - the following diagram as a guide: + The only current implementation of the Job + interface is SimpleJob. Since a + Job is just a simple loop through a list of Steps, + this implementation should be sufficient for the majority of needs. It has + only three required dependencies: a name, + JobRepository, and a list of Steps. - - - - + + <job id="footballJob"> + <step name="playerload" next="gameLoad"/> + <step name="gameLoad" next="playerSummarization"/> + <step name="playerSummarization"/> + </job> - - - - + - When viewed from left to right, the diagram describes a basic flow - for the execution of a batch job: + The namespace defaults to referencing a repository with an id of + 'jobRepository', which is a sensible default. However, this can be + overriden explicitely: - - - A Scheduler kicks off a job script (usually some form of shell - script) - + + <job id="footballJob" repository="specialRepository"> + <step name="playerload" next="gameLoad"/> + <step name="gameLoad" next="playerSummarization"/> + <step name="playerSummarization"/> + </job> - - The script sets up the classpath appropriately, and starts the - Java process. In most cases, using - CommandLineJobRunner as the entry point - - - - The JobRunner finds the Job using the - JobLocator, pulls together the - JobParameters and launches the - Job - - - - The JobLauncher retrieves a - JobExecution from the - JobRepository, and executes the - Job - - - - The Job executes each - Step. - - - - When execution is complete, the Step - returns control back to the Job, and if no more - steps exist, control is returned back to the original caller, in this - case, the scheduler. - - - - This flow is perhaps a bit overly simplified, but describes the - complete flow in the most basic terms. From here, each tier will be - described in detail, using actual implementations and examples. -
    - -
    - JobLauncher - - The most basic implementation of the - JobLauncher interface is the SimpleJobLauncher. - It's only required dependency is a JobRepository, - in order to obtain an execution: - - <bean id="jobLauncher" - class="org.springframework.batch.execution.launch.SimpleJobLauncher"> - <property name="jobRepository" ref="jobRepository" /> - </bean> - - Once a JobExecution is obtained, it is passed - to the execute method of Job, ultimately returning - the JobExecution to the caller: - - - - - - - - - - - - The sequence is straightforward, and works well when launched from a - scheduler, but causes issues when trying to launch from an HTTP request. - In this scenario, the launching needs to be done asynchronously, so that - the SimpleJobLauncher returns immediately to it's - caller. This is because it is not good practice to keep an HTTP request - open for the amount of time needed by long running processes such as - batch. An example sequence is below: - - - - - - - - - - - - The SimpleJobLauncher can easily be - configured to allow for this scenario by configuring a - TaskExecutor: - - <bean id="jobLauncher" - class="org.springframework.batch.execution.launch.SimpleJobLauncher"> - <property name="jobRepository" ref="jobRepository" /> - <property name="taskExecutor"> - <bean class="org.springframework.core.task.SimpleAsyncTaskExecutor" /> - </property> - </bean> - - Any implementation of the spring TaskExecutor - interface can be used to control how jobs are asynchronously - executed. -
    - -
    - JobRepository - - The SimpleJobRepository is the only provided implementation of the - JobRepository interface. It completely manages the - various batch domain objects and ensures they are created and persisted - correctly. The SimpleJobRepository uses three - different DAO interfaces for the three major domain types it stores: - JobInstanceDao, - JobExecutionDao, and - StepExecutionDao. The repository delegates to these - DAOs to both persist the various domain objects and query for them during - initialization. The following configuration shows a SimpleJobRepository - configured with JDBC DAOs: - - <bean id="jobRepository" class="org.springframework.batch.core.repository.support.SimpleJobRepository"> - <constructor-arg ref="jobInstanceDao" /> - <constructor-arg ref="jobExecutionDao" /> - <constructor-arg ref="stepExecutionDao" /> - </bean> - - <bean id="jobInstanceDao" class="org.springframework.batch.core.repository.support.dao.JdbcJobInstanceDao" > - <property name="jdbcTemplate" ref="jdbcTemplate" /> - <property name="jobIncrementer" ref="jobIncrementer" /> - </bean> - - <bean id="jobExecutionDao" class="org.springframework.batch.core.repository.support.dao.JdbcJobExecutionDao" > - <property name="jdbcTemplate" ref="jdbcTemplate" /> - <property name="jobExecutionIncrementer" ref="jobExecutionIncrementer" /> - </bean> - - <bean id="stepExecutionDao" class="org.springframework.batch.core.repository.support.dao.JdbcStepExecutionDao" > - <property name="jdbcTemplate" ref="jdbcTemplate" /> - <property name="stepExecutionIncrementer" ref="stepExecutionIncrementer" /> - </bean> - - <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" > - <property name="dataSource" ref="dataSource" /> - </bean> - - The configuration above isn't quite complete, each DAO - implementation makes a reference to a Spring - DataFieldMaxValueIncrementer. - JobInstance, JobExecution, - and StepExecution each have unique IDs, and the - incrementers are used to create them. +
    - JobRepositoryFactoryBean + Restartability - Including the incrementers, which must be database specific, the - configuration above is verbose. In order to make this more manageable, - the framework provides a FactoryBean for - convenience: JobRepositoryFactoryBean. + One key concern when execution a batch job, is what happens when a + failed job is restarted? A Job is considered to have been 'restarted' if + the same JobInstance has more than one JobExecution. Ideally, all jobs + should be able to start up where they left off, but there are scenarios + where this is not possible. It is entirely up to + the developer to ensure that a new instance is always created in this + scenario. However, Spring Batch does provide some help. If a + Job should never be restarted, but should always be run as part of a new + JobInstance, then the restartable property may be + set to 'false': - <bean id="jobRepository" - class="org.springframework.batch.execution.repository.JobRepositoryFactoryBean" - <property name="databaseType" value="hsql" /> - <property name="dataSource" ref="dataSource" /> - <property name="transactionManager" ref="transactionManager" /> - </bean> + + <job id="footballJob" restartable="false"> + <step name="playerload" next="gameLoad"/> + <step name="gameLoad" next="playerSummarization"/> + <step name="playerSummarization"/> + </job> - The databaseType property indicates the type of incrementer that - must be used. Options include: "db2", "db2zos", "derby", "hsql", - "mysql", "oracle", and "postgres". + + + To phrase it another way, setting restartable to false means "this + Job does not support being started again". Restarting a Job that is not + restartable will cause a JobRestartException to + be thrown: + + + Job job = new SimpleJob(); + job.setRestartable(false); + + JobParameters jobParameters = new JobParameters(); + + JobExecution firstExecution = jobRepository.createJobExecution(job, jobParameters); + jobRepository.saveOrUpdate(firstExecution); + + try { + jobRepository.createJobExecution(job, jobParameters); + fail(); + } + catch (JobRestartException e) { + // expected + } + + + + This snippet of JUnit code shows how attempting to create a + JobExecution the first time for a non restartable + job will cause no issues. However, the second + attempt will throw a JobRestartException.
    - In-Memory Repository + Intercepting Job execution - There are scenarios in which you may not want to persist your - domain objects to the database. One reason may be speed, storing domain - objects at each commit point takes extra time. Another reason may be - that you just don't need to persist status for a particular job. Spring - batch provides a solution: + During the course of the execution of a + Job, it may be useful to be notified of various + events in its lifecycle so that custom code may be executed. The + SimpleJob allows for this by calling a + JobListener at the appropriate time: - <bean id="simpleJobRepository" class="org.springframework.batch.core.repository.support.SimpleJobRepository"> - <constructor-arg ref="mapJobInstanceDao" /> - <constructor-arg ref="mapJobExecutionDao" /> - <constructor-arg ref="mapStepExecutionDao" /> - </bean> + + public interface JobExecutionListener { - <bean id="mapJobInstanceDao" - class="org.springframework.batch.core.repository.dao.MapJobInstanceDao" /> + void beforeJob(JobExecution jobExecution); - <bean id="mapJobExecutionDao" - class="org.springframework.batch.core.repository.dao.MapJobExecutionDao" /> + void afterJob(JobExecution jobExecution); - <bean id="mapStepExecutionDao" - class="org.springframework.batch.core.repository.dao.MapStepExecutionDao" /> + } - The Map* DAO implementations store the batch artifacts in a - transactional map. So, the repository and DAOs may still be used - normally, and are transactionally sound, but their contents will be lost - when the class is destroyed. + - There is also a separate FactoryBean for the in-memory - JobRepository, which reduces the amount of - configuration required: + Listeners can be added to a SimpleJob via + the setJobListeners property: - <bean id="jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean" /> + + <job id="footballJob"> + <step name="playerload" next="gameLoad"/> + <step name="gameLoad" next="playerSummarization"/> + <step name="playerSummarization"/> + <listeners> + <listener class="org.springframework.batch.sample.SampleListener"/> + </listeners> + </job> -
    - Transaction Configuration For the JobRepository + - If either of the JobRepository factory beans are used, - transactional advice will be automatically created around the - repository. This is to ensure that the batch meta data, including - state that is necessary for restarts after a failure, is persisted - correctly. The behaviour of the framework is not well defined if the - repository methods are not transactional. The isolation level in the - create* method attributes is specified separately to - ensure that when jobs are launched there if two processes are trying - to launch the same job at the same time, only one will succeed. The - default isolation level for that method is SERIALIZABLE, which is - quite aggressive: READ_COMMITTED would work just as well; - READ_UNCOMMITTED would be fine if two processes are not likely to - collide in this way. However, since a call to the - create* method is quite short, it is unlikely - that the SERIALIZED will cause problems, as long as the database - platform supports it. However, this can be overriden in the factory - beans: + It should be noted that afterJob will be called regardless of the + success or failure of the Job. If success or + failure needs to be determined it can be obtained from the + JobExecution: - <bean id="jobRepository" - class="org.springframework.batch.execution.repository.JobRepositoryFactoryBean" - <property name="databaseType" value="hsql" /> - <property name="dataSource" ref="dataSource" /> - <property name="transactionManager" ref="transactionManager" /> - <property name="IsolationLevelForCreate" value="ISOLATION_REPEATABLE_READ" /> - </bean> + + void afterJob(JobExecution jobExecution){ + if( jobExecution.getStatus = BatchStatus.COMPLETED ){ + //job success + } + else if(jobExecution.getStatus = BatchStatus.FAILED){ + //job failure + } - If the factory beans aren't used then it is also essential to - configure the transactional behaviour of the repository using - AOP: + +
    - +
    + JobFactory and Stateful Components in Steps + + Unlike many traditional Spring applications, many of the + components of a batch application are stateful, the file readers and + writers are obvious examples. The recommended way to deal with this is + to create a fresh ApplicationContext for each job + execution. If the Job is launched from the + command line with CommandLineJobRunner this is + trivial. For more complex launching scenarios, where jobs are executed + in parallel or serially from the same process, some extra steps have to + be taken to ensure that the ApplicationContext is + refreshed. This is preferable to using prototype scope for the stateful + beans because then they would not receive lifecycle callbacks from the + container at the end of use. (e.g. through destroy-method in XML) + + The strategy provided by Spring Batch to deal with this scenario + is the JobFactory, and the samples provide an + example of a specialized implementation that can load an + ApplicationContext and close it properly when the + job is finished. A relevant examples is + ClassPathXmlApplicationContextJobFactory and its + use in the adhoc-job-launcher-context.xml and the + quartz-job-launcher-context.xml, which can be found in the + Samples project. +
    +
    + +
    + Configuring a JobRepository + + As described in Chatper 2, the JobRepository is used for basic CRUD + operations of the various persisted domain objects within Spring Batch, + such as JobExecution and StepExecution. It is required by many of the + major framework features, such as the JobLauncher, + Job, and Step. The batch + namespace abstract much of the implementation details of the JobRepository + implementations and their collaborators. However, there are still a few + configuration options available: + + + <job-repository id="jobRepository" + dataSource="dataSource" + transactionManager="transactionManager" + isolation-level-for-create="serializable" + table-prefix="BATCH_" + /> + + + + None of the configuration options listed above are required except + the id. If they are not set, the defaults shown above will be used. They + are shown above for awareness purposes. + +
    + Transaction Configuration For the JobRepository + + If the namespace is used, transactional advice will be + automatically created around the repository. This is to ensure that the + batch meta data, including state that is necessary for restarts after a + failure, is persisted correctly. The behaviour of the framework is not + well defined if the repository methods are not transactional. The + isolation level in the create* method attributes is + specified separately to ensure that when jobs are launched, if two + processes are trying to launch the same job at the same time, only one + will succeed. The default isolation level for that method is + SERIALIZABLE, which is quite aggressive: READ_COMMITTED would work just + as well; READ_UNCOMMITTED would be fine if two processes are not likely + to collide in this way. However, since a call to the + create* method is quite short, it is unlikely + that the SERIALIZED will cause problems, as long as the database + platform supports it. However, this can be overriden: + + + <job-repository id="jobRepository" + isolation-level-for-create="ISOLATION_REPEATABLE_READ" /> + + + + If the namespace or factory beans aren't used then it is also + essential to configure the transactional behaviour of the repository + using AOP: + + <aop:config> <aop:advisor pointcut="execution(* org.springframework.batch.core..*Repository+.*(..))" @@ -290,11 +262,10 @@ - This fragment can be used as is, with almost no changes. - Remember also to include the appropiate namespace declarations and to - make sure spring-tx and spring-aop (or the whole of spring) is on the - classpath. -
    + This fragment can be used as is, with almost no changes. Remember + also to include the appropiate namespace declarations and to make sure + spring-tx and spring-aop (or the whole of spring) is on the + classpath.
    Recommendations for Indexing Meta Data Tables @@ -369,175 +340,131 @@
    + +
    + Changing the table prefix + + Another modifiable property of the + JobRepository is the table prefix of the + meta-data tables. By default they are all prefaced with BATCH_. + BATCH_JOB_EXECUTION and BATCH_STEP_EXECUTION are two examples. However, + there are potential reasons to modify this prefix. If the schema names + needs to be prepended to the table names, or if more than one set of + meta data tables is needed within the same schema, then the table prefix + will need to be changed: + + + <job-repository id="jobRepository" + table-prefix="SYSTEM.TEST_" + /> + + + + Given the above changes, every query to the meta data tables will + be prefixed with "SYSTEM.TEST_". BATCH_JOB_EXECUTION will be referred to + as SYSTEM.TEST_JOB_EXECUTION. + + + Only the table prefix is configurable, the table and column + names are not. + +
    + +
    + In-Memory Repository + + There are scenarios in which you may not want to persist your + domain objects to the database. One reason may be speed, storing domain + objects at each commit point takes extra time. Another reason may be + that you just don't need to persist status for a particular job. Spring + batch provides a solution: + + <bean id="jobRepository" class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean" /> +
    - Job + Configuring a JobLauncher - The only current implementation of the Job - interface is SimpleJob. Since a - Job is just a simple loop through a list of Steps, - this implementation should be sufficient for the majority of needs. It has - only three required dependencies: a name, - JobRepository, and a list of Steps. + The most basic implementation of the + JobLauncher interface is the SimpleJobLauncher. + It's only required dependency is a JobRepository, + in order to obtain an execution: - <bean id="footballJob" - class="org.springframework.batch.core.job.SimpleJob"> - <property name="steps"> - <list> - <!-- Step Bean details ommitted for clarity --> - <bean id="playerload" parent="simpleStep" /> - <bean id="gameLoad" parent="simpleStep" /> - <bean id="playerSummarization" parent="simpleStep" /> - </list> - </property> + <bean id="jobLauncher" + class="org.springframework.batch.execution.launch.SimpleJobLauncher"> <property name="jobRepository" ref="jobRepository" /> </bean> - Each Step will be executed in sequence until - all have completed successfully. Any Step that fails will cause the entire - job to fail. + Once a JobExecution is obtained, it is passed + to the execute method of Job, ultimately returning + the JobExecution to the caller: -
    - Restartability + + + + - One key concern when execution a batch job, is what happens when a - failed job is restarted? A Job is considered to have been 'restarted' if - the same JobInstance has more than one JobExecution. Ideally, all jobs - should be able to start up where they left off, but there are scenarios - where this is not possible. It is entirely up to - the developer to ensure that a new instance is always created in this - scenario. However, Spring Batch does provide some help. If a - Job should never be restarted, but should always be run as part of a new - JobInstance, then the restartable property may be - set to 'false': + + + + - <bean id="footballJob" - class="org.springframework.batch.core.job.SimpleJob"> - <property name="steps"> - <list> - <!-- Step Bean details ommitted for clarity --> - <bean id="playerload" parent="simpleStep" /> - <bean id="gameLoad" parent="simpleStep" /> - <bean id="playerSummarization" parent="simpleStep" /> - </list> - </property> + The sequence is straightforward, and works well when launched from a + scheduler, but causes issues when trying to launch from an HTTP request. + In this scenario, the launching needs to be done asynchronously, so that + the SimpleJobLauncher returns immediately to it's + caller. This is because it is not good practice to keep an HTTP request + open for the amount of time needed by long running processes such as + batch. An example sequence is below: + + + + + + + + + + + + The SimpleJobLauncher can easily be + configured to allow for this scenario by configuring a + TaskExecutor: + + <bean id="jobLauncher" + class="org.springframework.batch.execution.launch.SimpleJobLauncher"> <property name="jobRepository" ref="jobRepository" /> - <property name="restartable" value="false" /> + <property name="taskExecutor"> + <bean class="org.springframework.core.task.SimpleAsyncTaskExecutor" /> + </property> </bean> - To phrase it another way, setting restartable to false means "this - Job does not support being started again". Restarting a Job that is not - restartable will cause a JobRestartException to - be thrown: - - Job job = new SimpleJob(); - job.setRestartable(false); - - JobParameters jobParameters = new JobParameters(); - - JobExecution firstExecution = jobRepository.createJobExecution(job, jobParameters); - jobRepository.saveOrUpdate(firstExecution); - - try { - jobRepository.createJobExecution(job, jobParameters); - fail(); - } - catch (JobRestartException e) { - // expected - } - - This snippet of JUnit code shows how attempting to create a - JobExecution the first time for a non restartable - job will cause no issues. However, the second - attempt will throw a JobRestartException. -
    - -
    - Intercepting Job execution - - During the course of the execution of a - Job, it may be useful to be notified of various - events in its lifecycle so that custom code may be executed. The - SimpleJob allows for this by calling a - JobListener at the appropriate time: - - public interface JobListener { - - void beforeJob(JobExecution jobExecution); - - void afterJob(JobExecution jobExecution); - - void onError(JobExecution jobExecution, Throwable e); - - void onInterrupt(JobExecution jobExecution); - } - - Listeners can be added to a SimpleJob via - the setJobListeners property: - - <bean id="footballJob" - class="org.springframework.batch.core.job.SimpleJob"> - <property name="steps"> - <list> - <!-- Step Bean details ommitted for clarity --> - <bean id="playerload" parent="simpleStep" /> - <bean id="gameLoad" parent="simpleStep" /> - <bean id="playerSummarization" parent="simpleStep" /> - </list> - </property> - <property name="jobRepository" ref="jobRepository" /> - <property name="jobListeners"> - <bean class="org.springframework.batch.core.listener.JobListenerSupport" /> - </property> - </bean> -
    - -
    - JobFactory and Stateful Components in Steps - - Unlike many traditional Spring applications, many of the - components of a batch application are stateful, the file readers and - writers are obvious examples. The recommended way to deal with this is - to create a fresh ApplicationContext for each job - execution. If the Job is launched from the - command line with CommandLineJobRunner this is - trivial. For more complex launching scenarios, where jobs are executed - in parallel or serially from the same process, some extra steps have to - be taken to ensure that the ApplicationContext is - refreshed. This is preferable to using prototype scope for the stateful - beans because then they would not receive lifecycle callbacks from the - container at the end of use. (e.g. through destroy-method in XML) - - The strategy provided by Spring Batch to deal with this scenario - is the JobFactory, and the samples provide an - example of a specialized implementation that can load an - ApplicationContext and close it properly when the - job is finished. A relevant examples is - ClassPathXmlApplicationContextJobFactory and its - use in the adhoc-job-launcher-context.xml and the - quartz-job-launcher-context.xml, which can be found in the - Samples project. -
    + Any implementation of the spring TaskExecutor + interface can be used to control how jobs are asynchronously + executed.
    Running a Job - Regardless of whether the originator is a Scheduler or an HTTP - request, a Job must be obtained, parameters must be parsed, and eventually - a JobLauncher called: - - - - - - - - - - + At a minimum, launching a batch job requires two things: the Job to + be launched and a JobLauncher. Both can be contained within the same + context or different contexts. For example, if launching a job from the + command line, a new JVM will be instantiated for each Job, and thus every + job will have it's own JobLauncher. However, if + running from within a web container within the scope of an + HttpRequest, there will usually be one + JobLauncher, configured for asynchronous job + launching, that multiple requests will invoke to launch their jobs.
    Running Jobs from the Command Line @@ -765,265 +692,4 @@

  • {Kkkgr1|5+_C9 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 diff --git a/docs/src/site/docbook/reference/images/job-launcher-sequence-async.png b/docs/src/site/docbook/reference/images/job-launcher-sequence-async.png index f3886040fc5afe31b7ae23ed085b99e263d211d2..8d7ab5d2176cb0a92aa5b9e88a8ed22a3a4c578c 100644 GIT binary patch literal 42291 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 literal 39600 zcmd43by$_r*EV<%DUlMCln?=>k?sy@kdQ`@?(R@hkQR~d?rsjOFCn4`fjpLiKpqJqKLS5t zIx4V+KrnbsgoWkb3k#FV+gcf#m>WPK&I!>mM)G4a&jN0s^`Af54w4F%t&(!S$NU!g znwFN6uJ5aeASOKWt3c8;@0?!(?Y^XvID+qAwcu)EV!aN0_FCf4jd$_ExU!a(me;TA zGv?9J(GMS3$04-o9FNFw5FnqHUZ*wIMg#`u$0H9gl6pg^4!^!0WDn9cHZwze7*|1p zgM)0wbYUTMt_TmZ6oh}OOY7cK$`C+C_bgeR?rKnP3n&EOzA<@q}B5VlTs@5kOx;pNNyR(x9F zjMw3E&JH~lnjjxJA^$!IVCE#A`LOaq>no za#Axg+*irD);gu)CW5hoqSDH$1EPs35k+bR4mvlvvg7x9b59$MJs98#g?ZB(JKZVm zDR;6)4TaZVB5l)A(-o^5Xi$;7p1vfutza$vP#)umX}fB#$KAgxeIT?ZWHV>2;h4;S z+@U{vl0I4D#9uU&Jy}h-ur|53fP2Vi&0)-P`JwxxvD}}i!?eKHkN8HuzrpUnJ4+nH z)p{A_^aIa~FdJtGhd=(1x|HSZ(XS6>ichq9vsch^Cr9(-Dl#w<5;#RU+hWOLOx!0Z zf`24>6usIQzmlt+!M!|YW#GbX$642L)nsvY*?Y2~ocU}(aqZodnc`a7|$wq9i8<1UH zYKBYRH^pWnsAs9y&zNejRblJQIJ~hRaq#pUJ!FH@RA@j0Y6E87vKh7$9r;HVj`-{r z7fDZa59H5F&XBG#_PjDf@V=XeO?dK1s*p2;@e+hxXB=;Bw3iQ+Mwvzh>+H*1$py=V zc{H+Nv*h!Mv$L}=JQTWp+Pqm#8&h09-W@78J10zvALm}jc>*c`Nh%jM$95UUWJcPyH1OUK+7gn9 zm3P8ZGDus+Yq9X#cpEPnm>6V!qH_puLo8L}V9}c~Q8n_KOl@acc)N1Qv>}1pkY65O zSwD~U9D`Gii9y@Sk*FM_kpV4fI&3ut zY5o$G!w5_n>9VE0HvKksN5#*IC@5do5`B<0lt_}@;+&7>3O_$;x4#~F-)rK}+<>nb zt8P?S-cS~n)Yn_<(nRLOVMURAmZtYb=2Ls-iD-08eK5Z^K9o!AINiR|JfFxeaUb!V zQq}K}ZfmC3>3o5;(MWYm;khe+)%B@QT3k>-7)d2BvHQC-`%=e7^zGrHErJq;KRUK- zwrn=+Cl%IJWtF8(dZyVfA+C+%N989o@wwIdT5WT8ynBt&9{2}`cdiGu^9)bzpK8B+ zg{I+-d0ld<+9z?J^B}JLE@+n9(S+#X{nF^R$jZitC?qJdER!6wr>K`!vRYhX;tdb~ zWuaB-iQ7$BXvbh?(i&7{T_u9G$zcy|wzxcgsA}EG_e~t|0miSiH9~yhSlAh8e!?fI z?76?ks982PH#dtJx0wc*l6BWUa}V$hzU?>Yw`fW4%WtOYmFt31ABtKFZyoucRnmYa;hY~$>(+l?W`;!a&nemy~S?op07P_BH3@+OPbsHv~TUX0+)A7sI zvafpJvtGOj7VE>I(Ko9&%lC<8a}03C@F;84$2BO{hwlAe{I!~~QsGiF$T=w5W-xvh zLD=GveA61?M*J!1U6P%)Q-hCnS&d6F^@2phll$xiY%fJ`+vc$5yp$5%sm0jvAo&Hx z(h|9)Osx6Gf~^vt$%Z+DXtsIZGEDRN(`8*4I~G_FS_xZuU2LlE8!n= zUp>1#jk=LTN>1JWypxzj#Xjpcyb#FpmZiQb!PMiAn5B_>;R4ol>|NIN-b_&}afWKa z(CN$4hl!hFpFCk)KE`_old-sdW_rFQW=_sIe%vb`{ef^HxIcF{5J=8A9Q`DuMjFC_ z1ONFsM8Xc<+7AV{s3+Bsa|{dZZY6OK9$2EPPQF1o|-!;@K2{Sm-HBS`gV==)3!9MH;bc|t)(bK9fn$DL|TIzM@_}yVJZKLO4bEj!ks?mB8ub+$D>J(x5S zl)R`5&SVIc#I>EV$D+9ynTlNp0P_UzwDD8Bkl~DdowU(wp*}krNOQu*cn0 zR8;U)pxHmN@7nC#8raImzr>S$cl-IN?rm^SXfE!K-`!wBXX}t+n`sAE+s{Gzmir)b z->BFVrWho4x(jS#FKyX*^rp|AX!oLD>c4&wS{Bl8RTXIv=@2z)Cl2g7V2aU=A(c{j zPa!q4`+U0o^(eIlDekM{?B-O)>^~VwO~n$m@@tW%sp{XZ9YRb8Tnp*)_ z&jpQ!hRHZ5)Obp>#{N1!y;O-?`gVHCo?RmskZ972!$p|P>MYBf&4?R~>z?|M_P(WD z>Yb=ThmdNJ)MH7hqW3=*>Qi0Imwry|MbyVepI`Xp;hL(GXgLcNIOKfrpuc={V_R=h zXwbMfX?87JR4qA|)%fLLu*r!)1cTL6f^e8*jtojPlu#1)`D%pMLr=`h(V)q^W%XvG zW7VK2x@^4BY@Co9N^G8Mv5+YbX@x)Z-)w-WAeW&?M4p@iy|^(I9I0+jJUJ z(te;|^H%%n61s+EMjcOHPlQC*MQg;M%IicS$9bUKqti#1mi0*+ z9+3yO*Q$t`NDEIjyo^ao@jc`^!(_akB>sxEzZv18J3G6So+N5(7-XMqEj^&}N>Jx1 z#i=o`Ypr~DRBk?Q6XLknS+{h(>EDHT6*F0!B(pYfJ8(vKQ5acRYO!Q-us5=I^m6!R zOkzRedLnBOQAd2F+*XD>#PNm#0!d*HMGhei`bZdm8@9gxP+9VO6KYoif#}zS4Uj=} z;l1Z`@Q_9q+*|p(`_8%zfk4P1uU6$)$`?XJKYz9PSq1S%5IDc_ z0mUwFixr+;H=-_*Bf zG{r02zsf%GI^LbwJ;{DWgN(o*i1_MK@X~AS%1Vt4S-1KE5t3pE_XZsvVqA0^ah!bM zyNWCI2*Maj+K%P(=+XOE{*Q%nk`n?&Yl^=n1eQfcQr@CEyz`?D4?@)j^)!mLgqj@$ zf{G3M3kQiyz=J?YA@4;5m7EiH=e#t3I5a&xTtML47@IFq5h;Al;i>~mNengKo=V+( znVQ%irjx5N2;LY|o8#Cy*V0(Zx2Tj7pW7?QNJ21^bDicQ+pRhkPPGqHDneI#dn$}G z3MYz)|LY6f`bn1o?kFQ^YqQ@Z&p!J@O^s)hVJB+QM#IA7%}C9hB^;O>Bo8yg{_i)7 z?5~MnKiC#*g}qK8{{P8KG9Mj>WBY-gHgZ*z&V(8zo8@qgEoypKX2brHkF=7iaM6tM z14!sZ@^wMM#6}c2?P@&I2~ap=WTTMIJ>p%80az(Y?I@6mN|M{3^C}IkkX2ggT8rT4D*Ki<%0Ir3Eg7p9COW!wI5O2Y&9##UE z>kg0o;n^@KI`28cAPqvpn@d7O$gQj&%7#)R$1#S@GV@VOz7R4KukdRv@~k*fp}LDW zxva!^=k-MwLzuQx^CpLGX?LD_p7wGgK{$F@J`+<&dI-~rhm4YfT3*?U&t0p(L2m06 zxO7qQzNx;rU%aCtR&UxNT@`+z7UN6aew)k9#r#p{XsYB9iCU|pEe`7TLN3?Q$jWjE zPv#EzTyu)D`7;e-tZ}aob?8qecr7^UtAm1M{?2OlFy)tR?QeWv%vMh^7I*q89$U*w zAFJSaVgh6SbnG7wX<%sinOU4#^0EWhkH%iV<$t_zI$UESsceqcjvYugL2mxv{E@9z~`>&DrK|~ zV|P}_zj-ilhAP*AuzqdkwS>dwD8hj9 z6FBtKqZA*ALgituskK%mb+Qo6O>D?b3Ftn@hsA%5N1-L+o8ObC@44NP0+}od?)>3!GMEETxd$l{FtlIpR#J#1OFolr!`-0NgEGIm z;a4N~bn-d~JKjWiIFAdII?}${TS(qvpvwL8nwsrfa&$$HsRUYTPY1w9cy6d$hblono(0a7T(L9 z(^h!8yT6i-3Q2Bmf@U||bLlp_o9y5po{;VLpAlbPGzj0LA9~d7Ht77u$ck(!W^>H> zoB_wFaB1F*PnmtE*#I0^rHL+y^NmWA$3FCon*lj{&dtND@UnWcof)YE{AqOAFeJWQ z?_)4&>faGx6l$zWy->eu(Xmw5F>$j=cJs*GYtcDh-?f0c6hH@5U+j6UNYYMy?u4td^6(I=)~6`Nxcr<6i=F`ES3jOp1LPH0oj&>i@q z&3U8Qq+Y%IBA~HjV=yyXXLciN6uq;o^qde;{^#BI%fmCf(Jd!*52|9mw^a`f>~zRv z^R$?RBsf+No+aD>L-hK{HUhof6rU zt+!GiNwuU)Q=k}$jPLTX+sx><;!*ixc5>KsVGAMKsRzHb4prxrH+0+A%V^Sxk?c<=Lr= zHJ;C7sWU$e+rQN9dnUC5R^Lc!G z49QbdDtNDCdc+HaJ5n0hj(qpE^R)Fp+6||yhM%}F`EsNwLokGfM+P8JE9rbUX51-s zBd)AxwCM2GM*aF?bxS|s0;4bkDQWhNhXElgpIFjc@s|(B1yE?S^>V)4+E(sp@j30* z7bO3xNFI?vPSEe=wHn@ix*=yc>Z&_e$#*45Y_+1?hJ=@>r zU{7TZoRS)pA#rz;=jJ@P*z&ph>KPt=nYpNt6?tP_bhA|J&pgv(mz+k@BV)@)@}N}u ze)hg5ISlz}=gfm@C3m(!A`muuCy}d$?78t$10{;>}|3<>c{Ntc(Eng)!WNlEB ziBq}VbEDN#g9A)!-Cmh9K)Pty>OwccWk^=F z1>~pZ&1qv`bs`Q)6D0s2;pjBOY6)oDq#=CWr_u{Fy2u^RHbG{oUPh)``eiNo4wNB7l;A~&`*#K{FU~-u;iT@<-2wHXM-6crLM&}Q*?O?yDzB) zkU^GT_EGf+8|4;4RO|Wk*7*=53`&Y1Zo7_n1d!A(7si+Ukve|#4OLD}4Fz6@bx4Jw zlC>ih!>*9Q(E2mDhL{$`+DMW*N`G98D-_r-zLkjx1=-Tax<%d}liDQek4qUu`A?*+UvpCvowGP0VJC1qQk zGLTr2MlZ~bxi?&~^pl@}M5iCLv38FTk(3|h8BmgpWwb4N@@@X`a1eDl`Ho3oiWHhc z@|hxCzQilnDC3LS0XMrqd#YsV8dijt$3YG*gGZDAh!FhwYRRNz9+ggRh6Fh{$8dSY3rjn?g-h49)R#Ll)Iw~vOP{>SZ$9+|9- z-%YQsA}KB;wv9WUy*irSCc{Pfj{f`>^S=PK!`ll;^ zd`Upl*s7mo|*f6`zxvXMkn=c>DM9$1Dvn`NxCSFo~=9fjJTYK-=GH#krTRD zp3@UX7f(U2E^Ix;w6On^kf3&^CppP; ztQAig-R(d&)TvZSd}@*8eWw0wWI}FXOGW zkg^6jowTa&HuP?Wh6eiG$HcM4HG@805|-X=fNXeiaXiZG8sJHs)#5J5{~uRTZjETq z46OMfSQ&J=`|FR6m8gEgFP8;@`aP?*`}Kv>-v|p>z5?NAQSLLj#U9#$3s;AE{a(jS zJ2ZTpce$#x+)t8^YkL4?E%S_ASQwx>&V)`X_}hsl@ogl9Il1ZV3^g%O?R9dm>9Z#0 zL?shPx$X@l4RF9uvazVn|Df0iZ&ERzopQpPZK-$M7cz1)Tj=9MIYQJQ=(q<)MRoTa z;C-u5;C?g9XeJa0aB;*EceLnauKLX#I+k5-&co{LiLf7LY*>&9b4SI_t=fie)8Bai zP(ordyWcYZGJn_@PntG`CzcZNVFCVb*qBAQ2I=llyx#O&xqI^NAD#CZ@+2(-9_*oZ z=Ty5O;T7+UmNjNwQRVpHHiB>sR#((?hLk%w&(ll^AEmtosLlAnUbt;&gB&1(F8&Hd z13S+)Kp=ZvPS5}@>j>;kW7S)CdtD1CJYSawfi7dtm#%M-+PMi$`|i%;034Ek-t!I} zMBY`NfMowVLp$33N_wcv``Q36KUvcb4q7psoSGPI`VMgU#{`4RpO$S|AZSZLKYV>W zBdl+~n!UZmniTVFQA0tnd4Yi)lMc#K)r@WYzXc{lf&)}KkTD-$c<@Dl_y6se!YhvT zNVVHFHY?_AGl42TOdZB7Z0zhbS{OH4~!cF}*YbzV!`5 zSbWRZA3Y1*rT~MIQbkGWjTUkWVn;`Z)KA*noSg3NZuzfWd7P)`pVo6-?w2=%AZkH^Qy+uPee=pQ$y zNNf~z=qc1;k_sF-jfP2ZG_slhDRJ0Q$;^i+wd$3wZfu;y6V!Z^*q}v0l7HgGei!(^ zWhWNPYK<*|&Y-+J>O@&1w)klJ$MW#`IXDjY@%h-4g+d-o8F&W@fqu-*nA-Of`tE5 zWBs=&Ws5U1GWz?aVVjp$Q}Z!>SV=_%JkDD%VsL7CS?{mC{!e>|SM>Ae&r<6j+uNog zV&yI;>jUxZW-M{QItn?kb1C|0C`iJSBO_%VH;(DUIhP8dFS!lb;>*j*e$s2z*>8;$ z6wsDWx$pid#iDx(yIwwU1Yz+N+sKsRp}5O#X_qgi*+fBvr)IgKjGEe%ei*Ncx;j@` z2hg^3zo()h;WmN?#zaRy$HB?S&X%$p868D^@}#%7m(6Ovz}y1d5zm02dZy4GO~2#% zY$rra-_fyZ#7~ojg&>55DeWN`k*~K@zbi{Nk=mET_0(8MsMTddf9xae&&bHg-QC^x zc9BdoIBU-l&U)RJN99um_H+WI%LiE`5!Q_M`eaMA8dU`)B_$~-i{Ge{4%JU@Plh(u z*Vk89&1Y+DR(k;?H2)G}V0F$fDw=O_Ik~+$VI>F=OINEhp8{Le=ua8-!sTw0Qyf`A zS@{fnxbG&G-^+91?sU$5vPf&Bcc$8k|3D!xKOYqp)ep0J-qmbjPLdhCz*hz87OC}b ze;=!0v^ivW`xtM^dmqAWcldm=-atd+-I`IXoPI$b9KsF)IVO&jlS|lMnyeIAi>5a z7Y%NiEqhpxx01w`+e0zA!Iuy1~V6p=IK_E(K|_8%>ajiRrG8oMF3o92x94wQ#Fo@vmRMLI~N_XXFgm>0aYN_yxI3G?V5f$`_o5D&B(66T74P4{&VKPbRT!*~_JlNq zi%}r{Tf1HN7VrZwIPKOYE>;t&@nPyI9{RNPqK3WwX@Ocfh+lPe_37WgOH4*7$wWYK zf`uZ^%M;tyrKB_)mPh}DMfjLqH%x}sT|I0c(pFYh=1LqiXQR>T#-m_|c0U+h4`K;{ z5RxW{Dm?HioSvTk@#9BR{N?PBOH6Orjk&S$X0cjsX(k6Kw$)@dJhc zO6=(%gK}I(z*}S}qedzrUvi3IBNQ6%DacT%?L(6Nv2fM;oq!<+gG={TleXv88kx#^ z-;cK+GEm|NCUh#<;s?wOz7s_Cv^zYr##%~1_z?~E@7J#!`{&ex46LVd%toOsN8RLM zN~)@TCuU}5$*$XPP1LuG);sJ~7Piv}Z`)`!YvhT|r-M86B1ouRm)pMys;r&7QLIEjK+tP8nv)2A^5n_jO^E`y zRSrB#_9TD}m4c6{_RpV4Nk}+ft;I-5No5|Ag3wboG1=;4fF>j*?bq6>s7wqda1^fVgW;m&IOpJET(E2XBM|Np2UBMnr(E7tq#Xk4^Dp z*4EZyV`EBH_MH4&*yNJs$A z>`E7jD65OZnu&vp%b-@4k(Ty~oLqQI9g>i2KltMLa|0tI8ZA`JKtKsV=!6k*3Qb-w zrGv!4p6iiSQu2GJGfBTI^nH5Wus5&=ro044O%28C*Ai{@7V`~Lc1@=%02Fzwh+qM@ z9bs)ftWjrg0@gcSX|{${l%JmuU^qTHdW}^Q=Eq85zVNKhOMbY%n8yMmBfc!48w7!) z5ZQVJ;g^t*0G$j#cD55#R8-bkOIX2sk9?nWDFTo+T5#PdRN%{*GS{xQoO?rp1K#t- zeO|RRHa7M*$0Asl+HxgwCCUP-1c88)R2NG%;t?ao&kwWrW~z-04UbvD1ZpI5*_I%9 zWgx+UG;IsAc?}+5s4Hz4{L=4X12Caxt8PvZ;d&yiaE#$(8wmh`L&Su+9?`!T;ndL7 zEU+gN@CMvt)R@J=!9fx?4UwA2L_iH>rLAX>hx~#9B6XFX{(hoqEE;O+ckkZ$SJ6Qr z$e&*m@oO}?R*q0W+7!XbPesKMr>0@!1P~)r<|=ux)wGZ0PGQ2o<_CEeKR#c8lV;Mci4@P z0rq4*Pe}nT(4=>W>zWI5vHvNf#{3sU;9o!kALke)d$2Jxf7qf{`U<0%zW+F)dg0$U zJw|2tD)2^jtT&)xr@YZ?*2%Ei*(($lNJ zxGSAnnMnHZ8!bP{|E;c@I3Rmq$!oC#>*M*V0M}szbBy<5mf2xj>F)|cuY1Tb>gGVZ ztOp^)nImDkGYb&T%}wJWPR}b+h_3Ii0mEgqloSNi7qlNs1YmR4HuX-ftf(+wXqq!- z0pt~+FezX+hsK7%f+tPm ztS)E2O)3_%deHA#sruZK@;HrLP+Yo?f_Xm*)^I2*FBiXZKp{JI^{|DFV`E~c@avlb zx))Laeij~{<*O8$8XM#3Qh{%_>tT3K8s?_0s0<#!7GDSz^{A$P^JY^+8FuyLvSU4f zevc${k4chCWoNp*jn^mI+m%tN9+-C?Lv^O()C*QS^3R_?M%uYqs zrB~`~@yhq|tk`SM4twCrxiC2)fwr=Ab$z`zH#aX&vX^nD%0fz3_FNO1k|H39oK(C9 zJ1b_U24HW)47&DHV|CK=bW`EVPXg^NnDznm;a+#4*D9*NLLT$K&H^~Dou$`5R3$FC zV~(K4>|B^5yI#yW1*q@?*CY6DO&IZLGjl!jz^KvbK-)wXjD<6hNi#BSzaPzh8zR;_ zrgXd5->dKWeUB}9^W!>i%A9TMxY4S`)`%{-SX5T$*epWFZDC$hJdAj+KL1PbX>A2m z=JrMq2M6c$LgiF-?>E3qWXw}V_#dJSto&(cRG4>n2VOCht7gV>$Nd=mwyWEzLH>A>Xt}ZC($=~pmC3QV$yvX?0 z-rn9MwHC`~g^urxoy^{rz;1Ly`wrZ5JHN_tPu-*%uxu0*6z%-I1*lHk;db3R>j!O% z#Yw(i{}aJW_eKcgXUeFzCb9wYexpCwZr6& zT%vi528m440Qo#9S_O=UFXlR7tIO;N#yi@$iq$J6xAS3io`~DA-;DJtu(Gn!XR7d) zHnC}^x}rkj<;=C4dT5Lwu?+<5E2J6vPZ;Ry>-(2B070uTj`#~Z;uNbl%6wO=*h5!* z#gSHxXDTK_P23$(JSYBymYembm6O^#+#fu1qyRDZQ{oLbN^%iHjsSslxe~^If4QO< z8DZ!e$7z?va&+9sa54AZ!J!gI9R^PW5mvts>hJmQk1$MHjbwLj@MMz38%Y06s6fTc zz#wznR2c^GfN*;8^1P%ba^Pl64j@P4ru6OZ?TsW!UcSQV234bL5yQ~MRm%I}jav4k z2O}Q#(vP&qDV=u~?-F9j`E|uT?WIjjawmIj;gbBO%&WjBdRd(ZV~k$l;IOc;NSyGh z{v=7?a;#rtBN<|!I0@OlA-Ey7_h$dxP2xLrVexv= z<+cPtpS0uVAKS!cF}+$_wxQ3`=)B)$hh40i^m@!%~;`;y=pIwq+Ehj*C- zho=YwYjj{}=>CB^4-Ji3-%mPiW_>-qYg9xTe9Td7S-t%8d zouD3H=6r|{CysdXQzg8kz1@7OtiwoIC=e9eeyF&vgSA)d@oQ|a7(gsa#n7K6z`~1p z%wnc$4^*e;wb;eH-98kTEUOr>lNEds)??(nyp5@;pI{4Utdf+H(g7t7s9&0Py4u?T zM+fEm=t(Ryz!N$;x|f%Et^;wb;Myqq-v8$Aw+>`YE+>XtM+`t@IdYYh2BlpbtC=qh z5{^As0rr&}hJadP#wDXQl$du~#~ElOIk%vj2`2d>cnxSCoAt-7eyF?`4Io7XcPvN8 zH8?ieZO9JEeOip+`8QV&lUaRRoVlfsWuM>M*c=%*(E|l!a%W{_#SatUb-JUbF3x}0 zeNK+V_5-J>`1i1|$(^&Wc2Dr=(!I*y4}ZkQs;R0vt#)Gpw&#PHi3+x$w{LKeat87w zFDFO7?(y0GQac2f{)bdy0(FxhBnt>zFr118MahpJ8L(=v6<-agpcnIQ#Xw*L!F*iZPEg;M3@=qC3%iUhrnfmCHSGl+2x*7@7fYL zv7HZLXRzprEI2&Zndev6)=XI9>R^K_L@X*MhRRn$QZjO%Nkf1a*aIoXzse%9(2;W?EL3;b|CPl=Rwp7Htu(bKjfbk(-~`wOtaNbO^Tt>LGADeaIyoE9!Y;p(3Y;xezMTI|MmzC?Q7Ae&|xlI1c14$~e{y?5a*$zlSQ4YsYydok zTC#_VY4bOYMs-jGg9Cnu;Ob6;N>|oJ@CwqFaXg&HAfc=rEt{?XqhGT1h5K%5FqF;-e%abv9gZ0Cx&}J0}R#|6G&Z(b(pNAO9J@x`DalX z8N}Ikx2=BfXR6+6!RiGVy_Oeivl}|&NCXqRt#bgk0Y3-r00B7g38hb|n0kt`p+EQk zW=fK0=s2Y8i|s|4xj?T0arhiaaX^+T{8%cqMLiaVm;g}#C1Y%?$zQ<^Cg+>GxPa}4 zzy+Zy@V{C*1+!W+DgBC=AfQ{RPD4Xu!504?&Ajqo&GUv{1nBxc3gecg2~$m4 zzhR}mcZ6VTOAc3TGJ|gl98A0-_x1G|9N$l?Vo8_f z-$RFi#4gsBiqAYv_ksWvkr2iaXWE)^*|-^4v^gggEn8Jl zQPI#a3nciES#RuWSJorS6aa@nMTeDf|MblNs@s=^#z2n)Pi=(R`qc0wBZ25IE_q)A zHTo+Lq4kd-q^hvlfMsrL%yUda>|j|rCNZ= zvIySSwMW=kTYIb3hWE~F0?6?N_Rmd!U$&xFP3qtZy*8iCk&;oaBYFeKm%-=He=F{P zBI~=@zapz<;5F({+m{F663MSAY70~vr+Ds~;WGQc3I!mb0KYu|ZqaA@eD({>E(+p= z=(o~;{hM(wg#8CS%s5~C*oZFi(O|7Kc}yTo0j)kbI5@g!d3j>Ro{i@s0kgG6_e+w- z+M{?7h<$xPnE6nL3GsQASpHX70&pG^)8&@~#8+2~KP8`FaG+{qW2OmBLL`y^0q^O_ zhl2E9eIQBj3ODUusP)T2O~FLe)zv@Cyb17yhnhI=*Ai!c_-jtcTDbKh$v?OL=R`rT zmYVth+3ur2>lYH3m;A?-AP7hQt#S4vT>Ei1>4~;op9yl!Jr@r(mZ8k-YxxEI7lVY) zoGl(?K%jnb@NXr^$jGoBnGwkg0g5$jyec%t01QkYGk*PEQ88>3zaIQPC|$Ys2MZU-u`P2DG7In@0}>C~F(D>W{LxxTs{5YpcKc(IOE8@`ty$MyJNN zxB2#Vw|BRWYSlB?I1~wa$fUXXSUA`;&7Q7JVgWu2@0$DRV^hP0w#IuDr^S?}!j+7+ z@lE?gO!>xTVI1DMQB^fqbY4UppFgv| z%{M$hwP`^1Y~upa1o8%b`KYrWB+Z2kc2v>6y00yXji z7kcUUS4qiM1!AL~UfPJVrnKz(1}a$%JQbtI)OG>yPJz`%Oel-QWw zR9HT^Z@z84XJWs{YXGH{j3IbVOjxv6jSlhD`wL1WuA5{q`9jISfa0%jwP5z3aR7k# zM@;Zm99_Q5>7i$xer(3_R-tZ7?9R6&9IVV}-s7UMdj5JfN)BjTAeXkawP8PdmQiTg zaMTIXJ(-BUzP_qz3})++_1NU3)t{0juxwFzd3nI_8!zU$!5q!YYX|2Q+$I!^4suLv z#ws}U+A7N_#UcTPXx0t4W)x9`51sfN_aiFZo(_)!4PAA7YXUJq3K=UGO_qejMlEB% zJS?B&E{4_XW@bT1NC>PRjN$EIb_3L;*}vK>-HjExMOSVP3c8$#=Wg8SjA?Bu`Bf5*58XGg3@zD^Aq?9l-eL zHRvNCgRUUi-@JgIF$yw^n5I#f+d=L`+=~EAA(ChIR_e1#mA2yLEo;zWVEinerJ0d)|x8TsNM&K>%*3u z*L8aAq}pJ`OLNO&6B{Cvypj-{V=;IRy=V3uxe|>A6Sg)t@mlY-=wtfU%4YTeZ>p0r znyxTOOiTo{I4j<=ZaXg@aD&6P{NlM$=c=YcJ30NGjl#j1v=(nW~n1-5YM10X6 zQUDqoI1{7O|M{1m3VZB3BFJA8J>PMxcS_>XFmggPV^Nh0lo&^109{QWgVE9LZRZ!G zqoZ3|SU7MH@l}Te1_plr&f|7oFkonAX}J#u&}B_cp9!^hbfA#gbIpNc2zq*YuCA`Y zRWi998;n`v0t1nKT7H8Tu+zc(XtvzL5{B31Fh9SNiA8R?6Eay*GEOX8D6tuktTn)< zFoI2CIA~Nw#)4XE?H;d5#`r{xOs(9{Ob(!-$MC)0Jn!jr+?lMNbJWn#n2}+h!+H7A zq8gZ`ev(qXaKe~{izpNn-mqTR%a<=BA|h5gLxMv?(NRw<%}ZzYKq+K2l;psb2)y{{ z=m^k2U_!u-3v-8!K?DLZ&BNm^iP!BNGxNiS*Zqc__)tLh9>9R$(0NFEdQC@A5FneIP9*#T-9?9*|yHIc|mnmp=SwboAtE zBYDQ0tx$#AX1P5l=M9+%=v=wMMt$4TZ{tDU`ts~-Dh>_~T3T4^*tKz9mr=rujfDm5 z;N|6|6hmW0W@bmevUvWun7DZT+&+-E!o$Oz=3T_C;*QTzG~86>(gdBPG?hyHjeGzl zBLkaBY6~wrQf0A%ORrQ%^gU2T^+G3(3*CTUuJcwk9!=v$0L+mHsiW>Z7mkU$S;T>c9mX4X~zpBvT5s z!$Cf(P`9wQww90xoaF><;BDx`4YX2y547CO=GgBD>;H|v_2sPPMg2k3O&9-tDM%-g zQuMW_BU0R4Tus;8`7}i}t;Q_Cw^jJ+#@hBkf&(T1+VJ%x)xFje&el!`#>3BVI61Uw_ z(0Kq)*GL~u;Bt@*Wmhj$DV~Jh?AK#qVZ~@Us##d$^XwXEjE%>=G$ihaf zoOXAUt4uP!U^)bcqmYSS6D8<`jZT3w5|GuiJgXg!KeI0ihG+SvF7NBDHa0ef61i2k z6DYglfldI_zM95HUJ8n}lOg`%{Cqc%C%^%WcOYTk-CU4x+KMnQhTKE12CVpiEV#J1 zhyZ_&3wpzOMMd{O8H8Rm9_-CG-VBSA%t5`NbC$_W`ki0kk+`_HR>N0pYk{FV!$|l+ zbi3`>iW^xaaSoIE{xPsHIoLiLB?MHJo)1iy1dU^RVrs>+c&Pw$c^d_5Z=x8NUh`K( z1lEfe>-bi$UcCb6TF?-M!B&8KQ_3Z|FE)RPw`$@9T}K9nVsPxCEA%DsQFtP7q>Wyu z$$in8+}9aM*8F#;qd*t)0F6Z8TKqRtL)u`0D_voeNyxlHlOLAh1?CXd690FG>O+uH z_%+B0Agw0+G4_y<_t5ByDU^L^6oxf(pC!b^WP?LY-QeT}5Wh#1zte>UeErh5LrfOQxdp0&U;P(h? zK)>exFn}MK4EPyfwTNCg!5y}fT26Bw7ju9G0N(|TH&A;=&Z0Bp0jdBrV^ClK`Y0(Q za|iTttC}VMi3t^xT+qzpu+anHm7VMfJ5m8@1O6k`5D^g8*4MRpTS$E``zHp&L2SVQ?0T(CU5@7} z<6l)g=$1FS=jb)|8COV?wdL>zjj-wddI#h=F#oIb_&*KmsK+4=g7Tk&SuZITFGx6vAmL!5Xq^g@l6 z_nHe;3Mx=l?77kP`}gm>ygV#XPb}_Pg`qW9WFz#nv=Psqsb9T%L~zidc`q%&hj8JK zq|B``F^x}H*w8ki_=7N~s*F9pM7p0`SA<1gfS$=%-XsXF;mZN z^o{<#ji&)$t#a1_vnY~DDIWa6AF|N13MT$&R6W!zm_@G~SO6oBX5XmrPt(dhrSn<+ zJV|gtw(|mN+JDr1AlysBxT6$ zV#H2tBQ!QXPOSZQvBY{Vb}WpyZ-FBXQ_cJ8H+ZW$_XqT}H$Fc&K>P~|(hA~mPJBNT zQlku+p5S1fHYb9&Kva90mh)w)x8ld&CRM2PwVjDJgMQ=lU3~d#(&!^GQ%@bo|KxLv zsTatfFff+5EsP~8B^LBpt!xvLj<@YA@l;Aw*g&=6wLZvPRaserv;qGT6d2f5=$!E( zxNCB1^zbV8ElkM^c~szXkrIqHCzfKKBa?UTaa2=Q4sA7y;ki{ytLMSe7u4L_%S1!d zj1`b`^IpqCr7JR!<80r#ldN}$H2Siz@XP!6iOE@t^|;CO*!>n#nfp`7rB4bAcZ@o? zQ8H2Q-){)nsOos5*CH>A6c#ErX#CgSKC4JUO|8BEkkC|wK|m(&Gy6iR)ZW&%<28N>|RZ1mfk zSyr(1&@w;X{^)f|iaELSAOO<%CYQ06q?an<;FI*$f6%gqTqb|nYQ|4jk7Smfo*qDf zxtZC}3~97NVw1_khYwSelb;_h@){2*Ck`)ksXe9SVNLty)rnV zrspMDK8jU)+Ft(=ecK=0_^&-e$xfXet&>iQZTBE$JSG#2%(IF2ZA)vb{4?&CZ{F18 z86W+Z7GM}fh}d+xHfQ^hD*8iq2kF!iDUs~Vk2Xg|MOBoS4^@T9%0zSDki2}k26&Ku zkhEFOc5XsQP3V&+H-1D&y!b0dAp(!|`SavI+sk<_I-Bk1%eJo9 zFiw6uX@HErlfFr@$7*`a)NzlwAIfl>%p(K+4EQFgz!WX=Gc2cHzkmPDkSD*#D!<~{ zNBv)8V|Mx40#S&emfY@h9tyw8%5f{BEPeNy)ey>%K0(J>8ARXy{X5$TQIv^%^y}BF z&?Hjq+1n=tisOYFvcqHi{U-7Wd95j^Gmc@`IN=x2LhAkdBbju3)123#!k+Z@aYjlR z2+jJPUCvYGqM3x$_ho#11=rF5Im?|pcfgw}#E77d7_!R;UB#!@=`AG%xegZdZWfCe z3IX69=Z*}_Ykn|kdT@XvG+pvA%HfIHu#doAhxPyBcXrs#Lc#J;&tvAUZpM-aMFV0k zQgI9*agOZnG#^hbuEfL&Z%ME%4sAV8Tmv3co< zQEezYA{`IUH>=z$b3InTLMV6cTtVb0_x1Ioo;=Q=e-29k&+s3e0|C(r#wee3bYgHp zeiEf}pD)&`UjL@4!R{BJlh1Q0Q3+7N3+TVdSr$6YOidxnn6ap^6=Dcsl^+`&ohdRl zdW=FJ&zOSLS2}(szZ}UsQc`HpGBQvSSfI)=F?m~KD0}(xj3zHM8|Df?1-u7EFW(Cc z3bM4errNb@)wg<-Eb70XFtm2#gJxPw#A!A* zHdaW>5o_I@vPwnk@0 z^C&(+SMQLsqoZX{L96*(-{xX2T3N0~@LpC?X+=dRlcu@`)jjffU@Ra`=_yD7t!S7T z8V-@~QHEZu^7KB17yn{!qJ6MwytleT# zvD1XF|F68MDJx-9TsYZ|9XnZ2;GqifqgE7~`NWY?w2zT-Bc6HV*Bz&EyL<*p89XoQ z@=*t3&I0Vhd! zU|VmmxK+21={09(X9Rn`zfVLXvfio--!pj*xT_?2khDF>dSpuY<`Y-KL&L&QhI>K+ zRyv+um>?IqkC~Y(gDd-kwqvV`UC0%b>+8!3O^NK4f2vFE%}j*X)2F`-+u?1l;-(l! zDQRiS$rFUzz(DYVA`&#yvuD4Iq!_kX2L9sA-)3CP+X%|z>gyR&)bx1zBX0>nA+2%& z1Mmq7Qf;vTZPY;@03MdtYI9rzsBfr6?0!MWE6u!sL z#oTU(b{7;Df_Jb;x0CXBkKA8Q249|G6&LU2=zaJ}ehVcoiYa2m-EEt%{msKP;0^%T7=`w49f({+ zVJJDpdJUD-Sp{R%4?7WQo}S^8BEMnp*k@C*2XhB|t({CZ(9MPh1>cXq7uxl%G*%wI zQ!-q%C%HcVJwn?|JxtzFzj~8}JVoQAV(fm&YQg#3oE$m|e^5gAX--Z-$w@A{ zbl4g=M_+UEv7od4&X7H0FdeyfAnM>odGx1PkW^EBUlSp1;!1cu5h~1r& zWi!&>00H;Ct2xXRazk1kEseRim34YEfm_eAQW0@~wMgWCx{ znUG+rBd4x@NP#EWX6T8x>GZV;dvC5o?}D4^djP};=p+T{1tiYEA4&5su=gTwvh@L; zV^g@L=f1>rV8M~g%iBI=K&0a0xeIwFe_5J6`^5TDAShsD=$n)J&vtsljnvL#o4>_s zu5palWRgV`7=E5#=QaqL6WS3+I&RN1|N1h8y_-R&k4ZBL|FwIs?@P+%OC1w*lzyDT z-N?K)(r#;X=-vR2P>EjMFkMOCM$a0r-l1oW6H(b28P@yah$#vLB}nnDt*5bC(sheZ zJ*taN%g*NK<(*s4J`b-Lebxb_N4ZBT@(bA*h3>mAxrrWhsgHhqghlGgv_6^!pyL8K zuOcWQH8wd3JjgvmJAWTN{Td)OjtEpN-YXH_E0AMOt4GOMZzmzqNfi8sdW(#V>}+t+ zhYt?GyC4pf3;;H~x#{Km(Wde260~GDHrH3|tQlDRWZ$gfqe!-IKlnN^SDSvn5v(Pd>h{68;eW6Q<}4 zg#;~u3PFd|8*H%45!FFF3CW$qLe6LFQ_G(9zj%3VJfhtn(-@%rJ_d$VIfK#Z>4-HW z^vGEDmFSRXy37~^e#Rzlt@cRAZLWMbSGPd%wdcQ&TLk@_9j-%#axm}~peSgAvEqT{ zm|I$ULU13-Vs zd+DY8B(p3(^-1rGdd1|Vx4b+fMH3+$o{l)NV>VF$8%$Kp>%ziE116sRWuPrMR||GtBUHqgrcK%7un#qzCLd}ZQv94n7x)! z!VxKWuSZGB(A>R6Gh#|nk;mrylVb&L*UMEDzo@u>MbBs6g)_2~>D=ADy>Hrg8};}5 z6C_I4jzZ{I`h3l6F)J=c*xty-<|?HEjpY2o0y+kWJ%#9%h~U)e1lW9Y50N0kb;P;; zJlyz=p2g4j3MHl*)t)_RdZk{t9IOr!5)zdCwH;r-eg%I&-kyPl_I}i?l-l5l=J0tA zAf^o${q5ECNhulr4!F9L<$3y|#C$bS_9R3mq(Ze8(RC4AecoFev|PHx`R+W~xqycx z()JF*07wLo^vE#17W}gmXBJr=Ax`M3HWE z2wa)&fAewt`t=L+T(3{NW89HJHxJ06Lr)1tLa;XD+-)%NKQJ{(}~!;ct$V6!7B82di7V$m11P? z;HS<+)#FBHC;o^6<-EPU_4WIq#PpsGiBms)uu7H*a3fL!s&DkB+C4(5DGL}<%*2me zNZZJmT>7zOfLYYe)3ZoPNqs^`i4*3-*7(YZqVCuMNkgf-t_Kg<(DFpeq4@=^+r5;3 z<jZl35{UF2;PvqzBm z(@}fGwar36Vz&AiG6G`46dddYcrb=lnC6U-(667hO+3Y>CMN3HX0536H#RoNNJ)(v zW6z3-o!$*tU}bF$K!t2Z`<7+dDN&n}gc}F=%XC;nOh+1G4268ukc3Wj=Z8=jzt0OB zc&L6lZM@BKeBnM+pn?Ks^*>LjrmW}YWjlJQglQ(4H`I-P&#Ib|?9w(lCFi)o6e3u) z7?3MD$s0Meog{1bt~>ko740K2N`2N}=HOV31=!v?SEsl6o>(frxri9Jn}7@(phE>7 z9N>mtl*CGkXNUP}R(@Adfu9o#ykTNeJrz)6C<1bQa&KfWx}J!5^FaAsBvKdws4#0gV}f*}&J7LlHn^70aYfA-x6V)OFs6RFGf-aPOg*kN6DC-T?8v)>w< zn|~Mkk_=qqDqXkp^el$#yQ`=Y=s&Yd|84a9qQ%h0!J*|$O$UlBC8cIO*Wtw%gKr$l zFCn=V2fO|9!oASOOawxZ+hOypA|k8Ug0Qb*fj`}`zP=79wy>apDB+pj+MGUF;J%jr zsPf)lZ&F4fPwTfDQuViAS!lmY-ISky^8opSK(ro5P`|3WQD^UREw088xX0JqzL|GP zS0(n*v-&N+m>W}U-^w@{=kY!#N8tEzDGfDCL&HyfeG>fq3xF#XuUskg+9=R@ItTjB z-_H;2Wy?q@myQrpTFs({(CY2u<8zP6?H2+zjih#|S8;Cc5>^RXK@_kiv8U^8t+o>@ zn4D&7KDv5DPkH%zV#DKCKX>u`Z?yd*OX}LMjRpTA5V}XZ$1BdzS!=QK9lJnoTk`Iz zm#OG&U5)UvoOK)H#14~*?^z?-3c+ITH@XC}nuLCElS=0=+TD8Nkt$|$&D+}3vnuv% z4#&~Fj#9p_EywFbW5?1mBt}P^vlA+3l+|2UE=!c&PDsd%EeX8(=4DP!`mEisRUY%Z z-46X_jC##}4SQl*ojvDEMcr|^eSeXXdZG1@xS0n>Ls^6$h&jnb&0a~d<$mAkzGb07 zt-e)sBDGgBdl#V*qjCE?#O23|DW^S&QrnykTyp@-;kxVT~&scjf4kMD??M6ebb@gjnyIy*#LsQT( zKlLArb9hx# zMe{j>Ep4Gy%%qDL%cpFKEe-M}`*{;Xr<}=|y@78mH{7xn5@oO0^Gb>u#m@vrGc;~z z+RZ3r)AxS4T2PBiP-pVd?wzYZ3EsAvf!u(|2_fTXgec0c2LS=gtL>$mGgZu7njhH2 z#MVzrtX%f;+64BSHSN8%HpMrC*nryL#fujx<&%|jC$8CJw`^*scCNSS zIdzKrAuT!;CY#b)OJ`^wtXP%#xp#H7^34^cJ)|c{94Nk+zRhv0Jh=Z0C);D48|6P^ z3(3D{bH%z=LONV3yRh)nh=-xOEux*YuUMb*_gr%i{es3u9J&f(U4Gn0O%A07dwliw z?c0G*K!FYv;4U?`FznF?UEWL1-p*aCpdFb#=dXpyLb|lj9JkprWdZOI?4}>}g$oxD z-+@_yl){q5GK|HR`8kmG-o1Mfr!`)EDSi?GRZK!cLKdoPuv(H=KOrn4=58HhXXSew zQ{rQ5Zf#AZrx6fomP5A5iNdslClX_hR}o_%m(956IYTEW$!kxjUuk7*9X&Y`GGut` zWORu?X_f7*^qOLgr@Edh@y#7ZvM&!GzRy*B+|Q;{jkh#e_9s22Y4BOGoT1d0?oN~M z)3n3F1)N6|SU!ab_8uB9M_VrTdp~l|Uo0$s!%L;PXHy=Y%W_W*4OMexefgHnb<68S z@m@(OBjd#O)}1V?igAlCBoXJWnpwZm=MDD0>wlAVOggnq!sC|iY??Ki=v36ymKGN) zKYd~wmwEK?;r!yFk+Jd8(h^Xuv-4jsKASDIm zC>k4fUtUqMF^mJ`>~I)@Uf=pp!AF>b*zCGmTK3b>WFf8Ynnwz+9pB`E4sh0xQMA2b z|3AsKK)SrLvB9usbWeYzpPwHZtG>~faq!W}tEwIxtv9qyp^_=kRBG1H9CJ_z*4gqk zNDbaiTRFC&-rYI&-FE1Mm+SA_!IbUyADfTZ*`1b-Z?jM(O|H3ZIO^!=)Wd)5VBqEW zYvT?}AjKCo9=6`gsy4JMa_3Ah@LX4vuoSjC&c-q@USGeN8%(}k`|bGH#!zi`zzd)0 z6Ve-9v0KIVBMsADONHo$ueIT42XNEaIPFU%{!G-_3L6x0yUH!ykbiTXm^Gp^P{ICC z;OAM8nHU_;rNTbPP6tFUVm5?CmV=em2q`FXN@#BYyP-~if-5IwZ}mr0%v>U94&#dH zEvH515}rruX^LN3U;B|MuAarZbq=>R6#8~mtE(*Eej`zFi9ysTV)A>*bVRp@@05C? zX#Pj_M3KdbCn4(B_mH-}y7-Zu-Kp8M`{fXC?YZo>J@o!u+IbntW3S`%EY6>w-Q37I zF&Vq&!W*4w^~Csa@XGH2tUPpaRlXX|;bt(h)j$${{S z7HYK&-O2IstiOdZ^@*qt>_!0Az$jvJauTQv{=1u&(*s!)I{apkc@$dJ8Dt_SBtzAS zl5TW#6j>J58|9uomgpCqm>~9Q0|P*Lk{r4;H;10_Q(;Pt#pfTdacrY-cJg9i&M@S8A1|G7hR65%Y5+3HUv1-)1rLj& z2BKYme-sb7Ps!k7gaW5REu1T3Pvu`^;%C(6J}1V(4&hB=qIq`b?c3Y1;McAkJ96Y) zeAD`*wKvp?!4DqDUb;k1Nm&BhnKxG=NXf{wh*&4uO(1K0#&52wum6JD02L&}=ftuA z3j;VXau=0T{}lOHTU$ePSXNesd3K1N-dyywd=7eIZ)Iz4%_mCS_4j9z@akqbgq@wo zAe;04&YO;yA4lX(%G`W38J|Dd8x!TOr=pVl@knGlP+qPK&SJKOa&{ zW}7^rK02Y*w@;E{bJAKeV4$JFs#rYdh5pfFKUgC$f5bt;?cFNh{aWz%IiI*b8vEAK zvBy_@+xskvU*}slf%RBhTkAtngQfKSyZWsIrYxV3pkj!SsUbt#^7?pZ2P)9zU-6HC z6Aphl3}(7TNwJ2(2!f5QtT~M4?c29eWCN!ViLvT_k;rvJ3K7nw=LHzpnrwS_kQ^%w zSJ`EUH45X@4Xuf{abB9=C+-cFw?2RVvq&skA@@bW>h0j*6RPG&cAs=~Sfw}q41ST9 zhj@4;we53S+V12Onk%wHwt-E{D-RCbJRywG2Uc?B`bNw&#HSm>T#^BsisE|(7uR>j z3M#U3$h5bxoiGmIDBVb-KFY>&!|D9(+?yX`PL(xUYj_O(c>4}G1vY`)#s@;kbphwc z5Ml46Bz9oucwxq|OMr}NZRO|V3ypDW@0)I{Ia)KmqiK!ZXiuSv5PQ% zN(W6$O@Rk{!0rgHEs)~aFN~>l-7u950L2t}jHq)$lq_8(LIYcytINaN@;{W(*z;2; z%xw#|O;;ZbhSW$xq7(q*?5rJr@ZUMj{d2Cfs|%!cS65dtBe{(rPgH#o;bha~QpIJq zQ)XP8Q|2Z%A_sH_HnnN-^ZyTcA{V4Y1 zhG=2rC~vOo6uUVhpLfz~1R@Oar}V{(I)zRko2;=qQN;#t`-_YWsX^m&{_(6vamYAA zRa4H|{*ZF0T}S4(K=H_rbaiWkLEhuiSHA9Da*PNAQ-#wY>g5fqKg6SE07=|D3ipt^ z)Nm(DY0b&WVU_QdF(vpM9$)kn+FKW~nS{3V(4}7SSrX-De zVJ|Fva$}t#cD4K^p;<8EY2Try=b3F(kMmxjwW(m<{Mz15ix)N*Q7ic~e0&bT%^DgS zu+9bsZb;B0K|+|qhVHcUDO&7k_w57DNRMn2de&kzlEz_|FWu-WW!z{cQ@cq+m8&y# zm?@H8WZe7s=f}Ov1oR<}yxTVa30@2Kk^wq`PIBQ?L+1%TjfI~6G?6iBZKIumfm~{; z1#E39x}1JjA7xUe{++FG(#lXO2c>@(NYk8%KGpfG#$7C@r%T3NWCiHP7k{TcYfZUJ z9YM*sPx9?lp`viQtRk&swMo3!a>adViZA*+5qW~AT})auySx@QrZ%?i3Z5Jcm*Mi{7;S5}ggPX$TSpf#h(gi|~3H{{j8th^ELElf>U7MJX| z;@@;RtURYSxGeYVOCjsDMtLF#So)w!h-)6wU!a1R5S^T0XP^&qzDYumBgySOTJ3te z-qqDEp~TXTr=`saIk&cgg1fCP62kX6?~jK>A`!g7yItPs2(9z9>S8@Zrh0l?%Xdy6 z){&*Y@aEOwhcB=%qx$M{TcxAxjCEJ&uGZ?_`yN~ItKvL$&+(tHlRu2guYUcP7Jv_9 z7r#gA{ingJw?!pQUTiflnS_6q@y8Ts6?Dj(v}-VmfoNi-KV)G_!BA}ke{sMFu znh8)d;IvRb;F(*Fj0q9l&aNjx*cQ4Q;$J8#yf()5oSmG2g*~tT**zklrX`)srMdd2 zuHIlf;qSPkUlNfEf$c7}MA5?F$(3RJ+{GY{GxL_8bv0J(m3;f{+riu%-R|N-tqkXa zye#UYNvRf2UL`%}BT1v1%!VWEl0N+E?yk!y?M-X%3OcAX?hq)Kz*$_PmBD-_s^{?P z@P|!8w%e1M@Bn!y5*VOAVE>7UUN)-OoUGI98ymy5 zP1hk|z^Z8lqubd@M@{`WBxJ4-?GNTuhSB4Pmmh^+`T25OGT`gEEdV6Vtt`zep|&SG zi`{dnU%h_)$*NW!#Q;!asB)%y3YYr6f2APwhg9Y=2X}u;m~LS|A&iZ3SN_&!z{Eu6 zJ^*!gkw$MF3)Yg8LkCg4x(73cEF9l|;O^PkOP>ZGk-cptk(ZB4NIV%H`pLTE=#_$A z8l%+Jd!nN5W@e$REg~_RiAq4)UDPbb(=x2J3tFt=m|Zy~A> zm&JY+UEnd<-Fka(iVFE&x?iQ27)2zGs`GNZD=8_-$yuDt?GuMR3gm;JV=Wd8k2Hr8rL5S++RzUp(ZzG7`loa*ao@c%%NHfZv zlrDX~M*JX)pOLD*=Ic`m2lxaXz)zHv^jZi22H(vBV-N{$?ibqhNUCUP;+ssMdO8WNKJrS5f#C))OI@_wdq#VCspuU{M11yMB- z2qpI@$jbaYTrJ;?j+N1#CCMSXd57fKo$Us9eEG7rOKy*DT;ipAG*9`+fs$g0;?X=s zpZ2xC`M!F4NmU=smgTKWyYZm}`m|Kd>{_A9$NE)*OR_RSJ@n4QlU`WKnwrmz!`fR~ zQq?mJQm;;aORlN6siaT-Y=8+~ertPtHx1e^o!mo62xT#MKL-%xs*7)Y=-+zbNs9^g5#tf7WC7P<GIZo)OM|0EK)!eZ{Cb=HG}pTFR)&cZjGgACE|jg*a)oe3?7FhDp;{ig zYcfx@duv3;GLG+~n!2E&5h?c8&>%SUU0rQ$2 z`@D_`7^pUnA^;0-+<{bR-x6-ZL|u}LM+S{a0Z*1fP=`y1NI!No>P90 z*UA`#Y|bruRr@ljZH@qZ5?}sE<)yDC#Lj+s^FZV)#~QIbs#>0}$bnPM!jw`EPrk)| z-Po9c|90IbILD)FK-VWEfP#!*^ccFv8nT=Vb^B}2zj<~PpAf9V!O0mu*bLrbLRF5* zdKf%l2o-jx$~7t0YTvc1+S;d?h0@QxxT?T@ciW#CN-(0{2+CgGsMJ^c60VS_z;l8pwybC!j3R;>lksfuil$Q_USx!crMce*9 zjyNOdt8WQDk^aQXqaKd&L}8rA3B_XwhbS_TnoKk3{N6<=O7zxVk(I4HWu2)$WO61k z>b3~obn{HVI9rpGlT)yYwD6n#q=aQAp6DnT#pJmym|4qgTP9CaErj-aH14HWqWjPj znIT^+N#R&%wI91)L`?2Ug6erUv3CquEew$w>nP4M&F9(Ok}SQs0>N-CS#Xx8p^B4C zbk46kWJ?3F?o&^w-~y)JdMYur{AzVOR16DFN6LEG&~`!FZ&)yi`z>>LD%usGkW4Hna7%Sh(H_rxNlhp-emp=Z`|_=+Y2d?6sTwJ1j~zoVOEf zjE`1q^EsRdSzCJFg&XZBZx%l}{>wq6(0LMO4Z_2=!>Un~M@5}>h8c1ns+7GLZ6p*N zrg&WWL=ydYWkCP~p`W+A)<%3^`Gz;sUjy^y4O$X(AMEQ5$4+yYv$I|8wB%yXzpldX zaFhD(vGxN6*6+t6k1S2+G(Vl~KVWRV*UEjxGOEOgr-moOYQxX*Xi#T?mB3OA!)-1PAg)VgIelNIj zAy;?$Loy28j2!D}CijS3WnUH%!S<;afx8Z%*#S&0yiPc4^OPFrZHi0>PbGOM(&pwg z6galeb?HtOjDr5))l9Ql40?7cepgo0^4+@ZsGn*ordEs{cKPq$3v+Q5r*n$&Hjke8 zM@+A)0xOgpJ^7N;@7F(q_oAzOE$^%fz_Q;16%di!$lNBEh!(N^2M@x?1`QT{Q!TKE zKtCb0o#B6L747SyIH{L~s@E``mwUryn?ky6>YJQTW{x9qWaou+g;clm8f1P**J@8| zM+VW|_x&w@RG1U-sxy+Wk2@e+WprQsuJh~YvFj6ExziB$rq|*AVupXDUHM!7ap1hs zb-Lnrme3UdW$I!kq;+_B-@FN^!EYJpW_gZfj#|>ezxPSbd(YN9yAdY>x#iz%SD8dl zm_N>zZ{wZ4@egVY5&#D~JzCrO zyIIq}6HVEg!u%ZUmmyGP7JAV(+CY17Q8-m)mkes~!UZ?b9qifpk-aY6zwTOgp}e4Z z@Zf`yy@OTyB-J?|7&%-CY^e8q5r6FE+qcDe-vw%RDqP+xsa|O{GdrHKo8_lPPqLVk zY#a6SCucMo$;)12D|&itY2si@xL$Zz*opiJs~v=8AJNklPo~9nirgvxMI4Q6EG2TK zimLv>dz)y5g)iiKeIMN>*i8S3o}WGlwJnkLo9Mh1)zP{0L13YAJ7?q&8@r5;X3SM( z!!vaEVkSw1zP8{eTri5`8UvCBr$bq}0-IWs=RJk|sBKu$gQ(|j@c$b!5AE@N( zDj(V>jq?Hs6v7_H67mn0gg*2-RvbY6}?E zJslzVJS(6uMqv=WZ*bXm*#&oVK$cu% zt|EBw_&eU2E^_^S5P+cnF1|@!m-w;*WX;;#!z~^pMn>?XzOAI@XmI)dXA?0!^=EFs z9#6h|)u5)Ec_;|;G$#G*3Eq&*gRu`*2dF@;pvr@PXiMLUf{C>M_>NR7ts8n5F4*hF zY92SsT>5fiA$`+e9|`%=(5Uu<*~Dz@dtq*I zo{+)HZ1u#%{T2z`fyhYAJInEQnbTSVZ9E1yuYHU9^mHGlB^6!q;)uj<7D;Be>W$S~ z1LoeFS=tiv0-zJWrqf=cycYO3+hd7Wc4AuYwln9HLUfdQ7#;VHNm&ibv8p-GOh~dw zA*VwLNfwbsPS45)zf_IWE%(S0g-^^yqdNs??kXG$?dFofpVV&kc-I4-OIAMBc;_!4 z_MwKS-;jYcX{fR~CtnNJPD)}vyTdb)y9678eWQ>24GSlQNk zt78nct%Z1>NDnjG&ulQJ2zS*ED>n3}t?6s?9GVdLFq)KN-(6$;F1vMR#OY|`FUr|Y z^9lk@XCx=LRWm~Cf%d`4FcklLoM+sgsA^8Ah*Lno@|IvlH0nDFYF zYn9k?@OOpor%EQI4KZ1hOCcoR$^n-NzoJmintVzp`s}1kCsJB>vL!l3sDpo zK5I#oi9v7v6oY8O*W7%xpM*hFH^&+^UOgiWoiVdQ=f%MTkui*sF=t!a1Z<|Xu{6$B1+!ZlVgg$g_ipTD3ARXyx%8N` zI<$Xqd0E-_e74Co8`;{HTS`+QzNy%!{XNIEZcaWlt#g`^ulA+#DlxcAc44Bj>z5Rp zl5Hq?7>iks#A7V71%|VyqSI(5O+@0F9Ap97)z&_b%^5l<0@X}R&cSWW{Ug8GhhPMq zke-jLN1pU7lhw6Ku_{H`)b#SLTj*ATU9dr62!D;C>hVrSBo*z-*qq< z^79-oW-tCQVEJTu()03QaS(w!AK0L{^*sWimydC6Kx*rkOzq(Phl)fTgR;IlprO7v zBUzU7)$pd55KsVYU0A|(p{$v&4bM9+{Ag=SqUS!ipEkmy-$!o!c)mw@;^-*YFQ7+q z*9xZ|ds_97QFiCN){)VWyzx@*q==sDt#9-}>N#@cXVQC&3=7z}K3G=gFjcXbU9WC0 z<+M;$4pFHw?-|;({G_g$rWpo#s(9rOM?$nF9P#b#=irDhaJC*U$a5k)xJl$?{G099 z^Jc%VH;6K|54trTzKcHS&uPr9g*Mp<(&=wlb z>l+&Nz*$&X>Ri=HD{>D%w%UE!u6v^GaS!>_((P*T+_}4Vix(EsuXF~HP+UzJ)=kOL zvQ$uwztOiEPHo_^VV9`DPJ2p{$>VBL)hIPTI~ylw&Wm#$tM)H4ujMK4ml$&jX$cMCQ)#TqMMIG3!@;Or0OB7Y(x0x-hC!Y#z`aacr^^ArE)JHl69HmWm*Xz|U zv>bQU4nN#}oI#6ti3Ea+g&8kHR?~MRjQbCmI*71HK@1Tc*WXbxjcv~?CLJLc%922X z_jU`;rQ-@QcFW;6?^W0s8?Oa&6);E1y^W^4jLUolLoxCju1h*q}ql;fLgPBd^@bp3p#W|)^XhaA)H zf=WRL;#- z!yhbtg*IZ5K2Y*cU$clkm1o;E8R%mvMMW5m$ zl}8hLW`NTci!BhD$Nl$gP#zA5W^aj(Xjjp-(sIQ=A|=|%VxXGgWNZJLkgd6RKc>ly zvHb?UiP=*QHgXnN7%`=qg z008X~LYgz3l1!JfFZ&O1LhsNe0!!XN^cqd|_N28x%6@KtU4u9k1UVjJk6B+Gx1){e zgXNB<99_`q(rUx8KT?mqSsE*^y;I$W>}rs>I!)hd{Ue>hm31*;S<*(z*=@_sSs0&` zl;=NW(ah`G6~j5fO19~V9o>U=>QY*BeNT4X#)jhLmyUwgm>D|-k`U+k$@~#*kBGA- z^N3{SOs+%7)G}k=QyXCZHTTkAP7h%X;+LwQvG`r&$|+m$bH)-ywunJ7UtZYiDaUJuy;GOpU(b7{>riK+ZiIz)Zvi##FMus{|w*~=?E$dqY1;+>A>66fmRuyM?L z9X*s3u){#+TY{|%goS-O|m?oc+9Q={j0aZocvEbB3`LWC<`~M2pbJ z@%?2Kyoe$AFhYs3zJ6I3OW95yNJ0r^G*F_VP#qHH-E$b-IE4QD=<32rCLtqV_<+=4 zbVsV~jp%@+Ks*z{r8k8N0@Cx5$V;(Gs3%57)X=ZY|FXxiGLsqa_ctsg`L8|50Da~d4^ul zD!QNzop11bPe|Vsr6pd~v&RVGE~0;xiB9k^gvqL0z4{xXYa}8NCPOSDH<|+SES#c> z{m(t=OIp~|TUTvYMXM5lAok{Z5)4&gp-=>;#T5``Web%MnuF z^KY)ZiV_d4A;cc5$Y>+QviWfTV7hoFD|kLMH}1;eFcM%We+ ze0JUl{WFCyyl^`plsO}d#EUrkf^Y*N9^24$?a#k3aO~+;*3*l7`t--2^+9k6Cbk;< z58wIk!;{@&WoBiy=tMj@g~00f|9aQ|z6|j-|1kmouXjv7??m9OMk_4N{P{1pN;Ddt zq$Yl|9QprsW`7`}$N#+5|6eC}*~6cLOf=S?XF@+493D>w0S+9+Y;RFO|tUJTLsM?Z1P#}W!|GAumj2$aJaX2U1 z0IPo5dx*jxJ!HePZEbDu-}AVlGwt2WmmdcoV_r~TX#R*gYA{x1a?V7H_7`Y9g6lgc zr-E=8Al|q*$Zk%QdfHL8V?kl zYHtd5%mEODH<>zD`0ojx+)kJx$F|<@3y}f5$EXc33c=&-b?FDt;2jq?eSWxBE(*2` z_wTv}g5<|%L41R8gs+_IR};Q;y;9wj)+q>e_I15i!l1XBwP)yMd`M{@PkgCEC{sRy zO{P!z`t_rJ+;l-OKY4eSGdK0xE|>nAlX0O`Fc8lKL3Vlc7f!T*F{aW!3K_IGhD2Ru zM`JD|BYxDtuRuQhv5+cAPL@pwP-^ES=szIh+%Y$bx;zum*?xEnZ^A&&>O&PiQFi7K z1<0bC*|!ACzF1Xjz)0mi=M_+jK;!4;aDP!vCUAzEO>F>2R5zah>1<}^HQ_D@jFgp+ z*RgRh1idVH=FI1jN!0pI%#WWtEdb=yC{cFRR3-g@B~C(=gWt7?cSYh+4a*l8_%QmflbK% zBzv6K6?z7;hXWj{Fhdv_8p5$M1&3_OWMr+f5bv`(CMInN-L1sisv30=xpnHwwQEl- zjq8Sp_w(gTH(GCM44_ z#;VW1^zU_(mOb3}i^#V)?|UQj`SX`eI64qv!{7k-!63oP&OyPYL7j}Ie|qs0FI{?@mL`Ac zl6s!a09F9xOi)up+JsgQY#@>ic5NKSiF0qxaC39NIVKQxQBQw5r-EsU2{D-1%N4x+ znFidU_*p)gXA}$6|BY@nOlG{~wF-ILK6&e)4X$gmGb26SDeFKYSy(V-*MY|FM;@t( z@qb}b8wf<5ydE|#`g3#RgO2RW)YOTbVdG%9LdY%jE#Y9E-7HAZhR0h*=_yv+FOX;A zq_D2H7Tzf~;aTDy0vsH5qgQTz1AOzFwppQ!h>MI&HF_XRfs%6e-aa2gp2%L;kr>Ex z&9Xa3EzUr!0v8eT8PH&giiN!4v!i*&rRivHWrFV+k+^Mwk-ry=g@`g`9v1{O5H6?PKE;S2Xe)Gjb+#=3cRY;uwlIJ3_wVJWDiU#_fEWPg2XTxM~xx+jh zHMO22uNZBWj`A?%1mEHOW@w3&jB?d}1u`3Sps?@BgW%wMCeht<+qP|z0hkjV2h{WJ zZb9F9=i$If;HB0990bcr+4Dk>$_ z#{9N;6eX8{soAA^!Wse{kZrbXoqtW2s^NsU9C&@mlJvr*5Dh6%Jq(}RtGCwKP6?M@ zEqxJhQv$D^o7*bihjKl+9UOZgkm5mCfALzQ_vRevQ@rA~)<=j;3D?P*yc#E!OdKP0 zYeE%q4D=5j9bIVt^1(p35y2Q}kL=MI7`^u9D6sgw-~5PU2|_!u>08+Eb1tWmM3`bz zfo8BfCmB8MHDtt%x|SoNx++I>tE{QZx)h#VqnIdeqSORxNp7kt(m5M~%$JH8kw@Ms zXkD&72GBd_z^R?*K+xahfQndE2kF{%1@556ybkvX54h#! zrk#QngsBCo@5j+(E3@oXOg=`Anx;_)5Knf_)U!8W7q~bg*Y)Kr!A8p8z8Pr~QO-=H zPWBO{DYhm!3+BC+^0_qC>CWsc#9bLjWaucrY957+T-Zc8CrM3xJ zq)1`g7qNw)v;ev*Dlr{&)R0Pg=}-Q2zi(Rs%h#XXi`HskR#(il5qG2?C&E$5ME!)&~9 zpyD1*ax~?MEMi2q`|LgfK=&D9zEx(q1LbN(*O@Q-;Y!xG*1H4|A^wQl7b_oLNXD>S z)=YB}(Zb4s8R$MqF|hNJ0dUEHSva=7Mq4>eWo77q&#GV%Ub_aLAGF}X=IaED6bgUb zC%jaRj986@MGqK5X)VVJzlw4Q+9a0yNm%@(W8c>v_kc{3tAd=B5CAoJmXb~C5$ zjN)kF39VCMwS9eh-Kz~Xrm^<(znb73GJ1bk-XKmiRlLA~#L;L!s_K4ONy$5t^Lge5c{{!=OiUxbrK(reJH?a){p3a)4<9=8?7`~o zLV0xa!2}P7ul#0czx2DC1g2xahu{-c>TAMT|e7|`0pjY z|6fWjW`v)AU>@U>=LmThON{>1p%69y(D^k41qD9wzg6}BUIK4-n)p62dC2JTpAMaI z>?_PqASezCgX=nRY2;S7TVQ~5Nw!T%7wwLb@&X~#b%uDcWkdS^$BGoc_7TKUmpDI} zNY8wfC6=r{f-rSRc>S8;tXm6+De~3-c`S%o`+vD`VsVcDM~((#oj)U5;@kR)_$SMh z|3?6V_;oJLP(h|4*dh lf4j#2j==nnzaHEodv~g(ufO@}5b^6TUsRAvm(;)WzW~`37GeMZ diff --git a/docs/src/site/docbook/reference/images/job-launcher-sequence-sync.png b/docs/src/site/docbook/reference/images/job-launcher-sequence-sync.png index 126e56fbd61e58f23b19cc7627c6af7413ddb650..7e7547d3387fb2c9f649f484aabc956dc6d1bce9 100644 GIT binary patch literal 34344 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 literal 27028 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 diff --git a/docs/src/site/docbook/reference/images/job-stereotypes-parameters.png b/docs/src/site/docbook/reference/images/job-stereotypes-parameters.png new file mode 100644 index 0000000000000000000000000000000000000000..d9465b5e11275dc35f0664af0cf8965810d0075a GIT binary patch literal 37187 zcmZ5{V|<<66K&WSP14x5Z8TQH6Wg}!#egF4pbzjxKl>@N6U#Ql8%`88iS1PFh&Bbx)HvmTl@$1R` zky(_7n3L5BPT+wo2m)FPiiB)`*JIc?IVr0@+MU?QuZECfBbi_0`}G}1HZTwh0wmrK zQf3QEEh20asg~_)4&q=)A2tE;!?k^X4=45z3a6#CHl{!jQ`949HL1ZP_?v%NKVQes zCUB5gW(a++KoG&{el_s@pO1d+Klcq7-C_hWbpxH-{r!7ueYr8g6_98Vn~F$Yc)xcr z*dbt;rYglkg0THT!XSnaY~=&#*ddVnjt7FiGOe`l+wyJv-4n9TX{Yl*kHF5q)Cq); z==`Dzy5CV6T<`bG*49#IXJ-}|NNhjI!WXxo-M+`hT5JpOo$f}YrMGo37^qN8J?>n1 zVIe$HNH(G=BBoO0crey*+R(oA@SKo<=pdiqxE`&caO09)iQjL7Rg;0gJExaNyQ$oc zW7B>_+T}@v9v5S#w8RB<8~s{PIzdc>RF~ocb$5p35v^3rcZeQST1>GZ6L(xlVC`eo zZkT9bb3#0GIF38BK9B6@CurwthF$XPjSjPk8S64kj)6 z00>1$NgqRqOK?(1NzRaHYEInG!syH>4}vTVRPQBnRq|+Fn{zGMxA&mAyZfJ=7$)?W z+9q=G5=)&1DJbdb9*x&)uV;qlJRF?NiMDGdA*RL~9&wwlp6`fv+G$#cysKU}p2U!E zk6ieSpQ73lFUY(bJ`Epk_oFfSt$Vg)O7axa!#Un`8E*VK{4WND0oM*Kzs?pj%I8iq zmq*zYY`wO#D;Iqz)Q44(PD`-YaK^Vv*mn8VSfv|do4u^7o>OPhXR23))`gC}HiAD3 z*ASdJ9!VeZuL>^C&gJnK@d`1mUNRXA*&0~1o)1}t{A-yN`NIhka9+7SPAvz5`Ud8V zW)qhidj5ZmtwIBijHvTdvf?#m-B2%;VP zDdz&h5+pnhxM3hqV4UcdB-O)I$-t5q!I@fO~SHmX#ens752sBK)(4}C9MPexB+FMiRIyma%Vjqr z)b+2dbEk4!WX3zj+o9X(yBa$cIG0=t8cOgv;ti*H6mhu87Y;7DWf;4Rx%({*v|jz6Ca9Kv~~ zP%_k0{3NZ=Vv@C&~)ocl5dU^%vxGEFyz+-}R(_G;(*J)Sk&KHn;EyL8(O z_v3MtVCHR5apd*KpSbh=0{K4?wBcD&VA*1cIv&Z|s!wmC?)wp4;bke(NjNIG*w5)5 zAx8-NnnxN(u9bFgX*ihJC)-LKc>;v|Rve#J&s*I0_J!8Do$Uo>^({0fsKuHEp+%;7 z&8=59zQ=yEgws2>zhCkq^=lYzAt3S`50)rRWGt+#J08vkf9@x2C^gJ0Z^v%4n z{_dK3^uE$CQ@47V?O6D=QFrU^Y=fZjd*#Qb)2p-b+2X?+{dD%N&s&)vXDt+#AIOPN z6f_4ZltToBBz0()l$@M>s8paw^aC#+OF!9=f{6~gwkip`vkMiXkDS94Teak+PPS`@ z{L|cX0mKF*0@6=d1!!;7YK&2I1pZ2fAtH8~52?NU!X&h2<@P`7SmtSYBq>HoMid9t z8^5p2HCYNAD)yLY)mMv>< zOK^=q^nSSEKT*hHjYIb2ZN(DvkHZO*v~smMm@K|l{>{qu8+GM%(RB*-tK90wo&ca0{o4)Gk5*v{^wy<`GfHDa6_rv9QI`TL?(U! zy{o%@+1|-`7a)xK#v)_6j!o3I%`(qb(fQ#X11FmUCB2m2j2)_>uqoN+ZH0Xv)EU<4 z#JA5`;QV=sV%yg+_VlhwUkPlzbf@KYV8H27YXqs-+1lU@$$@~0B9c@z@OzO=mA(( zNVO1B9=93hnjj-lG~vWoweQ$_WC4EPNe<((N7hI9(MZNnoWa=y`(y)%+=Xuwlr#QN zQ-OLz;Kkq*@(3q?XP2y&))5pE-j$yfEfZE36qWxbeIK}%@IoU?I7xnC%x%-A=)va! zCc;SqzOO{?SWI^0gl?Stb!prx+-m>a9QOscn^U^Aqt$(fg6$_D)HSpwTtIQBv?p6{ zKM#$_Qr~7*JuW35CX{XvVo-GuhwK;WdtpPNdSUmt6M=c0b-ZP~t+JWQxgxe=w&JQX z3C~zbb-8{OR&i36+U?yPo*f}$@Sna(32gXm0F>1gf26A(q$Tjrw5sAv}F%0rK7u^dK2bqKv^h9Lp2WBD|pWl|?`wS8U zq%d?|pq=Od@hx&x*p&o&A^$DwF9@zs6p`mVsUI|?<)k;HbcM8qm~#%S*cX02Qet99 za;hRzqCUx9iG8v8iSdEAV2AS5w&l|c=nGk_^sEsLFix3H#(&8Fu)zO}6pp+~drLD< z)2-#Ki?36yb+2Qo=WrZwpth&C=i7bQ{d$14+u8rSk6}cB1xtA=N-Z-mO+E&e5b=cPM$0Vtw3Y9fw@dcmqdGjy}Y|Cf! zk~8I#sbdx_Oza_C8fFjcx21#5li_`BlXnW}BPH~RK?G7!Gjr>gp_l+Sm4|b2L*RU6jXR;Rn6fFcEtV{0}>`9+e$Z6O5wa&PdNa5?|aaUQ&^J%i0ix1*- zR;E^U$A+gcq$twCXSuuCwb`+xL*1bgz8jP|Ww(NVMMHVK@8o;P(Zy8z{Y%u4E&-*6 z8vj_snd^&J+nnKi=y?sE4CWl}7Fh?LEIvnCZiZD3zd!+3J9kcZZu65fl}oTOoA1T7 z$4T)_k-!=90MtDHYe7;HYGfrlojPF? zLh&E*rI^YbKQSf2VEmN>SqWrA5QR`jCPuMG7Dp?nSgE#@(v_kWgB9j~V9dMC!_H34 zCe07CsIf>f#xYGYyZ%zHN3Z`@yL~va@6~gk+8+BG(H32o+_ydyIgfhRBo1`; zXaCur8H|f06P2vFWm+x?)-Pv=3fR7IIlHbCr9(wW?w23l3Q8h0lAhlI8dn`3rXsC| zWnz}(Q^nRM78K!h5OjByt5(d`X%{v;&|Jx!Wn9f|*$$e2BpwcKsIR~NnY=YcY(f8y zp6T}<3^x!HgojiU70aD~8XS!ngB8IRT@jrkGa_5qjqGcG;h;A+@NGD;sRDaB9C#vz zZMA^U8s}z+U;DQ58?&7m8SP27o;BzEi{SE{1~M_%F`5x>5jSL$MQ_u@;~wLKI;5&z zRSOs@Qp35Ij4s>HtZi(4jIn~ZJ4{MK&eOFCceM2-2nR=58`-W^Q6{!fSSH7I$%T)pEUc5p#WZy>L--IdfTlBz@3&WPZ>H zyAj}I_<9GGJA;4-J#>?HdV0a}=_=q4s(+nk)jiYOtt@nDLa~z$+QogdtNLOmdobMT zg%IhpZycGC4HMbAQ}C5|PJ9`DNSX2IrVmT453?zF;B6yvQeOsqzaU$PUA5cY(5e(s zq5sQW3GdB|@6(I~f#v%43tS7MG!7;~02{|!plp~&{-;!A$=21gAc7F6NipLz*d1S2 zp4bwjNx%&)BZv(MREIxBEJU#&#&Pe&0RLTyw?p^EtLvw~6pGu0W=Mas+YVB(UWOpX zwj1uw>qQBcTTdnq^h^H;Z(Lg3>c@P*Fzgr5>-(5Nf77nd;~Pj!wVTk#Cqp4zirNVp zUYe)KQ%QnEMk(|nzd50@0@feYen^7>dm!%P-*hSa zk1zi%DAA({oa%WtQn&fP4GB_BZU46*2#gyIsFb}e9#>Pw|Mo{Y_>A-4K?p%@$#QR& zLh3h3cT^zY&z88XYpR_s?{4M47sD~VO1D*$9 zoCm|x%TM&NI|~cE(jrC4;4^>!>_>`*j8LnRDw<>3GM9Nt(Jk(J z(74vL4feT(VOB#$Q4B$3t5hR0Rz;^l|F~ZU-E5Cw`WYi&GvP%w>vEh+udVUf{VB=y z^~ZAQS9V+cExCiZM@;rg^@N2Y>D?zc73IYF@=8g`y0|z6&qoU!HivZoIMSU8h}-9+ zRRB|+E~#A%MEJl^I2&pAQ~u$flTz7?%Q|6qd+p`wwI=IBCN7NKTSWuT=QPtu-?uz! z9p2+bK%Qm>yG>B0-03Wd!#MhgiNcwR8EbGfu7ap|N!JIr6bypdycj6n`&GB>=SRju zt7BdQ#UhzBx9Suo3ZefSnIKhmH?KMl%t0K;LC)^901*#(j)#1f=`Z%;d=k?{chx6OM0?rGiBM3OmM-vLEleJ`+fSRSvruDP6MmT(yFKHrM zo(y%S^7}R2#okZ)PaCaabtm^jbeb}n&G~2xe|mi06G1_-;4sz<48S}dRa0m}c~g}b ztJMptHP~`BIX1TL!G9DZ;Gk(#UCxTnQc-o&v9Z11P17w`pR6?_9nXn|oBBa`rGj*> zd%4-Ivegjfe%=f(G;awz-f#P4%(OMKv3=8@&*r;vJ`+|GJ}>HeHZcfAWRDm$Ps!cD z;joJBLJl`zPZVy1nan8ZdUqL0(G|{-%i+V3OkIh#U1Pmp1Q5k1c-#jZB$N;SVd;x) z%!kI<57hPk1}c-FIh8HzdBqoGJvutmC+qnbj&-n{D-;+sk#B6l)hQsVn! zK9(yanP%cX9!El%&E(sq#^^l+zp-a5suNRTH+EJ-;e2M&>a*!^ik4dF{U+9D>Yt5Ag^RE@E>eD&RZ;u4&*|%df zYc3c0O;#}Pf9CssPm6?cXMu^!y>o1nx|~yb&l@Y9H)%G5<#;zqNJ$-I=n|IfHgDTa zrgBU>oMU<|y*Kdb<;ikB8lE$%BUN3*v6L>md?}wNPt<2Xv%k`n;>; z%|re<3)Orin9mcznlBNj)y1zf`&z9JyrhSZ*Q0vVLB$`31xqzZpAYM`wq3o_;E4{8 zjZ8@pUVeT&5p9DO_x||5;JAqV%#~H5v+^7iiS7=<{hExWjr9n_&B~SiI~ugw3e8t$ zIxGP_exP=Is1=Gy)W&N~bjQ!X@hq2|FKK0@w?BFSmo7h^IF5rc5~-6Oc0<25k&*6D zpU(Kp3(!$+6iJ`qyF-w>4!{vKVq<7}cpOb;MPL@d!YO^D2~jK3sG?Wcll#SM#0c%0 zW^-yM7TCf@z>|El2uNkX(8c(XR4j%tDT0(2SR4pt{qv{WBJ}agC>QntI^3Px*GEj_tu>9-_L?60X-u{K(6 zkCMX)8M|^b&>Qu_VQ=i;*b4gD(Y%aOkP$&ovk`sqpBOb~s+`igHrc8d@Ay`8R3N_F zTKuCdw*Zd+!A3x>ImD?WdMCWhzmOs)$TzdxK$O;}->Qv{9#K|UaVD0Cs@+8hPn^IW zE)cZZg&?Ds(3TxrFDfcnZz!Ifsf3vt)&yP#Ijs3~B9yq2S`k9&HI=-%BDR@y#}i^h z(ti7l&htB1D;Y=~f>rEO?!F)zHuD!Gua@XCL{;PN=_pJPKZnL9tx&_L=6}owFZ?WjfA;%jL$RwX((9o!2llHCixhO5 zNRaB1$8a?J01mVzIOFj$xCcGBS<6cLUgT6y``1HWXkn@slHk+cH=_Oas~z8HhPR>J zx^Iy3wx$FV5jdZ3O4%svrqQJc<0M6l#YHS8(^F4-aA%Vlu$@~C-tCD&lcoXNJ~;R% zqwlXIF=j)}I;~(;fK2rihcR$0U0;M|W@x!{eDJ#RYIP;2Fw{lwyWRfO7>-IUD#|@K zI=@>yESNalnS#*WVS=xytPX{W6-j_F#)%`f!DuQ+X!G{~$o$ffLtN)RM>?ld<=|0> zW%e+O2|~SUJW*zo$$)j~HP#!-5pbcKMZL$Jm%;8Aij zgiJJaSFnN$0PSnHH*{Y8743e@M}CkXpS#v)D!YPOrCc_1GT%6v&gBj3wQ!R}@zcb@ zJ(9PwN|(S#zpOwU=i}J76pO6H3W{wu zuXB9*GGZ5mfiV{V)3V-PwH=wm#c){xZoACTosQA0)#@O=9wPa$M8|{O5*&fmV6BiN zBB-@=o_YZ~pl5^maL}kiiIohu{kg7@>|l0&4p#UZ<@F8Lvt)FR*71hyLuk;T;n!fjQ=u>abH45KuMd;S zT64&DR85C#E=T2N+XKBiaX>69NDg$*4`kj%Kf)$k%@IiJ*B9sEkiDL2t2Oq)CK8e% zAiREJ12Rrczlvz&S3842Yopy~u$uYFbcT zdkO~HK(pGKhsPhb-AH(ODDB7eyQ7wJy7BJb`7Q^g>zdUd)+iu>g+7CrXNTd#*Osj8plYV+!CpF>zn zm6G_JGs&?a5Fy`a?BZ3DrPFDEdjK_QgsfpTTUROnvHq}~gXk#-MjBfK@dgMd(0)i_ zqHA3}F6$MQY7@3#!$P8alfl7Vdb!}LzJ1c<-Ljh7@)daRM+%;=W)?7?FHUp4hlGaa{fe`C+59&-sr;3u{yxpWbj%F|f^raY#Kil>pP;x^_MsP?L)s)meOW7P|0gT)B-n2rZYb^gahbAfw`LzC}tLm3~M`sjpjAqru_ zh+f_BtEC({nn5wn^BT_KB90C!4Gu-8q1)1!JW90eOXTv}`17;w$0T?GY=mS-{C}iV z5NJM-1U$d5TqE-W8+Pvsyepj;9@^7i^QfE`(3-BZx$$ z(5p5lOqk#d3zYGnwio7Pc?Pmjtj-=EsN?&={ z$9i`0borb~IY{@HJr4xEjk>e(vIpgHF!gfT*1P-hacv_Be~0p5DJ&bktu7S7eQ9`O zxr=v`U}z)~#eZblpB7AtQ@cH2)^=zb2+*n(J6ZAH*+>V4@(p!WhUt48W$}<9k~Wz} z4VX2ezF1478pb0H{IOLy8+<_U$|X4m`*)+?Kq=xUnqQGrco^pnE1QlxjuJt>w=11o zva*o;HS!K9a;;XY0hg!ha+CE|wlTjKCQAsA&T4%dK0;28z;Le8Y#-Yp$2TQOL&BTm zyA8|WePkHL#<5)M)>Uf#)n*`iLe=!g>AOJzwe0&#OWV(8a*Bd?#V<^`)H+&PF@_tz z2EBF!uW4!sx6HHH>sM_8X`O>%_aH7i6B{k%RVy-wnB)Ix06ljwdUr(!LV>p%Qw`Jn z(w}>99D@iIfRc{ufDCw>c$sz=vitKB@<28+vN})K@%uBI+XJFehf6Ktv!%Mha5Cpp zG(ef+?cH<)xoO9*0hNm6l{V)-5u`z2Qoul~b11n9IUL`wP_BE$22`U(6#BlD>8I^b zUNq3|$?~|aB_(aaTozS6Iki_1JeRKDXEy(*TR=+mcwD64JZ|50f{ylwqwg~He2@};wz$3K~s+?+ZbI&HR_dgr)-p~D4> z6;!LhiSA%ouQkc87e{4qPeLIPe=CtbZgct8Jto*o@uD-9-!dPwt-g?@s7Lzu`rHsf zGiFP5J22TbRc7wq0YE?=E)vpCrr@xp2q8m2iD zW|$;g-co86YP%gl=h4c39Q)!pAorRWj)vsTZX9L3%|OIszS<^WH40N(s&%0|Q0*~{ z`Pn?T*y3LAh8cf(Gn|#aN>miv+hAYNrbuQSSBb~@V%aq2h?X*J?+d>JN zjEw}lh^h9^YQSIb=NBqZ%6sSL^Z0-&OOnkX2x$d1uU2@2IxTF1q;{*rit9GfR&rt@ zyASV_>{64N{#vb&N}lj>A{9uHZWH_k%G-y|TDt352~gG=$q-%o8XKr^gC`tqcCpVFOTO#xIFf2ABW|&i=WgxhhP-vVp0r zJVB9ka+l+s1+*M?ePP9`Ew}X%wOT^w1Btra!?ngIjYdLfmDyQjTgr;hXVc(C*x6`! z&InM0MU}uqYr&dXrS=+1h9WCJ)JAiqKPU6~W>Bc4yGdXS+|Xv_s)OHTaxG}!zpzfI zbSM*Tu`3S8EH_zUy)9`P6q=u@LN--dt>!u}em1*8`%$q+cR^1OAThK;!W4VYVLD8`Qa*qKnLE zy$zJ-DEFGTzdu$7sa8dvEkQn<1{Wm#x%&+zpPEar0Coi-hm)z|d?b)Z;N@4tJLIj_ z?L@VumpB*>x#xWtBM>yv+ee@IM9Bg!=wD-ZgpL^mWH z1QM!Ux?UA^%~pqFIOhKJ{2vwiSdFzvW!I6`{Er^#R2!AP$fKYqQym zhe8U04%+3mn;`_csacf!m5z0VD)KJ0$QNG8VGei1W z{|l6esG#7$-e6ya%+VKJMQWL^&~Ucjs`psx4IV(R$Wr5bHky>t<2iF}b$6Fk)HCP| z24OMpz&-B!tUQG0i;;iV?m{8pdodUneOZB|9K7(mPX3p+Qw5(sKT1A#p(b=n;Bk@- z8bf?v>ByVvN@Zro@%YC^B&ZM#U_vZ5fchC>>BMkMgyh)Fj9*E1z;SSiQ6(fOmkac!lU|o!nZBeqiEigLy)eyW@s%RuUb_J5vBc@-o5g zmS-=JlEw&O7DKmV?k`o1+Re|K5d&(_tzSn#d^u!HG^26-Jwc)2So`{k27^<+mE5Ey z^*Q8*(q^fDpzeL?VBPieDKhtP`|{O&e{Bp`^W&&7NzXwhb&zXQjh$E5NSi4`!==D}9x z>G~8!!eY``H^2pscp*ko{wtG{XbHq0;v1?hQmTEZWrq19P+ZBIEgwsf&te3OA3Z-Ka4c5Be;@hzy z5Y}IJD`7^t5ht1eZVZA`2L%OVmzo7)2Trlsl+!LBtH)p&m^}E34-&H7zeI-@`+oGE z1vELIc~W`4KFfUoUw^P*g}*u9?h{%N-Z1Ld0fEgUp__s}WTN{r{kbLzILCbgMgP&X zIDTqD|Ivh`_hC}%h(rrts9e_RLJ$2?vE@AZ`MNDpr$IP+R1H9WzQJ6gSQj(dEib-- zV>|L^n4hyoYRlxC*?JR#*JUeE?23ee@yF4gk!JXLGxx2cgxL2JkDL2J;U}FA?ie5M z=66R9t>Imn&`jjhufA{o%|R>7#wcqIz2{wOyifPbbzpQ&5^*c}qC{7_=TW@EAAP|$ z8--I@KrzZ`QLhY?3qEx^`x>cj`;k|z}nTMyHY>uV_wu^v3M9f9)) zyu?l~a?c+Z#qF*mJf7Ojwi$nLi?pCxOOVXg+-}(L%5!jg=-@e7Ds`QS$o1MD4VC;L z)+(A}*qhRW2Uv%)uy0+49(-?ug_y&BwY)M#@yX>pCW7!L+er!vGfszPOR1P)?&iO= zr1}tTguRNPS}MLsr(N+8%3N10x+p7DRk*cN^gU~>gtGAv1B~^d{Wrme!0X~YsVtY_ zpXq)N9^W4^C8+2 z3L?pX5wM5ut%XY_B_Knf!0i|6$qShHB{F1pQpp`U8 z6Y*Acs57?4CgLL<(U$q8|DW^dLJNk5c=Mdx3`2g6Zd_9;5&L+^kUG-w(aj!{diMiy zwim!Oa*2bG0J4Uj)JSgtBVL4R&n(qjNlu}+B3y&ER|^BO9S1{pynbyPzxM`)$29*2 zIdbkIgvGOzD-P5rng1J!-bNE$tFC}OxSe$<;#Yx>h57C}1v_}S%^MBFp zfCJQuHvQ!&qpy#m2t_k$?>oY56is(d|I1qn$Rfihp65d*kO6#rttBVZzxoO+ne2U4 zQ~cKDW-nMG_jqMrxeAOb;jb4n_4~l1Jx2JQ?DQUNbq>Buu}!9n(rOmdD;@dpMc%(~ zfWDNzK0ehy0;fI85(1@1lynXZQMZ}nSq0A2AY$HbqI&+Hz@x)Jg8ws;JVfod_}KOC zOE8=QT+<2S>m|>P)2wHCVz6Wn9gu@IyQNC}(-uhd_}x)(oc22qi~!435%pATt4L_0 z>TDCDV67yA5gwOrO#cd#oG3G&f0Tsxhw`D3aCuv1rn1m>qZ2V51)zU~Z)csxO{AQ) z|29MfX7^7Lzy4lDu^73_ZC%b)7D`I1-hk_??%`FU5Ags#dQ6}MaM_~U?b8YTbv|3# z{AC=`?j=J4WRKEdKt6=3(L9yP2G=?4zwx6t(C!zT0O|GLq9{*jlw+XDWV%X~M&sdl ziecbKijD`2_zU;+m>O`^Zc;t9dh#xP5yvBi4bBi|iz^-3%{Cv&fGm0m;EHm`SL@9+ zk_qGm;xTg4(x`G{^%^k*0w1fUIb5S-l>fG^SFfhH?M_i<3DETF5UxOY--`%49M8fR zI`Xwz*@u$#`g0#xrt%zCA3G_*j(670o?^Axt)mp1o>>?LksAO=x4P7o5 zYu{*8|My)CuqU`!c4rG|Tx>v%m_U+f#GaD^kcaSZnYv6%Lvt?kbQaz` zZ%_DxLp510PbG2N)Tz}zz@z?t{?uCndecrBgpB87ABHyCF0gC?i^nPW^|H+HFy)eSlYyN${x0r%Dep7;UJ@`AjgZAG zTDCj1*u~nXvyE}O_aG9+wrAV@-bC{?dP4%6+o^OTaI*_`3n)Li34mHoDVb>f-(CO< zi#b2gG7>StAQ}=95}#K(t2NeeyDI`U-7`>UdkT{Bkmd8JKp&*$5n{D^0Y3Zp-8T~BDWsVwQ!`QZ*LPV-?A?$1^0ok?Rw{m}2*-_RbewznJ1l>k$xshrDZte@|X1WP5GMa1NP zuMHn`ywP$6W3$1TCcT(i7r*Nm$cp%C(yYG1w2%UoaWZVCJpKNV0f@Ht4Cem=AL zz<@tlBA4cJ8T9S%n-fY9-8V~)wu|J&`PAbDGz4!6<8+RIZoP?Y!R)cc1(wlUll6K! zhi&#ew(alrW?Nk^FJ9P?Il2dS)DLN}X9Q;RVugo_it5M{ z@Cl3z2Na|@uVSvSG*41Lf zV&6{$_p44ndhJ^+BDi=zabUpXbM3DKCJEq)`+676nOa&QzkIYuezpKZYdm#%MHx3?L(lw~rqKhH!m+ z*Cg@C92V25afa^5s_;O7!ZZC%3ce!~2NEPv}9K%WfF%`_Sx8R@ybp#fC4aFHFJ)pUn6Zb<5j z{jCQ9M-LxrE?PH5kmXY4$)3k6^n_z*aPV$oV!mj^*1Vxw>OZa14Dq6~HmV^7rgwDJr$fWr}~JAW7eDB_an0Ep_`cMIA70{M(t)-&cw!hIg~K9igHV z36J|gEV=s=Si6yAp+)9CZi!-J94#J zU!q=bQeDVNK2_HaY%CF{22^JXOdHZ|iR_G;k1O7bU70gzrt^SJHEI<890b& z!}?~o<@UnZ(ZaoHhdi#AkufnT6iolODee-uK>P26_648!mt8+Qz$s_uj?HEpo6nnD zonqWt)4&fDMa@}^j!k5{@8~=Ibhb+(nIl}~@QF~?zfY+WK{gnjg$IDGl8ORro z2D?@ZA0Te=vO%Z-qD0_*T$=+C-7{}T617S?qke!Vpb?+XV~4lFdcA3P)d7yz`Nj($ zURC_Bzjw(2pZqEAw$Wn$H*?aq%$E~2)o8bWIcwAMiQp=W;2|6O-!%h(F-$vd)RQ+k zq~GfDD3?X~qO?-vR0(66$0-?zQT}2~K`I~JkWTG(m%kvYx;(@}PMa4nkec?N(<#3B zyno^Ud~>Yib3ClMd{Q?1{d+pcHPRFq=Ki@z3o#Hwgimx1^;d7z>Wd7I+H&0Y>EcnO zwT>2~8MwLL1h-YcK(Rge5dDt~V{ z&Toh*oXMTA)^@wAB*zDs5))P$C+)wfPtg?8XFIA+05Qqmx1TCopxZy4&C=y^;~A)) z#_qY#_st@5HUKS?b8}syF@a?+379H(_K!O(Z#!w8w1^V${9d&5U8T}IWil~4-iyuB zI|!v)IEtOKt%aVok6u$~Yt0I_=ocYQk7!PC=Hgu(16`$Dl1E8Hs_)s5aY|%AhEkKOJV38a zzSV_)_wDAG`u=(&s9qebAUx4(VJb1(>%B*{VpX}pBw+^Sa3FLKJ1&McOQ>tn8otq8jr00m((upQ)LBPEZ(pps{nb+q^FA05SX#_}VBe^*t{DDIj$ ziDXRmt7G`|9*z7jxI;`9v20oAImI)yKnkrPp^H|z^&T7_wI&>tquzXQly_0aQIm_p%W-tP)sR|Y z;+?)|)z$GnP2Mj6O|J!pu>LyvYR*y9lN$3Bp$Xt{v+2;luyY^IDTTcvD}@jXII#SU z#PEUJDbh4B}LxfDoERQg#Qs-f&G-h2=w`4`)P?1EaQd?JGbY3}lPw%|H+q$K<< z54*HJ6hk&}rhM%%E!lR87FhTWTQuyR=)d7HxET3SZvM)CJ4UJthtKe+d;FjK+oJI=obk-|{)$a-e;=m>+aqj->9mBBKv+RD72p;7t@?%nBBFTU2nBG6{R2YnUfIE?IW ze@1}3J9yS?#p0tgsnb7m?s%306(qXo{lZoll2krpaE{T!*Ln)|r`n}Eu4;IiMx)&v z*bdMfeIB1p%trpPp>X_%?6le9VXYzAc4A;0BEHZHKGu)nD=_VM7XTIEd2lF1LEFIJ z4E$W~m>3y{L5ltdy=aoJ4;S`R2u}8OpqTSOqVGNx0hl|SHxUt&m{lyw;Db$rLSjo& zg*r)%!^{wsDWjdQME$NYI&@(lTpLuUArnx-Ei=P`bS2Sg&qY~oR^>yo%M@DZVBNNO z$w7TGSEl4ki>|#&BwlZ!L^;OlNt$n^;#EMsRDQQWld1)5Kfo{>8X=rkEmfqmmcT3@ z90!fp0}%vKB+zdF1$1!il*2`JI6EQfFzf)pP7p)gSDwGtC|c&d??Zxl2zUg!#-$c` z&Ipl`W%7krJjG!Ll47FFWcikKdF?$y#vNKFT5Vjq&;#*3zi3Y&tv~;u%2Jx2pI?l? zM~mrnww-S1>6ap0-$J942chY&Fb{Nh`<|UTpOQ!7T4I#4afE(_3I$?STCKN2d;a-p z_?~!1Wp)h9I5#6~mES_Z#l!&LnB~wa7a(qC&0T{I(zl&li z_7!jM?5bS+Bq~a82wld^#z9tqUcR17vI|C!C^MEY7_s#t`YjxusBF~5O{~M{ol+L5 zh`gJ60uxD1y9DwKE4x+=SL>FuUMq};ys&rAzy>Nr0q|jXL)+$xZ~wyD_kMSI&s znZoPr@~uyV0+q~PA8;8#_l;m^R7kSu53TlU$0x&X7|Q3IDDFq`BmW7xs~I2_0Q)Ui zEP6R?NQ7cfo0RY2OUJ?W5Fww01w1@Fdqj~%is>v5%!2!R%&*7byH-EMx9iPR$Ll<>1J+E@y)+ztmL z(Re%|AtrZUx;5|Jk3Z`dfK3=e&exYA7ufZK?cE+YQwNMOBq;U! zGllhN>P5FbpT&L8G?xqdq(Xbdqq01DV<8dkOmxpnzC3wYx&luO%>8BzH1UmC5oX&% zeKw@pE3|6l6KVW5zcMcaQb|IaH=hv%GVV`CQ>JrWi_%>xm#kwoFoFyi3v=Er&C}3h z3Y2EbKQ)=_)v`kAtu-^gx)yxwG#kCH7_pI)5FK?Bbo&W-1-tOgSaBW-^+bFDagEZ$ zhH)eE=NY18u<8J?V+|)6v@bnwc_R6~;F*r)72GA-%VPrI2Y|?FH!W=cWCs87^@a!t z`zzGquX{9f^7S>%c40HvF8}D86~(Fyo;D%p=(z5z?A>ejHu$)|a;KJ!3%nT(B6=5w z=u@{j%|~Cu4{O*>7y&L`DiaS_{hm*NEl6wES_{q#)HY2yuU@J)Yk zLYoLQnVKc;L)LbFvu)V-b1y z{~_xuqpIq@ujx(!=|<`9?oR3M?(S}Bl{xrPx#pZMw@nCSBK};y)Fkg}=$t;Jn@h?mKt{#I?UeQTiCZHY#R4>j`{NJ4^V*=d zmE)9cvC=a)Z^_T?%Wp1mdBC?~<~%%*hd==&$R3dfWON`&ea#c}TMv2*;0Hok5VJv- zy7A=IIed9ZNzda^HM-zm49)k!5=s(0k?3FEF`G*#5V>G)-QiH@Eab#E3t%gXeNn?q zP;b>tN5;(4F;J5D$R=jE9*ZE23b_^P#|w3ZZYWKKnc%IB;JQens1j`~)9*x~zb+Fg zTOa~}*tiI{HBq*$x*79ZH=6Z^f)cVpZikziWW`OUBQaGP)l(U)(C@Eu#++QlU?jPm z)}LSQHl(Fjx+8I9nD14<)d7&)8(s_>lq=<~b$jjDyV@YL@O21oehPWxO(;2@DOXld zP(UM%*JAqNtB@yv??zFp*FI%JYY8rD{!id>txdRl7mkQkkiu;{i=d%`J532%#bwV_ z(1tgx)~p4p`N9@IX0ArxjGvg^&zB$o!xjRHD?D}AH|;cVwHoqFK9FkpFwAOXTWQdJ zTW8QM^mNkPY&E?vA5rs75K?={$oH@mi&{yf(X%z?M`I*VH&5m8V!^NTd}NIT7X~CO z;823{%#;|GcQ>!+^nn_g-}%z*4dL79Xdh6+3qN0k@wDe+VJ75Y+-l<{NWPhv@ZO&F z1qB#Sg6o9>6+o7>T~8(;VAn0DY@d_fjtJ#97z$h8|LSXMO40R2oSDmf*c@I-#O7x~ zNIJCfHGt^($3Ps61laN{;oreD;GyJMGxuDGP1O?r>~9Q2;U73z?fgoyDri^+U{M0z zK=p^7$D6MW0rPuihE)TSwZ|-~f!0Pz-T7B6u#EzF#!vRrjov$)!~S#^`bU1!#{$p* zPQtQ#q!0jjO2lK`zS^7M{cDQVtWlw2a<-Rn?~g$GpU2B&pNa*wh=UW=x=^DtBbz0Ttr=*B z%Vi%AugCY!tqFsO%T0S3_y%~K9=TLHG!3>;@GJ`?0K8lfDk9--3PhU~K8Ll6xjEH) zpW*FOjznxkWey@M*ZT_-g#Da98>XW6g^we+Mgo8eL{$*{r1QXl3 z(15YdMzc;r8g1doczxX#Ye+wyroC^ms9#7(WnR?El|F@cn@oUfOmv{2I|~UL`nZHO zV7Nyb^vtU69IeN2lMox*Je}ARm>gm@baXDaoHptcGFx>`k( zU020dMlCJ7%C5D(XPH!IRn6|N5 zj05mqx!potT@&lS^0+4=`0jYS%sgT%t$p)$#&fyG=a^^qcrXk;w$0rK72}8pr^RJw zH0g31&5jpyD^tn7s?iK&`k>?N+|VNy31^s#9drvfk0i^^0@n;vK8nz&o zpOL@{U2Ac3KOKRDdh%`s1(mSPz5DQD)l-k7&8$8Hh%>@KZ=lW)!Bvm(8cfd( zKEMDri`!@@W2gA$jI!`ryVFMQlYXQGu%A!8fyr>y$y)k1U^@gA+`Fv8tNciyK(_x~ zBI~1>`w3&ERv8FaeNI3l>AKlOS#|(`k#O&(UG7#5fw}N5KlpaKT1U7ob^#*sJE^Yk z8|p0btOWS&z-HT^1U8$W+0h!n*mGD0!u!>H6oq7rF=aY{$sN@4$b&(>-~}MHzw08u z-h(s4;d$>C+q~R)O09(b0z_D#H|46A^zd(Veu&P7tA3!V1>HdAHg^WnC~kdS-K=_1 zlc0Za#{b%y_YjB*`9c8zdc?bgu-5pACiM%z9{hm^q5_k}lY-F!eC2Ly@TROTSHS0L z&1)k zZPD=TDa4oniwuOWY=~0tgweb0){-e^Mtt@g=DSX#w-YCGd4*pq7JAKlDBB11i%z)t z!z&K(Ob0CG>6TAd6U<&Gi!O;2L;;{5kD2UN&MKAZuEx#a_ativgXt0sA0`_-k28s* z>N=)-cQ$d%*|QitmzXwWq@FLE8$B<1J5Txd52y`aX{mX8Indjrb6HG=dKZ815l02_ zPpR;F9Hj_+F#&^07aBmo^dViEb>DfQ|IC&BmEemiN_rhNudE6U*$(?(ODg=hwB~fI zntA)Z8@T2kva9FLQwB@_PZGXK-|YnhSV?46U(SvdlsE^{$SmGN^E5pDDD`$9WO{|% zh-q^#{*}QkNz}BV^c3i8@+>f6=?{qS~a%;q;S0jl8 zJDqpoy#cb7!%@t*oc0nX4gTq%U;VAV`7w>@J<|vBpVz5-LH0r~dwRK}ibm+N`fU>5 z@~`35>s9Wh?2k4t>ABB)5kw7JRK~KW+wu52bgDx(#Nmq7or{%knfwX^Z?*$KHQG<- z_y``Ua!ciElagv(cARut9v`WW^MkzR>W`HRBCkp*s1vN&JNyL0wVZ?m&4l+3(<4GNwT`K-5tdBrFSCUGDYPW(J%KijM&0N}dIGJW=^)}a zi%+ydC*m;P zlgk~@#GQADAAv-x|G7rIlv7Or4-UD^Y+w*|*iibKnq2D9(dMsF)OTXbKIY!-S9ZLC+6y=t$or0wSD<}ySllVVoZ6X(M{ z`>roi8!$v8bNjPsWL-df>2C-omVDgxlfK;J?S zk8kTHL*2TrAyZsXB1^M)^k#7hPhW4AnR4Ipmx#(Bv%Vs>lS{2ZDNWs{t&oN^N+H_0 zbqnIk4>94}1VkkxbLQ_YJIKT8K_$<yCy)9LXcF%tw@>2NXK3}a)WT%g!;^9azXTx^`!6B|1L9eIwCzy?T)Fl)*DG$lWO4Nr`S&=te@1tK zR^^?+JNcN9aSPBK1|5l2DO@eheLmPeys+!WVYYr? z8R_S`VQx|Mf6HL0Nj%&(a_j&Am4A7xTv}PJ%LS%BMv=7}qCwlFhV2FnNR`a%!n`4RhW?F5# zhdi8qx`G2=P?q0?A$>W`Pzyn z;LVjYo(vE2h^vQZYG0BhGrWSFya~Oh$tQyAS{vz5&`znRKnZ?@7Hd@_qk)gy`s*yx z39~PtI;;ARD{Hf?#BlDF@v`pN%kqLJ)Qru@N89l`E9pvUyF&OGF+CY%3ka)$r=S0e?L zNpZ%|r@;i-Gcy)^bTt9g1NQ_=@0}RT>sahFz7XOW1pVjb2cT~D=Gc#kGs5yh# z^EK@0s1n;999!xcqz4uDYH-B@`38ux&Ng=5jD3}9UyXULX@UIaRXX^+#~Y#B?SK8e z0WF|Hdm5K%0%z#|{aSVPZ8S&lKVO6k9N>oQWBU@ggr5D~{QkuYkXi>W`FUo6PXjjK z#DMAj0dl6!fR?$RNUumj_3mt*e#kcPpS)xM9npCKSD471`K)R0+2>_@>(;=xZUsFUXgMhpj2 z9{~FSn;j{ZkR-IHTfO7Gi8T52lIojz#*tG>bA4AeI*pOoYUeAPhbvFHo+|54r7=vD zOy60-j1f0rLj9(+?;Yi@^kQO5*!HKD19nigr;5=@+sv%kvuo3tbeN3Z?{#5x1lY;< zxJA|&RPwj$I;80c%}6k7ZEGYado{62fENQ+ap0-+KHei{ml8HUdD=_9;EE>VsBf{3 zQLCOHjTt@gMx#A(I?Y;MzFEJ=Te@x|?W{u1v2zu3MIf_8UQtH`;r*U`Em5KdsN};C~Cx#zZS_jh2%*|w>NTkuc|nFO81o+98mZ6 z0CpVH$ed}H^iW*YbG|oK{_6(sZrc_YyNgvS!&6iNo zf7~qf@%j}(66l!`%uR6qI93De`WwkxHWdWZ!*pEo(5*Ry0!)mMGVq9ls0`x23{Z=f zXjrFTrv1|jg=S)faFKV3O8LJD;Ewsst2A>`U629GA&fBI831>OHOa`jF_t)N0JGEM zAF_Jtalvaqrq$)1_F3qOiCdrSfUqCqHWY>k%!y;89m~k(cIvxbw)-HL0x0&Uk(-G9 z+oCWVjL5w7y7ZjiDM*d35gyxy=pX(bFDUrm%PWJqOth5H!hd|O_j_;V^}c`qZrkcR zohOJ&z;Tf>+DJ^IK(+$KE8DfP1I631kV-QM>q;VUVo!i*4$jr1^M`;!C<=`j>3h7S zEXF|xm*c88D1jKkTjFUEftdC8rFM}rurz;y(;O^_N` z7z-c@ut4ejTc?kkZh@gWEh1>wXGOSzxMPA1C)2gJ%`7q z^L~E7n<3F814bYwxIyG>Je2_};MTy=wO2&x-F0U7s&j}w2^`;PaiYRXJOBGQ?N&OE zRi3qBba?mEql}}EaB2avQ!(L_d9`)gzZ6AjzY~z=3pf{)d7l1M7RI5B&*nbHWn?4e zD^aQD^f-d)zs)MMRAfbje^=J`Q06iW7Z><58uRh(g}Iu<-d(#$LgenOOPVCvwht5x zr~v?SH$@t=R%AF&?fAuUeVIYGSh<2r))9HKKuIAPe3AM0F90*~`&cri0VmYd(Qp*H zuVjF@IUKspW9@HQSy`?9ik^pg4k1K_P*eG!1%Ly?!69!k z&9pWLEHuKgXB{( zSJOmD!^0R0mN0&hG-)*dk%`4&sh};y_-#b5>?g}t*~6lnwCe-%5d$h;IgV0q$V8a% zzoD?mo5g49#O>M)R#Q0-_dAII3*rUJk%m+ms*@Vx08L{u>r2*$`hf>1UWEap?nvQz zQ>Ev%b|U`B`kn&3DLzr9k82}ln_F7->ea;8Ps$1+=}e|p7g%51mdMfMjCcBf@b^n?uE1kOs|i*@hEr-eMZ{_ucF(>iPSR zNs~tOJe2jw=3$g!Gv9x*o~^))JJPn_Z=v-@<;b4Yc5MrM@h!&(Y~cDNAhI}infelP zU7JLd{s6SzmGU*Q4$b8q*8El+DbUAGpuI;{wn@k5z!k#%04$5 zJL9QkliB2=YEp@j2vO#!-dEpSl!cO!vd~GTv{z~}u_;%%9FS-od41Rb;o@}&^r%KP zRGu##Ac;ay_u&e^)Yq2`SZi>vG})8u!T7`HE|bmk>taTEpL-p_|BP40#U06E;2Ww$ zN1Me&cZ~CFrhqq#`sp7^Y3#v48>ha{?IC}5KoM5N{O@nqyu2}49Tt=B{}gw%IecJ; zP!-$~r#(X~F1WuKMo(wd^E{qsEcf(~a9nIK0oXl2Pxo*1eiJ5@3I*LC`(=5!ANNvHF<2Ku{US^SM#3KZ+jGH&y(klDCU`gUX@K%0 zqRyDlSwyFU#hkarR+<*gLW`a~r^4J3BO?+W=%GIXK9&i8Y1LS$p`v(pvN(}yx$Fm_ zepC&Je0iQ#+g66lb3{P!^j@N#z{|@*f~<5{CsHK}c4eyryk&@g zc5{QhLrgBDQOX*jflb>hf@|Mwg$(DD&3Lh7Ws&Gg@(oIU1`zsHYl$OEqw!#w|H!pl zZiY9pXf(yxYWO^~Szo6yaq)DXvOPuq=wt8geP5%~{P_29Ck7hj+-x-N5TH$(o0n7z z#8E@`e<&E@yQ!c7IPIP=;rNOCI9c^j4rB9+BvWTd1Uj@$OheaL4{e=I>k zO9*dWT9Ot?<~@!RkO3iwFp@)Bx_Qi1g(5^j8Pw;gE2)(tP3>{k=zeHl$!2dg+)Z!l zL^9@t`7#R-Fl>3fn0$VcDWna{GfjM7H626|Eb$wS!!J|JMxocFfr181TRb$fu@jA8 zhgcA!SuY^frKFMjF(kMg8BjUa%`V)&$oYV=_b8O`BCqrHM8Vs|{Giv*{rm|Ip?oA* zSYZb9{jZO9AayW~$MYe$zyG3rNb3=r(IRYPCKuNAOUASS-0Kt+Zx4)qe?q;_onxi3 zrbuestRf~h3~j6|hPH}C zsb-DQLZ#Yci_PfGF_6Mm$)}1@VOs;%Do8Zli9%T;^CQA4ms^tw5(ZDV9c4YYS%(`z zjiG3E2ddNxGN5V^OXvbV@tE?Uhf4!qu0yRFP4f;YifJM&~|~I z1J9FSy2RjzSz0~)oH9*D%Jm1Oe5ttmkl)OFzc&&tqJwBh1Wob2Nf}Sf={79lp(w%f zUJal-UTh9dHYwBksK75`zq=rT;?*TfH~5z(@sOS;Bkw{z-N*;N`s|b`YRfq;w=)-d z9Mjayr74EQiX#zvyL!&JZ^kmmyc#8#C8SfUSHEpVg{Lu+-!`-;j6-*Gq?qAdZ?S#+ z;jhOKdc)7ldr_LMKL=M!kSGQH10LN}N`IwFL*(tX0>hTOE={f6cyB)FO>k)2l*^&l zSKHA_zn6eDVc%V&)3vRnB<|sQ>oFnIgP|ap95VLL1zIxTtdu1cUoa0?XwjCTz^n`` zw|Z0PL$#i+6i<3H52nCW-Bh5LcEF=bkHp|KmOtKK?ijQpzB!=~a@oJVzBohtkAi(C zvw4QRds5<;2c&atbGVyOyfQinRo?&(p%+mBJ_mni4u z@cD9}P-D_-#o)6<0KiE{49?b0Wa-f-Lhcy(_m{teOI;d>X#PH4kOuxV#_5g<=n%(^fApH!`(zGu~#7UY70Ds9#$nfpl-{;U%z@7+fIezd1>D@REYT1W0^*r0Bp zPKY86T-4yd$VNv(;saWa_*U{R`l+TsKSx9qGnf`nw-TtI#_m_DdRlTbyW2!Lzv*@~ zS(rSbe$6af!@1nyU?82ozmi`ZD0Ii=^F*0)7eWtHUB!y>9!nwzw-l?>1}Xl2!%}{} zU2&>o`=_R$N6^N?k~}svZp51FtOFRcGkhKsU-I z#mvkMAcB9%$vJU<=vdrNrPl(km`NYuUR9 z==OiODv|w~Q}%!63d-Qt$!f@GNC{9v1rK<3`4a(DiLu6`8bB?Qw*uc5_YYUx3XBAu)pJ(vH-A2&J+}FCMr4ec>s*|{<(!7d^=a^sZ7~}*J2SSsk;2gVdA$eUt~(5rkV@3w z_=*%&XmZWz@b#m1Z#<3#;L`W)bg7iD5#AQCn(JsSEBUrii_HBL?6|fmo);3JtMF0a zLxUDGD?1wFWQL#~T}7nGZ2;UDMG@fNfrOBE?rCu&;N)gb6X!tLBwkCxSvc)(u+VM50?AZ^u1VmhpWu| zdp5yj?U)R5!aLA<3!Jz@rz>~rcm|tA_zyu}GB$^KhC;ZdJ5Bc%?azU0eBZK}4cP40 z{nbjl0Ix}*4?7^z5fqzds|n|eT>obBp^^=+Gph+|q6%fEJ zRJ3o*`zpk!)3gh4+kXxv<4?JCY`4tNX963dgy$LztO!AFJ##ayTtmX6ip7L z?Ki0jIV7EFLxiz6qrz26FW$rIC5d@3`CpoD5pt^oMi=^QCpwmZzgS@D5uHX6vjI}B z5OMYoEAzbl;OqWcTxPib2g@z_^oGGqz_aW}rgZFkJ|ER*xc+N2I&`16fJ@A>TD?!y zw?@OSWk}VWt}|s~KWSQ)TUPd^a%5w2l8+b6a=H6V+z!^wL>oJ%jexr#AlfBC2Po1F zmVR6YnF4>5+FXaL2LMuFwMI2ig7f@+0Qeq&l+1rOSvn1I&`aC^BDc>gBQ*xy@4I_%fpS}YzftULf(?M` z2lNoImm8srSlvfah}6pRxtRmzYoaYCkc|2hR%SmHvp6w&!hmdW`8?=MPjxGeFn;q$ zO9%+8K#V;8Bv-uN=ZPaah@eEj{e)SUNlh8cx{V{PGV+phAc z*zIMv(t`N|;_{LwKq3y8KKv5mATukGXwat&aB?$?a{E!R^H+8EyPIfZU{Hr@jNc$l zI+MX;aiWlGGc<~!9zeSIAY;Lu3-rlD-uD6I_r>2MpKlSdKGtYA7CE7zZFs0Lf}w9f z*|fD_1kL9)inwG=?my0fN{A%wXcY)JY0j(H#nqebkPCf%yaO7LTi5&KIQ(NsKHso1 z*y>H=Dn#fxGNo-T>ON17BSOEn+VNz=90beWAV+;AKnca3t~s5G+%;`IJZx)eDJT>V zlS*K4e{|C!YJ%>wOgLy;QBO}=1k1* zDKP~Q1{%d8ki?_VMqKtC1_k zUe(UXUK#r1h=}4{Z1s@^z{)yjx!)A+TY$e2=i}wvRYHECte{$l<8NkuCw$BPP-2+>l7> z-OtikZ~AZcOHh*fJsRR-8yzN!a-qV+t7qX@pNfkot){5ZN%MrP(5?nz&>rINP`({> z7W}o|K)>(7?PK?u1r*##@1GBaPV-LZ4}hx)&8kD*tt^f(k@ z?eqBjpgn1^*fodrc5N}ypo9`ibm^j)T{fM2yx7|DcvDyfN}8G_aDQw`BE6Ke zI4Y5KK_#RJb9wTV$WqF~PRrD&$pG9Uxx>O5kAB#4#d?g+RY%E{JYN3Q+uG8W`8Zk< z_{>T-INnlnkS|U4(7J%(#F=SIuQf`+J)5@J-Hw-k5c<3Lg&d+^EU+gMg3F#(wIrIp zyNhNM*yKl?FDBwZ2_Mfk zE#F>W8qJB4FHcuutEZF03ATZqsN;{7?>nBAm-pY$26|UkY1;EL!Z|mf;ZU6C*znc? z$(jGrEGxGos@MCI?pe3u-+HK!i?DkJMsS5sZuS?$@(*rqe(RF zy%*CZh3Z2hF+^#g(b3Su6<&*oI6feveG}nqh`c;^xY7<7HgorB@AkUvNO3bA132WB z{gPDV`hs}df9(n~D{u>c^!r!WT%mw2AbNfLia1J9ej55cV4=<+o;^LCXL8_wvXc!m z5mJwHLJ+|5Hm+=^$7H&NuO3@HSvd*_u#5%s0sd*3n9ky2Kp=b+I3k%C#b0aDwkP+I zj9P+y^!8-`x=teNU};aT!C=}dpk8WocA102n`^Y8=kmr>7IaCC2g??LA45f;t>Q%7 z2at5YY$DfuWgq3ur$|9VL!UhypAvzdfG1D;QYJ8b2|QP3;24}GttGA5TmZrkfQzBe zNDBJK+a~LUJ$HF|nZfBaR|SxL&u2#fVI`PcfeSXe9un31|L@T`} z{cS5Buz65RZRe`452mGmJX{}uJ#hcMUQaU6AK^||&gBxX4*XLXrC+%NBv{T{LqNtE z4MnY#GtgK9$km46oJ}8MahcaEqshSlJ{cr4mB=|4Gf~Tlq7VR|q(zDw^Bed@es;6o z)iYTaIsuZ3wxy^DH0D6Zm)j&F$|4X zcT$JM_CI;dFe1;x#Mu_3Z~)DX{&|zYGE( zG`-@j^+psH7B2D#wo?$@n9e_+wX(zi_h7Kfjocr@b&Ze5G>)mTU~NfiLp8ubMSyCv5KtNW{Tb*0yfGIGg7N`jlA#0-Nr*3#LD%l9j>11O z(7Ow5;L#-f9A^Y@Td0YDf%_!duWfVQz_HyXhrlZ~>N9wgZvFz3%Y408x$6KHKRg-{ zo^YUmr`+@$6uVEWzWvAYL6(0rjth?e1k6wKNA6vK0`eSirxtRQnFv!=GFZ){J^zm} z1m3>W+MSLz!;z?Wrz>}7-RJw7v{7)tq;YDM{oAtTU_Q`a%yE;af|Q_(L3qF06M#6$ z6|<{PTh5dxKJ-Hhd~ir)fYpJ9|8TBY1@Ke>@)EUTR*HBjk^E?*jlz09=*xfS3sx@p zcmx^yEx_-7Yd8uXmB9UCQ

    - -
    - Job Tier - - The Job Tier is responsible for the overall execution of a batch - job. It sequentially executes batch steps, ensuring that all steps are in - the correct state and all appropriate policies are enforced: - - - - - - - - - - - - The job tier is entirely concerned with maintaining the three job - stereotypes: Job, - JobInstance, and - JobExecution. The - JobLauncher interacts with the - JobRepository in order to create a - JobExecution, and the Job - stores the JobExecution using the - repository. -
    - -
    - Examples of Customized Business Logic - -
    - Some batch jobs can be assembled purely from off-the-shelf - components in Spring Batch, mostly the ItemReader - and ItemWriter implementations. Where this is not - possible (the majority of cases) the main API entry points for - application developers are the Tasklet, - ItemReader, ItemWriter and - the various listener interfaces. Most simple batch jobs will be able to - use off-the-shelf input from a Spring Batch - ItemReader, but it is very often the case that - there are custom concerns in the processing and writing, which normally - leads developers to implement an ItemWriter, or - ItemTransformer. - - Here we provide a few examples of common patterns in custom - business logic, mainly using the listener interfaces . It should be - noted that an ItemReader or - ItemWriter can implement the listener interfaces - as well if appropriate. -
    - -
    - Logging Item Processing and Failures - - A common use case is the need for special handling of errors in a - step, item by item, perhaps logging to a special channel, or inserting a - record into a database. The StepHandlerStep - (created from the step factory beans) allows users to implement this use - case with a simple ItemReadListener, for errors - on read, and an ItemWriteListener, for errors on - write. The below code snippets illustrate a listener that logs both read - and write failures: - - public class ItemFailureLoggerListener extends ItemListenerSupport { - - private static Log logger = LogFactory.getLog("item.error"); - - public void onReadError(Exception ex) { - logger.error("Encountered error on read", e); - } - - public void onWriteError(Exception ex, Object item) { - logger.error("Encountered error on write", e); - } - -} - - Having implemented this listener it must be registered with the - step: - - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - ... - <property name="listeners"> - <bean class="org.example...ItemFailureLoggerListener"/> - </property> - </bean> - - Remember that if your listener does anything in an - onError() method, it will be inside a transaction that is - going to be rolled back. If you need to use a transactional resource - such as a database inside an onError() method, consider - adding a declarative transaction to that method (see Spring Core - Reference Guide for details), and giving its propagation attribute the - value REQUIRES_NEW. -
    - -
    - Stopping a Job Manually for Business Reasons - - Spring Batch provides a stop() method through the JobLauncher - interface, but this is really aimed at the operator, rather than the - application programmer. Sometimes it is more convenient or makes more - sense to stop a job execution from within the business logic. - - The simplest thing to do is to throw a RuntimeException (one that - isn't retried indefinitely or skipped), For example, a custom exception - type could be used, as in the example below: - - public class PoisonPillItemWriter extends AbstractItemWriter { - - public void write(Object item) throws Exception { - - if (isPoisonPill(item)) { - throw new PoisonPillException("Posion pill detected: "+item); - } - - } - -} - - Another simple way to stop a step from executing is to simply - return null from the - ItemReader: - - public class EarlyCompletionItemReader extends AbstractItemReader { - - private ItemReader delegate; - - public void setDelegate(ItemReader delegate) { ... } - - public Object read() throws Exception { - - Object item = delegate.read(); - - if (isEndItem(item)) { - return null; // end the step here - } - - return item; - - } - -} - - The previous example actually relies on the fact that there is a - default implementation of the CompletionPolicy - strategy which signals a complete batch when the item to be processed is - null. A more sophisticated completion policy could be implemented and - injected into the Step through the - RepeatOperationsStepFactoryBean: - - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.RepeatOperationsStepFactoryBean" > - ... - <property name="chunkOperations"> - <bean class="org.springframework.batch.repeat.support.RepeatTemplate"> - <property name="completionPolicy"> - <bean class="org.example...SpecialCompletionPolicy"/> - </property> - </bean> - </property> - </bean> - - An alternative is to set a flag in the - StepExecution, which is checked by the - Step implementations in the framework in between - item processing. To implement this alternative, we need access to the - current StepExecution, and this can be achieved by implementing a - StepListener and registering it with the Step. Here is an example of a - listener that sets the flag: - - public class CustomItemWriter extends ItemListenerSupport implements StepListener { - - private StepExecution stepExecution; - - public void beforeStep(StepExecution stepExecution) { - this.stepExecution = stepExecution; - } - - public void afterRead(Object item) { - - if (isPoisonPill(item)) { - stepExecution.setTerminateOnly(true); - } - - } - -} - - The default behaviour here when the flag is set is for the step to - throw a JobInterruptedException. This can be - controlled through the StepInterruptionPolicy, - but the only choice is to throw or not throw an exception, so this is - always an abnormal ending to a job. -
    - -
    - Adding a Footer Record - - A very common requirement is to aggregate information during the - output process and to append a record at the end of a file summarizing - the data, or providing a checksum. This can also be achieved with a - callbacks in the step, normally as part of a custom - ItemWriter. In this case, since a job is - accumulating state that should not be lost if the job aborts, the - ItemStream interface should be - implemented: - - public class CustomItemWriter extends AbstractItemWriter implements - ItemStream, StepListener -{ - - private static final String TOTAL_AMOUNT_KEY = "total.amount"; - - private ItemWriter delegate; - - private double totalAmount = 0.0; - - public void setDelegate(ItemWriter delegate) { ... } - - public ExitStatus afterStep(StepExecution stepExecution) { - // Add the footer record here... - delegate.write("Total Amount Processed: " + totalAmount); - } - - public void open(ExecutionContext executionContext) { - if (executionContext.containsKey(TOTAL_AMOUNT_KEY) { - totalAmount = executionContext.getDouble(TOTAL_AMOUNT_KEY); - } - } - - public void update(ExecutionContext executionContext) { - executionContext.setDouble(TOTAL_AMOUNT_KEY, totalAmount); - } - - public void write(Object item) { - - delegate.write(item); - totalAmount += ((Trade) item).getAmount(); - - } - -} - - The custom writer in the example is stateful (it maintains its - total in an instance variable totalAmount), but the - state is stored through the ItemStream interface - in the ExecutionContext. In this way we can be - sure that when the open() callback is received on a - restart. The framework garuntees we always get the last value that was - committed. It should be noted that it is not always necessary to - implement ItemStream. For example, if the ItemWriter is re-runnable, in - the sense that it maintains its own state in a transactional resource - like a database, there is no need to maintain state within the writer - itself. -
    -
    \ No newline at end of file diff --git a/docs/src/site/docbook/reference/namespace.xml b/docs/src/site/docbook/reference/namespace.xml deleted file mode 100644 index 02b35d94b..000000000 --- a/docs/src/site/docbook/reference/namespace.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - Namespace Support - -
    - Namespace Support - Document Namespace support here. -
    - -
    diff --git a/docs/src/site/docbook/reference/outline.xml b/docs/src/site/docbook/reference/outline.xml deleted file mode 100644 index 0a319f87b..000000000 --- a/docs/src/site/docbook/reference/outline.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - The Spring Batch - Reference Documentation - Wayne Lund, Waseem Malik, Lucas Ward, Scott Wintermute, - Kerry O'Brien, Tomi Vanek - May 2007 - - - -
    - Chapter 1: Spring Batch Introduction - Overview of the Spring Batch Architecture - the Spring Batch Reference Model -
    - -
    - <ulink url="infrastructure.html">Chapter 2: The Spring Batch Infrastructure</ulink> - Infrastructure covers Repeat Template, I/O facilities and the RetryTemplate -
    - -
    - <ulink url="core.html">Chapter 3: Spring Batch Core</ulink> - Describe the domain language of batch and how the pieces fit together. -
    - -
    - <ulink url="execution.html">Chapter 4: Spring Batch Execution</ulink> - Describe the simple batch execution environment. -
    - -
    - <ulink url="application.html">Chapter 5: Spring Batch Applications</ulink> - Describe the solution space for spring batch. -
    - -
    - <ulink url="samples.html">Chapter 6: Spring Batch Samples</ulink> - The documentation for samples goes here -
    - -
    - <ulink url="batch-job-testing.html">Chapter 7: Unit and Integration Testing Batch Jobs</ulink> - The documentation for unit and integration testing of batch jobs goes here. -
    - -
    - <ulink url="batch-performance-testing.html">Chapter 8: Performance Testing Batch Jobs</ulink> - How to performance test batch jobs. -
    - -
    - <ulink url="glossary.html">Chapter 9: Glossary</ulink> - (Should this be Appendix A?) The Batch Glossary documents common terms used in the batch processing domain. -
    - -
    - More sections that may come later? - More advanced info about building Spring Batch, how to contribute, JMS integration, management with JMX, the Spring Batch data model, integration with schedulers (eg quartz) -
    -
    - diff --git a/docs/src/site/docbook/reference/partitioned-containers.xml b/docs/src/site/docbook/reference/partitioned-containers.xml deleted file mode 100644 index 2f245b529..000000000 --- a/docs/src/site/docbook/reference/partitioned-containers.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - Batch IO Support -
    - Partitioned Containers - Much stuff goes here. -
    - -
    diff --git a/docs/src/site/docbook/reference/spring-batch-intro.xml b/docs/src/site/docbook/reference/spring-batch-intro.xml index 98152cf19..3628a8d6c 100644 --- a/docs/src/site/docbook/reference/spring-batch-intro.xml +++ b/docs/src/site/docbook/reference/spring-batch-intro.xml @@ -4,209 +4,201 @@ Spring Batch Introduction + Many applications within the enterprise domain require bulk processing + to perform business operations in mission critical environments. These + business operations include automated, complex processing of large volumes + of information that is most efficiently processed without user interaction. + These operations typically include time based events (e.g. month-end + calculations, notices or correspondence), periodic application of complex + business rules processed repetitively across very large data sets (e.g. + Insurance benefit determination or rate adjustments), or the integration of + information that is received from internal and external systems that + typically requires formatting, validation and processing in a transactional + manner into the system of record. Batch processing is used to process + billions of transactions every day for enterprises. + + Spring Batch is a lightweight, comprehensive batch framework designed + to enable the development of robust batch applications vital for the daily + operations of enterprise systems. Spring Batch builds upon the productivity, + POJO-based development approach, and general ease of use capabilities people + have come to know from the Spring Framework, while making it easy for + developers to access and leverage more advance enterprise services when + necessary. Spring Batch is not a scheduling framework. There are many good + enterprise schedulers available in both the commercial and open source + spaces such as Quartz, Tivoli, Control-M, etc. It is intended to work in + conjunction with a scheduler, not replace a scheduler. + + Spring Batch provides reusable functions that are essential in + processing large volumes of records, including logging/tracing, transaction + management, job processing statistics, job restart, skip, and resource + management. It also provides more advance technical services and features + that will enable extremely high-volume and high performance batch jobs + though optimization and partitioning techniques. Simple as well as complex, + high-volume batch jobs can leverage the framework in a highly scalable + manner to process significant volumes of information. +
    - Introduction + Background - Many applications within the enterprise domain require bulk - processing to perform business operations in mission critical - environments. These business operations include automated, complex - processing of large volumes of information that is most efficiently - processed without user interaction. These operations typically include - time based events (e.g. month-end calculations, notices or - correspondence), periodic application of complex business rules processed - repetitively across very large data sets (e.g. Insurance benefit - determination or rate adjustments), or the integration of information that - is received from internal and external systems that typically requires - formatting, validation and processing in a transactional manner into the - system of record. Batch processing is used to process billions of - transactions every day for enterprises. + While open source software projects and associated communities have + focused greater attention on web-based and SOA messaging-based + architecture frameworks, there has been a notable lack of focus on + reusable architecture frameworks to accommodate Java-based batch + processing needs, despite continued needs to handle such processing within + enterprise IT environments. The lack of a standard, reusable batch + architecture has resulted in the proliferation of many one-off, in-house + solutions developed within client enterprise IT functions. - Spring Batch is a lightweight, comprehensive batch framework - designed to enable the development of robust batch applications vital for - the daily operations of enterprise systems. Spring Batch builds upon the - productivity, POJO-based development approach, and general ease of use - capabilities people have come to know from the Spring Framework, while - making it easy for developers to access and leverage more advance - enterprise services when necessary. Spring Batch is not a scheduling - framework. There are many good enterprise schedulers available in both the - commercial and open source spaces such as Quartz, Tivoli, Control-M, etc. - It is intended to work in conjunction with a scheduler, not replace a - scheduler. + SpringSource and Accenture have collaborated to change this. + Accenture's hands-on industry and technical experience in implementing + batch architectures, SpringSource's depth of technical experience, and + Spring's proven programming model together mark a natural and powerful + partnership to create high-quality, market relevant software aimed at + filling an important gap in enterprise Java. Both companies are also + currently working with a number of clients solving similar problems + developing Spring-based batch architecture solutions. This has provided + some useful additional detail and real-life constraints helping to ensure + the solution can be applied to the real-world problems posed by clients. + For these reasons and many more, SpringSource and Accenture have teamed to + collaborate on the development of Spring Batch. - Spring Batch provides reusable functions that are essential in - processing large volumes of records, including logging/tracing, - transaction management, job processing statistics, job restart, skip, and - resource management. It also provides more advance technical services and - features that will enable extremely high-volume and high performance batch - jobs though optimization and partitioning techniques. Simple as well as - complex, high-volume batch jobs can leverage the framework in a highly - scalable manner to process significant volumes of information. + Accenture has contributed previously proprietary batch processing + architecture frameworks, based upon decades worth of experience in + building batch architectures with the last several generations of + platforms, (i.e., COBOL/Mainframe, C++/Unix, and now Java/anywhere) to the + Spring Batch project along with committer resources to drive support, + enhancements, and the future roadmap. -
    - Background - - While open source software projects and associated communities - have focused greater attention on web-based and SOA messaging-based - architecture frameworks, there has been a notable lack of focus on - reusable architecture frameworks to accommodate Java-based batch - processing needs, despite continued needs to handle such processing - within enterprise IT environments. The lack of a standard, reusable - batch architecture has resulted in the proliferation of many one-off, - in-house solutions developed within client enterprise IT - functions. - - SpringSource and Accenture have collaborated to change this. - Accenture's hands-on industry and technical experience in implementing - batch architectures, SpringSource's depth of technical experience, and - Spring's proven programming model together mark a natural and powerful - partnership to create high-quality, market relevant software aimed at - filling an important gap in enterprise Java. Both companies are also - currently working with a number of clients solving similar problems - developing Spring-based batch architecture solutions. This has provided - some useful additional detail and real-life constraints helping to - ensure the solution can be applied to the real-world problems posed by - clients. For these reasons and many more, SpringSource and Accenture - have teamed to collaborate on the development of Spring Batch. - - Accenture has contributed previously proprietary batch processing - architecture frameworks, based upon decades worth of experience in - building batch architectures with the last several generations of - platforms, (i.e., COBOL/Mainframe, C++/Unix, and now Java/anywhere) to - the Spring Batch project along with committer resources to drive - support, enhancements, and the future roadmap. - - The collaborative effort between Accenture and SpringSource aims - to promote the standardization of software processing approaches, - frameworks, and tools that can be consistently leveraged by enterprise - users when creating batch applications. Companies and government - agencies desiring to deliver standard, proven solutions to their - enterprise IT environments will benefit from Spring Batch. -
    - -
    - Usage Scenarios - - A typical batch program generally reads a large number of records - from a database, file, or queue, processes the data in some fashion, and - then writes back data in a modified form. Spring Batch automates this - basic batch iteration, providing the capability to process similar - transactions as a set, typically in an offline environment without any - user interaction. Batch jobs are part of most IT projects and Spring - Batch is the only open source framework that provides a robust, - enterprise-scale solution. - - Business Scenarios - - Commit batch process periodically - - - - Concurrent batch processing: parallel processing of a - job - - - - Staged, enterprise message-driven processing - - - - Massively parallel batch processing - - - - Manual or scheduled restart after failure - - - - Sequential processing of dependent steps (with extensions to - workflow-driven batches) - - - - Partial processing: skip records (e.g. on rollback) - - - - Whole-batch transaction: for cases with a small batch size - or existing stored procedures/scripts - - - - Technical Objectives - - Batch developers use the Spring programming model: - concentrate on business logic; let the framework take care of - infrastructure. - - - - Clear separation of concerns between the infrastructure, the - batch execution environment, and the batch application. - - - - Provide common, core execution services as interfaces that - all projects can implement. - - - - Provide simple and default implementations of the core - execution interfaces that can be used ‘out of the box’. - - - - Easy to configure, customize, and extend services, by - leveraging the spring framework in all layers. - - - - All existing core services should be easy to replace or - extend, without any impact to the infrastructure layer. - - - - Provide a simple deployment model, with the architecture - JARs completely separate from the application, built using - Maven. - - -
    - -
    - Spring Batch Architecture - - Spring Batch is designed with extensibility and a diverse group of - end users in mind. The figure below shows a sketch of the layered - architecture that supports the extensibility and ease of use for - end-user developers. - - - - - - - - - Figure 1.1: Spring Batch Layered - Architecture - - - This layered architecture highlights three major high level - components: Application, Core, and Infrastructure. The application - contains all batch jobs and custom code written by developers using - Spring Batch. The Batch Core contains the core runtime classes necessary - to launch and control a batch job. It includes things such as a - JobLauncher, Job, and - Step implementations. Both Application and Core - are built on top of a common infrastructure. This infrastructure - contains common readers and writers, and services such as the - RetryTemplate, which are used both by application - developers(ItemReader and - ItemWriter) and the core framework itself. - (retry) -
    + The collaborative effort between Accenture and SpringSource aims to + promote the standardization of software processing approaches, frameworks, + and tools that can be consistently leveraged by enterprise users when + creating batch applications. Companies and government agencies desiring to + deliver standard, proven solutions to their enterprise IT environments + will benefit from Spring Batch.
    -
    + +
    + Usage Scenarios + + A typical batch program generally reads a large number of records + from a database, file, or queue, processes the data in some fashion, and + then writes back data in a modified form. Spring Batch automates this + basic batch iteration, providing the capability to process similar + transactions as a set, typically in an offline environment without any + user interaction. Batch jobs are part of most IT projects and Spring Batch + is the only open source framework that provides a robust, enterprise-scale + solution. + + Business Scenarios + + Commit batch process periodically + + + + Concurrent batch processing: parallel processing of a + job + + + + Staged, enterprise message-driven processing + + + + Massively parallel batch processing + + + + Manual or scheduled restart after failure + + + + Sequential processing of dependent steps (with extensions to + workflow-driven batches) + + + + Partial processing: skip records (e.g. on rollback) + + + + Whole-batch transaction: for cases with a small batch size or + existing stored procedures/scripts + + + + Technical Objectives + + Batch developers use the Spring programming model: concentrate + on business logic; let the framework take care of + infrastructure. + + + + Clear separation of concerns between the infrastructure, the + batch execution environment, and the batch application. + + + + Provide common, core execution services as interfaces that all + projects can implement. + + + + Provide simple and default implementations of the core + execution interfaces that can be used ‘out of the box’. + + + + Easy to configure, customize, and extend services, by + leveraging the spring framework in all layers. + + + + All existing core services should be easy to replace or + extend, without any impact to the infrastructure layer. + + + + Provide a simple deployment model, with the architecture JARs + completely separate from the application, built using Maven. + + +
    + +
    + Spring Batch Architecture + + Spring Batch is designed with extensibility and a diverse group of + end users in mind. The figure below shows a sketch of the layered + architecture that supports the extensibility and ease of use for end-user + developers. + + + + + + + + + Figure 1.1: Spring Batch Layered + Architecture + + + This layered architecture highlights three major high level + components: Application, Core, and Infrastructure. The application + contains all batch jobs and custom code written by developers using Spring + Batch. The Batch Core contains the core runtime classes necessary to + launch and control a batch job. It includes things such as a + JobLauncher, Job, and + Step implementations. Both Application and Core are + built on top of a common infrastructure. This infrastructure contains + common readers and writers, and services such as the + RetryTemplate, which are used both by application + developers(ItemReader and + ItemWriter) and the core framework itself. + (retry) +
    + \ No newline at end of file diff --git a/docs/src/site/docbook/reference/step.xml b/docs/src/site/docbook/reference/step.xml index d3a5520d4..1d89142d7 100644 --- a/docs/src/site/docbook/reference/step.xml +++ b/docs/src/site/docbook/reference/step.xml @@ -1,771 +1,858 @@ - - Step + + Configuring a Step + + A Step is a domain object that encapsulates an + independent, sequential phase of a batch job and contains all of the + information necessary to define and control the actual batch processing. + This is a necessarily vague description because the contents of any given + Step are at the discretion of the developer writing a + Job. A Step can be as simple or complex as the + developer desires. A simple Step might load data from + a file into the database, requiring little or no code. (depending upon the + implementations used) A more complex Step may have + complicated business rules that are applied as part of the processing. + + + + + + + + + + +
    - Introduction + Chunk-Oriented Processing - In Chapter 2, the overall architecture design was discussed, using - the following diagram as a guide: + Spring Batch uses a 'Chunk Oriented' processing style within it's + most common implementation. Chunk oriented processing refers to reading + the data one at a time, and creating 'chunks' that will be written out, + within a transaction boundary. One item is read in from an + ItemReader, handed to an + ItemWriter, and aggregated. Once the number of + items read equals the commit interval, the entire chunk is written out via + the ItemWriter, and then the transaction is committed. + fileref="images/chunk-oriented-processing.png" scale="75" + width="" /> - When viewed from left to right, the diagram describes a basic flow - for the execution of a batch job: + Below is a code representation of the same concepts shown above: + - - - A Scheduler kicks off a job script (usually some form of shell - script) - + + List items = new Arraylist(); + for(int i = 0; i < commitInterval; i++){ + Object processedItem = itemProcessor.process(itemReader.read()); + items.add(processedItem); + } + itemWriter.write(items); - - The script sets up the classpath appropriately, and starts the - Java process. In most cases, using - CommandLineJobRunner as the entry point - - - - The JobRunner finds the Job using the - JobLocator, pulls together the - JobParameters and launches the - Job - - - - The JobLauncher retrieves a - JobExecution from the - JobRepository, and executes the - Job - - - - The Job executes each - Step in sequence. - - - - The Step calls read on the - ItemReader, handing the resulting item to the - ItemWriter until null is returned, periodically - committing and storing status in the - JobRepository. - - - - When execution is complete, the Step - returns control back to the Job, and if no more - steps exist, control is returned back to the original caller, in this - case, the scheduler. - - - - This flow is perhaps a bit overly simplified, but describes the - complete flow in the most basic terms. From here, each tier will be - described in detail, using actual implementations and examples. -
    - -
    - Application Tier - - The Application tier is entirely concerned with the actual - processing of input: - - - - - - - - - - +
    - StepHandlerStep + Configuring a Step - The figure above shows a simple 'item-oriented' execution flow. - One item is read in from an ItemReader, and then - handed to an ItemWriter, until their are no more - items left. When processing first begins, a transaction is started and - periodically committed until the Step is - complete. Given these basic requirements, the - StepHandlerStep requires the following - dependencies, at a minimum: + Despite the relatively short list of required dependencies for a + Step, it is an extremely complex class that can + potentially contain many collaborators. In order to ease configuration, + the Spring Batch namespace can be used: - - - ItemReader - The - ItemReader that provides items for - processing. - + + <job id="sampleJob"> + <step name="step1" job-repository="jobRepository" transaction-manager="transactionManager"> + <tasklet reader="itemReader" writer="itemWriter" commit-interval="10"/> + </step> + </job> - - ItemWriter - The - ItemWriter that processes the items provided - by the ItemReader. - + - - PlatformTransactionManager - Spring - transaction manager that will be used to begin and commit - transactions during processing. - + The configuration above represents the only required dependencies + to create a item-oriented step: + + reader - The ItemReader that provides + items for processing. + - - JobRepository - The - JobRepository that will be used to - periodically store the StepExecution and - ExecutionContext during processing (just - before committing). - - + + writer - The ItemWriter that + processes the items provided by the + ItemReader. + + + + transaction-manager - Spring's + PlatformTransactionManager that will be + used to begin and commit transactions during processing. + + + + job-repository - The JobRepository + that will be used to periodically store the + StepExecution and + ExecutionContext during processing (just + before committing). + + + + commit-interval - The number of items that will be processed + before the transaction is committed. + + + + It should be noted that, job-repository defaults to + "jobRepository" and transaction-manager defaults to "transactionManger". + Furthermore, the ItemProcessor is not required, since the item could be + directly passed from the reader to the writer. +
    + +
    + The Commit Interval + + As mentioned above, a step reads in and writes out items, + periodically committing using the supplied + PlatformTransactionManager. With a + commit-interval of 1, it will commit after writing only one item. This + is less than ideal in many situations, since beginning and committing a + transaction is expensive. Ideally, it is preferable to process as many + items as possible in each transaction, which is completely dependent + upon the type of data being processed and the resources with which the + step is interacting. For this reason, the number of items that are + processed within a commit can be configured. + + + <job id="sampleJob"> + <step name="step1" job-repository="jobRepository" transaction-manager="transactionManager"> + <tasklet reader="itemReader" writer="itemWriter" commit-interval="10"/> + </step> + </job> + + + + In the example above, 10 items will be processed within each + transaction. At the beginning of processing a transaction is begun, and + each time read is called on the + ItemReader, a counter is incremented. When it + reaches 10, the list of aggregated items is passed to the + ItemWriter, and the transaction will be + committed. +
    + +
    + Configuring a Step for Restart + + In the Chapter on configuring a Job, restarting a + Job was discussed. Restart has numerous impacts + on steps, and as such may require some specific configuration.
    - SimpleStepFactoryBean + Setting a StartLimit - Despite the relatively short list of required dependencies for - an StepHandlerStep, it is an extremely complex - class that can potentially contain many collaborators. In order to - ease configuration, a SimpleStepFactoryBean can - be used: + There are many scenarios where you may want to control the + number of times a Step may be started. An + example is a Step that may be run only once, + usually because it invalidates some resource that must be fixed + manually before it can be run again. This is configurable on the step + level, since different steps have different requirements. One Step + that may only be executed once can exist as part of the same + Job as Step that can be + run infinitely. Below is an example start limit configuration: - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - <property name="transactionManager" ref="transactionManager" /> - <property name="jobRepository" ref="jobRepository" /> - <property name="itemReader" ref="itemReader" /> - <property name="itemWriter" ref="itemWriter" /> - </bean> + + <step name="step1"> + <tasklet reader="itemReader" writer="itemWriter" commit-interval="10" start-limit="1"/> + </step> - The configuration above represents the only required - dependencies of the factory bean. Attempting to instantiate a - SimpleStepFactoryBean without at least those - four dependencies will result in an exception being thrown during - construction by the Spring container. + + + The simple step above can be run only once. Attempting to run it + again will cause an exception to be thrown. It should be noted that + the default value for the start-limit is + Integer.MAX_VALUE.
    - Configuring a CommitInterval + Restarting a completed step - As mentioned above, the StepHandlerStep - reads in and writes out items, periodically commiting using the - supplied PlatformTransactionManager. By - default, it will commit after each item has been written. This is less - than ideal in many situations, since beginning and commiting a - transaction is expensive. Ideally, you would like to process as many - items as possible in each transaction, which is completely dependant - upon the type of data being processed and the resources that are being - interacted with. For this reason, the number of items that are - processed within a commit can be set as the commit interval: + In the case of a restartable job, there may be one or more steps + that should always be run, regardless of whether or not they were + successful the first time. An example might be a validation step, or a + Step that cleans up resources before + processing. During normal processing of a restarted job, any step with + a status of 'COMPLETED', meaning it has already been completed + successfully, will be skipped. Setting allow-start-if-complete to + "true" overrides this so that the step will always run: - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - <property name="transactionManager" ref="transactionManager" /> - <property name="jobRepository" ref="jobRepository" /> - <property name="itemReader" ref="itemReader" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="commitInterval" value="10" /> - </bean> + + <step name="step1"> + <tasklet reader="itemReader" writer="itemWriter" commit-interval="10" allow-start-if-complete="true"/> + </step> - In this example, 10 items will be processed within each - transaction. At the beginning of processing a transaction is begun, - and each time read is called on the - ItemReader, a counter is incremented. When it - reaches 10, the transaction will be committed. +
    - Configuring a Step for Restart + Step restart configuration example - Earlier in this chapter, restarting a Job - was discussed. Restart has numerous impacts on steps, and as such may - require some specific configuration. + + <job id="footballJob" restartable="true"> + <step name="playerload" next="gameLoad"> + <tasklet reader="playerFileItemReader" writer="playerWriter" + commit-interval="10" /> + </step> + <step name="gameLoad" next="playerSummarization"> + <tasklet reader="gameFileItemReader" writer="gameWriter" + commit-interval="10" allow-start-if-complete="true"/> + </step> + <step name="playerSummarization"> + <tasklet reader="playerSummarizationSource" writer="summaryWriter" + commit-interval="10" start-limit="3"/> + </step> + </job> -
    - Setting a StartLimit + - There are many scenarios where you may want to control the - number of times a Step may be started. An - example is a Step that may be run only once, - usually because it invalidates some resource that must be fixed - manually before it can be run again. This is configurable on the - step level, since different steps have different requirements. One - Step that may only be executed once can exist as part of the same - Job as Step that can - be run infinitely. Below is an example start limit - configuration: + The above example configuration is for a job that loads in + information about football games and summarizes them. It contains + three steps: playerLoad, gameLoad, and playerSummarization. The + playerLoad Step loads player information from a + flat file, while the gameLoad Step does the + same for games. The final Step, + playerSummarization, then summarizes the statistics for each player + based upon the provided games. It is assumed that the file loaded by + 'playerLoad' must be loaded only once, but that 'gameLoad' will load + any games found within a particular directory, deleting them after + they have been successfully loaded into the database. As a result, the + playerLoad Step contains no additional + configuration. It can be started almost limitlessly, and if complete + will be skipped. The 'gameLoad' Step, however, + needs to be run every time in case extra files have been dropped since + it last executed. It has 'allow-start-if-complete' set to 'true' in + order to always be started. (It is assumed that the database tables + games are loaded into has a process indicator on it, to ensure new + games can be properly found by the summarization step). The + summarization Step, which is the most important + in the Job, is configured to have a start limit + of 3. This is useful because if the step continually fails, a new exit + code will be returned to the operators that control job execution, and + it won't be allowed to start again until manual intervention has taken + place. - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - <property name="transactionManager" ref="transactionManager" /> - <property name="jobRepository" ref="jobRepository" /> - <property name="itemReader" ref="itemReader" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="commitInterval" value="10" /> - <property name="startLimit" value="1" /> - </bean> + + This job is purely for example purposes and is not the same as + the footballJob found in the samples project. + - The simple step above can be run only once. Attempting to run - it again will cause an exception to be thrown. It should be noted - that the default value for startLimit is - Integer.MAX_VALUE. -
    + Run 1: -
    - Restarting a completed step + + + playerLoad is executed and completes successfully, adding + 400 players to the 'PLAYERS' table. + - In the case of a restartable job, there may be one or more - steps that should always be run, regardless of whether or not they - were successful the first time. An example might be a validation - step, or a step that cleans up resources before processing. During - normal processing of a restarted job, any step with a status of - 'COMPLETED', meaning it has already been completed successfully, - will be skipped. Setting allowStartIfComplete to true overrides this - so that the step will always run: + + gameLoad is executed and processes 11 files worth of game + data, loading their contents into the 'GAMES' table. + - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - <property name="transactionManager" ref="transactionManager" /> - <property name="jobRepository" ref="jobRepository" /> - <property name="itemReader" ref="itemReader" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="commitInterval" value="10" /> - <property name="startLimit" value="1" /> - <property name="allowStartIfComplete" value="true" /> - </bean> -
    + + playerSummarization begins processing and fails after 5 + minutes. + + -
    - Step restart configuration example + Run 2: - <bean id="footballJob" - class="org.springframework.batch.core.job.SimpleJob"> - <property name="steps"> - <list> - <!-- Step Bean details ommitted for clarity --> - <bean id="playerload" parent="simpleStep" /> - <bean id="gameLoad" parent="simpleStep" > - <property name="allowStartIfComplete" value="true" /> - </bean> - <bean id="playerSummarization" parent="simpleStep" > - <property name="startLimit" value="2" /> - </bean> - </list> - </property> - <property name="jobRepository" ref="jobRepository" /> - <property name="restartable" value="true" /> - </bean> + + + playerLoad is not run, since it has already completed + successfully, and allow-start-if-complete is 'false' (the + default). + - The above example configuration is for a job that loads in - information about football games and summarizes them. It contains - three steps: playerLoad, gameLoad, and playerSummarization. The - playerLoad Step loads player information from - a flat file, while the gameLoad - Step does the same for games. The final - Step, playerSummarization, then summarizes - the statistics for each player based upon the provided games. It is - assumed that the file loaded by 'playerLoad' must be loaded only - once, but that 'gameLoad' will load any games found within a - particular directory, deleting them after they have been - successfully loaded into the database. As a result, the playerLoad - Step contains no additional configuration. It - can be started almost limitlessly, and if complete will be skipped. - The 'gameLoad' Step, however, needs to be run - everytime, in case extra files have been dropped since it last - executed, so it has 'allowStartIfComplete' set to 'true' in order to - always be started. (It is assumed that the database tables games are - loaded into has a process indicator on it, to ensure new games can - be properly found by the summarization step) The summarization - step, which is the most important in the - Job, is configured to have a start limit of - 3. This is useful in case it continually fails, a new exit code will - be returned to the operators that control job execution, and it - won't be allowed to start again until manual intervention has taken - place. + + gameLoad is executed again and processes another 2 files, + loading their contents into the 'GAMES' table as well (with a + process indicator indicating they have yet to be processed) + - - This job is purely for example purposes and is not the same - as the footballJob found in the samples project. - + + playerSummarization begins processing of all remaining game + data (filtering using the process indicator) and fails again after + 30 minutes. + + - Run 1: + Run 3: - - - playerLoad is executed and completes successfully, adding - 400 players to the 'PLAYERS' table. - + + + playerLoad is not run, since it has already completed + successfully, and allow-start-if-complete is 'false' (the + default). + - - gameLoad is executed and processes 11 files worth of game - data, loading their contents into the 'GAMES' table. - + + gameLoad is executed again and processes another 2 files, + loading their contents into the 'GAMES' table as well (with a + process indicator indicating they have yet to be processed) + - - playerSummarization begins processing and fails after 5 - minutes. - - - - Run 2: - - - - playerLoad is not run, since it has already completed - succesfully, and allowStartIfComplete is false (the - default). - - - - gameLoad is executed again and processes another 2 files, - loading their contents into the 'GAMES' table as well (with a - process indicator indicating they have yet to be - processed) - - - - playerSummarization begins processing of all remaining - game data (filtering using the process indicator) and fails - again after 30 minutes. - - - - Run 3: - - - - playerLoad is not run, since it has already completed - succesfully, and allowStartIfComplete is false (the - default). - - - - gameLoad is executed again and processes another 2 files, - loading their contents into the 'GAMES' table as well (with a - process indicator indicating they have yet to be - processed) - - - - playerSummarization is not start, and the job is - immeadiately killed, since this is the third execution of - playerSummarization, and it's limit is only 2. The limit must - either be raised, or the Job must be - executed as a new JobInstance. - - -
    + + playerSummarization is not start, and the job is immediately + killed, since this is the third execution of playerSummarization, + and it's limit is only 2. The limit must either be raised, or the + Job must be executed as a new + JobInstance. + +
    +
    + +
    + Configuring Skip Logic + + There are many scenarios where errors encountered while processing + should not result in Step failure, but should be + skipped instead. This is usually a decision that must be made by someone + who understands the data itself and what meaning it has. Financial data, + for example, may not be skippable because it results in money being + transferred, which needs to be completely accurate. Loading a list of + vendors, on the other hand, might allow for skips. If a vendor is not + loaded because it was formatted incorrectly or was missing necessary + information, then there probably won't be issues. Usually these bad + records are logged as well, which will be covered later when discussing + listeners. + <step name="step1"> + <tasklet reader="flatFileItemReader" writer="itemWriter" commit-interval="10" skip-limit="10"> + <skippable-exception-classes> + org.springframework.batch.item.file.FlatFileParseException + </skippable-exception-classes> + </tasklet> + </step> + + + + In this example, a FlatFileItemReader is + used, and if at any point a + FlatFileParseException is thrown, it will be + skipped and counted against the total skip limit of 10. It should be + noted that any failures encountered while reading will not count against + the commit interval. In other words, the commit interval is only + incremented on writes (regardless of success or failure). +
    + +
    + One problem with the example above is that any other exception + besides a FlatFileParseException will cause the + Job to fail. In certain scenarios this may be the + correct behaviour, however, in certain scenarios it may be easier to + identify which exceptions should cause failure and skip everything + else: + <step name="step1"> + <tasklet reader="flatFileItemReader" writer="itemWriter" commit-interval="10" skip-limit="10"> + <skippable-exception-classes> + java.lang.Exception + </skippable-exception-classes> + <fatal-exception-classes> + java.io.FileNotFoundException + </fatal-exception-classes> + </tasklet> + </step> + + + + By setting the skippable exceptions to + java.lang.Exception, any exception that is thrown + will be skipped. However, the second list, 'fatal-exception-classes', + contains specific exceptions that should be fatal if encountered. +
    + +
    + Configuring Retry Logic + + In most cases you want an exception to cause either a skip or + Step failure. However, not all exceptions are + deterministic. If a FlatFileParseException is + encountered while reading, it will always be thrown for that record. + Resetting the ItemReader will not help. However, + for other exceptions, such as a + DeadlockLoserDataAccessException, which indicates + that the current process has attempted to update a record that another + process holds a lock on, waiting and trying again might result in + success. In this case, retry should be configured: + + + <step name="step1"> + <tasklet reader="itemReader" writer="itemWriter" commit-interval="2" retry-limit="3"> + <retryable-exception-classes> + org.springframework.dao.DeadlockLoserDataAccessException + </retryable-exception-classes> + </tasklet> + </step> + + + + The Step allows a limit for the number of + times an individual item can be retried, and a list of exceptions that + are 'retryable'. +
    + +
    + Controlling rollback + + By default, regardless of retry or skip, any exceptions thrown + from the ItemWriter will cause the transaction + controlled by the Step to rollback. If skip is + configured as described above, exceptions thrown from the + ItemReader will not cause a rollback. However, + there are many scenarios in which exceptions thrown from the + ItemWriter should not cause a rollback because no + action has taken place to invalidate the transaction. For this reason, + the Step can be configured with a list of + exceptions that should not cause rollback. The transaction-attribute + attribute is a comma-separated list. Prefixing a class name with the "+" + symbol will indicate that exception should not cause rollback. + + + <step name="step1"> + <tasklet reader="itemReader" writer="itemWriter" commit-interval="2" skip-limit="1" + transaction-attribute="+org.springframework.batch.item.validator.ValidationException"> + </tasklet> + </step> + + + + Transaction attributes can be used to control multiple other + settings such as isolation and propagation behaviour. More information + on setting transaction attributes can be found in the spring core + documentation. +
    + +
    + Registering ItemStreams with the Step + + The step has to take care of ItemStream + callbacks at the necessary points in its lifecycle. (for more + information on the ItemStream interface, please refer to the chapter on + Readers and Writers) This is vital if a step fails, and might need to be + restarted, because the ItemStream interface is + where the step gets the information it needs about persistent state + between executions. + + If the ItemReader, + ItemProcessor, or + ItemWriter itself implements the + ItemStream interface, then these will be + registered automatically. Any other streams need to be registered + separately. This is often the case where there are indirect + dependencies, like delegates being injected into the reader and writer. + To a stream it can be injected into the Step + through the 'streams' element, as illustrated below: + + + <step name="step1"> + <tasklet reader="itemReader" writer="compositeWriter" commit-interval="2"> + <streams> + <stream ref="fileItemWriter1"/> + <stream ref="fileItemWriter2"/> + </streams> + </tasklet> + </step> + + <beans:bean id="compositeWriter" class="org.springframework.batch.item.support.CompositeItemWriter"> + <beans:property name="delegates"> + <beans:list> + <beans:ref bean="fileItemWriter1" /> + <beans:ref bean="fileItemWriter2" /> + </beans:list> + </beans:property> + </beans:bean> + + + + In the example above, the + CompositeItemWriter is not an + ItemStream, but both of its delegates are. + Therefore, both delegate writers must be explicitly registered as + streams in order for the framework to handle them correctly. The + ItemReader does not need to explicitly registered + as a stream because it is a direct property of the + Step. The step will now be restartable and the + state of the reader and writer will be correctly persisted in case of a + failure. +
    + +
    + Intercepting Step Execution + + Just as with the Job, there are many events + during the execution of a Step where a user may + need to perform some functionality. For example, in order to write out + to a flat file that requires a footer, the + ItemWriter needs to be notified when the + Step has been completed, so that the footer can + written. This can be accomplished with one of many + Step scoped listeners. + + Any class that implements the StepListener + interface (or an extension thereof) can be applied to a step via the + listeners element: + + + <step name="step1"> + <tasklet reader="reader" writer="writer" commit-interval="10"/> + <listeners> + <listener ref="stepListener"/> + </listeners> + </step> + + + + In addition to the StepListener interfaces, + annotations are provided address the same concerns.
    - Configuring Skip Logic + StepExecutionListener - There are many scenarios where errors encountered while - processing should not result in Step failure, - but should be skipped instead. This is usually a decision that must be - made by someone who understands the data itself and what meaning it - has. Financial data, for example, may not be skippable because it - results in money being transferred, which needs to be completely - accurate. Loading in a list of vendors, on the other hand, might allow - for skips, since a vendor not being loaded because it was formatted - incorrectly, or missing necessary information, won't cause issues. - Usually these bad records are logged as well, which will be covered - later when discussing listeners. Configuring skip handling requires - using a new factory bean: - SkipLimitStepFactoryBean <bean id="skipSample" - class="org.springframework.batch.core.step.item.SkipLimitStepFactoryBean"> - <property name="skipLimit" value="10" /> - <property name="itemReader" ref="flatFileItemReader" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="skippableExceptionClasses" - value="org.springframework.batch.item.file.FlatFileParseException"> - </property> - </bean> + StepExecutionListener represents the most + generic listener for Step execution. It allows + for notification before a Step is started and + after it has ends, whether it ended normally or failed: - In this example, a FlatFileItemReader is - used, and if at any point a FlatFileParseException is thrown, it will - be skipped and counted against the total skip limit of 10. It should - be noted that any failures encountered while reading will not count - against the commit interval. In other words, the commit interval is - only incremented on writes (regardless of success or failure). -
    - -
    - One problem with the example above is that any other exception - besides a FlatFileParseException will cause the - Job to fail. In certain scenarios this may be - the correct behaviour, however, in certain scenarios it may be easier - to identify which exceptions should cause failure and skip everything - else: <bean id="skipSample" - class="org.springframework.batch.core.step.item.SkipLimitStepFactoryBean"> - <property name="skipLimit" value="10" /> - <property name="itemReader" ref="flatFileItemReader" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="skippableExceptionClasses" - value="java.lang.Exception"> - <property name="fatalExceptionClasses" - value="java.io.FileNotFoundException"> - </property> - </befan> - - By setting the skippable exceptions to - java.lang.Exception, any exception that is - thrown will be skipped. However, the second list, - 'fatalExceptionClasses', contains specific exceptions that should be - fatal if encountered. -
    - -
    - Configuring Retry Logic - - In most cases you want an Exception to cause either a skip or - Step failure. However, not all exceptions are - deterministic. If a FlatFileParseException is encountered while - reading, it will always be thrown for that record. Resseting the - ItemReader will not help. However, for other - exceptions, such as a - DeadlockLoserDataAccessException, which - indicates that the current process has attempted to update a record - that another process holds a lock on, waiting and trying again might - result in success. In this case, retry should be configured: - - <bean id="step1" - class="org.springframework.batch.core.step.item.SkipLimitStepFactoryBean"> - <property name="itemReader" ref="itemGenerator" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="retryLimit" value="3" /> - <property name="retryableExceptionClasses" value="org.springframework.dao.DeadlockLoserDataAccessException" /> - </bean> - - The SkipLimitStepFactoryBean requires a - limit for the number of times an individual item can be retried, and a - list of Exceptions that are 'retryable'. -
    - -
    - Controlling rollback - - By default, regardless of retry or skip, any exceptions thrown - from the ItemWriter will cause the transaction - controlled by the Step to rollback. If skip is - configured as described above, exceptions thrown from the - ItemReader will not cause a rollback. However, - there are many scenarios in which exceptions thrown from the - ItemWriter should not cause a rollback because - no action has taken place to invalidate the transaction. For this - reason, the SkipLimitStepFactoryBean can be - configured with a list of exceptions that should not cause - rollback: - - <bean id="step2" - class="org.springframework.batch.core.step.item.SkipLimitStepFactoryBean"> - <property name="commitInterval" value="2" /> - <property name="skipLimit" value="1" /> - <!-- No rollback for exceptions that are marked with "+" in the tx attributes --> - <property name="transactionAttribute" - value="+org.springframework.batch.item.validator.ValidationException" /> - <property name="itemReader" - ref="tradeSqlItemReader" /> - <property name="itemWriter" - ref="itemTrackingWriter" /> - </bean> - - The TransactionAttribute property above - can be used to control multiple other settings such as isolation and - propagation behaviour. More information on setting transaction - attributes can be found in the spring core documentation. -
    - -
    - Registering ItemStreams with the Step - - The step has to take care of ItemStream - callbacks at the necessary points in its lifecycle. This is vital if a - step fails, and might need to be restarted, because the - ItemStream interface is where the step gets the - information it needs about persistent state between executions. The - factory beans that Spring Batch provides for convenient configuration - of Step instances have features that allow - streams to be registered with the step when it is configured. - - If the ItemReader or - ItemWriter themselves implement the ItemStream - interface, then these will be registered automatically. Any other - streams need to be registered separately. This is often the case where - there are indirect dependencies, like delegates being injected into - the reader and writer. To register these they can be injected into the - factory beans through the streams property, as illustrated - below: - - <bean id="step1" - class="org.springframework.batch.core.step.item.SkipLimitStepFactoryBean"> - <property name="streams" ref="fileItemReader" /> - <property name="itemReader"> - <bean - class="org.springframework.batch.item.validator.ValidatingItemReader"> - <property name="itemReader" ref="itemReader" /> - <property name="validator" ref="fixedValidator" /> - </bean> - </property> - ... -</bean> - - In the example above the main item reader is being set up to - delegate to a bean called "fileItemReader", which itself is being - registered as a stream directly. The step will now be restartable and - the state of the reader will be correctly persisted in case of a - failure. -
    - -
    - Intercepting Step Execution - - Just as with the Job, there are many - events during the execution of a Step that a - user may need notification of. For example, if writing out to a flat - file that requires a footer, the ItemWriter - needs to be notified when the Step has been - completed, so that it can write the footer. This can be accomplished - with one of many Step scoped listeners. - -
    - StepExecutionListener - - StepExecutionListener represents the - most generic listener for Step execution. It - allows for notification before a Step is - started, after it has completed, and if any errors are encountered - during processing: - - public interface StepExecutionListener extends StepListener { + + public interface StepExecutionListener extends StepListener { void beforeStep(StepExecution stepExecution); - ExitStatus onErrorInStep(StepExecution stepExecution, Throwable e); - ExitStatus afterStep(StepExecution stepExecution); -} + } - ExitStatus is the return type of - onErrorInStep and - afterStep in order to allow listeners the - chance to modify the exit code that is returned upon completion of a - Step. A - StepExecutionListener can be applied to any - step factory bean via the listeners property: + - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - <property name="transactionManager" ref="transactionManager" /> - <property name="jobRepository" ref="jobRepository" /> - <property name="itemReader" ref="itemReader" /> - <property name="itemWriter" ref="itemWriter" /> - <property name="commitInterval" value="10" /> - <property name="listeners" ref="stepListener" /> - </bean> + ExitStatus is the return type of + afterStep in order to allow listeners the + chance to modify the exit code that is returned upon completion of a + Step. - Because all listeners extend the - StepListener interface, they all may be - applied to factory beans in the same way. -
    + The annotations corresponding to this interface are: -
    - ChunkListener + + + @BeforeStep + - A chunk is defined as the items processed within the scope of - a transaction. Committing a transaction commits a 'chunk'. It may be - useful to be nofied before and after a chunk has completed, in which - case the ChunkListener interface may be - used: + + @AfterStep + + +
    - public interface ChunkListener extends StepListener { +
    + ChunkListener + + A chunk is defined as the items processed within the scope of a + transaction. Committing a transaction, at each commit interval, + commits a 'chunk'. A ChunkListener may be + useful to perform logic before a chunk begins processing or after a + chunk has completed: + + public interface ChunkListener extends StepListener { void beforeChunk(); void afterChunk(); } - The beforeChunk method is called - after the transaction is started, but before - read is called on the - ItemReader. Conversely, - afterChunk is called after the last call to - write on the - ItemWriter, but before the chunk has been - committed. -
    + The beforeChunk method is called after + the transaction is started, but before read + is called on the ItemReader. Conversely, + afterChunk is called after the last call to + write on the + ItemWriter, but before the chunk has been + committed. -
    - ItemReadListener + The annotations corresponding to this interface are: - When discussing skip logic above, it was mentioned that it may - be beneficial to log out skipped records, so that they can be deal - with later. In the case of read errors, this can be done with an - ItemReaderListener: public interface ItemReadListener extends StepListener { + + + @BeforeChunk + + + + @AfterChunk + + +
    + +
    + ItemReadListener + + When discussing skip logic above, it was mentioned that it may + be beneficial to log out skipped records, so that they can be deal + with later. In the case of read errors, this can be done with an + ItemReaderListener: public interface ItemReadListener<T> extends StepListener { void beforeRead(); - void afterRead(Object item); + void afterRead(T item); void onReadError(Exception ex); } - The beforeRead method will be called - before each call to read on the - ItemReader. The - afterRead method will be called after each - successful call to read, and will be passed - the item that was read. If there was an error while reading, the - onReadError method will be called. The - exception encounterd will be provided so that it can be - logged. -
    + The beforeRead method will be called + before each call to read on the + ItemReader. The + afterRead method will be called after each + successful call to read, and will be passed + the item that was read. If there was an error while reading, the + onReadError method will be called. The + exception encountered will be provided so that it can be + logged. -
    - ItemWriteListener + The annotations corresponding to this interface are: - Just as with the ItemReaderListener, the writing of an item - can be 'listened' to: + + + @BeforeRead + - public interface ItemWriteListener extends StepListener { + + @AfterRead + - void beforeWrite(Object item); + + @OnReadError + + +
    - void afterWrite(Object item); +
    + ItemProcessListener - void onWriteError(Exception ex, Object item); + Just as with the ItemReadListener, the + processing of an item can be 'listened' to: + + public interface ItemProcessListener<T, S> extends StepListener { + + void beforeProcess(T item); + + void afterProcess(T item, S result); + + void onProcessError(T item, Exception e); } - The beforeWrite method will be called - before write on the - ItemWriter, and is handed the item that will - be written. The afterWrite method will be - called after the item has been succesfully writen. If there was an - error while writing, the onWriteError - method will be called. The exception encountered and the item that - was attempted to be written will be provided, so that they can be - logged. -
    + The beforeProcess method will be called + before process on the + ItemProcessor, and is handed the item that will + be processed. The afterProcess method will be + called after the item has been successfully processed. If there was an + error while processing, the onProcessError + method will be called. The exception encountered and the item that was + attempted to be processed will be provided, so that they can be + logged. -
    - SkipListener + The annotations corresponding to this interface are: - Both ItemReadListener and - ItemWriteListner provide a mechanism for - being notified of errors, but neither one will inform you that a - record has actually been skipped. - onWriteError, for example, will be called - even if an item is retried and successful. For this reason, there is - a separate interface for tracking skipped items: + + + @BeforeProcess + - - public interface SkipListener extends StepListener { + + @AfterProcess + + + + @OnProcessError + + +
    + +
    + ItemWriteListener + + The writing of an item can be 'listened' to with the + ItemWriteListener: + + public interface ItemWriteListener<S> extends StepListener { + + void beforeWrite(List<? extends S> items); + + void afterWrite(List<? extends S> items); + + void onWriteError(Exception exception, List<? extends S> items); +} + + The beforeWrite method will be called + before write on the + ItemWriter, and is handed the item that will be + written. The afterWrite method will be called + after the item has been successfully written. If there was an error + while writing, the onWriteError method will + be called. The exception encountered and the item that was attempted + to be written will be provided, so that they can be logged. + + The annotations corresponding to this interface are: + + + + @BeforeWrite + + + + @AfterWrite + + + + @OnWriteError + + +
    + +
    + SkipListener + + Both ItemReadListener and + ItemWriteListner provide a mechanism for being + notified of errors, but neither one will inform you that a record has + actually been skipped. onWriteError, for + example, will be called even if an item is retried and successful. For + this reason, there is a separate interface for tracking skipped + items: + + + public interface SkipListener<T,S> extends StepListener { void onSkipInRead(Throwable t); - void onSkipInWrite(Object item, Throwable t); + void onSkipInWrite(S item, Throwable t); + + void onSkipInProcess(T item, Throwable t); } - onSkipInRead will be called whenever - an item is skipped while reading. It should be noted that rollbacks - may cause the same item to be registered as skipped more than once. - onSkipInWrite will be called when an item - is skipped while writing. Because the item has been read - successfully (and not skipped), it is also provided the item itself - as an argument. -
    + onSkipInRead will be called whenever an + item is skipped while reading. It should be noted that rollbacks may + cause the same item to be registered as skipped more than once. + onSkipInWrite will be called when an item is + skipped while writing. Because the item has been read successfully + (and not skipped), it is also provided the item itself as an + argument. + + The annotations corresponding to this interface are: + + + + @OnSkipInRead + + + + @OnSkipInWrite + + + + @OnSkipInProcess + +
    +
    + +
    + TaskletStep + + Chunk oriented processing is not the only way to process in a + Step. What if a Step must + consist as a simple stored procedure call? You could implement the call as + an ItemReader and return null after the procedure + finishes, but it is a bit unnatural since there would need to be a no-op + ItemWriter and lots of overhead for transaction + handling, listeners, etc. Spring Batch provides an implementation of + Step for this scenario: + TaskletStep. As explained in Chapter 2, the + Tasklet is a simple interface that has one method, + execute, which will be a called once for the + whole Step. Tasklet + implementors might call a stored procedure, a script, or a simple SQL + update statement. To create a TaskletStep, the + 'tasklet' attribute should reference a bean defining a + Tasklet object; no 'tasklet' element is needed + within the 'step': + + + <step name="step1" tasklet="myTasklet" /> + + + + + TaskletStep will automatically register the tasklet as + StepExecutionListener if it implements this + interface + + +
    + TaskletAdapter + + As with other adapters for the ItemWriter + and ItemReader interfaces, the + Tasklet interface contains an implementation that + allows for adapting itself to any pre-existing class: + TaskletAdapter. An example where this may be + useful is an existing DAO that is used to update a flag on a set of + records. The TaskletAdapter can be used to call + this class without having to write an adapter for the + Tasklet interface: + + + <bean id="myTasklet" class="org.springframework.batch.core.step.tasklet.TaskletAdapter"> + <property name="targetObject"> + <bean class="org.mycompany.FooDao"> + </property> + <property name="targetMethod" value-"updateFoo" /> + </bean> + + +
    - TaskletStep + Example Tasklet implementation - Item oriented processing is not the only way to process in a - Step. What if a Step must - consist as a simple storec procedure call? You could implement the call - as an ItemReader and return null after the - procedure finishes, but it is a bit unnatural since there would need to - be a no-op ItemWriter and lots of overhead for - transaction handling, listeners, etc. Spring Batch provides an - implementation of Step for this scenario: - TaskletStep. As explained in Chapter 2, the - Tasklet is a simple interface that has one - method, execute, which will be a called once - for the whole Step. - Tasklet implementors might call a stored - procedure, a script, or a simple SQL upate statement. Because there are - less concerns, there are only two required dependencies for a - TaskletStep: a Tasklet, - and a JobRepository: + Many batch jobs contain steps that must be done before the main + processing begins in order to set up various resources, or after + processing has completed to cleanup those resources. In the case of a + job that works heavily with files, it is often necessary to delete + certain files locally after they have been uploaded successfully to + another location. The example below taken from the Spring Batch samples + project, is a Tasklet implementation with just + such a responsibility: - <bean id="taskletStep" - class="org.springframework.batch.core.step.tasklet.TaskletStep" /> - <property name="tasklet" ref="tasklet" /> - <property name="jobRepository" ref="repository" /> -</bean> - - - TaskletStep will automatically register the tasklet as - StepExecutionListener if it implements this - interface - - -
    - TaskletAdapter - - As with other adapters for the ItemWriter - and ItemReader interfaces, the - Tasklet interface contains an implementation - that allows for adapting itself to any pre-existing class: - TaskletAdapter. An example where this may be - useful is an existing DAO that is used to upate a flag on a set of - records. The TaskletAdapter can be used to call - this class without having to write an adapter for the - Tasklet interface: - - <bean id="deleteFilesInDir" parent="taskletStep"> - <property name="tasklet"> - <bean class="org.springframework.batch.core.step.tasklet.TaskletAdapter"> - <property name="targetObject"> - <bean class="org.mycompany.FooDao"> - </property> - <property name="targetMethod" value-"updateFoo" /> - </bean> - </property> - </bean> -
    - -
    - Example Tasklet implementation - - Many batch jobs contains steps that must be done before the main - processing begins in order to set up various resources, or after - processing has completed to cleanup those resources. In the case of a - job that works heavily with files, it is often necessary to delete - certain files locally after they have been uploaded successfully to - another location. The example below taken from the Spring Batch - samples project, is a Tasklet implementation - with just such a responsibility: - - public class FileDeletingTasklet implements Tasklet, InitializingBean { + public class FileDeletingTasklet implements Tasklet, InitializingBean { private Resource directory; @@ -792,42 +879,42 @@ } } - The above Tasklet implementation will - delete all files within a given directory. It should be noted that the - execute method will only be called once. All - that is left is to inject the Tasklet into a - TaskletStep: + The above Tasklet implementation will + delete all files within a given directory. It should be noted that the + execute method will only be called once. All + that is left is to reference the Tasklet from the + Step: - <bean id="taskletJob" parent="simpleJob"> - <property name="steps"> - <bean id="deleteFilesInDir" parent="taskletStep"> - <property name="tasklet"> - <bean class="org.springframework.batch.sample.tasklet.FileDeletingTasklet"> - <property name="directoryResource" ref="directory" /> - </bean> - </property> + + <job id="taskletJob"> + <step name="deleteFilesInDir" tasklet="fileDeletingTasklet"/> + </job> + + <bean id="fileDeletingTasklet" + class="org.springframework.batch.sample.tasklet.FileDeletingTasklet"> + <property name="directoryResource"> + <bean id="directory" + class="org.springframework.core.io.FileSystemResource"> + <constructor-arg value="target/test-outputs/test-dir" /> </bean> </property> </bean> - <bean id="directory" - class="org.springframework.core.io.FileSystemResource"> - <constructor-arg value="target/test-outputs/test-dir" /> - </bean> -
    + +
    -
    - Executing System Commands +
    + Executing System Commands - Many batch jobs may require that an external command be called - from within the batch job. Such a process could be kicked off - separately by the scheduler, but the advantage of common meta-data - about the run would be lost. Furthermore, a multi-step job would also - need to be split up into multiple jobs as well. Because the need is so - common, Spring Batch provides a Tasklet - implementation for calling system commands: + Many batch jobs may require that an external command be called + from within the batch job. Such a process could be kicked off separately + by the scheduler, but the advantage of common meta-data about the run + would be lost. Furthermore, a multi-step job would also need to be split + up into multiple jobs as well. Because the need is so common, Spring + Batch provides a Tasklet implementation for + calling system commands: - + <bean class="org.springframework.batch.sample.tasklet.SystemCommandTasklet"> <property name="command" value="echo hello" /> <!-- 5 second timeout for the command to complete --> @@ -835,263 +922,292 @@ </bean> -
    -
    - -
    - Controlling Step Flow - - - -
    - Conditional Flow - - -
    - -
    - Configuring for Stop - - -
    - -
    - Programmatic flow decisions - - -
    - Examples of Customized Business Logic + Controlling Step Flow + + With the ability to group steps together within an owning job, comes + the need to be able to control how the job 'flows' from one step to + another. The failure of a Step doesn't necessarily + mean that the Job should fail. Further, there may + be more than one type of 'success', which determines which + Step should be executed next. Depending upon how a + group of Steps is configured, certain steps may not even be processed at + all.
    - Some batch jobs can be assembled purely from off-the-shelf - components in Spring Batch, mostly the ItemReader - and ItemWriter implementations. Where this is not - possible (the majority of cases) the main API entry points for - application developers are the Tasklet, - ItemReader, ItemWriter and - the various listener interfaces. Most simple batch jobs will be able to - use off-the-shelf input from a Spring Batch - ItemReader, but it is very often the case that - there are custom concerns in the processing and writing, which normally - leads developers to implement an ItemWriter, or - ItemTransformer. + Sequential Flow - Here we provide a few examples of common patterns in custom - business logic, mainly using the listener interfaces . It should be - noted that an ItemReader or - ItemWriter can implement the listener interfaces - as well if appropriate. + The simplest flow scenario is a job where all of the steps execute + sequentially: + + + + + + + + + + + + This can be achieved using the 'next' attribute of + Step: + + + <job id="job"> + <step name="stepA" next="stepB" /> + <step name="stepB" next="stepC"/> + <step name="stepC" /> + </job> + +In the scenario above, 'step A' will execute first. If 'step + A' completes normally, then 'step B' will execute and so on. However, if + 'step A' fails, then the entire Job will fail and + 'step B' will not execute.
    - Logging Item Processing and Failures + Conditional Flow - A common use case is the need for special handling of errors in a - step, item by item, perhaps logging to a special channel, or inserting a - record into a database. The StepHandlerStep - (created from the step factory beans) allows users to implement this use - case with a simple ItemReadListener, for errors - on read, and an ItemWriteListener, for errors on - write. The below code snippets illustrate a listener that logs both read - and write failures: + In the example above, there's only two possibilities: - public class ItemFailureLoggerListener extends ItemListenerSupport { + + + The Step is successful and the next Step should be + executed + - private static Log logger = LogFactory.getLog("item.error"); + + The Step failed and thus the Job should fail. + + - public void onReadError(Exception ex) { - logger.error("Encountered error on read", e); - } - - public void onWriteError(Exception ex, Object item) { - logger.error("Encountered error on write", e); + In many cases this may be sufficient. However, what about a + scenario in which the failure of a Step should trigger a different Step, + rather than causing failure? + + + + + + + + + + In order to handle this scenario, the next step can be determined + based on the result of the step by adding a next element to the Step. + The "on" attribute uses a simple pattern-matching scheme to match the + exit code of the Step to the various next elements declared. Only two + special characters are allowed: + + + + "*" will zero or more characters + + + + "?" will match exactly one character + + + + For example, "c*t" will match "cat" and "count", while "c?t" will + match "cat" but not "count". + + Any number of "next" elements is allowed, but if the step has an + exit code that is not covered by a "next" element, then the framework + will throw an exception and the job will fail. It is important to note + that the framework will automatically order transitions from most + specific to least specific. So even if the "next" elements were swapped + for "stepA" below, an exit status of "FAILED" would still go to + "stepB". + + + <job id="job"> + <step name="stepA"> + <next on="FAILED" to="stepB" /> + <next on="*" to="stepC" /> + </step> + <step name="stepB" next="stepC" /> + <step name="stepC" /> + </job> + + + +
    + Batch Status vs. Exit Status + + When configuring a Job for conditional + flow, it is important to understand the difference between + BatchStatus and + ExitStatus. BatchStatus + is an enumeration that is a property of both + JobExecution and + StepExecution, and is used by the framework to + record the status of a Job or + Step. It can be one of the following values: + COMPLETED, STARTING, STARTED, FAILED, STOPPING, STOPPED, or UNKNOWN. + Most of them are self explanatory, COMPLETED is the status set when a + step or job has completed successfully, FAILED is set when it fails, + and so on. The example above contains the following 'next' + element: + + + <next on="FAILED" to="stepB" /> + + + + At first glance, it would appear that the 'on' attribute + references the BatchStatus of the + Step it belongs to. However, it references the + ExitStatus of the Step. + As the name implies, ExitStatus represents the + status of a Step after it finishes execution. + More specifically, the 'next' element above references the + ExitCode of the + ExitStatus. To write it in English, it says: + "go to stepB if the exit code is FAILED". By default, the exit code is + always the same as the BatchStatus for the + Step, which is why the entry above works. However, what if the exit + code needs to be different? A good example comes from the skip sample + job, within the samples project: + + + <step name="step1"> + <end on="FAILED" /> + <next on="COMPLETED WITH SKIPS" to="errorPrint1" /> + <next on="*" to="step2" /> + </step> + + + + The above step has three possibilities: + + + + The step failed, in which case the job should fail. + + + + The Step completed successfully. + + + + The Step completed successfully, but with an exit code of + 'COMPLETED WITH SKIPS'. In this case, a different step should be + run to handle the errors. + + + + The above configuration will work, however, something needs to + change the exit code based on the condition of the execution having + skipped records: + + public class SkipCheckingListener implements StepExecutionListener { + + public ExitStatus afterStep(StepExecution stepExecution) { + if (!stepExecution.getExitStatus().getExitCode().equals(ExitStatus.FAILED.getExitCode()) + && stepExecution.getSkipCount() > 0) { + return new ExitStatus("COMPLETED WITH SKIPS"); + } else { + return null; } + } + ... } - Having implemented this listener it must be registered with the - step: - - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.SimpleStepFactoryBean" > - ... - <property name="listeners"> - <bean class="org.example...ItemFailureLoggerListener"/> - </property> - </bean> - - Remember that if your listener does anything in an - onError() method, it will be inside a transaction that is - going to be rolled back. If you need to use a transactional resource - such as a database inside an onError() method, consider - adding a declarative transaction to that method (see Spring Core - Reference Guide for details), and giving its propagation attribute the - value REQUIRES_NEW. + The above code is a StepExecutionListener + that first checks to make sure the Step was + successful, and next if the skip count on the + StepExecution is higher than 0. If both + conditions are met, a new ExitStatus with an exit code of "COMPLETED + WITH SKIPS" is returned. +
    - Stopping a Job Manually for Business Reasons + Configuring for Stop - Spring Batch provides a stop() method through the JobLauncher - interface, but this is really aimed at the operator, rather than the - application programmer. Sometimes it is more convenient or makes more - sense to stop a job execution from within the business logic. + If it is desired that the batch job stop under certain conditions, + then either the "stop" tag or the "end" tag may be used. - The simplest thing to do is to throw a RuntimeException (one that - isn't retried indefinitely or skipped), For example, a custom exception - type could be used, as in the example below: + The "stop" tag indicates the job should stop processing with an + exit status of "STOPPED". The "to" attribute tells the framework which + step should be first when the job is subsequently restarted. This + mechanism allows the job to pause temporarily. - public class PoisonPillItemWriter extends AbstractItemWriter { - - public void write(Object item) throws Exception { + On the other hand, the "end" tag will stop the job but does not + allow for a "to" attribute. The "status" attribute is optional. It will + determine the exit status of the step if the flow ends at that location. + The only legal values for the "status" are "COMPLETED", "FAILED", and + "STOPPED". If no status is specified, then the default is + "COMPLETED". - if (isPoisonPill(item)) { - throw new PoisonPillException("Posion pill detected: "+item); - } + + <step name="step1"> + <stop on="COMPLETED" to="step2"/> + </step> + <step name="step2"> + <next on="FOO" to="step3"/> + <end on="*" status="FAILED"/> + </step> + <step name="step3" /> - } - -} - - Another simple way to stop a step from executing is to simply - return null from the - ItemReader: - - public class EarlyCompletionItemReader extends AbstractItemReader { - - private ItemReader delegate; - - public void setDelegate(ItemReader delegate) { ... } - - public Object read() throws Exception { - - Object item = delegate.read(); - - if (isEndItem(item)) { - return null; // end the step here - } - - return item; - - } - -} - - The previous example actually relies on the fact that there is a - default implementation of the CompletionPolicy - strategy which signals a complete batch when the item to be processed is - null. A more sophisticated completion policy could be implemented and - injected into the Step through the - RepeatOperationsStepFactoryBean: - - <bean id="simpleStep" - class="org.springframework.batch.core.step.item.RepeatOperationsStepFactoryBean" > - ... - <property name="chunkOperations"> - <bean class="org.springframework.batch.repeat.support.RepeatTemplate"> - <property name="completionPolicy"> - <bean class="org.example...SpecialCompletionPolicy"/> - </property> - </bean> - </property> - </bean> - - An alternative is to set a flag in the - StepExecution, which is checked by the - Step implementations in the framework in between - item processing. To implement this alternative, we need access to the - current StepExecution, and this can be achieved by implementing a - StepListener and registering it with the Step. Here is an example of a - listener that sets the flag: - - public class CustomItemWriter extends ItemListenerSupport implements StepListener { - - private StepExecution stepExecution; - - public void beforeStep(StepExecution stepExecution) { - this.stepExecution = stepExecution; - } - - public void afterRead(Object item) { - - if (isPoisonPill(item)) { - stepExecution.setTerminateOnly(true); - } - - } - -} - - The default behaviour here when the flag is set is for the step to - throw a JobInterruptedException. This can be - controlled through the StepInterruptionPolicy, - but the only choice is to throw or not throw an exception, so this is - always an abnormal ending to a job. +
    - Adding a Footer Record + Programmatic flow decisions - A very common requirement is to aggregate information during the - output process and to append a record at the end of a file summarizing - the data, or providing a checksum. This can also be achieved with a - callbacks in the step, normally as part of a custom - ItemWriter. In this case, since a job is - accumulating state that should not be lost if the job aborts, the - ItemStream interface should be - implemented: + In some situations, more information than the exit status may be + required to decide which step to execute next. In this case, a + JobExecutionDecider can be used to assist in the + decision. - public class CustomItemWriter extends AbstractItemWriter implements - ItemStream, StepListener -{ + + public class MyDecider implements JobExecutionDecider { - private static final String TOTAL_AMOUNT_KEY = "total.amount"; - - private ItemWriter delegate; - - private double totalAmount = 0.0; - - public void setDelegate(ItemWriter delegate) { ... } - - public ExitStatus afterStep(StepExecution stepExecution) { - // Add the footer record here... - delegate.write("Total Amount Processed: " + totalAmount); + public String decide(JobExecution jobExecution, StepExecution stepExecution) { + if (someCondition) { + return "FAILED"; + } + else { + return "COMPLETED"; + } } - public void open(ExecutionContext executionContext) { - if (executionContext.containsKey(TOTAL_AMOUNT_KEY) { - totalAmount = executionContext.getDouble(TOTAL_AMOUNT_KEY); - } - } + } - public void update(ExecutionContext executionContext) { - executionContext.setDouble(TOTAL_AMOUNT_KEY, totalAmount); - } + + + In the job configuration, a "decision" tag will specify the + decider to use as well as all of the transitions. + + + <job id="job"> + <step name="step1" next="decision" /> - public void write(Object item) { + <decision id="skipCheckingDecision" decider="decider"> + <next on="FAILED" to="step2" /> + <next on="COMPLETED" to="step3" /> + </step> - delegate.write(item); - totalAmount += ((Trade) item).getAmount(); + <step name="step2" next="step3"/> + <step name="step3" /> + </job> - } + <bean id="decider" class="com.MyDecider"/> -} - - The custom writer in the example is stateful (it maintains its - total in an instance variable totalAmount), but the - state is stored through the ItemStream interface - in the ExecutionContext. In this way we can be - sure that when the open() callback is received on a - restart. The framework garuntees we always get the last value that was - committed. It should be noted that it is not always necessary to - implement ItemStream. For example, if the ItemWriter is re-runnable, in - the sense that it maintains its own state in a transactional resource - like a database, there is no need to maintain state within the writer - itself. +
    \ No newline at end of file