From 48a4c2a32061ada03b7243318c2bb255feb9317b Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Wed, 8 Jul 2015 14:22:17 -0400 Subject: [PATCH 01/77] Adding Linux configuration information as well as linking to the administration guide within the development quickstart. --- nifi-site/src/pages/markdown/quickstart.md | 53 +++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/nifi-site/src/pages/markdown/quickstart.md b/nifi-site/src/pages/markdown/quickstart.md index 379cda99c3..0851a4dac5 100644 --- a/nifi-site/src/pages/markdown/quickstart.md +++ b/nifi-site/src/pages/markdown/quickstart.md @@ -29,6 +29,57 @@ Then checkout the 'develop' branch git checkout develop ```
+ +### Linux Operating System Configuration + +_NOTE_: If you are building on Linux, consider these best practices. Typical Linux defaults are not necessarily well tuned for the needs of an IO intensive application like NiFi. +For all of these areas, your distribution's requirements may vary. Use these sections as advice, but consult your distribution-specific documentation for how best to achieve these recommendations. + + +#### Maximum File Handles + +NiFi will at any one time potentially have a very large number of file handles open. Increase the limits by +editing '/etc/security/limits.conf' to add something like + + * hard nofile 50000 + * soft nofile 50000 + +#### Maximum Forked Processes + +NiFi may be configured to generate a significant number of threads. To increase the allowable number edit '/etc/security/limits.conf' + * hard nproc 10000 + * soft nproc 10000 + +And your distribution may require an edit to /etc/security/limits.d/90-nproc.conf by adding + * soft nproc 10000 + +#### Increase the number of TCP socket ports available +This is particularly important if your flow will be setting up and tearing down a large number of sockets in small period of time. + + sudo sysctl -w net.ipv4.ip_local_port_range="10000 65000" + +#### Set how long sockets stay in a TIMED_WAIT state when closed +You don't want your sockets to sit and linger too long given that you want to be able to quickly setup and teardown new sockets. It is a good idea to read more about +it but to adjust do something like + + sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait="1" + + +#### Tell Linux you never want NiFi to swap +Swapping is fantastic for some applications. It isn't good for something like +NiFi that always wants to be running. To tell Linux you'd like swapping off you +can edit '/etc/sysctl.conf' to add the following line + + vm.swappiness = 0 + +#### Disable partition atime +For the partitions handling the various NiFi repos turn off things like 'atime'. +Doing so can cause a surprising bump in throughput. Edit the '/etc/fstab' file +and for the partition(s) of interest add the 'noatime' option. + +#### Additional guidance +Additional information on system administration and settings can be located in our [Administrator's Guide][adminguide]. + ### Build steps 1. You need a recent Java 7 (or newer) JDK. @@ -86,7 +137,7 @@ is ready for use: 2014-12-09 00:42:03,540 INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs: - +[adminguide]: https://nifi.incubator.apache.org/docs/nifi-docs/html/administration-guide.html [maven]: http://maven.apache.org/ [jira]: https://issues.apache.org/jira/browse/NIFI [git]: http://git-scm.com/ From 7f6f404baa1826462384de6c35be823189a36821 Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 11 Jul 2015 09:44:56 -0400 Subject: [PATCH 02/77] NIFI-685 This closes #67. Was merged/closed in JIRA but not github From 8bd20510ee348e497b6039e083b32e37a4d3a20e Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Mon, 13 Jul 2015 14:17:42 -0400 Subject: [PATCH 03/77] NIFI-762: Allow user to set keystore and truststore properties instead of setting sslcontext --- .../org/apache/nifi/events/EventReporter.java | 4 +- .../nifi/remote/client/KeystoreType.java | 24 ++ .../nifi/remote/client/SiteToSiteClient.java | 257 +++++++++++++++++- .../remote/client/SiteToSiteClientConfig.java | 32 ++- .../nifi/controller/FlowController.java | 2 + .../remote/StandardRemoteProcessGroup.java | 2 + .../nifi/remote/StandardRootGroupPort.java | 2 + .../TestPersistentProvenanceRepository.java | 2 + 8 files changed, 311 insertions(+), 14 deletions(-) create mode 100644 nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java b/nifi/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java index 76702f174b..d645d60d6e 100644 --- a/nifi/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java +++ b/nifi/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java @@ -16,12 +16,14 @@ */ package org.apache.nifi.events; +import java.io.Serializable; + import org.apache.nifi.reporting.Severity; /** * Implementations MUST be thread-safe */ -public interface EventReporter { +public interface EventReporter extends Serializable { void reportEvent(Severity severity, String category, String message); } diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java b/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java new file mode 100644 index 0000000000..63c3d63c20 --- /dev/null +++ b/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.remote.client; + +import java.io.Serializable; + +public enum KeystoreType implements Serializable { + PKCS12, + JKS; +} diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java b/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java index 5c4ce55d20..78237b997c 100644 --- a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java +++ b/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java @@ -18,11 +18,17 @@ package org.apache.nifi.remote.client; import java.io.Closeable; import java.io.File; +import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.Serializable; +import java.security.KeyStore; +import java.security.SecureRandom; import java.util.concurrent.TimeUnit; +import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; import org.apache.nifi.events.EventReporter; import org.apache.nifi.remote.Transaction; @@ -143,6 +149,12 @@ public interface SiteToSiteClient extends Closeable { private long penalizationNanos = TimeUnit.SECONDS.toNanos(3); private long idleExpirationNanos = TimeUnit.SECONDS.toNanos(30L); private SSLContext sslContext; + private String keystoreFilename; + private String keystorePass; + private KeystoreType keystoreType; + private String truststoreFilename; + private String truststorePass; + private KeystoreType truststoreType; private EventReporter eventReporter; private File peerPersistenceFile; private boolean useCompression; @@ -164,6 +176,12 @@ public interface SiteToSiteClient extends Closeable { this.penalizationNanos = config.getPenalizationPeriod(TimeUnit.NANOSECONDS); this.idleExpirationNanos = config.getIdleConnectionExpiration(TimeUnit.NANOSECONDS); this.sslContext = config.getSslContext(); + this.keystoreFilename = config.getKeystoreFilename(); + this.keystorePass = config.getKeystorePassword(); + this.keystoreType = config.getKeystoreType(); + this.truststoreFilename = config.getTruststoreFilename(); + this.truststorePass = config.getTruststorePassword(); + this.truststoreType = config.getTruststoreType(); this.eventReporter = config.getEventReporter(); this.peerPersistenceFile = config.getPeerPersistenceFile(); this.useCompression = config.isUseCompression(); @@ -240,7 +258,12 @@ public interface SiteToSiteClient extends Closeable { * secure. The remote instance of NiFi always determines whether or not * Site-to-Site communications are secure (i.e., the client will always * use secure or non-secure communications, depending on what the server - * dictates). + * dictates). Note: The SSLContext provided by this method will be + * ignored if using a Serializable Configuration (see {@link #buildSerializableConfig()}). + * If a Serializable Configuration is required and communications are to be + * secure, the {@link #keystoreFilename(String)}, {@link #keystorePass(String)}, + * {@link #keystoreType}, {@link #truststoreFilename}, {@link #truststorePass(String)}, + * and {@link #truststoreType(KeystoreType)} methods must be used instead. * * @param sslContext the context * @return the builder @@ -250,6 +273,131 @@ public interface SiteToSiteClient extends Closeable { return this; } + /** + * @return the filename to use for the Keystore in order to communicate securely + * with the remote instance of NiFi + */ + public String getKeystoreFilename() { + return keystoreFilename; + } + + /** + * Sets the filename to use for the Keystore in order to communicate securely + * with the remote instance of NiFi + * + * @param keystoreFilename the filename to use for the Keystore in order to communicate securely + * with the remote instance of NiFi + * @return the builder + */ + public Builder keystoreFilename(final String keystoreFilename) { + this.keystoreFilename = keystoreFilename; + return this; + } + + /** + * @return the password to use for the Keystore in order to communicate securely + * with the remote instance of NiFi + */ + public String getKeystorePass() { + return keystorePass; + } + + /** + * Sets the password to use for the Keystore in order to communicate securely + * with the remote instance of NiFi + * + * @param keystorePass the password to use for the Keystore in order to communicate securely + * with the remote instance of NiFi + * @return the builder + */ + public Builder keystorePass(final String keystorePass) { + this.keystorePass = keystorePass; + return this; + } + + /** + * @return the type of Keystore to use in order to communicate securely + * with the remote instance of NiFi + */ + public KeystoreType getKeystoreType() { + return keystoreType; + } + + /** + * Sets the type of the Keystore to use in order to communicate securely + * with the remote instance of NiFi + * + * @param keystoreType the type of the Keystore to use in order to communicate securely + * with the remote instance of NiFi + * @return the builder + */ + public Builder keystoreType(final KeystoreType keystoreType) { + this.keystoreType = keystoreType; + return this; + } + + /** + * @return the filename to use for the Truststore in order to communicate securely + * with the remote instance of NiFi + */ + public String getTruststoreFilename() { + return truststoreFilename; + } + + /** + * Sets the filename to use for the Truststore in order to communicate securely + * with the remote instance of NiFi + * + * @param truststoreFilename the filename to use for the Truststore in order to communicate securely + * with the remote instance of NiFi + * @return the builder + */ + public Builder truststoreFilename(final String truststoreFilename) { + this.truststoreFilename = truststoreFilename; + return this; + } + + /** + * @return the password to use for the Truststore in order to communicate securely + * with the remote instance of NiFi + */ + public String getTruststorePass() { + return truststorePass; + } + + /** + * Sets the password to use for the Truststore in order to communicate securely + * with the remote instance of NiFi + * + * @param truststorePass the filename to use for the Truststore in order to communicate securely + * with the remote instance of NiFi + */ + public Builder truststorePass(final String truststorePass) { + this.truststorePass = truststorePass; + return this; + } + + /** + * @return the type of the Truststore to use in order to communicate securely + * with the remote instance of NiFi + */ + public KeystoreType getTruststoreType() { + return truststoreType; + } + + /** + * Sets the password type of the Truststore to use in order to communicate securely + * with the remote instance of NiFi + * + * @param truststoreType the type of the Truststore to use in order to communicate securely + * with the remote instance of NiFi + * @return the builder + */ + public Builder truststoreType(final KeystoreType truststoreType) { + this.truststoreType = truststoreType; + return this; + } + /** * Provides an EventReporter that can be used by the client in order to * report any events that could be of interest when communicating with @@ -365,8 +513,8 @@ public interface SiteToSiteClient extends Closeable { * but does not create a SiteToSiteClient */ public SiteToSiteClientConfig buildConfig() { - final SiteToSiteClientConfig config = new SiteToSiteClientConfig() { - private static final long serialVersionUID = 1323119754841633818L; + return new SiteToSiteClientConfig() { + private static final long serialVersionUID = 1L; @Override public boolean isUseCompression() { @@ -420,29 +568,57 @@ public interface SiteToSiteClient extends Closeable { @Override public long getPreferredBatchDuration(final TimeUnit timeUnit) { - return timeUnit.convert(Builder.this.batchNanos, TimeUnit.NANOSECONDS); + return timeUnit.convert(batchNanos, TimeUnit.NANOSECONDS); } @Override public long getPreferredBatchSize() { - return Builder.this.batchSize; + return batchSize; } @Override public int getPreferredBatchCount() { - return Builder.this.batchCount; + return batchCount; + } + + @Override + public String getKeystoreFilename() { + return keystoreFilename; + } + + @Override + public String getKeystorePassword() { + return keystorePass; + } + + @Override + public KeystoreType getKeystoreType() { + return keystoreType; + } + + @Override + public String getTruststoreFilename() { + return truststoreFilename; + } + + @Override + public String getTruststorePassword() { + return truststorePass; + } + + @Override + public KeystoreType getTruststoreType() { + return truststoreType; } }; - - return config; } /** * @return a new SiteToSiteClient that can be used to send and receive - * data with remote instances of NiFi + * data with remote instances of NiFi * * @throws IllegalStateException if either the url is not set or neither - * the port name nor port identifier is set. + * the port name nor port identifier is set. */ public SiteToSiteClient build() { if (url == null) { @@ -450,7 +626,7 @@ public interface SiteToSiteClient extends Closeable { } if (portName == null && portIdentifier == null) { - throw new IllegalStateException("Must specify either Port Name or Port Identifier to builder Site-to-Site client"); + throw new IllegalStateException("Must specify either Port Name or Port Identifier to build Site-to-Site client"); } return new SocketClient(buildConfig()); @@ -493,7 +669,58 @@ public interface SiteToSiteClient extends Closeable { * @return the SSL Context that is configured for this builder */ public SSLContext getSslContext() { - return sslContext; + if (sslContext != null) { + return sslContext; + } + + final KeyManagerFactory keyManagerFactory; + if (keystoreFilename != null && keystorePass != null && keystoreType != null) { + try { + // prepare the keystore + final KeyStore keyStore = KeyStore.getInstance(getKeystoreType().name()); + try (final InputStream keyStoreStream = new FileInputStream(new File(getKeystoreFilename()))) { + keyStore.load(keyStoreStream, getKeystorePass().toCharArray()); + } + keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + keyManagerFactory.init(keyStore, getKeystorePass().toCharArray()); + } catch (final Exception e) { + throw new RuntimeException("Failed to load Keystore", e); + } + } else { + keyManagerFactory = null; + } + + final TrustManagerFactory trustManagerFactory; + if (truststoreFilename != null && truststorePass != null && truststoreType != null) { + try { + // prepare the truststore + final KeyStore trustStore = KeyStore.getInstance(getTruststoreType().name()); + try (final InputStream trustStoreStream = new FileInputStream(new File(getTruststoreFilename()))) { + trustStore.load(trustStoreStream, getTruststorePass().toCharArray()); + } + trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(trustStore); + } catch (final Exception e) { + throw new RuntimeException("Failed to load Truststore", e); + } + } else { + trustManagerFactory = null; + } + + if (keyManagerFactory != null || trustManagerFactory != null) { + try { + // initialize the ssl context + final SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), new SecureRandom()); + sslContext.getDefaultSSLParameters().setNeedClientAuth(true); + + return sslContext; + } catch (final Exception e) { + throw new RuntimeException("Created keystore and truststore but failed to initialize SSLContext"); + } + } else { + return null; + } } /** @@ -535,4 +762,10 @@ public interface SiteToSiteClient extends Closeable { return portIdentifier; } } + + + public abstract class SerializableSiteToSiteClientConfig implements SiteToSiteClientConfig, Serializable { + private static final long serialVersionUID = 1L; + + } } diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java b/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java index c4b0d220e6..50a0d3c31e 100644 --- a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java +++ b/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java @@ -57,9 +57,39 @@ public interface SiteToSiteClientConfig extends Serializable { */ SSLContext getSslContext(); + /** + * @return the filename to use for the keystore, or null if none is configured + */ + String getKeystoreFilename(); + + /** + * @return the password to use for the keystore, or null if none is configured + */ + String getKeystorePassword(); + + /** + * @return the Type of the keystore, or null if none is configured + */ + KeystoreType getKeystoreType(); + + /** + * @return the filename to use for the truststore, or null if none is configured + */ + String getTruststoreFilename(); + + /** + * @return the password to use for the truststore, or null if none is configured + */ + String getTruststorePassword(); + + /** + * @return the type of the truststore, or null if none is configured + */ + KeystoreType getTruststoreType(); + /** * @return the file that is to be used for persisting the nodes of a remote - * cluster, if any + * cluster, if any */ File getPeerPersistenceFile(); diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java index 255a35a988..3d78b3a935 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java @@ -528,6 +528,8 @@ public class FlowController implements EventAccess, ControllerServiceProvider, R private static EventReporter createEventReporter(final BulletinRepository bulletinRepository) { return new EventReporter() { + private static final long serialVersionUID = 1L; + @Override public void reportEvent(final Severity severity, final String category, final String message) { final Bulletin bulletin = BulletinFactory.createBulletin(category, severity.name(), message); diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java index 61516d0d3a..bd934461e9 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java @@ -160,6 +160,8 @@ public class StandardRemoteProcessGroup implements RemoteProcessGroup { final BulletinRepository bulletinRepository = flowController.getBulletinRepository(); eventReporter = new EventReporter() { + private static final long serialVersionUID = 1L; + @Override public void reportEvent(final Severity severity, final String category, final String message) { final String groupId = StandardRemoteProcessGroup.this.getProcessGroup().getIdentifier(); diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java index 9eadec02d1..66fd303141 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java @@ -104,6 +104,8 @@ public class StandardRootGroupPort extends AbstractPort implements RootGroupPort this.scheduler = scheduler; setYieldPeriod("100 millis"); eventReporter = new EventReporter() { + private static final long serialVersionUID = 1L; + @Override public void reportEvent(final Severity severity, final String category, final String message) { final String groupId = StandardRootGroupPort.this.getProcessGroup().getIdentifier(); diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java index 16f0312839..3737588d38 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java @@ -135,6 +135,8 @@ public class TestPersistentProvenanceRepository { private EventReporter getEventReporter() { return new EventReporter() { + private static final long serialVersionUID = 1L; + @Override public void reportEvent(Severity severity, String category, String message) { System.out.println(severity + " : " + category + " : " + message); From bb64e70e6fbda12a9e0388b5c2240d96d34ac6bf Mon Sep 17 00:00:00 2001 From: Alan Jackoway Date: Tue, 7 Jul 2015 17:28:26 -0400 Subject: [PATCH 04/77] NIFI-751 Add Processor To Convert Avro Formats Implemented a new NiFi processor that allows avro records to be converted from one Avro schema to another. This supports.. * Flattening records using . notation like "parent.id" * Simple type conversions to String or base primitive types. * Specifying field renames using dynamic properties. Signed-off-by: joewitt --- .../processors/kite/AvroRecordConverter.java | 320 +++++++++++++++++ .../processors/kite/ConvertAvroSchema.java | 339 ++++++++++++++++++ .../org.apache.nifi.processor.Processor | 1 + .../additionalDetails.html | 142 ++++++++ .../kite/TestAvroRecordConverter.java | 201 +++++++++++ .../kite/TestConvertAvroSchema.java | 216 +++++++++++ 6 files changed, 1219 insertions(+) create mode 100644 nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java create mode 100644 nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java create mode 100644 nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html create mode 100644 nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java create mode 100644 nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java new file mode 100644 index 0000000000..68e6c98342 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java @@ -0,0 +1,320 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.nifi.processors.kite; + +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Scanner; + +import org.apache.avro.Schema; +import org.apache.avro.Schema.Field; +import org.apache.avro.generic.GenericData.Record; +import org.apache.avro.generic.IndexedRecord; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +/** + * Responsible for converting records of one Avro type to another. Supports + * syntax like "record.field" to unpack fields and will try to do simple type + * conversion. + */ +public class AvroRecordConverter { + private final Schema inputSchema; + private final Schema outputSchema; + // Store this from output field to input field so we can look up by output. + private final Map fieldMapping; + + /** + * @param inputSchema + * Schema of input record objects + * @param outputSchema + * Schema of output record objects + * @param fieldMapping + * Map from field name in input record to field name in output + * record. + */ + public AvroRecordConverter(Schema inputSchema, Schema outputSchema, + Map fieldMapping) { + this.inputSchema = inputSchema; + this.outputSchema = outputSchema; + // Need to reverse this map. + this.fieldMapping = Maps + .newHashMapWithExpectedSize(fieldMapping.size()); + for (Map.Entry entry : fieldMapping.entrySet()) { + this.fieldMapping.put(entry.getValue(), entry.getKey()); + } + } + + /** + * @return Any fields in the output schema that are not mapped or are mapped + * by a non-existent input field. + */ + public Collection getUnmappedFields() { + List result = Lists.newArrayList(); + for (Field f : outputSchema.getFields()) { + String fieldName = f.name(); + if (fieldMapping.containsKey(fieldName)) { + fieldName = fieldMapping.get(fieldName); + } + + Schema currentSchema = inputSchema; + while (fieldName.contains(".")) { + // Recurse down the schema to find the right field. + int dotIndex = fieldName.indexOf('.'); + String entityName = fieldName.substring(0, dotIndex); + // Get the schema. In case we had an optional record, choose + // just the record. + currentSchema = getNonNullSchema(currentSchema); + if (currentSchema.getField(entityName) == null) { + // Tried to step into a schema that doesn't exist. Break out + // of the loop + break; + } + currentSchema = currentSchema.getField(entityName).schema(); + fieldName = fieldName.substring(dotIndex + 1); + } + if (currentSchema == null + || getNonNullSchema(currentSchema).getField(fieldName) == null) { + result.add(f.name()); + } + } + return result; + } + + /** + * Converts one record to another given a input and output schema plus + * explicit mappings for certain target fields. + * + * @param input + * Input record to convert conforming to the inputSchema this + * converter was created with. + * @return Record converted to the outputSchema this converter was created + * with. + * @throws AvroConversionException + * When schemas do not match or illegal conversions are + * attempted, such as when numeric data fails to parse. + */ + public Record convert(Record input) throws AvroConversionException { + Record result = new Record(outputSchema); + for (Field outputField : outputSchema.getFields()) { + // Default to matching by name + String inputFieldName = outputField.name(); + if (fieldMapping.containsKey(outputField.name())) { + inputFieldName = fieldMapping.get(outputField.name()); + } + + IndexedRecord currentRecord = input; + Schema currentSchema = getNonNullSchema(inputSchema); + while (inputFieldName.contains(".")) { + // Recurse down the schema to find the right field. + int dotIndex = inputFieldName.indexOf('.'); + String entityName = inputFieldName.substring(0, dotIndex); + // Get the record object + Object innerRecord = currentRecord.get(currentSchema.getField( + entityName).pos()); + if (innerRecord == null) { + // Probably hit a null record here. Just break out of the + // loop so that null object will be passed to convertData + // below. + currentRecord = null; + break; + } + if (innerRecord != null + && !(innerRecord instanceof IndexedRecord)) { + throw new AvroConversionException(inputFieldName + + " stepped through a non-record"); + } + currentRecord = (IndexedRecord) innerRecord; + + // Get the schema. In case we had an optional record, choose + // just the record. + currentSchema = currentSchema.getField(entityName).schema(); + currentSchema = getNonNullSchema(currentSchema); + inputFieldName = inputFieldName.substring(dotIndex + 1); + } + + // Current should now be in the right place to read the record. + Field f = currentSchema.getField(inputFieldName); + if (currentRecord == null) { + // We may have stepped into a null union type and gotten a null + // result. + Schema s = null; + if (f != null) { + s = f.schema(); + } + result.put(outputField.name(), + convertData(null, s, outputField.schema())); + } else { + result.put( + outputField.name(), + convertData(currentRecord.get(f.pos()), f.schema(), + outputField.schema())); + } + } + return result; + } + + public Schema getInputSchema() { + return inputSchema; + } + + public Schema getOutputSchema() { + return outputSchema; + } + + /** + * Converts the data from one schema to another. If the types are the same, + * no change will be made, but simple conversions will be attempted for + * other types. + * + * @param content + * The data to convert, generally taken from a field in an input + * Record. + * @param inputSchema + * The schema of the content object + * @param outputSchema + * The schema to convert to. + * @return The content object, converted to the output schema. + * @throws AvroConversionException + * When conversion is impossible, either because the output type + * is not supported or because numeric data failed to parse. + */ + private Object convertData(Object content, Schema inputSchema, + Schema outputSchema) throws AvroConversionException { + if (content == null) { + // No conversion can happen here. + if (supportsNull(outputSchema)) { + return null; + } + throw new AvroConversionException("Output schema " + outputSchema + + " does not support null"); + } + + Schema nonNillInput = getNonNullSchema(inputSchema); + Schema nonNillOutput = getNonNullSchema(outputSchema); + if (nonNillInput.getType().equals(nonNillOutput.getType())) { + return content; + } else { + if (nonNillOutput.getType() == Schema.Type.STRING) { + return content.toString(); + } + + // For the non-string cases of these, we will try to convert through + // string using Scanner to validate types. This means we could + // return questionable results when a String starts with a number + // but then contains other content + Scanner scanner = new Scanner(content.toString()); + switch (nonNillOutput.getType()) { + case LONG: + if (scanner.hasNextLong()) { + return scanner.nextLong(); + } else { + throw new AvroConversionException("Cannot convert " + + content + " to long"); + } + case INT: + if (scanner.hasNextInt()) { + return scanner.nextInt(); + } else { + throw new AvroConversionException("Cannot convert " + + content + " to int"); + } + case DOUBLE: + if (scanner.hasNextDouble()) { + return scanner.nextDouble(); + } else { + throw new AvroConversionException("Cannot convert " + + content + " to double"); + } + case FLOAT: + if (scanner.hasNextFloat()) { + return scanner.nextFloat(); + } else { + throw new AvroConversionException("Cannot convert " + + content + " to float"); + } + default: + throw new AvroConversionException("Cannot convert to type " + + nonNillOutput.getType()); + } + } + } + + /** + * If s is a union schema of some type with null, returns that type. + * Otherwise just return schema itself. + * + * Does not handle unions of schemas with anything except null and one type. + * + * @param s + * Schema to remove nillable from. + * @return The Schema of the non-null part of a the union, if the input was + * a union type. Otherwise returns the input schema. + */ + protected static Schema getNonNullSchema(Schema s) { + // Handle the case where s is a union type. Assert that this must be a + // union that only includes one non-null type. + if (s.getType() == Schema.Type.UNION) { + List types = s.getTypes(); + boolean foundOne = false; + Schema result = s; + for (Schema type : types) { + if (!type.getType().equals(Schema.Type.NULL)) { + Preconditions.checkArgument(foundOne == false, + "Cannot handle union of two non-null types"); + foundOne = true; + result = type; + } + } + return result; + } else { + return s; + } + } + + protected static boolean supportsNull(Schema s) { + if (s.getType() == Schema.Type.NULL) { + return true; + } else if (s.getType() == Schema.Type.UNION) { + for (Schema type : s.getTypes()) { + if (type.getType() == Schema.Type.NULL) { + return true; + } + } + } + return false; + } + + /** + * Exception thrown when Avro conversion fails. + */ + public class AvroConversionException extends Exception { + public AvroConversionException(String string, IOException e) { + super(string, e); + } + + public AvroConversionException(String string) { + super(string); + } + } +} diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java new file mode 100644 index 0000000000..0d9f6586b5 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java @@ -0,0 +1,339 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.nifi.processors.kite; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Pattern; + +import org.apache.avro.Schema; +import org.apache.avro.file.CodecFactory; +import org.apache.avro.file.DataFileStream; +import org.apache.avro.file.DataFileWriter; +import org.apache.avro.generic.GenericData.Record; +import org.apache.avro.generic.GenericDatumReader; +import org.apache.hadoop.conf.Configuration; +import org.apache.nifi.annotation.behavior.DynamicProperty; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.components.Validator; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.processor.io.StreamCallback; +import org.apache.nifi.processors.kite.AvroRecordConverter.AvroConversionException; +import org.apache.nifi.util.LongHolder; +import org.kitesdk.data.DatasetException; +import org.kitesdk.data.DatasetIOException; +import org.kitesdk.data.SchemaNotFoundException; +import org.kitesdk.data.spi.DefaultConfiguration; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; + +@Tags({ "avro", "convert", "kite" }) +@CapabilityDescription("Convert records from one Avro schema to another, including support for flattening and simple type conversions") +@DynamicProperty(name = "Field name from input schema", +value = "Field name for output schema", +description = "Explicit mappings from input schema to output schema, which supports renaming fields and stepping into nested records on the input schema using notation like parent.id") +public class ConvertAvroSchema extends AbstractKiteProcessor { + + private static final Relationship SUCCESS = new Relationship.Builder() + .name("success") + .description("Avro content that converted successfully").build(); + + private static final Relationship FAILURE = new Relationship.Builder() + .name("failure").description("Avro content that failed to convert") + .build(); + + /** + * Makes sure the output schema is a valid output schema and that all its + * fields can be mapped either automatically or are explicitly mapped. + */ + protected static final Validator MAPPED_SCHEMA_VALIDATOR = new Validator() { + @Override + public ValidationResult validate(String subject, String uri, + ValidationContext context) { + Configuration conf = getConfiguration(context.getProperty( + CONF_XML_FILES).getValue()); + String inputUri = context.getProperty(INPUT_SCHEMA).getValue(); + String error = null; + + final boolean elPresent = context + .isExpressionLanguageSupported(subject) + && context.isExpressionLanguagePresent(uri); + if (!elPresent) { + try { + Schema outputSchema = getSchema(uri, conf); + Schema inputSchema = getSchema(inputUri, conf); + // Get the explicitly mapped fields. This is identical to + // logic in onTrigger, but ValidationContext and + // ProcessContext share no ancestor, so we cannot generalize + // the code. + Map fieldMapping = new HashMap<>(); + for (final Map.Entry entry : context + .getProperties().entrySet()) { + if (entry.getKey().isDynamic()) { + fieldMapping.put(entry.getKey().getName(), + entry.getValue()); + } + } + AvroRecordConverter converter = new AvroRecordConverter( + inputSchema, outputSchema, fieldMapping); + Collection unmappedFields = converter + .getUnmappedFields(); + if (unmappedFields.size() > 0) { + error = "The following fields are unmapped: " + + unmappedFields; + } + + } catch (SchemaNotFoundException e) { + error = e.getMessage(); + } + } + return new ValidationResult.Builder().subject(subject).input(uri) + .explanation(error).valid(error == null).build(); + } + }; + + @VisibleForTesting + static final PropertyDescriptor INPUT_SCHEMA = new PropertyDescriptor.Builder() + .name("Input Schema").description("Avro Schema of Input Flowfiles") + .addValidator(SCHEMA_VALIDATOR).expressionLanguageSupported(true) + .required(true).build(); + + @VisibleForTesting + static final PropertyDescriptor OUTPUT_SCHEMA = new PropertyDescriptor.Builder() + .name("Output Schema") + .description("Avro Schema of Output Flowfiles") + .addValidator(MAPPED_SCHEMA_VALIDATOR).expressionLanguageSupported(true) + .required(true).build(); + + private static final List PROPERTIES = ImmutableList + . builder() + .addAll(AbstractKiteProcessor.getProperties()).add(INPUT_SCHEMA) + .add(OUTPUT_SCHEMA).build(); + + private static final Set RELATIONSHIPS = ImmutableSet + . builder().add(SUCCESS).add(FAILURE).build(); + + private static final Pattern AVRO_FIELDNAME_PATTERN = Pattern + .compile("[A-Za-z_][A-Za-z0-9_\\.]*"); + + /** + * Validates that the input and output fields (from dynamic properties) are + * all valid avro field names including "." to step into records. + */ + protected static final Validator AVRO_FIELDNAME_VALIDATOR = new Validator() { + @Override + public ValidationResult validate(final String subject, + final String value, final ValidationContext context) { + if (context.isExpressionLanguageSupported(subject) + && context.isExpressionLanguagePresent(value)) { + return new ValidationResult.Builder().subject(subject) + .input(value) + .explanation("Expression Language Present").valid(true) + .build(); + } + + String reason = ""; + if (!AVRO_FIELDNAME_PATTERN.matcher(subject).matches()) { + reason = subject + " is not a valid Avro fieldname"; + } + if (!AVRO_FIELDNAME_PATTERN.matcher(value).matches()) { + reason = reason + value + " is not a valid Avro fieldname"; + } + + return new ValidationResult.Builder().subject(subject).input(value) + .explanation(reason).valid(reason.equals("")).build(); + } + }; + + @Override + protected PropertyDescriptor getSupportedDynamicPropertyDescriptor( + final String propertyDescriptorName) { + return new PropertyDescriptor.Builder() + .name(propertyDescriptorName) + .description( + "Field mapping between schemas. The property name is the field name for the input " + + "schema, and the property value is the field name for the output schema. For fields " + + "not listed, the processor tries to match names from the input to the output record.") + .dynamic(true).addValidator(AVRO_FIELDNAME_VALIDATOR).build(); + } + + @Override + protected List getSupportedPropertyDescriptors() { + return PROPERTIES; + } + + @Override + public Set getRelationships() { + return RELATIONSHIPS; + } + + @Override + public void onTrigger(ProcessContext context, final ProcessSession session) + throws ProcessException { + FlowFile incomingAvro = session.get(); + if (incomingAvro == null) { + return; + } + + String inputSchemaProperty = context.getProperty(INPUT_SCHEMA) + .evaluateAttributeExpressions(incomingAvro).getValue(); + final Schema inputSchema; + try { + inputSchema = getSchema(inputSchemaProperty, + DefaultConfiguration.get()); + } catch (SchemaNotFoundException e) { + getLogger().error("Cannot find schema: " + inputSchemaProperty); + session.transfer(incomingAvro, FAILURE); + return; + } + String outputSchemaProperty = context.getProperty(OUTPUT_SCHEMA) + .evaluateAttributeExpressions(incomingAvro).getValue(); + final Schema outputSchema; + try { + outputSchema = getSchema(outputSchemaProperty, + DefaultConfiguration.get()); + } catch (SchemaNotFoundException e) { + getLogger().error("Cannot find schema: " + outputSchemaProperty); + session.transfer(incomingAvro, FAILURE); + return; + } + final Map fieldMapping = new HashMap<>(); + for (final Map.Entry entry : context + .getProperties().entrySet()) { + if (entry.getKey().isDynamic()) { + fieldMapping.put(entry.getKey().getName(), entry.getValue()); + } + } + final AvroRecordConverter converter = new AvroRecordConverter( + inputSchema, outputSchema, fieldMapping); + + final DataFileWriter writer = new DataFileWriter<>( + AvroUtil.newDatumWriter(outputSchema, Record.class)); + writer.setCodec(CodecFactory.snappyCodec()); + + final DataFileWriter failureWriter = new DataFileWriter<>( + AvroUtil.newDatumWriter(outputSchema, Record.class)); + failureWriter.setCodec(CodecFactory.snappyCodec()); + + try { + final LongHolder written = new LongHolder(0L); + final FailureTracker failures = new FailureTracker(); + + final List badRecords = Lists.newLinkedList(); + FlowFile incomingAvroCopy = session.clone(incomingAvro); + FlowFile outgoingAvro = session.write(incomingAvro, + new StreamCallback() { + @Override + public void process(InputStream in, OutputStream out) + throws IOException { + try (DataFileStream stream = new DataFileStream( + in, new GenericDatumReader( + converter.getInputSchema()))) { + try (DataFileWriter w = writer.create( + outputSchema, out)) { + for (Record record : stream) { + try { + Record converted = converter + .convert(record); + w.append(converted); + written.incrementAndGet(); + } catch (AvroConversionException e) { + failures.add(e); + getLogger().error( + "Error converting data: " + + e.getMessage()); + badRecords.add(record); + } + } + } + } + } + }); + + FlowFile badOutput = session.write(incomingAvroCopy, + new StreamCallback() { + @Override + public void process(InputStream in, OutputStream out) + throws IOException { + + try (DataFileWriter w = failureWriter + .create(inputSchema, out)) { + for (Record record : badRecords) { + w.append(record); + } + } + + } + }); + + long errors = failures.count(); + + // update only if file transfer is successful + session.adjustCounter("Converted records", written.get(), false); + // update only if file transfer is successful + session.adjustCounter("Conversion errors", errors, false); + + if (written.get() > 0L) { + session.transfer(outgoingAvro, SUCCESS); + } else { + session.remove(outgoingAvro); + + if (errors == 0L) { + badOutput = session.putAttribute(badOutput, "errors", + "No incoming records"); + session.transfer(badOutput, FAILURE); + } + } + + if (errors > 0L) { + getLogger().warn( + "Failed to convert {}/{} records between Avro Schemas", + new Object[] { errors, errors + written.get() }); + badOutput = session.putAttribute(badOutput, "errors", + failures.summary()); + session.transfer(badOutput, FAILURE); + } else { + session.remove(badOutput); + } + } catch (ProcessException | DatasetIOException e) { + getLogger().error("Failed reading or writing", e); + session.transfer(incomingAvro, FAILURE); + } catch (DatasetException e) { + getLogger().error("Failed to read FlowFile", e); + session.transfer(incomingAvro, FAILURE); + } + } +} diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor index 6de56122a6..ea99ff6548 100644 --- a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor @@ -15,3 +15,4 @@ org.apache.nifi.processors.kite.StoreInKiteDataset org.apache.nifi.processors.kite.ConvertCSVToAvro org.apache.nifi.processors.kite.ConvertJSONToAvro +org.apache.nifi.processors.kite.ConvertAvroSchema diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html new file mode 100644 index 0000000000..f5d8a1deb8 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html @@ -0,0 +1,142 @@ + + + + + + ConvertAvroSchema + + + + + + +

Description:

+

This processor is used to convert data between two Avro formats, such as those coming from the ConvertCSVToAvro or + ConvertJSONToAvro processors. The input and output content of the flow files should be Avro data files. The processor + includes support for the following basic type conversions: +

    +
  • Anything to String, using the data's default String representation
  • +
  • String types to numeric types int, long, double, and float
  • +
  • Conversion to and from optional Avro types
  • +
+ In addition, fields can be renamed or unpacked from a record type by using the dynamic properties. +

+

Mapping Example:

+

+ Throughout this example, we will refer to input data with the following schema: +

+{
+    "type": "record",
+    "name": "CustomerInput",
+    "namespace": "org.apache.example",
+    "fields": [
+        {
+            "name": "id",
+            "type": "string"
+        },
+        {
+            "name": "companyName",
+            "type": ["null", "string"],
+            "default": null
+        },
+        {
+            "name": "revenue",
+            "type": ["null", "string"],
+            "default": null
+        },
+        {
+            "name" : "parent",
+            "type" : [ "null", {
+              "type" : "record",
+              "name" : "parent",
+              "fields" : [ {
+                "name" : "name",
+                "type" : ["null", "string"],
+                "default" : null
+              }, {
+                "name" : "id",
+                "type" : "string"
+              } ]
+            } ],
+            "default" : null
+        }
+    ]
+}
+             
+ Where even though the revenue and id fields are mapped as string, they are logically long and double respectively. + By default, fields with matching names will be mapped automatically, so the following output schema could be converted + without using dynamic properties: +
+{
+    "type": "record",
+    "name": "SimpleCustomerOutput",
+    "namespace": "org.apache.example",
+    "fields": [
+        {
+            "name": "id",
+            "type": "long"
+        },
+        {
+            "name": "companyName",
+            "type": ["null", "string"],
+            "default": null
+        },
+        {
+            "name": "revenue",
+            "type": ["null", "double"],
+            "default": null
+        }
+    ]
+}
+             
+ To rename companyName to name and to extract the parent's id field, both a schema and a dynamic properties must be provided. + For example, to convert to the following schema: +
+{
+    "type": "record",
+    "name": "SimpleCustomerOutput",
+    "namespace": "org.apache.example",
+    "fields": [
+        {
+            "name": "id",
+            "type": "long"
+        },
+        {
+            "name": "name",
+            "type": ["null", "string"],
+            "default": null
+        },
+        {
+            "name": "revenue",
+            "type": ["null", "double"],
+            "default": null
+        },
+        {
+            "name": "parentId",
+            "type": ["null", "long"],
+            "default": null
+        }
+    ]
+}
+             
+ The following dynamic properties would be used: +
+"companyName" -> "name"
+"parent.id" -> "parentId"
+             
+

+ + diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java new file mode 100644 index 0000000000..1a4748f1b6 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java @@ -0,0 +1,201 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.nifi.processors.kite; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.util.Collections; +import java.util.Map; + +import org.apache.avro.Schema; +import org.apache.avro.SchemaBuilder; +import org.apache.avro.generic.GenericData.Record; +import org.codehaus.jackson.map.ObjectMapper; +import org.junit.Test; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +public class TestAvroRecordConverter { + final static ObjectMapper OBJECT_MAPPER = new ObjectMapper(); + final static Map EMPTY_MAPPING = ImmutableMap.of(); + final static String NESTED_RECORD_SCHEMA_STRING = "{\n" + + " \"type\": \"record\",\n" + + " \"name\": \"NestedInput\",\n" + + " \"namespace\": \"org.apache.example\",\n" + + " \"fields\": [\n" + " {\n" + + " \"name\": \"l1\",\n" + + " \"type\": \"long\"\n" + + " },\n" + + " {\n" + " \"name\": \"s1\",\n" + + " \"type\": \"string\"\n" + + " },\n" + + " {\n" + + " \"name\": \"parent\",\n" + + " \"type\": [\"null\", {\n" + + " \"type\": \"record\",\n" + + " \"name\": \"parent\",\n" + + " \"fields\": [\n" + + " { \"name\": \"id\", \"type\": \"long\" },\n" + + " { \"name\": \"name\", \"type\": \"string\" }\n" + + " ]" + + " } ]" + + " }" + + " ] }"; + final static Schema NESTED_RECORD_SCHEMA = new Schema.Parser() + .parse(NESTED_RECORD_SCHEMA_STRING); + final static Schema NESTED_PARENT_SCHEMA = AvroRecordConverter + .getNonNullSchema(NESTED_RECORD_SCHEMA.getField("parent").schema()); + final static Schema UNNESTED_OUTPUT_SCHEMA = SchemaBuilder.record("Output") + .namespace("org.apache.example").fields().requiredLong("l1") + .requiredLong("s1").optionalLong("parentId").endRecord(); + + /** + * Tests the case where we don't use a mapping file and just map records by + * name. + */ + @Test + public void testDefaultConversion() throws Exception { + // We will convert s1 from string to long (or leave it null), ignore s2, + // convert s3 to from string to double, convert l1 from long to string, + // and leave l2 the same. + Schema input = SchemaBuilder.record("Input") + .namespace("com.cloudera.edh").fields() + .nullableString("s1", "").requiredString("s2") + .requiredString("s3").optionalLong("l1").requiredLong("l2") + .endRecord(); + Schema output = SchemaBuilder.record("Output") + .namespace("com.cloudera.edh").fields().optionalLong("s1") + .optionalString("l1").requiredLong("l2").requiredDouble("s3") + .endRecord(); + + AvroRecordConverter converter = new AvroRecordConverter(input, output, + EMPTY_MAPPING); + + Record inputRecord = new Record(input); + inputRecord.put("s1", null); + inputRecord.put("s2", "blah"); + inputRecord.put("s3", "5.5"); + inputRecord.put("l1", null); + inputRecord.put("l2", 5L); + Record outputRecord = converter.convert(inputRecord); + assertNull(outputRecord.get("s1")); + assertNull(outputRecord.get("l1")); + assertEquals(5L, outputRecord.get("l2")); + assertEquals(5.5, outputRecord.get("s3")); + + inputRecord.put("s1", "500"); + inputRecord.put("s2", "blah"); + inputRecord.put("s3", "5.5e-5"); + inputRecord.put("l1", 100L); + inputRecord.put("l2", 2L); + outputRecord = converter.convert(inputRecord); + assertEquals(500L, outputRecord.get("s1")); + assertEquals("100", outputRecord.get("l1")); + assertEquals(2L, outputRecord.get("l2")); + assertEquals(5.5e-5, outputRecord.get("s3")); + } + + /** + * Tests the case where we want to default map one field and explicitly map + * another. + */ + @Test + public void testExplicitMapping() throws Exception { + // We will convert s1 from string to long (or leave it null), ignore s2, + // convert l1 from long to string, and leave l2 the same. + Schema input = NESTED_RECORD_SCHEMA; + Schema parent = NESTED_PARENT_SCHEMA; + Schema output = UNNESTED_OUTPUT_SCHEMA; + Map mapping = ImmutableMap.of("parent.id", "parentId"); + + AvroRecordConverter converter = new AvroRecordConverter(input, output, + mapping); + + Record inputRecord = new Record(input); + inputRecord.put("l1", 5L); + inputRecord.put("s1", "1000"); + Record parentRecord = new Record(parent); + parentRecord.put("id", 200L); + parentRecord.put("name", "parent"); + inputRecord.put("parent", parentRecord); + Record outputRecord = converter.convert(inputRecord); + assertEquals(5L, outputRecord.get("l1")); + assertEquals(1000L, outputRecord.get("s1")); + assertEquals(200L, outputRecord.get("parentId")); + } + + /** + * Tests the case where we try to convert a string to a long incorrectly. + */ + @Test(expected = org.apache.nifi.processors.kite.AvroRecordConverter.AvroConversionException.class) + public void testIllegalConversion() throws Exception { + // We will convert s1 from string to long (or leave it null), ignore s2, + // convert l1 from long to string, and leave l2 the same. + Schema input = SchemaBuilder.record("Input") + .namespace("com.cloudera.edh").fields() + .nullableString("s1", "").requiredString("s2") + .optionalLong("l1").requiredLong("l2").endRecord(); + Schema output = SchemaBuilder.record("Output") + .namespace("com.cloudera.edh").fields().optionalLong("s1") + .optionalString("l1").requiredLong("l2").endRecord(); + + AvroRecordConverter converter = new AvroRecordConverter(input, output, + EMPTY_MAPPING); + + Record inputRecord = new Record(input); + inputRecord.put("s1", "blah"); + inputRecord.put("s2", "blah"); + inputRecord.put("l1", null); + inputRecord.put("l2", 5L); + converter.convert(inputRecord); + } + + @Test + public void testGetUnmappedFields() throws Exception { + Schema input = SchemaBuilder.record("Input") + .namespace("com.cloudera.edh").fields() + .nullableString("s1", "").requiredString("s2") + .optionalLong("l1").requiredLong("l2").endRecord(); + Schema output = SchemaBuilder.record("Output") + .namespace("com.cloudera.edh").fields().optionalLong("field") + .endRecord(); + + // Test the case where the field isn't mapped at all. + AvroRecordConverter converter = new AvroRecordConverter(input, output, + EMPTY_MAPPING); + assertEquals(ImmutableList.of("field"), converter.getUnmappedFields()); + + // Test the case where we tried to map from a non-existent field. + converter = new AvroRecordConverter(input, output, ImmutableMap.of( + "nonExistentField", "field")); + assertEquals(ImmutableList.of("field"), converter.getUnmappedFields()); + + // Test the case where we tried to map from a non-existent record. + converter = new AvroRecordConverter(input, output, ImmutableMap.of( + "parent.nonExistentField", "field")); + assertEquals(ImmutableList.of("field"), converter.getUnmappedFields()); + + // Test a valid case + converter = new AvroRecordConverter(input, output, ImmutableMap.of( + "l2", "field")); + assertEquals(Collections.EMPTY_LIST, converter.getUnmappedFields()); + } +} diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java new file mode 100644 index 0000000000..33f3a821f9 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java @@ -0,0 +1,216 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.nifi.processors.kite; + +import static org.apache.nifi.processors.kite.TestUtil.streamFor; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.util.List; + +import org.apache.avro.Schema; +import org.apache.avro.SchemaBuilder; +import org.apache.avro.file.DataFileStream; +import org.apache.avro.generic.GenericData.Record; +import org.apache.avro.generic.GenericDatumReader; +import org.apache.nifi.util.MockFlowFile; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.junit.Assert; +import org.junit.Test; + +import com.google.common.collect.Lists; + +public class TestConvertAvroSchema { + + public static final Schema INPUT_SCHEMA = SchemaBuilder.record("InputTest") + .fields().requiredString("id").requiredString("primaryColor") + .optionalString("secondaryColor").optionalString("price") + .endRecord(); + + public static final Schema OUTPUT_SCHEMA = SchemaBuilder.record("Test") + .fields().requiredLong("id").requiredString("color") + .optionalDouble("price").endRecord(); + + public static final String MAPPING = "[{\"source\":\"primaryColor\", \"target\":\"color\"}]"; + + public static final String FAILURE_SUMMARY = "Cannot convert free to double"; + + @Test + public void testBasicConversion() throws IOException { + TestRunner runner = TestRunners.newTestRunner(ConvertAvroSchema.class); + runner.assertNotValid(); + runner.setProperty(ConvertAvroSchema.INPUT_SCHEMA, + INPUT_SCHEMA.toString()); + runner.setProperty(ConvertAvroSchema.OUTPUT_SCHEMA, + OUTPUT_SCHEMA.toString()); + runner.setProperty("primaryColor", "color"); + runner.assertValid(); + + // Two valid rows, and one invalid because "free" is not a double. + Record goodRecord1 = dataBasic("1", "blue", null, null); + Record goodRecord2 = dataBasic("2", "red", "yellow", "5.5"); + Record badRecord = dataBasic("3", "red", "yellow", "free"); + List input = Lists.newArrayList(goodRecord1, goodRecord2, + badRecord); + + runner.enqueue(streamFor(input)); + runner.run(); + + long converted = runner.getCounterValue("Converted records"); + long errors = runner.getCounterValue("Conversion errors"); + Assert.assertEquals("Should convert 2 rows", 2, converted); + Assert.assertEquals("Should reject 1 rows", 1, errors); + + runner.assertTransferCount("success", 1); + runner.assertTransferCount("failure", 1); + + MockFlowFile incompatible = runner.getFlowFilesForRelationship( + "failure").get(0); + GenericDatumReader reader = new GenericDatumReader( + INPUT_SCHEMA); + DataFileStream stream = new DataFileStream( + new ByteArrayInputStream( + runner.getContentAsByteArray(incompatible)), reader); + int count = 0; + for (Record r : stream) { + Assert.assertEquals(badRecord, r); + count++; + } + stream.close(); + Assert.assertEquals(1, count); + Assert.assertEquals("Should accumulate error messages", + FAILURE_SUMMARY, incompatible.getAttribute("errors")); + + GenericDatumReader successReader = new GenericDatumReader( + OUTPUT_SCHEMA); + DataFileStream successStream = new DataFileStream( + new ByteArrayInputStream(runner.getContentAsByteArray(runner + .getFlowFilesForRelationship("success").get(0))), + successReader); + count = 0; + for (Record r : successStream) { + if (count == 0) { + Assert.assertEquals(convertBasic(goodRecord1), r); + } else { + Assert.assertEquals(convertBasic(goodRecord2), r); + } + count++; + } + successStream.close(); + Assert.assertEquals(2, count); + } + + @Test + public void testNestedConversion() throws IOException { + TestRunner runner = TestRunners.newTestRunner(ConvertAvroSchema.class); + runner.assertNotValid(); + runner.setProperty(ConvertAvroSchema.INPUT_SCHEMA, + TestAvroRecordConverter.NESTED_RECORD_SCHEMA.toString()); + runner.setProperty(ConvertAvroSchema.OUTPUT_SCHEMA, + TestAvroRecordConverter.UNNESTED_OUTPUT_SCHEMA.toString()); + runner.setProperty("parent.id", "parentId"); + runner.assertValid(); + + // Two valid rows + Record goodRecord1 = dataNested(1L, "200", null, null); + Record goodRecord2 = dataNested(2L, "300", 5L, "ParentCompany"); + List input = Lists.newArrayList(goodRecord1, goodRecord2); + + runner.enqueue(streamFor(input)); + runner.run(); + + long converted = runner.getCounterValue("Converted records"); + long errors = runner.getCounterValue("Conversion errors"); + Assert.assertEquals("Should convert 2 rows", 2, converted); + Assert.assertEquals("Should reject 0 rows", 0, errors); + + runner.assertTransferCount("success", 1); + runner.assertTransferCount("failure", 0); + + GenericDatumReader successReader = new GenericDatumReader( + TestAvroRecordConverter.UNNESTED_OUTPUT_SCHEMA); + DataFileStream successStream = new DataFileStream( + new ByteArrayInputStream(runner.getContentAsByteArray(runner + .getFlowFilesForRelationship("success").get(0))), + successReader); + int count = 0; + for (Record r : successStream) { + if (count == 0) { + Assert.assertEquals(convertNested(goodRecord1), r); + } else { + Assert.assertEquals(convertNested(goodRecord2), r); + } + count++; + } + successStream.close(); + Assert.assertEquals(2, count); + } + + private Record convertBasic(Record inputRecord) { + Record result = new Record(OUTPUT_SCHEMA); + result.put("id", Long.parseLong(inputRecord.get("id").toString())); + result.put("color", inputRecord.get("primaryColor").toString()); + if (inputRecord.get("price") == null) { + result.put("price", null); + } else { + result.put("price", + Double.parseDouble(inputRecord.get("price").toString())); + } + return result; + } + + private Record dataBasic(String id, String primaryColor, + String secondaryColor, String price) { + Record result = new Record(INPUT_SCHEMA); + result.put("id", id); + result.put("primaryColor", primaryColor); + result.put("secondaryColor", secondaryColor); + result.put("price", price); + return result; + } + + private Record convertNested(Record inputRecord) { + Record result = new Record( + TestAvroRecordConverter.UNNESTED_OUTPUT_SCHEMA); + result.put("l1", inputRecord.get("l1")); + result.put("s1", Long.parseLong(inputRecord.get("s1").toString())); + if (inputRecord.get("parent") != null) { + // output schema doesn't have parent name. + result.put("parentId", + ((Record) inputRecord.get("parent")).get("id")); + } + return result; + } + + private Record dataNested(long id, String companyName, Long parentId, + String parentName) { + Record result = new Record(TestAvroRecordConverter.NESTED_RECORD_SCHEMA); + result.put("l1", id); + result.put("s1", companyName); + if (parentId != null || parentName != null) { + Record parent = new Record( + TestAvroRecordConverter.NESTED_PARENT_SCHEMA); + parent.put("id", parentId); + parent.put("name", parentName); + result.put("parent", parent); + } + return result; + } +} From 8ff69ca2d1bc5b7d651b7495f2ce45def12bebc2 Mon Sep 17 00:00:00 2001 From: joewitt Date: Tue, 14 Jul 2015 07:41:07 -0400 Subject: [PATCH 05/77] NIFI-751 PR #70 removed extraneous reference to abstract properties pulling in hadoop conf --- .../java/org/apache/nifi/processors/kite/ConvertAvroSchema.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java index 0d9f6586b5..daeb54830c 100644 --- a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java @@ -140,7 +140,7 @@ public class ConvertAvroSchema extends AbstractKiteProcessor { private static final List PROPERTIES = ImmutableList . builder() - .addAll(AbstractKiteProcessor.getProperties()).add(INPUT_SCHEMA) + .add(INPUT_SCHEMA) .add(OUTPUT_SCHEMA).build(); private static final Set RELATIONSHIPS = ImmutableSet From 4dc126aff8751e66018ac03260f3061b97719487 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Tue, 14 Jul 2015 08:40:04 -0400 Subject: [PATCH 06/77] NIFI-685: This is merged. This closes #67 From b251ab44258a840c5bacd973776b26dacbdbbbc2 Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Wed, 28 Jan 2015 16:30:49 -0800 Subject: [PATCH 07/77] Added processors that can run Flume sources and Flume sinks. Signed-off-by: Matt Gilman --- .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 31 +++ .../nifi-flume-processors/pom.xml | 126 +++++++++++++ .../flume/AbstractFlumeProcessor.java | 134 +++++++++++++ .../processors/flume/FlumeSinkProcessor.java | 157 +++++++++++++++ .../flume/FlumeSourceProcessor.java | 178 ++++++++++++++++++ .../nifi/processors/flume/NifiChannel.java | 31 +++ .../processors/flume/NifiChannelSelector.java | 55 ++++++ .../processors/flume/NifiTransaction.java | 40 ++++ .../processors/flume/util/FlowFileEvent.java | 114 +++++++++++ .../flume/util/FlowFileEventConstants.java | 25 +++ .../org.apache.nifi.processor.Processor | 16 ++ .../processors/flume/AbstractFlumeTest.java | 35 ++++ .../flume/FlumeSinkProcessorTest.java | 154 +++++++++++++++ .../flume/FlumeSourceProcessorTest.java | 140 ++++++++++++++ .../src/test/resources/core-site-broken.xml | 25 +++ .../src/test/resources/core-site.xml | 25 +++ .../src/test/resources/testdata/records.txt | 4 + .../nifi-flume-bundle/pom.xml | 39 ++++ nifi/nifi-nar-bundles/pom.xml | 1 + 19 files changed, 1330 insertions(+) create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml new file mode 100644 index 0000000000..c5333b652d --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + org.apache.nifi + nifi-flume-bundle + 0.0.1-incubating-SNAPSHOT + + nifi-flume-nar + 0.0.1-incubating-SNAPSHOT + nar + + + org.apache.nifi + nifi-flume-processors + + + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml new file mode 100644 index 0000000000..54636caf76 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -0,0 +1,126 @@ + + + 4.0.0 + + org.apache.nifi + nifi-flume-bundle + 0.0.1-incubating-SNAPSHOT + + nifi-flume-processors + jar + + + org.apache.nifi + nifi-api + + + org.apache.nifi + nifi-utils + + + org.apache.nifi + nifi-processor-utils + + + org.apache.nifi + nifi-flowfile-packager + + + org.apache.flume + flume-ng-sdk + 1.5.2 + + + org.apache.flume + flume-ng-core + 1.5.2 + + + org.slf4j + slf4j-log4j12 + + + + + + + org.apache.flume.flume-ng-sources + flume-twitter-source + 1.5.2 + + + org.apache.flume.flume-ng-sources + flume-jms-source + 1.5.2 + + + org.apache.flume.flume-ng-sources + flume-scribe-source + 1.5.2 + + + + + org.apache.flume.flume-ng-sinks + flume-hdfs-sink + 1.5.2 + + + + + org.apache.hadoop + hadoop-common + provided + + + org.apache.hadoop + hadoop-hdfs + provided + + + + org.apache.flume.flume-ng-sinks + flume-irc-sink + 1.5.2 + + + org.apache.flume.flume-ng-sinks + flume-ng-elasticsearch-sink + 1.5.2 + + + org.apache.flume.flume-ng-sinks + flume-ng-hbase-sink + 1.5.2 + + + org.apache.flume.flume-ng-sinks + flume-ng-morphline-solr-sink + 1.5.2 + + + + org.apache.nifi + nifi-mock + test + + + org.slf4j + slf4j-simple + test + + + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java new file mode 100644 index 0000000000..5c608d5ecd --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java @@ -0,0 +1,134 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import com.google.common.collect.Maps; +import java.io.IOException; +import java.io.OutputStream; +import java.io.StringReader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.SinkFactory; +import org.apache.flume.Source; +import org.apache.flume.SourceFactory; +import org.apache.flume.sink.DefaultSinkFactory; +import org.apache.flume.source.DefaultSourceFactory; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.ValidationContext; +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.components.Validator; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.io.OutputStreamCallback; +import static org.apache.nifi.processors.flume.FlumeSourceProcessor.FLUME_CONFIG; +import org.apache.nifi.processors.flume.util.FlowFileEvent; + +/** + * This is a base class that is helpful when building processors interacting + * with Flume. + */ +public abstract class AbstractFlumeProcessor extends AbstractProcessor { + protected static final SourceFactory SOURCE_FACTORY = new DefaultSourceFactory(); + protected static final SinkFactory SINK_FACTORY = new DefaultSinkFactory(); + + protected static Event flowFileToEvent(FlowFile flowFile, ProcessSession session) { + return new FlowFileEvent(flowFile, session); + } + + protected static void transferEvent(final Event event, ProcessSession session, + Relationship relationship) { + FlowFile flowFile = session.create(); + flowFile = session.putAllAttributes(flowFile, event.getHeaders()); + + flowFile = session.write(flowFile, new OutputStreamCallback() { + @Override + public void process(final OutputStream out) throws IOException { + out.write(event.getBody()); + } + }); + + session.getProvenanceReporter().create(flowFile); + session.transfer(flowFile, relationship); + } + + protected static Validator createSourceValidator() { + return new Validator() { + @Override + public ValidationResult validate(final String subject, final String value, final ValidationContext context) { + String reason = null; + try { + FlumeSourceProcessor.SOURCE_FACTORY.create("NiFi Source", value); + } catch (Exception ex) { + reason = ex.getLocalizedMessage(); + reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); + } + return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); + } + }; + } + + protected static Validator createSinkValidator() { + return new Validator() { + @Override + public ValidationResult validate(final String subject, final String value, final ValidationContext context) { + String reason = null; + try { + FlumeSinkProcessor.SINK_FACTORY.create("NiFi Sink", value); + } catch (Exception ex) { + reason = ex.getLocalizedMessage(); + reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); + } + return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); + } + }; + } + + protected static Context getFlumeContext(String flumeConfig, String prefix) { + Properties flumeProperties = new Properties(); + if (flumeConfig != null) { + try { + flumeProperties.load(new StringReader(flumeConfig)); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + } + Map parameters = Maps.newHashMap(); + for (String property : flumeProperties.stringPropertyNames()) { + parameters.put(property, flumeProperties.getProperty(property)); + } + return new Context(new Context(parameters).getSubProperties(prefix)); + } + + protected static Context getFlumeSourceContext(String flumeConfig, + String agentName, String sourceName) { + return getFlumeContext(flumeConfig, agentName + ".sources." + sourceName + "."); + } + + protected static Context getFlumeSinkContext(String flumeConfig, + String agentName, String sinkName) { + return getFlumeContext(flumeConfig, agentName + ".sinks." + sinkName + "."); + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java new file mode 100644 index 0000000000..4603d18e42 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java @@ -0,0 +1,157 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import com.google.common.base.Throwables; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import java.util.List; +import java.util.Set; +import org.apache.flume.Context; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.Sink; +import org.apache.flume.Transaction; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.conf.Configurables; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.Validator; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.SchedulingContext; +import org.apache.nifi.processor.annotation.CapabilityDescription; +import org.apache.nifi.processor.annotation.OnScheduled; +import org.apache.nifi.processor.annotation.OnUnscheduled; +import org.apache.nifi.processor.annotation.Tags; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.processors.flume.util.FlowFileEvent; + +/** + * This processor runs a Flume sink + */ +@Tags({"flume", "hadoop", "get", "sink" }) +@CapabilityDescription("Generate FlowFile data from a Flume sink") +public class FlumeSinkProcessor extends AbstractFlumeProcessor { + + private Sink sink; + private MemoryChannel channel; + + public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() + .name("Sink Type") + .description("The fully-qualified name of the Sink class") + .required(true) + .addValidator(createSinkValidator()) + .build(); + public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() + .name("Agent Name") + .description("The name of the agent used in the Flume sink configuration") + .required(true) + .defaultValue("tier1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() + .name("Sink Name") + .description("The name of the sink used in the Flume sink configuration") + .required(true) + .defaultValue("sink-1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() + .name("Flume Configuration") + .description("The Flume configuration for the sink copied from the flume.properties file") + .required(true) + .defaultValue("") + .addValidator(Validator.VALID) + .build(); + + public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); + public static final Relationship FAILURE = new Relationship.Builder().name("failure").build(); + + private List descriptors; + private Set relationships; + + + @Override + protected void init(final ProcessorInitializationContext context) { + this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); + this.relationships = ImmutableSet.of(); + } + + @Override + protected List getSupportedPropertyDescriptors() { + return descriptors; + } + + @Override + public Set getRelationships() { + return relationships; + } + + @OnScheduled + public void onScheduled(final SchedulingContext context) { + channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + channel.start(); + + sink = SINK_FACTORY.create(context.getProperty(SOURCE_NAME).getValue(), + context.getProperty(SINK_TYPE).getValue()); + sink.setChannel(channel); + + String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); + String agentName = context.getProperty(AGENT_NAME).getValue(); + String sinkName = context.getProperty(SOURCE_NAME).getValue(); + Configurables.configure(sink, + getFlumeSinkContext(flumeConfig, agentName, sinkName) ); + + sink.start(); + } + + @OnUnscheduled + public void unScheduled() { + sink.stop(); + channel.stop(); + } + + @Override + public void onTrigger(final ProcessContext context, + final ProcessSession session) throws ProcessException { + FlowFile flowFile = session.get(); + + Transaction transaction = channel.getTransaction(); + try { + transaction.begin(); + channel.put(new FlowFileEvent(flowFile, session)); + transaction.commit(); + } catch (Throwable th) { + transaction.rollback(); + throw Throwables.propagate(th); + } finally { + transaction.close(); + } + + try { + sink.process(); + session.transfer(flowFile, SUCCESS); + } catch (EventDeliveryException ex) { + session.transfer(flowFile, FAILURE); + } + } +} \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java new file mode 100644 index 0000000000..8b8388c3cc --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java @@ -0,0 +1,178 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import java.util.List; +import java.util.Set; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.EventDrivenSource; +import org.apache.flume.PollableSource; +import org.apache.flume.Source; +import org.apache.flume.SourceRunner; +import org.apache.flume.Transaction; +import org.apache.flume.channel.ChannelProcessor; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.conf.Configurables; +import org.apache.flume.source.EventDrivenSourceRunner; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.Validator; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessorInitializationContext; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.SchedulingContext; +import org.apache.nifi.processor.annotation.CapabilityDescription; +import org.apache.nifi.processor.annotation.OnScheduled; +import org.apache.nifi.processor.annotation.OnUnscheduled; +import org.apache.nifi.processor.annotation.Tags; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.processor.util.StandardValidators; + +/** + * This processor runs a Flume source + */ +@Tags({"flume", "hadoop", "get", "source" }) +@CapabilityDescription("Generate FlowFile data from a Flume source") +public class FlumeSourceProcessor extends AbstractFlumeProcessor { + + private Source source; + private SourceRunner runner; + private MemoryChannel channel; + + public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() + .name("Source Type") + .description("The fully-qualified name of the Source class") + .required(true) + .addValidator(createSourceValidator()) + .build(); + public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() + .name("Agent Name") + .description("The name of the agent used in the Flume source configuration") + .required(true) + .defaultValue("tier1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() + .name("Source Name") + .description("The name of the source used in the Flume source configuration") + .required(true) + .defaultValue("src-1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() + .name("Flume Configuration") + .description("The Flume configuration for the source copied from the flume.properties file") + .required(true) + .defaultValue("") + .addValidator(Validator.VALID) + .build(); + + public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); + + private List descriptors; + private Set relationships; + + + @Override + protected void init(final ProcessorInitializationContext context) { + this.descriptors = ImmutableList.of(SOURCE_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); + this.relationships = ImmutableSet.of(SUCCESS); + } + + @Override + protected List getSupportedPropertyDescriptors() { + return descriptors; + } + + @Override + public Set getRelationships() { + return relationships; + } + + @OnScheduled + public void onScheduled(final SchedulingContext context) { + source = SOURCE_FACTORY.create( + context.getProperty(SOURCE_NAME).getValue(), + context.getProperty(SOURCE_TYPE).getValue()); + + String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); + String agentName = context.getProperty(AGENT_NAME).getValue(); + String sourceName = context.getProperty(SOURCE_NAME).getValue(); + Configurables.configure(source, + getFlumeSourceContext(flumeConfig, agentName, sourceName) ); + + if (source instanceof EventDrivenSource) { + runner = new EventDrivenSourceRunner(); + channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + channel.start(); + source.setChannelProcessor(new ChannelProcessor(new NifiChannelSelector(channel))); + runner.setSource(source); + runner.start(); + } + } + + @OnUnscheduled + public void unScheduled() { + if (runner != null) { + runner.stop(); + } + if (channel != null) { + channel.stop(); + } + } + + @Override + public void onTrigger(final ProcessContext context, + final ProcessSession session) throws ProcessException { + if (source instanceof EventDrivenSource) { + onEventDrivenTrigger(context, session); + } else if (source instanceof PollableSource) { + onPollableTrigger((PollableSource)source, context, session); + } + } + + public void onPollableTrigger(final PollableSource pollableSource, + final ProcessContext context, final ProcessSession session) + throws ProcessException { + try { + pollableSource.setChannelProcessor(new ChannelProcessor( + new NifiChannelSelector(new NifiChannel(session, SUCCESS)))); + pollableSource.start(); + pollableSource.process(); + pollableSource.stop(); + } catch (EventDeliveryException ex) { + throw new ProcessException("Error processing pollable source", ex); + } + } + + public void onEventDrivenTrigger(final ProcessContext context, final ProcessSession session) { + Transaction transaction = channel.getTransaction(); + transaction.begin(); + + Event event = channel.take(); + if (event != null) { + transferEvent(event, session, SUCCESS); + } + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java new file mode 100644 index 0000000000..ac8dbe2b1d --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java @@ -0,0 +1,31 @@ + +package org.apache.nifi.processors.flume; + +import org.apache.flume.Context; +import org.apache.flume.channel.BasicChannelSemantics; +import org.apache.flume.channel.BasicTransactionSemantics; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; + + +public class NifiChannel extends BasicChannelSemantics { + private final ProcessSession session; + private final Relationship relationship; + + public NifiChannel(ProcessSession session, Relationship relationship) { + this.session = session; + this.relationship = relationship; + } + + @Override + protected BasicTransactionSemantics createTransaction() { + return new NifiTransaction(session, relationship); + } + + @Override + public void configure(Context context) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java new file mode 100644 index 0000000000..792678bd59 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java @@ -0,0 +1,55 @@ + +package org.apache.nifi.processors.flume; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.apache.flume.Channel; +import org.apache.flume.ChannelSelector; +import org.apache.flume.Context; +import org.apache.flume.Event; + + +public class NifiChannelSelector implements ChannelSelector { + private String name; + private final List requiredChannels; + private final List optionalChannels; + + public NifiChannelSelector(Channel channel) { + requiredChannels = ImmutableList.of(channel); + optionalChannels = ImmutableList.of(); + } + + @Override + public List getRequiredChannels(Event event) { + return requiredChannels; + } + + @Override + public List getOptionalChannels(Event event) { + return optionalChannels; + } + + @Override + public List getAllChannels() { + return requiredChannels; + } + + @Override + public void setChannels(List channels) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + + @Override + public String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + @Override + public void configure(Context context) { + } +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java new file mode 100644 index 0000000000..3d6a647f85 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java @@ -0,0 +1,40 @@ + +package org.apache.nifi.processors.flume; + +import org.apache.flume.Event; +import org.apache.flume.channel.BasicTransactionSemantics; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; + + +class NifiTransaction extends BasicTransactionSemantics { + private final ProcessSession session; + private final Relationship relationship; + + public NifiTransaction(ProcessSession session, Relationship relationship) { + this.session = session; + this.relationship = relationship; + } + + @Override + protected void doPut(Event event) throws InterruptedException { + AbstractFlumeProcessor.transferEvent(event, session, relationship); + } + + @Override + protected Event doTake() throws InterruptedException { + throw new UnsupportedOperationException("Only put supported"); + } + + @Override + protected void doCommit() throws InterruptedException { + session.commit(); + } + + @Override + protected void doRollback() throws InterruptedException { + session.rollback(); + } + + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java new file mode 100644 index 0000000000..c3531ca12e --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java @@ -0,0 +1,114 @@ + +package org.apache.nifi.processors.flume.util; + +import com.google.common.collect.Maps; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.Map; +import org.apache.flume.Event; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.io.InputStreamCallback; + +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.*; +import org.apache.nifi.stream.io.BufferedInputStream; +import org.apache.nifi.stream.io.StreamUtils; + +public class FlowFileEvent implements Event { + + private final FlowFile flowFile; + private final ProcessSession session; + + private final Map headers; + private boolean headersLoaded; + + private final Object bodyLock; + private byte[] body; + private boolean bodyLoaded; + + public FlowFileEvent(FlowFile flowFile, ProcessSession session) { + this.flowFile = flowFile; + this.session = session; + + headers = Maps.newHashMap(); + bodyLock = new Object(); + bodyLoaded = false; + } + + @Override + public Map getHeaders() { + if (!headersLoaded) { + synchronized (headers) { + if (headersLoaded) { + return headers; + } + + headers.putAll(flowFile.getAttributes()); + headers.put(ENTRY_DATE_HEADER, Long.toString(flowFile.getEntryDate())); + headers.put(ID_HEADER, Long.toString(flowFile.getId())); + headers.put(LAST_QUEUE_DATE_HEADER, Long.toString(flowFile.getLastQueueDate())); + int i = 0; + for (String lineageIdentifier : flowFile.getLineageIdentifiers()) { + headers.put(LINEAGE_IDENTIFIERS_HEADER + "." + i, lineageIdentifier); + i++; + } + headers.put(LINEAGE_START_DATE_HEADER, Long.toString(flowFile.getLineageStartDate())); + headers.put(SIZE_HEADER, Long.toString(flowFile.getSize())); + + headersLoaded = true; + } + } + return headers; + } + + @Override + public void setHeaders(Map headers) { + synchronized (this.headers) { + this.headers.clear(); + this.headers.putAll(headers); + headersLoaded = true; + } + } + + @Override + public byte[] getBody() { + if (bodyLoaded) { + return body; + } + + synchronized (bodyLock ) { + if (!bodyLoaded) { + if (flowFile.getSize() > Integer.MAX_VALUE) { + throw new RuntimeException("Can't get body of Event because the backing FlowFile is too large (" + flowFile.getSize() + " bytes)"); + } + + final ByteArrayOutputStream baos = new ByteArrayOutputStream((int) flowFile.getSize()); + session.read(flowFile, new InputStreamCallback() { + + @Override + public void process(InputStream in) throws IOException { + try (BufferedInputStream input = new BufferedInputStream(in)) { + StreamUtils.copy(in, baos); + } + baos.close(); + } + }); + + body = baos.toByteArray(); + bodyLoaded = true; + } + } + + return body; + } + + @Override + public void setBody(byte[] body) { + synchronized (bodyLock) { + this.body = Arrays.copyOf(body, body.length); + bodyLoaded = true; + } + } +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java new file mode 100644 index 0000000000..c13f0ef6f2 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java @@ -0,0 +1,25 @@ + +package org.apache.nifi.processors.flume.util; + + +public class FlowFileEventConstants { + + // FlowFile#getEntryDate(); + public static final String ENTRY_DATE_HEADER = "nifi.entry.date"; + + // FlowFile#getId(); + public static final String ID_HEADER = "nifi.id"; + + // FlowFile#getLastQueueDate(); + public static final String LAST_QUEUE_DATE_HEADER = "nifi.last.queue.date"; + + // FlowFile#getLineageIdentifiers(); + public static final String LINEAGE_IDENTIFIERS_HEADER = "nifi.lineage.identifiers"; + + // FlowFile#getLineageStartDate(); + public static final String LINEAGE_START_DATE_HEADER = "nifi.lineage.start.date"; + + // FlowFile#getSize(); + public static final String SIZE_HEADER = "nifi.size"; + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor new file mode 100644 index 0000000000..fae87277b0 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor @@ -0,0 +1,16 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +org.apache.nifi.processors.flume.FlumeSourceProcessor +org.apache.nifi.processors.flume.FlumeSinkProcessor diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java new file mode 100644 index 0000000000..87b056a86e --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import org.junit.BeforeClass; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AbstractFlumeTest { + + private static Logger logger; + + @BeforeClass + public static void setUpClass() { + System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info"); + System.setProperty("org.slf4j.simpleLogger.showDateTime", "true"); + System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.flume", "debug"); + logger = LoggerFactory.getLogger(AbstractFlumeTest.class); + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java new file mode 100644 index 0000000000..4f2cef778a --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java @@ -0,0 +1,154 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import java.io.File; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.FileInputStream; +import java.io.FilenameFilter; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import org.apache.commons.io.filefilter.HiddenFileFilter; +import org.apache.flume.sink.NullSink; +import org.apache.flume.source.AvroSource; + +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.flowfile.attributes.CoreAttributes; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.util.MockProcessContext; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.apache.nifi.util.file.FileUtils; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FlumeSinkProcessorTest { + + private static final Logger logger = + LoggerFactory.getLogger(FlumeSinkProcessorTest.class); + + @Test + public void testValidators() { + TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); + Collection results; + ProcessContext pc; + + results = new HashSet<>(); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + logger.error(vr.toString()); + Assert.assertTrue(vr.toString().contains("is invalid because Sink Type is required")); + } + + // non-existent class + results = new HashSet<>(); + runner.setProperty(FlumeSinkProcessor.SINK_TYPE, "invalid.class.name"); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + logger.error(vr.toString()); + Assert.assertTrue(vr.toString().contains("is invalid because unable to load sink")); + } + + // class doesn't implement Sink + results = new HashSet<>(); + runner.setProperty(FlumeSinkProcessor.SINK_TYPE, AvroSource.class.getName()); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + logger.error(vr.toString()); + Assert.assertTrue(vr.toString().contains("is invalid because unable to create sink")); + } + + results = new HashSet<>(); + runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(0, results.size()); + } + + + @Test + public void testNullSink() throws IOException { + TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); + runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); + FileInputStream fis = new FileInputStream("src/test/resources/testdata/records.txt"); + Map attributes = new HashMap<>(); + attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); + runner.enqueue(fis, attributes); + runner.run(); + fis.close(); + } + + @Test + public void testHdfsSink() throws IOException { + File destDir = new File("target/hdfs"); + if (destDir.exists()) { + FileUtils.deleteFilesInDir(destDir, null, logger); + } else { + destDir.mkdirs(); + } + + TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); + runner.setProperty(FlumeSinkProcessor.SINK_TYPE, "hdfs"); + runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, + "tier1.sinks.sink-1.hdfs.path = " + destDir.toURI().toString() + "\n" + + "tier1.sinks.sink-1.hdfs.fileType = DataStream\n" + + "tier1.sinks.sink-1.hdfs.serializer = TEXT\n" + + "tier1.sinks.sink-1.serializer.appendNewline = false" + ); + FileInputStream fis = new FileInputStream("src/test/resources/testdata/records.txt"); + Map attributes = new HashMap<>(); + attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); + runner.enqueue(fis, attributes); + runner.run(); + fis.close(); + + File[] files = destDir.listFiles((FilenameFilter)HiddenFileFilter.VISIBLE); + assertEquals("Unexpected number of destination files.", 1, files.length); + File dst = files[0]; + byte[] expectedMd5 = FileUtils.computeMd5Digest(new File("src/test/resources/testdata/records.txt")); + byte[] actualMd5 = FileUtils.computeMd5Digest(dst); + Assert.assertArrayEquals("Destination file doesn't match source data", expectedMd5, actualMd5); + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java new file mode 100644 index 0000000000..bbcf116787 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java @@ -0,0 +1,140 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + + +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import org.apache.flume.sink.NullSink; +import org.apache.flume.source.AvroSource; + +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.util.MockFlowFile; +import org.apache.nifi.util.MockProcessContext; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.apache.nifi.util.file.FileUtils; + +import org.junit.Assert; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class FlumeSourceProcessorTest { + + private static final Logger logger = + LoggerFactory.getLogger(FlumeSourceProcessorTest.class); + + + @Test + public void testValidators() { + TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); + Collection results; + ProcessContext pc; + + results = new HashSet<>(); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + logger.error(vr.toString()); + Assert.assertTrue(vr.toString().contains("is invalid because Source Type is required")); + } + + // non-existent class + results = new HashSet<>(); + runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "invalid.class.name"); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + logger.error(vr.toString()); + Assert.assertTrue(vr.toString().contains("is invalid because unable to load source")); + } + + // class doesn't implement Source + results = new HashSet<>(); + runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, NullSink.class.getName()); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + logger.error(vr.toString()); + Assert.assertTrue(vr.toString().contains("is invalid because unable to create source")); + } + + results = new HashSet<>(); + runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, AvroSource.class.getName()); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(0, results.size()); + } + + @Test + public void testSequenceSource() { + TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); + runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "seq"); + runner.run(); + List flowFiles = runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS); + Assert.assertEquals(1, flowFiles.size()); + for (MockFlowFile flowFile : flowFiles) { + logger.error(flowFile.toString()); + Assert.assertEquals(1, flowFile.getSize()); + } + } + + @Test + public void testSourceWithConfig() throws IOException { + File spoolDirectory = new File("target/spooldir"); + if (spoolDirectory.exists()) { + FileUtils.deleteFilesInDir(spoolDirectory, null, logger); + } else { + spoolDirectory.mkdirs(); + } + File src = new File("src/test/resources/testdata/records.txt"); + File dst = new File(spoolDirectory, "records.txt"); + FileUtils.copyFile(src, dst, false, false, logger); + + TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); + runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "spooldir"); + runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, + "tier1.sources.src-1.spoolDir = " + spoolDirectory.getAbsolutePath()); + runner.run(); + List flowFiles = runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS); + Assert.assertEquals(1, flowFiles.size()); + for (MockFlowFile flowFile : flowFiles) { + Assert.assertEquals(8, flowFile.getSize()); + flowFile.assertContentEquals("record 1"); + } + } +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml new file mode 100644 index 0000000000..e06a193353 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml @@ -0,0 +1,25 @@ + + + + + + + + + fs.default.name + hdfs://localhost:65535 + + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml new file mode 100644 index 0000000000..5e3b55cb0b --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml @@ -0,0 +1,25 @@ + + + + + + + + + fs.defaultFS + file:/// + + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt new file mode 100644 index 0000000000..5a809eee88 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt @@ -0,0 +1,4 @@ +record 1 +record 2 +record 3 +record 4 diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml new file mode 100644 index 0000000000..dc9ec69deb --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + org.apache.nifi + nifi-nar-bundles + 0.0.1-incubating-SNAPSHOT + + nifi-flume-bundle + 0.0.1-incubating-SNAPSHOT + pom + A bundle of processors that run Flume sources/sinks + + nifi-flume-processors + nifi-flume-nar + + + + + org.apache.nifi + nifi-flume-processors + 0.0.1-incubating-SNAPSHOT + + + + diff --git a/nifi/nifi-nar-bundles/pom.xml b/nifi/nifi-nar-bundles/pom.xml index b9be570a8b..29a5e49d0d 100644 --- a/nifi/nifi-nar-bundles/pom.xml +++ b/nifi/nifi-nar-bundles/pom.xml @@ -41,6 +41,7 @@ nifi-hl7-bundle nifi-language-translation-bundle nifi-mongodb-bundle + nifi-flume-bundle From cf29029a4db4cc606b417889296abb97e460d586 Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Fri, 30 Jan 2015 14:21:21 -0500 Subject: [PATCH 08/77] Added the sink's relationships to the relationship set. Added error checkign and logging for sink/source creation. Fixed an issue with transaction managemetn in the sink. Reformatted per coding standard. Signed-off-by: Matt Gilman --- nifi/nifi-assembly/pom.xml | 3 + .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 5 + .../processors/flume/FlumeSinkProcessor.java | 210 +++++++-------- .../flume/FlumeSourceProcessor.java | 241 +++++++++--------- .../flume/FlumeSinkProcessorTest.java | 2 - nifi/pom.xml | 5 + 6 files changed, 247 insertions(+), 219 deletions(-) diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml index c679d22ab5..4f4879fefe 100644 --- a/nifi/nifi-assembly/pom.xml +++ b/nifi/nifi-assembly/pom.xml @@ -165,6 +165,9 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-kite-nar + + org.apache.nifi + nifi-flume-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml index c5333b652d..dff440eb7f 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -27,5 +27,10 @@ org.apache.nifi nifi-flume-processors + + org.apache.nifi + nifi-hadoop-libraries-nar + nar + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java index 4603d18e42..fc97ae8685 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java @@ -27,6 +27,10 @@ import org.apache.flume.Sink; import org.apache.flume.Transaction; import org.apache.flume.channel.MemoryChannel; import org.apache.flume.conf.Configurables; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.Validator; @@ -36,122 +40,122 @@ import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.ProcessorInitializationContext; import org.apache.nifi.processor.Relationship; import org.apache.nifi.processor.SchedulingContext; -import org.apache.nifi.processor.annotation.CapabilityDescription; -import org.apache.nifi.processor.annotation.OnScheduled; -import org.apache.nifi.processor.annotation.OnUnscheduled; -import org.apache.nifi.processor.annotation.Tags; import org.apache.nifi.processor.exception.ProcessException; import org.apache.nifi.processor.util.StandardValidators; import org.apache.nifi.processors.flume.util.FlowFileEvent; /** - * This processor runs a Flume sink + * This processor runs a Flume sink */ -@Tags({"flume", "hadoop", "get", "sink" }) +@Tags({"flume", "hadoop", "get", "sink"}) @CapabilityDescription("Generate FlowFile data from a Flume sink") public class FlumeSinkProcessor extends AbstractFlumeProcessor { - private Sink sink; - private MemoryChannel channel; + private Sink sink; + private MemoryChannel channel; - public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() - .name("Sink Type") - .description("The fully-qualified name of the Sink class") - .required(true) - .addValidator(createSinkValidator()) - .build(); - public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() - .name("Agent Name") - .description("The name of the agent used in the Flume sink configuration") - .required(true) - .defaultValue("tier1") - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() - .name("Sink Name") - .description("The name of the sink used in the Flume sink configuration") - .required(true) - .defaultValue("sink-1") - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() - .name("Flume Configuration") - .description("The Flume configuration for the sink copied from the flume.properties file") - .required(true) - .defaultValue("") - .addValidator(Validator.VALID) - .build(); + public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() + .name("Sink Type") + .description("The fully-qualified name of the Sink class") + .required(true) + .addValidator(createSinkValidator()) + .build(); + public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() + .name("Agent Name") + .description("The name of the agent used in the Flume sink configuration") + .required(true) + .defaultValue("tier1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() + .name("Sink Name") + .description("The name of the sink used in the Flume sink configuration") + .required(true) + .defaultValue("sink-1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() + .name("Flume Configuration") + .description("The Flume configuration for the sink copied from the flume.properties file") + .required(true) + .defaultValue("") + .addValidator(Validator.VALID) + .build(); - public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); - public static final Relationship FAILURE = new Relationship.Builder().name("failure").build(); + public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); + public static final Relationship FAILURE = new Relationship.Builder().name("failure").build(); - private List descriptors; - private Set relationships; + private List descriptors; + private Set relationships; - - @Override - protected void init(final ProcessorInitializationContext context) { - this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); - this.relationships = ImmutableSet.of(); - } - - @Override - protected List getSupportedPropertyDescriptors() { - return descriptors; - } - - @Override - public Set getRelationships() { - return relationships; - } - - @OnScheduled - public void onScheduled(final SchedulingContext context) { - channel = new MemoryChannel(); - Configurables.configure(channel, new Context()); - channel.start(); - - sink = SINK_FACTORY.create(context.getProperty(SOURCE_NAME).getValue(), - context.getProperty(SINK_TYPE).getValue()); - sink.setChannel(channel); - - String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); - String agentName = context.getProperty(AGENT_NAME).getValue(); - String sinkName = context.getProperty(SOURCE_NAME).getValue(); - Configurables.configure(sink, - getFlumeSinkContext(flumeConfig, agentName, sinkName) ); - - sink.start(); - } - - @OnUnscheduled - public void unScheduled() { - sink.stop(); - channel.stop(); - } - - @Override - public void onTrigger(final ProcessContext context, - final ProcessSession session) throws ProcessException { - FlowFile flowFile = session.get(); - - Transaction transaction = channel.getTransaction(); - try { - transaction.begin(); - channel.put(new FlowFileEvent(flowFile, session)); - transaction.commit(); - } catch (Throwable th) { - transaction.rollback(); - throw Throwables.propagate(th); - } finally { - transaction.close(); + @Override + protected void init(final ProcessorInitializationContext context) { + this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); + this.relationships = ImmutableSet.of(SUCCESS, FAILURE); } - try { - sink.process(); - session.transfer(flowFile, SUCCESS); - } catch (EventDeliveryException ex) { - session.transfer(flowFile, FAILURE); + @Override + protected List getSupportedPropertyDescriptors() { + return descriptors; } - } -} \ No newline at end of file + + @Override + public Set getRelationships() { + return relationships; + } + + @OnScheduled + public void onScheduled(final SchedulingContext context) { + try { + channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + channel.start(); + + sink = SINK_FACTORY.create(context.getProperty(SOURCE_NAME).getValue(), + context.getProperty(SINK_TYPE).getValue()); + sink.setChannel(channel); + + String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); + String agentName = context.getProperty(AGENT_NAME).getValue(); + String sinkName = context.getProperty(SOURCE_NAME).getValue(); + Configurables.configure(sink, + getFlumeSinkContext(flumeConfig, agentName, sinkName)); + + sink.start(); + } catch (Throwable th) { + getLogger().error("Error creating sink", th); + throw Throwables.propagate(th); + } + } + + @OnUnscheduled + public void unScheduled() { + sink.stop(); + channel.stop(); + } + + @Override + public void onTrigger(final ProcessContext context, + final ProcessSession session) throws ProcessException { + FlowFile flowFile = session.get(); + + Transaction transaction = channel.getTransaction(); + try { + transaction.begin(); + channel.put(new FlowFileEvent(flowFile, session)); + transaction.commit(); + } catch (Throwable th) { + transaction.rollback(); + throw Throwables.propagate(th); + } finally { + transaction.close(); + } + + try { + sink.process(); + session.transfer(flowFile, SUCCESS); + } catch (EventDeliveryException ex) { + session.transfer(flowFile, FAILURE); + } + } +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java index 8b8388c3cc..19551e68f0 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java @@ -16,6 +16,7 @@ */ package org.apache.nifi.processors.flume; +import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.util.List; @@ -32,6 +33,10 @@ import org.apache.flume.channel.ChannelProcessor; import org.apache.flume.channel.MemoryChannel; import org.apache.flume.conf.Configurables; import org.apache.flume.source.EventDrivenSourceRunner; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.Validator; @@ -40,139 +45,147 @@ import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.ProcessorInitializationContext; import org.apache.nifi.processor.Relationship; import org.apache.nifi.processor.SchedulingContext; -import org.apache.nifi.processor.annotation.CapabilityDescription; -import org.apache.nifi.processor.annotation.OnScheduled; -import org.apache.nifi.processor.annotation.OnUnscheduled; -import org.apache.nifi.processor.annotation.Tags; import org.apache.nifi.processor.exception.ProcessException; import org.apache.nifi.processor.util.StandardValidators; /** - * This processor runs a Flume source + * This processor runs a Flume source */ -@Tags({"flume", "hadoop", "get", "source" }) +@Tags({"flume", "hadoop", "get", "source"}) @CapabilityDescription("Generate FlowFile data from a Flume source") public class FlumeSourceProcessor extends AbstractFlumeProcessor { - - private Source source; - private SourceRunner runner; - private MemoryChannel channel; - public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() - .name("Source Type") - .description("The fully-qualified name of the Source class") - .required(true) - .addValidator(createSourceValidator()) - .build(); - public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() - .name("Agent Name") - .description("The name of the agent used in the Flume source configuration") - .required(true) - .defaultValue("tier1") - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() - .name("Source Name") - .description("The name of the source used in the Flume source configuration") - .required(true) - .defaultValue("src-1") - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); - public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() - .name("Flume Configuration") - .description("The Flume configuration for the source copied from the flume.properties file") - .required(true) - .defaultValue("") - .addValidator(Validator.VALID) - .build(); + private Source source; + private SourceRunner runner; + private MemoryChannel channel; - public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); + public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() + .name("Source Type") + .description("The fully-qualified name of the Source class") + .required(true) + .addValidator(createSourceValidator()) + .build(); + public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() + .name("Agent Name") + .description("The name of the agent used in the Flume source configuration") + .required(true) + .defaultValue("tier1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() + .name("Source Name") + .description("The name of the source used in the Flume source configuration") + .required(true) + .defaultValue("src-1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() + .name("Flume Configuration") + .description("The Flume configuration for the source copied from the flume.properties file") + .required(true) + .defaultValue("") + .addValidator(Validator.VALID) + .build(); - private List descriptors; - private Set relationships; + public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); + private List descriptors; + private Set relationships; - @Override - protected void init(final ProcessorInitializationContext context) { - this.descriptors = ImmutableList.of(SOURCE_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); - this.relationships = ImmutableSet.of(SUCCESS); - } - - @Override - protected List getSupportedPropertyDescriptors() { - return descriptors; - } - - @Override - public Set getRelationships() { - return relationships; - } - - @OnScheduled - public void onScheduled(final SchedulingContext context) { - source = SOURCE_FACTORY.create( - context.getProperty(SOURCE_NAME).getValue(), - context.getProperty(SOURCE_TYPE).getValue()); - - String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); - String agentName = context.getProperty(AGENT_NAME).getValue(); - String sourceName = context.getProperty(SOURCE_NAME).getValue(); - Configurables.configure(source, - getFlumeSourceContext(flumeConfig, agentName, sourceName) ); - - if (source instanceof EventDrivenSource) { - runner = new EventDrivenSourceRunner(); - channel = new MemoryChannel(); - Configurables.configure(channel, new Context()); - channel.start(); - source.setChannelProcessor(new ChannelProcessor(new NifiChannelSelector(channel))); - runner.setSource(source); - runner.start(); - } - } - - @OnUnscheduled - public void unScheduled() { - if (runner != null) { - runner.stop(); + @Override + protected void init(final ProcessorInitializationContext context) { + this.descriptors = ImmutableList.of(SOURCE_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); + this.relationships = ImmutableSet.of(SUCCESS); } - if (channel != null) { - channel.stop(); - } - } - @Override - public void onTrigger(final ProcessContext context, - final ProcessSession session) throws ProcessException { - if (source instanceof EventDrivenSource) { - onEventDrivenTrigger(context, session); - } else if (source instanceof PollableSource) { - onPollableTrigger((PollableSource)source, context, session); + @Override + protected List getSupportedPropertyDescriptors() { + return descriptors; } - } - public void onPollableTrigger(final PollableSource pollableSource, - final ProcessContext context, final ProcessSession session) - throws ProcessException { - try { - pollableSource.setChannelProcessor(new ChannelProcessor( - new NifiChannelSelector(new NifiChannel(session, SUCCESS)))); - pollableSource.start(); - pollableSource.process(); - pollableSource.stop(); - } catch (EventDeliveryException ex) { - throw new ProcessException("Error processing pollable source", ex); + @Override + public Set getRelationships() { + return relationships; } - } - public void onEventDrivenTrigger(final ProcessContext context, final ProcessSession session) { - Transaction transaction = channel.getTransaction(); - transaction.begin(); + @OnScheduled + public void onScheduled(final SchedulingContext context) { + try { + source = SOURCE_FACTORY.create( + context.getProperty(SOURCE_NAME).getValue(), + context.getProperty(SOURCE_TYPE).getValue()); - Event event = channel.take(); - if (event != null) { - transferEvent(event, session, SUCCESS); + String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); + String agentName = context.getProperty(AGENT_NAME).getValue(); + String sourceName = context.getProperty(SOURCE_NAME).getValue(); + Configurables.configure(source, + getFlumeSourceContext(flumeConfig, agentName, sourceName)); + + if (source instanceof EventDrivenSource) { + runner = new EventDrivenSourceRunner(); + channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + channel.start(); + source.setChannelProcessor(new ChannelProcessor(new NifiChannelSelector(channel))); + runner.setSource(source); + runner.start(); + } + } catch (Throwable th) { + getLogger().error("Error creating source", th); + throw Throwables.propagate(th); + } + } + + @OnUnscheduled + public void unScheduled() { + if (runner != null) { + runner.stop(); + } + if (channel != null) { + channel.stop(); + } + } + + @Override + public void onTrigger(final ProcessContext context, + final ProcessSession session) throws ProcessException { + if (source instanceof EventDrivenSource) { + onEventDrivenTrigger(context, session); + } else if (source instanceof PollableSource) { + onPollableTrigger((PollableSource) source, context, session); + } + } + + public void onPollableTrigger(final PollableSource pollableSource, + final ProcessContext context, final ProcessSession session) + throws ProcessException { + try { + pollableSource.setChannelProcessor(new ChannelProcessor( + new NifiChannelSelector(new NifiChannel(session, SUCCESS)))); + pollableSource.start(); + pollableSource.process(); + pollableSource.stop(); + } catch (EventDeliveryException ex) { + throw new ProcessException("Error processing pollable source", ex); + } + } + + public void onEventDrivenTrigger(final ProcessContext context, final ProcessSession session) { + Transaction transaction = channel.getTransaction(); + transaction.begin(); + + try { + Event event = channel.take(); + if (event != null) { + transferEvent(event, session, SUCCESS); + } + transaction.commit(); + } catch (Throwable th) { + transaction.rollback(); + throw Throwables.propagate(th); + } finally { + transaction.close(); + } } - } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java index 4f2cef778a..8d40cb6314 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java @@ -18,7 +18,6 @@ package org.apache.nifi.processors.flume; import java.io.File; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import java.io.FileInputStream; import java.io.FilenameFilter; @@ -40,7 +39,6 @@ import org.apache.nifi.util.TestRunners; import org.apache.nifi.util.file.FileUtils; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/nifi/pom.xml b/nifi/pom.xml index 0c71ba8ae5..422e1aac60 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -805,6 +805,11 @@ nifi-geo-nar 0.2.0-incubating-SNAPSHOT nar + + org.apache.nifi + nifi-flume-nar + 0.0.1-incubating-SNAPSHOT + nar org.apache.nifi From 3b9e48246641e617cd3fef987ce6facd283f6f3e Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Tue, 7 Apr 2015 17:18:45 -0700 Subject: [PATCH 09/77] Fix poms, versions, add batching to sink processor * Fix pom issues caused by the rebase. * Update the Flume bundle's version to 0.1.0 * Add support for batching to the sink processor Signed-off-by: Matt Gilman --- nifi/nifi-assembly/pom.xml | 2 + .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 4 +- .../nifi-flume-processors/pom.xml | 2 +- .../flume/AbstractFlumeProcessor.java | 6 --- .../processors/flume/FlumeSinkProcessor.java | 46 ++++++++++++++++--- .../flume/FlumeSinkProcessorTest.java | 13 ++++++ .../nifi-flume-bundle/pom.xml | 6 +-- nifi/pom.xml | 2 +- 8 files changed, 61 insertions(+), 20 deletions(-) diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml index 4f4879fefe..0293c70013 100644 --- a/nifi/nifi-assembly/pom.xml +++ b/nifi/nifi-assembly/pom.xml @@ -165,6 +165,8 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-kite-nar + nar + org.apache.nifi nifi-flume-nar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml index dff440eb7f..36a5170e5e 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -17,10 +17,10 @@ org.apache.nifi nifi-flume-bundle - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT nifi-flume-nar - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT nar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index 54636caf76..bd26a9916c 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-flume-bundle - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT nifi-flume-processors jar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java index 5c608d5ecd..a8310008dd 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java @@ -20,20 +20,15 @@ import com.google.common.collect.Maps; import java.io.IOException; import java.io.OutputStream; import java.io.StringReader; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Properties; import org.apache.flume.Context; import org.apache.flume.Event; import org.apache.flume.SinkFactory; -import org.apache.flume.Source; import org.apache.flume.SourceFactory; import org.apache.flume.sink.DefaultSinkFactory; import org.apache.flume.source.DefaultSourceFactory; -import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.ValidationContext; import org.apache.nifi.components.ValidationResult; import org.apache.nifi.components.Validator; @@ -42,7 +37,6 @@ import org.apache.nifi.processor.AbstractProcessor; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.Relationship; import org.apache.nifi.processor.io.OutputStreamCallback; -import static org.apache.nifi.processors.flume.FlumeSourceProcessor.FLUME_CONFIG; import org.apache.nifi.processors.flume.util.FlowFileEvent; /** diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java index fc97ae8685..0ffd4f1c27 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java @@ -19,6 +19,7 @@ package org.apache.nifi.processors.flume; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; import java.util.List; import java.util.Set; import org.apache.flume.Context; @@ -27,6 +28,7 @@ import org.apache.flume.Sink; import org.apache.flume.Transaction; import org.apache.flume.channel.MemoryChannel; import org.apache.flume.conf.Configurables; +import org.apache.jasper.compiler.JspUtil; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; @@ -81,16 +83,24 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { .defaultValue("") .addValidator(Validator.VALID) .build(); + public static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder() + .name("Batch Size") + .description("The number of FlowFiles to process in a single batch") + .required(true) + .defaultValue("100") + .addValidator(StandardValidators.INTEGER_VALIDATOR) + .build(); public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); public static final Relationship FAILURE = new Relationship.Builder().name("failure").build(); private List descriptors; private Set relationships; + private int batchSize; @Override protected void init(final ProcessorInitializationContext context) { - this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); + this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG, BATCH_SIZE); this.relationships = ImmutableSet.of(SUCCESS, FAILURE); } @@ -106,9 +116,14 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { @OnScheduled public void onScheduled(final SchedulingContext context) { + batchSize = context.getProperty(BATCH_SIZE).asInteger(); + try { channel = new MemoryChannel(); - Configurables.configure(channel, new Context()); + Context memoryChannelContext = new Context(); + memoryChannelContext.put("capacity", String.valueOf(batchSize*10)); + memoryChannelContext.put("transactionCapacity", String.valueOf(batchSize*10)); + Configurables.configure(channel, memoryChannelContext); channel.start(); sink = SINK_FACTORY.create(context.getProperty(SOURCE_NAME).getValue(), @@ -137,12 +152,22 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { @Override public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { - FlowFile flowFile = session.get(); + List flowFiles = Lists.newArrayListWithExpectedSize(batchSize); + for (int i = 0; i < batchSize; i++) { + FlowFile flowFile = session.get(); + if (flowFile == null) { + break; + } + + flowFiles.add(flowFile); + } Transaction transaction = channel.getTransaction(); try { transaction.begin(); - channel.put(new FlowFileEvent(flowFile, session)); + for (FlowFile flowFile : flowFiles) { + channel.put(new FlowFileEvent(flowFile, session)); + } transaction.commit(); } catch (Throwable th) { transaction.rollback(); @@ -152,10 +177,17 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { } try { - sink.process(); - session.transfer(flowFile, SUCCESS); + Sink.Status status; + do { + status = sink.process(); + } while(status == Sink.Status.READY); + for (FlowFile flowFile : flowFiles) { + session.transfer(flowFile, SUCCESS); + } } catch (EventDeliveryException ex) { - session.transfer(flowFile, FAILURE); + for (FlowFile flowFile : flowFiles) { + session.transfer(flowFile, FAILURE); + } } } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java index 8d40cb6314..d22514f1f3 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java @@ -116,6 +116,19 @@ public class FlumeSinkProcessorTest { runner.run(); fis.close(); } + + @Test + public void testBatchSize() throws IOException { + TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); + runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); + runner.setProperty(FlumeSinkProcessor.BATCH_SIZE, "1000"); + runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, + "tier1.sinks.sink-1.batchSize = 1000\n"); + for (int i = 0; i < 100000; i++) { + runner.enqueue(String.valueOf(i).getBytes()); + } + runner.run(); + } @Test public void testHdfsSink() throws IOException { diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml index dc9ec69deb..50b0fde3a9 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -17,10 +17,10 @@ org.apache.nifi nifi-nar-bundles - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT nifi-flume-bundle - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT pom A bundle of processors that run Flume sources/sinks @@ -32,7 +32,7 @@ org.apache.nifi nifi-flume-processors - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT diff --git a/nifi/pom.xml b/nifi/pom.xml index 422e1aac60..682a426aa5 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -808,7 +808,7 @@ org.apache.nifi nifi-flume-nar - 0.0.1-incubating-SNAPSHOT + 0.1.0-incubating-SNAPSHOT nar From 3529bb33178ce70a33cc7ab21d7334ba3411048b Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Fri, 5 Jun 2015 14:00:37 -0700 Subject: [PATCH 10/77] NIFI-589: Updated with first review feedback * Switched to using `getResourceAsStream()` where possible * Removed trailing whitespace from added files * Added missing license headers * Added RAT exception to testdata files * Fixed POM errors that broke the build * Switched to using TemporaryFolder instead of putting files in `target` * Used try-with-resources where needed to autoclose streams * Moved logging configuration to properties files * Removed AbstractFlumeTest * Fixed logging levels in test code Signed-off-by: Matt Gilman --- .../org/apache/nifi/util/file/FileUtils.java | 27 +++- .../nifi-flume-processors/pom.xml | 125 ++++++++++-------- .../nifi/processors/flume/NifiChannel.java | 18 ++- .../processors/flume/NifiChannelSelector.java | 18 ++- .../processors/flume/NifiTransaction.java | 17 ++- .../processors/flume/util/FlowFileEvent.java | 21 ++- .../flume/util/FlowFileEventConstants.java | 17 ++- .../processors/flume/AbstractFlumeTest.java | 35 ----- .../flume/FlumeSinkProcessorTest.java | 59 +++++---- .../flume/FlumeSourceProcessorTest.java | 25 ++-- .../src/test/resources/core-site.xml | 5 + .../src/test/resources/log4j.properties | 20 +++ .../test/resources/simplelogger.properties | 20 +++ nifi/pom.xml | 1 + 14 files changed, 260 insertions(+), 148 deletions(-) delete mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java b/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java index 7661e2dc41..ff4da8e5a2 100644 --- a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java +++ b/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java @@ -560,6 +560,19 @@ public class FileUtils { * @throws IOException if the MD5 hash could not be computed */ public static byte[] computeMd5Digest(final File file) throws IOException { + try (final FileInputStream fis = new FileInputStream(file)) { + return computeMd5Digest(fis); + } + } + + /** + * Returns the MD5 hash of the given stream. + * + * @param stream an input stream + * @return the MD5 hash + * @throws IOException if the MD5 hash could not be computed + */ + public static byte[] computeMd5Digest(final InputStream stream) throws IOException { final MessageDigest digest; try { digest = MessageDigest.getInstance("MD5"); @@ -567,15 +580,15 @@ public class FileUtils { throw new IOException(nsae); } - try (final FileInputStream fis = new FileInputStream(file)) { - int len; - final byte[] buffer = new byte[8192]; - while ((len = fis.read(buffer)) > -1) { - if (len > 0) { - digest.update(buffer, 0, len); - } + + int len; + final byte[] buffer = new byte[8192]; + while ((len = stream.read(buffer)) > -1) { + if (len > 0) { + digest.update(buffer, 0, len); } } + return digest.digest(); } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index bd26a9916c..b903f21833 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -38,14 +38,14 @@ org.apache.nifi nifi-flowfile-packager - - org.apache.flume - flume-ng-sdk + + org.apache.flume + flume-ng-sdk 1.5.2 - - - org.apache.flume - flume-ng-core + + + org.apache.flume + flume-ng-core 1.5.2 @@ -53,74 +53,89 @@ slf4j-log4j12 - + - - org.apache.flume.flume-ng-sources - flume-twitter-source + + org.apache.flume.flume-ng-sources + flume-twitter-source 1.5.2 - - - org.apache.flume.flume-ng-sources - flume-jms-source + + + org.apache.flume.flume-ng-sources + flume-jms-source 1.5.2 - - - org.apache.flume.flume-ng-sources - flume-scribe-source + + + org.apache.flume.flume-ng-sources + flume-scribe-source 1.5.2 - + - - org.apache.flume.flume-ng-sinks - flume-hdfs-sink + + org.apache.flume.flume-ng-sinks + flume-hdfs-sink 1.5.2 - + - - org.apache.hadoop - hadoop-common - provided - - - org.apache.hadoop - hadoop-hdfs - provided + + org.apache.hadoop + hadoop-common + provided + + + org.slf4j + slf4j-log4j12 + + - - - org.apache.flume.flume-ng-sinks - flume-irc-sink + + org.apache.hadoop + hadoop-hdfs + provided + + + + org.apache.flume.flume-ng-sinks + flume-irc-sink 1.5.2 - - - org.apache.flume.flume-ng-sinks - flume-ng-elasticsearch-sink + + + org.apache.flume.flume-ng-sinks + flume-ng-elasticsearch-sink 1.5.2 - - - org.apache.flume.flume-ng-sinks - flume-ng-hbase-sink + + + org.apache.flume.flume-ng-sinks + flume-ng-hbase-sink 1.5.2 - - - org.apache.flume.flume-ng-sinks - flume-ng-morphline-solr-sink + + + org.apache.flume.flume-ng-sinks + flume-ng-morphline-solr-sink 1.5.2 - + org.apache.nifi nifi-mock test - - org.slf4j - slf4j-simple - test - + + + + + org.apache.rat + apache-rat-plugin + + + src/test/resources/testdata/* + + + + + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java index ac8dbe2b1d..c4d3bef4d0 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java @@ -1,4 +1,19 @@ - +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.nifi.processors.flume; import org.apache.flume.Context; @@ -24,7 +39,6 @@ public class NifiChannel extends BasicChannelSemantics { @Override public void configure(Context context) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java index 792678bd59..2b0ba77616 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java @@ -1,4 +1,19 @@ - +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.nifi.processors.flume; import com.google.common.collect.ImmutableList; @@ -36,7 +51,6 @@ public class NifiChannelSelector implements ChannelSelector { @Override public void setChannels(List channels) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java index 3d6a647f85..37c8a50902 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java @@ -1,4 +1,19 @@ - +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.nifi.processors.flume; import org.apache.flume.Event; diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java index c3531ca12e..5dc97d65e7 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java @@ -1,4 +1,19 @@ - +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.nifi.processors.flume.util; import com.google.common.collect.Maps; @@ -56,7 +71,7 @@ public class FlowFileEvent implements Event { } headers.put(LINEAGE_START_DATE_HEADER, Long.toString(flowFile.getLineageStartDate())); headers.put(SIZE_HEADER, Long.toString(flowFile.getSize())); - + headersLoaded = true; } } @@ -83,7 +98,7 @@ public class FlowFileEvent implements Event { if (flowFile.getSize() > Integer.MAX_VALUE) { throw new RuntimeException("Can't get body of Event because the backing FlowFile is too large (" + flowFile.getSize() + " bytes)"); } - + final ByteArrayOutputStream baos = new ByteArrayOutputStream((int) flowFile.getSize()); session.read(flowFile, new InputStreamCallback() { diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java index c13f0ef6f2..c9650c1e87 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java @@ -1,4 +1,19 @@ - +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.apache.nifi.processors.flume.util; diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java deleted file mode 100644 index 87b056a86e..0000000000 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/AbstractFlumeTest.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.nifi.processors.flume; - -import org.junit.BeforeClass; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class AbstractFlumeTest { - - private static Logger logger; - - @BeforeClass - public static void setUpClass() { - System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info"); - System.setProperty("org.slf4j.simpleLogger.showDateTime", "true"); - System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.flume", "debug"); - logger = LoggerFactory.getLogger(AbstractFlumeTest.class); - } - -} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java index d22514f1f3..2e10c24a7d 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java @@ -19,9 +19,9 @@ package org.apache.nifi.processors.flume; import java.io.File; import static org.junit.Assert.assertEquals; -import java.io.FileInputStream; import java.io.FilenameFilter; import java.io.IOException; +import java.io.InputStream; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; @@ -39,15 +39,20 @@ import org.apache.nifi.util.TestRunners; import org.apache.nifi.util.file.FileUtils; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class FlumeSinkProcessorTest { - private static final Logger logger = - LoggerFactory.getLogger(FlumeSinkProcessorTest.class); - + private static final Logger logger = + LoggerFactory.getLogger(FlumeSinkProcessorTest.class); + + @Rule + public final TemporaryFolder temp = new TemporaryFolder(); + @Test public void testValidators() { TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); @@ -62,7 +67,7 @@ public class FlumeSinkProcessorTest { } Assert.assertEquals(1, results.size()); for (ValidationResult vr : results) { - logger.error(vr.toString()); + logger.debug(vr.toString()); Assert.assertTrue(vr.toString().contains("is invalid because Sink Type is required")); } @@ -76,7 +81,7 @@ public class FlumeSinkProcessorTest { } Assert.assertEquals(1, results.size()); for (ValidationResult vr : results) { - logger.error(vr.toString()); + logger.debug(vr.toString()); Assert.assertTrue(vr.toString().contains("is invalid because unable to load sink")); } @@ -90,7 +95,7 @@ public class FlumeSinkProcessorTest { } Assert.assertEquals(1, results.size()); for (ValidationResult vr : results) { - logger.error(vr.toString()); + logger.debug(vr.toString()); Assert.assertTrue(vr.toString().contains("is invalid because unable to create sink")); } @@ -109,12 +114,12 @@ public class FlumeSinkProcessorTest { public void testNullSink() throws IOException { TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); - FileInputStream fis = new FileInputStream("src/test/resources/testdata/records.txt"); - Map attributes = new HashMap<>(); - attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); - runner.enqueue(fis, attributes); - runner.run(); - fis.close(); + try (InputStream inputStream = getClass().getResourceAsStream("/testdata/records.txt")) { + Map attributes = new HashMap<>(); + attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); + runner.enqueue(inputStream, attributes); + runner.run(); + } } @Test @@ -129,15 +134,10 @@ public class FlumeSinkProcessorTest { } runner.run(); } - + @Test public void testHdfsSink() throws IOException { - File destDir = new File("target/hdfs"); - if (destDir.exists()) { - FileUtils.deleteFilesInDir(destDir, null, logger); - } else { - destDir.mkdirs(); - } + File destDir = temp.newFolder("hdfs"); TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); runner.setProperty(FlumeSinkProcessor.SINK_TYPE, "hdfs"); @@ -147,19 +147,22 @@ public class FlumeSinkProcessorTest { "tier1.sinks.sink-1.hdfs.serializer = TEXT\n" + "tier1.sinks.sink-1.serializer.appendNewline = false" ); - FileInputStream fis = new FileInputStream("src/test/resources/testdata/records.txt"); - Map attributes = new HashMap<>(); - attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); - runner.enqueue(fis, attributes); - runner.run(); - fis.close(); + try (InputStream inputStream = getClass().getResourceAsStream("/testdata/records.txt")) { + Map attributes = new HashMap<>(); + attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); + runner.enqueue(inputStream, attributes); + runner.run(); + } File[] files = destDir.listFiles((FilenameFilter)HiddenFileFilter.VISIBLE); assertEquals("Unexpected number of destination files.", 1, files.length); File dst = files[0]; - byte[] expectedMd5 = FileUtils.computeMd5Digest(new File("src/test/resources/testdata/records.txt")); + byte[] expectedMd5; + try (InputStream md5Stream = getClass().getResourceAsStream("/testdata/records.txt")) { + expectedMd5 = FileUtils.computeMd5Digest(md5Stream); + } byte[] actualMd5 = FileUtils.computeMd5Digest(dst); Assert.assertArrayEquals("Destination file doesn't match source data", expectedMd5, actualMd5); } - + } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java index bbcf116787..043e1154fb 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java @@ -34,15 +34,18 @@ import org.apache.nifi.util.TestRunners; import org.apache.nifi.util.file.FileUtils; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class FlumeSourceProcessorTest { - private static final Logger logger = - LoggerFactory.getLogger(FlumeSourceProcessorTest.class); + private static final Logger logger = LoggerFactory.getLogger(FlumeSourceProcessorTest.class); + @Rule + public final TemporaryFolder temp = new TemporaryFolder(); @Test public void testValidators() { @@ -58,7 +61,7 @@ public class FlumeSourceProcessorTest { } Assert.assertEquals(1, results.size()); for (ValidationResult vr : results) { - logger.error(vr.toString()); + logger.debug(vr.toString()); Assert.assertTrue(vr.toString().contains("is invalid because Source Type is required")); } @@ -72,7 +75,7 @@ public class FlumeSourceProcessorTest { } Assert.assertEquals(1, results.size()); for (ValidationResult vr : results) { - logger.error(vr.toString()); + logger.debug(vr.toString()); Assert.assertTrue(vr.toString().contains("is invalid because unable to load source")); } @@ -86,7 +89,7 @@ public class FlumeSourceProcessorTest { } Assert.assertEquals(1, results.size()); for (ValidationResult vr : results) { - logger.error(vr.toString()); + logger.debug(vr.toString()); Assert.assertTrue(vr.toString().contains("is invalid because unable to create source")); } @@ -108,22 +111,16 @@ public class FlumeSourceProcessorTest { List flowFiles = runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS); Assert.assertEquals(1, flowFiles.size()); for (MockFlowFile flowFile : flowFiles) { - logger.error(flowFile.toString()); + logger.debug(flowFile.toString()); Assert.assertEquals(1, flowFile.getSize()); } } @Test public void testSourceWithConfig() throws IOException { - File spoolDirectory = new File("target/spooldir"); - if (spoolDirectory.exists()) { - FileUtils.deleteFilesInDir(spoolDirectory, null, logger); - } else { - spoolDirectory.mkdirs(); - } - File src = new File("src/test/resources/testdata/records.txt"); + File spoolDirectory = temp.newFolder("spooldir"); File dst = new File(spoolDirectory, "records.txt"); - FileUtils.copyFile(src, dst, false, false, logger); + FileUtils.copyFile(getClass().getResourceAsStream("/testdata/records.txt"), dst, true, false); TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "spooldir"); diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml index 5e3b55cb0b..849854b77a 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml @@ -20,6 +20,11 @@ fs.defaultFS + file:/// diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties new file mode 100644 index 0000000000..8c502ec918 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties @@ -0,0 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +log4j.rootLogger=INFO, CONSOLE + +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender + +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties new file mode 100644 index 0000000000..4994e7f999 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties @@ -0,0 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +org.slf4j.simpleLogger.logFile=System.out +org.slf4j.simpleLogger.defaultLogLevel=info +org.slf4j.simpleLogger.showDateTime=true +org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss.SSS +org.slf4j.simpleLogger.levelInBrackets=true +org.slf4j.simpleLogger.log.org.apache.nifi.processors.flume=debug diff --git a/nifi/pom.xml b/nifi/pom.xml index 682a426aa5..3a5c6b78b0 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -805,6 +805,7 @@ nifi-geo-nar 0.2.0-incubating-SNAPSHOT nar + org.apache.nifi nifi-flume-nar From 419f9455a21eeb2b0bf6360204ee1175b62df805 Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Fri, 5 Jun 2015 15:32:16 -0700 Subject: [PATCH 11/77] NIFI-589: Set java.io.tmpdir to ${build.project.directory} This lets us use TemporaryDirectory and get the benefits of cleaning up temporary files using `mvn clean` Signed-off-by: Matt Gilman --- .../nifi-flume-bundle/nifi-flume-processors/pom.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index b903f21833..b0e730c4a6 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -136,6 +136,15 @@ + + org.apache.maven.plugins + maven-surefire-plugin + + + ${project.build.directory} + + + From 3af73c9b824f5131eac9ea37045daec88b33a293 Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Wed, 10 Jun 2015 12:49:50 -0700 Subject: [PATCH 12/77] Updated with Ryan's feedback: * Moved away from any reliance on MemoryChannels in favor of modeling the ProcessSession/Relationship as the channel directly in all cases. * Fixed version numbers in nifi-flume-* pom files. Signed-off-by: Matt Gilman --- .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 4 +- .../nifi-flume-processors/pom.xml | 2 +- .../flume/AbstractFlumeProcessor.java | 188 ++++++++++------- .../processors/flume/FlumeSinkProcessor.java | 69 +------ .../flume/FlumeSourceProcessor.java | 192 ++++++++++-------- ...fiChannel.java => NifiSessionChannel.java} | 30 +-- .../flume/NifiSessionFactoryChannel.java | 51 +++++ .../flume/NifiSinkSessionChannel.java | 49 +++++ .../processors/flume/NifiSinkTransaction.java | 71 +++++++ .../processors/flume/NifiTransaction.java | 45 ++-- .../flume/FlumeSinkProcessorTest.java | 3 +- .../flume/FlumeSourceProcessorTest.java | 9 +- .../src/test/resources/log4j.properties | 4 +- .../test/resources/simplelogger.properties | 1 + .../nifi-flume-bundle/pom.xml | 4 +- 15 files changed, 445 insertions(+), 277 deletions(-) rename nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/{NifiChannel.java => NifiSessionChannel.java} (66%) create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml index 36a5170e5e..c07cedf690 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -17,10 +17,10 @@ org.apache.nifi nifi-flume-bundle - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT nifi-flume-nar - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT nar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index b0e730c4a6..1dad25f6df 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-flume-bundle - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT nifi-flume-processors jar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java index a8310008dd..83ae9e1aeb 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java @@ -33,96 +33,128 @@ import org.apache.nifi.components.ValidationContext; import org.apache.nifi.components.ValidationResult; import org.apache.nifi.components.Validator; import org.apache.nifi.flowfile.FlowFile; -import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.AbstractSessionFactoryProcessor; +import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessSessionFactory; import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.exception.ProcessException; import org.apache.nifi.processor.io.OutputStreamCallback; import org.apache.nifi.processors.flume.util.FlowFileEvent; /** - * This is a base class that is helpful when building processors interacting - * with Flume. + * This is a base class that is helpful when building processors interacting with Flume. */ -public abstract class AbstractFlumeProcessor extends AbstractProcessor { - protected static final SourceFactory SOURCE_FACTORY = new DefaultSourceFactory(); - protected static final SinkFactory SINK_FACTORY = new DefaultSinkFactory(); +public abstract class AbstractFlumeProcessor extends AbstractSessionFactoryProcessor { - protected static Event flowFileToEvent(FlowFile flowFile, ProcessSession session) { - return new FlowFileEvent(flowFile, session); - } + protected static final SourceFactory SOURCE_FACTORY = new DefaultSourceFactory(); + protected static final SinkFactory SINK_FACTORY = new DefaultSinkFactory(); - protected static void transferEvent(final Event event, ProcessSession session, - Relationship relationship) { - FlowFile flowFile = session.create(); - flowFile = session.putAllAttributes(flowFile, event.getHeaders()); - - flowFile = session.write(flowFile, new OutputStreamCallback() { - @Override - public void process(final OutputStream out) throws IOException { - out.write(event.getBody()); - } - }); - - session.getProvenanceReporter().create(flowFile); - session.transfer(flowFile, relationship); - } - - protected static Validator createSourceValidator() { - return new Validator() { - @Override - public ValidationResult validate(final String subject, final String value, final ValidationContext context) { - String reason = null; - try { - FlumeSourceProcessor.SOURCE_FACTORY.create("NiFi Source", value); - } catch (Exception ex) { - reason = ex.getLocalizedMessage(); - reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); - } - return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); - } - }; - } - - protected static Validator createSinkValidator() { - return new Validator() { - @Override - public ValidationResult validate(final String subject, final String value, final ValidationContext context) { - String reason = null; - try { - FlumeSinkProcessor.SINK_FACTORY.create("NiFi Sink", value); - } catch (Exception ex) { - reason = ex.getLocalizedMessage(); - reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); - } - return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); - } - }; - } - - protected static Context getFlumeContext(String flumeConfig, String prefix) { - Properties flumeProperties = new Properties(); - if (flumeConfig != null) { - try { - flumeProperties.load(new StringReader(flumeConfig)); - } catch (IOException ex) { - throw new RuntimeException(ex); - } + protected static Event flowFileToEvent(FlowFile flowFile, ProcessSession session) { + return new FlowFileEvent(flowFile, session); } - Map parameters = Maps.newHashMap(); - for (String property : flumeProperties.stringPropertyNames()) { - parameters.put(property, flumeProperties.getProperty(property)); + + protected static void transferEvent(final Event event, ProcessSession session, + Relationship relationship) { + FlowFile flowFile = session.create(); + flowFile = session.putAllAttributes(flowFile, event.getHeaders()); + + flowFile = session.write(flowFile, new OutputStreamCallback() { + @Override + public void process(final OutputStream out) throws IOException { + out.write(event.getBody()); + } + }); + + session.getProvenanceReporter() + .create(flowFile); + session.transfer(flowFile, relationship); } - return new Context(new Context(parameters).getSubProperties(prefix)); - } - protected static Context getFlumeSourceContext(String flumeConfig, - String agentName, String sourceName) { - return getFlumeContext(flumeConfig, agentName + ".sources." + sourceName + "."); - } + protected static Validator createSourceValidator() { + return new Validator() { + @Override + public ValidationResult validate(final String subject, final String value, final ValidationContext context) { + String reason = null; + try { + FlumeSourceProcessor.SOURCE_FACTORY.create("NiFi Source", value); + } catch (Exception ex) { + reason = ex.getLocalizedMessage(); + reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); + } + return new ValidationResult.Builder().subject(subject) + .input(value) + .explanation(reason) + .valid(reason == null) + .build(); + } + }; + } - protected static Context getFlumeSinkContext(String flumeConfig, - String agentName, String sinkName) { - return getFlumeContext(flumeConfig, agentName + ".sinks." + sinkName + "."); - } + protected static Validator createSinkValidator() { + return new Validator() { + @Override + public ValidationResult validate(final String subject, final String value, final ValidationContext context) { + String reason = null; + try { + FlumeSinkProcessor.SINK_FACTORY.create("NiFi Sink", value); + } catch (Exception ex) { + reason = ex.getLocalizedMessage(); + reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); + } + return new ValidationResult.Builder().subject(subject) + .input(value) + .explanation(reason) + .valid(reason == null) + .build(); + } + }; + } + + protected static Context getFlumeContext(String flumeConfig, String prefix) { + Properties flumeProperties = new Properties(); + if (flumeConfig != null) { + try { + flumeProperties.load(new StringReader(flumeConfig)); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + } + Map parameters = Maps.newHashMap(); + for (String property : flumeProperties.stringPropertyNames()) { + parameters.put(property, flumeProperties.getProperty(property)); + } + return new Context(new Context(parameters).getSubProperties(prefix)); + } + + protected static Context getFlumeSourceContext(String flumeConfig, + String agentName, String sourceName) { + return getFlumeContext(flumeConfig, agentName + ".sources." + sourceName + "."); + } + + protected static Context getFlumeSinkContext(String flumeConfig, + String agentName, String sinkName) { + return getFlumeContext(flumeConfig, agentName + ".sinks." + sinkName + "."); + } + + /* + * Borrowed from AbstractProcessor. The FlumeSourceProcessor needs to implement this directly + * to handle event driven sources, but it's marked final in AbstractProcessor. + */ + @Override + public void onTrigger(final ProcessContext context, final ProcessSessionFactory sessionFactory) throws ProcessException { + final ProcessSession session = sessionFactory.createSession(); + try { + onTrigger(context, session); + session.commit(); + } catch (final Throwable t) { + getLogger() + .error("{} failed to process due to {}; rolling back session", new Object[]{this, t}); + session.rollback(true); + throw t; + } + } + + public abstract void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException; } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java index 0ffd4f1c27..e385921d04 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java @@ -19,16 +19,12 @@ package org.apache.nifi.processors.flume; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; import java.util.List; import java.util.Set; import org.apache.flume.Context; import org.apache.flume.EventDeliveryException; import org.apache.flume.Sink; -import org.apache.flume.Transaction; -import org.apache.flume.channel.MemoryChannel; import org.apache.flume.conf.Configurables; -import org.apache.jasper.compiler.JspUtil; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; @@ -36,7 +32,6 @@ import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.Validator; -import org.apache.nifi.flowfile.FlowFile; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.ProcessorInitializationContext; @@ -44,18 +39,14 @@ import org.apache.nifi.processor.Relationship; import org.apache.nifi.processor.SchedulingContext; import org.apache.nifi.processor.exception.ProcessException; import org.apache.nifi.processor.util.StandardValidators; -import org.apache.nifi.processors.flume.util.FlowFileEvent; /** * This processor runs a Flume sink */ @Tags({"flume", "hadoop", "get", "sink"}) -@CapabilityDescription("Generate FlowFile data from a Flume sink") +@CapabilityDescription("Write FlowFile data to a Flume sink") public class FlumeSinkProcessor extends AbstractFlumeProcessor { - private Sink sink; - private MemoryChannel channel; - public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() .name("Sink Type") .description("The fully-qualified name of the Sink class") @@ -83,24 +74,19 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { .defaultValue("") .addValidator(Validator.VALID) .build(); - public static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder() - .name("Batch Size") - .description("The number of FlowFiles to process in a single batch") - .required(true) - .defaultValue("100") - .addValidator(StandardValidators.INTEGER_VALIDATOR) - .build(); public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); public static final Relationship FAILURE = new Relationship.Builder().name("failure").build(); private List descriptors; private Set relationships; - private int batchSize; + + private volatile Sink sink; + private volatile NifiSinkSessionChannel channel; @Override protected void init(final ProcessorInitializationContext context) { - this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG, BATCH_SIZE); + this.descriptors = ImmutableList.of(SINK_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); this.relationships = ImmutableSet.of(SUCCESS, FAILURE); } @@ -116,14 +102,9 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { @OnScheduled public void onScheduled(final SchedulingContext context) { - batchSize = context.getProperty(BATCH_SIZE).asInteger(); - try { - channel = new MemoryChannel(); - Context memoryChannelContext = new Context(); - memoryChannelContext.put("capacity", String.valueOf(batchSize*10)); - memoryChannelContext.put("transactionCapacity", String.valueOf(batchSize*10)); - Configurables.configure(channel, memoryChannelContext); + channel = new NifiSinkSessionChannel(SUCCESS, FAILURE); + Configurables.configure(channel, new Context()); channel.start(); sink = SINK_FACTORY.create(context.getProperty(SOURCE_NAME).getValue(), @@ -152,42 +133,14 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { @Override public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { - List flowFiles = Lists.newArrayListWithExpectedSize(batchSize); - for (int i = 0; i < batchSize; i++) { - FlowFile flowFile = session.get(); - if (flowFile == null) { - break; - } - flowFiles.add(flowFile); - } - - Transaction transaction = channel.getTransaction(); + channel.setSession(session); try { - transaction.begin(); - for (FlowFile flowFile : flowFiles) { - channel.put(new FlowFileEvent(flowFile, session)); - } - transaction.commit(); - } catch (Throwable th) { - transaction.rollback(); - throw Throwables.propagate(th); - } finally { - transaction.close(); - } - - try { - Sink.Status status; - do { - status = sink.process(); - } while(status == Sink.Status.READY); - for (FlowFile flowFile : flowFiles) { - session.transfer(flowFile, SUCCESS); + if (sink.process() == Sink.Status.BACKOFF) { + context.yield(); } } catch (EventDeliveryException ex) { - for (FlowFile flowFile : flowFiles) { - session.transfer(flowFile, FAILURE); - } + throw new ProcessException("Flume event delivery failed", ex); } } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java index 19551e68f0..3ded2085b3 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java @@ -21,27 +21,25 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.util.List; import java.util.Set; -import org.apache.flume.Context; -import org.apache.flume.Event; +import java.util.concurrent.atomic.AtomicReference; import org.apache.flume.EventDeliveryException; import org.apache.flume.EventDrivenSource; import org.apache.flume.PollableSource; import org.apache.flume.Source; -import org.apache.flume.SourceRunner; -import org.apache.flume.Transaction; import org.apache.flume.channel.ChannelProcessor; -import org.apache.flume.channel.MemoryChannel; import org.apache.flume.conf.Configurables; import org.apache.flume.source.EventDrivenSourceRunner; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnStopped; import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.Validator; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.ProcessSessionFactory; import org.apache.nifi.processor.ProcessorInitializationContext; import org.apache.nifi.processor.Relationship; import org.apache.nifi.processor.SchedulingContext; @@ -55,43 +53,48 @@ import org.apache.nifi.processor.util.StandardValidators; @CapabilityDescription("Generate FlowFile data from a Flume source") public class FlumeSourceProcessor extends AbstractFlumeProcessor { - private Source source; - private SourceRunner runner; - private MemoryChannel channel; - public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() - .name("Source Type") - .description("The fully-qualified name of the Source class") - .required(true) - .addValidator(createSourceValidator()) - .build(); + .name("Source Type") + .description("The fully-qualified name of the Source class") + .required(true) + .addValidator(createSourceValidator()) + .build(); public static final PropertyDescriptor AGENT_NAME = new PropertyDescriptor.Builder() - .name("Agent Name") - .description("The name of the agent used in the Flume source configuration") - .required(true) - .defaultValue("tier1") - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); + .name("Agent Name") + .description("The name of the agent used in the Flume source configuration") + .required(true) + .defaultValue("tier1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); public static final PropertyDescriptor SOURCE_NAME = new PropertyDescriptor.Builder() - .name("Source Name") - .description("The name of the source used in the Flume source configuration") - .required(true) - .defaultValue("src-1") - .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) - .build(); + .name("Source Name") + .description("The name of the source used in the Flume source configuration") + .required(true) + .defaultValue("src-1") + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); public static final PropertyDescriptor FLUME_CONFIG = new PropertyDescriptor.Builder() - .name("Flume Configuration") - .description("The Flume configuration for the source copied from the flume.properties file") - .required(true) - .defaultValue("") - .addValidator(Validator.VALID) - .build(); + .name("Flume Configuration") + .description("The Flume configuration for the source copied from the flume.properties file") + .required(true) + .defaultValue("") + .addValidator(Validator.VALID) + .build(); - public static final Relationship SUCCESS = new Relationship.Builder().name("success").build(); + public static final Relationship SUCCESS = new Relationship.Builder().name("success") + .build(); private List descriptors; private Set relationships; + private volatile Source source; + + private final NifiSessionChannel pollableSourceChannel = new NifiSessionChannel(SUCCESS); + private final AtomicReference sessionFactoryRef = new AtomicReference<>(null); + private final AtomicReference runnerRef = new AtomicReference<>(null); + private final AtomicReference eventDrivenSourceChannelRef = new AtomicReference<>(null); + private final AtomicReference stopping = new AtomicReference<>(false); + @Override protected void init(final ProcessorInitializationContext context) { this.descriptors = ImmutableList.of(SOURCE_TYPE, AGENT_NAME, SOURCE_NAME, FLUME_CONFIG); @@ -111,81 +114,90 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { @OnScheduled public void onScheduled(final SchedulingContext context) { try { + stopping.set(false); source = SOURCE_FACTORY.create( - context.getProperty(SOURCE_NAME).getValue(), - context.getProperty(SOURCE_TYPE).getValue()); + context.getProperty(SOURCE_NAME) + .getValue(), + context.getProperty(SOURCE_TYPE) + .getValue()); - String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); - String agentName = context.getProperty(AGENT_NAME).getValue(); - String sourceName = context.getProperty(SOURCE_NAME).getValue(); + String flumeConfig = context.getProperty(FLUME_CONFIG) + .getValue(); + String agentName = context.getProperty(AGENT_NAME) + .getValue(); + String sourceName = context.getProperty(SOURCE_NAME) + .getValue(); Configurables.configure(source, - getFlumeSourceContext(flumeConfig, agentName, sourceName)); + getFlumeSourceContext(flumeConfig, agentName, sourceName)); - if (source instanceof EventDrivenSource) { - runner = new EventDrivenSourceRunner(); - channel = new MemoryChannel(); - Configurables.configure(channel, new Context()); - channel.start(); - source.setChannelProcessor(new ChannelProcessor(new NifiChannelSelector(channel))); - runner.setSource(source); - runner.start(); + if (source instanceof PollableSource) { + source.setChannelProcessor(new ChannelProcessor( + new NifiChannelSelector(pollableSourceChannel))); + source.start(); } } catch (Throwable th) { - getLogger().error("Error creating source", th); + getLogger() + .error("Error creating source", th); throw Throwables.propagate(th); } } @OnUnscheduled public void unScheduled() { - if (runner != null) { - runner.stop(); + stopping.set(true); + if (source instanceof PollableSource) { + source.stop(); + } else { + EventDrivenSourceRunner runner = runnerRef.get(); + if (runner != null) { + runner.stop(); + runnerRef.compareAndSet(runner, null); + } + + NifiSessionFactoryChannel eventDrivenSourceChannel = eventDrivenSourceChannelRef.get(); + if (eventDrivenSourceChannel != null) { + eventDrivenSourceChannel.stop(); + eventDrivenSourceChannelRef.compareAndSet(eventDrivenSourceChannel, null); + } } - if (channel != null) { - channel.stop(); + } + + @OnStopped + public void stopped() { + sessionFactoryRef.set(null); + } + + @Override + public void onTrigger(ProcessContext context, ProcessSessionFactory sessionFactory) throws ProcessException { + if (source instanceof PollableSource) { + super.onTrigger(context, sessionFactory); + } else if (source instanceof EventDrivenSource) { + ProcessSessionFactory old = sessionFactoryRef.getAndSet(sessionFactory); + if (old == null) { + runnerRef.set(new EventDrivenSourceRunner()); + eventDrivenSourceChannelRef.set(new NifiSessionFactoryChannel(sessionFactoryRef.get(), SUCCESS)); + eventDrivenSourceChannelRef.get() + .start(); + source.setChannelProcessor(new ChannelProcessor(new NifiChannelSelector( + eventDrivenSourceChannelRef.get()))); + runnerRef.get() + .setSource(source); + runnerRef.get() + .start(); + } } } @Override - public void onTrigger(final ProcessContext context, - final ProcessSession session) throws ProcessException { - if (source instanceof EventDrivenSource) { - onEventDrivenTrigger(context, session); - } else if (source instanceof PollableSource) { - onPollableTrigger((PollableSource) source, context, session); - } - } - - public void onPollableTrigger(final PollableSource pollableSource, - final ProcessContext context, final ProcessSession session) - throws ProcessException { - try { - pollableSource.setChannelProcessor(new ChannelProcessor( - new NifiChannelSelector(new NifiChannel(session, SUCCESS)))); - pollableSource.start(); - pollableSource.process(); - pollableSource.stop(); - } catch (EventDeliveryException ex) { - throw new ProcessException("Error processing pollable source", ex); - } - } - - public void onEventDrivenTrigger(final ProcessContext context, final ProcessSession session) { - Transaction transaction = channel.getTransaction(); - transaction.begin(); - - try { - Event event = channel.take(); - if (event != null) { - transferEvent(event, session, SUCCESS); + public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { + if (source instanceof PollableSource) { + PollableSource pollableSource = (PollableSource) source; + try { + pollableSourceChannel.setSession(session); + pollableSource.process(); + } catch (EventDeliveryException ex) { + throw new ProcessException("Error processing pollable source", ex); } - transaction.commit(); - } catch (Throwable th) { - transaction.rollback(); - throw Throwables.propagate(th); - } finally { - transaction.close(); } } - } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java similarity index 66% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java rename to nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java index c4d3bef4d0..4c111af6b8 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannel.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java @@ -22,24 +22,26 @@ import org.apache.flume.channel.BasicTransactionSemantics; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.Relationship; +public class NifiSessionChannel extends BasicChannelSemantics { -public class NifiChannel extends BasicChannelSemantics { - private final ProcessSession session; - private final Relationship relationship; + private ProcessSession session; + private final Relationship relationship; - public NifiChannel(ProcessSession session, Relationship relationship) { - this.session = session; - this.relationship = relationship; - } + public NifiSessionChannel(Relationship relationship) { + this.relationship = relationship; + } - @Override - protected BasicTransactionSemantics createTransaction() { - return new NifiTransaction(session, relationship); - } + public void setSession(ProcessSession session) { + this.session = session; + } - @Override - public void configure(Context context) { - } + @Override + protected BasicTransactionSemantics createTransaction() { + return new NifiTransaction(session, relationship); + } + @Override + public void configure(Context context) { + } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java new file mode 100644 index 0000000000..bc565878ba --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import org.apache.flume.ChannelFullException; +import org.apache.flume.Context; +import org.apache.flume.channel.BasicChannelSemantics; +import org.apache.flume.channel.BasicTransactionSemantics; +import org.apache.flume.lifecycle.LifecycleState; +import org.apache.nifi.processor.ProcessSessionFactory; +import org.apache.nifi.processor.Relationship; + +public class NifiSessionFactoryChannel extends BasicChannelSemantics { + + private final ProcessSessionFactory sessionFactory; + private final Relationship relationship; + + public NifiSessionFactoryChannel(ProcessSessionFactory sessionFactory, Relationship relationship) { + this.sessionFactory = sessionFactory; + this.relationship = relationship; + } + + @Override + protected BasicTransactionSemantics createTransaction() { + LifecycleState lifecycleState = getLifecycleState(); + if (lifecycleState == LifecycleState.STOP) { + throw new ChannelFullException("Can't write to a stopped channel"); + //return null; + } + return new NifiTransaction(sessionFactory.createSession(), relationship); + } + + @Override + public void configure(Context context) { + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java new file mode 100644 index 0000000000..5621b6dd1d --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import org.apache.flume.Context; +import org.apache.flume.channel.BasicChannelSemantics; +import org.apache.flume.channel.BasicTransactionSemantics; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; + +public class NifiSinkSessionChannel extends BasicChannelSemantics { + + private ProcessSession session; + private final Relationship success; + private final Relationship failure; + + public NifiSinkSessionChannel(Relationship success, Relationship failure) { + this.success = success; + this.failure = failure; + } + + public void setSession(ProcessSession session) { + this.session = session; + } + + @Override + protected BasicTransactionSemantics createTransaction() { + return new NifiSinkTransaction(session, success, failure); + } + + @Override + public void configure(Context context) { + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java new file mode 100644 index 0000000000..837652f145 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.processors.flume; + +import java.util.ArrayList; +import java.util.List; +import org.apache.flume.Event; +import org.apache.flume.channel.BasicTransactionSemantics; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processors.flume.util.FlowFileEvent; + + +class NifiSinkTransaction extends BasicTransactionSemantics { + private final ProcessSession session; + private final Relationship success; + private final Relationship failure; + private final List flowFiles; + + public NifiSinkTransaction(ProcessSession session, Relationship success, Relationship failure) { + this.session = session; + this.success = success; + this.failure = failure; + this.flowFiles = new ArrayList<>(); + } + + @Override + protected void doPut(Event event) throws InterruptedException { + AbstractFlumeProcessor.transferEvent(event, session, success); + } + + @Override + protected Event doTake() throws InterruptedException { + FlowFile flowFile = session.get(); + if (flowFile == null) { + return null; + } + flowFiles.add(flowFile); + + return new FlowFileEvent(flowFile, session); + } + + @Override + protected void doCommit() throws InterruptedException { + session.transfer(flowFiles, success); + session.commit(); + } + + @Override + protected void doRollback() throws InterruptedException { + session.transfer(flowFiles, failure); + session.commit(); + } + + +} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java index 37c8a50902..8de50ec963 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java @@ -21,35 +21,34 @@ import org.apache.flume.channel.BasicTransactionSemantics; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.Relationship; - class NifiTransaction extends BasicTransactionSemantics { - private final ProcessSession session; - private final Relationship relationship; - public NifiTransaction(ProcessSession session, Relationship relationship) { - this.session = session; - this.relationship = relationship; - } + private final ProcessSession session; + private final Relationship relationship; - @Override - protected void doPut(Event event) throws InterruptedException { - AbstractFlumeProcessor.transferEvent(event, session, relationship); - } + public NifiTransaction(ProcessSession session, Relationship relationship) { + this.session = session; + this.relationship = relationship; + } - @Override - protected Event doTake() throws InterruptedException { - throw new UnsupportedOperationException("Only put supported"); - } + @Override + protected void doPut(Event event) throws InterruptedException { + AbstractFlumeProcessor.transferEvent(event, session, relationship); + } - @Override - protected void doCommit() throws InterruptedException { - session.commit(); - } + @Override + protected Event doTake() throws InterruptedException { + throw new UnsupportedOperationException("Only put supported"); + } - @Override - protected void doRollback() throws InterruptedException { - session.rollback(); - } + @Override + protected void doCommit() throws InterruptedException { + session.commit(); + } + @Override + protected void doRollback() throws InterruptedException { + session.rollback(); + } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java index 2e10c24a7d..0654138cfd 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java @@ -126,13 +126,12 @@ public class FlumeSinkProcessorTest { public void testBatchSize() throws IOException { TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); - runner.setProperty(FlumeSinkProcessor.BATCH_SIZE, "1000"); runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, "tier1.sinks.sink-1.batchSize = 1000\n"); for (int i = 0; i < 100000; i++) { runner.enqueue(String.valueOf(i).getBytes()); } - runner.run(); + runner.run(100); } @Test diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java index 043e1154fb..32feb1e28a 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java @@ -127,11 +127,8 @@ public class FlumeSourceProcessorTest { runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, "tier1.sources.src-1.spoolDir = " + spoolDirectory.getAbsolutePath()); runner.run(); - List flowFiles = runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS); - Assert.assertEquals(1, flowFiles.size()); - for (MockFlowFile flowFile : flowFiles) { - Assert.assertEquals(8, flowFile.getSize()); - flowFile.assertContentEquals("record 1"); - } + // No data will be transfered because of how quickly the test runner + // starts shutting down + runner.assertTransferCount(FlumeSourceProcessor.SUCCESS, 0); } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties index 8c502ec918..cc58727fa0 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties @@ -17,4 +17,6 @@ log4j.rootLogger=INFO, CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n \ No newline at end of file +log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x \u2013 %m%n + +log4j.logger.org.apache.flume = DEBUG \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties index 4994e7f999..e3d4fc1bdf 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties @@ -18,3 +18,4 @@ org.slf4j.simpleLogger.showDateTime=true org.slf4j.simpleLogger.dateTimeFormat=yyyy-MM-dd HH:mm:ss.SSS org.slf4j.simpleLogger.levelInBrackets=true org.slf4j.simpleLogger.log.org.apache.nifi.processors.flume=debug +org.slf4j.simpleLogger.log.org.apache.flume=debug diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml index 50b0fde3a9..a2742aa3a1 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -17,10 +17,10 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT nifi-flume-bundle - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT pom A bundle of processors that run Flume sources/sinks From c4dd1e65b1be905dc712f1907ff1156e60d02a79 Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Wed, 10 Jun 2015 14:18:42 -0700 Subject: [PATCH 13/77] Moved the source/sink stoppign to @OnStopped methods * Made the spoolDirectory test stronger Signed-off-by: Matt Gilman --- .../processors/flume/FlumeSinkProcessor.java | 9 +++---- .../flume/FlumeSourceProcessor.java | 25 ++++++------------- .../flume/FlumeSourceProcessorTest.java | 24 +++++++++++++++--- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java index e385921d04..9ec1b071a3 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java @@ -28,7 +28,7 @@ import org.apache.flume.conf.Configurables; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; -import org.apache.nifi.annotation.lifecycle.OnUnscheduled; +import org.apache.nifi.annotation.lifecycle.OnStopped; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.Validator; @@ -124,15 +124,14 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { } } - @OnUnscheduled - public void unScheduled() { + @OnStopped + public void stopped() { sink.stop(); channel.stop(); } @Override - public void onTrigger(final ProcessContext context, - final ProcessSession session) throws ProcessException { + public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { channel.setSession(session); try { diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java index 3ded2085b3..1ebf05cfa9 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java @@ -33,7 +33,6 @@ import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; import org.apache.nifi.annotation.lifecycle.OnStopped; -import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.Validator; @@ -93,7 +92,6 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { private final AtomicReference sessionFactoryRef = new AtomicReference<>(null); private final AtomicReference runnerRef = new AtomicReference<>(null); private final AtomicReference eventDrivenSourceChannelRef = new AtomicReference<>(null); - private final AtomicReference stopping = new AtomicReference<>(false); @Override protected void init(final ProcessorInitializationContext context) { @@ -114,7 +112,6 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { @OnScheduled public void onScheduled(final SchedulingContext context) { try { - stopping.set(false); source = SOURCE_FACTORY.create( context.getProperty(SOURCE_NAME) .getValue(), @@ -142,9 +139,8 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { } } - @OnUnscheduled - public void unScheduled() { - stopping.set(true); + @OnStopped + public void stopped() { if (source instanceof PollableSource) { source.stop(); } else { @@ -160,10 +156,6 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { eventDrivenSourceChannelRef.compareAndSet(eventDrivenSourceChannel, null); } } - } - - @OnStopped - public void stopped() { sessionFactoryRef.set(null); } @@ -176,14 +168,11 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { if (old == null) { runnerRef.set(new EventDrivenSourceRunner()); eventDrivenSourceChannelRef.set(new NifiSessionFactoryChannel(sessionFactoryRef.get(), SUCCESS)); - eventDrivenSourceChannelRef.get() - .start(); - source.setChannelProcessor(new ChannelProcessor(new NifiChannelSelector( - eventDrivenSourceChannelRef.get()))); - runnerRef.get() - .setSource(source); - runnerRef.get() - .start(); + eventDrivenSourceChannelRef.get().start(); + source.setChannelProcessor(new ChannelProcessor( + new NifiChannelSelector(eventDrivenSourceChannelRef.get()))); + runnerRef.get().setSource(source); + runnerRef.get().start(); } } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java index 32feb1e28a..bf32095f7b 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.util.Collection; import java.util.HashSet; import java.util.List; +import java.util.concurrent.TimeUnit; import org.apache.flume.sink.NullSink; import org.apache.flume.source.AvroSource; @@ -126,9 +127,24 @@ public class FlumeSourceProcessorTest { runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "spooldir"); runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, "tier1.sources.src-1.spoolDir = " + spoolDirectory.getAbsolutePath()); - runner.run(); - // No data will be transfered because of how quickly the test runner - // starts shutting down - runner.assertTransferCount(FlumeSourceProcessor.SUCCESS, 0); + runner.run(1, false, true); + // Because the spool directory source is an event driven source, it may take some time for flow files to get + // produced. I'm willing to wait up to 5 seconds, but will bail out early if possible. If it takes longer than + // that then there is likely a bug. + int numWaits = 10; + while (runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS).size() < 4 && --numWaits > 0) { + try { + TimeUnit.MILLISECONDS.sleep(500); + } catch (InterruptedException ex) { + logger.warn("Sleep interrupted"); + } + } + runner.shutdown(); + runner.assertTransferCount(FlumeSourceProcessor.SUCCESS, 4); + int i = 1; + for (MockFlowFile flowFile : runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS)) { + flowFile.assertContentEquals("record " + i); + i++; + } } } From 16134a2dfedf2f05f7d798082bfd86a5a13bda5a Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Wed, 10 Jun 2015 15:08:03 -0700 Subject: [PATCH 14/77] More review feedback from Ryan: * Removed unnecessary call to configure our channel * Removed call to context.yield() when Flume reports a backoff * Handled the session factory changing when using a event driven source. Signed-off-by: Matt Gilman --- .../apache/nifi/processors/flume/FlumeSinkProcessor.java | 5 +---- .../apache/nifi/processors/flume/FlumeSourceProcessor.java | 6 +++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java index 9ec1b071a3..2d8506d578 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java @@ -104,7 +104,6 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { public void onScheduled(final SchedulingContext context) { try { channel = new NifiSinkSessionChannel(SUCCESS, FAILURE); - Configurables.configure(channel, new Context()); channel.start(); sink = SINK_FACTORY.create(context.getProperty(SOURCE_NAME).getValue(), @@ -135,9 +134,7 @@ public class FlumeSinkProcessor extends AbstractFlumeProcessor { channel.setSession(session); try { - if (sink.process() == Sink.Status.BACKOFF) { - context.yield(); - } + sink.process(); } catch (EventDeliveryException ex) { throw new ProcessException("Flume event delivery failed", ex); } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java index 1ebf05cfa9..55b1f2f8ec 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java @@ -165,7 +165,11 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { super.onTrigger(context, sessionFactory); } else if (source instanceof EventDrivenSource) { ProcessSessionFactory old = sessionFactoryRef.getAndSet(sessionFactory); - if (old == null) { + if (old != sessionFactory) { + if (runnerRef.get() != null) { + stopped(); + } + runnerRef.set(new EventDrivenSourceRunner()); eventDrivenSourceChannelRef.set(new NifiSessionFactoryChannel(sessionFactoryRef.get(), SUCCESS)); eventDrivenSourceChannelRef.get().start(); From 286e4738b8bea6e8a386b630822a897ca07410d2 Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Sun, 12 Jul 2015 13:33:09 -0700 Subject: [PATCH 15/77] Implemented Joe's review feedback: * Renamed processors to ExecuteFlume* * Added a LICENSE and NOTICE file to the nar * Fixed the version number inconsistency in the POMs Signed-off-by: Matt Gilman --- .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 95 ++++++ .../src/main/resources/META-INF/LICENSE | 319 ++++++++++++++++++ .../src/main/resources/META-INF/NOTICE | 145 ++++++++ .../nifi-flume-processors/pom.xml | 54 ++- .../flume/AbstractFlumeProcessor.java | 4 +- ...nkProcessor.java => ExecuteFlumeSink.java} | 4 +- ...Processor.java => ExecuteFlumeSource.java} | 24 +- .../flume/NifiSessionFactoryChannel.java | 1 - .../processors/flume/util/FlowFileEvent.java | 9 +- ...sorTest.java => ExecuteFlumeSinkTest.java} | 28 +- ...rTest.java => ExecuteFlumeSourceTest.java} | 30 +- .../nifi-flume-bundle/pom.xml | 2 +- nifi/pom.xml | 10 +- 13 files changed, 657 insertions(+), 68 deletions(-) create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE rename nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/{FlumeSinkProcessor.java => ExecuteFlumeSink.java} (97%) rename nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/{FlumeSourceProcessor.java => ExecuteFlumeSource.java} (93%) rename nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/{FlumeSinkProcessorTest.java => ExecuteFlumeSinkTest.java} (84%) rename nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/{FlumeSourceProcessorTest.java => ExecuteFlumeSourceTest.java} (82%) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml index c07cedf690..a9bbe6f911 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -26,6 +26,101 @@ org.apache.nifi nifi-flume-processors + + + + org.apache.hadoop + hadoop-client + + + org.xerial.snappy + snappy-java + + + com.thoughtworks.paranamer + paranamer + + + org.codehaus.jackson + jackson-mapper-asl + + + org.codehaus.jackson + jackson-core-asl + + + com.google.guava + guava + + + com.google.guava + guava + + + commons-logging + commons-logging + + + org.apache.commons + commons-compress + + + commons-codec + commons-codec + + + org.apache.avro + avro + + + org.apache.zookeeper + zookeeper + + + commons-lang + commons-lang + + + commons-cli + commons-cli + + + commons-collections + commons-collections + + + commons-io + commons-io + + + com.google.code.gson + gson + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpcore + + + org.mortbay.jetty + jetty + + + org.mortbay.jetty + jetty-util + + + log4j + log4j + + + com.google.protobuf + protobuf-java + + org.apache.nifi diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE new file mode 100644 index 0000000000..c1a3ec4fd2 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE @@ -0,0 +1,319 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +APACHE NIFI SUBCOMPONENTS: + +The Apache NiFi project contains subcomponents with separate copyright +notices and license terms. Your use of the source code for the these +subcomponents is subject to the terms and conditions of the following +licenses. + +The binary distribution of this product bundles 'SUAsync Library' which is +available under a 3-Clause BSD License. + + Copyright (c) 2010 StumbleUpon, Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the StumbleUpon nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +The binary distribution of this product bundles 'Asynchronous HBase Client' +which is available under a 3-Clause BSD License. + + Copyright (C) 2010-2012 The Async HBase Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the StumbleUpon nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +The binary distribution of this product bundles 'JOpt Simple' which is +available under the MIT license. + + The MIT License + + Copyright (c) 2004-2011 Paul R. Holser, Jr. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +The binary distribution of this product bundles 'Scala Library' under a BSD +style license. + + Copyright (c) 2002-2015 EPFL + Copyright (c) 2011-2015 Typesafe, Inc. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + Neither the name of the EPFL nor the names of its contributors may be used to endorse + or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS + OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE new file mode 100644 index 0000000000..793746f194 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE @@ -0,0 +1,145 @@ +nifi-social-media-nar +Copyright 2015 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). + +****************** +Apache Software License v2 +****************** + +The following binary components are provided under the Apache Software License v2 + + (ASLv2) Apache Avro + The following NOTICE information applies: + Apache Avro + Copyright 2009-2012 The Apache Software Foundation + + (ASLv2) Apache Commons JEXL + The following NOTICE information applies: + Apache Commons JEXL + Copyright 2001-2011 The Apache Software Foundation + + (ASLv2) Apache Commons Lang + The following NOTICE information applies: + Apache Commons Lang + Copyright 2001-2015 The Apache Software Foundation + + This product includes software from the Spring Framework, + under the Apache License 2.0 (see: StringUtils.containsWhitespace()) + + (ASLv2) Apache Flume + The following NOTICE information applies: + Apache Flume + Copyright 2011-2015 Apache Software Foundation + + (ASLv2) IRClib + The following NOTICE information applies: + IRClib -- A Java Internet Relay Chat library -- + Copyright (C) 2002 - 2006 Christoph Schwering + + (ASLv2) Jackson JSON processor + The following NOTICE information applies: + # Jackson JSON processor + + Jackson is a high-performance, Free/Open Source JSON processing library. + It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has + been in development since 2007. + It is currently developed by a community of developers, as well as supported + commercially by FasterXML.com. + + ## Licensing + + Jackson core and extension components may licensed under different licenses. + To find the details that apply to this artifact see the accompanying LICENSE file. + For more information, including possible other licensing options, contact + FasterXML.com (http://fasterxml.com). + + ## Credits + + A list of contributors may be found from CREDITS file, which is included + in some artifacts (usually source distributions); but is always available + from the source code management (SCM) system project uses. + + (ASLv2) Joda-Time + The following NOTICE information applies: + ============================================================================= + = NOTICE file corresponding to section 4d of the Apache License Version 2.0 = + ============================================================================= + This product includes software developed by + Joda.org (http://www.joda.org/). + + (ASLv2) Apache Kafka + The following NOTICE information applies: + Apache Kafka + Copyright 2012 The Apache Software Foundation. + + (ASLv2) Kite SDK + The following NOTICE information applies: + This product includes software developed by Cloudera, Inc. + (http://www.cloudera.com/). + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + This product includes software developed by + Saxonica (http://www.saxonica.com/). + + (ASLv2) Apache Thrift + The following NOTICE information applies: + Apache Thrift + Copyright 2006-2010 The Apache Software Foundation. + + (ASLv2) Yammer Metrics + The following NOTICE information applies: + Metrics + Copyright 2010-2012 Coda Hale and Yammer, Inc. + + This product includes software developed by Coda Hale and Yammer, Inc. + + This product includes code derived from the JSR-166 project (ThreadLocalRandom), which was released + with the following comments: + + Written by Doug Lea with assistance from members of JCP JSR-166 + Expert Group and released to the public domain, as explained at + http://creativecommons.org/publicdomain/zero/1.0/ + + (ASLv2) Apache MINA + The following NOTICE information applies: + Apache MINA Core + Copyright 2004-2011 Apache MINA Project + + (ASLv2) The Netty Project + The following NOTICE information applies: + The Netty Project + Copyright 2011 The Netty Project + + (ASLv2) opencsv (net.sf.opencsv:opencsv:2.3) + + (ASLv2) Parquet MR + The following NOTICE information applies: + Parquet MR + Copyright 2012 Twitter, Inc. + + This project includes code from https://github.com/lemire/JavaFastPFOR + parquet-column/src/main/java/parquet/column/values/bitpacking/LemireBitPacking.java + Apache License Version 2.0 http://www.apache.org/licenses/. + (c) Daniel Lemire, http://lemire.me/en/ + + (ASLv2) Servlet Specification API (org.mortbay.jetty:servlet-api:2.5-20110124) + + (ASLv2) Twitter4J + The following NOTICE information applies: + Copyright 2007 Yusuke Yamamoto + + Twitter4J includes software from JSON.org to parse JSON response from the Twitter API. You can see the license term at http://www.JSON.org/license.html + + (ASLv2) Apache Velocity + The following NOTICE information applies: + Apache Velocity + Copyright (C) 2000-2007 The Apache Software Foundation + + (ASLv2) ZkClient + The following NOTICE information applies: + ZkClient + Copyright 2009 Stefan Groschupf \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index 1dad25f6df..167aa6e943 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -21,6 +21,11 @@ nifi-flume-processors jar + + + 1.6.0 + + org.apache.nifi @@ -41,12 +46,12 @@ org.apache.flume flume-ng-sdk - 1.5.2 + ${flume.version} org.apache.flume flume-ng-core - 1.5.2 + ${flume.version} org.slf4j @@ -56,27 +61,38 @@ - - org.apache.flume.flume-ng-sources - flume-twitter-source - 1.5.2 - + org.apache.flume.flume-ng-sources flume-jms-source - 1.5.2 + ${flume.version} + + + org.apache.flume.flume-ng-sources + flume-kafka-source + ${flume.version} org.apache.flume.flume-ng-sources flume-scribe-source - 1.5.2 + ${flume.version} + + + org.apache.flume.flume-ng-sources + flume-twitter-source + ${flume.version} + + org.apache.flume.flume-ng-sinks + flume-dataset-sink + ${flume.version} + org.apache.flume.flume-ng-sinks flume-hdfs-sink - 1.5.2 + ${flume.version} @@ -97,25 +113,35 @@ provided + + org.apache.flume.flume-ng-sinks + flume-hive-sink + ${flume.version} + org.apache.flume.flume-ng-sinks flume-irc-sink - 1.5.2 + ${flume.version} org.apache.flume.flume-ng-sinks flume-ng-elasticsearch-sink - 1.5.2 + ${flume.version} org.apache.flume.flume-ng-sinks flume-ng-hbase-sink - 1.5.2 + ${flume.version} + + + org.apache.flume.flume-ng-sinks + flume-ng-kafka-sink + ${flume.version} org.apache.flume.flume-ng-sinks flume-ng-morphline-solr-sink - 1.5.2 + ${flume.version} diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java index 83ae9e1aeb..9b75047a1e 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java @@ -77,7 +77,7 @@ public abstract class AbstractFlumeProcessor extends AbstractSessionFactoryProce public ValidationResult validate(final String subject, final String value, final ValidationContext context) { String reason = null; try { - FlumeSourceProcessor.SOURCE_FACTORY.create("NiFi Source", value); + ExecuteFlumeSource.SOURCE_FACTORY.create("NiFi Source", value); } catch (Exception ex) { reason = ex.getLocalizedMessage(); reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); @@ -97,7 +97,7 @@ public abstract class AbstractFlumeProcessor extends AbstractSessionFactoryProce public ValidationResult validate(final String subject, final String value, final ValidationContext context) { String reason = null; try { - FlumeSinkProcessor.SINK_FACTORY.create("NiFi Sink", value); + ExecuteFlumeSink.SINK_FACTORY.create("NiFi Sink", value); } catch (Exception ex) { reason = ex.getLocalizedMessage(); reason = Character.toLowerCase(reason.charAt(0)) + reason.substring(1); diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java similarity index 97% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java rename to nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java index 2d8506d578..8ccb2d14aa 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSinkProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java @@ -25,6 +25,7 @@ import org.apache.flume.Context; import org.apache.flume.EventDeliveryException; import org.apache.flume.Sink; import org.apache.flume.conf.Configurables; +import org.apache.nifi.annotation.behavior.TriggerSerially; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; @@ -45,7 +46,8 @@ import org.apache.nifi.processor.util.StandardValidators; */ @Tags({"flume", "hadoop", "get", "sink"}) @CapabilityDescription("Write FlowFile data to a Flume sink") -public class FlumeSinkProcessor extends AbstractFlumeProcessor { +@TriggerSerially +public class ExecuteFlumeSink extends AbstractFlumeProcessor { public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() .name("Sink Type") diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java similarity index 93% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java rename to nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java index 55b1f2f8ec..fa02750df6 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/FlumeSourceProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java @@ -29,6 +29,7 @@ import org.apache.flume.Source; import org.apache.flume.channel.ChannelProcessor; import org.apache.flume.conf.Configurables; import org.apache.flume.source.EventDrivenSourceRunner; +import org.apache.nifi.annotation.behavior.TriggerSerially; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; @@ -50,7 +51,8 @@ import org.apache.nifi.processor.util.StandardValidators; */ @Tags({"flume", "hadoop", "get", "source"}) @CapabilityDescription("Generate FlowFile data from a Flume source") -public class FlumeSourceProcessor extends AbstractFlumeProcessor { +@TriggerSerially +public class ExecuteFlumeSource extends AbstractFlumeProcessor { public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() .name("Source Type") @@ -113,17 +115,12 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { public void onScheduled(final SchedulingContext context) { try { source = SOURCE_FACTORY.create( - context.getProperty(SOURCE_NAME) - .getValue(), - context.getProperty(SOURCE_TYPE) - .getValue()); + context.getProperty(SOURCE_NAME).getValue(), + context.getProperty(SOURCE_TYPE).getValue()); - String flumeConfig = context.getProperty(FLUME_CONFIG) - .getValue(); - String agentName = context.getProperty(AGENT_NAME) - .getValue(); - String sourceName = context.getProperty(SOURCE_NAME) - .getValue(); + String flumeConfig = context.getProperty(FLUME_CONFIG).getValue(); + String agentName = context.getProperty(AGENT_NAME).getValue(); + String sourceName = context.getProperty(SOURCE_NAME).getValue(); Configurables.configure(source, getFlumeSourceContext(flumeConfig, agentName, sourceName)); @@ -133,8 +130,7 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { source.start(); } } catch (Throwable th) { - getLogger() - .error("Error creating source", th); + getLogger().error("Error creating source", th); throw Throwables.propagate(th); } } @@ -191,6 +187,8 @@ public class FlumeSourceProcessor extends AbstractFlumeProcessor { } catch (EventDeliveryException ex) { throw new ProcessException("Error processing pollable source", ex); } + } else { + throw new ProcessException("Invalid source type: " + source.getClass().getSimpleName()); } } } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java index bc565878ba..eb31a66420 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java @@ -39,7 +39,6 @@ public class NifiSessionFactoryChannel extends BasicChannelSemantics { LifecycleState lifecycleState = getLifecycleState(); if (lifecycleState == LifecycleState.STOP) { throw new ChannelFullException("Can't write to a stopped channel"); - //return null; } return new NifiTransaction(sessionFactory.createSession(), relationship); } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java index 5dc97d65e7..fdff203544 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java @@ -26,8 +26,13 @@ import org.apache.flume.Event; import org.apache.nifi.flowfile.FlowFile; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.io.InputStreamCallback; +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.ENTRY_DATE_HEADER; +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.ID_HEADER; +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.LAST_QUEUE_DATE_HEADER; +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.LINEAGE_IDENTIFIERS_HEADER; +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.LINEAGE_START_DATE_HEADER; +import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.SIZE_HEADER; -import static org.apache.nifi.processors.flume.util.FlowFileEventConstants.*; import org.apache.nifi.stream.io.BufferedInputStream; import org.apache.nifi.stream.io.StreamUtils; @@ -105,7 +110,7 @@ public class FlowFileEvent implements Event { @Override public void process(InputStream in) throws IOException { try (BufferedInputStream input = new BufferedInputStream(in)) { - StreamUtils.copy(in, baos); + StreamUtils.copy(input, baos); } baos.close(); } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java similarity index 84% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java rename to nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java index 0654138cfd..6a0c40d13d 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSinkProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java @@ -45,17 +45,17 @@ import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FlumeSinkProcessorTest { +public class ExecuteFlumeSinkTest { private static final Logger logger = - LoggerFactory.getLogger(FlumeSinkProcessorTest.class); + LoggerFactory.getLogger(ExecuteFlumeSinkTest.class); @Rule public final TemporaryFolder temp = new TemporaryFolder(); @Test public void testValidators() { - TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSink.class); Collection results; ProcessContext pc; @@ -73,7 +73,7 @@ public class FlumeSinkProcessorTest { // non-existent class results = new HashSet<>(); - runner.setProperty(FlumeSinkProcessor.SINK_TYPE, "invalid.class.name"); + runner.setProperty(ExecuteFlumeSink.SINK_TYPE, "invalid.class.name"); runner.enqueue(new byte[0]); pc = runner.getProcessContext(); if (pc instanceof MockProcessContext) { @@ -87,7 +87,7 @@ public class FlumeSinkProcessorTest { // class doesn't implement Sink results = new HashSet<>(); - runner.setProperty(FlumeSinkProcessor.SINK_TYPE, AvroSource.class.getName()); + runner.setProperty(ExecuteFlumeSink.SINK_TYPE, AvroSource.class.getName()); runner.enqueue(new byte[0]); pc = runner.getProcessContext(); if (pc instanceof MockProcessContext) { @@ -100,7 +100,7 @@ public class FlumeSinkProcessorTest { } results = new HashSet<>(); - runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); + runner.setProperty(ExecuteFlumeSink.SINK_TYPE, NullSink.class.getName()); runner.enqueue(new byte[0]); pc = runner.getProcessContext(); if (pc instanceof MockProcessContext) { @@ -112,8 +112,8 @@ public class FlumeSinkProcessorTest { @Test public void testNullSink() throws IOException { - TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); - runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSink.class); + runner.setProperty(ExecuteFlumeSink.SINK_TYPE, NullSink.class.getName()); try (InputStream inputStream = getClass().getResourceAsStream("/testdata/records.txt")) { Map attributes = new HashMap<>(); attributes.put(CoreAttributes.FILENAME.key(), "records.txt"); @@ -124,9 +124,9 @@ public class FlumeSinkProcessorTest { @Test public void testBatchSize() throws IOException { - TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); - runner.setProperty(FlumeSinkProcessor.SINK_TYPE, NullSink.class.getName()); - runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSink.class); + runner.setProperty(ExecuteFlumeSink.SINK_TYPE, NullSink.class.getName()); + runner.setProperty(ExecuteFlumeSink.FLUME_CONFIG, "tier1.sinks.sink-1.batchSize = 1000\n"); for (int i = 0; i < 100000; i++) { runner.enqueue(String.valueOf(i).getBytes()); @@ -138,9 +138,9 @@ public class FlumeSinkProcessorTest { public void testHdfsSink() throws IOException { File destDir = temp.newFolder("hdfs"); - TestRunner runner = TestRunners.newTestRunner(FlumeSinkProcessor.class); - runner.setProperty(FlumeSinkProcessor.SINK_TYPE, "hdfs"); - runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSink.class); + runner.setProperty(ExecuteFlumeSink.SINK_TYPE, "hdfs"); + runner.setProperty(ExecuteFlumeSink.FLUME_CONFIG, "tier1.sinks.sink-1.hdfs.path = " + destDir.toURI().toString() + "\n" + "tier1.sinks.sink-1.hdfs.fileType = DataStream\n" + "tier1.sinks.sink-1.hdfs.serializer = TEXT\n" + diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java similarity index 82% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java rename to nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java index bf32095f7b..924776ee5d 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/FlumeSourceProcessorTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java @@ -41,16 +41,16 @@ import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FlumeSourceProcessorTest { +public class ExecuteFlumeSourceTest { - private static final Logger logger = LoggerFactory.getLogger(FlumeSourceProcessorTest.class); + private static final Logger logger = LoggerFactory.getLogger(ExecuteFlumeSourceTest.class); @Rule public final TemporaryFolder temp = new TemporaryFolder(); @Test public void testValidators() { - TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSource.class); Collection results; ProcessContext pc; @@ -68,7 +68,7 @@ public class FlumeSourceProcessorTest { // non-existent class results = new HashSet<>(); - runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "invalid.class.name"); + runner.setProperty(ExecuteFlumeSource.SOURCE_TYPE, "invalid.class.name"); runner.enqueue(new byte[0]); pc = runner.getProcessContext(); if (pc instanceof MockProcessContext) { @@ -82,7 +82,7 @@ public class FlumeSourceProcessorTest { // class doesn't implement Source results = new HashSet<>(); - runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, NullSink.class.getName()); + runner.setProperty(ExecuteFlumeSource.SOURCE_TYPE, NullSink.class.getName()); runner.enqueue(new byte[0]); pc = runner.getProcessContext(); if (pc instanceof MockProcessContext) { @@ -95,7 +95,7 @@ public class FlumeSourceProcessorTest { } results = new HashSet<>(); - runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, AvroSource.class.getName()); + runner.setProperty(ExecuteFlumeSource.SOURCE_TYPE, AvroSource.class.getName()); runner.enqueue(new byte[0]); pc = runner.getProcessContext(); if (pc instanceof MockProcessContext) { @@ -106,10 +106,10 @@ public class FlumeSourceProcessorTest { @Test public void testSequenceSource() { - TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); - runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "seq"); + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSource.class); + runner.setProperty(ExecuteFlumeSource.SOURCE_TYPE, "seq"); runner.run(); - List flowFiles = runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS); + List flowFiles = runner.getFlowFilesForRelationship(ExecuteFlumeSource.SUCCESS); Assert.assertEquals(1, flowFiles.size()); for (MockFlowFile flowFile : flowFiles) { logger.debug(flowFile.toString()); @@ -123,16 +123,16 @@ public class FlumeSourceProcessorTest { File dst = new File(spoolDirectory, "records.txt"); FileUtils.copyFile(getClass().getResourceAsStream("/testdata/records.txt"), dst, true, false); - TestRunner runner = TestRunners.newTestRunner(FlumeSourceProcessor.class); - runner.setProperty(FlumeSourceProcessor.SOURCE_TYPE, "spooldir"); - runner.setProperty(FlumeSinkProcessor.FLUME_CONFIG, + TestRunner runner = TestRunners.newTestRunner(ExecuteFlumeSource.class); + runner.setProperty(ExecuteFlumeSource.SOURCE_TYPE, "spooldir"); + runner.setProperty(ExecuteFlumeSink.FLUME_CONFIG, "tier1.sources.src-1.spoolDir = " + spoolDirectory.getAbsolutePath()); runner.run(1, false, true); // Because the spool directory source is an event driven source, it may take some time for flow files to get // produced. I'm willing to wait up to 5 seconds, but will bail out early if possible. If it takes longer than // that then there is likely a bug. int numWaits = 10; - while (runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS).size() < 4 && --numWaits > 0) { + while (runner.getFlowFilesForRelationship(ExecuteFlumeSource.SUCCESS).size() < 4 && --numWaits > 0) { try { TimeUnit.MILLISECONDS.sleep(500); } catch (InterruptedException ex) { @@ -140,9 +140,9 @@ public class FlumeSourceProcessorTest { } } runner.shutdown(); - runner.assertTransferCount(FlumeSourceProcessor.SUCCESS, 4); + runner.assertTransferCount(ExecuteFlumeSource.SUCCESS, 4); int i = 1; - for (MockFlowFile flowFile : runner.getFlowFilesForRelationship(FlumeSourceProcessor.SUCCESS)) { + for (MockFlowFile flowFile : runner.getFlowFilesForRelationship(ExecuteFlumeSource.SUCCESS)) { flowFile.assertContentEquals("record " + i); i++; } diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml index a2742aa3a1..59aab3c8ee 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -32,7 +32,7 @@ org.apache.nifi nifi-flume-processors - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT diff --git a/nifi/pom.xml b/nifi/pom.xml index 3a5c6b78b0..66a328c9c5 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -809,7 +809,7 @@ org.apache.nifi nifi-flume-nar - 0.1.0-incubating-SNAPSHOT + 0.2.0-incubating-SNAPSHOT nar @@ -864,10 +864,10 @@ 2.0.0 - org.apache.derby - derby - 10.11.1.1 - + org.apache.derby + derby + 10.11.1.1 + From e7e15facc4587a7cd0862d3b8f00a280b15392fa Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Sun, 12 Jul 2015 18:44:16 -0700 Subject: [PATCH 16/77] Added detailed documentation for the ExecuteFlumeSource/Sink processors Signed-off-by: Matt Gilman --- .../processors/flume/ExecuteFlumeSink.java | 7 +- .../processors/flume/ExecuteFlumeSource.java | 4 +- .../org.apache.nifi.processor.Processor | 4 +- .../additionalDetails.html | 159 ++++++++++++++++++ .../additionalDetails.html | 114 +++++++++++++ 5 files changed, 280 insertions(+), 8 deletions(-) create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html create mode 100644 nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java index 8ccb2d14aa..94251b43ed 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java @@ -21,7 +21,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.util.List; import java.util.Set; -import org.apache.flume.Context; import org.apache.flume.EventDeliveryException; import org.apache.flume.Sink; import org.apache.flume.conf.Configurables; @@ -44,14 +43,14 @@ import org.apache.nifi.processor.util.StandardValidators; /** * This processor runs a Flume sink */ -@Tags({"flume", "hadoop", "get", "sink"}) -@CapabilityDescription("Write FlowFile data to a Flume sink") +@Tags({"flume", "hadoop", "put", "sink"}) +@CapabilityDescription("Execute a Flume sink. Each input FlowFile is converted into a Flume Event for processing by the sink.") @TriggerSerially public class ExecuteFlumeSink extends AbstractFlumeProcessor { public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() .name("Sink Type") - .description("The fully-qualified name of the Sink class") + .description("The component type name for the sink. For some sinks, this is a short, symbolic name (e.g. hdfs). For others, it's the fully-qualified name of the Sink class. See the Flume User Guide for details.") .required(true) .addValidator(createSinkValidator()) .build(); diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java index fa02750df6..fa4fbe6131 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java @@ -50,13 +50,13 @@ import org.apache.nifi.processor.util.StandardValidators; * This processor runs a Flume source */ @Tags({"flume", "hadoop", "get", "source"}) -@CapabilityDescription("Generate FlowFile data from a Flume source") +@CapabilityDescription("Execute a Flume source. Each Flume Event is sent to the success relationship as a FlowFile") @TriggerSerially public class ExecuteFlumeSource extends AbstractFlumeProcessor { public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() .name("Source Type") - .description("The fully-qualified name of the Source class") + .description("The component type name for the source. For some sources, this is a short, symbolic name (e.g. spooldir). For others, it's the fully-qualified name of the Source class. See the Flume User Guide for details.") .required(true) .addValidator(createSourceValidator()) .build(); diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor index fae87277b0..f5b57e1099 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor @@ -12,5 +12,5 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -org.apache.nifi.processors.flume.FlumeSourceProcessor -org.apache.nifi.processors.flume.FlumeSinkProcessor +org.apache.nifi.processors.flume.ExecuteFlumeSource +org.apache.nifi.processors.flume.ExecuteFlumeSink diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html new file mode 100644 index 0000000000..be8b99fe28 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html @@ -0,0 +1,159 @@ + + + + + + ExecuteFlumeSink + + + + +

Data Model

+

+ This processor executes an Apache Flume sink. FlowFiles are wrapped in Flume's + Event interface. The content of the FlowFile becomes the body of the Event and + the attributes of the FlowFile become Event headers. The following special + headers are also set: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Flume Event HeaderFlowFile Attribute
nifi.entry.dateFlowFile#getEntryDate()
nifi.idFlowFile#getId()
nifi.last.queue.dateFlowFile#getLastQueueDate()
nifi.lineage.identifiers.${i}FlowFile#getLineageIdentifiers()[i]
nifi.lineage.start.dateFlowFile#getLineageStartDate()
nifi.sizeFlowFile#getSize()
+

Warning

+

+ In NiFi, the contents of a FlowFile are accessed via a stream, but in Flume it is + stored in a byte array. This means the full content will be loaded into memory when + a FlowFile is processed by the ExecuteFlumeSink processor. You should consider the + typical size of the FlowFiles you'll process and the batch size, if any, your sink + is configured with when setting NiFi's heap size. +

+

Configuration Details

+

+ This processor is designed to execute arbitrary Flume sinks. Most of the details + of configuring the sink is deferred to Flume's built-in configuration system. + For details on the available settings for each sink type, refer to the Flume + User Guide. + Configuring the Flume sink is a four step process: +

+
    +
  1. Set the Sink Type property to a valid Flume sink type.
  2. +
  3. + Set the Agent Name property to the name of the agent in your + Flume configuration. This is the prefix of the properties in the Flume + configuration file. Example: tier1 +
  4. +
  5. + Set the Sink Name property to the name of the sink in your Flume + configuration. If Agent Name is tier1, then the Sink Name + is the value of the tier1.sinks property. Example: sink-1 +
  6. +
  7. + Copy and paste the configuration for the sink from your Flume configuration + file into the Flume Configuration property. Assuming you're using + the same Agent Name and Sink Name as in the examples above, this will be all + of the properties that start with tier1.sinks.sink-1. + Do not copy the tier1.sinks.sink-1.type or + tier1.sinks.sink-1.channel properties. +
  8. +
+

Usage Example

+

+ Assuming you had the following existing Flume configuration file: +

+
+a1.sources = r1
+a1.sinks = k1
+a1.channels = c1
+
+a1.sources.r1.type = netcat
+a1.sources.r1.bind = localhost
+a1.sources.r1.port = 44444
+
+a1.sinks.k1.type = hdfs
+a1.sinks.k1.channel = c1
+a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
+a1.sinks.k1.hdfs.filePrefix = events-
+a1.sinks.k1.hdfs.round = true
+a1.sinks.k1.hdfs.roundValue = 10
+a1.sinks.k1.hdfs.roundUnit = minute
+
+a1.channels.c1.type = memory
+a1.channels.c1.capacity = 1000
+a1.channels.c1.transactionCapacity = 100
+
+a1.sources.r1.channels = c1
+a1.sinks.k1.channel = c1
+

+ Then you'd configure the ExecuteFlumeSink as follows: +

+ + + + + + + + + + + + + + + + + + + + + +
PropertyValue
Sink Typehdfs
Agent Namea1
Sink Namek1
Flume Configuration + + a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
+ a1.sinks.k1.hdfs.filePrefix = events-
+ a1.sinks.k1.hdfs.round = true
+ a1.sinks.k1.hdfs.roundValue = 10
+ a1.sinks.k1.hdfs.roundUnit = minute +
+
+ + \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html new file mode 100644 index 0000000000..3d1062b6f8 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html @@ -0,0 +1,114 @@ + + + + + + ExecuteFlumeSource + + + + +

Data Model

+

+ This processor executes an Apache Flume source. Each Flume Event is turned into + a FlowFile. The content of the FlowFile is set to the body of the Event and + the Event headers become FlowFile attributes. +

+

Configuration Details

+

+ This processor is designed to execute arbitrary Flume sources. Most of the details + of configuring the source is deferred to Flume's built-in configuration system. + For details on the available settings for each source type, refer to the Flume + User Guide. + Configuring the Flume source is a four step process: +

+
    +
  1. Set the Source Type property to a valid Flume source type.
  2. +
  3. + Set the Agent Name property to the name of the agent in your + Flume configuration. This is the prefix of the properties in the Flume + configuration file. Example: tier1 +
  4. +
  5. + Set the Source Name property to the name of the source in your Flume + configuration. If Agent Name is tier1, then the Source Name + is the value of the tier1.sources property. Example: src-1 +
  6. +
  7. + Copy and paste the configuration for the source from your Flume configuration + file into the Flume Configuration property. Assuming you're using + the same Agent Name and Source Name as in the examples above, this will be all + of the properties that start with tier1.sources.src-1. + Do not copy the tier1.sources.src-1.type or + tier1.sources.src-1.channel properties. +
  8. +
+

Usage Example

+

+ Assuming you had the following existing Flume configuration file: +

+
+a1.sources = r1
+a1.sinks = k1
+a1.channels = c1
+
+a1.sources.r1.type = multiport_syslogtcp
+a1.sources.r1.channels = c1
+a1.sources.r1.host = 0.0.0.0
+a1.sources.r1.ports = 10001 10002 10003
+a1.sources.r1.portHeader = port
+
+a1.sinks.k1.type = logger
+
+a1.channels.c1.type = memory
+a1.channels.c1.capacity = 1000
+a1.channels.c1.transactionCapacity = 100
+
+a1.sources.r1.channels = c1
+a1.sinks.k1.channel = c1
+

+ Then you'd configure the ExecuteFlumeSource as follows: +

+ + + + + + + + + + + + + + + + + + + + + +
PropertyValue
Source Typemultiport_syslogtcp
Agent Namea1
Source Namer1
Flume Configuration + + a1.sources.r1.host = 0.0.0.0
+ a1.sources.r1.ports = 10001 10002 10003
+ a1.sources.r1.portHeader = port +
+
+ + \ No newline at end of file From 2a3deed573b5d44bc79a49ea4bbdc5a49d4ebecd Mon Sep 17 00:00:00 2001 From: Joey Echeverria Date: Sun, 12 Jul 2015 19:08:32 -0700 Subject: [PATCH 17/77] Fixed a couple of checkstyle violations Signed-off-by: Matt Gilman --- .../org/apache/nifi/processors/flume/ExecuteFlumeSink.java | 3 ++- .../org/apache/nifi/processors/flume/ExecuteFlumeSource.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java index 94251b43ed..57e027855e 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java @@ -50,7 +50,8 @@ public class ExecuteFlumeSink extends AbstractFlumeProcessor { public static final PropertyDescriptor SINK_TYPE = new PropertyDescriptor.Builder() .name("Sink Type") - .description("The component type name for the sink. For some sinks, this is a short, symbolic name (e.g. hdfs). For others, it's the fully-qualified name of the Sink class. See the Flume User Guide for details.") + .description("The component type name for the sink. For some sinks, this is a short, symbolic name (e.g. hdfs)." + + " For others, it's the fully-qualified name of the Sink class. See the Flume User Guide for details.") .required(true) .addValidator(createSinkValidator()) .build(); diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java index fa4fbe6131..70f82ccc47 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java @@ -56,7 +56,8 @@ public class ExecuteFlumeSource extends AbstractFlumeProcessor { public static final PropertyDescriptor SOURCE_TYPE = new PropertyDescriptor.Builder() .name("Source Type") - .description("The component type name for the source. For some sources, this is a short, symbolic name (e.g. spooldir). For others, it's the fully-qualified name of the Source class. See the Flume User Guide for details.") + .description("The component type name for the source. For some sources, this is a short, symbolic name" + + " (e.g. spooldir). For others, it's the fully-qualified name of the Source class. See the Flume User Guide for details.") .required(true) .addValidator(createSourceValidator()) .build(); From 6f3039c8c38d6af399f5a896fb7879db111ab4fe Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Tue, 14 Jul 2015 17:11:08 -0400 Subject: [PATCH 18/77] NIFI-589: - Tweaking license files. --- nifi/nifi-assembly/NOTICE | 63 +++++++++++++++++++ .../src/main/resources/META-INF/NOTICE | 53 +++++++++++++++- 2 files changed, 113 insertions(+), 3 deletions(-) diff --git a/nifi/nifi-assembly/NOTICE b/nifi/nifi-assembly/NOTICE index 23c07b73fd..f71f98ce55 100644 --- a/nifi/nifi-assembly/NOTICE +++ b/nifi/nifi-assembly/NOTICE @@ -108,6 +108,69 @@ The following binary components are provided under the Apache Software License v Spring Framework 4.1.4.RELEASE Copyright (c) 2002-2015 Pivotal, Inc. + (ASLv2) Apache Flume + The following NOTICE information applies: + Apache Flume + Copyright 2011-2015 Apache Software Foundation + + asynchbase is BSD-licensed software (https://github.com/OpenTSDB/asynchbase) + + async is BSD-licensed software (https://github.com/stumbleupon/async) + + jopt-simple is MIT licensed software (http://pholser.github.io/jopt-simple/license.html) + + scala-library is BSD-like licensed software (http://www.scala-lang.org/license.html) + + (ASLv2) Xalan + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software was originally based on the following: + + - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com. + - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com. + - software copyright (c) 2003, IBM Corporation., http://www.ibm.com. + - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the + Apache Software Foundation and was originally developed at Hewlett Packard Company. + + (ASLv2) Apache XML Commons XML APIs + Copyright 2006 The Apache Software Foundation. + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org + + (ASLv2) IRClib + The following NOTICE information applies: + IRClib -- A Java Internet Relay Chat library -- + Copyright (C) 2002 - 2006 Christoph Schwering + + (ASLv2) Apache Thrift + The following NOTICE information applies: + Apache Thrift + Copyright 2006-2010 The Apache Software Foundation. + + (ASLv2) Apache MINA + The following NOTICE information applies: + Apache MINA Core + Copyright 2004-2011 Apache MINA Project + + (ASLv2) opencsv (net.sf.opencsv:opencsv:2.3) + + (ASLv2) Apache Velocity + The following NOTICE information applies: + Apache Velocity + Copyright (C) 2000-2007 The Apache Software Foundation + + (ASLv2) ZkClient + The following NOTICE information applies: + ZkClient + Copyright 2009 Stefan Groschupf + (ASLv2) Apache Commons CLI The following NOTICE information applies: Apache Commons CLI diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE index 793746f194..b6511436b0 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE @@ -1,4 +1,4 @@ -nifi-social-media-nar +nifi-flume-nar Copyright 2015 The Apache Software Foundation This product includes software developed at @@ -33,6 +33,50 @@ The following binary components are provided under the Apache Software License v Apache Flume Copyright 2011-2015 Apache Software Foundation + asynchbase is BSD-licensed software (https://github.com/OpenTSDB/asynchbase) + + async is BSD-licensed software (https://github.com/stumbleupon/async) + + jopt-simple is MIT licensed software (http://pholser.github.io/jopt-simple/license.html) + + scala-library is BSD-like licensed software (http://www.scala-lang.org/license.html) + + (ASLv2) Xalan + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software was originally based on the following: + + - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com. + - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com. + - software copyright (c) 2003, IBM Corporation., http://www.ibm.com. + - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the + Apache Software Foundation and was originally developed at Hewlett Packard Company. + + (ASLv2) Apache Xerces Java + Copyright 1999-2007 The Apache Software Foundation + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - voluntary contributions made by Paul Eng on behalf of the + Apache Software Foundation that were originally developed at iClick, Inc., + software copyright (c) 1999. + + (ASLv2) Apache XML Commons XML APIs + Copyright 2006 The Apache Software Foundation. + + This product includes software developed at + The Apache Software Foundation (http://www.apache.org/). + + Portions of this software were originally based on the following: + - software copyright (c) 1999, IBM Corporation., http://www.ibm.com. + - software copyright (c) 1999, Sun Microsystems., http://www.sun.com. + - software copyright (c) 2000 World Wide Web Consortium, http://www.w3.org + (ASLv2) IRClib The following NOTICE information applies: IRClib -- A Java Internet Relay Chat library -- @@ -126,7 +170,10 @@ The following binary components are provided under the Apache Software License v Apache License Version 2.0 http://www.apache.org/licenses/. (c) Daniel Lemire, http://lemire.me/en/ - (ASLv2) Servlet Specification API (org.mortbay.jetty:servlet-api:2.5-20110124) + (ASLv2) Jetty + The following NOTICE information applies: + Jetty Web Container + Copyright 1995-2015 Mort Bay Consulting Pty Ltd. (ASLv2) Twitter4J The following NOTICE information applies: @@ -142,4 +189,4 @@ The following binary components are provided under the Apache Software License v (ASLv2) ZkClient The following NOTICE information applies: ZkClient - Copyright 2009 Stefan Groschupf \ No newline at end of file + Copyright 2009 Stefan Groschupf From 95b22713fc848005a526b3e71f7b19bb7ae1db00 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Tue, 14 Jul 2015 17:22:57 -0400 Subject: [PATCH 19/77] This closes #51 Feedback on been provided in NIFI-589 From 65c82cc0ea4ccde35b5ded34b6b84afe959f62cb Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Tue, 14 Jul 2015 18:39:17 -0400 Subject: [PATCH 20/77] This closes #67. Code has been merged as per NIFI-685 From ec6be9eaa3942e9ca9f8e4a1e788ab831e739514 Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Tue, 14 Jul 2015 18:42:06 -0400 Subject: [PATCH 21/77] This closes #70. Code has been merged as per NIFI-751 From 00344624855f0ed215857a01593c397dd39d99ec Mon Sep 17 00:00:00 2001 From: joewitt Date: Thu, 16 Jul 2015 08:04:58 -0400 Subject: [PATCH 22/77] NIFI-768 staging changes needed for website in prep for move to TLP site. Still need to update some links once git and svn move. --- nifi-site/src/images/egg-logo.png | Bin 8626 -> 0 bytes nifi-site/src/includes/disclaimer.hbs | 20 +-- nifi-site/src/includes/topbar.hbs | 2 +- nifi-site/src/pages/html/download.hbs | 2 +- nifi-site/src/pages/html/mailing_lists.hbs | 26 ++-- .../src/pages/markdown/licensing-guide.md | 5 +- nifi-site/src/pages/markdown/quickstart.md | 10 +- nifi-site/src/pages/markdown/release-guide.md | 145 +++++------------- 8 files changed, 64 insertions(+), 146 deletions(-) delete mode 100644 nifi-site/src/images/egg-logo.png diff --git a/nifi-site/src/images/egg-logo.png b/nifi-site/src/images/egg-logo.png deleted file mode 100644 index c04e70da609807afccdd63ea8609f28dda78368e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8626 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 - \ No newline at end of file + diff --git a/nifi-site/src/includes/topbar.hbs b/nifi-site/src/includes/topbar.hbs index 7010ac0dcc..f1125fbf3e 100644 --- a/nifi-site/src/includes/topbar.hbs +++ b/nifi-site/src/includes/topbar.hbs @@ -53,7 +53,7 @@
  • Release Guide
  • Licensing Guide
  • Developer Guide
  • -
  • Source
  • +
  • Source
  • Issues
  • diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index 28fced1814..21607cd059 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -15,7 +15,7 @@ title: Apache NiFi Downloads

    To verify the downloads please follow these procedures - using these KEYS

    + using these KEYS

    If a download is not found please allow up to 24 hours for the mirrors to sync.

    diff --git a/nifi-site/src/pages/html/mailing_lists.hbs b/nifi-site/src/pages/html/mailing_lists.hbs index 049e470d73..2f8eebf481 100644 --- a/nifi-site/src/pages/html/mailing_lists.hbs +++ b/nifi-site/src/pages/html/mailing_lists.hbs @@ -31,24 +31,24 @@ title: Apache NiFi Mailing Lists Users Mailing List - Subscribe - Unsubscribe - Post - mail-archives.apache.org + Subscribe + Unsubscribe + Post + mail-archives.apache.org Developers Mailing List - Subscribe - Unsubscribe - Post - mail-archives.apache.org + Subscribe + Unsubscribe + Post + mail-archives.apache.org Commits Mailing List - Subscribe - Unsubscribe - Post - mail-archives.apache.org + Subscribe + Unsubscribe + Post + mail-archives.apache.org @@ -70,7 +70,7 @@ title: Apache NiFi Mailing Lists

    diff --git a/nifi-site/src/pages/markdown/licensing-guide.md b/nifi-site/src/pages/markdown/licensing-guide.md index ac7fb3b549..9c928b1354 100644 --- a/nifi-site/src/pages/markdown/licensing-guide.md +++ b/nifi-site/src/pages/markdown/licensing-guide.md @@ -4,11 +4,11 @@ title: Apache NiFi Licensing Guide # Apache NiFi Release Guidelines -This document provides guidance to contributors of Apache NiFi (incubating) to help properly account for licensing, notice, and legal requirements. +This document provides guidance to contributors of Apache NiFi to help properly account for licensing, notice, and legal requirements. #### Disclaimer: -This document is not written by lawyers. The guidance in this document is meant to compliment Apache Incubator and Apache Software Foundation guides and policies. If anything in this document is inconsistent with those then it is a defect in this document. +This document is not written by lawyers. The guidance in this document is meant to compliment Apache Software Foundation guides and policies. If anything in this document is inconsistent with those then it is a defect in this document. ## Background Material @@ -17,7 +17,6 @@ This document is not written by lawyers. The guidance in this document is meant - [ASF Licensing How-To](http://www.apache.org/dev/licensing-howto.html) - [ASF Legal Resolved](http://www.apache.org/legal/resolved.html) - [ASF Release Policy](http://www.apache.org/dev/release.html) -- [ASF Incubator License and Notice Guidance](http://incubator.apache.org/guides/releasemanagement.html#note-license-and-notice) ## How to consistently apply licensing/legal notice information for Apache NiFi diff --git a/nifi-site/src/pages/markdown/quickstart.md b/nifi-site/src/pages/markdown/quickstart.md index 0851a4dac5..015621a78d 100644 --- a/nifi-site/src/pages/markdown/quickstart.md +++ b/nifi-site/src/pages/markdown/quickstart.md @@ -20,7 +20,7 @@ Track issues on the "NIFI" Project on the Apache Jira ([browse][jira]). To check out the code: ``` -git clone http://git-wip-us.apache.org/repos/asf/incubator-nifi.git +git clone http://git-wip-us.apache.org/repos/asf/nifi.git ```
    Then checkout the 'develop' branch @@ -137,11 +137,11 @@ is ready for use: 2014-12-09 00:42:03,540 INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs: -[adminguide]: https://nifi.incubator.apache.org/docs/nifi-docs/html/administration-guide.html +[adminguide]: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html [maven]: http://maven.apache.org/ [jira]: https://issues.apache.org/jira/browse/NIFI [git]: http://git-scm.com/ -[gitbrowse]: https://git-wip-us.apache.org/repos/asf?p=incubator-nifi.git;a=summary -[gitrepo]: http://git-wip-us.apache.org/repos/asf/incubator-nifi.git -[githubrepo]: https://github.com/apache/incubator-nifi +[gitbrowse]: https://git-wip-us.apache.org/repos/asf?p=nifi.git;a=summary +[gitrepo]: http://git-wip-us.apache.org/repos/asf/nifi.git +[githubrepo]: https://github.com/apache/nifi diff --git a/nifi-site/src/pages/markdown/release-guide.md b/nifi-site/src/pages/markdown/release-guide.md index b1df726655..67a569c4e0 100644 --- a/nifi-site/src/pages/markdown/release-guide.md +++ b/nifi-site/src/pages/markdown/release-guide.md @@ -14,15 +14,11 @@ capacity of a [Release Manager][release-manager] (RM). - [Apache License V2.0][apache-license] - [Apache Legal License/Resolved][apache-legal-resolve] - [Apache How-to Apply License][apache-license-apply] - - [Apache Incubator Branding Guidelines][incubator-branding-guidelines] - These documents are necessary for someone acting as the RM - [Apache Encryption Software / ECCN Info][apache-encryption] - [Apache Release Policy][apache-release-policy] - [Apache Release Guide][apache-release-guide] - - [Apache Incubator Release Guide][apache-incubator-release-guide] - - [another Apache Incubator Release Guide][another-apache-incubator-release-guide] - - [Apache Incubator Policy][apache-incubator-policy] - These documents are helpful for general environmental setup to perform releases - [Apache PGP Info][apache-pgp] @@ -31,34 +27,25 @@ capacity of a [Release Manager][release-manager] (RM). ## The objective -Our aim is to produce and official Apache release. +Our aim is to produce an official Apache release. The following is a list of the sorts of things that will be validated and are the basics to check when evaluating a release for a vote. ## What to validate and how to Validate a release -There are two lists here: one of specific incubator requirements, and another of general Apache requirements. - -### Incubator: - - - Do the resulting artifacts have 'incubating' in the name? - - Is there a DISCLAIMER file in the source root that meets the requirements of the Incubator branding guidelines? - -### General Apache Release Requirements: - - Are LICENSE and NOTICE file present in the source root and complete? - Specifically look in the *-sources.zip artifact and ensure these items are present at the root of the archive. - Evaluate the sources and dependencies. Does the overall LICENSE and NOTICE appear correct? Do all licenses fit within the ASF approved licenses? - Here is an example path to a sources artifact: - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1-incubating/nifi-0.0.1-incubating-source-release.zip` + - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip` - Is there a README available that explains how to build the application and to execute it? - Look in the *-sources.zip artifact root for the readme. - Are the signatures and hashes correct for the source release? - Validate the hashes of the sources artifact do in fact match: - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1-incubating/nifi-0.0.1-incubating-source-release.zip.md5` - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1-incubating/nifi-0.0.1-incubating-source-release.zip.sha1` + - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip.md5` + - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip.sha1` - Validate the signature of the source artifact. Here is an example path: - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1-incubating/nifi-0.0.1-incubating-source-release.zip.asc` + - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip.asc` - Need a quick reminder on how to [verify a signature](http://www.apache.org/dev/release-signing.html#verifying-signature)? - Do all sources have necessary headers? - Unzip the sources file into a directory and execute `mvn install -Pcontrib-check` @@ -70,12 +57,10 @@ There are two lists here: one of specific incubator requirements, and another of - The community is contributing to a series of JIRA tickets assigned to the next release - The number of tickets open/remaining for that next release approaches zero - A member of the community suggests a release and initiates a discussion - - Someone volunteers to be an RM for the release (can be a committer but apache guides indicate preference is a PPMC member) + - Someone volunteers to be an RM for the release (can be a committer but apache guides indicate preference is a PMC member) - A release candidate is put together and a vote sent to the team. - - If the team rejects the vote the issues noted are resolved and another RC is generated - - Once a vote is accepted within the NiFi PPMC for a release candidate then the vote is sent to the IPMC - - If the IPMC rejects the vote then the issues are resolved and a new RC prepared and voted upon within the PPMC - - If the IPMC accepts the vote then the release is 'releasable' and can be placed into the appropriate 'dist' location, maven artifacts released from staging. + - If the NiFi community rejects the vote the issues noted are resolved and another RC is generated + - If the NiFi community accepts the vote then the release is 'releasable' and can be placed into the appropriate 'dist' location, maven artifacts released from staging. ## The mechanics of the release @@ -88,7 +73,7 @@ At this point you're on the latest 'develop' branch and are able to build the en ```
    Create a JIRA ticket for the release tasks and use that ticket number for the commit messages. For example we'll consider NIFI-270 as our ticket. Also -have in mind the release version you are planning for. For example we'll consider '0.0.1-incubating'. +have in mind the release version you are planning for. For example we'll consider '0.0.1'. Create the next version in JIRA if necessary so develop work can continue towards that release. @@ -136,18 +121,18 @@ This command `mvn install -Pcontrib-check` should be run as well to help validat Now its time to have maven prepare the release so execute `mvn release:prepare -Psigned_release -DscmCommentPrefix="NIFI-270-RC1 " -Darguments="-DskipTests"`. Maven will ask: -`What is the release version for "Apache NiFi"? (org.apache.nifi:nifi) 0.0.1-incubating: :` +`What is the release version for "Apache NiFi"? (org.apache.nifi:nifi) 0.0.1: :` Just hit enter to accept the default. Maven will then ask: -`What is SCM release tag or label for "Apache NiFi"? (org.apache.nifi:nifi) nifi-0.0.1-incubating: : ` +`What is SCM release tag or label for "Apache NiFi"? (org.apache.nifi:nifi) nifi-0.0.1: : ` -Enter `nifi-0.0.1-incubating-RC1` or whatever the appropriate release candidate (RC) number is. +Enter `nifi-0.0.1-RC1` or whatever the appropriate release candidate (RC) number is. Maven will then ask: -`What is the new development version for "Apache NiFi"? (org.apache.nifi:nifi) 0.0.2-incubating-SNAPSHOT: :` +`What is the new development version for "Apache NiFi"? (org.apache.nifi:nifi) 0.0.2-SNAPSHOT: :` Just hit enter to accept the default. @@ -175,7 +160,7 @@ If all looks good then push the branch to origin `git push origin NIFI-270` If it is intended that convenience binaries will be provided for this release then the community has requested that a copy it be made available for reviewing of the release candidate. The convenience binary, its hashes, and signature should be placed here: - - https://dist.apache.org/repos/dist/dev/incubator/nifi + - https://dist.apache.org/repos/dist/dev/nifi If anything isn't correct about the staged artifacts you can drop the staged repo from repository.apache.org and delete the local tag in git. If you also delete the local branch and clear your local maven repository under org/apache/nifi then it is @@ -183,22 +168,22 @@ as if the release never happened. Before doing that though try to figure out wh that you can pretty easily test the release process until you get it right. The `mvn versions:set ` and `mvn versions:commit ` commands can come in handy to help do this so you can set versions to something clearly release test related. -Now it's time to initiate a vote within the PPMC. Send the vote request to `dev@nifi.incubator.apache.org` -with a subject of `[VOTE] Release Apache NiFi 0.0.1-incubating`. The following template can be used: +Now it's time to initiate a vote within the NiFi community. Send the vote request to `dev@nifi.apache.org` +with a subject of `[VOTE] Release Apache NiFi 0.0.1`. The following template can be used: ``` Hello I am pleased to be calling this vote for the source release of Apache NiFi -nifi-0.0.1-incubating. +nifi-0.0.1. The source zip, including signatures, digests, etc. can be found at: https://repository.apache.org/content/repositories/orgapachenifi-1011 -The Git tag is nifi-0.0.1-incubating-RC1 +The Git tag is nifi-0.0.1-RC1 The Git commit ID is 72abf18c2e045e9ef404050e2bffc9cef67d2558 -https://git-wip-us.apache.org/repos/asf?p=incubator-nifi.git;a=commit;h=72abf18c2e045e9ef404050e2bffc9cef67d2558 +https://git-wip-us.apache.org/repos/asf?p=nifi.git;a=commit;h=72abf18c2e045e9ef404050e2bffc9cef67d2558 -Checksums of nifi-0.0.1-incubating-source-release.zip: +Checksums of nifi-0.0.1-source-release.zip: MD5: 5a580756a17b0573efa3070c70585698 SHA1: a79ff8fd0d2f81523b675e4c69a7656160ff1214 @@ -206,7 +191,7 @@ Release artifacts are signed with the following key: https://people.apache.org/keys/committer/joewitt.asc KEYS file available here: -https://dist.apache.org/repos/dist/release/incubator/nifi/KEYS +https://dist.apache.org/repos/dist/release/nifi/KEYS 8 issues were closed/resolved for this release: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12329307 @@ -214,58 +199,14 @@ https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&versio The vote will be open for 72 hours. Please download the release candidate and evaluate the necessary items including checking hashes, signatures, build from source, and test. The please vote: -[ ] +1 Release this package as nifi-0.0.1-incubating +[ ] +1 Release this package as nifi-0.0.1 [ ] +0 no opinion [ ] -1 Do not release this package because because... ```
    -A release vote is majority rule. So wait 72 hours and see if there are at least 3 binding (in the PPMC sense of binding) +1 votes and no more negative votes than positive. -If so forward the vote to the IPMC. Send the vote request to `general@incubator.apache.org` with a subject of -`[VOTE] Release Apache NiFi 0.0.1-incubating`. The following template can be used: - -``` -Hello - -The Apache NiFi PPMC has voted to release Apache NiFi 0.0.1-incubating. -The vote was based on the release candidate and thread described below. -We now request the IPMC to vote on this release. - -Here is the PPMC voting result: -X +1 (binding) -Y -1 (binding) - -Here is the PPMC vote thread: [URL TO PPMC Vote Thread] - -The source zip, including signatures, digests, etc. can be found at: -https://repository.apache.org/content/repositories/orgapachenifi-1011 - -The Git tag is nifi-0.0.1-incubating-RC1 -The Git commit ID is 72abf18c2e045e9ef404050e2bffc9cef67d2558 -https://git-wip-us.apache.org/repos/asf?p=incubator-nifi.git;a=commit;h=72abf18c2e045e9ef404050e2bffc9cef67d2558 - -Checksums of nifi-0.0.1-incubating-source-release.zip: -MD5: 5a580756a17b0573efa3070c70585698 -SHA1: a79ff8fd0d2f81523b675e4c69a7656160ff1214 - -Release artifacts are signed with the following key: -https://people.apache.org/keys/committer/joewitt.asc - -KEYS file available here: -https://dist.apache.org/repos/dist/release/incubator/nifi/KEYS - -8 issues were closed/resolved for this release: -https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12329307 - -The vote will be open for 72 hours. -Please download the release candidate and evaluate the necessary items including checking hashes, signatures, build from source, and test. The please vote: - -[ ] +1 Release this package as nifi-0.0.1-incubating -[ ] +0 no opinion -[ ] -1 Do not release this package because because... -``` -
    -Wait 72 hours. If the vote passes then send a vote result email. Send the email to `general@incubator.apache.org, dev@nifi.incubator.apache.org` -with a subject of `[RESULT][VOTE] Release Apache NiFi 0.0.1-incubating`. Use a template such as: +A release vote is majority rule. So wait 72 hours and see if there are at least 3 binding (PMC members) +1 votes and no more negative votes than positive. +If the vote passes then send a vote result email. Send the email to `dev@nifi.apache.org` +with a subject of `[RESULT][VOTE] Release Apache NiFi 0.0.1`. Use a template such as: ``` Hello @@ -277,20 +218,20 @@ Y -1 (binding) votes Thanks to all who helped make this release possible. -Here is the IPMC vote thread: [INSERT URL OF IPMC Vote Thread] +Here is the PMC vote thread: [INSERT URL OF PMC Vote Thread] ```
    Now all the voting is done and the release is good to go. Here are the steps of the release once the release is approved: -1. Upload source-release artifacts to dist. If the release version is 0.0.1-incubating then upload them (zip, asc, md5, sha1) to -`https://dist.apache.org/repos/dist/release/incubator/nifi/0.0.1-incubating` +1. Upload source-release artifacts to dist. If the release version is 0.0.1 then upload them (zip, asc, md5, sha1) to +`https://dist.apache.org/repos/dist/release/nifi/0.0.1` 2. To produce binary convenience release build the application from the raw source in staging. For each binary convenience artifact: - - Generate ascii armored detached signature by running `gpg -a -b nifi-0.0.1-incubating-bin.tar.gz` - - Generate md5 hash summary by running `md5sum nifi-0.0.1-incubating-bin.tar.gz | awk '{ printf substr($0,0,32)}' > nifi-0.0.1-incubating-bin.tar.gz.md5` - - Generate sha1 hash summary by running `sha1sum nifi-0.0.1-incubating-bin.tar.gz | awk '{ printf substr($0,0,40)}' > nifi-0.0.1-incubating-bin.tar.gz.sha1` + - Generate ascii armored detached signature by running `gpg -a -b nifi-0.0.1-bin.tar.gz` + - Generate md5 hash summary by running `md5sum nifi-0.0.1-bin.tar.gz | awk '{ printf substr($0,0,32)}' > nifi-0.0.1-bin.tar.gz.md5` + - Generate sha1 hash summary by running `sha1sum nifi-0.0.1-bin.tar.gz | awk '{ printf substr($0,0,40)}' > nifi-0.0.1-bin.tar.gz.sha1` - Upload the bin, asc, sha1, md5 for each binary convenience build to the same location as the source release 3. In repository.apache.org go to the staging repository and select `release` and follow instructions on the site. @@ -301,29 +242,29 @@ Here are the steps of the release once the release is approved: 6. Update the NiFi website to point to the new download(s) -7. Update the NiFi incubator status page to indicate NEWS of the release +7. Update the NiFi Web Page to indicate NEWS of the release as appropriate 8. In Jira mark the release version as 'Released' and 'Archived' through 'version' management in the 'administration' console. 9. Wait 24 hours then send release announcement. - See [here][release-announce] for an understanding of why you need to wait 24 hours - - Then create an announcement like the one shown below addressed to 'announce@apache.org, general@incubator.apache.org, dev@nifi.incubator.apache.org' with a reply-to of 'general@incubator.apache.org'. + - Then create an announcement like the one shown below addressed to 'announce@apache.org, dev@nifi..apache.org' with a reply-to of 'dev@nifi.apache.org'. - The email has to be sent from an apache.org email address and should be by the release manager of the build. ``` -SUBJECT: [ANNOUNCE] Apache NiFi 0.0.2-incubating release +SUBJECT: [ANNOUNCE] Apache NiFi 0.0.2 release BODY: Hello -The Apache NiFi team would like to announce the release of Apache NiFi 0.0.2-incubating. +The Apache NiFi team would like to announce the release of Apache NiFi 0.0.2. Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. Apache NiFi was made for dataflow. It supports highly configurable directed graphs of data routing, transformation, and system mediation logic. More details on Apache NiFi can be found here: -http://nifi.incubator.apache.org/ +http://nifi.apache.org/ The release artifacts can be downloaded from here: -http://nifi.incubator.apache.org/downloads/ +http://nifi.apache.org/downloads/ Maven artifacts have been made available here: https://repository.apache.org/content/repositories/releases/org/apache/nifi/ @@ -334,13 +275,9 @@ https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&versio Thank you The Apache NiFi team ----- -DISCLAIMER - -Apache NiFi is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. ``` -[quickstart-guide]: http://nifi.incubator.apache.org/development/quickstart.html +[quickstart-guide]: http://nifi.apache.org/development/quickstart.html [release-manager]: http://www.apache.org/dev/release-publishing.html#release_manager [release-announce]: http://www.apache.org/dev/release.html#release-announcements [apache-license]: http://apache.org/licenses/LICENSE-2.0 @@ -349,10 +286,6 @@ Apache NiFi is an effort undergoing incubation at The Apache Software Foundation [apache-encryption]: http://www.apache.org/licenses/exports/ [apache-release-policy]: http://www.apache.org/dev/release.html [apache-release-guide]: http://www.apache.org/dev/release-publishing -[apache-incubator-release-guide]: http://incubator.apache.org/guides/releasemanagement.html -[another-apache-incubator-release-guide]: http://incubator.apache.org/guides/release.html -[apache-incubator-policy]: http://incubator.apache.org/incubation/Incubation_Policy.html -[incubator-branding-guidelines]: http://incubator.apache.org/guides/branding.html [apache-pgp]: http://www.apache.org/dev/openpgp.html [apache-release-signing]: http://www.apache.org/dev/release-signing.html -[apache-guide-publish-maven]: http://www.apache.org/dev/publishing-maven-artifacts.html \ No newline at end of file +[apache-guide-publish-maven]: http://www.apache.org/dev/publishing-maven-artifacts.html From adddd3fab8f1244e02e8bdcf3f775af35ab37d4a Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Thu, 16 Jul 2015 10:59:34 -0400 Subject: [PATCH 23/77] NIFI-656: - Updating version of flume bundle that was added during release vote. --- .../nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml | 4 ++-- .../nifi-flume-bundle/nifi-flume-processors/pom.xml | 2 +- nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml index a9bbe6f911..8d615a8ebf 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -17,10 +17,10 @@ org.apache.nifi nifi-flume-bundle - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT nifi-flume-nar - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT nar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index 167aa6e943..fcf42ee78c 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-flume-bundle - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT nifi-flume-processors jar diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml index 59aab3c8ee..27da3c0cc3 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -17,10 +17,10 @@ org.apache.nifi nifi-nar-bundles - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT nifi-flume-bundle - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT pom A bundle of processors that run Flume sources/sinks From bde107d4a87eb19881feaf208df52db7dec6cda5 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Thu, 16 Jul 2015 11:12:55 -0400 Subject: [PATCH 24/77] NIFI-656: - Updating version of flume bundle that was added during release vote. --- nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml index 27da3c0cc3..d5ad112c7a 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -32,7 +32,7 @@ org.apache.nifi nifi-flume-processors - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT From 54ad9c89914a265c5e8e89fdf83cd83d83a83ff5 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Thu, 16 Jul 2015 11:20:27 -0400 Subject: [PATCH 25/77] NIFI-656: - Updating version of flume bundle that was added during release vote. --- nifi/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi/pom.xml b/nifi/pom.xml index eb94719850..22dbaf69cb 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -809,7 +809,7 @@ org.apache.nifi nifi-flume-nar - 0.2.0-incubating-SNAPSHOT + 0.2.1-incubating-SNAPSHOT nar From 16cc08748d4063d3440a12f9dd3f9f248e2814ee Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Fri, 17 Jul 2015 09:09:43 -0400 Subject: [PATCH 26/77] NIFI-656: - Adding links to download 0.2.0-incubating. --- nifi-site/src/pages/html/download.hbs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index 21607cd059..1b94c59b90 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -23,6 +23,25 @@ title: Apache NiFi Downloads

    Releases

      +
    • 0.2.0-incubating + +
    • +
    • 0.1.0-incubating
      • Release Notes
      • From d68c7ec24a4736854bd9319640af8c5113641fae Mon Sep 17 00:00:00 2001 From: joewitt Date: Fri, 17 Jul 2015 20:47:42 -0400 Subject: [PATCH 27/77] NIFI-768 updated site for TLP push --- nifi-site/Gruntfile.js | 2 +- nifi-site/README.md | 6 +++--- nifi-site/bower.json | 4 ++-- nifi-site/package.json | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/nifi-site/Gruntfile.js b/nifi-site/Gruntfile.js index 42ecd8f277..161b47f2bf 100644 --- a/nifi-site/Gruntfile.js +++ b/nifi-site/Gruntfile.js @@ -5,7 +5,7 @@ module.exports = function (grunt) { grunt.initConfig({ config: { svn: { - url: 'https://svn.apache.org/repos/asf/incubator/nifi/site/trunk' + url: 'https://svn.apache.org/repos/asf/nifi/site/trunk' } }, pkg: grunt.file.readJSON('package.json'), diff --git a/nifi-site/README.md b/nifi-site/README.md index 4b7906b25f..24dbf22453 100644 --- a/nifi-site/README.md +++ b/nifi-site/README.md @@ -13,7 +13,7 @@ limitations under the License. --> # About -[Apache NiFi project] (http://nifi.incubator.apache.org). +[Apache NiFi project] (http://nifi.apache.org). ## Getting Started @@ -69,7 +69,7 @@ Because of this, Maven must be installed and available on the PATH. Additionally must be installed in order for the Maven build to succeed. Refer to the [NiFi][] documentation for minimum requirements for Maven and Java. -[NiFi]: https://nifi.incubator.apache.org/quickstart.html +[NiFi]: https://nifi.apache.org/quickstart.html ```bash grunt @@ -150,4 +150,4 @@ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and -limitations under the License. \ No newline at end of file +limitations under the License. diff --git a/nifi-site/bower.json b/nifi-site/bower.json index 6ced6f714d..b9a0b3259d 100644 --- a/nifi-site/bower.json +++ b/nifi-site/bower.json @@ -1,11 +1,11 @@ { "name": "apache-nifi-site", - "version": "0.0.2-incubating", + "version": "0.2.0", "description": "The artifacts for the Apache NiFi site.", "private": "true", "repository": { "type": "git", - "url": "http://git-wip-us.apache.org/repos/asf/incubator-nifi.git" + "url": "http://git-wip-us.apache.org/repos/asf/nifi.git" }, "dependencies": { "foundation": "~5.5.1", diff --git a/nifi-site/package.json b/nifi-site/package.json index dbd8ab52ec..f299d4db53 100644 --- a/nifi-site/package.json +++ b/nifi-site/package.json @@ -1,11 +1,11 @@ { "name": "apache-nifi-site", - "version": "0.1.0-incubating", + "version": "0.2.0", "description": "The artifacts for the Apache NiFi site.", "private": "true", "repository": { "type": "git", - "url": "http://git-wip-us.apache.org/repos/asf/incubator-nifi.git" + "url": "http://git-wip-us.apache.org/repos/asf/nifi.git" }, "devDependencies": { "assemble": "^0.4.42", From cbfe3fc31746cc0944a69731728bf227c10af9eb Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 00:41:05 -0400 Subject: [PATCH 28/77] NIFI-768 added parens to protect password entry just like commit message had --- nifi-site/Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-site/Gruntfile.js b/nifi-site/Gruntfile.js index 161b47f2bf..cbf7b3efa0 100644 --- a/nifi-site/Gruntfile.js +++ b/nifi-site/Gruntfile.js @@ -224,7 +224,7 @@ module.exports = function (grunt) { command += (' --username ' + username); } if (password !== '') { - command += (' --password ' + password); + command += (' --password "' + password + '"'); } return command + ' -m "' + message + '" --trust-server-cert --non-interactive .'; } From 808c772c38dff01490c273a4bcc52712a995bdbd Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 00:48:14 -0400 Subject: [PATCH 29/77] NIFI-768 --- nifi-site/src/pages/html/download.hbs | 37 --------------------------- 1 file changed, 37 deletions(-) diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index 1b94c59b90..04da8c4414 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -60,43 +60,6 @@ title: Apache NiFi Downloads
    • - -
    • 0.0.2-incubating - -
    • -
    • 0.0.1-incubating - -
    From 3982294ced19c6e2a253299f7880acbcb1a1c95f Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 00:50:15 -0400 Subject: [PATCH 30/77] NIFI-768 --- nifi-site/src/pages/markdown/release-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-site/src/pages/markdown/release-guide.md b/nifi-site/src/pages/markdown/release-guide.md index 67a569c4e0..357f115daf 100644 --- a/nifi-site/src/pages/markdown/release-guide.md +++ b/nifi-site/src/pages/markdown/release-guide.md @@ -152,7 +152,7 @@ Validate that all the various aspects of the staged artifacts appear correct - Validate the hashes match. - Validate that the sources contain no unexpected binaries. - Validate the signature for the build and hashes. - - Validate the LICENSE/NOTICE/DISCLAIMER/Headers. + - Validate the LICENSE/NOTICE/Headers. - Validate that the README is present and provides sufficient information to build and if necessary execute. If all looks good then push the branch to origin `git push origin NIFI-270` From f76aeb22706fe686e0f73523f67c858335433e2d Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 00:52:30 -0400 Subject: [PATCH 31/77] NIFI-768 --- nifi-site/src/pages/markdown/release-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-site/src/pages/markdown/release-guide.md b/nifi-site/src/pages/markdown/release-guide.md index 357f115daf..6f071249b5 100644 --- a/nifi-site/src/pages/markdown/release-guide.md +++ b/nifi-site/src/pages/markdown/release-guide.md @@ -264,7 +264,7 @@ More details on Apache NiFi can be found here: http://nifi.apache.org/ The release artifacts can be downloaded from here: -http://nifi.apache.org/downloads/ +http://nifi.apache.org/download.html Maven artifacts have been made available here: https://repository.apache.org/content/repositories/releases/org/apache/nifi/ From dae1b9656f36fee6c5381b9bbe8d88556bb3021e Mon Sep 17 00:00:00 2001 From: joewitt Date: Thu, 16 Jul 2015 12:35:37 -0400 Subject: [PATCH 32/77] NIFI-768 changed all versions and docs and paths to TLP version removing incubator refs NIFI-768 changed all versions and docs and paths to TLP version removing incubator refs --- README.md | 28 ++---- nifi-nar-maven-plugin/pom.xml | 6 +- nifi-parent/pom.xml | 39 ++++---- nifi/DISCLAIMER | 15 --- nifi/README.md | 32 ++----- nifi/nifi-api/pom.xml | 2 +- nifi/nifi-assembly/README.md | 20 +--- nifi/nifi-assembly/pom.xml | 23 ++--- .../src/main/assembly/dependencies.xml | 7 -- nifi/nifi-bootstrap/pom.xml | 2 +- .../nifi-data-provenance-utils/pom.xml | 2 +- .../nifi-expression-language/pom.xml | 2 +- .../nifi-flowfile-packager/pom.xml | 2 +- .../nifi-hl7-query-language/pom.xml | 2 +- nifi/nifi-commons/nifi-logging-utils/pom.xml | 2 +- .../nifi-processor-utilities/pom.xml | 2 +- nifi/nifi-commons/nifi-properties/pom.xml | 2 +- nifi/nifi-commons/nifi-security-utils/pom.xml | 2 +- .../nifi-site-to-site-client/pom.xml | 4 +- nifi/nifi-commons/nifi-socket-utils/pom.xml | 2 +- nifi/nifi-commons/nifi-utils/pom.xml | 4 +- nifi/nifi-commons/nifi-web-utils/pom.xml | 2 +- .../nifi-commons/nifi-write-ahead-log/pom.xml | 2 +- nifi/nifi-commons/pom.xml | 2 +- nifi/nifi-docs/pom.xml | 2 +- .../main/asciidoc/administration-guide.adoc | 4 +- .../src/main/asciidoc/developer-guide.adoc | 8 +- .../asciidoc/expression-language-guide.adoc | 12 +-- .../nifi-docs/src/main/asciidoc/overview.adoc | 4 +- .../src/main/asciidoc/user-guide.adoc | 6 +- .../nifi-nifi-example-nar/pom.xml | 2 +- .../nifi-nifi-example-processors/pom.xml | 2 +- .../nifi-external/nifi-example-bundle/pom.xml | 4 +- .../nifi-external/nifi-spark-receiver/pom.xml | 2 +- nifi/nifi-external/nifi-storm-spout/pom.xml | 2 +- nifi/nifi-external/pom.xml | 2 +- .../nifi-processor-bundle-archetype/pom.xml | 2 +- .../META-INF/maven/archetype-metadata.xml | 4 +- nifi/nifi-maven-archetypes/pom.xml | 2 +- nifi/nifi-mock/pom.xml | 2 +- .../nifi-aws-bundle/nifi-aws-nar/pom.xml | 4 +- .../nifi-aws-processors/pom.xml | 2 +- nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml | 2 +- .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 4 +- .../nifi-flume-processors/pom.xml | 2 +- .../nifi-flume-bundle/pom.xml | 6 +- .../nifi-framework-nar/pom.xml | 2 +- .../nifi-administration/pom.xml | 2 +- .../nifi-framework/nifi-client-dto/pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-framework/nifi-documentation/pom.xml | 2 +- .../nifi-file-authorization-provider/pom.xml | 2 +- .../nifi-framework-cluster-protocol/pom.xml | 2 +- .../nifi-framework-cluster-web/pom.xml | 2 +- .../nifi-framework-cluster/pom.xml | 2 +- .../nifi-framework-core-api/pom.xml | 2 +- .../nifi-framework-core/pom.xml | 2 +- .../nifi-framework/nifi-nar-utils/pom.xml | 2 +- .../nifi-framework/nifi-resources/pom.xml | 2 +- .../nifi-framework/nifi-runtime/pom.xml | 2 +- .../nifi-framework/nifi-security/pom.xml | 2 +- .../nifi-framework/nifi-site-to-site/pom.xml | 2 +- .../src/test/resources/nifi.properties | 2 +- .../nifi-framework/nifi-user-actions/pom.xml | 2 +- .../nifi-web/nifi-custom-ui-utilities/pom.xml | 2 +- .../nifi-web/nifi-jetty/pom.xml | 2 +- .../nifi-web/nifi-ui-extension/pom.xml | 2 +- .../nifi-web/nifi-web-api/pom.xml | 6 +- .../resources/access-control/nifi.properties | 2 +- .../nifi-web/nifi-web-content-access/pom.xml | 2 +- .../nifi-web/nifi-web-content-viewer/pom.xml | 2 +- .../nifi-web/nifi-web-docs/pom.xml | 2 +- .../nifi-web/nifi-web-error/pom.xml | 2 +- .../nifi-web-optimistic-locking/pom.xml | 2 +- .../nifi-web/nifi-web-security/pom.xml | 2 +- .../nifi-web/nifi-web-ui/pom.xml | 2 +- .../WEB-INF/partials/canvas/about-dialog.jsp | 4 +- .../nifi-framework/nifi-web/pom.xml | 12 +-- .../nifi-framework/pom.xml | 2 +- .../nifi-framework-bundle/pom.xml | 38 ++++---- .../nifi-geo-bundle/nifi-geo-nar/pom.xml | 2 +- .../nifi-geo-processors/pom.xml | 2 +- nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml | 4 +- .../nifi-hadoop-nar/pom.xml | 2 +- .../nifi-hdfs-processors/pom.xml | 2 +- .../nifi-hadoop-bundle/pom.xml | 4 +- .../nifi-hadoop-libraries-nar/pom.xml | 2 +- .../nifi-hadoop-libraries-bundle/pom.xml | 2 +- .../nifi-hl7-bundle/nifi-hl7-nar/pom.xml | 4 +- .../nifi-hl7-processors/pom.xml | 4 +- nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml | 2 +- .../nifi-jetty-bundle/pom.xml | 2 +- .../nifi-kafka-bundle/nifi-kafka-nar/pom.xml | 2 +- .../nifi-kafka-processors/pom.xml | 2 +- .../nifi-kafka-bundle/pom.xml | 4 +- .../nifi-kite-bundle/nifi-kite-nar/pom.xml | 2 +- .../nifi-kite-processors/pom.xml | 2 +- .../nifi-nar-bundles/nifi-kite-bundle/pom.xml | 4 +- .../nifi-language-translation-nar/pom.xml | 4 +- .../nifi-yandex-processors/pom.xml | 2 +- .../nifi-language-translation-bundle/pom.xml | 2 +- .../nifi-mongodb-nar/pom.xml | 6 +- .../nifi-mongodb-processors/pom.xml | 2 +- .../nifi-mongodb-bundle/pom.xml | 4 +- .../pom.xml | 2 +- .../nifi-provenance-repository-nar/pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-provenance-repository-bundle/pom.xml | 6 +- .../nifi-social-media-nar/pom.xml | 4 +- .../nifi-twitter-processors/pom.xml | 2 +- .../nifi-social-media-bundle/pom.xml | 2 +- .../nifi-solr-bundle/nifi-solr-nar/pom.xml | 4 +- .../nifi-solr-processors/pom.xml | 2 +- .../nifi-nar-bundles/nifi-solr-bundle/pom.xml | 2 +- .../nifi-standard-content-viewer/pom.xml | 2 +- .../nifi-standard-nar/pom.xml | 2 +- .../nifi-standard-prioritizers/pom.xml | 2 +- .../nifi-standard-processors/pom.xml | 2 +- .../nifi-standard-reporting-tasks/pom.xml | 2 +- .../nifi-standard-bundle/pom.xml | 10 +- .../nifi-dbcp-service-api/pom.xml | 2 +- .../nifi-dbcp-service-nar/pom.xml | 4 +- .../nifi-dbcp-service/pom.xml | 4 +- .../nifi-dbcp-service-bundle/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-distributed-cache-protocol/pom.xml | 2 +- .../nifi-distributed-cache-server/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-http-context-map-api/pom.xml | 2 +- .../nifi-http-context-map-nar/pom.xml | 2 +- .../nifi-http-context-map/pom.xml | 2 +- .../nifi-http-context-map-bundle/pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-ssl-context-nar/pom.xml | 2 +- .../nifi-ssl-context-service/pom.xml | 2 +- .../nifi-ssl-context-bundle/pom.xml | 2 +- .../nifi-ssl-context-service-api/pom.xml | 2 +- .../nifi-standard-services-api-nar/pom.xml | 4 +- .../nifi-standard-services/pom.xml | 2 +- .../nifi-update-attribute-model/pom.xml | 2 +- .../nifi-update-attribute-nar/pom.xml | 2 +- .../nifi-update-attribute-processor/pom.xml | 2 +- .../nifi-update-attribute-ui/pom.xml | 2 +- .../nifi-update-attribute-bundle/pom.xml | 8 +- nifi/nifi-nar-bundles/pom.xml | 30 +++--- nifi/pom.xml | 94 +++++++++---------- 148 files changed, 325 insertions(+), 385 deletions(-) delete mode 100644 nifi/DISCLAIMER diff --git a/README.md b/README.md index 8a4fdba757..c71bb0fa82 100644 --- a/README.md +++ b/README.md @@ -20,15 +20,14 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist - [Getting Started](#getting-started) - [License](#license) -- [Disclaimer](#disclaimer) ## Getting Started -- Read through the [quickstart guide for development](http://nifi.incubator.apache.org/quickstart.html). +- Read through the [quickstart guide for development](http://nifi.apache.org/quickstart.html). It will include information on getting a local copy of the source, give pointers on issue tracking, and provide some warnings about common problems with development environments. - For a more comprehensive guide to development and information about contributing to the project - read through the [NiFi Developer's Guide](http://nifi.incubator.apache.org/developer-guide.html). + read through the [NiFi Developer's Guide](http://nifi.apache.org/developer-guide.html). - Optional: Build supporting modules. This should only be needed if the current 'nifi' module is in the process of updating to a new version of either the 'nifi-parent' or 'nifi-nar-maven-plugin' artifacts. @@ -44,7 +43,7 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist you'll see an erorr like the following: [ERROR] Non-resolvable parent POM: Could not find artifact - org.apache.nifi:nifi-parent:pom:1.0.0-incubating-SNAPSHOT in example.snapshots.repo + org.apache.nifi:nifi-parent:pom:1.0.0-SNAPSHOT in example.snapshots.repo (https://repository.example.com/content/repositories/snapshots) and 'parent.relativePath' points at no local POM @ line 18, column 13 -> [Help 2] - Build the nifi-nar-maven-plugin. Change directory to 'nifi-nar-maven-plugin' and @@ -54,18 +53,18 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist version you'll see an error like the following: [ERROR] Unresolveable build extension: Plugin - org.apache.nifi:nifi-nar-maven-plugin:1.0.1-incubating-SNAPSHOT or one of its + org.apache.nifi:nifi-nar-maven-plugin:1.0.1-SNAPSHOT or one of its dependencies could not be resolved: Could not find artifact - org.apache.nifi:nifi-nar-maven-plugin:jar:1.0.1-incubating-SNAPSHOT -> [Help 2] + org.apache.nifi:nifi-nar-maven-plugin:jar:1.0.1-SNAPSHOT -> [Help 2] - Build nifi. Change directory to 'nifi' and follow the directions found there in [README.md](nifi/README.md). - Run NiFi. The directions found in the [README.md](nifi/README.md) file within the 'nifi' module will also include how to run an instance of NiFi. For help on how to build your first data flow, - see the [NiFi User Guide](http://nifi.incubator.apache.org/docs/nifi-docs/user-guide.html). + see the [NiFi User Guide](http://nifi.apache.org/docs/nifi-docs/user-guide.html). ## Documentation -See http://nifi.incubator.apache.org/ for the latest documentation. +See http://nifi.apache.org/ for the latest documentation. ## License @@ -84,16 +83,3 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -## Disclaimer - -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - diff --git a/nifi-nar-maven-plugin/pom.xml b/nifi-nar-maven-plugin/pom.xml index f6e104c311..4e08f2ec00 100644 --- a/nifi-nar-maven-plugin/pom.xml +++ b/nifi-nar-maven-plugin/pom.xml @@ -18,13 +18,13 @@ org.apache.nifi nifi-parent - 1.0.0-incubating + 1.0.1-SNAPSHOT nifi-nar-maven-plugin - 1.0.2-incubating-SNAPSHOT + 1.0.2-SNAPSHOT maven-plugin - Apache NiFi Nar Plugin. It is currently a part of the Apache Incubator. + Apache NiFi Nar Plugin. diff --git a/nifi-parent/pom.xml b/nifi-parent/pom.xml index 9ccb6ec2bf..0370c97696 100644 --- a/nifi-parent/pom.xml +++ b/nifi-parent/pom.xml @@ -18,18 +18,18 @@ org.apache apache - 16 + 17 org.apache.nifi nifi-parent - 1.0.1-incubating-SNAPSHOT + 1.0.1-SNAPSHOT pom The nifi-parent enables each apache nifi project to ensure consistent approaches and DRY - http://nifi.incubator.apache.org + http://nifi.apache.org - Apache NiFi(incubating) Project - http://nifi.incubator.apache.org/ + Apache NiFi Project + http://nifi.apache.org/ @@ -40,26 +40,33 @@ Dev - dev-subscribe@nifi.incubator.apache.org - dev-unsubscribe@nifi.incubator.apache.org - dev@nifi.incubator.apache.org - http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev + dev-subscribe@nifi.apache.org + dev-unsubscribe@nifi.apache.org + dev@nifi.apache.org + http://mail-archives.apache.org/mod_mbox/nifi-dev + + + Users + users-subscribe@nifi.apache.org + users-unsubscribe@nifi.apache.org + users@nifi.apache.org + http://mail-archives.apache.org/mod_mbox/nifi-users Commits - commits-subscribe@nifi.incubator.apache.org - commits-unsubscribe@nifi.incubator.apache.org - commits@nifi.incubator.apache.org - http://mail-archives.apache.org/mod_mbox/incubator-nifi-commits + commits-subscribe@nifi.apache.org + commits-unsubscribe@nifi.apache.org + commits@nifi.apache.org + http://mail-archives.apache.org/mod_mbox/nifi-commits ${maven.min-version} - scm:git:git://git.apache.org/incubator-nifi.git - scm:git:https://git-wip-us.apache.org/repos/asf/incubator-nifi.git - https://git-wip-us.apache.org/repos/asf?p=incubator-nifi.git + scm:git:git://git.apache.org/nifi.git + scm:git:https://git-wip-us.apache.org/repos/asf/nifi.git + https://git-wip-us.apache.org/repos/asf?p=nifi.git HEAD diff --git a/nifi/DISCLAIMER b/nifi/DISCLAIMER deleted file mode 100644 index 0f8e7a1ecc..0000000000 --- a/nifi/DISCLAIMER +++ /dev/null @@ -1,15 +0,0 @@ -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - -For more information about the incubation status of the Apache NiFi project -you can go to the following page: - -http://nifi.incubator.apache.org/ diff --git a/nifi/README.md b/nifi/README.md index cffa09ad87..a680f7899b 100644 --- a/nifi/README.md +++ b/nifi/README.md @@ -23,7 +23,6 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist - [Getting Started](#getting-started) - [Getting Help](#getting-help) - [License](#license) -- [Disclaimer](#disclaimer) - [Export Control] (#export-control) ## Features @@ -75,9 +74,9 @@ To deploy: laptop:nifi fhampton$ cd nifi-assembly laptop:nifi-assembly fhampton$ ls -lhd target/nifi* - drwxr-xr-x 3 fhampton staff 102B Apr 30 00:29 target/nifi-0.1.0-incubating-SNAPSHOT-bin - -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-incubating-SNAPSHOT-bin.tar.gz - -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-incubating-SNAPSHOT-bin.zip + drwxr-xr-x 3 fhampton staff 102B Apr 30 00:29 target/nifi-0.1.0-SNAPSHOT-bin + -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-SNAPSHOT-bin.tar.gz + -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-SNAPSHOT-bin.zip - For testing ongoing development you could use the already unpacked build present in the directory named "nifi-*version*-bin", where *version* is the current project version. To deploy in another @@ -88,27 +87,27 @@ To deploy: laptop:nifi-assembly fhampton$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy laptop:nifi-assembly fhampton$ ls -lh ~/example-nifi-deploy/ total 0 - drwxr-xr-x 10 fhampton staff 340B Apr 30 01:06 nifi-0.1.0-incubating-SNAPSHOT + drwxr-xr-x 10 fhampton staff 340B Apr 30 01:06 nifi-0.1.0-SNAPSHOT To run NiFi: - Change directory to the location where you installed NiFi and run it. laptop:~ fhampton$ cd ~/example-nifi-deploy/nifi-* - laptop:nifi-0.1.0-incubating-SNAPSHOT fhampton$ ./bin/nifi.sh start + laptop:nifi-0.1.0-SNAPSHOT fhampton$ ./bin/nifi.sh start - Direct your browser to http://localhost:8080/nifi/ and you should see a screen like this screenshot: ![image of a NiFi dataflow canvas](nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png?raw=true) -- For help building your first data flow see the [NiFi User Guide](http://nifi.incubator.apache.org/docs/nifi-docs/user-guide.html) +- For help building your first data flow see the [NiFi User Guide](http://nifi.apache.org/docs/nifi-docs/user-guide.html) - If you are testing ongoing development, you will likely want to stop your instance. laptop:~ fhampton$ cd ~/example-nifi-deploy/nifi-* - laptop:nifi-0.1.0-incubating-SNAPSHOT fhampton$ ./bin/nifi.sh stop + laptop:nifi-0.1.0-SNAPSHOT fhampton$ ./bin/nifi.sh stop ## Getting Help -If you have questions, you can reach out to our mailing list: dev@nifi.incubator.apache.org -([archive](http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev)). +If you have questions, you can reach out to our mailing list: dev@nifi.apache.org +([archive](http://mail-archives.apache.org/mod_mbox/nifi-dev)). We're also often available in IRC: #nifi on [irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). @@ -129,19 +128,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -## Disclaimer - -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - ## Export Control This distribution includes cryptographic software. The country in which you diff --git a/nifi/nifi-api/pom.xml b/nifi/nifi-api/pom.xml index d8cb3fa175..5ea116ec4d 100644 --- a/nifi/nifi-api/pom.xml +++ b/nifi/nifi-api/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-api jar diff --git a/nifi/nifi-assembly/README.md b/nifi/nifi-assembly/README.md index 106505dbff..4fb4d3b458 100644 --- a/nifi/nifi-assembly/README.md +++ b/nifi/nifi-assembly/README.md @@ -14,7 +14,7 @@ --> # Apache NiFi -Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. It is currently apart of the Apache Incubator. +Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. ## Table of Contents @@ -23,7 +23,6 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist - [Getting Help](#getting-help) - [Requirements](#requirements) - [License](#license) -- [Disclaimer](#disclaimer) - [Export Control] (#export-control) ## Features @@ -55,8 +54,8 @@ To start NiFi: - Direct your browser to http://localhost:8080/nifi/ ## Getting Help -If you have questions, you can reach out to our mailing list: dev@nifi.incubator.apache.org -([archive](http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev)). +If you have questions, you can reach out to our mailing list: dev@nifi.apache.org +([archive](http://mail-archives.apache.org/mod_mbox/nifi-dev)). We're also often available in IRC: #nifi on [irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). @@ -80,19 +79,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -## Disclaimer - -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - ## Export Control This distribution includes cryptographic software. The country in which you diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml index 473b947ec5..8677c60f9b 100644 --- a/nifi/nifi-assembly/pom.xml +++ b/nifi/nifi-assembly/pom.xml @@ -14,11 +14,11 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-assembly pom - This is the assembly Apache NiFi (incubating) + This is the assembly Apache NiFi @@ -175,7 +175,7 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-dbcp-service-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar @@ -191,25 +191,25 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-social-media-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar
    @@ -398,10 +398,10 @@ language governing permissions and limitations under the License. --> org.codehaus.mojo rpm-maven-plugin - Apache NiFi (incubating) - Apache Nifi (incubating) is dataflow system based on the Flow-Based Programming concepts. + Apache NiFi + Apache NiFi is dataflow system based on the Flow-Based Programming concepts. Apache License, Version 2.0 and others (see included LICENSE file) - http://nifi.incubator.apache.org + http://nifi.apache.org Utilities /opt/nifi @@ -436,9 +436,6 @@ language governing permissions and limitations under the License. --> ./NOTICE - - ../DISCLAIMER - ./README.md README diff --git a/nifi/nifi-assembly/src/main/assembly/dependencies.xml b/nifi/nifi-assembly/src/main/assembly/dependencies.xml index 243d0acc37..0e5362c23d 100644 --- a/nifi/nifi-assembly/src/main/assembly/dependencies.xml +++ b/nifi/nifi-assembly/src/main/assembly/dependencies.xml @@ -122,13 +122,6 @@ 0644 true - - ../DISCLAIMER - ./ - DISCLAIMER - 0644 - true - ./LICENSE ./ diff --git a/nifi/nifi-bootstrap/pom.xml b/nifi/nifi-bootstrap/pom.xml index ad84fd76f4..1751b45926 100644 --- a/nifi/nifi-bootstrap/pom.xml +++ b/nifi/nifi-bootstrap/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-bootstrap jar diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml b/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml index 3d90401d20..c52064c519 100644 --- a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml +++ b/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-data-provenance-utils jar diff --git a/nifi/nifi-commons/nifi-expression-language/pom.xml b/nifi/nifi-commons/nifi-expression-language/pom.xml index d36e462d37..fb264715ec 100644 --- a/nifi/nifi-commons/nifi-expression-language/pom.xml +++ b/nifi/nifi-commons/nifi-expression-language/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-expression-language jar diff --git a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml b/nifi/nifi-commons/nifi-flowfile-packager/pom.xml index 8eaea1e8ff..6ff3c12f88 100644 --- a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml +++ b/nifi/nifi-commons/nifi-flowfile-packager/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-flowfile-packager jar diff --git a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml index e0dd314fe4..d12f8eab36 100644 --- a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml +++ b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-hl7-query-language diff --git a/nifi/nifi-commons/nifi-logging-utils/pom.xml b/nifi/nifi-commons/nifi-logging-utils/pom.xml index 1bb37b0c66..c0d4a83182 100644 --- a/nifi/nifi-commons/nifi-logging-utils/pom.xml +++ b/nifi/nifi-commons/nifi-logging-utils/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-logging-utils Utilities for logging diff --git a/nifi/nifi-commons/nifi-processor-utilities/pom.xml b/nifi/nifi-commons/nifi-processor-utilities/pom.xml index cc8718c90c..3eaeef476c 100644 --- a/nifi/nifi-commons/nifi-processor-utilities/pom.xml +++ b/nifi/nifi-commons/nifi-processor-utilities/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-processor-utils jar diff --git a/nifi/nifi-commons/nifi-properties/pom.xml b/nifi/nifi-commons/nifi-properties/pom.xml index 9432b7021b..574690fc0d 100644 --- a/nifi/nifi-commons/nifi-properties/pom.xml +++ b/nifi/nifi-commons/nifi-properties/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-properties diff --git a/nifi/nifi-commons/nifi-security-utils/pom.xml b/nifi/nifi-commons/nifi-security-utils/pom.xml index 3772fab101..2ad4a0b347 100644 --- a/nifi/nifi-commons/nifi-security-utils/pom.xml +++ b/nifi/nifi-commons/nifi-security-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-security-utils Contains security functionality. diff --git a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml b/nifi/nifi-commons/nifi-site-to-site-client/pom.xml index 43d5450315..43ca926c54 100644 --- a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml +++ b/nifi/nifi-commons/nifi-site-to-site-client/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-site-to-site-client @@ -42,7 +42,7 @@ org.apache.nifi nifi-client-dto - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT diff --git a/nifi/nifi-commons/nifi-socket-utils/pom.xml b/nifi/nifi-commons/nifi-socket-utils/pom.xml index 80ca8603c3..24b8bc7a66 100644 --- a/nifi/nifi-commons/nifi-socket-utils/pom.xml +++ b/nifi/nifi-commons/nifi-socket-utils/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-socket-utils Utilities for socket communication diff --git a/nifi/nifi-commons/nifi-utils/pom.xml b/nifi/nifi-commons/nifi-utils/pom.xml index 7a1bf01be3..de698dcf9a 100644 --- a/nifi/nifi-commons/nifi-utils/pom.xml +++ b/nifi/nifi-commons/nifi-utils/pom.xml @@ -18,10 +18,10 @@ org.apache.nifi nifi-commons - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nifi-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT jar org.apache.nifi nifi-api - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT provided org.apache.nifi nifi-runtime - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT provided org.apache.nifi nifi-nar-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT provided org.apache.nifi nifi-properties - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT provided diff --git a/nifi/pom.xml b/nifi/pom.xml index 22dbaf69cb..2365300228 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -18,13 +18,13 @@ org.apache.nifi nifi-parent - 1.0.0-incubating + 1.0.1-SNAPSHOT nifi - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT pom - Apache NiFi(incubating) is an easy to use, powerful, and reliable system to process and distribute data. + Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. nifi-commons nifi-api @@ -619,67 +619,67 @@ org.apache.nifi nifi-api - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-site-to-site-client - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-web-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-expression-language - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-custom-ui-utilities - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-ui-extension - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-flowfile-packager - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-socket-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-data-provenance-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-runtime - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-bootstrap - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-resources - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT resources runtime zip @@ -687,7 +687,7 @@ org.apache.nifi nifi-docs - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT resources runtime zip @@ -695,168 +695,168 @@ org.apache.nifi nifi-framework-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-provenance-repository-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-standard-services-api-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-ssl-context-service-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-distributed-cache-services-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-standard-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-jetty-bundle - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-update-attribute-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-hadoop-libraries-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-hadoop-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-kite-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-mongodb-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-solr-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-kafka-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-http-context-map-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-social-media-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-flume-nar - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT nar org.apache.nifi nifi-properties - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-security-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-logging-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-nar-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-processor-utils - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-mock - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT test org.apache.nifi nifi-write-ahead-log - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-dbcp-service - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT org.apache.nifi nifi-dbcp-service-api - 0.2.1-incubating-SNAPSHOT + 0.2.1-SNAPSHOT com.jayway.jsonpath @@ -911,7 +911,7 @@ org.apache.nifi nifi-nar-maven-plugin - 1.0.1-incubating + 1.0.2-SNAPSHOT true From a8eb0c7d868648f9bb3da89fc1894ceed728ec4b Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 02:06:29 -0400 Subject: [PATCH 33/77] NIFI-768 --- nifi-site/src/pages/html/people.hbs | 48 +++++------------------------ 1 file changed, 8 insertions(+), 40 deletions(-) diff --git a/nifi-site/src/pages/html/people.hbs b/nifi-site/src/pages/html/people.hbs index 3a834b6f12..0da23ebae9 100644 --- a/nifi-site/src/pages/html/people.hbs +++ b/nifi-site/src/pages/html/people.hbs @@ -13,9 +13,7 @@ title: Apache NiFi Team
    -

    A successful project requires many people to play many roles. Some members write code, provide project mentorship, or author documentation. Others are valuable as testers, submitting patches and suggestions.

    -

    The team is comprised of Project Management Committee Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

    @@ -23,7 +21,7 @@ title: Apache NiFi Team

    - PPMC Members + PMC Members

    @@ -41,41 +39,11 @@ title: Apache NiFi Team Aldrin Piri - - apurtell - Andrew Purtell - Mentor - - - arvind - Arvind Prabhakar - Mentor - - - billie - Billie Rinaldi - Mentor - - - bimargulies - Benson Margulies - Champion - - - brock - Brock Noland - Mentor - devriesb Brandon DeVries - - drew - Drew Farris - Mentor - jcarey Jason Carey @@ -111,12 +79,7 @@ title: Apache NiFi Team Tony Kurc - - wikier - Sergio Fernandez - Mentor - - + danbress Dan Bress @@ -128,4 +91,9 @@ title: Apache NiFi Team - \ No newline at end of file +
    +
    +

    The team is comprised of Project Management Committee Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

    The Apache NiFi project greatly appreciates the help of our mentors while in the Apache Incubator. Our mentors included Benson Margulies, Drew Farris, Andrew Purtell, Arvind Prabhakar, Billie Rinaldi, Sergio Fernandez, and Brock Noland. +

    +
    + From 6cac136b480bd42ecf03c99fe30e9ab519f04cfb Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 08:58:30 -0400 Subject: [PATCH 34/77] NIFI-768 --- nifi-site/src/pages/html/people.hbs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nifi-site/src/pages/html/people.hbs b/nifi-site/src/pages/html/people.hbs index 0da23ebae9..dac323d4e1 100644 --- a/nifi-site/src/pages/html/people.hbs +++ b/nifi-site/src/pages/html/people.hbs @@ -89,6 +89,11 @@ title: Apache NiFi Team Bryan Bende + + bimargulies + Benson Margulie + +
    From fb570ed7ef70c18444075cbfee4339b93a4a12d9 Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 18 Jul 2015 22:12:39 -0400 Subject: [PATCH 35/77] NIFI-768 updated to 030-SNAPSHOT --- nifi/nifi-api/pom.xml | 2 +- nifi/nifi-assembly/pom.xml | 12 +-- nifi/nifi-bootstrap/pom.xml | 2 +- .../nifi-data-provenance-utils/pom.xml | 2 +- .../nifi-expression-language/pom.xml | 2 +- .../nifi-flowfile-packager/pom.xml | 2 +- .../nifi-hl7-query-language/pom.xml | 2 +- nifi/nifi-commons/nifi-logging-utils/pom.xml | 2 +- .../nifi-processor-utilities/pom.xml | 2 +- nifi/nifi-commons/nifi-properties/pom.xml | 2 +- nifi/nifi-commons/nifi-security-utils/pom.xml | 2 +- .../nifi-site-to-site-client/pom.xml | 4 +- nifi/nifi-commons/nifi-socket-utils/pom.xml | 2 +- nifi/nifi-commons/nifi-utils/pom.xml | 4 +- nifi/nifi-commons/nifi-web-utils/pom.xml | 2 +- .../nifi-commons/nifi-write-ahead-log/pom.xml | 2 +- nifi/nifi-commons/pom.xml | 2 +- nifi/nifi-docs/pom.xml | 2 +- .../nifi-nifi-example-nar/pom.xml | 2 +- .../nifi-nifi-example-processors/pom.xml | 2 +- .../nifi-external/nifi-example-bundle/pom.xml | 4 +- .../nifi-external/nifi-spark-receiver/pom.xml | 2 +- nifi/nifi-external/nifi-storm-spout/pom.xml | 2 +- nifi/nifi-external/pom.xml | 2 +- .../nifi-processor-bundle-archetype/pom.xml | 2 +- nifi/nifi-maven-archetypes/pom.xml | 2 +- nifi/nifi-mock/pom.xml | 2 +- .../nifi-aws-bundle/nifi-aws-nar/pom.xml | 4 +- .../nifi-aws-processors/pom.xml | 2 +- nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml | 2 +- .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 4 +- .../nifi-flume-processors/pom.xml | 2 +- .../nifi-flume-bundle/pom.xml | 6 +- .../nifi-framework-nar/pom.xml | 2 +- .../nifi-administration/pom.xml | 2 +- .../nifi-framework/nifi-client-dto/pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-framework/nifi-documentation/pom.xml | 2 +- .../nifi-file-authorization-provider/pom.xml | 2 +- .../nifi-framework-cluster-protocol/pom.xml | 2 +- .../nifi-framework-cluster-web/pom.xml | 2 +- .../nifi-framework-cluster/pom.xml | 2 +- .../nifi-framework-core-api/pom.xml | 2 +- .../nifi-framework-core/pom.xml | 2 +- .../nifi-framework/nifi-nar-utils/pom.xml | 2 +- .../nifi-framework/nifi-resources/pom.xml | 2 +- .../nifi-framework/nifi-runtime/pom.xml | 2 +- .../nifi-framework/nifi-security/pom.xml | 2 +- .../nifi-framework/nifi-site-to-site/pom.xml | 2 +- .../nifi-framework/nifi-user-actions/pom.xml | 2 +- .../nifi-web/nifi-custom-ui-utilities/pom.xml | 2 +- .../nifi-web/nifi-jetty/pom.xml | 2 +- .../nifi-web/nifi-ui-extension/pom.xml | 2 +- .../nifi-web/nifi-web-api/pom.xml | 2 +- .../nifi-web/nifi-web-content-access/pom.xml | 2 +- .../nifi-web/nifi-web-content-viewer/pom.xml | 2 +- .../nifi-web/nifi-web-docs/pom.xml | 2 +- .../nifi-web/nifi-web-error/pom.xml | 2 +- .../nifi-web-optimistic-locking/pom.xml | 2 +- .../nifi-web/nifi-web-security/pom.xml | 2 +- .../nifi-web/nifi-web-ui/pom.xml | 2 +- .../nifi-framework/nifi-web/pom.xml | 12 +-- .../nifi-framework/pom.xml | 2 +- .../nifi-framework-bundle/pom.xml | 38 ++++---- .../nifi-geo-bundle/nifi-geo-nar/pom.xml | 2 +- .../nifi-geo-processors/pom.xml | 2 +- nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml | 4 +- .../nifi-hadoop-nar/pom.xml | 2 +- .../nifi-hdfs-processors/pom.xml | 2 +- .../nifi-hadoop-bundle/pom.xml | 4 +- .../nifi-hadoop-libraries-nar/pom.xml | 2 +- .../nifi-hadoop-libraries-bundle/pom.xml | 2 +- .../nifi-hl7-bundle/nifi-hl7-nar/pom.xml | 4 +- .../nifi-hl7-processors/pom.xml | 4 +- nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml | 2 +- .../nifi-jetty-bundle/pom.xml | 2 +- .../nifi-kafka-bundle/nifi-kafka-nar/pom.xml | 2 +- .../nifi-kafka-processors/pom.xml | 2 +- .../nifi-kafka-bundle/pom.xml | 4 +- .../nifi-kite-bundle/nifi-kite-nar/pom.xml | 2 +- .../nifi-kite-processors/pom.xml | 2 +- .../nifi-nar-bundles/nifi-kite-bundle/pom.xml | 4 +- .../nifi-language-translation-nar/pom.xml | 4 +- .../nifi-yandex-processors/pom.xml | 2 +- .../nifi-language-translation-bundle/pom.xml | 2 +- .../nifi-mongodb-nar/pom.xml | 6 +- .../nifi-mongodb-processors/pom.xml | 2 +- .../nifi-mongodb-bundle/pom.xml | 4 +- .../pom.xml | 2 +- .../nifi-provenance-repository-nar/pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-provenance-repository-bundle/pom.xml | 6 +- .../nifi-social-media-nar/pom.xml | 4 +- .../nifi-twitter-processors/pom.xml | 2 +- .../nifi-social-media-bundle/pom.xml | 2 +- .../nifi-solr-bundle/nifi-solr-nar/pom.xml | 4 +- .../nifi-solr-processors/pom.xml | 2 +- .../nifi-nar-bundles/nifi-solr-bundle/pom.xml | 2 +- .../nifi-standard-content-viewer/pom.xml | 2 +- .../nifi-standard-nar/pom.xml | 2 +- .../nifi-standard-prioritizers/pom.xml | 2 +- .../nifi-standard-processors/pom.xml | 2 +- .../nifi-standard-reporting-tasks/pom.xml | 2 +- .../nifi-standard-bundle/pom.xml | 10 +-- .../nifi-dbcp-service-api/pom.xml | 2 +- .../nifi-dbcp-service-nar/pom.xml | 4 +- .../nifi-dbcp-service/pom.xml | 4 +- .../nifi-dbcp-service-bundle/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-distributed-cache-protocol/pom.xml | 2 +- .../nifi-distributed-cache-server/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-http-context-map-api/pom.xml | 2 +- .../nifi-http-context-map-nar/pom.xml | 2 +- .../nifi-http-context-map/pom.xml | 2 +- .../nifi-http-context-map-bundle/pom.xml | 2 +- .../pom.xml | 2 +- .../nifi-ssl-context-nar/pom.xml | 2 +- .../nifi-ssl-context-service/pom.xml | 2 +- .../nifi-ssl-context-bundle/pom.xml | 2 +- .../nifi-ssl-context-service-api/pom.xml | 2 +- .../nifi-standard-services-api-nar/pom.xml | 4 +- .../nifi-standard-services/pom.xml | 2 +- .../nifi-update-attribute-model/pom.xml | 2 +- .../nifi-update-attribute-nar/pom.xml | 2 +- .../nifi-update-attribute-processor/pom.xml | 2 +- .../nifi-update-attribute-ui/pom.xml | 2 +- .../nifi-update-attribute-bundle/pom.xml | 8 +- nifi/nifi-nar-bundles/pom.xml | 30 +++---- nifi/pom.xml | 88 +++++++++---------- 132 files changed, 248 insertions(+), 248 deletions(-) diff --git a/nifi/nifi-api/pom.xml b/nifi/nifi-api/pom.xml index 5ea116ec4d..ffdf1925bc 100644 --- a/nifi/nifi-api/pom.xml +++ b/nifi/nifi-api/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-api jar diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml index 8677c60f9b..3e154d6db8 100644 --- a/nifi/nifi-assembly/pom.xml +++ b/nifi/nifi-assembly/pom.xml @@ -14,7 +14,7 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-assembly pom @@ -175,7 +175,7 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-dbcp-service-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar @@ -191,25 +191,25 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-social-media-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar diff --git a/nifi/nifi-bootstrap/pom.xml b/nifi/nifi-bootstrap/pom.xml index 1751b45926..508697bf4e 100644 --- a/nifi/nifi-bootstrap/pom.xml +++ b/nifi/nifi-bootstrap/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-bootstrap jar diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml b/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml index c52064c519..5481cd2866 100644 --- a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml +++ b/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-data-provenance-utils jar diff --git a/nifi/nifi-commons/nifi-expression-language/pom.xml b/nifi/nifi-commons/nifi-expression-language/pom.xml index fb264715ec..3f0b8be522 100644 --- a/nifi/nifi-commons/nifi-expression-language/pom.xml +++ b/nifi/nifi-commons/nifi-expression-language/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-expression-language jar diff --git a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml b/nifi/nifi-commons/nifi-flowfile-packager/pom.xml index 6ff3c12f88..7173f03777 100644 --- a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml +++ b/nifi/nifi-commons/nifi-flowfile-packager/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-flowfile-packager jar diff --git a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml index d12f8eab36..297b106c22 100644 --- a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml +++ b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-hl7-query-language diff --git a/nifi/nifi-commons/nifi-logging-utils/pom.xml b/nifi/nifi-commons/nifi-logging-utils/pom.xml index c0d4a83182..8f268ea4fe 100644 --- a/nifi/nifi-commons/nifi-logging-utils/pom.xml +++ b/nifi/nifi-commons/nifi-logging-utils/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-logging-utils Utilities for logging diff --git a/nifi/nifi-commons/nifi-processor-utilities/pom.xml b/nifi/nifi-commons/nifi-processor-utilities/pom.xml index 3eaeef476c..2352c277e2 100644 --- a/nifi/nifi-commons/nifi-processor-utilities/pom.xml +++ b/nifi/nifi-commons/nifi-processor-utilities/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-processor-utils jar diff --git a/nifi/nifi-commons/nifi-properties/pom.xml b/nifi/nifi-commons/nifi-properties/pom.xml index 574690fc0d..32dbf40b1a 100644 --- a/nifi/nifi-commons/nifi-properties/pom.xml +++ b/nifi/nifi-commons/nifi-properties/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-properties diff --git a/nifi/nifi-commons/nifi-security-utils/pom.xml b/nifi/nifi-commons/nifi-security-utils/pom.xml index 2ad4a0b347..4e222e07c3 100644 --- a/nifi/nifi-commons/nifi-security-utils/pom.xml +++ b/nifi/nifi-commons/nifi-security-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-security-utils Contains security functionality. diff --git a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml b/nifi/nifi-commons/nifi-site-to-site-client/pom.xml index 43ca926c54..01b3aecf21 100644 --- a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml +++ b/nifi/nifi-commons/nifi-site-to-site-client/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-site-to-site-client @@ -42,7 +42,7 @@ org.apache.nifi nifi-client-dto - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT diff --git a/nifi/nifi-commons/nifi-socket-utils/pom.xml b/nifi/nifi-commons/nifi-socket-utils/pom.xml index 24b8bc7a66..4ed05ef99f 100644 --- a/nifi/nifi-commons/nifi-socket-utils/pom.xml +++ b/nifi/nifi-commons/nifi-socket-utils/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-socket-utils Utilities for socket communication diff --git a/nifi/nifi-commons/nifi-utils/pom.xml b/nifi/nifi-commons/nifi-utils/pom.xml index de698dcf9a..6927fc0c19 100644 --- a/nifi/nifi-commons/nifi-utils/pom.xml +++ b/nifi/nifi-commons/nifi-utils/pom.xml @@ -18,10 +18,10 @@ org.apache.nifi nifi-commons - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nifi-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT jar org.apache.nifi nifi-api - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT provided org.apache.nifi nifi-runtime - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT provided org.apache.nifi nifi-nar-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT provided org.apache.nifi nifi-properties - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT provided diff --git a/nifi/pom.xml b/nifi/pom.xml index 2365300228..8498a374ad 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -22,7 +22,7 @@ nifi - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT pom Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. @@ -619,67 +619,67 @@ org.apache.nifi nifi-api - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-site-to-site-client - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-web-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-expression-language - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-custom-ui-utilities - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-ui-extension - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-flowfile-packager - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-socket-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-data-provenance-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-runtime - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-bootstrap - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-resources - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT resources runtime zip @@ -687,7 +687,7 @@ org.apache.nifi nifi-docs - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT resources runtime zip @@ -695,168 +695,168 @@ org.apache.nifi nifi-framework-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-provenance-repository-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-standard-services-api-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-ssl-context-service-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-distributed-cache-services-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-standard-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-jetty-bundle - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-update-attribute-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-hadoop-libraries-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-hadoop-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-kite-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-mongodb-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-solr-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-kafka-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-http-context-map-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-social-media-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-flume-nar - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT nar org.apache.nifi nifi-properties - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-security-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-logging-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-nar-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-processor-utils - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-mock - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT test org.apache.nifi nifi-write-ahead-log - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-dbcp-service - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT org.apache.nifi nifi-dbcp-service-api - 0.2.1-SNAPSHOT + 0.3.0-SNAPSHOT com.jayway.jsonpath From 42c07a38d4eb003e54ff89c18bb99beb474c4c0e Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Sun, 19 Jul 2015 10:40:46 -0400 Subject: [PATCH 36/77] NIFI-775: Ignore unit tests that fail on windows --- .../apache/nifi/processors/flume/ExecuteFlumeSinkTest.java | 6 ++++-- .../nifi/processors/flume/ExecuteFlumeSourceTest.java | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java index 6a0c40d13d..4d3bf4e2a6 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java @@ -17,6 +17,7 @@ package org.apache.nifi.processors.flume; import java.io.File; + import static org.junit.Assert.assertEquals; import java.io.FilenameFilter; @@ -26,10 +27,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; + import org.apache.commons.io.filefilter.HiddenFileFilter; import org.apache.flume.sink.NullSink; import org.apache.flume.source.AvroSource; - import org.apache.nifi.components.ValidationResult; import org.apache.nifi.flowfile.attributes.CoreAttributes; import org.apache.nifi.processor.ProcessContext; @@ -37,8 +38,8 @@ import org.apache.nifi.util.MockProcessContext; import org.apache.nifi.util.TestRunner; import org.apache.nifi.util.TestRunners; import org.apache.nifi.util.file.FileUtils; - import org.junit.Assert; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -135,6 +136,7 @@ public class ExecuteFlumeSinkTest { } @Test + @Ignore("Does not work on Windows") public void testHdfsSink() throws IOException { File destDir = temp.newFolder("hdfs"); diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java index 924776ee5d..2f40e5c782 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java @@ -23,9 +23,9 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.concurrent.TimeUnit; + import org.apache.flume.sink.NullSink; import org.apache.flume.source.AvroSource; - import org.apache.nifi.components.ValidationResult; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.util.MockFlowFile; @@ -33,8 +33,8 @@ import org.apache.nifi.util.MockProcessContext; import org.apache.nifi.util.TestRunner; import org.apache.nifi.util.TestRunners; import org.apache.nifi.util.file.FileUtils; - import org.junit.Assert; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -118,6 +118,7 @@ public class ExecuteFlumeSourceTest { } @Test + @Ignore("Does not work on Windows") public void testSourceWithConfig() throws IOException { File spoolDirectory = temp.newFolder("spooldir"); File dst = new File(spoolDirectory, "records.txt"); From bca9acbf4f19d4b946c66571ee421a19718d21b9 Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Sun, 19 Jul 2015 14:20:49 -0400 Subject: [PATCH 37/77] NIFI-768: Providing updated links for downloads to reflect the new structure of NiFi as TLP --- nifi-site/src/pages/html/download.hbs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index 04da8c4414..c59f547ca2 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -29,14 +29,14 @@ title: Apache NiFi Downloads
  • Sources:
  • Binaries
  • @@ -48,14 +48,14 @@ title: Apache NiFi Downloads
  • Sources:
  • Binaries
  • From 9f75cad4110ba549c7f560c72c8ad0a69101cd56 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Sun, 19 Jul 2015 15:08:48 -0400 Subject: [PATCH 38/77] NIFI-776: - Allowing tooltips to break words to wrap. --- .../nifi-web/nifi-web-ui/src/main/webapp/css/main.css | 1 + 1 file changed, 1 insertion(+) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css index 70916c6c8f..aa12602e75 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css @@ -116,6 +116,7 @@ div.nifi-tooltip { background-color: #FFFFA3; color: #454545; max-width: 500px; + word-wrap: break-word; } .ellipsis { From a19390cdecfd85f1b165f95cb4901b9366e627a0 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Mon, 20 Jul 2015 09:46:58 -0400 Subject: [PATCH 39/77] NIFI-777: - Ensuring the account request form is shown. --- .../src/main/webapp/js/nf/nf-common.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js index 110d383057..e08ad9e37f 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js @@ -184,6 +184,16 @@ nf.Common = { * @argument {string} error The error */ handleAjaxError: function (xhr, status, error) { + // show the account registration page if necessary + if (xhr.status === 401 && $('#registration-pane').length) { + // show the registration pane + $('#registration-pane').show(); + + // close the canvas + nf.Common.closeCanvas(); + return; + } + // if an error occurs while the splash screen is visible close the canvas show the error message if ($('#splash').is(':visible')) { $('#message-title').text('An unexpected error has occurred'); @@ -207,12 +217,6 @@ nf.Common = { dialogContent: nf.Common.escapeHtml(xhr.responseText), overlayBackground: false }); - } else if (xhr.status === 401 && $('#registration-pane').length) { - // show the registration pane - $('#registration-pane').show(); - - // close the canvas - nf.Common.closeCanvas(); } else { if (xhr.status < 99 || xhr.status === 12007 || xhr.status === 12029) { var content = 'Please ensure the application is running and check the logs for any errors.'; From dcd9739bc36f1ba73d27b4bcb1c7158bcd9da5cd Mon Sep 17 00:00:00 2001 From: Joe Skora Date: Fri, 17 Jul 2015 00:31:21 -0400 Subject: [PATCH 40/77] NIFI-769: - Add test for and fix bug in ByteCountingInputStream reset method. Signed-off-by: Mark Payne --- .../stream/io/ByteCountingInputStream.java | 1 + .../io/ByteCountingInputStreamTest.java | 55 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java b/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java index d1ed023888..e9b8c9ea72 100644 --- a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java +++ b/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java @@ -100,6 +100,7 @@ public class ByteCountingInputStream extends InputStream { public void reset() throws IOException { in.reset(); bytesRead -= bytesSinceMark; + bytesSinceMark = 0L; } @Override diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java b/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java new file mode 100644 index 0000000000..27b149341b --- /dev/null +++ b/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.stream.io; + +import junit.framework.TestCase; + +public class ByteCountingInputStreamTest extends TestCase { + + final ByteArrayInputStream reader = new ByteArrayInputStream("abcdefghijklmnopqrstuvwxyz".getBytes()); + + public void testReset() throws Exception { + + final ByteArrayInputStream reader = new ByteArrayInputStream("abcdefghijklmnopqrstuvwxyz".getBytes()); + final ByteCountingInputStream bcis = new ByteCountingInputStream(reader); + int tmp; + + /* verify first 2 bytes */ + tmp = bcis.read(); + assertEquals(tmp, 97); + tmp = bcis.read(); + assertEquals(tmp, 98); + + /* save bytes read and place mark */ + final long bytesAtMark = bcis.getBytesRead(); + bcis.mark(0); + + /* verify next 2 bytes */ + tmp = bcis.read(); + assertEquals(tmp, 99); + tmp = bcis.read(); + assertEquals(tmp, 100); + + /* verify reset returns to position when mark was placed */ + bcis.reset(); + assertEquals(bytesAtMark, bcis.getBytesRead()); + + /* verify that the reset bug has been fixed (bug would reduce bytes read count) */ + bcis.reset(); + assertEquals(bytesAtMark, bcis.getBytesRead()); + } +} \ No newline at end of file From bddb8b1fe568d8e1e181d007666fa262a8a19b96 Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Sun, 19 Jul 2015 15:32:17 -0400 Subject: [PATCH 41/77] NIFI-770 Adding AWS nar to the assembly NIFI-770 Removing versions from nars in assembly pom --- nifi/nifi-assembly/pom.xml | 10 +++++----- nifi/pom.xml | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml index 3e154d6db8..60a6545f33 100644 --- a/nifi/nifi-assembly/pom.xml +++ b/nifi/nifi-assembly/pom.xml @@ -175,7 +175,6 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-dbcp-service-nar - 0.3.0-SNAPSHOT nar @@ -191,25 +190,26 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-social-media-nar - 0.3.0-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.3.0-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.3.0-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.3.0-SNAPSHOT + nar + + + org.apache.nifi + nifi-aws-nar nar diff --git a/nifi/pom.xml b/nifi/pom.xml index 8498a374ad..2770daf9b3 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -806,12 +806,24 @@ 0.3.0-SNAPSHOT nar + + org.apache.nifi + nifi-aws-nar + 0.3.0-SNAPSHOT + nar + org.apache.nifi nifi-flume-nar 0.3.0-SNAPSHOT nar + + org.apache.nifi + nifi-dbcp-service-nar + 0.3.0-SNAPSHOT + nar + org.apache.nifi nifi-properties From 5b47f52f62284f35506fd55a672915a4003a60a4 Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Tue, 21 Jul 2015 08:18:54 -0400 Subject: [PATCH 42/77] Adding Jackson to assembly NOTICE file --- nifi/nifi-assembly/NOTICE | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/nifi/nifi-assembly/NOTICE b/nifi/nifi-assembly/NOTICE index f71f98ce55..118ab49861 100644 --- a/nifi/nifi-assembly/NOTICE +++ b/nifi/nifi-assembly/NOTICE @@ -149,6 +149,29 @@ The following binary components are provided under the Apache Software License v IRClib -- A Java Internet Relay Chat library -- Copyright (C) 2002 - 2006 Christoph Schwering + (ASLv2) Jackson JSON processor + The following NOTICE information applies: + # Jackson JSON processor + + Jackson is a high-performance, Free/Open Source JSON processing library. + It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has + been in development since 2007. + It is currently developed by a community of developers, as well as supported + commercially by FasterXML.com. + + ## Licensing + + Jackson core and extension components may licensed under different licenses. + To find the details that apply to this artifact see the accompanying LICENSE file. + For more information, including possible other licensing options, contact + FasterXML.com (http://fasterxml.com). + + ## Credits + + A list of contributors may be found from CREDITS file, which is included + in some artifacts (usually source distributions); but is always available + from the source code management (SCM) system project uses. + (ASLv2) Apache Thrift The following NOTICE information applies: Apache Thrift From 133649b4b4001f55dcb8cd756c461ad9cc5fc264 Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Tue, 21 Jul 2015 14:46:53 -0700 Subject: [PATCH 43/77] Updating broken link for quickstart in the release guide to point to the correct location. --- nifi-site/src/pages/markdown/release-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-site/src/pages/markdown/release-guide.md b/nifi-site/src/pages/markdown/release-guide.md index 6f071249b5..ed46c0d781 100644 --- a/nifi-site/src/pages/markdown/release-guide.md +++ b/nifi-site/src/pages/markdown/release-guide.md @@ -277,7 +277,7 @@ The Apache NiFi team ``` -[quickstart-guide]: http://nifi.apache.org/development/quickstart.html +[quickstart-guide]: http://nifi.apache.org/quickstart.html [release-manager]: http://www.apache.org/dev/release-publishing.html#release_manager [release-announce]: http://www.apache.org/dev/release.html#release-announcements [apache-license]: http://apache.org/licenses/LICENSE-2.0 From c0144f23a34f975febbfccc361f80ccfaea840cd Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Wed, 22 Jul 2015 15:04:26 -0400 Subject: [PATCH 44/77] NIFI-780 Adding dependency management to solr bundle pom to override httpclient version --- nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml index 4aee515823..c7395df12f 100644 --- a/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml @@ -36,4 +36,15 @@ nifi-solr-nar
    + + + + + org.apache.httpcomponents + httpclient + 4.3.1 + + + + From cafddb6568818cdb669472f56fe4702c04809a7b Mon Sep 17 00:00:00 2001 From: joewitt Date: Thu, 23 Jul 2015 08:56:03 -0700 Subject: [PATCH 45/77] NIFI-783 --- nifi-site/src/pages/html/download.hbs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index c59f547ca2..857d29f47f 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -25,6 +25,8 @@ title: Apache NiFi Downloads
    • 0.2.0-incubating
        +
      • Note: This release is considered unstable due to NIFI-777. + This will be addressed in 0.2.1.
      • Release Notes
      • Sources: From 4a43e81343b4eaf967a7e5a5417fd7bb35226503 Mon Sep 17 00:00:00 2001 From: Brian Ghigiarelli Date: Thu, 23 Jul 2015 22:52:35 -0400 Subject: [PATCH 46/77] [NIFI-784] Moving dynamic propertyMap to onScheduled method and updating logger statements to use lazy evaluation with String formatter --- .../processors/standard/RouteOnAttribute.java | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java index 69107ddd5a..52dc80b129 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java @@ -27,12 +27,14 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicReference; import org.apache.nifi.annotation.behavior.DynamicProperty; +import org.apache.nifi.annotation.behavior.DynamicRelationship; import org.apache.nifi.annotation.behavior.EventDriven; import org.apache.nifi.annotation.behavior.SideEffectFree; import org.apache.nifi.annotation.behavior.SupportsBatching; import org.apache.nifi.annotation.documentation.CapabilityDescription; -import org.apache.nifi.annotation.behavior.DynamicRelationship; import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.PropertyValue; @@ -103,6 +105,8 @@ public class RouteOnAttribute extends AbstractProcessor { private volatile String configuredRouteStrategy = ROUTE_STRATEGY.getDefaultValue(); private volatile Set dynamicPropertyNames = new HashSet<>(); + private final Map propertyMap = new HashMap<>(); + @Override protected void init(final ProcessorInitializationContext context) { final Set set = new HashSet<>(); @@ -166,6 +170,27 @@ public class RouteOnAttribute extends AbstractProcessor { this.relationships.set(newRelationships); } + /** + * When this processor is + * @param context + */ + @OnScheduled + public void onScheduled(final ProcessContext context) { + for (final PropertyDescriptor descriptor : context.getProperties().keySet()) { + if (!descriptor.isDynamic()) { + continue; + } + getLogger().debug("Adding new dynamic property: {}", new Object[]{descriptor}); + propertyMap.put(new Relationship.Builder().name(descriptor.getName()).build(), context.getProperty(descriptor)); + } + } + + @OnUnscheduled + public void onUnscheduled(final ProcessContext context) { + getLogger().debug("Clearing propertyMap"); + propertyMap.clear(); + } + @Override public void onTrigger(final ProcessContext context, final ProcessSession session) { FlowFile flowFile = session.get(); @@ -174,14 +199,6 @@ public class RouteOnAttribute extends AbstractProcessor { } final ProcessorLog logger = getLogger(); - final Map propertyMap = new HashMap<>(); - for (final PropertyDescriptor descriptor : context.getProperties().keySet()) { - if (!descriptor.isDynamic()) { - continue; - } - - propertyMap.put(new Relationship.Builder().name(descriptor.getName()).build(), context.getProperty(descriptor)); - } final Set matchingRelationships = new HashSet<>(); for (final Map.Entry entry : propertyMap.entrySet()) { @@ -216,7 +233,7 @@ public class RouteOnAttribute extends AbstractProcessor { } if (destinationRelationships.isEmpty()) { - logger.info(this + " routing " + flowFile + " to unmatched"); + logger.info("{} routing {} to unmatched", new Object[]{ this, flowFile }); flowFile = session.putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, REL_NO_MATCH.getName()); session.getProvenanceReporter().route(flowFile, REL_NO_MATCH); session.transfer(flowFile, REL_NO_MATCH); @@ -236,7 +253,7 @@ public class RouteOnAttribute extends AbstractProcessor { // now transfer any clones generated for (final Map.Entry entry : transferMap.entrySet()) { - logger.info(this + " cloned " + flowFile + " into " + entry.getValue() + " and routing clone to relationship " + entry.getKey()); + logger.info("{} cloned {} into {} and routing clone to relationship {}", new Object[]{ this, flowFile, entry.getValue(), entry.getKey() }); FlowFile updatedFlowFile = session.putAttribute(entry.getValue(), ROUTE_ATTRIBUTE_KEY, entry.getKey().getName()); session.getProvenanceReporter().route(updatedFlowFile, entry.getKey()); session.transfer(updatedFlowFile, entry.getKey()); From 85079020967918a5afeb4eba8c9e6e99766a1718 Mon Sep 17 00:00:00 2001 From: Brian Ghigiarelli Date: Fri, 24 Jul 2015 15:26:22 -0400 Subject: [PATCH 47/77] [NIFI-784] Per review feedback, updating to use OnStopped insted of OnUnscheduled to avoid concurrency issue updating propertyMap. Also removed this from logger statements since it is already included --- .../processors/standard/RouteOnAttribute.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java index 52dc80b129..a9be2e77e4 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java @@ -34,7 +34,7 @@ import org.apache.nifi.annotation.behavior.SupportsBatching; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; -import org.apache.nifi.annotation.lifecycle.OnUnscheduled; +import org.apache.nifi.annotation.lifecycle.OnStopped; import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.PropertyValue; @@ -105,7 +105,12 @@ public class RouteOnAttribute extends AbstractProcessor { private volatile String configuredRouteStrategy = ROUTE_STRATEGY.getDefaultValue(); private volatile Set dynamicPropertyNames = new HashSet<>(); - private final Map propertyMap = new HashMap<>(); + /** + * Cache of dynamic properties set during {@link #onScheduled(ProcessContext)} and + * cleared during {@link #onStopped(ProcessContext)} for quick access in + * {@link #onTrigger(ProcessContext, ProcessSession)} + */ + private volatile Map propertyMap = new HashMap<>(); @Override protected void init(final ProcessorInitializationContext context) { @@ -171,8 +176,9 @@ public class RouteOnAttribute extends AbstractProcessor { } /** - * When this processor is - * @param context + * When this processor is scheduled, update the dynamic properties into the map + * for quick access during each onTrigger call + * @param context ProcessContext used to retrieve dynamic properties */ @OnScheduled public void onScheduled(final ProcessContext context) { @@ -184,9 +190,9 @@ public class RouteOnAttribute extends AbstractProcessor { propertyMap.put(new Relationship.Builder().name(descriptor.getName()).build(), context.getProperty(descriptor)); } } - - @OnUnscheduled - public void onUnscheduled(final ProcessContext context) { + + @OnStopped + public void onStopped() { getLogger().debug("Clearing propertyMap"); propertyMap.clear(); } @@ -233,7 +239,7 @@ public class RouteOnAttribute extends AbstractProcessor { } if (destinationRelationships.isEmpty()) { - logger.info("{} routing {} to unmatched", new Object[]{ this, flowFile }); + logger.info("Routing {} to unmatched", new Object[]{ flowFile }); flowFile = session.putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, REL_NO_MATCH.getName()); session.getProvenanceReporter().route(flowFile, REL_NO_MATCH); session.transfer(flowFile, REL_NO_MATCH); @@ -253,7 +259,7 @@ public class RouteOnAttribute extends AbstractProcessor { // now transfer any clones generated for (final Map.Entry entry : transferMap.entrySet()) { - logger.info("{} cloned {} into {} and routing clone to relationship {}", new Object[]{ this, flowFile, entry.getValue(), entry.getKey() }); + logger.info("Cloned {} into {} and routing clone to relationship {}", new Object[]{ flowFile, entry.getValue(), entry.getKey() }); FlowFile updatedFlowFile = session.putAttribute(entry.getValue(), ROUTE_ATTRIBUTE_KEY, entry.getKey().getName()); session.getProvenanceReporter().route(updatedFlowFile, entry.getKey()); session.transfer(updatedFlowFile, entry.getKey()); From f26e1432f1a284c3e50e851dfb1ec94752f9d1de Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Sun, 26 Jul 2015 00:34:24 -0400 Subject: [PATCH 48/77] Correcting Benson's last name on the people portion of the site. --- nifi-site/src/pages/html/people.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi-site/src/pages/html/people.hbs b/nifi-site/src/pages/html/people.hbs index dac323d4e1..90d7f2933c 100644 --- a/nifi-site/src/pages/html/people.hbs +++ b/nifi-site/src/pages/html/people.hbs @@ -91,7 +91,7 @@ title: Apache NiFi Team bimargulies - Benson Margulie + Benson Margulies From 354ce9c8882c871453083b2654dc412cd8af089d Mon Sep 17 00:00:00 2001 From: joewitt Date: Mon, 27 Jul 2015 00:18:08 -0400 Subject: [PATCH 49/77] NIFI-783 added download link --- nifi-site/src/pages/html/download.hbs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index 857d29f47f..9f5ed65224 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -23,6 +23,24 @@ title: Apache NiFi Downloads

        Releases

          +
        • 0.2.1 + +
        • 0.2.0-incubating
          • Note: This release is considered unstable due to NIFI-777. From c541728e0f7304b3429463ab02a222b203d48f5c Mon Sep 17 00:00:00 2001 From: joewitt Date: Tue, 28 Jul 2015 01:12:55 -0400 Subject: [PATCH 50/77] NIFI-783 --- nifi-site/src/pages/html/download.hbs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs index 9f5ed65224..83c07bb865 100644 --- a/nifi-site/src/pages/html/download.hbs +++ b/nifi-site/src/pages/html/download.hbs @@ -38,7 +38,8 @@ title: Apache NiFi Downloads
          • nifi-0.2.1-bin.zip ( asc, md5, sha1 )
          -
        • + +
        • Release Notes
      • 0.2.0-incubating From fba3c3705f79e9cae515947264db38bbbdeac457 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Wed, 29 Jul 2015 09:12:04 -0400 Subject: [PATCH 51/77] NiFI-794: Updated Getting Started guide with information about git configuration --- nifi-site/src/pages/markdown/quickstart.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/nifi-site/src/pages/markdown/quickstart.md b/nifi-site/src/pages/markdown/quickstart.md index 015621a78d..310f528a69 100644 --- a/nifi-site/src/pages/markdown/quickstart.md +++ b/nifi-site/src/pages/markdown/quickstart.md @@ -15,6 +15,21 @@ Track issues on the "NIFI" Project on the Apache Jira ([browse][jira]). ## Building +#### Configure your git client + +We recommend running the following git config commands in order to ensure +that git checks out the repository in a consistent manner. These changes +are particularly important if running on Windows, as the git client has +trouble with long filenames otherwise. Additionally, in Windows, the +default behavior of the git client, when installed, is to set the +`core.autocrlf` configuration option to `true`, which can cause some of +the unit tests to fail. + +``` +git config --global core.longpaths true +git config --global core.autocrlf false +``` + #### Checking out from Git To check out the code: @@ -26,6 +41,7 @@ git clone http://git-wip-us.apache.org/repos/asf/nifi.git Then checkout the 'develop' branch ``` +cd nifi/ git checkout develop ```
        From 75ed16c8fe17ffa5041e57192a5783f004965810 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Wed, 29 Jul 2015 09:34:08 -0400 Subject: [PATCH 52/77] NIFI-794: Update nifi-site's README to include what was necessary to update site --- nifi-site/README.md | 74 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/nifi-site/README.md b/nifi-site/README.md index 24dbf22453..2441a3011c 100644 --- a/nifi-site/README.md +++ b/nifi-site/README.md @@ -22,10 +22,17 @@ the web, and [npm][] package manager for node. npm is used to manage the node modules required for building this site. bower is used to manage the front end packages that the site will depend on. -Both grunt and bower can be installed via npm once it is installed. +Before installing bower and grunt, the NodeJS Package Manager (npm) must +be installed. For instructions on installing npm, see [npm-install][] -```bash +Both grunt and bower can be installed via npm once, it is installed. + + +``` sudo npm install -g grunt-cli +``` + +``` sudo npm install -g bower ``` @@ -43,22 +50,74 @@ command from the nifi-site directory. npm install ``` -The site is built using [foundation][] a responsive front end framework. +The site is built using [foundation][], a responsive front end framework. Consequently, the site is using [sass][] and [compass][] for CSS pre-processing. -This will also require ruby to be installed along with sass and compass. Both -sass and compass can be installed via ruby once it is installed. In order to run -gem install ruby-devel might also need to be installed. +This will also require ruby to be installed, as it is a a pre-requisite for sass and compass. -```bash +After installing Ruby, sass can be installed via: +``` +gem install sass +``` + +Compass will require that the `ruby-devel` package also be installed. This is typically +accomplished by running + +``` +sudo yum install ruby-devel +``` + +for Fedora users or + +``` +sudo apt-get install ruby-dev +``` + +for Ubuntu users. + +The compass gem can then be installed: + +``` gem install compass ``` +For Ubuntu users, it may also be necessary to install the `nodejs-legacy` package in order for +grunt to run properly: + +``` +sudo apt-get install nodejs-legacy +``` + + +Now that the necessary gems are installed, it is important that the gems' executable directory is +in the user's PATH. For example: + +``` +export PATH=$PATH:/home/username/bin +``` + +**NOTE:** it is important that the fully qualified directory name be used. Simply using `~/bin` will +result in errors when running Grunt, such as: + +```Running "compass:dist" (compass) task``` + +```Warning: You need to have Ruby and Compass installed and in your system PATH for this task to work. + More info: https://github.com/gruntjs/grunt-contrib-compass Use --force to continue. +``` + +``` + Aborted due to warnings. +``` + +It is recommended that you update your environment's configuration so that this is always in your PATH, +as this will be required every time that grunt is run. + [grunt]: http://gruntjs.com/ [bower]: http://bower.io/ [npm]: http://www.npmjs.com/ [foundation]: http://foundation.zurb.com/ [sass]: http://sass-lang.com/ [compass]: http://compass-style.org/ +[npm-install]: https://github.com/joyent/node/wiki/installing-node.js-via-package-manager ## Grunt Tasks @@ -151,3 +210,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + From 82a79f197107534776d34a53d874c97cefd395b0 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Thu, 30 Jul 2015 22:57:56 -0400 Subject: [PATCH 53/77] NIFI-798: - Adding special handling for ajax failures with a response code of 201. --- .../nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js index e08ad9e37f..06c34f9e65 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js @@ -252,7 +252,7 @@ nf.Common = { } else { $('#message-content').text(xhr.responseText); } - } else if (xhr.status === 200) { + } else if (xhr.status === 200 || xhr.status === 201) { $('#message-title').text('Parse Error'); if ($.trim(xhr.responseText) === '') { $('#message-content').text('Unable to interpret response from NiFi.'); From 3dd6b24ceb954afabb6e49ae5090e5915813dfd3 Mon Sep 17 00:00:00 2001 From: Joe Skora Date: Mon, 27 Jul 2015 06:19:37 -0400 Subject: [PATCH 54/77] nifi-715 Fixed LimitedInputStream to reflect the limit in available() method. Corrected name of test class from TestLimitedOutputStream to TestLimitedInputStream and added tests for available, mark, reset, and close methods. Signed-off-by: Mark Payne --- .../repository/io/LimitedInputStream.java | 7 +- .../repository/io/TestLimitedInputStream.java | 122 ++++++++++++++++++ .../io/TestLimitedOutputStream.java | 76 ----------- 3 files changed, 127 insertions(+), 78 deletions(-) create mode 100644 nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java delete mode 100644 nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java index 3e5bd4fd8d..74597ae51e 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java @@ -22,7 +22,7 @@ import java.io.InputStream; public class LimitedInputStream extends InputStream { private final InputStream in; - private final long limit; + private long limit; private long bytesRead = 0; public LimitedInputStream(final InputStream in, final long limit) { @@ -82,7 +82,7 @@ public class LimitedInputStream extends InputStream { @Override public int available() throws IOException { - return in.available(); + return (int)(limit - bytesRead); } @Override @@ -93,6 +93,8 @@ public class LimitedInputStream extends InputStream { @Override public void mark(int readlimit) { in.mark(readlimit); + limit -= bytesRead; + bytesRead = 0; } @Override @@ -103,5 +105,6 @@ public class LimitedInputStream extends InputStream { @Override public void reset() throws IOException { in.reset(); + bytesRead = 0; } } diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java new file mode 100644 index 0000000000..ca85dc14f8 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java @@ -0,0 +1,122 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.controller.repository.io; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.io.InputStream; + +import org.apache.nifi.stream.io.ByteArrayInputStream; + +import org.junit.Test; + +public class TestLimitedInputStream { + + final byte[] data = new byte[]{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6}; + final InputStream bais = new ByteArrayInputStream(data); + final byte[] buffer3 = new byte[3]; + final byte[] buffer10 = new byte[10]; + + @Test + public void testSingleByteRead() throws IOException { + final LimitedInputStream lis = new LimitedInputStream(bais, 4); + assertEquals(0, lis.read()); + assertEquals(1, lis.read()); + assertEquals(2, lis.read()); + assertEquals(3, lis.read()); + assertEquals(-1, lis.read()); + } + + @Test + public void testByteArrayRead() throws IOException { + final LimitedInputStream lis = new LimitedInputStream(bais, 4); + final int len = lis.read(buffer10); + assertEquals(4, len); + assertEquals(-1, lis.read(buffer10)); + + for (int i = 0; i < 4; i++) { + assertEquals(i, buffer10[i]); + } + } + + @Test + public void testByteArrayReadWithRange() throws IOException { + final LimitedInputStream lis = new LimitedInputStream(bais, 4); + final int len = lis.read(buffer10, 4, 12); + assertEquals(4, len); + assertEquals(-1, lis.read(buffer10, 8, 2)); + + for (int i = 0; i < 4; i++) { + assertEquals(i, buffer10[i + 4]); + } + } + + + @Test + public void testSkip() throws Exception { + final LimitedInputStream lis = new LimitedInputStream(bais, 4); + assertEquals(3, lis.read(buffer3)); + assertEquals(1, lis.skip(data.length)); + lis.reset(); + assertEquals(4, lis.skip(7)); + lis.reset(); + assertEquals(2, lis.skip(2)); + } + + @Test + public void testClose() { + final LimitedInputStream lis = new LimitedInputStream(bais, 4); + try { + lis.close(); + } catch (IOException e) { + fail(); + } + } + + @Test + public void testAvailable() throws Exception { + final LimitedInputStream lis = new LimitedInputStream(bais, 4); + assertNotEquals(data.length, lis.available()); + lis.reset(); + assertEquals(4, lis.available()); + assertEquals(1, lis.read(buffer3, 0, 1)); + assertEquals(3, lis.available()); + } + + @Test + public void testMarkSupported() { + final LimitedInputStream lis = new LimitedInputStream(bais, 6); + assertEquals(bais.markSupported(), lis.markSupported()); + } + + @Test + public void testMark() throws Exception { + final LimitedInputStream lis = new LimitedInputStream(bais, 6); + assertEquals(3, lis.read(buffer3)); + assertEquals(3, lis.read(buffer10)); + lis.reset(); + assertEquals(3, lis.read(buffer3)); + lis.mark(1000); + assertEquals(3, lis.read(buffer10)); + lis.reset(); + assertEquals(3, lis.read(buffer10)); + } + +} diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedOutputStream.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedOutputStream.java deleted file mode 100644 index da0c414326..0000000000 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedOutputStream.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.nifi.controller.repository.io; - -import static org.junit.Assert.assertEquals; - -import java.io.IOException; -import java.io.InputStream; - -import org.apache.nifi.stream.io.ByteArrayInputStream; - -import org.junit.Test; - -public class TestLimitedOutputStream { - - @Test - public void testSingleByteRead() throws IOException { - final byte[] data = new byte[]{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6}; - final InputStream bais = new ByteArrayInputStream(data); - - final LimitedInputStream lis = new LimitedInputStream(bais, 4); - assertEquals(0, lis.read()); - assertEquals(1, lis.read()); - assertEquals(2, lis.read()); - assertEquals(3, lis.read()); - assertEquals(-1, lis.read()); - } - - @Test - public void testByteArrayRead() throws IOException { - final byte[] data = new byte[]{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6}; - final InputStream bais = new ByteArrayInputStream(data); - - final byte[] buffer = new byte[8]; - - final LimitedInputStream lis = new LimitedInputStream(bais, 4); - final int len = lis.read(buffer); - assertEquals(4, len); - assertEquals(-1, lis.read(buffer)); - - for (int i = 0; i < 4; i++) { - assertEquals(i, buffer[i]); - } - } - - @Test - public void testByteArrayReadWithRange() throws IOException { - final byte[] data = new byte[]{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6}; - final InputStream bais = new ByteArrayInputStream(data); - - final byte[] buffer = new byte[12]; - - final LimitedInputStream lis = new LimitedInputStream(bais, 4); - final int len = lis.read(buffer, 4, 12); - assertEquals(4, len); - assertEquals(-1, lis.read(buffer)); - - for (int i = 0; i < 4; i++) { - assertEquals(i, buffer[i + 4]); - } - } -} From 496ebfb3be78bf47c0aa957a3f44fdc76e488e5a Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Fri, 31 Jul 2015 09:55:08 -0400 Subject: [PATCH 55/77] NIFI-782: Make sure that FlowFiles' lineage identifiers are propagated properly --- .../nifi/controller/repository/StandardProcessSession.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java index 04e819e5a2..2e33c227c2 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java @@ -2522,7 +2522,9 @@ public final class StandardProcessSession implements ProcessSession, ProvenanceE newAttributes.put(key, value); } - fFileBuilder.lineageIdentifiers(parent.getLineageIdentifiers()); + final Set lineageIdentifiers = new HashSet<>(parent.getLineageIdentifiers()); + lineageIdentifiers.add(parent.getAttribute(CoreAttributes.UUID.key())); + fFileBuilder.lineageIdentifiers(lineageIdentifiers); fFileBuilder.lineageStartDate(parent.getLineageStartDate()); fFileBuilder.addAttributes(newAttributes); @@ -2549,6 +2551,7 @@ public final class StandardProcessSession implements ProcessSession, ProvenanceE final Set lineageIdentifiers = new HashSet<>(); for (final FlowFile parent : parents) { lineageIdentifiers.addAll(parent.getLineageIdentifiers()); + lineageIdentifiers.add(parent.getAttribute(CoreAttributes.UUID.key())); final long parentLineageStartDate = parent.getLineageStartDate(); if (lineageStartDate == 0L || parentLineageStartDate < lineageStartDate) { From 34e08ba7752a8543df4155951d57cb432ed2fc63 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Mon, 3 Aug 2015 08:43:18 -0400 Subject: [PATCH 56/77] NIFI-800: Ensured that all Throwable that gets thrown when updating a Partition marks the Partition as unusable until a checkpoint occurs --- .../org/wali/MinimalLockingWriteAheadLog.java | 18 +- .../src/test/java/org/wali/DummyRecord.java | 5 + .../test/java/org/wali/DummyRecordSerde.java | 8 + .../wali/TestMinimalLockingWriteAheadLog.java | 215 ++++++++++++++++++ 4 files changed, 238 insertions(+), 8 deletions(-) diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java b/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java index 5c8b4c8d9f..39fe65a3d1 100644 --- a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java +++ b/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java @@ -60,7 +60,7 @@ import java.util.regex.Pattern; import org.apache.nifi.stream.io.BufferedInputStream; import org.apache.nifi.stream.io.BufferedOutputStream; - +import org.apache.nifi.stream.io.ByteCountingInputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -226,10 +226,10 @@ public final class MinimalLockingWriteAheadLog implements WriteAheadRepositor try { partition.update(records, transactionId, unmodifiableRecordMap, forceSync); - } catch (final Exception e) { + } catch (final Throwable t) { partition.blackList(); numberBlackListedPartitions.incrementAndGet(); - throw e; + throw t; } if (forceSync && syncListener != null) { @@ -511,9 +511,10 @@ public final class MinimalLockingWriteAheadLog implements WriteAheadRepositor for (final Partition partition : partitions) { try { partition.rollover(); - } catch (final IOException ioe) { + } catch (final Throwable t) { partition.blackList(); - throw ioe; + numberBlackListedPartitions.getAndIncrement(); + throw t; } } @@ -878,7 +879,7 @@ public final class MinimalLockingWriteAheadLog implements WriteAheadRepositor } private DataInputStream createDataInputStream(final Path path) throws IOException { - return new DataInputStream(new BufferedInputStream(Files.newInputStream(path))); + return new DataInputStream(new ByteCountingInputStream(new BufferedInputStream(Files.newInputStream(path)))); } private DataInputStream getRecoveryStream() throws IOException { @@ -892,6 +893,7 @@ public final class MinimalLockingWriteAheadLog implements WriteAheadRepositor return null; } + logger.debug("{} recovering from {}", this, nextRecoveryPath); recoveryIn = createDataInputStream(nextRecoveryPath); if (hasMoreData(recoveryIn)) { final String waliImplementationClass = recoveryIn.readUTF(); @@ -972,8 +974,8 @@ public final class MinimalLockingWriteAheadLog implements WriteAheadRepositor int transactionFlag; do { final S record = serde.deserializeEdit(recoveryIn, currentRecordMap, recoveryVersion); - if (logger.isTraceEnabled()) { - logger.trace("{} Recovering Transaction {}: {}", new Object[]{this, maxTransactionId.get(), record}); + if (logger.isDebugEnabled()) { + logger.debug("{} Recovering Transaction {}: {}", new Object[] { this, maxTransactionId.get(), record }); } final Object recordId = serde.getRecordIdentifier(record); diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java b/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java index e0f7f969aa..bf15ba7206 100644 --- a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java +++ b/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java @@ -58,4 +58,9 @@ public class DummyRecord { public String getProperty(final String name) { return props.get(name); } + + @Override + public String toString() { + return "DummyRecord [id=" + id + ", props=" + props + ", updateType=" + updateType + "]"; + } } diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java b/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java index 8cc7860610..3a4e79f96d 100644 --- a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java +++ b/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java @@ -26,6 +26,7 @@ public class DummyRecordSerde implements SerDe { public static final int NUM_UPDATE_TYPES = UpdateType.values().length; private int throwIOEAfterNserializeEdits = -1; + private int throwOOMEAfterNserializeEdits = -1; private int serializeEditCount = 0; @Override @@ -33,6 +34,9 @@ public class DummyRecordSerde implements SerDe { if (throwIOEAfterNserializeEdits >= 0 && (serializeEditCount++ >= throwIOEAfterNserializeEdits)) { throw new IOException("Serialized " + (serializeEditCount - 1) + " records successfully, so now it's time to throw IOE"); } + if (throwOOMEAfterNserializeEdits >= 0 && (serializeEditCount++ >= throwOOMEAfterNserializeEdits)) { + throw new OutOfMemoryError("Serialized " + (serializeEditCount - 1) + " records successfully, so now it's time to throw OOME"); + } out.write(record.getUpdateType().ordinal()); out.writeUTF(record.getId()); @@ -100,6 +104,10 @@ public class DummyRecordSerde implements SerDe { this.throwIOEAfterNserializeEdits = n; } + public void setThrowOOMEAfterNSerializeEdits(final int n) { + this.throwOOMEAfterNserializeEdits = n; + } + @Override public String getLocation(final DummyRecord record) { return null; diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java b/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java index 57f3495b70..29d2e7f4bc 100644 --- a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java +++ b/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java @@ -28,16 +28,180 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.SortedSet; import java.util.TreeSet; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class TestMinimalLockingWriteAheadLog { + private static final Logger logger = LoggerFactory.getLogger(TestMinimalLockingWriteAheadLog.class); + + + @Test + public void testRepoDoesntContinuallyGrowOnOutOfMemoryError() throws IOException, InterruptedException { + final int numPartitions = 8; + + final Path path = Paths.get("target/minimal-locking-repo"); + deleteRecursively(path.toFile()); + assertTrue(path.toFile().mkdirs()); + + final DummyRecordSerde serde = new DummyRecordSerde(); + final WriteAheadRepository repo = new MinimalLockingWriteAheadLog<>(path, numPartitions, serde, null); + try { + final Collection initialRecs = repo.recoverRecords(); + assertTrue(initialRecs.isEmpty()); + + serde.setThrowOOMEAfterNSerializeEdits(100); + for (int i = 0; i < 108; i++) { + try { + final DummyRecord record = new DummyRecord(String.valueOf(i), UpdateType.CREATE); + repo.update(Collections.singleton(record), false); + } catch (final OutOfMemoryError oome) { + logger.info("Received OOME on record " + i); + } + } + + long expectedSize = sizeOf(path.toFile()); + for (int i = 0; i < 1000; i++) { + try { + final DummyRecord record = new DummyRecord(String.valueOf(i), UpdateType.CREATE); + repo.update(Collections.singleton(record), false); + Assert.fail("Expected IOE but it didn't happen"); + } catch (final IOException ioe) { + // will get IOException because all Partitions have been blacklisted + } + } + + long newSize = sizeOf(path.toFile()); + assertEquals(expectedSize, newSize); + + try { + repo.checkpoint(); + Assert.fail("Expected OOME but it didn't happen"); + } catch (final OutOfMemoryError oome) { + } + + expectedSize = sizeOf(path.toFile()); + + for (int i = 0; i < 100000; i++) { + try { + final DummyRecord record = new DummyRecord(String.valueOf(i), UpdateType.CREATE); + repo.update(Collections.singleton(record), false); + Assert.fail("Expected IOE but it didn't happen"); + } catch (final IOException ioe) { + // will get IOException because all Partitions have been blacklisted + } + } + + newSize = sizeOf(path.toFile()); + assertEquals(expectedSize, newSize); + } finally { + repo.shutdown(); + } + } + + /** + * This test is intended to continually update the Write-ahead log using many threads, then + * stop and restore the repository to check for any corruption. There were reports of potential threading + * issues leading to repository corruption. This was an attempt to replicate. It should not be run as a + * unit test, really, but will be left, as it can be valuable to exercise the implementation + * + * @throws IOException if unable to read from/write to the write-ahead log + * @throws InterruptedException if a thread is interrupted + */ + @Test + @Ignore + public void tryToCauseThreadingIssue() throws IOException, InterruptedException { + System.setProperty("org.slf4j.simpleLogger.log.org.wali", "INFO"); + + final int numThreads = 12; + final long iterationsPerThread = 1000000; + final int numAttempts = 1000; + + final Path path = Paths.get("D:/dummy/minimal-locking-repo"); + path.toFile().mkdirs(); + + final AtomicReference> writeRepoRef = new AtomicReference<>(); + final AtomicBoolean checkpointing = new AtomicBoolean(false); + + final Thread bgThread = new Thread(new Runnable() { + @Override + public void run() { + while (true) { + checkpointing.set(true); + + final WriteAheadRepository repo = writeRepoRef.get(); + if (repo != null) { + try { + repo.checkpoint(); + } catch (IOException e) { + e.printStackTrace(); + Assert.fail(); + } + } + + checkpointing.set(false); + + try { + TimeUnit.SECONDS.sleep(5); + } catch (InterruptedException e) { + } + } + } + }); + bgThread.setDaemon(true); + bgThread.start(); + + for (int x = 0; x < numAttempts; x++) { + final DummyRecordSerde serde = new DummyRecordSerde(); + final WriteAheadRepository writeRepo = new MinimalLockingWriteAheadLog<>(path, 256, serde, null); + final Collection writeRecords = writeRepo.recoverRecords(); + for (final DummyRecord record : writeRecords) { + assertEquals("B", record.getProperty("A")); + } + + writeRepoRef.set(writeRepo); + + final Thread[] threads = new Thread[numThreads]; + for (int i = 0; i < numThreads; i++) { + final Thread t = new InlineCreationInsertThread(iterationsPerThread, writeRepo); + t.start(); + threads[i] = t; + } + + for (final Thread t : threads) { + t.join(); + } + + writeRepoRef.set(null); + writeRepo.shutdown(); + + boolean cp = checkpointing.get(); + while (cp) { + Thread.sleep(100L); + cp = checkpointing.get(); + } + + final WriteAheadRepository readRepo = new MinimalLockingWriteAheadLog<>(path, 256, serde, null); + // ensure that we are able to recover the records properly + final Collection readRecords = readRepo.recoverRecords(); + for (final DummyRecord record : readRecords) { + assertEquals("B", record.getProperty("A")); + } + readRepo.shutdown(); + } + } @Test public void testWrite() throws IOException, InterruptedException { @@ -285,6 +449,40 @@ public class TestMinimalLockingWriteAheadLog { } } + + private static class InlineCreationInsertThread extends Thread { + private final long iterations; + private final WriteAheadRepository repo; + + public InlineCreationInsertThread(final long numInsertions, final WriteAheadRepository repo) { + this.iterations = numInsertions; + this.repo = repo; + } + + @Override + public void run() { + final List list = new ArrayList<>(1); + list.add(null); + final UpdateType[] updateTypes = new UpdateType[] { UpdateType.CREATE, UpdateType.DELETE, UpdateType.UPDATE }; + final Random random = new Random(); + + for (long i = 0; i < iterations; i++) { + final int updateTypeIndex = random.nextInt(updateTypes.length); + final UpdateType updateType = updateTypes[updateTypeIndex]; + + final DummyRecord record = new DummyRecord(String.valueOf(i), updateType); + record.setProperty("A", "B"); + list.set(0, record); + + try { + repo.update(list, false); + } catch (final Throwable t) { + t.printStackTrace(); + } + } + } + } + private void deleteRecursively(final File file) { final File[] children = file.listFiles(); if (children != null) { @@ -295,4 +493,21 @@ public class TestMinimalLockingWriteAheadLog { file.delete(); } + + private long sizeOf(final File file) { + long size = 0L; + if (file.isDirectory()) { + final File[] children = file.listFiles(); + if (children != null) { + for (final File child : children) { + size += sizeOf(child); + } + } + } + + size += file.length(); + + return size; + } + } From 90ebc3a91ef6873a884cce6730d229d6700f0cef Mon Sep 17 00:00:00 2001 From: joewitt Date: Mon, 3 Aug 2015 23:32:48 -0400 Subject: [PATCH 57/77] NIFI-805 addressed a series of sonar identified formatting issues --- .../authorization/DownloadAuthorization.java | 2 +- nifi/nifi-bootstrap/pom.xml | 37 +- .../nifi-hl7-query-language/pom.xml | 6 +- nifi/nifi-docs/pom.xml | 19 +- .../nifi-aws-processors/pom.xml | 4 - .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 3 +- .../nifi-flume-processors/pom.xml | 32 +- .../nifi-flume-bundle/pom.xml | 29 +- .../nifi-framework/nifi-site-to-site/pom.xml | 2 +- .../src/main/webapp/WEB-INF/web.xml | 11 +- .../nifi-geo-bundle/nifi-geo-nar/pom.xml | 2 +- .../nifi-hdfs-processors/pom.xml | 4 +- .../nifi-kafka-processors/pom.xml | 1 - .../nifi-twitter-processors/pom.xml | 2 - .../nifi-standard-processors/pom.xml | 553 +++++++++--------- .../nifi-dbcp-service/pom.xml | 28 +- .../nifi-http-context-map/pom.xml | 4 +- .../nifi-standard-services-api-nar/pom.xml | 11 +- 18 files changed, 374 insertions(+), 376 deletions(-) diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java b/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java index 02fd839fa0..416f3cfe7d 100644 --- a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java +++ b/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java @@ -25,7 +25,7 @@ public class DownloadAuthorization { Approved, Denied; - }; + } private static final DownloadAuthorization APPROVED = new DownloadAuthorization(Result.Approved, null); diff --git a/nifi/nifi-bootstrap/pom.xml b/nifi/nifi-bootstrap/pom.xml index 508697bf4e..2975a5a8a4 100644 --- a/nifi/nifi-bootstrap/pom.xml +++ b/nifi/nifi-bootstrap/pom.xml @@ -1,18 +1,19 @@ + + - 4.0.0 org.apache.nifi @@ -23,9 +24,9 @@ jar - - org.slf4j - slf4j-api - + + org.slf4j + slf4j-api + diff --git a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml index 297b106c22..8b04e5c8f7 100644 --- a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml +++ b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml @@ -15,13 +15,13 @@ --> 4.0.0 - + org.apache.nifi nifi-commons 0.3.0-SNAPSHOT - + nifi-hl7-query-language jar @@ -69,7 +69,7 @@ org.antlr antlr-runtime - + ca.uhn.hapi diff --git a/nifi/nifi-docs/pom.xml b/nifi/nifi-docs/pom.xml index b69c7b5fda..42a17758d8 100644 --- a/nifi/nifi-docs/pom.xml +++ b/nifi/nifi-docs/pom.xml @@ -1,4 +1,18 @@ - + + 4.0.0 @@ -108,7 +122,8 @@ apache-rat-plugin - src/main/asciidoc/asciidoc-mod.css + + src/main/asciidoc/asciidoc-mod.css diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml index e20babff99..b7845249d4 100644 --- a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml @@ -15,16 +15,13 @@ --> 4.0.0 - org.apache.nifi nifi-aws-bundle 0.3.0-SNAPSHOT - nifi-aws-processors jar - org.apache.nifi @@ -38,7 +35,6 @@ com.amazonaws aws-java-sdk - org.apache.nifi nifi-mock diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml index 649eda2099..5180f6d486 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml @@ -1,4 +1,4 @@ - + + 4.0.0 org.apache.nifi diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml index b3e10613ad..e7932559e6 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml @@ -1,18 +1,19 @@ + + - 4.0.0 org.apache.nifi @@ -158,7 +159,8 @@ apache-rat-plugin - src/test/resources/testdata/* + + src/test/resources/testdata/* diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml index e545c9c055..56ca257e55 100644 --- a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml @@ -1,18 +1,19 @@ + + - 4.0.0 org.apache.nifi diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml index 4d6d3f179e..113797fd5a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml @@ -22,7 +22,7 @@ nifi-site-to-site - + org.apache.nifi nifi-security diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml index e7a0aee516..4ce319eb2f 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml @@ -15,7 +15,6 @@ --> nifi-api - contextConfigLocation @@ -27,15 +26,12 @@ classpath:nifi-cluster-protocol-context.xml - org.springframework.web.context.ContextLoaderListener - org.apache.nifi.web.contextlistener.ApplicationStartupContextListener - jerseySpring com.sun.jersey.spi.spring.container.servlet.SpringServlet @@ -57,7 +53,6 @@ timer /* - threadLocal org.apache.nifi.web.filter.ThreadLocalFilter @@ -66,7 +61,6 @@ threadLocal /* - springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy @@ -75,7 +69,6 @@ springSecurityFilterChain /* - requestLogger org.apache.nifi.web.filter.RequestLogger @@ -84,11 +77,10 @@ requestLogger /* - gzipCompressionFilter org.eclipse.jetty.servlets.GzipFilter - + methods get,post,put @@ -97,7 +89,6 @@ gzipCompressionFilter /* - nodeRequestFilter org.apache.nifi.web.filter.NodeRequestFilter diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml index bda7bb1a88..ad369815e2 100644 --- a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml @@ -23,7 +23,7 @@ nifi-geo-nar nar NiFi Geo Enrichment NAR - + org.apache.nifi diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml index adf05f226b..6bc110f9d0 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml @@ -44,8 +44,8 @@ provided - org.apache.nifi - nifi-distributed-cache-client-service-api + org.apache.nifi + nifi-distributed-cache-client-service-api org.apache.hadoop diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml index 187a2b5827..8cee490886 100644 --- a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml @@ -55,7 +55,6 @@ - org.apache.nifi nifi-mock diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml index 4ade5043a1..41bc45f56d 100644 --- a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml @@ -34,13 +34,11 @@ org.apache.nifi nifi-processor-utils - com.twitter hbc-twitter4j 2.2.0 - org.apache.nifi nifi-mock diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml index de4e4f6a7a..4d1e542d6e 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml @@ -1,283 +1,282 @@ +license agreements. See the NOTICE file distributed with this work for additional +information regarding copyright ownership. The ASF licenses this file to +You under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of +the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required +by applicable law or agreed to in writing, software distributed under the +License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS +OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. --> - 4.0.0 - - org.apache.nifi - nifi-standard-bundle - 0.3.0-SNAPSHOT - - nifi-standard-processors - jar - - - org.apache.nifi - nifi-api - provided - - - org.apache.nifi - nifi-processor-utils - - - org.apache.nifi - nifi-utils - - - org.apache.nifi - nifi-ssl-context-service-api - - - org.apache.nifi - nifi-flowfile-packager - - - org.apache.nifi - nifi-distributed-cache-client-service-api - - - org.apache.nifi - nifi-http-context-map-api - - - commons-io - commons-io - - - com.sun.jersey - jersey-client - - - com.sun.jersey - jersey-server - - - commons-net - commons-net - - - org.apache.commons - commons-compress - - - org.apache.commons - commons-lang3 - - - org.bouncycastle - bcprov-jdk16 - - - org.bouncycastle - bcpg-jdk16 - - - commons-codec - commons-codec - - - org.apache.nifi - nifi-security-utils - - - com.jcraft - jsch - - - com.jcraft - jzlib - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-servlet - - - org.apache.httpcomponents - httpclient - - - javax.mail - mail - - - com.github.jponge - lzma-java - - - org.tukaani - xz - - - net.sf.saxon - Saxon-HE - - - org.apache.nifi - nifi-mock - test - - - org.apache.nifi - nifi-socket-utils - - - org.apache.nifi - nifi-load-distribution-service-api - - - org.apache.nifi - nifi-distributed-cache-client-service - test - - - joda-time - joda-time - - - javax.jms - javax.jms-api - - - org.apache.activemq - activemq-client - - - com.jayway.jsonpath - json-path - - - org.apache.nifi - nifi-ssl-context-service - test - - - org.apache.tika - tika-core - 1.7 - - - com.fasterxml.jackson.core - jackson-databind - - - org.apache.avro - avro - - - org.apache.nifi - nifi-dbcp-service-api - + 4.0.0 + + org.apache.nifi + nifi-standard-bundle + 0.3.0-SNAPSHOT + + nifi-standard-processors + jar + + + org.apache.nifi + nifi-api + provided + + + org.apache.nifi + nifi-processor-utils + + + org.apache.nifi + nifi-utils + + + org.apache.nifi + nifi-ssl-context-service-api + + + org.apache.nifi + nifi-flowfile-packager + + + org.apache.nifi + nifi-distributed-cache-client-service-api + + + org.apache.nifi + nifi-http-context-map-api + + + commons-io + commons-io + + + com.sun.jersey + jersey-client + + + com.sun.jersey + jersey-server + + + commons-net + commons-net + + + org.apache.commons + commons-compress + + + org.apache.commons + commons-lang3 + + + org.bouncycastle + bcprov-jdk16 + + + org.bouncycastle + bcpg-jdk16 + + + commons-codec + commons-codec + + + org.apache.nifi + nifi-security-utils + + + com.jcraft + jsch + + + com.jcraft + jzlib + + + org.eclipse.jetty + jetty-server + + + org.eclipse.jetty + jetty-servlet + + + org.apache.httpcomponents + httpclient + + + javax.mail + mail + + + com.github.jponge + lzma-java + + + org.tukaani + xz + + + net.sf.saxon + Saxon-HE + + + org.apache.nifi + nifi-mock + test + + + org.apache.nifi + nifi-socket-utils + + + org.apache.nifi + nifi-load-distribution-service-api + + + org.apache.nifi + nifi-distributed-cache-client-service + test + + + joda-time + joda-time + + + javax.jms + javax.jms-api + + + org.apache.activemq + activemq-client + + + com.jayway.jsonpath + json-path + + + org.apache.nifi + nifi-ssl-context-service + test + + + org.apache.tika + tika-core + 1.7 + + + com.fasterxml.jackson.core + jackson-databind + + + org.apache.avro + avro + + + org.apache.nifi + nifi-dbcp-service-api + - - org.apache.derby - derby - 10.11.1.1 - test - + + org.apache.derby + derby + test + - - - - - org.apache.rat - apache-rat-plugin - - - src/test/resources/localhost.cer - src/test/resources/hello.txt - src/test/resources/CharacterSetConversionSamples/Converted.txt - src/test/resources/CharacterSetConversionSamples/Original.txt - src/test/resources/CompressedData/SampleFile.txt - src/test/resources/CompressedData/SampleFileConcat.txt - src/test/resources/ExecuteCommand/1000bytes.txt - src/test/resources/ExecuteCommand/test.txt - src/test/resources/ScanAttribute/dictionary-with-empty-new-lines - src/test/resources/ScanAttribute/dictionary-with-extra-info - src/test/resources/ScanAttribute/dictionary1 - src/test/resources/TestEncryptContent/text.txt - src/test/resources/TestEncryptContent/text.txt.asc - src/test/resources/TestIdentifyMimeType/1.txt - src/test/resources/TestJson/json-sample.json - src/test/resources/TestJson/control-characters.json - src/test/resources/TestMergeContent/demarcate - src/test/resources/TestMergeContent/foot - src/test/resources/TestMergeContent/head - src/test/resources/TestModifyBytes/noFooter.txt - src/test/resources/TestModifyBytes/noFooter_noHeader.txt - src/test/resources/TestModifyBytes/noHeader.txt - src/test/resources/TestModifyBytes/testFile.txt - src/test/resources/TestReplaceTextLineByLine/$1$1.txt - src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt - src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt - src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt - src/test/resources/TestReplaceTextLineByLine/Good.txt - src/test/resources/TestReplaceTextLineByLine/Spider.txt - src/test/resources/TestReplaceTextLineByLine/[DODO].txt - src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt - src/test/resources/TestReplaceTextLineByLine/cu_Po.txt - src/test/resources/TestReplaceTextLineByLine/food.txt - src/test/resources/TestReplaceTextLineByLine/testFile.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt - src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt - src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt - src/test/resources/TestReplaceTextWithMapping/colors.txt - src/test/resources/TestScanContent/helloWorld - src/test/resources/TestScanContent/wellthengood-bye - src/test/resources/TestSplitText/1.txt - src/test/resources/TestSplitText/2.txt - src/test/resources/TestSplitText/3.txt - src/test/resources/TestSplitText/4.txt - src/test/resources/TestSplitText/5.txt - src/test/resources/TestSplitText/6.txt - src/test/resources/TestSplitText/original.txt - src/test/resources/TestTransformXml/math.html - src/test/resources/TestTransformXml/tokens.csv - src/test/resources/TestTransformXml/tokens.xml - src/test/resources/TestUnpackContent/folder/cal.txt - src/test/resources/TestUnpackContent/folder/date.txt - src/test/resources/TestUnpackContent/data.flowfilev2 - src/test/resources/TestUnpackContent/data.flowfilev3 - src/test/resources/TestXml/xml-bundle-1 - src/test/resources/CompressedData/SampleFile.txt.bz2 - src/test/resources/CompressedData/SampleFile.txt.gz - src/test/resources/CompressedData/SampleFile1.txt.bz2 - src/test/resources/CompressedData/SampleFile1.txt.gz - src/test/resources/CompressedData/SampleFileConcat.txt.bz2 - src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar - src/test/resources/ExecuteCommand/TestSuccess.jar - src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar - src/test/resources/TestIdentifyMimeType/1.jar - src/test/resources/TestIdentifyMimeType/1.tar - src/test/resources/TestIdentifyMimeType/1.tar.gz - src/test/resources/TestIdentifyMimeType/1.txt.bz2 - src/test/resources/TestIdentifyMimeType/1.txt.gz - src/test/resources/TestIdentifyMimeType/1.zip - src/test/resources/TestIdentifyMimeType/flowfilev1.tar - src/test/resources/TestUnpackContent/data.tar - src/test/resources/TestUnpackContent/data.zip - - - - - + + + + + org.apache.rat + apache-rat-plugin + + + src/test/resources/localhost.cer + src/test/resources/hello.txt + src/test/resources/CharacterSetConversionSamples/Converted.txt + src/test/resources/CharacterSetConversionSamples/Original.txt + src/test/resources/CompressedData/SampleFile.txt + src/test/resources/CompressedData/SampleFileConcat.txt + src/test/resources/ExecuteCommand/1000bytes.txt + src/test/resources/ExecuteCommand/test.txt + src/test/resources/ScanAttribute/dictionary-with-empty-new-lines + src/test/resources/ScanAttribute/dictionary-with-extra-info + src/test/resources/ScanAttribute/dictionary1 + src/test/resources/TestEncryptContent/text.txt + src/test/resources/TestEncryptContent/text.txt.asc + src/test/resources/TestIdentifyMimeType/1.txt + src/test/resources/TestJson/json-sample.json + src/test/resources/TestJson/control-characters.json + src/test/resources/TestMergeContent/demarcate + src/test/resources/TestMergeContent/foot + src/test/resources/TestMergeContent/head + src/test/resources/TestModifyBytes/noFooter.txt + src/test/resources/TestModifyBytes/noFooter_noHeader.txt + src/test/resources/TestModifyBytes/noHeader.txt + src/test/resources/TestModifyBytes/testFile.txt + src/test/resources/TestReplaceTextLineByLine/$1$1.txt + src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt + src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt + src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt + src/test/resources/TestReplaceTextLineByLine/Good.txt + src/test/resources/TestReplaceTextLineByLine/Spider.txt + src/test/resources/TestReplaceTextLineByLine/[DODO].txt + src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt + src/test/resources/TestReplaceTextLineByLine/cu_Po.txt + src/test/resources/TestReplaceTextLineByLine/food.txt + src/test/resources/TestReplaceTextLineByLine/testFile.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt + src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt + src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt + src/test/resources/TestReplaceTextWithMapping/colors.txt + src/test/resources/TestScanContent/helloWorld + src/test/resources/TestScanContent/wellthengood-bye + src/test/resources/TestSplitText/1.txt + src/test/resources/TestSplitText/2.txt + src/test/resources/TestSplitText/3.txt + src/test/resources/TestSplitText/4.txt + src/test/resources/TestSplitText/5.txt + src/test/resources/TestSplitText/6.txt + src/test/resources/TestSplitText/original.txt + src/test/resources/TestTransformXml/math.html + src/test/resources/TestTransformXml/tokens.csv + src/test/resources/TestTransformXml/tokens.xml + src/test/resources/TestUnpackContent/folder/cal.txt + src/test/resources/TestUnpackContent/folder/date.txt + src/test/resources/TestUnpackContent/data.flowfilev2 + src/test/resources/TestUnpackContent/data.flowfilev3 + src/test/resources/TestXml/xml-bundle-1 + src/test/resources/CompressedData/SampleFile.txt.bz2 + src/test/resources/CompressedData/SampleFile.txt.gz + src/test/resources/CompressedData/SampleFile1.txt.bz2 + src/test/resources/CompressedData/SampleFile1.txt.gz + src/test/resources/CompressedData/SampleFileConcat.txt.bz2 + src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar + src/test/resources/ExecuteCommand/TestSuccess.jar + src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar + src/test/resources/TestIdentifyMimeType/1.jar + src/test/resources/TestIdentifyMimeType/1.tar + src/test/resources/TestIdentifyMimeType/1.tar.gz + src/test/resources/TestIdentifyMimeType/1.txt.bz2 + src/test/resources/TestIdentifyMimeType/1.txt.gz + src/test/resources/TestIdentifyMimeType/1.zip + src/test/resources/TestIdentifyMimeType/flowfilev1.tar + src/test/resources/TestUnpackContent/data.tar + src/test/resources/TestUnpackContent/data.zip + + + + + diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml index fb196bb262..6bcdc84230 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml @@ -19,14 +19,12 @@ nifi-dbcp-service-bundle 0.3.0-SNAPSHOT - nifi-dbcp-service jar org.apache.nifi nifi-dbcp-service-api - 0.3.0-SNAPSHOT org.apache.nifi @@ -46,20 +44,18 @@ test - commons-dbcp - commons-dbcp - 1.4 + commons-dbcp + commons-dbcp + 1.4 + + + org.apache.derby + derby + + + org.hamcrest + hamcrest-all + 1.3 - - org.apache.derby - derby - 10.11.1.1 - - - org.hamcrest - hamcrest-all - 1.3 - - \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml index 657c1fea1e..fc638991cd 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml @@ -19,10 +19,10 @@ nifi-http-context-map-bundle 0.3.0-SNAPSHOT - + nifi-http-context-map jar - + org.apache.nifi diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml index e6480b4b07..02c29c6d56 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml @@ -37,15 +37,14 @@ nifi-load-distribution-service-api compile - - org.apache.nifi - nifi-http-context-map-api - compile - + + org.apache.nifi + nifi-http-context-map-api + compile + org.apache.nifi nifi-dbcp-service-api - 0.3.0-SNAPSHOT compile From 6a0a321b64568c70e417b78b2c52ab39af1c3d63 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Mon, 3 Aug 2015 13:25:53 -0400 Subject: [PATCH 58/77] NIFI-803: Ensure that if an OutOfMemoryError occurs, the Provenance Repo won't become corrupt --- .../PersistentProvenanceRepository.java | 210 ++++++++++++------ .../nifi/provenance/StandardRecordReader.java | 8 +- .../nifi/provenance/StandardRecordWriter.java | 24 +- .../serialization/RecordWriter.java | 12 +- .../TestPersistentProvenanceRepository.java | 120 +++++++++- 5 files changed, 294 insertions(+), 80 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java index 81d883a74e..a1063f0f0e 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java @@ -152,7 +152,8 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository private final AtomicInteger rolloverCompletions = new AtomicInteger(0); private final AtomicBoolean initialized = new AtomicBoolean(false); - private final AtomicBoolean repoDirty = new AtomicBoolean(false); + private final AtomicInteger dirtyWriterCount = new AtomicInteger(0); + // we keep the last 1000 records on hand so that when the UI is opened and it asks for the last 1000 records we don't need to // read them. Since this is a very cheap operation to keep them, it's worth the tiny expense for the improved user experience. private final RingBuffer latestRecords = new RingBuffer<>(1000); @@ -338,7 +339,8 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository return config; } - static RecordWriter[] createWriters(final RepositoryConfiguration config, final long initialRecordId) throws IOException { + // protected in order to override for unit tests + protected RecordWriter[] createWriters(final RepositoryConfiguration config, final long initialRecordId) throws IOException { final List storageDirectories = config.getStorageDirectories(); final RecordWriter[] writers = new RecordWriter[config.getJournalCount()]; @@ -561,13 +563,6 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository idGenerator.set(maxId + 1); - // TODO: Consider refactoring this so that we do the rollover actions at the same time that we merge the journals. - // This would require a few different changes: - // * Rollover Actions would take a ProvenanceEventRecord at a time, not a File at a time. Would have to be either - // constructed or "started" for each file and then closed after each file - // * The recovery would have to then read through all of the journals with the highest starting ID to determine - // the action max id instead of reading the merged file - // * We would write to a temporary file and then rename once the merge is complete. This allows us to fail and restart try { final Set recoveredJournals = recoverJournalFiles(); filesToRecover.addAll(recoveredJournals); @@ -654,13 +649,6 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository final long totalJournalSize; readLock.lock(); try { - if (repoDirty.get()) { - logger.debug("Cannot persist provenance record because there was an IOException last time a record persistence was attempted. " - + "Will not attempt to persist more records until the repo has been rolled over."); - return; - } - - final RecordWriter[] recordWriters = this.writers; long bytesWritten = 0L; // obtain a lock on one of the RecordWriter's so that no other thread is able to write to this writer until we're finished. @@ -669,6 +657,13 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository boolean locked = false; RecordWriter writer; do { + final RecordWriter[] recordWriters = this.writers; + final int numDirty = dirtyWriterCount.get(); + if (numDirty >= recordWriters.length) { + throw new IllegalStateException("Cannot update repository because all partitions are unusable at this time. Writing to the repository would cause corruption. " + + "This most often happens as a result of the repository running out of disk space or the JMV running out of memory."); + } + final long idx = writerIndex.getAndIncrement(); writer = recordWriters[(int) (idx % recordWriters.length)]; locked = writer.tryLock(); @@ -688,24 +683,31 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository totalJournalSize = bytesWrittenSinceRollover.addAndGet(bytesWritten); recordsWrittenSinceRollover.getAndIncrement(); - } catch (final IOException ioe) { + } catch (final Throwable t) { // We need to set the repoDirty flag before we release the lock for this journal. // Otherwise, another thread may write to this journal -- this is a problem because // the journal contains part of our record but not all of it. Writing to the end of this // journal will result in corruption! - repoDirty.set(true); + writer.markDirty(); + dirtyWriterCount.incrementAndGet(); streamStartTime.set(0L); // force rollover to happen soon. - throw ioe; + throw t; } finally { writer.unlock(); } } catch (final IOException ioe) { - logger.error("Failed to persist Provenance Event due to {}. Will not attempt to write to the Provenance Repository again until the repository has rolled over.", ioe.toString()); + // warn about the failure + logger.error("Failed to persist Provenance Event due to {}.", ioe.toString()); logger.error("", ioe); - eventReporter.reportEvent(Severity.ERROR, EVENT_CATEGORY, "Failed to persist Provenance Event due to " + ioe.toString() + - ". Will not attempt to write to the Provenance Repository again until the repository has rolled over"); + eventReporter.reportEvent(Severity.ERROR, EVENT_CATEGORY, "Failed to persist Provenance Event due to " + ioe.toString()); - // Switch from readLock to writeLock so that we can perform rollover + // Attempt to perform a rollover. An IOException in this part of the code generally is the result of + // running out of disk space. If we have multiple partitions, we may well be able to rollover. This helps + // in two ways: it compresses the journal files which frees up space, and if it ends up merging to a different + // partition/storage directory, we can delete the journals from this directory that ran out of space. + // In order to do this, though, we must switch from a read lock to a write lock. + // This part of the code gets a little bit messy, and we could potentially refactor it a bit in order to + // make the code cleaner. readLock.unlock(); try { writeLock.lock(); @@ -720,6 +722,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository logger.error("", e); eventReporter.reportEvent(Severity.ERROR, EVENT_CATEGORY, "Failed to Rollover Provenance Event Repository file due to " + e.toString()); } finally { + // we must re-lock the readLock, as the finally block below is going to unlock it. readLock.lock(); } @@ -752,6 +755,9 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } } + /** + * @return all of the Provenance Event Log Files (not the journals, the merged files) available across all storage directories. + */ private List getLogFiles() { final List files = new ArrayList<>(); for (final Path path : idToPathMap.get().values()) { @@ -817,6 +823,10 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } } + // This comparator sorts the data based on the "basename" of the files. I.e., the numeric portion. + // We do this because the numeric portion represents the ID of the first event in the log file. + // As a result, we are sorting based on time, since the ID is monotonically increasing. By doing this, + // are able to avoid hitting disk continually to check timestamps final Comparator sortByBasenameComparator = new Comparator() { @Override public int compare(final File o1, final File o2) { @@ -930,7 +940,10 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } } - public void waitForRollover() throws IOException { + /** + * Blocks the calling thread until the repository rolls over. This is intended for unit testing. + */ + public void waitForRollover() { final int count = rolloverCompletions.get(); while (rolloverCompletions.get() == count) { try { @@ -940,6 +953,9 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } } + /** + * @return the number of journal files that exist across all storage directories + */ // made protected for testing purposes protected int getJournalCount() { // determine how many 'journals' we have in the journals directories @@ -956,7 +972,12 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } /** - * MUST be called with the write lock held + *

        + * MUST be called with the write lock held. + *

        + * + * Rolls over the data in the journal files, merging them into a single Provenance Event Log File, and + * compressing and indexing as needed. * * @param force if true, will force a rollover regardless of whether or not data has been written * @throws IOException if unable to complete rollover @@ -968,7 +989,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository // If this is the first time we're creating the out stream, or if we // have written something to the stream, then roll over - if (recordsWrittenSinceRollover.get() > 0L || repoDirty.get() || force) { + if (force || recordsWrittenSinceRollover.get() > 0L || dirtyWriterCount.get() > 0) { final List journalsToMerge = new ArrayList<>(); for (final RecordWriter writer : writers) { final File writerFile = writer.getFile(); @@ -986,10 +1007,12 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository logger.debug("Going to merge {} files for journals starting with ID {}", journalsToMerge.size(), LuceneUtil.substringBefore(journalsToMerge.get(0).getName(), ".")); } + // Choose a storage directory to store the merged file in. final long storageDirIdx = storageDirectoryIndex.getAndIncrement(); final List storageDirs = configuration.getStorageDirectories(); final File storageDir = storageDirs.get((int) (storageDirIdx % storageDirs.size())); + // Run the rollover logic in a background thread. final AtomicReference> futureReference = new AtomicReference<>(); final int recordsWritten = recordsWrittenSinceRollover.getAndSet(0); final Runnable rolloverRunnable = new Runnable() { @@ -999,10 +1022,8 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository final File fileRolledOver; try { - fileRolledOver = mergeJournals(journalsToMerge, storageDir, getMergeFile(journalsToMerge, storageDir), eventReporter, latestRecords); - repoDirty.set(false); + fileRolledOver = mergeJournals(journalsToMerge, getMergeFile(journalsToMerge, storageDir), eventReporter); } catch (final IOException ioe) { - repoDirty.set(true); logger.error("Failed to merge Journal Files {} into a Provenance Log File due to {}", journalsToMerge, ioe.toString()); logger.error("", ioe); return; @@ -1046,7 +1067,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } }; - // We are going to schedule the future to run every 10 seconds. This allows us to keep retrying if we + // We are going to schedule the future to run immediately and then repeat every 10 seconds. This allows us to keep retrying if we // fail for some reason. When we succeed, the Runnable will cancel itself. final Future future = rolloverExecutor.scheduleWithFixedDelay(rolloverRunnable, 0, 10, TimeUnit.SECONDS); futureReference.set(future); @@ -1061,6 +1082,13 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository final int journalCountThreshold = configuration.getJournalCount() * 5; final long sizeThreshold = (long) (configuration.getMaxStorageCapacity() * 1.1D); // do not go over 10% of max capacity + // check if we need to apply backpressure. + // If we have too many journal files, or if the repo becomes too large, backpressure is necessary. Without it, + // if the rate at which provenance events are registered exceeds the rate at which we can compress/merge/index them, + // then eventually we will end up with all of the data stored in the 'journals' directory and not yet indexed. This + // would mean that the data would never even be accessible. In order to prevent this, if we exceeds 110% of the configured + // max capacity for the repo, or if we have 5 sets of journal files waiting to be merged, we will block here until + // that is no longer the case. if (journalFileCount > journalCountThreshold || repoSize > sizeThreshold) { logger.warn("The rate of the dataflow is exceeding the provenance recording rate. " + "Slowing down flow to accomodate. Currently, there are {} journal files ({} bytes) and " @@ -1086,14 +1114,17 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository + "journal files to be rolled over is {}", journalFileCount); } + // we've finished rolling over successfully. Create new writers and reset state. writers = createWriters(configuration, idGenerator.get()); + dirtyWriterCount.set(0); streamStartTime.set(System.currentTimeMillis()); recordsWrittenSinceRollover.getAndSet(0); } } - private Set recoverJournalFiles() throws IOException { + // protected for use in unit tests + protected Set recoverJournalFiles() throws IOException { if (!configuration.isAllowRollover()) { return Collections.emptySet(); } @@ -1133,7 +1164,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository for (final List journalFileSet : journalMap.values()) { final long storageDirIdx = storageDirectoryIndex.getAndIncrement(); final File storageDir = storageDirs.get((int) (storageDirIdx % storageDirs.size())); - final File mergedFile = mergeJournals(journalFileSet, storageDir, getMergeFile(journalFileSet, storageDir), eventReporter, latestRecords); + final File mergedFile = mergeJournals(journalFileSet, getMergeFile(journalFileSet, storageDir), eventReporter); if (mergedFile != null) { mergedFiles.add(mergedFile); } @@ -1160,11 +1191,30 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository return mergedFile; } - File mergeJournals(final List journalFiles, final File storageDir, final File mergedFile, final EventReporter eventReporter, - final RingBuffer ringBuffer) throws IOException { - logger.debug("Merging {} to {}", journalFiles, mergedFile); + /** + *

        + * Merges all of the given Journal Files into a single, merged Provenance Event Log File. As these records are merged, they will be compressed, if the repository is configured to compress records, + * and will be indexed. + *

        + * + *

        + * If the repository is configured to compress the data, the file written to may not be the same as the suggestedMergeFile, as a filename extension of '.gz' may be appended. If the + * journals are successfully merged, the file that they were merged into will be returned. If unable to merge the records (for instance, because the repository has been closed or because the list + * of journal files was empty), this method will return null. + *

        + * + * @param journalFiles the journal files to merge + * @param suggestedMergeFile the file to write the merged records to + * @param eventReporter the event reporter to report any warnings or errors to; may be null. + * + * @return the file that the given journals were merged into, or null if no records were merged. + * + * @throws IOException if a problem occurs writing to the mergedFile, reading from a journal, or updating the Lucene Index. + */ + File mergeJournals(final List journalFiles, final File suggestedMergeFile, final EventReporter eventReporter) throws IOException { + logger.debug("Merging {} to {}", journalFiles, suggestedMergeFile); if ( this.closed ) { - logger.info("Provenance Repository has been closed; will not merge journal files to {}", mergedFile); + logger.info("Provenance Repository has been closed; will not merge journal files to {}", suggestedMergeFile); return null; } @@ -1194,7 +1244,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository // check if we have all of the "partial" files for the journal. if (allPartialFiles) { - if ( mergedFile.exists() ) { + if (suggestedMergeFile.exists()) { // we have all "partial" files and there is already a merged file. Delete the data from the index // because the merge file may not be fully merged. We will re-merge. logger.warn("Merged Journal File {} already exists; however, all partial journal files also exist " @@ -1202,9 +1252,9 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository final DeleteIndexAction deleteAction = new DeleteIndexAction(this, indexConfig, indexManager); try { - deleteAction.execute(mergedFile); + deleteAction.execute(suggestedMergeFile); } catch (final Exception e) { - logger.warn("Failed to delete records from Journal File {} from the index; this could potentially result in duplicates. Failure was due to {}", mergedFile, e.toString()); + logger.warn("Failed to delete records from Journal File {} from the index; this could potentially result in duplicates. Failure was due to {}", suggestedMergeFile, e.toString()); if ( logger.isDebugEnabled() ) { logger.warn("", e); } @@ -1213,15 +1263,15 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository // Since we only store the file's basename, block offset, and event ID, and because the newly created file could end up on // a different Storage Directory than the original, we need to ensure that we delete both the partially merged // file and the TOC file. Otherwise, we could get the wrong copy and have issues retrieving events. - if ( !mergedFile.delete() ) { + if (!suggestedMergeFile.delete()) { logger.error("Failed to delete partially written Provenance Journal File {}. This may result in events from this journal " - + "file not being able to be displayed. This file should be deleted manually.", mergedFile); + + "file not being able to be displayed. This file should be deleted manually.", suggestedMergeFile); } - final File tocFile = TocUtil.getTocFile(mergedFile); + final File tocFile = TocUtil.getTocFile(suggestedMergeFile); if ( tocFile.exists() && !tocFile.delete() ) { logger.error("Failed to delete .toc file {}; this may result in not being able to read the Provenance Events from the {} Journal File. " - + "This can be corrected by manually deleting the {} file", tocFile, mergedFile, tocFile); + + "This can be corrected by manually deleting the {} file", tocFile, suggestedMergeFile, tocFile); } } } else { @@ -1245,7 +1295,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository int records = 0; final boolean isCompress = configuration.isCompressOnRollover(); - final File writerFile = isCompress ? new File(mergedFile.getParentFile(), mergedFile.getName() + ".gz") : mergedFile; + final File writerFile = isCompress ? new File(suggestedMergeFile.getParentFile(), suggestedMergeFile.getName() + ".gz") : suggestedMergeFile; try { for (final File journalFile : journalFiles) { @@ -1293,8 +1343,10 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository logger.warn("", e); } - eventReporter.reportEvent(Severity.WARNING, EVENT_CATEGORY, "Failed to read Provenance Event Record from Journal due to " + e + + if (eventReporter != null) { + eventReporter.reportEvent(Severity.WARNING, EVENT_CATEGORY, "Failed to read Provenance Event Record from Journal due to " + e + "; it's possible that hte record wasn't completely written to the file. This record will be skipped."); + } } if (record == null) { @@ -1332,37 +1384,42 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository try { long maxId = 0L; - while (!recordToReaderMap.isEmpty()) { - final Map.Entry entry = recordToReaderMap.entrySet().iterator().next(); - final StandardProvenanceEventRecord record = entry.getKey(); - final RecordReader reader = entry.getValue(); + try { + while (!recordToReaderMap.isEmpty()) { + final Map.Entry entry = recordToReaderMap.entrySet().iterator().next(); + final StandardProvenanceEventRecord record = entry.getKey(); + final RecordReader reader = entry.getValue(); - writer.writeRecord(record, record.getEventId()); - final int blockIndex = writer.getTocWriter().getCurrentBlockIndex(); + writer.writeRecord(record, record.getEventId()); + final int blockIndex = writer.getTocWriter().getCurrentBlockIndex(); - indexingAction.index(record, indexWriter, blockIndex); - maxId = record.getEventId(); + indexingAction.index(record, indexWriter, blockIndex); + maxId = record.getEventId(); - latestRecords.add(truncateAttributes(record)); - records++; + latestRecords.add(truncateAttributes(record)); + records++; - // Remove this entry from the map - recordToReaderMap.remove(record); + // Remove this entry from the map + recordToReaderMap.remove(record); - // Get the next entry from this reader and add it to the map - StandardProvenanceEventRecord nextRecord = null; + // Get the next entry from this reader and add it to the map + StandardProvenanceEventRecord nextRecord = null; - try { - nextRecord = reader.nextRecord(); - } catch (final EOFException eof) { - } - - if (nextRecord != null) { - recordToReaderMap.put(nextRecord, reader); + try { + nextRecord = reader.nextRecord(); + } catch (final EOFException eof) { + } + + if (nextRecord != null) { + recordToReaderMap.put(nextRecord, reader); + } } + indexWriter.commit(); + } catch (final Throwable t) { + indexWriter.rollback(); + throw t; } - indexWriter.commit(); indexConfig.setMaxIdIndexed(maxId); } finally { indexManager.returnIndexWriter(indexingDirectory, indexWriter); @@ -1370,10 +1427,11 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } // record should now be available in the repository. We can copy the values from latestRecords to ringBuffer. + final RingBuffer latestRecordBuffer = this.latestRecords; latestRecords.forEach(new ForEachEvaluator() { @Override public boolean evaluate(final ProvenanceEventRecord event) { - ringBuffer.add(event); + latestRecordBuffer.add(event); return true; } }); @@ -1390,13 +1448,21 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository for (final File journalFile : journalFiles) { if (!journalFile.delete() && journalFile.exists()) { logger.warn("Failed to remove temporary journal file {}; this file should be cleaned up manually", journalFile.getAbsolutePath()); - eventReporter.reportEvent(Severity.WARNING, EVENT_CATEGORY, "Failed to remove temporary journal file " + journalFile.getAbsolutePath() + "; this file should be cleaned up manually"); + + if (eventReporter != null) { + eventReporter.reportEvent(Severity.WARNING, EVENT_CATEGORY, "Failed to remove temporary journal file " + + journalFile.getAbsolutePath() + "; this file should be cleaned up manually"); + } } final File tocFile = TocUtil.getTocFile(journalFile); if (!tocFile.delete() && tocFile.exists()) { logger.warn("Failed to remove temporary journal TOC file {}; this file should be cleaned up manually", tocFile.getAbsolutePath()); - eventReporter.reportEvent(Severity.WARNING, EVENT_CATEGORY, "Failed to remove temporary journal TOC file " + tocFile.getAbsolutePath() + "; this file should be cleaned up manually"); + + if (eventReporter != null) { + eventReporter.reportEvent(Severity.WARNING, EVENT_CATEGORY, "Failed to remove temporary journal TOC file " + + tocFile.getAbsolutePath() + "; this file should be cleaned up manually"); + } } } @@ -1406,7 +1472,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository } else { final long nanos = System.nanoTime() - startNanos; final long millis = TimeUnit.MILLISECONDS.convert(nanos, TimeUnit.NANOSECONDS); - logger.info("Successfully merged {} journal files ({} records) into single Provenance Log File {} in {} milliseconds", journalFiles.size(), records, mergedFile, millis); + logger.info("Successfully merged {} journal files ({} records) into single Provenance Log File {} in {} milliseconds", journalFiles.size(), records, suggestedMergeFile, millis); } return writerFile; @@ -1850,7 +1916,7 @@ public class PersistentProvenanceRepository implements ProvenanceEventRepository return true; } - if (repoDirty.get() || writtenSinceRollover > 0 && System.currentTimeMillis() > streamStartTime.get() + maxPartitionMillis) { + if ((dirtyWriterCount.get() > 0) || (writtenSinceRollover > 0 && System.currentTimeMillis() > streamStartTime.get() + maxPartitionMillis)) { return true; } diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java index 5221ebc3da..42bc8e99e6 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java @@ -27,6 +27,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.regex.Pattern; import java.util.zip.GZIPInputStream; import org.apache.nifi.provenance.serialization.RecordReader; @@ -40,6 +41,7 @@ import org.slf4j.LoggerFactory; public class StandardRecordReader implements RecordReader { private static final Logger logger = LoggerFactory.getLogger(StandardRecordReader.class); + private static final Pattern UUID_PATTERN = Pattern.compile("[a-fA-F0-9]{8}\\-([a-fA-F0-9]{4}\\-){3}[a-fA-F0-9]{12}"); private final ByteCountingInputStream rawInputStream; private final String filename; @@ -394,7 +396,11 @@ public class StandardRecordReader implements RecordReader { // write less data. However, in version 8 we changed to just writing // out the string because it's extremely expensive to call UUID.fromString. // In the end, since we generally compress, the savings in minimal anyway. - return in.readUTF(); + final String uuid = in.readUTF(); + if (!UUID_PATTERN.matcher(uuid).matches()) { + throw new IOException("Failed to parse Provenance Event Record: expected a UUID but got: " + uuid); + } + return uuid; } } diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java index 50caee1ef4..a8c0dd0d7b 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.OutputStream; import java.util.Collection; import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -44,6 +45,7 @@ public class StandardRecordWriter implements RecordWriter { private final TocWriter tocWriter; private final boolean compressed; private final int uncompressedBlockSize; + private final AtomicBoolean dirtyFlag = new AtomicBoolean(false); private DataOutputStream out; private ByteCountingOutputStream byteCountingOut; @@ -65,11 +67,11 @@ public class StandardRecordWriter implements RecordWriter { this.tocWriter = writer; } - static void writeUUID(final DataOutputStream out, final String uuid) throws IOException { + protected void writeUUID(final DataOutputStream out, final String uuid) throws IOException { out.writeUTF(uuid); } - static void writeUUIDs(final DataOutputStream out, final Collection list) throws IOException { + protected void writeUUIDs(final DataOutputStream out, final Collection list) throws IOException { if (list == null) { out.writeInt(0); } else { @@ -241,7 +243,7 @@ public class StandardRecordWriter implements RecordWriter { return byteCountingOut.getBytesWritten() - startBytes; } - private void writeNullableString(final DataOutputStream out, final String toWrite) throws IOException { + protected void writeNullableString(final DataOutputStream out, final String toWrite) throws IOException { if (toWrite == null) { out.writeBoolean(false); } else { @@ -304,7 +306,16 @@ public class StandardRecordWriter implements RecordWriter { @Override public boolean tryLock() { - return lock.tryLock(); + final boolean obtainedLock = lock.tryLock(); + if (obtainedLock && dirtyFlag.get()) { + // once we have obtained the lock, we need to check if the writer + // has been marked dirty. If so, we cannot write to the underlying + // file, so we need to unlock and return false. Otherwise, it's okay + // to write to the underlying file, so return true. + lock.unlock(); + return false; + } + return obtainedLock; } @Override @@ -324,4 +335,9 @@ public class StandardRecordWriter implements RecordWriter { public TocWriter getTocWriter() { return tocWriter; } + + @Override + public void markDirty() { + dirtyFlag.set(true); + } } diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java index 7c9bcc0973..03f1ad0c6f 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java @@ -67,15 +67,23 @@ public interface RecordWriter extends Closeable { /** * Attempts to obtain a mutually exclusive lock for this Writer so that * operations that must be atomic can be achieved atomically. If the lock is - * not immediately available, returns false; otherwise, obtains - * the lock and returns true. + * not immediately available, or if the writer is 'dirty' (see {@link #markDirty()}, + * returns false; otherwise, obtains the lock and returns true. * * @return true if the lock was obtained, false otherwise. */ boolean tryLock(); + /** + * Indicates that this Record Writer is 'dirty', meaning that it can no longer be + * updated. This can happen, for example, if a partial record is written. In this case, + * writing to this RecordWriter again could cause corruption. + */ + void markDirty(); + /** * Syncs the content written to this writer to disk. + * * @throws IOException if unable to sync content to disk */ void sync() throws IOException; diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java index 3737588d38..713180f206 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java @@ -28,10 +28,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -58,15 +60,21 @@ import org.apache.nifi.provenance.search.SearchTerms; import org.apache.nifi.provenance.search.SearchableField; import org.apache.nifi.provenance.serialization.RecordReader; import org.apache.nifi.provenance.serialization.RecordReaders; +import org.apache.nifi.provenance.serialization.RecordWriter; import org.apache.nifi.reporting.Severity; +import org.apache.nifi.stream.io.DataOutputStream; import org.apache.nifi.util.file.FileUtils; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; +import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; public class TestPersistentProvenanceRepository { @@ -549,7 +557,12 @@ public class TestPersistentProvenanceRepository { builder.fromFlowFile(createFlowFile(3L, 3000L, attributes)); for (int i = 0; i < 10; i++) { - attributes.put("uuid", "00000000-0000-0000-0000-00000000000" + String.valueOf(i + j * 10)); + String uuidSuffix = String.valueOf(i + j * 10); + if (uuidSuffix.length() < 2) { + uuidSuffix = "0" + uuidSuffix; + } + + attributes.put("uuid", "00000000-0000-0000-0000-0000000000" + uuidSuffix); builder.fromFlowFile(createFlowFile(i + j * 10, 3000L, attributes)); repo.registerEvent(builder.build()); } @@ -1202,4 +1215,109 @@ public class TestPersistentProvenanceRepository { assertEquals("12345678901234567890123456789012345678901234567890", retrieved.getAttributes().get("75chars")); } + @Test + public void testBehaviorOnOutOfMemory() throws IOException, InterruptedException { + final RepositoryConfiguration config = createConfiguration(); + config.setMaxEventFileLife(3, TimeUnit.MINUTES); + config.setJournalCount(4); + + // Create a repository that overrides the createWriters() method so that we can return writers that will throw + // OutOfMemoryError where we want to + final AtomicBoolean causeOOME = new AtomicBoolean(false); + repo = new PersistentProvenanceRepository(config, DEFAULT_ROLLOVER_MILLIS) { + @Override + protected RecordWriter[] createWriters(RepositoryConfiguration config, long initialRecordId) throws IOException { + final RecordWriter[] recordWriters = super.createWriters(config, initialRecordId); + + // Spy on each of the writers so that a call to writeUUID throws an OutOfMemoryError if we set the + // causeOOME flag to true + final StandardRecordWriter[] spiedWriters = new StandardRecordWriter[recordWriters.length]; + for (int i = 0; i < recordWriters.length; i++) { + final StandardRecordWriter writer = (StandardRecordWriter) recordWriters[i]; + + spiedWriters[i] = Mockito.spy(writer); + Mockito.doAnswer(new Answer() { + @Override + public Object answer(final InvocationOnMock invocation) throws Throwable { + if (causeOOME.get()) { + throw new OutOfMemoryError(); + } else { + writer.writeUUID(invocation.getArgumentAt(0, DataOutputStream.class), invocation.getArgumentAt(1, String.class)); + } + return null; + } + }).when(spiedWriters[i]).writeUUID(Mockito.any(DataOutputStream.class), Mockito.any(String.class)); + } + + // return the writers that we are spying on + return spiedWriters; + } + }; + repo.initialize(getEventReporter()); + + final Map attributes = new HashMap<>(); + attributes.put("75chars", "123456789012345678901234567890123456789012345678901234567890123456789012345"); + + final ProvenanceEventBuilder builder = new StandardProvenanceEventRecord.Builder(); + builder.setEventTime(System.currentTimeMillis()); + builder.setEventType(ProvenanceEventType.RECEIVE); + builder.setTransitUri("nifi://unit-test"); + attributes.put("uuid", "12345678-0000-0000-0000-012345678912"); + builder.fromFlowFile(createFlowFile(3L, 3000L, attributes)); + builder.setComponentId("1234"); + builder.setComponentType("dummy processor"); + + // first make sure that we are able to write to the repo successfully. + for (int i = 0; i < 4; i++) { + final ProvenanceEventRecord record = builder.build(); + repo.registerEvent(record); + } + + // cause OOME to occur + causeOOME.set(true); + + // write 4 times to make sure that we mark all partitions as dirty + for (int i = 0; i < 4; i++) { + final ProvenanceEventRecord record = builder.build(); + try { + repo.registerEvent(record); + Assert.fail("Expected OutOfMmeoryError but was able to register event"); + } catch (final OutOfMemoryError oome) { + } + } + + // now that all partitions are dirty, ensure that as we keep trying to write, we get an IllegalStateException + // and that we don't corrupt the repository by writing partial records + for (int i = 0; i < 8; i++) { + final ProvenanceEventRecord record = builder.build(); + try { + repo.registerEvent(record); + Assert.fail("Expected OutOfMmeoryError but was able to register event"); + } catch (final IllegalStateException ise) { + } + } + + // close repo so that we can create a new one to recover records + repo.close(); + + // make sure we can recover + final PersistentProvenanceRepository recoveryRepo = new PersistentProvenanceRepository(config, DEFAULT_ROLLOVER_MILLIS) { + @Override + protected Set recoverJournalFiles() throws IOException { + try { + return super.recoverJournalFiles(); + } catch (final IOException ioe) { + Assert.fail("Failed to recover properly"); + return null; + } + } + }; + + try { + recoveryRepo.initialize(getEventReporter()); + } finally { + recoveryRepo.close(); + } + } + } From e59ee5dda18bda9184e7eac211517ced181d1508 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Tue, 4 Aug 2015 14:37:54 -0400 Subject: [PATCH 59/77] NIFI-807: Cache the buffers that will be used to write data when reading from FlowFiles --- .../nifi/processors/standard/ExtractText.java | 61 +++++++++++++------ 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java index 5a386a628b..2862c342c9 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java @@ -26,13 +26,22 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.nifi.annotation.behavior.DynamicProperty; +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.behavior.SideEffectFree; +import org.apache.nifi.annotation.behavior.SupportsBatching; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnStopped; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.flowfile.FlowFile; -import org.apache.nifi.stream.io.StreamUtils; import org.apache.nifi.logging.ProcessorLog; import org.apache.nifi.processor.AbstractProcessor; import org.apache.nifi.processor.DataUnit; @@ -40,15 +49,9 @@ import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.processor.ProcessSession; import org.apache.nifi.processor.ProcessorInitializationContext; import org.apache.nifi.processor.Relationship; -import org.apache.nifi.annotation.documentation.CapabilityDescription; -import org.apache.nifi.annotation.behavior.DynamicProperty; -import org.apache.nifi.annotation.behavior.EventDriven; -import org.apache.nifi.annotation.behavior.SideEffectFree; -import org.apache.nifi.annotation.behavior.SupportsBatching; -import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.processor.io.InputStreamCallback; import org.apache.nifi.processor.util.StandardValidators; -import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.stream.io.StreamUtils; @EventDriven @SideEffectFree @@ -186,6 +189,7 @@ public class ExtractText extends AbstractProcessor { private Set relationships; private List properties; + private final BlockingQueue bufferQueue = new LinkedBlockingQueue<>(); private final AtomicReference> compiledPattersMapRef = new AtomicReference<>(); @Override @@ -245,6 +249,17 @@ public class ExtractText extends AbstractProcessor { compiledPatternsMap.put(entry.getKey().getName(), pattern); } compiledPattersMapRef.set(compiledPatternsMap); + + for (int i = 0; i < context.getMaxConcurrentTasks(); i++) { + final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).asDataSize(DataUnit.B).intValue(); + final byte[] buffer = new byte[maxBufferSize]; + bufferQueue.add(buffer); + } + } + + @OnStopped + public void onStopped() { + bufferQueue.clear(); } @Override @@ -256,17 +271,29 @@ public class ExtractText extends AbstractProcessor { final ProcessorLog logger = getLogger(); final Charset charset = Charset.forName(context.getProperty(CHARACTER_SET).getValue()); final int maxCaptureGroupLength = context.getProperty(MAX_CAPTURE_GROUP_LENGTH).asInteger(); - final long maxBufferSizeL = Math.min(flowFile.getSize(), context.getProperty(MAX_BUFFER_SIZE).asDataSize(DataUnit.B).longValue()); - final byte[] buffer = new byte[(int) maxBufferSizeL]; - session.read(flowFile, new InputStreamCallback() { - @Override - public void process(InputStream in) throws IOException { - StreamUtils.fillBuffer(in, buffer, false); - } - }); + final String contentString; + byte[] buffer = bufferQueue.poll(); + if (buffer == null) { + final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).asDataSize(DataUnit.B).intValue(); + buffer = new byte[maxBufferSize]; + } + + try { + final byte[] byteBuffer = buffer; + session.read(flowFile, new InputStreamCallback() { + @Override + public void process(InputStream in) throws IOException { + StreamUtils.fillBuffer(in, byteBuffer, false); + } + }); + + final long len = Math.min(byteBuffer.length, flowFile.getSize()); + contentString = new String(byteBuffer, 0, (int) len, charset); + } finally { + bufferQueue.offer(buffer); + } - final String contentString = new String(buffer, 0, (int) maxBufferSizeL, charset); final Map regexResults = new HashMap<>(); final Map patternMap = compiledPattersMapRef.get(); From 4b9ee460a8ea67ceff89b6dc9ecbb7d06f596c21 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Thu, 6 Aug 2015 11:55:08 -0400 Subject: [PATCH 60/77] NIFI-825: Use new method of accessing controller services and rather than caching an SSLContext, obtain one from the service each time --- .../nifi/processors/standard/InvokeHTTP.java | 98 +++++++------------ 1 file changed, 34 insertions(+), 64 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java index c8a354b87e..82e0573e31 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java @@ -39,7 +39,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -52,10 +51,10 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; import org.apache.nifi.annotation.behavior.DynamicProperty; import org.apache.nifi.annotation.behavior.SupportsBatching; -import org.apache.nifi.annotation.documentation.CapabilityDescription; -import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.behavior.WritesAttribute; import org.apache.nifi.annotation.behavior.WritesAttributes; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.flowfile.FlowFile; import org.apache.nifi.logging.ProcessorLog; @@ -84,10 +83,8 @@ import org.joda.time.format.DateTimeFormatter; + "Enabling this property has MITM security implications, use wisely. Only valid with SSL (HTTPS) connections.") public final class InvokeHTTP extends AbstractProcessor { - //-- properties --// @Override protected List getSupportedPropertyDescriptors() { - return Config.PROPERTIES; } @@ -99,70 +96,47 @@ public final class InvokeHTTP extends AbstractProcessor { return super.getSupportedDynamicPropertyDescriptor(propertyDescriptorName); } - //-- relationships --// @Override public Set getRelationships() { return Config.RELATIONSHIPS; } - //-- class properties --// - final AtomicReference sslContextRef = new AtomicReference<>(); - final AtomicReference attributesToSendRef = new AtomicReference<>(); + private volatile Pattern attributesToSend = null; @Override - public void onPropertyModified(PropertyDescriptor descriptor, String oldValue, String newValue) { - newValue = StringUtils.trimToEmpty(newValue); - - // listen for the SSL Context Service property and retrieve the SSLContext from the controller service. - if (Config.PROP_SSL_CONTEXT_SERVICE.getName().equalsIgnoreCase(descriptor.getName())) { - if (newValue.isEmpty()) { - sslContextRef.set(null); - } else { - SSLContextService svc = (SSLContextService) getControllerServiceLookup().getControllerService(newValue); - sslContextRef.set(svc.createSSLContext(ClientAuth.NONE)); // ClientAuth is only useful for servers, not clients. - getLogger().info("Loading SSL configuration from keystore={} and truststore={}", - new Object[]{svc.getKeyStoreFile(), svc.getTrustStoreFile()}); - } - } + public void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue) { + final String trimmedValue = StringUtils.trimToEmpty(newValue); // compile the attributes-to-send filter pattern if (Config.PROP_ATTRIBUTES_TO_SEND.getName().equalsIgnoreCase(descriptor.getName())) { if (newValue.isEmpty()) { - attributesToSendRef.set(null); + attributesToSend = null; } else { - attributesToSendRef.set(Pattern.compile(newValue)); + attributesToSend = Pattern.compile(trimmedValue); } } } - //-- processing --// @Override public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException { - List flowfiles = session.get(Config.MAX_RESULTS_PER_THREAD); - if (flowfiles.isEmpty()) { - context.yield(); + final FlowFile flowFile = session.get(); + if (flowFile == null) { return; } - for (FlowFile flowfile : flowfiles) { - Transaction transaction = new Transaction(getLogger(), sslContextRef, attributesToSendRef, context, session, flowfile); - transaction.process(); - } + final SSLContextService sslService = context.getProperty(Config.PROP_SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class); + final SSLContext sslContext = sslService == null ? null : sslService.createSSLContext(ClientAuth.NONE); + + Transaction transaction = new Transaction(getLogger(), sslContext, attributesToSend, context, session, flowFile); + transaction.process(); } /** - * * Stores properties, relationships, configuration values, hard coded strings, magic numbers, etc. - * - * */ public interface Config { - - //-- magic numbers --// - int MAX_RESULTS_PER_THREAD = 50; - - //-- flowfile attribute keys returned after reading the response --// + // flowfile attribute keys returned after reading the response String STATUS_CODE = "invokehttp.status.code"; String STATUS_MESSAGE = "invokehttp.status.message"; String RESPONSE_BODY = "invokehttp.response.body"; @@ -179,7 +153,7 @@ public final class InvokeHTTP extends AbstractProcessor { "uuid", "filename", "path" ))); - //-- properties --// + // properties public static final PropertyDescriptor PROP_METHOD = new PropertyDescriptor.Builder() .name("HTTP Method") .description("HTTP request method (GET, POST, PUT, DELETE, HEAD, OPTIONS).") @@ -297,7 +271,7 @@ public final class InvokeHTTP extends AbstractProcessor { .dynamic(true) .build(); - //-- relationships --// + // relationships public static final Relationship REL_SUCCESS_REQ = new Relationship.Builder() .name("Original") .description("Original FlowFile will be routed upon success (2xx status codes).") @@ -351,8 +325,8 @@ public final class InvokeHTTP extends AbstractProcessor { private static final Charset utf8 = Charset.forName("UTF-8"); private final ProcessorLog logger; - private final AtomicReference sslContextRef; - private final AtomicReference attributesToSendRef; + private final SSLContext sslContext; + private final Pattern attributesToSend; private final ProcessContext context; private final ProcessSession session; @@ -366,32 +340,31 @@ public final class InvokeHTTP extends AbstractProcessor { private String statusMessage; public Transaction( - ProcessorLog logger, - AtomicReference sslContextRef, - AtomicReference attributesToSendRef, - ProcessContext context, - ProcessSession session, - FlowFile request) { + final ProcessorLog logger, + final SSLContext sslContext, + final Pattern attributesToSend, + final ProcessContext context, + final ProcessSession session, + final FlowFile request) { this.logger = logger; - this.sslContextRef = sslContextRef; - this.attributesToSendRef = attributesToSendRef; + this.sslContext = sslContext; + this.attributesToSend = attributesToSend; this.context = context; this.session = session; this.request = request; } - public void process() { + public void process() { try { openConnection(); sendRequest(); readResponse(); transfer(); - - } catch (Throwable t) { + } catch (final Exception e) { // log exception - logger.error("Routing to {} due to exception: {}", new Object[]{REL_FAILURE.getName(), t}, t); + logger.error("Routing to {} due to exception: {}", new Object[] { REL_FAILURE.getName(), e }, e); // penalize request = session.penalize(request); @@ -404,10 +377,9 @@ public final class InvokeHTTP extends AbstractProcessor { if (response != null) { session.remove(response); } - } catch (Throwable t1) { - logger.error("Could not cleanup response flowfile due to exception: {}", new Object[]{t1}, t1); + } catch (final Exception e1) { + logger.error("Could not cleanup response flowfile due to exception: {}", new Object[] { e1 }, e1); } - } } @@ -447,7 +419,6 @@ public final class InvokeHTTP extends AbstractProcessor { HttpsURLConnection sconn = (HttpsURLConnection) conn; // check if the ssl context is set - SSLContext sslContext = sslContextRef.get(); if (sslContext != null) { sconn.setSSLSocketFactory(sslContext.getSocketFactory()); } @@ -573,10 +544,9 @@ public final class InvokeHTTP extends AbstractProcessor { // iterate through the flowfile attributes, adding any attribute that // matches the attributes-to-send pattern. if the pattern is not set // (it's an optional property), ignore that attribute entirely - Pattern p = attributesToSendRef.get(); - if (p != null) { + if (attributesToSend != null) { Map attributes = request.getAttributes(); - Matcher m = p.matcher(""); + Matcher m = attributesToSend.matcher(""); for (Map.Entry entry : attributes.entrySet()) { String key = trimToEmpty(entry.getKey()); String val = trimToEmpty(entry.getValue()); From 33279fd9d7f93f23137e8259febf709f50306012 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Sat, 8 Aug 2015 15:52:49 -0400 Subject: [PATCH 61/77] NIFI-831, NIFI-799: Fixed a NullPointerException; use a buffer size of 10,000 messages instead of 100,000 --- .../java/org/apache/nifi/processors/twitter/GetTwitter.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java index a0568676c2..f24b086a1d 100644 --- a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java +++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java @@ -142,7 +142,7 @@ public class GetTwitter extends AbstractProcessor { private final BlockingQueue eventQueue = new LinkedBlockingQueue<>(1000); private volatile Client client; - private volatile BlockingQueue messageQueue; + private volatile BlockingQueue messageQueue = new LinkedBlockingQueue<>(10000); @Override protected void init(final ProcessorInitializationContext context) { @@ -200,14 +200,12 @@ public class GetTwitter extends AbstractProcessor { @Override public void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue) { - // if any property is modified, the results are no longer valid. Destroy all messages in teh queue. + // if any property is modified, the results are no longer valid. Destroy all messages in the queue. messageQueue.clear(); } @OnScheduled public void onScheduled(final ProcessContext context) throws MalformedURLException { - messageQueue = new LinkedBlockingQueue<>(100000); - final String endpointName = context.getProperty(ENDPOINT).getValue(); final Authentication oauth = new OAuth1(context.getProperty(CONSUMER_KEY).getValue(), context.getProperty(CONSUMER_SECRET).getValue(), From e5fa763458b1dd07585e1b0ec7b8c52340f2fdf8 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Mon, 10 Aug 2015 13:44:15 -0400 Subject: [PATCH 62/77] NIFI-832: Added information about site-to-site to user guide --- .../main/asciidoc/administration-guide.adoc | 2 + .../src/main/asciidoc/user-guide.adoc | 127 ++++++++++++++++-- 2 files changed, 117 insertions(+), 12 deletions(-) diff --git a/nifi/nifi-docs/src/main/asciidoc/administration-guide.adoc b/nifi/nifi-docs/src/main/asciidoc/administration-guide.adoc index 4595c75823..679493a633 100644 --- a/nifi/nifi-docs/src/main/asciidoc/administration-guide.adoc +++ b/nifi/nifi-docs/src/main/asciidoc/administration-guide.adoc @@ -523,6 +523,8 @@ properties govern how that tool works. |nifi.components.status.snapshot.frequency|This value indicates how often to present a snapshot of the components' status history. The default value is 5 mins. |==== + +[[site_to_site_properties]] *Site to Site Properties* + These properties govern how this instance of NiFi communicates with remote instances of NiFi when Remote Process Groups are configured in the dataflow. diff --git a/nifi/nifi-docs/src/main/asciidoc/user-guide.adoc b/nifi/nifi-docs/src/main/asciidoc/user-guide.adoc index e718bce003..b793af4aa5 100644 --- a/nifi/nifi-docs/src/main/asciidoc/user-guide.adoc +++ b/nifi/nifi-docs/src/main/asciidoc/user-guide.adoc @@ -170,6 +170,7 @@ This section looks at each of the Components in that toolbar: image::components.png["Components"] +[[processor]] image:iconProcessor.png["Processor", width=32] *Processor*: The Processor is the most commonly used component, as it is responsible for data ingress, egress, routing, and manipulating. There are many different types of Processors. In fact, this is a very common Extension Point in NiFi, @@ -192,29 +193,36 @@ location that it was dropped. *Note*: For any component added to the graph, it is possible to select it with the mouse and move it anywhere on the graph. Also, it is possible to select multiple items at once by either holding down the Shift key and selecting each item or by holding down the Shift key and dragging a selection box around the desired components. + +[[input_port]] image:iconInputPort.png["Input Port", width=32] *Input Port*: Input Ports provide a mechanism for transferring data into a Process Group. When an Input Port is dragged onto the canvas, the DFM is prompted to name the Port. All Ports within a Process Group must have unique names. -All components exist only within a Process Group. When a user initially navigates to the NiFi page, the user is placed in the -Root Process Group. If the Input Port is dragged onto the Root Process Group, the Input Port provides a mechanism -to receive data from remote instances of NiFi. In this case, the Input Port can be configured to restrict access to -appropriate users. - +All components exist only within a Process Group. When a user initially navigates to the NiFi page, the user is placed +in the Root Process Group. If the Input Port is dragged onto the Root Process Group, the Input Port provides a mechanism +to receive data from remote instances of NiFi via <>. In this case, the Input Port can be configured +to restrict access to appropriate users, if NiFi is configured to run securely. For information on configuring NiFi to run +securely, see the +link:administration-guide.html[Admin Guide]. +[[output_port]] image:iconOutputPort.png["Output Port", width=32] *Output Port*: Output Ports provide a mechanism for transferring data from a Process Group to destinations outside of the Process Group. When an Output Port is dragged onto the canvas, the DFM is prompted to name the Port. All Ports within a Process Group must have unique names. If the Output Port is dragged onto the Root Process Group, the Output Port provides a mechanism for sending data to -remote instances of NiFi. In this case, the Port acts as a queue. As remote instances of NiFi pull data from the port, -that data is removed from the queues of the incoming Connections. - +remote instances of NiFi via <>. In this case, the Port acts as a queue. As remote instances +of NiFi pull data from the port, that data is removed from the queues of the incoming Connections. If NiFi is configured +to run securely, the Output Port can be configured to restrict access to appropriate users. For information on configuring +NiFi to run securely, see the +link:administration-guide.html[Admin Guide]. +[[process_group]] image:iconProcessGroup.png["Process Group", width=32] *Process Group*: Process Groups can be used to logically group a set of components so that the dataflow is easier to understand and maintain. When a Process Group is dragged onto the canvas, the DFM is prompted to name the Process Group. All Process @@ -222,6 +230,7 @@ Groups within the same parent group must have unique names. The Process Group wi +[[remote_process_group]] image:iconRemoteProcessGroup.png["Remote Process Group", width=32] *Remote Process Group*: Remote Process Groups appear and behave similar to Process Groups. However, the Remote Process Group (RPG) references a remote instance of NiFi. When an RPG is dragged onto the canvas, rather than being prompted for a name, the DFM @@ -229,10 +238,11 @@ is prompted for the URL of the remote NiFi instance. If the remote NiFi is a clu is the URL of the remote instance's NiFi Cluster Manager (NCM). When data is transferred to a clustered instance of NiFi via an RPG, the RPG it will first connect to the remote instance's NCM to determine which nodes are in the cluster and how busy each node is. This information is then used to load balance the data that is pushed to each node. The remote NCM is -then interrogated periodically to determine information about any nodes that are dropped from or added to the cluster and to recalculate the load balancing based on each node's load. - +then interrogated periodically to determine information about any nodes that are dropped from or added to the cluster and to +recalculate the load balancing based on each node's load. For more information, see the section on <>. +[[funnel]] image:iconFunnel.png["Funnel", width=32] *Funnel*: Funnels are used to combine the data from many Connections into a single Connection. This has two advantages. First, if many Connections are created with the same destination, the canvas can become cluttered if those Connections @@ -242,7 +252,7 @@ several Connections can be funneled into a single Connection, providing the abil one Connection, rather than prioritizing the data on each Connection independently. - +[[template]] image:iconTemplate.png["Template", width=32] *Template*: Templates can be created by DFMs from sections of the flow, or they can be imported from other dataflows. These Templates provide larger building blocks for creating a complex flow quickly. When the Template is @@ -257,7 +267,7 @@ image::instantiate-template-description.png["Instantiate Template Dialog"] - +[[label]] image:iconLabel.png["Label"] *Label*: Labels are used to provide documentation to parts of a dataflow. When a Label is dropped onto the canvas, it is created with a default size. The Label can then be resized by dragging the handle in the bottom-right corner. @@ -589,6 +599,99 @@ to a Stop icon, indicating that the Processor is valid and ready to be started b image::valid-processor.png["Valid Processor"] + + +[[site-to-site]] +=== Site-to-Site + +When sending data from one instance of NiFi to another, there are many different protocols that can be used. The preferred +protocol, though, is the NiFi Site-to-Site Protocol. Site-to-Site makes it easy to transfer data from one NiFi instance to +another easily, efficiently, and securely. + +Using Site-to-Site provides the following benefits: + +* Easy to configure +** After entering the URL of the remote NiFi instance, the available ports (endpoints) are automatically discovered and provided in a drop-down list + +* Secure +** Site-to-Site optionally makes use of Certificates in order to encrypt data and provide authentication and authorization. Each port can be configured + to allow only specific users, and only those users will be able to see that the port even exists. For information on configuring the Certificates, + see the +link:administration-guide.html#security-configuration[Security Configuration] section of the +link:administration-guide.html[Admin Guide]. + +* Scalable +** As nodes in the remote cluster change, those changes are automatically detected and data is scaled out across all nodes in the cluster. + +* Efficient +** Site-to-Site allows batches of FlowFiles to be sent at once in order to avoid the overhead of establishing connections and making multiple + round-trip requests between peers. + +* Reliable +** Checksums are automatically produced by both the sender and receiver and compared after the data has been transmitted, in order + to ensure that no corruption has occurred. If the checksums don't match, the transaction will simply be canceled and tried again. + +* Automatically load balanced +** As nodes come online or drop out of the remote cluster, or a node's load becomes heavier or lighter, the amount of data that is directed + to that node will automatically be adjusted. + +* FlowFiles maintain attributes +** When a FlowFile is transferred over this protocol, all of the FlowFile's attributes + are automatically transferred with it. This can be very advantageous in many situations, as all of the context and enrichment + that has been determined by one instance of NiFi travels with the data, making for easy routing of the data and allowing users + to easily inspect the data. + +* Adaptable +** As new technologies and ideas emerge, the protocol for handling Site-to-Site communications are able to change with them. When a connection is + made to a remote NiFi instance, a handshake is performed in order to negotiate which protocol and which version of the protocol will be used. + This allows new capabilities to be added while still maintaining backward compatibility with all older instances. Additionally, if a vulnerability + or deficiency is ever discovered in a protocol, it allows a newer version of NiFi to forbid communication over the compromised versions of the protocol. + +In order to communicate with a remote NiFi instance via Site-to-Site, simply drag a <> onto the graph +and enter the URL of the remote NiFi instance (for more information on the components of a Remote Process Group, see +<> section of this guide.) The URL is the same +URL you would use to go to that instance's User Interface. At that point, you can drag a connection to or from the Remote Process Group +in the same way you would drag a connection to or from a Processor or a local Process Group. When you drag the connection, you will have +a chance to choose which Port to connect to. Note that it may take up to one minute for the Remote Process Group to determine +which ports are available. + +If the connection is dragged starting from the Remote Process Group, the ports shown will be the Output Ports of the remote group, +as this indicates that you will be pulling data from the remote instance. If the connection instead ends on the Remote Process Group, +the ports shown will be the Input Ports of the remote group, as this implies that you will be pushing data to the remote instance. + +*Note*: if the remote instance is configured to use secure data transmission, you will see only ports that you are authorized to +communicate with. For information on configuring NiFi to run securely, see the +link:administration-guide.html[Admin Guide]. + +In order to allow another NiFi instance to push data to your local instance, you can simply drag an <> onto the Root Process Group +of your graph. After entering a name for the port, it will be added to your flow. You can now right-click on the Input Port and choose Configure in order +to adjust the name and the number of concurrent tasks that are used for the port. If Site-to-Site is configured to run securely, you will also be given +the ability to adjust who has access to the port. If secure, only those who have been granted access to communicate with the port will be able to see +that the port exists. + +After being given access to a particular port, in order to see that port, the operator of a remote NiFi instance may need to right-click on their Remote +Process Group and choose to "Refresh" the flow. + +Similar to an Input Port, a DataFlow Manager may choose to add an <> to the Root Process Group. The Output Port allows an +authorized NiFi instance to remotely connect to your instance and pull data from the Output Port. Configuring the Output Port will again allow the +DFM to control how many concurrent tasks are allowed, as well as which NiFi instances are authorized to pull data from the instance being configured. + +In addition to other instances of NiFi, some other applications may use a Site-to-Site client in order to push data to or receive data from a NiFi instance. +For example, NiFi provides an Apache Storm spout and an Apache Spark Receiver that are able to pull data from NiFi's Root Group Output Ports. + +If your instance of NiFi is running securely, the first time that a client establishes a connection to your instance, the client will be forbidden and +a request for an account for that client will automatically be generated. The client will need to be granted the 'NiFi' role in order to communicate +via Site-to-Site. For more information on managing user accounts, see the +link:administration-guide.html#controlling-levels-of-access[Controlling Levels of Access] +section of the link:administration-guide.html[Admin Guide]. + +For information on how to enable and configure Site-to-Site on a NiFi instance, see the +link:administration-guide.html#site_to_site_properties[Site-to-Site Properties] section of the +link:administration-guide.html[Admin Guide]. + + + + === Example Dataflow This section has described the steps required to build a dataflow. Now, to put it all together. The following example dataflow From 6a7a4d0762f7f5fd306f8def019ee904180043d7 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Mon, 10 Aug 2015 17:31:44 -0400 Subject: [PATCH 63/77] NIFI-829: ensure that the proper provenance events are emitted by InvokeHTTP --- .../nifi/processors/standard/InvokeHTTP.java | 10 ++++--- .../processors/standard/TestInvokeHTTP.java | 29 +++++++++++++++---- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java index 82e0573e31..77412cdcb9 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java @@ -331,6 +331,7 @@ public final class InvokeHTTP extends AbstractProcessor { private final ProcessSession session; private final long txId = txIdGenerator.incrementAndGet(); + private final long startNanos = System.nanoTime(); private FlowFile request; private FlowFile response; @@ -482,7 +483,7 @@ public final class InvokeHTTP extends AbstractProcessor { // and the status codes. if (isSuccess()) { // clone the flowfile to capture the response - response = session.clone(request); + response = session.create(request); // write the status attributes response = writeStatusAttributes(response); @@ -495,10 +496,11 @@ public final class InvokeHTTP extends AbstractProcessor { // can potentially be null in edge cases if (is != null) { response = session.importFrom(is, response); - } - // invoke provenance events - session.getProvenanceReporter().receive(response, conn.getURL().toExternalForm()); + // emit provenance event + final long millis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos); + session.getProvenanceReporter().modifyContent(response, "Updated content with data received from " + conn.getURL().toExternalForm(), millis); + } } diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java index acff14b683..46cacca06b 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java @@ -16,6 +16,11 @@ */ package org.apache.nifi.processors.standard; +import static org.apache.commons.codec.binary.Base64.encodeBase64; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; @@ -23,6 +28,7 @@ import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; @@ -32,6 +38,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.nifi.flowfile.attributes.CoreAttributes; import org.apache.nifi.processors.standard.InvokeHTTP.Config; +import org.apache.nifi.provenance.ProvenanceEventRecord; +import org.apache.nifi.provenance.ProvenanceEventType; import org.apache.nifi.ssl.StandardSSLContextService; import org.apache.nifi.util.MockFlowFile; import org.apache.nifi.util.TestRunner; @@ -42,12 +50,6 @@ import org.eclipse.jetty.server.handler.AbstractHandler; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; - -import static org.apache.commons.codec.binary.Base64.encodeBase64; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -217,6 +219,21 @@ public class TestInvokeHTTP { bundle1.assertAttributeEquals(Config.STATUS_MESSAGE, "OK"); bundle1.assertAttributeEquals("Foo", "Bar"); bundle1.assertAttributeEquals("Content-Type", "text/plain; charset=ISO-8859-1"); + + final List provEvents = runner.getProvenanceEvents(); + assertEquals(2, provEvents.size()); + boolean forkEvent = false; + boolean contentModEvent = false; + for (final ProvenanceEventRecord event : provEvents) { + if (event.getEventType() == ProvenanceEventType.FORK) { + forkEvent = true; + } else if (event.getEventType() == ProvenanceEventType.CONTENT_MODIFIED) { + contentModEvent = true; + } + } + + assertTrue(forkEvent); + assertTrue(contentModEvent); } @Test From 7cd84967dd90a122aaeede30b3b640f3591ebdee Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Mon, 10 Aug 2015 17:32:38 -0400 Subject: [PATCH 64/77] NIFI-835: Ensure that on session commit the provenance events that were emitted are returned by TestRunner.getProvenanceEvents() --- .../src/main/java/org/apache/nifi/util/MockProcessSession.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java index 13198dc0bb..a5f9f3c7bf 100644 --- a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java +++ b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java @@ -66,7 +66,7 @@ public class MockProcessSession implements ProcessSession { private final Map originalVersions = new HashMap<>(); private final SharedSessionState sharedState; private final Map counterMap = new HashMap<>(); - private final ProvenanceReporter provenanceReporter; + private final MockProvenanceReporter provenanceReporter; private boolean committed = false; private boolean rolledback = false; @@ -135,6 +135,7 @@ public class MockProcessSession implements ProcessSession { sharedState.adjustCounter(entry.getKey(), entry.getValue()); } + sharedState.addProvenanceEvents(provenanceReporter.getEvents()); counterMap.clear(); } From c2c513e51122bf09d0f7cb717a59272c305341d6 Mon Sep 17 00:00:00 2001 From: Mike Moser Date: Mon, 10 Aug 2015 20:31:17 -0400 Subject: [PATCH 65/77] NIFI-837 Signed-off-by: Mark Payne --- .../org/apache/nifi/processors/standard/GetFileTransfer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java index 0b06244737..810a91e504 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java @@ -114,7 +114,7 @@ public abstract class GetFileTransfer extends AbstractProcessor { public void onTrigger(final ProcessContext context, final ProcessSession session) { final long pollingIntervalMillis = context.getProperty(FileTransfer.POLLING_INTERVAL).asTimePeriod(TimeUnit.MILLISECONDS); final long nextPollTime = lastPollTime.get() + pollingIntervalMillis; - final BlockingQueue fileQueue = fileQueueRef.get(); + BlockingQueue fileQueue = fileQueueRef.get(); final ProcessorLog logger = getLogger(); // dont do the listing if there are already 100 or more items in our queue @@ -143,6 +143,7 @@ public abstract class GetFileTransfer extends AbstractProcessor { } } + fileQueue = fileQueueRef.get(); if (fileQueue == null || fileQueue.isEmpty()) { // nothing to do! context.yield(); From b31c76bf30f847842e3ef1c6f928b2e93f517b34 Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Wed, 5 Aug 2015 14:54:02 -0500 Subject: [PATCH 66/77] NIFI-821 Support Merging of Avro NIFI-821 Changing error logging to debug, changing mime-type, adding a try-close for Avro reader, changing new ArrayList to Collections.emptyList() --- .../nifi-standard-processors/pom.xml | 2 + .../processors/standard/MergeContent.java | 157 +++++++++++++++++- .../processors/standard/TestMergeContent.java | 139 ++++++++++++++++ .../resources/TestMergeContent/place.avsc | 7 + .../test/resources/TestMergeContent/user.avsc | 9 + 5 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc create mode 100644 nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml index 4d1e542d6e..994612255c 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml @@ -214,6 +214,8 @@ language governing permissions and limitations under the License. --> src/test/resources/TestMergeContent/demarcate src/test/resources/TestMergeContent/foot src/test/resources/TestMergeContent/head + src/test/resources/TestMergeContent/user.avsc + src/test/resources/TestMergeContent/place.avsc src/test/resources/TestModifyBytes/noFooter.txt src/test/resources/TestModifyBytes/noFooter_noHeader.txt src/test/resources/TestModifyBytes/noHeader.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java index 65f4124d55..c8f9bbe07e 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java @@ -23,6 +23,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -32,10 +33,19 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.regex.Pattern; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; +import org.apache.avro.Schema; +import org.apache.avro.file.CodecFactory; +import org.apache.avro.file.DataFileConstants; +import org.apache.avro.file.DataFileStream; +import org.apache.avro.file.DataFileWriter; +import org.apache.avro.generic.GenericDatumReader; +import org.apache.avro.generic.GenericDatumWriter; +import org.apache.avro.generic.GenericRecord; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.nifi.annotation.behavior.SideEffectFree; @@ -149,6 +159,7 @@ public class MergeContent extends BinFiles { public static final String MERGE_FORMAT_FLOWFILE_STREAM_V2_VALUE = "FlowFile Stream, v2"; public static final String MERGE_FORMAT_FLOWFILE_TAR_V1_VALUE = "FlowFile Tar, v1"; public static final String MERGE_FORMAT_CONCAT_VALUE = "Binary Concatenation"; + public static final String MERGE_FORMAT_AVRO_VALUE = "Avro"; public static final AllowableValue MERGE_FORMAT_TAR = new AllowableValue( MERGE_FORMAT_TAR_VALUE, @@ -179,6 +190,10 @@ public class MergeContent extends BinFiles { MERGE_FORMAT_CONCAT_VALUE, MERGE_FORMAT_CONCAT_VALUE, "The contents of all FlowFiles will be concatenated together into a single FlowFile"); + public static final AllowableValue MERGE_FORMAT_AVRO = new AllowableValue( + MERGE_FORMAT_AVRO_VALUE, + MERGE_FORMAT_AVRO_VALUE, + "The Avro contents of all FlowFiles will be concatenated together into a single FlowFile"); public static final String ATTRIBUTE_STRATEGY_ALL_COMMON = "Keep Only Common Attributes"; public static final String ATTRIBUTE_STRATEGY_ALL_UNIQUE = "Keep All Unique Attributes"; @@ -200,7 +215,7 @@ public class MergeContent extends BinFiles { .required(true) .name("Merge Format") .description("Determines the format that will be used to merge the content.") - .allowableValues(MERGE_FORMAT_TAR, MERGE_FORMAT_ZIP, MERGE_FORMAT_FLOWFILE_STREAM_V3, MERGE_FORMAT_FLOWFILE_STREAM_V2, MERGE_FORMAT_FLOWFILE_TAR_V1, MERGE_FORMAT_CONCAT) + .allowableValues(MERGE_FORMAT_TAR, MERGE_FORMAT_ZIP, MERGE_FORMAT_FLOWFILE_STREAM_V3, MERGE_FORMAT_FLOWFILE_STREAM_V2, MERGE_FORMAT_FLOWFILE_TAR_V1, MERGE_FORMAT_CONCAT, MERGE_FORMAT_AVRO) .defaultValue(MERGE_FORMAT_CONCAT.getValue()) .build(); public static final PropertyDescriptor ATTRIBUTE_STRATEGY = new PropertyDescriptor.Builder() @@ -400,6 +415,9 @@ public class MergeContent extends BinFiles { case MERGE_FORMAT_CONCAT_VALUE: merger = new BinaryConcatenationMerge(); break; + case MERGE_FORMAT_AVRO_VALUE: + merger = new AvroMerge(); + break; default: throw new AssertionError(); } @@ -451,6 +469,12 @@ public class MergeContent extends BinFiles { getLogger().info("Merged {} into {}", new Object[]{inputDescription, bundle}); session.transfer(bundle, REL_MERGED); + for (final FlowFileSessionWrapper unmerged : merger.getUnmergedFlowFiles()) { + final ProcessSession unmergedSession = unmerged.getSession(); + final FlowFile unmergedCopy = unmergedSession.clone(unmerged.getFlowFile()); + unmergedSession.transfer(unmergedCopy, REL_FAILURE); + } + // We haven't committed anything, parent will take care of it return false; } @@ -628,6 +652,11 @@ public class MergeContent extends BinFiles { public String getMergedContentType() { return mimeType; } + + @Override + public List getUnmergedFlowFiles() { + return Collections.emptyList(); + } } private List getFlowFiles(final List sessionWrappers) { @@ -714,6 +743,11 @@ public class MergeContent extends BinFiles { public String getMergedContentType() { return "application/tar"; } + + @Override + public List getUnmergedFlowFiles() { + return Collections.emptyList(); + } } private class FlowFileStreamMerger implements MergeBin { @@ -771,6 +805,11 @@ public class MergeContent extends BinFiles { public String getMergedContentType() { return mimeType; } + + @Override + public List getUnmergedFlowFiles() { + return Collections.emptyList(); + } } private class ZipMerge implements MergeBin { @@ -821,6 +860,120 @@ public class MergeContent extends BinFiles { public String getMergedContentType() { return "application/zip"; } + + @Override + public List getUnmergedFlowFiles() { + return Collections.emptyList(); + } + } + + private class AvroMerge implements MergeBin { + + private List unmerged = new ArrayList<>(); + + @Override + public FlowFile merge(ProcessContext context, final ProcessSession session, final List wrappers) { + + final Map metadata = new TreeMap<>(); + final ObjectHolder schema = new ObjectHolder<>(null); + final ObjectHolder inputCodec = new ObjectHolder<>(null); + final DataFileWriter writer = new DataFileWriter<>(new GenericDatumWriter()); + + // we don't pass the parents to the #create method because the parents belong to different sessions + FlowFile bundle = session.create(); + bundle = session.write(bundle, new OutputStreamCallback() { + @Override + public void process(final OutputStream rawOut) throws IOException { + try (final OutputStream out = new BufferedOutputStream(rawOut)) { + for (final FlowFileSessionWrapper wrapper : wrappers) { + final FlowFile flowFile = wrapper.getFlowFile(); + wrapper.getSession().read(flowFile, new InputStreamCallback() { + @Override + public void process(InputStream in) throws IOException { + boolean canMerge = true; + try (DataFileStream reader = new DataFileStream<>(in, + new GenericDatumReader())) { + if (schema.get() == null) { + // this is the first file - set up the writer, and store the + // Schema & metadata we'll use. + schema.set(reader.getSchema()); + for (String key : reader.getMetaKeys()) { + if (!DataFileWriter.isReservedMeta(key)) { + byte[] metadatum = reader.getMeta(key); + metadata.put(key, metadatum); + writer.setMeta(key, metadatum); + } + } + inputCodec.set(reader.getMetaString(DataFileConstants.CODEC)); + if (inputCodec.get() == null) { + inputCodec.set(DataFileConstants.NULL_CODEC); + } + writer.setCodec(CodecFactory.fromString(inputCodec.get())); + writer.create(schema.get(), out); + } else { + // check that we're appending to the same schema + if (!schema.get().equals(reader.getSchema())) { + getLogger().debug("Input file {} has different schema - {}, not merging", + new Object[]{flowFile.getId(), reader.getSchema().getName()}); + canMerge = false; + unmerged.add(wrapper); + } + + // check that we're appending to the same metadata + for (String key : reader.getMetaKeys()) { + if (!DataFileWriter.isReservedMeta(key)) { + byte[] metadatum = reader.getMeta(key); + byte[] writersMetadatum = metadata.get(key); + if (!Arrays.equals(metadatum, writersMetadatum)) { + getLogger().debug("Input file {} has different non-reserved metadata, not merging", + new Object[]{flowFile.getId()}); + canMerge = false; + unmerged.add(wrapper); + } + } + } + + // check that we're appending to the same codec + String thisCodec = reader.getMetaString(DataFileConstants.CODEC); + if (thisCodec == null) { + thisCodec = DataFileConstants.NULL_CODEC; + } + if (!inputCodec.get().equals(thisCodec)) { + getLogger().debug("Input file {} has different codec, not merging", + new Object[]{flowFile.getId()}); + canMerge = false; + unmerged.add(wrapper); + } + } + + // write the Avro content from the current FlowFile to the merged OutputStream + if (canMerge) { + writer.appendAllFrom(reader, false); + } + } + } + }); + } + writer.flush(); + } finally { + writer.close(); + } + } + }); + + session.getProvenanceReporter().join(getFlowFiles(wrappers), bundle); + return bundle; + } + + @Override + public String getMergedContentType() { + return "application/avro-binary"; + } + + @Override + public List getUnmergedFlowFiles() { + return unmerged; + } } private static class KeepUniqueAttributeStrategy implements AttributeStrategy { @@ -911,6 +1064,8 @@ public class MergeContent extends BinFiles { FlowFile merge(ProcessContext context, ProcessSession session, List flowFiles); String getMergedContentType(); + + List getUnmergedFlowFiles(); } private interface AttributeStrategy { diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java index daad455cdc..c53c488bb9 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java @@ -32,6 +32,16 @@ import java.util.Map; import java.util.Set; import java.util.zip.ZipInputStream; +import org.apache.avro.Schema; +import org.apache.avro.file.DataFileReader; +import org.apache.avro.file.DataFileWriter; +import org.apache.avro.file.SeekableByteArrayInput; +import org.apache.avro.generic.GenericData; +import org.apache.avro.generic.GenericDatumReader; +import org.apache.avro.generic.GenericDatumWriter; +import org.apache.avro.generic.GenericRecord; +import org.apache.avro.io.DatumReader; +import org.apache.avro.io.DatumWriter; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.io.IOUtils; @@ -39,6 +49,7 @@ import org.apache.nifi.components.ValidationResult; import org.apache.nifi.flowfile.attributes.CoreAttributes; import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.stream.io.ByteArrayInputStream; +import org.apache.nifi.stream.io.ByteArrayOutputStream; import org.apache.nifi.util.MockFlowFile; import org.apache.nifi.util.MockProcessContext; import org.apache.nifi.util.TestRunner; @@ -55,6 +66,134 @@ public class TestMergeContent { System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.processors.standard", "DEBUG"); } + @Test + public void testSimpleAvroConcat() throws IOException, InterruptedException { + final TestRunner runner = TestRunners.newTestRunner(new MergeContent()); + runner.setProperty(MergeContent.MAX_ENTRIES, "3"); + runner.setProperty(MergeContent.MIN_ENTRIES, "3"); + runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_AVRO); + + final Schema schema = new Schema.Parser().parse(new File("src/test/resources/TestMergeContent/user.avsc")); + + final GenericRecord user1 = new GenericData.Record(schema); + user1.put("name", "Alyssa"); + user1.put("favorite_number", 256); + + final GenericRecord user2 = new GenericData.Record(schema); + user2.put("name", "Ben"); + user2.put("favorite_number", 7); + user2.put("favorite_color", "red"); + + final GenericRecord user3 = new GenericData.Record(schema); + user3.put("name", "John"); + user3.put("favorite_number", 5); + user3.put("favorite_color", "blue"); + + final DatumWriter datumWriter = new GenericDatumWriter<>(schema); + final ByteArrayOutputStream out1 = serializeAvroRecord(schema, user1, datumWriter); + final ByteArrayOutputStream out2 = serializeAvroRecord(schema, user2, datumWriter); + final ByteArrayOutputStream out3 = serializeAvroRecord(schema, user3, datumWriter); + + runner.enqueue(out1.toByteArray()); + runner.enqueue(out2.toByteArray()); + runner.enqueue(out3.toByteArray()); + + runner.run(); + runner.assertQueueEmpty(); + runner.assertTransferCount(MergeContent.REL_MERGED, 1); + runner.assertTransferCount(MergeContent.REL_FAILURE, 0); + runner.assertTransferCount(MergeContent.REL_ORIGINAL, 3); + + final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0); + bundle.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/avro-binary"); + + // create a reader for the merged contet + byte[] data = runner.getContentAsByteArray(bundle); + final Map users = getGenericRecordMap(data, schema, "name"); + + Assert.assertEquals(3, users.size()); + Assert.assertTrue(users.containsKey("Alyssa")); + Assert.assertTrue(users.containsKey("Ben")); + Assert.assertTrue(users.containsKey("John")); + } + + @Test + public void testAvroConcatWithDifferentSchemas() throws IOException, InterruptedException { + final TestRunner runner = TestRunners.newTestRunner(new MergeContent()); + runner.setProperty(MergeContent.MAX_ENTRIES, "3"); + runner.setProperty(MergeContent.MIN_ENTRIES, "3"); + runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_AVRO); + + final Schema schema1 = new Schema.Parser().parse(new File("src/test/resources/TestMergeContent/user.avsc")); + final Schema schema2 = new Schema.Parser().parse(new File("src/test/resources/TestMergeContent/place.avsc")); + + final GenericRecord record1 = new GenericData.Record(schema1); + record1.put("name", "Alyssa"); + record1.put("favorite_number", 256); + + final GenericRecord record2 = new GenericData.Record(schema2); + record2.put("name", "Some Place"); + + final GenericRecord record3 = new GenericData.Record(schema1); + record3.put("name", "John"); + record3.put("favorite_number", 5); + record3.put("favorite_color", "blue"); + + final DatumWriter datumWriter = new GenericDatumWriter<>(schema1); + final ByteArrayOutputStream out1 = serializeAvroRecord(schema1, record1, datumWriter); + final ByteArrayOutputStream out2 = serializeAvroRecord(schema2, record2, datumWriter); + final ByteArrayOutputStream out3 = serializeAvroRecord(schema1, record3, datumWriter); + + runner.enqueue(out1.toByteArray()); + runner.enqueue(out2.toByteArray()); + runner.enqueue(out3.toByteArray()); + + runner.run(); + runner.assertQueueEmpty(); + runner.assertTransferCount(MergeContent.REL_MERGED, 1); + runner.assertTransferCount(MergeContent.REL_FAILURE, 1); + runner.assertTransferCount(MergeContent.REL_ORIGINAL, 3); + + final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0); + bundle.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/avro-binary"); + + final byte[] data = runner.getContentAsByteArray(bundle); + final Map users = getGenericRecordMap(data, schema1, "name"); + Assert.assertEquals(2, users.size()); + Assert.assertTrue(users.containsKey("Alyssa")); + Assert.assertTrue(users.containsKey("John")); + + final MockFlowFile failure = runner.getFlowFilesForRelationship(MergeContent.REL_FAILURE).get(0); + final byte[] failureData = runner.getContentAsByteArray(failure); + final Map places = getGenericRecordMap(failureData, schema2, "name"); + Assert.assertEquals(1, places.size()); + Assert.assertTrue(places.containsKey("Some Place")); + } + + private Map getGenericRecordMap(byte[] data, Schema schema, String key) throws IOException { + // create a reader for the merged contet + DatumReader datumReader = new GenericDatumReader<>(schema); + SeekableByteArrayInput input = new SeekableByteArrayInput(data); + DataFileReader dataFileReader = new DataFileReader<>(input, datumReader); + + // read all the records into a map to verify all the records are there + Map records = new HashMap<>(); + while (dataFileReader.hasNext()) { + GenericRecord user = dataFileReader.next(); + records.put(user.get(key).toString(), user); + } + return records; + } + + private ByteArrayOutputStream serializeAvroRecord(Schema schema, GenericRecord user2, DatumWriter datumWriter) throws IOException { + ByteArrayOutputStream out2 = new ByteArrayOutputStream(); + DataFileWriter dataFileWriter2 = new DataFileWriter(datumWriter); + dataFileWriter2.create(schema, out2); + dataFileWriter2.append(user2); + dataFileWriter2.close(); + return out2; + } + @Test public void testSimpleBinaryConcat() throws IOException, InterruptedException { final TestRunner runner = TestRunners.newTestRunner(new MergeContent()); diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc new file mode 100644 index 0000000000..a39daa9989 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc @@ -0,0 +1,7 @@ +{"namespace": "example.avro", + "type": "record", + "name": "Place", + "fields": [ + {"name": "name", "type": "string"} + ] +} \ No newline at end of file diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc new file mode 100644 index 0000000000..117ea70ee0 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc @@ -0,0 +1,9 @@ +{"namespace": "example.avro", + "type": "record", + "name": "User", + "fields": [ + {"name": "name", "type": "string"}, + {"name": "favorite_number", "type": ["int", "null"]}, + {"name": "favorite_color", "type": ["string", "null"]} + ] +} From 0a279ff538a69709e97285ad4c9b8de01bd68627 Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Wed, 12 Aug 2015 12:59:58 -0400 Subject: [PATCH 67/77] NIFI-795: - Ensuring consistency with response codes when creating new components between standalone and cluster mode. - Fixing checkstyle issues. --- .../nifi/web/StandardNiFiServiceFacade.java | 595 +++++++++++++++--- .../nifi/web/api/ConnectionResource.java | 12 +- .../web/api/ControllerServiceResource.java | 6 +- .../apache/nifi/web/api/FunnelResource.java | 6 +- .../nifi/web/api/InputPortResource.java | 6 +- .../apache/nifi/web/api/LabelResource.java | 6 +- .../nifi/web/api/OutputPortResource.java | 6 +- .../nifi/web/api/ProcessGroupResource.java | 31 +- .../nifi/web/api/ProcessorResource.java | 6 +- .../web/api/RemoteProcessGroupResource.java | 6 +- .../nifi/web/api/ReportingTaskResource.java | 6 +- .../apache/nifi/web/api/SnippetResource.java | 6 +- .../apache/nifi/web/ConfigurationRequest.java | 2 +- .../apache/nifi/web/ConfigurationResult.java | 41 ++ .../nifi/web/ConfigurationSnapshot.java | 37 +- .../web/StandardOptimisticLockingManager.java | 4 +- 16 files changed, 655 insertions(+), 121 deletions(-) create mode 100644 nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java index 4e50ff3a92..2286213ab0 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java @@ -376,12 +376,22 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ConnectionDTO execute() { + public ConfigurationResult execute() { final Connection connection = connectionDAO.updateConnection(groupId, connectionDTO); controllerFacade.save(); - return dtoFactory.createConnectionDto(connection); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ConnectionDTO getConfiguration() { + return dtoFactory.createConnectionDto(connection); + } + }; } }); } @@ -395,14 +405,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ProcessorDTO execute() { + public ConfigurationResult execute() { // update the processor - ProcessorNode processor = processorDAO.updateProcessor(groupId, processorDTO); + final ProcessorNode processor = processorDAO.updateProcessor(groupId, processorDTO); // save the flow controllerFacade.save(); - return dtoFactory.createProcessorDto(processor); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ProcessorDTO getConfiguration() { + return dtoFactory.createProcessorDto(processor); + } + }; } }); } @@ -416,14 +436,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public LabelDTO execute() { + public ConfigurationResult execute() { // update the existing label final Label label = labelDAO.updateLabel(groupId, labelDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createLabelDto(label); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public LabelDTO getConfiguration() { + return dtoFactory.createLabelDto(label); + } + }; } }); } @@ -437,14 +467,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public FunnelDTO execute() { + public ConfigurationResult execute() { // update the existing label final Funnel funnel = funnelDAO.updateFunnel(groupId, funnelDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createFunnelDto(funnel); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public FunnelDTO getConfiguration() { + return dtoFactory.createFunnelDto(funnel); + } + }; } }); } @@ -467,7 +507,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public SnippetDTO execute() { + public ConfigurationResult execute() { // update the snippet final Snippet snippet = snippetDAO.updateSnippet(snippetDto); @@ -480,7 +520,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return responseSnippetDto; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public SnippetDTO getConfiguration() { + return responseSnippetDto; + } + }; } }); } @@ -494,13 +544,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public PortDTO execute() { + public ConfigurationResult execute() { final Port inputPort = inputPortDAO.updatePort(groupId, inputPortDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createPortDto(inputPort); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public PortDTO getConfiguration() { + return dtoFactory.createPortDto(inputPort); + } + }; } }); } @@ -514,13 +574,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public PortDTO execute() { + public ConfigurationResult execute() { final Port outputPort = outputPortDAO.updatePort(groupId, outputPortDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createPortDto(outputPort); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public PortDTO getConfiguration() { + return dtoFactory.createPortDto(outputPort); + } + }; } }); } @@ -534,13 +604,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public RemoteProcessGroupDTO execute() { - RemoteProcessGroup remoteProcessGroup = remoteProcessGroupDAO.updateRemoteProcessGroup(groupId, remoteProcessGroupDTO); + public ConfigurationResult execute() { + final RemoteProcessGroup remoteProcessGroup = remoteProcessGroupDAO.updateRemoteProcessGroup(groupId, remoteProcessGroupDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public RemoteProcessGroupDTO getConfiguration() { + return dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup); + } + }; } }); } @@ -550,14 +630,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final Revision revision, final String groupId, final String remoteProcessGroupId, final RemoteProcessGroupPortDTO remoteProcessGroupPortDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public RemoteProcessGroupPortDTO execute() { + public ConfigurationResult execute() { // update the remote port - RemoteGroupPort remoteGroupPort = remoteProcessGroupDAO.updateRemoteProcessGroupInputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO); + final RemoteGroupPort remoteGroupPort = remoteProcessGroupDAO.updateRemoteProcessGroupInputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public RemoteProcessGroupPortDTO getConfiguration() { + return dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort); + } + }; } }); } @@ -567,14 +657,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final Revision revision, final String groupId, final String remoteProcessGroupId, final RemoteProcessGroupPortDTO remoteProcessGroupPortDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public RemoteProcessGroupPortDTO execute() { + public ConfigurationResult execute() { // update the remote port - RemoteGroupPort remoteGroupPort = remoteProcessGroupDAO.updateRemoteProcessGroupOutputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO); + final RemoteGroupPort remoteGroupPort = remoteProcessGroupDAO.updateRemoteProcessGroupOutputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public RemoteProcessGroupPortDTO getConfiguration() { + return dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort); + } + }; } }); } @@ -592,14 +692,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ProcessGroupDTO execute() { + public ConfigurationResult execute() { // update the process group - ProcessGroup processGroup = processGroupDAO.updateProcessGroup(processGroupDTO); + final ProcessGroup processGroup = processGroupDAO.updateProcessGroup(processGroupDTO); // save updated controller controllerFacade.save(); - return dtoFactory.createProcessGroupDto(processGroup); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ProcessGroupDTO getConfiguration() { + return dtoFactory.createProcessGroupDto(processGroup); + } + }; } }); } @@ -608,7 +718,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot updateControllerConfiguration(final Revision revision, final ControllerConfigurationDTO controllerConfigurationDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ControllerConfigurationDTO execute() { + public ConfigurationResult execute() { // update the controller configuration through the proxy if (controllerConfigurationDTO.getName() != null) { controllerFacade.setName(controllerConfigurationDTO.getName()); @@ -624,12 +734,22 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { } // create the controller configuration dto - ControllerConfigurationDTO controllerConfig = getControllerConfiguration(); + final ControllerConfigurationDTO controllerConfig = getControllerConfiguration(); // save the flow controllerFacade.save(); - return controllerConfig; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return controllerConfig; + } + }; } }); } @@ -667,13 +787,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteConnection(final Revision revision, final String groupId, final String connectionId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { connectionDAO.deleteConnection(groupId, connectionId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -682,14 +812,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteProcessor(final Revision revision, final String groupId, final String processorId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // delete the processor and synchronize the connection state processorDAO.deleteProcessor(groupId, processorId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -698,14 +838,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteLabel(final Revision revision, final String groupId, final String labelId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // delete the label labelDAO.deleteLabel(groupId, labelId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -714,14 +864,24 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteFunnel(final Revision revision, final String groupId, final String funnelId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // delete the label funnelDAO.deleteFunnel(groupId, funnelId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -735,7 +895,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteSnippet(final Revision revision, final String snippetId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // determine if this snippet was linked to the data flow Snippet snippet = snippetDAO.getSnippet(snippetId); boolean linked = snippet.isLinked(); @@ -748,7 +908,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -757,13 +927,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteInputPort(final Revision revision, final String groupId, final String inputPortId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { inputPortDAO.deletePort(groupId, inputPortId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -772,13 +952,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteOutputPort(final Revision revision, final String groupId, final String outputPortId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { outputPortDAO.deletePort(groupId, outputPortId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -787,13 +977,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteProcessGroup(final Revision revision, final String groupId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { processGroupDAO.deleteProcessGroup(groupId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -802,13 +1002,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteRemoteProcessGroup(final Revision revision, final String groupId, final String remoteProcessGroupId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { remoteProcessGroupDAO.deleteRemoteProcessGroup(groupId, remoteProcessGroupId); // save the flow controllerFacade.save(); - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -823,7 +1033,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createConnection(final Revision revision, final String groupId, final ConnectionDTO connectionDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ConnectionDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(connectionDTO.getId())) { connectionDTO.setId(UUID.randomUUID().toString()); @@ -834,7 +1044,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createConnectionDto(connection); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public ConnectionDTO getConfiguration() { + return dtoFactory.createConnectionDto(connection); + } + }; } }); } @@ -843,7 +1063,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createProcessor(final Revision revision, final String groupId, final ProcessorDTO processorDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ProcessorDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(processorDTO.getId())) { processorDTO.setId(UUID.randomUUID().toString()); @@ -855,7 +1075,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createProcessorDto(processor); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public ProcessorDTO getConfiguration() { + return dtoFactory.createProcessorDto(processor); + } + }; } }); } @@ -864,7 +1094,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createLabel(final Revision revision, final String groupId, final LabelDTO labelDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public LabelDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(labelDTO.getId())) { labelDTO.setId(UUID.randomUUID().toString()); @@ -876,7 +1106,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createLabelDto(label); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public LabelDTO getConfiguration() { + return dtoFactory.createLabelDto(label); + } + }; } }); } @@ -885,7 +1125,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createFunnel(final Revision revision, final String groupId, final FunnelDTO funnelDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public FunnelDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(funnelDTO.getId())) { funnelDTO.setId(UUID.randomUUID().toString()); @@ -897,7 +1137,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createFunnelDto(funnel); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public FunnelDTO getConfiguration() { + return dtoFactory.createFunnelDto(funnel); + } + }; } }); } @@ -961,7 +1211,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot copySnippet(final Revision revision, final String groupId, final String snippetId, final Double originX, final Double originY) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public FlowSnippetDTO execute() { + public ConfigurationResult execute() { String id = snippetId; // ensure id is set @@ -970,7 +1220,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { } // create the new snippet - FlowSnippetDTO flowSnippet = snippetDAO.copySnippet(groupId, id, originX, originY); + final FlowSnippetDTO flowSnippet = snippetDAO.copySnippet(groupId, id, originX, originY); // validate the new snippet validateSnippetContents(flowSnippet, groupId); @@ -978,7 +1228,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return flowSnippet; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public FlowSnippetDTO getConfiguration() { + return flowSnippet; + } + }; } }); } @@ -987,7 +1247,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createSnippet(final Revision revision, final SnippetDTO snippetDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public SnippetDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(snippetDTO.getId())) { snippetDTO.setId(UUID.randomUUID().toString()); @@ -998,7 +1258,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final SnippetDTO responseSnippetDTO = dtoFactory.createSnippetDto(snippet); responseSnippetDTO.setContents(snippetUtils.populateFlowSnippet(snippet, false, false)); - return responseSnippetDTO; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public SnippetDTO getConfiguration() { + return responseSnippetDTO; + } + }; } }); } @@ -1007,7 +1277,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createInputPort(final Revision revision, final String groupId, final PortDTO inputPortDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public PortDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(inputPortDTO.getId())) { inputPortDTO.setId(UUID.randomUUID().toString()); @@ -1018,7 +1288,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createPortDto(inputPort); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public PortDTO getConfiguration() { + return dtoFactory.createPortDto(inputPort); + } + }; } }); } @@ -1027,7 +1307,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createOutputPort(final Revision revision, final String groupId, final PortDTO outputPortDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public PortDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(outputPortDTO.getId())) { outputPortDTO.setId(UUID.randomUUID().toString()); @@ -1038,7 +1318,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createPortDto(outputPort); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public PortDTO getConfiguration() { + return dtoFactory.createPortDto(outputPort); + } + }; } }); } @@ -1047,7 +1337,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createProcessGroup(final String parentGroupId, final Revision revision, final ProcessGroupDTO processGroupDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ProcessGroupDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(processGroupDTO.getId())) { processGroupDTO.setId(UUID.randomUUID().toString()); @@ -1058,7 +1348,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createProcessGroupDto(processGroup); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public ProcessGroupDTO getConfiguration() { + return dtoFactory.createProcessGroupDto(processGroup); + } + }; } }); } @@ -1067,7 +1367,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createRemoteProcessGroup(final Revision revision, final String groupId, final RemoteProcessGroupDTO remoteProcessGroupDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public RemoteProcessGroupDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(remoteProcessGroupDTO.getId())) { remoteProcessGroupDTO.setId(UUID.randomUUID().toString()); @@ -1078,7 +1378,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public RemoteProcessGroupDTO getConfiguration() { + return dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup); + } + }; } }); } @@ -1129,10 +1439,10 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createTemplateInstance(final Revision revision, final String groupId, final Double originX, final Double originY, final String templateId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public FlowSnippetDTO execute() { + public ConfigurationResult execute() { // instantiate the template - there is no need to make another copy of the flow snippet since the actual template // was copied and this dto is only used to instantiate it's components (which as already completed) - FlowSnippetDTO flowSnippet = templateDAO.instantiateTemplate(groupId, originX, originY, templateId); + final FlowSnippetDTO flowSnippet = templateDAO.instantiateTemplate(groupId, originX, originY, templateId); // validate the new snippet validateSnippetContents(flowSnippet, groupId); @@ -1140,7 +1450,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { // save the flow controllerFacade.save(); - return flowSnippet; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public FlowSnippetDTO getConfiguration() { + return flowSnippet; + } + }; } }); } @@ -1149,10 +1469,21 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createArchive(final Revision revision) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // create the archive controllerFacade.createArchive(); - return null; + + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -1161,7 +1492,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot setProcessorAnnotationData(final Revision revision, final String processorId, final String annotationData) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ProcessorDTO execute() { + public ConfigurationResult execute() { // create the processor config final ProcessorConfigDTO config = new ProcessorConfigDTO(); config.setAnnotationData(annotationData); @@ -1180,12 +1511,22 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { } // update the processor configuration - ProcessorNode processor = processorDAO.updateProcessor(groupId, processorDTO); + final ProcessorNode processor = processorDAO.updateProcessor(groupId, processorDTO); // save the flow controllerFacade.save(); - return dtoFactory.createProcessorDto(processor); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ProcessorDTO getConfiguration() { + return dtoFactory.createProcessorDto(processor); + } + }; } }); } @@ -1194,7 +1535,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createControllerService(final Revision revision, final ControllerServiceDTO controllerServiceDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ControllerServiceDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(controllerServiceDTO.getId())) { controllerServiceDTO.setId(UUID.randomUUID().toString()); @@ -1210,7 +1551,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return dtoFactory.createControllerServiceDto(controllerService); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public ControllerServiceDTO getConfiguration() { + return dtoFactory.createControllerServiceDto(controllerService); + } + }; } }); } @@ -1224,7 +1575,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ControllerServiceDTO execute() { + public ConfigurationResult execute() { final ControllerServiceNode controllerService = controllerServiceDAO.updateControllerService(controllerServiceDTO); // save the update @@ -1234,7 +1585,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return dtoFactory.createControllerServiceDto(controllerService); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerServiceDTO getConfiguration() { + return dtoFactory.createControllerServiceDto(controllerService); + } + }; } }); } @@ -1245,11 +1606,23 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { final String controllerServiceId, final org.apache.nifi.controller.ScheduledState scheduledState, final org.apache.nifi.controller.service.ControllerServiceState controllerServiceState) { + return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest>() { @Override - public Set execute() { + public ConfigurationResult> execute() { final ControllerServiceReference reference = controllerServiceDAO.updateControllerServiceReferencingComponents(controllerServiceId, scheduledState, controllerServiceState); - return dtoFactory.createControllerServiceReferencingComponentsDto(reference); + + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public Set getConfiguration() { + return dtoFactory.createControllerServiceReferencingComponentsDto(reference); + } + }; } }); } @@ -1258,7 +1631,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteControllerService(final Revision revision, final String controllerServiceId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // delete the label controllerServiceDAO.deleteControllerService(controllerServiceId); @@ -1269,7 +1642,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } @@ -1278,7 +1661,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot createReportingTask(final Revision revision, final ReportingTaskDTO reportingTaskDTO) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ReportingTaskDTO execute() { + public ConfigurationResult execute() { // ensure id is set if (StringUtils.isBlank(reportingTaskDTO.getId())) { reportingTaskDTO.setId(UUID.randomUUID().toString()); @@ -1294,7 +1677,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return dtoFactory.createReportingTaskDto(reportingTask); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return true; + } + + @Override + public ReportingTaskDTO getConfiguration() { + return dtoFactory.createReportingTaskDto(reportingTask); + } + }; } }); } @@ -1308,7 +1701,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public ReportingTaskDTO execute() { + public ConfigurationResult execute() { final ReportingTaskNode reportingTask = reportingTaskDAO.updateReportingTask(reportingTaskDTO); // save the update @@ -1318,7 +1711,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return dtoFactory.createReportingTaskDto(reportingTask); + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ReportingTaskDTO getConfiguration() { + return dtoFactory.createReportingTaskDto(reportingTask); + } + }; } }); } @@ -1327,7 +1730,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { public ConfigurationSnapshot deleteReportingTask(final Revision revision, final String reportingTaskId) { return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest() { @Override - public Void execute() { + public ConfigurationResult execute() { // delete the label reportingTaskDAO.deleteReportingTask(reportingTaskId); @@ -1338,7 +1741,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade { controllerFacade.save(); } - return null; + return new ConfigurationResult() { + @Override + public boolean isNew() { + return false; + } + + @Override + public ControllerConfigurationDTO getConfiguration() { + return null; + } + }; } }); } diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java index 93fde8f41a..64c14fa6e6 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java @@ -787,13 +787,21 @@ public class ConnectionResource extends ApplicationResource { updatedRevision.setClientId(revision.getClientId()); updatedRevision.setVersion(controllerResponse.getVersion()); + // marshall the target and add the source processor + final ConnectionDTO connectionDTO = controllerResponse.getConfiguration(); + populateRemainingConnectionContent(connectionDTO); + // create the response entity ConnectionEntity entity = new ConnectionEntity(); entity.setRevision(updatedRevision); - entity.setConnection(populateRemainingConnectionContent(controllerResponse.getConfiguration())); + entity.setConnection(connectionDTO); // generate the response - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(connectionDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java index 2a68015aa5..0f2cdce42c 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java @@ -955,7 +955,11 @@ public class ControllerServiceResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setControllerService(populateRemainingControllerServiceContent(availability, responseControllerServiceDTO)); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responseControllerServiceDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java index d0ad806dcf..0ab6c32d19 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java @@ -514,7 +514,11 @@ public class FunnelResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setFunnel(responseFunnelDTO); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responseFunnelDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java index b4c4607850..d2be69d55d 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java @@ -541,7 +541,11 @@ public class InputPortResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setInputPort(responsePortDTO); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responsePortDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java index b6edb71686..400c92a27a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java @@ -558,7 +558,11 @@ public class LabelResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setLabel(responseLabelDTO); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responseLabelDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java index 127ac43cf0..ccd08db2de 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java @@ -542,7 +542,11 @@ public class OutputPortResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setOutputPort(responsePortDTO); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responsePortDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java index 3e82badcc7..a67e74be70 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java @@ -283,8 +283,8 @@ public class ProcessGroupResource extends ApplicationResource { @ApiOperation( value = "Gets a process group", notes = "Gets a process group and includes all components contained in this group. The verbose and recursive flags can be used to adjust " - + "the default behavior. This endpoint is starting point for obtaining the current flow and consequently includes the current " - + "flow revision.", + + "the default behavior. This endpoint is starting point for obtaining the current flow and consequently includes the current " + + "flow revision.", response = ProcessGroupEntity.class, authorizations = { @Authorization(value = "Read Only", type = "ROLE_MONITOR"), @@ -350,7 +350,10 @@ public class ProcessGroupResource extends ApplicationResource { } /** - * Copies the specified snippet within this ProcessGroup. + * Copies the specified snippet within this ProcessGroup. The snippet instance that is instantiated cannot be referenced at a later time, therefore there is no + * corresponding URI. Instead the request URI is returned. + * + * Alternatively, we could have performed a PUT request. However, PUT requests are supposed to be idempotent and this endpoint is certainly not. * * @param httpServletRequest request * @param version The revision is used to verify the client is working with the latest version of the flow. @@ -457,11 +460,14 @@ public class ProcessGroupResource extends ApplicationResource { entity.setContents(populateRemainingSnippetContent(flowSnippet)); // generate the response - return clusterContext(generateOkResponse(entity)).build(); + return clusterContext(generateCreatedResponse(getAbsolutePath(), entity)).build(); } /** - * Instantiates the specified template within this ProcessGroup. + * Instantiates the specified template within this ProcessGroup. The template instance that is instantiated cannot be referenced at a later time, therefore there is no + * corresponding URI. Instead the request URI is returned. + * + * Alternatively, we could have performed a PUT request. However, PUT requests are supposed to be idempotent and this endpoint is certainly not. * * @param httpServletRequest request * @param version The revision is used to verify the client is working with the latest version of the flow. @@ -565,7 +571,7 @@ public class ProcessGroupResource extends ApplicationResource { entity.setContents(populateRemainingSnippetContent(flowSnippet)); // generate the response - return clusterContext(generateOkResponse(entity)).build(); + return clusterContext(generateCreatedResponse(getAbsolutePath(), entity)).build(); } /** @@ -644,7 +650,7 @@ public class ProcessGroupResource extends ApplicationResource { @Context HttpServletRequest httpServletRequest, @ApiParam( value = "The process group to update. The only action that is supported at this endpoint is to set the running flag in order " - + "to start or stop all descendent schedulable components. This defines the schema of the expected input.", + + "to start or stop all descendent schedulable components. This defines the schema of the expected input.", required = true ) ProcessGroupEntity processGroupEntity) { @@ -1152,8 +1158,11 @@ public class ProcessGroupResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setProcessGroup(populateRemainingProcessGroupContent(processGroup, getProcessGroupReferenceUri(processGroup))); - // generate the response - return clusterContext(generateOkResponse(entity)).build(); + if (response.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(processGroup.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** @@ -1253,13 +1262,13 @@ public class ProcessGroupResource extends ApplicationResource { @ApiOperation( value = "Gets the status for a process group", notes = "The status for a process group includes status for all descendent components. When invoked on the root group with " - + "recursive set to true, it will return the current status of every component in the flow.", + + "recursive set to true, it will return the current status of every component in the flow.", response = ProcessGroupStatusEntity.class, authorizations = { @Authorization(value = "Read Only", type = "ROLE_MONITOR"), @Authorization(value = "Data Flow Manager", type = "ROLE_DFM"), @Authorization(value = "Administrator", type = "ROLE_ADMIN"), - @Authorization(value = "NiFi", type="ROLE_NIFI") + @Authorization(value = "NiFi", type = "ROLE_NIFI") } ) @ApiResponses( diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java index f972c078d5..84ad8d1798 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java @@ -812,7 +812,11 @@ public class ProcessorResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setProcessor(responseProcessorDTO); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responseProcessorDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java index 2a12ceb76b..e4666666ce 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java @@ -1049,7 +1049,11 @@ public class RemoteProcessGroupResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setRemoteProcessGroup(responseRemoteProcessGroup); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responseRemoteProcessGroup.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } // setters diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java index 4af8783274..c783da6375 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java @@ -739,7 +739,11 @@ public class ReportingTaskResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setReportingTask(populateRemainingReportingTaskContent(availability, responseReportingTaskDTO)); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(responseReportingTaskDTO.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java index 4dfa9fecbe..a27c7a4430 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java @@ -607,7 +607,11 @@ public class SnippetResource extends ApplicationResource { entity.setRevision(updatedRevision); entity.setSnippet(populateRemainingSnippetContent(snippet)); - return clusterContext(generateOkResponse(entity)).build(); + if (controllerResponse.isNew()) { + return clusterContext(generateCreatedResponse(URI.create(snippet.getUri()), entity)).build(); + } else { + return clusterContext(generateOkResponse(entity)).build(); + } } /** diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java index c2e940a3d3..af50d4970a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java @@ -31,5 +31,5 @@ public interface ConfigurationRequest { * * @return The resulting configuration */ - T execute(); + ConfigurationResult execute(); } diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java new file mode 100644 index 0000000000..46b0db0da7 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.web; + +/** + * Represents a request to configure. The implementations execute method will + * perform the configuration action. It will return type T which will be + * encapsulated in a ConfigurationSnapshot. + * + * @param type of request + */ +public interface ConfigurationResult { + + /** + * Returns whether the configuration represents a newly created resource. + * + * @return If the configuration represents a newly created resource + */ + boolean isNew(); + + /** + * Returns the resulting configuration. + * + * @return The resulting configuration + */ + T getConfiguration(); +} diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java index c706fd2238..8e9194f4ce 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java @@ -17,17 +17,18 @@ package org.apache.nifi.web; /** - * Response object that captures some configuration for a given revision. + * Response object that captures the context of a given configuration. * * @param type of snapshot */ public class ConfigurationSnapshot { - private Long version; - private T configuration; + private final Long version; + private final T configuration; + private final boolean isNew; /** - * Creates a new ConfigurationSnapshot. + * Creates a new ConfigurationSnapshot with no configuration object. * * @param version The revision version */ @@ -36,14 +37,30 @@ public class ConfigurationSnapshot { } /** - * Creates a new ConfigurationSnapshot. + * Creates a new ConfigurationSnapshot with the specified configuration + * object. The object is consider to have been existing prior to this + * request. * * @param version The revision version * @param configuration The configuration */ public ConfigurationSnapshot(Long version, T configuration) { + this(version, configuration, false); + } + + /** + * Creates a new ConfigurationSnapshot with the specified configuration + * object. The isNew parameter specifies whether the object was created as a + * result of this request. + * + * @param version The revision version + * @param configuration The configuration + * @param isNew Whether the resource was newly created + */ + public ConfigurationSnapshot(Long version, T configuration, boolean isNew) { this.version = version; this.configuration = configuration; + this.isNew = isNew; } /** @@ -64,4 +81,14 @@ public class ConfigurationSnapshot { return configuration; } + /** + * Returns whether the configuration object was created as a result of this + * request. + * + * @return Whether the object was created as a result of this request + */ + public boolean isNew() { + return isNew; + } + } diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java index 7792f0e0cc..16b55ee871 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java @@ -80,13 +80,13 @@ public class StandardOptimisticLockingManager implements OptimisticLockingManage checkRevision(revision); // execute the configuration request - final T result = configurationRequest.execute(); + final ConfigurationResult result = configurationRequest.execute(); // update the revision final Revision newRevision = updateRevision(incrementRevision(revision.getClientId())); // build the result - return new ConfigurationSnapshot(newRevision.getVersion(), result); + return new ConfigurationSnapshot(newRevision.getVersion(), result.getConfiguration(), result.isNew()); } finally { unlock(); } From 91f4dae0605130ecaf38f4712937c6ebdfa59f0d Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Wed, 12 Aug 2015 13:33:47 -0400 Subject: [PATCH 68/77] NIFI-838: - Fixing bug when checking the state of a referencing component when attempting to disable a controller service. Only considering referencing components as RUNNING when the state is RUNNING or has active threads. --- .../src/main/webapp/js/nf/canvas/nf-controller-service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js index a74a30625d..af8e78c0e3 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js @@ -782,7 +782,7 @@ nf.ControllerService = (function () { var stillRunning = false; $.each(referencingComponents, function(_, referencingComponent) { if (referencingComponent.referenceType === 'Processor' || referencingComponent.referenceType === 'ReportingTask') { - if (referencingComponent.state !== 'STOPPED' || referencingComponent.activeThreadCount > 0) { + if (referencingComponent.state === 'RUNNING' || referencingComponent.activeThreadCount > 0) { stillRunning = true; } From 103153cdd8ba253fb083a5f71ea2437a2767ff0d Mon Sep 17 00:00:00 2001 From: Matt Gilman Date: Wed, 12 Aug 2015 14:24:21 -0400 Subject: [PATCH 69/77] NIFI-834: - Get[S]FTP should not be considered @SideEffectFree. The processor could be, and is by default, configured to delete the original file. --- .../main/java/org/apache/nifi/processors/standard/GetFTP.java | 2 -- .../main/java/org/apache/nifi/processors/standard/GetSFTP.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java index ac02b9efad..ff5b5994b8 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java @@ -27,12 +27,10 @@ import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.SeeAlso; import org.apache.nifi.annotation.behavior.WritesAttribute; import org.apache.nifi.annotation.behavior.WritesAttributes; -import org.apache.nifi.annotation.behavior.SideEffectFree; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.processors.standard.util.FTPTransfer; import org.apache.nifi.processors.standard.util.FileTransfer; -@SideEffectFree @Tags({"FTP", "get", "retrieve", "files", "fetch", "remote", "ingest", "source", "input"}) @CapabilityDescription("Fetches files from an FTP Server and creates FlowFiles from them") @WritesAttributes({ diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java index a157316909..7841bec42e 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java @@ -21,7 +21,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import org.apache.nifi.annotation.behavior.SideEffectFree; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.SeeAlso; import org.apache.nifi.annotation.documentation.Tags; @@ -35,7 +34,6 @@ import org.apache.nifi.processor.ProcessorInitializationContext; import org.apache.nifi.processors.standard.util.FileTransfer; import org.apache.nifi.processors.standard.util.SFTPTransfer; -@SideEffectFree @Tags({"sftp", "get", "retrieve", "files", "fetch", "remote", "ingest", "source", "input"}) @CapabilityDescription("Fetches files from an SFTP Server and creates FlowFiles from them") @WritesAttributes({ From c6d500b3157ed7158fbaa5aa2a51549741328958 Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Wed, 12 Aug 2015 18:17:08 -0400 Subject: [PATCH 70/77] NIFI-845 Converting tabs to spaces for indentation in accordance with checkstyle rules. --- .../org/apache/nifi/processors/standard/RouteOnAttribute.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java index a9be2e77e4..0d113ced59 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java @@ -193,8 +193,8 @@ public class RouteOnAttribute extends AbstractProcessor { @OnStopped public void onStopped() { - getLogger().debug("Clearing propertyMap"); - propertyMap.clear(); + getLogger().debug("Clearing propertyMap"); + propertyMap.clear(); } @Override From 13042dc2e901442b873709fa4ab443b1342e7b35 Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Sun, 26 Jul 2015 23:36:39 -0400 Subject: [PATCH 71/77] NIFI-758 Defaulting to POSIX compliant single bracket test command in lieu of the Bash [[ --- .../nifi-resources/src/main/resources/bin/nifi.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh index 86e97d8657..2d60d5a701 100755 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh @@ -155,7 +155,7 @@ run() { sudo_cmd_prefix="" if $cygwin; then - if [[ -n "$run_as" ]]; then + if [ -n "$run_as" ]; then echo "The run.as option is not supported in a Cygwin environment. Exiting." exit 1 fi; @@ -163,7 +163,7 @@ run() { NIFI_HOME=`cygpath --path --windows "$NIFI_HOME"` BOOTSTRAP_CONF=`cygpath --path --windows "$BOOTSTRAP_CONF"` else - if [[ -n "$run_as" ]]; then + if [ -n "$run_as" ]; then if id -u "$run_as" >/dev/null 2>&1; then sudo_cmd_prefix="sudo -u ${run_as}" else From b51433e97c5b51b0e8f35450c3e4265fd747f51a Mon Sep 17 00:00:00 2001 From: Aldrin Piri Date: Wed, 12 Aug 2015 17:10:57 -0400 Subject: [PATCH 72/77] NIFI-726 Providing updated documentation on how the return type property is interpreted for EvaluateJsonPath --- .../nifi/processors/standard/EvaluateJsonPath.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java index b4ddc16a32..ad3120cc6d 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java @@ -66,6 +66,9 @@ import java.util.concurrent.ConcurrentMap; + "JsonPaths are entered by adding user-defined properties; the name of the property maps to the Attribute Name " + "into which the result will be placed (if the Destination is flowfile-attribute; otherwise, the property name is ignored). " + "The value of the property must be a valid JsonPath expression. " + + "A Return Type of 'auto-detect' will make a determination based off the configured destination. " + + "When 'Destination' is set to 'flowfile-attribute,' a return type of 'scalar' will be used. " + + "When 'Destination' is set to 'flowfile-content,' a return type of 'JSON' will be used." + "If the JsonPath evaluates to a JSON array or JSON object and the Return Type is set to 'scalar' the FlowFile will be unmodified and will be routed to failure. " + "A Return Type of JSON can return scalar values if the provided JsonPath evaluates to the specified value and will be routed as a match." + "If Destination is 'flowfile-content' and the JsonPath does not evaluate to a defined path, the FlowFile will be routed to 'unmatched' without having its contents modified. " @@ -99,7 +102,7 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor { public static final PropertyDescriptor RETURN_TYPE = new PropertyDescriptor.Builder() .name("Return Type").description("Indicates the desired return type of the JSON Path expressions. Selecting 'auto-detect' will set the return type to 'json' " - + "for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.") + + "for a Destination of 'flowfile-content', and 'scalar' for a Destination of 'flowfile-attribute'.") .required(true) .allowableValues(RETURN_TYPE_AUTO, RETURN_TYPE_JSON, RETURN_TYPE_SCALAR) .defaultValue(RETURN_TYPE_AUTO) @@ -224,7 +227,7 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor { } @Override - public void onTrigger(ProcessContext processContext, final ProcessSession processSession) throws ProcessException { + public void onTrigger(final ProcessContext processContext, final ProcessSession processSession) throws ProcessException { FlowFile flowFile = processSession.get(); if (flowFile == null) { @@ -266,13 +269,13 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor { for (final Map.Entry attributeJsonPathEntry : attributeToJsonPathMap.entrySet()) { - String jsonPathAttrKey = attributeJsonPathEntry.getKey(); - JsonPath jsonPathExp = attributeJsonPathEntry.getValue(); + final String jsonPathAttrKey = attributeJsonPathEntry.getKey(); + final JsonPath jsonPathExp = attributeJsonPathEntry.getValue(); final String pathNotFound = processContext.getProperty(PATH_NOT_FOUND).getValue(); final ObjectHolder resultHolder = new ObjectHolder<>(null); try { - Object result = documentContext.read(jsonPathExp); + final Object result = documentContext.read(jsonPathExp); if (returnType.equals(RETURN_TYPE_SCALAR) && !isJsonScalar(result)) { logger.error("Unable to return a scalar value for the expression {} for FlowFile {}. Evaluated value was {}. Transferring to {}.", new Object[]{jsonPathExp.getPath(), flowFile.getId(), result.toString(), REL_FAILURE.getName()}); From c169bedbfdbb236edab59b3943c106a3f617beaa Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Thu, 13 Aug 2015 11:45:33 -0400 Subject: [PATCH 73/77] NIFI-849: Marked Username as optional for DBCPConnectionPool --- .../src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java | 1 - 1 file changed, 1 deletion(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java index 9290e0d7fe..1278af4df9 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java @@ -77,7 +77,6 @@ public class DBCPConnectionPool extends AbstractControllerService implements DBC .name("Database User") .description("Database user name") .defaultValue(null) - .required(true) .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) .build(); From 1eeed730103e5c231b27365eda9aec25ec2c8e12 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Fri, 14 Aug 2015 09:00:49 -0400 Subject: [PATCH 74/77] NIFI-852: Ensure that calling MockProcessSession.transfer(FlowFile, Relationship.SELF) will re-queue the FlowFile --- .../java/org/apache/nifi/util/MockProcessSession.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java index a5f9f3c7bf..4ad3138715 100644 --- a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java +++ b/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java @@ -552,6 +552,11 @@ public class MockProcessSession implements ProcessSession { @Override public void transfer(final FlowFile flowFile, final Relationship relationship) { + if (relationship == Relationship.SELF) { + transfer(flowFile); + return; + } + validateState(flowFile); List list = transferMap.get(relationship); if (list == null) { @@ -565,6 +570,11 @@ public class MockProcessSession implements ProcessSession { @Override public void transfer(final Collection flowFiles, final Relationship relationship) { + if (relationship == Relationship.SELF) { + transfer(flowFiles); + return; + } + for (final FlowFile flowFile : flowFiles) { validateState(flowFile); } From e9c2535df73ab72d7a20f9dc2f27ae2bd6ad02e5 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Wed, 12 Aug 2015 10:09:02 -0400 Subject: [PATCH 75/77] NIFI-843: Ensure that a new HashMap is used when populating the propertyMap member variable for thread safety --- .../processors/standard/RouteOnAttribute.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java index 0d113ced59..7055a8a9d2 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java @@ -34,7 +34,6 @@ import org.apache.nifi.annotation.behavior.SupportsBatching; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnScheduled; -import org.apache.nifi.annotation.lifecycle.OnStopped; import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.PropertyValue; @@ -106,8 +105,7 @@ public class RouteOnAttribute extends AbstractProcessor { private volatile Set dynamicPropertyNames = new HashSet<>(); /** - * Cache of dynamic properties set during {@link #onScheduled(ProcessContext)} and - * cleared during {@link #onStopped(ProcessContext)} for quick access in + * Cache of dynamic properties set during {@link #onScheduled(ProcessContext)} for quick access in * {@link #onTrigger(ProcessContext, ProcessSession)} */ private volatile Map propertyMap = new HashMap<>(); @@ -182,20 +180,18 @@ public class RouteOnAttribute extends AbstractProcessor { */ @OnScheduled public void onScheduled(final ProcessContext context) { + final Map newPropertyMap = new HashMap<>(); for (final PropertyDescriptor descriptor : context.getProperties().keySet()) { if (!descriptor.isDynamic()) { continue; } getLogger().debug("Adding new dynamic property: {}", new Object[]{descriptor}); - propertyMap.put(new Relationship.Builder().name(descriptor.getName()).build(), context.getProperty(descriptor)); + newPropertyMap.put(new Relationship.Builder().name(descriptor.getName()).build(), context.getProperty(descriptor)); } + + this.propertyMap = newPropertyMap; } - @OnStopped - public void onStopped() { - getLogger().debug("Clearing propertyMap"); - propertyMap.clear(); - } @Override public void onTrigger(final ProcessContext context, final ProcessSession session) { @@ -206,8 +202,9 @@ public class RouteOnAttribute extends AbstractProcessor { final ProcessorLog logger = getLogger(); + final Map propMap = this.propertyMap; final Set matchingRelationships = new HashSet<>(); - for (final Map.Entry entry : propertyMap.entrySet()) { + for (final Map.Entry entry : propMap.entrySet()) { final PropertyValue value = entry.getValue(); final boolean matches = value.evaluateAttributeExpressions(flowFile).asBoolean(); @@ -219,7 +216,7 @@ public class RouteOnAttribute extends AbstractProcessor { final Set destinationRelationships = new HashSet<>(); switch (context.getProperty(ROUTE_STRATEGY).getValue()) { case routeAllMatchValue: - if (matchingRelationships.size() == propertyMap.size()) { + if (matchingRelationships.size() == propMap.size()) { destinationRelationships.add(REL_MATCH); } else { destinationRelationships.add(REL_NO_MATCH); From 6fc52a4e9977cc219430f5c8e0e7aa41f7043066 Mon Sep 17 00:00:00 2001 From: Bryan Bende Date: Sat, 27 Jun 2015 09:58:32 -0400 Subject: [PATCH 76/77] NIFI-736 Creating a Maven Archetype for ControllerServices NIFI-736 Addressing feedback from review: - Removing "-service" from artifact ids - Removing impl in favor of standard - Defaulting to 0.3.0-SNAPSHOT for NiFi version - Cleaning up example service and unit test NIFI-736 Removing IT test due Maven issue MNG-5809 --- .../nifi-service-bundle-archetype/pom.xml | 48 +++++++++++ .../META-INF/maven/archetype-metadata.xml | 55 +++++++++++++ .../nifi-__artifactBaseName__-api-nar/pom.xml | 42 ++++++++++ .../nifi-__artifactBaseName__-api/pom.xml | 35 ++++++++ .../src/main/java/MyService.java | 30 +++++++ .../nifi-__artifactBaseName__-nar/pom.xml | 43 ++++++++++ .../nifi-__artifactBaseName__/pom.xml | 59 ++++++++++++++ .../src/main/java/StandardMyService.java | 80 +++++++++++++++++++ ...g.apache.nifi.controller.ControllerService | 15 ++++ .../src/test/java/TestProcessor.java | 45 +++++++++++ .../src/test/java/TestStandardMyService.java | 45 +++++++++++ .../resources/archetype-resources/pom.xml | 37 +++++++++ nifi/nifi-maven-archetypes/pom.xml | 1 + 13 files changed, 535 insertions(+) create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java create mode 100644 nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml new file mode 100644 index 0000000000..a18d0b3dbf --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml @@ -0,0 +1,48 @@ + + + + 4.0.0 + + org.apache.nifi + nifi-maven-archetypes + 0.3.0-SNAPSHOT + + + nifi-service-bundle-archetype + maven-archetype + + + + + org.apache.maven.archetype + archetype-packaging + 2.2 + + + + + + + org.apache.maven.plugins + maven-archetype-plugin + 2.2 + + + + + + + diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 0000000000..5ed0b1ddfc --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,55 @@ + + + + + + + 0.3.0-SNAPSHOT + + + ${groupId}.${artifactBaseName} + + + + + nifi-__artifactBaseName__-api + + **/*.java + + + + nifi-__artifactBaseName__-api/src/main/java + + + nifi-__artifactBaseName__ + + **/*.java + + + + nifi-__artifactBaseName__/src/main/java + + + nifi-__artifactBaseName__/src/test/java + + + nifi-__artifactBaseName__-api-nar + + + nifi-__artifactBaseName__-nar + + + \ No newline at end of file diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml new file mode 100644 index 0000000000..52a3264838 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml @@ -0,0 +1,42 @@ + + + + 4.0.0 + + + ${groupId} + ${rootArtifactId} + ${version} + + + nifi-${artifactBaseName}-api-nar + ${version} + nar + + + + org.apache.nifi + nifi-standard-services-api-nar + nar + + + ${groupId} + nifi-${artifactBaseName}-api + ${version} + + + + diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml new file mode 100644 index 0000000000..26c11d66b5 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml @@ -0,0 +1,35 @@ + + + + 4.0.0 + + + ${groupId} + ${rootArtifactId} + ${version} + + + nifi-${artifactBaseName}-api + jar + + + + org.apache.nifi + nifi-api + provided + + + diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java new file mode 100644 index 0000000000..df58f5e17c --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ${package}; + +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.controller.ControllerService; +import org.apache.nifi.processor.exception.ProcessException; + +@Tags({"example"}) +@CapabilityDescription("Example Service API.") +public interface MyService extends ControllerService { + + public void execute() throws ProcessException; + +} diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml new file mode 100644 index 0000000000..0d8ea5604d --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + + ${groupId} + ${rootArtifactId} + ${version} + + + nifi-${artifactBaseName}-nar + ${version} + nar + + + + ${groupId} + nifi-${artifactBaseName}-api-nar + ${version} + nar + + + ${groupId} + nifi-${artifactBaseName} + ${version} + + + + diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml new file mode 100644 index 0000000000..fdbb58bbf1 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml @@ -0,0 +1,59 @@ + + + + 4.0.0 + + + ${groupId} + ${rootArtifactId} + ${version} + + + nifi-${artifactBaseName} + jar + + + + ${groupId} + nifi-${artifactBaseName}-api + ${version} + + + org.apache.nifi + nifi-api + provided + + + org.apache.nifi + nifi-processor-utils + + + org.apache.nifi + nifi-mock + test + + + org.slf4j + slf4j-simple + test + + + junit + junit + test + + + diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java new file mode 100644 index 0000000000..193e6b7e20 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ${package}; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.annotation.lifecycle.OnDisabled; +import org.apache.nifi.annotation.lifecycle.OnEnabled; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.controller.AbstractControllerService; +import org.apache.nifi.controller.ConfigurationContext; +import org.apache.nifi.processor.exception.ProcessException; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.reporting.InitializationException; + +@Tags({ "example"}) +@CapabilityDescription("Example ControllerService implementation of MyService.") +public class StandardMyService extends AbstractControllerService implements MyService { + + public static final PropertyDescriptor MY_PROPERTY = new PropertyDescriptor + .Builder().name("My Property") + .description("Example Property") + .required(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + + private static final List properties; + + static { + final List props = new ArrayList<>(); + props.add(MY_PROPERTY); + properties = Collections.unmodifiableList(props); + } + + @Override + protected List getSupportedPropertyDescriptors() { + return properties; + } + + /** + * @param context + * the configuration context + * @throws InitializationException + * if unable to create a database connection + */ + @OnEnabled + public void onEnabled(final ConfigurationContext context) throws InitializationException { + + } + + @OnDisabled + public void shutdown() { + + } + + @Override + public void execute() throws ProcessException { + + } + +} diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService new file mode 100644 index 0000000000..811fcd31b7 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService @@ -0,0 +1,15 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +${package}.StandardMyService \ No newline at end of file diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java new file mode 100644 index 0000000000..be00a70d1c --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ${package}; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.exception.ProcessException; + +public class TestProcessor extends AbstractProcessor { + + @Override + public void onTrigger(ProcessContext context, ProcessSession session) throws ProcessException { + } + + @Override + protected List getSupportedPropertyDescriptors() { + List propDescs = new ArrayList<>(); + propDescs.add(new PropertyDescriptor.Builder() + .name("MyService test processor") + .description("MyService test processor") + .identifiesControllerService(MyService.class) + .required(true) + .build()); + return propDescs; + } +} diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java new file mode 100644 index 0000000000..3f430e6726 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ${package}; + +import org.apache.nifi.reporting.InitializationException; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TestStandardMyService { + + @Before + public void init() { + + } + + @Test + public void testService() throws InitializationException { + final TestRunner runner = TestRunners.newTestRunner(TestProcessor.class); + final StandardMyService service = new StandardMyService(); + runner.addControllerService("test-good", service); + + runner.setProperty(service, StandardMyService.MY_PROPERTY, "test-value"); + runner.enableControllerService(service); + + runner.assertValid(service); + } + +} diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 0000000000..0f32431518 --- /dev/null +++ b/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,37 @@ + + + + 4.0.0 + + + org.apache.nifi + nifi-nar-bundles + ${nifiVersion} + + + ${groupId} + ${artifactId} + ${version} + pom + + + nifi-${artifactBaseName}-api + nifi-${artifactBaseName}-api-nar + nifi-${artifactBaseName} + nifi-${artifactBaseName}-nar + + + diff --git a/nifi/nifi-maven-archetypes/pom.xml b/nifi/nifi-maven-archetypes/pom.xml index 74f544ba59..b8176047e7 100644 --- a/nifi/nifi-maven-archetypes/pom.xml +++ b/nifi/nifi-maven-archetypes/pom.xml @@ -25,5 +25,6 @@ pom nifi-processor-bundle-archetype + nifi-service-bundle-archetype From aa99884782e54c54ee138f5609b3be84628e96f9 Mon Sep 17 00:00:00 2001 From: joewitt Date: Sat, 15 Aug 2015 13:12:22 -0400 Subject: [PATCH 77/77] NIFI-850 removed nifi parent, updated nifi pom, moved all nifi subdirs up one level, fixed readme. --- nifi/LICENSE => LICENSE | 0 nifi/NOTICE => NOTICE | 0 README.md | 145 +- {nifi/nifi-api => nifi-api}/.gitignore | 0 {nifi/nifi-api => nifi-api}/pom.xml | 0 .../behavior/DynamicProperties.java | 0 .../annotation/behavior/DynamicProperty.java | 0 .../behavior/DynamicRelationship.java | 0 .../nifi/annotation/behavior/EventDriven.java | 0 .../annotation/behavior/ReadsAttribute.java | 0 .../annotation/behavior/ReadsAttributes.java | 0 .../annotation/behavior/SideEffectFree.java | 0 .../annotation/behavior/SupportsBatching.java | 0 .../annotation/behavior/TriggerSerially.java | 0 .../TriggerWhenAnyDestinationAvailable.java | 0 .../annotation/behavior/TriggerWhenEmpty.java | 0 .../annotation/behavior/WritesAttribute.java | 0 .../annotation/behavior/WritesAttributes.java | 0 .../documentation/CapabilityDescription.java | 0 .../annotation/documentation/SeeAlso.java | 0 .../nifi/annotation/documentation/Tags.java | 0 .../nifi/annotation/lifecycle/OnAdded.java | 0 .../nifi/annotation/lifecycle/OnDisabled.java | 0 .../nifi/annotation/lifecycle/OnEnabled.java | 0 .../nifi/annotation/lifecycle/OnRemoved.java | 0 .../annotation/lifecycle/OnScheduled.java | 0 .../nifi/annotation/lifecycle/OnShutdown.java | 0 .../nifi/annotation/lifecycle/OnStopped.java | 0 .../annotation/lifecycle/OnUnscheduled.java | 0 .../OnPrimaryNodeStateChange.java | 0 .../notification/PrimaryNodeState.java | 0 .../apache/nifi/authorization/Authority.java | 0 .../nifi/authorization/AuthorityProvider.java | 0 ...AuthorityProviderConfigurationContext.java | 0 ...uthorityProviderInitializationContext.java | 0 .../AuthorityProviderLookup.java | 0 .../authorization/DownloadAuthorization.java | 0 .../annotation/AuthorityProviderContext.java | 0 .../exception/AuthorityAccessException.java | 0 .../IdentityAlreadyExistsException.java | 0 .../exception/ProviderCreationException.java | 0 .../ProviderDestructionException.java | 0 .../exception/UnknownIdentityException.java | 0 .../AbstractConfigurableComponent.java | 0 .../nifi/components/AllowableValue.java | 0 .../components/ConfigurableComponent.java | 0 .../nifi/components/PropertyDescriptor.java | 0 .../apache/nifi/components/PropertyValue.java | 0 .../nifi/components/ValidationContext.java | 0 .../nifi/components/ValidationResult.java | 0 .../org/apache/nifi/components/Validator.java | 0 .../controller/AbstractControllerService.java | 0 .../nifi/controller/ConfigurationContext.java | 0 .../nifi/controller/ControllerService.java | 0 ...ontrollerServiceInitializationContext.java | 0 .../controller/ControllerServiceLookup.java | 0 .../apache/nifi/controller/FlowFileQueue.java | 0 .../nifi/controller/ScheduledState.java | 0 .../org/apache/nifi/controller/Snippet.java | 0 .../apache/nifi/controller/Triggerable.java | 0 .../controller/annotation/OnConfigured.java | 0 .../repository/ContentRepository.java | 0 .../controller/repository/FlowFileRecord.java | 0 .../repository/FlowFileRepository.java | 0 .../repository/FlowFileSwapManager.java | 0 .../controller/repository/QueueProvider.java | 0 .../repository/RepositoryRecord.java | 0 .../repository/RepositoryRecordType.java | 0 .../repository/claim/ContentClaim.java | 0 .../repository/claim/ContentClaimManager.java | 0 .../controller/status/ConnectionStatus.java | 0 .../nifi/controller/status/PortStatus.java | 0 .../controller/status/ProcessGroupStatus.java | 0 .../controller/status/ProcessorStatus.java | 0 .../status/RemoteProcessGroupStatus.java | 0 .../nifi/controller/status/RunStatus.java | 0 .../controller/status/TransmissionStatus.java | 0 .../history/ComponentStatusRepository.java | 0 .../status/history/MetricDescriptor.java | 0 .../status/history/StatusHistory.java | 0 .../status/history/StatusSnapshot.java | 0 .../status/history/ValueMapper.java | 0 .../status/history/ValueReducer.java | 0 .../org/apache/nifi/events/EventReporter.java | 0 .../nifi/expression/AttributeExpression.java | 0 .../expression/AttributeValueDecorator.java | 0 .../ExpressionLanguageCompiler.java | 0 .../org/apache/nifi/flowfile/FlowFile.java | 0 .../nifi/flowfile/FlowFilePrioritizer.java | 0 .../org/apache/nifi/logging/ComponentLog.java | 0 .../org/apache/nifi/logging/LogLevel.java | 0 .../org/apache/nifi/logging/ProcessorLog.java | 0 .../nifi/processor/AbstractProcessor.java | 0 .../AbstractSessionFactoryProcessor.java | 0 .../org/apache/nifi/processor/DataUnit.java | 0 .../apache/nifi/processor/FlowFileFilter.java | 0 .../apache/nifi/processor/ProcessContext.java | 0 .../apache/nifi/processor/ProcessSession.java | 0 .../nifi/processor/ProcessSessionFactory.java | 0 .../org/apache/nifi/processor/Processor.java | 0 .../ProcessorInitializationContext.java | 0 .../org/apache/nifi/processor/QueueSize.java | 0 .../apache/nifi/processor/Relationship.java | 0 .../nifi/processor/SchedulingContext.java | 0 .../annotation/CapabilityDescription.java | 0 .../processor/annotation/EventDriven.java | 0 .../nifi/processor/annotation/OnAdded.java | 0 .../nifi/processor/annotation/OnRemoved.java | 0 .../processor/annotation/OnScheduled.java | 0 .../nifi/processor/annotation/OnShutdown.java | 0 .../nifi/processor/annotation/OnStopped.java | 0 .../processor/annotation/OnUnscheduled.java | 0 .../processor/annotation/SideEffectFree.java | 0 .../annotation/SupportsBatching.java | 0 .../nifi/processor/annotation/Tags.java | 0 .../processor/annotation/TriggerSerially.java | 0 .../TriggerWhenAnyDestinationAvailable.java | 0 .../annotation/TriggerWhenEmpty.java | 0 .../exception/FlowFileAccessException.java | 0 .../exception/FlowFileHandlingException.java | 0 .../exception/MissingFlowFileException.java | 0 .../processor/exception/ProcessException.java | 0 .../processor/io/InputStreamCallback.java | 0 .../processor/io/OutputStreamCallback.java | 0 .../nifi/processor/io/StreamCallback.java | 0 .../provenance/ProvenanceEventBuilder.java | 0 .../provenance/ProvenanceEventRecord.java | 0 .../provenance/ProvenanceEventRepository.java | 0 .../nifi/provenance/ProvenanceEventType.java | 0 .../nifi/provenance/ProvenanceReporter.java | 0 .../lineage/ComputeLineageResult.java | 0 .../lineage/ComputeLineageSubmission.java | 0 .../nifi/provenance/lineage/Lineage.java | 0 .../lineage/LineageComputationType.java | 0 .../nifi/provenance/lineage/LineageEdge.java | 0 .../nifi/provenance/lineage/LineageNode.java | 0 .../provenance/lineage/LineageNodeType.java | 0 .../lineage/ProvenanceEventLineageNode.java | 0 .../apache/nifi/provenance/search/Query.java | 0 .../nifi/provenance/search/QueryResult.java | 0 .../provenance/search/QuerySubmission.java | 0 .../nifi/provenance/search/SearchTerm.java | 0 .../nifi/provenance/search/SearchTerms.java | 0 .../provenance/search/SearchableField.java | 0 .../search/SearchableFieldType.java | 0 .../apache/nifi/remote/RemoteDestination.java | 0 .../nifi/reporting/AbstractReportingTask.java | 0 .../org/apache/nifi/reporting/Bulletin.java | 0 .../apache/nifi/reporting/BulletinQuery.java | 0 .../nifi/reporting/BulletinRepository.java | 0 .../apache/nifi/reporting/ComponentType.java | 0 .../apache/nifi/reporting/EventAccess.java | 0 .../reporting/InitializationException.java | 0 .../nifi/reporting/ReportingContext.java | 0 .../ReportingInitializationContext.java | 0 .../apache/nifi/reporting/ReportingTask.java | 0 .../org/apache/nifi/reporting/Severity.java | 0 .../nifi/scheduling/SchedulingStrategy.java | 0 .../org/apache/nifi/search/SearchContext.java | 0 .../org/apache/nifi/search/SearchResult.java | 0 .../org/apache/nifi/search/Searchable.java | 0 .../nifi/web/ClusterRequestException.java | 0 .../org/apache/nifi/web/ComponentDetails.java | 0 .../apache/nifi/web/ConfigurationAction.java | 0 .../nifi/web/InvalidRevisionException.java | 0 .../nifi/web/NiFiWebConfigurationContext.java | 0 .../NiFiWebConfigurationRequestContext.java | 0 .../org/apache/nifi/web/NiFiWebContext.java | 0 .../apache/nifi/web/NiFiWebContextConfig.java | 0 .../nifi/web/NiFiWebRequestContext.java | 0 .../web/ProcessorConfigurationAction.java | 0 .../org/apache/nifi/web/ProcessorInfo.java | 0 .../nifi/web/ResourceNotFoundException.java | 0 .../java/org/apache/nifi/web/Revision.java | 0 .../org/apache/nifi/web/UiExtensionType.java | 0 .../org/apache/nifi/web/ViewableContent.java | 0 .../components/TestPropertyDescriptor.java | 0 .../apache/nifi/processor/TestDataUnit.java | 0 .../src/test/resources/logback-test.xml | 0 {nifi/nifi-assembly => nifi-assembly}/LICENSE | 0 {nifi/nifi-assembly => nifi-assembly}/NOTICE | 0 .../nifi-assembly => nifi-assembly}/README.md | 0 {nifi/nifi-assembly => nifi-assembly}/pom.xml | 0 .../src/main/assembly/dependencies.xml | 0 .../nifi-bootstrap => nifi-bootstrap}/pom.xml | 0 .../apache/nifi/bootstrap/BootstrapCodec.java | 0 .../apache/nifi/bootstrap/NiFiListener.java | 0 .../org/apache/nifi/bootstrap/RunNiFi.java | 0 .../apache/nifi/bootstrap/ShutdownHook.java | 0 .../exception/InvalidCommandException.java | 0 .../bootstrap/util/LimitingInputStream.java | 0 .../nifi-data-provenance-utils/.gitignore | 0 .../nifi-data-provenance-utils/pom.xml | 0 .../provenance/AsyncLineageSubmission.java | 0 .../nifi/provenance/AsyncQuerySubmission.java | 0 .../nifi/provenance/NamedSearchableField.java | 0 .../provenance/SearchableFieldParser.java | 0 .../nifi/provenance/SearchableFields.java | 0 .../provenance/StandardLineageResult.java | 0 .../StandardProvenanceEventRecord.java | 0 .../nifi/provenance/StandardQueryResult.java | 0 .../nifi/provenance/lineage/EdgeNode.java | 0 .../nifi/provenance/lineage/EventNode.java | 0 .../provenance/lineage/FlowFileLineage.java | 0 .../nifi/provenance/lineage/FlowFileNode.java | 0 .../nifi-expression-language/pom.xml | 0 .../language/antlr/AttributeExpressionLexer.g | 0 .../antlr/AttributeExpressionParser.g | 0 .../output/AttributeExpressionLexer.tokens | 0 .../language/EmptyPreparedQuery.java | 0 .../language/InvalidPreparedQuery.java | 0 .../expression/language/PreparedQuery.java | 0 .../attribute/expression/language/Query.java | 0 .../language/StandardAttributeExpression.java | 0 .../StandardExpressionLanguageCompiler.java | 0 .../language/StandardPreparedQuery.java | 0 .../language/evaluation/BooleanEvaluator.java | 0 .../evaluation/BooleanQueryResult.java | 0 .../language/evaluation/DateEvaluator.java | 0 .../language/evaluation/DateQueryResult.java | 0 .../language/evaluation/Evaluator.java | 0 .../language/evaluation/NumberEvaluator.java | 0 .../evaluation/NumberQueryResult.java | 0 .../language/evaluation/QueryResult.java | 0 .../language/evaluation/StringEvaluator.java | 0 .../evaluation/StringQueryResult.java | 0 .../evaluation/cast/BooleanCastEvaluator.java | 0 .../evaluation/cast/DateCastEvaluator.java | 0 .../evaluation/cast/NumberCastEvaluator.java | 0 .../evaluation/cast/StringCastEvaluator.java | 0 .../evaluation/functions/AndEvaluator.java | 0 .../evaluation/functions/AppendEvaluator.java | 0 .../functions/AttributeEvaluator.java | 0 .../functions/ContainsEvaluator.java | 0 .../functions/DateToNumberEvaluator.java | 0 .../evaluation/functions/DivideEvaluator.java | 0 .../functions/EndsWithEvaluator.java | 0 .../evaluation/functions/EqualsEvaluator.java | 0 .../functions/EqualsIgnoreCaseEvaluator.java | 0 .../evaluation/functions/FindEvaluator.java | 0 .../evaluation/functions/FormatEvaluator.java | 0 .../functions/GreaterThanEvaluator.java | 0 .../GreaterThanOrEqualEvaluator.java | 0 .../functions/HostnameEvaluator.java | 0 .../evaluation/functions/IPEvaluator.java | 0 .../functions/IndexOfEvaluator.java | 0 .../functions/IsEmptyEvaluator.java | 0 .../evaluation/functions/IsNullEvaluator.java | 0 .../functions/LastIndexOfEvaluator.java | 0 .../evaluation/functions/LengthEvaluator.java | 0 .../functions/LessThanEvaluator.java | 0 .../functions/LessThanOrEqualEvaluator.java | 0 .../functions/MatchesEvaluator.java | 0 .../evaluation/functions/MinusEvaluator.java | 0 .../evaluation/functions/ModEvaluator.java | 0 .../functions/MultiplyEvaluator.java | 0 .../evaluation/functions/NotEvaluator.java | 0 .../functions/NotNullEvaluator.java | 0 .../evaluation/functions/NowEvaluator.java | 0 .../functions/NumberToDateEvaluator.java | 0 .../functions/OneUpSequenceEvaluator.java | 0 .../evaluation/functions/OrEvaluator.java | 0 .../evaluation/functions/PlusEvaluator.java | 0 .../functions/PrependEvaluator.java | 0 .../functions/ReplaceAllEvaluator.java | 0 .../functions/ReplaceEmptyEvaluator.java | 0 .../functions/ReplaceEvaluator.java | 0 .../functions/ReplaceNullEvaluator.java | 0 .../functions/StartsWithEvaluator.java | 0 .../functions/StringToDateEvaluator.java | 0 .../functions/SubstringAfterEvaluator.java | 0 .../SubstringAfterLastEvaluator.java | 0 .../functions/SubstringBeforeEvaluator.java | 0 .../SubstringBeforeLastEvaluator.java | 0 .../functions/SubstringEvaluator.java | 0 .../functions/ToLowerEvaluator.java | 0 .../functions/ToNumberEvaluator.java | 0 .../functions/ToRadixEvaluator.java | 0 .../functions/ToStringEvaluator.java | 0 .../functions/ToUpperEvaluator.java | 0 .../evaluation/functions/TrimEvaluator.java | 0 .../functions/UrlDecodeEvaluator.java | 0 .../functions/UrlEncodeEvaluator.java | 0 .../evaluation/functions/UuidEvaluator.java | 0 .../literals/BooleanLiteralEvaluator.java | 0 .../literals/NumberLiteralEvaluator.java | 0 .../literals/StringLiteralEvaluator.java | 0 .../literals/ToLiteralEvaluator.java | 0 .../evaluation/reduce/CountEvaluator.java | 0 .../evaluation/reduce/JoinEvaluator.java | 0 .../evaluation/reduce/ReduceEvaluator.java | 0 .../selection/AllAttributesEvaluator.java | 0 .../selection/AnyAttributeEvaluator.java | 0 .../DelineatedAttributeEvaluator.java | 0 .../selection/IteratingEvaluator.java | 0 .../selection/MappingEvaluator.java | 0 .../selection/MultiAttributeEvaluator.java | 0 .../MultiMatchAttributeEvaluator.java | 0 .../MultiNamedAttributeEvaluator.java | 0 .../AttributeExpressionLanguageException.java | 0 ...uteExpressionLanguageParsingException.java | 0 .../exception/IllegalAttributeException.java | 0 .../expression/language/TestQuery.java | 0 .../language/TestStandardPreparedQuery.java | 0 .../nifi-flowfile-packager/pom.xml | 0 .../apache/nifi/util/FlowFilePackager.java | 0 .../apache/nifi/util/FlowFilePackagerV1.java | 0 .../apache/nifi/util/FlowFilePackagerV2.java | 0 .../apache/nifi/util/FlowFilePackagerV3.java | 0 .../apache/nifi/util/FlowFileUnpackager.java | 0 .../nifi/util/FlowFileUnpackagerV1.java | 0 .../nifi/util/FlowFileUnpackagerV2.java | 0 .../nifi/util/FlowFileUnpackagerV3.java | 0 .../java/org/apache/nifi/util/Unpackage.java | 0 .../nifi/util/TestPackageUnpackageV3.java | 0 .../nifi-hl7-query-language/.gitignore | 0 .../nifi-hl7-query-language/pom.xml | 0 .../nifi/hl7/query/antlr/HL7QueryLexer.g | 0 .../nifi/hl7/query/antlr/HL7QueryParser.g | 0 .../org/apache/nifi/hl7/hapi/EmptyField.java | 0 .../org/apache/nifi/hl7/hapi/HapiField.java | 0 .../org/apache/nifi/hl7/hapi/HapiMessage.java | 0 .../org/apache/nifi/hl7/hapi/HapiSegment.java | 0 .../nifi/hl7/hapi/SingleValueField.java | 0 .../org/apache/nifi/hl7/io/HL7Reader.java | 0 .../hl7/io/exception/InvalidHL7Exception.java | 0 .../apache/nifi/hl7/model/HL7Component.java | 0 .../org/apache/nifi/hl7/model/HL7Field.java | 0 .../org/apache/nifi/hl7/model/HL7Message.java | 0 .../org/apache/nifi/hl7/model/HL7Segment.java | 0 .../apache/nifi/hl7/query/Declaration.java | 0 .../org/apache/nifi/hl7/query/HL7Query.java | 0 .../apache/nifi/hl7/query/QueryResult.java | 0 .../org/apache/nifi/hl7/query/ResultHit.java | 0 .../org/apache/nifi/hl7/query/Selection.java | 0 .../hl7/query/evaluator/BooleanEvaluator.java | 0 .../nifi/hl7/query/evaluator/Evaluator.java | 0 .../hl7/query/evaluator/IntegerEvaluator.java | 0 .../hl7/query/evaluator/StringEvaluator.java | 0 .../AbstractComparisonEvaluator.java | 0 .../comparison/AbstractNumericComparison.java | 0 .../evaluator/comparison/EqualsEvaluator.java | 0 .../comparison/GreaterThanEvaluator.java | 0 .../GreaterThanOrEqualEvaluator.java | 0 .../evaluator/comparison/IsNullEvaluator.java | 0 .../comparison/LessThanEvaluator.java | 0 .../comparison/LessThanOrEqualEvaluator.java | 0 .../comparison/NotEqualsEvaluator.java | 0 .../evaluator/comparison/NotEvaluator.java | 0 .../comparison/NotNullEvaluator.java | 0 .../literal/IntegerLiteralEvaluator.java | 0 .../literal/StringLiteralEvaluator.java | 0 .../query/evaluator/logic/AndEvaluator.java | 0 .../query/evaluator/logic/OrEvaluator.java | 0 .../message/DeclaredReferenceEvaluator.java | 0 .../query/evaluator/message/DotEvaluator.java | 0 .../evaluator/message/FieldEvaluator.java | 0 .../evaluator/message/MessageEvaluator.java | 0 .../evaluator/message/SegmentEvaluator.java | 0 .../exception/HL7QueryParsingException.java | 0 .../nifi/hl7/query/result/MissedResult.java | 0 .../hl7/query/result/StandardQueryResult.java | 0 .../hl7/query/result/StandardResultHit.java | 0 .../apache/nifi/hl7/query/TestHL7Query.java | 0 .../src/test/resources/hyperglycemia | 0 .../src/test/resources/hypoglycemia | 0 .../nifi-logging-utils/pom.xml | 0 .../java/org/apache/nifi/logging/NiFiLog.java | 0 .../nifi-processor-utilities/pom.xml | 0 .../nifi/processor/util/FlowFileFilters.java | 0 .../nifi/processor/util/SSLProperties.java | 0 .../processor/util/StandardValidators.java | 0 .../nifi/processor/TestFormatUtils.java | 0 .../util/TestStandardValidators.java | 0 .../nifi-properties/.gitignore | 0 .../nifi-properties/pom.xml | 0 .../org/apache/nifi/util/NiFiProperties.java | 0 .../org/apache/nifi/util/StringUtils.java | 0 .../apache/nifi/util/NiFiPropertiesTest.java | 0 .../NiFiProperties/conf/nifi.blank.properties | 0 .../conf/nifi.missing.properties | 0 .../NiFiProperties/conf/nifi.properties | 0 .../nifi-security-utils/pom.xml | 0 .../nifi/security/util/CertificateUtils.java | 0 .../nifi/security/util/EncryptionMethod.java | 0 .../nifi/security/util/KeystoreType.java | 0 .../security/util/SecurityStoreTypes.java | 0 .../nifi/security/util/SslContextFactory.java | 0 .../nifi-site-to-site-client/pom.xml | 0 .../remote/AbstractCommunicationsSession.java | 0 .../org/apache/nifi/remote/Communicant.java | 0 .../java/org/apache/nifi/remote/Peer.java | 0 .../apache/nifi/remote/PeerDescription.java | 0 .../org/apache/nifi/remote/PeerStatus.java | 0 .../nifi/remote/RemoteResourceInitiator.java | 0 .../org/apache/nifi/remote/Transaction.java | 0 .../nifi/remote/TransactionCompletion.java | 0 .../apache/nifi/remote/TransferDirection.java | 0 .../nifi/remote/VersionedRemoteResource.java | 0 .../nifi/remote/client/KeystoreType.java | 0 .../nifi/remote/client/SiteToSiteClient.java | 0 .../remote/client/SiteToSiteClientConfig.java | 0 .../client/socket/EndpointConnection.java | 0 .../client/socket/EndpointConnectionPool.java | 0 .../remote/client/socket/SocketClient.java | 0 .../cluster/AdaptedNodeInformation.java | 0 .../cluster/ClusterNodeInformation.java | 0 .../nifi/remote/cluster/NodeInformation.java | 0 .../cluster/NodeInformationAdapter.java | 0 .../nifi/remote/codec/FlowFileCodec.java | 0 .../remote/codec/StandardFlowFileCodec.java | 0 .../remote/exception/HandshakeException.java | 0 .../exception/PortNotRunningException.java | 0 .../remote/exception/ProtocolException.java | 0 .../exception/UnknownPortException.java | 0 .../SocketChannelCommunicationsSession.java | 0 .../remote/io/socket/SocketChannelInput.java | 0 .../remote/io/socket/SocketChannelOutput.java | 0 ...SSLSocketChannelCommunicationsSession.java | 0 .../io/socket/ssl/SSLSocketChannelInput.java | 0 .../io/socket/ssl/SSLSocketChannelOutput.java | 0 .../nifi/remote/protocol/ClientProtocol.java | 0 .../remote/protocol/CommunicationsInput.java | 0 .../remote/protocol/CommunicationsOutput.java | 0 .../protocol/CommunicationsSession.java | 0 .../nifi/remote/protocol/DataPacket.java | 0 .../nifi/remote/protocol/RequestType.java | 0 .../protocol/socket/HandshakeProperty.java | 0 .../nifi/remote/protocol/socket/Response.java | 0 .../remote/protocol/socket/ResponseCode.java | 0 .../protocol/socket/SocketClientProtocol.java | 0 .../socket/SocketClientTransaction.java | 0 .../SocketClientTransactionCompletion.java | 0 .../nifi/remote/util/NiFiRestApiUtil.java | 0 .../nifi/remote/util/PeerStatusCache.java | 0 .../nifi/remote/util/StandardDataPacket.java | 0 .../TestEndpointConnectionStatePool.java | 0 .../client/socket/TestSiteToSiteClient.java | 0 .../nifi-socket-utils/pom.xml | 0 .../nifi/io/nio/AbstractChannelReader.java | 0 .../org/apache/nifi/io/nio/BufferPool.java | 0 .../apache/nifi/io/nio/ChannelDispatcher.java | 0 .../apache/nifi/io/nio/ChannelListener.java | 0 .../nifi/io/nio/DatagramChannelReader.java | 0 .../nifi/io/nio/SocketChannelReader.java | 0 .../nio/consumer/AbstractStreamConsumer.java | 0 .../nifi/io/nio/consumer/StreamConsumer.java | 0 .../nio/consumer/StreamConsumerFactory.java | 0 .../nifi/io/socket/SSLContextFactory.java | 0 .../io/socket/ServerSocketConfiguration.java | 0 .../nifi/io/socket/SocketConfiguration.java | 0 .../apache/nifi/io/socket/SocketListener.java | 0 .../apache/nifi/io/socket/SocketUtils.java | 0 .../socket/multicast/DiscoverableService.java | 0 .../multicast/DiscoverableServiceImpl.java | 0 .../multicast/MulticastConfiguration.java | 0 .../socket/multicast/MulticastListener.java | 0 .../multicast/MulticastServiceDiscovery.java | 0 .../MulticastServicesBroadcaster.java | 0 .../socket/multicast/MulticastTimeToLive.java | 0 .../io/socket/multicast/MulticastUtils.java | 0 .../io/socket/multicast/ServiceDiscovery.java | 0 .../socket/multicast/ServicesBroadcaster.java | 0 .../nifi/io/nio/example/ServerMain.java | 0 .../apache/nifi/io/nio/example/TCPClient.java | 0 .../apache/nifi/io/nio/example/UDPClient.java | 0 .../io/nio/example/UselessStreamConsumer.java | 0 .../src/test/resources/log4j.xml | 0 .../nifi-utils/.gitignore | 0 .../nifi-utils/pom.xml | 0 .../flowfile/attributes/CoreAttributes.java | 0 .../attributes/FlowFileAttributeKey.java | 0 .../remote/StandardVersionNegotiator.java | 0 .../apache/nifi/remote/VersionNegotiator.java | 0 .../TransmissionDisabledException.java | 0 .../remote/io/CompressionInputStream.java | 0 .../remote/io/CompressionOutputStream.java | 0 .../remote/io/InterruptableInputStream.java | 0 .../remote/io/InterruptableOutputStream.java | 0 .../remote/io/socket/BufferStateManager.java | 0 .../io/socket/SocketChannelInputStream.java | 0 .../io/socket/SocketChannelOutputStream.java | 0 .../io/socket/ssl/SSLSocketChannel.java | 0 .../ssl/SSLSocketChannelInputStream.java | 0 .../ssl/SSLSocketChannelOutputStream.java | 0 .../nifi/stream/io/BufferedInputStream.java | 0 .../nifi/stream/io/BufferedOutputStream.java | 0 .../nifi/stream/io/ByteArrayInputStream.java | 0 .../nifi/stream/io/ByteArrayOutputStream.java | 0 .../stream/io/ByteCountingInputStream.java | 0 .../stream/io/ByteCountingOutputStream.java | 0 .../nifi/stream/io/DataOutputStream.java | 0 .../nifi/stream/io/GZIPOutputStream.java | 0 .../stream/io/LeakyBucketStreamThrottler.java | 0 .../nifi/stream/io/LimitingInputStream.java | 0 .../stream/io/MinimumLengthInputStream.java | 0 .../stream/io/NonCloseableInputStream.java | 0 .../stream/io/NonCloseableOutputStream.java | 0 .../nifi/stream/io/NullOutputStream.java | 0 .../nifi/stream/io/StreamThrottler.java | 0 .../apache/nifi/stream/io/StreamUtils.java | 0 .../nifi/stream/io/ZipOutputStream.java | 0 .../BytePatternNotFoundException.java | 0 .../io/util/NonThreadSafeCircularBuffer.java | 0 .../org/apache/nifi/util/BooleanHolder.java | 0 .../org/apache/nifi/util/EscapeUtils.java | 0 .../org/apache/nifi/util/FormatUtils.java | 0 .../org/apache/nifi/util/IntegerHolder.java | 0 .../java/org/apache/nifi/util/LongHolder.java | 0 .../nifi/util/NaiveSearchRingBuffer.java | 0 .../org/apache/nifi/util/ObjectHolder.java | 0 .../java/org/apache/nifi/util/RingBuffer.java | 0 .../java/org/apache/nifi/util/StopWatch.java | 0 .../main/java/org/apache/nifi/util/Tuple.java | 0 .../concurrency/DebugDisabledTimedLock.java | 0 .../concurrency/DebugEnabledTimedLock.java | 0 .../util/concurrency/DebuggableTimedLock.java | 0 .../nifi/util/concurrency/TimedLock.java | 0 .../org/apache/nifi/util/file/FileUtils.java | 0 .../file/monitor/CompoundUpdateMonitor.java | 0 .../file/monitor/LastModifiedMonitor.java | 0 .../nifi/util/file/monitor/MD5SumMonitor.java | 0 .../file/monitor/SynchronousFileWatcher.java | 0 .../nifi/util/file/monitor/UpdateMonitor.java | 0 .../org/apache/nifi/util/search/Search.java | 0 .../apache/nifi/util/search/SearchTerm.java | 0 .../util/search/ahocorasick/AhoCorasick.java | 0 .../nifi/util/search/ahocorasick/Node.java | 0 .../util/search/ahocorasick/SearchState.java | 0 .../nifi/util/timebuffer/EntityAccess.java | 0 .../util/timebuffer/LongEntityAccess.java | 0 .../nifi/util/timebuffer/TimedBuffer.java | 0 .../nifi/util/timebuffer/TimestampedLong.java | 0 .../io/TestCompressionInputOutputStreams.java | 0 .../io/ByteCountingInputStreamTest.java | 0 .../stream/io/TestLeakyBucketThrottler.java | 0 .../nifi/util/TestNaiveSearchRingBuffer.java | 0 .../monitor/TestCompoundUpdateMonitor.java | 0 .../monitor/TestSynchronousFileWatcher.java | 0 .../nifi/util/timebuffer/TestRingBuffer.java | 0 .../nifi/util/timebuffer/TestTimedBuffer.java | 0 .../src/test/resources/logback-test.xml | 0 .../nifi-web-utils/pom.xml | 0 .../org/apache/nifi/web/util/ClientUtils.java | 0 .../nifi/web/util/ObjectMapperResolver.java | 0 .../org/apache/nifi/web/util/WebUtils.java | 0 .../nifi-write-ahead-log/.gitignore | 0 .../nifi-write-ahead-log/pom.xml | 0 .../org/wali/MinimalLockingWriteAheadLog.java | 0 .../src/main/java/org/wali/SerDe.java | 0 .../src/main/java/org/wali/SyncListener.java | 0 .../src/main/java/org/wali/UpdateType.java | 0 .../java/org/wali/WriteAheadRepository.java | 0 .../src/test/java/org/wali/DummyRecord.java | 0 .../test/java/org/wali/DummyRecordSerde.java | 0 .../wali/TestMinimalLockingWriteAheadLog.java | 0 {nifi/nifi-commons => nifi-commons}/pom.xml | 0 {nifi/nifi-docs => nifi-docs}/LICENSE | 0 {nifi/nifi-docs => nifi-docs}/NOTICE | 0 {nifi/nifi-docs => nifi-docs}/pom.xml | 0 .../main/asciidoc/administration-guide.adoc | 0 .../src/main/asciidoc/asciidoc-mod.css | 0 .../src/main/asciidoc/developer-guide.adoc | 0 .../asciidoc/expression-language-guide.adoc | 0 .../images/add-controller-service-window.png | Bin .../images/add-processor-with-tag-cloud.png | Bin .../main/asciidoc/images/add-processor.png | Bin .../src/main/asciidoc/images/addConnect.png | Bin .../src/main/asciidoc/images/comments-tab.png | Bin .../src/main/asciidoc/images/components.png | Bin ...onfigure-controller-service-properties.png | Bin .../configure-controller-service-settings.png | Bin .../configure-reporting-task-properties.png | Bin .../configure-reporting-task-settings.png | Bin .../asciidoc/images/connection-settings.png | Bin .../controller-services-edit-buttons.png | Bin .../controller-services-edit-buttons2.png | Bin .../images/controller-services-tab.png | Bin .../images/controller-settings-button.png | Bin .../asciidoc/images/create-connection.png | Bin .../images/create-service-ssl-context.png | Bin .../images/edit-property-dropdown.png | Bin .../images/edit-property-textarea.png | Bin .../main/asciidoc/images/event-attributes.png | Bin .../main/asciidoc/images/event-content.png | Bin .../main/asciidoc/images/event-details.png | Bin .../src/main/asciidoc/images/expand-event.png | Bin .../main/asciidoc/images/expanded-events.png | Bin .../src/main/asciidoc/images/find-parents.png | Bin .../src/main/asciidoc/images/iconAlert.png | Bin .../main/asciidoc/images/iconConnection.png | Bin .../src/main/asciidoc/images/iconDelete.png | Bin .../src/main/asciidoc/images/iconDisable.png | Bin .../src/main/asciidoc/images/iconEdit.png | Bin .../src/main/asciidoc/images/iconEnable.png | Bin .../src/main/asciidoc/images/iconExport.png | Bin .../main/asciidoc/images/iconFlowHistory.png | Bin .../src/main/asciidoc/images/iconFunnel.png | Bin .../src/main/asciidoc/images/iconInfo.png | Bin .../main/asciidoc/images/iconInputPort.png | Bin .../asciidoc/images/iconInputPortSmall.png | Bin .../src/main/asciidoc/images/iconLabel.png | Bin .../src/main/asciidoc/images/iconLineage.png | Bin .../main/asciidoc/images/iconNewTemplate.png | Bin .../main/asciidoc/images/iconNotSecure.png | Bin .../main/asciidoc/images/iconOutputPort.png | Bin .../asciidoc/images/iconOutputPortSmall.png | Bin .../main/asciidoc/images/iconProcessGroup.png | Bin .../main/asciidoc/images/iconProcessor.png | Bin .../main/asciidoc/images/iconProvenance.png | Bin .../images/iconRemoteProcessGroup.png | Bin .../src/main/asciidoc/images/iconResize.png | Bin .../src/main/asciidoc/images/iconRun.png | Bin .../src/main/asciidoc/images/iconSecure.png | Bin .../src/main/asciidoc/images/iconSettings.png | Bin .../src/main/asciidoc/images/iconStop.png | Bin .../src/main/asciidoc/images/iconSummary.png | Bin .../src/main/asciidoc/images/iconTemplate.png | Bin .../images/iconTransmissionActive.png | Bin .../images/iconTransmissionInactive.png | Bin .../src/main/asciidoc/images/iconUsers.png | Bin .../main/asciidoc/images/iconViewDetails.png | Bin .../instantiate-template-description.png | Bin .../asciidoc/images/instantiate-template.png | Bin .../asciidoc/images/invalid-processor.png | Bin .../main/asciidoc/images/lineage-flowfile.png | Bin .../images/lineage-graph-annotated.png | Bin .../src/main/asciidoc/images/ncm.png | Bin .../src/main/asciidoc/images/new-flow.png | Bin .../asciidoc/images/nifi-arch-cluster.png | Bin .../src/main/asciidoc/images/nifi-arch.png | Bin .../main/asciidoc/images/nifi-navigation.png | Bin .../images/nifi-toolbar-components.png | Bin .../images/nifi_first_launch_screenshot.png | Bin .../src/main/asciidoc/images/parent-found.png | Bin .../asciidoc/images/process-group-anatomy.png | Bin .../asciidoc/images/processor-anatomy.png | Bin .../images/processor-connection-bubble.png | Bin .../main/asciidoc/images/properties-tab.png | Bin .../asciidoc/images/provenance-annotated.png | Bin .../main/asciidoc/images/provenance-table.png | Bin .../asciidoc/images/remote-group-anatomy.png | Bin .../images/remote-group-ports-dialog.png | Bin .../images/remote-port-connection-status.png | Bin .../images/reporting-tasks-edit-buttons.png | Bin .../images/reporting-tasks-edit-buttons2.png | Bin .../asciidoc/images/reporting-tasks-tab.png | Bin .../main/asciidoc/images/scheduling-tab.png | Bin .../main/asciidoc/images/search-events.png | Bin .../images/search-receive-event-abc.png | Bin .../asciidoc/images/settings-general-tab.png | Bin .../src/main/asciidoc/images/settings-tab.png | Bin .../src/main/asciidoc/images/simple-flow.png | Bin .../main/asciidoc/images/stats-history.png | Bin .../src/main/asciidoc/images/status-bar.png | Bin .../asciidoc/images/summary-annotated.png | Bin .../main/asciidoc/images/summary-table.png | Bin .../main/asciidoc/images/valid-processor.png | Bin .../src/main/asciidoc/overview.adoc | 0 .../src/main/asciidoc/user-guide.adoc | 0 .../src/main/assembly/dependencies.xml | 0 .../nifi-external => nifi-external}/README.md | 0 .../nifi-nifi-example-nar/pom.xml | 0 .../nifi-nifi-example-processors/pom.xml | 0 .../processors/WriteResourceToStream.java | 0 .../org.apache.nifi.processor.Processor | 0 .../src/main/resources/file.txt | 0 .../processors/WriteResourceToStreamTest.java | 0 .../nifi-example-bundle/pom.xml | 0 .../nifi-spark-receiver/pom.xml | 0 .../org/apache/nifi/spark/NiFiDataPacket.java | 0 .../org/apache/nifi/spark/NiFiReceiver.java | 0 .../nifi-storm-spout/pom.xml | 0 .../org/apache/nifi/storm/NiFiDataPacket.java | 0 .../java/org/apache/nifi/storm/NiFiSpout.java | 0 {nifi/nifi-external => nifi-external}/pom.xml | 0 .../nifi-processor-bundle-archetype/pom.xml | 0 .../META-INF/maven/archetype-metadata.xml | 0 .../nifi-__artifactBaseName__-nar/pom.xml | 0 .../pom.xml | 0 .../src/main/java/MyProcessor.java | 0 .../org.apache.nifi.processor.Processor | 0 .../src/test/java/MyProcessorTest.java | 0 .../resources/archetype-resources/pom.xml | 0 .../nifi-service-bundle-archetype/pom.xml | 0 .../META-INF/maven/archetype-metadata.xml | 0 .../nifi-__artifactBaseName__-api-nar/pom.xml | 0 .../nifi-__artifactBaseName__-api/pom.xml | 0 .../src/main/java/MyService.java | 0 .../nifi-__artifactBaseName__-nar/pom.xml | 0 .../nifi-__artifactBaseName__/pom.xml | 0 .../src/main/java/StandardMyService.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../src/test/java/TestProcessor.java | 0 .../src/test/java/TestStandardMyService.java | 0 .../resources/archetype-resources/pom.xml | 0 .../pom.xml | 0 {nifi/nifi-mock => nifi-mock}/pom.xml | 0 .../MockProvenanceEventRepository.java | 0 .../nifi/reporting/BulletinFactory.java | 0 .../apache/nifi/reporting/MockBulletin.java | 0 .../util/ControllerServiceConfiguration.java | 0 .../nifi/util/MockBulletinRepository.java | 0 .../nifi/util/MockConfigurationContext.java | 0 ...ontrollerServiceInitializationContext.java | 0 .../util/MockControllerServiceLookup.java | 0 .../org/apache/nifi/util/MockEventAccess.java | 0 .../org/apache/nifi/util/MockFlowFile.java | 0 .../apache/nifi/util/MockFlowFileQueue.java | 0 .../apache/nifi/util/MockProcessContext.java | 0 .../apache/nifi/util/MockProcessSession.java | 0 .../MockProcessorInitializationContext.java | 0 .../apache/nifi/util/MockProcessorLog.java | 0 .../apache/nifi/util/MockPropertyValue.java | 0 .../nifi/util/MockProvenanceReporter.java | 0 .../nifi/util/MockReportingContext.java | 0 .../MockReportingInitializationContext.java | 0 .../apache/nifi/util/MockSessionFactory.java | 0 .../nifi/util/MockValidationContext.java | 0 .../org/apache/nifi/util/ReflectionUtils.java | 0 .../apache/nifi/util/SharedSessionState.java | 0 .../nifi/util/SingleSessionFactory.java | 0 .../util/StandardProcessorTestRunner.java | 0 .../java/org/apache/nifi/util/TestRunner.java | 0 .../org/apache/nifi/util/TestRunners.java | 0 ...urrentTestStandardProcessorTestRunner.java | 0 .../util/TestStandardProcessorTestRunner.java | 0 .../nifi-aws-bundle/nifi-aws-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-aws-processors/pom.xml | 0 .../processors/aws/AbstractAWSProcessor.java | 0 .../aws/s3/AbstractS3Processor.java | 0 .../nifi/processors/aws/s3/FetchS3Object.java | 0 .../nifi/processors/aws/s3/PutS3Object.java | 0 .../aws/sns/AbstractSNSProcessor.java | 0 .../nifi/processors/aws/sns/PutSNS.java | 0 .../aws/sqs/AbstractSQSProcessor.java | 0 .../nifi/processors/aws/sqs/DeleteSQS.java | 0 .../nifi/processors/aws/sqs/GetSQS.java | 0 .../nifi/processors/aws/sqs/PutSQS.java | 0 .../org.apache.nifi.processor.Processor | 0 .../processors/aws/s3/TestFetchS3Object.java | 0 .../processors/aws/s3/TestPutS3Object.java | 0 .../nifi/processors/aws/sns/TestPutSNS.java | 0 .../nifi/processors/aws/sqs/TestGetSQS.java | 0 .../nifi/processors/aws/sqs/TestPutSQS.java | 0 .../src/test/resources/hello.txt | 0 .../nifi-aws-bundle/pom.xml | 0 .../nifi-flume-bundle/nifi-flume-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-flume-processors/pom.xml | 0 .../flume/AbstractFlumeProcessor.java | 0 .../processors/flume/ExecuteFlumeSink.java | 0 .../processors/flume/ExecuteFlumeSource.java | 0 .../processors/flume/NifiChannelSelector.java | 0 .../processors/flume/NifiSessionChannel.java | 0 .../flume/NifiSessionFactoryChannel.java | 0 .../flume/NifiSinkSessionChannel.java | 0 .../processors/flume/NifiSinkTransaction.java | 0 .../processors/flume/NifiTransaction.java | 0 .../processors/flume/util/FlowFileEvent.java | 0 .../flume/util/FlowFileEventConstants.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../flume/ExecuteFlumeSinkTest.java | 0 .../flume/ExecuteFlumeSourceTest.java | 0 .../src/test/resources/core-site-broken.xml | 0 .../src/test/resources/core-site.xml | 0 .../src/test/resources/log4j.properties | 0 .../test/resources/simplelogger.properties | 0 .../src/test/resources/testdata/records.txt | 0 .../nifi-flume-bundle/pom.xml | 0 .../nifi-framework-nar/.gitignore | 0 .../nifi-framework-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-administration/.gitignore | 0 .../nifi-administration/pom.xml | 0 .../admin/AuditDataSourceFactoryBean.java | 0 .../apache/nifi/admin/RepositoryUtils.java | 0 .../nifi/admin/UserDataSourceFactoryBean.java | 0 .../org/apache/nifi/admin/dao/ActionDAO.java | 0 .../apache/nifi/admin/dao/AuthorityDAO.java | 0 .../org/apache/nifi/admin/dao/DAOFactory.java | 0 .../nifi/admin/dao/DataAccessException.java | 0 .../org/apache/nifi/admin/dao/UserDAO.java | 0 .../nifi/admin/dao/impl/DAOFactoryImpl.java | 0 .../admin/dao/impl/StandardActionDAO.java | 0 .../admin/dao/impl/StandardAuthorityDAO.java | 0 .../nifi/admin/dao/impl/StandardUserDAO.java | 0 .../service/AccountDisabledException.java | 0 .../service/AccountNotFoundException.java | 0 .../service/AccountPendingException.java | 0 .../service/AdministrationException.java | 0 .../nifi/admin/service/AuditService.java | 0 .../nifi/admin/service/UserService.java | 0 .../service/action/AbstractUserAction.java | 0 .../service/action/AddActionsAction.java | 0 .../service/action/AdministrationAction.java | 0 .../action/AuthorizeDownloadAction.java | 0 .../service/action/AuthorizeUserAction.java | 0 .../service/action/CreateUserAction.java | 0 .../service/action/DeleteUserAction.java | 0 .../service/action/DisableUserAction.java | 0 .../action/DisableUserGroupAction.java | 0 .../service/action/FindUserByDnAction.java | 0 .../service/action/FindUserByIdAction.java | 0 .../admin/service/action/GetActionAction.java | 0 .../service/action/GetActionsAction.java | 0 .../service/action/GetPreviousValues.java | 0 .../service/action/GetUserGroupAction.java | 0 .../admin/service/action/GetUsersAction.java | 0 .../action/HasPendingUserAccounts.java | 0 .../action/InvalidateUserAccountAction.java | 0 .../InvalidateUserGroupAccountsAction.java | 0 .../service/action/PurgeActionsAction.java | 0 .../action/RequestUserAccountAction.java | 0 .../action/SeedUserAccountsAction.java | 0 .../service/action/UngroupUserAction.java | 0 .../action/UngroupUserGroupAction.java | 0 .../service/action/UpdateUserAction.java | 0 .../UpdateUserAuthoritiesCacheAction.java | 0 .../service/action/UpdateUserCacheAction.java | 0 .../service/action/UpdateUserGroupAction.java | 0 .../service/impl/StandardAuditService.java | 0 .../service/impl/StandardUserService.java | 0 .../service/transaction/Transaction.java | 0 .../transaction/TransactionBuilder.java | 0 .../transaction/TransactionException.java | 0 .../transaction/impl/StandardTransaction.java | 0 .../impl/StandardTransactionBuilder.java | 0 .../AuthorityProviderFactoryBean.java | 0 ...AuthorityProviderConfigurationContext.java | 0 ...uthorityProviderInitializationContext.java | 0 .../java/org/apache/nifi/history/History.java | 0 .../org/apache/nifi/history/HistoryQuery.java | 0 .../apache/nifi/history/PreviousValue.java | 0 .../org/apache/nifi/user/AccountStatus.java | 0 .../java/org/apache/nifi/user/NiFiUser.java | 0 .../org/apache/nifi/user/NiFiUserGroup.java | 0 .../resources/nifi-administration-context.xml | 0 .../src/main/xsd/authority-providers.xsd | 0 .../action/AuthorizeUserActionTest.java | 0 .../service/action/CreateUserActionTest.java | 0 .../service/action/DisableUserActionTest.java | 0 .../InvalidateUserAccountActionTest.java | 0 .../action/RequestUserAccountActionTest.java | 0 .../action/SeedUserAccountsActionTest.java | 0 .../action/SetUserAuthoritiesActionTest.java | 0 .../nifi-framework/nifi-client-dto/.gitignore | 0 .../nifi-framework/nifi-client-dto/pom.xml | 0 .../org/apache/nifi/web/api/dto/AboutDTO.java | 0 .../apache/nifi/web/api/dto/BannerDTO.java | 0 .../nifi/web/api/dto/BulletinBoardDTO.java | 0 .../apache/nifi/web/api/dto/BulletinDTO.java | 0 .../nifi/web/api/dto/BulletinQueryDTO.java | 0 .../apache/nifi/web/api/dto/ClusterDTO.java | 0 .../nifi/web/api/dto/ComponentHistoryDTO.java | 0 .../nifi/web/api/dto/ConnectableDTO.java | 0 .../nifi/web/api/dto/ConnectionDTO.java | 0 .../api/dto/ControllerConfigurationDTO.java | 0 .../nifi/web/api/dto/ControllerDTO.java | 0 .../web/api/dto/ControllerServiceDTO.java | 0 ...trollerServiceReferencingComponentDTO.java | 0 .../apache/nifi/web/api/dto/CounterDTO.java | 0 .../apache/nifi/web/api/dto/CountersDTO.java | 0 .../nifi/web/api/dto/DocumentedTypeDTO.java | 0 .../nifi/web/api/dto/FlowSnippetDTO.java | 0 .../apache/nifi/web/api/dto/FunnelDTO.java | 0 .../org/apache/nifi/web/api/dto/LabelDTO.java | 0 .../nifi/web/api/dto/NiFiComponentDTO.java | 0 .../org/apache/nifi/web/api/dto/NodeDTO.java | 0 .../apache/nifi/web/api/dto/NodeEventDTO.java | 0 .../web/api/dto/NodeSystemDiagnosticsDTO.java | 0 .../org/apache/nifi/web/api/dto/PortDTO.java | 0 .../apache/nifi/web/api/dto/PositionDTO.java | 0 .../nifi/web/api/dto/PreviousValueDTO.java | 0 .../nifi/web/api/dto/ProcessGroupDTO.java | 0 .../nifi/web/api/dto/ProcessorConfigDTO.java | 0 .../apache/nifi/web/api/dto/ProcessorDTO.java | 0 .../web/api/dto/PropertyDescriptorDTO.java | 0 .../nifi/web/api/dto/PropertyHistoryDTO.java | 0 .../nifi/web/api/dto/RelationshipDTO.java | 0 .../dto/RemoteProcessGroupContentsDTO.java | 0 .../web/api/dto/RemoteProcessGroupDTO.java | 0 .../api/dto/RemoteProcessGroupPortDTO.java | 0 .../nifi/web/api/dto/ReportingTaskDTO.java | 0 .../apache/nifi/web/api/dto/RevisionDTO.java | 0 .../apache/nifi/web/api/dto/SnippetDTO.java | 0 .../web/api/dto/SystemDiagnosticsDTO.java | 0 .../apache/nifi/web/api/dto/TemplateDTO.java | 0 .../org/apache/nifi/web/api/dto/UserDTO.java | 0 .../apache/nifi/web/api/dto/UserGroupDTO.java | 0 .../nifi/web/api/dto/action/ActionDTO.java | 0 .../nifi/web/api/dto/action/HistoryDTO.java | 0 .../web/api/dto/action/HistoryQueryDTO.java | 0 .../details/ComponentDetailsDTO.java | 0 .../details/ExtensionDetailsDTO.java | 0 .../details/RemoteProcessGroupDetailsDTO.java | 0 .../dto/action/details/ActionDetailsDTO.java | 0 .../action/details/ConfigureDetailsDTO.java | 0 .../dto/action/details/ConnectDetailsDTO.java | 0 .../dto/action/details/MoveDetailsDTO.java | 0 .../dto/action/details/PurgeDetailsDTO.java | 0 .../web/api/dto/provenance/AttributeDTO.java | 0 .../web/api/dto/provenance/ProvenanceDTO.java | 0 .../dto/provenance/ProvenanceEventDTO.java | 0 .../dto/provenance/ProvenanceOptionsDTO.java | 0 .../dto/provenance/ProvenanceRequestDTO.java | 0 .../dto/provenance/ProvenanceResultsDTO.java | 0 .../ProvenanceSearchableFieldDTO.java | 0 .../dto/provenance/lineage/LineageDTO.java | 0 .../provenance/lineage/LineageRequestDTO.java | 0 .../provenance/lineage/LineageResultsDTO.java | 0 .../provenance/lineage/ProvenanceLinkDTO.java | 0 .../provenance/lineage/ProvenanceNodeDTO.java | 0 .../dto/search/ComponentSearchResultDTO.java | 0 .../api/dto/search/NodeSearchResultDTO.java | 0 .../web/api/dto/search/SearchResultsDTO.java | 0 .../dto/search/UserGroupSearchResultDTO.java | 0 .../api/dto/search/UserSearchResultDTO.java | 0 .../status/ClusterConnectionStatusDTO.java | 0 .../api/dto/status/ClusterPortStatusDTO.java | 0 .../status/ClusterProcessGroupStatusDTO.java | 0 .../dto/status/ClusterProcessorStatusDTO.java | 0 .../ClusterRemoteProcessGroupStatusDTO.java | 0 .../web/api/dto/status/ClusterStatusDTO.java | 0 .../dto/status/ClusterStatusHistoryDTO.java | 0 .../api/dto/status/ConnectionStatusDTO.java | 0 .../api/dto/status/ControllerStatusDTO.java | 0 .../dto/status/NodeConnectionStatusDTO.java | 0 .../web/api/dto/status/NodePortStatusDTO.java | 0 .../dto/status/NodeProcessGroupStatusDTO.java | 0 .../dto/status/NodeProcessorStatusDTO.java | 0 .../NodeRemoteProcessGroupStatusDTO.java | 0 .../web/api/dto/status/NodeStatusDTO.java | 0 .../api/dto/status/NodeStatusHistoryDTO.java | 0 .../web/api/dto/status/PortStatusDTO.java | 0 .../api/dto/status/ProcessGroupStatusDTO.java | 0 .../api/dto/status/ProcessorStatusDTO.java | 0 .../api/dto/status/RemotePortStatusDTO.java | 0 .../status/RemoteProcessGroupStatusDTO.java | 0 .../nifi/web/api/dto/status/StatusDTO.java | 0 .../api/dto/status/StatusDescriptorDTO.java | 0 .../web/api/dto/status/StatusHistoryDTO.java | 0 .../dto/status/StatusHistoryDetailDTO.java | 0 .../web/api/dto/status/StatusSnapshotDTO.java | 0 .../web/api/dto/util/DateTimeAdapter.java | 0 .../nifi/web/api/dto/util/TimeAdapter.java | 0 .../web/api/dto/util/TimestampAdapter.java | 0 .../nifi/web/api/entity/AboutEntity.java | 0 .../nifi/web/api/entity/ActionEntity.java | 0 .../nifi/web/api/entity/AuthorityEntity.java | 0 .../nifi/web/api/entity/BannerEntity.java | 0 .../web/api/entity/BulletinBoardEntity.java | 0 .../entity/ClusterConnectionStatusEntity.java | 0 .../nifi/web/api/entity/ClusterEntity.java | 0 .../api/entity/ClusterPortStatusEntity.java | 0 .../ClusterProcessGroupStatusEntity.java | 0 .../entity/ClusterProcessorStatusEntity.java | 0 ...ClusterRemoteProcessGroupStatusEntity.java | 0 .../entity/ClusterSearchResultsEntity.java | 0 .../web/api/entity/ClusterStatusEntity.java | 0 .../entity/ClusterStatusHistoryEntity.java | 0 .../api/entity/ComponentHistoryEntity.java | 0 .../nifi/web/api/entity/ConnectionEntity.java | 0 .../web/api/entity/ConnectionsEntity.java | 0 .../entity/ControllerConfigurationEntity.java | 0 .../nifi/web/api/entity/ControllerEntity.java | 0 .../api/entity/ControllerServiceEntity.java | 0 ...lerServiceReferencingComponentsEntity.java | 0 .../entity/ControllerServiceTypesEntity.java | 0 .../api/entity/ControllerServicesEntity.java | 0 .../api/entity/ControllerStatusEntity.java | 0 .../nifi/web/api/entity/CounterEntity.java | 0 .../nifi/web/api/entity/CountersEntity.java | 0 .../apache/nifi/web/api/entity/Entity.java | 0 .../web/api/entity/FlowSnippetEntity.java | 0 .../nifi/web/api/entity/FunnelEntity.java | 0 .../nifi/web/api/entity/FunnelsEntity.java | 0 .../nifi/web/api/entity/HistoryEntity.java | 0 .../nifi/web/api/entity/InputPortEntity.java | 0 .../nifi/web/api/entity/InputPortsEntity.java | 0 .../nifi/web/api/entity/LabelEntity.java | 0 .../nifi/web/api/entity/LabelsEntity.java | 0 .../nifi/web/api/entity/LineageEntity.java | 0 .../nifi/web/api/entity/NodeEntity.java | 0 .../nifi/web/api/entity/NodeStatusEntity.java | 0 .../entity/NodeSystemDiagnosticsEntity.java | 0 .../nifi/web/api/entity/OutputPortEntity.java | 0 .../web/api/entity/OutputPortsEntity.java | 0 .../api/entity/PrioritizerTypesEntity.java | 0 .../web/api/entity/ProcessGroupEntity.java | 0 .../api/entity/ProcessGroupStatusEntity.java | 0 .../web/api/entity/ProcessGroupsEntity.java | 0 .../nifi/web/api/entity/ProcessorEntity.java | 0 .../web/api/entity/ProcessorTypesEntity.java | 0 .../nifi/web/api/entity/ProcessorsEntity.java | 0 .../api/entity/PropertyDescriptorEntity.java | 0 .../nifi/web/api/entity/ProvenanceEntity.java | 0 .../web/api/entity/ProvenanceEventEntity.java | 0 .../api/entity/ProvenanceOptionsEntity.java | 0 .../api/entity/RemoteProcessGroupEntity.java | 0 .../entity/RemoteProcessGroupPortEntity.java | 0 .../api/entity/RemoteProcessGroupsEntity.java | 0 .../web/api/entity/ReportingTaskEntity.java | 0 .../api/entity/ReportingTaskTypesEntity.java | 0 .../web/api/entity/ReportingTasksEntity.java | 0 .../web/api/entity/SearchResultsEntity.java | 0 .../nifi/web/api/entity/SnippetEntity.java | 0 .../web/api/entity/StatusHistoryEntity.java | 0 .../api/entity/SystemDiagnosticsEntity.java | 0 .../nifi/web/api/entity/TemplateEntity.java | 0 .../nifi/web/api/entity/TemplatesEntity.java | 0 .../nifi/web/api/entity/UserEntity.java | 0 .../nifi/web/api/entity/UserGroupEntity.java | 0 .../api/entity/UserSearchResultsEntity.java | 0 .../nifi/web/api/entity/UsersEntity.java | 0 .../.gitignore | 0 .../pom.xml | 0 .../ClusterManagerAuthorizationProvider.java | 0 .../NodeAuthorizationProvider.java | 0 .../protocol/message/DoesDnExistMessage.java | 0 .../message/GetAuthoritiesMessage.java | 0 .../message/GetGroupForUserMessage.java | 0 .../protocol/message/ProtocolMessage.java | 0 .../message/jaxb/JaxbProtocolUtils.java | 0 .../protocol/message/jaxb/ObjectFactory.java | 0 ...pache.nifi.authorization.AuthorityProvider | 0 .../nifi-framework/nifi-documentation/pom.xml | 0 .../ConfigurableComponentInitializer.java | 0 .../nifi/documentation/DocGenerator.java | 0 .../documentation/DocumentationWriter.java | 0 .../html/HtmlDocumentationWriter.java | 0 .../HtmlProcessorDocumentationWriter.java | 0 .../init/ControllerServiceInitializer.java | 0 .../init/ProcessorInitializer.java | 0 .../init/ReportingTaskingInitializer.java | 0 .../mock/MockConfigurationContext.java | 0 ...ontrollerServiceInitializationContext.java | 0 .../mock/MockControllerServiceLookup.java | 0 .../mock/MockProcessContext.java | 0 .../MockProcessorInitializationContext.java | 0 .../mock/MockProcessorLogger.java | 0 .../MockReportingInitializationContext.java | 0 .../documentation/util/ReflectionUtils.java | 0 .../nifi/documentation/DocGeneratorTest.java | 0 .../example/ControllerServiceWithLogger.java | 0 .../FullyDocumentedControllerService.java | 0 .../example/FullyDocumentedProcessor.java | 0 .../example/FullyDocumentedReportingTask.java | 0 .../documentation/example/NakedProcessor.java | 0 .../example/ProcessorWithLogger.java | 0 .../example/ReportingTaskWithLogger.java | 0 .../documentation/example/SampleService.java | 0 .../html/HtmlDocumentationWriterTest.java | 0 .../ProcessorDocumentationWriterTest.java | 0 .../nifi/documentation/html/XmlValidator.java | 0 .../src/test/resources/conf/nifi.properties | 0 .../src/test/resources/lib/example.nar | Bin .../src/test/resources/lib/jetty.nar | Bin .../test/resources/lib/nifi-framework-nar.nar | Bin .../nifi-file-authorization-provider/pom.xml | 0 .../FileAuthorizationProvider.java | 0 ...pache.nifi.authorization.AuthorityProvider | 0 .../src/main/xsd/users.xsd | 0 .../FileAuthorizationProviderTest.java | 0 .../.gitignore | 0 .../nifi-framework-cluster-protocol/pom.xml | 0 .../ClusterManagerProtocolSender.java | 0 .../cluster/protocol/ConnectionRequest.java | 0 .../cluster/protocol/ConnectionResponse.java | 0 .../nifi/cluster/protocol/Heartbeat.java | 0 .../nifi/cluster/protocol/NodeBulletins.java | 0 .../nifi/cluster/protocol/NodeIdentifier.java | 0 .../cluster/protocol/NodeProtocolSender.java | 0 .../cluster/protocol/ProtocolContext.java | 0 .../cluster/protocol/ProtocolException.java | 0 .../cluster/protocol/ProtocolHandler.java | 0 .../cluster/protocol/ProtocolListener.java | 0 .../protocol/ProtocolMessageMarshaller.java | 0 .../protocol/ProtocolMessageUnmarshaller.java | 0 .../cluster/protocol/StandardDataFlow.java | 0 .../UnknownServiceAddressException.java | 0 .../ClusterManagerProtocolSenderImpl.java | 0 .../ClusterManagerProtocolSenderListener.java | 0 .../impl/ClusterServiceDiscovery.java | 0 .../protocol/impl/ClusterServiceLocator.java | 0 .../impl/ClusterServicesBroadcaster.java | 0 .../protocol/impl/CopyingInputStream.java | 0 .../impl/MulticastProtocolListener.java | 0 .../protocol/impl/NodeProtocolSenderImpl.java | 0 .../impl/NodeProtocolSenderListener.java | 0 .../protocol/impl/SocketProtocolListener.java | 0 .../protocol/jaxb/JaxbProtocolContext.java | 0 .../message/AdaptedConnectionRequest.java | 0 .../message/AdaptedConnectionResponse.java | 0 .../protocol/jaxb/message/AdaptedCounter.java | 0 .../jaxb/message/AdaptedDataFlow.java | 0 .../jaxb/message/AdaptedHeartbeat.java | 0 .../jaxb/message/AdaptedNodeBulletins.java | 0 .../jaxb/message/AdaptedNodeIdentifier.java | 0 .../message/ConnectionRequestAdapter.java | 0 .../message/ConnectionResponseAdapter.java | 0 .../jaxb/message/DataFlowAdapter.java | 0 .../jaxb/message/HeartbeatAdapter.java | 0 .../jaxb/message/JaxbProtocolUtils.java | 0 .../jaxb/message/NodeBulletinsAdapter.java | 0 .../jaxb/message/NodeIdentifierAdapter.java | 0 .../protocol/jaxb/message/ObjectFactory.java | 0 .../message/ConnectionRequestMessage.java | 0 .../message/ConnectionResponseMessage.java | 0 .../ControllerStartupFailureMessage.java | 0 .../protocol/message/DisconnectMessage.java | 0 .../protocol/message/ExceptionMessage.java | 0 .../protocol/message/FlowRequestMessage.java | 0 .../protocol/message/FlowResponseMessage.java | 0 .../protocol/message/HeartbeatMessage.java | 0 .../message/MulticastProtocolMessage.java | 0 .../message/NodeBulletinsMessage.java | 0 .../cluster/protocol/message/PingMessage.java | 0 .../message/PrimaryRoleAssignmentMessage.java | 0 .../protocol/message/ProtocolMessage.java | 0 .../message/ReconnectionFailureMessage.java | 0 .../message/ReconnectionRequestMessage.java | 0 .../message/ReconnectionResponseMessage.java | 0 .../message/ServiceBroadcastMessage.java | 0 .../MulticastConfigurationFactoryBean.java | 0 .../ServerSocketConfigurationFactoryBean.java | 0 .../SocketConfigurationFactoryBean.java | 0 .../nifi-cluster-protocol-context.xml | 0 .../ClusterManagerProtocolSenderImplTest.java | 0 .../impl/ClusterServiceDiscoveryTest.java | 0 .../impl/ClusterServiceLocatorTest.java | 0 .../impl/ClusterServicesBroadcasterTest.java | 0 .../impl/MulticastProtocolListenerTest.java | 0 .../impl/NodeProtocolSenderImplTest.java | 0 .../impl/SocketProtocolListenerTest.java | 0 .../testutils/DelayedProtocolHandler.java | 0 .../testutils/ReflexiveProtocolHandler.java | 0 .../nifi-framework-cluster-web/.gitignore | 0 .../nifi-framework-cluster-web/pom.xml | 0 .../nifi/cluster/context/ClusterContext.java | 0 .../cluster/context/ClusterContextImpl.java | 0 .../context/ClusterContextThreadLocal.java | 0 .../nifi-framework-cluster/.gitignore | 0 .../nifi-framework-cluster/pom.xml | 0 .../cluster/client/MulticastTestClient.java | 0 .../org/apache/nifi/cluster/event/Event.java | 0 .../nifi/cluster/event/EventManager.java | 0 .../cluster/event/impl/EventManagerImpl.java | 0 .../cluster/firewall/ClusterNodeFirewall.java | 0 .../impl/FileBasedClusterNodeFirewall.java | 0 .../nifi/cluster/flow/ClusterDataFlow.java | 0 .../nifi/cluster/flow/DaoException.java | 0 .../apache/nifi/cluster/flow/DataFlowDao.java | 0 .../flow/DataFlowManagementService.java | 0 .../nifi/cluster/flow/PersistedFlowState.java | 0 .../nifi/cluster/flow/StaleFlowException.java | 0 .../cluster/flow/impl/DataFlowDaoImpl.java | 0 .../impl/DataFlowManagementServiceImpl.java | 0 .../nifi/cluster/manager/ClusterManager.java | 0 .../cluster/manager/HttpClusterManager.java | 0 .../manager/HttpRequestReplicator.java | 0 .../cluster/manager/HttpResponseMapper.java | 0 .../nifi/cluster/manager/NodeResponse.java | 0 .../exception/BlockedByFirewallException.java | 0 .../manager/exception/ClusterException.java | 0 ...ConnectingNodeMutableRequestException.java | 0 ...sconnectedNodeMutableRequestException.java | 0 .../IllegalClusterStateException.java | 0 .../IllegalNodeDeletionException.java | 0 .../IllegalNodeDisconnectionException.java | 0 .../IllegalNodeReconnectionException.java | 0 .../IneligiblePrimaryNodeException.java | 0 .../exception/MutableRequestException.java | 0 .../exception/NoConnectedNodesException.java | 0 .../NoResponseFromNodesException.java | 0 .../exception/NodeDisconnectionException.java | 0 .../exception/NodeReconnectionException.java | 0 .../PrimaryRoleAssignmentException.java | 0 .../SafeModeMutableRequestException.java | 0 .../exception/UnknownNodeException.java | 0 .../exception/UriConstructionException.java | 0 .../manager/impl/ClusteredEventAccess.java | 0 .../impl/ClusteredReportingContext.java | 0 .../impl/HttpRequestReplicatorImpl.java | 0 .../manager/impl/HttpResponseMapperImpl.java | 0 .../manager/impl/WebClusterManager.java | 0 .../org/apache/nifi/cluster/node/Node.java | 0 ...agerProtocolServiceLocatorFactoryBean.java | 0 ...leBasedClusterNodeFirewallFactoryBean.java | 0 .../spring/WebClusterManagerFactoryBean.java | 0 .../reporting/ClusteredReportingTaskNode.java | 0 .../nifi-cluster-manager-context.xml | 0 .../event/impl/EventManagerImplTest.java | 0 .../FileBasedClusterNodeFirewallTest.java | 0 .../DataFlowManagementServiceImplTest.java | 0 .../impl/HttpRequestReplicatorImplTest.java | 0 .../impl/HttpResponseMapperImplTest.java | 0 .../manager/impl/TestWebClusterManager.java | 0 .../manager/testutils/HttpRequest.java | 0 .../manager/testutils/HttpResponse.java | 0 .../manager/testutils/HttpResponseAction.java | 0 .../cluster/manager/testutils/HttpServer.java | 0 .../src/test/resources/logback-test.xml | 0 .../nifi/cluster/firewall/impl/empty.txt | 0 .../apache/nifi/cluster/firewall/impl/ips.txt | 0 .../nifi-framework-core-api/.gitignore | 0 .../nifi-framework-core-api/pom.xml | 0 .../nifi/cluster/protocol/DataFlow.java | 0 .../apache/nifi/connectable/Connectable.java | 0 .../nifi/connectable/ConnectableType.java | 0 .../apache/nifi/connectable/Connection.java | 0 .../org/apache/nifi/connectable/Funnel.java | 0 .../org/apache/nifi/connectable/Port.java | 0 .../org/apache/nifi/connectable/Position.java | 0 .../org/apache/nifi/connectable/Size.java | 0 .../AbstractConfiguredComponent.java | 0 .../apache/nifi/controller/AbstractPort.java | 0 .../nifi/controller/ConfiguredComponent.java | 0 .../nifi/controller/ContentAvailability.java | 0 .../org/apache/nifi/controller/Counter.java | 0 .../nifi/controller/EventBasedWorker.java | 0 .../apache/nifi/controller/Heartbeater.java | 0 .../nifi/controller/ProcessScheduler.java | 0 .../apache/nifi/controller/ProcessorNode.java | 0 .../nifi/controller/ReportingTaskNode.java | 0 .../controller/StandardFlowFileQueue.java | 0 .../nifi/controller/StandardFunnel.java | 0 .../controller/ValidationContextFactory.java | 0 .../apache/nifi/controller/WorkerQueue.java | 0 .../exception/CommunicationsException.java | 0 .../ComponentLifeCycleException.java | 0 ...ntrollerServiceAlreadyExistsException.java | 0 ...ntrollerServiceInstantiationException.java | 0 .../ProcessorInstantiationException.java | 0 .../apache/nifi/controller/label/Label.java | 0 .../ReportingTaskInstantiationException.java | 0 .../reporting/ReportingTaskProvider.java | 0 .../repository/ContentNotFoundException.java | 0 .../repository/CounterRepository.java | 0 .../controller/repository/FlowFileEvent.java | 0 .../repository/FlowFileEventRepository.java | 0 .../repository/RepositoryStatusReport.java | 0 .../service/ControllerServiceNode.java | 0 .../service/ControllerServiceProvider.java | 0 .../service/ControllerServiceReference.java | 0 .../service/ControllerServiceState.java | 0 .../apache/nifi/events/BulletinFactory.java | 0 .../events/BulletinProcessingStrategy.java | 0 .../apache/nifi/events/ComponentBulletin.java | 0 .../apache/nifi/events/SystemBulletin.java | 0 .../org/apache/nifi/groups/ProcessGroup.java | 0 .../nifi/groups/ProcessGroupCounts.java | 0 .../nifi/groups/RemoteProcessGroup.java | 0 .../RemoteProcessGroupPortDescriptor.java | 0 .../org/apache/nifi/logging/LogMessage.java | 0 .../org/apache/nifi/logging/LogObserver.java | 0 .../apache/nifi/logging/LogRepository.java | 0 .../nifi/logging/LogRepositoryFactory.java | 0 .../nifi/remote/PortAuthorizationResult.java | 0 .../nifi/remote/RemoteAuthorizationState.java | 0 .../apache/nifi/remote/RemoteGroupPort.java | 0 .../org/apache/nifi/remote/RootGroupPort.java | 0 .../nifi/remote/cluster/NodeInformant.java | 0 .../remote/exception/BadRequestException.java | 0 .../exception/NotAuthorizedException.java | 0 .../exception/RequestExpiredException.java | 0 .../nifi/remote/protocol/ServerProtocol.java | 0 .../nifi-framework-core/.gitignore | 0 .../nifi-framework-core/pom.xml | 0 .../apache/nifi/cluster/BulletinsPayload.java | 0 .../nifi/cluster/ConnectionException.java | 0 .../nifi/cluster/DisconnectionException.java | 0 .../apache/nifi/cluster/HeartbeatPayload.java | 0 .../apache/nifi/connectable/LocalPort.java | 0 .../nifi/connectable/StandardConnection.java | 0 .../controller/EventDrivenWorkerQueue.java | 0 .../controller/FileSystemSwapManager.java | 0 .../nifi/controller/FlowController.java | 0 .../nifi/controller/FlowFromDOMFactory.java | 0 .../FlowSerializationException.java | 0 .../nifi/controller/FlowSerializer.java | 0 .../FlowSynchronizationException.java | 0 .../nifi/controller/FlowSynchronizer.java | 0 .../nifi/controller/FlowUnmarshaller.java | 0 .../nifi/controller/SnippetManager.java | 0 .../nifi/controller/StandardCounter.java | 0 .../controller/StandardFlowSerializer.java | 0 .../nifi/controller/StandardFlowService.java | 0 .../controller/StandardFlowSynchronizer.java | 0 .../controller/StandardProcessorNode.java | 0 .../nifi/controller/StandardSnippet.java | 0 .../org/apache/nifi/controller/Template.java | 0 .../nifi/controller/TemplateManager.java | 0 .../UninheritableFlowException.java | 0 .../FlowFileConsumptionException.java | 0 .../ReportingTaskInstantiationException.java | 0 .../exception/ValidationException.java | 0 .../nifi/controller/label/StandardLabel.java | 0 .../reporting/AbstractReportingTaskNode.java | 0 .../reporting/StandardReportingContext.java | 0 ...tandardReportingInitializationContext.java | 0 .../reporting/StandardReportingTaskNode.java | 0 .../repository/BatchingSessionFactory.java | 0 .../repository/ConnectionSwapInfo.java | 0 .../repository/FileSystemRepository.java | 0 .../controller/repository/ProcessContext.java | 0 .../repository/ProvenanceEventEnricher.java | 0 .../repository/RepositoryPurgeException.java | 0 .../repository/RingBufferEventRepository.java | 0 .../repository/StandardCounterRepository.java | 0 .../repository/StandardFlowFileEvent.java | 0 .../repository/StandardFlowFileRecord.java | 0 .../repository/StandardProcessSession.java | 0 .../StandardProcessSessionFactory.java | 0 .../StandardProvenanceReporter.java | 0 .../repository/StandardRepositoryRecord.java | 0 .../StandardRepositoryStatusReport.java | 0 .../repository/VolatileContentRepository.java | 0 .../VolatileFlowFileRepository.java | 0 .../WriteAheadFlowFileRepository.java | 0 .../repository/claim/ContentDirection.java | 0 .../claim/StandardContentClaim.java | 0 .../claim/StandardContentClaimManager.java | 0 .../io/ArrayManagedOutputStream.java | 0 .../io/ByteCountingInputStream.java | 0 .../io/ByteCountingOutputStream.java | 0 .../io/DisableOnCloseInputStream.java | 0 .../io/DisableOnCloseOutputStream.java | 0 .../io/FlowFileAccessInputStream.java | 0 .../io/FlowFileAccessOutputStream.java | 0 .../repository/io/LimitedInputStream.java | 0 .../controller/repository/io/LongHolder.java | 0 .../repository/io/MemoryManager.java | 0 .../io/SyncOnCloseOutputStream.java | 0 .../scheduling/ConnectableProcessContext.java | 0 .../EventDrivenSchedulingAgent.java | 0 .../scheduling/ProcessContextFactory.java | 0 .../scheduling/QuartzSchedulingAgent.java | 0 .../controller/scheduling/ScheduleState.java | 0 .../scheduling/SchedulingAgent.java | 0 .../scheduling/StandardProcessScheduler.java | 0 .../TimerDrivenSchedulingAgent.java | 0 .../service/ControllerServiceLoader.java | 0 .../service/StandardConfigurationContext.java | 0 ...ontrollerServiceInitializationContext.java | 0 .../StandardControllerServiceNode.java | 0 .../StandardControllerServiceProvider.java | 0 .../StandardControllerServiceReference.java | 0 .../history/StandardMetricDescriptor.java | 0 .../status/history/StandardStatusHistory.java | 0 .../history/StandardStatusSnapshot.java | 0 .../status/history/StatusHistoryUtil.java | 0 .../VolatileComponentStatusRepository.java | 0 .../tasks/ContinuallyRunConnectableTask.java | 0 .../tasks/ContinuallyRunProcessorTask.java | 0 .../controller/tasks/ExpireFlowFiles.java | 0 .../tasks/ReportingTaskWrapper.java | 0 .../nifi/diagnostics/DiagnosticUtils.java | 0 .../nifi/diagnostics/GarbageCollection.java | 0 .../apache/nifi/diagnostics/StorageUsage.java | 0 .../nifi/diagnostics/SystemDiagnostics.java | 0 .../diagnostics/SystemDiagnosticsFactory.java | 0 .../nifi/encrypt/EncryptionException.java | 0 .../apache/nifi/encrypt/StringEncryptor.java | 0 .../org/apache/nifi/engine/FlowEngine.java | 0 .../NodeBulletinProcessingStrategy.java | 0 .../events/VolatileBulletinRepository.java | 0 .../events/network/CommunicationsFailure.java | 0 .../nifi/events/network/NetworkTransfer.java | 0 .../fingerprint/FingerprintException.java | 0 .../nifi/fingerprint/FingerprintFactory.java | 0 .../nifi/groups/StandardProcessGroup.java | 0 .../org/apache/nifi/jaxb/AdaptedBulletin.java | 0 .../org/apache/nifi/jaxb/AdaptedCounter.java | 0 .../org/apache/nifi/jaxb/BulletinAdapter.java | 0 .../org/apache/nifi/jaxb/CounterAdapter.java | 0 .../org/apache/nifi/lifecycle/LifeCycle.java | 0 .../nifi/lifecycle/LifeCycleException.java | 0 .../lifecycle/LifeCycleStartException.java | 0 .../lifecycle/LifeCycleStopException.java | 0 .../logging/ControllerServiceLogObserver.java | 0 .../nifi/logging/ProcessorLogObserver.java | 0 .../logging/ReportingTaskLogObserver.java | 0 .../repository/StandardLogRepository.java | 0 .../persistence/FlowConfigurationDAO.java | 0 .../StandardSnippetDeserializer.java | 0 .../StandardSnippetSerializer.java | 0 .../StandardXMLFlowConfigurationDAO.java | 0 .../persistence/TemplateDeserializer.java | 0 .../nifi/persistence/TemplateSerializer.java | 0 .../nifi/processor/SimpleProcessLogger.java | 0 .../processor/StandardProcessContext.java | 0 ...tandardProcessorInitializationContext.java | 0 .../nifi/processor/StandardPropertyValue.java | 0 .../processor/StandardSchedulingContext.java | 0 .../processor/StandardValidationContext.java | 0 .../StandardValidationContextFactory.java | 0 .../apache/nifi/remote/RemoteNiFiUtils.java | 0 .../remote/StandardRemoteProcessGroup.java | 0 ...ndardRemoteProcessGroupPortDescriptor.java | 0 .../org/apache/nifi/services/FlowService.java | 0 .../spring/FlowControllerFactoryBean.java | 0 .../spring/RingBufferEventRepositoryBean.java | 0 .../StandardFlowServiceFactoryBean.java | 0 .../nifi/util/ComponentStatusReport.java | 0 .../org/apache/nifi/util/Connectables.java | 0 .../java/org/apache/nifi/util/DomUtils.java | 0 .../org/apache/nifi/util/ReflectionUtils.java | 0 .../org/apache/nifi/util/SnippetUtils.java | 0 .../src/main/resources/FlowConfiguration.xsd | 0 ...fi.controller.repository.ContentRepository | 0 ...i.controller.repository.FlowFileRepository | 0 ....controller.repository.FlowFileSwapManager | 0 ...r.status.history.ComponentStatusRepository | 0 .../src/main/resources/nifi-context.xml | 0 .../nifi/cluster/HeartbeatPayloadTest.java | 0 .../controller/StandardFlowServiceTest.java | 0 .../controller/TestFileSystemSwapManager.java | 0 .../repository/TestFileSystemRepository.java | 0 .../TestRingBufferEventRepository.java | 0 .../TestStandardProcessSession.java | 0 .../TestStandardProvenanceReporter.java | 0 .../TestVolatileContentRepository.java | 0 .../TestWriteAheadFlowFileRepository.java | 0 .../repository/io/TestLimitedInputStream.java | 0 .../controller/repository/util/DiskUtils.java | 0 .../TestStandardProcessScheduler.java | 0 ...StandardControllerServiceProviderTest.java | 0 ...TestStandardControllerServiceProvider.java | 0 .../service/mock/DummyProcessor.java | 0 .../controller/service/mock/ServiceA.java | 0 .../controller/service/mock/ServiceB.java | 0 .../service/util/TestControllerService.java | 0 .../fingerprint/FingerprintFactoryTest.java | 0 .../processor/TestStandardPropertyValue.java | 0 .../DataGeneratorTestProcessor.java | 0 .../StubAttributeLoggerProcessor.java | 0 .../StubTerminationFileProcessor.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../src/test/resources/conf/0bytes.xml | 0 .../test/resources/conf/all-flow-corrupt.xml | 0 .../resources/conf/all-flow-inheritable.xml | 0 .../resources/conf/all-flow-uninheritable.xml | 0 .../src/test/resources/conf/all-flow.xml | 0 .../src/test/resources/conf/nifi.properties | 0 .../test/resources/conf/only-termination.xml | 0 .../src/test/resources/conf/remote-flow.xml | 0 .../src/test/resources/conf/standard-flow.xml | 0 .../src/test/resources/conf/taskConfig.xml | 0 .../test/resources/conf/termination-only.xml | 0 .../src/test/resources/hello.txt | 0 .../src/test/resources/logback-test.xml | 0 .../resources/nifi-with-remote.properties | 0 .../src/test/resources/nifi.properties | 0 .../resources/nifi/fingerprint/flow1a.xml | 0 .../resources/nifi/fingerprint/flow1b.xml | 0 .../test/resources/nifi/fingerprint/flow2.xml | 0 .../src/test/resources/old-swap-file.swap | Bin .../nifi-framework/nifi-nar-utils/.gitignore | 0 .../nifi-framework/nifi-nar-utils/pom.xml | 0 .../org/apache/nifi/nar/ExtensionManager.java | 0 .../org/apache/nifi/nar/ExtensionMapping.java | 0 .../org/apache/nifi/nar/NarClassLoader.java | 0 .../org/apache/nifi/nar/NarClassLoaders.java | 0 .../org/apache/nifi/nar/NarCloseable.java | 0 .../nifi/nar/NarThreadContextClassLoader.java | 0 .../java/org/apache/nifi/nar/NarUnpacker.java | 0 .../java/org/apache/nifi/util/FileUtils.java | 0 .../org/apache/nifi/nar/NarUnpackerTest.java | 0 .../NarUnpacker/conf/nifi.properties | 0 .../resources/NarUnpacker/lib/dummy-one.nar | Bin .../NarUnpacker/lib/nifi-framework-nar.nar | Bin .../resources/NarUnpacker/lib2/dummy-two.nar | Bin .../nifi-framework/nifi-resources/LICENSE | 0 .../nifi-framework/nifi-resources/NOTICE | 0 .../nifi-framework/nifi-resources/pom.xml | 0 .../src/main/assembly/dependencies.xml | 0 .../src/main/resources/bin/dump-nifi.bat | 0 .../src/main/resources/bin/nifi.sh | 0 .../src/main/resources/bin/run-nifi.bat | 0 .../src/main/resources/bin/status-nifi.bat | 0 .../resources/conf/authority-providers.xml | 0 .../main/resources/conf/authorized-users.xml | 0 .../src/main/resources/conf/bootstrap.conf | 0 .../src/main/resources/conf/logback.xml | 0 .../src/main/resources/conf/nifi.properties | 0 .../nifi-framework/nifi-runtime/.gitignore | 0 .../nifi-framework/nifi-runtime/pom.xml | 0 .../org/apache/nifi/BootstrapListener.java | 0 .../src/main/java/org/apache/nifi/NiFi.java | 0 .../main/java/org/apache/nifi/NiFiServer.java | 0 .../apache/nifi/util/LimitingInputStream.java | 0 .../nifi-framework/nifi-security/.gitignore | 0 .../nifi-framework/nifi-security/pom.xml | 0 .../util/SslContextCreationException.java | 0 .../security/util/SslContextFactory.java | 0 .../framework/security/util/SslException.java | 0 .../security/util/SslServerSocketFactory.java | 0 ...lServerSocketFactoryCreationException.java | 0 .../security/util/SslSocketFactory.java | 0 .../SslSocketFactoryCreationException.java | 0 .../security/util/SslContextFactoryTest.java | 0 .../src/test/resources/localhost-ks.jks | Bin .../src/test/resources/localhost-ts.jks | Bin .../src/test/resources/log4j.properties | 0 .../nifi-site-to-site/.gitignore | 0 .../nifi-framework/nifi-site-to-site/pom.xml | 0 .../util/RemoteProcessGroupUtils.java | 0 .../nifi/remote/RemoteResourceFactory.java | 0 .../nifi/remote/RemoteResourceManager.java | 0 .../nifi/remote/RemoteSiteListener.java | 0 .../nifi/remote/SocketRemoteSiteListener.java | 0 .../nifi/remote/StandardRemoteGroupPort.java | 0 .../nifi/remote/StandardRootGroupPort.java | 0 .../exception/UnsupportedCodecException.java | 0 .../socket/ClusterManagerServerProtocol.java | 0 .../socket/SocketFlowFileServerProtocol.java | 0 ...org.apache.nifi.remote.codec.FlowFileCodec | 0 ...apache.nifi.remote.protocol.ClientProtocol | 0 ...apache.nifi.remote.protocol.ServerProtocol | 0 .../TestStandardSiteToSiteProtocol.java | 0 .../io/socket/TestSocketChannelStreams.java | 0 .../io/socket/ssl/TestSSLSocketChannel.java | 0 .../resources/dummy-certs/localhost-ks.jks | Bin .../resources/dummy-certs/localhost-ts.jks | Bin .../src/test/resources/logback-test.xml | 0 .../src/test/resources/nifi.properties | 0 .../nifi-user-actions/.gitignore | 0 .../nifi-framework/nifi-user-actions/pom.xml | 0 .../java/org/apache/nifi/action/Action.java | 0 .../org/apache/nifi/action/Component.java | 0 .../org/apache/nifi/action/Operation.java | 0 .../component/details/ComponentDetails.java | 0 .../component/details/ExtensionDetails.java | 0 .../details/RemoteProcessGroupDetails.java | 0 .../nifi/action/details/ActionDetails.java | 0 .../nifi/action/details/ConfigureDetails.java | 0 .../nifi/action/details/ConnectDetails.java | 0 .../nifi/action/details/MoveDetails.java | 0 .../nifi/action/details/PurgeDetails.java | 0 .../nifi-custom-ui-utilities/.gitignore | 0 .../nifi-web/nifi-custom-ui-utilities/pom.xml | 0 ...ttpServletConfigurationRequestContext.java | 0 .../nifi/web/HttpServletRequestContext.java | 0 .../web/HttpServletRequestContextConfig.java | 0 .../nifi-web/nifi-jetty/.gitignore | 0 .../nifi-web/nifi-jetty/pom.xml | 0 .../src/main/assembly/distribution.xml | 0 .../apache/nifi/web/server/JettyServer.java | 0 .../server/ServerConfigurationException.java | 0 .../org/apache/nifi/web/webdefault.xml | 0 .../nifi-web/nifi-ui-extension/pom.xml | 0 .../apache/nifi/ui/extension/UiExtension.java | 0 .../nifi/ui/extension/UiExtensionMapping.java | 0 .../nifi-web/nifi-web-api/.gitignore | 0 .../nifi-web/nifi-web-api/pom.xml | 0 .../org/apache/nifi/aop/MethodProfiler.java | 0 .../apache/nifi/audit/ControllerAuditor.java | 0 .../nifi/audit/ControllerServiceAuditor.java | 0 .../org/apache/nifi/audit/FunnelAuditor.java | 0 .../org/apache/nifi/audit/NiFiAuditor.java | 0 .../org/apache/nifi/audit/PortAuditor.java | 0 .../nifi/audit/ProcessGroupAuditor.java | 0 .../apache/nifi/audit/ProcessorAuditor.java | 0 .../nifi/audit/RelationshipAuditor.java | 0 .../nifi/audit/RemoteProcessGroupAuditor.java | 0 .../nifi/audit/ReportingTaskAuditor.java | 0 .../org/apache/nifi/audit/SnippetAuditor.java | 0 .../nifi/web/ClusterRequestException.java | 0 ...llegalClusterResourceRequestException.java | 0 .../apache/nifi/web/NiFiCoreException.java | 0 .../apache/nifi/web/NiFiServiceFacade.java | 0 .../nifi/web/NiFiServiceFacadeLock.java | 0 .../nifi/web/StandardNiFiContentAccess.java | 0 .../nifi/web/StandardNiFiServiceFacade.java | 0 .../StandardNiFiWebConfigurationContext.java | 0 .../nifi/web/StandardNiFiWebContext.java | 0 .../nifi/web/api/ApplicationResource.java | 0 .../nifi/web/api/BulletinBoardResource.java | 0 .../apache/nifi/web/api/ClusterResource.java | 0 .../nifi/web/api/ConnectionResource.java | 0 .../nifi/web/api/ControllerResource.java | 0 .../web/api/ControllerServiceResource.java | 0 .../apache/nifi/web/api/FunnelResource.java | 0 .../apache/nifi/web/api/HistoryResource.java | 0 .../nifi/web/api/InputPortResource.java | 0 .../apache/nifi/web/api/LabelResource.java | 0 .../org/apache/nifi/web/api/NodeResource.java | 0 .../nifi/web/api/OutputPortResource.java | 0 .../nifi/web/api/ProcessGroupResource.java | 0 .../nifi/web/api/ProcessorResource.java | 0 .../nifi/web/api/ProvenanceResource.java | 0 .../web/api/RemoteProcessGroupResource.java | 0 .../nifi/web/api/ReportingTaskResource.java | 0 .../apache/nifi/web/api/SnippetResource.java | 0 .../web/api/SystemDiagnosticsResource.java | 0 .../apache/nifi/web/api/TemplateResource.java | 0 .../nifi/web/api/UserGroupResource.java | 0 .../org/apache/nifi/web/api/UserResource.java | 0 .../config/AccessDeniedExceptionMapper.java | 0 .../AccountNotFoundExceptionMapper.java | 0 .../config/AdministrationExceptionMapper.java | 0 ...ionCredentialsNotFoundExceptionMapper.java | 0 .../api/config/ClusterExceptionMapper.java | 0 ...tingNodeMutableRequestExceptionMapper.java | 0 ...ctedNodeMutableRequestExceptionMapper.java | 0 .../IllegalArgumentExceptionMapper.java | 0 ...ClusterResourceRequestExceptionMapper.java | 0 .../IllegalClusterStateExceptionMapper.java | 0 .../IllegalNodeDeletionExceptionMapper.java | 0 ...legalNodeDisconnectionExceptionMapper.java | 0 ...llegalNodeReconnectionExceptionMapper.java | 0 .../config/IllegalStateExceptionMapper.java | 0 .../IneligiblePrimaryNodeExceptionMapper.java | 0 .../InvalidRevisionExceptionMapper.java | 0 .../config/JsonMappingExceptionMapper.java | 0 .../api/config/JsonParseExceptionMapper.java | 0 .../config/MutableRequestExceptionMapper.java | 0 .../api/config/NiFiCoreExceptionMapper.java | 0 .../NoConnectedNodesExceptionMapper.java | 0 .../NoResponseFromNodesExceptionMapper.java | 0 .../NodeDisconnectionExceptionMapper.java | 0 .../NodeReconnectionExceptionMapper.java | 0 .../api/config/NotFoundExceptionMapper.java | 0 .../PrimaryRoleAssignmentExceptionMapper.java | 0 .../ResourceNotFoundExceptionMapper.java | 0 ...SafeModeMutableRequestExceptionMapper.java | 0 .../nifi/web/api/config/ThrowableMapper.java | 0 .../config/UnknownNodeExceptionMapper.java | 0 .../api/config/ValidationExceptionMapper.java | 0 .../config/WebApplicationExceptionMapper.java | 0 .../apache/nifi/web/api/dto/DtoFactory.java | 0 .../BulletinBoardPatternParameter.java | 0 .../web/api/request/ClientIdParameter.java | 0 .../api/request/ConnectableTypeParameter.java | 0 .../web/api/request/DateTimeParameter.java | 0 .../nifi/web/api/request/DoubleParameter.java | 0 .../web/api/request/IntegerParameter.java | 0 .../nifi/web/api/request/LongParameter.java | 0 .../ApplicationStartupContextListener.java | 0 .../nifi/web/controller/ControllerFacade.java | 0 .../web/controller/StandardSearchContext.java | 0 .../apache/nifi/web/dao/ConnectionDAO.java | 0 .../nifi/web/dao/ControllerServiceDAO.java | 0 .../org/apache/nifi/web/dao/FunnelDAO.java | 0 .../org/apache/nifi/web/dao/LabelDAO.java | 0 .../java/org/apache/nifi/web/dao/PortDAO.java | 0 .../apache/nifi/web/dao/ProcessGroupDAO.java | 0 .../org/apache/nifi/web/dao/ProcessorDAO.java | 0 .../nifi/web/dao/RemoteProcessGroupDAO.java | 0 .../apache/nifi/web/dao/ReportingTaskDAO.java | 0 .../org/apache/nifi/web/dao/SnippetDAO.java | 0 .../org/apache/nifi/web/dao/TemplateDAO.java | 0 .../nifi/web/dao/impl/ComponentDAO.java | 0 .../web/dao/impl/StandardConnectionDAO.java | 0 .../impl/StandardControllerServiceDAO.java | 0 .../nifi/web/dao/impl/StandardFunnelDAO.java | 0 .../web/dao/impl/StandardInputPortDAO.java | 0 .../nifi/web/dao/impl/StandardLabelDAO.java | 0 .../web/dao/impl/StandardOutputPortDAO.java | 0 .../web/dao/impl/StandardProcessGroupDAO.java | 0 .../web/dao/impl/StandardProcessorDAO.java | 0 .../impl/StandardRemoteProcessGroupDAO.java | 0 .../dao/impl/StandardReportingTaskDAO.java | 0 .../nifi/web/dao/impl/StandardSnippetDAO.java | 0 .../web/dao/impl/StandardTemplateDAO.java | 0 .../nifi/web/filter/NodeRequestFilter.java | 0 .../apache/nifi/web/filter/RequestLogger.java | 0 .../nifi/web/filter/ThreadLocalFilter.java | 0 .../apache/nifi/web/filter/TimerFilter.java | 0 .../ControllerServiceProviderFactoryBean.java | 0 .../OptimisticLockingManagerFactoryBean.java | 0 .../ReportingTaskProviderFactoryBean.java | 0 .../apache/nifi/web/util/Availability.java | 0 .../nifi/web/util/ClientResponseUtils.java | 0 .../apache/nifi/web/util/SnippetUtils.java | 0 .../src/main/resources}/images/bgNifiLogo.png | Bin .../src/main/resources}/images/nifi16.ico | Bin .../main/resources/nifi-web-api-context.xml | 0 .../src/main/resources/templates/endpoint.hbs | 0 .../src/main/resources/templates/example.hbs | 0 .../main/resources/templates/index.html.hbs | 0 .../main/resources/templates/operation.hbs | 0 .../src/main/resources/templates/type.hbs | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../nifi/integration/NiFiWebApiTest.java | 0 .../accesscontrol/AdminAccessControlTest.java | 0 .../accesscontrol/DfmAccessControlTest.java | 0 .../ReadOnlyAccessControlTest.java | 0 .../util/NiFiTestAuthorizationProvider.java | 0 .../nifi/integration/util/NiFiTestServer.java | 0 .../nifi/integration/util/NiFiTestUser.java | 0 .../integration/util/SourceTestProcessor.java | 0 .../util/TerminationTestProcessor.java | 0 .../integration/util/TestPrioritizer.java | 0 ...pache.nifi.authorization.AuthorityProvider | 0 ...g.apache.nifi.flowfile.FlowFilePrioritizer | 0 .../org.apache.nifi.processor.Processor | 0 .../access-control/authority-providers.xml | 0 .../access-control/controller-services.xml | 0 .../resources/access-control/localhost-ks.jks | Bin .../resources/access-control/localhost-ts.jks | Bin .../resources/access-control/nifi.properties | 0 .../access-control/reporting-tasks.xml | 0 .../src/test/resources/logback-test.xml | 0 .../nifi-web/nifi-web-content-access/pom.xml | 0 .../org/apache/nifi/web/ContentAccess.java | 0 .../nifi/web/ContentRequestContext.java | 0 .../apache/nifi/web/DownloadableContent.java | 0 .../nifi-web-content-viewer/.gitignore | 0 .../nifi-web/nifi-web-content-viewer/pom.xml | 0 .../nifi/web/ContentViewerController.java | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../src/main/webapp/WEB-INF/jsp/footer.jsp | 0 .../src/main/webapp/WEB-INF/jsp/header.jsp | 0 .../src/main/webapp/WEB-INF/jsp/hexview.jsp | 0 .../src/main/webapp/WEB-INF/jsp/no-viewer.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/main/webapp/css/main.css | 0 .../webapp/js/hexview/hexview.default.css | 0 .../src/main/webapp/js/hexview/hexview.js | 0 .../nifi-web/nifi-web-docs/.gitignore | 0 .../nifi-web/nifi-web-docs/pom.xml | 0 .../web/docs/DocumentationController.java | 0 .../src/main/resources/META-INF/NOTICE | 0 .../main/webapp/WEB-INF/jsp/documentation.jsp | 0 .../WEB-INF/jsp/no-documentation-found.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/main/webapp/css/component-usage.css | 0 .../src/main/webapp/css/main.css | 0 .../src/main/webapp/images/bgBannerFoot.png | Bin .../src/main/webapp/images/bgHeader.png | Bin .../src/main/webapp/images/bgTableHeader.png | Bin .../src/main/webapp/js/application.js | 0 .../nifi-web/nifi-web-error/.gitignore | 0 .../nifi-web/nifi-web-error/pom.xml | 0 .../nifi/web/filter/CatchAllFilter.java | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../nifi-web-error/src/main/webapp/index.jsp | 0 .../nifi-web-optimistic-locking/.gitignore | 0 .../nifi-web-optimistic-locking/pom.xml | 0 .../apache/nifi/web/ConfigurationRequest.java | 0 .../apache/nifi/web/ConfigurationResult.java | 0 .../nifi/web/ConfigurationSnapshot.java | 0 .../org/apache/nifi/web/FlowModification.java | 0 .../nifi/web/OptimisticLockingManager.java | 0 .../web/StandardOptimisticLockingManager.java | 0 .../org/apache/nifi/web/UpdateRevision.java | 0 .../nifi-web/nifi-web-security/.gitignore | 0 .../nifi-web/nifi-web-security/pom.xml | 0 .../org/apache/nifi/web/security/DnUtils.java | 0 .../web/security/UntrustedProxyException.java | 0 .../anonymous/NiFiAnonymousUserFilter.java | 0 .../NiFiAuthenticationEntryPoint.java | 0 .../NiFiAuthorizationService.java | 0 .../NodeAuthorizedUserFilter.java | 0 .../web/security/user/NiFiUserDetails.java | 0 .../nifi/web/security/user/NiFiUserUtils.java | 0 .../x509/SubjectDnX509PrincipalExtractor.java | 0 .../x509/X509AuthenticationFilter.java | 0 .../x509/X509CertificateExtractor.java | 0 .../x509/ocsp/CertificateStatusException.java | 0 .../x509/ocsp/OcspCertificateValidator.java | 0 .../web/security/x509/ocsp/OcspRequest.java | 0 .../web/security/x509/ocsp/OcspStatus.java | 0 .../resources/nifi-web-security-context.xml | 0 .../NiFiAuthorizationServiceTest.java | 0 .../nifi-web/nifi-web-ui/.gitignore | 0 .../nifi-web/nifi-web-ui/pom.xml | 0 .../apache/nifi/web/filter/IeEdgeHeader.java | 0 .../apache/nifi/web/servlet/DownloadSvg.java | 0 .../src/main/resources/META-INF/LICENSE | 0 .../filters/bulletin-board-min.properties | 0 .../filters/bulletin-board.properties | 0 .../resources/filters/canvas-min.properties | 0 .../main/resources/filters/canvas.properties | 0 .../resources/filters/cluster-min.properties | 0 .../main/resources/filters/cluster.properties | 0 .../resources/filters/counters-min.properties | 0 .../resources/filters/counters.properties | 0 .../resources/filters/history-min.properties | 0 .../main/resources/filters/history.properties | 0 .../filters/provenance-min.properties | 0 .../resources/filters/provenance.properties | 0 .../resources/filters/summary-min.properties | 0 .../main/resources/filters/summary.properties | 0 .../filters/templates-min.properties | 0 .../resources/filters/templates.properties | 0 .../resources/filters/users-min.properties | 0 .../main/resources/filters/users.properties | 0 .../webapp/WEB-INF/pages/bulletin-board.jsp | 0 .../src/main/webapp/WEB-INF/pages/canvas.jsp | 0 .../src/main/webapp/WEB-INF/pages/cluster.jsp | 0 .../main/webapp/WEB-INF/pages/counters.jsp | 0 .../src/main/webapp/WEB-INF/pages/history.jsp | 0 .../webapp/WEB-INF/pages/message-page.jsp | 0 .../main/webapp/WEB-INF/pages/provenance.jsp | 0 .../src/main/webapp/WEB-INF/pages/summary.jsp | 0 .../main/webapp/WEB-INF/pages/templates.jsp | 0 .../src/main/webapp/WEB-INF/pages/users.jsp | 0 .../webapp/WEB-INF/partials/banners-main.jsp | 0 .../WEB-INF/partials/banners-utility.jsp | 0 .../bulletin-board/bulletin-board-content.jsp | 0 .../WEB-INF/partials/canvas/about-dialog.jsp | 0 .../WEB-INF/partials/canvas/canvas-header.jsp | 0 .../canvas/connection-configuration.jsp | 0 .../partials/canvas/connections-dialog.jsp | 0 .../controller-service-configuration.jsp | 0 .../disable-controller-service-dialog.jsp | 0 .../enable-controller-service-dialog.jsp | 0 .../partials/canvas/fill-color-dialog.jsp | 0 .../WEB-INF/partials/canvas/flow-status.jsp | 0 .../canvas/instantiate-template-dialog.jsp | 0 .../partials/canvas/label-configuration.jsp | 0 .../WEB-INF/partials/canvas/navigation.jsp | 0 .../canvas/new-controller-service-dialog.jsp | 0 .../partials/canvas/new-port-dialog.jsp | 0 .../canvas/new-process-group-dialog.jsp | 0 .../partials/canvas/new-processor-dialog.jsp | 0 .../new-remote-process-group-dialog.jsp | 0 .../canvas/new-reporting-task-dialog.jsp | 0 .../partials/canvas/new-template-dialog.jsp | 0 .../partials/canvas/port-configuration.jsp | 0 .../WEB-INF/partials/canvas/port-details.jsp | 0 .../canvas/process-group-configuration.jsp | 0 .../partials/canvas/process-group-details.jsp | 0 .../canvas/processor-configuration.jsp | 0 .../WEB-INF/partials/canvas/registration.jsp | 0 .../canvas/remote-port-configuration.jsp | 0 .../remote-process-group-configuration.jsp | 0 .../canvas/remote-process-group-details.jsp | 0 .../canvas/remote-process-group-ports.jsp | 0 .../canvas/reporting-task-configuration.jsp | 0 .../canvas/secure-port-configuration.jsp | 0 .../partials/canvas/secure-port-details.jsp | 0 .../partials/canvas/settings-content.jsp | 0 .../webapp/WEB-INF/partials/canvas/shell.jsp | 0 .../partials/cluster/cluster-content.jsp | 0 .../partials/cluster/node-details-dialog.jsp | 0 .../WEB-INF/partials/connection-details.jsp | 0 .../partials/counters/counters-content.jsp | 0 .../history/action-details-dialog.jsp | 0 .../partials/history/history-content.jsp | 0 .../history/history-filter-dialog.jsp | 0 .../partials/history/history-purge-dialog.jsp | 0 .../webapp/WEB-INF/partials/message-pane.jsp | 0 .../webapp/WEB-INF/partials/ok-dialog.jsp | 0 .../WEB-INF/partials/processor-details.jsp | 0 .../provenance/lineage-query-dialog.jsp | 0 .../provenance/provenance-content.jsp | 0 .../provenance-event-details-dialog.jsp | 0 .../provenance/provenance-query-dialog.jsp | 0 .../provenance/provenance-search-dialog.jsp | 0 .../partials/status-history-dialog.jsp | 0 .../cluster-connection-summary-dialog.jsp | 0 .../cluster-input-port-summary-dialog.jsp | 0 .../cluster-output-port-summary-dialog.jsp | 0 .../cluster-process-group-summary-dialog.jsp | 0 .../cluster-processor-summary-dialog.jsp | 0 ...er-remote-process-group-summary-dialog.jsp | 0 .../partials/summary/summary-content.jsp | 0 .../summary/system-diagnostics-dialog.jsp | 0 .../summary/view-single-node-dialog.jsp | 0 .../partials/templates/templates-content.jsp | 0 .../partials/users/group-revoke-dialog.jsp | 0 .../partials/users/group-roles-dialog.jsp | 0 .../partials/users/user-delete-dialog.jsp | 0 .../partials/users/user-details-dialog.jsp | 0 .../partials/users/user-group-dialog.jsp | 0 .../partials/users/user-revoke-dialog.jsp | 0 .../partials/users/user-roles-dialog.jsp | 0 .../WEB-INF/partials/users/users-content.jsp | 0 .../webapp/WEB-INF/partials/yes-no-dialog.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../nifi-web-ui/src/main/webapp/css/about.css | 0 .../src/main/webapp/css/banner.css | 0 .../src/main/webapp/css/bulletin-board.css | 0 .../src/main/webapp/css/canvas.css | 0 .../src/main/webapp/css/cluster.css | 0 .../webapp/css/connection-configuration.css | 0 .../main/webapp/css/connection-details.css | 0 .../main/webapp/css/controller-service.css | 0 .../src/main/webapp/css/counters.css | 0 .../src/main/webapp/css/dialog.css | 0 .../src/main/webapp/css/flow-status.css | 0 .../nifi-web-ui/src/main/webapp/css/graph.css | 0 .../src/main/webapp/css/header.css | 0 .../src/main/webapp/css/history.css | 0 .../main/webapp/css/label-configuration.css | 0 .../nifi-web-ui/src/main/webapp/css/main.css | 0 .../src/main/webapp/css/message-page.css | 0 .../src/main/webapp/css/message-pane.css | 0 .../src/main/webapp/css/navigation.css | 0 .../css/new-controller-service-dialog.css | 0 .../main/webapp/css/new-processor-dialog.css | 0 .../webapp/css/new-reporting-task-dialog.css | 0 .../main/webapp/css/port-configuration.css | 0 .../src/main/webapp/css/port-details.css | 0 .../css/process-group-configuration.css | 0 .../main/webapp/css/process-group-details.css | 0 .../webapp/css/processor-configuration.css | 0 .../src/main/webapp/css/processor-details.css | 0 .../src/main/webapp/css/provenance.css | 0 .../src/main/webapp/css/registration.css | 0 .../remote-process-group-configuration.css | 0 .../src/main/webapp/css/reporting-task.css | 0 .../nifi-web-ui/src/main/webapp/css/reset.css | 0 .../src/main/webapp/css/settings.css | 0 .../nifi-web-ui/src/main/webapp/css/shell.css | 0 .../src/main/webapp/css/status-history.css | 0 .../src/main/webapp/css/summary.css | 0 .../src/main/webapp/css/templates.css | 0 .../nifi-web-ui/src/main/webapp/css/users.css | 0 .../src/main/webapp/images/addConnect.png | Bin .../src/main/webapp/images/bg-error.png | Bin .../src/main/webapp/images/bgBannerFoot.png | Bin .../src/main/webapp/images/bgBannerHead.png | Bin .../src/main/webapp/images/bgBreadcrumbs.png | Bin .../src/main/webapp/images/bgButton.png | Bin .../src/main/webapp/images/bgButtonOver.png | Bin .../main/webapp/images/bgButtonSelected.png | Bin .../webapp/images/bgButtonSelectedOver.png | Bin .../src/main/webapp/images/bgContextMenu.png | Bin .../main/webapp/images/bgControlsInset.png | Bin .../src/main/webapp/images/bgHeader.png | Bin .../src/main/webapp/images/bgInputText.png | Bin .../src/main/webapp}/images/bgNifiLogo.png | Bin .../src/main/webapp/images/bgNifiToolbar.png | Bin .../main/webapp/images/bgNifiToolbarEdge.png | Bin .../src/main/webapp/images/bgOutline.png | Bin .../src/main/webapp/images/bgPanCenter.png | Bin .../src/main/webapp/images/bgPanZoom.png | Bin .../images/bgProcessGroupDetailsArea.png | Bin .../webapp/images/bgProcessorStatArea.png | Bin .../bgRemoteProcessGroupDetailsArea.png | Bin .../src/main/webapp/images/bgSearchInput.png | Bin .../src/main/webapp/images/bgShellClose.png | Bin .../src/main/webapp/images/bgStatusPanel.png | Bin .../src/main/webapp/images/bgTabContainer.png | Bin .../src/main/webapp/images/bgTableHeader.png | Bin .../main/webapp/images/bgToolbarBtnBorder.png | Bin .../src/main/webapp/images/blueBtnBg-over.jpg | Bin .../src/main/webapp/images/blueBtnBg.jpg | Bin .../src/main/webapp/images/buttonColor.png | Bin .../src/main/webapp/images/buttonCopy.png | Bin .../src/main/webapp/images/buttonDelete.png | Bin .../src/main/webapp/images/buttonDisable.png | Bin .../src/main/webapp/images/buttonEnable.png | Bin .../src/main/webapp/images/buttonGroup.png | Bin .../src/main/webapp/images/buttonOutline.png | Bin .../src/main/webapp/images/buttonPanDown.png | Bin .../src/main/webapp/images/buttonPanLeft.png | Bin .../src/main/webapp/images/buttonPanRight.png | Bin .../src/main/webapp/images/buttonPanUp.png | Bin .../src/main/webapp/images/buttonPaste.png | Bin .../src/main/webapp/images/buttonRefresh.png | Bin .../src/main/webapp/images/buttonRun.png | Bin .../src/main/webapp/images/buttonStop.png | Bin .../src/main/webapp/images/buttonTemplate.png | Bin .../src/main/webapp/images/buttonZoom100.png | Bin .../src/main/webapp/images/buttonZoomFit.png | Bin .../src/main/webapp/images/buttonZoomIn.png | Bin .../src/main/webapp/images/buttonZoomOut.png | Bin .../src/main/webapp/images/cluster.png | Bin .../src/main/webapp/images/grayBtnBg-over.jpg | Bin .../src/main/webapp/images/grayBtnBg.jpg | Bin .../src/main/webapp/images/grid.gif | Bin .../src/main/webapp/images/headerTabBg.gif | Bin .../src/main/webapp/images/iconAdminUser.png | Bin .../src/main/webapp/images/iconAlert.png | Bin .../main/webapp/images/iconAlertDialog.png | Bin .../main/webapp/images/iconAutoRefresh.png | Bin .../src/main/webapp/images/iconBulletin.png | Bin .../main/webapp/images/iconBulletinBoard.png | Bin .../src/main/webapp/images/iconCenterView.png | Bin .../src/main/webapp/images/iconChart.png | Bin .../src/main/webapp/images/iconClose.png | Bin .../src/main/webapp/images/iconCluster.png | Bin .../main/webapp/images/iconClusterSmall.png | Bin .../webapp/images/iconCollapseChildren.png | Bin .../webapp/images/iconCollapseParents.png | Bin .../src/main/webapp/images/iconColor.png | Bin .../src/main/webapp/images/iconCommit.png | Bin .../src/main/webapp/images/iconConfigure.png | Bin .../src/main/webapp/images/iconConnect.png | Bin .../src/main/webapp/images/iconConnection.png | Bin .../src/main/webapp/images/iconCopy.png | Bin .../src/main/webapp/images/iconCounter.png | Bin .../src/main/webapp/images/iconDelete.png | Bin .../src/main/webapp/images/iconDetails.png | Bin .../src/main/webapp/images/iconDisable.png | Bin .../src/main/webapp/images/iconDisconnect.png | Bin .../src/main/webapp/images/iconEdit.png | Bin .../src/main/webapp/images/iconEditButton.png | Bin .../src/main/webapp/images/iconEnable.png | Bin .../main/webapp/images/iconExpandChildren.png | Bin .../main/webapp/images/iconExpandParents.png | Bin .../src/main/webapp/images/iconExport.png | Bin .../main/webapp/images/iconExportLineage.png | Bin .../main/webapp/images/iconFlowSettings.png | Bin .../src/main/webapp/images/iconFunnel.png | Bin .../src/main/webapp/images/iconGoTo.png | Bin .../src/main/webapp/images/iconHistory.png | Bin .../src/main/webapp/images/iconInfo.png | Bin .../src/main/webapp/images/iconInputPort.png | Bin .../main/webapp/images/iconInputPortSmall.png | Bin .../webapp/images/iconIsolatedProcessor.png | Bin .../src/main/webapp/images/iconLineage.png | Bin .../src/main/webapp/images/iconLoading.gif | Bin .../main/webapp/images/iconMoveToParent.png | Bin .../src/main/webapp/images/iconNotSecure.png | Bin .../src/main/webapp/images/iconOutputPort.png | Bin .../webapp/images/iconOutputPortSmall.png | Bin .../src/main/webapp/images/iconPaste.png | Bin .../src/main/webapp/images/iconPopOut.png | Bin .../webapp/images/iconPortNotTransmitting.png | Bin .../main/webapp/images/iconPortRemoved.png | Bin .../webapp/images/iconPortTransmitting.png | Bin .../src/main/webapp/images/iconPrimary.png | Bin .../main/webapp/images/iconProcessGroup.png | Bin .../src/main/webapp/images/iconProcessor.png | Bin .../src/main/webapp/images/iconProvenance.png | Bin .../src/main/webapp/images/iconRefresh.png | Bin .../main/webapp/images/iconRemotePorts.png | Bin .../webapp/images/iconRemoteProcessGroup.png | Bin .../src/main/webapp/images/iconReporting.png | Bin .../main/webapp/images/iconResetCounter.png | Bin .../src/main/webapp/images/iconResize.png | Bin .../src/main/webapp/images/iconRevoke.png | Bin .../src/main/webapp/images/iconRun.png | Bin .../src/main/webapp/images/iconSecure.png | Bin .../main/webapp/images/iconSmallFunnel.png | Bin .../main/webapp/images/iconSmallInputPort.png | Bin .../webapp/images/iconSmallOutputPort.png | Bin .../webapp/images/iconSmallProcessGroup.png | Bin .../main/webapp/images/iconSmallProcessor.png | Bin .../webapp/images/iconSmallRelationship.png | Bin .../images/iconSmallRemoteProcessGroup.png | Bin .../src/main/webapp/images/iconStop.png | Bin .../src/main/webapp/images/iconTemplates.png | Bin .../src/main/webapp/images/iconToFront.png | Bin .../webapp/images/iconTransmissionActive.png | Bin .../images/iconTransmissionInactive.png | Bin .../src/main/webapp/images/iconTwistArrow.png | Bin .../src/main/webapp/images/iconUsage.png | Bin .../src/main/webapp/images/inputCheckbox.png | Bin .../src/main/webapp/images/loadAnimation.gif | Bin .../src/main/webapp}/images/nifi16.ico | Bin .../src/main/webapp/images/nifi_about.png | Bin .../src/main/webapp/images/panelBg.jpg | Bin .../src/main/webapp/images/portRemoved.png | Bin .../src/main/webapp/images/portRunning.png | Bin .../src/main/webapp/images/portStopped.png | Bin .../src/main/webapp/images/spacer.png | Bin .../src/main/webapp/images/starburst.png | Bin .../src/main/webapp/images/tabBg.jpg | Bin .../src/main/webapp/images/toolbarBg.gif | Bin .../main/webapp/images/toolboxIconFunnel.png | Bin .../webapp/images/toolboxIconInputPort.png | Bin .../main/webapp/images/toolboxIconLabel.png | Bin .../webapp/images/toolboxIconOutputPort.png | Bin .../webapp/images/toolboxIconProcessGroup.png | Bin .../webapp/images/toolboxIconProcessor.png | Bin .../images/toolboxIconRemoteProcessGroup.png | Bin .../webapp/images/toolboxIconTemplate.png | Bin .../images/transmissionSwitchDisabled.png | Bin .../images/transmissionSwitchEnabled.png | Bin .../src/main/webapp/images/ungroup.png | Bin .../src/main/webapp/js/codemirror/LICENSE | 0 .../js/codemirror/addon/fold/foldgutter.css | 0 .../js/codemirror/addon/hint/show-hint.css | 0 .../codemirror/lib/codemirror-compressed.js | 0 .../webapp/js/codemirror/lib/codemirror.css | 0 .../nifi-web-ui/src/main/webapp/js/d3/LICENSE | 0 .../src/main/webapp/js/d3/d3.min.js | 0 .../webapp/js/jquery/combo/jquery.combo.css | 0 .../webapp/js/jquery/combo/jquery.combo.js | 0 .../main/webapp/js/jquery/combo/menuArrow.png | Bin .../webapp/js/jquery/combo/menuArrowSmall.png | Bin .../main/webapp/js/jquery/jquery-2.1.1.min.js | 0 .../main/webapp/js/jquery/jquery.center.js | 0 .../src/main/webapp/js/jquery/jquery.count.js | 0 .../src/main/webapp/js/jquery/jquery.each.js | 0 .../main/webapp/js/jquery/jquery.ellipsis.js | 0 .../js/jquery/jquery.event.drag-2.2.min.js | 0 .../main/webapp/js/jquery/jquery.form.min.js | 0 .../src/main/webapp/js/jquery/jquery.tab.js | 0 .../jquery/minicolors/jquery.minicolors.css | 0 .../minicolors/jquery.minicolors.min.js | 0 .../jquery/minicolors/jquery.minicolors.png | Bin .../webapp/js/jquery/modal/jquery.modal.css | 0 .../webapp/js/jquery/modal/jquery.modal.js | 0 .../js/jquery/nfeditor/jquery.nfeditor.css | 0 .../js/jquery/nfeditor/jquery.nfeditor.js | 0 .../js/jquery/nfeditor/languages/nfel.css | 0 .../js/jquery/nfeditor/languages/nfel.js | 0 .../propertytable/buttonNewProperty.png | Bin .../propertytable/jquery.propertytable.css | 0 .../propertytable/jquery.propertytable.js | 0 .../js/jquery/qtip2/jquery.qtip.min.css | 0 .../webapp/js/jquery/qtip2/jquery.qtip.min.js | 0 .../js/jquery/slickgrid/MIT-LICENSE.txt | 0 .../jquery/slickgrid/css/images/collapse.gif | Bin .../js/jquery/slickgrid/css/images/expand.gif | Bin .../jquery/slickgrid/css/images/sort-asc.gif | Bin .../jquery/slickgrid/css/images/sort-desc.gif | Bin .../slickgrid/css/slick-default-theme.css | 0 .../js/jquery/slickgrid/css/slick.grid.css | 0 .../slickgrid/plugins/slick.autotooltips.js | 0 .../plugins/slick.cellrangedecorator.js | 0 .../plugins/slick.cellrangeselector.js | 0 .../plugins/slick.cellselectionmodel.js | 0 .../plugins/slick.rowselectionmodel.js | 0 .../webapp/js/jquery/slickgrid/slick.core.js | 0 .../js/jquery/slickgrid/slick.dataview.js | 0 .../js/jquery/slickgrid/slick.editors.js | 0 .../js/jquery/slickgrid/slick.formatters.js | 0 .../webapp/js/jquery/slickgrid/slick.grid.js | 0 .../webapp/js/jquery/tabbs/jquery.tabbs.css | 0 .../webapp/js/jquery/tabbs/jquery.tabbs.js | 0 .../js/jquery/tagcloud/jquery.tagcloud.css | 0 .../js/jquery/tagcloud/jquery.tagcloud.js | 0 .../ui-smoothness/images/animated-overlay.gif | Bin .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin .../images/ui-bg_flat_75_ffffff_40x100.png | Bin .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin .../images/ui-bg_glass_65_ffffff_1x400.png | Bin .../images/ui-bg_glass_75_dadada_1x400.png | Bin .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin .../images/ui-icons_222222_256x240.png | Bin .../images/ui-icons_2e83ff_256x240.png | Bin .../images/ui-icons_454545_256x240.png | Bin .../images/ui-icons_888888_256x240.png | Bin .../images/ui-icons_cd0a0a_256x240.png | Bin .../ui-smoothness/jquery-ui-1.10.4.min.css | 0 .../ui-smoothness/jquery-ui-1.10.4.min.js | 0 .../nifi-web-ui/src/main/webapp/js/json2.js | 0 .../js/nf/bulletin-board/nf-bulletin-board.js | 0 .../main/webapp/js/nf/canvas/nf-actions.js | 0 .../main/webapp/js/nf/canvas/nf-birdseye.js | 0 .../webapp/js/nf/canvas/nf-canvas-header.js | 0 .../webapp/js/nf/canvas/nf-canvas-toolbar.js | 0 .../webapp/js/nf/canvas/nf-canvas-toolbox.js | 0 .../webapp/js/nf/canvas/nf-canvas-utils.js | 0 .../src/main/webapp/js/nf/canvas/nf-canvas.js | 0 .../main/webapp/js/nf/canvas/nf-clipboard.js | 0 .../webapp/js/nf/canvas/nf-connectable.js | 0 .../nf/canvas/nf-connection-configuration.js | 0 .../main/webapp/js/nf/canvas/nf-connection.js | 0 .../webapp/js/nf/canvas/nf-context-menu.js | 0 .../js/nf/canvas/nf-controller-service.js | 0 .../main/webapp/js/nf/canvas/nf-custom-ui.js | 0 .../main/webapp/js/nf/canvas/nf-draggable.js | 0 .../src/main/webapp/js/nf/canvas/nf-funnel.js | 0 .../src/main/webapp/js/nf/canvas/nf-go-to.js | 0 .../webapp/js/nf/canvas/nf-graph-control.js | 0 .../src/main/webapp/js/nf/canvas/nf-graph.js | 0 .../js/nf/canvas/nf-label-configuration.js | 0 .../src/main/webapp/js/nf/canvas/nf-label.js | 0 .../js/nf/canvas/nf-port-configuration.js | 0 .../webapp/js/nf/canvas/nf-port-details.js | 0 .../src/main/webapp/js/nf/canvas/nf-port.js | 0 .../canvas/nf-process-group-configuration.js | 0 .../js/nf/canvas/nf-process-group-details.js | 0 .../webapp/js/nf/canvas/nf-process-group.js | 0 .../nf/canvas/nf-processor-configuration.js | 0 .../main/webapp/js/nf/canvas/nf-processor.js | 0 .../webapp/js/nf/canvas/nf-registration.js | 0 .../nf-remote-process-group-configuration.js | 0 .../canvas/nf-remote-process-group-details.js | 0 .../canvas/nf-remote-process-group-ports.js | 0 .../js/nf/canvas/nf-remote-process-group.js | 0 .../webapp/js/nf/canvas/nf-reporting-task.js | 0 .../src/main/webapp/js/nf/canvas/nf-search.js | 0 .../nf/canvas/nf-secure-port-configuration.js | 0 .../js/nf/canvas/nf-secure-port-details.js | 0 .../main/webapp/js/nf/canvas/nf-selectable.js | 0 .../main/webapp/js/nf/canvas/nf-settings.js | 0 .../main/webapp/js/nf/canvas/nf-snippet.js | 0 .../main/webapp/js/nf/canvas/nf-storage.js | 0 .../webapp/js/nf/canvas/nf-toolbar-action.js | 0 .../webapp/js/nf/cluster/nf-cluster-table.js | 0 .../main/webapp/js/nf/cluster/nf-cluster.js | 0 .../js/nf/counters/nf-counters-table.js | 0 .../main/webapp/js/nf/counters/nf-counters.js | 0 .../webapp/js/nf/history/nf-history-model.js | 0 .../webapp/js/nf/history/nf-history-table.js | 0 .../main/webapp/js/nf/history/nf-history.js | 0 .../src/main/webapp/js/nf/nf-client.js | 0 .../src/main/webapp/js/nf/nf-common.js | 0 .../webapp/js/nf/nf-connection-details.js | 0 .../src/main/webapp/js/nf/nf-dialog.js | 0 .../src/main/webapp/js/nf/nf-namespace.js | 0 .../main/webapp/js/nf/nf-processor-details.js | 0 .../src/main/webapp/js/nf/nf-shell.js | 0 .../main/webapp/js/nf/nf-status-history.js | 0 .../js/nf/provenance/nf-provenance-lineage.js | 0 .../js/nf/provenance/nf-provenance-table.js | 0 .../webapp/js/nf/provenance/nf-provenance.js | 0 .../webapp/js/nf/summary/nf-cluster-search.js | 0 .../webapp/js/nf/summary/nf-summary-table.js | 0 .../main/webapp/js/nf/summary/nf-summary.js | 0 .../js/nf/templates/nf-templates-table.js | 0 .../webapp/js/nf/templates/nf-templates.js | 0 .../main/webapp/js/nf/users/nf-users-table.js | 0 .../src/main/webapp/js/nf/users/nf-users.js | 0 .../nifi-framework/nifi-web/pom.xml | 0 .../nifi-framework/pom.xml | 0 .../nifi-framework-bundle/pom.xml | 0 .../nifi-geo-bundle/nifi-geo-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-geo-processors/.gitignore | 0 .../nifi-geo-processors/pom.xml | 0 .../apache/nifi/processors/GeoEnrichIP.java | 0 .../processors/maxmind/DatabaseReader.java | 0 .../org.apache.nifi.processor.Processor | 0 .../nifi-geo-bundle/pom.xml | 0 .../nifi-hadoop-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-hdfs-processors/pom.xml | 0 .../hadoop/AbstractHadoopProcessor.java | 0 .../hadoop/CreateHadoopSequenceFile.java | 0 .../nifi/processors/hadoop/FetchHDFS.java | 0 ...wFileStreamUnpackerSequenceFileWriter.java | 0 .../nifi/processors/hadoop/GetHDFS.java | 0 .../hadoop/GetHDFSSequenceFile.java | 0 .../processors/hadoop/KeyValueReader.java | 0 .../nifi/processors/hadoop/ListHDFS.java | 0 .../nifi/processors/hadoop/PutHDFS.java | 0 .../hadoop/SequenceFileWriterImpl.java | 0 .../hadoop/TarUnpackerSequenceFileWriter.java | 0 .../nifi/processors/hadoop/ValueReader.java | 0 .../hadoop/ZipUnpackerSequenceFileWriter.java | 0 .../util/ByteFilteringOutputStream.java | 0 .../processors/hadoop/util/HDFSListing.java | 0 .../hadoop/util/InputStreamWritable.java | 0 .../processors/hadoop/util/LongSerDe.java | 0 .../hadoop/util/OutputStreamWritable.java | 0 .../hadoop/util/SequenceFileReader.java | 0 .../hadoop/util/SequenceFileWriter.java | 0 .../processors/hadoop/util/StringSerDe.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../processors/hadoop/AbstractHadoopTest.java | 0 .../nifi/processors/hadoop/GetHDFSTest.java | 0 .../nifi/processors/hadoop/PutHDFSTest.java | 0 .../hadoop/SimpleHadoopProcessor.java | 0 .../hadoop/TestCreateHadoopSequenceFile.java | 0 .../nifi/processors/hadoop/TestListHDFS.java | 0 .../src/test/resources/core-site-broken.xml | 0 .../src/test/resources/core-site.xml | 0 .../resources/testdata/13545312236534130.tar | Bin .../resources/testdata/13545423550275052.zip | Bin .../resources/testdata/13545479542069498.pkg | Bin .../src/test/resources/testdata/randombytes-1 | Bin .../test/resources/testdata/randombytes-1.gz | Bin .../src/test/resources/testdata/randombytes-2 | Bin .../src/test/resources/testdata/randombytes-3 | Bin .../nifi-hadoop-bundle/pom.xml | 0 .../nifi-hadoop-libraries-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-hadoop-libraries-bundle/pom.xml | 0 .../nifi-hl7-bundle/nifi-hl7-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-hl7-processors/.gitignore | 0 .../nifi-hl7-processors/pom.xml | 0 .../processors/hl7/ExtractHL7Attributes.java | 0 .../apache/nifi/processors/hl7/RouteHL7.java | 0 .../org.apache.nifi.processor.Processor | 0 .../hl7/TestExtractHL7Attributes.java | 0 .../src/test/resources/hypoglycemia.hl7 | 0 .../nifi-hl7-bundle/pom.xml | 0 .../nifi-jetty-bundle/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-kafka-bundle/nifi-kafka-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-kafka-processors/pom.xml | 0 .../nifi/processors/kafka/GetKafka.java | 0 .../nifi/processors/kafka/PutKafka.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../nifi/processors/kafka/TestGetKafka.java | 0 .../nifi/processors/kafka/TestPutKafka.java | 0 .../nifi-kafka-bundle/pom.xml | 0 .../nifi-kite-bundle/nifi-kite-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-kite-processors/pom.xml | 0 .../kite/AbstractKiteProcessor.java | 0 .../processors/kite/AvroRecordConverter.java | 0 .../apache/nifi/processors/kite/AvroUtil.java | 0 .../processors/kite/ConvertAvroSchema.java | 0 .../processors/kite/ConvertCSVToAvro.java | 0 .../processors/kite/ConvertJSONToAvro.java | 0 .../nifi/processors/kite/FailureTracker.java | 0 .../processors/kite/StoreInKiteDataset.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../kite/TestAvroRecordConverter.java | 0 .../kite/TestCSVToAvroProcessor.java | 0 .../kite/TestConfigurationProperty.java | 0 .../kite/TestConvertAvroSchema.java | 0 .../nifi/processors/kite/TestGetSchema.java | 0 .../kite/TestJSONToAvroProcessor.java | 0 .../kite/TestKiteProcessorsCluster.java | 0 .../kite/TestKiteStorageProcessor.java | 0 .../apache/nifi/processors/kite/TestUtil.java | 0 .../nifi-kite-bundle/pom.xml | 0 .../nifi-language-translation-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-yandex-processors/.gitignore | 0 .../nifi-yandex-processors/pom.xml | 0 .../processors/yandex/YandexTranslate.java | 0 .../processors/yandex/model/Translation.java | 0 .../processors/yandex/util/Languages.java | 0 .../yandex/util/ObjectMapperResolver.java | 0 .../org.apache.nifi.processor.Processor | 0 .../yandex/TestYandexTranslate.java | 0 .../nifi-language-translation-bundle/pom.xml | 0 .../nifi-mongodb-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-mongodb-processors/pom.xml | 0 .../mongodb/AbstractMongoProcessor.java | 0 .../nifi/processors/mongodb/GetMongo.java | 0 .../nifi/processors/mongodb/PutMongo.java | 0 .../org.apache.nifi.processor.Processor | 0 .../nifi/processors/mongodb/GetMongoTest.java | 0 .../nifi/processors/mongodb/PutMongoTest.java | 0 .../nifi-mongodb-bundle/pom.xml | 0 .../pom.xml | 0 .../nifi/provenance/IndexConfiguration.java | 0 .../PersistentProvenanceRepository.java | 0 .../provenance/RepositoryConfiguration.java | 0 .../nifi/provenance/StandardRecordReader.java | 0 .../nifi/provenance/StandardRecordWriter.java | 0 .../expiration/ExpirationAction.java | 0 .../expiration/FileRemovalAction.java | 0 .../provenance/lucene/DeleteIndexAction.java | 0 .../nifi/provenance/lucene/DocsReader.java | 0 .../nifi/provenance/lucene/FieldNames.java | 0 .../nifi/provenance/lucene/IndexManager.java | 0 .../nifi/provenance/lucene/IndexSearch.java | 0 .../provenance/lucene/IndexingAction.java | 0 .../nifi/provenance/lucene/LineageQuery.java | 0 .../nifi/provenance/lucene/LuceneUtil.java | 0 .../serialization/RecordReader.java | 0 .../serialization/RecordReaders.java | 0 .../serialization/RecordWriter.java | 0 .../serialization/RecordWriters.java | 0 .../provenance/toc/StandardTocReader.java | 0 .../provenance/toc/StandardTocWriter.java | 0 .../apache/nifi/provenance/toc/TocReader.java | 0 .../apache/nifi/provenance/toc/TocUtil.java | 0 .../apache/nifi/provenance/toc/TocWriter.java | 0 ....nifi.provenance.ProvenanceEventRepository | 0 .../TestPersistentProvenanceRepository.java | 0 .../TestStandardRecordReaderWriter.java | 0 .../org/apache/nifi/provenance/TestUtil.java | 0 .../provenance/toc/TestStandardTocReader.java | 0 .../provenance/toc/TestStandardTocWriter.java | 0 .../nifi-provenance-repository-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../pom.xml | 0 .../VolatileProvenanceRepository.java | 0 ....nifi.provenance.ProvenanceEventRepository | 0 .../TestVolatileProvenanceRepository.java | 0 .../src/test/resources/nifi.properties | 0 .../nifi-provenance-repository-bundle/pom.xml | 0 .../nifi-social-media-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-twitter-processors/.gitignore | 0 .../nifi-twitter-processors/pom.xml | 0 .../nifi/processors/twitter/GetTwitter.java | 0 .../org.apache.nifi.processor.Processor | 0 .../nifi-social-media-bundle/pom.xml | 0 .../nifi-solr-bundle/nifi-solr-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-solr-processors/pom.xml | 0 .../apache/nifi/processors/solr/GetSolr.java | 0 .../processors/solr/PutSolrContentStream.java | 0 .../nifi/processors/solr/SolrProcessor.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../solr/EmbeddedSolrServerFactory.java | 0 .../nifi/processors/solr/TestGetSolr.java | 0 .../solr/TestPutSolrContentStream.java | 0 .../src/test/resources/log4j.properties | 0 .../src/test/resources/solr/solr.xml | 0 .../testCollection/conf/_rest_managed.json | 0 .../testCollection/conf/lang/stopwords_en.txt | 0 .../testCollection/conf/protwords.txt | 0 .../resources/testCollection/conf/schema.xml | 0 .../testCollection/conf/solrconfig.xml | 0 .../testCollection/conf/synonyms.txt | 0 .../resources/testCollection/core.properties | 0 .../testdata/test-csv-multiple-docs.csv | 0 .../testdata/test-custom-json-single-doc.json | 0 .../test-solr-json-multiple-docs.json | 0 .../testdata/test-xml-multiple-docs.xml | 0 .../nifi-solr-bundle/pom.xml | 0 .../nifi-standard-content-viewer/pom.xml | 0 .../web/StandardContentViewerController.java | 0 .../src/main/resources/META-INF/NOTICE | 0 .../main/webapp/META-INF/nifi-content-viewer | 0 .../main/webapp/WEB-INF/jsp/codemirror.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/main/webapp/css/main.css | 0 .../nifi-standard-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-standard-prioritizers/pom.xml | 0 .../FirstInFirstOutPrioritizer.java | 0 .../NewestFlowFileFirstPrioritizer.java | 0 .../OldestFlowFileFirstPrioritizer.java | 0 .../PriorityAttributePrioritizer.java | 0 ...g.apache.nifi.flowfile.FlowFilePrioritizer | 0 .../NewestFirstPrioritizerTest.java | 0 .../OldestFirstPrioritizerTest.java | 0 .../PriorityAttributePrioritizerTest.java | 0 .../nifi-standard-processors/pom.xml | 0 .../standard/AbstractJsonPathProcessor.java | 0 .../standard/Base64EncodeContent.java | 0 .../nifi/processors/standard/BinFiles.java | 0 .../processors/standard/CompressContent.java | 0 .../nifi/processors/standard/ControlRate.java | 0 .../standard/ConvertCharacterSet.java | 0 .../processors/standard/DetectDuplicate.java | 0 .../processors/standard/DistributeLoad.java | 0 .../standard/DuplicateFlowFile.java | 0 .../processors/standard/EncodeContent.java | 0 .../processors/standard/EncryptContent.java | 0 .../processors/standard/EvaluateJsonPath.java | 0 .../standard/EvaluateRegularExpression.java | 0 .../processors/standard/EvaluateXPath.java | 0 .../processors/standard/EvaluateXQuery.java | 0 .../processors/standard/ExecuteProcess.java | 0 .../nifi/processors/standard/ExecuteSQL.java | 0 .../standard/ExecuteStreamCommand.java | 0 .../nifi/processors/standard/ExtractText.java | 0 .../processors/standard/GenerateFlowFile.java | 0 .../nifi/processors/standard/GetFTP.java | 0 .../nifi/processors/standard/GetFile.java | 0 .../processors/standard/GetFileTransfer.java | 0 .../nifi/processors/standard/GetHTTP.java | 0 .../nifi/processors/standard/GetJMSQueue.java | 0 .../nifi/processors/standard/GetJMSTopic.java | 0 .../nifi/processors/standard/GetSFTP.java | 0 .../standard/HandleHttpRequest.java | 0 .../standard/HandleHttpResponse.java | 0 .../processors/standard/HashAttribute.java | 0 .../nifi/processors/standard/HashContent.java | 0 .../processors/standard/IdentifyMimeType.java | 0 .../nifi/processors/standard/InvokeHTTP.java | 0 .../nifi/processors/standard/JmsConsumer.java | 0 .../nifi/processors/standard/ListenHTTP.java | 0 .../nifi/processors/standard/ListenUDP.java | 0 .../processors/standard/LogAttribute.java | 0 .../processors/standard/MergeContent.java | 0 .../nifi/processors/standard/ModifyBytes.java | 0 .../processors/standard/MonitorActivity.java | 0 .../nifi/processors/standard/PostHTTP.java | 0 .../nifi/processors/standard/PutEmail.java | 0 .../nifi/processors/standard/PutFTP.java | 0 .../nifi/processors/standard/PutFile.java | 0 .../processors/standard/PutFileTransfer.java | 0 .../nifi/processors/standard/PutJMS.java | 0 .../nifi/processors/standard/PutSFTP.java | 0 .../nifi/processors/standard/ReplaceText.java | 0 .../standard/ReplaceTextWithMapping.java | 0 .../processors/standard/RouteOnAttribute.java | 0 .../processors/standard/RouteOnContent.java | 0 .../processors/standard/ScanAttribute.java | 0 .../nifi/processors/standard/ScanContent.java | 0 .../processors/standard/SegmentContent.java | 0 .../processors/standard/SplitContent.java | 0 .../nifi/processors/standard/SplitJson.java | 0 .../nifi/processors/standard/SplitText.java | 0 .../nifi/processors/standard/SplitXml.java | 0 .../processors/standard/TransformXml.java | 0 .../processors/standard/UnpackContent.java | 0 .../nifi/processors/standard/ValidateXml.java | 0 .../ContentAcknowledgmentServlet.java | 0 .../standard/servlets/ListenHTTPServlet.java | 0 .../nifi/processors/standard/util/Bin.java | 0 .../processors/standard/util/BinManager.java | 0 .../standard/util/DocumentReaderCallback.java | 0 .../processors/standard/util/FTPTransfer.java | 0 .../processors/standard/util/FTPUtils.java | 0 .../processors/standard/util/FileInfo.java | 0 .../standard/util/FileTransfer.java | 0 .../standard/util/FlowFileSessionWrapper.java | 0 .../processors/standard/util/JdbcCommon.java | 0 .../processors/standard/util/JmsFactory.java | 0 .../standard/util/JmsProcessingSummary.java | 0 .../standard/util/JmsProperties.java | 0 .../util/JsonPathExpressionValidator.java | 0 .../standard/util/NLKBufferedReader.java | 0 .../util/OpenPGPKeyBasedEncryptor.java | 0 .../util/OpenPGPPasswordBasedEncryptor.java | 0 .../standard/util/PasswordBasedEncryptor.java | 0 .../standard/util/SFTPConnection.java | 0 .../standard/util/SFTPTransfer.java | 0 .../processors/standard/util/SFTPUtils.java | 0 .../util/SocksProxySocketFactory.java | 0 .../standard/util/UDPStreamConsumer.java | 0 .../util/ValidatingBase32InputStream.java | 0 .../util/ValidatingBase64InputStream.java | 0 .../standard/util/WrappedMessageConsumer.java | 0 .../standard/util/WrappedMessageProducer.java | 0 .../standard/util/XmlElementNotifier.java | 0 .../standard/util/XmlSplitterSaxParser.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../org/apache/tika/mime/custom-mimetypes.xml | 0 .../src/test/java/TestDynamicEnvironment.java | 0 .../src/test/java/TestIngestAndUpdate.java | 0 .../src/test/java/TestSuccess.java | 0 .../processors/standard/CaptureServlet.java | 0 .../standard/HelloWorldServlet.java | 0 .../standard/RESTServiceContentModified.java | 0 .../standard/TestBase64EncodeContent.java | 0 .../standard/TestCompressContent.java | 0 .../processors/standard/TestControlRate.java | 0 .../standard/TestConvertCharacterSet.java | 0 .../standard/TestDetectDuplicate.java | 0 .../standard/TestDistributeLoad.java | 0 .../standard/TestDuplicateFlowFile.java | 0 .../standard/TestEncodeContent.java | 0 .../standard/TestEncryptContent.java | 0 .../standard/TestEvaluateJsonPath.java | 0 .../standard/TestEvaluateXPath.java | 0 .../standard/TestEvaluateXQuery.java | 0 .../standard/TestExecuteProcess.java | 0 .../processors/standard/TestExecuteSQL.java | 0 .../standard/TestExecuteStreamCommand.java | 0 .../processors/standard/TestExtractText.java | 0 .../nifi/processors/standard/TestGetFile.java | 0 .../nifi/processors/standard/TestGetHTTP.java | 0 .../processors/standard/TestGetJMSQueue.java | 0 .../standard/TestHandleHttpRequest.java | 0 .../standard/TestHandleHttpResponse.java | 0 .../standard/TestHashAttribute.java | 0 .../processors/standard/TestHashContent.java | 0 .../standard/TestIdentifyMimeType.java | 0 .../processors/standard/TestInvokeHTTP.java | 0 .../processors/standard/TestJmsConsumer.java | 0 .../processors/standard/TestListenUDP.java | 0 .../processors/standard/TestMergeContent.java | 0 .../processors/standard/TestModifyBytes.java | 0 .../standard/TestMonitorActivity.java | 0 .../processors/standard/TestPostHTTP.java | 0 .../processors/standard/TestPutEmail.java | 0 .../processors/standard/TestReplaceText.java | 0 .../standard/TestReplaceTextLineByLine.java | 0 .../standard/TestReplaceTextWithMapping.java | 0 .../standard/TestRouteOnAttribute.java | 0 .../standard/TestRouteOnContent.java | 0 .../standard/TestScanAttribute.java | 0 .../processors/standard/TestScanContent.java | 0 .../standard/TestSegmentContent.java | 0 .../nifi/processors/standard/TestServer.java | 0 .../processors/standard/TestSplitContent.java | 0 .../processors/standard/TestSplitJson.java | 0 .../processors/standard/TestSplitText.java | 0 .../processors/standard/TestSplitXml.java | 0 .../processors/standard/TestTransformXml.java | 0 .../standard/TestUnpackContent.java | 0 .../processors/standard/TestValidateXml.java | 0 .../standard/UserAgentTestingServlet.java | 0 .../standard/util/TestJdbcCommon.java | 0 .../standard/util/TestJdbcHugeStream.java | 0 .../Converted.txt | 0 .../Converted2.txt | Bin .../Original.txt | 0 .../resources/CompressedData/SampleFile.txt | 0 .../CompressedData/SampleFile.txt.bz2 | Bin .../CompressedData/SampleFile.txt.gz | Bin .../CompressedData/SampleFile1.txt.bz2 | Bin .../CompressedData/SampleFile1.txt.gz | Bin .../CompressedData/SampleFileConcat.txt | 0 .../CompressedData/SampleFileConcat.txt.bz2 | Bin .../resources/ExecuteCommand/1000bytes.txt | 0 .../ExecuteCommand/TestDynamicEnvironment.jar | Bin .../ExecuteCommand/TestIngestAndUpdate.jar | Bin .../resources/ExecuteCommand/TestSuccess.jar | Bin .../test/resources/ExecuteCommand/test.txt | 0 .../dictionary-with-empty-new-lines | 0 .../ScanAttribute/dictionary-with-extra-info | 0 .../test/resources/ScanAttribute/dictionary1 | 0 .../resources/TestEncryptContent/text.txt | 0 .../resources/TestEncryptContent/text.txt.asc | 0 .../test/resources/TestIdentifyMimeType/1.7z | Bin .../test/resources/TestIdentifyMimeType/1.jar | Bin .../test/resources/TestIdentifyMimeType/1.mdb | Bin .../test/resources/TestIdentifyMimeType/1.pdf | Bin .../test/resources/TestIdentifyMimeType/1.tar | Bin .../resources/TestIdentifyMimeType/1.tar.gz | Bin .../test/resources/TestIdentifyMimeType/1.txt | 0 .../resources/TestIdentifyMimeType/1.txt.bz2 | Bin .../resources/TestIdentifyMimeType/1.txt.gz | Bin .../test/resources/TestIdentifyMimeType/1.xml | 0 .../test/resources/TestIdentifyMimeType/1.zip | Bin .../TestIdentifyMimeType/bgBannerFoot.png | Bin .../TestIdentifyMimeType/blueBtnBg.jpg | Bin .../TestIdentifyMimeType/flowfilev1.tar | Bin .../resources/TestIdentifyMimeType/flowfilev3 | Bin .../resources/TestIdentifyMimeType/grid.gif | Bin .../TestJson/control-characters.json | 0 .../test/resources/TestJson/json-sample.json | 0 .../test/resources/TestMergeContent/demarcate | 0 .../src/test/resources/TestMergeContent/foot | 0 .../src/test/resources/TestMergeContent/head | 0 .../resources/TestMergeContent/place.avsc | 0 .../test/resources/TestMergeContent/user.avsc | 0 .../resources/TestModifyBytes/noFooter.txt | 0 .../TestModifyBytes/noFooter_noHeader.txt | 0 .../resources/TestModifyBytes/noHeader.txt | 0 .../resources/TestModifyBytes/testFile.txt | 0 .../TestReplaceTextLineByLine/$1$1.txt | 0 .../BRue_cRue_RiRey.txt | 0 .../Blu$2e_clu$2e.txt | 0 .../TestReplaceTextLineByLine/D$d_h$d.txt | 0 .../TestReplaceTextLineByLine/Good.txt | 0 .../TestReplaceTextLineByLine/Spider.txt | 0 .../TestReplaceTextLineByLine/[DODO].txt | 0 .../cu[$1]_Po[$1].txt | 0 .../TestReplaceTextLineByLine/cu_Po.txt | 0 .../TestReplaceTextLineByLine/food.txt | 0 .../TestReplaceTextLineByLine/testFile.txt | 0 .../color-fruit-backreference-mapping.txt | 0 .../color-fruit-blank-mapping.txt | 0 .../color-fruit-escaped-dollar-mapping.txt | 0 ...excessive-backreference-mapping-simple.txt | 0 ...-fruit-excessive-backreference-mapping.txt | 0 ...or-fruit-invalid-backreference-mapping.txt | 0 .../color-fruit-mapping.txt | 0 .../color-fruit-no-match-mapping.txt | 0 .../color-fruit-space-mapping.txt | 0 .../colors-without-dashes.txt | 0 .../TestReplaceTextWithMapping/colors.txt | 0 .../test/resources/TestScanContent/helloWorld | 0 .../TestScanContent/wellthengood-bye | 0 .../src/test/resources/TestSplitText/1.txt | 0 .../src/test/resources/TestSplitText/2.txt | 0 .../src/test/resources/TestSplitText/3.txt | 0 .../src/test/resources/TestSplitText/4.txt | 0 .../src/test/resources/TestSplitText/5.txt | 0 .../src/test/resources/TestSplitText/6.txt | 0 .../test/resources/TestSplitText/original.txt | 0 .../test/resources/TestTransformXml/math.html | 0 .../test/resources/TestTransformXml/math.xml | 0 .../test/resources/TestTransformXml/math.xsl | 0 .../resources/TestTransformXml/tokens.csv | 0 .../resources/TestTransformXml/tokens.xml | 0 .../resources/TestTransformXml/tokens.xsl | 0 .../TestUnpackContent/data.flowfilev2 | Bin .../TestUnpackContent/data.flowfilev3 | Bin .../test/resources/TestUnpackContent/data.tar | Bin .../test/resources/TestUnpackContent/data.zip | Bin .../TestUnpackContent/folder/cal.txt | 0 .../TestUnpackContent/folder/date.txt | 0 .../src/test/resources/TestXml/XmlBundle.xsd | 0 .../src/test/resources/TestXml/fruit.xml | 0 .../src/test/resources/TestXml/subNode.xml | 0 .../src/test/resources/TestXml/xml-bundle-1 | 0 .../test/resources/TestXml/xml-snippet.xml | 0 .../src/test/resources/hello.txt | 0 .../src/test/resources/localhost-ks.jks | Bin .../src/test/resources/localhost-ts.jks | Bin .../src/test/resources/localhost.cer | Bin .../src/test/resources/logback-test.xml | 0 .../nifi-standard-reporting-tasks/pom.xml | 0 .../ControllerStatusReportingTask.java | 0 .../nifi/controller/MonitorDiskUsage.java | 0 .../apache/nifi/controller/MonitorMemory.java | 0 .../ganglia/StandardGangliaReporter.java | 0 .../org.apache.nifi.reporting.ReportingTask | 0 .../additionalDetails.html | 0 .../additionalDetails.html | 0 .../nifi/controller/TestMonitorDiskUsage.java | 0 .../nifi-standard-bundle/pom.xml | 0 .../nifi-dbcp-service-api/pom.xml | 0 .../org/apache/nifi/dbcp/DBCPService.java | 0 .../nifi-dbcp-service-nar/pom.xml | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-dbcp-service/pom.xml | 0 .../apache/nifi/dbcp/DBCPConnectionPool.java | 0 .../nifi/dbcp/DatabaseSystemDescriptor.java | 0 .../org/apache/nifi/dbcp/DatabaseSystems.java | 0 .../java/org/apache/nifi/dbcp/DriverShim.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../org/apache/nifi/dbcp/DBCPServiceTest.java | 0 .../apache/nifi/dbcp/TestDatabaseSystems.java | 0 .../org/apache/nifi/dbcp/TestProcessor.java | 0 .../nifi-dbcp-service-bundle/pom.xml | 0 .../pom.xml | 0 .../cache/client/Deserializer.java | 0 .../client/DistributedMapCacheClient.java | 0 .../client/DistributedSetCacheClient.java | 0 .../distributed/cache/client/Serializer.java | 0 .../exception/DeserializationException.java | 0 .../exception/SerializationException.java | 0 .../pom.xml | 0 .../cache/client/CommsSession.java | 0 .../DistributedMapCacheClientService.java | 0 .../DistributedSetCacheClientService.java | 0 .../cache/client/SSLCommsSession.java | 0 .../cache/client/StandardCommsSession.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../nifi-distributed-cache-protocol/pom.xml | 0 .../cache/protocol/ProtocolHandshake.java | 0 .../exception/HandshakeException.java | 0 .../nifi-distributed-cache-server/pom.xml | 0 .../cache/server/AbstractCacheServer.java | 0 .../distributed/cache/server/CacheRecord.java | 0 .../distributed/cache/server/CacheServer.java | 0 .../cache/server/DistributedCacheServer.java | 0 .../server/DistributedSetCacheServer.java | 0 .../cache/server/EvictionPolicy.java | 0 .../cache/server/SetCacheServer.java | 0 .../server/map/DistributedMapCacheServer.java | 0 .../cache/server/map/MapCache.java | 0 .../cache/server/map/MapCacheRecord.java | 0 .../cache/server/map/MapCacheServer.java | 0 .../cache/server/map/MapPutResult.java | 0 .../cache/server/map/PersistentMapCache.java | 0 .../cache/server/map/SimpleMapCache.java | 0 .../cache/server/set/PersistentSetCache.java | 0 .../cache/server/set/SetCache.java | 0 .../cache/server/set/SetCacheRecord.java | 0 .../cache/server/set/SetCacheResult.java | 0 .../cache/server/set/SimpleSetCache.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../cache/server/TestServerAndClient.java | 0 .../src/test/resources/localhost-ks.jks | Bin .../src/test/resources/localhost-ts.jks | Bin .../pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../pom.xml | 0 .../nifi-http-context-map-api/pom.xml | 0 .../org/apache/nifi/http/HttpContextMap.java | 0 .../nifi-http-context-map-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-http-context-map/pom.xml | 0 .../nifi/http/StandardHttpContextMap.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../nifi-http-context-map-bundle/pom.xml | 0 .../pom.xml | 0 .../loading/LoadDistributionListener.java | 0 .../nifi/loading/LoadDistributionService.java | 0 .../nifi-ssl-context-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-ssl-context-service/pom.xml | 0 .../nifi/ssl/StandardSSLContextService.java | 0 ...g.apache.nifi.controller.ControllerService | 0 .../nifi/ssl/SSLContextServiceTest.java | 0 .../org/apache/nifi/ssl/TestProcessor.java | 0 .../src/test/resources/localhost-ks.jks | Bin .../src/test/resources/localhost-ts.jks | Bin .../nifi-ssl-context-bundle/pom.xml | 0 .../nifi-ssl-context-service-api/pom.xml | 0 .../apache/nifi/ssl/SSLContextService.java | 0 .../nifi-standard-services-api-nar/pom.xml | 0 .../nifi-standard-services/pom.xml | 0 .../nifi-update-attribute-model/pom.xml | 0 .../apache/nifi/update/attributes/Action.java | 0 .../nifi/update/attributes/Condition.java | 0 .../nifi/update/attributes/Criteria.java | 0 .../update/attributes/FlowFilePolicy.java | 0 .../apache/nifi/update/attributes/Rule.java | 0 .../attributes/serde/CriteriaSerDe.java | 0 .../nifi-update-attribute-nar/pom.xml | 0 .../src/main/resources/META-INF/NOTICE | 0 .../nifi-update-attribute-processor/pom.xml | 0 .../attributes/UpdateAttribute.java | 0 .../org.apache.nifi.processor.Processor | 0 .../additionalDetails.html | 0 .../attributes/TestUpdateAttribute.java | 0 .../nb-configuration.xml | 0 .../nifi-update-attribute-ui/pom.xml | 0 .../UpdateAttributeModelFactory.java | 0 .../attributes/api/ObjectMapperResolver.java | 0 .../update/attributes/api/RuleResource.java | 0 .../nifi/update/attributes/dto/ActionDTO.java | 0 .../update/attributes/dto/ConditionDTO.java | 0 .../update/attributes/dto/DtoFactory.java | 0 .../nifi/update/attributes/dto/RuleDTO.java | 0 .../attributes/entity/ActionEntity.java | 0 .../attributes/entity/ConditionEntity.java | 0 .../entity/EvaluationContextEntity.java | 0 .../update/attributes/entity/RuleEntity.java | 0 .../update/attributes/entity/RulesEntity.java | 0 .../src/main/resources/META-INF/LICENSE | 0 .../src/main/resources/META-INF/NOTICE | 0 .../META-INF/nifi-processor-configuration | 0 .../src/main/webapp/WEB-INF/jsp/worksheet.jsp | 0 .../src/main/webapp/WEB-INF/web.xml | 0 .../src/main/webapp/css/main.css | 0 .../src/main/webapp/images/bgInputText.png | Bin .../src/main/webapp/images/buttonNew.png | Bin .../src/main/webapp/images/iconDelete.png | Bin .../src/main/webapp/images/iconInfo.png | Bin .../src/main/webapp/js/application.js | 0 .../nifi-update-attribute-bundle/pom.xml | 0 .../pom.xml | 0 nifi-nar-maven-plugin/DISCLAIMER | 15 - nifi-nar-maven-plugin/LICENSE | 202 --- nifi-nar-maven-plugin/NOTICE | 5 - nifi-nar-maven-plugin/README.md | 77 - nifi-nar-maven-plugin/pom.xml | 104 -- .../main/java/org/apache/nifi/NarMojo.java | 613 ------- .../resources/META-INF/plexus/components.xml | 52 - nifi-parent/DISCLAIMER | 15 - nifi-parent/LICENSE | 202 --- nifi-parent/NOTICE | 5 - nifi-parent/README.md | 73 - nifi-parent/pom.xml | 438 ----- nifi-site/Gruntfile.js | 316 ---- nifi-site/LICENSE | 202 --- nifi-site/README.md | 213 --- nifi-site/bower.json | 19 - nifi-site/config.rb | 24 - nifi-site/package.json | 29 - nifi-site/robots.txt | 4 - nifi-site/src/images/feather-small.gif | Bin 7129 -> 0 bytes nifi-site/src/images/flow-th.png | Bin 144319 -> 0 bytes nifi-site/src/images/flow.png | Bin 947350 -> 0 bytes .../images/niFi-logo-horizontal-scaled.png | Bin 4462 -> 0 bytes nifi-site/src/images/niFi-logo-horizontal.png | Bin 13161 -> 0 bytes nifi-site/src/images/nifiDrop.svg | 217 --- nifi-site/src/includes/disclaimer.hbs | 13 - nifi-site/src/includes/footer.hbs | 6 - nifi-site/src/includes/header.hbs | 22 - nifi-site/src/includes/topbar.hbs | 72 - nifi-site/src/js/app.js | 17 - nifi-site/src/layouts/html.hbs | 3 - nifi-site/src/layouts/markdown.hbs | 12 - nifi-site/src/pages/html/developer-guide.hbs | 7 - nifi-site/src/pages/html/docs.hbs | 7 - nifi-site/src/pages/html/download.hbs | 86 - nifi-site/src/pages/html/faq.hbs | 33 - nifi-site/src/pages/html/index.hbs | 77 - nifi-site/src/pages/html/mailing_lists.hbs | 77 - nifi-site/src/pages/html/people.hbs | 104 -- nifi-site/src/pages/html/screencasts.hbs | 87 - .../src/pages/markdown/licensing-guide.md | 119 -- nifi-site/src/pages/markdown/quickstart.md | 163 -- nifi-site/src/pages/markdown/release-guide.md | 291 ---- nifi-site/src/scss/_settings.scss | 1465 ----------------- nifi-site/src/scss/app.scss | 209 --- nifi/README.md | 159 -- .../src/main/webapp/images/bgNifiLogo.png | Bin 4232 -> 0 bytes .../src/main/webapp/images/nifi16.ico | Bin 1150 -> 0 bytes nifi/pom.xml => pom.xml | 367 ++++- 2873 files changed, 475 insertions(+), 5891 deletions(-) rename nifi/LICENSE => LICENSE (100%) rename nifi/NOTICE => NOTICE (100%) rename {nifi/nifi-api => nifi-api}/.gitignore (100%) rename {nifi/nifi-api => nifi-api}/pom.xml (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperties.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperty.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/DynamicRelationship.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/EventDriven.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttribute.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttributes.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/SideEffectFree.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/SupportsBatching.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/TriggerSerially.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenAnyDestinationAvailable.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenEmpty.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/WritesAttribute.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/behavior/WritesAttributes.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/documentation/CapabilityDescription.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/documentation/SeeAlso.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/documentation/Tags.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnAdded.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnDisabled.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnEnabled.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnRemoved.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnScheduled.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnShutdown.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnStopped.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/lifecycle/OnUnscheduled.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/notification/OnPrimaryNodeStateChange.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/annotation/notification/PrimaryNodeState.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/Authority.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/AuthorityProvider.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/AuthorityProviderConfigurationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/AuthorityProviderInitializationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/AuthorityProviderLookup.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/annotation/AuthorityProviderContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/exception/AuthorityAccessException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/exception/IdentityAlreadyExistsException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/exception/ProviderCreationException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/exception/ProviderDestructionException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/authorization/exception/UnknownIdentityException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/AbstractConfigurableComponent.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/AllowableValue.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/ConfigurableComponent.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/PropertyDescriptor.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/PropertyValue.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/ValidationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/ValidationResult.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/components/Validator.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/AbstractControllerService.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/ConfigurationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/ControllerService.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/ControllerServiceInitializationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/ControllerServiceLookup.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/FlowFileQueue.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/ScheduledState.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/Snippet.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/Triggerable.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/annotation/OnConfigured.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/ContentRepository.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/FlowFileRecord.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/FlowFileRepository.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/FlowFileSwapManager.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/QueueProvider.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/RepositoryRecord.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/RepositoryRecordType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaim.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaimManager.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/ConnectionStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/PortStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/ProcessGroupStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/ProcessorStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/RemoteProcessGroupStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/RunStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/TransmissionStatus.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/history/ComponentStatusRepository.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/history/MetricDescriptor.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/history/StatusHistory.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/history/StatusSnapshot.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/history/ValueMapper.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/controller/status/history/ValueReducer.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/events/EventReporter.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/expression/AttributeExpression.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/expression/AttributeValueDecorator.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/expression/ExpressionLanguageCompiler.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/flowfile/FlowFile.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/flowfile/FlowFilePrioritizer.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/logging/ComponentLog.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/logging/LogLevel.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/logging/ProcessorLog.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/AbstractProcessor.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/AbstractSessionFactoryProcessor.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/DataUnit.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/FlowFileFilter.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/ProcessContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/ProcessSession.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/ProcessSessionFactory.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/Processor.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/ProcessorInitializationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/QueueSize.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/Relationship.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/SchedulingContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/CapabilityDescription.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/EventDriven.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/OnAdded.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/OnRemoved.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/OnScheduled.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/OnShutdown.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/OnStopped.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/OnUnscheduled.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/SideEffectFree.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/SupportsBatching.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/Tags.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/TriggerSerially.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenAnyDestinationAvailable.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenEmpty.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/exception/FlowFileAccessException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/exception/FlowFileHandlingException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/exception/MissingFlowFileException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/exception/ProcessException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/io/InputStreamCallback.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/io/OutputStreamCallback.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/processor/io/StreamCallback.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/ProvenanceEventBuilder.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/ProvenanceEventRepository.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/ProvenanceEventType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/ProvenanceReporter.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageResult.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageSubmission.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/Lineage.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/LineageComputationType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/LineageEdge.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/LineageNode.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/LineageNodeType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/Query.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/QueryResult.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/QuerySubmission.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/SearchTerm.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/SearchTerms.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/SearchableField.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/provenance/search/SearchableFieldType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/remote/RemoteDestination.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/AbstractReportingTask.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/Bulletin.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/BulletinQuery.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/BulletinRepository.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/ComponentType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/EventAccess.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/InitializationException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/ReportingContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/ReportingInitializationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/ReportingTask.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/reporting/Severity.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/scheduling/SchedulingStrategy.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/search/SearchContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/search/SearchResult.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/search/Searchable.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ClusterRequestException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ComponentDetails.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ConfigurationAction.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/InvalidRevisionException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/NiFiWebConfigurationContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/NiFiWebConfigurationRequestContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/NiFiWebContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/NiFiWebContextConfig.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/NiFiWebRequestContext.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ProcessorConfigurationAction.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ProcessorInfo.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ResourceNotFoundException.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/Revision.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/UiExtensionType.java (100%) rename {nifi/nifi-api => nifi-api}/src/main/java/org/apache/nifi/web/ViewableContent.java (100%) rename {nifi/nifi-api => nifi-api}/src/test/java/org/apache/nifi/components/TestPropertyDescriptor.java (100%) rename {nifi/nifi-api => nifi-api}/src/test/java/org/apache/nifi/processor/TestDataUnit.java (100%) rename {nifi/nifi-api => nifi-api}/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-assembly => nifi-assembly}/LICENSE (100%) rename {nifi/nifi-assembly => nifi-assembly}/NOTICE (100%) rename {nifi/nifi-assembly => nifi-assembly}/README.md (100%) rename {nifi/nifi-assembly => nifi-assembly}/pom.xml (100%) rename {nifi/nifi-assembly => nifi-assembly}/src/main/assembly/dependencies.xml (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/pom.xml (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/src/main/java/org/apache/nifi/bootstrap/BootstrapCodec.java (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/src/main/java/org/apache/nifi/bootstrap/NiFiListener.java (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/src/main/java/org/apache/nifi/bootstrap/ShutdownHook.java (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/src/main/java/org/apache/nifi/bootstrap/exception/InvalidCommandException.java (100%) rename {nifi/nifi-bootstrap => nifi-bootstrap}/src/main/java/org/apache/nifi/bootstrap/util/LimitingInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/.gitignore (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncLineageSubmission.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncQuerySubmission.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/NamedSearchableField.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFieldParser.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFields.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardQueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EdgeNode.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileLineage.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileNode.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/output/AttributeExpressionLexer.tokens (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/EmptyPreparedQuery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/InvalidPreparedQuery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/PreparedQuery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardAttributeExpression.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardExpressionLanguageCompiler.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardPreparedQuery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanQueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateQueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberQueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/QueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringQueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/BooleanCastEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/DateCastEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/NumberCastEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/StringCastEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DateToNumberEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsIgnoreCaseEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/HostnameEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IPEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsNullEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotNullEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NowEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OneUpSequenceEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PlusEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PrependEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceAllEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceNullEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StartsWithEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StringToDateEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterLastEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeLastEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToLowerEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToNumberEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToRadixEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToStringEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToUpperEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/TrimEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlDecodeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlEncodeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UuidEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/BooleanLiteralEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/NumberLiteralEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/StringLiteralEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/ToLiteralEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/CountEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/JoinEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/ReduceEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AllAttributesEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AnyAttributeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/DelineatedAttributeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/IteratingEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MappingEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiAttributeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiMatchAttributeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiNamedAttributeEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageParsingException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/IllegalAttributeException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestStandardPreparedQuery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackager.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV1.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV2.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV3.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackager.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV1.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV2.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV3.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/Unpackage.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-flowfile-packager/src/test/java/org/apache/nifi/util/TestPackageUnpackageV3.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/.gitignore (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryLexer.g (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryParser.g (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/EmptyField.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiField.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiMessage.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiSegment.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/SingleValueField.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/HL7Reader.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/exception/InvalidHL7Exception.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Component.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Field.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Message.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Segment.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Declaration.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/HL7Query.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/QueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/ResultHit.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Selection.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/BooleanEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/Evaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/IntegerEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/StringEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractComparisonEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractNumericComparison.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/EqualsEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanOrEqualEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/IsNullEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanOrEqualEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEqualsEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotNullEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/IntegerLiteralEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/StringLiteralEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/AndEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/OrEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DeclaredReferenceEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DotEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/FieldEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/MessageEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/SegmentEvaluator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/exception/HL7QueryParsingException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/MissedResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardQueryResult.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardResultHit.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/test/java/org/apache/nifi/hl7/query/TestHL7Query.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/test/resources/hyperglycemia (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-hl7-query-language/src/test/resources/hypoglycemia (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-logging-utils/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-logging-utils/src/main/java/org/apache/nifi/logging/NiFiLog.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-processor-utilities/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/FlowFileFilters.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/SSLProperties.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/StandardValidators.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/TestFormatUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/util/TestStandardValidators.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/.gitignore (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/src/main/java/org/apache/nifi/util/StringUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/src/test/java/org/apache/nifi/util/NiFiPropertiesTest.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.blank.properties (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.missing.properties (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.properties (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-security-utils/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-security-utils/src/main/java/org/apache/nifi/security/util/CertificateUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-security-utils/src/main/java/org/apache/nifi/security/util/EncryptionMethod.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-security-utils/src/main/java/org/apache/nifi/security/util/KeystoreType.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SecurityStoreTypes.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SslContextFactory.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/AbstractCommunicationsSession.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Communicant.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Peer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerDescription.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerStatus.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/RemoteResourceInitiator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Transaction.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransactionCompletion.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransferDirection.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/VersionedRemoteResource.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnection.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnectionPool.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/SocketClient.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/AdaptedNodeInformation.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/ClusterNodeInformation.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformation.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformationAdapter.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/FlowFileCodec.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/StandardFlowFileCodec.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/HandshakeException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/PortNotRunningException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/ProtocolException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/UnknownPortException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelCommunicationsSession.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInput.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutput.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelCommunicationsSession.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInput.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutput.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/ClientProtocol.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsInput.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsOutput.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsSession.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/DataPacket.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/RequestType.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/HandshakeProperty.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/Response.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/ResponseCode.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientProtocol.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransaction.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransactionCompletion.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/NiFiRestApiUtil.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/PeerStatusCache.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/StandardDataPacket.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestEndpointConnectionStatePool.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestSiteToSiteClient.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/AbstractChannelReader.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/BufferPool.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/SocketChannelReader.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/AbstractStreamConsumer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumerFactory.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/ServerSocketConfiguration.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketConfiguration.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketListener.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableService.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableServiceImpl.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastConfiguration.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastListener.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServiceDiscovery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServicesBroadcaster.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastTimeToLive.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServiceDiscovery.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServicesBroadcaster.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/TCPClient.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UDPClient.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UselessStreamConsumer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-socket-utils/src/test/resources/log4j.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/.gitignore (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/CoreAttributes.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/FlowFileAttributeKey.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/StandardVersionNegotiator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/VersionNegotiator.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/exception/TransmissionDisabledException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/BufferStateManager.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannel.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/DataOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/GZIPOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/LeakyBucketStreamThrottler.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/LimitingInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/MinimumLengthInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableInputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/NullOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamThrottler.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/ZipOutputStream.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/exception/BytePatternNotFoundException.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/stream/io/util/NonThreadSafeCircularBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/BooleanHolder.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/EscapeUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/FormatUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/IntegerHolder.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/LongHolder.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/NaiveSearchRingBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/ObjectHolder.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/RingBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/StopWatch.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/Tuple.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugDisabledTimedLock.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugEnabledTimedLock.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebuggableTimedLock.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/TimedLock.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/CompoundUpdateMonitor.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/LastModifiedMonitor.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/MD5SumMonitor.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/SynchronousFileWatcher.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/UpdateMonitor.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/search/Search.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/search/SearchTerm.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/AhoCorasick.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/Node.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/SearchState.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/EntityAccess.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/LongEntityAccess.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimedBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimestampedLong.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/remote/io/TestCompressionInputOutputStreams.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/stream/io/TestLeakyBucketThrottler.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/util/TestNaiveSearchRingBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestCompoundUpdateMonitor.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestSynchronousFileWatcher.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestRingBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestTimedBuffer.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-utils/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-web-utils/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ClientUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ObjectMapperResolver.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-web-utils/src/main/java/org/apache/nifi/web/util/WebUtils.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/.gitignore (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/pom.xml (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/main/java/org/wali/SerDe.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/main/java/org/wali/SyncListener.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/main/java/org/wali/UpdateType.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/main/java/org/wali/WriteAheadRepository.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java (100%) rename {nifi/nifi-commons => nifi-commons}/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java (100%) rename {nifi/nifi-commons => nifi-commons}/pom.xml (100%) rename {nifi/nifi-docs => nifi-docs}/LICENSE (100%) rename {nifi/nifi-docs => nifi-docs}/NOTICE (100%) rename {nifi/nifi-docs => nifi-docs}/pom.xml (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/administration-guide.adoc (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/asciidoc-mod.css (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/developer-guide.adoc (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/expression-language-guide.adoc (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/add-controller-service-window.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/add-processor-with-tag-cloud.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/add-processor.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/addConnect.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/comments-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/components.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/configure-controller-service-properties.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/configure-controller-service-settings.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/configure-reporting-task-properties.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/configure-reporting-task-settings.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/connection-settings.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/controller-services-edit-buttons.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/controller-services-edit-buttons2.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/controller-services-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/controller-settings-button.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/create-connection.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/create-service-ssl-context.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/edit-property-dropdown.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/edit-property-textarea.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/event-attributes.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/event-content.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/event-details.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/expand-event.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/expanded-events.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/find-parents.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconAlert.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconConnection.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconDelete.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconDisable.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconEdit.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconEnable.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconExport.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconFlowHistory.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconFunnel.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconInfo.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconInputPort.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconInputPortSmall.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconLabel.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconLineage.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconNewTemplate.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconNotSecure.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconOutputPort.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconOutputPortSmall.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconProcessGroup.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconProcessor.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconProvenance.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconRemoteProcessGroup.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconResize.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconRun.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconSecure.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconSettings.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconStop.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconSummary.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconTemplate.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconTransmissionActive.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconTransmissionInactive.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconUsers.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/iconViewDetails.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/instantiate-template-description.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/instantiate-template.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/invalid-processor.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/lineage-flowfile.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/lineage-graph-annotated.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/ncm.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/new-flow.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/nifi-arch-cluster.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/nifi-arch.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/nifi-navigation.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/nifi-toolbar-components.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/nifi_first_launch_screenshot.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/parent-found.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/process-group-anatomy.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/processor-anatomy.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/processor-connection-bubble.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/properties-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/provenance-annotated.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/provenance-table.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/remote-group-anatomy.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/remote-group-ports-dialog.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/remote-port-connection-status.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/reporting-tasks-edit-buttons.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/reporting-tasks-edit-buttons2.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/reporting-tasks-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/scheduling-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/search-events.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/search-receive-event-abc.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/settings-general-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/settings-tab.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/simple-flow.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/stats-history.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/status-bar.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/summary-annotated.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/summary-table.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/images/valid-processor.png (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/overview.adoc (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/asciidoc/user-guide.adoc (100%) rename {nifi/nifi-docs => nifi-docs}/src/main/assembly/dependencies.xml (100%) rename {nifi/nifi-external => nifi-external}/README.md (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/nifi-nifi-example-nar/pom.xml (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/nifi-nifi-example-processors/pom.xml (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/file.txt (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/nifi-nifi-example-processors/src/test/java/org/apache/nifi/processors/WriteResourceToStreamTest.java (100%) rename {nifi/nifi-external => nifi-external}/nifi-example-bundle/pom.xml (100%) rename {nifi/nifi-external => nifi-external}/nifi-spark-receiver/pom.xml (100%) rename {nifi/nifi-external => nifi-external}/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiDataPacket.java (100%) rename {nifi/nifi-external => nifi-external}/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiReceiver.java (100%) rename {nifi/nifi-external => nifi-external}/nifi-storm-spout/pom.xml (100%) rename {nifi/nifi-external => nifi-external}/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiDataPacket.java (100%) rename {nifi/nifi-external => nifi-external}/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiSpout.java (100%) rename {nifi/nifi-external => nifi-external}/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/java/MyProcessor.java (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/test/java/MyProcessorTest.java (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml (100%) rename {nifi/nifi-maven-archetypes => nifi-maven-archetypes}/pom.xml (100%) rename {nifi/nifi-mock => nifi-mock}/pom.xml (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/provenance/MockProvenanceEventRepository.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/reporting/BulletinFactory.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/reporting/MockBulletin.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/ControllerServiceConfiguration.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockBulletinRepository.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockConfigurationContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockControllerServiceInitializationContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockEventAccess.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockFlowFile.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockFlowFileQueue.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockProcessContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockProcessSession.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockProcessorInitializationContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockProcessorLog.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockPropertyValue.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockReportingContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockReportingInitializationContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockSessionFactory.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/MockValidationContext.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/ReflectionUtils.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/SharedSessionState.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/SingleSessionFactory.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/TestRunner.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/main/java/org/apache/nifi/util/TestRunners.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/test/java/org/apache/nifi/util/CurrentTestStandardProcessorTestRunner.java (100%) rename {nifi/nifi-mock => nifi-mock}/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/PutS3Object.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/AbstractSNSProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/PutSNS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/AbstractSQSProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestFetchS3Object.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestPutS3Object.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sns/TestPutSNS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/nifi-aws-processors/src/test/resources/hello.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-aws-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-flume-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework-nar/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/RepositoryUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/ActionDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/AuthorityDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DAOFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DataAccessException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/UserDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/DAOFactoryImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardActionDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardAuthorityDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardUserDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountDisabledException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountNotFoundException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountPendingException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AdministrationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AuditService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/UserService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AbstractUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AddActionsAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AdministrationAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeDownloadAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/CreateUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DeleteUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserGroupAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByDnAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByIdAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionsAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetPreviousValues.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUserGroupAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUsersAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/HasPendingUserAccounts.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserAccountAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserGroupAccountsAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/PurgeActionsAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/RequestUserAccountAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/SeedUserAccountsAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserGroupAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAuthoritiesCacheAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserCacheAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserGroupAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardAuditService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardUserService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/Transaction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionBuilder.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransaction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransactionBuilder.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorityProviderFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderConfigurationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/History.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/HistoryQuery.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/PreviousValue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/AccountStatus.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUser.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUserGroup.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/resources/nifi-administration-context.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/xsd/authority-providers.xsd (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/AuthorizeUserActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/CreateUserActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/DisableUserActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/InvalidateUserAccountActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/RequestUserAccountActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SeedUserAccountsActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SetUserAuthoritiesActionTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BannerDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinBoardDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinQueryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ClusterDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ComponentHistoryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectableDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectionDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceReferencingComponentDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CounterDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CountersDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/DocumentedTypeDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FlowSnippetDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FunnelDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/LabelDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NiFiComponentDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeEventDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeSystemDiagnosticsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PortDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PositionDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PreviousValueDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessGroupDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorConfigDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyHistoryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RelationshipDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupContentsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupPortDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ReportingTaskDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RevisionDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SnippetDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SystemDiagnosticsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/TemplateDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserGroupDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/ActionDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryQueryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ComponentDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ExtensionDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/RemoteProcessGroupDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ActionDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConfigureDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConnectDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/MoveDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/PurgeDetailsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/AttributeDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceEventDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceOptionsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceRequestDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceResultsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceSearchableFieldDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageRequestDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageResultsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceLinkDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/ComponentSearchResultDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/NodeSearchResultDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/SearchResultsDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserGroupSearchResultDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserSearchResultDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterConnectionStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterPortStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessGroupStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessorStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterRemoteProcessGroupStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusHistoryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ConnectionStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ControllerStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeConnectionStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodePortStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessGroupStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessorStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeRemoteProcessGroupStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusHistoryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/PortStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessGroupStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessorStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemotePortStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemoteProcessGroupStatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDescriptorDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDetailDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusSnapshotDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/DateTimeAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimeAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimestampAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AboutEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ActionEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AuthorityEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BannerEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BulletinBoardEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterConnectionStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterPortStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessGroupStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessorStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterRemoteProcessGroupStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterSearchResultsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusHistoryEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ComponentHistoryEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerConfigurationEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceReferencingComponentsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceTypesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServicesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CounterEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CountersEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/Entity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FlowSnippetEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/HistoryEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LineageEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeSystemDiagnosticsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PrioritizerTypesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupStatusEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorTypesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PropertyDescriptorEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEventEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceOptionsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupPortEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskTypesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTasksEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SearchResultsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SnippetEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/StatusHistoryEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SystemDiagnosticsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplateEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplatesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserGroupEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserSearchResultsEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UsersEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/ClusterManagerAuthorizationProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/NodeAuthorizationProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/DoesDnExistMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetAuthoritiesMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetGroupForUserMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/ProtocolMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/JaxbProtocolUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/ObjectFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/ConfigurableComponentInitializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocGenerator.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocumentationWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlProcessorDocumentationWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ControllerServiceInitializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ProcessorInitializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ReportingTaskingInitializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockConfigurationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceLookup.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorLogger.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockReportingInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/util/ReflectionUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/DocGeneratorTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ControllerServiceWithLogger.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedControllerService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedReportingTask.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/NakedProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ProcessorWithLogger.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ReportingTaskWithLogger.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/SampleService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/HtmlDocumentationWriterTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/XmlValidator.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/conf/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/example.nar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/jetty.nar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/nifi-framework-nar.nar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/java/org/apache/nifi/authorization/FileAuthorizationProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/xsd/users.xsd (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/test/java/org/apache/nifi/authorization/FileAuthorizationProviderTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ClusterManagerProtocolSender.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionResponse.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/Heartbeat.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeBulletins.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeIdentifier.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeProtocolSender.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolHandler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageMarshaller.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageUnmarshaller.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/StandardDataFlow.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/UnknownServiceAddressException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscovery.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocator.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcaster.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/CopyingInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/JaxbProtocolContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionResponse.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedCounter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedDataFlow.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedHeartbeat.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeBulletins.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeIdentifier.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionRequestAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionResponseAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/DataFlowAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/HeartbeatAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/JaxbProtocolUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeBulletinsAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeIdentifierAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ObjectFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionRequestMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionResponseMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ControllerStartupFailureMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/DisconnectMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ExceptionMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowRequestMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowResponseMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/HeartbeatMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/MulticastProtocolMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/NodeBulletinsMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PingMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PrimaryRoleAssignmentMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ProtocolMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionFailureMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionRequestMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionResponseMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ServiceBroadcastMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/MulticastConfigurationFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/ServerSocketConfigurationFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/SocketConfigurationFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/resources/nifi-cluster-protocol-context.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImplTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscoveryTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocatorTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcasterTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListenerTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImplTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListenerTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/DelayedProtocolHandler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/ReflexiveProtocolHandler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextThreadLocal.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/client/MulticastTestClient.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/Event.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/EventManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/impl/EventManagerImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/ClusterNodeFirewall.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/ClusterDataFlow.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DaoException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowDao.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowManagementService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/PersistedFlowState.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/StaleFlowException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowDaoImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/ClusterManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpClusterManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpRequestReplicator.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpResponseMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/NodeResponse.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/BlockedByFirewallException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ClusterException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ConnectingNodeMutableRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/DisconnectedNodeMutableRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalClusterStateException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDeletionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDisconnectionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeReconnectionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IneligiblePrimaryNodeException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/MutableRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoConnectedNodesException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoResponseFromNodesException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeDisconnectionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeReconnectionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/PrimaryRoleAssignmentException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/SafeModeMutableRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UnknownNodeException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UriConstructionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredEventAccess.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredReportingContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/node/Node.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/ClusterManagerProtocolServiceLocatorFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/WebClusterManagerFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/controller/reporting/ClusteredReportingTaskNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/resources/nifi-cluster-manager-context.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/event/impl/EventManagerImplTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewallTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImplTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImplTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImplTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/TestWebClusterManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponse.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponseAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/empty.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/ips.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/cluster/protocol/DataFlow.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connectable.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/ConnectableType.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connection.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Funnel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Port.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Position.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Size.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractConfiguredComponent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractPort.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ConfiguredComponent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ContentAvailability.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Counter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/EventBasedWorker.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Heartbeater.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessorNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFlowFileQueue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFunnel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ValidationContextFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/WorkerQueue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/CommunicationsException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ComponentLifeCycleException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceAlreadyExistsException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceInstantiationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ProcessorInstantiationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/label/Label.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskInstantiationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/ContentNotFoundException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/CounterRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEvent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEventRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/RepositoryStatusReport.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceReference.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceState.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinProcessingStrategy.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/ComponentBulletin.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/SystemBulletin.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroupCounts.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroup.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroupPortDescriptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogMessage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogObserver.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepositoryFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/PortAuthorizationResult.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteAuthorizationState.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteGroupPort.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RootGroupPort.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/cluster/NodeInformant.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/BadRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/NotAuthorizedException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/RequestExpiredException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/protocol/ServerProtocol.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/BulletinsPayload.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/ConnectionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/DisconnectionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/HeartbeatPayload.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/StandardConnection.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/EventDrivenWorkerQueue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FileSystemSwapManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowFromDOMFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowUnmarshaller.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/SnippetManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardCounter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSerializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSynchronizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardSnippet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/Template.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/UninheritableFlowException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/FlowFileConsumptionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ReportingTaskInstantiationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ValidationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/label/StandardLabel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingTaskNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/BatchingSessionFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ConnectionSwapInfo.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProcessContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProvenanceEventEnricher.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RepositoryPurgeException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RingBufferEventRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardCounterRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileEvent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileRecord.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSessionFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryRecord.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryStatusReport.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileContentRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileFlowFileRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/WriteAheadFlowFileRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/ContentDirection.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaim.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaimManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ArrayManagedOutputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingOutputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseOutputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessOutputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LongHolder.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/MemoryManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/SyncOnCloseOutputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ConnectableProcessContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ProcessContextFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ScheduleState.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/SchedulingAgent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/TimerDrivenSchedulingAgent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ControllerServiceLoader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardConfigurationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceNode.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceReference.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardMetricDescriptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusHistory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusSnapshot.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StatusHistoryUtil.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunConnectableTask.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunProcessorTask.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ExpireFlowFiles.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ReportingTaskWrapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/DiagnosticUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/GarbageCollection.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/StorageUsage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/EncryptionException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/StringEncryptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/engine/FlowEngine.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/NodeBulletinProcessingStrategy.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/VolatileBulletinRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/CommunicationsFailure.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/NetworkTransfer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedBulletin.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedCounter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/BulletinAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/CounterAdapter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycle.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStartException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStopException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ControllerServiceLogObserver.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ProcessorLogObserver.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ReportingTaskLogObserver.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/repository/StandardLogRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetDeserializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetSerializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardXMLFlowConfigurationDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateDeserializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateSerializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/SimpleProcessLogger.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessorInitializationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardPropertyValue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardSchedulingContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContextFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/RemoteNiFiUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroupPortDescriptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/services/FlowService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/FlowControllerFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/RingBufferEventRepositoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/StandardFlowServiceFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ComponentStatusReport.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/Connectables.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/DomUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ReflectionUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/SnippetUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/FlowConfiguration.xsd (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.ContentRepository (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileRepository (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileSwapManager (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.status.history.ComponentStatusRepository (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/nifi-context.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/cluster/HeartbeatPayloadTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardFlowServiceTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/TestFileSystemSwapManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestFileSystemRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestRingBufferEventRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProcessSession.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProvenanceReporter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestVolatileContentRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestWriteAheadFlowFileRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/util/DiskUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/TestStandardProcessScheduler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/TestStandardControllerServiceProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/DummyProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceA.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceB.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/processor/TestStandardPropertyValue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/DataGeneratorTestProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubAttributeLoggerProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubTerminationFileProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/0bytes.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-corrupt.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-inheritable.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-uninheritable.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/only-termination.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/remote-flow.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/standard-flow.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/taskConfig.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/termination-only.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/hello.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi-with-remote.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1a.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1b.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow2.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/old-swap-file.swap (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionMapping.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoaders.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarCloseable.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarThreadContextClassLoader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarUnpacker.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/util/FileUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/conf/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/dummy-one.nar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/nifi-framework-nar.nar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib2/dummy-two.nar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/assembly/dependencies.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/dump-nifi.bat (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/run-nifi.bat (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/status-nifi.bat (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authority-providers.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authorized-users.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-runtime/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/BootstrapListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFiServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/util/LimitingInputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextCreationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactoryCreationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactoryCreationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/test/java/org/apache/nifi/framework/security/util/SslContextFactoryTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ks.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ts.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/log4j.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/controller/util/RemoteProcessGroupUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteSiteListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRemoteGroupPort.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/exception/UnsupportedCodecException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/ClusterManagerServerProtocol.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/SocketFlowFileServerProtocol.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.codec.FlowFileCodec (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ClientProtocol (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ServerProtocol (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/TestSocketChannelStreams.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/ssl/TestSSLSocketChannel.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ks.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ts.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Action.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Component.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Operation.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ComponentDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ExtensionDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/RemoteProcessGroupDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ActionDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConfigureDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConnectDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/MoveDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/PurgeDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletConfigurationRequestContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContextConfig.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/assembly/distribution.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/JettyServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/ServerConfigurationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/resources/org/apache/nifi/web/webdefault.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtension.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtensionMapping.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/aop/MethodProfiler.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerServiceAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/FunnelAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/NiFiAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/PortAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessGroupAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessorAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RelationshipAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RemoteProcessGroupAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ReportingTaskAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/SnippetAuditor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/IllegalClusterResourceRequestException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiCoreException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacadeLock.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/HistoryResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/NodeResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SystemDiagnosticsResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserGroupResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccessDeniedExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccountNotFoundExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AdministrationExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AuthenticationCredentialsNotFoundExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ClusterExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ConnectingNodeMutableRequestExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/DisconnectedNodeMutableRequestExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalArgumentExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterResourceRequestExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterStateExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDeletionExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDisconnectionExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeReconnectionExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalStateExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IneligiblePrimaryNodeExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/InvalidRevisionExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonMappingExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonParseExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/MutableRequestExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NiFiCoreExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoConnectedNodesExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoResponseFromNodesExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeDisconnectionExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeReconnectionExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NotFoundExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/PrimaryRoleAssignmentExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ResourceNotFoundExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/SafeModeMutableRequestExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ThrowableMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/UnknownNodeExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ValidationExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/WebApplicationExceptionMapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/BulletinBoardPatternParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ClientIdParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ConnectableTypeParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DateTimeParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DoubleParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/IntegerParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/LongParameter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/contextlistener/ApplicationStartupContextListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/StandardSearchContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/FunnelDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/LabelDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/PortDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessGroupDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessorDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/RemoteProcessGroupDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ReportingTaskDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/SnippetDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/TemplateDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/ComponentDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardFunnelDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardInputPortDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardLabelDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardOutputPortDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessGroupDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardRemoteProcessGroupDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardTemplateDAO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/NodeRequestFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/RequestLogger.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/ThreadLocalFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/TimerFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ControllerServiceProviderFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/OptimisticLockingManagerFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ReportingTaskProviderFactoryBean.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/Availability.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/ClientResponseUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java (100%) rename {nifi-site/src => nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources}/images/bgNifiLogo.png (100%) rename {nifi-site/src => nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources}/images/nifi16.ico (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/nifi-web-api-context.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/endpoint.hbs (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/example.hbs (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/index.html.hbs (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/operation.hbs (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/type.hbs (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/NiFiWebApiTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/AdminAccessControlTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/DfmAccessControlTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/ReadOnlyAccessControlTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestAuthorizationProvider.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestUser.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/SourceTestProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TerminationTestProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TestPrioritizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/authority-providers.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/controller-services.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ks.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ts.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/reporting-tasks.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentAccess.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentRequestContext.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/DownloadableContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/footer.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/header.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/hexview.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/no-viewer.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/css/main.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.default.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/java/org/apache/nifi/web/docs/DocumentationController.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/no-documentation-found.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgBannerFoot.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgHeader.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgTableHeader.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/java/org/apache/nifi/web/filter/CatchAllFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/index.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/FlowModification.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/OptimisticLockingManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/UpdateRevision.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/DnUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/UntrustedProxyException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/anonymous/NiFiAnonymousUserFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authentication/NiFiAuthenticationEntryPoint.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NodeAuthorizedUserFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserDetails.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/SubjectDnX509PrincipalExtractor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509AuthenticationFilter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509CertificateExtractor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/CertificateStatusException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspCertificateValidator.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspStatus.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/resources/nifi-web-security-context.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationServiceTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/filter/IeEdgeHeader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users-min.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/bulletin-board.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/cluster.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/counters.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/history.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/message-page.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/provenance.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/summary.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/templates.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/users.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-main.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-utility.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/bulletin-board/bulletin-board-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/about-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connection-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connections-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/controller-service-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/enable-controller-service-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/fill-color-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/flow-status.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/instantiate-template-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/label-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-controller-service-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-port-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-process-group-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-processor-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-remote-process-group-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-reporting-task-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-template-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-details.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-details.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/registration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-port-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-details.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-ports.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-configuration.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-details.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/settings-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/shell.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/cluster-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/node-details-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/connection-details.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/counters/counters-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/action-details-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-filter-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-purge-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/message-pane.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/ok-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/lineage-query-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-event-details-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-query-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-search-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/status-history-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-connection-summary-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-input-port-summary-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-output-port-summary-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-process-group-summary-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-processor-summary-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-remote-process-group-summary-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/summary-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/system-diagnostics-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/view-single-node-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/templates/templates-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-revoke-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-roles-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-delete-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-details-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-group-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-revoke-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-roles-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/users-content.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/yes-no-dialog.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/about.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/banner.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/bulletin-board.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/cluster.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-configuration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-details.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/counters.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/dialog.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/flow-status.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/graph.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/history.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/label-configuration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-page.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-pane.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-controller-service-dialog.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-processor-dialog.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-reporting-task-dialog.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-configuration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-details.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-configuration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-details.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-details.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/registration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/remote-process-group-configuration.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reporting-task.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reset.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/shell.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/status-history.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/summary.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/templates.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/users.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/addConnect.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bg-error.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerFoot.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerHead.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBreadcrumbs.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButton.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonOver.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelected.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelectedOver.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgContextMenu.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgControlsInset.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgHeader.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgInputText.png (100%) rename {nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources => nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp}/images/bgNifiLogo.png (100%) mode change 100644 => 100755 rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbar.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbarEdge.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgOutline.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanCenter.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanZoom.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessGroupDetailsArea.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessorStatArea.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgRemoteProcessGroupDetailsArea.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgSearchInput.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgShellClose.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgStatusPanel.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTabContainer.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTableHeader.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgToolbarBtnBorder.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg-over.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonColor.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonCopy.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDelete.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDisable.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonEnable.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonOutline.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanDown.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanLeft.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanRight.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanUp.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPaste.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRefresh.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRun.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonStop.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonTemplate.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoom100.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomFit.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomIn.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomOut.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/cluster.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg-over.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grid.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/headerTabBg.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAdminUser.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlert.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlertDialog.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAutoRefresh.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletin.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletinBoard.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCenterView.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconChart.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClose.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCluster.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClusterSmall.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseChildren.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseParents.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconColor.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCommit.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConfigure.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnect.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnection.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCopy.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCounter.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDelete.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDetails.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisable.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisconnect.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEdit.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEditButton.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEnable.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandChildren.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandParents.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExport.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExportLineage.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFlowSettings.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFunnel.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconGoTo.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconHistory.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInfo.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPort.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPortSmall.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconIsolatedProcessor.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLineage.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLoading.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconMoveToParent.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconNotSecure.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPort.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPortSmall.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPaste.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPopOut.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortNotTransmitting.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortRemoved.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortTransmitting.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPrimary.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessor.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProvenance.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRefresh.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemotePorts.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemoteProcessGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconReporting.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResetCounter.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResize.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRevoke.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRun.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSecure.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallFunnel.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallInputPort.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallOutputPort.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessor.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRelationship.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRemoteProcessGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconStop.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTemplates.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconToFront.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionActive.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionInactive.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTwistArrow.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconUsage.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/inputCheckbox.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/loadAnimation.gif (100%) rename {nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources => nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp}/images/nifi16.ico (100%) mode change 100644 => 100755 rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi_about.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/panelBg.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRemoved.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRunning.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portStopped.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/spacer.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/starburst.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/tabBg.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolbarBg.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconFunnel.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconInputPort.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconLabel.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconOutputPort.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessor.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconRemoteProcessGroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconTemplate.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchDisabled.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchEnabled.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/ungroup.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/fold/foldgutter.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/hint/show-hint.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror-compressed.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/d3.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrow.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrowSmall.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery-2.1.1.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.center.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.count.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.each.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.ellipsis.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.event.drag-2.2.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.form.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.tab.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/buttonNewProperty.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/MIT-LICENSE.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/collapse.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/expand.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-asc.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-desc.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick-default-theme.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick.grid.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.autotooltips.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangedecorator.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangeselector.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellselectionmodel.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.rowselectionmodel.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.core.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.dataview.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.editors.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.formatters.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.grid.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/animated-overlay.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_75_ffffff_40x100.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_65_ffffff_1x400.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_dadada_1x400.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_95_fef1ec_1x400.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_222222_256x240.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_2e83ff_256x240.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_454545_256x240.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_888888_256x240.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_cd0a0a_256x240.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/json2.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/bulletin-board/nf-bulletin-board.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-birdseye.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbox.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-clipboard.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connectable.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-custom-ui.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph-control.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-registration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-search.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-configuration.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-details.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-selectable.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-snippet.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-storage.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-toolbar-action.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-model.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-client.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-namespace.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/nifi-framework/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-framework-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-processors/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/GeoEnrichIP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/maxmind/DatabaseReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/nifi-geo-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-geo-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hadoop-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/CreateHadoopSequenceFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FetchHDFS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FlowFileStreamUnpackerSequenceFileWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFSSequenceFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ListHDFS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/SequenceFileWriterImpl.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/TarUnpackerSequenceFileWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ZipUnpackerSequenceFileWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/ByteFilteringOutputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/InputStreamWritable.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/LongSerDe.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/OutputStreamWritable.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/StringSerDe.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/docs/org.apache.nifi.processors.hadoop.CreateHadoopSequenceFile/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/SimpleHadoopProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestCreateHadoopSequenceFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestListHDFS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site-broken.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545312236534130.tar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545423550275052.zip (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545479542069498.pkg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-2 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-3 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hadoop-libraries-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/ExtractHL7Attributes.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/RouteHL7.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/src/test/java/org/apache/nifi/processors/hl7/TestExtractHL7Attributes.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/nifi-hl7-processors/src/test/resources/hypoglycemia.hl7 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-hl7-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-jetty-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-jetty-bundle/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/GetKafka.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/PutKafka.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.GetKafka/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.PutKafka/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestGetKafka.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestPutKafka.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kafka-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AbstractKiteProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroUtil.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertCSVToAvro.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertJSONToAvro.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/FailureTracker.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/StoreInKiteDataset.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestCSVToAvroProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConfigurationProperty.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestGetSchema.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestJSONToAvroProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteProcessorsCluster.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteStorageProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestUtil.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-kite-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-language-translation-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/YandexTranslate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/model/Translation.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/Languages.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/ObjectMapperResolver.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/nifi-yandex-processors/src/test/java/org/apache/nifi/processors/yandex/TestYandexTranslate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-language-translation-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-mongodb-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/IndexConfiguration.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/RepositoryConfiguration.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/ExpirationAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/FileRemovalAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DeleteIndexAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/FieldNames.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexSearch.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexingAction.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LineageQuery.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LuceneUtil.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReaders.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriters.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocUtil.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestStandardRecordReaderWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestUtil.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocWriter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/java/org/apache/nifi/provenance/VolatileProvenanceRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/java/org/apache/nifi/provenance/TestVolatileProvenanceRepository.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/resources/nifi.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-provenance-repository-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/nifi-social-media-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/nifi-social-media-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/nifi-twitter-processors/.gitignore (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/nifi-twitter-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-social-media-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/GetSolr.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/main/resources/docs/org.apache.nifi.processors.solr.PutSolrContentStream/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/EmbeddedSolrServerFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestGetSolr.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestPutSolrContentStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/log4j.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/solr/solr.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/_rest_managed.json (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/lang/stopwords_en.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/protwords.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/schema.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/solrconfig.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/synonyms.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/core.properties (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-csv-multiple-docs.csv (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-custom-json-single-doc.json (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-solr-json-multiple-docs.json (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-xml-multiple-docs.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-solr-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/META-INF/nifi-content-viewer (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/css/main.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/FirstInFirstOutPrioritizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/NewestFlowFileFirstPrioritizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/OldestFlowFileFirstPrioritizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/main/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DuplicateFlowFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSQueue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FlowFileSessionWrapper.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/NLKBufferedReader.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPKeyBasedEncryptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPPasswordBasedEncryptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/PasswordBasedEncryptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SocksProxySocketFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase64InputStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlElementNotifier.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EncryptContent/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateJsonPath/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpRequest/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpResponse/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.RouteOnAttribute/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestDynamicEnvironment.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestSuccess.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDuplicateFlowFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteSQL.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/UserAgentTestingServlet.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcHugeStream.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted2.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Original.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.bz2 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.gz (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.bz2 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.gz (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt.bz2 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/1000bytes.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestSuccess.jar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/test.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-empty-new-lines (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-extra-info (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary1 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt.asc (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.7z (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.jar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.mdb (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.pdf (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar.gz (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.bz2 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.gz (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.zip (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/bgBannerFoot.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/blueBtnBg.jpg (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev1.tar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev3 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/grid.gif (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/control-characters.json (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/demarcate (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/foot (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/head (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter_noHeader.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noHeader.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/testFile.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/$1$1.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Good.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Spider.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/[DODO].txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu_Po.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/food.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/testFile.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/helloWorld (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/wellthengood-bye (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/1.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/2.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/3.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/4.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/5.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/6.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/original.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xsl (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.csv (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xsl (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev2 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev3 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.tar (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.zip (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/cal.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/date.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/XmlBundle.xsd (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/fruit.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/subNode.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-bundle-1 (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-snippet.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/hello.txt (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ks.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ts.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost.cer (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-processors/src/test/resources/logback-test.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.controller.ControllerStatusReportingTask/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/nifi-standard-reporting-tasks/src/test/java/org/apache/nifi/controller/TestMonitorDiskUsage.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-api/src/main/java/org/apache/nifi/dbcp/DBCPService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystemDescriptor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystems.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DriverShim.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/DBCPServiceTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDatabaseSystems.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-dbcp-service-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Deserializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Serializer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/DeserializationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/SerializationException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/CommsSession.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClientService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/SSLCommsSession.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/StandardCommsSession.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/ProtocolHandshake.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/exception/HandshakeException.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/AbstractCacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheRecord.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedCacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/EvictionPolicy.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/SetCacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCache.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheRecord.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheServer.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapPutResult.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/PersistentMapCache.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/SimpleMapCache.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/PersistentSetCache.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCache.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheRecord.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheResult.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SimpleSetCache.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/java/org/apache/nifi/distributed/cache/server/TestServerAndClient.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ks.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ts.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-api/src/main/java/org/apache/nifi/http/HttpContextMap.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/java/org/apache/nifi/http/StandardHttpContextMap.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-http-context-map-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-load-distribution-service-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionListener.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/TestProcessor.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ks.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ts.jks (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-service-api/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/nifi-standard-services-api-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-standard-services/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Action.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Condition.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Criteria.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/FlowFilePolicy.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Rule.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/serde/CriteriaSerDe.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-nar/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/docs/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/test/java/org/apache/nifi/update/attributes/TestUpdateAttribute.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/nb-configuration.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/ObjectMapperResolver.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ActionDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ConditionDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/DtoFactory.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/RuleDTO.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ActionEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ConditionEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/EvaluationContextEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RuleEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RulesEntity.java (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/LICENSE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/NOTICE (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/META-INF/nifi-processor-configuration (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/jsp/worksheet.jsp (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/web.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/css/main.css (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/bgInputText.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/buttonNew.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconDelete.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconInfo.png (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/js/application.js (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/nifi-update-attribute-bundle/pom.xml (100%) rename {nifi/nifi-nar-bundles => nifi-nar-bundles}/pom.xml (100%) delete mode 100644 nifi-nar-maven-plugin/DISCLAIMER delete mode 100644 nifi-nar-maven-plugin/LICENSE delete mode 100644 nifi-nar-maven-plugin/NOTICE delete mode 100644 nifi-nar-maven-plugin/README.md delete mode 100644 nifi-nar-maven-plugin/pom.xml delete mode 100644 nifi-nar-maven-plugin/src/main/java/org/apache/nifi/NarMojo.java delete mode 100644 nifi-nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml delete mode 100644 nifi-parent/DISCLAIMER delete mode 100644 nifi-parent/LICENSE delete mode 100644 nifi-parent/NOTICE delete mode 100644 nifi-parent/README.md delete mode 100644 nifi-parent/pom.xml delete mode 100644 nifi-site/Gruntfile.js delete mode 100644 nifi-site/LICENSE delete mode 100644 nifi-site/README.md delete mode 100644 nifi-site/bower.json delete mode 100644 nifi-site/config.rb delete mode 100644 nifi-site/package.json delete mode 100644 nifi-site/robots.txt delete mode 100644 nifi-site/src/images/feather-small.gif delete mode 100644 nifi-site/src/images/flow-th.png delete mode 100644 nifi-site/src/images/flow.png delete mode 100644 nifi-site/src/images/niFi-logo-horizontal-scaled.png delete mode 100644 nifi-site/src/images/niFi-logo-horizontal.png delete mode 100644 nifi-site/src/images/nifiDrop.svg delete mode 100644 nifi-site/src/includes/disclaimer.hbs delete mode 100644 nifi-site/src/includes/footer.hbs delete mode 100644 nifi-site/src/includes/header.hbs delete mode 100644 nifi-site/src/includes/topbar.hbs delete mode 100644 nifi-site/src/js/app.js delete mode 100644 nifi-site/src/layouts/html.hbs delete mode 100644 nifi-site/src/layouts/markdown.hbs delete mode 100644 nifi-site/src/pages/html/developer-guide.hbs delete mode 100644 nifi-site/src/pages/html/docs.hbs delete mode 100644 nifi-site/src/pages/html/download.hbs delete mode 100644 nifi-site/src/pages/html/faq.hbs delete mode 100644 nifi-site/src/pages/html/index.hbs delete mode 100644 nifi-site/src/pages/html/mailing_lists.hbs delete mode 100644 nifi-site/src/pages/html/people.hbs delete mode 100644 nifi-site/src/pages/html/screencasts.hbs delete mode 100644 nifi-site/src/pages/markdown/licensing-guide.md delete mode 100644 nifi-site/src/pages/markdown/quickstart.md delete mode 100644 nifi-site/src/pages/markdown/release-guide.md delete mode 100644 nifi-site/src/scss/_settings.scss delete mode 100644 nifi-site/src/scss/app.scss delete mode 100644 nifi/README.md delete mode 100755 nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiLogo.png delete mode 100755 nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi16.ico rename nifi/pom.xml => pom.xml (67%) diff --git a/nifi/LICENSE b/LICENSE similarity index 100% rename from nifi/LICENSE rename to LICENSE diff --git a/nifi/NOTICE b/NOTICE similarity index 100% rename from nifi/NOTICE rename to NOTICE diff --git a/README.md b/README.md index c71bb0fa82..78f2242d17 100644 --- a/README.md +++ b/README.md @@ -18,49 +18,105 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist ## Table of Contents +- [Features](#features) +- [Requirements](#requirements) - [Getting Started](#getting-started) +- [Getting Help](#getting-help) +- [Documentation](#documentation) - [License](#license) +- [Export Control] (#export-control) + +## Features + +Apache NiFi was made for dataflow. It supports highly configurable directed graphs of data routing, transformation, and system mediation logic. Some of its key features include: + +- Web-based user interface + - Seamless experience for design, control, and monitoring +- Highly configurable + - Loss tolerant vs guaranteed delivery + - Low latency vs high throughput + - Dynamic prioritization + - Flows can be modified at runtime + - Back pressure +- Data Provenance + - Track dataflow from beginning to end +- Designed for extension + - Build your own processors and more + - Enables rapid development and effective testing +- Secure + - SSL, SSH, HTTPS, encrypted content, etc... + - Pluggable role-based authentication/authorization + +## Requirements +* JDK 1.7 or higher +* Apache Maven 3.0.5 or higher ## Getting Started -- Read through the [quickstart guide for development](http://nifi.apache.org/quickstart.html). +- Read through the [quickstart guide for development](http://nifi.incubator.apache.org/quickstart.html). It will include information on getting a local copy of the source, give pointers on issue tracking, and provide some warnings about common problems with development environments. - For a more comprehensive guide to development and information about contributing to the project - read through the [NiFi Developer's Guide](http://nifi.apache.org/developer-guide.html). -- Optional: Build supporting modules. This should only be needed if the current 'nifi' module is in - the process of updating to a new version of either the 'nifi-parent' or 'nifi-nar-maven-plugin' - artifacts. + read through the [NiFi Developer's Guide](http://nifi.incubator.apache.org/developer-guide.html). - If in doubt, just skip to building the main nifi project. If the build fails, come back here and - figure out which optional step you are missing; each entry below will give an example of the - errors you'll receive if that step needs to be followed. The version numbers may change but the - error text should still look very familiar. - - Install the nifi-parent pom. Change directory to 'nifi-parent' and follow the directions found - there in [README.md](nifi-parent/README.md). +To build: +- Execute `mvn clean install` or for parallel build execute `mvn -T 2.0C clean install`. On a + modest development laptop that is a couple of years old, the latter build takes a bit under ten + minutes. After a large amount of output you should eventually see a success message. - If you don't build the nifi-parent pom and the main nifi code relies on an unreleased version - you'll see an erorr like the following: + laptop:nifi fhampton$ mvn -T 2.0C clean install + [INFO] Scanning for projects... + [INFO] Inspecting build with total of 115 modules... + ...tens of thousands of lines elided... + [INFO] ------------------------------------------------------------------------ + [INFO] BUILD SUCCESS + [INFO] ------------------------------------------------------------------------ + [INFO] Total time: 09:24 min (Wall Clock) + [INFO] Finished at: 2015-04-30T00:30:36-05:00 + [INFO] Final Memory: 173M/1359M + [INFO] ------------------------------------------------------------------------ - [ERROR] Non-resolvable parent POM: Could not find artifact - org.apache.nifi:nifi-parent:pom:1.0.0-SNAPSHOT in example.snapshots.repo - (https://repository.example.com/content/repositories/snapshots) and - 'parent.relativePath' points at no local POM @ line 18, column 13 -> [Help 2] - - Build the nifi-nar-maven-plugin. Change directory to 'nifi-nar-maven-plugin' and - follow the directions found there in [README.md](nifi-nar-maven-plugin/README.md). +To deploy: +- Change directory to 'nifi-assembly'. In the target directory, there should be a build of nifi. - If you don't build the nifi-nar-maven-plugin and the main nifi code relies on an unreleased - version you'll see an error like the following: + laptop:nifi fhampton$ cd nifi-assembly + laptop:nifi-assembly fhampton$ ls -lhd target/nifi* + drwxr-xr-x 3 fhampton staff 102B Apr 30 00:29 target/nifi-0.1.0-SNAPSHOT-bin + -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-SNAPSHOT-bin.tar.gz + -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-SNAPSHOT-bin.zip - [ERROR] Unresolveable build extension: Plugin - org.apache.nifi:nifi-nar-maven-plugin:1.0.1-SNAPSHOT or one of its - dependencies could not be resolved: Could not find artifact - org.apache.nifi:nifi-nar-maven-plugin:jar:1.0.1-SNAPSHOT -> [Help 2] -- Build nifi. Change directory to 'nifi' and follow the directions found there in - [README.md](nifi/README.md). -- Run NiFi. The directions found in the [README.md](nifi/README.md) file within the 'nifi' module - will also include how to run an instance of NiFi. For help on how to build your first data flow, - see the [NiFi User Guide](http://nifi.apache.org/docs/nifi-docs/user-guide.html). +- For testing ongoing development you could use the already unpacked build present in the directory + named "nifi-*version*-bin", where *version* is the current project version. To deploy in another + location make use of either the tarball or zipfile and unpack them wherever you like. The + distribution will be within a common parent directory named for the version. + + laptop:nifi-assembly fhampton$ mkdir ~/example-nifi-deploy + laptop:nifi-assembly fhampton$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy + laptop:nifi-assembly fhampton$ ls -lh ~/example-nifi-deploy/ + total 0 + drwxr-xr-x 10 fhampton staff 340B Apr 30 01:06 nifi-0.1.0-SNAPSHOT + +To run NiFi: +- Change directory to the location where you installed NiFi and run it. + + laptop:~ fhampton$ cd ~/example-nifi-deploy/nifi-* + laptop:nifi-0.1.0-SNAPSHOT fhampton$ ./bin/nifi.sh start + +- Direct your browser to http://localhost:8080/nifi/ and you should see a screen like this screenshot: + ![image of a NiFi dataflow canvas](nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png?raw=true) + +- For help building your first data flow see the [NiFi User Guide](http://nifi.apache.org/docs/nifi-docs/user-guide.html) + +- If you are testing ongoing development, you will likely want to stop your instance. + + laptop:~ fhampton$ cd ~/example-nifi-deploy/nifi-* + laptop:nifi-0.1.0-SNAPSHOT fhampton$ ./bin/nifi.sh stop + +## Getting Help +If you have questions, you can reach out to our mailing list: dev@nifi.apache.org +([archive](http://mail-archives.apache.org/mod_mbox/nifi-dev)). +We're also often available in IRC: #nifi on +[irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). ## Documentation @@ -83,3 +139,32 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +## Export Control + +This distribution includes cryptographic software. The country in which you +currently reside may have restrictions on the import, possession, use, and/or +re-export to another country, of encryption software. BEFORE using any +encryption software, please check your country's laws, regulations and +policies concerning the import, possession, or use, and re-export of encryption +software, to see if this is permitted. See for more +information. + +The U.S. Government Department of Commerce, Bureau of Industry and Security +(BIS), has classified this software as Export Commodity Control Number (ECCN) +5D002.C.1, which includes information security software using or performing +cryptographic functions with asymmetric algorithms. The form and manner of this +Apache Software Foundation distribution makes it eligible for export under the +License Exception ENC Technology Software Unrestricted (TSU) exception (see the +BIS Export Administration Regulations, Section 740.13) for both object code and +source code. + +The following provides more details on the included cryptographic software: + +Apache NiFi uses BouncyCastle, Jasypt, JCraft Inc., and the built-in +java cryptography libraries for SSL, SSH, and the protection +of sensitive configuration parameters. See +http://bouncycastle.org/about.html +http://www.jasypt.org/faq.html +http://jcraft.com/c-info.html +http://www.oracle.com/us/products/export/export-regulations-345813.html +for more details on each of these libraries cryptography features. diff --git a/nifi/nifi-api/.gitignore b/nifi-api/.gitignore similarity index 100% rename from nifi/nifi-api/.gitignore rename to nifi-api/.gitignore diff --git a/nifi/nifi-api/pom.xml b/nifi-api/pom.xml similarity index 100% rename from nifi/nifi-api/pom.xml rename to nifi-api/pom.xml diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperties.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperties.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperties.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperties.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperty.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperty.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperty.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicProperty.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicRelationship.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicRelationship.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicRelationship.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/DynamicRelationship.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/EventDriven.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/EventDriven.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/EventDriven.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/EventDriven.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttribute.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttribute.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttribute.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttribute.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttributes.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttributes.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttributes.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/ReadsAttributes.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SideEffectFree.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SideEffectFree.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SideEffectFree.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SideEffectFree.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SupportsBatching.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SupportsBatching.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SupportsBatching.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/SupportsBatching.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerSerially.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerSerially.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerSerially.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerSerially.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenAnyDestinationAvailable.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenAnyDestinationAvailable.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenAnyDestinationAvailable.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenAnyDestinationAvailable.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenEmpty.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenEmpty.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenEmpty.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/TriggerWhenEmpty.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttribute.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttribute.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttribute.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttribute.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttributes.java b/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttributes.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttributes.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/behavior/WritesAttributes.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/CapabilityDescription.java b/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/CapabilityDescription.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/CapabilityDescription.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/documentation/CapabilityDescription.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/SeeAlso.java b/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/SeeAlso.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/SeeAlso.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/documentation/SeeAlso.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/Tags.java b/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/Tags.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/documentation/Tags.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/documentation/Tags.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnAdded.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnAdded.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnAdded.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnAdded.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnDisabled.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnDisabled.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnDisabled.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnDisabled.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnEnabled.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnEnabled.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnEnabled.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnEnabled.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnRemoved.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnRemoved.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnRemoved.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnRemoved.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnScheduled.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnScheduled.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnScheduled.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnScheduled.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnShutdown.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnShutdown.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnShutdown.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnShutdown.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnStopped.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnStopped.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnStopped.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnStopped.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnUnscheduled.java b/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnUnscheduled.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnUnscheduled.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/lifecycle/OnUnscheduled.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/notification/OnPrimaryNodeStateChange.java b/nifi-api/src/main/java/org/apache/nifi/annotation/notification/OnPrimaryNodeStateChange.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/notification/OnPrimaryNodeStateChange.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/notification/OnPrimaryNodeStateChange.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/annotation/notification/PrimaryNodeState.java b/nifi-api/src/main/java/org/apache/nifi/annotation/notification/PrimaryNodeState.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/annotation/notification/PrimaryNodeState.java rename to nifi-api/src/main/java/org/apache/nifi/annotation/notification/PrimaryNodeState.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/Authority.java b/nifi-api/src/main/java/org/apache/nifi/authorization/Authority.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/Authority.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/Authority.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProvider.java b/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProvider.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProvider.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProvider.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderConfigurationContext.java b/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderConfigurationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderConfigurationContext.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderConfigurationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderInitializationContext.java b/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderInitializationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderInitializationContext.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderInitializationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderLookup.java b/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderLookup.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderLookup.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/AuthorityProviderLookup.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java b/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/DownloadAuthorization.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/annotation/AuthorityProviderContext.java b/nifi-api/src/main/java/org/apache/nifi/authorization/annotation/AuthorityProviderContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/annotation/AuthorityProviderContext.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/annotation/AuthorityProviderContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/AuthorityAccessException.java b/nifi-api/src/main/java/org/apache/nifi/authorization/exception/AuthorityAccessException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/AuthorityAccessException.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/exception/AuthorityAccessException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/IdentityAlreadyExistsException.java b/nifi-api/src/main/java/org/apache/nifi/authorization/exception/IdentityAlreadyExistsException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/IdentityAlreadyExistsException.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/exception/IdentityAlreadyExistsException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderCreationException.java b/nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderCreationException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderCreationException.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderCreationException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderDestructionException.java b/nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderDestructionException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderDestructionException.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/exception/ProviderDestructionException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/UnknownIdentityException.java b/nifi-api/src/main/java/org/apache/nifi/authorization/exception/UnknownIdentityException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/authorization/exception/UnknownIdentityException.java rename to nifi-api/src/main/java/org/apache/nifi/authorization/exception/UnknownIdentityException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/AbstractConfigurableComponent.java b/nifi-api/src/main/java/org/apache/nifi/components/AbstractConfigurableComponent.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/AbstractConfigurableComponent.java rename to nifi-api/src/main/java/org/apache/nifi/components/AbstractConfigurableComponent.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/AllowableValue.java b/nifi-api/src/main/java/org/apache/nifi/components/AllowableValue.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/AllowableValue.java rename to nifi-api/src/main/java/org/apache/nifi/components/AllowableValue.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/ConfigurableComponent.java b/nifi-api/src/main/java/org/apache/nifi/components/ConfigurableComponent.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/ConfigurableComponent.java rename to nifi-api/src/main/java/org/apache/nifi/components/ConfigurableComponent.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/PropertyDescriptor.java b/nifi-api/src/main/java/org/apache/nifi/components/PropertyDescriptor.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/PropertyDescriptor.java rename to nifi-api/src/main/java/org/apache/nifi/components/PropertyDescriptor.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/PropertyValue.java b/nifi-api/src/main/java/org/apache/nifi/components/PropertyValue.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/PropertyValue.java rename to nifi-api/src/main/java/org/apache/nifi/components/PropertyValue.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/ValidationContext.java b/nifi-api/src/main/java/org/apache/nifi/components/ValidationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/ValidationContext.java rename to nifi-api/src/main/java/org/apache/nifi/components/ValidationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/ValidationResult.java b/nifi-api/src/main/java/org/apache/nifi/components/ValidationResult.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/ValidationResult.java rename to nifi-api/src/main/java/org/apache/nifi/components/ValidationResult.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/components/Validator.java b/nifi-api/src/main/java/org/apache/nifi/components/Validator.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/components/Validator.java rename to nifi-api/src/main/java/org/apache/nifi/components/Validator.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/AbstractControllerService.java b/nifi-api/src/main/java/org/apache/nifi/controller/AbstractControllerService.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/AbstractControllerService.java rename to nifi-api/src/main/java/org/apache/nifi/controller/AbstractControllerService.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/ConfigurationContext.java b/nifi-api/src/main/java/org/apache/nifi/controller/ConfigurationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/ConfigurationContext.java rename to nifi-api/src/main/java/org/apache/nifi/controller/ConfigurationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/ControllerService.java b/nifi-api/src/main/java/org/apache/nifi/controller/ControllerService.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/ControllerService.java rename to nifi-api/src/main/java/org/apache/nifi/controller/ControllerService.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceInitializationContext.java b/nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceInitializationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceInitializationContext.java rename to nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceInitializationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceLookup.java b/nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceLookup.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceLookup.java rename to nifi-api/src/main/java/org/apache/nifi/controller/ControllerServiceLookup.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/FlowFileQueue.java b/nifi-api/src/main/java/org/apache/nifi/controller/FlowFileQueue.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/FlowFileQueue.java rename to nifi-api/src/main/java/org/apache/nifi/controller/FlowFileQueue.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/ScheduledState.java b/nifi-api/src/main/java/org/apache/nifi/controller/ScheduledState.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/ScheduledState.java rename to nifi-api/src/main/java/org/apache/nifi/controller/ScheduledState.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/Snippet.java b/nifi-api/src/main/java/org/apache/nifi/controller/Snippet.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/Snippet.java rename to nifi-api/src/main/java/org/apache/nifi/controller/Snippet.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/Triggerable.java b/nifi-api/src/main/java/org/apache/nifi/controller/Triggerable.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/Triggerable.java rename to nifi-api/src/main/java/org/apache/nifi/controller/Triggerable.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/annotation/OnConfigured.java b/nifi-api/src/main/java/org/apache/nifi/controller/annotation/OnConfigured.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/annotation/OnConfigured.java rename to nifi-api/src/main/java/org/apache/nifi/controller/annotation/OnConfigured.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/ContentRepository.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/ContentRepository.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/ContentRepository.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/ContentRepository.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRecord.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRecord.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRecord.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRecord.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRepository.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRepository.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRepository.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileRepository.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileSwapManager.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileSwapManager.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileSwapManager.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/FlowFileSwapManager.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/QueueProvider.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/QueueProvider.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/QueueProvider.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/QueueProvider.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecord.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecord.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecord.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecord.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecordType.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecordType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecordType.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/RepositoryRecordType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaim.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaim.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaim.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaim.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaimManager.java b/nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaimManager.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaimManager.java rename to nifi-api/src/main/java/org/apache/nifi/controller/repository/claim/ContentClaimManager.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/ConnectionStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/ConnectionStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/ConnectionStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/ConnectionStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/PortStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/PortStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/PortStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/PortStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessGroupStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessGroupStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessGroupStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessGroupStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessorStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessorStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessorStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/ProcessorStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/RemoteProcessGroupStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/RemoteProcessGroupStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/RemoteProcessGroupStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/RemoteProcessGroupStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/RunStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/RunStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/RunStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/RunStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/TransmissionStatus.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/TransmissionStatus.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/TransmissionStatus.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/TransmissionStatus.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ComponentStatusRepository.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ComponentStatusRepository.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ComponentStatusRepository.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/history/ComponentStatusRepository.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/MetricDescriptor.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/history/MetricDescriptor.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/MetricDescriptor.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/history/MetricDescriptor.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusHistory.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusHistory.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusHistory.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusHistory.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusSnapshot.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusSnapshot.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusSnapshot.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/history/StatusSnapshot.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueMapper.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueMapper.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueMapper.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueMapper.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueReducer.java b/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueReducer.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueReducer.java rename to nifi-api/src/main/java/org/apache/nifi/controller/status/history/ValueReducer.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java b/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java rename to nifi-api/src/main/java/org/apache/nifi/events/EventReporter.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/expression/AttributeExpression.java b/nifi-api/src/main/java/org/apache/nifi/expression/AttributeExpression.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/expression/AttributeExpression.java rename to nifi-api/src/main/java/org/apache/nifi/expression/AttributeExpression.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/expression/AttributeValueDecorator.java b/nifi-api/src/main/java/org/apache/nifi/expression/AttributeValueDecorator.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/expression/AttributeValueDecorator.java rename to nifi-api/src/main/java/org/apache/nifi/expression/AttributeValueDecorator.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/expression/ExpressionLanguageCompiler.java b/nifi-api/src/main/java/org/apache/nifi/expression/ExpressionLanguageCompiler.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/expression/ExpressionLanguageCompiler.java rename to nifi-api/src/main/java/org/apache/nifi/expression/ExpressionLanguageCompiler.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFile.java b/nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFile.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFile.java rename to nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFile.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFilePrioritizer.java b/nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFilePrioritizer.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFilePrioritizer.java rename to nifi-api/src/main/java/org/apache/nifi/flowfile/FlowFilePrioritizer.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/logging/ComponentLog.java b/nifi-api/src/main/java/org/apache/nifi/logging/ComponentLog.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/logging/ComponentLog.java rename to nifi-api/src/main/java/org/apache/nifi/logging/ComponentLog.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/logging/LogLevel.java b/nifi-api/src/main/java/org/apache/nifi/logging/LogLevel.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/logging/LogLevel.java rename to nifi-api/src/main/java/org/apache/nifi/logging/LogLevel.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/logging/ProcessorLog.java b/nifi-api/src/main/java/org/apache/nifi/logging/ProcessorLog.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/logging/ProcessorLog.java rename to nifi-api/src/main/java/org/apache/nifi/logging/ProcessorLog.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/AbstractProcessor.java b/nifi-api/src/main/java/org/apache/nifi/processor/AbstractProcessor.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/AbstractProcessor.java rename to nifi-api/src/main/java/org/apache/nifi/processor/AbstractProcessor.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/AbstractSessionFactoryProcessor.java b/nifi-api/src/main/java/org/apache/nifi/processor/AbstractSessionFactoryProcessor.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/AbstractSessionFactoryProcessor.java rename to nifi-api/src/main/java/org/apache/nifi/processor/AbstractSessionFactoryProcessor.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/DataUnit.java b/nifi-api/src/main/java/org/apache/nifi/processor/DataUnit.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/DataUnit.java rename to nifi-api/src/main/java/org/apache/nifi/processor/DataUnit.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/FlowFileFilter.java b/nifi-api/src/main/java/org/apache/nifi/processor/FlowFileFilter.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/FlowFileFilter.java rename to nifi-api/src/main/java/org/apache/nifi/processor/FlowFileFilter.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java rename to nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessSession.java b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessSession.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessSession.java rename to nifi-api/src/main/java/org/apache/nifi/processor/ProcessSession.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessSessionFactory.java b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessSessionFactory.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessSessionFactory.java rename to nifi-api/src/main/java/org/apache/nifi/processor/ProcessSessionFactory.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/Processor.java b/nifi-api/src/main/java/org/apache/nifi/processor/Processor.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/Processor.java rename to nifi-api/src/main/java/org/apache/nifi/processor/Processor.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessorInitializationContext.java b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessorInitializationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/ProcessorInitializationContext.java rename to nifi-api/src/main/java/org/apache/nifi/processor/ProcessorInitializationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/QueueSize.java b/nifi-api/src/main/java/org/apache/nifi/processor/QueueSize.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/QueueSize.java rename to nifi-api/src/main/java/org/apache/nifi/processor/QueueSize.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java b/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java rename to nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/SchedulingContext.java b/nifi-api/src/main/java/org/apache/nifi/processor/SchedulingContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/SchedulingContext.java rename to nifi-api/src/main/java/org/apache/nifi/processor/SchedulingContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/CapabilityDescription.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/CapabilityDescription.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/CapabilityDescription.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/CapabilityDescription.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/EventDriven.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/EventDriven.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/EventDriven.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/EventDriven.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnAdded.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnAdded.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnAdded.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnAdded.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnRemoved.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnRemoved.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnRemoved.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnRemoved.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnScheduled.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnScheduled.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnScheduled.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnScheduled.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnShutdown.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnShutdown.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnShutdown.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnShutdown.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnStopped.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnStopped.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnStopped.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnStopped.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnUnscheduled.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnUnscheduled.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnUnscheduled.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/OnUnscheduled.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/SideEffectFree.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/SideEffectFree.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/SideEffectFree.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/SideEffectFree.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/SupportsBatching.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/SupportsBatching.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/SupportsBatching.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/SupportsBatching.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/Tags.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/Tags.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/Tags.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/Tags.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerSerially.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerSerially.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerSerially.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerSerially.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenAnyDestinationAvailable.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenAnyDestinationAvailable.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenAnyDestinationAvailable.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenAnyDestinationAvailable.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenEmpty.java b/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenEmpty.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenEmpty.java rename to nifi-api/src/main/java/org/apache/nifi/processor/annotation/TriggerWhenEmpty.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileAccessException.java b/nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileAccessException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileAccessException.java rename to nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileAccessException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileHandlingException.java b/nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileHandlingException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileHandlingException.java rename to nifi-api/src/main/java/org/apache/nifi/processor/exception/FlowFileHandlingException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/MissingFlowFileException.java b/nifi-api/src/main/java/org/apache/nifi/processor/exception/MissingFlowFileException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/MissingFlowFileException.java rename to nifi-api/src/main/java/org/apache/nifi/processor/exception/MissingFlowFileException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/ProcessException.java b/nifi-api/src/main/java/org/apache/nifi/processor/exception/ProcessException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/exception/ProcessException.java rename to nifi-api/src/main/java/org/apache/nifi/processor/exception/ProcessException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/io/InputStreamCallback.java b/nifi-api/src/main/java/org/apache/nifi/processor/io/InputStreamCallback.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/io/InputStreamCallback.java rename to nifi-api/src/main/java/org/apache/nifi/processor/io/InputStreamCallback.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/io/OutputStreamCallback.java b/nifi-api/src/main/java/org/apache/nifi/processor/io/OutputStreamCallback.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/io/OutputStreamCallback.java rename to nifi-api/src/main/java/org/apache/nifi/processor/io/OutputStreamCallback.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/processor/io/StreamCallback.java b/nifi-api/src/main/java/org/apache/nifi/processor/io/StreamCallback.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/processor/io/StreamCallback.java rename to nifi-api/src/main/java/org/apache/nifi/processor/io/StreamCallback.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventBuilder.java b/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventBuilder.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventBuilder.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventBuilder.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java b/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRecord.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRepository.java b/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRepository.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRepository.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventRepository.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventType.java b/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventType.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceEventType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceReporter.java b/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceReporter.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceReporter.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/ProvenanceReporter.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageResult.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageResult.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageResult.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageResult.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageSubmission.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageSubmission.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageSubmission.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ComputeLineageSubmission.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/Lineage.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/Lineage.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/Lineage.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/Lineage.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageComputationType.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageComputationType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageComputationType.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageComputationType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageEdge.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageEdge.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageEdge.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageEdge.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNode.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNode.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNode.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNode.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNodeType.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNodeType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNodeType.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/LineageNodeType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java b/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/Query.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/Query.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/Query.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/Query.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/QueryResult.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/QueryResult.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/QueryResult.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/QueryResult.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/QuerySubmission.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/QuerySubmission.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/QuerySubmission.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/QuerySubmission.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerm.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerm.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerm.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerm.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerms.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerms.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerms.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchTerms.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableField.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableField.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableField.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableField.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableFieldType.java b/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableFieldType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableFieldType.java rename to nifi-api/src/main/java/org/apache/nifi/provenance/search/SearchableFieldType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/remote/RemoteDestination.java b/nifi-api/src/main/java/org/apache/nifi/remote/RemoteDestination.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/remote/RemoteDestination.java rename to nifi-api/src/main/java/org/apache/nifi/remote/RemoteDestination.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/AbstractReportingTask.java b/nifi-api/src/main/java/org/apache/nifi/reporting/AbstractReportingTask.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/AbstractReportingTask.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/AbstractReportingTask.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java b/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/Bulletin.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/BulletinQuery.java b/nifi-api/src/main/java/org/apache/nifi/reporting/BulletinQuery.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/BulletinQuery.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/BulletinQuery.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/BulletinRepository.java b/nifi-api/src/main/java/org/apache/nifi/reporting/BulletinRepository.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/BulletinRepository.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/BulletinRepository.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ComponentType.java b/nifi-api/src/main/java/org/apache/nifi/reporting/ComponentType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ComponentType.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/ComponentType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/EventAccess.java b/nifi-api/src/main/java/org/apache/nifi/reporting/EventAccess.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/EventAccess.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/EventAccess.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/InitializationException.java b/nifi-api/src/main/java/org/apache/nifi/reporting/InitializationException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/InitializationException.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/InitializationException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingContext.java b/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingContext.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/ReportingContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingInitializationContext.java b/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingInitializationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingInitializationContext.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/ReportingInitializationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingTask.java b/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingTask.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/ReportingTask.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/ReportingTask.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/reporting/Severity.java b/nifi-api/src/main/java/org/apache/nifi/reporting/Severity.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/reporting/Severity.java rename to nifi-api/src/main/java/org/apache/nifi/reporting/Severity.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/scheduling/SchedulingStrategy.java b/nifi-api/src/main/java/org/apache/nifi/scheduling/SchedulingStrategy.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/scheduling/SchedulingStrategy.java rename to nifi-api/src/main/java/org/apache/nifi/scheduling/SchedulingStrategy.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/search/SearchContext.java b/nifi-api/src/main/java/org/apache/nifi/search/SearchContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/search/SearchContext.java rename to nifi-api/src/main/java/org/apache/nifi/search/SearchContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/search/SearchResult.java b/nifi-api/src/main/java/org/apache/nifi/search/SearchResult.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/search/SearchResult.java rename to nifi-api/src/main/java/org/apache/nifi/search/SearchResult.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/search/Searchable.java b/nifi-api/src/main/java/org/apache/nifi/search/Searchable.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/search/Searchable.java rename to nifi-api/src/main/java/org/apache/nifi/search/Searchable.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java b/nifi-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java rename to nifi-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ComponentDetails.java b/nifi-api/src/main/java/org/apache/nifi/web/ComponentDetails.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ComponentDetails.java rename to nifi-api/src/main/java/org/apache/nifi/web/ComponentDetails.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ConfigurationAction.java b/nifi-api/src/main/java/org/apache/nifi/web/ConfigurationAction.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ConfigurationAction.java rename to nifi-api/src/main/java/org/apache/nifi/web/ConfigurationAction.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/InvalidRevisionException.java b/nifi-api/src/main/java/org/apache/nifi/web/InvalidRevisionException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/InvalidRevisionException.java rename to nifi-api/src/main/java/org/apache/nifi/web/InvalidRevisionException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationContext.java b/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationContext.java rename to nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationRequestContext.java b/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationRequestContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationRequestContext.java rename to nifi-api/src/main/java/org/apache/nifi/web/NiFiWebConfigurationRequestContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContext.java b/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContext.java rename to nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContextConfig.java b/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContextConfig.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContextConfig.java rename to nifi-api/src/main/java/org/apache/nifi/web/NiFiWebContextConfig.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebRequestContext.java b/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebRequestContext.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/NiFiWebRequestContext.java rename to nifi-api/src/main/java/org/apache/nifi/web/NiFiWebRequestContext.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ProcessorConfigurationAction.java b/nifi-api/src/main/java/org/apache/nifi/web/ProcessorConfigurationAction.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ProcessorConfigurationAction.java rename to nifi-api/src/main/java/org/apache/nifi/web/ProcessorConfigurationAction.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ProcessorInfo.java b/nifi-api/src/main/java/org/apache/nifi/web/ProcessorInfo.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ProcessorInfo.java rename to nifi-api/src/main/java/org/apache/nifi/web/ProcessorInfo.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ResourceNotFoundException.java b/nifi-api/src/main/java/org/apache/nifi/web/ResourceNotFoundException.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ResourceNotFoundException.java rename to nifi-api/src/main/java/org/apache/nifi/web/ResourceNotFoundException.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/Revision.java b/nifi-api/src/main/java/org/apache/nifi/web/Revision.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/Revision.java rename to nifi-api/src/main/java/org/apache/nifi/web/Revision.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/UiExtensionType.java b/nifi-api/src/main/java/org/apache/nifi/web/UiExtensionType.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/UiExtensionType.java rename to nifi-api/src/main/java/org/apache/nifi/web/UiExtensionType.java diff --git a/nifi/nifi-api/src/main/java/org/apache/nifi/web/ViewableContent.java b/nifi-api/src/main/java/org/apache/nifi/web/ViewableContent.java similarity index 100% rename from nifi/nifi-api/src/main/java/org/apache/nifi/web/ViewableContent.java rename to nifi-api/src/main/java/org/apache/nifi/web/ViewableContent.java diff --git a/nifi/nifi-api/src/test/java/org/apache/nifi/components/TestPropertyDescriptor.java b/nifi-api/src/test/java/org/apache/nifi/components/TestPropertyDescriptor.java similarity index 100% rename from nifi/nifi-api/src/test/java/org/apache/nifi/components/TestPropertyDescriptor.java rename to nifi-api/src/test/java/org/apache/nifi/components/TestPropertyDescriptor.java diff --git a/nifi/nifi-api/src/test/java/org/apache/nifi/processor/TestDataUnit.java b/nifi-api/src/test/java/org/apache/nifi/processor/TestDataUnit.java similarity index 100% rename from nifi/nifi-api/src/test/java/org/apache/nifi/processor/TestDataUnit.java rename to nifi-api/src/test/java/org/apache/nifi/processor/TestDataUnit.java diff --git a/nifi/nifi-api/src/test/resources/logback-test.xml b/nifi-api/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-api/src/test/resources/logback-test.xml rename to nifi-api/src/test/resources/logback-test.xml diff --git a/nifi/nifi-assembly/LICENSE b/nifi-assembly/LICENSE similarity index 100% rename from nifi/nifi-assembly/LICENSE rename to nifi-assembly/LICENSE diff --git a/nifi/nifi-assembly/NOTICE b/nifi-assembly/NOTICE similarity index 100% rename from nifi/nifi-assembly/NOTICE rename to nifi-assembly/NOTICE diff --git a/nifi/nifi-assembly/README.md b/nifi-assembly/README.md similarity index 100% rename from nifi/nifi-assembly/README.md rename to nifi-assembly/README.md diff --git a/nifi/nifi-assembly/pom.xml b/nifi-assembly/pom.xml similarity index 100% rename from nifi/nifi-assembly/pom.xml rename to nifi-assembly/pom.xml diff --git a/nifi/nifi-assembly/src/main/assembly/dependencies.xml b/nifi-assembly/src/main/assembly/dependencies.xml similarity index 100% rename from nifi/nifi-assembly/src/main/assembly/dependencies.xml rename to nifi-assembly/src/main/assembly/dependencies.xml diff --git a/nifi/nifi-bootstrap/pom.xml b/nifi-bootstrap/pom.xml similarity index 100% rename from nifi/nifi-bootstrap/pom.xml rename to nifi-bootstrap/pom.xml diff --git a/nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/BootstrapCodec.java b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/BootstrapCodec.java similarity index 100% rename from nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/BootstrapCodec.java rename to nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/BootstrapCodec.java diff --git a/nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/NiFiListener.java b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/NiFiListener.java similarity index 100% rename from nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/NiFiListener.java rename to nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/NiFiListener.java diff --git a/nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java similarity index 100% rename from nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java rename to nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunNiFi.java diff --git a/nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/ShutdownHook.java b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/ShutdownHook.java similarity index 100% rename from nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/ShutdownHook.java rename to nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/ShutdownHook.java diff --git a/nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/exception/InvalidCommandException.java b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/exception/InvalidCommandException.java similarity index 100% rename from nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/exception/InvalidCommandException.java rename to nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/exception/InvalidCommandException.java diff --git a/nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/util/LimitingInputStream.java b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/util/LimitingInputStream.java similarity index 100% rename from nifi/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/util/LimitingInputStream.java rename to nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/util/LimitingInputStream.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/.gitignore b/nifi-commons/nifi-data-provenance-utils/.gitignore similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/.gitignore rename to nifi-commons/nifi-data-provenance-utils/.gitignore diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml b/nifi-commons/nifi-data-provenance-utils/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/pom.xml rename to nifi-commons/nifi-data-provenance-utils/pom.xml diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncLineageSubmission.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncLineageSubmission.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncLineageSubmission.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncLineageSubmission.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncQuerySubmission.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncQuerySubmission.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncQuerySubmission.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/AsyncQuerySubmission.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/NamedSearchableField.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/NamedSearchableField.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/NamedSearchableField.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/NamedSearchableField.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFieldParser.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFieldParser.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFieldParser.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFieldParser.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFields.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFields.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFields.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/SearchableFields.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardLineageResult.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardProvenanceEventRecord.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardQueryResult.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardQueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardQueryResult.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/StandardQueryResult.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EdgeNode.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EdgeNode.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EdgeNode.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EdgeNode.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileLineage.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileLineage.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileLineage.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileLineage.java diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileNode.java b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileNode.java similarity index 100% rename from nifi/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileNode.java rename to nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/FlowFileNode.java diff --git a/nifi/nifi-commons/nifi-expression-language/pom.xml b/nifi-commons/nifi-expression-language/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/pom.xml rename to nifi-commons/nifi-expression-language/pom.xml diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g b/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g rename to nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionLexer.g diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g b/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g rename to nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/AttributeExpressionParser.g diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/output/AttributeExpressionLexer.tokens b/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/output/AttributeExpressionLexer.tokens similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/output/AttributeExpressionLexer.tokens rename to nifi-commons/nifi-expression-language/src/main/antlr3/org/apache/nifi/attribute/expression/language/antlr/output/AttributeExpressionLexer.tokens diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/EmptyPreparedQuery.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/EmptyPreparedQuery.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/EmptyPreparedQuery.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/EmptyPreparedQuery.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/InvalidPreparedQuery.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/InvalidPreparedQuery.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/InvalidPreparedQuery.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/InvalidPreparedQuery.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/PreparedQuery.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/PreparedQuery.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/PreparedQuery.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/PreparedQuery.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/Query.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardAttributeExpression.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardAttributeExpression.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardAttributeExpression.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardAttributeExpression.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardExpressionLanguageCompiler.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardExpressionLanguageCompiler.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardExpressionLanguageCompiler.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardExpressionLanguageCompiler.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardPreparedQuery.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardPreparedQuery.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardPreparedQuery.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/StandardPreparedQuery.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanQueryResult.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanQueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanQueryResult.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/BooleanQueryResult.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateQueryResult.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateQueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateQueryResult.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/DateQueryResult.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/Evaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberQueryResult.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberQueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberQueryResult.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/NumberQueryResult.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/QueryResult.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/QueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/QueryResult.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/QueryResult.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringQueryResult.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringQueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringQueryResult.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/StringQueryResult.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/BooleanCastEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/BooleanCastEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/BooleanCastEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/BooleanCastEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/DateCastEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/DateCastEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/DateCastEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/DateCastEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/NumberCastEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/NumberCastEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/NumberCastEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/NumberCastEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/StringCastEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/StringCastEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/StringCastEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/cast/StringCastEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AndEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AppendEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/AttributeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ContainsEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DateToNumberEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DateToNumberEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DateToNumberEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DateToNumberEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/DivideEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EndsWithEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsIgnoreCaseEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsIgnoreCaseEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsIgnoreCaseEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/EqualsIgnoreCaseEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FindEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/FormatEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/GreaterThanOrEqualEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/HostnameEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/HostnameEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/HostnameEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/HostnameEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IPEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IPEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IPEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IPEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IndexOfEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsNullEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsNullEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsNullEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsNullEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LastIndexOfEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LengthEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/LessThanOrEqualEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MatchesEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MinusEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ModEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/MultiplyEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotNullEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotNullEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotNullEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NotNullEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NowEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NowEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NowEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NowEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OneUpSequenceEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OneUpSequenceEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OneUpSequenceEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OneUpSequenceEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/OrEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PlusEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PlusEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PlusEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PlusEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PrependEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PrependEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PrependEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/PrependEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceAllEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceAllEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceAllEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceAllEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceNullEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceNullEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceNullEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceNullEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StartsWithEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StartsWithEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StartsWithEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StartsWithEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StringToDateEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StringToDateEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StringToDateEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/StringToDateEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterLastEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterLastEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterLastEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringAfterLastEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeLastEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeLastEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeLastEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringBeforeLastEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/SubstringEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToLowerEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToLowerEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToLowerEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToLowerEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToNumberEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToNumberEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToNumberEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToNumberEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToRadixEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToRadixEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToRadixEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToRadixEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToStringEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToStringEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToStringEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToStringEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToUpperEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToUpperEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToUpperEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ToUpperEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/TrimEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/TrimEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/TrimEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/TrimEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlDecodeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlDecodeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlDecodeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlDecodeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlEncodeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlEncodeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlEncodeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UrlEncodeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UuidEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UuidEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UuidEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/UuidEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/BooleanLiteralEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/BooleanLiteralEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/BooleanLiteralEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/BooleanLiteralEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/NumberLiteralEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/NumberLiteralEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/NumberLiteralEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/NumberLiteralEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/StringLiteralEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/StringLiteralEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/StringLiteralEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/StringLiteralEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/ToLiteralEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/ToLiteralEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/ToLiteralEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/literals/ToLiteralEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/CountEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/CountEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/CountEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/CountEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/JoinEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/JoinEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/JoinEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/JoinEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/ReduceEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/ReduceEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/ReduceEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/reduce/ReduceEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AllAttributesEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AllAttributesEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AllAttributesEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AllAttributesEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AnyAttributeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AnyAttributeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AnyAttributeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/AnyAttributeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/DelineatedAttributeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/DelineatedAttributeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/DelineatedAttributeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/DelineatedAttributeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/IteratingEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/IteratingEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/IteratingEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/IteratingEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MappingEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MappingEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MappingEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MappingEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiAttributeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiAttributeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiAttributeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiAttributeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiMatchAttributeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiMatchAttributeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiMatchAttributeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiMatchAttributeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiNamedAttributeEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiNamedAttributeEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiNamedAttributeEvaluator.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/selection/MultiNamedAttributeEvaluator.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageException.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageException.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageException.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageException.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageParsingException.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageParsingException.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageParsingException.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/AttributeExpressionLanguageParsingException.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/IllegalAttributeException.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/IllegalAttributeException.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/IllegalAttributeException.java rename to nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/exception/IllegalAttributeException.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java b/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java rename to nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java diff --git a/nifi/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestStandardPreparedQuery.java b/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestStandardPreparedQuery.java similarity index 100% rename from nifi/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestStandardPreparedQuery.java rename to nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestStandardPreparedQuery.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml b/nifi-commons/nifi-flowfile-packager/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/pom.xml rename to nifi-commons/nifi-flowfile-packager/pom.xml diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackager.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackager.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackager.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackager.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV1.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV1.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV1.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV1.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV2.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV2.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV2.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV2.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV3.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV3.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV3.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFilePackagerV3.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackager.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackager.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackager.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackager.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV1.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV1.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV1.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV1.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV2.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV2.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV2.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV2.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV3.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV3.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV3.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/FlowFileUnpackagerV3.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/Unpackage.java b/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/Unpackage.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/Unpackage.java rename to nifi-commons/nifi-flowfile-packager/src/main/java/org/apache/nifi/util/Unpackage.java diff --git a/nifi/nifi-commons/nifi-flowfile-packager/src/test/java/org/apache/nifi/util/TestPackageUnpackageV3.java b/nifi-commons/nifi-flowfile-packager/src/test/java/org/apache/nifi/util/TestPackageUnpackageV3.java similarity index 100% rename from nifi/nifi-commons/nifi-flowfile-packager/src/test/java/org/apache/nifi/util/TestPackageUnpackageV3.java rename to nifi-commons/nifi-flowfile-packager/src/test/java/org/apache/nifi/util/TestPackageUnpackageV3.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/.gitignore b/nifi-commons/nifi-hl7-query-language/.gitignore similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/.gitignore rename to nifi-commons/nifi-hl7-query-language/.gitignore diff --git a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml b/nifi-commons/nifi-hl7-query-language/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/pom.xml rename to nifi-commons/nifi-hl7-query-language/pom.xml diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryLexer.g b/nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryLexer.g similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryLexer.g rename to nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryLexer.g diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryParser.g b/nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryParser.g similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryParser.g rename to nifi-commons/nifi-hl7-query-language/src/main/antlr3/org/apache/nifi/hl7/query/antlr/HL7QueryParser.g diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/EmptyField.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/EmptyField.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/EmptyField.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/EmptyField.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiField.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiField.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiField.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiField.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiMessage.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiMessage.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiMessage.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiMessage.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiSegment.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiSegment.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiSegment.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/HapiSegment.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/SingleValueField.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/SingleValueField.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/SingleValueField.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/hapi/SingleValueField.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/HL7Reader.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/HL7Reader.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/HL7Reader.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/HL7Reader.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/exception/InvalidHL7Exception.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/exception/InvalidHL7Exception.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/exception/InvalidHL7Exception.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/io/exception/InvalidHL7Exception.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Component.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Component.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Component.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Component.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Field.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Field.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Field.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Field.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Message.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Message.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Message.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Message.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Segment.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Segment.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Segment.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/model/HL7Segment.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Declaration.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Declaration.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Declaration.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Declaration.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/HL7Query.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/HL7Query.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/HL7Query.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/HL7Query.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/QueryResult.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/QueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/QueryResult.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/QueryResult.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/ResultHit.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/ResultHit.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/ResultHit.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/ResultHit.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Selection.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Selection.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Selection.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/Selection.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/BooleanEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/BooleanEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/BooleanEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/BooleanEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/Evaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/Evaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/Evaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/Evaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/IntegerEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/IntegerEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/IntegerEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/IntegerEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/StringEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/StringEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/StringEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/StringEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractComparisonEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractComparisonEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractComparisonEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractComparisonEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractNumericComparison.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractNumericComparison.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractNumericComparison.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/AbstractNumericComparison.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/EqualsEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/EqualsEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/EqualsEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/EqualsEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanOrEqualEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanOrEqualEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanOrEqualEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/GreaterThanOrEqualEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/IsNullEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/IsNullEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/IsNullEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/IsNullEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanOrEqualEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanOrEqualEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanOrEqualEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/LessThanOrEqualEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEqualsEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEqualsEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEqualsEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEqualsEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotNullEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotNullEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotNullEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/comparison/NotNullEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/IntegerLiteralEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/IntegerLiteralEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/IntegerLiteralEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/IntegerLiteralEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/StringLiteralEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/StringLiteralEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/StringLiteralEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/literal/StringLiteralEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/AndEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/AndEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/AndEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/AndEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/OrEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/OrEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/OrEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/logic/OrEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DeclaredReferenceEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DeclaredReferenceEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DeclaredReferenceEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DeclaredReferenceEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DotEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DotEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DotEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/DotEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/FieldEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/FieldEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/FieldEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/FieldEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/MessageEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/MessageEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/MessageEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/MessageEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/SegmentEvaluator.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/SegmentEvaluator.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/SegmentEvaluator.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/evaluator/message/SegmentEvaluator.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/exception/HL7QueryParsingException.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/exception/HL7QueryParsingException.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/exception/HL7QueryParsingException.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/exception/HL7QueryParsingException.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/MissedResult.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/MissedResult.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/MissedResult.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/MissedResult.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardQueryResult.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardQueryResult.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardQueryResult.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardQueryResult.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardResultHit.java b/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardResultHit.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardResultHit.java rename to nifi-commons/nifi-hl7-query-language/src/main/java/org/apache/nifi/hl7/query/result/StandardResultHit.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/test/java/org/apache/nifi/hl7/query/TestHL7Query.java b/nifi-commons/nifi-hl7-query-language/src/test/java/org/apache/nifi/hl7/query/TestHL7Query.java similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/test/java/org/apache/nifi/hl7/query/TestHL7Query.java rename to nifi-commons/nifi-hl7-query-language/src/test/java/org/apache/nifi/hl7/query/TestHL7Query.java diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/test/resources/hyperglycemia b/nifi-commons/nifi-hl7-query-language/src/test/resources/hyperglycemia similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/test/resources/hyperglycemia rename to nifi-commons/nifi-hl7-query-language/src/test/resources/hyperglycemia diff --git a/nifi/nifi-commons/nifi-hl7-query-language/src/test/resources/hypoglycemia b/nifi-commons/nifi-hl7-query-language/src/test/resources/hypoglycemia similarity index 100% rename from nifi/nifi-commons/nifi-hl7-query-language/src/test/resources/hypoglycemia rename to nifi-commons/nifi-hl7-query-language/src/test/resources/hypoglycemia diff --git a/nifi/nifi-commons/nifi-logging-utils/pom.xml b/nifi-commons/nifi-logging-utils/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-logging-utils/pom.xml rename to nifi-commons/nifi-logging-utils/pom.xml diff --git a/nifi/nifi-commons/nifi-logging-utils/src/main/java/org/apache/nifi/logging/NiFiLog.java b/nifi-commons/nifi-logging-utils/src/main/java/org/apache/nifi/logging/NiFiLog.java similarity index 100% rename from nifi/nifi-commons/nifi-logging-utils/src/main/java/org/apache/nifi/logging/NiFiLog.java rename to nifi-commons/nifi-logging-utils/src/main/java/org/apache/nifi/logging/NiFiLog.java diff --git a/nifi/nifi-commons/nifi-processor-utilities/pom.xml b/nifi-commons/nifi-processor-utilities/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-processor-utilities/pom.xml rename to nifi-commons/nifi-processor-utilities/pom.xml diff --git a/nifi/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/FlowFileFilters.java b/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/FlowFileFilters.java similarity index 100% rename from nifi/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/FlowFileFilters.java rename to nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/FlowFileFilters.java diff --git a/nifi/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/SSLProperties.java b/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/SSLProperties.java similarity index 100% rename from nifi/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/SSLProperties.java rename to nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/SSLProperties.java diff --git a/nifi/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/StandardValidators.java b/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/StandardValidators.java similarity index 100% rename from nifi/nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/StandardValidators.java rename to nifi-commons/nifi-processor-utilities/src/main/java/org/apache/nifi/processor/util/StandardValidators.java diff --git a/nifi/nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/TestFormatUtils.java b/nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/TestFormatUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/TestFormatUtils.java rename to nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/TestFormatUtils.java diff --git a/nifi/nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/util/TestStandardValidators.java b/nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/util/TestStandardValidators.java similarity index 100% rename from nifi/nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/util/TestStandardValidators.java rename to nifi-commons/nifi-processor-utilities/src/test/java/org/apache/nifi/processor/util/TestStandardValidators.java diff --git a/nifi/nifi-commons/nifi-properties/.gitignore b/nifi-commons/nifi-properties/.gitignore similarity index 100% rename from nifi/nifi-commons/nifi-properties/.gitignore rename to nifi-commons/nifi-properties/.gitignore diff --git a/nifi/nifi-commons/nifi-properties/pom.xml b/nifi-commons/nifi-properties/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-properties/pom.xml rename to nifi-commons/nifi-properties/pom.xml diff --git a/nifi/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java b/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java similarity index 100% rename from nifi/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java rename to nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java diff --git a/nifi/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/StringUtils.java b/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/StringUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/StringUtils.java rename to nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/StringUtils.java diff --git a/nifi/nifi-commons/nifi-properties/src/test/java/org/apache/nifi/util/NiFiPropertiesTest.java b/nifi-commons/nifi-properties/src/test/java/org/apache/nifi/util/NiFiPropertiesTest.java similarity index 100% rename from nifi/nifi-commons/nifi-properties/src/test/java/org/apache/nifi/util/NiFiPropertiesTest.java rename to nifi-commons/nifi-properties/src/test/java/org/apache/nifi/util/NiFiPropertiesTest.java diff --git a/nifi/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.blank.properties b/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.blank.properties similarity index 100% rename from nifi/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.blank.properties rename to nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.blank.properties diff --git a/nifi/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.missing.properties b/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.missing.properties similarity index 100% rename from nifi/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.missing.properties rename to nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.missing.properties diff --git a/nifi/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.properties b/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.properties similarity index 100% rename from nifi/nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.properties rename to nifi-commons/nifi-properties/src/test/resources/NiFiProperties/conf/nifi.properties diff --git a/nifi/nifi-commons/nifi-security-utils/pom.xml b/nifi-commons/nifi-security-utils/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-security-utils/pom.xml rename to nifi-commons/nifi-security-utils/pom.xml diff --git a/nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/CertificateUtils.java b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/CertificateUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/CertificateUtils.java rename to nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/CertificateUtils.java diff --git a/nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/EncryptionMethod.java b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/EncryptionMethod.java similarity index 100% rename from nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/EncryptionMethod.java rename to nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/EncryptionMethod.java diff --git a/nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/KeystoreType.java b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/KeystoreType.java similarity index 100% rename from nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/KeystoreType.java rename to nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/KeystoreType.java diff --git a/nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SecurityStoreTypes.java b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SecurityStoreTypes.java similarity index 100% rename from nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SecurityStoreTypes.java rename to nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SecurityStoreTypes.java diff --git a/nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SslContextFactory.java b/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SslContextFactory.java similarity index 100% rename from nifi/nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SslContextFactory.java rename to nifi-commons/nifi-security-utils/src/main/java/org/apache/nifi/security/util/SslContextFactory.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml b/nifi-commons/nifi-site-to-site-client/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/pom.xml rename to nifi-commons/nifi-site-to-site-client/pom.xml diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/AbstractCommunicationsSession.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/AbstractCommunicationsSession.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/AbstractCommunicationsSession.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/AbstractCommunicationsSession.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Communicant.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Communicant.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Communicant.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Communicant.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Peer.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Peer.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Peer.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Peer.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerDescription.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerDescription.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerDescription.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerDescription.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerStatus.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerStatus.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerStatus.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/PeerStatus.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/RemoteResourceInitiator.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/RemoteResourceInitiator.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/RemoteResourceInitiator.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/RemoteResourceInitiator.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Transaction.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Transaction.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Transaction.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/Transaction.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransactionCompletion.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransactionCompletion.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransactionCompletion.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransactionCompletion.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransferDirection.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransferDirection.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransferDirection.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/TransferDirection.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/VersionedRemoteResource.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/VersionedRemoteResource.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/VersionedRemoteResource.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/VersionedRemoteResource.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/KeystoreType.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClient.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/SiteToSiteClientConfig.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnection.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnection.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnection.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnection.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnectionPool.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnectionPool.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnectionPool.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/EndpointConnectionPool.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/SocketClient.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/SocketClient.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/SocketClient.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/client/socket/SocketClient.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/AdaptedNodeInformation.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/AdaptedNodeInformation.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/AdaptedNodeInformation.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/AdaptedNodeInformation.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/ClusterNodeInformation.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/ClusterNodeInformation.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/ClusterNodeInformation.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/ClusterNodeInformation.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformation.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformation.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformation.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformation.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformationAdapter.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformationAdapter.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformationAdapter.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/cluster/NodeInformationAdapter.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/FlowFileCodec.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/FlowFileCodec.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/FlowFileCodec.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/FlowFileCodec.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/StandardFlowFileCodec.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/StandardFlowFileCodec.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/StandardFlowFileCodec.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/codec/StandardFlowFileCodec.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/HandshakeException.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/HandshakeException.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/HandshakeException.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/HandshakeException.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/PortNotRunningException.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/PortNotRunningException.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/PortNotRunningException.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/PortNotRunningException.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/ProtocolException.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/ProtocolException.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/ProtocolException.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/ProtocolException.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/UnknownPortException.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/UnknownPortException.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/UnknownPortException.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/exception/UnknownPortException.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelCommunicationsSession.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelCommunicationsSession.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelCommunicationsSession.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelCommunicationsSession.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInput.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInput.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInput.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInput.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutput.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutput.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutput.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutput.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelCommunicationsSession.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelCommunicationsSession.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelCommunicationsSession.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelCommunicationsSession.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInput.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInput.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInput.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInput.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutput.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutput.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutput.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutput.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/ClientProtocol.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/ClientProtocol.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/ClientProtocol.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/ClientProtocol.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsInput.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsInput.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsInput.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsInput.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsOutput.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsOutput.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsOutput.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsOutput.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsSession.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsSession.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsSession.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/CommunicationsSession.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/DataPacket.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/DataPacket.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/DataPacket.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/DataPacket.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/RequestType.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/RequestType.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/RequestType.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/RequestType.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/HandshakeProperty.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/HandshakeProperty.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/HandshakeProperty.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/HandshakeProperty.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/Response.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/Response.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/Response.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/Response.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/ResponseCode.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/ResponseCode.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/ResponseCode.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/ResponseCode.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientProtocol.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientProtocol.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientProtocol.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientProtocol.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransaction.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransaction.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransaction.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransaction.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransactionCompletion.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransactionCompletion.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransactionCompletion.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/protocol/socket/SocketClientTransactionCompletion.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/NiFiRestApiUtil.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/NiFiRestApiUtil.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/NiFiRestApiUtil.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/NiFiRestApiUtil.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/PeerStatusCache.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/PeerStatusCache.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/PeerStatusCache.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/PeerStatusCache.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/StandardDataPacket.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/StandardDataPacket.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/StandardDataPacket.java rename to nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/StandardDataPacket.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestEndpointConnectionStatePool.java b/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestEndpointConnectionStatePool.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestEndpointConnectionStatePool.java rename to nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestEndpointConnectionStatePool.java diff --git a/nifi/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestSiteToSiteClient.java b/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestSiteToSiteClient.java similarity index 100% rename from nifi/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestSiteToSiteClient.java rename to nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/socket/TestSiteToSiteClient.java diff --git a/nifi/nifi-commons/nifi-socket-utils/pom.xml b/nifi-commons/nifi-socket-utils/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/pom.xml rename to nifi-commons/nifi-socket-utils/pom.xml diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/AbstractChannelReader.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/AbstractChannelReader.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/AbstractChannelReader.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/AbstractChannelReader.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/BufferPool.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/BufferPool.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/BufferPool.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/BufferPool.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/SocketChannelReader.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/SocketChannelReader.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/SocketChannelReader.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/SocketChannelReader.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/AbstractStreamConsumer.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/AbstractStreamConsumer.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/AbstractStreamConsumer.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/AbstractStreamConsumer.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumer.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumer.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumer.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumer.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumerFactory.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumerFactory.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumerFactory.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/consumer/StreamConsumerFactory.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SSLContextFactory.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/ServerSocketConfiguration.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/ServerSocketConfiguration.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/ServerSocketConfiguration.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/ServerSocketConfiguration.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketConfiguration.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketConfiguration.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketConfiguration.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketConfiguration.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketListener.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketListener.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketListener.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketListener.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/SocketUtils.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableService.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableService.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableService.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableService.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableServiceImpl.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableServiceImpl.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableServiceImpl.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/DiscoverableServiceImpl.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastConfiguration.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastConfiguration.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastConfiguration.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastConfiguration.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastListener.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastListener.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastListener.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastListener.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServiceDiscovery.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServiceDiscovery.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServiceDiscovery.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServiceDiscovery.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServicesBroadcaster.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServicesBroadcaster.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServicesBroadcaster.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastServicesBroadcaster.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastTimeToLive.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastTimeToLive.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastTimeToLive.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastTimeToLive.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastUtils.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastUtils.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/MulticastUtils.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServiceDiscovery.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServiceDiscovery.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServiceDiscovery.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServiceDiscovery.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServicesBroadcaster.java b/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServicesBroadcaster.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServicesBroadcaster.java rename to nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/socket/multicast/ServicesBroadcaster.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java b/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java rename to nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/TCPClient.java b/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/TCPClient.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/TCPClient.java rename to nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/TCPClient.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UDPClient.java b/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UDPClient.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UDPClient.java rename to nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UDPClient.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UselessStreamConsumer.java b/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UselessStreamConsumer.java similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UselessStreamConsumer.java rename to nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/UselessStreamConsumer.java diff --git a/nifi/nifi-commons/nifi-socket-utils/src/test/resources/log4j.xml b/nifi-commons/nifi-socket-utils/src/test/resources/log4j.xml similarity index 100% rename from nifi/nifi-commons/nifi-socket-utils/src/test/resources/log4j.xml rename to nifi-commons/nifi-socket-utils/src/test/resources/log4j.xml diff --git a/nifi/nifi-commons/nifi-utils/.gitignore b/nifi-commons/nifi-utils/.gitignore similarity index 100% rename from nifi/nifi-commons/nifi-utils/.gitignore rename to nifi-commons/nifi-utils/.gitignore diff --git a/nifi/nifi-commons/nifi-utils/pom.xml b/nifi-commons/nifi-utils/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-utils/pom.xml rename to nifi-commons/nifi-utils/pom.xml diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/CoreAttributes.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/CoreAttributes.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/CoreAttributes.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/CoreAttributes.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/FlowFileAttributeKey.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/FlowFileAttributeKey.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/FlowFileAttributeKey.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/flowfile/attributes/FlowFileAttributeKey.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/StandardVersionNegotiator.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/StandardVersionNegotiator.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/StandardVersionNegotiator.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/StandardVersionNegotiator.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/VersionNegotiator.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/VersionNegotiator.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/VersionNegotiator.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/VersionNegotiator.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/exception/TransmissionDisabledException.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/exception/TransmissionDisabledException.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/exception/TransmissionDisabledException.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/exception/TransmissionDisabledException.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/CompressionOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/InterruptableOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/BufferStateManager.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/BufferStateManager.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/BufferStateManager.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/BufferStateManager.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/SocketChannelOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannel.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannel.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannel.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannel.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/remote/io/socket/ssl/SSLSocketChannelOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/BufferedOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteArrayOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ByteCountingOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/DataOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/DataOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/DataOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/DataOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/GZIPOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/GZIPOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/GZIPOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/GZIPOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LeakyBucketStreamThrottler.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LeakyBucketStreamThrottler.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LeakyBucketStreamThrottler.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LeakyBucketStreamThrottler.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LimitingInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LimitingInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LimitingInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/LimitingInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/MinimumLengthInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/MinimumLengthInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/MinimumLengthInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/MinimumLengthInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableInputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableInputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableInputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableInputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NonCloseableOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NullOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NullOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NullOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/NullOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamThrottler.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamThrottler.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamThrottler.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamThrottler.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamUtils.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamUtils.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/StreamUtils.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ZipOutputStream.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ZipOutputStream.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ZipOutputStream.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/ZipOutputStream.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/exception/BytePatternNotFoundException.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/exception/BytePatternNotFoundException.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/exception/BytePatternNotFoundException.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/exception/BytePatternNotFoundException.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/util/NonThreadSafeCircularBuffer.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/util/NonThreadSafeCircularBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/util/NonThreadSafeCircularBuffer.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/stream/io/util/NonThreadSafeCircularBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/BooleanHolder.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/BooleanHolder.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/BooleanHolder.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/BooleanHolder.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/EscapeUtils.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/EscapeUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/EscapeUtils.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/EscapeUtils.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/FormatUtils.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/FormatUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/FormatUtils.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/FormatUtils.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/IntegerHolder.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/IntegerHolder.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/IntegerHolder.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/IntegerHolder.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/LongHolder.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/LongHolder.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/LongHolder.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/LongHolder.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/NaiveSearchRingBuffer.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/NaiveSearchRingBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/NaiveSearchRingBuffer.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/NaiveSearchRingBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/ObjectHolder.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/ObjectHolder.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/ObjectHolder.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/ObjectHolder.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/RingBuffer.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/RingBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/RingBuffer.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/RingBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/StopWatch.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/StopWatch.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/StopWatch.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/StopWatch.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/Tuple.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/Tuple.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/Tuple.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/Tuple.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugDisabledTimedLock.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugDisabledTimedLock.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugDisabledTimedLock.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugDisabledTimedLock.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugEnabledTimedLock.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugEnabledTimedLock.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugEnabledTimedLock.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebugEnabledTimedLock.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebuggableTimedLock.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebuggableTimedLock.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebuggableTimedLock.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/DebuggableTimedLock.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/TimedLock.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/TimedLock.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/TimedLock.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/concurrency/TimedLock.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/FileUtils.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/CompoundUpdateMonitor.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/CompoundUpdateMonitor.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/CompoundUpdateMonitor.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/CompoundUpdateMonitor.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/LastModifiedMonitor.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/LastModifiedMonitor.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/LastModifiedMonitor.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/LastModifiedMonitor.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/MD5SumMonitor.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/MD5SumMonitor.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/MD5SumMonitor.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/MD5SumMonitor.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/SynchronousFileWatcher.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/SynchronousFileWatcher.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/SynchronousFileWatcher.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/SynchronousFileWatcher.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/UpdateMonitor.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/UpdateMonitor.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/UpdateMonitor.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/monitor/UpdateMonitor.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/Search.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/Search.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/Search.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/Search.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/SearchTerm.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/SearchTerm.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/SearchTerm.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/SearchTerm.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/AhoCorasick.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/AhoCorasick.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/AhoCorasick.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/AhoCorasick.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/Node.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/Node.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/Node.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/Node.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/SearchState.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/SearchState.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/SearchState.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/search/ahocorasick/SearchState.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/EntityAccess.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/EntityAccess.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/EntityAccess.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/EntityAccess.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/LongEntityAccess.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/LongEntityAccess.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/LongEntityAccess.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/LongEntityAccess.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimedBuffer.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimedBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimedBuffer.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimedBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimestampedLong.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimestampedLong.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimestampedLong.java rename to nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/timebuffer/TimestampedLong.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/remote/io/TestCompressionInputOutputStreams.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/remote/io/TestCompressionInputOutputStreams.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/remote/io/TestCompressionInputOutputStreams.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/remote/io/TestCompressionInputOutputStreams.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/ByteCountingInputStreamTest.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/TestLeakyBucketThrottler.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/TestLeakyBucketThrottler.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/TestLeakyBucketThrottler.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/TestLeakyBucketThrottler.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/TestNaiveSearchRingBuffer.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/TestNaiveSearchRingBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/TestNaiveSearchRingBuffer.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/TestNaiveSearchRingBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestCompoundUpdateMonitor.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestCompoundUpdateMonitor.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestCompoundUpdateMonitor.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestCompoundUpdateMonitor.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestSynchronousFileWatcher.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestSynchronousFileWatcher.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestSynchronousFileWatcher.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/monitor/TestSynchronousFileWatcher.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestRingBuffer.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestRingBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestRingBuffer.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestRingBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestTimedBuffer.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestTimedBuffer.java similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestTimedBuffer.java rename to nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/timebuffer/TestTimedBuffer.java diff --git a/nifi/nifi-commons/nifi-utils/src/test/resources/logback-test.xml b/nifi-commons/nifi-utils/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-commons/nifi-utils/src/test/resources/logback-test.xml rename to nifi-commons/nifi-utils/src/test/resources/logback-test.xml diff --git a/nifi/nifi-commons/nifi-web-utils/pom.xml b/nifi-commons/nifi-web-utils/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-web-utils/pom.xml rename to nifi-commons/nifi-web-utils/pom.xml diff --git a/nifi/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ClientUtils.java b/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ClientUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ClientUtils.java rename to nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ClientUtils.java diff --git a/nifi/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ObjectMapperResolver.java b/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ObjectMapperResolver.java similarity index 100% rename from nifi/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ObjectMapperResolver.java rename to nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/ObjectMapperResolver.java diff --git a/nifi/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/WebUtils.java b/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/WebUtils.java similarity index 100% rename from nifi/nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/WebUtils.java rename to nifi-commons/nifi-web-utils/src/main/java/org/apache/nifi/web/util/WebUtils.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/.gitignore b/nifi-commons/nifi-write-ahead-log/.gitignore similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/.gitignore rename to nifi-commons/nifi-write-ahead-log/.gitignore diff --git a/nifi/nifi-commons/nifi-write-ahead-log/pom.xml b/nifi-commons/nifi-write-ahead-log/pom.xml similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/pom.xml rename to nifi-commons/nifi-write-ahead-log/pom.xml diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java b/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java rename to nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SerDe.java b/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SerDe.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SerDe.java rename to nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SerDe.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SyncListener.java b/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SyncListener.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SyncListener.java rename to nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/SyncListener.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/UpdateType.java b/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/UpdateType.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/UpdateType.java rename to nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/UpdateType.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/WriteAheadRepository.java b/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/WriteAheadRepository.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/WriteAheadRepository.java rename to nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/WriteAheadRepository.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java b/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java rename to nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecord.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java b/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java rename to nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/DummyRecordSerde.java diff --git a/nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java b/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java similarity index 100% rename from nifi/nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java rename to nifi-commons/nifi-write-ahead-log/src/test/java/org/wali/TestMinimalLockingWriteAheadLog.java diff --git a/nifi/nifi-commons/pom.xml b/nifi-commons/pom.xml similarity index 100% rename from nifi/nifi-commons/pom.xml rename to nifi-commons/pom.xml diff --git a/nifi/nifi-docs/LICENSE b/nifi-docs/LICENSE similarity index 100% rename from nifi/nifi-docs/LICENSE rename to nifi-docs/LICENSE diff --git a/nifi/nifi-docs/NOTICE b/nifi-docs/NOTICE similarity index 100% rename from nifi/nifi-docs/NOTICE rename to nifi-docs/NOTICE diff --git a/nifi/nifi-docs/pom.xml b/nifi-docs/pom.xml similarity index 100% rename from nifi/nifi-docs/pom.xml rename to nifi-docs/pom.xml diff --git a/nifi/nifi-docs/src/main/asciidoc/administration-guide.adoc b/nifi-docs/src/main/asciidoc/administration-guide.adoc similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/administration-guide.adoc rename to nifi-docs/src/main/asciidoc/administration-guide.adoc diff --git a/nifi/nifi-docs/src/main/asciidoc/asciidoc-mod.css b/nifi-docs/src/main/asciidoc/asciidoc-mod.css similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/asciidoc-mod.css rename to nifi-docs/src/main/asciidoc/asciidoc-mod.css diff --git a/nifi/nifi-docs/src/main/asciidoc/developer-guide.adoc b/nifi-docs/src/main/asciidoc/developer-guide.adoc similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/developer-guide.adoc rename to nifi-docs/src/main/asciidoc/developer-guide.adoc diff --git a/nifi/nifi-docs/src/main/asciidoc/expression-language-guide.adoc b/nifi-docs/src/main/asciidoc/expression-language-guide.adoc similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/expression-language-guide.adoc rename to nifi-docs/src/main/asciidoc/expression-language-guide.adoc diff --git a/nifi/nifi-docs/src/main/asciidoc/images/add-controller-service-window.png b/nifi-docs/src/main/asciidoc/images/add-controller-service-window.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/add-controller-service-window.png rename to nifi-docs/src/main/asciidoc/images/add-controller-service-window.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/add-processor-with-tag-cloud.png b/nifi-docs/src/main/asciidoc/images/add-processor-with-tag-cloud.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/add-processor-with-tag-cloud.png rename to nifi-docs/src/main/asciidoc/images/add-processor-with-tag-cloud.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/add-processor.png b/nifi-docs/src/main/asciidoc/images/add-processor.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/add-processor.png rename to nifi-docs/src/main/asciidoc/images/add-processor.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/addConnect.png b/nifi-docs/src/main/asciidoc/images/addConnect.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/addConnect.png rename to nifi-docs/src/main/asciidoc/images/addConnect.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/comments-tab.png b/nifi-docs/src/main/asciidoc/images/comments-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/comments-tab.png rename to nifi-docs/src/main/asciidoc/images/comments-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/components.png b/nifi-docs/src/main/asciidoc/images/components.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/components.png rename to nifi-docs/src/main/asciidoc/images/components.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/configure-controller-service-properties.png b/nifi-docs/src/main/asciidoc/images/configure-controller-service-properties.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/configure-controller-service-properties.png rename to nifi-docs/src/main/asciidoc/images/configure-controller-service-properties.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/configure-controller-service-settings.png b/nifi-docs/src/main/asciidoc/images/configure-controller-service-settings.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/configure-controller-service-settings.png rename to nifi-docs/src/main/asciidoc/images/configure-controller-service-settings.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/configure-reporting-task-properties.png b/nifi-docs/src/main/asciidoc/images/configure-reporting-task-properties.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/configure-reporting-task-properties.png rename to nifi-docs/src/main/asciidoc/images/configure-reporting-task-properties.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/configure-reporting-task-settings.png b/nifi-docs/src/main/asciidoc/images/configure-reporting-task-settings.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/configure-reporting-task-settings.png rename to nifi-docs/src/main/asciidoc/images/configure-reporting-task-settings.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/connection-settings.png b/nifi-docs/src/main/asciidoc/images/connection-settings.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/connection-settings.png rename to nifi-docs/src/main/asciidoc/images/connection-settings.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons.png b/nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons.png rename to nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons2.png b/nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons2.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons2.png rename to nifi-docs/src/main/asciidoc/images/controller-services-edit-buttons2.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/controller-services-tab.png b/nifi-docs/src/main/asciidoc/images/controller-services-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/controller-services-tab.png rename to nifi-docs/src/main/asciidoc/images/controller-services-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/controller-settings-button.png b/nifi-docs/src/main/asciidoc/images/controller-settings-button.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/controller-settings-button.png rename to nifi-docs/src/main/asciidoc/images/controller-settings-button.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/create-connection.png b/nifi-docs/src/main/asciidoc/images/create-connection.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/create-connection.png rename to nifi-docs/src/main/asciidoc/images/create-connection.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/create-service-ssl-context.png b/nifi-docs/src/main/asciidoc/images/create-service-ssl-context.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/create-service-ssl-context.png rename to nifi-docs/src/main/asciidoc/images/create-service-ssl-context.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/edit-property-dropdown.png b/nifi-docs/src/main/asciidoc/images/edit-property-dropdown.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/edit-property-dropdown.png rename to nifi-docs/src/main/asciidoc/images/edit-property-dropdown.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/edit-property-textarea.png b/nifi-docs/src/main/asciidoc/images/edit-property-textarea.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/edit-property-textarea.png rename to nifi-docs/src/main/asciidoc/images/edit-property-textarea.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/event-attributes.png b/nifi-docs/src/main/asciidoc/images/event-attributes.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/event-attributes.png rename to nifi-docs/src/main/asciidoc/images/event-attributes.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/event-content.png b/nifi-docs/src/main/asciidoc/images/event-content.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/event-content.png rename to nifi-docs/src/main/asciidoc/images/event-content.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/event-details.png b/nifi-docs/src/main/asciidoc/images/event-details.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/event-details.png rename to nifi-docs/src/main/asciidoc/images/event-details.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/expand-event.png b/nifi-docs/src/main/asciidoc/images/expand-event.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/expand-event.png rename to nifi-docs/src/main/asciidoc/images/expand-event.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/expanded-events.png b/nifi-docs/src/main/asciidoc/images/expanded-events.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/expanded-events.png rename to nifi-docs/src/main/asciidoc/images/expanded-events.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/find-parents.png b/nifi-docs/src/main/asciidoc/images/find-parents.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/find-parents.png rename to nifi-docs/src/main/asciidoc/images/find-parents.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconAlert.png b/nifi-docs/src/main/asciidoc/images/iconAlert.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconAlert.png rename to nifi-docs/src/main/asciidoc/images/iconAlert.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconConnection.png b/nifi-docs/src/main/asciidoc/images/iconConnection.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconConnection.png rename to nifi-docs/src/main/asciidoc/images/iconConnection.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconDelete.png b/nifi-docs/src/main/asciidoc/images/iconDelete.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconDelete.png rename to nifi-docs/src/main/asciidoc/images/iconDelete.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconDisable.png b/nifi-docs/src/main/asciidoc/images/iconDisable.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconDisable.png rename to nifi-docs/src/main/asciidoc/images/iconDisable.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconEdit.png b/nifi-docs/src/main/asciidoc/images/iconEdit.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconEdit.png rename to nifi-docs/src/main/asciidoc/images/iconEdit.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconEnable.png b/nifi-docs/src/main/asciidoc/images/iconEnable.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconEnable.png rename to nifi-docs/src/main/asciidoc/images/iconEnable.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconExport.png b/nifi-docs/src/main/asciidoc/images/iconExport.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconExport.png rename to nifi-docs/src/main/asciidoc/images/iconExport.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconFlowHistory.png b/nifi-docs/src/main/asciidoc/images/iconFlowHistory.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconFlowHistory.png rename to nifi-docs/src/main/asciidoc/images/iconFlowHistory.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconFunnel.png b/nifi-docs/src/main/asciidoc/images/iconFunnel.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconFunnel.png rename to nifi-docs/src/main/asciidoc/images/iconFunnel.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconInfo.png b/nifi-docs/src/main/asciidoc/images/iconInfo.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconInfo.png rename to nifi-docs/src/main/asciidoc/images/iconInfo.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconInputPort.png b/nifi-docs/src/main/asciidoc/images/iconInputPort.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconInputPort.png rename to nifi-docs/src/main/asciidoc/images/iconInputPort.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconInputPortSmall.png b/nifi-docs/src/main/asciidoc/images/iconInputPortSmall.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconInputPortSmall.png rename to nifi-docs/src/main/asciidoc/images/iconInputPortSmall.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconLabel.png b/nifi-docs/src/main/asciidoc/images/iconLabel.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconLabel.png rename to nifi-docs/src/main/asciidoc/images/iconLabel.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconLineage.png b/nifi-docs/src/main/asciidoc/images/iconLineage.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconLineage.png rename to nifi-docs/src/main/asciidoc/images/iconLineage.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconNewTemplate.png b/nifi-docs/src/main/asciidoc/images/iconNewTemplate.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconNewTemplate.png rename to nifi-docs/src/main/asciidoc/images/iconNewTemplate.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconNotSecure.png b/nifi-docs/src/main/asciidoc/images/iconNotSecure.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconNotSecure.png rename to nifi-docs/src/main/asciidoc/images/iconNotSecure.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconOutputPort.png b/nifi-docs/src/main/asciidoc/images/iconOutputPort.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconOutputPort.png rename to nifi-docs/src/main/asciidoc/images/iconOutputPort.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconOutputPortSmall.png b/nifi-docs/src/main/asciidoc/images/iconOutputPortSmall.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconOutputPortSmall.png rename to nifi-docs/src/main/asciidoc/images/iconOutputPortSmall.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconProcessGroup.png b/nifi-docs/src/main/asciidoc/images/iconProcessGroup.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconProcessGroup.png rename to nifi-docs/src/main/asciidoc/images/iconProcessGroup.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconProcessor.png b/nifi-docs/src/main/asciidoc/images/iconProcessor.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconProcessor.png rename to nifi-docs/src/main/asciidoc/images/iconProcessor.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconProvenance.png b/nifi-docs/src/main/asciidoc/images/iconProvenance.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconProvenance.png rename to nifi-docs/src/main/asciidoc/images/iconProvenance.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconRemoteProcessGroup.png b/nifi-docs/src/main/asciidoc/images/iconRemoteProcessGroup.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconRemoteProcessGroup.png rename to nifi-docs/src/main/asciidoc/images/iconRemoteProcessGroup.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconResize.png b/nifi-docs/src/main/asciidoc/images/iconResize.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconResize.png rename to nifi-docs/src/main/asciidoc/images/iconResize.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconRun.png b/nifi-docs/src/main/asciidoc/images/iconRun.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconRun.png rename to nifi-docs/src/main/asciidoc/images/iconRun.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconSecure.png b/nifi-docs/src/main/asciidoc/images/iconSecure.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconSecure.png rename to nifi-docs/src/main/asciidoc/images/iconSecure.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconSettings.png b/nifi-docs/src/main/asciidoc/images/iconSettings.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconSettings.png rename to nifi-docs/src/main/asciidoc/images/iconSettings.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconStop.png b/nifi-docs/src/main/asciidoc/images/iconStop.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconStop.png rename to nifi-docs/src/main/asciidoc/images/iconStop.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconSummary.png b/nifi-docs/src/main/asciidoc/images/iconSummary.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconSummary.png rename to nifi-docs/src/main/asciidoc/images/iconSummary.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconTemplate.png b/nifi-docs/src/main/asciidoc/images/iconTemplate.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconTemplate.png rename to nifi-docs/src/main/asciidoc/images/iconTemplate.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconTransmissionActive.png b/nifi-docs/src/main/asciidoc/images/iconTransmissionActive.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconTransmissionActive.png rename to nifi-docs/src/main/asciidoc/images/iconTransmissionActive.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconTransmissionInactive.png b/nifi-docs/src/main/asciidoc/images/iconTransmissionInactive.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconTransmissionInactive.png rename to nifi-docs/src/main/asciidoc/images/iconTransmissionInactive.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconUsers.png b/nifi-docs/src/main/asciidoc/images/iconUsers.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconUsers.png rename to nifi-docs/src/main/asciidoc/images/iconUsers.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/iconViewDetails.png b/nifi-docs/src/main/asciidoc/images/iconViewDetails.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/iconViewDetails.png rename to nifi-docs/src/main/asciidoc/images/iconViewDetails.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/instantiate-template-description.png b/nifi-docs/src/main/asciidoc/images/instantiate-template-description.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/instantiate-template-description.png rename to nifi-docs/src/main/asciidoc/images/instantiate-template-description.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/instantiate-template.png b/nifi-docs/src/main/asciidoc/images/instantiate-template.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/instantiate-template.png rename to nifi-docs/src/main/asciidoc/images/instantiate-template.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/invalid-processor.png b/nifi-docs/src/main/asciidoc/images/invalid-processor.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/invalid-processor.png rename to nifi-docs/src/main/asciidoc/images/invalid-processor.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/lineage-flowfile.png b/nifi-docs/src/main/asciidoc/images/lineage-flowfile.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/lineage-flowfile.png rename to nifi-docs/src/main/asciidoc/images/lineage-flowfile.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/lineage-graph-annotated.png b/nifi-docs/src/main/asciidoc/images/lineage-graph-annotated.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/lineage-graph-annotated.png rename to nifi-docs/src/main/asciidoc/images/lineage-graph-annotated.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/ncm.png b/nifi-docs/src/main/asciidoc/images/ncm.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/ncm.png rename to nifi-docs/src/main/asciidoc/images/ncm.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/new-flow.png b/nifi-docs/src/main/asciidoc/images/new-flow.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/new-flow.png rename to nifi-docs/src/main/asciidoc/images/new-flow.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/nifi-arch-cluster.png b/nifi-docs/src/main/asciidoc/images/nifi-arch-cluster.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/nifi-arch-cluster.png rename to nifi-docs/src/main/asciidoc/images/nifi-arch-cluster.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/nifi-arch.png b/nifi-docs/src/main/asciidoc/images/nifi-arch.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/nifi-arch.png rename to nifi-docs/src/main/asciidoc/images/nifi-arch.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/nifi-navigation.png b/nifi-docs/src/main/asciidoc/images/nifi-navigation.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/nifi-navigation.png rename to nifi-docs/src/main/asciidoc/images/nifi-navigation.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/nifi-toolbar-components.png b/nifi-docs/src/main/asciidoc/images/nifi-toolbar-components.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/nifi-toolbar-components.png rename to nifi-docs/src/main/asciidoc/images/nifi-toolbar-components.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png b/nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png rename to nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/parent-found.png b/nifi-docs/src/main/asciidoc/images/parent-found.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/parent-found.png rename to nifi-docs/src/main/asciidoc/images/parent-found.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/process-group-anatomy.png b/nifi-docs/src/main/asciidoc/images/process-group-anatomy.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/process-group-anatomy.png rename to nifi-docs/src/main/asciidoc/images/process-group-anatomy.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/processor-anatomy.png b/nifi-docs/src/main/asciidoc/images/processor-anatomy.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/processor-anatomy.png rename to nifi-docs/src/main/asciidoc/images/processor-anatomy.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/processor-connection-bubble.png b/nifi-docs/src/main/asciidoc/images/processor-connection-bubble.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/processor-connection-bubble.png rename to nifi-docs/src/main/asciidoc/images/processor-connection-bubble.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/properties-tab.png b/nifi-docs/src/main/asciidoc/images/properties-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/properties-tab.png rename to nifi-docs/src/main/asciidoc/images/properties-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/provenance-annotated.png b/nifi-docs/src/main/asciidoc/images/provenance-annotated.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/provenance-annotated.png rename to nifi-docs/src/main/asciidoc/images/provenance-annotated.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/provenance-table.png b/nifi-docs/src/main/asciidoc/images/provenance-table.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/provenance-table.png rename to nifi-docs/src/main/asciidoc/images/provenance-table.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/remote-group-anatomy.png b/nifi-docs/src/main/asciidoc/images/remote-group-anatomy.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/remote-group-anatomy.png rename to nifi-docs/src/main/asciidoc/images/remote-group-anatomy.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/remote-group-ports-dialog.png b/nifi-docs/src/main/asciidoc/images/remote-group-ports-dialog.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/remote-group-ports-dialog.png rename to nifi-docs/src/main/asciidoc/images/remote-group-ports-dialog.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/remote-port-connection-status.png b/nifi-docs/src/main/asciidoc/images/remote-port-connection-status.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/remote-port-connection-status.png rename to nifi-docs/src/main/asciidoc/images/remote-port-connection-status.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons.png b/nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons.png rename to nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons2.png b/nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons2.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons2.png rename to nifi-docs/src/main/asciidoc/images/reporting-tasks-edit-buttons2.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/reporting-tasks-tab.png b/nifi-docs/src/main/asciidoc/images/reporting-tasks-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/reporting-tasks-tab.png rename to nifi-docs/src/main/asciidoc/images/reporting-tasks-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/scheduling-tab.png b/nifi-docs/src/main/asciidoc/images/scheduling-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/scheduling-tab.png rename to nifi-docs/src/main/asciidoc/images/scheduling-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/search-events.png b/nifi-docs/src/main/asciidoc/images/search-events.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/search-events.png rename to nifi-docs/src/main/asciidoc/images/search-events.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/search-receive-event-abc.png b/nifi-docs/src/main/asciidoc/images/search-receive-event-abc.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/search-receive-event-abc.png rename to nifi-docs/src/main/asciidoc/images/search-receive-event-abc.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/settings-general-tab.png b/nifi-docs/src/main/asciidoc/images/settings-general-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/settings-general-tab.png rename to nifi-docs/src/main/asciidoc/images/settings-general-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/settings-tab.png b/nifi-docs/src/main/asciidoc/images/settings-tab.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/settings-tab.png rename to nifi-docs/src/main/asciidoc/images/settings-tab.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/simple-flow.png b/nifi-docs/src/main/asciidoc/images/simple-flow.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/simple-flow.png rename to nifi-docs/src/main/asciidoc/images/simple-flow.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/stats-history.png b/nifi-docs/src/main/asciidoc/images/stats-history.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/stats-history.png rename to nifi-docs/src/main/asciidoc/images/stats-history.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/status-bar.png b/nifi-docs/src/main/asciidoc/images/status-bar.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/status-bar.png rename to nifi-docs/src/main/asciidoc/images/status-bar.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/summary-annotated.png b/nifi-docs/src/main/asciidoc/images/summary-annotated.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/summary-annotated.png rename to nifi-docs/src/main/asciidoc/images/summary-annotated.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/summary-table.png b/nifi-docs/src/main/asciidoc/images/summary-table.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/summary-table.png rename to nifi-docs/src/main/asciidoc/images/summary-table.png diff --git a/nifi/nifi-docs/src/main/asciidoc/images/valid-processor.png b/nifi-docs/src/main/asciidoc/images/valid-processor.png similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/images/valid-processor.png rename to nifi-docs/src/main/asciidoc/images/valid-processor.png diff --git a/nifi/nifi-docs/src/main/asciidoc/overview.adoc b/nifi-docs/src/main/asciidoc/overview.adoc similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/overview.adoc rename to nifi-docs/src/main/asciidoc/overview.adoc diff --git a/nifi/nifi-docs/src/main/asciidoc/user-guide.adoc b/nifi-docs/src/main/asciidoc/user-guide.adoc similarity index 100% rename from nifi/nifi-docs/src/main/asciidoc/user-guide.adoc rename to nifi-docs/src/main/asciidoc/user-guide.adoc diff --git a/nifi/nifi-docs/src/main/assembly/dependencies.xml b/nifi-docs/src/main/assembly/dependencies.xml similarity index 100% rename from nifi/nifi-docs/src/main/assembly/dependencies.xml rename to nifi-docs/src/main/assembly/dependencies.xml diff --git a/nifi/nifi-external/README.md b/nifi-external/README.md similarity index 100% rename from nifi/nifi-external/README.md rename to nifi-external/README.md diff --git a/nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-nar/pom.xml b/nifi-external/nifi-example-bundle/nifi-nifi-example-nar/pom.xml similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-nar/pom.xml rename to nifi-external/nifi-example-bundle/nifi-nifi-example-nar/pom.xml diff --git a/nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/pom.xml b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/pom.xml similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/pom.xml rename to nifi-external/nifi-example-bundle/nifi-nifi-example-processors/pom.xml diff --git a/nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java rename to nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/java/org/apache/nifi/processors/WriteResourceToStream.java diff --git a/nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/file.txt b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/file.txt similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/file.txt rename to nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/main/resources/file.txt diff --git a/nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/test/java/org/apache/nifi/processors/WriteResourceToStreamTest.java b/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/test/java/org/apache/nifi/processors/WriteResourceToStreamTest.java similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/test/java/org/apache/nifi/processors/WriteResourceToStreamTest.java rename to nifi-external/nifi-example-bundle/nifi-nifi-example-processors/src/test/java/org/apache/nifi/processors/WriteResourceToStreamTest.java diff --git a/nifi/nifi-external/nifi-example-bundle/pom.xml b/nifi-external/nifi-example-bundle/pom.xml similarity index 100% rename from nifi/nifi-external/nifi-example-bundle/pom.xml rename to nifi-external/nifi-example-bundle/pom.xml diff --git a/nifi/nifi-external/nifi-spark-receiver/pom.xml b/nifi-external/nifi-spark-receiver/pom.xml similarity index 100% rename from nifi/nifi-external/nifi-spark-receiver/pom.xml rename to nifi-external/nifi-spark-receiver/pom.xml diff --git a/nifi/nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiDataPacket.java b/nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiDataPacket.java similarity index 100% rename from nifi/nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiDataPacket.java rename to nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiDataPacket.java diff --git a/nifi/nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiReceiver.java b/nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiReceiver.java similarity index 100% rename from nifi/nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiReceiver.java rename to nifi-external/nifi-spark-receiver/src/main/java/org/apache/nifi/spark/NiFiReceiver.java diff --git a/nifi/nifi-external/nifi-storm-spout/pom.xml b/nifi-external/nifi-storm-spout/pom.xml similarity index 100% rename from nifi/nifi-external/nifi-storm-spout/pom.xml rename to nifi-external/nifi-storm-spout/pom.xml diff --git a/nifi/nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiDataPacket.java b/nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiDataPacket.java similarity index 100% rename from nifi/nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiDataPacket.java rename to nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiDataPacket.java diff --git a/nifi/nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiSpout.java b/nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiSpout.java similarity index 100% rename from nifi/nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiSpout.java rename to nifi-external/nifi-storm-spout/src/main/java/org/apache/nifi/storm/NiFiSpout.java diff --git a/nifi/nifi-external/pom.xml b/nifi-external/pom.xml similarity index 100% rename from nifi/nifi-external/pom.xml rename to nifi-external/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/pom.xml b/nifi-maven-archetypes/nifi-processor-bundle-archetype/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/pom.xml rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/pom.xml b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/pom.xml rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/java/MyProcessor.java b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/java/MyProcessor.java similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/java/MyProcessor.java rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/java/MyProcessor.java diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/test/java/MyProcessorTest.java b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/test/java/MyProcessorTest.java similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/test/java/MyProcessorTest.java rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-processors/src/test/java/MyProcessorTest.java diff --git a/nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/pom.xml b/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/pom.xml rename to nifi-maven-archetypes/nifi-processor-bundle-archetype/src/main/resources/archetype-resources/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api-nar/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-api/src/main/java/MyService.java diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__-nar/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/pom.xml diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/java/StandardMyService.java diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestProcessor.java diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/nifi-__artifactBaseName__/src/test/java/TestStandardMyService.java diff --git a/nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml b/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml rename to nifi-maven-archetypes/nifi-service-bundle-archetype/src/main/resources/archetype-resources/pom.xml diff --git a/nifi/nifi-maven-archetypes/pom.xml b/nifi-maven-archetypes/pom.xml similarity index 100% rename from nifi/nifi-maven-archetypes/pom.xml rename to nifi-maven-archetypes/pom.xml diff --git a/nifi/nifi-mock/pom.xml b/nifi-mock/pom.xml similarity index 100% rename from nifi/nifi-mock/pom.xml rename to nifi-mock/pom.xml diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/provenance/MockProvenanceEventRepository.java b/nifi-mock/src/main/java/org/apache/nifi/provenance/MockProvenanceEventRepository.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/provenance/MockProvenanceEventRepository.java rename to nifi-mock/src/main/java/org/apache/nifi/provenance/MockProvenanceEventRepository.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java b/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java rename to nifi-mock/src/main/java/org/apache/nifi/reporting/BulletinFactory.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/reporting/MockBulletin.java b/nifi-mock/src/main/java/org/apache/nifi/reporting/MockBulletin.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/reporting/MockBulletin.java rename to nifi-mock/src/main/java/org/apache/nifi/reporting/MockBulletin.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/ControllerServiceConfiguration.java b/nifi-mock/src/main/java/org/apache/nifi/util/ControllerServiceConfiguration.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/ControllerServiceConfiguration.java rename to nifi-mock/src/main/java/org/apache/nifi/util/ControllerServiceConfiguration.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockBulletinRepository.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockBulletinRepository.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockBulletinRepository.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockBulletinRepository.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockConfigurationContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceInitializationContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceInitializationContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceInitializationContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceInitializationContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockControllerServiceLookup.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockEventAccess.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockEventAccess.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockEventAccess.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockEventAccess.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFile.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFile.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFile.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFile.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFileQueue.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFileQueue.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFileQueue.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockFlowFileQueue.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorInitializationContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorInitializationContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorInitializationContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorInitializationContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorLog.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorLog.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorLog.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockProcessorLog.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockPropertyValue.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockPropertyValue.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockPropertyValue.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockPropertyValue.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockProvenanceReporter.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockReportingContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockReportingContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockReportingContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockReportingContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockReportingInitializationContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockReportingInitializationContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockReportingInitializationContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockReportingInitializationContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockSessionFactory.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockSessionFactory.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockSessionFactory.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockSessionFactory.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockValidationContext.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockValidationContext.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/MockValidationContext.java rename to nifi-mock/src/main/java/org/apache/nifi/util/MockValidationContext.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/ReflectionUtils.java b/nifi-mock/src/main/java/org/apache/nifi/util/ReflectionUtils.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/ReflectionUtils.java rename to nifi-mock/src/main/java/org/apache/nifi/util/ReflectionUtils.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/SharedSessionState.java b/nifi-mock/src/main/java/org/apache/nifi/util/SharedSessionState.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/SharedSessionState.java rename to nifi-mock/src/main/java/org/apache/nifi/util/SharedSessionState.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/SingleSessionFactory.java b/nifi-mock/src/main/java/org/apache/nifi/util/SingleSessionFactory.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/SingleSessionFactory.java rename to nifi-mock/src/main/java/org/apache/nifi/util/SingleSessionFactory.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java b/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java rename to nifi-mock/src/main/java/org/apache/nifi/util/StandardProcessorTestRunner.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/TestRunner.java b/nifi-mock/src/main/java/org/apache/nifi/util/TestRunner.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/TestRunner.java rename to nifi-mock/src/main/java/org/apache/nifi/util/TestRunner.java diff --git a/nifi/nifi-mock/src/main/java/org/apache/nifi/util/TestRunners.java b/nifi-mock/src/main/java/org/apache/nifi/util/TestRunners.java similarity index 100% rename from nifi/nifi-mock/src/main/java/org/apache/nifi/util/TestRunners.java rename to nifi-mock/src/main/java/org/apache/nifi/util/TestRunners.java diff --git a/nifi/nifi-mock/src/test/java/org/apache/nifi/util/CurrentTestStandardProcessorTestRunner.java b/nifi-mock/src/test/java/org/apache/nifi/util/CurrentTestStandardProcessorTestRunner.java similarity index 100% rename from nifi/nifi-mock/src/test/java/org/apache/nifi/util/CurrentTestStandardProcessorTestRunner.java rename to nifi-mock/src/test/java/org/apache/nifi/util/CurrentTestStandardProcessorTestRunner.java diff --git a/nifi/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java b/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java similarity index 100% rename from nifi/nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java rename to nifi-mock/src/test/java/org/apache/nifi/util/TestStandardProcessorTestRunner.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/pom.xml b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/pom.xml rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/PutS3Object.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/PutS3Object.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/PutS3Object.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/PutS3Object.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/AbstractSNSProcessor.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/AbstractSNSProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/AbstractSNSProcessor.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/AbstractSNSProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/PutSNS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/PutSNS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/PutSNS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sns/PutSNS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/AbstractSQSProcessor.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/AbstractSQSProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/AbstractSQSProcessor.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/AbstractSQSProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/DeleteSQS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/GetSQS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/sqs/PutSQS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestFetchS3Object.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestFetchS3Object.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestFetchS3Object.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestFetchS3Object.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestPutS3Object.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestPutS3Object.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestPutS3Object.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/s3/TestPutS3Object.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sns/TestPutSNS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sns/TestPutSNS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sns/TestPutSNS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sns/TestPutSNS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestGetSQS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/java/org/apache/nifi/processors/aws/sqs/TestPutSQS.java diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/resources/hello.txt b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/resources/hello.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/resources/hello.txt rename to nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/test/resources/hello.txt diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml b/nifi-nar-bundles/nifi-aws-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml rename to nifi-nar-bundles/nifi-aws-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/AbstractFlumeProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSink.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/ExecuteFlumeSource.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiChannelSelector.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionChannel.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSessionFactoryChannel.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkSessionChannel.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiSinkTransaction.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/NifiTransaction.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEvent.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/java/org/apache/nifi/processors/flume/util/FlowFileEventConstants.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSink/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/main/resources/docs/org.apache.nifi.processors.flume.ExecuteFlumeSource/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSinkTest.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/java/org/apache/nifi/processors/flume/ExecuteFlumeSourceTest.java diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site-broken.xml diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/core-site.xml diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/log4j.properties diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/simplelogger.properties diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt b/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt rename to nifi-nar-bundles/nifi-flume-bundle/nifi-flume-processors/src/test/resources/testdata/records.txt diff --git a/nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml b/nifi-nar-bundles/nifi-flume-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-flume-bundle/pom.xml rename to nifi-nar-bundles/nifi-flume-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/RepositoryUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/RepositoryUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/RepositoryUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/RepositoryUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/ActionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/ActionDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/ActionDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/ActionDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/AuthorityDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/AuthorityDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/AuthorityDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/AuthorityDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DAOFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DAOFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DAOFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DAOFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DataAccessException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DataAccessException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DataAccessException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/DataAccessException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/UserDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/UserDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/UserDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/UserDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/DAOFactoryImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/DAOFactoryImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/DAOFactoryImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/DAOFactoryImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardActionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardActionDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardActionDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardActionDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardAuthorityDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardAuthorityDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardAuthorityDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardAuthorityDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardUserDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardUserDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardUserDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/dao/impl/StandardUserDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountDisabledException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountDisabledException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountDisabledException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountDisabledException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountNotFoundException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountNotFoundException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountNotFoundException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountNotFoundException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountPendingException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountPendingException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountPendingException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AccountPendingException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AdministrationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AdministrationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AdministrationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AdministrationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AuditService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AuditService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AuditService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/AuditService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/UserService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/UserService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/UserService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/UserService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AbstractUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AbstractUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AbstractUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AbstractUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AddActionsAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AddActionsAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AddActionsAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AddActionsAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AdministrationAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AdministrationAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AdministrationAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AdministrationAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeDownloadAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeDownloadAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeDownloadAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeDownloadAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/AuthorizeUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/CreateUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/CreateUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/CreateUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/CreateUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DeleteUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DeleteUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DeleteUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DeleteUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserGroupAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserGroupAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserGroupAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/DisableUserGroupAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByDnAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByDnAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByDnAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByDnAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByIdAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByIdAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByIdAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/FindUserByIdAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionsAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionsAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionsAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetActionsAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetPreviousValues.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetPreviousValues.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetPreviousValues.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetPreviousValues.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUserGroupAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUserGroupAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUserGroupAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUserGroupAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUsersAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUsersAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUsersAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/GetUsersAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/HasPendingUserAccounts.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/HasPendingUserAccounts.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/HasPendingUserAccounts.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/HasPendingUserAccounts.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserAccountAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserAccountAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserAccountAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserAccountAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserGroupAccountsAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserGroupAccountsAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserGroupAccountsAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/InvalidateUserGroupAccountsAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/PurgeActionsAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/PurgeActionsAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/PurgeActionsAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/PurgeActionsAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/RequestUserAccountAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/RequestUserAccountAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/RequestUserAccountAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/RequestUserAccountAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/SeedUserAccountsAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/SeedUserAccountsAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/SeedUserAccountsAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/SeedUserAccountsAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserGroupAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserGroupAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserGroupAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UngroupUserGroupAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAuthoritiesCacheAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAuthoritiesCacheAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAuthoritiesCacheAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserAuthoritiesCacheAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserCacheAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserCacheAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserCacheAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserCacheAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserGroupAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserGroupAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserGroupAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/action/UpdateUserGroupAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardAuditService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardAuditService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardAuditService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardAuditService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardUserService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardUserService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardUserService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/impl/StandardUserService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/Transaction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/Transaction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/Transaction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/Transaction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionBuilder.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionBuilder.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionBuilder.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionBuilder.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/TransactionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransaction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransaction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransaction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransaction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransactionBuilder.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransactionBuilder.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransactionBuilder.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/service/transaction/impl/StandardTransactionBuilder.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorityProviderFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorityProviderFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorityProviderFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/AuthorityProviderFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderConfigurationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderConfigurationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderConfigurationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderConfigurationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/authorization/StandardAuthorityProviderInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/History.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/History.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/History.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/History.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/HistoryQuery.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/HistoryQuery.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/HistoryQuery.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/HistoryQuery.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/PreviousValue.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/PreviousValue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/PreviousValue.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/history/PreviousValue.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/AccountStatus.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/AccountStatus.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/AccountStatus.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/AccountStatus.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUser.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUser.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUser.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUser.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUserGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUserGroup.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUserGroup.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/user/NiFiUserGroup.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/resources/nifi-administration-context.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/resources/nifi-administration-context.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/resources/nifi-administration-context.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/resources/nifi-administration-context.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/xsd/authority-providers.xsd b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/xsd/authority-providers.xsd similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/xsd/authority-providers.xsd rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/xsd/authority-providers.xsd diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/AuthorizeUserActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/AuthorizeUserActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/AuthorizeUserActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/AuthorizeUserActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/CreateUserActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/CreateUserActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/CreateUserActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/CreateUserActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/DisableUserActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/DisableUserActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/DisableUserActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/DisableUserActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/InvalidateUserAccountActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/InvalidateUserAccountActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/InvalidateUserAccountActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/InvalidateUserAccountActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/RequestUserAccountActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/RequestUserAccountActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/RequestUserAccountActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/RequestUserAccountActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SeedUserAccountsActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SeedUserAccountsActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SeedUserAccountsActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SeedUserAccountsActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SetUserAuthoritiesActionTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SetUserAuthoritiesActionTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SetUserAuthoritiesActionTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/test/java/org/apache/nifi/admin/service/action/SetUserAuthoritiesActionTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/AboutDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BannerDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BannerDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BannerDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BannerDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinBoardDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinBoardDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinBoardDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinBoardDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinQueryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinQueryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinQueryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/BulletinQueryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ClusterDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ClusterDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ClusterDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ClusterDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ComponentHistoryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ComponentHistoryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ComponentHistoryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ComponentHistoryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectableDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectableDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectableDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectableDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectionDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectionDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectionDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ConnectionDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerConfigurationDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceReferencingComponentDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceReferencingComponentDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceReferencingComponentDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ControllerServiceReferencingComponentDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CounterDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CounterDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CounterDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CounterDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CountersDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CountersDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CountersDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/CountersDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/DocumentedTypeDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/DocumentedTypeDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/DocumentedTypeDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/DocumentedTypeDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FlowSnippetDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FlowSnippetDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FlowSnippetDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FlowSnippetDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FunnelDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FunnelDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FunnelDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/FunnelDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/LabelDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/LabelDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/LabelDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/LabelDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NiFiComponentDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NiFiComponentDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NiFiComponentDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NiFiComponentDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeEventDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeEventDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeEventDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeEventDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeSystemDiagnosticsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeSystemDiagnosticsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeSystemDiagnosticsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/NodeSystemDiagnosticsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PortDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PortDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PortDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PortDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PositionDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PositionDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PositionDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PositionDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PreviousValueDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PreviousValueDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PreviousValueDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PreviousValueDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessGroupDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessGroupDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessGroupDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessGroupDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorConfigDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorConfigDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorConfigDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorConfigDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyDescriptorDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyHistoryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyHistoryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyHistoryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/PropertyHistoryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RelationshipDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RelationshipDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RelationshipDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RelationshipDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupContentsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupContentsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupContentsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupContentsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupPortDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupPortDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupPortDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RemoteProcessGroupPortDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ReportingTaskDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ReportingTaskDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ReportingTaskDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ReportingTaskDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RevisionDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RevisionDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RevisionDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/RevisionDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SnippetDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SnippetDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SnippetDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SnippetDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SystemDiagnosticsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SystemDiagnosticsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SystemDiagnosticsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/SystemDiagnosticsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/TemplateDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/TemplateDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/TemplateDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/TemplateDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserGroupDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserGroupDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserGroupDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/UserGroupDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/ActionDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/ActionDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/ActionDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/ActionDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryQueryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryQueryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryQueryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/HistoryQueryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ComponentDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ComponentDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ComponentDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ComponentDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ExtensionDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ExtensionDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ExtensionDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/ExtensionDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/RemoteProcessGroupDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/RemoteProcessGroupDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/RemoteProcessGroupDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/component/details/RemoteProcessGroupDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ActionDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ActionDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ActionDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ActionDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConfigureDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConfigureDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConfigureDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConfigureDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConnectDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConnectDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConnectDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/ConnectDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/MoveDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/MoveDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/MoveDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/MoveDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/PurgeDetailsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/PurgeDetailsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/PurgeDetailsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/action/details/PurgeDetailsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/AttributeDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/AttributeDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/AttributeDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/AttributeDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceEventDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceEventDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceEventDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceEventDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceOptionsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceOptionsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceOptionsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceOptionsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceRequestDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceRequestDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceRequestDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceRequestDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceResultsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceResultsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceResultsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceResultsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceSearchableFieldDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceSearchableFieldDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceSearchableFieldDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/ProvenanceSearchableFieldDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageRequestDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageRequestDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageRequestDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageRequestDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageResultsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageResultsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageResultsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/LineageResultsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceLinkDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceLinkDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceLinkDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceLinkDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/ComponentSearchResultDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/ComponentSearchResultDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/ComponentSearchResultDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/ComponentSearchResultDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/NodeSearchResultDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/NodeSearchResultDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/NodeSearchResultDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/NodeSearchResultDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/SearchResultsDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/SearchResultsDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/SearchResultsDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/SearchResultsDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserGroupSearchResultDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserGroupSearchResultDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserGroupSearchResultDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserGroupSearchResultDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserSearchResultDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserSearchResultDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserSearchResultDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/search/UserSearchResultDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterConnectionStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterConnectionStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterConnectionStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterConnectionStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterPortStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterPortStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterPortStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterPortStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessGroupStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessGroupStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessGroupStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessGroupStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessorStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessorStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessorStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterProcessorStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterRemoteProcessGroupStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterRemoteProcessGroupStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterRemoteProcessGroupStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterRemoteProcessGroupStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusHistoryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusHistoryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusHistoryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ClusterStatusHistoryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ConnectionStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ConnectionStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ConnectionStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ConnectionStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ControllerStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ControllerStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ControllerStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ControllerStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeConnectionStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeConnectionStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeConnectionStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeConnectionStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodePortStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodePortStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodePortStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodePortStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessGroupStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessGroupStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessGroupStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessGroupStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessorStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessorStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessorStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeProcessorStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeRemoteProcessGroupStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeRemoteProcessGroupStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeRemoteProcessGroupStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeRemoteProcessGroupStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusHistoryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusHistoryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusHistoryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/NodeStatusHistoryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/PortStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/PortStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/PortStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/PortStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessGroupStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessGroupStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessGroupStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessGroupStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessorStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessorStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessorStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/ProcessorStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemotePortStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemotePortStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemotePortStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemotePortStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemoteProcessGroupStatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemoteProcessGroupStatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemoteProcessGroupStatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/RemoteProcessGroupStatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDescriptorDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDescriptorDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDescriptorDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusDescriptorDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDetailDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDetailDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDetailDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusHistoryDetailDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusSnapshotDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusSnapshotDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusSnapshotDTO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/status/StatusSnapshotDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/DateTimeAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/DateTimeAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/DateTimeAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/DateTimeAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimeAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimeAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimeAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimeAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimestampAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimestampAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimestampAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/util/TimestampAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AboutEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AboutEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AboutEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AboutEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ActionEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ActionEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ActionEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ActionEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AuthorityEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AuthorityEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AuthorityEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/AuthorityEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BannerEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BannerEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BannerEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BannerEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BulletinBoardEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BulletinBoardEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BulletinBoardEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/BulletinBoardEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterConnectionStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterConnectionStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterConnectionStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterConnectionStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterPortStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterPortStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterPortStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterPortStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessGroupStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessGroupStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessGroupStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessGroupStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessorStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessorStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessorStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterProcessorStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterRemoteProcessGroupStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterRemoteProcessGroupStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterRemoteProcessGroupStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterRemoteProcessGroupStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterSearchResultsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterSearchResultsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterSearchResultsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterSearchResultsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusHistoryEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusHistoryEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusHistoryEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ClusterStatusHistoryEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ComponentHistoryEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ComponentHistoryEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ComponentHistoryEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ComponentHistoryEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ConnectionsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerConfigurationEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerConfigurationEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerConfigurationEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerConfigurationEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceReferencingComponentsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceReferencingComponentsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceReferencingComponentsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceReferencingComponentsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceTypesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceTypesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceTypesEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServiceTypesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServicesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServicesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServicesEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerServicesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ControllerStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CounterEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CounterEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CounterEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CounterEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CountersEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CountersEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CountersEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/CountersEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/Entity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/Entity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/Entity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/Entity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FlowSnippetEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FlowSnippetEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FlowSnippetEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FlowSnippetEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/FunnelsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/HistoryEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/HistoryEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/HistoryEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/HistoryEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/InputPortsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LabelsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LineageEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LineageEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LineageEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/LineageEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeSystemDiagnosticsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeSystemDiagnosticsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeSystemDiagnosticsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/NodeSystemDiagnosticsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/OutputPortsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PrioritizerTypesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PrioritizerTypesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PrioritizerTypesEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PrioritizerTypesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupStatusEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupStatusEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupStatusEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupStatusEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessGroupsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorTypesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorTypesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorTypesEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorTypesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProcessorsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PropertyDescriptorEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PropertyDescriptorEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PropertyDescriptorEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/PropertyDescriptorEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEventEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEventEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEventEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceEventEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceOptionsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceOptionsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceOptionsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ProvenanceOptionsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupPortEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupPortEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupPortEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupPortEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/RemoteProcessGroupsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskTypesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskTypesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskTypesEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTaskTypesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTasksEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTasksEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTasksEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/ReportingTasksEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SearchResultsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SearchResultsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SearchResultsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SearchResultsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SnippetEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SnippetEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SnippetEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SnippetEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/StatusHistoryEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/StatusHistoryEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/StatusHistoryEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/StatusHistoryEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SystemDiagnosticsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SystemDiagnosticsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SystemDiagnosticsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/SystemDiagnosticsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplateEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplateEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplateEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplateEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplatesEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplatesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplatesEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/TemplatesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserGroupEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserGroupEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserGroupEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserGroupEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserSearchResultsEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserSearchResultsEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserSearchResultsEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UserSearchResultsEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UsersEntity.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UsersEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UsersEntity.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/entity/UsersEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/ClusterManagerAuthorizationProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/ClusterManagerAuthorizationProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/ClusterManagerAuthorizationProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/ClusterManagerAuthorizationProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/NodeAuthorizationProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/NodeAuthorizationProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/NodeAuthorizationProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/NodeAuthorizationProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/DoesDnExistMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/DoesDnExistMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/DoesDnExistMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/DoesDnExistMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetAuthoritiesMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetAuthoritiesMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetAuthoritiesMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetAuthoritiesMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetGroupForUserMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetGroupForUserMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetGroupForUserMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/GetGroupForUserMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/ProtocolMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/ProtocolMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/ProtocolMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/ProtocolMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/JaxbProtocolUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/JaxbProtocolUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/JaxbProtocolUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/JaxbProtocolUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/ObjectFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/ObjectFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/ObjectFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/java/org/apache/nifi/cluster/authorization/protocol/message/jaxb/ObjectFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/ConfigurableComponentInitializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/ConfigurableComponentInitializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/ConfigurableComponentInitializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/ConfigurableComponentInitializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocGenerator.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocGenerator.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocGenerator.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocGenerator.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocumentationWriter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocumentationWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocumentationWriter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/DocumentationWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlProcessorDocumentationWriter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlProcessorDocumentationWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlProcessorDocumentationWriter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlProcessorDocumentationWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ControllerServiceInitializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ControllerServiceInitializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ControllerServiceInitializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ControllerServiceInitializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ProcessorInitializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ProcessorInitializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ProcessorInitializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ProcessorInitializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ReportingTaskingInitializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ReportingTaskingInitializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ReportingTaskingInitializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/init/ReportingTaskingInitializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockConfigurationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockConfigurationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockConfigurationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockConfigurationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceLookup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceLookup.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceLookup.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockControllerServiceLookup.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorLogger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorLogger.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorLogger.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockProcessorLogger.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockReportingInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockReportingInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockReportingInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/mock/MockReportingInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/util/ReflectionUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/util/ReflectionUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/util/ReflectionUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/util/ReflectionUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/DocGeneratorTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/DocGeneratorTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/DocGeneratorTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/DocGeneratorTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ControllerServiceWithLogger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ControllerServiceWithLogger.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ControllerServiceWithLogger.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ControllerServiceWithLogger.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedControllerService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedControllerService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedControllerService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedControllerService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedReportingTask.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedReportingTask.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedReportingTask.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedReportingTask.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/NakedProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/NakedProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/NakedProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/NakedProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ProcessorWithLogger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ProcessorWithLogger.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ProcessorWithLogger.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ProcessorWithLogger.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ReportingTaskWithLogger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ReportingTaskWithLogger.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ReportingTaskWithLogger.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/ReportingTaskWithLogger.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/SampleService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/SampleService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/SampleService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/SampleService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/HtmlDocumentationWriterTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/HtmlDocumentationWriterTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/HtmlDocumentationWriterTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/HtmlDocumentationWriterTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/XmlValidator.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/XmlValidator.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/XmlValidator.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/XmlValidator.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/conf/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/conf/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/conf/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/conf/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/example.nar b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/example.nar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/example.nar rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/example.nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/jetty.nar b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/jetty.nar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/jetty.nar rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/jetty.nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/nifi-framework-nar.nar b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/nifi-framework-nar.nar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/nifi-framework-nar.nar rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/resources/lib/nifi-framework-nar.nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/java/org/apache/nifi/authorization/FileAuthorizationProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/java/org/apache/nifi/authorization/FileAuthorizationProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/java/org/apache/nifi/authorization/FileAuthorizationProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/java/org/apache/nifi/authorization/FileAuthorizationProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/xsd/users.xsd b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/xsd/users.xsd similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/xsd/users.xsd rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/main/xsd/users.xsd diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/test/java/org/apache/nifi/authorization/FileAuthorizationProviderTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/test/java/org/apache/nifi/authorization/FileAuthorizationProviderTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/test/java/org/apache/nifi/authorization/FileAuthorizationProviderTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/src/test/java/org/apache/nifi/authorization/FileAuthorizationProviderTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ClusterManagerProtocolSender.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ClusterManagerProtocolSender.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ClusterManagerProtocolSender.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ClusterManagerProtocolSender.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionRequest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionRequest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionResponse.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionResponse.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionResponse.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ConnectionResponse.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/Heartbeat.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/Heartbeat.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/Heartbeat.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/Heartbeat.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeBulletins.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeBulletins.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeBulletins.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeBulletins.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeIdentifier.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeIdentifier.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeIdentifier.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeIdentifier.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeProtocolSender.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeProtocolSender.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeProtocolSender.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/NodeProtocolSender.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolHandler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolHandler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolHandler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolHandler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageMarshaller.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageMarshaller.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageMarshaller.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageMarshaller.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageUnmarshaller.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageUnmarshaller.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageUnmarshaller.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ProtocolMessageUnmarshaller.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/StandardDataFlow.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/StandardDataFlow.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/StandardDataFlow.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/StandardDataFlow.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/UnknownServiceAddressException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/UnknownServiceAddressException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/UnknownServiceAddressException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/UnknownServiceAddressException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscovery.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscovery.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscovery.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscovery.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocator.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocator.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocator.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocator.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcaster.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcaster.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcaster.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcaster.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/CopyingInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/CopyingInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/CopyingInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/CopyingInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/JaxbProtocolContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/JaxbProtocolContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/JaxbProtocolContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/JaxbProtocolContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionRequest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionRequest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionResponse.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionResponse.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionResponse.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedConnectionResponse.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedCounter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedCounter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedCounter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedCounter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedDataFlow.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedDataFlow.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedDataFlow.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedDataFlow.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedHeartbeat.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedHeartbeat.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedHeartbeat.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedHeartbeat.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeBulletins.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeBulletins.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeBulletins.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeBulletins.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeIdentifier.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeIdentifier.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeIdentifier.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/AdaptedNodeIdentifier.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionRequestAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionRequestAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionRequestAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionRequestAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionResponseAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionResponseAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionResponseAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ConnectionResponseAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/DataFlowAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/DataFlowAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/DataFlowAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/DataFlowAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/HeartbeatAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/HeartbeatAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/HeartbeatAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/HeartbeatAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/JaxbProtocolUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/JaxbProtocolUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/JaxbProtocolUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/JaxbProtocolUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeBulletinsAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeBulletinsAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeBulletinsAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeBulletinsAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeIdentifierAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeIdentifierAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeIdentifierAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/NodeIdentifierAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ObjectFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ObjectFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ObjectFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/jaxb/message/ObjectFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionRequestMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionRequestMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionRequestMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionRequestMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionResponseMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionResponseMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionResponseMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ConnectionResponseMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ControllerStartupFailureMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ControllerStartupFailureMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ControllerStartupFailureMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ControllerStartupFailureMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/DisconnectMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/DisconnectMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/DisconnectMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/DisconnectMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ExceptionMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ExceptionMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ExceptionMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ExceptionMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowRequestMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowRequestMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowRequestMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowRequestMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowResponseMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowResponseMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowResponseMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/FlowResponseMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/HeartbeatMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/HeartbeatMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/HeartbeatMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/HeartbeatMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/MulticastProtocolMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/MulticastProtocolMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/MulticastProtocolMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/MulticastProtocolMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/NodeBulletinsMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/NodeBulletinsMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/NodeBulletinsMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/NodeBulletinsMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PingMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PingMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PingMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PingMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PrimaryRoleAssignmentMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PrimaryRoleAssignmentMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PrimaryRoleAssignmentMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/PrimaryRoleAssignmentMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ProtocolMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ProtocolMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ProtocolMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ProtocolMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionFailureMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionFailureMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionFailureMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionFailureMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionRequestMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionRequestMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionRequestMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionRequestMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionResponseMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionResponseMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionResponseMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ReconnectionResponseMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ServiceBroadcastMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ServiceBroadcastMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ServiceBroadcastMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/message/ServiceBroadcastMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/MulticastConfigurationFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/MulticastConfigurationFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/MulticastConfigurationFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/MulticastConfigurationFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/ServerSocketConfigurationFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/ServerSocketConfigurationFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/ServerSocketConfigurationFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/ServerSocketConfigurationFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/SocketConfigurationFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/SocketConfigurationFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/SocketConfigurationFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/spring/SocketConfigurationFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/resources/nifi-cluster-protocol-context.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/resources/nifi-cluster-protocol-context.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/resources/nifi-cluster-protocol-context.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/resources/nifi-cluster-protocol-context.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImplTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImplTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImplTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterManagerProtocolSenderImplTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscoveryTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscoveryTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscoveryTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceDiscoveryTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocatorTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocatorTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocatorTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServiceLocatorTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcasterTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcasterTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcasterTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/ClusterServicesBroadcasterTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListenerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListenerTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListenerTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/MulticastProtocolListenerTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImplTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImplTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImplTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/NodeProtocolSenderImplTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListenerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListenerTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListenerTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/SocketProtocolListenerTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/DelayedProtocolHandler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/DelayedProtocolHandler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/DelayedProtocolHandler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/DelayedProtocolHandler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/ReflexiveProtocolHandler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/ReflexiveProtocolHandler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/ReflexiveProtocolHandler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/test/java/org/apache/nifi/cluster/protocol/impl/testutils/ReflexiveProtocolHandler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextThreadLocal.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextThreadLocal.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextThreadLocal.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/src/main/java/org/apache/nifi/cluster/context/ClusterContextThreadLocal.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/client/MulticastTestClient.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/client/MulticastTestClient.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/client/MulticastTestClient.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/client/MulticastTestClient.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/Event.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/Event.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/Event.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/Event.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/EventManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/EventManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/EventManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/EventManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/impl/EventManagerImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/impl/EventManagerImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/impl/EventManagerImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/event/impl/EventManagerImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/ClusterNodeFirewall.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/ClusterNodeFirewall.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/ClusterNodeFirewall.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/ClusterNodeFirewall.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/ClusterDataFlow.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/ClusterDataFlow.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/ClusterDataFlow.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/ClusterDataFlow.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DaoException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DaoException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DaoException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DaoException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowDao.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowDao.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowDao.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowDao.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowManagementService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowManagementService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowManagementService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/DataFlowManagementService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/PersistedFlowState.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/PersistedFlowState.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/PersistedFlowState.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/PersistedFlowState.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/StaleFlowException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/StaleFlowException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/StaleFlowException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/StaleFlowException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowDaoImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowDaoImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowDaoImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowDaoImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/ClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/ClusterManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/ClusterManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/ClusterManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpClusterManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpClusterManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpClusterManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpRequestReplicator.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpRequestReplicator.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpRequestReplicator.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpRequestReplicator.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpResponseMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpResponseMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpResponseMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/HttpResponseMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/NodeResponse.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/NodeResponse.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/NodeResponse.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/NodeResponse.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/BlockedByFirewallException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/BlockedByFirewallException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/BlockedByFirewallException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/BlockedByFirewallException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ClusterException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ClusterException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ClusterException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ClusterException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ConnectingNodeMutableRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ConnectingNodeMutableRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ConnectingNodeMutableRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/ConnectingNodeMutableRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/DisconnectedNodeMutableRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/DisconnectedNodeMutableRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/DisconnectedNodeMutableRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/DisconnectedNodeMutableRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalClusterStateException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalClusterStateException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalClusterStateException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalClusterStateException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDeletionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDeletionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDeletionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDeletionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDisconnectionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDisconnectionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDisconnectionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeDisconnectionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeReconnectionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeReconnectionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeReconnectionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IllegalNodeReconnectionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IneligiblePrimaryNodeException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IneligiblePrimaryNodeException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IneligiblePrimaryNodeException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/IneligiblePrimaryNodeException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/MutableRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/MutableRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/MutableRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/MutableRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoConnectedNodesException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoConnectedNodesException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoConnectedNodesException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoConnectedNodesException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoResponseFromNodesException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoResponseFromNodesException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoResponseFromNodesException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NoResponseFromNodesException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeDisconnectionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeDisconnectionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeDisconnectionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeDisconnectionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeReconnectionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeReconnectionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeReconnectionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/NodeReconnectionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/PrimaryRoleAssignmentException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/PrimaryRoleAssignmentException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/PrimaryRoleAssignmentException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/PrimaryRoleAssignmentException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/SafeModeMutableRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/SafeModeMutableRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/SafeModeMutableRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/SafeModeMutableRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UnknownNodeException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UnknownNodeException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UnknownNodeException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UnknownNodeException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UriConstructionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UriConstructionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UriConstructionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/exception/UriConstructionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredEventAccess.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredEventAccess.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredEventAccess.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredEventAccess.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredReportingContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredReportingContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredReportingContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/ClusteredReportingContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImpl.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImpl.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/manager/impl/WebClusterManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/node/Node.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/node/Node.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/node/Node.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/node/Node.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/ClusterManagerProtocolServiceLocatorFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/ClusterManagerProtocolServiceLocatorFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/ClusterManagerProtocolServiceLocatorFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/ClusterManagerProtocolServiceLocatorFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/FileBasedClusterNodeFirewallFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/WebClusterManagerFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/WebClusterManagerFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/WebClusterManagerFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/spring/WebClusterManagerFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/controller/reporting/ClusteredReportingTaskNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/controller/reporting/ClusteredReportingTaskNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/controller/reporting/ClusteredReportingTaskNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/controller/reporting/ClusteredReportingTaskNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/resources/nifi-cluster-manager-context.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/resources/nifi-cluster-manager-context.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/resources/nifi-cluster-manager-context.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/resources/nifi-cluster-manager-context.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/event/impl/EventManagerImplTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/event/impl/EventManagerImplTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/event/impl/EventManagerImplTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/event/impl/EventManagerImplTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewallTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewallTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewallTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewallTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImplTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImplTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImplTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/flow/impl/DataFlowManagementServiceImplTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImplTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImplTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImplTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpRequestReplicatorImplTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImplTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImplTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImplTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/HttpResponseMapperImplTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/TestWebClusterManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/TestWebClusterManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/TestWebClusterManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/impl/TestWebClusterManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpRequest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpRequest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponse.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponse.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponse.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponse.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponseAction.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponseAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponseAction.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpResponseAction.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpServer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpServer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/java/org/apache/nifi/cluster/manager/testutils/HttpServer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/logback-test.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/logback-test.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/logback-test.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/empty.txt b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/empty.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/empty.txt rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/empty.txt diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/ips.txt b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/ips.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/ips.txt rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/test/resources/org/apache/nifi/cluster/firewall/impl/ips.txt diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/cluster/protocol/DataFlow.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/cluster/protocol/DataFlow.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/cluster/protocol/DataFlow.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/cluster/protocol/DataFlow.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connectable.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connectable.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connectable.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connectable.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/ConnectableType.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/ConnectableType.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/ConnectableType.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/ConnectableType.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connection.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connection.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connection.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Connection.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Funnel.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Funnel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Funnel.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Funnel.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Port.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Port.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Port.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Port.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Position.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Position.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Position.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Position.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Size.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Size.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Size.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/connectable/Size.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractConfiguredComponent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractConfiguredComponent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractConfiguredComponent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractConfiguredComponent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractPort.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractPort.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/AbstractPort.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ConfiguredComponent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ConfiguredComponent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ConfiguredComponent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ConfiguredComponent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ContentAvailability.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ContentAvailability.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ContentAvailability.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ContentAvailability.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Counter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Counter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Counter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Counter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/EventBasedWorker.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/EventBasedWorker.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/EventBasedWorker.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/EventBasedWorker.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Heartbeater.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Heartbeater.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Heartbeater.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/Heartbeater.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessScheduler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessorNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessorNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessorNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ProcessorNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ReportingTaskNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFlowFileQueue.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFlowFileQueue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFlowFileQueue.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFlowFileQueue.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFunnel.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFunnel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFunnel.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/StandardFunnel.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ValidationContextFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ValidationContextFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ValidationContextFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/ValidationContextFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/WorkerQueue.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/WorkerQueue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/WorkerQueue.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/WorkerQueue.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/CommunicationsException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/CommunicationsException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/CommunicationsException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/CommunicationsException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ComponentLifeCycleException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ComponentLifeCycleException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ComponentLifeCycleException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ComponentLifeCycleException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceAlreadyExistsException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceAlreadyExistsException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceAlreadyExistsException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceAlreadyExistsException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceInstantiationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceInstantiationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceInstantiationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ControllerServiceInstantiationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ProcessorInstantiationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ProcessorInstantiationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ProcessorInstantiationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/exception/ProcessorInstantiationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/label/Label.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/label/Label.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/label/Label.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/label/Label.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskInstantiationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskInstantiationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskInstantiationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskInstantiationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/reporting/ReportingTaskProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/ContentNotFoundException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/ContentNotFoundException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/ContentNotFoundException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/ContentNotFoundException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/CounterRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/CounterRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/CounterRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/CounterRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEvent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEvent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEvent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEvent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEventRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEventRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEventRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/FlowFileEventRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/RepositoryStatusReport.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/RepositoryStatusReport.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/RepositoryStatusReport.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/repository/RepositoryStatusReport.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceReference.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceReference.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceReference.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceReference.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceState.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceState.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceState.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/controller/service/ControllerServiceState.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinProcessingStrategy.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinProcessingStrategy.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinProcessingStrategy.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinProcessingStrategy.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/ComponentBulletin.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/ComponentBulletin.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/ComponentBulletin.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/ComponentBulletin.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/SystemBulletin.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/SystemBulletin.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/SystemBulletin.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/SystemBulletin.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroup.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroupCounts.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroupCounts.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroupCounts.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/ProcessGroupCounts.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroup.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroup.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroup.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroupPortDescriptor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroupPortDescriptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroupPortDescriptor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/groups/RemoteProcessGroupPortDescriptor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogMessage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogMessage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogMessage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogMessage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogObserver.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogObserver.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogObserver.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogObserver.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepositoryFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepositoryFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepositoryFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/logging/LogRepositoryFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/PortAuthorizationResult.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/PortAuthorizationResult.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/PortAuthorizationResult.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/PortAuthorizationResult.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteAuthorizationState.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteAuthorizationState.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteAuthorizationState.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteAuthorizationState.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteGroupPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteGroupPort.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteGroupPort.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RemoteGroupPort.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RootGroupPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RootGroupPort.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RootGroupPort.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/RootGroupPort.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/cluster/NodeInformant.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/cluster/NodeInformant.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/cluster/NodeInformant.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/cluster/NodeInformant.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/BadRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/BadRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/BadRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/BadRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/NotAuthorizedException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/NotAuthorizedException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/NotAuthorizedException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/NotAuthorizedException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/RequestExpiredException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/RequestExpiredException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/RequestExpiredException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/exception/RequestExpiredException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/protocol/ServerProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/protocol/ServerProtocol.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/protocol/ServerProtocol.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/remote/protocol/ServerProtocol.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/BulletinsPayload.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/BulletinsPayload.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/BulletinsPayload.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/BulletinsPayload.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/ConnectionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/ConnectionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/ConnectionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/ConnectionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/DisconnectionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/DisconnectionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/DisconnectionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/DisconnectionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/HeartbeatPayload.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/HeartbeatPayload.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/HeartbeatPayload.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/cluster/HeartbeatPayload.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/StandardConnection.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/StandardConnection.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/StandardConnection.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/StandardConnection.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/EventDrivenWorkerQueue.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/EventDrivenWorkerQueue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/EventDrivenWorkerQueue.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/EventDrivenWorkerQueue.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FileSystemSwapManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FileSystemSwapManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FileSystemSwapManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FileSystemSwapManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowFromDOMFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowFromDOMFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowFromDOMFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowFromDOMFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSerializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowSynchronizer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowUnmarshaller.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowUnmarshaller.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowUnmarshaller.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowUnmarshaller.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/SnippetManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/SnippetManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/SnippetManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/SnippetManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardCounter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardCounter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardCounter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardCounter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSerializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSerializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSerializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSerializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSynchronizer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSynchronizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSynchronizer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSynchronizer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardSnippet.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardSnippet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardSnippet.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardSnippet.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/Template.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/Template.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/Template.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/Template.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/UninheritableFlowException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/UninheritableFlowException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/UninheritableFlowException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/UninheritableFlowException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/FlowFileConsumptionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/FlowFileConsumptionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/FlowFileConsumptionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/FlowFileConsumptionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ReportingTaskInstantiationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ReportingTaskInstantiationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ReportingTaskInstantiationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ReportingTaskInstantiationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ValidationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ValidationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ValidationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/exception/ValidationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/label/StandardLabel.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/label/StandardLabel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/label/StandardLabel.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/label/StandardLabel.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/AbstractReportingTaskNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingTaskNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingTaskNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingTaskNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/reporting/StandardReportingTaskNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/BatchingSessionFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/BatchingSessionFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/BatchingSessionFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/BatchingSessionFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ConnectionSwapInfo.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ConnectionSwapInfo.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ConnectionSwapInfo.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ConnectionSwapInfo.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProcessContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProcessContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProcessContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProvenanceEventEnricher.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProvenanceEventEnricher.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProvenanceEventEnricher.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/ProvenanceEventEnricher.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RepositoryPurgeException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RepositoryPurgeException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RepositoryPurgeException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RepositoryPurgeException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RingBufferEventRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RingBufferEventRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RingBufferEventRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/RingBufferEventRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardCounterRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardCounterRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardCounterRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardCounterRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileEvent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileEvent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileEvent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileEvent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileRecord.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileRecord.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileRecord.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardFlowFileRecord.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSessionFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSessionFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSessionFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProcessSessionFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardProvenanceReporter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryRecord.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryRecord.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryRecord.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryRecord.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryStatusReport.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryStatusReport.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryStatusReport.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/StandardRepositoryStatusReport.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileContentRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileContentRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileContentRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileContentRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileFlowFileRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileFlowFileRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileFlowFileRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/VolatileFlowFileRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/WriteAheadFlowFileRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/WriteAheadFlowFileRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/WriteAheadFlowFileRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/WriteAheadFlowFileRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/ContentDirection.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/ContentDirection.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/ContentDirection.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/ContentDirection.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaim.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaim.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaim.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaim.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaimManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaimManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaimManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/claim/StandardContentClaimManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ArrayManagedOutputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ArrayManagedOutputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ArrayManagedOutputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ArrayManagedOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingOutputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingOutputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingOutputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/ByteCountingOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseOutputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseOutputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseOutputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/DisableOnCloseOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessOutputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessOutputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessOutputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/FlowFileAccessOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LimitedInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LongHolder.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LongHolder.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LongHolder.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/LongHolder.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/MemoryManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/MemoryManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/MemoryManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/MemoryManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/SyncOnCloseOutputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/SyncOnCloseOutputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/SyncOnCloseOutputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/io/SyncOnCloseOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ConnectableProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ConnectableProcessContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ConnectableProcessContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ConnectableProcessContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/EventDrivenSchedulingAgent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ProcessContextFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ProcessContextFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ProcessContextFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ProcessContextFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ScheduleState.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ScheduleState.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ScheduleState.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/ScheduleState.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/SchedulingAgent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/SchedulingAgent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/SchedulingAgent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/SchedulingAgent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/StandardProcessScheduler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/TimerDrivenSchedulingAgent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/TimerDrivenSchedulingAgent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/TimerDrivenSchedulingAgent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/TimerDrivenSchedulingAgent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ControllerServiceLoader.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ControllerServiceLoader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ControllerServiceLoader.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/ControllerServiceLoader.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardConfigurationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardConfigurationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardConfigurationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardConfigurationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceNode.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceNode.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceNode.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceNode.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceReference.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceReference.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceReference.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/service/StandardControllerServiceReference.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardMetricDescriptor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardMetricDescriptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardMetricDescriptor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardMetricDescriptor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusHistory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusHistory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusHistory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusHistory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusSnapshot.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusSnapshot.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusSnapshot.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StandardStatusSnapshot.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StatusHistoryUtil.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StatusHistoryUtil.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StatusHistoryUtil.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/StatusHistoryUtil.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunConnectableTask.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunConnectableTask.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunConnectableTask.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunConnectableTask.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunProcessorTask.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunProcessorTask.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunProcessorTask.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunProcessorTask.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ExpireFlowFiles.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ExpireFlowFiles.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ExpireFlowFiles.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ExpireFlowFiles.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ReportingTaskWrapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ReportingTaskWrapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ReportingTaskWrapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ReportingTaskWrapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/DiagnosticUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/DiagnosticUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/DiagnosticUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/DiagnosticUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/GarbageCollection.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/GarbageCollection.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/GarbageCollection.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/GarbageCollection.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/StorageUsage.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/StorageUsage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/StorageUsage.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/StorageUsage.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnostics.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/SystemDiagnosticsFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/EncryptionException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/EncryptionException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/EncryptionException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/EncryptionException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/StringEncryptor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/StringEncryptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/StringEncryptor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/encrypt/StringEncryptor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/engine/FlowEngine.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/engine/FlowEngine.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/engine/FlowEngine.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/engine/FlowEngine.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/NodeBulletinProcessingStrategy.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/NodeBulletinProcessingStrategy.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/NodeBulletinProcessingStrategy.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/NodeBulletinProcessingStrategy.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/VolatileBulletinRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/VolatileBulletinRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/VolatileBulletinRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/VolatileBulletinRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/CommunicationsFailure.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/CommunicationsFailure.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/CommunicationsFailure.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/CommunicationsFailure.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/NetworkTransfer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/NetworkTransfer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/NetworkTransfer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/events/network/NetworkTransfer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/fingerprint/FingerprintFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedBulletin.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedBulletin.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedBulletin.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedBulletin.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedCounter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedCounter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedCounter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/AdaptedCounter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/BulletinAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/BulletinAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/BulletinAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/BulletinAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/CounterAdapter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/CounterAdapter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/CounterAdapter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/jaxb/CounterAdapter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycle.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycle.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycle.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycle.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStartException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStartException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStartException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStartException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStopException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStopException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStopException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/lifecycle/LifeCycleStopException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ControllerServiceLogObserver.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ControllerServiceLogObserver.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ControllerServiceLogObserver.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ControllerServiceLogObserver.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ProcessorLogObserver.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ProcessorLogObserver.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ProcessorLogObserver.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ProcessorLogObserver.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ReportingTaskLogObserver.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ReportingTaskLogObserver.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ReportingTaskLogObserver.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/ReportingTaskLogObserver.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/repository/StandardLogRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/repository/StandardLogRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/repository/StandardLogRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/logging/repository/StandardLogRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetDeserializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetDeserializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetDeserializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetDeserializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetSerializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetSerializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetSerializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardSnippetSerializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardXMLFlowConfigurationDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardXMLFlowConfigurationDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardXMLFlowConfigurationDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/StandardXMLFlowConfigurationDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateDeserializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateDeserializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateDeserializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateDeserializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateSerializer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateSerializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateSerializer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/TemplateSerializer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/SimpleProcessLogger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/SimpleProcessLogger.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/SimpleProcessLogger.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/SimpleProcessLogger.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessorInitializationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessorInitializationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessorInitializationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardProcessorInitializationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardPropertyValue.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardPropertyValue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardPropertyValue.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardPropertyValue.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardSchedulingContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardSchedulingContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardSchedulingContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardSchedulingContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContextFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContextFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContextFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/processor/StandardValidationContextFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/RemoteNiFiUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/RemoteNiFiUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/RemoteNiFiUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/RemoteNiFiUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroup.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroupPortDescriptor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroupPortDescriptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroupPortDescriptor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/remote/StandardRemoteProcessGroupPortDescriptor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/services/FlowService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/services/FlowService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/services/FlowService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/services/FlowService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/FlowControllerFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/FlowControllerFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/FlowControllerFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/FlowControllerFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/RingBufferEventRepositoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/RingBufferEventRepositoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/RingBufferEventRepositoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/RingBufferEventRepositoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/StandardFlowServiceFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/StandardFlowServiceFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/StandardFlowServiceFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/spring/StandardFlowServiceFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ComponentStatusReport.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ComponentStatusReport.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ComponentStatusReport.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ComponentStatusReport.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/Connectables.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/Connectables.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/Connectables.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/Connectables.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/DomUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/DomUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/DomUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/DomUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ReflectionUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ReflectionUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ReflectionUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/ReflectionUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/SnippetUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/SnippetUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/SnippetUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/util/SnippetUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/FlowConfiguration.xsd b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/FlowConfiguration.xsd similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/FlowConfiguration.xsd rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/FlowConfiguration.xsd diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.ContentRepository b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.ContentRepository similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.ContentRepository rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.ContentRepository diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileRepository b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileRepository similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileRepository rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileRepository diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileSwapManager b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileSwapManager similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileSwapManager rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.repository.FlowFileSwapManager diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.status.history.ComponentStatusRepository b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.status.history.ComponentStatusRepository similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.status.history.ComponentStatusRepository rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/META-INF/services/org.apache.nifi.controller.status.history.ComponentStatusRepository diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/nifi-context.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/nifi-context.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/nifi-context.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/resources/nifi-context.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/cluster/HeartbeatPayloadTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/cluster/HeartbeatPayloadTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/cluster/HeartbeatPayloadTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/cluster/HeartbeatPayloadTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardFlowServiceTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardFlowServiceTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardFlowServiceTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/StandardFlowServiceTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/TestFileSystemSwapManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/TestFileSystemSwapManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/TestFileSystemSwapManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/TestFileSystemSwapManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestFileSystemRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestFileSystemRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestFileSystemRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestFileSystemRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestRingBufferEventRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestRingBufferEventRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestRingBufferEventRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestRingBufferEventRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProcessSession.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProcessSession.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProcessSession.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProcessSession.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProvenanceReporter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProvenanceReporter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProvenanceReporter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestStandardProvenanceReporter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestVolatileContentRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestVolatileContentRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestVolatileContentRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestVolatileContentRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestWriteAheadFlowFileRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestWriteAheadFlowFileRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestWriteAheadFlowFileRepository.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/TestWriteAheadFlowFileRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/io/TestLimitedInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/util/DiskUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/util/DiskUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/util/DiskUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/repository/util/DiskUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/TestStandardProcessScheduler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/TestStandardProcessScheduler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/TestStandardProcessScheduler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/TestStandardProcessScheduler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/StandardControllerServiceProviderTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/TestStandardControllerServiceProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/TestStandardControllerServiceProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/TestStandardControllerServiceProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/TestStandardControllerServiceProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/DummyProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/DummyProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/DummyProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/DummyProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceA.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceA.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceA.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceA.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceB.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceB.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceB.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/mock/ServiceB.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/service/util/TestControllerService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/fingerprint/FingerprintFactoryTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/processor/TestStandardPropertyValue.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/processor/TestStandardPropertyValue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/processor/TestStandardPropertyValue.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/processor/TestStandardPropertyValue.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/DataGeneratorTestProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/DataGeneratorTestProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/DataGeneratorTestProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/DataGeneratorTestProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubAttributeLoggerProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubAttributeLoggerProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubAttributeLoggerProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubAttributeLoggerProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubTerminationFileProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubTerminationFileProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubTerminationFileProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/test/processors/StubTerminationFileProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/0bytes.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/0bytes.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/0bytes.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/0bytes.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-corrupt.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-corrupt.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-corrupt.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-corrupt.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-inheritable.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-inheritable.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-inheritable.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-inheritable.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-uninheritable.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-uninheritable.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-uninheritable.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow-uninheritable.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/all-flow.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/only-termination.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/only-termination.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/only-termination.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/only-termination.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/remote-flow.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/remote-flow.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/remote-flow.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/remote-flow.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/standard-flow.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/standard-flow.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/standard-flow.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/standard-flow.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/taskConfig.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/taskConfig.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/taskConfig.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/taskConfig.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/termination-only.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/termination-only.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/termination-only.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/conf/termination-only.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/hello.txt b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/hello.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/hello.txt rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/hello.txt diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/logback-test.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/logback-test.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/logback-test.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi-with-remote.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi-with-remote.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi-with-remote.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi-with-remote.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1a.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1a.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1a.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1a.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1b.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1b.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1b.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow1b.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow2.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow2.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow2.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/nifi/fingerprint/flow2.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/old-swap-file.swap b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/old-swap-file.swap similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/old-swap-file.swap rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/resources/old-swap-file.swap diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionMapping.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionMapping.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionMapping.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/ExtensionMapping.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoader.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoader.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoader.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoaders.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoaders.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoaders.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarClassLoaders.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarCloseable.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarCloseable.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarCloseable.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarCloseable.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarThreadContextClassLoader.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarThreadContextClassLoader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarThreadContextClassLoader.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarThreadContextClassLoader.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarUnpacker.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarUnpacker.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarUnpacker.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/nar/NarUnpacker.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/util/FileUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/util/FileUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/util/FileUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/main/java/org/apache/nifi/util/FileUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/java/org/apache/nifi/nar/NarUnpackerTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/conf/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/conf/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/conf/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/conf/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/dummy-one.nar b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/dummy-one.nar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/dummy-one.nar rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/dummy-one.nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/nifi-framework-nar.nar b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/nifi-framework-nar.nar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/nifi-framework-nar.nar rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib/nifi-framework-nar.nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib2/dummy-two.nar b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib2/dummy-two.nar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib2/dummy-two.nar rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/src/test/resources/NarUnpacker/lib2/dummy-two.nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/LICENSE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/LICENSE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/NOTICE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/NOTICE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/assembly/dependencies.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/assembly/dependencies.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/assembly/dependencies.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/assembly/dependencies.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/dump-nifi.bat b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/dump-nifi.bat similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/dump-nifi.bat rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/dump-nifi.bat diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/nifi.sh diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/run-nifi.bat b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/run-nifi.bat similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/run-nifi.bat rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/run-nifi.bat diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/status-nifi.bat b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/status-nifi.bat similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/status-nifi.bat rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/bin/status-nifi.bat diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authority-providers.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authority-providers.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authority-providers.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authority-providers.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authorized-users.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authorized-users.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authorized-users.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/authorized-users.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/logback.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/BootstrapListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/BootstrapListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/BootstrapListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/BootstrapListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFiServer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFiServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFiServer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFiServer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/util/LimitingInputStream.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/util/LimitingInputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/util/LimitingInputStream.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/util/LimitingInputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextCreationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextCreationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextCreationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextCreationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslContextFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactoryCreationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactoryCreationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactoryCreationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslServerSocketFactoryCreationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactoryCreationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactoryCreationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactoryCreationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/main/java/org/apache/nifi/framework/security/util/SslSocketFactoryCreationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/java/org/apache/nifi/framework/security/util/SslContextFactoryTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/java/org/apache/nifi/framework/security/util/SslContextFactoryTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/java/org/apache/nifi/framework/security/util/SslContextFactoryTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/java/org/apache/nifi/framework/security/util/SslContextFactoryTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ks.jks b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ks.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ks.jks rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ks.jks diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ts.jks b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ts.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ts.jks rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/localhost-ts.jks diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/log4j.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/log4j.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/log4j.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/src/test/resources/log4j.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/controller/util/RemoteProcessGroupUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/controller/util/RemoteProcessGroupUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/controller/util/RemoteProcessGroupUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/controller/util/RemoteProcessGroupUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteResourceManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteSiteListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteSiteListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteSiteListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/RemoteSiteListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/SocketRemoteSiteListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRemoteGroupPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRemoteGroupPort.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRemoteGroupPort.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRemoteGroupPort.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/StandardRootGroupPort.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/exception/UnsupportedCodecException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/exception/UnsupportedCodecException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/exception/UnsupportedCodecException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/exception/UnsupportedCodecException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/ClusterManagerServerProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/ClusterManagerServerProtocol.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/ClusterManagerServerProtocol.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/ClusterManagerServerProtocol.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/SocketFlowFileServerProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/SocketFlowFileServerProtocol.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/SocketFlowFileServerProtocol.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/java/org/apache/nifi/remote/protocol/socket/SocketFlowFileServerProtocol.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.codec.FlowFileCodec b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.codec.FlowFileCodec similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.codec.FlowFileCodec rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.codec.FlowFileCodec diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ClientProtocol b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ClientProtocol similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ClientProtocol rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ClientProtocol diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ServerProtocol b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ServerProtocol similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ServerProtocol rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/main/resources/META-INF/services/org.apache.nifi.remote.protocol.ServerProtocol diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardSiteToSiteProtocol.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/TestSocketChannelStreams.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/TestSocketChannelStreams.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/TestSocketChannelStreams.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/TestSocketChannelStreams.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/ssl/TestSSLSocketChannel.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/ssl/TestSSLSocketChannel.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/ssl/TestSSLSocketChannel.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/io/socket/ssl/TestSSLSocketChannel.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ks.jks b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ks.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ks.jks rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ks.jks diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ts.jks b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ts.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ts.jks rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/dummy-certs/localhost-ts.jks diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/logback-test.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/logback-test.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/logback-test.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/resources/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Action.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Action.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Action.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Action.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Component.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Component.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Component.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Component.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Operation.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Operation.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Operation.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/Operation.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ComponentDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ComponentDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ComponentDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ComponentDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ExtensionDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ExtensionDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ExtensionDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/ExtensionDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/RemoteProcessGroupDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/RemoteProcessGroupDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/RemoteProcessGroupDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/component/details/RemoteProcessGroupDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ActionDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ActionDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ActionDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ActionDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConfigureDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConfigureDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConfigureDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConfigureDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConnectDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConnectDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConnectDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/ConnectDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/MoveDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/MoveDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/MoveDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/MoveDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/PurgeDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/PurgeDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/PurgeDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/src/main/java/org/apache/nifi/action/details/PurgeDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletConfigurationRequestContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletConfigurationRequestContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletConfigurationRequestContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletConfigurationRequestContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContextConfig.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContextConfig.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContextConfig.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/src/main/java/org/apache/nifi/web/HttpServletRequestContextConfig.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/assembly/distribution.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/assembly/distribution.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/assembly/distribution.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/assembly/distribution.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/JettyServer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/JettyServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/JettyServer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/JettyServer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/ServerConfigurationException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/ServerConfigurationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/ServerConfigurationException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/java/org/apache/nifi/web/server/ServerConfigurationException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/resources/org/apache/nifi/web/webdefault.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/resources/org/apache/nifi/web/webdefault.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/resources/org/apache/nifi/web/webdefault.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/src/main/resources/org/apache/nifi/web/webdefault.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtension.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtension.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtension.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtension.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtensionMapping.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtensionMapping.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtensionMapping.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/src/main/java/org/apache/nifi/ui/extension/UiExtensionMapping.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/aop/MethodProfiler.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/aop/MethodProfiler.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/aop/MethodProfiler.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/aop/MethodProfiler.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerServiceAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerServiceAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerServiceAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ControllerServiceAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/FunnelAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/FunnelAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/FunnelAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/FunnelAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/NiFiAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/NiFiAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/NiFiAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/NiFiAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/PortAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/PortAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/PortAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/PortAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessGroupAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessGroupAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessGroupAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessGroupAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessorAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessorAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessorAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ProcessorAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RelationshipAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RelationshipAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RelationshipAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RelationshipAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RemoteProcessGroupAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RemoteProcessGroupAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RemoteProcessGroupAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/RemoteProcessGroupAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ReportingTaskAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ReportingTaskAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ReportingTaskAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/ReportingTaskAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/SnippetAuditor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/SnippetAuditor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/SnippetAuditor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/audit/SnippetAuditor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/ClusterRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/IllegalClusterResourceRequestException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/IllegalClusterResourceRequestException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/IllegalClusterResourceRequestException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/IllegalClusterResourceRequestException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiCoreException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiCoreException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiCoreException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiCoreException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacade.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacadeLock.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacadeLock.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacadeLock.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/NiFiServiceFacadeLock.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiContentAccess.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerServiceResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FunnelResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/HistoryResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/HistoryResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/HistoryResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/HistoryResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/InputPortResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/LabelResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/NodeResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/NodeResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/NodeResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/NodeResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OutputPortResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessGroupResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProcessorResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ProvenanceResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/RemoteProcessGroupResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ReportingTaskResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SnippetResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SystemDiagnosticsResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SystemDiagnosticsResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SystemDiagnosticsResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/SystemDiagnosticsResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/TemplateResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserGroupResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserGroupResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserGroupResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserGroupResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserResource.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/UserResource.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccessDeniedExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccessDeniedExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccessDeniedExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccessDeniedExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccountNotFoundExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccountNotFoundExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccountNotFoundExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AccountNotFoundExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AdministrationExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AdministrationExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AdministrationExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AdministrationExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AuthenticationCredentialsNotFoundExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AuthenticationCredentialsNotFoundExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AuthenticationCredentialsNotFoundExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/AuthenticationCredentialsNotFoundExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ClusterExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ClusterExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ClusterExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ClusterExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ConnectingNodeMutableRequestExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ConnectingNodeMutableRequestExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ConnectingNodeMutableRequestExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ConnectingNodeMutableRequestExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/DisconnectedNodeMutableRequestExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/DisconnectedNodeMutableRequestExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/DisconnectedNodeMutableRequestExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/DisconnectedNodeMutableRequestExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalArgumentExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalArgumentExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalArgumentExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalArgumentExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterResourceRequestExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterResourceRequestExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterResourceRequestExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterResourceRequestExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterStateExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterStateExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterStateExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalClusterStateExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDeletionExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDeletionExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDeletionExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDeletionExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDisconnectionExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDisconnectionExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDisconnectionExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeDisconnectionExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeReconnectionExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeReconnectionExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeReconnectionExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalNodeReconnectionExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalStateExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalStateExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalStateExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IllegalStateExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IneligiblePrimaryNodeExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IneligiblePrimaryNodeExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IneligiblePrimaryNodeExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/IneligiblePrimaryNodeExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/InvalidRevisionExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/InvalidRevisionExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/InvalidRevisionExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/InvalidRevisionExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonMappingExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonMappingExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonMappingExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonMappingExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonParseExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonParseExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonParseExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/JsonParseExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/MutableRequestExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/MutableRequestExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/MutableRequestExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/MutableRequestExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NiFiCoreExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NiFiCoreExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NiFiCoreExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NiFiCoreExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoConnectedNodesExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoConnectedNodesExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoConnectedNodesExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoConnectedNodesExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoResponseFromNodesExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoResponseFromNodesExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoResponseFromNodesExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NoResponseFromNodesExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeDisconnectionExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeDisconnectionExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeDisconnectionExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeDisconnectionExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeReconnectionExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeReconnectionExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeReconnectionExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NodeReconnectionExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NotFoundExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NotFoundExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NotFoundExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/NotFoundExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/PrimaryRoleAssignmentExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/PrimaryRoleAssignmentExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/PrimaryRoleAssignmentExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/PrimaryRoleAssignmentExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ResourceNotFoundExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ResourceNotFoundExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ResourceNotFoundExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ResourceNotFoundExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/SafeModeMutableRequestExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/SafeModeMutableRequestExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/SafeModeMutableRequestExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/SafeModeMutableRequestExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ThrowableMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ThrowableMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ThrowableMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ThrowableMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/UnknownNodeExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/UnknownNodeExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/UnknownNodeExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/UnknownNodeExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ValidationExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ValidationExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ValidationExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/ValidationExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/WebApplicationExceptionMapper.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/WebApplicationExceptionMapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/WebApplicationExceptionMapper.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/config/WebApplicationExceptionMapper.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/BulletinBoardPatternParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/BulletinBoardPatternParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/BulletinBoardPatternParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/BulletinBoardPatternParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ClientIdParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ClientIdParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ClientIdParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ClientIdParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ConnectableTypeParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ConnectableTypeParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ConnectableTypeParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/ConnectableTypeParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DateTimeParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DateTimeParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DateTimeParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DateTimeParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DoubleParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DoubleParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DoubleParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/DoubleParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/IntegerParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/IntegerParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/IntegerParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/IntegerParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/LongParameter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/LongParameter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/LongParameter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/request/LongParameter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/contextlistener/ApplicationStartupContextListener.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/contextlistener/ApplicationStartupContextListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/contextlistener/ApplicationStartupContextListener.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/contextlistener/ApplicationStartupContextListener.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/ControllerFacade.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/StandardSearchContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/StandardSearchContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/StandardSearchContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/controller/StandardSearchContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ConnectionDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ControllerServiceDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/FunnelDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/FunnelDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/FunnelDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/FunnelDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/LabelDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/LabelDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/LabelDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/LabelDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/PortDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/PortDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/PortDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/PortDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessGroupDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessGroupDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessGroupDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessGroupDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessorDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessorDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessorDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ProcessorDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/RemoteProcessGroupDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/RemoteProcessGroupDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/RemoteProcessGroupDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/RemoteProcessGroupDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ReportingTaskDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ReportingTaskDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ReportingTaskDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/ReportingTaskDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/SnippetDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/SnippetDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/SnippetDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/SnippetDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/TemplateDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/TemplateDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/TemplateDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/TemplateDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/ComponentDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/ComponentDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/ComponentDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/ComponentDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardControllerServiceDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardFunnelDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardFunnelDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardFunnelDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardFunnelDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardInputPortDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardInputPortDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardInputPortDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardInputPortDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardLabelDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardLabelDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardLabelDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardLabelDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardOutputPortDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardOutputPortDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardOutputPortDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardOutputPortDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessGroupDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessGroupDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessGroupDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessGroupDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardRemoteProcessGroupDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardRemoteProcessGroupDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardRemoteProcessGroupDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardRemoteProcessGroupDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardSnippetDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardTemplateDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardTemplateDAO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardTemplateDAO.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardTemplateDAO.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/NodeRequestFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/NodeRequestFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/NodeRequestFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/NodeRequestFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/RequestLogger.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/RequestLogger.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/RequestLogger.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/RequestLogger.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/ThreadLocalFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/ThreadLocalFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/ThreadLocalFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/ThreadLocalFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/TimerFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/TimerFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/TimerFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/filter/TimerFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ControllerServiceProviderFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ControllerServiceProviderFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ControllerServiceProviderFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ControllerServiceProviderFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/OptimisticLockingManagerFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/OptimisticLockingManagerFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/OptimisticLockingManagerFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/OptimisticLockingManagerFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ReportingTaskProviderFactoryBean.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ReportingTaskProviderFactoryBean.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ReportingTaskProviderFactoryBean.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/spring/ReportingTaskProviderFactoryBean.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/Availability.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/Availability.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/Availability.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/Availability.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/ClientResponseUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/ClientResponseUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/ClientResponseUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/ClientResponseUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java diff --git a/nifi-site/src/images/bgNifiLogo.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/bgNifiLogo.png similarity index 100% rename from nifi-site/src/images/bgNifiLogo.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/bgNifiLogo.png diff --git a/nifi-site/src/images/nifi16.ico b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/nifi16.ico similarity index 100% rename from nifi-site/src/images/nifi16.ico rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/nifi16.ico diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/nifi-web-api-context.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/nifi-web-api-context.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/nifi-web-api-context.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/nifi-web-api-context.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/endpoint.hbs b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/endpoint.hbs similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/endpoint.hbs rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/endpoint.hbs diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/example.hbs b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/example.hbs similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/example.hbs rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/example.hbs diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/index.html.hbs b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/index.html.hbs similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/index.html.hbs rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/index.html.hbs diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/operation.hbs b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/operation.hbs similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/operation.hbs rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/operation.hbs diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/type.hbs b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/type.hbs similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/type.hbs rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/templates/type.hbs diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/NiFiWebApiTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/NiFiWebApiTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/NiFiWebApiTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/NiFiWebApiTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/AdminAccessControlTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/AdminAccessControlTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/AdminAccessControlTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/AdminAccessControlTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/DfmAccessControlTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/DfmAccessControlTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/DfmAccessControlTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/DfmAccessControlTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/ReadOnlyAccessControlTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/ReadOnlyAccessControlTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/ReadOnlyAccessControlTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/accesscontrol/ReadOnlyAccessControlTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestAuthorizationProvider.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestAuthorizationProvider.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestAuthorizationProvider.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestAuthorizationProvider.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestServer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestServer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestServer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestUser.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestUser.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestUser.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/NiFiTestUser.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/SourceTestProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/SourceTestProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/SourceTestProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/SourceTestProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TerminationTestProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TerminationTestProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TerminationTestProcessor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TerminationTestProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TestPrioritizer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TestPrioritizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TestPrioritizer.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/java/org/apache/nifi/integration/util/TestPrioritizer.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.authorization.AuthorityProvider diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/authority-providers.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/authority-providers.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/authority-providers.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/authority-providers.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/controller-services.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/controller-services.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/controller-services.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/controller-services.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ks.jks b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ks.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ks.jks rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ks.jks diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ts.jks b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ts.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ts.jks rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/localhost-ts.jks diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/nifi.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/nifi.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/reporting-tasks.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/reporting-tasks.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/reporting-tasks.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/access-control/reporting-tasks.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/logback-test.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/logback-test.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/test/resources/logback-test.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentAccess.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentAccess.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentAccess.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentAccess.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentRequestContext.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentRequestContext.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentRequestContext.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/ContentRequestContext.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/DownloadableContent.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/DownloadableContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/DownloadableContent.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/src/main/java/org/apache/nifi/web/DownloadableContent.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/java/org/apache/nifi/web/ContentViewerController.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/footer.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/footer.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/footer.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/footer.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/header.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/header.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/header.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/header.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/hexview.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/hexview.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/hexview.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/hexview.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/no-viewer.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/no-viewer.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/no-viewer.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/jsp/no-viewer.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/css/main.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/css/main.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/css/main.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/css/main.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.default.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.default.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.default.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.default.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/src/main/webapp/js/hexview/hexview.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/java/org/apache/nifi/web/docs/DocumentationController.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/java/org/apache/nifi/web/docs/DocumentationController.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/java/org/apache/nifi/web/docs/DocumentationController.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/java/org/apache/nifi/web/docs/DocumentationController.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/documentation.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/no-documentation-found.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/no-documentation-found.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/no-documentation-found.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/jsp/no-documentation-found.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/component-usage.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/css/main.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgBannerFoot.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgBannerFoot.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgBannerFoot.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgBannerFoot.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgHeader.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgHeader.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgHeader.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgHeader.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgTableHeader.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgTableHeader.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgTableHeader.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/images/bgTableHeader.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/src/main/webapp/js/application.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/java/org/apache/nifi/web/filter/CatchAllFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/java/org/apache/nifi/web/filter/CatchAllFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/java/org/apache/nifi/web/filter/CatchAllFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/java/org/apache/nifi/web/filter/CatchAllFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/index.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/index.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/index.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/src/main/webapp/index.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationResult.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/ConfigurationSnapshot.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/FlowModification.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/FlowModification.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/FlowModification.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/FlowModification.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/OptimisticLockingManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/OptimisticLockingManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/OptimisticLockingManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/OptimisticLockingManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardOptimisticLockingManager.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/UpdateRevision.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/UpdateRevision.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/UpdateRevision.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/UpdateRevision.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/DnUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/DnUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/DnUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/DnUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/UntrustedProxyException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/UntrustedProxyException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/UntrustedProxyException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/UntrustedProxyException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/anonymous/NiFiAnonymousUserFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/anonymous/NiFiAnonymousUserFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/anonymous/NiFiAnonymousUserFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/anonymous/NiFiAnonymousUserFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authentication/NiFiAuthenticationEntryPoint.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authentication/NiFiAuthenticationEntryPoint.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authentication/NiFiAuthenticationEntryPoint.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authentication/NiFiAuthenticationEntryPoint.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationService.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationService.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationService.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NodeAuthorizedUserFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NodeAuthorizedUserFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NodeAuthorizedUserFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/authorization/NodeAuthorizedUserFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserDetails.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserDetails.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserDetails.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserDetails.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserUtils.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserUtils.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/user/NiFiUserUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/SubjectDnX509PrincipalExtractor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/SubjectDnX509PrincipalExtractor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/SubjectDnX509PrincipalExtractor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/SubjectDnX509PrincipalExtractor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509AuthenticationFilter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509AuthenticationFilter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509AuthenticationFilter.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509AuthenticationFilter.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509CertificateExtractor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509CertificateExtractor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509CertificateExtractor.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/X509CertificateExtractor.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/CertificateStatusException.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/CertificateStatusException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/CertificateStatusException.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/CertificateStatusException.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspCertificateValidator.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspCertificateValidator.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspCertificateValidator.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspCertificateValidator.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspRequest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspRequest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspStatus.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspStatus.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspStatus.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/java/org/apache/nifi/web/security/x509/ocsp/OcspStatus.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/resources/nifi-web-security-context.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/resources/nifi-web-security-context.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/resources/nifi-web-security-context.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/main/resources/nifi-web-security-context.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationServiceTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationServiceTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationServiceTest.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/authorization/NiFiAuthorizationServiceTest.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/.gitignore b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/.gitignore rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/filter/IeEdgeHeader.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/filter/IeEdgeHeader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/filter/IeEdgeHeader.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/filter/IeEdgeHeader.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/java/org/apache/nifi/web/servlet/DownloadSvg.java diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/bulletin-board.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/canvas.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/cluster.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/counters.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/history.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/provenance.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/summary.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/templates.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users-min.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users-min.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users-min.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users-min.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users.properties b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users.properties rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/resources/filters/users.properties diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/bulletin-board.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/bulletin-board.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/bulletin-board.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/bulletin-board.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/canvas.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/cluster.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/cluster.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/cluster.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/cluster.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/counters.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/counters.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/counters.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/counters.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/history.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/history.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/history.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/history.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/message-page.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/message-page.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/message-page.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/message-page.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/provenance.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/provenance.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/provenance.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/provenance.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/summary.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/summary.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/summary.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/summary.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/templates.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/templates.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/templates.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/templates.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/users.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/users.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/users.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/pages/users.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-main.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-main.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-main.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-main.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-utility.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-utility.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-utility.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/banners-utility.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/bulletin-board/bulletin-board-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/bulletin-board/bulletin-board-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/bulletin-board/bulletin-board-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/bulletin-board/bulletin-board-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/about-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/about-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/about-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/about-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/canvas-header.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connection-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connection-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connection-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connection-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connections-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connections-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connections-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/connections-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/controller-service-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/controller-service-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/controller-service-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/controller-service-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/disable-controller-service-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/enable-controller-service-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/enable-controller-service-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/enable-controller-service-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/enable-controller-service-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/fill-color-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/fill-color-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/fill-color-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/fill-color-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/flow-status.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/flow-status.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/flow-status.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/flow-status.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/instantiate-template-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/instantiate-template-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/instantiate-template-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/instantiate-template-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/label-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/label-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/label-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/label-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/navigation.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-controller-service-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-controller-service-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-controller-service-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-controller-service-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-port-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-port-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-port-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-port-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-process-group-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-process-group-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-process-group-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-process-group-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-processor-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-processor-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-processor-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-processor-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-remote-process-group-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-remote-process-group-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-remote-process-group-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-remote-process-group-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-reporting-task-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-reporting-task-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-reporting-task-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-reporting-task-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-template-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-template-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-template-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/new-template-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-details.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-details.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/port-details.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-details.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-details.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/process-group-details.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/registration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/registration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/registration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/registration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-port-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-port-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-port-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-port-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-details.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-details.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-details.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-ports.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-ports.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-ports.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/remote-process-group-ports.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/reporting-task-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-configuration.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-configuration.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-configuration.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-details.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-details.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/secure-port-details.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/settings-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/settings-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/settings-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/settings-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/shell.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/shell.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/shell.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/shell.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/cluster-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/cluster-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/cluster-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/cluster-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/node-details-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/node-details-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/node-details-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/cluster/node-details-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/connection-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/connection-details.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/connection-details.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/connection-details.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/counters/counters-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/counters/counters-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/counters/counters-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/counters/counters-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/action-details-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/action-details-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/action-details-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/action-details-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-filter-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-filter-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-filter-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-filter-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-purge-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-purge-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-purge-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/history/history-purge-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/message-pane.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/message-pane.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/message-pane.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/message-pane.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/ok-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/ok-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/ok-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/ok-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/lineage-query-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/lineage-query-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/lineage-query-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/lineage-query-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-event-details-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-event-details-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-event-details-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-event-details-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-query-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-query-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-query-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-query-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-search-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-search-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-search-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/provenance/provenance-search-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/status-history-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/status-history-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/status-history-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/status-history-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-connection-summary-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-connection-summary-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-connection-summary-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-connection-summary-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-input-port-summary-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-input-port-summary-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-input-port-summary-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-input-port-summary-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-output-port-summary-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-output-port-summary-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-output-port-summary-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-output-port-summary-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-process-group-summary-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-process-group-summary-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-process-group-summary-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-process-group-summary-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-processor-summary-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-processor-summary-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-processor-summary-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-processor-summary-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-remote-process-group-summary-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-remote-process-group-summary-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-remote-process-group-summary-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/cluster-remote-process-group-summary-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/summary-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/summary-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/summary-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/summary-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/system-diagnostics-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/system-diagnostics-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/system-diagnostics-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/system-diagnostics-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/view-single-node-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/view-single-node-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/view-single-node-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/summary/view-single-node-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/templates/templates-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/templates/templates-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/templates/templates-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/templates/templates-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-revoke-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-revoke-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-revoke-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-revoke-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-roles-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-roles-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-roles-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/group-roles-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-delete-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-delete-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-delete-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-delete-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-details-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-details-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-details-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-details-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-group-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-group-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-group-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-group-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-revoke-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-revoke-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-revoke-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-revoke-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-roles-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-roles-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-roles-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/user-roles-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/users-content.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/users-content.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/users-content.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/users/users-content.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/yes-no-dialog.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/yes-no-dialog.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/yes-no-dialog.jsp rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/yes-no-dialog.jsp diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/about.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/about.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/about.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/about.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/banner.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/banner.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/banner.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/banner.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/bulletin-board.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/bulletin-board.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/bulletin-board.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/bulletin-board.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/canvas.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/cluster.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/cluster.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/cluster.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/cluster.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-configuration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-configuration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-configuration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-details.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-details.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-details.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/connection-details.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/controller-service.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/counters.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/counters.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/counters.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/counters.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/dialog.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/dialog.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/dialog.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/dialog.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/flow-status.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/flow-status.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/flow-status.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/flow-status.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/graph.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/graph.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/graph.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/graph.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/header.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/history.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/history.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/history.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/history.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/label-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/label-configuration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/label-configuration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/label-configuration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/main.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-page.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-page.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-page.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-page.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-pane.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-pane.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-pane.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/message-pane.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/navigation.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-controller-service-dialog.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-controller-service-dialog.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-controller-service-dialog.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-controller-service-dialog.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-processor-dialog.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-processor-dialog.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-processor-dialog.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-processor-dialog.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-reporting-task-dialog.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-reporting-task-dialog.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-reporting-task-dialog.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/new-reporting-task-dialog.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-configuration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-configuration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-configuration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-details.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-details.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-details.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/port-details.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-configuration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-configuration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-configuration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-details.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-details.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-details.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/process-group-details.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-details.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-details.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-details.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-details.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/provenance.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/registration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/registration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/registration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/registration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/remote-process-group-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/remote-process-group-configuration.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/remote-process-group-configuration.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/remote-process-group-configuration.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reporting-task.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reporting-task.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reporting-task.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reporting-task.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reset.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reset.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reset.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/reset.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/settings.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/shell.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/shell.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/shell.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/shell.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/status-history.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/status-history.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/status-history.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/status-history.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/summary.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/summary.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/summary.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/summary.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/templates.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/templates.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/templates.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/templates.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/users.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/users.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/users.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/users.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/addConnect.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/addConnect.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/addConnect.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/addConnect.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bg-error.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bg-error.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bg-error.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bg-error.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerFoot.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerFoot.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerFoot.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerFoot.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerHead.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerHead.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerHead.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBannerHead.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBreadcrumbs.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBreadcrumbs.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBreadcrumbs.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgBreadcrumbs.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButton.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButton.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButton.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButton.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonOver.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonOver.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonOver.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonOver.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelected.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelected.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelected.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelected.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelectedOver.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelectedOver.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelectedOver.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgButtonSelectedOver.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgContextMenu.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgContextMenu.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgContextMenu.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgContextMenu.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgControlsInset.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgControlsInset.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgControlsInset.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgControlsInset.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgHeader.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgHeader.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgHeader.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgHeader.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgInputText.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgInputText.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgInputText.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgInputText.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/bgNifiLogo.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiLogo.png old mode 100644 new mode 100755 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/bgNifiLogo.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiLogo.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbar.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbar.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbar.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbar.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbarEdge.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbarEdge.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbarEdge.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiToolbarEdge.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgOutline.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgOutline.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgOutline.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgOutline.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanCenter.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanCenter.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanCenter.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanCenter.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanZoom.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanZoom.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanZoom.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgPanZoom.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessGroupDetailsArea.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessGroupDetailsArea.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessGroupDetailsArea.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessGroupDetailsArea.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessorStatArea.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessorStatArea.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessorStatArea.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgProcessorStatArea.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgRemoteProcessGroupDetailsArea.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgRemoteProcessGroupDetailsArea.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgRemoteProcessGroupDetailsArea.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgRemoteProcessGroupDetailsArea.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgSearchInput.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgSearchInput.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgSearchInput.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgSearchInput.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgShellClose.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgShellClose.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgShellClose.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgShellClose.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgStatusPanel.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgStatusPanel.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgStatusPanel.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgStatusPanel.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTabContainer.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTabContainer.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTabContainer.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTabContainer.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTableHeader.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTableHeader.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTableHeader.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgTableHeader.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgToolbarBtnBorder.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgToolbarBtnBorder.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgToolbarBtnBorder.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgToolbarBtnBorder.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg-over.jpg b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg-over.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg-over.jpg rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg-over.jpg diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg.jpg b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg.jpg rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/blueBtnBg.jpg diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonColor.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonColor.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonColor.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonColor.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonCopy.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonCopy.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonCopy.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonCopy.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDelete.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDelete.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDelete.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDelete.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDisable.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDisable.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDisable.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonDisable.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonEnable.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonEnable.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonEnable.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonEnable.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonOutline.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonOutline.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonOutline.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonOutline.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanDown.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanDown.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanDown.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanDown.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanLeft.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanLeft.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanLeft.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanLeft.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanRight.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanRight.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanRight.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanRight.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanUp.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanUp.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanUp.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPanUp.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPaste.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPaste.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPaste.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonPaste.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRefresh.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRefresh.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRefresh.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRefresh.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRun.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRun.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRun.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonRun.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonStop.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonStop.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonStop.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonStop.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonTemplate.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonTemplate.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonTemplate.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonTemplate.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoom100.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoom100.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoom100.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoom100.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomFit.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomFit.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomFit.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomFit.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomIn.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomIn.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomIn.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomIn.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomOut.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomOut.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomOut.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/buttonZoomOut.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/cluster.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/cluster.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/cluster.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/cluster.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg-over.jpg b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg-over.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg-over.jpg rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg-over.jpg diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg.jpg b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg.jpg rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grayBtnBg.jpg diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grid.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grid.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grid.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/grid.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/headerTabBg.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/headerTabBg.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/headerTabBg.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/headerTabBg.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAdminUser.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAdminUser.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAdminUser.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAdminUser.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlert.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlert.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlert.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlert.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlertDialog.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlertDialog.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlertDialog.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAlertDialog.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAutoRefresh.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAutoRefresh.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAutoRefresh.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconAutoRefresh.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletin.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletin.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletin.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletin.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletinBoard.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletinBoard.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletinBoard.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconBulletinBoard.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCenterView.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCenterView.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCenterView.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCenterView.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconChart.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconChart.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconChart.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconChart.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClose.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClose.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClose.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClose.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCluster.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCluster.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCluster.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCluster.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClusterSmall.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClusterSmall.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClusterSmall.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconClusterSmall.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseChildren.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseChildren.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseChildren.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseChildren.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseParents.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseParents.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseParents.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCollapseParents.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconColor.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconColor.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconColor.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconColor.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCommit.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCommit.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCommit.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCommit.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConfigure.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConfigure.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConfigure.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConfigure.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnect.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnect.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnect.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnect.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnection.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnection.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnection.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconConnection.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCopy.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCopy.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCopy.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCopy.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCounter.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCounter.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCounter.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconCounter.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDelete.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDelete.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDelete.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDelete.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDetails.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDetails.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDetails.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDetails.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisable.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisable.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisable.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisable.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisconnect.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisconnect.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisconnect.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconDisconnect.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEdit.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEdit.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEdit.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEdit.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEditButton.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEditButton.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEditButton.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEditButton.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEnable.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEnable.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEnable.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconEnable.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandChildren.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandChildren.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandChildren.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandChildren.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandParents.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandParents.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandParents.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExpandParents.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExport.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExport.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExport.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExport.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExportLineage.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExportLineage.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExportLineage.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconExportLineage.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFlowSettings.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFlowSettings.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFlowSettings.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFlowSettings.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFunnel.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFunnel.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFunnel.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconFunnel.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconGoTo.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconGoTo.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconGoTo.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconGoTo.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconHistory.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconHistory.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconHistory.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconHistory.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInfo.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInfo.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInfo.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInfo.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPort.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPort.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPort.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPort.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPortSmall.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPortSmall.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPortSmall.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconInputPortSmall.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconIsolatedProcessor.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconIsolatedProcessor.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconIsolatedProcessor.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconIsolatedProcessor.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLineage.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLineage.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLineage.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLineage.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLoading.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLoading.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLoading.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconLoading.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconMoveToParent.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconMoveToParent.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconMoveToParent.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconMoveToParent.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconNotSecure.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconNotSecure.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconNotSecure.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconNotSecure.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPort.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPort.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPort.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPort.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPortSmall.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPortSmall.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPortSmall.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconOutputPortSmall.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPaste.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPaste.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPaste.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPaste.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPopOut.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPopOut.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPopOut.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPopOut.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortNotTransmitting.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortNotTransmitting.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortNotTransmitting.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortNotTransmitting.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortRemoved.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortRemoved.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortRemoved.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortRemoved.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortTransmitting.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortTransmitting.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortTransmitting.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPortTransmitting.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPrimary.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPrimary.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPrimary.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconPrimary.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessor.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessor.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessor.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProcessor.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProvenance.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProvenance.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProvenance.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconProvenance.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRefresh.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRefresh.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRefresh.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRefresh.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemotePorts.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemotePorts.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemotePorts.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemotePorts.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemoteProcessGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemoteProcessGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemoteProcessGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRemoteProcessGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconReporting.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconReporting.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconReporting.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconReporting.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResetCounter.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResetCounter.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResetCounter.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResetCounter.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResize.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResize.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResize.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconResize.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRevoke.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRevoke.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRevoke.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRevoke.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRun.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRun.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRun.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconRun.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSecure.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSecure.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSecure.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSecure.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallFunnel.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallFunnel.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallFunnel.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallFunnel.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallInputPort.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallInputPort.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallInputPort.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallInputPort.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallOutputPort.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallOutputPort.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallOutputPort.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallOutputPort.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessor.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessor.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessor.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallProcessor.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRelationship.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRelationship.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRelationship.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRelationship.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRemoteProcessGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRemoteProcessGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRemoteProcessGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconSmallRemoteProcessGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconStop.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconStop.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconStop.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconStop.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTemplates.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTemplates.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTemplates.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTemplates.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconToFront.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconToFront.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconToFront.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconToFront.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionActive.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionActive.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionActive.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionActive.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionInactive.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionInactive.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionInactive.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTransmissionInactive.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTwistArrow.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTwistArrow.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTwistArrow.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconTwistArrow.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconUsage.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconUsage.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconUsage.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/iconUsage.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/inputCheckbox.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/inputCheckbox.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/inputCheckbox.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/inputCheckbox.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/loadAnimation.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/loadAnimation.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/loadAnimation.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/loadAnimation.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/nifi16.ico b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi16.ico old mode 100644 new mode 100755 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/resources/images/nifi16.ico rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi16.ico diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi_about.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi_about.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi_about.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/nifi_about.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/panelBg.jpg b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/panelBg.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/panelBg.jpg rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/panelBg.jpg diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRemoved.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRemoved.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRemoved.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRemoved.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRunning.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRunning.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRunning.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portRunning.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portStopped.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portStopped.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portStopped.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/portStopped.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/spacer.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/spacer.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/spacer.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/spacer.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/starburst.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/starburst.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/starburst.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/starburst.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/tabBg.jpg b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/tabBg.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/tabBg.jpg rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/tabBg.jpg diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolbarBg.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolbarBg.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolbarBg.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolbarBg.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconFunnel.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconFunnel.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconFunnel.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconFunnel.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconInputPort.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconInputPort.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconInputPort.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconInputPort.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconLabel.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconLabel.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconLabel.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconLabel.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconOutputPort.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconOutputPort.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconOutputPort.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconOutputPort.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessor.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessor.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessor.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconProcessor.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconRemoteProcessGroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconRemoteProcessGroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconRemoteProcessGroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconRemoteProcessGroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconTemplate.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconTemplate.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconTemplate.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/toolboxIconTemplate.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchDisabled.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchDisabled.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchDisabled.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchDisabled.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchEnabled.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchEnabled.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchEnabled.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/transmissionSwitchEnabled.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/ungroup.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/ungroup.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/ungroup.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/ungroup.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/LICENSE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/LICENSE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/fold/foldgutter.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/fold/foldgutter.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/fold/foldgutter.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/fold/foldgutter.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/hint/show-hint.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/hint/show-hint.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/hint/show-hint.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/addon/hint/show-hint.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror-compressed.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror-compressed.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror-compressed.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror-compressed.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/codemirror/lib/codemirror.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/LICENSE b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/LICENSE rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/d3.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/d3.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/d3.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/d3/d3.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/jquery.combo.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrow.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrow.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrow.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrow.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrowSmall.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrowSmall.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrowSmall.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/combo/menuArrowSmall.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery-2.1.1.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery-2.1.1.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery-2.1.1.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery-2.1.1.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.center.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.center.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.center.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.center.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.count.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.count.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.count.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.count.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.each.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.each.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.each.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.each.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.ellipsis.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.ellipsis.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.ellipsis.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.ellipsis.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.event.drag-2.2.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.event.drag-2.2.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.event.drag-2.2.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.event.drag-2.2.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.form.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.form.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.form.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.form.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.tab.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.tab.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.tab.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/jquery.tab.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/minicolors/jquery.minicolors.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/modal/jquery.modal.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/jquery.nfeditor.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/nfeditor/languages/nfel.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/buttonNewProperty.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/buttonNewProperty.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/buttonNewProperty.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/buttonNewProperty.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/propertytable/jquery.propertytable.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/qtip2/jquery.qtip.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/MIT-LICENSE.txt b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/MIT-LICENSE.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/MIT-LICENSE.txt rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/MIT-LICENSE.txt diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/collapse.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/collapse.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/collapse.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/collapse.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/expand.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/expand.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/expand.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/expand.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-asc.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-asc.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-asc.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-asc.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-desc.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-desc.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-desc.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/images/sort-desc.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick-default-theme.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick-default-theme.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick-default-theme.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick-default-theme.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick.grid.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick.grid.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick.grid.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/css/slick.grid.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.autotooltips.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.autotooltips.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.autotooltips.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.autotooltips.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangedecorator.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangedecorator.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangedecorator.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangedecorator.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangeselector.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangeselector.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangeselector.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellrangeselector.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellselectionmodel.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellselectionmodel.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellselectionmodel.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.cellselectionmodel.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.rowselectionmodel.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.rowselectionmodel.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.rowselectionmodel.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/plugins/slick.rowselectionmodel.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.core.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.core.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.core.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.core.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.dataview.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.dataview.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.dataview.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.dataview.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.editors.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.editors.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.editors.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.editors.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.formatters.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.formatters.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.formatters.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.formatters.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.grid.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.grid.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.grid.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/slickgrid/slick.grid.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tabbs/jquery.tabbs.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/tagcloud/jquery.tagcloud.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/animated-overlay.gif b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/animated-overlay.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/animated-overlay.gif rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/animated-overlay.gif diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_75_ffffff_40x100.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_65_ffffff_1x400.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_dadada_1x400.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_dadada_1x400.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_95_fef1ec_1x400.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_222222_256x240.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_222222_256x240.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_222222_256x240.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_222222_256x240.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_2e83ff_256x240.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_2e83ff_256x240.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_454545_256x240.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_454545_256x240.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_454545_256x240.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_454545_256x240.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_888888_256x240.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_888888_256x240.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_888888_256x240.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_888888_256x240.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_cd0a0a_256x240.png b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_cd0a0a_256x240.png rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.css rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.css diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/jquery/ui-smoothness/jquery-ui-1.10.4.min.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/json2.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/json2.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/json2.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/json2.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/bulletin-board/nf-bulletin-board.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/bulletin-board/nf-bulletin-board.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/bulletin-board/nf-bulletin-board.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/bulletin-board/nf-bulletin-board.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-birdseye.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-birdseye.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-birdseye.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-birdseye.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-header.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbar.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbox.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbox.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbox.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-toolbox.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-clipboard.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-clipboard.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-clipboard.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-clipboard.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connectable.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connectable.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connectable.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connectable.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-context-menu.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-controller-service.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-custom-ui.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-custom-ui.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-custom-ui.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-custom-ui.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-draggable.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-funnel.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-go-to.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph-control.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph-control.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph-control.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph-control.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-graph.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-label.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port-details.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-port.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group-details.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-process-group.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-registration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-registration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-registration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-registration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-details.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group-ports.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-remote-process-group.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-reporting-task.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-search.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-search.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-search.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-search.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-configuration.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-configuration.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-configuration.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-details.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-details.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-secure-port-details.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-selectable.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-selectable.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-selectable.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-selectable.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-settings.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-snippet.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-snippet.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-snippet.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-snippet.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-storage.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-storage.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-storage.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-storage.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-toolbar-action.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-toolbar-action.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-toolbar-action.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-toolbar-action.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/cluster/nf-cluster.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/counters/nf-counters.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-model.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-model.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-model.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-model.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/history/nf-history.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-client.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-client.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-client.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-client.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-common.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-connection-details.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-dialog.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-namespace.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-namespace.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-namespace.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-namespace.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-processor-details.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-shell.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/nf-status-history.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-lineage.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/provenance/nf-provenance.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-cluster-search.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/summary/nf-summary.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/templates/nf-templates.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users-table.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users.js rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/users/nf-users.js diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/pom.xml b/nifi-nar-bundles/nifi-framework-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-framework-bundle/pom.xml rename to nifi-nar-bundles/nifi-framework-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/.gitignore b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/.gitignore rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/GeoEnrichIP.java b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/GeoEnrichIP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/GeoEnrichIP.java rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/GeoEnrichIP.java diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/maxmind/DatabaseReader.java b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/maxmind/DatabaseReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/maxmind/DatabaseReader.java rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/java/org/apache/nifi/processors/maxmind/DatabaseReader.java diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml b/nifi-nar-bundles/nifi-geo-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml rename to nifi-nar-bundles/nifi-geo-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/CreateHadoopSequenceFile.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/CreateHadoopSequenceFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/CreateHadoopSequenceFile.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/CreateHadoopSequenceFile.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FetchHDFS.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FetchHDFS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FetchHDFS.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FetchHDFS.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FlowFileStreamUnpackerSequenceFileWriter.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FlowFileStreamUnpackerSequenceFileWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FlowFileStreamUnpackerSequenceFileWriter.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/FlowFileStreamUnpackerSequenceFileWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFSSequenceFile.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFSSequenceFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFSSequenceFile.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFSSequenceFile.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ListHDFS.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ListHDFS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ListHDFS.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ListHDFS.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/SequenceFileWriterImpl.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/SequenceFileWriterImpl.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/SequenceFileWriterImpl.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/SequenceFileWriterImpl.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/TarUnpackerSequenceFileWriter.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/TarUnpackerSequenceFileWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/TarUnpackerSequenceFileWriter.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/TarUnpackerSequenceFileWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ZipUnpackerSequenceFileWriter.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ZipUnpackerSequenceFileWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ZipUnpackerSequenceFileWriter.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ZipUnpackerSequenceFileWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/ByteFilteringOutputStream.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/ByteFilteringOutputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/ByteFilteringOutputStream.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/ByteFilteringOutputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/InputStreamWritable.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/InputStreamWritable.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/InputStreamWritable.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/InputStreamWritable.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/LongSerDe.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/LongSerDe.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/LongSerDe.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/LongSerDe.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/OutputStreamWritable.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/OutputStreamWritable.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/OutputStreamWritable.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/OutputStreamWritable.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileReader.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileReader.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileReader.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileWriter.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileWriter.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/SequenceFileWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/StringSerDe.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/StringSerDe.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/StringSerDe.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/StringSerDe.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/docs/org.apache.nifi.processors.hadoop.CreateHadoopSequenceFile/additionalDetails.html b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/docs/org.apache.nifi.processors.hadoop.CreateHadoopSequenceFile/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/docs/org.apache.nifi.processors.hadoop.CreateHadoopSequenceFile/additionalDetails.html rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/resources/docs/org.apache.nifi.processors.hadoop.CreateHadoopSequenceFile/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/AbstractHadoopTest.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/SimpleHadoopProcessor.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/SimpleHadoopProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/SimpleHadoopProcessor.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/SimpleHadoopProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestCreateHadoopSequenceFile.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestCreateHadoopSequenceFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestCreateHadoopSequenceFile.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestCreateHadoopSequenceFile.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestListHDFS.java b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestListHDFS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestListHDFS.java rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/TestListHDFS.java diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site-broken.xml b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site-broken.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site-broken.xml rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site-broken.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site.xml b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site.xml rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/core-site.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545312236534130.tar b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545312236534130.tar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545312236534130.tar rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545312236534130.tar diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545423550275052.zip b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545423550275052.zip similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545423550275052.zip rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545423550275052.zip diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545479542069498.pkg b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545479542069498.pkg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545479542069498.pkg rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/13545479542069498.pkg diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1 b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1 rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1 diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-2 b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-2 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-2 rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-2 diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-3 b/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-3 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-3 rename to nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-3 diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml b/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml rename to nifi-nar-bundles/nifi-hadoop-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml b/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml rename to nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml b/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml rename to nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/.gitignore b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/.gitignore rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/ExtractHL7Attributes.java b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/ExtractHL7Attributes.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/ExtractHL7Attributes.java rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/ExtractHL7Attributes.java diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/RouteHL7.java b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/RouteHL7.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/RouteHL7.java rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/java/org/apache/nifi/processors/hl7/RouteHL7.java diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/java/org/apache/nifi/processors/hl7/TestExtractHL7Attributes.java b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/java/org/apache/nifi/processors/hl7/TestExtractHL7Attributes.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/java/org/apache/nifi/processors/hl7/TestExtractHL7Attributes.java rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/java/org/apache/nifi/processors/hl7/TestExtractHL7Attributes.java diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/resources/hypoglycemia.hl7 b/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/resources/hypoglycemia.hl7 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/resources/hypoglycemia.hl7 rename to nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/src/test/resources/hypoglycemia.hl7 diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml b/nifi-nar-bundles/nifi-hl7-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml rename to nifi-nar-bundles/nifi-hl7-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-jetty-bundle/pom.xml b/nifi-nar-bundles/nifi-jetty-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-jetty-bundle/pom.xml rename to nifi-nar-bundles/nifi-jetty-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-jetty-bundle/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-jetty-bundle/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-jetty-bundle/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-jetty-bundle/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/GetKafka.java b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/GetKafka.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/GetKafka.java rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/GetKafka.java diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/PutKafka.java b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/PutKafka.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/PutKafka.java rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/java/org/apache/nifi/processors/kafka/PutKafka.java diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.GetKafka/additionalDetails.html b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.GetKafka/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.GetKafka/additionalDetails.html rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.GetKafka/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.PutKafka/additionalDetails.html b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.PutKafka/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.PutKafka/additionalDetails.html rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/main/resources/docs/org.apache.nifi.processors.kafka.PutKafka/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestGetKafka.java b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestGetKafka.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestGetKafka.java rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestGetKafka.java diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestPutKafka.java b/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestPutKafka.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestPutKafka.java rename to nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/src/test/java/org/apache/nifi/processors/kafka/TestPutKafka.java diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/pom.xml b/nifi-nar-bundles/nifi-kafka-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kafka-bundle/pom.xml rename to nifi-nar-bundles/nifi-kafka-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AbstractKiteProcessor.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AbstractKiteProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AbstractKiteProcessor.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AbstractKiteProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroRecordConverter.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroUtil.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroUtil.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroUtil.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/AvroUtil.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertAvroSchema.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertCSVToAvro.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertCSVToAvro.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertCSVToAvro.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertCSVToAvro.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertJSONToAvro.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertJSONToAvro.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertJSONToAvro.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/ConvertJSONToAvro.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/FailureTracker.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/FailureTracker.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/FailureTracker.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/FailureTracker.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/StoreInKiteDataset.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/StoreInKiteDataset.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/StoreInKiteDataset.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/java/org/apache/nifi/processors/kite/StoreInKiteDataset.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/main/resources/docs/org.apache.nifi.processors.kite.ConvertAvroSchema/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestAvroRecordConverter.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestCSVToAvroProcessor.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestCSVToAvroProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestCSVToAvroProcessor.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestCSVToAvroProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConfigurationProperty.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConfigurationProperty.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConfigurationProperty.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConfigurationProperty.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestConvertAvroSchema.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestGetSchema.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestGetSchema.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestGetSchema.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestGetSchema.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestJSONToAvroProcessor.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestJSONToAvroProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestJSONToAvroProcessor.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestJSONToAvroProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteProcessorsCluster.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteProcessorsCluster.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteProcessorsCluster.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteProcessorsCluster.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteStorageProcessor.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteStorageProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteStorageProcessor.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestKiteStorageProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestUtil.java b/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestUtil.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestUtil.java rename to nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/src/test/java/org/apache/nifi/processors/kite/TestUtil.java diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/pom.xml b/nifi-nar-bundles/nifi-kite-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-kite-bundle/pom.xml rename to nifi-nar-bundles/nifi-kite-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/.gitignore b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/.gitignore rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/YandexTranslate.java b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/YandexTranslate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/YandexTranslate.java rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/YandexTranslate.java diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/model/Translation.java b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/model/Translation.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/model/Translation.java rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/model/Translation.java diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/Languages.java b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/Languages.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/Languages.java rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/Languages.java diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/ObjectMapperResolver.java b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/ObjectMapperResolver.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/ObjectMapperResolver.java rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/java/org/apache/nifi/processors/yandex/util/ObjectMapperResolver.java diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/test/java/org/apache/nifi/processors/yandex/TestYandexTranslate.java b/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/test/java/org/apache/nifi/processors/yandex/TestYandexTranslate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/test/java/org/apache/nifi/processors/yandex/TestYandexTranslate.java rename to nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/src/test/java/org/apache/nifi/processors/yandex/TestYandexTranslate.java diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml b/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml rename to nifi-nar-bundles/nifi-language-translation-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java b/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java rename to nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/pom.xml b/nifi-nar-bundles/nifi-mongodb-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-mongodb-bundle/pom.xml rename to nifi-nar-bundles/nifi-mongodb-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/IndexConfiguration.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/IndexConfiguration.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/IndexConfiguration.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/IndexConfiguration.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/PersistentProvenanceRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/RepositoryConfiguration.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/RepositoryConfiguration.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/RepositoryConfiguration.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/RepositoryConfiguration.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordReader.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/StandardRecordWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/ExpirationAction.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/ExpirationAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/ExpirationAction.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/ExpirationAction.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/FileRemovalAction.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/FileRemovalAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/FileRemovalAction.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/expiration/FileRemovalAction.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DeleteIndexAction.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DeleteIndexAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DeleteIndexAction.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DeleteIndexAction.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/DocsReader.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/FieldNames.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/FieldNames.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/FieldNames.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/FieldNames.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexManager.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexManager.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexManager.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexSearch.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexSearch.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexSearch.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexSearch.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexingAction.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexingAction.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexingAction.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/IndexingAction.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LineageQuery.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LineageQuery.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LineageQuery.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LineageQuery.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LuceneUtil.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LuceneUtil.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LuceneUtil.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/LuceneUtil.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReader.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReader.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReaders.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReaders.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReaders.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordReaders.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriters.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriters.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriters.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/serialization/RecordWriters.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocReader.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocReader.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocWriter.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/StandardTocWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocReader.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocReader.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocUtil.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocUtil.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocUtil.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocUtil.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocWriter.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/toc/TocWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestPersistentProvenanceRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestStandardRecordReaderWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestStandardRecordReaderWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestStandardRecordReaderWriter.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestStandardRecordReaderWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestUtil.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestUtil.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestUtil.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestUtil.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocReader.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocReader.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocWriter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocWriter.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/toc/TestStandardTocWriter.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/java/org/apache/nifi/provenance/VolatileProvenanceRepository.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/java/org/apache/nifi/provenance/VolatileProvenanceRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/java/org/apache/nifi/provenance/VolatileProvenanceRepository.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/java/org/apache/nifi/provenance/VolatileProvenanceRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/main/resources/META-INF/services/org.apache.nifi.provenance.ProvenanceEventRepository diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/java/org/apache/nifi/provenance/TestVolatileProvenanceRepository.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/java/org/apache/nifi/provenance/TestVolatileProvenanceRepository.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/java/org/apache/nifi/provenance/TestVolatileProvenanceRepository.java rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/java/org/apache/nifi/provenance/TestVolatileProvenanceRepository.java diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/resources/nifi.properties b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/resources/nifi.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/resources/nifi.properties rename to nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/src/test/resources/nifi.properties diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml b/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml rename to nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml b/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml rename to nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore b/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore rename to nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml b/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml rename to nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java b/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java rename to nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml b/nifi-nar-bundles/nifi-social-media-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml rename to nifi-nar-bundles/nifi-social-media-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/GetSolr.java b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/GetSolr.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/GetSolr.java rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/GetSolr.java diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/docs/org.apache.nifi.processors.solr.PutSolrContentStream/additionalDetails.html b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/docs/org.apache.nifi.processors.solr.PutSolrContentStream/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/docs/org.apache.nifi.processors.solr.PutSolrContentStream/additionalDetails.html rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/resources/docs/org.apache.nifi.processors.solr.PutSolrContentStream/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/EmbeddedSolrServerFactory.java b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/EmbeddedSolrServerFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/EmbeddedSolrServerFactory.java rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/EmbeddedSolrServerFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestGetSolr.java b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestGetSolr.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestGetSolr.java rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestGetSolr.java diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestPutSolrContentStream.java b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestPutSolrContentStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestPutSolrContentStream.java rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/java/org/apache/nifi/processors/solr/TestPutSolrContentStream.java diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/log4j.properties b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/log4j.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/log4j.properties rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/log4j.properties diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/solr/solr.xml b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/solr/solr.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/solr/solr.xml rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/solr/solr.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/_rest_managed.json b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/_rest_managed.json similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/_rest_managed.json rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/_rest_managed.json diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/lang/stopwords_en.txt b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/lang/stopwords_en.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/lang/stopwords_en.txt rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/lang/stopwords_en.txt diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/protwords.txt b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/protwords.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/protwords.txt rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/protwords.txt diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/schema.xml b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/schema.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/schema.xml rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/schema.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/solrconfig.xml b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/solrconfig.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/solrconfig.xml rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/solrconfig.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/synonyms.txt b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/synonyms.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/synonyms.txt rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/conf/synonyms.txt diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/core.properties b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/core.properties similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/core.properties rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testCollection/core.properties diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-csv-multiple-docs.csv b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-csv-multiple-docs.csv similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-csv-multiple-docs.csv rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-csv-multiple-docs.csv diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-custom-json-single-doc.json b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-custom-json-single-doc.json similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-custom-json-single-doc.json rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-custom-json-single-doc.json diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-solr-json-multiple-docs.json b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-solr-json-multiple-docs.json similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-solr-json-multiple-docs.json rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-solr-json-multiple-docs.json diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-xml-multiple-docs.xml b/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-xml-multiple-docs.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-xml-multiple-docs.xml rename to nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/test/resources/testdata/test-xml-multiple-docs.xml diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml b/nifi-nar-bundles/nifi-solr-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml rename to nifi-nar-bundles/nifi-solr-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/META-INF/nifi-content-viewer b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/META-INF/nifi-content-viewer similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/META-INF/nifi-content-viewer rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/META-INF/nifi-content-viewer diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/css/main.css b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/css/main.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/css/main.css rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/css/main.css diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/FirstInFirstOutPrioritizer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/FirstInFirstOutPrioritizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/FirstInFirstOutPrioritizer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/FirstInFirstOutPrioritizer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/NewestFlowFileFirstPrioritizer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/NewestFlowFileFirstPrioritizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/NewestFlowFileFirstPrioritizer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/NewestFlowFileFirstPrioritizer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/OldestFlowFileFirstPrioritizer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/OldestFlowFileFirstPrioritizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/OldestFlowFileFirstPrioritizer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/OldestFlowFileFirstPrioritizer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/main/resources/META-INF/services/org.apache.nifi.flowfile.FlowFilePrioritizer diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/NewestFirstPrioritizerTest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/OldestFirstPrioritizerTest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/src/test/java/org/apache/nifi/prioritizer/PriorityAttributePrioritizerTest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DuplicateFlowFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DuplicateFlowFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DuplicateFlowFile.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DuplicateFlowFile.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteSQL.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSQueue.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSQueue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSQueue.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSQueue.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FlowFileSessionWrapper.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FlowFileSessionWrapper.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FlowFileSessionWrapper.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FlowFileSessionWrapper.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JdbcCommon.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/NLKBufferedReader.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/NLKBufferedReader.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/NLKBufferedReader.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/NLKBufferedReader.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPKeyBasedEncryptor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPKeyBasedEncryptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPKeyBasedEncryptor.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPKeyBasedEncryptor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPPasswordBasedEncryptor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPPasswordBasedEncryptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPPasswordBasedEncryptor.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/OpenPGPPasswordBasedEncryptor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/PasswordBasedEncryptor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/PasswordBasedEncryptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/PasswordBasedEncryptor.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/PasswordBasedEncryptor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SocksProxySocketFactory.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SocksProxySocketFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SocksProxySocketFactory.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SocksProxySocketFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase64InputStream.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase64InputStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase64InputStream.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase64InputStream.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlElementNotifier.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlElementNotifier.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlElementNotifier.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlElementNotifier.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EncryptContent/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EncryptContent/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EncryptContent/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EncryptContent/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateJsonPath/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateJsonPath/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateJsonPath/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateJsonPath/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpRequest/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpRequest/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpRequest/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpRequest/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpResponse/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpResponse/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpResponse/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.HandleHttpResponse/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.RouteOnAttribute/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.RouteOnAttribute/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.RouteOnAttribute/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.RouteOnAttribute/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestDynamicEnvironment.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestDynamicEnvironment.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestDynamicEnvironment.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestDynamicEnvironment.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestSuccess.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestSuccess.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestSuccess.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestSuccess.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDuplicateFlowFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDuplicateFlowFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDuplicateFlowFile.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDuplicateFlowFile.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteSQL.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteSQL.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteSQL.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteSQL.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/UserAgentTestingServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/UserAgentTestingServlet.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/UserAgentTestingServlet.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/UserAgentTestingServlet.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcCommon.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcHugeStream.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcHugeStream.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcHugeStream.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/util/TestJdbcHugeStream.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted2.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted2.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted2.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Converted2.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Original.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Original.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Original.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CharacterSetConversionSamples/Original.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.bz2 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.bz2 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.bz2 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.bz2 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.gz b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.gz similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.gz rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile.txt.gz diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.bz2 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.bz2 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.bz2 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.bz2 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.gz b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.gz similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.gz rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFile1.txt.gz diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt.bz2 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt.bz2 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt.bz2 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/CompressedData/SampleFileConcat.txt.bz2 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/1000bytes.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/1000bytes.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/1000bytes.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/1000bytes.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestDynamicEnvironment.jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestIngestAndUpdate.jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestSuccess.jar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestSuccess.jar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestSuccess.jar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/TestSuccess.jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/test.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/test.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/test.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ExecuteCommand/test.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-empty-new-lines b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-empty-new-lines similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-empty-new-lines rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-empty-new-lines diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-extra-info b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-extra-info similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-extra-info rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary-with-extra-info diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary1 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary1 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary1 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/ScanAttribute/dictionary1 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt.asc b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt.asc similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt.asc rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestEncryptContent/text.txt.asc diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.7z b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.7z similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.7z rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.7z diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.jar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.jar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.jar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.mdb b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.mdb similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.mdb rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.mdb diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.pdf b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.pdf similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.pdf rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.pdf diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar.gz b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar.gz similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar.gz rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.tar.gz diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.bz2 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.bz2 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.bz2 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.bz2 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.gz b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.gz similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.gz rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.txt.gz diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.zip b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.zip similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.zip rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.zip diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/bgBannerFoot.png b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/bgBannerFoot.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/bgBannerFoot.png rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/bgBannerFoot.png diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/blueBtnBg.jpg b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/blueBtnBg.jpg similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/blueBtnBg.jpg rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/blueBtnBg.jpg diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev1.tar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev1.tar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev1.tar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev1.tar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev3 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev3 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev3 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/flowfilev3 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/grid.gif b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/grid.gif similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/grid.gif rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/grid.gif diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/control-characters.json b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/control-characters.json similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/control-characters.json rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/control-characters.json diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/demarcate b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/demarcate similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/demarcate rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/demarcate diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/foot b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/foot similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/foot rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/foot diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/head b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/head similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/head rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/head diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/place.avsc diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestMergeContent/user.avsc diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter_noHeader.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter_noHeader.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter_noHeader.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noFooter_noHeader.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noHeader.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noHeader.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noHeader.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/noHeader.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/testFile.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/testFile.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/testFile.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestModifyBytes/testFile.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/$1$1.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/$1$1.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/$1$1.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/$1$1.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Good.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Good.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Good.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Good.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Spider.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Spider.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Spider.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/Spider.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/[DODO].txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/[DODO].txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/[DODO].txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/[DODO].txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu_Po.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu_Po.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu_Po.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/cu_Po.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/food.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/food.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/food.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/food.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/testFile.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/testFile.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/testFile.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextLineByLine/testFile.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestReplaceTextWithMapping/colors.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/helloWorld b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/helloWorld similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/helloWorld rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/helloWorld diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/wellthengood-bye b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/wellthengood-bye similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/wellthengood-bye rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestScanContent/wellthengood-bye diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/1.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/1.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/1.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/1.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/2.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/2.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/2.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/2.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/3.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/3.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/3.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/3.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/4.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/4.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/4.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/4.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/5.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/5.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/5.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/5.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/6.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/6.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/6.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/6.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/original.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/original.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/original.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestSplitText/original.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xsl b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xsl similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xsl rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/math.xsl diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.csv b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.csv similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.csv rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.csv diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xsl b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xsl similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xsl rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestTransformXml/tokens.xsl diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev2 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev2 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev2 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev2 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev3 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev3 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev3 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.flowfilev3 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.tar b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.tar similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.tar rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.tar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.zip b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.zip similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.zip rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/data.zip diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/cal.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/cal.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/cal.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/cal.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/date.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/date.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/date.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestUnpackContent/folder/date.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/XmlBundle.xsd b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/XmlBundle.xsd similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/XmlBundle.xsd rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/XmlBundle.xsd diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/fruit.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/fruit.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/fruit.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/fruit.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/subNode.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/subNode.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/subNode.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/subNode.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-bundle-1 b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-bundle-1 similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-bundle-1 rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-bundle-1 diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-snippet.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-snippet.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-snippet.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestXml/xml-snippet.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/hello.txt b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/hello.txt similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/hello.txt rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/hello.txt diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ks.jks b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ks.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ks.jks rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ks.jks diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ts.jks b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ts.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ts.jks rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost-ts.jks diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost.cer b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost.cer similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost.cer rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/localhost.cer diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/logback-test.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/logback-test.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/logback-test.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/logback-test.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.controller.ControllerStatusReportingTask/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.controller.ControllerStatusReportingTask/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.controller.ControllerStatusReportingTask/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.controller.ControllerStatusReportingTask/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/resources/docs/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/test/java/org/apache/nifi/controller/TestMonitorDiskUsage.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/test/java/org/apache/nifi/controller/TestMonitorDiskUsage.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/test/java/org/apache/nifi/controller/TestMonitorDiskUsage.java rename to nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/test/java/org/apache/nifi/controller/TestMonitorDiskUsage.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-bundle/pom.xml rename to nifi-nar-bundles/nifi-standard-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/src/main/java/org/apache/nifi/dbcp/DBCPService.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/src/main/java/org/apache/nifi/dbcp/DBCPService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/src/main/java/org/apache/nifi/dbcp/DBCPService.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-api/src/main/java/org/apache/nifi/dbcp/DBCPService.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystemDescriptor.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystemDescriptor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystemDescriptor.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystemDescriptor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystems.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystems.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystems.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DatabaseSystems.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DriverShim.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DriverShim.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DriverShim.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DriverShim.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/DBCPServiceTest.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/DBCPServiceTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/DBCPServiceTest.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/DBCPServiceTest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDatabaseSystems.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDatabaseSystems.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDatabaseSystems.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestDatabaseSystems.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestProcessor.java b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestProcessor.java rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/test/java/org/apache/nifi/dbcp/TestProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Deserializer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Deserializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Deserializer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Deserializer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Serializer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Serializer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Serializer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/Serializer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/DeserializationException.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/DeserializationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/DeserializationException.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/DeserializationException.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/SerializationException.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/SerializationException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/SerializationException.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/exception/SerializationException.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/CommsSession.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/CommsSession.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/CommsSession.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/CommsSession.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClientService.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClientService.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClientService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClientService.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClientService.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/SSLCommsSession.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/SSLCommsSession.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/SSLCommsSession.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/SSLCommsSession.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/StandardCommsSession.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/StandardCommsSession.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/StandardCommsSession.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/java/org/apache/nifi/distributed/cache/client/StandardCommsSession.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/ProtocolHandshake.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/ProtocolHandshake.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/ProtocolHandshake.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/ProtocolHandshake.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/exception/HandshakeException.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/exception/HandshakeException.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/exception/HandshakeException.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/src/main/java/org/apache/nifi/distributed/cache/protocol/exception/HandshakeException.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/AbstractCacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/AbstractCacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/AbstractCacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/AbstractCacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheRecord.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheRecord.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheRecord.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheRecord.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/CacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedCacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedCacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedCacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedCacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/EvictionPolicy.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/EvictionPolicy.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/EvictionPolicy.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/EvictionPolicy.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/SetCacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/SetCacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/SetCacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/SetCacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCache.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCache.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCache.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCache.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheRecord.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheRecord.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheRecord.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheRecord.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheServer.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheServer.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheServer.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapCacheServer.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapPutResult.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapPutResult.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapPutResult.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/MapPutResult.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/PersistentMapCache.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/PersistentMapCache.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/PersistentMapCache.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/PersistentMapCache.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/SimpleMapCache.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/SimpleMapCache.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/SimpleMapCache.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/SimpleMapCache.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/PersistentSetCache.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/PersistentSetCache.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/PersistentSetCache.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/PersistentSetCache.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCache.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCache.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCache.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCache.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheRecord.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheRecord.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheRecord.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheRecord.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheResult.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheResult.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheResult.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SetCacheResult.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SimpleSetCache.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SimpleSetCache.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SimpleSetCache.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/set/SimpleSetCache.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/java/org/apache/nifi/distributed/cache/server/TestServerAndClient.java b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/java/org/apache/nifi/distributed/cache/server/TestServerAndClient.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/java/org/apache/nifi/distributed/cache/server/TestServerAndClient.java rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/java/org/apache/nifi/distributed/cache/server/TestServerAndClient.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ks.jks b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ks.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ks.jks rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ks.jks diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ts.jks b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ts.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ts.jks rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/test/resources/localhost-ts.jks diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/src/main/java/org/apache/nifi/http/HttpContextMap.java b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/src/main/java/org/apache/nifi/http/HttpContextMap.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/src/main/java/org/apache/nifi/http/HttpContextMap.java rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/src/main/java/org/apache/nifi/http/HttpContextMap.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/java/org/apache/nifi/http/StandardHttpContextMap.java b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/java/org/apache/nifi/http/StandardHttpContextMap.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/java/org/apache/nifi/http/StandardHttpContextMap.java rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/java/org/apache/nifi/http/StandardHttpContextMap.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionListener.java b/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionListener.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionListener.java rename to nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionListener.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionService.java b/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionService.java rename to nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/src/main/java/org/apache/nifi/loading/LoadDistributionService.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/resources/META-INF/services/org.apache.nifi.controller.ControllerService diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/SSLContextServiceTest.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/TestProcessor.java b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/TestProcessor.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/TestProcessor.java rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/java/org/apache/nifi/ssl/TestProcessor.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ks.jks b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ks.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ks.jks rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ks.jks diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ts.jks b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ts.jks similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ts.jks rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/test/resources/localhost-ts.jks diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java b/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java rename to nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml b/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml rename to nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/pom.xml b/nifi-nar-bundles/nifi-standard-services/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-standard-services/pom.xml rename to nifi-nar-bundles/nifi-standard-services/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Action.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Action.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Action.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Action.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Condition.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Condition.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Condition.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Condition.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Criteria.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Criteria.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Criteria.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Criteria.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/FlowFilePolicy.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/FlowFilePolicy.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/FlowFilePolicy.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/FlowFilePolicy.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Rule.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Rule.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Rule.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/Rule.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/serde/CriteriaSerDe.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/serde/CriteriaSerDe.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/serde/CriteriaSerDe.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/src/main/java/org/apache/nifi/update/attributes/serde/CriteriaSerDe.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/docs/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/docs/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/docs/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/resources/docs/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/test/java/org/apache/nifi/update/attributes/TestUpdateAttribute.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/test/java/org/apache/nifi/update/attributes/TestUpdateAttribute.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/test/java/org/apache/nifi/update/attributes/TestUpdateAttribute.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/test/java/org/apache/nifi/update/attributes/TestUpdateAttribute.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/nb-configuration.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/nb-configuration.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/nb-configuration.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/nb-configuration.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/ObjectMapperResolver.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/ObjectMapperResolver.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/ObjectMapperResolver.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/ObjectMapperResolver.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/api/RuleResource.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ActionDTO.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ActionDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ActionDTO.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ActionDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ConditionDTO.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ConditionDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ConditionDTO.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/ConditionDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/DtoFactory.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/DtoFactory.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/DtoFactory.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/DtoFactory.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/RuleDTO.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/RuleDTO.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/RuleDTO.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/dto/RuleDTO.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ActionEntity.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ActionEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ActionEntity.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ActionEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ConditionEntity.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ConditionEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ConditionEntity.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/ConditionEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/EvaluationContextEntity.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/EvaluationContextEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/EvaluationContextEntity.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/EvaluationContextEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RuleEntity.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RuleEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RuleEntity.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RuleEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RulesEntity.java b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RulesEntity.java similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RulesEntity.java rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/entity/RulesEntity.java diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/LICENSE b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/LICENSE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/LICENSE rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/LICENSE diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/NOTICE b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/NOTICE similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/NOTICE rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/resources/META-INF/NOTICE diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/META-INF/nifi-processor-configuration b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/META-INF/nifi-processor-configuration similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/META-INF/nifi-processor-configuration rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/META-INF/nifi-processor-configuration diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/jsp/worksheet.jsp b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/jsp/worksheet.jsp similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/jsp/worksheet.jsp rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/jsp/worksheet.jsp diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/web.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/web.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/web.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/WEB-INF/web.xml diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/css/main.css b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/css/main.css similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/css/main.css rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/css/main.css diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/bgInputText.png b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/bgInputText.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/bgInputText.png rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/bgInputText.png diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/buttonNew.png b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/buttonNew.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/buttonNew.png rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/buttonNew.png diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconDelete.png b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconDelete.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconDelete.png rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconDelete.png diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconInfo.png b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconInfo.png similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconInfo.png rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/images/iconInfo.png diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/js/application.js b/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/js/application.js similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/js/application.js rename to nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/webapp/js/application.js diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml b/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml rename to nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml diff --git a/nifi/nifi-nar-bundles/pom.xml b/nifi-nar-bundles/pom.xml similarity index 100% rename from nifi/nifi-nar-bundles/pom.xml rename to nifi-nar-bundles/pom.xml diff --git a/nifi-nar-maven-plugin/DISCLAIMER b/nifi-nar-maven-plugin/DISCLAIMER deleted file mode 100644 index 0f8e7a1ecc..0000000000 --- a/nifi-nar-maven-plugin/DISCLAIMER +++ /dev/null @@ -1,15 +0,0 @@ -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - -For more information about the incubation status of the Apache NiFi project -you can go to the following page: - -http://nifi.incubator.apache.org/ diff --git a/nifi-nar-maven-plugin/LICENSE b/nifi-nar-maven-plugin/LICENSE deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/nifi-nar-maven-plugin/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/nifi-nar-maven-plugin/NOTICE b/nifi-nar-maven-plugin/NOTICE deleted file mode 100644 index 76a23fbb6d..0000000000 --- a/nifi-nar-maven-plugin/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Apache NiFi -Copyright 2014-2015 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). diff --git a/nifi-nar-maven-plugin/README.md b/nifi-nar-maven-plugin/README.md deleted file mode 100644 index 4fd3a2777a..0000000000 --- a/nifi-nar-maven-plugin/README.md +++ /dev/null @@ -1,77 +0,0 @@ - -# Apache NiFi NAR Maven Plugin - -Apache NiFi NAR Maven Plugin helps to build NiFi Archive bundles to support the classloader isolation model of NiFi. - -## Table of Contents - -- [Requirements](#requirements) -- [Getting Started](#getting-started) -- [Getting Help](#getting-help) -- [License](#license) -- [Disclaimer](#disclaimer) - -## Requirements -* JDK 1.7 or higher -* Apache Maven 3.0.5 or higher - -## Getting Started - -Building the nifi-nar-maven-plugin module should be rare since it will be released infrequently compared to -the main 'nifi' code tree. - -- Build with `mvn clean install` -- Presuming you need to make use of changes to the nifi-nar-maven-plugin module, you should next - go to the [nifi](../nifi) directory and follow its instructions. - - -## Getting Help -If you have questions, you can reach out to our mailing list: dev@nifi.incubator.apache.org -([archive](http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev)). -We're also often available in IRC: #nifi on -[irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). - - -## License - -Except as otherwise noted this software is licensed under the -[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -## Disclaimer - -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - diff --git a/nifi-nar-maven-plugin/pom.xml b/nifi-nar-maven-plugin/pom.xml deleted file mode 100644 index 4e08f2ec00..0000000000 --- a/nifi-nar-maven-plugin/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - 4.0.0 - - org.apache.nifi - nifi-parent - 1.0.1-SNAPSHOT - - - nifi-nar-maven-plugin - 1.0.2-SNAPSHOT - maven-plugin - Apache NiFi Nar Plugin. - - - - - org.apache.maven.plugins - maven-release-plugin - - - default - - perform - - - nifi-nar-maven-plugin/pom.xml - - - - - - - - - org.apache.maven.plugins - maven-plugin-plugin - - - default-descriptor - - descriptor - - process-classes - - - help-descriptor - - helpmojo - - process-classes - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - **/HelpMojo.java - - - - - - - org.apache.maven - maven-plugin-api - 2.2.1 - - - org.apache.maven.plugins - maven-dependency-plugin - maven-plugin - 2.9 - - - - org.apache.maven.plugins - maven-jar-plugin - 2.5 - - - org.apache.maven.plugin-tools - maven-plugin-annotations - provided - 3.3 - - - diff --git a/nifi-nar-maven-plugin/src/main/java/org/apache/nifi/NarMojo.java b/nifi-nar-maven-plugin/src/main/java/org/apache/nifi/NarMojo.java deleted file mode 100644 index 0e3290208e..0000000000 --- a/nifi-nar-maven-plugin/src/main/java/org/apache/nifi/NarMojo.java +++ /dev/null @@ -1,613 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.nifi; - -import java.io.File; -import java.io.IOException; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.apache.maven.archiver.MavenArchiveConfiguration; -import org.apache.maven.archiver.MavenArchiver; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.DependencyResolutionRequiredException; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.installer.ArtifactInstaller; -import org.apache.maven.artifact.metadata.ArtifactMetadataSource; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.resolver.ArtifactCollector; -import org.apache.maven.artifact.resolver.ArtifactNotFoundException; -import org.apache.maven.artifact.resolver.ArtifactResolutionException; -import org.apache.maven.artifact.resolver.ArtifactResolver; -import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.dependency.utils.DependencyStatusSets; -import org.apache.maven.plugin.dependency.utils.DependencyUtil; -import org.apache.maven.plugin.dependency.utils.filters.DestFileFilter; -import org.apache.maven.plugin.dependency.utils.resolvers.ArtifactsResolver; -import org.apache.maven.plugin.dependency.utils.resolvers.DefaultArtifactsResolver; -import org.apache.maven.plugin.dependency.utils.translators.ArtifactTranslator; -import org.apache.maven.plugin.dependency.utils.translators.ClassifierTypeTranslator; -import org.apache.maven.plugins.annotations.LifecyclePhase; -import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Parameter; -import org.apache.maven.plugins.annotations.ResolutionScope; -import org.apache.maven.project.MavenProject; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.plugins.annotations.Component; -import org.apache.maven.project.MavenProjectHelper; -import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException; -import org.apache.maven.shared.artifact.filter.collection.ArtifactIdFilter; -import org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter; -import org.apache.maven.shared.artifact.filter.collection.ClassifierFilter; -import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts; -import org.apache.maven.shared.artifact.filter.collection.GroupIdFilter; -import org.apache.maven.shared.artifact.filter.collection.ScopeFilter; -import org.apache.maven.shared.artifact.filter.collection.ProjectTransitivityFilter; -import org.apache.maven.shared.artifact.filter.collection.TypeFilter; -import org.codehaus.plexus.archiver.ArchiverException; -import org.codehaus.plexus.archiver.jar.JarArchiver; -import org.codehaus.plexus.archiver.jar.ManifestException; -import org.codehaus.plexus.archiver.manager.ArchiverManager; -import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.StringUtils; - -/** - * Packages the current project as an Apache NiFi Archive (NAR). - * - * The following code is derived from maven-dependencies-plugin and - * maven-jar-plugin. The functionality of CopyDependenciesMojo and JarMojo was - * simplified to the use case of NarMojo. - * - */ -@Mojo(name = "nar", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = false, requiresDependencyResolution = ResolutionScope.RUNTIME) -public class NarMojo extends AbstractMojo { - - private static final String[] DEFAULT_EXCLUDES = new String[]{"**/package.html"}; - private static final String[] DEFAULT_INCLUDES = new String[]{"**/**"}; - - /** - * POM - * - */ - @Parameter(defaultValue = "${project}", readonly = true, required = true) - protected MavenProject project; - - @Parameter(defaultValue = "${session}", readonly = true, required = true) - protected MavenSession session; - - /** - * List of files to include. Specified as fileset patterns. - */ - @Parameter(property = "includes") - protected String[] includes; - /** - * List of files to exclude. Specified as fileset patterns. - */ - @Parameter(property = "excludes") - protected String[] excludes; - /** - * Name of the generated NAR. - * - */ - @Parameter(alias = "narName", property = "nar.finalName", defaultValue = "${project.build.finalName}", required = true) - protected String finalName; - - /** - * The Jar archiver. - * - * \@\component role="org.codehaus.plexus.archiver.Archiver" roleHint="jar" - */ - @Component(role = org.codehaus.plexus.archiver.Archiver.class, hint = "jar") - private JarArchiver jarArchiver; - /** - * The archive configuration to use. - * - * See the - * documentation for Maven Archiver. - * - */ - @Parameter(property = "archive") - protected final MavenArchiveConfiguration archive = new MavenArchiveConfiguration(); - /** - * Path to the default MANIFEST file to use. It will be used if - * useDefaultManifestFile is set to true. - * - */ - @Parameter(property = "defaultManifestFiles", defaultValue = "${project.build.outputDirectory}/META-INF/MANIFEST.MF", readonly = true, required = true) - protected File defaultManifestFile; - - /** - * Set this to true to enable the use of the - * defaultManifestFile. - * - * @since 2.2 - */ - @Parameter(property = "nar.useDefaultManifestFile", defaultValue = "false") - protected boolean useDefaultManifestFile; - - @Component - protected MavenProjectHelper projectHelper; - - /** - * Whether creating the archive should be forced. - * - */ - @Parameter(property = "nar.forceCreation", defaultValue = "false") - protected boolean forceCreation; - - /** - * Classifier to add to the artifact generated. If given, the artifact will - * be an attachment instead. - * - */ - @Parameter(property = "classifier") - protected String classifier; - - @Component - protected ArtifactInstaller installer; - - @Component - protected ArtifactRepositoryFactory repositoryFactory; - - /** - * This only applies if the classifier parameter is used. - * - */ - @Parameter(property = "mdep.failOnMissingClassifierArtifact", defaultValue = "true", required = false) - protected boolean failOnMissingClassifierArtifact = true; - - /** - * Comma Separated list of Types to include. Empty String indicates include - * everything (default). - * - */ - @Parameter(property = "includeTypes", required = false) - protected String includeTypes; - - /** - * Comma Separated list of Types to exclude. Empty String indicates don't - * exclude anything (default). - * - */ - @Parameter(property = "excludeTypes", required = false) - protected String excludeTypes; - - /** - * Scope to include. An Empty string indicates all scopes (default). - * - */ - @Parameter(property = "includeScope", required = false) - protected String includeScope; - - /** - * Scope to exclude. An Empty string indicates no scopes (default). - * - */ - @Parameter(property = "excludeScope", required = false) - protected String excludeScope; - - /** - * Comma Separated list of Classifiers to include. Empty String indicates - * include everything (default). - * - */ - @Parameter(property = "includeClassifiers", required = false) - protected String includeClassifiers; - - /** - * Comma Separated list of Classifiers to exclude. Empty String indicates - * don't exclude anything (default). - * - */ - @Parameter(property = "excludeClassifiers", required = false) - protected String excludeClassifiers; - - /** - * Specify classifier to look for. Example: sources - * - */ - @Parameter(property = "classifier", required = false) - protected String copyDepClassifier; - - /** - * Specify type to look for when constructing artifact based on classifier. - * Example: java-source,jar,war, nar - * - */ - @Parameter(property = "type", required = false, defaultValue = "nar") - protected String type; - - /** - * Comma separated list of Artifact names too exclude. - * - */ - @Parameter(property = "excludeArtifacts", required = false) - protected String excludeArtifactIds; - - /** - * Comma separated list of Artifact names to include. - * - */ - @Parameter(property = "includeArtifacts", required = false) - protected String includeArtifactIds; - - /** - * Comma separated list of GroupId Names to exclude. - * - */ - @Parameter(property = "excludeArtifacts", required = false) - protected String excludeGroupIds; - - /** - * Comma separated list of GroupIds to include. - * - */ - @Parameter(property = "includeGroupIds", required = false) - protected String includeGroupIds; - - /** - * Directory to store flag files - * - */ - @Parameter(property = "markersDirectory", required = false, defaultValue = "${project.build.directory}/dependency-maven-plugin-markers") - protected File markersDirectory; - - /** - * Overwrite release artifacts - * - */ - @Parameter(property = "overWriteReleases", required = false) - protected boolean overWriteReleases; - - /** - * Overwrite snapshot artifacts - * - */ - @Parameter(property = "overWriteSnapshots", required = false) - protected boolean overWriteSnapshots; - - /** - * Overwrite artifacts that don't exist or are older than the source. - * - */ - @Parameter(property = "overWriteIfNewer", required = false, defaultValue = "true") - protected boolean overWriteIfNewer; - - @Parameter(property = "projectBuildDirectory", required = false, defaultValue = "${project.build.directory}") - protected File projectBuildDirectory; - - /** - * Used to look up Artifacts in the remote repository. - */ - @Component - protected ArtifactFactory factory; - - /** - * Used to look up Artifacts in the remote repository. - * - */ - @Component - protected ArtifactResolver resolver; - - /** - * Artifact collector, needed to resolve dependencies. - * - */ - @Component(role = org.apache.maven.artifact.resolver.ArtifactCollector.class) - protected ArtifactCollector artifactCollector; - - @Component(role = org.apache.maven.artifact.metadata.ArtifactMetadataSource.class) - protected ArtifactMetadataSource artifactMetadataSource; - - /** - * Location of the local repository. - * - */ - @Parameter(property = "localRepository", required = true, readonly = true) - protected ArtifactRepository local; - - /** - * List of Remote Repositories used by the resolver - * - */ - @Parameter(property = "project.remoteArtifactRepositories", required = true, readonly = true) - protected List remoteRepos; - - /** - * To look up Archiver/UnArchiver implementations - * - */ - @Component - protected ArchiverManager archiverManager; - - /** - * Contains the full list of projects in the reactor. - * - */ - @Parameter(property = "reactorProjects", required = true, readonly = true) - protected List reactorProjects; - - /** - * If the plugin should be silent. - * - */ - @Parameter(property = "silent", required = false, defaultValue = "false") - public boolean silent; - - /** - * Output absolute filename for resolved artifacts - * - */ - @Parameter(property = "outputAbsoluteArtifactFilename", defaultValue = "false", required = false) - protected boolean outputAbsoluteArtifactFilename; - - @Override - public void execute() throws MojoExecutionException, MojoFailureException { - copyDependencies(); - makeNar(); - } - - private void copyDependencies() throws MojoExecutionException { - DependencyStatusSets dss = getDependencySets(this.failOnMissingClassifierArtifact); - Set artifacts = dss.getResolvedDependencies(); - - for (Object artifactObj : artifacts) { - copyArtifact((Artifact) artifactObj); - } - - artifacts = dss.getSkippedDependencies(); - for (Object artifactOjb : artifacts) { - Artifact artifact = (Artifact) artifactOjb; - getLog().info(artifact.getFile().getName() + " already exists in destination."); - } - } - - protected void copyArtifact(Artifact artifact) throws MojoExecutionException { - String destFileName = DependencyUtil.getFormattedFileName(artifact, false); - final File destDir = DependencyUtil.getFormattedOutputDirectory(false, false, false, false, false, getDependenciesDirectory(), artifact); - final File destFile = new File(destDir, destFileName); - copyFile(artifact.getFile(), destFile); - } - - protected Artifact getResolvedPomArtifact(Artifact artifact) { - Artifact pomArtifact = this.factory.createArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), "", "pom"); - // Resolve the pom artifact using repos - try { - this.resolver.resolve(pomArtifact, this.remoteRepos, this.local); - } catch (ArtifactResolutionException | ArtifactNotFoundException e) { - getLog().info(e.getMessage()); - } - return pomArtifact; - } - - protected ArtifactsFilter getMarkedArtifactFilter() { - return new DestFileFilter(this.overWriteReleases, this.overWriteSnapshots, this.overWriteIfNewer, false, false, false, false, false, getDependenciesDirectory()); - } - - protected DependencyStatusSets getDependencySets(boolean stopOnFailure) throws MojoExecutionException { - // add filters in well known order, least specific to most specific - FilterArtifacts filter = new FilterArtifacts(); - - filter.addFilter(new ProjectTransitivityFilter(project.getDependencyArtifacts(), false)); - filter.addFilter(new ScopeFilter(this.includeScope, this.excludeScope)); - filter.addFilter(new TypeFilter(this.includeTypes, this.excludeTypes)); - filter.addFilter(new ClassifierFilter(this.includeClassifiers, this.excludeClassifiers)); - filter.addFilter(new GroupIdFilter(this.includeGroupIds, this.excludeGroupIds)); - filter.addFilter(new ArtifactIdFilter(this.includeArtifactIds, this.excludeArtifactIds)); - - // explicitly filter our nar dependencies - filter.addFilter(new TypeFilter("", "nar")); - - // start with all artifacts. - Set artifacts = project.getArtifacts(); - - // perform filtering - try { - artifacts = filter.filter(artifacts); - } catch (ArtifactFilterException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - // transform artifacts if classifier is set - final DependencyStatusSets status; - if (StringUtils.isNotEmpty(copyDepClassifier)) { - status = getClassifierTranslatedDependencies(artifacts, stopOnFailure); - } else { - status = filterMarkedDependencies(artifacts); - } - - return status; - } - - protected DependencyStatusSets getClassifierTranslatedDependencies(Set artifacts, boolean stopOnFailure) throws MojoExecutionException { - Set unResolvedArtifacts = new HashSet(); - Set resolvedArtifacts = artifacts; - DependencyStatusSets status = new DependencyStatusSets(); - - // possibly translate artifacts into a new set of artifacts based on the - // classifier and type - // if this did something, we need to resolve the new artifacts - if (StringUtils.isNotEmpty(copyDepClassifier)) { - ArtifactTranslator translator = new ClassifierTypeTranslator(this.copyDepClassifier, this.type, this.factory); - artifacts = translator.translate(artifacts, getLog()); - - status = filterMarkedDependencies(artifacts); - - // the unskipped artifacts are in the resolved set. - artifacts = status.getResolvedDependencies(); - - // resolve the rest of the artifacts - ArtifactsResolver artifactsResolver = new DefaultArtifactsResolver(this.resolver, this.local, - this.remoteRepos, stopOnFailure); - resolvedArtifacts = artifactsResolver.resolve(artifacts, getLog()); - - // calculate the artifacts not resolved. - unResolvedArtifacts.addAll(artifacts); - unResolvedArtifacts.removeAll(resolvedArtifacts); - } - - // return a bean of all 3 sets. - status.setResolvedDependencies(resolvedArtifacts); - status.setUnResolvedDependencies(unResolvedArtifacts); - - return status; - } - - protected DependencyStatusSets filterMarkedDependencies(Set artifacts) throws MojoExecutionException { - // remove files that have markers already - FilterArtifacts filter = new FilterArtifacts(); - filter.clearFilters(); - filter.addFilter(getMarkedArtifactFilter()); - - Set unMarkedArtifacts; - try { - unMarkedArtifacts = filter.filter(artifacts); - } catch (ArtifactFilterException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - // calculate the skipped artifacts - Set skippedArtifacts = new HashSet(); - skippedArtifacts.addAll(artifacts); - skippedArtifacts.removeAll(unMarkedArtifacts); - - return new DependencyStatusSets(unMarkedArtifacts, null, skippedArtifacts); - } - - protected void copyFile(File artifact, File destFile) throws MojoExecutionException { - try { - getLog().info("Copying " + (this.outputAbsoluteArtifactFilename ? artifact.getAbsolutePath() : artifact.getName()) + " to " + destFile); - FileUtils.copyFile(artifact, destFile); - } catch (Exception e) { - throw new MojoExecutionException("Error copying artifact from " + artifact + " to " + destFile, e); - } - } - - private File getClassesDirectory() { - final File outputDirectory = projectBuildDirectory; - return new File(outputDirectory, "classes"); - } - - private File getDependenciesDirectory() { - return new File(getClassesDirectory(), "META-INF/bundled-dependencies"); - } - - private void makeNar() throws MojoExecutionException { - File narFile = createArchive(); - - if (classifier != null) { - projectHelper.attachArtifact(project, "nar", classifier, narFile); - } else { - project.getArtifact().setFile(narFile); - } - } - - public File createArchive() throws MojoExecutionException { - final File outputDirectory = projectBuildDirectory; - File narFile = getNarFile(outputDirectory, finalName, classifier); - MavenArchiver archiver = new MavenArchiver(); - archiver.setArchiver(jarArchiver); - archiver.setOutputFile(narFile); - archive.setForced(forceCreation); - - try { - File contentDirectory = getClassesDirectory(); - if (!contentDirectory.exists()) { - getLog().warn("NAR will be empty - no content was marked for inclusion!"); - } else { - archiver.getArchiver().addDirectory(contentDirectory, getIncludes(), getExcludes()); - } - - File existingManifest = defaultManifestFile; - if (useDefaultManifestFile && existingManifest.exists() && archive.getManifestFile() == null) { - getLog().info("Adding existing MANIFEST to archive. Found under: " + existingManifest.getPath()); - archive.setManifestFile(existingManifest); - } - - // automatically add the artifact id to the manifest - archive.addManifestEntry("Nar-Id", project.getArtifactId()); - - // look for a nar dependency - String narDependency = getNarDependency(); - if (narDependency != null) { - archive.addManifestEntry("Nar-Dependency-Id", narDependency); - } - - archiver.createArchive(session, project, archive); - return narFile; - } catch (ArchiverException | MojoExecutionException | ManifestException | IOException | DependencyResolutionRequiredException e) { - throw new MojoExecutionException("Error assembling NAR", e); - } - } - - private String[] getIncludes() { - if (includes != null && includes.length > 0) { - return includes; - } - return DEFAULT_INCLUDES; - } - - private String[] getExcludes() { - if (excludes != null && excludes.length > 0) { - return excludes; - } - return DEFAULT_EXCLUDES; - } - - protected File getNarFile(File basedir, String finalName, String classifier) { - if (classifier == null) { - classifier = ""; - } else if (classifier.trim().length() > 0 && !classifier.startsWith("-")) { - classifier = "-" + classifier; - } - - return new File(basedir, finalName + classifier + ".nar"); - } - - private String getNarDependency() throws MojoExecutionException { - String narDependency = null; - - // get nar dependencies - FilterArtifacts filter = new FilterArtifacts(); - filter.addFilter(new TypeFilter("nar", "")); - - // start with all artifacts. - Set artifacts = project.getArtifacts(); - - // perform filtering - try { - artifacts = filter.filter(artifacts); - } catch (ArtifactFilterException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - // ensure there is a single nar dependency - if (artifacts.size() > 1) { - throw new MojoExecutionException("Each NAR represents a ClassLoader. A NAR dependency allows that NAR's ClassLoader to be " - + "used as the parent of this NAR's ClassLoader. As a result, only a single NAR dependency is allowed."); - } else if (artifacts.size() == 1) { - final Artifact artifact = (Artifact) artifacts.iterator().next(); - narDependency = artifact.getArtifactId(); - } - - return narDependency; - } -} diff --git a/nifi-nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml b/nifi-nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml deleted file mode 100644 index ad2c3cb8ee..0000000000 --- a/nifi-nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - org.apache.maven.lifecycle.mapping.LifecycleMapping - nar - org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping - - - - default - - org.apache.maven.plugins:maven-resources-plugin:resources - org.apache.maven.plugins:maven-compiler-plugin:compile - org.apache.maven.plugins:maven-resources-plugin:testResources - org.apache.maven.plugins:maven-compiler-plugin:testCompile - org.apache.maven.plugins:maven-surefire-plugin:test - org.apache.nifi:nifi-nar-maven-plugin:nar - org.apache.maven.plugins:maven-install-plugin:install - org.apache.maven.plugins:maven-deploy-plugin:deploy - - - - - - - org.apache.maven.artifact.handler.ArtifactHandler - nar - org.apache.maven.artifact.handler.DefaultArtifactHandler - - nar - java - false - true - - - - diff --git a/nifi-parent/DISCLAIMER b/nifi-parent/DISCLAIMER deleted file mode 100644 index 0f8e7a1ecc..0000000000 --- a/nifi-parent/DISCLAIMER +++ /dev/null @@ -1,15 +0,0 @@ -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - -For more information about the incubation status of the Apache NiFi project -you can go to the following page: - -http://nifi.incubator.apache.org/ diff --git a/nifi-parent/LICENSE b/nifi-parent/LICENSE deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/nifi-parent/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/nifi-parent/NOTICE b/nifi-parent/NOTICE deleted file mode 100644 index 76a23fbb6d..0000000000 --- a/nifi-parent/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Apache NiFi -Copyright 2014-2015 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). diff --git a/nifi-parent/README.md b/nifi-parent/README.md deleted file mode 100644 index d2c10d8615..0000000000 --- a/nifi-parent/README.md +++ /dev/null @@ -1,73 +0,0 @@ - -# Apache NiFi Parent - -Apache NiFi Parent provides a nice aggregation of shared concerns for all NiFi Poms to follow - -## Table of Contents - -- [Requirements](#requirements) -- [Getting Started](#getting-started) -- [License](#license) -- [Disclaimer](#disclaimer) - -## Requirements -* JDK 1.7 or higher -* Apache Maven 3.0.5 or higher - -## Getting Started - -Building the nifi-parent module should be rare since it will be released infrequently compared to -the main 'nifi' code tree. - -- Build the nifi-parent module using `mvn clean install`. -- Presuming you need to make use of changes to the nifi-parent module, you should next - go to the [nifi-nar-maven-plugin](../nifi-nar-maven-plugin) directory and follow its instructions - and finally the [nifi](../nifi) directory. - -## Documentation - -See http://nifi.incubator.apache.org/ for the latest documentation. - -## License - -Except as otherwise noted this software is licensed under the -[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -## Disclaimer - -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - diff --git a/nifi-parent/pom.xml b/nifi-parent/pom.xml deleted file mode 100644 index 0370c97696..0000000000 --- a/nifi-parent/pom.xml +++ /dev/null @@ -1,438 +0,0 @@ - - - - 4.0.0 - - org.apache - apache - 17 - - - org.apache.nifi - nifi-parent - 1.0.1-SNAPSHOT - pom - The nifi-parent enables each apache nifi project to ensure consistent approaches and DRY - http://nifi.apache.org - - Apache NiFi Project - http://nifi.apache.org/ - - - - Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0 - - - - - Dev - dev-subscribe@nifi.apache.org - dev-unsubscribe@nifi.apache.org - dev@nifi.apache.org - http://mail-archives.apache.org/mod_mbox/nifi-dev - - - Users - users-subscribe@nifi.apache.org - users-unsubscribe@nifi.apache.org - users@nifi.apache.org - http://mail-archives.apache.org/mod_mbox/nifi-users - - - Commits - commits-subscribe@nifi.apache.org - commits-unsubscribe@nifi.apache.org - commits@nifi.apache.org - http://mail-archives.apache.org/mod_mbox/nifi-commits - - - - ${maven.min-version} - - - scm:git:git://git.apache.org/nifi.git - scm:git:https://git-wip-us.apache.org/repos/asf/nifi.git - https://git-wip-us.apache.org/repos/asf?p=nifi.git - HEAD - - - JIRA - https://issues.apache.org/jira/browse/NIFI - - - 1.7 - 1.7 - 3.0.5 - UTF-8 - UTF-8 - 2014 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.2 - - true - true - true - true - - - - org.apache.maven.plugins - maven-war-plugin - 2.5 - - - org.apache.maven.plugins - maven-dependency-plugin - 2.9 - - - org.apache.maven.plugins - maven-resources-plugin - 2.7 - - - org.apache.maven.plugins - maven-surefire-plugin - 2.18 - - true - -Xmx1G - - - - org.apache.maven.plugins - maven-assembly-plugin - 2.5.2 - - gnu - - - - org.codehaus.mojo - jaxb2-maven-plugin - 1.6 - - - org.apache.maven.plugins - maven-source-plugin - 2.4 - - - org.apache.maven.plugins - maven-site-plugin - 3.4 - - - org.codehaus.mojo - exec-maven-plugin - 1.3.2 - - - org.apache.maven.plugins - maven-jar-plugin - 2.5 - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.10.1 - - false - true - private - UTF-8 - true - 1.7 - -J-Xmx512m - - - - org.apache.maven.plugins - maven-release-plugin - 2.5.1 - - true - apache-release - true - deploy - @{project.artifactId}-@{project.version} - false - true - - - - default - - perform - - - nifi-parent/pom.xml - - - - - - org.codehaus.mojo - rpm-maven-plugin - 2.1.1 - - - org.antlr - antlr3-maven-plugin - 3.5.2 - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.15 - - - com.puppycrawl.tools - checkstyle - 6.5 - - - - - org.codehaus.mojo - findbugs-maven-plugin - 3.0.1 - - true - Max - true - 14 - - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.5 - true - - repository.apache.org - https://repository.apache.org/ - - - - org.apache.maven.plugins - maven-enforcer-plugin - - - enforce-maven - - enforce - - - - - - org.apache.maven.plugins:maven-surefire-plugin - org.apache.maven.plugins:maven-failsafe-plugin - org.apache.maven.plugins:maven-surefire-report-plugin - - - - ${maven.min-version} - - - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - warning - true - - - - org.apache.rat - apache-rat-plugin - - - nb-configuration.xml - nbactions.xml - DEPENDENCIES - - - - - - org.apache.maven.doxia - doxia-core - 1.6 - - - xerces - xercesImpl - - - - - - - - - - - contrib-check - - - - org.apache.rat - apache-rat-plugin - - - - check - - verify - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - check-style - - check - - - - - - - - - - findbugs - - - - org.codehaus.mojo - findbugs-maven-plugin - - - run-findbugs - - check - - - - - - - - - diff --git a/nifi-site/Gruntfile.js b/nifi-site/Gruntfile.js deleted file mode 100644 index cbf7b3efa0..0000000000 --- a/nifi-site/Gruntfile.js +++ /dev/null @@ -1,316 +0,0 @@ -/* global module */ - -module.exports = function (grunt) { - // Project configuration. - grunt.initConfig({ - config: { - svn: { - url: 'https://svn.apache.org/repos/asf/nifi/site/trunk' - } - }, - pkg: grunt.file.readJSON('package.json'), - clean: { - options: { - force: true - }, - js: ['dist/js/*'], - css: ['dist/css/'], - assets: ['dist/assets/*'], - generated: ['dist/docs'], - all: ['dist'] - }, - assemble: { - options: { - partials: 'src/includes/*.hbs', - layout: 'src/layouts/html.hbs', - flatten: true - }, - html: { - files: { - 'dist/': ['src/pages/html/*.hbs'] - } - }, - markdown: { - options: { - layout: 'src/layouts/markdown.hbs' - }, - files: { - 'dist/': ['src/pages/markdown/*.md'] - } - } - }, - compass: { - dist: { - options: { - config: 'config.rb' - } - } - }, - concat: { - options: { - separator: ';' - }, - foundation: { - src: [ - 'bower_components/foundation/js/foundation/foundation.js', - 'bower_components/foundation/js/foundation/foundation.topbar.js', - 'bower_components/foundation/js/foundation/foundation.reveal.js' - ], - dest: 'dist/assets/js/foundation.js' - }, - modernizr: { - src: [ - 'bower_components/modernizr/modernizr.js' - ], - dest: 'dist/assets/js/modernizr.js' - }, - nifi: { - src: [ - 'src/js/app.js' - ], - dest: 'dist/js/app.js' - } - }, - copy: { -// generated: { -// files: [{ -// expand: true, -// cwd: '../nifi/nifi-docs/target/generated-docs', -// src: ['*.html', 'images/*'], -// dest: 'dist/docs/' -// }, { -// expand: true, -// cwd: '../nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api', -// src: ['target/nifi-web-api-*/docs/rest-api/index.html', 'target/nifi-web-api-*/docs/rest-api/images/*'], -// dest: 'dist/docs/', -// rename: function (dest, src) { -// var path = require('path'); -// -// if (src.indexOf('images') > 0) { -// return path.join(dest, 'rest-api/images', path.basename(src)); -// } else { -// return path.join(dest, 'rest-api', path.basename(src)); -// } -// } -// }] -// }, - dist: { - files: [{ - expand: true, - cwd: 'src/images/', - src: ['**/*.{png,jpg,gif,svg,ico}'], - dest: 'dist/images/' - }, { - expand: true, - cwd: 'bower_components/jquery/dist', - src: ['jquery.min.js'], - dest: 'dist/assets/js/' - }, { - expand: true, - cwd: 'bower_components/webfontloader', - src: ['webfontloader.js'], - dest: 'dist/assets/js/' - }, { - expand: true, - cwd: 'bower_components/font-awesome/css', - src: ['font-awesome.min.css'], - dest: 'dist/assets/stylesheets/' - }, { - expand: true, - cwd: 'bower_components/font-awesome', - src: ['fonts/*'], - dest: 'dist/assets/' - }] - } - }, - prompt: { - username: { - options: { - questions: [{ - config: 'config.svn.username', - type: 'input', - message: 'Enter SVN username (if different from current or configured user):' - }] - } - }, - commit: { - options: { - questions: [{ - config: 'config.svn.commit.confirmation', - type: 'list', - choices: ['Show diff', 'Commit', 'Abort'], - message: 'Commit the changes listed above?' - }], - then: function (results) { - if (results['config.svn.commit.confirmation'] === 'Commit') { - grunt.task.run('prompt:message'); - } else if (results['config.svn.commit.confirmation'] === 'Show diff') { - grunt.task.run('exec:diff'); - grunt.task.run('prompt:commit'); - } - } - } - }, - message: { - options: { - questions: [{ - config: 'config.svn.commit.message', - type: 'input', - message: 'Commit message:' - }, { - config: 'config.svn.password', - type: 'password', - message: 'SVN password (if different from configured):' - }], - then: function () { - grunt.task.run('exec:add'); - grunt.task.run('exec:commit'); - } - } - } - }, - exec: { - generateDocs: { - command: 'mvn clean package', - cwd: '../nifi/nifi-docs', - stdout: true, - stderr: true - }, - generateRestApiDocs: { - command: 'mvn clean package -DskipTests', - cwd: '../nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api', - stdout: true, - stderr: true - }, - checkout: { - command: function() { - var url = grunt.config('config.svn.url'); - var username = grunt.config('config.svn.username'); - var command = 'svn checkout'; - if (username !== '') { - command += (' --username ' + username); - } - return command + ' ' + url + ' --trust-server-cert --non-interactive dist'; - }, - stdout: true, - stderr: true - }, - status: { - cwd: 'dist', - command: 'svn status', - stdout: true, - stderr: true - }, - diff: { - cwd: 'dist', - command: 'svn diff', - stdout: true, - stderr: true - }, - add: { - cwd: 'dist', - command: 'svn add --force .', - stdout: true, - stderr: true - }, - commit: { - cwd: 'dist', - command: function() { - var username = grunt.config('config.svn.username'); - var password = grunt.config('config.svn.password'); - var message = grunt.config('config.svn.commit.message'); - var command = 'svn commit'; - if (username !== '') { - command += (' --username ' + username); - } - if (password !== '') { - command += (' --password "' + password + '"'); - } - return command + ' -m "' + message + '" --trust-server-cert --non-interactive .'; - } - } - }, - replace: { - addGoogleAnalytics: { - src: ['dist/docs/*.html', 'dist/docs/rest-api/index.html'], - overwrite: true, - replacements: [{ - from: /<\/head>/g, - to: "\n" + - "" - }] - }, - moveTearDrop: { - src: ['dist/docs/rest-api/index.html'], - overwrite: true, - replacements: [{ - from: //g, - to: '' - }] - }, - removeVersion: { - src: ['dist/docs/rest-api/index.html'], - overwrite: true, - replacements: [{ - from: /
        .*<\/div>/g, - to: '
        NiFi Rest Api
        ' - }, { - from: /.*<\/title>/g, - to: '<title>NiFi Rest Api' - }] - } - }, - watch: { - grunt: { - files: ['Gruntfile.js'], - tasks: ['dev'] - }, - css: { - files: 'src/scss/*.scss', - tasks: ['css'] - }, - script: { - files: 'src/js/*.js', - tasks: ['js'] - }, - images: { - files: 'src/images/*.{png,jpg,gif,svg,ico}', - tasks: ['img'] - }, - assemble: { - files: ['src/{includes,layouts}/*.hbs', 'src/pages/{html,markdown}/*.{hbs,md}'], - tasks: ['assemble'] - } - } - }); - - grunt.loadNpmTasks('grunt-newer'); - grunt.loadNpmTasks('grunt-contrib-clean'); - grunt.loadNpmTasks('grunt-contrib-copy'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('assemble'); - grunt.loadNpmTasks('grunt-contrib-compass'); - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-exec'); - grunt.loadNpmTasks('grunt-text-replace'); - grunt.loadNpmTasks('grunt-prompt'); - - grunt.registerTask('img', ['newer:copy']); - grunt.registerTask('css', ['clean:css', 'compass']); - grunt.registerTask('js', ['clean:js', 'concat']); -// grunt.registerTask('generate-docs', ['clean:generated', 'exec:generateDocs', 'exec:generateRestApiDocs', 'copy:generated', 'replace:addGoogleAnalytics', 'replace:moveTearDrop', 'replace:removeVersion']); - - grunt.registerTask('build', ['assemble', 'css', 'js', 'img', 'copy:dist']); -// grunt.registerTask('build', ['assemble', 'css', 'js', 'img', 'generate-docs', 'copy:dist']); - grunt.registerTask('deploy', ['clean:all', 'prompt:username', 'exec:checkout', 'build', 'exec:status', 'prompt:commit']); - grunt.registerTask('dev', ['default', 'watch']); - - grunt.registerTask('default', ['clean:all', 'build']); -}; diff --git a/nifi-site/LICENSE b/nifi-site/LICENSE deleted file mode 100644 index 7a4a3ea242..0000000000 --- a/nifi-site/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/nifi-site/README.md b/nifi-site/README.md deleted file mode 100644 index 2441a3011c..0000000000 --- a/nifi-site/README.md +++ /dev/null @@ -1,213 +0,0 @@ - -# About -[Apache NiFi project] (http://nifi.apache.org). - -## Getting Started - -The site is built using [grunt][] task runner, [bower][] package manager for -the web, and [npm][] package manager for node. npm is used to manage the -node modules required for building this site. bower is used to manage the -front end packages that the site will depend on. - -Before installing bower and grunt, the NodeJS Package Manager (npm) must -be installed. For instructions on installing npm, see [npm-install][] - -Both grunt and bower can be installed via npm once, it is installed. - - -``` -sudo npm install -g grunt-cli -``` - -``` -sudo npm install -g bower -``` - -To download the front end packages required for this site run the following -command from the nifi-site directory. - -```bash -bower install -``` - -To install the node modules required to build this site run the following -command from the nifi-site directory. - -```bash -npm install -``` - -The site is built using [foundation][], a responsive front end framework. -Consequently, the site is using [sass][] and [compass][] for CSS pre-processing. -This will also require ruby to be installed, as it is a a pre-requisite for sass and compass. - -After installing Ruby, sass can be installed via: -``` -gem install sass -``` - -Compass will require that the `ruby-devel` package also be installed. This is typically -accomplished by running - -``` -sudo yum install ruby-devel -``` - -for Fedora users or - -``` -sudo apt-get install ruby-dev -``` - -for Ubuntu users. - -The compass gem can then be installed: - -``` -gem install compass -``` - -For Ubuntu users, it may also be necessary to install the `nodejs-legacy` package in order for -grunt to run properly: - -``` -sudo apt-get install nodejs-legacy -``` - - -Now that the necessary gems are installed, it is important that the gems' executable directory is -in the user's PATH. For example: - -``` -export PATH=$PATH:/home/username/bin -``` - -**NOTE:** it is important that the fully qualified directory name be used. Simply using `~/bin` will -result in errors when running Grunt, such as: - -```Running "compass:dist" (compass) task``` - -```Warning: You need to have Ruby and Compass installed and in your system PATH for this task to work. - More info: https://github.com/gruntjs/grunt-contrib-compass Use --force to continue. -``` - -``` - Aborted due to warnings. -``` - -It is recommended that you update your environment's configuration so that this is always in your PATH, -as this will be required every time that grunt is run. - -[grunt]: http://gruntjs.com/ -[bower]: http://bower.io/ -[npm]: http://www.npmjs.com/ -[foundation]: http://foundation.zurb.com/ -[sass]: http://sass-lang.com/ -[compass]: http://compass-style.org/ -[npm-install]: https://github.com/joyent/node/wiki/installing-node.js-via-package-manager - -## Grunt Tasks - -To build the site run the default grunt task. This will assemble the site and -place the resulting site in the dist folder. Part of this assembly is actually -building the various guides and Rest Api documentation bundled in the application. -Because of this, Maven must be installed and available on the PATH. Additionally Java -must be installed in order for the Maven build to succeed. Refer to the [NiFi][] -documentation for minimum requirements for Maven and Java. - -[NiFi]: https://nifi.apache.org/quickstart.html - -```bash -grunt -``` - -If developing new content/features for the site, it may be helpful to run -the dev task which will build the site and continue to watch the source -files for changes. Any changes will cause the site to be rebuilt. - -```bash -grunt dev -``` - -To deploy new changes to the live site, run the deploy task - -```bash -grunt deploy -``` - -This will go through each step required to deploy changes to the site. Updates -are performed by committing to a SVN repository. This means that svn must be installed -and available on the PATH. Additionally, it requires SVN 1.6+. The deployment -process will show the files being committed and provide an option to view a diff, -proceed with the commit, or abort. - -## Source overview - -### src/includes - -Contains fragments that will be included on all pages of the site. Most notably -here is the topbar.hbs that defines the Menus on the top of the site. If a new -page is being added or removed it is done here. - -### src/pages/html - -Contains pages that are written in HTML. Any new HTML based content should reside here. - -### src/pages/markdown - -Contains pages that are written in Markdown. Any new Markdown based content should -reside here. - -## Application Style Properties - -### Font -- Oswald: http://www.google.com/fonts/specimen/Oswald - -### Colors -- 'ni': #7A96A4 -- 'fi': #0F3541 -- Toolbox: #7299AC -- Toolbar: #A0BAC7 -- Flow Status: #D9E4E8 -- Utilities: #81A0B4 - -## Technologies & Resources -- HTML5 -- CSS3 -- Foundation -- jQuery -- Modernizr -- Google Fonts API -- Web Font Loader -- FontAwesome - -## License - -Except as otherwise noted this software is licensed under the -[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - diff --git a/nifi-site/bower.json b/nifi-site/bower.json deleted file mode 100644 index b9a0b3259d..0000000000 --- a/nifi-site/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "apache-nifi-site", - "version": "0.2.0", - "description": "The artifacts for the Apache NiFi site.", - "private": "true", - "repository": { - "type": "git", - "url": "http://git-wip-us.apache.org/repos/asf/nifi.git" - }, - "dependencies": { - "foundation": "~5.5.1", - "font-awesome": "~4.3.0", - "webfontloader": "~1.5.14" - }, - "licenses" : [{ - "type": "Apache", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - }] -} diff --git a/nifi-site/config.rb b/nifi-site/config.rb deleted file mode 100644 index 296860f7d8..0000000000 --- a/nifi-site/config.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Require any additional compass plugins here. -add_import_path "bower_components/foundation/scss" - -# Set this to the root of your project when deployed: -http_path = "/" -css_dir = "dist/stylesheets" -sass_dir = "src/scss" -images_dir = "dist/images" -javascripts_dir = "dist/js" - -# You can select your preferred output style here (can be overridden via the command line): -# output_style = :expanded or :nested or :compact or :compressed - -# To enable relative paths to assets via compass helper functions. Uncomment: -# relative_assets = true - -# To disable debugging comments that display the original location of your selectors. Uncomment: -# line_comments = false - -# If you prefer the indented syntax, you might want to regenerate this -# project again passing --syntax sass, or you can uncomment this: -# preferred_syntax = :sass -# and then run: -# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff --git a/nifi-site/package.json b/nifi-site/package.json deleted file mode 100644 index f299d4db53..0000000000 --- a/nifi-site/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "apache-nifi-site", - "version": "0.2.0", - "description": "The artifacts for the Apache NiFi site.", - "private": "true", - "repository": { - "type": "git", - "url": "http://git-wip-us.apache.org/repos/asf/nifi.git" - }, - "devDependencies": { - "assemble": "^0.4.42", - "grunt": "^0.4.5", - "grunt-contrib-clean": "^0.6.0", - "grunt-contrib-compass": "^1.0.1", - "grunt-contrib-concat": "^0.5.0", - "grunt-contrib-copy": "^0.7.0", - "grunt-contrib-watch": "^0.6.1", - "grunt-exec": "^0.4.6", - "grunt-newer": "^1.1.0", - "grunt-prompt": "^1.3.0", - "grunt-text-replace": "^0.4.0" - }, - "licenses": [ - { - "type": "Apache", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - } - ] -} diff --git a/nifi-site/robots.txt b/nifi-site/robots.txt deleted file mode 100644 index 214e411965..0000000000 --- a/nifi-site/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -# www.robotstxt.org/ -# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 - -User-agent: * diff --git a/nifi-site/src/images/feather-small.gif b/nifi-site/src/images/feather-small.gif deleted file mode 100644 index fb4445f9dc83aa8910802511ea7846c2968d8f99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7129 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 N85sQU2m$~h{|~RtsE7an diff --git a/nifi-site/src/images/flow-th.png b/nifi-site/src/images/flow-th.png deleted file mode 100644 index 7042b879ffd04b4fbd2befd2d511d1a3ade7f389..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144319 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�@z0VB;4?zjm5kP_bt|c8pPThdLM(gs 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 diff --git a/nifi-site/src/images/flow.png b/nifi-site/src/images/flow.png deleted file mode 100644 index 0308d6bacf6d5930eae9dfdac315fa47534543b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 947350 zcmdqJWl)^kwk`|_0fGbz5Zo;gAhZ0js4iIG;XrMoRg^SFR%`fho zxF|f{AtU!F7+-?AU^ZU*$xL7bx{f=c)L1Q26_FGy;zKL@#{%X(^N!G;Y4jgNmmr6J zhwqn$ZV$h>jofT4e7PP*q6QA)qjRZ0L8`j&>68O=SihH`{d~&w<^z^ma4T|T2J2DO zM|9+S=0l*kF!RiCPvza*L3;#kSlS>eQuqgfFP{fT0x!^!8iWj}haP|Ug?#2)eS%_s z^UU0eh8`U$o~^e~qlBh+K*N!xGCbxqbQTSXE3pUv`y*--@1ZluDQmt?NP9IKJ8?{dIw1(#L)eL!FQY$UvuNBzxE!7Y;T4B0dm zC(;|_unhvN*Ch-;ajm+&W6T|r)K)R~$2g6RO;4Fsh^%E}dSy=<8{5<^1ft1aaFMzR zig7z)0hL!SpGaWolKOt5ekG*xlfY?kt0z>P4egz*vy9eJ!EJ6J&tb)DvTSCJp|@14 zUMv#ra)sF6Qxk=gh^;%U>r(tcU1SxH`l9o--qX#k-$0uK62(QfKcE zyDDGPw*x-YpwGR;kHtEAzRG4u;nihyggXoRVI3{Js$$`jnUBTCEtq~AHc2!lI5C4n=3(^D^TPV$Y;^d79swJ$w^OrMx@539XHIFF5YLgWt`CJ;`CUMz z$jee_2J}P8yDsl!k)BiIc!iSwdgS}##ik`TECBNesf`*vILI~*$-1*BKY*>@moEh; z>4Ui%#`Fj5ulSCSg~hRFah?UpxR9r#ZvC+Oh3p)7?c#JAkZg+Eg4Tr|7>7$LAv=ld z)Q$97vII}I8yhYy5hq8FEH9yfCrT@^Nv9aE@eQj`%9Fab|FHk{I*%*fj?@7yKu+u! z^)kwwnNVAXS6$MbYxkpXPKPaz&|_t3w_lHH(2YWLzD{k6)*u6-jb(s2&}~I`^v5Y| zy+7PJ-G=Z^dOItn*q#uWV^-pqkQevvR$5<_mRmq)kq}RrR^8LX)4I+`KJ+a+ilCW% zEbnH8leQoOyUN!97u0vrZ|H1shtNlY-$;niByy&yDKRs_7|9vZLxhWBk22-xxjxEB zp*8RmeB9~w=}zo^)&01e$egJ%SwM<5ep1ewUROgPT>2*+;b*>hM7&CTlbqkTSj)Fn zd~>NVSrz(|fsl3AW8-6aSK><&A3YiI-Z#B(84W|}xOJ^-huFVZe{taQ7(ccxwymwlpPo^O$=B zbA50FXVBy`m0FxSr`C~r zG~&lq^0*aR-J{B6&%amiDDE_G+wA!Ll(M4Rc(dWYp|NrMbN^@1ONEzpFDqZVX%%Uy z6u5J9hSJc*#SiEW3v@U1T!@If1#Y1n1QQbMGPx^Xd=*lkl1wbt&+&b8_I=le_j_u& ze(1b@txRp$ZbMVymDbtZuEEr35ss2p<~CP6pweF4~7wn77Op%g)~J z$^nCi-!5~E{Fk|{k8Peq>5Nd}RJrnu=ftL6`HX1ZZD3*Nsiid+Yl_p5I0beF5=H#T zvkcD+Gb1|a3#bJ2aTCrNvu}(qi|^i<{u%07?V04+*51s{5_jBd7alq8SzDLI<)G|% zv-B0NE}5<^nIf40nI|$HGB{Coy$8L5y;HsXN*@_x7)clnl!TPjHH9a5CSFcBSQmV0 zB^h;$e7i;8NuMu&BR}=oIZbmIFnlt+Hw0pPK}16oLKIC@&bX(llHTHZd^xbhw$H}> z%Ioc7y+##A)yo?DI$sMX`{BB>sx~vpYIyZq%L&Vq`RSn~hvq3n3Z()o)~F;o|X z2Fmtp^=l7mll;_W9R`W{8G{$YO2Hw3m)??2BuL?PweEPBzV*KU5=iWpjFsHVKAQhR zc|~Q8H*ZFJCUK*ws}>TyleAt3Erl5MWo#Jl-_1&n2CY>>*1qJ2+ca&7j_MjG8B3Js z8dJ4ov=V#QUzm#Ci86@pw<)x}ZcA*7y>Y+QxZS-$z1_drx~xaReH8e38g=2>B$g%G zH0m={L6leM_L$#MWuNGxiamRcjTg!jmXj@>y(d8xOcD(5BJC3QHoa&%3d57Z6T|~6 zF{nhR=<}Z0ebZjQ=|53FEqJRA%3YKNNteg8QCX1FMc73r#%53&kX_S^FqN^D3H!U= z1YQh2-F?~;{9Q`J+;R1wJKL^pf=_8L&6&T|`>K>ghI@0UK|s^bdUJ@NdflednnHz^ zzK3C7`KlAcM!P!n)8o(lOgL4ob7XTIf|TiJ>HcM`^-f7^GVaD(MQm-h0rO!78Ug_(sddKC7dSqdvSeSktv|vZ|)#bWj2DQ?XtDRv*6C zUzDJ|U%amiG?FyzGI4V#y`E3y>ZuB>TJ*@?Bc0}+NiG4`n@xvCZq#i+_%!$;_&jxk zwRoJymujphl7H6xOw%^jM&omEG_JhtA{t35E2T8ptG9Dzg(7@}f!7%ncfzDa*u{fh z_+Fcb@0(aXXD*k>!Nt(hwr2P98Ndwy${Ww?RQs&97Q~AvE0f%l^0>YJez-S#SlwQ@ z*y7)Z+#4_+wET5@IdbWrDCR|X)Vq;p#xD%)S!i+tUF{zTrwflBS}*$faojH+-S*(1<0w$R6k!8@ zgBM(>eip-Vhj?Xe!*?2w1$N=L#-4|ROpU5-r-Xn!z$@_g+Y&_M*~!|i|1AZ__ttF? zi?^VN+D-DRNty{syU=lc-;yrs8rronrb%qe+e@AO{YdW`v~g`t4k_5_g3J+754BoS|+hmTHH?q<~9PL9rQLf!z{zupjf`24$=gO>WQSKJ){w0g>F)RI6~D{5YL z9(GPzQ4DHoY7tjUYatCOnSWP*_y(Z0b$53W;^6S|@?!VmW(T_3aJ&{26y)IK;^5+X z_3*|kHy>wrGw)Z|dRCmgTYIXV8T?T4x&ze|PG?7XcU^`z{ateo8*`Vi%Q%_AW4SB3xe z=)b%CA64J}ch%Pd{G9)@>i>B3@2Vmkzo+m&ru47%`m6L|!9+1cIR0z#MKJ;keV!sA zy+M+f64&xZhP9%lSV25y8l4N$HS=d~15dv(4Pcl$R#;gWJflj9g@3@d5c!B#M?(KY zZ}}*|IEaTf5X{9`VXuAr`qx_yf>WhwpCaN0{>8EI#3+`NOu4K zDlkQ1Bpp{*O_yLi1%~QRd?7=d)bE_k=h>r|YVtO$?n`DH2iH6=uY#v$rb#K8T{F5mKluEa zouQ6HCnv=rz?W~pr?uv7Zm=9}v+$pu0 zf{DUl-?%9L=(zm|Qd#~1N@zwbOpup3%1+p z0##-c$v*R~Q!-xpHbGCMSVSA6(fnR>g8!_4Ga46W5v6U*1f!dZmL_|fa>M$QJ3CnAIFN15DYIPR5lG77&c(`!RN>+z(ng8g7e|B!J zLw^K#RaP7@GkEL0EuE`P`|Rmt-uW^yf`SBAztZOHP^?p0T52!ZYIN`}XX&KKxOdR! z?G(+Qiq-`>xn4(iY9u{y7jXE$c@Bp_1IP+RMa}-9>sLU7h_)OkLR3WJ&bt z`CNEB@}5V$RBh?-JOok-GiI=N*qb(f1%a=$9r0vWji$F+xAaaI%35qeCiX>Z;t8{{UR&9F5d{o z$=hry8-})TYm$8C?m6qrqFlUg%SxVCh!#Sy_J@e)M+OJ^bM)g2HP;@gT8+AmDQ(cos;o zdHRoy7`9pSGuo8&N#ipuGE2<;7LWe3pTZcY?*)dB$D zee!7fusW;Oj(zH`pB%{`Bs|{*3Ko&CK}}W+HtozK(0Ru}aLg0mqLxsiU#OQgBgQwo z<&>1WKbqNQy2~1-Od6HmPx)tVYJi`jsR<@yC%4o^5T`-u%>MD&Q_$|vleF}V>fEl! zp7u3MSH40e8g|v6BB@`p`|FuJ$QQxgTLZ;R1_gPx_*SX@L8-gRR;6Jvd=n9#g~Lq7 zP)B>u#cKg7ze3dz?2eu`Kr9y49}bf7(bV@fKaU2+`e%1po%W^9Yo9d{Hz9+b7WVU3 zAYa(}?8gk307)-ZFLcHsfTA4z%FFO0%J{k>Bc4@RhI?I)4k@Tu;d|(`{pKReJWLPN z9?3MsxJk5swH|fuG0-Fo+3)}L6_ZWDo-deS;~rKQ6Fh3Dqsfezl^<9>8#Kf5AM4KGPMVq{IM(uR^r zm+H91OCP@(TiM4t_ke`QiyIifg||8D8`KW_3JE(^lr!lk$znWxh5o0K34C;5Zw3za zAm);C8SA>}c1LF#3RcZidqI(;pQdSB6xK;X-%C(3)2F&{ z5a27@asY`2i;I6-_rgkXVGqkmBAs2tB{y--p$o@KG(C-sj`6zAoa8_BM*dx`VhJ54 z{D5~_1ia&j(S6(-T;1j~n_YUoZ*4k#odLXwdNvo|A-d-|isQf@*58D&LpR;p(v9z4?C%N$8p``(uuo^zRP#MN-1THZY1&3d z)IhuyW!jf4s~uixpCW7eBb5gf4&LU#aMYi2|-|TVBOQpp+-eSc)m#m z3$f$+FOlB#-akG6x00qy=!{k9*{jCn&wtz4(>w{4+>el@$&Oqf^5)DK{!^C>^f zm7yCOU!;F6NaT&53yzgqhuznD|51;$jT!OpDeuxbKR<6MS`q z3Yw*2|7Q}-UwW8CPXrC#8UfHH+wv_+7AF>+C%$xJBuaEw)KuAz8a0@!X0@6s4zhZh zyZ4Jd_H?)W;oAi25)KBwe^)*Lkn#@G<2c2^mt>~T!t<|)$K4?#JLg)tO}woxi?y-E z!Z&fRsSiVo)c1ojZV~Nw*6tzJ-STsDX8?B}J-ljUxrZ$lZIkK#KzeW}10G!9Yq7;U z0H3fJkm@S@e2%yc!3%n{GCoy|PzK)uL!jqysE~ z6JATJMpN6aYVhsZH%@C7^oBD# zmt$E$Mb8v(v#Z~DCcta1Y2k5C{0a>NNNsd)rBLGapV@?EaVAbd00DXo1xYiI`JmZU zf?KsH^ON%E$lSyh``o3&OzEyYicgY&AlJGvqwj-pP?W=>;lRcCB-Y;?WQj8{7(~U& z4wwG67ii%}lt}D??9wSL#rLHxrAIH$B^1;?Iy=l!c9N6bJhj_+I@II)rXF7 zU)4R&jm>WWw}YJ0$(j910@?isa*934Wfb3kwdk3NMtEq}M;Bb0#vm&1)hpllHCpr# z^O=Gbu5h^}TWV>B3N<+!@1FVEb-t$P~9`#_qS~hF3rjfqWNCl;oR+= zLsV~*O@`zv@5jXuvin)LLG8f&7%E7@B5Azx`T1=mRaMqqh)Erl?~L&NLf+uw;x!-P z_1&Rw^X*jo#g>;cZbc#7DB`B~&~IT8alT}S&s7uJewTdzsr44JWZuf2Is5XaS60mW z{?6vU`gY}WmXl@s6+9WDdM9?@9TV+@IHoohJ0EPfUpk3hgfJHe5y-~QUW1PSh|rl9 zd(A8GU7|^S`*j)E(fp$H9>VYZ)4))_s{C%V-JG8(AC~NY+y^6!1(0s7irp-P1NezBNBFVp7dBK!Ralu8<3WWyxFBf#rpD+^QaKnI$r%- zZk`E;z+UB5QQ9X^L&0Ukw8P#3G{@e8J*EIO(rG`;Zq#fxYSLhDl(CQKucXs~S7F$x zyz58(=g9QOW5wm>rIVogp;qH^NWI^v@It{|-@b=4PgYkVd=KHVbWD_%krn%m?g2%O zEjkmI8P>-7t!g58oulsKaqiGS7u|3}tHE1ra6o%7DiG8sTt9Sw2fmc#qO1qrZUX1I zz+&{q6z!FHdJ-1bmG`IO*B4A;R$})Aht1NCUw!WPz1psmSVYclFcG!jomYrTlZ&~~ zFzmT8@HuGF;eII$e3o>aTpkVKe-AN`^ z#sWs`-=G)6;W917)w%ClX3z%4!R4U2oLgQKn4r?o2!tt9$jPQG3R2K4B*-^w)75Ik zF1KCt%qw?%+87&I@)OtdT8XJRgIW6}jjs%;_RQ*;G{=27-%{23ulwD^r5i18+2aJ} zmn?Ec+qiYh`cili)tOxXXs=eizv7rzy_ul0rM~=Pa^oAYo_@nhz0O=a0%aSW;W}x)TCbZ{l(V4@ZGLSxcE4mcB%4pfC;QB1W*KwRIMB zzi9%cz4#ais+iNm1O2+tQ4T#v8!gcJd>!@W@(JkR#!A?4r>M3WW4n8{B7>BoLiC(X zy|6AsO+1tNx%=zw&mxkRIQY%gUh-1uFEY}%2l)dvJrD7At94AO5%zPGq?8q(50G

        ?;d+joLmkF&|wyU$Q!90Pgog>-3X!pdNJ_cS7rho7 zxHYt{6%Dif&Crhf%XVDeq`5SmI|C$wsB6n;b#bGio zF5q%I@-q6YUmUV~dk>mioOs^!r(ieG1s(c9Osd6BzL!U=w%=ag)1?f0o-f@^j>@F! zweK~zO`u-+(%n^ssm^iSt;hB>#?^n!y05(_+VQF;At9}y%cWDVZ6D2e85KQWxYoDo z=I97>PHia`nrbdO!+%*SxU4{TXpaCxKPQ2N>_|?9{pT z02IC7W;`Ewar%~HH_1}E)cf0&I7^S>p8U}=S498loM5WHJg;WJrc)6l9iO3#K{vfm$^1NZ>%~(?YM0oj+o|%|dJ}DfcEiOj z>PjJL+!6CW$$OjL^Z6JMZ3n}kG*&2MQrVdnb?iM~k3n@RDt?%Z}>| z7P*_dd{HN(j10UPnY#5XwicF>lCt^L@u~sLp2(2+>}-RGmfa1GYO&)d<#qR$jrlMF z_Fvw)ps%y#W;eac*U?MY4dHzc$wjl(`J<>=#ALuMP`>T6)$`r4=rVFF z6c#3SJE^G-+h0QH0^z4F?(UOqu*kcV^ZVCnZllke@ivJ+1qDKF_f#Ma`GHSKUfJM0 ztM!Gln`Bkwj~Z5xX>zkCY}c=`C%rh>t9z!~q4hv`H7DD8C;aNxGT9t7yD3?_SU-KP z8<1eU4(j~w?chHaL#)x$d*KQ$^H;-+kP#*YXJOLuO!xF4H}eTvsAdQPb07O5w!>c+ zH<1w}s%QC>sei#nIiLwBonD-_6DCh6-x0<+FB-{+jUxS<%lv-^9zlvB0 zY3;v6!+sn0bR3g$|Kc_)MbK*h7_L%3S(iWdzfi$#=DM~8f3JXuz%N_tS{)pwM~SY2 zz>p| zrs*3KS%WkH57)9RgMq$L^&Y_lqGU9$I(Inc8BXe=e^Jp@!r{+f?_*U_hyTFWoJB(k zMMJZA&J;sgd4CPOS1v9ubrO6TPVL*=Tt5V{TOB`keGV;)&8Vx^-N*#^eWyu^D_Cni zyf6kqi;eAq9^bw`KlGi!39bLwyd$;=P=rjqWeo;C2a$cG<=sUDee>`2AdkGfAaA@Mkd3q#9wybS*7J;W&fyiiCRyu!>yC zTfXWF$1VF}Pxw4GRdc>q4Wt5;rWPj`j1UK2g3z-T3ziDBositu&vktjwDY4_4#xUC_n$uozurdZx^H+rt3Ya3{JrM5}dUK_hZ zX5ndSx9DBr%;zJfZn2l;hy=>Z!uw#?y09(!m0 z_Xn#zPJJxd;p9(v(B^*JZKH|4khj;&c^)z&3J<=W?gKCRuLg-(0Daf8X6ZE=MPJ+9 z@8`A?Z_Gy?;76T;qSB){>p9ojbk_35s%=T0Cx@o`BlrNnk%GeN6KD`l-e&XQ=06J5^ng zyF9sw`fsvd`eRWwE|nqJK|7N=V`cL?fDnoF_^9fQ3)(^pOT)HZREQJ%!Gr0FS!=Xn zaVmqH5SN9Xhlj;RUqMtS0tc})avcwe16E5GUuMHkC}j2_SZupKBpJ7kdP{~iwb0EL zsECeOV|j}V;ix%UI2HYRJd%0Od6R!l`OI#c3`0_ZY?~B8t?#RDf?|g=T&jNQcpmiB ztoeir`7;3NH7>h1ayWI4VSIku+SR+F;SK)Xyghk;#>w_^N%EE6`hPQ? zF!}6qDf%rZ+;k}Yt;FA?u%C$qJZwA0=MO6(Zd?2N_eX#SfNFU^IMX`ty6ZUlP5b;v?Aw%5KrMpEM)1O^*Ba*TXFsM={zF2JK`{#Vx^)%YAwV z>x+F&CaQlduVr1;++G2}lWkXnZS*kv`{jYrSug*k=2xJ|S^KzSa(Jcc`=4#cifyw^ zLc+?6bc@$O|4IKX@QwI$@LpPbo*B;dCh#T{SE=9z=dM3?{=99!JS1gx{)`M!x^#Qq zi5b#OxO9=z8Yoc-$sNbE=z$dVtdD}s>w2HxDUu@E&mCp57p z(3}{%dw{ofCDo8{5PM1-ysrG`i}OiXpx8pFUwvMjM=qK{)$}5aUDqiJgUm$U6sVN=UyzCsH|~{46z5W9r7X~s%ZG? zAy~8h!6eSVbMzs+$NCU=*b5br4Mok#=H=Jt(B&`oa9(=cc%JsgIP4rm&antK+cq(L zsvp}Vv*5pUZq?p#-GunK*HiK>q}ZLKx$VH%&@f#M9xQi!#$u)>`E@yOT~jpt1ce!95HOrux85b;jLM z9NyY|S9S1)O%6;WC6Pyn~4P%+<$`~Jm`OOf4g(h@|$zg z9Bu!_d~&;V<|)i2H2x6`&AO?=tsH8q|LE0np4FEh-#8pFpKv7Yv51KA;#1f$JkYus zFK|yr12Lxb1I=b0B|)bGBcH06H2o&^VZGxF=WMTSaj?$~Omy?L7dFBTKlFD=y^y&c zP(U5vYDwy-s;BO<_7kz8qud;d=8DgX_+FK^OL*octX{_JM8}@#Y+hz`n(@p%J!*_M z%o4rLd4H-3u%5|ff46x@T&B{H96rd1LjcI2nBG5e@Zzed;A{*WQ|RjoI~DM~#k;hlepZ#0dz`u)%3 zM=B<-GtVXh3#IhfETlm;=jk zjW4`Ef6RHIc$yH?x})s#b9{C(d4BA@BxiP@IBTMAoA*ne^W;^Q88=!nziib0Nhx{| zRjM3bLUG)=kTan*vr}%Ud9V>v9P$=H{90q~gSH&Kg#DH_kph(CTdpNyH<1(Df7@q} z)bjCg;n6Zvto^X~Xx#bg+m=Svn7=EUxU-pW3=F1xp>K>cah=c8?zVp&eU~vt9I;#n zncT(Q_N)5;@IQU<)V_;IKd`5Zwo7-fz;L2$$!18lZm~gHw<0-BIi}$IGqU!{#oJbJ z-$9~H(86H`OqCp9{#Pu8|33N;xUuCBZPAMACIqKBKXhp>$*Fi-{H*;1vS<$8 zf-H?!*y*OiAXAIiVn^bj!`K!RdF;yIt4|*`Sns-tWqlX1aGuSowjYK8Nz$%vK;V;7 z1oZGSK;ZD$Ilk)+ILmK2>^`LRQn(#7@t#uH<0bLjNo%{iXd3#Vvk8|s``|~27^WgC zV(3y4F}F23mj_RyN%EfR>VvI3@P!jl3+;B!c?w6;2&|gVcuEmWkL{y1;1|U4!|;Ah ze|F-&MrSUVidBSf^v!eK9_4-Em{3#N+<5VnsNPhpE}qe6?Y|a6p=C9hOriyOikR5U;n5{IBjkjri)pK@R*Pu68OvTQ>bzFwbaaj7 z8$sF#xCz;Ie^(~XHG+3_O9<;S(k(?cM@P%pJOl!rJ#?K-D+)oPMosK(V?++<-3YZ% zC?sADO^u96&^Z^JwkNIcYc(8RnYQ22yR_%XyRO9apOnED=e5TVIPwmjw7c#BU# zU;a#g!k!M3$<@z@KH9UzB+sTzLAQCHHMqYMB7ghM4;?GwB=>YO_9qjvPHxFAvB%V> zd2O{+348(OGCW>O#^|Z}!LxvJ9>exeSkSVy`!_&QG`>Unc6~*EE`rC0?|E@(i1-NSw zvDy9{^`=&T*w?qIw7&UT8ZyiA#1iv8{8-zdv{c^&7)wDx0j-Sgjt-YkOV51vZeX_G z#oN09+CoG`ygyzG=WIy4SdR}=am3fHnVy;*F>Y8#R67V$ri~0=M5pPLB`60*fPC2N zk|t_KcAu@y=?RjQl|a@@FrSVX*EkSp@{KR8p|VTzEzA&L)y zc_4b@x>*Qzp;rFt702AvfL(EBqp5}DV^7y1LN(|9T)5O*3Ib=EuV*=`mc}ed%57=m1r#~Ldsbsuo>miM- zE%6{89OWZ9 zBht$&zn>b4x<+38RKJ?OmeWz(`B5)4f8)PuDD$Pz(pmL$gs5ixFr*)nK1mAMuI0^V zS=28`aj@tYT+|AYL>H+*IX?ST9!Wm>Mt{OhWUKnGRJef0vR{qM=3$+mN-yqz#OVo! z4UfhMCjR{lCbTbaWM!`v5sxaHnn=-QLQ!$(BZ?p*V!pfC&7{{4jO0%B#4qTSRk`fz!~^#F$Lx!!yGT{pkxC|=cMQ*XhF49y7_BW1oT*7?{w=a?v@CAET&q@ zG0`H?-nr4Vn|7ooO-36Ii;>cEJO`7pG5kIJMq52kw$J!tCKWIgATI&`-l2b;+6FL+ zP*amr#}XyYVTjS=Ugh1 zA76Aal|YR;nHR2zZsq)!`CUi3+8bcBX^EUwn&o(cXom!Y4cCl{P;`COPeZsgki4QsfIJB7e1dKDXi(cua#UD)LYi( zD8It2_wBsE415ER|wxv_Q`9RvYaU>XRVsx6_}(=on6hPDbD&&3}OmpRB!&n+LE_x+9o* z;&z$-fQ8$60exC zoky2R^rdxCyI5j(fuok>0xH` z;atu3-%bY(Fk*DM-5j=k_s-5P+2DI)kb)@=3IQ22qxI(gz}Cq8R5;6TPKHVLs=ch+f$@s`jE>MJgmjPDiQqLn-)Ae| zJ>rTP?LDlg;Onje%FC zA@YR(@V2~cdVhtW52m9U?$e3td!t;( zTI_js!*D(1HVQe}VxK)-Fhpmm@up8Af$h~Ni@hH=zP=b-pcrN$R{jRJ+wUROW&)8< zCX3W{Kl$n)J_wx~*bBnv9g!f$y*52~x)pcNBlftW{_q(yeYF{6K$iaeqSP} zrFSZ)n{8LBwG3pmPw1`;vdG-@d5t=itk)GuETX_527Eo;;2IP^9~E$!;%>awq^*ya zKxOA2x4Ggmu`0*l{yy!i17~m1yNePY$|uT88v_1QMbH-y$rQt-EP`SGLu>zNrLWk{ zu{S86i=Ojo76sVIqWazniUPLy@0H(i^hufgUyT3%zB>TpcvSV|77jj+UCX=AxWjjU zgd$}+^B@_$zXmGa0@ua7Hk!a?Z-FLR6jT)MqnLgNG+&|ENk+^op;J!I{p{Q}PcffY z4ZCqAA<{2Khtn0EOInGNhSk~0l)_$D^A#2(fA*$5qv{=N6jx;>T%?r{SlNLSftI$~ zc%Jz^&oNq(72$ocV=oq>#f3Eq5SO`DC~PD|*q0vkuIHufMfBwp>%vYqiV?GU#Rmaj zp<)@>U9h1N+tUDu-Calfa?^TeaCI`2ZeVJUCTH7aB^)-N2;EzxbeBq6XujH#!U)?O;VJIfl^#Jm(J5Bd~@LB1GsO;+hE$ig^TB5^WHILcf*BkQq7ZR4F# zA&YV>KQLV1Yr^K&d?W0XU;EzSeY3yomGhy&H86Us_RECZ`}#h(24rw;-Z}k2B`wY$ zI@eCjv%f=sL+uy9?>2iNw7}llc%ai~*lwUsk@H+oLmj zs%6mrzon>w3FY+jHuNstR~1$6uP7QN(xb=DqlzEia0eJYS1Oo0^=PkYvA1E5h3qKm zE_|F@`mr=+76i?h-jX?_xI^5!PAzS7Jhqu~aoEG|+H(|7JXe-HJBI7{zV+Wydycub zEtA+Qo`A6;b(+9h3p;bKYE)1M=Hsvz8NSH5&JKP-arb><1Y!RIj^*w(JE;ZD6m=8D z^3C*Kr{OO+{OD7DnRdaNh;|KUCac5rZEdqY=29=JYfdp6NJ>hE5`4H|Gz*aua9F8( zlgD44kx*5cm>j5(hyPT!Om%kjZWlOPe!JKQOOMq3ZnLGd8dZZZ-icPiV>9F2;T(EONuw`)i%3CRzC6;m3F>EsIJH|IhVImd z_+{1+H|{`?^~Q|2?H??sYmL^BPxsHWOD%-HWa&bI4@on@5zf>trzAPcVphf z&$P(jv}Wn?lU5H(@yy{WedE&>1@YP$gB9A(jK571<8bJ3oF{LctiIBC^pIcjc25YQ|x}@BsPm*wn1kBL@c$1Gr5~VdIlDcsq&C4M~gUsPAHYCZ6IQ*5Ive zec=SFr{)_yjtMQtDZ)g*Q*HHdGs{q;r4qC|O| zOhU1vR>EsA*6`rKQCoiQuu6k&v=#qd`(F{wM$^8&P^f`~O%1{H_Re<4LWDzy77|x; zQF&}C$fID&VMoNoGabL%Yv1c z917ad_v1x*&TuZ1-Mu47tkrNqQ$AROYT^DGx74i^?+J;uoeQ?)MU50K$4qQLrISR( z@-fQiK9uv$90!?f63yMF7vPA670+DWr&K8A#=z8VzS1Z8-%mh_ueS=oq)yvptHBNT zB!`kBJsf1MA!@ym3O}+LbDg54W{Q3iMd!l{2NGyi`Cgj1jneqC!c&*r?Af~uOWDJa za>rL_%hFw!|n-}gxZo~v~+&GoBI(<4UI1{N8 zE^-&cw%C0U)|Hfd#|8nh7;a7atn|Ig$-#2DWnNW^_YQiiahcCjH$gt`8Z~wXdR>60P6!)0qfyULywUC{uy*5!oYGyy%0+uP?OB7F-nC(VujCUk8O+9us2%%w zEsn6J?z&9VE&NflcggP>bR?%WPn$MqRv@7qi z5e0y>kIu+sE`8L!FVm;(<7P->+sj&|^_Y_{y@kH7RM<=dvvmJMA_57_#11 zoc)YHRFY=VyQpQml=jX*KYF?6Q|7GprFMCz)Z4r(C~z0`txus#fiwVFC12=l>&xPY zc?1TAF<);M#*^y>XYcTj3j!AJzVU=JuO~{KtvdP|WvD)JTD#MLZRImL`tN>!HKa5* zbmqXv?*pATOyTxDHWT)JxHyc11@Q$X*G~}T>XKpj82h|h=lvp*^^FV7s#x$Nqz$Ld z(LEYExM#!4h;8f>-RqZIX!#(p{DgB;T?^m?roPtCw?7>6-JD#Yb|DWkc?s;GD|*1z z7oPi2@hkCFKeUOayn+#JQ`UpQritBlWg0>``FHKA(g){f&2~}Exbke{H@sFonzlxI zuXdtgTDl&j^3s?bep^d^{^mU2f_ja}gYpo~N;2tZa@0b>U6OA`&GHn|N-rj04InRr zv#lR8zc%`IoR^pXW_0FX_eFz#C=w}cD<5&aOo~s68Y*8%uX0N+p9^fyzMr)%k3Kz{ zeWRLRTi??!XYS*>f;$EOgix+oy0xeqH9YS#^1b26LFYXj~ zcQ5Yl8Xyqd?c+V)-bZH6%=x?4OlD;!x$kx9gLx_8I9nLivQG_0pNW$si5$M=B zY>m?sv(9eRr+aH#=d4;@+d2}3I&az3ImiUeXvAaEY4BZV;&*fyEqS?d4;*Frig6~c zqHe*-9dJ>v1ghQJD=-)dGWYA|)6aa_v^>Di9+JXV%pKJ~saPt(<@ zyD6y@%8=)77_OLcTWkHMXWeMd98drGID?R&+K}lgmOFv)mtX}Bp3*2Y!$9-3SbU8~ z1}*4K-Bu}dHMVS&vrBVsStx0%m%ToqpItC1JH_`=vnI|WDU{xnYYm6Ib$kIP91$4v zA%#P`V>c4YO1+2v!NkZJCCYp5+DePXtviu)PvQS>j9v(C`wd(qt zKc{6lRQJsWpiohXuv9~VV!NPRD3JPrF5D>}G`ldUn8rX-tyN48Mfj!sd_ad5{DnVN zCv)ay*@9`Cs(ZNuqhIN-VF$_1m?r{rhI8PUw8Kuz@L{tKUHjw8yq8_uf#ilK-(ciq z+(r||?p0xKB%ixSRVak`wtis@+YfA>T*Y%>opv)ery*+5W$5CuJy9E&R)t*{!{NCB~&K zIc^ef`bo(g%VOeIhA>wGvLS6W_-c_m6HTkk{K_WhLCkJSr4BDmN5C;hZ6`jS8+jc{ zBS{fwX%KGLeA?s3l{_M%1|l(O8*ATxY>*lncxVM#RSahGI!^^+;o!+$HHGw$gb5sg zu8o;5vk@|!k%&vyPV`5Cwo?J~5##!v<+$m<2*pc+D=;qJu|0EowKTWYa#-Wap@ky& zM-NJ<%3J#B#Ie$&xqVBuvMOF8x@FK;>S}6dJ9I(dCFQzhQH*S0&+(Vl&(5}%BQ;G) z7tG&QRh4x(uYbncg2+!ZtvpQDJLhxfGgI~;Qi=sb-=&RcGlg0*F9sohcapDFwrXyR)Z)8wvb^(kq=f2UfF0v0kzU61h5Vo5uAK zIXy^vs5T&}3(E>ZLoDh$XBS_rDGGsjtKog=;p8UN*7?tUXr<*0_ohon5B{Q$bH=x4 zO6Q!$PCE~1{L{R6xxc$B)Rzq;vc@!nzuXA6e>>b1stS)zAx5kgjge2&K)@R5{{g$Rxk;JM;NIAD`zXrKpR(=+Zuh6P)D#8NZfNfW9pA3DyiTOy;K4CL zUJf_>Z5zjKf8A2Ng^=}6UP4bT*7DkYmKFbQkZU`Me}yHj8iAcJ&owQ*`td3GjLEsG zxmjH3B?33uLvB&WlH0Jf)Uh<_h%ACA>vwI|%h-loJwf^8Z!Jf`RXQ6@EKTMbugAuGl^+&E<;?rG4I?O#pZpEq2_5>skBjf~FKwGy_%D zUTB$bm1^EXEg6pDwEzA~KvVyj-9|I`pE1_2n4j>N-kQ$}aNM7A$ek?zaIYURTcfbe zgDfnhgC^OU?8963+QCl+uOU{ z&`kXr#p9apzYKX$dM&{t8;BjqcG)dT|H@x*@cxIYQA+2LeR+%6UFen4a{LI>2cfe(h1b4O1258aQ9g!P$O_P9S5&UW1nwZNrsp?rhr^yY)Q{sO9K?;|Ot( zC)C0~_5^r#OJgLB3KtEfvih8DT!Hw61cYRLhyp_Kdky^Py{wq9er`R~4GIw9r#cV+%Glr=F1 z&FOU|#WIHqO5!lc?2gn-bIdpL`84;?A$u*y-ZfS3&BWx8R8&`8LUMU5cCv&f{mXc4 zuG8(%xq?75^7;(u`_y<*Jc|ydT~4Ei{kE|vc};ow7T8y_=eOItyb~ouh;IM*{R_W$o>rk*r`|QIkt?YO`b!DCFBk z90C!BEBZ?A5{%W#jjGWu>xp~CitMh{JlF|za(T6XT3(;(o^a-Fxdynn8=zxKKjSxD zO><;VxXqb%8@qgZIT4e})T3*St*Pwace=SxXe0t&+Ap=N-zjQGxtqKZZgNO>ZG|1v zT!9|)AgPU?Ij5Y7Ph?^)-1tY||5GO#qqWioOg zD{=QPDQ^m90$3m__%LRMKJygN(|?a_nlLSGO0^078S-^ySttKQwFJ6Vk#9O!7>{FU z7KYcml%3GB90JZenYMp%dYpGFKi9Ety-N39@$|WbOcP9PwIfD)U3AUhe|hGn=8i6U zV?QqilR=RZEke`}wX*H|!p7bv>CV+Je&HphUhDiiO$9>`SHVnAbl(Hcyr2Ik*==Ku zgc=zEZR&NTB@$f{MRM+-pnd4PiUuo%q@P%1D4Ntrb zS_UxxqS3p6ADb+?MY*`*wyM{k1lc=(Cch#4+2b}e^sA-NYD{;tzDVF&N@;GRhg~@4M}dRufQ6zT6*@seF=>fkTdGi{3*n{@FVT zAdp%cz!x|wam$OIHLplzw{sd^qahbJn3-GOUq@XA6*pKVQ=1$=jHQhq6^6q+ly?^K z@8dAEd2qe6uz~;yEy`Hu4D4*Z+IQy9X>`d5DkO~3WG`f@a55s1$4+kFst54ep7hhS zV-$1U`Ok{_XQRWZb=p`2CLz`}awXdJ+1Cjo#L1|3#_8_%ZUf`ZMe+T6dq$Rc0|8b? z#YOVgtt0*X@&Y#@p7(gqnC`vwB)3j0z5b$N5RNYkX(!4G>xMd>Gf9@dncZt)teaT=_DBgKIcU%%aF`Ocb^jCtgWr=q zshKcx!untgw!gVzZ>ZW`2)ImoUo~F2xIRJJa=u2|tJmq(`uxSMpT4t;k1swLFQb&_ z)!hR?gbUPqeE~apfY&E3Qy&FsbS_=AZy$|48=@?jw_DWr9~%WO5_D)3udh|ETlKYr zU!ybDf!v}=Tdpngkb5ctF7wkYH&B14^izky36nr8WN@TCWqGZB$-$n1Km1}l!0{n@ zGgk4#-2FEzw%7N|A z2jRo1si%rn%Z;k#XYTcz8*~e2ZI1Q?bs^T$7v-Xf(>ng)e}A$~GAyu0 zEG?oRca`OS`z|1(lMOmRYy3upHgr@tK`yvGhhwD0IrJISQ0;mVWz?956oiBXI8Ier z36hHChG*6Z!Vut3p0cQoqA~S-Ph6MczuCKM6P0F|(Vw)r)uo7QEj}h7vj$y!{d8`L zu99EaRtReAUfVJD?uxw)=%_#^u;r?)wHiGwdw7n#sr0&f`~HrFCT~m8Xb%^hZ+^TI zNnWH5{h4m-)j+#pX-Ok;I4Dni+la;-oa0`*`EBp2Ve_T|4FlVi;fs^txHU`Vy>>Vl z7uOJQB+zd@uNB^J*uk};JInqn8sMLA-|@$t)a2v zD&ce|Y`by4NG-L2?ZTnAVLoQOo`4@0EJ4Y!FgItcZ42{?^J*xZRS>9&Cn>XZ6$#-2 z`-O^iCgBQn2nZ2?^*Ld&v0!)*J{LSRE3Qm=&3sAFFAP$$^&h==OUuZ-`T_Q9cRDM( zZgr0Bcj6Xcbj)wIkO8XO18BYb3qVxEcQ#F}wChVW8NRaig-? zysSlC?FmD;olzI;_|s+xx49J{7nNF} z_^qY7UT8@oDvN7tM6cM?LX<-={WTl*$xp=Xb!`UHrHq6?j-wBXo!Q)LhBv*b ztB2;38swjDleyFvBCncKAjZ)H>|MvlmWX~k?uE9>QVSVJ{hq3h&tGOQ!?(%YLR@0A zMhcK+%Q@C&+dOP8*<58b|7zIZ06br)usW>;AA3G)58sN`7wr_9B-G`_to(Jf7f`qQ zhZuYP>OMx6%5XHNZo#$lVS#|@EA)s2c`BVb@8flSWf3@SZu@smd6m}&UB!OMn?P4! zLErJB)|NHAom#m;$v+K&G*zw)fYmHbTpf2-T{7Bk^o$mn0sQu(Z`@ns>Oc0sS1$MD zJU(T-)VI2b>TycQ(K+%+`gOufeTtju)0 zaCEDD7%_u7cux+z>B>ZPu0#orb{h92^RCquPHrZr^3DEESm-+AMkXs;{a0X>T>+@N!|CcAdO&80b$#l<^|G&IB=ogy4l7 z?X{^csT^^uyrNzoN(laE-r8MqvjPtLp=MlYK<+X55e2W}KZ?s%Hw;Ap8Rz>>?SS%` z$kjc4;gTPT6OJ6kPkCCY*%8*$BHz65&!+oVXMih~{PFg7Z8S~KOzM9hPo%A42xRK_vpl1R*S3j`AjmDZD!&tEOO0g^JU)S;p07F@hu{U%ga%hOLXG}Xp5T9t>& z_TSUIgrxtXfE@8AB(X3xvFh+^&NxYLP<{2cDQKYmwJb~)Bsl)Pj7Z2kb?q7bi}V^CYfbe$ zUz5#Nx~weFSsuHxe!OQUphNzGV8GeEE!cPAY8K7?38&H)IP{~=Rjzf+qUeM(dW*EI z_hjF3WGX~kWUoJxHAu5*3bQ~PF)NheOD=M<&4{jDX+=r8>0 zq>goS%+KmxIA3EtMyVKF@y8B5TmRdS(oMb>x#3iWg+*_zFJ)sb?o$P+;d5KmPG=Vv28Eie+$KiRqdzvoJD?dr3ZhS?Q zELQ)pe)0OX!Z0IvapW>?+x1k~CzS-kFZcK+ri2QdA86bTT_~}sVN@XaR1OsDOHD5B z6O&0XMbYz{I)k=JZf(A@DvcU)$`+ITXy+u}m<9r2m!Dd#rvfq6J&A}(_>KR;f3Y2M z*1rbC0G!$&k3*0^v?v0CO&-qN{silY+xq#rbF#%vBF4m0Z*=|2!*t1%&1nE z8@w|kNc^j6V|slMX5N#SV5HYb6(>97d*^*32Qkcl!+zig-&S0iKk@*=*)<=?!)!!G zrxRdXLie3bpV<40Z&gRazIK{)lI^?#pM^_-T*C2W8hysiWfBOliHx7)3fdV`dp|Ow z78<4O56m5@4444>8`Y+n?J?D5Uf+1#`i3Plq2c?&s=ZJrd#!3~mn4O}v7C^i^;u6Y zM5)h_+k&Qm4ApiBU+FGpvjG<6YIt^i!h&kL;VB0( zgX4$ofV-s&?v0@LmE++;`6c6Td~Q(@d&4e9$wkc99XBKq6{@7nRE5~9^dp2@Au}D; zd;=NbtaE%QHhDthA1PAiX`c(&ymVVwbrw7KrOF@w9HsezES#dk zYv(i8+1igQX@KXA@yyK3EenX;O^MV<+)|kxf>!Yh6^pC0V;{xe;z9CUUlY|s&$hR{ zWv(z#gY+x=7$nPTq1HlrHO>>oIgzqFyJ zf?bkRpiNr#SqSDtR@_rWmg>y_>nAyikEGab-Z_CWwqlkG*^MtJM4_$=Cd8=zxCVl|Egyh_F8~LTLN@Kw~OQx;7QSTm2}so-p)P61)xJ*r3^w^ zYRj5GR_#~dPOs1Ce5yX$h^7zx?lQNdnt|s{tgWTfkeY=piOua7rA<{I+x)C(kvQ*C z(fp6-XF{TL-KB)8y3uRLxw5olEqxB&jPsUwRKtktfa;|0fOAqua3|s$!y)&z$9uSH zIttqxzV-ES*G;AgHwSW&U29QSeB;et^^Ubm*G<9E6iOh67TvU!0&co>w<<--=SWREc`Zl4!X47=2Gc{U!`xuuvzxXX)$m4e zV?)Cut*x$mtycIWFJYZ6G{HD?A;U#@)qJH@6Pg`qUt}+Ie7W7Sekj%C+1w^)rT2@R zJ9*>uiCf&`G0&eZOJICu!sI_LfoY@d4R;CujWGV_r1|#K{R97fJ@u;)b>f`qn0K(w zIUXG|6T^KtLNa-IWzh)y!{chyxSq$cX4($A){3QI{NU;*hHS0B^O*6yRzD`@Mff33BBe5eoj)?T`IYx$ZJRU zR){~(6UA6sG;=L5d22&^YaCsEYr@jysn)_zP3*~*N99{R02yUZ5PuzJD|i6^jlM=va_43{bMn1s>JWF zsh7j{3VL6PM8B`S#Dc@plLs4<-A}#jCz1Y!Q=hg63?v91YBboB#e`lNE#lapH>HkR zXgWng^S@TGaVCoiPZc|7E<3Qs2=zgp+!W>GKX$`0&}AX~sUgM)^}AKH_n)KzA6i)9 z(_vukBr^wbhic-9kKWfSqO4mXmNde(h6sBWw?Bol-ibfcUEN-Wc zBd2DeLbrCNNPZ=^^Iiw!fNLRLVm0>Xh~Wx&R8TMHu0IW)tTvLr60-JuncuYlMX&fd zy7CJ$cSb#P4ooe0t^M6>*fyM9-S>RX61nXHdsB7uWTBT`<-I3&t3}t%Yc@{g0I2z|AKd$24^EDC z0U#$2qe(d;qFVi1mYl~rD{M}@dP$om;B9L#^m^Ur#Z+F_c8vh=_nYJ5X(vE;O~1>d zw>?^xfk8{%S}R=f&*H&)+2i?lB&<;2=T0j;CcSghweOH4yJ%%*vcB6g>%Q+gkT+58 z=EZ}oJ77Gp@1xs#Nc7;svqlyVh8Mbuy7kOL?MT^15Q(WlHnV9zAfT-BDQ-&suy zMGITC9Od|33BYI z7;9~$bfr{yt)Ba$7K}ix^0ZY}aVmq+Uf}vz63=~dt}bNRz81Y=aDrJntIML8i7|mf z$xPkwV73<0N^H5kc*}=t?`hY(nHyP?=b~8ghag&n9-wC5EqrPg?df=Xd1G^(>UjrO z+kCyt)Z`jb(vbGuFsu{DV{GBsn~T08cK*prmx%8+E&0Z^Vk~*v!wTM{)Z&cP-t3v(I>Wb? zts8VQ$K_14XYNKC^F2y>t(7^U!*`FP$19%$P1*~Zq{fJ zA3sS*7n?(?`$t0jt2y?@r3P9srQjc9Fk@57t0NBR)8bA6mds@CPpqYxl6dUzQ^%V0 z^Jb##OL?yx9T(~4iK6Xk^!vu%{5#SzD~_)^?Y!p7Rw3=X18xRM^CAXoTVGK^O$wh+ zrsLU}a&0lb^gg%ir>ye*e$8sXJt}7yxp=~LJ#44;k3b9>iKt7|RLwAMDOsMCiPYNH zCp8av4|}Mejc_RGL;7Pw?7YN>zEFe9>WU--T} zds}3Ap6;Qgjv%tJs+)&C)8+l?4 zd?q@$1`j(l7*TGIJYs+hOw>llHMgwwdaxi)kZzGiQp|%9Uk0(2B%8l^L*|dKUiSp< z0-QTq>D(&B2lb7uE9>pHW9v;ER4Lk&A&Pay_hRm64%3BVkQFTSuY~BJhH|X3CLT7+ z1*WK_JrofpGo|4J0b-SeA8xTSPPaZ1cM>=)FKa>q@Q7x=CPDdYyR0sl>ZyL6@WEAm z^G9K0;jCU4-9*|cziY1dC@bA>rXz9oZms2rKDOJu`2BlT+AIt-!{oy@IO{qAQ zSBp?)*2w+(JEoFx6uin1Up2pQo*b-YA1YvwJLvF?X4fO~%JtI^(=GYx1B}(wgo8Zb zv$3_kf8?(=VxptQ_eioFl87J4Bp(#_-LH!Oig#5_ES`9leF+!3WYWr$KbcQA`B}Qq zVr=~3yMMdze7*6f!+4~;jwgZT%lB<6@$T2|s2%~GT~`g*gQL02^Kq~Y$(%sOKapq{ zXpe1pTkxl~h|Ku|u0JiU*NJ~f-F4eK3lKMr7+|@;R`#%)^NmxoU_v!AK4LdL&@_G{ z(?C>?!F~3F6`QKanlOj@Q)b3}@@3=CwM74`nEcL!*UBS$%P@6HsAKSydX=_wqSa8~ z?CagqC~A%79Q@r+I^{6Y4*b$+GAR2_ls z23kN2X|qwCZ(*{~rDE@hEXUeU*U>=+Kqdu_9<{!g_I zcsj}gE;q=gk|3S)(~!T1=iUXnGz;OBxe5+xkLI4|t_5mV1B6`Bp#%dnt6n^8OV9D? zwIY#v`#B9*p*4~fB+VLQK-&K;%=Z%vExZzHKK>8ZGd}&z?Z1B^uvW+x|8?EPnDyiB z=K^iZsQu?Jse6qzmxY+W^&=e}dVG3Ls!t)Gq$O`4t<}}WU8O5Ne74F2=bPUMRilSrEld(giX!1=Ccoc{KFrxDYDsq z9&VEeKCiw!BzNKpCKGwHaGNB;Z=@^B91hmeJO9A$&cc#mp z-+Gs_7W=o}Tc~&NvaSM>Z2I+{dk1gM!HpEKHJVdbkTUfiQlYy|fJ9ezifr|$uf0w> zOnf7Crp~wTHU+^4TW6EJU2hdWFjPGLysSUl2`4^-Rc^b8%wz5liQwSj99?Yqz6MYT z6bF!{XPR3RC(%u@XOO?L?D=a?lQUiWku(4NYY|(;#|@HJ#%>VcH(r^(z`$Pbs3Vi$ zF+f0o(P_sA>67+jY~^)#e}9~B>@XI3IgdUWPNcUw^ncQ#==-3|q%UbIJ5MS2c+CDd z()lF)crnjt{(D@yO4>6a#U1mk1kahHmMB+P&)((Zj;d zhaIzwhc6s)C?3g3%3?~4cC!{P56jZZa0nbQs>rkNS_fhfuU&hP@flR~QNc@^c6t&X z#i+B-rQ5&&bo$2}t>K+^&FR66pqA({Fiy^d*08q{{_y9O_S>P!2jF@tr}vRs7Vqo= zW8sB9-e%u)+(cf$k8M(wLfl-h7&+ioL3Ns`_Z;3b%_U1CUk-S`(1aj%j+Nno^cX(= zAt>dsR-=IB_m^^OCmVWwKBSk*=hm}90V|Omwd67rj^PqawORa;ujFp|tx^Io&iU0E z>;BGe1XMRY|@WgMul|wINglv#wsiP*UkcQ0xg5_VX`M5Jez~$vRyR0>6$?mQC!Z^Q%&SY#Z zB22D0B&1Qqjbb+M}%J6#c>V6hDt^X_S? ztb<_OZzMpVR6QQ^Ki~%V_7jidk0=O-JtXkzXNZtw{&@btFEo#q zJ*XYOKe*~5i)wI#LgD^i7j)f!I1^hHzK;RzsplokPoD7^vp*t`3G7a~vjfu&wW`Q`!LzYD2w67eJ?%#SP>QWSLj#$hvxJ z*?i5n>pQKKcKw=;35|!cK0&7CMf>qGlE)m!CmYdsP|F?pWi;*Q6d7ZT(x4 z{z?QY8c^(*E9)1#7qGmuh8@PtK!WpnZ>{)Vw37YTI7Aj)rIO_p%e<3F_XAlb%y)wf zb&~0jQ&CIm5~ZCD<1Byj#?ciae8ziw=$CJ87r-cn z(wp^gQRm=UoP1)>6XdB*R5~4lwsA5ym{-u+cJrBW~i>ELhj&Xohp}X@;9(4 zo)N{N3P<}b{@5EW=pZ|81oK>BW%>7Oe}bpmW9CWdXaAs6xh?8K)3>P3f?(7A!23Jl zB22%Gxx^aYCEiIXPTXPkZ&hS>p=ew~Y_RWobDXeFMXczgx&pmR`!rBJQuLnGR@Rgi zJ|Bs4-#@jKGmb7UuPW19Rus#k6eXbeO-HwwvcVb>gAh%0Qm(6heON=qz*ylwZ8H>l zn2J8mix#Z$^?hGi+utv?@=3%(PE8as_;qnHrM#j-OF|+TrLL~N;i1P!j*smBN|uzoWVUDtA-OG?&c6(yPV+Tda?62Sn)*eY&BQd7>nMn`#|Jp@ec_# z-_MFQg~|APM8p%r_nkRXf?uQ^U^jV=$eSM@7aVQ(dsv#PHCCPdR^z{gqo6%5$QRn6)MOl9?=c?BdzY!>&a+Z%>2c=7_M7{UIXcEo!{Gt*n|+XiYV zhj_71C9Bl?&SL}QKEk@jMl(4Zzv_%rEA^3`cfda|7+zau8WjIzn)Lxie!*EzqjZ^{ zvdVk*w4yctnLWYBw}R!%zHjHt>SnF(i6k8HA<)Zl;df=V&&L7Vlrm>ZRLtdH?T&P^ z9IDq&PErRfr$Qv-{n;JGf&!H;8i;h}!9rznV&FVKHqLWR0NW)WrG?SStUoLNRjQX^m$ z)F@G#s7A0`f8B0B$!AmB+@CwT)9tYMrq}$fRmtDYdB~XjvLt||&S1^r{rAT=zX#!z zdTrsx6GpAH&B`k5aEpepv(S{|>Tl}feet}l(!~mrap!>jk0{vBJMK?F+sdce z_seQx0fm!K)%`yYqVw=elg9TMq;?Eu%&uvgC|hVvA~5yX ztF$%Yy|&E!V6YZ&KC3A`>dTJ5jx59Q)GR5jrWF<09zy%^U-$9vM`fza}g>eI4g9x=*$M9L(vv}eE_)9%y zxxyF8Oq%!nz7$zufLeIGiH<56kMGIDCPz51GPfUVHNQtpJhVhhgt7J#K{0f$_SS64 z#SYHyv+LANq7VG(~2kUu_ z$WN^ci3L9ay(LeI7&#>b5CAh}c=m|}e zDUsl&bk`z=A?7ro;UBnUCo!4p0&AODn;Nm*X%+;tM9Vqo{s{}2d-MGVypM}^7U2fR z7;0n<6coxaq_OfL2~_vu63cxXn7TN9HYm00&Yh3Ck7vCYYq_vqR{)LpyMAUbeGC#o z2aQT#q9ZnvjEww9T>o?&imXnj*IMs-Tz%+LGjAy#f~B;y_%+kOH*=}XNjD#j`5xp`DL|nc4M(ohp1T$Bt86&wB%+8hq_b*~m1efNvz2e=*Wf}OU6MNL z<##6`Uag7|T~W-}zX?`cEA5MBM3mj{GbN_<`{+;p62wEVgc6u<9eE-?y}4w{ERbP$+V9x=kfzNx)gA zZ>moz6yGn+AsO4Nxj8#GY`vTV;T_+PJ9mH#YwnWbNxS2gH>Z!{WCdM+MH34)ydA(m zA`Ne>e=>a6q}%SL%JXHu?T=~?j%(VCfVq-zuW~$lL&l04U*1hO!s$vCY?-J-Zlf;J zkVT%e&}r2t=Ot7pnaqvAt3&H-tSMN-+)8XG%=~XZg@wh+sA1E@C4+YaR!kYp7@Vty zu{|gDp)|5g954?@i<7-PA$lOFz@~uoodNCF^z-L@cT_!;7nn9LMr!)L`LJHQ{28GP z`0<${FDKTo>Gg&9z3SUS20Yt|uEY>(Gh7K0;;iW5;3ih0KRO}-+va7HMCCeYi0V5O zGELMd>>fX(6hDu2QYRyt7Hrr~uzDCb8{A>(6a?Sx@j{W};#P{WdCZQ<}j^CcENz4O@C>O?O5M41S0y+_8cLaTLt^@iWSO9Ou?0ZjWNsuV3^} z*W}saWJmI7`~WH)iQ~#=ABo!K&^>y=o1=Af{5n+UKXNO8FHgyIJ~x;=u#47AZ#b)~ zHJzE3$##?3SD%0)DR(~Plgkd_hK_*y^qis5Lpf{4jvtW^?WgmmP3F5u)IO5;jJyEX zL*djMwN%5QiIuF-2(%s4n zZoB4_N3d+ZCUm|nbWR5{PPkQNC=0r*a7;Yti#bc!12T+1f_sD>k4#C z-*oPhb|f&d&{#HMF@ML;gnFOJ>7Cp+aWil6FN7Q&;GD9;-nW+Cy~|9GRX{QXqKH>= znKz%rz3aX>3Ik+j*1xPXnLB~dBV453Es`@CESuU!pAFWfByfiQcGDgmdNg2L+@RI4 zvXH<2jj3Zl?$FTGLS}%?{#zrS24OTQQf3#+@>nXYC_BLU5TI&RVj~|R#nK8LN$qO5 z(fa|}zxy-1c8uB)K)a(cL~YZB_(KO);$stOchWv?H-4F>XwwKMrj6>&0`|4+HYTp? z6w7&DvjV3Z$~}MPVHkSL@U8e3LMiN8jY1Xu2wg$fmp|v>xF~eC?!=CG!})A~7=~Q- zzQr?lDzxmPsBS4?B8=el5?=wHPX1JNZ?sxZ)blm4uf;X$_=M9lu?+2AifO9GPR^}1 zoZwK{C~X*&pAgM|4JSb~BCEsZKqy7~ri?TG`FReZK13hqdq_?WnRYU~F$amWRNDRU zaG2-C5cSRZAW7>ciXZk{&hLx`Q5F>)efjaU)7ta-d7d#Rd_~XGSR<9D%ZE<9>#2ex z)RbZ|@5R#7cr10rq^!VmDD1aYH3dBUc)kLTg6DIz909t9kFkUwylY}{WzmYD8(3D; z`Ose6ouP(w6{eQv%lhvhCIz~Dzk-W&lMWs!aZ&DywSNl#L_*>2?6B8M`pz{+l0E@% zl`j=GL}e>?cU0Mf=f`s;3!cif5Vsb~ASImo3X$FXC4B<-J{ta7-rm6F`EFiU8+T0U z))?=hJsIwm-9bYj6@5n(Z}Bb=?Srg&oa_huqudw_hob<^DOT)`CzSf3#qm3|S`MwC z-^Hq;Q|iy=Iv=dNuP8_NWS|tgMLe6T$!rgCMWzSJ&!d&rS_w5Jpo~Tn7dnB1Tt@hstsN~3?#wk=PdaVOB{E}Q z?lNd;2maNRJAsZMU|YeVXqo@|Vn1M4WVnyL$?zVzg*RqAwu|Z#bK8xYaGI2{$nw5A zw2J;||58&M>zOfh$h#o>rB(9eo1ZfD4@2|v#Z@)}bI#|)=aP+`k z@;lf9z<^U{(M>w0E}Qi#b}hd!SA?_%O11!2udUAUaX?>>j<%m~zrsF%VzE13klai{ zT%!dN6T|eOV+898INfF_(bL6o?$^U^YS5wivHi6EE$>GB?xxO{vp8I%4BR0h&<9(x zArkxThs}9ApGQF_GP10Rv(b_@NZWXQda=qBEj6ohgm0BdQ`i0JAQn`-su7?urR85U zF~R&p!C=}1YzorqnY6dR%q?!yPU@nA=^JrrV#skBFl6YHk&|1FrMUaZNuW*ot-*D&!f*?lK~Td{k8EaDh*bW0KBK4{$o zgZndu9xBP>=SA`!eHq!|<3QBM^UE?g7Cl@o%4X9&YM{zOUNpKb(h zHCDkP?hNUYZmg~d+IRy-cm|lyJK$d8>s+Dq=$VTv7^M4POuX04ZGda}A?{WgZPkbV zv*7K{udx~p$dw`_(SG-0J0z(~WSR9z;Fv!^`oug7eEbsW{5X|QL4!vhgA3l!>Q>o} z&=DX=s5rA^M?xVBVZam_7rS&ke;d%Fxs@nb__kN$9)nu{-39R95Z*ru$K8Ow4}0Zo z!N0cee`p`fQNB$JefQWxNL;0w2%HrX}8T_}VL@-pLYL$c1kco;q;Dvm$! z&Nqkj#5*BkXP0DqQbDF~@qzD17zW=Kdf(1FwD+QMLQhFeHZ2Mlf(pzP4@_IvaB3Su z;*z;f!&SkxUrW%uLcTtgz-4&$;*lAzw~n*Z!JF4-n1CrQYN*b$W+gv=HO)J_%}%K1 z!b9FP!ts&Mr3@@#j7=3*jn|WnmHSLHi$=}o3(jR#q{2Or2@Q>2n7~vy)`*UB4hzq+ z${}_X<1X?kjA~=LI`;U6BttBR8TSY0IvJLyHw}fY4HY(%Y_v#9$~ceMU?qo`uo@>c z9U!Jg0o)<~_<{UH?5Me%Jsw9W@~;#zf1UIJ*?W#mdNnGdWfx;@p%RrS-vDtD?~e!d zUzxstBBGZ&!^XMJT)|T@P(m_&k@S&zC+AY3`SXL{sDge=uL>Wde(2sDC*#Z?ypBG2ZQwSxzf;y$K|*}ZsQi#j6ZtIxOVEVAA1e7~X! z%2SH;ca>L+fu&v{IR+dZgLOW%O}iFz78lhHrB6EdGQq%4y?8{j&hFv$(mp?xP-WU{ zSXj9htwGa1C|f?4TCLYgg%juBG6qP*U{zVl*xvy%^e(JfHcdEwm&RvH^a2Nh+*&iL z@hv{fTs0WUS?YtRl>Og~TQu5}O+ZnWvpjiQ$`B zdf8N3uVW(9oQB-ngc!aPjX!o`DjEm2yHF7FY)cJ3yiXcF$ov8m^p29^OKz-6fGZ&y zbeso**+YtAPcz#3Bw9vBYx_9?-;I7)>Gy=RXAtE3YxX-bB4oTjI6)#g2;!o?QOqxs zzby_NNL{H=ud#aL@avE%zvdLDbx6>|k$FwCg-Dk?6qWp-pFi!8H^??+ZANTtK9OBn z9bI;lV~F9efo7uz+)ToYl$(JptVP=DSXu~A{_?YF*-89?6L-H5b@@ORW>Q~pfA8u& zZ~^Ownar%$K(Ai0h)^SQezRh|V%qs!zSeS`xYlehG3u{5=P74$ZZwozF-O(NL8i?L zIn{26lF2Hcb417?^~D)cLn33@LVr~I3|-9%gej{t;`9}Lx0&^Phj4RKZ;L1JcmIN^ zYL0B|l&FXMs*U3h;_wtXo;7)BmT*-*6tX=*2>e0(s3KH`*&#w!&x( z%ofT(Btvum;dxqku=F&Qx8YM0mXCc8e~ zHnm_wv>D*_(a~8kc2BoU#4Gcbis_=aP`z&_Hcw%{?} z%(}c|>>_gQh#7lq*+}C(Bpm!|r<|R2$*RlKCoI~{{i&Lbf)2ag3}^ecinWldycu<3 z^fkK^FeW>f-QFIL+tYl4^=a|{vGtD8nMK{UZp?~Zv6G5zt76->ZCe%Fw%#~-_Vv{3`Z1usQS6nR(ot_D9`uFvN4~ zr)|B$ISU7>^s$g&5kQ#0tYag8f~~1Nf{~vPUwX^rx&dj*tcdS_o@<9IEyO|_Bt;CT z<;b+IsTx@LN>L{vCY?hVcIp4?G9K9#2*mY)%AC&D^fSaWUW4WhCww9AlOKIm*|H95 zVje1%GhR^h^U6I!wM-^Jlqc`^d|op5HGYZt|K6{|Q6C zoja;H2c`BQawm4da&G-YRM6S^Q#tExSDvr`y7OyxmHrc0N9-Pr8&y90`au7vKT7C0TeOYi`CVj!l$w#h`ft*0Y@rQDc%A0E&L%?EdWZtB1fX=ntKGIfr zBX%jc>?poKZ`Ygd3C5hx5EgAfAlUy8I!!>M5Y;pO5#G9pf#1yY$bsg=#ot?%P@ZeA ze4P}Adt+$f%1^4TKE@JcRYU2|a9&YPq!*WR^&ej{eE2`PZ(=-_s#@Q*cB+nlhzJnO zR?$8vu84ESzvjM{{m@%cz0<^hI|9^$b-D1rmHDB=tGa#Zz4fn@+8j9nn(f>lnxC_d zfgEJ&uTWVwphv6w$cu3tzDp6RkIagiTES;?J{xQL>1M}0Cf##$9x)#JQmAojh~_sv zx6(Ba({#*L9G_+T{-I;PH);TVIZ4_?sc@bcEAYh({p>H)<`F2a=YJB>`DCzt`n zx9M%>FfO>Txi=c~oSXBr7|K1Xr<9;;&<|%d!A=JnsCi1czMDM(wN!!A8h%*tn2@+A z^OH{AC|=9>`MsB9$aKF}-F@#Oq)>qiszy}=uZIA8Cfy#FVuc~0Ie8?^u~rT3{U_67<3_8UhOWLmDru>P)V2%(m3cFK z8`{kYcw6|hfl|@vACJ(Dav{-`jYS*M@32+%-)mE9pHKX6ovYp`G6jgn5#G=PG_2Pa)Pwqv-v_X?fag zqv+6a!<+kiYgDL>5xk^EU)5NyNPe@IBR)?)Y@9w^pn0qw+A19k&c3`vIlN!~qUAy4 zri5Q0!;}(SFQ(tfjdutUanuzWC>d~^*LRAO0QO7DqqMI4^LX32Ab6SqMg>Cfx;BLG zSxq+{cK;t7m0{7ZL_M)107~9-#pIcR-6UT#{G&!@6y@N3qcQx7nKmty*@@eXMngJQ zQ67ZBKCiaCAS3)`{T~=`upnGT57O5=U~}_7KCh=G_O@3<3JvUrW8m4eg9lZ~M9;u>W6YFz9$5*3lsC(T^ zED1(vUg?6U;$GFZb+A$COZ;r(4(hpD3k&hXBp+;7UvCMVG&>`}R!QDF>G-pey7-`K zX{`SgxzNU1qOCkqz@_31lzFY5d;?s?gmbc6My(c~*j2Y0!qVv^_lov}kf&db)6*}f zH6GuNZTXqC67bezz^3)RpZC*5)izi3&!mNC;C?$#?7!JTQ(cjkJn<<+l33D2@XAFt z!bHo72?22ZfC;*q#ig~fmpxz&U9BXI;Nr(`@S~GFF&-o_#7L(azj*z)Z}(bK=fKdu z-UZ^}xoyoDJZ_cS*$!GBfMq|<;yu6G1e4;rpBFqtrzF+;sk|+ukp;-45Vq>%@?15H zjR^{uoMalg66%?i!WL)>i))tET!48*ota0BjeIzX5t;YMR1uB}-1U~B+@*OPd3xsC ztooqYG*$^>j(YV`_Jv@nxrnue4c%WzV_RPS-J@+NLIf5_k%~B;cSkSUToC-pRRqBrM>m+0o~<0tgA9EXA_b3qoxVx;2?0r+D*)m5O_K z^ya0feU-w6Bj0lNDesLxQu-ihO7&+f2gS_rw)X4ntU1aypl_>ZnSFnI<3TN+!)vV? zuv>343jX=U!M=!5TF#y`gI7KW>GRCb&2Cmygk@4tHL%8;)i$1n{Kr5o+yGZt-q*Jq zmATvUs_QOws)0bj>wJ;YXJ!;^k+Rq(_2fwgm%mc5!C=b0Ot&#Z+%E$v76pLup}`@n zJr0eMXqdYa(Gi@s9RM4SJoe2C7T?8RMalxTm`^jve7(7-uC}MHqtLvoNF&0!(=~Td zD?RX#7`P^J7{1^8;N6aHi*^`(`j6qn@Hzfkn4;fe_UZh%Vls2SmE-p_t;VmJuFzQQ zS0AnxJ4XrQIf1-WC%kN?0@N;#a=$S$RVKM)E1qHQQ$3t;Mk`{I{INiv%0daws;+pS z*d3Z1!p6SF5cYnRI9bg~&uZWJ3)|}A8GmTQCuA&IaP5Go7W}uQdJd6A)LOgcrq2TF z#ksAjPagYdw69}Egr2uN4R80(0}eLKeN$LfW07uJldyg-UL=56y2K6TP|3l)99>V`Nb=k zi3X;XVt#<~8^?O&2p)<=hVkp?B@py7XR#+zLdU1+r(dN5df*WI%-X#w#Xc@X!Flz~QF>FTEI--3YtYxe*3 z^Zd6+yqy&W`k0`U_CHs61)z2bl)G438U-MYpE@R2*o(_;)w9&In@Ab^IJSCbn|jV< zf}XGiHUnY4igbP-xx_S$l(=i~mm&CT{4BdEIwzLj5%GbXT%O1v?94Wb5t{}*ddr?{ zlf(w@q5;KX5-_C-xa5ZyXz-Ic8>--tWb0M(S;XoX7BZ$Hi|17zFyD>ziv5Shxoq$?pcd;G1O!&vNb9oQMm$qT+)CE$N7H?Dv=zJIEnf*-`6@#MqbNt4C(5iXp zw{eDGt;v7Z1P6-R5e}np9l2gVMer>oEY!Ks_0?kAi@Ub zR{+*Ibi0t~a!;IuGn%(%dJY$-ye|giD&#KrG&8@}n1x4obYKIKZ?=BjHQDK3b9;P| zuIKwWi}7{}J&V>)kMx>D>)i*ZIuy{od?O3T3vz`w3N4}q(5qS`L4Vr9AcB<7q#SiB zKso-tIv<-aZyKP#iC{b9jnetYv!C3HXZO0hG9tY@HUWR;=n=huGbacW(5P^9rgW=| z9;a6tTvoO}h^5`bV0sTm|7h)PCEuB$)<8ZpEKO|fcimA9Bm0sUe#v_l!hWp8;@Y`L z36Exv^iYnUMOSw;RF=;~e^SIJZ83SbC!=xC@LA9O4|#s!&UhW(*tFeX8b#pdymzk< zXt;%86xQ_5mnmNqJ)aD1Ox9PoX4lac;N!MHanA>!F|BmTUc~>iO3&sTFM2|ssJkTe z)PLH+9Z!LKe9_>CFViUwcCeX`NY1znDISv9n;-Hjl=__%r3rg-%cta+Xdo)J!t)ve z(!f%CCmyBGWs)d*(Q00(c7%~wNaEOlny6m4y-f($Zy;F07Hw(ydv%MW81yj`8+yj2 zv!mg_(&Kq{Zp;_t>ob_~M9}woE$xqJo$t}1t7Qp+186XmEDg&q4J?OTefoxb6~Y4OLi7Qaj3GmYA%i0h0H?xYo~SV`wrx``At-$DzhkK zVesp-bL+3ych&^IgOWfmoD9g^#)@4JgKYcNcfB**A(sNW%5r9NRqwvlcG{1QQmWB< z^RdubwHN84C7J70ilAV3+SrJfyl}&y!x$b&FY<&TCE+#C(2^FU02X<}z-#qq_AePX zVsLoZOEEkEE%%J9ZwN1PXN(*L68xfG?^Ab(^3iUt%+2&Y(i-QB1MQ=wjm}KjHF?4) z*+vb2R@`l2M-1yEQ4B(WLiYU^7EVY(46S$o4)q*n`lZ;nQ2=I=lOELsrA0QTTO+fL zO!ioMw(WiU6a4MHN&aGH&XP&xQj=aAFfqi%^e>87RwkID05%(bCPYaBS-;)8R{}Y^ z9O}~E|0CnW{_BvzMk6Nq>%;#huX7vOu%2R|_~^`yQJ1G%Sb^bRAVYe<-#1m)R#VAc z|5yDlnWO--?+C^P|5B#5HKC1UqMy;c$7{GdRZ1W`^H^a0G)eb+>*M#y8$D0GmwavZ z@`M8Q8|RtbPm64CNqHah9rV&w?atyU$_9=H%kG^laRXnNxCYM`B*3OHr ze7ETRo&=`H=>SVkv`y6z%oGFyEuHRH%UG>;Yt^(FI{0VJ{!d6iYkS`_@QTu&{Oys} zz~6b(<5j1}hagBWh8{)h6IyhLkFIN`v3sOiCcD|5iXR&T|0J`N3IFcqE8g*-vv5=j zJc@SJA$`y|?jAx!hWmguUCN=sQ`mr}+uBNbf9)31-rs9>4lf)oa$kk7dFY|Bw4`@5 z{1(#V-=Q?jtLpaRd;qG1#{OZGa_*D!?vb@5R(QUR8%{usWviKtm`oSlde{Z@;l;d= z{Fwb29#S>ZNYbRWWb|@a+gJ~wp)A(p;im`6@Ufd}$g0^?Q;>5poa{7m{7{aK6ZM82T zB=|6G@jN>G)STkTbVqh^l1!z6=I{=RW|@((%M8&lkUVE7eDz()W^wH~yj-LMF=;llQ!F>!V`iy+2-JZ)VmrvIEAS9O|raBF3T zn%msCc+>CsZEG&Ol1eCwU?G||a9VhTI=vaH02kZ$L2ksfKYZJ?D7KLZ zM7M4ttGwX|4|Eofr1m*s~vS;h|0p)S+`&8ZZcqV(Wg%fIa9$? z)llwA?%Ip5R^9`JQyCo{;r`=`zf1*eJgHY!$T=b#f>INg)pD*&_Y8FL zPopM@v~Z(bf3_61DO&n<{&V%ZqXR*zM74BypwQENElJ#{u=dVZaq+iUZ-(_P*5}2l zzG5b$v0BRAJfFmT==*=Rx}AM0Pav?`jgnwwwVs25&evY@M4Dn_g*m@l<0Wt7jv{1| z(>hw_F97d$YJK0&2hyV>rY@MR5F;$ajrBrW*N$O*ARJ91lvU zaRhR;9eO=K)3VqF`NAQ+Oh98Z5BtW>rDC=8XgRJM?*Rk$>FmKV57*Pa(vnE#O@5xxF`1pUJOVR{Zc`xT94Z#*}19+Y1qJy z++Ri9e3SkCkcJc%cib-#BKG}rmShnjak<;eOdhg zPxOG7=7>tAaW!-S=SP|8JM2?GwSE5|okaa=RPsSZQlsyCDR#W&Ud6&hE zB(Oc(8-aavIZ7_>_yGUn?&b~p7`;1|i0sKK?~?mxbAi_c-JgktD(#XtkRLBo{&sW9 zEVV9acRZ87tQ@bABt|XmX;*nfIv)>1W13x}(iBFE57naF-0emP=z>Rk%cnlsg5(W$ zI3;psS_b%iVODDI?)|9c!^1)GY|Na)c5ieFv2WY%tv@WpD0Rkx!JA zz>D7M$#ww;NP;m1M0ATj>3_Js=$38QQI(OtZj;}Xl-UZFt}#+7g9`;^6eMI1l=$Ay z+}&x!0`&#Z%ldAQFNHlw9f@~h+M5||bz7TyZJ$!_7S;Xp7@5Sua@2*=Ji>tBL7q)s zY}WETiOLA*b^u3ZY=wM=mPS*&y+C8hLvN8Ttcc8+%oWipl8A7pP=&d*->TLlJDEnW zCP1pB>8xL`$kuFrQX5Jqy&NKVvS#R7!He%+=vhjM!S^xs%rl&!1c{9o1npxcZg*}r zKhp+C#l7fR_-dY9a+L~Enh$7RTX4!KHPA9>^tV6q=tPliio!yYiPUBTBWwLv3!5=TsBP@g_2;*6q9Zl3&eW zE#sl70CEj)t!C<)bbtIbBGEw6TOwl&q)>q}HuvHCv;6{W6JLZd6DUTnw_t}t!z%8( znHV#EoJ@%}qO#LWt=t?GKXwGcOWtz4=-nlGda27g(3geaF? zMuVi78;J?>0~S;w=;{OC)v8^rO1s0n#@XLG_**4g)IvwA2_Y1vd%@4RTv;ei=@~X- z8jR>mlbbfLB}03KgtEuPg%L9d4H6<4fk-!pAhO%+I*Dnw5Hky6V`DS5wzk&u2hgnk zIDXoWkliC+XiPd%hBMdsx*_vx)c@ z@q4WY`TPK(%Iz>Rs=Rt1%C{S5Q*V&id8a=>L56WDD5jC&)9##dTV~6$89{9&&*;Xn zwmG0hT9J0k@&xgq7!D90Fj1U*+6^eo8fQqjhlybx?FBwXGY`{DeG4`|MPSjoJRch8 zcyd5u8eAYueJY?iCDyqVFw*|0(`NC*#A~DnFj=RCX5uAXA1s(MU5;jkRJV^$OstHL z1Nah$Z^MxYR|bE{-^C{SNWzg19d>5H;N_u>m%UKXhlu>&gDzgvS%Cd=Kk4 zQ)L3Yktok+2GPd$G0#s*)HFGkTL@d@SGG&CGF2AG5(mTRq^w_Oce`GLEwR$u{I7C1 zfM30-gZUqi9(Ar4bQ;=bOX8bv;8oTMC6s;LRge9Hv4@b(PFcgaqu3BC!fTxNuP()W zBcWDh69eO2l%>~l5B39mwm)eYmdQ1vPN&y{8$9$<%_z)|R7>eZKpG^#LKrnk*(MJW zV)XB zfAjb$s!{*^F4=C8wB~8xa3!h#Am-z_EPPUSk1R`sMsFdt^VlE<9kNY}ib!|T%I@1p zrONX6yeXW$>vp~zBDCiB6`~au=np_5U|1m*R!B+cZ#x_J6(xvDlG4e(+GI;ghio>j z&}HRjHB-XVw4`GM*J-Ez!Gz7eRoOPb!35@h{=7joR_n>zC+r#Vin`h3d3qi%dJR8L zN7Gvz9+{vidR%;t@I8x_Hk!7%@gz02sSDA8_Tu)P3=gw@n9gLWir3I<#eh{Y&@7Pn z7?d3{rPZHn3lA9Vc)i=Hp@%j6u@>5=_qILZXdY$OFr`D%TC!r*eRz-(kkGLtODh<1 zn|+Cbz|{Fn&?NnigT#}?B808-{PQANA%fO;o&(8}v~EqyootA~>-hXEO>n+GErJ~} z6Z%!#M${R9mHzIPs$6LvjAgRP;;*agtj6|Ju`W0`f^J+WRlgC!>W@y^0!*Kit-Di7 za;pkRhJZ6@S&9$7o5`_+9+6V^_A_UpTlJH9{xjbi^5x=;g7)R=38>hDe~f;)uF|V* zjF_)`&icr=4)gG7(=@5%x2rO=Hq!O7xaAM1v$LPcbKt&xwWo=<;j2zWapP~a+trZ# zbmn>RKp2k@7GR!B{7(EpPb(;KD%%V&{rYGT%civ6%Jo#6!4+YxWRmzy=_}XL21Aa` zei4e#*nrM54?_Q4Pg-lfNIB`&?0nlZZ%A*Jz*wscIM>QFNd?|&P#mtLry42t->t1a zQ~M&#kHzog;vTQ-dB2+zTg|=`fY1d~{gWbU`n9JtHVsOM^{mGzXNEd%*_7QhuaP(| zAT^=hXd^0?eZBcRL0V_o+4)g9%W{!(#(9I=YuE>|RePLkvj3d~5C?OV09o;hJU~dR z{+lLs>ZqepXa8rVie`%8*gwT+l(ij1TSagisU|{E!b@wyc=X%thV!)PP=5grt{-y3 zf8d%>rlNrv-0J)|4=dkh`PKXpZspt?;ezN!uu@%%GEdsdnJ*&FhROy^4V=0P`M^s7 zqNr;{VI3-6k6NHOXVpi%SNyk4C)urlPn3@BNmSMR6vBbCc;H%gyvfuRe4v!uN(I z!oNm@lp}^FH41gY?AY6#PHS2cAB*$8x>zK89}OD#H8oQAu|*YI_#$Uz9Gc`%?ATY+&WK$+Oi1_oi0j zyl+BCQ>qPXDMKjm?B~R-{xoM^GDU&C}e@wupV0dy;F&VHnZo2_#JJ{$_*Y6uJwEpU5I&lFBV;Q6 zPmgpfZ%L7H!QaIdHRi9$QcZWgnQf=%+4PO6w{_V={DWrrvw}k}s2+*mPJ_-krj4}s zL)LEV8hzALVa1r6cBf5`?x-p$nyacF)Au2RS5%;OI6tjsqs)aF!IioX>6x9Zy2gnQ z$@$`V5&RH-J3nD(Z?^bS_n}^0($&{)tOe@bDBoKUW_{S_NLti+i`YU{p^5|>%gK97 z0Yr}Sd!8;k7im5*)?><& z-;gzx`?bQBjuum2m?;zPp-!cGNKK|GX)3`HQYQ)W@z(8L6x+NzS6Wy1=pFxZb=TEU z@5Suen<-B z?CGf~b4Z?{vS#jFd@M4&VX|0|g4YEs2fZ#z-T-*?@Qz!B8^QT#cR2DRoEwxQv4P&* zBV!c)4H3F<$A9|rZP`?eLQssqW>y^XI|48uFtkh+!KaCJNP9%@3PFk;!qq{T`mu5y zQg*s-Lw_jjf2|t{3g1${$gDp%aJMew5dP+kl)9he7K9NAyhJ3_qzq7{#Qu=~8)EXD zfCvq!IrY(YIsU=YTS)6ZPFvg73?;y*qV;1Nc}dz)a;D9Y05WncHH_Q)=#<=By=Nel zeDsfNq$Yk%x9qQ^-|C{{_auy7=wiz>g*g}*l0m6@^Fwg~;M)YUJ{>&VU3V1r>kd5t zEy{kh@Pna1t{eJ@z;BK$V**NCA8o~{5g6SY+BYfWe`U$B>X89lRO4>WQoxlr&S6 z+onCeVK_D@)?P-VQ>KTmrOS}Z@})F}#EEF}$^?sp1iy|FT7VtmIV!pwnGqN)6o~Qb zR{%`5S3lCBBm`J}8xsZHT~A`z$JdSg*Ld#uhT_y9sJWxCTw{Y@ zk|1&YQNp)NfBFe~rQpWI$iJhE`}zh7$`+%~5hF_2P?&&WM=DkB>L0{LiS2@VK=6?h zVh8;uqY8R6DMdyClo3k2)LL}yv0fhBe8JHA^7S8Ix1+!hq_45O7n6sc7xk}-2RG@v z*7V6}nV$fSTObF0T%6Q<$+NMZoHRyCo){H94RPe#)8$%q2$_ZR)74h1rDj_1Pf%fn z%~WTtF6-xX?G=Fc6QP#(R{p}j+kx@h7Cx0{=%>r&q%wJ1Lqj3>DmEr3$*L|EcJ^g; zc%xcilR=TX-+?fe^NKhu%*1LAkN(PBWVjX;t+)5qJea348aH<2AEO@Mv(#8U?B>fe zLQVH7ndeB%C$fAY{Lm^35f{O{!4Fl}X(jQ}z(DWz0vW>4fYGVlES|Be$WI8TwU)Xer(o8Sy;0NaCG{f` z?l=I50z!~yS@#q{ot@@q(-gT1mW)_SrO!4Z)E$wFk~d0-2R z{H06;lbr-uE!IWs4gBNgLo_{aAVpZu*Lm(nMtZ~6y4U&YuK)EX0@7R+LPTgC!Riqb zg{=@6h6R7X%H!MB7U1ht;InKsMx!#^nIbS#{CsdXZ?k0vKO<%}1NnPQRPc zU`Yb{JcxG4g?&lezRDoY4Gs|abYYDT^(k@@h8LDc0&py>#ogn5L zIfI5Y-4oSxz=M{Ci!F<7^go-?j)2K{MHT?oc ziLIHtYF5O&rbZc?LfLBpLhxsPD*q0vL+(#t4zrI12`GQw_qb&c3PcJ+7yb!Jwggo9 ze~Pp){}Bcc3}3-93;17B)8<-WXkT8hgtm6(8~o=zhF|BmS1axkTaA5jdbSZ#g4(PQ zA0AudEmfmJYg9WWaA8_{@xe*#;n6{E7OsY9I8cUwFNwhAw$gHPfy|ORdyMoNW_D1V zx`yK;Fu&U;Syj{`pUD5K+X}tIADx@R7{4D|Bil)66pEZ(v)j7NL5IEvZ#%)?X_yYL z7Ad|V-}Bp|5}DYxEKOT?#x`EFI!|5NeO5el&lp?*pYXA2J0D)YESu#0jIZ8j{L8qu zWnq`41W8*fg{||*NdwP|V?{aTf62cS3@Fzw%Ng?&O&weZ5keaRBda4C{Df^sMUbYE zOKwsn!`ro9r4}NtEAvK` zr&qmQb)h|&*<|y;eiUPbPFoD%Xp;16O}&qX9iE6y5O-D=i7aZMBX*E$vGkRQ7^Cm&)J?H$EjTbQo$nPa-hQka{3ps4QYwGb|e5qgIQe{7wo{wpil~ zVMN(CoP~aSugGrgQi^ywj9M{#b@_5bdz2RLc6zUifcR&VM<}w^V=N z>9l^;rZUs1|M#*77q$U>)Cc_|#>&~G)fD_t9M!O~zPv0JIP9929eZMrySZu6>9buCWGS3HW9yJ*dAXnWXN`IzUc?kAuw0iipuJimv5zTZpeBiYmWFs^+RlF1<3 z5rZ_&u9qI1v^TWv^DWyM?$3sg7IB)0vLHSuH#=&3Rkhp^OZs_P1()o>QCqFIu4g^= zqZ(av`6dmjel^j%%js;Zl5P!uQLZjvmC$u7^ELTa6 zsB)r~r=JT%-WE=<44#$?UhO$&I;*Y_d#AWf%7-u~#mRvc3xrK#uIUJK=m4>alc!D@ zYBz-&vbI3gFIb%zzYRk`a)~T!kw4Nva67xHu8ESEdpcF^0c{@@xj^RR%=0vaUPra- zBi?rKmxN2p9I_5m2z(QEt|SPgM?F~H3n&s$OyRD}NOY1wo*Zy`@%3)fH!t==@*G4L zX}jwXp1SEOs$sOpa=(&{)bD$R@~&0{Q|7b?c8=491)6YR*&3RTnzgRkP_tOA+3qQw zn5sics@oI*gfETB`g8+pyA7-q>5#?yKKvc-LX4GqivPCR#}+M9=P*F9RlW1lnc3pQbL<1v7(K%JJQz>>|4peUre`{wzxd|N#VISkNg0K(`fh8l$_8mNS z{~r}Qm(rMqXN~w z1!3*N!{k%Qyq<)1BBQSD2rs${hu2W%2MSsQ(yAoU?Fp3C-+A<_Il9p1VyN6*d{ z7ijz#F`d?0D!hm-&dgJZX{=fX^|$-EZzSi``uKlSEyNI53M5ct@1boPP6N#4$H7=R z;~uGh?T|D@fETf1D@aYwA=xuc%(m9;^f~72SE=pFLt7x3A){Dli*g2r-dq@jAKGIa z_>|HTyN2Zi7mR*F7lKHkGH$Cv5M?62u6y^C2ReU5wv}MnN+cD&Tyoepd{1}JyN_m1 zE8|*dHX8*ac9bkQN#DR}i4xgXYF5o*yGro6R*>#5t*xE8LW4^*kzpH}fNK4CMFN7La`r+D0*Y`ugsDk(ZZton8->OI&DxY6>b^_9!VVL&hrmCff|Y z)kSYVTd^OQ@&^Jop&b-V)PD{^X}bVv=ErJW@O*u+NQ}aYLx7RZTzc7I6~b3Gjz~*Q z+5DbX?bXsZ)6wd=3C#ZtSN6OQjkFL|%*in^#9GV_xaW~ktEQnpwjjgdQSu}ZSbI~_ zi=w{%peUW$8H+b0AtvRUK01r_ag9%kz&@(JENLl(=%W!Z9Lr(A^jx}X&z7i)sES;- z#3`q_E77Bm$iSxoxgUx*H^2CLdD(hX$VO|Lt_QkCXk!1HI4&=y|)5OFjfsUASw}N@i68_e)I7NyO<^i7R_SjA$^ z@f=>F`5^akR;6I4Qm{8GUYl4h@OQiF$7tbnz6{6atLoly*AHYvBkPFN=Vm~AcbdqN zGzts<6aZSEoLiC(vXBe4bSAN|lhR1En`wR^lV_%@YOoLgJ=zBHWcu` z9dDe`|LJaPu|z66yoi32@6N^o7?>2HluCryl$w|x&GD=XzU&6_U`r7jiM7|Y#jCJ$p^8}K9}3Zq3;eQ{#N4dlhg!cJU7MCJ+R@^+$FA<>tY z-NSw{zltyv+}=Kx$neQ;_$JgmiW0U}@yEr^HfgwXlE}A-X2xYLQ9?XT6_k#uUO3{P zP|*l#Bd3xt0&a*7r*}Jsi4Hqf(@(J#1kl(afB$7mQ1*-W_L(dTywi9N*)!ip`%oE> zkPl^KtrvU#&7p8KQ~&MDM|8ZF{^5`P`ETkD0*a3#!Y<2%-%UBl(w#kb_54-Ya!4cX zpRuOoFO!Q{VDuvC1aA%M{@H9tsD?#*U!sIb+XK5Ja!BT;RUk_$s397A#1d<`W@^5r zoUluBQLd~ELBH4&Y5mFOD!(zBbb;2wq&GR634-Dm0a~n2) zsU%*ac@b;rSVyshFi<1a0*%(U5pVyeoli48C)<_59(MV3d4JqdZOGM7+0~Czn}y*`MUGbQ;}GvMMn< zWe(rN5=_RP^{i)aFt5GuVUCrGxU+a6q3wzhJHF)4nDoEnZ*bSA{gAgAOrlOZgH9|L z$uL*jBzmAczw^6zK<3#|v6GLnVPJOMime5*TY62DKt7O?=_)KXM z$N}byTd}C~Dy%i3%`ffbW8UAt1LfSa^zra|tiSU~ioD1_X5Yj5|KUTIL6`5KjvZJx zkZn-4jdL6}R5dEq(+-hlW%7I=PD;Li}5FQhkDl~S+LpI$iUY}t|l z{$Ks0=l;`v8bFV%yX6j*WQKkmfs&{HPl1gNz9ssD_epb!14Yv^L-~JWD*rb*ffzf& zTjso~;Q{?IDA@EZXmVsFe!nZboAFtA`RUdiiSTh$c)gwh>*)yb->;QEc>Qf-FJ=K6 zw#N;6+6Gec6hFbg<~g9O7E|4dF_Rgws<5bMePS8k6H2U5J~tJ>ZL*BAKQS<~V< z)dD|U9#SAEDxWy`_R#28hn?475L>2u<6N>HGg~PLmXqrItdpLAfDGs-8)Mg#kmS+4 zGy=(y?8gRob+gbbsJGkJyw#j=Gy(%rFqDt9uxiOsNoROvx1&eh9HfPn#n#lCi#LIW zPx!QA6Z^41xMtz*T(7s*A2D#p55InHzq2+qTV3G7v$wTU`w=kZ>vx;k4j3<%_^gFV z)Ui5=0PW-sFaHr$5P z4Z`_IT7OJb;f0Qf-KHKl;D=wN%9?!k(^-id5E@^T)Wmj@7+J)W@YY^&$o4@$!^+Guq5TFfXAi@x+9q9I5QY%|J$$+&rt~Y#<1n=1i zlOh83&%Ac}!jOZI;M@?XK-XMSQ$?Om?lqLSjnS^_e=kH}XfQTA3S|E>xQ{E-dfv$2 zb&LB51bm=1*fkUTYh*P!PA)DJ`^OM3&df`AW!_b}*G8!!C&RX5XFx#|$_c1uSul1y z@%*WcL2nOqARr~@xW_W}w6N-mCZ}BJe~LJ|)suG6Mo2&#);k?kea+$MqWQ3KZ@K0M z?$fBDZ0A{|nWl~gYW0~4w$H=6pTBL^M)@plEU}y*XRMSk8)f0iU^=mVv3FX5I#2g+)jk^930>?dC+qAhZut1y-GiL`BY#{3)@rDa#37kx93x zJ?kJwv@@oI;a$J-#)$RaBSk)rJt*>u?oj7nzy0xTUCJDFMMaCxVxu89V9c@O#y2RK4MaSXTydASRpQMvk=gLvr84E$p_p|AFj=Z#18ujhu3sjt_s7TmqG^SrM) zfkywEt9Jl89i?m>BZGl!X(4qQP+b7xl^R9y#QFY6&X?)ZF`Nr-xc8W(Xu64d5P55y z$JRk4hFJX@cp&e8?aj{4Z1nY}|K7}kge2K}Fpy>ccXTx1ST$W)<0@LnjV{GajY{@5 z$go7j>}V4YpZNs5zUS*@Yq@T|m3}N}tccP`CK+V*?{&n-KGNqj|NAxg5-0D?bAs>t z4Z}s>z{simDY+s2PUQoB*4sM}!W)o|>@4GL-3fs0F}L6JnXCOR0&?-x_wn|4!|?U} zU1vB&p0E#f@-@rn8z=o=7Jy+-I}a(s2bZ^StR!TOQYfouPQ2b=%a5zkil77h{a}) z-@nZ^C&kh;ujV$vTMidpe*Vflv+pDq-j<5GPdU(siZ zKVkIPtS{?nXz&jNVi|-xajJqd3~KWb0?PE3v6KzkAF5F z|2ltK5z!P~`Py&Q3$s?Q^?-S09Hu^$8A%x%C?_yDACDwRBfEY|IridaFl)ukC=m@{ zbmV`MTGhPw#=ink9wOP`9X1bZBw}LZy@Rv6wnyD4V={CpwwU;6C+J~zI5`NQ4fZ#!>|5ahDs(p6bntr4(V(XOnh3{t`O zyQ8Vv<6}}q>@RDdDQDQse&e3rQmB87WqZ`)cm3~e$<^h20PmegKI>k4{G7s#;wS5mQsrIQ?wOTnIIgt7fftHf3^TUxYHqZ&3Wv7IIVwySs^eL!}? z6IpL1Fb{$cv+!${WRoK-+HX_rl>!LZ*xzifu<3NM%+hZ%x+*o}}krjZ> zw(KqN{A7FjiIutbLD<6SySDkh<8Pa0r{k^wr^)m|3PJR3wH;$5_(C60rXQjCL*cQj zJL=&RgH_7bYU$MX$^KAggH0k6Map}_htM62l)Kb?8S{a5A0iM<>N;au#@ib=mviaJ zFbvMQc@LqNbY#WJr`wmRSXP?>xWH%u6wu8rwR3AyPj|^$uZU~Ls-{)2(|TYKn@n-b zenbZZPOg~@XFsfrstEo+AntrQ7E#e_{U8!VPVJdFz6Ou3CQXe9MGalsUQx$VX zm=wLFi|VfiXQF}iLo%Qt$BoLv2w!cO>y#@soK>2>59yA_pj20wrMhPc85ubzze`Aa zCKLSlTFkJcB(PGLkzK|Qe+W~7KKPISqSs`_QU!yq$5yS^HckGmPVK)$6N zczV{v4Qv1O{jfQFtb0)LRmgDPEbYeOs*jv%MCN6*LM$i_jh%K*ZX?~<;zMKLD;CzQ zaUC4ij^YbR_Kt{`?Eeq{ePS@6j;|*}tgd1nepOyCHNf3nqAE6miSd7!gts|=)W?tH zvL9t@xSIP%At*gJEu)#+r|_{rP-eGEMGk!&?9Ik*jqjR;kQSHb6kn2z%7V1MbPg~2f zR>BK4ja+NFzAvz?W3aZ4XQ{6@_cD-I^_%pd(b(l@j0z?YNWch7G0maj;AZ&!&hB=S z*!|QOzBu7m-0yq)a>V{&(Vw}NY1;6b`4Fe)MB%KCIu=%Iooc7?CbU>G@B zq3uST)H*Y^$Nqk}#_o29Z;eXZScZK1+j}Fsw?6{0=cmA9&V~`kV#iR-y6Z`lYrHNX zdvuBUJ*9cQ+g4USltEKTpU`{ck>`z1U=qQ2vv2REmK*2#j{MPm$2g#MZ}&i2X_8tR z_EscP<-k)6rj?-pKiPP(vk@1)zzlMVKk9S2jGXQmE$n$(9KJ~TN4HG zbNA{~j`v@X{&!l(V(9;3>MWw-0Jbd}+}*W92ol^O(73z1L$KiP?!iKEcMIP*ICC!O<7!z2am)Z@@8co>@?}8dk5J!TZ z9}5!eM6W)K<4K^01I@-B2l;(5fy4B0r%CN0v`54}JsdCnYyf~|33DmFn&g~Zzqd7U zQ|<^OS)e5!hrhg2>YfA~KVYqONG-z>_K{a;r_Y7x4E)&m{KZmZqd$^&@84dNt?Ghv zvbmVy3H>?7i_ivm{sdZSO_X4+i|>^I*MD>D@C8;D?+aBpD{VX~5A2W4V#z=?!&1~w zl*674PPYg9S)AI*EvA~_1)CqGW5>KtHr-HW$$iG6QIo;*2#EfCDsLKzSLf(id(nT_ z&LS*m>C^SG<(?V0tLMKHcH|jQ7oqx>I;p_K3rXCSxt=lWxR-l$yV&g_Ke~NbNE@q( z2>I5DeAV$oFPS4_ZqF~t3ObB#`pb$)YF2nrFN`n5Ht~;$&H)+&J@dYmV)Hkqy>Ez$`Siy<(h*&fw|lOCrXmbeEhbs>1Y`K0YUtC8rlddke_2;v`8{H0 zUQ%w1qd+W#vS8kUV4QzUS!R9Q@EUl}`5^0%f53<)cYH&Yw%ovH{K{n-Z2PD9 zWVL?yWP+=H{&T%GBk_kny^4GftPr0t;$~kc%H4vl{c<~`%X-HoSwa_h`%BHdLXyy7 z;m6ZK8MP6j94y+M?c}&D;mgD1b@F%{8aldH8zrd8>lMuTq4}DMMnaWyXQ6%CWNP7d zU#VO2+-jMIV7~L^Mq(M_NrD`2><_aN?p*Vx)T7F{WD1dXu zpnEe+ew$n={SKk})9im;zOj^oLB2duzH?U(cx$tU_}lT? ziDqHaTYjT#DLwDzC-+3|WFkR5AB>w)`mC};sz=f%1W!-mtKHZ;FZ@5^;CxU(x^e1u zMoEcJ$2(Q<;()l%C#ES!sBrw*qfl|yJEJYJ=o2~;Uxn63(g8}3Vnb6XktIXlx1@%@ z8ws~@P|pd15AnCw6s`wbl-@vgNRVwM_K(c?;sCG4&aOaVYh1K~<;7vEzamoyM?t?e zXoE|Yi(ytyRdOmgahp%iZ5c!vBH@dW+*}8r*PHFS%mg1V}Nl`7+iiXfZLyKJ$^`< zndeu#b=BD6jq(+N^s$>t}fInmvQI zeIai!NM`@Oh?a-cGwCVofX+{E$}UC3O`+vCPUKEv<#-3GHwN#Z@A6108&4$)A0rJBiw zjQI`MdNC$BiKaC#P6ZFi_N8VT{aBV=Bg3x$KI5@E*YSk4{+7pbr%1yjihCgM5;%Fs zF7K=4D?MY&i%zCqD9YM-Tdi|lYukY~PhmDtYwdM4+H~I6xS;5Oq4Q<)>!AEC(V1)O zWp207<@GQ?O%-tYUVpzXm~63Zyis{WcW_)a*=kWtGgZ92cdlZf4W?pD`}`vw7cD*n zP8%8(3LbTZGfdT)6Bt!`Dtrr%Tc6k~bTM8Mqy?=te|6i@MX87oLO@4oYgD&0I zwqnuSLV1XW?*{i8r1K!#+m81>WUvWpVT)H0u6%%s?NVUbO>g=+Z>s&o_}-Us%ZPWr zNa7XF%h3vmfg6_yl{_%Fh2jcXSiO z%%73X>urOu>uY1~dz2;#;u*zGxlqdsN9vUCc-R-mrNuu~H9vH&yYo^Dqg_KgIDgKX z6D*G6F9duwjB19eoG@uMj+W<360}efnDtJ)#+8W2Xo`b2ugv4kah0pu1T~3lu&_7( zsiLe|YHJ-J+`#J#$Kz9~bikD1V~Rl1I=2j74PmIcwk0UKy*}s1t?Id_m~!70dYkl5 z*RHpjPFdC*Sd#I~I^c^PwMihd<$Ep^A$rDh^Hsu38lt0}xDM$saGR)XuAkrg4&TtK zW@SLlhCg%!D33nT*MIeZJqjoKB#K1^hePLkYcSeOzym=6T&L{qQR&INkn`EJQsTUp5wW>m7D*4klIep5bh8G`(M|eDA?Fd=2FYQ|!KEPj? z&FZ_##vMlzN0mYOhK=={@^(`tx>}D!y6IB&Cn(YK*GG||M=pi-{={LCWy45G45VYY zZFi?izspz2-+Q-&9e4@Q1Fa@m?I|xgVdp-`chV;WlRHUJMMR0i!K_r1F)2_>|9}oC zMmjF;FsA5%7gh|5Mp0iY`4I?GABt@SC<-T9H;ccjY%<(q@TNT6J`ga>VnhjM>KlT| z%|MOL3zWgW?f7=28>a=C2#4w-TgO#Rj}6^y8R!^BuLyAp2w?ldDfEfrsmxPZ8pYfj z)*5EpdiVz0`yFT?qp|kUHjgbr`8A4v^1@KbMPa}BG?&YF7dqF`h^9XBFNqI<t4&J(&&RW>GY2`*;*E<%x~|V86*Thp(yKiW31K1#h~Ui!O1kLebc# z#|U(uzp7s^!V7-fKv6JOd(iWt^XX~~qY+=A)U9Y##|LFtW@zZA?*8q7rtMJ&TMQ-D zxT!6*R5&2I=Y_WS5(PlEO1ku@$daBj z`+@o=xfD(BQlG09S`VP}&8ga(e{7DVElKj7Bi_Pp=zZzwa|6h1Fb}I<8EB z3kghd^?Sf|jhTPPKbH5{E7e?75lHfFWARS50!7>hbvDxsO_`8Xya*xfyrd{)d>21P zQb$~HF?=*6gZGwSC#kwzyHv@mC~Z$f>J`XkCLxTZh zsq}_ysF5Q%;(nrC>W^KSD0*EhWa9;}aPdN#~P(Na9T3$EQ8)GVlA3ttR~0d?@X#|+HjG~LGwp8K!ewSB>jx-sl%RMoZLYxs zu66Cq#T>S+++-w5jygq21@zZ1c^97&s>De&4E@e7_LM{}{Ci@1nsBj~950{0K%yIy zek*<$X+~*tpfa$S^7F<_Bm=4~$EZ*m3cB+z@8|jQu=Wa0N1M^~?lJGXCjTdNwutVf z`w^_wU}wdRhr|#MPs7RTX1qyw@@~hRHPQYjXAi(4;ZE;s|HW?nKQn#@R}*|}qKbF(O+&M9P0KDeg5J)j*LDrJMf;5WE;Se+ko2+=^^!rr!UeH`SzKi+rK?M25foVX zosG?Y)1yp8TZi*FtM@NnM$Bl;T%>Z(OjD#wjVWH-=bI=O7;8esjLhK^*el5d-4PQ` zG9&wH^TPSpytYd-cj5AL3gPS8a5>+omqUww>lWW;WL3r)e0qLD^OJ!VVnj4g>ccP7 z$N?0BBljQo>n3$YuG98L_gRwie0z@cS#Vkr5Y~?Hu-^Gkhd%^}cTrhgQ?eT3Q{{bq z{!XD`{H=GDV;j6FMd;#1kFiZEwn*4-73eUul~Pfv01+uNK@NA{M%dj!cOwislVBPz)V(e^$Sgz z+fH_*HL+dsjlmd>98>SG!iDX#i}!UQAa!DhzFLHm2m`NdKnrT5)Wmi9i*nlH@*r|Vvsq8Mt(y{!-Lt(D3buLS=F(|Ub7F8XJS?79%1C1ZB-IL!qc+YGg^L_w%w`MS6 zv$~0U!W_TW90s{^Xal}Gq6*K+c%AOf+{F36LJDanGkZ<$Z*QKw2|(|6Q|~!9tu*Aa z@4Jw9UT{9m7sJcHxe0@4#(2jAMqrRIQWy6?WKJ%$)Q3V(V2E9E)!7ZY?r1aYj|O`J z?%2;?f@c(mf9lkJCd9B-c)oAEL%3&Am^*(t%$XzZm(upB1YN=B=N7CK!E**u5~Q

        4qY9msEzGNWQmVSvR`E!;)KOTWW|qLM8KEMC{(Jw6 z*BgtCCx!IPbmRDmmZcy*ZbsIM@#62Ro{Y1}-rktzCKaT@Gs3dX1k8Fe?^|*2rd~S} z+}jz()cz-9*Dc`%w(Q>xgi1X;k%~XLq<0?)DQ{~$t>1U$bltB(#Qd*5_;_PSb4T?@ z&`~=8-*>*Fp`?3|wS7l|gkvDr+(s;wCUpgeI|iH`gxm4OgZ0s&?Cduhnx4*ah%zf^ zF$+Bwbz2)c&)ZUpDin>nwn;y@VUu(~pjZ3>=#25vKA%F#18#@ZP+`$+vgmyVb%UET zvj4R>aCTds#M61?=fqoW1uYW&b<8I@=v=&`JVAW=NztNB55YRKtCu8R0R{mtw_C2)GvLY(iWB;X)R!+*`K0nT~Kuk%x1dTc!b@n?b&4_$DwCBig zUvQFyw^>=W(ov&u3ehu($n;-U!-4m()AOf&=yBm7m0*bzitg)j#qG&ek%x@IE9w*V zm0!J1V-K~qwrWZs+ewj*%PX9RKsCyct3DXeMlW;juj7lJo|YDT{K2%v-c)O0k8aSo zPivZhDm=}#>C&&cb{ia-;Q(vp>v-m$;@$S=-hs~CK04Q!!`8HDQ^Nk`W3wzy_zuSH z$UgI^fCcR!;sDvUL{I8REsR)b;hfb2ELy>&R+F|s*xag;E$9PZ6xI8>fo_tw!CJ|V z0*1bd;pAMbgGR*Q=9tYtxS{zI-xB{6Yk=-cHWVO}dh#??r;1at+46?p?_7Afz35y` zvj!UF@hBV@afQfkExaqjyU`o?m;kUP*R)$V75C7?2G^EBT?oo-KC!OTm;K?C5cMnO zo$@p-@^{9Hv(A23tk+e%j)P7gE0i#u*sS3TpumcOPARQ%b$EA=Rhu^w)tlW5A59}h zTxPHG_+yr$*>=QZkjRvZ1fpZVlx{T}lM`ygc(Jp7b@4%LMWO0&El_Z2V)crJA6=$N z)xL-e7mx3W90?wLyc7q*w;olckr2skYk#WbxE$r4)ulacLieS}@_hr8^v1(5$ph#T zAChH>*>Hhy@|P7zUirT~>~mmj9a>@;92=22r`nt&Ju4kEQ;7B2kC%HMa8B4MFb%-j zH$T?*i&R#+wxAZO+Z+)T3$bq15vDq~P(NMnN`*CWa~pvVRqyUMlT#-`<(iw6Q%ind zW6R0H%>^gJ{t>dKR_tU_k;U70WMpwD3*}rTv)Q7sA!!~@)*Msl4~B`JPYO_leECG& zKzih$zZo5Jf1$da!j-3-oT>?y2tn|@o&R+E=KGQq(0kJ-B33OiZy1gR2zw z{5})Q*jcY#aAHKG7EyFz6n#+L=W748{4>sad_@EHr6+r?Oj)f_O?uNtDIbri3e;8} z2zkLPOcrP=xoHJj1PSOIFP{o4=aaaP=i_!Xo3P}=go5U&o=k@LM_Z-671wTTvuNct z4^#lxKUuQ(q1=8^7yk+Blb@W*qLh}6Z@m4{g#Q;GIdkt#_yD_mF5yyMv1Ju884+J= zY%MhvHmvdj7mU_D*wxDeb76>2phFppOg=F|IbOim%Sb+y+OFU2Nv{{+&enWh>1(lu zp$d^LDW(NHaS)Lblk?v!@bEnW zJ~F9>r}m}{*l8i!(SoCfi8-b7r*%2mopL`!0T@v{*T4PE34<`6mS+)WrK7XxF1kN; zgY?mZyM0GQzU|yR=|YORnbso?{LfA)kN!Ewg-~#L&Y9s~TwJm`LBBU7@V`cBRux5Y zTTuG?9~-ZFdc;L_uqS%9Z;!&*(T{69OpL@a$ZZ+B{bYkJY+uHRZ*GT=bFqroC)z{* zDg3ZEHX3CoNiLDS4c{Trc{1t12zkA9jw^aU2D}8{$ZkAH5bnR;p)eQP`(1Ao5p=!U zdOXP^uJ3F?egD&{Yl^79qyH1oH{f&7757XBMerEnlhm=v59@hv7KeS`U1q&4LcE+Q zj}S*D+pp+H9Rs}b(6K#};U22m>GdTN_~v8i0FJI;RIx+^up~ zl*llzAVQjz_a_6l)F>FOb};Jzx)+Kx!+;PeNvRbA{A?9Qt*d@HFMp5TAm)jXD?i#j z>F^5dP;QlfcqQ!*#Cv||%EqFkf845kGB~gOQ-zY~n^w^KFMQmKvqfndZqloJU&dA< zBA<~v?gYTaS03RR6lnIU#=MQ>^`@w*p z_I$tP`f`z{jGC$bd%i7uy`3xDytKp|b+)m2(@KQ!r&Qbtu`R5F_e-QeDtN(Rh$AGW`JW;0KalejLd_x$RzIR<@Kb(Z99G?3r}85kSD>{*sf1= zuQ7lWFDORzSqEz0Tc)Nn8N6s$yv`AmNn#4)M0|c}GaHr;Ub`l6L%+b+jugaGPPET` zRr{TCwvs9}w(0JALfhc95+x1wfe5EVYh0J2d0qtlqa2yJh0u^+RmvumrMy+zo_;|V zIj!f|k?tyH+48d)(vjYSvRL8vtvMt97$NX-hNa+T(Tya#g5X8o68xb4v7i8zn#k-Ev&ly1$HyLk{%855c-Dw!s}UpedVerNK^7# z)@lHJX5B*{_s;O%8~rW*LTfyQjPvCu927b~z~vrfTvN6*0j*_%U6W5_Wq})j-A#+F z7QD@N311@|@VGAFzDOA{h5QHg`_Idlb!+a`ZHU3f;<^Q4DUZM<`&j(ciQ#evIJ)Rn;b7nv@)?#BDa#M#oVe?DiHPgvXMqL^y7vvBZT zRJ<8~)QOB_e&+0ccaVjDM741#bh~KpH!xz0mHc*h&LME@J4YA^flKDQ&WDC9mWlgr zgz11|MJ`G=4<>K?fbPu{9R8t5)_tkkTs!Ew0-u^W7|?$%)p zm7e+4AUB$Sv=MpFtTaSzfDGXXaJ>ws!er;Ua4OhHJ9E5E%R%IHdvhe7^5}4;AddlS zA??v%D_j{U>%rv<=h5zHy)d@5-`@L$XBh;x!rRJ967SG%P$*gu4iV05^pnZ!;w-E6 z-l4YZofh!hopXd;u(U^QW1@4)$PHzYstltVPk$ENbYaU47`PNgm@O*^pFPL{rg#mI zp+wS5W&ilZpK0I=@qN16zbTnz*ZSU_+4Wem5i30nwQ55qmMW$Qpuz>$LAVpWrxvs` zTa`XndBn7&^o592>1e43X!M$N$JBY;z4@JSIlbTb%XrEPHaxFi)e)AzGLLAVUmpF0FGc8rKEJ(;~R zY0#E&nF8_V)HIfwJ65RNPK!((q1LVIbG%OI^p!BvyL3^4oxZ!FqSHSL)2#%V{4)hz zjc7eqhDFQ>heG=d+n5^GDq92a?#)y~>1Vd>1KpCbz8b337B$san&O#xF(qbV zG&oh_Hz&ADWXm}(e4mFvkACiIM6B)Yh_5bSM%-gFkR*ME-GGVn{o@S43s`UwCuH0j zjvNUeEGu&s7H9}6RTa%d7=NzN46>qDHRIQ50 z^33s?ZbyrSeh^s4m$eq%tZA-G@64hc&BgoXX*r_AxO7UD29S>9cG-&>RrmD?hQOZ5 z9rxQU`DlJx!fSl1Z#RIvRjsCsP<5_NjXi^x*$$|a1Z&>Y#HH)Z=-U6x2L)L7x;ly` z)_LCd{>JtB}zOu)ql11f+Ao#&}-_hLDwbR!H&^ zl!D4IqSK+`P86SpNw2-)?$l3CCN>=V-!>XE*Bft)W|3k3iucNk4B3}Od)&nP%grk7 z!+J|kzk#|qo-9MUQ)<4{w*_Sw^UF4D+amSuqY=g~?F{o`;?K3${EVF^jVvH4Hi}AS zp$((ueuwUVy<&2_gSH5py5;X{(xTT1^6Y2>!uedYbZZ2}v5Jk+$rE)UM`ybZ5heY} zDz7poqB$Png`z#6JR8@iitt?gc+ZZW$(j=h)Kmvvd`;%xk@_2Nr(Mw!cg59_|BsMYVb!=fqoSyPlJ zcQPz1ZS+__}jRUi;!BmV1 zK7zD7H={KV7^76H$u zj{Os$tg+)_k?oxDK#6kNFKZU7!SC^?O2He;_dmZ&ha&fXuF4!NkhD_049Zz~JUDqe zFi6np>0LRrR%1Fnu?r6Tm!5Ik^y=G#EOg?*CUijbqTW+kpV$$5Eob$Gxmtfw`_uDV zjmMyeb=vcDjgflrtjFrWH$!~j8PIEUu=B#6ya~rD-^4RFDGv&j<5S8BD%{xw7;ZQziIG9VOvl5s4>bGxQ^v0&ZNOLyAiRh`d&hDQb{ktaxARBwuZ zYpKLq6bH(Uyo072I=DB+W`DtC|9I>giA{WV>LPJ7gWz2#1;jDtK_soQ?uYYPa zJf(jVb?h_VT{V3N*L?kGRufowyo?6lP+YvAbYGwtBdQj(Y|B!L*N=GUwFD%2-W4R` zok)_)`PDw_bZH7ykok4g{UF|(x2*EMd#<&sG9IS$d8YF=VA)<)oDs4Qn|MMJFo9~! zv={Z;D9=Un_*dy+1=H?`=cF z$p9N7i*Jk1keoQS)`Ps1UG+m7V>^<5507s`QmrR9rbmc-OFB;)I>g;+$?Xy#4Fm(< zWfWhj8u!s%_t7zEXoBFm%vfsez|>kqL#dWR%(S zji-t#<#DScp}8D&>gH7KxW$jN%bmF|y1i7;Y`D)F-d3uA{5&Q->`E26H1WmL#e!uj z2yVN|uBq^zx|gvoA`W0B+2g~nu4Jy=k22!6!BWS1icuwuK|+hK&aygNpEPOI;pmM6 znMZU|+{XSvY58>wIcYqTM6;AV_!*dxkZ^Q7Z+-Ms8F?X>=Ol};4r;%Q&Pz!~zcY-D zzM(jo$ASlx;A?=!v9H3Zdik^K<=B0(9(C1o^TSX)4|+xglGYndt1(HB9fdM^{S77e zd)zedkVWy)d~8j>j=6AtvF>cRp7}Jif$&>dHQoXZ%Fpwf?uoP~HGXI_MT6C6tSf3t zeP4NjlFl-2Z;6aC5tRW|m^kqOAW>f0&j`L9-S*K5($H9{uMAK`6F(o}Sh~|p_Gng$ z3dUjtOVYoF)lHowTC2iQ{vGR#kpBRK@g$NdKgz)6pk3wB{y<0jwSF*MU0D`_58CH{!F)MEH}`UjJ58_6$>F01)IsVwljupvg__p z=)FqPTiY)=2UkmfqsFHzJhtAEbAl=3xeJC->>DE6b2th?c%sJ5G*gm?l-`1Vv74DY zirs>lTH7DA$Uc3)cp##o2r^2^6Hl(Z9if=KB8G5MUbITwunC-PUsZT%%H}Z#cBZP7 z)>9Ugqs|eA?wa*H31(vY$FfQrze4_ab+q#LtkX*{2DZ5zn|hJm^AWgSx=U7c(vfNA zJ+Ad6PdP0!$TG>>oX#w{kj?%RD^8J@ZKl_>`dx2>S@p%TG)VyA2A~-cGY-()kMX&W z4)j)lmV;lYiGheEvp zy}L@&^WrJp$`TILXOUYN3(HLM{+L?F2S&8-pXZT z*e>VZ&!=6J2dD}+N!i%v~ySw)k%&?z3aTJVuom`UEJBpJQ(Nwout*3 zV|IE}{Ekmz#A29Ro*`G=uiIls8>YAKQ+^jFPkYrq-(HXXpVTYBUkcSxwq?_6c3TnL zp_5O5)PrC35&@a1j|@+EIg4xUzg?72m~rH!`u=o#A~prQM#EYuPhr!QzZ4ig&)*~+ zWTR(}=OvMd&?h%)5a545R^Hwbq~-^f*Nl*h zU72sYgPNeE`*nH4r%_E+f?u&Y9=T{N-jOzR8M0PCw$5C9c3vB*iF#$gp0k^nH`22? z3uA#n<=R+c#-ml|U0MU=WR~&>Tva8i6D??}0cB;}`u)&$7$`oCHh6W5Iziwis4kH;YVuX{~Pb`au6cfnsJdFDKl+(zje)xa71gv$mH3EH4ZARsbV= zB;ST-%Cp`x1(*x&yio82K75TK*ETN}Di4+}P*`q8z$&mcZTUaSe&U0BP zt?EaR?L%y<*~{zI@zAqSJq@-^t($f-kW)|V|519D2b2mn{IH;^WlnavF;dR6Yx0YB z&R(JN7@-GO>Z>EEf1Re$>gjOX!+)qQoD#gZVc6AUi5NLVFs(4QDOmkt66$ubJ{Wbh zrt56Q+Ggto)638Es4}&bjf`?1YU^eBE5c`d1 zqw4dG`yPDXc#BWso1pjkkEbGL!Kgn<+`s%&W(~Wp$Yp4qX{p?colDS5N~TC@wj zKE(YAp^q7oh%bwpn~InQaOHCyJC(`3izx)E1g};E*`^vZ+bKw+ZLA9@t(9xq0hT9U z6NwsFU@%8>N-);6vWw6t!#0@6WYRt3Nze?^!!!m@xTw$dcSamq*>~?qN3nY~YyG4D zcA(v40ete^``Q^9S!t~Pv<7^9A3g;~u}TixuXS2B3wTxTYuKhyOs@olt}vGVYY48dRP9MhyuV^j7%rk_g4v11qEbbF#j;5uv3E0s-5H@N+TubMGK2D#YYiw;K&+<}RwwK9=p*;SySqlsFO)sj2JaP_>H`=Tit+0?YmSdle+Dj9d<{>0u*?Tw~A zg!aGy&%(7_NFt0o=z!;1u&np%9}v|KZq+Zs(KJ?$!z8SIX)*Bp$f!M-CMu+XvM6G zTYNeDpVHx?)>LT0;6h|8u5Gas+Hj@Q0IhW-C8fKZrEVv}M{>t6RcUx1d41{P;zEH< zT(}RxmKgjul;RE}s?n=j_Mv4PCD@0T%aQWPi%{0!UI5Y;3>14zK%^M4P7YrW_mQAU z-YU7J;}c9F_r8h0!Fb;ilv5OZb)glAP>nh5dO9vY%6XghPp{fB=EJ4F7&RJ^!C|yQ zUVnnTzd^!T*Eb$wHl%W1Pc1|xb_WRz<@_(~-)+5)o;TvWKvGe+)N$-Qoq+tR-4mVR z-Y7BrQcpYxwzUV8go4q{K$*+KjB^s zC8y5Q^|rM1-62>k=bY5d_BXIj;&aY&;KZo1oX+`@^lEEPnYYux=9}W$#vQA>A%@ib?!gf+Zd9tULW{=V!Z)*|lZSx6K85UYCp>TJJWr0Ji= z(k;glTe0=ov$%hrSiL6|B}NZcxsj&MKh3)BQ}}Rhj8Lsv#k}cKWo}(Rt@oMqzgP}` zY6s20P!gJwix1V&tci4)_?QQBMU_0DfyCh}S|dA6Jsx!{$F`((zRMj!Nq(CLyu}gWBOgMrBnLFbRl!! zf(EoO3bb|Q+EqYcJ*OUUrmc?NQSS^=`NNh={0Ge{iOg$V70K;OB+QC;LS6N4^`9{0 z&+2!D3z{q=;Ru)Jhhoc1@^{hxT~6m)ke=io5vwFO1n0#UxCu6(KNCNh81bhMO*U%wB z1o3ChUe{Ov@r9A+0Ir2CV|u95@Xn*dhVyP6E|_z5HX5?8<|-=IHEw@*}u|Gg9! zH;Ud8dbuTfP64^nuN=7?lK<-o@4q@Od6VBR@u7-Mz^td<>5mM7F9_xV}dH zGwlR1N(P{Khqb{=`en{m4gQ0?+R&IYYQ*-WI2ukiuH=3*BpeggjiJVvP0KUQ?ERx- z=JANZ%;^UaiR@laulGc53v zXn8S~T`*a*&XtXc=9+U}`_tJA#)6H){-hy$^tc;n1Y#YqdZyoz&lw*G^Hb^j6lulb zR;N^|gS_sm#qvf{+IL*YWQ{6FA-LH=zh$3$5(Ks&r(6HNSKwkK>nhKB+dPTFQIhA}*pB zI26nSVYO+f%=eC?*wEqB6CT)85jTlZny2=J0-hpgusPJW3_y=q zx-#`msLJG@7b0H%t@U@$bFnr&b76X(<{Y&xx_!oRINyUMZ3@QxF!6A8ezVI;=K+n7 zlu){z7{nKPy~F9k;wEQVBCMi~wcf+?zVohTr7&;)DSN@94b%{4!-LqBX~@#5jMwWn z=jzFA@$7J17&gO51edk?GWz^>&Wy-_Sx3=orpanS1g3n$dxvr<54sUtQa&klw$=v_w+}W#s`y^~zi6!OUBzQ#CRc|~EFV95?cY{Dz zI{wjka^0b0GOsqC`DD!JA*!A3f-fGu*4(9m6R=={&r;0Hg(LaU| z^$Slc>ev

        Nk?{*0H+n`cwWM*Yz^=QhdP*>ul;#(%xh`yE9gmBhLisY=r_@gkIa+YxigELyB3pN7xIGi? zoun#tHh&6)J}?;lk%_(Gg!iifcp00%d^rhq{!M4#p2T|MZMeU&xOW1hlkm=2ie|F) z3l+$jbbLM~v{%1`7{B&U|BuKglQ;1WXvs|ulhtK|QEx*$p5Tn$=JjFs3j~og)DDYc z4<>Dc_F07^SUp2d_@#7QlotZgz9mk00|8ROZjOaFph~ZZ;r|==|2qi~ zlqGcVeeCH8X&Wz71gxfXT^vTX`&~WM1|N|Qiv!)7>leUe>m($K{x2Y1E9jGYCic|7 zC9j0?4@Fb_*$Nas>Hwx%z;%B!bFcf13L`Xs#Sto51%F)M%IlNGWKkF9kG9u&T|x#g zqPU5(3L3v#f@~znvY^L-N_vR>Y1{LdVy5&k%cN?bEW}WL!xKez&ZE;M>yUhSYpd&~ zXjri%p@5J!Dxx<1*KMwZ+)cyfdJNKoDWb*Y@mGiUegCUg7HAcaZ6?Wo6cl~}EJ_|m zX;a5qNQ&5RNiPGg9)+W1jV6T*^s<(liN5f6f88GHP{a0gqCH=8KTj=xhPXP~(s$mh z6NV}BvA;*T$6CO97Bt!_M*o|DPI&20G-&rosKujD3wqi3!hTV6xt9Uol4u;}=o0U% zi}trwQOzh?j{JghlCAmomj}uG~a1hH|eX{Vo9BcwQwtt%Ix~!^F<% z=TLb6q#2fx;Kh+@GvzRGGbD@{7!>=wGOjy9j@3pfPfl`fjyeoQM3~)PgR$ETD`U5B zm5jzeis6Wu;BJt-KM8Ip0i+cuu>kQ_fMX!)LWGziE1&@ zUTy{odzQ*QpChUFBNjem!=EUds#z%HC@`+U94%~{A0GmKbta-etoL{EvHhZ8J&vhs zv*?b@6Ro^cHNOAWi(r`K1@|l3A|JLYP`YKc`w&_5!PdhOf)s~;&Vp#2w)oRW3S9T9 zt?6aw=5G@0tFrP}f(~P|_VXdOBH<$S!G(b{`<>3}qUwwpa(YIQ{_$WQK@pWz&u6Al zSK!h~oJ1ZFF#u;Tg56i2j zW%USz)%E(pq>xtwcQIAWVCa{8S(EVvNK04*sRQ!m8e?~9L3`)Yt6brLF?<*9t=^NW z$Qc-&SL95sp9XeN)h^W!XW_G!o3|y3p06n=g&mBf+rEda`lfckgc#?ezGZt@`Q#vWx3xPm_z7<*;L_ zJM^DK5ER?;(xNb}8c&44ycb1kWWbcasBF4tl+m6mM@nN_#AGe0ljsUxf0WOX>`WZ- znPwdEr>f9f_8+NK^+QEUOIdc!+>f(sb>1%M9*ri^v(^IL|BtS>ii)d?wlIUcyW0;` zaMuC?BtUR?4Z(uD76f+-?ry;)xO;FY+`Up*;V#X6=-b_+yWh^^c{pRAwbz{AoM(pC zB%&WZc%a3)z?4X5%==z?pmJt(e+WWplGFGhV*j0*vZ?3KOW)9-9NMNEoKkd-M*Z}v z6jce@G^@OOvc6BugXq&K`8DyN>jC6YN&Sp_61cg`7vA_BrMFYZHyIy_(!Gu}&N7MT zD-tQyn-$sVVw0!gExBo+kBHo0WC}vccQxcnsxOhWD9)Kr2Zfkwn+6gbV{U85J6BTS zevcYNA99==%R!tQZBCk8Rfs+JxC_LJ2GEA?&EkVHWg3;II@0qD-Vv}#mnV0ZJCq*Y z(z^fhY&jCFIIkz?w_Xr8+r6@$LEMgAc5#Zd?pIwBY)?_q;?8keG#SG~S9?t(AD=B2 zj4?Vgfd7-v_xjyK=zpz-II<yhwLKTuhFvTrID?2bGdRF#nzDUBzBJ zMKukR*v3D0E;H?jbq}2&kUmnuDqBz*((RL8>j?!}T=yib>3h`ze4)DhFhV$D4HYw? zlZ#~jV&fP=eMK*?jVf|91%U?wm>2aI2bWdIX8Vt5kW3KnVsk)jukf_3BFzrd@J~`v z|91!3EdTV9JI6V zN9snGVvzylFNGD#BaTk{l|WSQ)s{6fpU}QEx|ZV)2HN}h=Z4Y;C2NI*;b>ddv&Qd#>pkT&uQmXTp$af9ZDC>hxt` zB9jf`nDgz>1#-L?n5jN_SM*&@J$#$UDe|v7t7}iTJU6V18cHTcyb@j0Qbv#y$2?G! zBWb{17Ie04uMf8z-iL^16>B6Xc4j%^QfYc=dW&(Xpj&L;`!=dQ# zOH*%*L{AU=t7qi!Z+1z%EC~`H{!M9>py^=q9ANfqnMR@f&yxE1!bCiYP|VNjsct%A z0Cgtx3d(XEYoCIY0oGO<{4G*(OC>c{{lb;@@oMpzJj$LI8hU4}2pQoh=0)8PIJ`H9 z@-pWss!)oK%Y31!WCw}@7dO7H&l8@>25)@g1JA)&+>+i8y z^4Z4q(1m|R05rUear!gmyoco6megOTarWd4tIqfzom^ZWSWzo6*VSCQqIQ~ls+=FvmGnXwuz4IzFRtneXQ2h zn+@*z-uWWei2v@;+? zDeJZKtWZLOR)SDqG@Hz5M)JSr@b^3R1;I|Fi#KxY+z`ve`Q#8*Rf2nIT7PZ z)XnfovTm@57J+uHfZ8`(hoMW{?OMUF=BR}AaZyU_M}<_OQHgQhkI|NowaWk0;;|Pk zhD$;@xCp(_vo~Rk$@gk7Q5rej4CBs1FMw~u$B?otk3*9^K(%6>rPBtt(1(CfD+66! zd=eJ9(X0#oX##({4rlgVripd78x)YfM2+{2?)TNX-~(>LFT~^8Qh|-@f>ZxD+tB|S ziJpPqwx_(GHn?$*%U3J4ym7o6KzE}+F;`Suq>lcc=V%fzE6K2jm=aWkI`Hj*1|;~h zt6?SOT=@B(ItsJaq+QLybBaYpvEbol?7{`()`AX=piGMxiZK*x-%DSf*!dHZ|z?<-@% z+kwf8^JAX>-f?~N!>5qp;Q!?n@-Q$*Yq1`P2~kpYQU`Fe?LOX7tv|VK0bvy#dAY*- zH-5jn=qt_}lVdZ7N7rdy4x&%+=;fj@%O<$qFwd%6A^1}L=L?HLBN=mf{%=}{j(Gi{ z;TSDxDm-jB6k8yojAi}5jsrgcI0J-}(fD$oI(nWu`u1L`w;roif8L*Ny`Ek#o5z;~TsgifJqE`++cBl%i3D7sdhduP!Atn4o)7eg z4;H;Eo|;GIjy7-aW7u7<+3g!q#AXCg_7;XiKKtRv3FJMPLj^i$4!_q|+jXly+Ael8 zuR-@@Nw#0qK200GI=u9or+&MIA2QPi>5@wnrapnF{cM1^RK^SVAibt99;(>_m% z(`6~uOQ^Lh6*GI?QAhc$jh@S?bC-2lv1!#R7bC5jNHmqso$e&Qx?x(NX%fzbMyJh* zj&2)SI@+Rbg1&sgmByO#yK?F|(+QctjxspspU&spnAl>dl znDQ%bQ=4YHV#9H6iF#*&O@Ah-y*w$JWV+(sfrKP5)QGUI)~vSy4R*uA64~`5hZ3jd z4s*8vv2HXM%hzTm;z`36plGeChJ(Kli+(%2GE$OIz-1<(ld3Q zg*!dFy)HqNQoW}>Pq}Aqem!xqlGQ6&SI!p0)utrHr^+cl`xmv!s*WnQ6tNir=i%6V ztK&15qz|_oMw}@1+9c}L<+{$Tp8eYLs9IYoxq$6J|cO#Du@X5jIvy9zO#Aoq4;$A7|= z@O>X-yWmA^HDf-sta6bSH{GU$vbeZ+WH2_2eNv&a`Vb4T=zA|xK4U}_)Vpf&H^DY> zRpQ%}`Zau!rO!j#+S&7hbzz%)*Bh7Uc3JAio|EIJ@ama6DRha0ix?EG511Zryo};> ziMcdo_V>qiLioHrt7M6<-mB0jjS`MT3>^xR`djJzy3dUp%XY+}Lc9>g?yhJ3loY-z zED@SkuJ4fKSP~2lNQ~n*QYaE*xA7)8mDvv>=1P(X zG$>{i8HD?EbhdD5n(EOgZpYAw3Va77r-#DP@%1SQY0#0$MYMRD za9tuHiaz`ychN=}!r;8N=(GIDOb92-1

        j?EnJ)7V*`g)eoyUmt2Zd98nD^bImwqKjS(|g`M@nE&|L3qL^B4C(Bi1Wz1zG)n zLips@tgad}%XZ|@RYeq$Ebv$07Y~OPaNL^iIa_gbT1}lb={L6hy|_TWtp-kZf%wuQ zqXoC}9tN?X;mVrnRDs7i84Z-x&S;yczjlsWpJI{-Fpi;z>b6HV)L*4f?QQbAGH(m` z-}vAg>~%Ga_I-TXGC7RNq+8qjJzL=r)NTnjQ1^hr@WWTr5;W9+8sjc}YGJpGwy618 z7AKBcR<5zZ+QQV18~v>KcPl^ZCJ18g;q|^Nkw;-K>#PzcykN z;m7C%EQ4FQFo&q<0}JdXa~|hYzSF#Cz@bh&#-0L6xn{<+8;NK2^sO1w8ve0c450}m znMVDR{;2A$dN%&_?%oG^znKeL(Q2}&vAJU$6hya_&IP_sH3gs^Bd}e&N`IZGz9>cn z@AaotLdX8g+~gmJQ~Yx!^(MgN&&K#r%*(Dc>PJ|-Xd6PDm*ZYt|6yHlIW2d$iV8sF} z3)YF(H5aTY7)iG`7YNZVU+5lI*>f5KYbJ}a*}h?#`jr+%-UC$GcO=hqJf~#yyf6;I z;-rZB&Wq7HB*vneQh)7@KOr@Af0|;{YXzG)@Hcv$x}7%2(99^aiBauKrMP}P8u5;! zL_Y(xMjxi4+vC9bf5@LUYaTDT8d6F|EiOoBSRmLQK}>jQl0=4_nQ|V1%SonKwrl90 zyJMEZCb8Hydn1oS0vF&kBuk~aM9Kx9pxB0tAKw!}hMrTc7WIJS2());B-JyfLNv`&>$#moBVp5u~w2unLD1AYeyzJ+ShZ-aY4&i@^bX_@AF_5NQ z-tt`|0|cK9c&WRiXOkM2oKci3w_Pc|#Q&h=ay#dfWX7WrF0)M~L*5I(pxd8}J>U!M z*fY=&oD*%~DD`BnEzXMOMOD%P6Ua_~i!5e-EGS1AV>_b>c~fup5h^hOqY4#NGdYjw zeno+PsujgS{fcbKE*HR09@DtQJ|p3W+%x+-(H3b5k8wknJsEfgXZ7`+i0#BHg z4iDAwmT-_w>meVaM6a)tDOrfgYxaex&0S5S5vwOR(=agm-A4mgfhr65hs2h+ju7CH zHi9$J81`PIlQTo3hNETO;=Qt&!Cf8f#~NdDoyDRk1PgDRRQsAWxnYBKtQ|Knd0lYo zm8Y)K6#4q+sIwel*u^5_53Q|#v-@TH8jnbB?=kHgJOa+8yJoYeFUHNm>Px6a^ry^s zq|!D)SwL$ed!awkPvwE{%ZG8FUt0uc{~lDcmmL;d*ynmhU5*ZhIF2y zga^C@FL@+0?w`KyCRyR)QYbo_C*I1!jN|xcT1u|b7!U3>rn+F&q@0CO?BxNuC~e2CP{Yx}eaYS~4qE26{9kP(>_h&q>xDBWVXnIH z2sMF4>PTw{ia|VA13r%+c|?*dk_q-}&hyBwMWLU`6q3CsMZj3cqbsjWbu)LB))(Y& zwgmnXetHh{Q9YCODp4sgtlMP$_Nyzb7(=ZKPx-xB+h^EfJ2OV*@D8>o(3Z&M_Ke zlt!6y2?4V*;xtUp0D#;=Y@d zNreI=<4Um+lF}7*()(Wwu^mpIZe0Naj!b-QRZ%$BfA~?%O`&XUGVR5C#!7-xFzU-| z*}GE}<~XW&u~Gip`esg}!n2jTlLZFSXFsn2ABw3k_x&`hS9q_B-aewoP3 ztTnLA)vKF%d*)`gej$A-c#lEJrre(KPjJiOsn#u9!HvBabexo49t0@a7W3|q;Aco` zGNYrn`o5&rDm=4A!Gl)+_DSsaZZDCVd_nab9q13KN8uWCJ30qkttsE)iq72}FM*#( zI7;p~;!D2XY8iBJE$_dE9Dq!1&SLU+ig8=Rw_xJoJXS@dWIm6xd(c_)@a0;2`6Xtn zIsUF6su|&TID60+Ig#OKZC#EyrD75_!*2dqJk`U~GHjU22+nEz!}}7(0Q#<@ELR$Q zwya~$5&!LpiK&19;h`?B-3hg~aL#>h2LpssM`%vzZac=@RcCTOZNWH>_?LL|M~oAy zH9}*VZp%dzVd{Dc2V55xN3;GfQ!ni3E2}afx?Y(005Uo|21cWex4(cpJ>AxlQQy5f z5fWObL5m}UPIHQOX6gV%kV15#aVO7p5vr7^{&2*>1f}=&w-24>j>q``eZG9dQ5F{r ziqY>?Iu|Y5o5)Z6C$|lPQUP)Gl}b(yFKr~%_z`3F6oYGF=;r;Mo2_XO^|eJz(3<+_4;GS+LE}sMEfqnAtY~gmXUhl}49q;} zYZEQ>s#m*$fZWhLquV5rYvIQ*!0Mksp{uvEA%OfgM?MATQ^5Vmvf58<+kLnfu7UC5 z@HcfDT-wmZs$geT858o%;VXgR3S8UFr*6DMe;Q%o@g*10RPGlC?sMBdWKG4vRRcCQ z{m&}6%y!U|J(?2f;^+BXdLt&;ux*i_UujgsjS{B{sWB#R~L!4!6ONh!&i=K=k$s0|TE-X+=0u=Oppb-#$$!y3g31 z#zOv`cntAVAr0+`EjhUP=GX|EK={0@{7VPoli>Da|Zg=bE5}7botTs5Ipbk z!l`kLS))2jX<#jyP{Za?OyW3IhSAvSZs7baLF{8y(L*WiZ~c7lBnb?W!7vdtWizUm zk~HI}PHEcA$R;Ndw8g!UB*j0Wrz1^<a|+Czv_NI~xw&UTj;3SBDPm zG(h0a^r0>w9S;9cmjVIrVa1;}mlwJ4XWqHWnQJfo+iu+=2+`Q+=ZXYLU@)c@RCF5!hCBU@ z?%(W4uAHDl!Q|xb>eq%;B+WuqD1@oMU#B*v#QQNynQ1+Eps2!P`?G#!f(O5W*aFad z-jU<9?9!G>Btu7a)ZgAtb(*gqr!CS%UGp;TWKyhP<Y+n#3lNqBp#dWEm+r-C|hq<&3#zv;6L8uwOy zb<4nKk)Ng)ZNaC|e@<5I0$UkOOYIpneJ5trGL2(!>J0%2#gtY#Ypnn+R1d1^c|F8+ z$IWaxLC4rK)|uV$fE$sRiaxjdZEF#@#{I!ahNivly59Ux)h}^Y!F8?w)KL8iTH@BK z^@Tp<0cc~3zPsT4;4FL$2YXE|xMp?L zOq@Fm(R}XOeA|rjM}I$UP@DZE1saM<1rai8EQ{7?K9!JG9M=;0kW;Ahhlu*^0D|!nGMPn7uSC^4`rQtdho+MQTSh+ zrF_tz6PyynjJ{Nfox{(q2cyUho084fsu;^D>3$=lCJ&ok%$m}S>${d=jii;3q)dK{ zu=?Y&AaUgl8omCCdC6rwpL^vrJjNo=rj^|Ny9vT_AGiN)oi_BbajD94eXxAY2_E9W zqslKlNzO4^oI0Yc3@6`bC1!Zn!Es?bBQtN96nL1UA{c2cQ6L$oMe2@THg0&MdJjS# zr{hWJ3Ev)^SXY0X1IHJ?qfU*`iHo8gaj$%mgOu3m5{YbGIarOq1V~(IDBaoO>9ddH zo|j1bSCdw;5g@{0UX&ST_2fQ@yUJILY|#&5+l7NYjfQRCMgJfupHfuASWb0B{)XS} zW+4Eh(O?g?IbA%}&s>`+sG6Go22bMOd~&Wfv8KDW_Z#n-#%Q?i2cLQD`$^*3vRt`G zLfIe7m=2c?9bO;KTd0*cFF-Fl>x_@W=8M)W0YvlTU`*LSUh0#bvcVoB^Zmz{KQ`&wf}IE{UWDhK z%5W?^nEibhTsy%Bf4#WLwupwX3gVQob46Q>O^O`Ydx~ux~VqJTv9AiOmrEEeyBU0YWr;?OcgJ+fKFe7k^M&&2bgl- zatys?M*2cF!0$IJ^Qdb}DdCpjK0=wxbU4R$Od=?%x!hzt=2z5PT2iAmtSle+ZQ&ES zrT<)b;!gn-75o-EHNn@Gf=VQIk|reh#qq{KO^X-cI4 zm~9?LZs>(p-Mz%?Mjpz^W$|6m_%D^c_5Wot8iNBT@&;@0o^QQx)reKo6Y@&n8thtS z`^>O!e`}@!{KjyC1DEBkCgyw10!(}#Puf5>=c+hQh@@c#{iuzxrBQH7l)sz)PA)^+<93>b$xXPhLQ3aCkb`=za$vSj;Wgg+6FA*L!dXlPToT4Zd2_K%rHkcu~g5xYwzQwU{#i)5!m! zZKS{Mz|@2!%ptM%bA4}D*RoDQZXvty>>H}2w`TCN>i5|k+$S;%>f*Oe|CsaJn=<~c znn8cVR0P$tLI0MH776TH2*i?W*cTx*f+b2ge6A1lGMZ4J%H(G)8M;4nWqc z?EXPq|8)?b_8~=p0?`TRM*936h{#Zgm=~8R^w*E%#;ZpSwJtYZzplCRI@JoED)5dW z+p(2SwkecrD;8n~Ih*ctjx2S6z1Hga*4)Vl45dX~bj<*d0_itj7mbz{7|uUh6$A>E zOPIP340)`E^z)ZmI}WNSWiCs*v1LdJl~25Lwqf6Ie7^u;2G=Ywlj; z3MmWHD8`r)gwjZh(|y<22tW9sqB(GS-s`d+rytt*9 zj5i(_(JFlMhloY8U-!TZwUy(_r^$l12cHRbg2a!94@H@>)MC0dl$ z=gs3^mi2BmGt#<%qzLc4y_q*M!OK7MWZFGMX8_I=O7@wS;zY@)t%yCHKfC&6ct7fS zI=cnMrXP+0X~G}p_jdX>l~w5tWXdIXBt`$=ccM$)h>jU=3QWJvd>g*>lQ+O5j=~2&^W&j; zjkZkj08-l;w<-_QjtfPYCvn**0C$8h90%@xW>cu-%0>2u@T+{!F^b88Cur<;O7ZBR z+Et90-|BrsU}0)bts%rm21~QKIc-E|J582H{cYi|X4yk!4p=%)r}x8Ij>Wb!?c`&! z@iZ!B)ZV}wDxs9-Ro?aei?VdpMzdps-KPn+j9`^mE zhdQcGaa0k<6v}Y}`3T8h)Y~ySdBURv9M|f)z$6OC=seYl+ROx7bcAY;D9Hc9*NOsE zKXn|*BR`I&lBYlY9JM$XpDuJpGxLxQv*T_J8{KH#0GUJ+f8kt`_z2O@OBgA&LcbXZu>@ zJ-1Qvv%CxARt`iLQs#&ih6|Iyp;j)NzAiN{607j7Va3YlD)5XXR#MrT1^jpk-ov$5 z%@%HP?&gaOZN(rl6Yp9I<&QSl4*Oy+sx9UdKKJR(KfU(JRPoz_lmgrzO^inuiGN

        &e#tWt_^2MtOrsPj-;O^PH0?s7PXuvIoQxy8=sE2yGLpl=&|H>9G zzBL9Sr4fe&26NwXBdA$dc9lMVza%p;g%c_UtKyc#8}-FP`ul+|%$WA+ItJIX6sRl| zBQ1A&^B(4pT$iPEyFfTO(}?I6{A#xwhPT^icratt$9 z4Z#5`e{bWAodJCe+u4VbA=7Ve=3RaimVSV)Sx?~uLYeufK893BQ|sn$NJZ6X7@Pp~ z>wN2_fnm4kBsdW*wrqzj_P*whI55@`I2?gZZvuDZLl z*W-66ijz?}F$kY`%Sj$={f)X~&kP*9(ir2NW&amJY(ViY_);}Yvu8QDG z91pN;Y;JFfy@V^9*iK)a!}wmy@sna2(yw*m&JLRF8vBGtl)nJE#9VEo{sF{2uN3FT zs5yuj5ff#a?Li7!4_1*oMXe=^etMWICHT7hr|%W2h1=1W)sF?+jq4Ks40o5(#{cN^ z+6pYXEqa=T5`X#o?88bsJ1IyRUq88@$6%sG4Edp#dBXc#Y@~Auq?I3 z9(YhGiY~>>yC?B6Y%F50RkgbNt(LBb5*v(;=d+o1K)fJr2%z}AuC$A-AiYUd!PUosF60Vjg$p&_eZP97nOLM+Y756C z*GD(|jXTdWcaJHQ4=gV+$3|ri$3fcrc`K}V>3q9!@$*|Kk7-E;Hx}ut;3Js$+)ne{ zbUE;nT*T-UpxCsS%otROhSgTT`WcvldF{ZeRDnv5jb3wnY{zNAqx{g^{j&9{JwYCR ziwF06clAb!CbgN8Rddm}#F3!o(9xTB&u9@*2w9t*wYrE9j1@1-nT{e820#E&f{bf` z<9#KAR0Y|*xggE$2^dAs|CgnTkIP8{^Lc8iC)pn+(V4K>?qbWF>HDF@l6d!iwnJz4 z!KP~Bb+6}UK^OM4O+`o;V|Bk~;`amM4cvw#GCYBC$EG!^-gI^vles30apuJEG{4Qb zJ_4zsO;PO(tdb3v_#Uh_LQik9z2^X%G_Hxq$$VLiU}yhhM_@pBL&&u3V+Z){`Og3E zc&9^5WwOum(*0yDNPMyVk1P~1)eGZ9uoQy8vE&r{zgbe}jj@6Kj=x&=ce-ABo^BLQ zDmni)LfTwJFKIhLi>K5~>mXe@eQ_d0F;V0A4=MHubV-7~`UUW{ChH1l&u|+qp-xLM$cV$ zsz@m*6~nQqW55vHoQ32TFPBTC?O!W3 zu7rVkLGTAmnOwWYf{`3Cp=~OSC%LFRa71GTk}5WRmkOL`OXyES3SN8xcShf}wdXWc zfGN4YyKQ_T5zZ=@2jvlao^$D)w!u%KYx@lGI;5-HS;N%lZ_}Gu$a<-U;of>TKeq0U zK(Jg8SMLXepNOB}Y0Wfn8IubCiza6H&Ps{?a;x&@1n9?W9tfc7qrnWP!d_O7NKn#e z`jU|UVFGvU1L-&9M$RtSANNz=lpfgr_-`HlF3t~d-6#I;u*odJtNp)8YkwO}{p{CB zW4$(|oc->=j|7)$#LD@Q&!AAlw!OwQ4yThaJ5+ZaY?+MoND2)o2xx0a)@;@q}^uRb-s8O`RF_|}g(+yh%pSG2P-(j{;KW`?v~L)zMg8lHJ-@^l<;iHd%Y^%F)K`{9ornhTWdQqRKAca{0{q z4_8NhLz>SVzlGWNK&2Hajfb&A=N$E6Y(EDn_h|NlUi7E&C%s~=o$Y#Ow%EdSNVtPK zR_4gudF+Q=87@xsC|z(A*cqTQ$7=D7;On`Y`Ir_$EFzVbGle~SX7CS)|L~-JC`NvK zCr>`jt1VVlo&;E*Xgs!__3Ww<#yZn(tSg|FT+WtAuJZ5mNNbfKE)f%XxdsB?eyu=4 z3RV^?>+*ZSv7ic%Y!OhwY@I z*9z~raNZ!94Y;=L1A#57J}$N~uK~wXHpUpt16X@T1&yPuv%-9$R&+XN>Yh2ce>3%h^c5cJh!4+Exa8 z#jox3Pgf}(YCWh2#{>wpAhB+4C#P=Z0Zbr2noLJt3h0}+EqfP#EdFN|Ua8heHV2~3 zmpWP*;$aKT2!DmQZv}cyakcrlW}O_FF*>AlPBJgrdf!87S#MNV`a^HY%@x2Oqz*Y` z*3y6C_KzE67$O}%@?tnN=_Ugbp7SLO5Jw(8n85hMr4GdsPnEDTiN{Al^PR^^PCwvF zQP0(JMX*v-5J0;1GIN25!=AzwK0<9qMTC2b=}w<;(T~K&(?|*8Rc*i%fPO4&Bk%ee zd(Jy}#UTfu{WDsk-@!?ycvYH!i9FKZ8o6Q zZ^2gCeLq$S^{wp*W^Do6zzX(k+_n<=dV}PbR~OFwLJFdO0n9=#htu$a`i`JK?oi3k zcqX&^(3s;#xrNWH#B?GI#EfHLc_LLc|- z^u1r$iO-raqIsHGp|vZ7JukOwGaLGu(v@ohqF&d!KD!z5rJ(S*hF0@El~sDc4}({} zAW%sNf7J)Y7!w5@PLo~SJ}d)jE2=Cdk^!+ua}69&#qv(+7X^glvQv%qU>&g`K5hrf zfy~M=0*CpHvWtZ0<-fDI@7{R@|Z1^Y~X!E zrj?BT#PMLu@BKJaOA-gxJl(FuMT#2dPd-$FNoNa&cPX&SJc(-sW8QtSe0MWhs1Jb! z_KrukzD1S65SG;y(^(LW&x1FXY4hCrA}O_X;n@j_4k<>{eM5ixS^K=$7K=P1OOY0f z7tU{iY#|&Zcxzo&R`llI+j#Ppt@GKrGJoNt37>9HR0gCOW}1oBwtuQtNWntOU2S1i zc7c;FgOESS#xtO4-6nW9}?LEOxGzWqdmi`fu23BL#|&Pa8r6)X&LxJ&1`%DodYc+k{j81E39TqNzI??U^+;!~mF=Uh;Q6Sg+9oKFVD*x}*2bQVs z;)I>z9~8Db_TFdv5Dm{!brwih zTR6!lkEO%xfY_t{C{kx7M77dGf`bUan~66XFlgpq#`|33UWE)}Q#l~?cB@gDHttV{ z_nWct_b~w*xpSh}lwN3vi8Xy%@}%&XFVk&Vs5%@g;gsivEjX}E@TgjV0Y_ln7nVGGTmRI6rPbeON< ztRl3n$*s@!yZVd9xe0|%Ppx@=T%ZW@5o!7V;~~quSL;6Dg(45F7JX}Y_XG(DRHTzT zcrdcR-yZXN)G>KTy54#LbB>6-Rb%M17{581JUO7M*?$C{4|hRbv~G7;a-jx^)1@8q^&Hi3gh!||b|Ehq_)&@9?I-SNJ$nx#6S!HH-2=j|z(ZVr3f z+4%ll)u60nygv8$|M`mBBuEHTiI=5PX7G}pp&L0I$!h4+_!I7Z(V?F1mEOnxPHL=( zoV9jORu1A2T*&wH&sdv|;g_-8cS-(FSvhrfY3E#L`#WeYRw^v=qX_eIXZS(0ENa$- zU|(?LR$pJ=y$!8KJU;o-%m1hg5ljz|dt=#(~ot{i%A1EW{!GsxC4GKeY zZs5Y$cX2PQknsSPHdN8e0kd9LOFy>QvlRk&{IiKQJ4{DJh$^AiU5;mw!+`Vv^zTUS zXYD=0O?X@ZncG4%!+YD1H+yg>5dXbq#ve_*wlJ54a9KV;<32z1o1ID*?KmV)^6$S6 ziATDd0NgKmg?BHxn`35r{`ECS<1u6(WikVV-dFwAx?Yn zhR4h*4h}#bg}iglfo#C&N$+Kub8fnty!*)y6u)y9S5Ok4?$wAp-%aQQJ4wZ)&M zA}jnk$YcRgM2v5kfzTImiRz>+mV1}{v~(ikd3A^uTX4LRawx5NVA(ccwM<{;*He1gFBNidXy2dGZfB;Sd$jWm(Z2UTciPxMp^RDa5$SN7A5c+vL$ zEX=s!V3<+q?9Fv8!1QWqcz&H%T$}ryI$t9YCV;3Q3oe=8auEO(+kOPOnArMY97l;& zqo-Gg)qQ6^tD6`IEiTZUMv8Z;(_nXPin9BIU*X~Krab7MV2Ha7Q=`mqw_erI>-nUoUOLv5ObJe@ z=F!e~hST4Z?U+;jj9DKeJnR4KEIo#uN}ijihkhYu!#1|swSE@usl`4q)_1E_s`@V!cI0I^^IFMUEocs&2RcB46w|z+ykXP*c$uo zp`|BJ{C3}5QVLzM9nb)je(w4Tn$*dpDYqBQoxBrq9UijXgD$jeDFoas)t2UEw}s4Y z_=x!6tFWBrkduSjiK(UtjY z9PEPsoQ0^wE_7Et?{#&xajN}8n2pQ<<&;>%3(XO@T2rUZq1#f@jP1ZQ#E!jjSMQ$V zA1kZ?(bgSO%70jJ9a1L#tE5e6;zJT|B`8S7Bx=?!=54LnkZ_NX5G)M4A5)USleOB* z^M=?MHAyV&=dtjX;W#HMBmZE&&R69m@iN0Bs&S@`-#1yx<*#m?iI{d}J6p~83HD}y zQC#{DS}Xr88msYuB7oXtdug*Zo{HLE%>((c?9dHVhofj69HrhK4yMOVD7seb=0~_2 zbjOV>3G8nOlQH2&>z-AW#&rr%uddW5QGPbM(KR|5AML5y(gZ~?fQ+E)3*1%FDy3;A z62W!5LT7j=b0aI|tcsOH!D+_ctS>`%##R$qgL9HPkMoVpbDR=)q)|lD^)d-+O);j8 z+7la93RiJCzQ|9#j*Ot6$8zI*%j&Q4uHF=89be@qHjF$2TAteW8$|u@uFl-9UCsD1 z_Eb>C9(!vOU(z=uLQol|Bxtbv0OrnC67E&npS(YWMwzsls3%GR~ zbkMQwbkMQwbSLT9w$ZWOv2EM7o$OdUwy|RyH>XaWQ~$kH_ia6{s_zBvXA)ZZF% z8>JG647+6K5PRJ2CK@lM>@)I8=PZ0YcaeUn8Iox%$^@)m*Ra?zn#N% z-yY#@sqjG?0y|aVaPc|hq1W}h3gZW%e-VtK_g?;J0gue+Z68&MA+}~Jc;WGw6If)C zyWmY0aDD^brIAk;k)L6%1LzW_*W+(>FSz>}+rHC@Z6HnIeKi84ad zND5Kc*_Kak8jwLl@?;P}H6}NN8HxmWlE3Ug-{*YgO0HCvj~YYG$LwsdFN26C8nzoa zKG!xkk+Nzq^ypi z>^ngfOLO?d+xGBsMxr|ErWPi|qv_Q_O{S-4SjBcSygl{bH|;#5nA%hlZLB?S>FhSE z8JaF7UpC%X-EJEgr3T=I=kDycAF-W}+ToC-3;ZuBrG;xSw|G_UZ4-pEm<7Z%)&Z$D zuj0DZEvf~Ps^)o6oxh7LPZYIkHtfKY|g#irG8TTWgqsrd^xz`2Hl!BFzuoS3i$oZzm4~{yC0k#?n>~ zHVKmh@c{rMoHbOIx7`cg*4|^@!4WRo1r&f>_d}Yaa1%hW%!BmlSIVG%ec+)#g1P(iVdZXIj!^0~~_VLhSs@h#`$JSRjg zEWI%A?`#m%I@HZl!uk6*7tHH4Pqk^#^2LVp$ZJuDtgf8;un-}nGr~Oc6@0j#rhu+p zb}GsK!KkY$mnQh7X{56|5=d^qME9U!;bxVESiV~&JL3Xcr?!`DWG*ZFi|FL(N^?K$ zjo(e$>EdQ(qM1;$66%)*?RKCxB|EeZ3K1lE-%P^hK2jef`@Go~l|33q2reN| zryqqJ4=P@JOtmEsKJq{9=2m8tf`cDwZGLgR-z+e#Q;Mp^@y^=vHjQK)X@3Ekww~Yd z9C+ZATptnie_(2)j5Mycl$+SKm29u15ux1euK)Ae_L$3daxM?Moi1k6?c))AyT`XW zw}4yMebVQq=g1ZgGodHs_aGRE@yw^&(JDk_$P`T3{JNiEix!D&?0@pR-|6!NgO3MLW1o8WKU}>@tU$hw z=JAUP4+9&=&@Quk`ZYFwh-s*aYV_akAB$@_?5QmO9q=sd^3qLyMOQ{S3ZOB*BHoLe z;lI(xd!Kvi3|G3nbtHA%b8mc7%XUg)b`N5fGgKfd39y%PACW=$X2Xyx-Nhsf#XSsX z@X^f1(UUE!mjlCyh*M@M;mN}RG{-iJc6++$t?(u{qZuRm75jle_D*!ttP7H4JrC(a zCz4jJwsRSdU)hG0)KvO{x(v)D32#=e5PUKopCua$tT7qMn0W3AmsrbL8)O3 z5>rKZlp1Zz;=p<&w39L)QG#alV5{s)a)Tkwl2}^m#~ZCWH~eUO_>fY+ClHeRWh+I( z)21yjjyq~k>a9lEwkh*U_8JJ@B-Q3o7tRPn88|>aX}_rg^#0JN=t=9qm!!qgf=<>w z+F7WSqs-MAN+=pHO!0Wsl?`Olz*zwBJWk}0_Q5=m7f!N3ba}QfWFUKzMNTHP9&SO7&nu|A6)OFoVt>N9(&f` zZawF0eL?UbwXbCjj8z{(11tk6?C^4_$_qQd*dEty`^1~>!&Tc|=l1M%$(h+T19k4w)(pl<(2kvLjr|k#f;=K3`pJ=;C zO~)x=qu4Cm#YDrgOG0hOMzwa1gx=>SGVoE)msSU7*zohduF>{$hi!f?hX=*{E$tha zo;bNHQeHOhH*eLMC+mxoKO5TyDDP{N6-U5ts+(&xuUE0N5xjluY)P}RAiPDim5Ar&FDTZF8hhM)nuH$Ap4 z&RDu*5ES44WAh6IwaAO0f1G+%jXjPKBA?7vn?k&LVM9>7A}s?HizY^L zB>g+7f{fmVJRraGD*gJ*&nUuW9rWPjUHs3Cx)~zDNEWsp{W922(*!A~Pg&MTRMG#b zs>(O))4eS`L-VOBhRfk?0WDCHI=GkoyvVLJBTD{z45u&eM=18N=h7CnBv6fhG2fR#L}NVBYCaTvM&RUKM!c*_vi_ki zxlUfc6AU@y&LYiyJe51mh|T&JmojH{UFXWn#Y3qAHKrocOEpus<`|j{1GbaF_W^OW zNS0h86Il6Yqpk2LJfrA{{9N{JEwMk?r~o64SA^k+>ileBA(Rx zdCoznPW5dYJ$H_F{aAoTBtF~75#V@p^Kf`_<6&!LjB-MrF~tYHADpI5{arhbXj@#^ z#JYr|a}7jSHZDgi`z%d%9t4iQ{*kZV?lh`RX&ZpVA!C z-r5GZZ_S_d1)ehDG$2I6&x@M;5eKNIl~?ZNe`xier0Gs;vk{ss^gGgW5rW@qZ*N)~5P66jRNw}|BFk~q-Jw|zx;21D4}K!t3e7>kV&aS= zZu2It*g}+8bre$q7_`qAV%4bOz||@ig>kVBC&lsX9ay>GeJ-7NY2uKl7u?q7UA`luyNTiL$s5JnFTOMl zxYkBW8O=4yJxE}8BCWFBs*;`Zew0eznpAsJu z^6UQ`se8YE1;lL0e15zNhH1+h?TZD4jc01$twXqxaUgP_4o<+QMptNaWwue~f+B$xDGWs9;gH~MV z%&mR7>b@f#MGXjnOuqSKEcYvwps-dNS7rVhzfU!{LeBA97yF=`CZs)EwCs;1y`bUO zF-$jaoOb_|wjp%#1n5H z&oQgmclAff)zUHmdo$F4iPf`IxY|V^#quyxRM-&{j>z}z`Yz`4T2MCUWxhnjz|g^g zg-@*WX*Xgg&0wqBJCB5UGHs0b^P0HC)@u*nfKIKu77iP5Y9bPYp_%*WC9r?sFQ~y5s;DLj*zt zXCD(n(IZ&pY1zr*p|T*Szx&sB7RLI)+gYkl2MxO+Dlsr4FzqPti*r_5T4t*qkFaKs zIMlm*{j6cDu~88IPdtycdV?dk@os2oGu^vgALz_vaC{1Uv-q58PWD%pzN}OtxZ-$C*^`-i zRR&KNWZ5fEbnN5}+t1N}6ar3~{iS(eQhWRLwopcsU2tAxq|>#Kuy$O}5x&IIFkU-+ z`bnT`_uxu~WefSq5J4HfsmlN2Tc7&WQs>(HI-Jc=RaHNw- zNL!t7tVb|a3_Udt#Dhjj;d)Hc9XjWS7OUesT;-r1op2?Ri%1f9>3yE>awB!F(w5T6 za4f?u7|47A%Hkc0sv0#x$?b*!jbH60*Co6wQj|Vde`#j8vrpQP7%klXaH_y|x++*# zmC>`~3nn1)sYTj0Af!OkE`sraydI%oBk^1sd2WD1N6eH;LfIp{&2_u)qy#|tRe&=I zQCzmZlzU0zB~icq_Mj=YU;XFDDq};;wXSTiYntFpl*wY=ix(OLq`>j-pW|k7PRsok zI#I$E8R<5cbpA7`nry(<($}RMMTCP0BKGOcefuwr3z&|HLhdVSO$9-x+36w4D$BEM zpC5IUX8_^2@5dGrZt|0s40g!OkL^kpI;bh~(uJ{Kl~6CH(9pcfBRDFzKkuVh!q#qT z6(;52ODNelOX+ZuwWd4MXQ0_cgMNq9VzqPggo26b@%Y&J;t?K~tWTg&FIg|2y2e02 z1|hZF1dFjI%}BEox}Ltvy;GK|>-$f+V&#M>hVCJGIGUS;{?I6H%QQSvTa!DeLa*O? zl0GM0M`56?vEo(06lDJP^qsWW@kQ?rv3v61$d!9Mv*wuXJa`q|a)Tw6b0S+xMs4;j z>luvxAp1@rp)ZD^*vY0GJkP4~2g?%!3r=-C_4+R`IZ~(7(_aR@fSl z;9{j%az+6Z1cThDKT~~~Lz?K}Xqa^KoJ|E;*!OCka43@<+oWm%>bu~1#miri0pIc} zycM3d%Z-K{s2gpMy{@@DdeAQCH^_e`CeFC)c=1P!d9xn; zSND(IS8Z(l{X1`83d8Bo6HoK_?(yBDztjbMpLYqMOP>!lU;`DhQIZqA4q-;`Ds8{J zkir#6oe*M{q_0lPIF$ABcA@nAsMqX%rBQaZj?2-158LR6+S~!NRwj0#;NMEswZ?So zUVz)*cLb;l>Wy;nN`Hmj)gTl1o;@0FwNomYGy&Qap&sfX@3T=V!=2J5C3e@U8Yr6PegCncZ#31~wUC%%Rqcf;T@i_#1zr4GOJ7bKG}JLo zE&JK1T6k53w0%^xa|!;}FWH)BJJ9c|3oso@3dXfmIzS)o%7qS-M)w%ORW8e z)liZKGFG;@Jt`;9a%BCGw54XY9BnI(l(p1X?&uJVp;PnPI5$5ZqF5#plAoO1Lf`Gj zIjA#O~pSXfL5O)_7XP z0H8jWIDO9xB}a2T(%LQs*wT>5<_F8Cs!PqmR>|$XnBf9uc&tLj(xAIJ8AYD?h%7(V zmCx+uQ%P!s*Y#cQ?~3v7t~F9IA|kJ=v9--WRg`$G53eCk#8==E??3fjq)jVb5!6V3 zVJDMG)L>cEp5{>QJ8`X=BQWb-~{iM{{atA?(H)rRURjc^sB4glQl#q<89)e0d>Bce3%>| zWBrc)|4`sEukEmXC0{aj1bYH@`!Z->W4&t&(pMY60~gHH*olBt zGU}UcZw;Br+3;XtrnAMtg4g(0x342s53I9JZU-ME1uu5a1eUe5W&q7Ghs@!&I1t#s zKh+Z|3$w8yZIIvVewu#fr375s-C_@O7sdQq?wGQ}&Psne(N~dlNTLqB^Mf3TJ;}V! z!U|en2y;K8DqW)kF|*|@ckq!J2W@!~_8+jGnbprN@g)La1Tf*ylUjP9_8!sRp-jmf z{r0@j@0+~3&M{53{T!+8T6}0gRcdW9KBm4f!NL8`A*0S>oNBFekQrXN&1dRo!zQZD2!{f}aOFELWPY5??p$R%?_~)$=-4 z0+3u^4Ou`&4A%n7DTE|= z#T5+gWFwSS;q`nZnuoytUkI^BMSVexwL_2`Vio+h0d$d2>OOTj7^C`xNi1B?>uxS#2)sLe9P1m9y@WyouDwE_Y+_#J7;V9LnPgVW&Ro zBSMNVw5}4dARKe4y~H9)ylj-84~#=h8ph(^4qQCLrZIM|Wk9ece<0zcf<95j&p)rI zod+ykp8h|Po&OH;Y!BdEbxw6T6SKg#z>}XHNrgHx5Cwa(Ualpz5m7xNZm#4my`~J4 z;V+$k-dy@H5c=n6;g4k(a9r42Vq(pW_`SMxiMr6*t04c^$X@=xXZPzA(3t^ae2E9) z`jdSvz|uUiwS8w?Vl&7qs)KXd6bzOi6;jonlq0Nq3HAd#S4LsmEqL10gTBxxI50eh z#2f;@h&PanaVSc`ZsyN%oGGKgiuy2vwju!26*_{bVC(RmgDU@#)xj2vnYT4dFfkLx zdU!~G!UR{mcy(XWGaENIYCQ>+T(-2{Q$IG)_I=SdC@-@@t%eelqWgK$wwQC%jr^We zybdNHR!3(nJuu%%RSMNweinkTnfkPgsLyR>Sc9s zpQCa--JW)L;TT?&rf_M;?}{Oh|Vm+E1=;9Qo8A zZcj`kb=Yip~ z>{FY<5$kM`X(tzWul29FF%USrVhE5X357F##4YeAikK(%S*W!V!?Rj zc^mt6xHj%7&)zj2vkv-FSv!;|>CdomL)6#{?3bt1(5OXmlK*04%jt zMMxHib164KY7w!JUWE0l{Ba&V(}X!#IV@+E>IiR7=dggNPJy5%gEPVhP-*L%3*?b9ZMQosFc z4nLVo-+S)k`gKFRuK7Fk#J)v_85KR0mE)83r%D7|n0^wOv|%NDG#9mLzv}=!T4aP1 zM<}9!U)-jxLpONFygWU;WSG-$YU}ZQ?T;SXVC;_>zQ!hargwBzof=E86 zdC`6yeL~sa1Tz)WlRw~8k}(drp}Am~vHnCM{Loll6sDJ}_VK-ypXBVGe8h_18QFST z%GsF7zStdxeXUqIe6)li@BB7Ns{pJG?!~|o#qW41ypKBqCf)DcO}%2z;cQZJe0h5n z=q4Gf>Ys&rli8sltGvJUK_g9*i^7d3*a!c1LpZ=g7J#SomdBAsh2)K>qNE$*c#JA6 zX25ZvUyEeL{>e=h-bNuSc@cA{**G)VMF@UGJ}e7>Fb+agfQ;~lf*&k0a5&R^xn8p^ zOc0ML^nE$_{P9I}GyhBZg}n*g7xZ~NxD(%UV+H`3tGeoiUY2}cn(nZ-d~l_z2|?sB zIsFlR;z02)=L%w8D?3NkKXeF=Hs;?ViBunddF{#0-ROJHk0KksswdvPjl^S}{)&E4 z-Kb9un5smoN}<=9`6JPAw2l+K*G*gPzmum}s1}(%d@gTYj6MS1htEd=!Ws64I(_86 zH~snHjIZC_JM_^-Ov;P291N4(>eh@N^HGJEzpa+@=Fzb0>~*BT2PG(FMG5DztFmSL0`=3DV=QeG;# z9p8o*&PB3oyu7-0Iw>=ovx7$yI_e?p7mMnGQAF++^NvW-zma2dISaZ_Snoy5!20t@ z#FdCdz?~f|pLqOhL@kEX!_2qPxXt|@9dzERvD=W3s+=4kAHD;03uDxFVb_QSu}Q!okZ z1bb9S*R?j6jjHq|s1apSj(tDGW)c!{kIu7!a|F!}qV#)fXZgxMd}?89OL6wqqEm6a zCtX`4x=jT_Y_rA?$`bqDa7|=UavXEYyXbdCreInqO6^T&PgIia1c0&7xHC&GJ6_wNC?}#s;A70J`5A6jT1eqc-;E^4>!vHx`kBv&1 zot>`V{rjm|YpITDxE2Q~gyt~NWs&&U`9TB&2s)5W6WY%);@q0;Lsw znhNw7z1?9b?)Mva%H-Q-7{W8dDb`H7yc>)HDL2 z9Muc*02{t^m-R+op~fO43!GMffz}$*f~4863$Tx9JAbNE{V%f&%*UWrP?Il|m&!wA zu^1hN#dBf5*9lMW3m6{)=U5RDM-B?tG|NhFs9s;fFoxt#a|Y3Lukbz9+!%YgcV4p~ z2A30r$Yn=hDLwn|Ba zHIg2;%lYItqY@9bVV#pXda%x{CEPu{lz7^n6|L;Nhrf2;AQxV)J|L0#6fSvL-n zp2!ZGF4gfbFQe5?8)jy46o*~S^yAmtw0%Tzll}{p{zK;*^)5vp$r&^kdCQrMD)@mB z@C{4l_{7vsRjOmJs9Bf7erg)c!b~6KQsDXT-2OxE=L}<|5qYGNg@CSD`P*>2?WOoe z#COMTkG^NqwuL3v&iTdRdV~k~5!hA>@{0mFRwIt40`2)~f2wks z+q2VSPE6<^`gI4rK6WP~>;@|>WOw}q8+2#^)tFzAXQ*7??rfxJ`!re{T_$0hEAtU8WPQ%!lAW-6T_fw*Dn5Jl z-aeV)VLrK20j&sO#O;nDen_?97_N~WUU!lY|EO;Nx6FMbGu&3;d;Q4SdJ=wViV;Zm*$XPEsCYwOx(m6?-U#PwH{-g9(Z{F{ z^c5xgJiq)9yE2i|Zp-ctf0RPl<8yrzI`fw5^jGf~I5lHDk8ZCpd*q|h%M{NYrytAN zM%)wpT!`^K*5cPb6V5%mI_?eGTp<6C!8tV!HJ?)wCfg785Gw0ww+wz;e?~e%7B{b( zv%SY1?y7y~mZfdN{-yYutpKvUxe)O=(tRkbI-p>L@ccx{L}xA0l(~ljtlR5Z&|P=( z`FAQNhR3J401FRON`yKAi5DBb;M24nJ~55yfd+8|-Z2!$AZ#4e$LC?byVc5nEh0B_ ztaBEB|I+c_-pzqreIH%tu;o)>Yx+mx-*$*U3|>~3x|1nu*=isH-CFn&XyS4B)P9-? zH-F(Znp4h?o=a{N@TrN_i@kP3a0eUinf0C<4Wv<5FaoZ=OJ%Bo#dOMHQu=^We1A@j zf2HV)?p9m$q|hsqbf2=Yfpsy&!=fG>OiIEW)qbKaGW*7>aZr-h_^|%2f#6qS-ySGJ zOGgK)rug#!_bI{}3G8m2z>}n}1@uH@|I=0e&JG9d=}{UM2u_Y`|2~nOv>U=_|1mm} zNH%Na()}aLeP*7~SoTIk=*yMsOE>LUPid!Rv8(-$V{L|n_&V786}k8*=2DI@Daz^a z4hFQK<{Qa*`RsIeJnIDZTnRpPK9wbyv-!NO?UvkHR~z5{63pZ?yh7z%>%;6KR6rwP zjx+L68P~_PNAY3sZK-{?G|9fSq=FnVZ<%j?X^5M3b5+3*NmL<`f-YF3fOJ5bH_AxJ z5^JE-Qz2Ph=vs91h25A@R<9My$~{U=GZ+s2&^5TJ!GQqpXX2Dphxj4#T?j`tD25X- z4CJ-#%AU%81}h5t{&I;H&Nb#>Zxc1!H}PCD$;DeMIBmbsdN*+=oo=$u>!z>A!{_gc zFukD?y4%T?*V)+4gze65OIH$b{117KVKUP4+)ct4s;c>+V&Sf5YDs|H^yx((_5;j+wfjNL$C=TJ^f^nnsw-X2Oexz*kXmot{f{WeE1k zUj4F6eX+MZ`E65u^mB0gQsku{P**cPBJiPXmDH!cW{0h<#1?B}E_lW;o;`e8$_9DLA@GE+)}hGOPIiZUpEJ-EO(#)bB* zQTS7ad}v7gjyojdlRfGg z_lIdvT%5`}T>BC8=AYR{jZ)(P(Lr1~Au_Ij?f857y~-#*arzorwrR_tk`|VVEj~qr zbs0}VMX-xh_lp=L1mVSa!o7GqPgr6?R#&avdR1COduAtdu;EBq{gc@EKH_LP(?se6>gd4Rz0a6c8<=l zL19?mz^bd+idd!8y|oMF8uRF*SmvN1)F0Gdwa#mLwRQt1f>K4B`_q~I8n`S>>lT2V znRwT9c|%&*81@pjpH&Y#@oL%?qG6Amo?YbUqHffCp&D(WCnu}Tn`jJ=)W7hoBA2oPJ~e)R5H z&X+8TWTF`5}%nn9tf9%nv!c6ngkd#w>NU6}kXchr0Q z5#l$>#{;GjUjGKH9`qH4%G`ugD?<=V`@`sGKpo~&va&M8Jx^1Qb0p`^m~vn=;-%o{ zolJb~Ftqh;0tWoee@BSFC8@mqD&aW2$&9Fz`W*@-f3E|mfat8~-OPRwLoSjehWPM? z0gBybltF=KHz$S7x4ZGHU}>1w_t{($z@6{^7YO+)8%P&b+m}UbR@d5`N>jmlcYi%U z*O+ZnIbC?~&i0q{wanA^1dpKKvUk(zZr=z5_GO%JrOC|bn$UD*XsVPgxwtQDEU_n> zB-iHaTF+XeFg?&!06eu_O{*(Nh9&r6j(7Om?Fb|3gk*A?mFK-J&XyHE-$* zCvtPPnK>94m%47yaJ~qmYLCK&0V~EB*%a!6jFR@~MDe71DE<-TB4uG1r7KF}VtGKG z_xHcgP@fp_TyLz9>n0`ISU0Q?rx9(qRE_6&-x zs_BkXmqE;>|32m?yxN_->m^%Y!Tpymrv8?x6I29p7C(N&390Gy=IHW8U24eB@F6^q zDqv4=vzA)NK5?B}xHyUjRqc+yX6UvED)x2~2CFM!_Yb)l=_qXDn?~7)T5)bt;LEp> zKmAQSg?T+bXqQOT0Ly&|0(r0lh)O*q4|-%+q?+ zSa63Do_^-|^#RAvj6hy>(U#>?X4N@&skQ52K%DoE0Pb#dC?QOdjI1B9_;FaUsiI%= z?OleC#5>$iUcr&ef7uR&Pn5^Czwrzrd#}FRGwocL&eyJHuV&P$PQ7uha;HW=5KG8K zWeQn90L&h<*VIdC!$Q&$arE{M40HS)}Y^1JkOx-JusN0&{mo@95M@d9@bd9&xe?sEPTYD z)va{GkbuuTc>YS$cVm6_+iva@C3u)8`Ugkd6q%%zL!7pFe4h!bvByibv%!!};&Z;O zD9QC^GCrzZErQ=Sd3k`|Q{4mbNlUK^)zH;_akZrL+7X(y^ZSBM6FLEmcAI4a2i|{d zyT-ilI8P|EI9P%;8SO7#W(5=s_>>JqvXiaEG3^N<2gZ>=f2FRsmrp;RxZoy`4{bYM z;Iom_#JzLX9u2Rvd?$ye|EPTpsVy`gH#Grp@El*WVS;PNqGC>bS3vRt$v~fBjsdRH2ys3 zu5keK8vBO5HqmA<_nvazuL1=({JkosjmpKl^#|gd`3=W9dYN{{DFwI0#+tRG;C*=b z{OA9c+5hoy)q(<nY)p>5wfuI$t}l{}+D0 zDzq#5=kQWb%E#2{rd{?W~digpZDAIt~jyWmN2P^!07m8=0L!y;tNd9 zGtO%?w0^3D@AF>E+(8)V&Q;)AS;t^k;7aSW@V_HAPrrwSc7BeI-)=hM9`Ksh8CC-W zJ82Kz{B6fyC(Itte&z^1%OqD!cyV5vtZzWO2OF$MI=piEKA$<301ftiZLmGQL^Du_ z90TxQ346IrKA(<#^@5(3yQ3*R3E!KW3=1y-TFO==6l7OSY1Jy9k@!&f=d*b^f`|%t zJ{3lL)s=9HkCLxky7z@+j+EZpF818Wh=j*^(-M&Ln&vvG#*3m;0s$Gh__c$G>1x2S1MOSbrO_x9=+|DxhcBkj|6TH`zuAj+Pq zO==ot&S)>Y3gpG%Q=Bf@H(~%Ufg=b)>Kvox_jz;c?F>uV=H?UE?zCg>dfn~l>mcG` zA=qTrrVBDdjRHB*wk(9?P43LYozY4~*f$%lG;I&$Vg7{b6nAMN`e5mD%$`oK!`7gD z9;AV56z%DbdC=!?F0JL&AB9I+!GG%TS(EV999Z6>1FU$&uALswZ~we6&QdNcOUiRs zPpW&1oeL`I{J!459$qYk{dQ<3OCT#}G@>BFjJQz;33Rzxe>Wx+|Pc$7b7xjOEZ_`AY)tflA;Y!F3N+Bp@+s-4$X> zATgAeE5I|7z0J!dk7ug=y(|I7P&%WxboZNsh==!5K=e_>m;s&P-Go;I8q{z{=DEdN zS4~F&jaAuOBK!Uk#nwT_>l1DFSen20%kFanD63^l8oT!$t~Qj_Vg%(q8M(0HrgAB) zsIG`Dq;J!-nN8v90E16I8(4sY~*rt$EfQ{JpGg#AiVojokHbyoR{Cg zgZ5L4E4!mJa;YP)aSo3>3_E?;KPgJYJypPpzpV`oiOfQGF|)Q5G3DK#f9HUNyJ{p4 zy#{!e%mr2Wre%wAy{qXxxq0jke#f$-%T}*td8;K!kN6#{im!7--MGDMi>ny6L=Odb zS<%B%cW{)+(7hE09nLKG(YCBc2P1jjh{qGJqqUCg1%(EC7P*MT$+eQ_Q4skjS%Kr*KX?kCi^FaTej;ISY4BWRJg| zplkH^K2##j<&i3qU-<`jYP0J-PsH8X0<)zq4P!0yo4f-Y5@88fSsZWY zIU(Tj`P`vkp)9{C&vXLv9icpQ)A5JdH0BhK#FXDc(Jh z@?Lpi3_>TbrMCLS<^svOIzpb42dHVKqHl=_-ACD9vzt5P2CEkkx$G8SC0Xl^E~)WX zGpGVq@N_6JXngTi47+=wjjY;lzW)1#HmJ$9twK)Ff+wd`Rb>Wdq!KRKH$_mv zgF(_99C>erWB92X=LOt$d19ReF>ozhwTv(%;2fO(vlFVzzo`{uv4BYJA9$yODQQH$ zPkmUGM598xls+Yf)hwb+__rvU5`zXc^Y37QP=k%^9-_%F;sep1sxL|cZS>MgBS#&& zZP0Bldq~--k%g&crYA0qyNrp}XQMwwn~zeO5UHD5rm)pu2M5qd6+V*wRbK;MKzi9_ z(b=r4Wd>#T!{D6M%fP}Unm3hyB80Xg%EEF=K;e(h2LBnPL3JImj%%f9b~u2k;l!<{ zLE5UJLEFeB1Yvy2iT8_t_cnb$0yjavB!;2`+hVyf%pM-Oj`UDO1a=Hu=x!GhgID78 zH&9;$!bR4weimO`%nO9plLKH^%PPFv&&uH0+&Me(cRM^km>7D+lq1(~eXl09ku#;U z%YZ>m(d;-QkyJ7jNlsvlu5yorQq$3yk}#f+#ob6%Zn447U*g3~_o2-WFnD!bTZ(+` zpq2+8s<)QF1i4+pv~*i;^VsN;)DmBZcMqO%50c7Tq3L*`!j>FWP+!G4$!FiSBbL<# zCs*&v*}#|)yIc=y`_uCmzx^Wc?Ln^T9?i!$pXZ6Qmxj+{Uw&ER0Je)Uvx_gg`vrST zCWT4*x}TLw^ylt$_pRm2PDV+<^NR+Z=82z(W}BNe8Gz6NAg~FHJT*KX`I!BM|EJ)B zTdK_^<=-CoDfSaff#sDdPZU40D@WjIBQu@mWT@4)R)yvwD%fzkDiYKL>7n=T1nWa- zTmtTDPx(7T{e&~PCn_Tm{yX~U&Es|c;j|5xwVGhqlSE1nXT%dXsvWu;`IJwdUHfhL z8}%@L4`ws zSk*8b`XQZ|dpr_BU-BD=ua-(6XDV)xy(Z%(4ywAB)W>-HVrFu6JIBXt(K&>+qb(MC zC_?GRonrUZ${uR{XE@_O%4s`WoKhX}j^NK7&!aup25s$u&pF0!lz#Q@$LE~SlAg?u zqc1@_mtMy3_sH!PwA!^@$s_ScK9SP@o_I$1gS*SzlwvMsr40{! z>%XeM(@bRdS1Wo`c-!teXh?*qX){UA&Gr54&FUh(zke_}#32TFk8WcvdCD*%^pjx& z<>8Hftq%|%U1|@#Ejc11%8u{7EmP@Ad|tVJ2z%@VVJi~*Kic-ZyS%(_eZJq7_`a0v zxQl4hwlZAS;S1!6oE}nr&a`qt?i0v=?68^rxNS@k9ta+D;)r)4Oe1^_KUkOX*?+G^ zx8jb4Td!$uED381VzY-T=$#oJ3x_s{4O&$XZSY5m+!EXHQ}T!>W}JZBeo*SUE1REu zUWs7rPSy2!K47zVC-dHI5r~uRwu8&&4+e0u9R?}z@3(ne@$vZ^OgK-S0&28n_Zn^! z5w|dLBuj&;2Kmb?tn-`pXecG6M{u(D=UYquvB7Z(@wG&%&= zPz4+6YiDv z`d^==HQ*p>_x@WHc^Mqek$WEzA{205?a2vo8FV{wbop(hWuQ8lyH~~DDz{V#+a7tRZBpX=SiH@oj64p* z&_S#{ccV@xbyQq2#d^8|Sy+tSad_BNINeOSQax6`qN~ybimt_dqi~AKb5nDvI>%Wn zKoHPgYFt#wVu%K<3>O!B$VbPIXdISvtcO$1L<6k9Jx_An`J3pXOS;2|^SIb!p|2hC zMRd@`*lFD+)OV#10B;_6dKVH2h@L>hBLm}y@)PhG4%lvNCYK`2%jdH%_eZ=#l2E6) zIPDbh&wgi_0@s>3=Q%HuR6#NGlZ=<%q?(uQEDooAwm9KaC0?_Q9`sqY{4%*EfUr#4RIPDr+R+mVAHuJc zSYbblFWt;qR%3%IDe?jfbN?{+lsr#r`+o?#%ceM^ZcV_!-Q6v?yEPKrB@o=*8+Vrw zJh(T(LvVK*cZcAvY200gnyPtcrcTv4wLU$+VDG)wdafIabwiY+CliiJgOC4j;2CrS zl>K4$+px8pEnTBBIQzS{agV|U9_-PKi4=;HZzGj*4X6{)n8vm{`=`?$&7MY=d9v*g ziU*@*fn#XjWz3JCWyUx|)7^G{{%_vOlgr-)UP6>gfGDHprz*?>f;3^cY5=4EV zP2mCFN=jyNej%J0E+{!s%>X**T2-70#n{^0C!mJ5e|G_r!Fl_2@UgBw0)k+F`YfG&_<_+h7RHjiLe)p z4F7mz9eCQ34N{&Lu&>*b>P2t%p8Sq3a)>i$&UIPW?O z1V6WCfwCMLlVb=(0J;gZ|1L-O-5?jvK)dB@9b*5Jdc^zqVk^VhZ8~Sw2x-0Z?S}i| zGWVN)dA=}_kUZLh5oC$zW5+OCILkkSZ<+JL0y(~`)*72nfb7xyhWqK-hIfup?80Xq zo9!eA@`zvXumP))8ZaAn3oEj7GDA{!C*=J?$IeIA^=r!^yhX2(8t20s^V9Q5_*fSP zvQS@yoE&>kyx`z|jsi z(sGBTLwx)>v?oh$4pqt@LTKD2F=$y@HhBK7bF;k%*Cz!Jpj;NXnJM08eO-bB>&}ahyRRK4nHL~iqEAqdzcq_K1vxbR@zK_NK^2;mb7Q^c=baDb zOE9^APM(0MT?3-g(QJdXX%+;C=b+tMQ0nSxV?DC)l1fl#IIju&B=wrlw#0=_q_&~y z(`Ob_XCGf7*Q3W!z+gd3wp=gq1g+F^F;w22-_2>>AL&5yl{zaI|ubdC3arc{Ao?u=BfdzTId>n|qvlS86(BHtCv%v3?Necnb!!f+rwiCjH${X6(9|!ZDDE8X+)afirjM$LV z;=ONO8($!ehqHXi(l;eEPw?pEOzw4M^#;fiKA0NE0sF`q8;j3J;ZW4jdy2nMO z5;&VAQ$|}D))W=V$2m%N;gsNT4;4)v=KW;xs`Z_(@2nkn(U07-?kfpJBTu#-*yTzCTl`Z)bP0@ph7 z>Z#_DmeB`$%mr{oKO;UDytMmXnBo#SMNkFL{b(4z= zgx!oT@A11%T=b~!ar+uJsA{#H@EY#Z*sLK*1AE2lmgujx%W`)(LxZm619yEuanr0-s(E z#q#c4s!V^Lvl(A-xGGb;KMc)CeaL`4BxRZTPQ6%+|Hshy05orzVs&!32d9^M>>SE!6NBv>72&rFR_Fq-BE zu8Pp6&{noD;VIIgi^(jDZY0*$La8eF;u?DDtC*DjsZ06l^_u*{ZqO?Grw?cWUsj&} z%p<3}S@l86v#5$a8y5HS-5Kt>8NUqMMpCvU5mB^RE5&HLiIs&374td$`zzlXZ_4zY@_L zRjT&MXXoGB&-R*s$q2HXO?-Ki#<@RgO)=SB5M&W%)x-`vUYIv_Mf!MwXyZ&nwZYg) zn?6SAmPprx+GNz{g<57}k-uegjEmgwPFim!g@JR{^mS{9H@m^xI=}o))%lXzQka*e z^5uL1H90kSAYv|o_PX0$ArPj6_J9b0cW`v{2s`C@-s=fPXk@pB16dsXA)x zqJGNohT!Dk*bWThCL!+Y;YfF+ZUKwbC^^HW!-8iD!kqDHE-K5eOfAbCCfN}~0W2Dy z_jrt&$Cja~qPGnjI}DlzvNK*_kWohWqxP^_D(|fErEMhvHu-nvQ-I9xZ7a30I#DXt zhDx$-Qha<$uxz~$ld=ztjo4M2Zg2#H(`Ba-xf5u^fo8tmM)ajrhOW^$u9p%=P&dC@ zWRshLnX-MjyO1Lz*;3>KMxsK+-Kk76aSvhrIue%NZ%L7K#+{ofa7H}|2p|Ykp*vag zkTawBabBd{<#K`2mhfQrcG-DZWR3Rga<_#(4#kJUjIul}b2DiP^HB?!e?9tAJkNEh zX9w~XtE|b$m6L>Ywu0PucjDYV{aFpOq_@8JsM*h4zce_USoQyei!cn=(cUt3vCKgs zCCJmW2Yy+tDr;xwZ7`2ZgtMwlhu_9N1DEv(oi1q(cqj7fQNhA(*|)^n4JO%I|0O}o zQww4dua|d*@ggh!(ew6pWBhUeEZThOJ#0PiTkS{V_>KpJ8@6R15*uQXLfsWrm1rN_ zJ`(Ss4TfeB9)zs#HqmO%aqv6E9oAC9cQqYZ{7x%0H(dA^*uY99J=B7nTY-pcYU=?5 z#AJ@08h4Ao@9mxP8LkcR6HRglmR!`3VElFWudWLR54)idEbtz7iX1|G%vtgCeC;y6 zEbkDXF3hc`2ENwkDH~fQFHQNoN5%c>rStjnN8A&FASTI_w$)uK!B+2pXzX|IuEQx% zb1!a3*!FMTfL_JAjPtk&wuRG37@kdloGwLacCxgZv8ZHO8+4iEBFXs1FWvQmN~W!`f~Jsx6Zq(e>`2kPG?}~);NrAGdu6T`CRVzI z?D(XYn$fW{-3%(M|GTI=riTRJSXzN%6Kt_1TrmeQ^Ap#iTBkV(K?jE zcEf}s3`E^w7Q|_c!p56Wme(C z`u5tD-Q?FSkvpp0?J+I3G}-TT#?DgL=#To%-!eVMcs*k6toiu=cB3Rbm_ic)fk*;k z0|JANzGqe*LTlmGin_C(V`95w7s`&D&KT{RH>f$^58K#zZ)?~RNz2CoosA9+k?w5Y zhd8vUTj5{*imSSS(z*pP9eTg-@e_*ZUJE<$yyEvyE5tNc0{2h3Z9^KHA{8U=Q3njR ze9x=ZQ!sT>sZ~gq!s^sCe2>TXFC?faq{`VOIUI%6-61<(2eZ8YTzL&iv!ie8URy}9 zMMj@eI*N_)BA*0Lboy!{ZdtzQoYdHm>U`EpJt1XJW79#;@WOWv@H}tr_1S8r7fo{JlSdcl&IK{6XUSZn#kpUfYbP z5~(B&eTlSJO*L2xtC0SJe^-w*8x*@6{4b+*^hx17dYdTTt7#(s_0M&<_jYq9c+L&U zqe*l;=KDWwv4J*uux|s_dweFEx56KXHMvve>#|a^7@M122tN9vkjWJ{5O-xp(MnPh zc(ml8us+|8Mnt(PPwG%G&Cs{}8uB`Qq;sDqQ-j;7`G@o`#`%|lQ`!TpLmSqzWh=#& z7_YqI@~f(<$@voOcp5^-Y2@<~Fve8j^a@(6XhjWhrhJ^v5iqr}RBPb1!gLk^eX3gc z^_J`Z*#-WO#{Hll9C8>>vGg^EF#BUz=Za+s|9}Du$9s=v(s0ZN_;&vld~ctp^uBkU zCwExA%bFvS{V<(ewL)Ua9DaK>ALaPs`~wU z(kym8vv=;)J12WrQkvi|IQeaG+vn)=!K&tkAAD`!Jg$-fynjohSTO!ioB2h;gmO}G z%ak!;izxZU=n;HXxp(O6RABJo4uB9Ue73i3yX~M+?t|V=DSCkm(_8?3x>dcv27dul zn^3P3K*)AB`#WJmJcW*&R-a-@l9$?FuW@}@9$@SfT(1i2}0VHaV zyzktb&GNnF#!3_eL%lc>TSiuPPVCwGo#pio`0hFEce-3pU$yx-=`~C7(nCS1^Qtl| zhKhz}X+#ZT8XOv$(@+&j?Rwc~FJ%vaD27x61CI3}n{V6Nb0pPo8SaEdG1rxj8+D|Y zei*Bpzbk6imLsvYGTm?2mgo6-a_*=p=9ZU}twLYse%b9~86M7;as3dH^K1;R7n zYu{Rkp_`GGB=SKj*ilm~JLb#lF9_iY8H#6`V~72!_s*DBYuPwPn=zJSiR15GMHgiB zzNf;iRIBb8CpX2Ef#@&EKDW(sGvS-ScB1(}r#js@UA-YtgqJ3Tg!H(dEY9NtCk+-y?YCF0TBha(rykOk0IEjY+@5zE31K@!T$IL37Z+p=7<#uG}Zt? zNn?p^JCz9H#l3H>$WtnG@?LPemLM?M26qlf(1(F+S(r3hYp1Wv=7L4lyf3+76V@-x z9%n8`q+&oY(a}5T_27W8fc7^+9VQdMA%&t_{c>__G&U5<;s+nNbPzSSYv5sY3;m_&9JS~OBc@lMm}2+VR@fPBPKv_jY6r&>+1CMJkK{;EuLsWW9= z-vXS^#_iv{t*8mjJW-rNf?bAnXjqIqFcE8kb1)O z{>5|%n&f|)N1AZ)p^ho6ZAUp|FRm>gu1g%PXJX!qvT&@a zd=I+Ycp0gpX}=y@xyK`c3Kb8tPhKbXXqHK09jlW}BfCzfKQYGLexJZXf8E+-kzK;d zLek$=i(Ose{hGY~IU5BL`}yl9yUp^K$DEGGjmpSB5}guIu+#kI8-}hTj}ysb69D?T z_bp?#@?)p9mP8r)_1_ah%Xeg40S!1CUU;H@G8z_AcT&kAPNheoryTA6Xmut8?Y`2H zrZR3lOU^ABguNyGxGz1$pb1R9o;)STLI#?l1cm*bB1FUuka7RC=^~`mmmdZo12EzZ zuOPqb>}bX%M$HcB_fTDVE;8@ZbQRzhNoE^YqLd54M}JhiSP=~A{l&^vQ@&>W zJGZ7>>njcQ8x%f|>XcF~&VxI#DFN8XQ+Z6H;j|~3r}csU4kUAlCgy@aG{}Pp2noK8 zf6_ZLGeTZWkAw5qAnz3Gk+`6h0o7;L!Kc!Fzx6P_=imNr9?op!YOr7F!QZO|Xu{$< z(XqJd)pugH+2RwB2;EKKTV{1}30~i~-c&#dqbRYzf1aCo3{nXbzMl)a!@rF}cSzmy zTvKli5`s@w7qQu@w9}QF{K98rf|c9Y?pa4;yZPWws?NhP`U`uvpfmIjvK_I?*WKL^ z1ee=R!aR&&%S+dXPN@Z=kuP`8{aPzI&Rq2&rN39S;!03}9YioK;OBHz1`x#nI#UxZ z=T^pBvgQc9j+TP{-jwNtK*ea5! zNYo&|$^o5wIAtuSc(U<+9keHve8UZ!M>mTbjkHrStxV2u6_Pa!+$;Mok09FgK5IBM z=H6T2ZJ7Qi>KM)`eyL7P7xFi|0wrF@jd~Tr|7)r6Grk+e!Dsh z%1z7I>vVloAlA}}0dFPzhRIdZ3OmOv&0Jf?F7tY$%>PL;xHT*n7Dv%bg6d3kk_Eqn5J-b~u1e)S62EF|!=$Vh z$$r6^>B*<(2bdfO;ET%P}>wBCN<&WWyQKh}$zc#G_>&MgbrtjT)^zuy6{ zWxa{MJjr$o?W;!u!phav%-zwRtP)bl*o@wPYOy}Iheje z76Gl<<)Obq#Gu=B8Rh9qA6{Y&t=qC91a3FErd+ze~FDlT%DyRr|r-y8^#= z7%7`09$oRQf)`sWEg#(TBp7@r2!mF@6G z(Uc6pDXlZiT;K^Ad5cEKiAMM{U*#}iL>+Hrr@ldaIV%RiE>Bg;LSO7EY(@|^zl2_HxL!9x1dKv>gXbC0s-H0kf7p0o1lsje4bd>YeDp$Tk%f8`k#xF{{%R6SQRwg^QHu{fH7j~-fO z0j;`5)RAb0?_k{jLx>FvQqC6xlfCQhAo&hN{65*G&s3v0klXx+u@~mdxt*kSoUb!~ zcC#PCdt-hquZjFXB5~!x3|WBA9X5~J999~tjoc(sSqStz#YdK4#HHCoI?O&;PCSSK z0%fzsLVE8BU-q4No6p2#)Kd$cw=0ow8D&ny80k~#Mcc(oCtN*$H6KbB|3g|8x zddFN!e~QBJj{o<^Rjg(Fcwhbp;%+!tSddo5b9HCAw&^rbN=7q;B)NxaOmP>Gyisz> zALCU!b!o-KIQe6WEBA1ZS9NAi~ zQv0zH=@bMgAz z=#wDKC|_GCfvA~MXFG3-Z~CK*P9dqSgZkyKciEBX^-!4%5+W%mt0DOy+~0nY1{NAU ztQh|WN{Tf8o%^5ji46orO>r8IiKlx6h1P-sMgX@yWN?5XN_FZ7ve-CsnS8g;&8pu5 z&LRR+sftuZ^=T?L1DM_(&e#GA8whrpY-HL`DhPHD?NCj8<7_c){!4lD!A?3~6@qsO z4?RSpc77j7dbS0C23x<^ZZ98ZO5u2giU05Fwhs?>`)V0D;`5asM%Ogm=Mc3K!x9PZ zTjtbl>q`y|^R;8{Jy*~It5V_{GBRw1afM_g$t`;b7mxo8OX^oY|e4{B4+vEEDk66?|jqs`X!Uri$Q{(#FqjFn~kmj z;nxB1vlnDCS6G(~=SekJD3xxxV_483l`*AQbEMZxRW^OnCwx)FM{2$f*0lCKf7J`H-rTZT0SOFbF(O0X zpO@^f<}}@IME+_ zUkS%FyENXcLnfTbCq>YgKlu94`q*#_p}Z+T$Ih4GH^yC!1J5vTGcM7&vH}qZOTSRa zl{nD3?opOO!M~po)oH1*TWF*@5#=dqb9UD30t8qZ1Ke9-(6_c|1wCu!1dA%YK98sd z_R=|qK~DK~rp$Y`p`wwQh{N+)qhfOyZs)0XzSVJaKvVJCdL`F-EO;2QGrF#09HyJQ z)lqc#uyyu9?5dLeuAZx_Hl!X+sTS5ZEJ@!c^?@~}8_sPB)Dfqd$1YbtODh=DEd(nD z=}bXsNtPMGY_W6K#CGn10#|<#T?zBd3fa1-0v~#wAy}n~!xXbSdJV^V3yWJMXAAF^ zeA)FPYDP!v_Z!MV7kTf2PgJh%eZph5`;+Omr|qh@VYuo>}EGCk)2y`}tf4sD!oPI_6d3~@PK;n>8FO)o0bDZXwg4Erx~xx5LYdr04P zXo#&f_U8z!XHN#0S(H`gWT+z(3VM#vvnfjQ=Osxv_-b<}9YvM&KSKQQ>Bp<7yxO@l zz>t+66d}+6MPNnqC~%8h45TO;oLJ{#=+3W<+IMZQXdAiCx46Lcmi{HrtY627TvEk@ zR1ju2x>0li+>7>@?zvL6xql;x5Paw~5fY%YJTQqU*_~$CwFY%Zj<&=^_6r%CR+!8D zWFE<_&4lT>`5}+k6#gbzHPu=BG}_0oAGKh@9UVJW7qjM~mBl2@&t>Y@-o*+WE3{He z9g8+0A1vpe2M_jrweUAj31U)=r>F+Ej_>xx$+=;kByJHh3nSTH5v{IsIao+vGJb{m zhiR~f#(azp7U4SaMf%UWb!1{qtmOF5%tX%c?1(i7`53EYtsswDCx1|-uVbSVqpi^_v}J5t^* zxQ19=cxK<-JZJ;jiYQ@aC0pwYpp*KOZOuu4|NQi*!JW<|)3IBY_vPj6f)G+ON9UL> zfhbMb8&dcfWALTEVTj8wB1WJiwgl0I@v{J@NN(V<@#|;SNil`@>-W2$5@Y`W)>kj^ zd;QJ!zT)NO&15kOBxuJ13C?r9Z2zEB_N1atL7!HzVJ<^HgB2=<7?2`$6yi%{InV>gUKB+^&&KZr5ZQBslAtjPaNutSXY&9q z;e#J6ut9sxKdMr-$)M96$bv0+lzG}4oYBMt>(VGry=(7QnzP=(Pg`UvbXf;-%_BE3 z4Id%Yl9yBOeec#j# z)N#qFB4R^=EOfSC*8PRx=rtX-1+B?Q%}|s21lYJ#T(o{N9yw4Z_=U`#=;aqGAx-HF zMa4aw;A@P93S4114r)lsdSS=&*e$R>n_on}X8P|=i9x|e0?M}iEHQ#?J(tUL;ShOe zB{|3d+3Nc=jsGO-GR!$bJ0(c3v9;f}a)>EPG0YArc~0Ha#iFSrZbZiycZd zEgM=#^6Bq;fbTzE3WKnNwre|=63W5M-Z?y`T{`myrc|yG5qgNo8$^){>MKH7u(1)4 zT!L%3pg#c5=m~p#vrF?RfYtts`cu)%MB1}gSm)N7yp1_A?0;WI8n8L`uA+uLYjEKu z-z1zTr_qum$zk~Ur(DRnznxQq48W8B@~NkA6uWZ z*4ki2&@JU!k^pjwQQR=;m5giFvvEEWlfZxlO3wz zE!0~)-pnL6jS(k2KETF0SsF2PKf4aBE=gn;RkZ#Yl4;^r@kJ%U#6@Ti0T8i48 z1xRh#DMIoL1NXB%ioLGqQCru84x9jT*~X3~%;#O%8zh}cv%CB5uZv)X=IVf4e5@Zv z2kvKYQFCPo5wNyMt)T=Q1P1>I{wRU3Pl*&&w?MMGW{GI^Ibbci?luX}o*qTsyz+Mf zar@6LQ~S8~>tg%vaH^tHqu3}eb^Ynafq2<}Kr-qQpsW4}RqzvEfX}YViiBFHmwy}% z@xkm=(AzcUO3?lK{p>RL;n(wQ1}!yEvp^@6>oTjxspPJy78E@rl5Jz7P6b&k)uD(8 zXIj-dDD1$`_DvpvI}}yxMCNQ-^=(wf z@yypx5_4WA6l8qSZwm>%-FjG7OZyRLLX#Ys+I{U-uV+DS#{KnQp!tQmkXTJGyc_oq z&zh39CQN!HN8t3Jo1V-$A4v;i-eieh->_*{kISCoF~;oL9Ty4w*9o)4hm0FNcq)=$ zfNf8>FIk;e#qu2u4zF;pEkyF_M-p+^JzL=9+R2O@Jv^R6O0t2 zq=uS@{2Pi+=LXIJKi@`cGHLSP=b%VPh3x$aGmNN-tEc-KGj!Cs)C_}Z0c_KfL8&EV z?ht-ut*)qbI~F&|$Cl!``vy?|3DA$1{`WN`2Co+{pF=r9-pfl`}r1D1+xIk3|V;N6P)lj{CK-^tv~G{-V*geKk#Iy?`Lj4iiBinR?3TC9q6p^XUXik>n7Jg^i6r+H4bgl`U^ zUJ}wXs*-hNtlF6!W1HM_^2yZ9S*e{C9=&RPV){bABxGxYEf8BmohnDZy`gn7zR1LS z3KKeD%SwllB}^_m1hX5d7Sr%P3vt7?b#ZK?IqU`h8Cvz!kXYZN(~1J?+GquDwGwLO z2c&1&W)J*u;-;efkU>V@JiCsN5bAwNNI?=)=(zs4i2=Yp(0*JW{o)UZg_Ou%GC@|q#;f%;j#nM*u?^6t$;Aa6>qZK*L6b~Ku zjwX?B=pOeHiq_2W~7k$aAg1!?|; z#Gu~gftii0F*f_%e&^}#l4>PS)E5vjVFq$>k8t5GWN`g?`i1kQF_qj|DL2gRPk_IU zg{dO%KNL>Kt|Z`|fY(kbmzx*rhef*64oI4YJFQb8#nd)MFGb)BpA>SwYRuwpxAsq zHIU(e2-05e69PxLsxic53YcTkGkK=!+#8eb57?0R(VEK(%&od;2ma<2q40I&xdp}@ z8ovEClwYRgeTh)syOd(jo$>5S??3Y3ZbR(PC;Uge`ecfL#EJF^|${dr9Qndj{=NH4D6yixP26OjAc$#Z6H;7l2 z(+9Cgt*&hC)$w?S0$smyJ}%d7iN)S(n6EdzjRt0)=yf*61Y3!jH**EXd@_>_X8KuN z_dTh<&ry`oI&yA2BBcL~xLqL2$$GLbE$E0Zc3oddzg%ZFwciL?sPnvUNMDhyp|$T z6{FBC=&5eD#4-IE3dFMAUvKUSKDCT2;85R*_hYV8vTse}%s*#+Vg}>se-DT%5BFPn z<#?yf-I29S{Sy9D)=!WYhP>o*TM8-sHdC%{bhuib?OQg^_OLax|2KrA{Rf_>Xuqh! zj>Yo`mD8KUcE>`GN(XrL`^{VKOKD>#@f~*C6M`vIck;hr2Pg8_vAhhS_}e{PyzRX_ z%Y(0b9-NCo{xMsN$qj2*5tODB^gQZ(O!6(}fn|hm$6JX@;A<6zze|cR^%D*|X zA|zM`x>t?Hk5Wb7I&NF!IhA5#yz3@y4t07SX_T2o5&8&6=5e39QH?xa*r%RAaL@M# z#U?qD&3&>41&2W|b<{N@gfe&WJU;PF6qX(8PYDfU1)9^DF7eR6ZJ2Ev&Sv{#a2A*} zTXj+)4s+_xkfM6LAu0@7hjm3Viqja1vA|F`VMaZj(HQm_zAwKXt9Ot6IBES$s;4J* zNQDQM570P`7^2|^)$fgW1dckx{|1f7TI;+%Bqv15Qygpyo1~kkt-pi_O7O)JT2##M zdL^#=H4&N_Sy0AZhzOU2lAx%;1#^LQXW8$C$UKCO?+`>5U(*kQ1oaB+L~*k`TnI{j z8k$^4W^(^F?BP3FFG@T|IsHG>1rKbFs%zj_t0RAluGxmVso$w&)Aw8X_1wtuV`RsW z`@-=)5!Qf1#N2n!SNE(qruPeLirTV+0m(3BYE|#unIL2_@Vh=m5yqz9v(&3`dmzp0 zz-B-eIm@BXnZ#~>6t3*y*`HS3()0em?cR4>@5_-L@%G*A6`Sk37E##@%A^B2_)h=K z0h8(<`OV*R4>n`sWGF=aGc=Q&;}_Aax>|jCJuCS)$Wsjj;`$nutUvd$RW&Nc9b}z` zBp_?wqq|%U3~TD?WGioqNP%|K-;?IfUtNfWJmRk`3{!pHmHARHHRE_K)b}XxBme`F zAXhY;W%C1X*;!#R|H$izW~R z+#b^aRb8D{`axpOok}b%{H-TJssTAiuMa9gZE$(4@2_ItU1!fSzSfZRKZbYdTPy&GhR?NdwqMcHk{n z{Y3k%R?H`9$zn8LCUVhw5lp@&e#)dkI{MXbwjbRUb9H$3rUqoJ6eBz=`9AF3cJ(Gp zB}rCOHC5`NlB)A^mNz#zksw(7>~ut*kWG@qP%HIPk*8GCbLanV(KaBD7-p_D|40kgMH-$NHa54iS&`J6yNDvrUUoHU1br!^>RuZFu5*EHvY#``0Nn6 z{aUs?b3R}j-UGD2{b@H2^{!|}bRo3~f9{B`uCYR}M^HVpziYl(B?%XewM_OMo;GT`z1>KK|gqJ&O6v}zkvs6+&VZ-gV1FPEi4R9Zg zyy{W?UToKpbTuBSyL8HFNS$Z{Y!;02dN@p{xQiR_OAVzWgUDa*hulm_Ph z1A8#7dl}?@Ru-D(Yv9IM64zQ1=h%jGvx5X9WJq!i!Y9J&u?^jTn3zyL8b&DO5eTci z(kctXj+y1xA}rh(T5K!073Jk}75_or1fp+=DVsS6NQWr2WT z)^p0_YkMmN6clrE5Hhl`_cGC!mdr_@U$9JSo8xDnZE|SJI$8!6U4@@E^zjWLFLPBc zUz|DCZmvU>8-jxIh+`v*3@>o+FCoh}^?9%8#J}7i)mRnpd#n1vXp^W6{nC6j_3qP} zLac>NC#c3?FFIQxZhYC&u&);XPiWJmRV?7TOi@^zh6Q1!jc$s>sy2%+rL1pi^F(_i;G z6(r5O$yZhxyyMJfx;vWS{9a^w3}bm-8=IhhB`{QLg|n-{YKa5`z<6t5)wGc_Cux}c zq(+;`4sOjF9GtO}LEK#T-$!EDN64N16XKMItAM?Fby;Ti6Xx&0kMZ z;aIEy4R`spcV@Ft7p}^DcjzFeumnPAx&StTZ0oZ`5B7|1L2~~?0$J7YuqK@lc>yey zsz!q=jkVKzz4Irxn$4kvyCES{L)*+>oaSqFen=F1QD`f0`Oemv`xBs>prF5bGEP@t zVxjpW)51qs6pSv7uQKWL{TI6|*nTeRFO~UYH*RWNm~d9+Ua*==c8PZ<@P&`StY++c zq;N>~AOzi|zc`SbqU`;BeVR(Tx^9tm8ul04m80KWgUUr0Nf*h8`q(7?*F7lS5b@-b zNH=$=a)1~duR_x?H6%90G$2eK)6|XqyRn@;P4p`ajSJDCW|OHZ^7it&lo`M8io~@u zVE{sFqt2PM)o&VBpJo3gjKPl>d9eq`VRqqD$~oetNS7Ytc34}%2)70f-fO10pet+> zFK1Oqq(Mby?oJA}w;igq3PGkr_8vjD86KsBa|OcV4bqBjukhs`7aHVKUXbW^$ItAq zOZdw1=+xdKq&O>_-%*U&53p~vTj0;rt&_BooKtqQa}D_1sQRZgG|z1en28nlIs5>J zTFWk08@VipZC8G=`VEg#J0iI3TfX4+W}DHauvVNHxSGb2jss2(iKJS@X`{I;;<634APF5G0dl$Ic4| zmwJ|4GrX6_0f)TU50RX}*-dZBKX5I{eHtCJ0Zzm2# z>=p3biF>)DceR}8aJ}+B+=Zqoo&8}mvRy$l6Jlx0s8f%!`{W4g9I+l`i#-PPF}ECt zwV-5|E?^dpPM#HDy-|sH@LB`f{n(iJDod{s^D*V&Uf?{0eoTm|xp8c;S`u+hB{zUu z8Pt|`aK0}6FCFfNh8WIn-A4ZUqnlMC_LwXd6*uy>v-$p<;h-73zJAoK=IzsM`w6+n zUWVRU?%IslEG(UDA!dDVrE!8Qk^*!$P0EL0w1;zOV(534ouQHt1q?XzB{tz6ljl21 z5wQvyZd+wk38BO<+26g1fb#^WM}7eHnarmNt)7Pf^V9I8ZIB0Mv`1=1uQ?d>oe;9jpY7qI zC#s;DD(Lu@D9!wqCuWIIs&=q>%Q><#F(vx&#rM6^t+r_|iq<&j)#C}-GDoYm2Lai0W0tejO2>jXAdCd_Z`_Rq+X#pL!rPCXT zjkQS*_sGEx&auB;E^d~nR&9*ihwP1Y{Ea)O9lu$^jAjECQ{N}rh~$JI5jxuXZ(8n&vTOkELK)W3BptH>Rh&$+Jra2f~s zqJX2oo@ueCar8qOgH84#7h#sT#e)H2^e23i1knPZq8*Z=2kC^0;UM~D~#?sVYtzWOndpCs>QUGkMFd_ff40b*lL8v9omcj$-H&duI0hyM$DAO14FO2*v16P%EnMfDnWQeg11`z zs)L8!j3_qkYRlVf#g#2?v0RA~Nz6P-_B?jyhM*6i&V`S;WJ~*+1x;0@xV0+@aX1EV zn>B3?9pu6R?Nu9GbzzUsHp4uj@QtEjij4_<0GRMeJW8;m@queYf?)<8abs67oW#6h ze{0Iuu$Vv{chtWOWa+~PKtuKUEdwu z?gNG<6+grvjNl!RLme290UV3Le={pbbJE(%NtUBKatjpNX+&2R8UAudmllH;T~wpc zsUn4!0OOrN{k6|6#V}emcgKc5Wkb}*nSH(M$#J0##vWnpj$E3OF}lc3Td6Ookf4xb zLl5%JQyt`}7s^&^`*@w19?c(D%63t#j|#v%tHH?yPrw!uj}sPS{(J*Kpr18) zK9fD8giIEYo&37XJKIoL6n#bJ_v(xg6Mp8pn(u`-*=faQz;1Vts=LL`_}=+oQmIJt zhu(#G8sR(9AY!48F-2J19Ab=t&wU)jNABUas_6K=e?R1+qD0yPPyNs@3T$OO6&zaArMhvApOGkfDp(Q%|mlu-K>X z7`-g!IM_!+@|B)3p8{ep7Fk6ln!JEkU7t_a&UWg9al9Tlxk^0Z4LTIangf-UV~5zb z&vNYZwxy&_>Z;X{C) z)43yKsM32kW1`*d8e*POQ#v=B(!{mulwwRoN*gU}~EJG5|G99|fW{DHsJwuR1 zT1?$JYpJIYb-8u`k$4&NN|(7Nc=%FZg7J1tvUAhMOII?k(2a_JAaa4D`iRWGwy%C| zTrwPeQSh2EsM9C*V(sRzS^2I^#5v0kka(Lfn}};%$~7U}USDcmgA2q{C8iTQ1Y-3tZJLMDc|sZWbbEoqn*X#f!3ABB zD}*mt4=O)#R#pBl!rm#kvViN_?Vw}Z>=-+?-Elg$)v;}LoOEnwCmq||v2EKn|Gf2| zQ+4Y5s@_xcYF({$v8raxIiE3xt{cE$W)#+_3$^C6GwL}y*1_UWmSHac4RyhFVcank zI#kA$K@>Nw4=ji<<)R>%&Nm++ukYtRYRu+5QOm-Xi)EypycENGi*!f24BF`ElybJTi9m>=ZM5Rx(;$+?eYe}Cm*#b$sOCL$H!IegM?ae#p{1-sC0%SJ<79X zc=mPwolJU_u6^1Fe&)IB?St6(P_2TQ=YB|r#a2IkSte%VhcBcb-n?tkz^d4IQH%Gv z*)+x~=nhf)jBspvs%0xta;)!(_V^srG+(1luAECAesGU8x_r81YF#gaH@*K7c{|hH~9pUq&wSS`3+njZknm)oKO>}<~*=)Iua#lMXdSC zEo7_=DW#rl2z}D#E`38$kOx7Z{%QoUCABr)AJX3CHNC%Gnw!6f8-i{god2i}A~1z- zUT_f)OSMKqKBNRuW5)IZZPko2&en>rQtn3IrBKzgAK+(cW3`q~_!kjp>wKA_g~7Oe zm-pNBJoELqkjA&5bte{i*i>-ou|-`M6|PebBgjUYF`wXEAD+v+zf4#}*n zAz%|v&V^3eKy>(xmZd`L{g%TSZPmLv=LH$xcxf+l$^g`lsj}mRE~lXZWP;=Ed}(qk z=CFSV3VF4>PNlMi2D( zZ#IfC)_NlZ<<3}m@Z%I8qL(|{T2Q^C@0mK&yiSY^HKAU&Jw_*Oo(#H$V;oCg>=-n0 z@rMJ3b}ER-tkccy!MVI5W>OZ2x>xivT>q^0FZO+51~P)DZi<671mAh%>8#HAv`)WR zds9!QsR?>!W^9>FR%_xsLhZ zwD;FOBGP)Hyf&Chrdj!uUEWMlbB7rpB;Qj8syx3rJShB-P>NF$xV+A?n*|7b!hyX< z-)RfxU&Sd9oZ?HD!Nl94C~TYFu43Bp$E#kaY~H*CAnbYp;2|r$Hhh_Ku&~sZn}-rI zbUA~FrJM*qw6!$hSHiaVIdxY8k=1kEqHmlgd=lJF4~2^M$fs|qy>V=9jCscy=p9Df z)V?_=`>YBMlSm3vtf4&9?>|BwhiNn`%@6>M3Ff`|C!s(Y$TMltX>7H1i3_%V1H))J z#rrMVnOC)GM8XMK`zND zJ&?3t=r%2$$Vc`mr9>2-=)MN_tVzZ`gTH24cCBX=KIH0)k9Zlx& zc3}GTPsk=EkYSMQM>FC6L7^|5na{Db6xr_adYZJfQlPC6d^cM`DD>eFpwY-HR>|x4 z3YXD`i?gbqXILxq+AHe|CH#zETw4Ci6mM$~w@!b@fJe{XZCxm@piq?m{dc?3W-3%b z5Gr-%>I0Z$G8Xybw~%#bMr;q-K+KKatU;7NwG_cWod(D2^z5B`cwZ-u#ox=V$@c%S zhK-i08rD6QY!+L(8Q(Jm9xp(j8>bj25qO5p-Yg~6Ge4-cPSgl566+~EauD@>TM>Sz z#B=8F7+phsV;9i6w1Eob6+QdQ{ihaku-QW_mJ)+^$ct~*OWR5mMUk_2pYMqbY(DnQ ziufrN2qBBR6ub%X#%E_GC{K`TU51gjMfRk70I{2SX@Jr@>-w}e$T7awcP+kV1N27T zwuELS(l^;CYpaLXb(Vg*gN)lkg*raaU2Cv_omM5r>@)|S0icdw9zh7u$Al(_J3XYX z<7}u=mV64P;h7P`2?BocjC`zr48~qB-8`O&7lUe~j-asA2N8?}9|mh_?Z;!)fE zCMkDUh<>~O9YWsl70fdCZ=?eRni6D*cY+H(BW4CGaN1p8pf|5vhHEiG=lE1y7!)aK zP`XcAp6gN%hjUyy-PBiyf4Y(!2K{zD zh@$S%Yt+J|oWgxu+8KRgln+RI`1oh<5KKS}xKJbk(8hJG24U5LYwmSj2K2ZZ;MxdnD@{XIb!VEdezS=nzHEM# zkL~s0<==Vg?RuS0IaZf7)8vTEG^rbt+{dyhO91$mbH^LvF#mm}KUCb_&8>Gpdlx1OQ56^8c7~Gu88fa`}SPFB;)tE=I!M%8j$}(9nOzLv8Du8D||LGuagHtjanzJ$>U4 z45;zpzqm=rez+=5#e=>;mBWk$6iwjA`dtG;AMP6?SJYA?@=`q)#ki#v`_B1?!rgYg zY6f_I$ay#AsgT8WnotUl4OOwbp{ty=jPw;j=@wW=0778Q?1h4Y zg8dAkODwZ>y_}MEMO8}$OVqimQYi0`K&QDymrlvdWr+ie;Qpi7T!Dx`YNwE~F7qVb zF^V5mX%5@#^1M&OdUWNx+T-lIlQ};6$T39P77Nsx-~t47NxAWy4ojyWt!tSn>WYf?GxTbWZOzY)L>KQcZv{T}AWf1^cHT+o(J z7G%P73`;Kx`$rg#r7cn75o0>c)dWY@T>F^xrIq42r zjY*W%IW<(Sdj0LYxpCAIPF_M>{lqup<2GqS?vH{ti1qQR}s z{(~KAVd~SO%+^}u2gGcqntolPBP9tV^o9sT4rkTmE@(ZH%}JxeJY?|X<1e!X*1RzJ84>O`iMsld@_jSm9ZMF)3KH`FN zi^YvU6+Sd$1c*2Wh;`bVb59yftx2Zg0~7MDIMHO-KRAyJe2DRvO-T8O>x>7n*n|u1 zVa9%bvh;snh>~FRADe77(J9Q0Rtp|NTJZ7-5v;hWk}InWRf(KvcIsTYpx}QGDed=C z^t}guTO)deD^wOkJ>$Qa)sm2BE}s)9#-S=58I_v6lGnrZ7) z*D9W5eym06j-Qwi|7^R`lZa+3E$e3t-V*sHWuu?aNN$W0MM(CCLCaa>kbYGSQO1(U z#w-eOo7QfJx3o=Ch*>tsFJEdfz2cc1!ev$3J-YoD!t(XK5#H(;XO-a`q;BDxMT8%hR6(m6yLYx+m5!n8;y1%Qu+f5><5q9GQbN#n? zn%n(*MY4$4mIX~v_#3WU^}TJ&ZxK*K>tHTsp2GJ^ZFf__m*B!kJ$!kDY+p_}K2fIPuiVgXqVUGraZZ)w>WlHJTr5XIF#%~Rc$O*ESn68R-=K8zH0yU4T{ z!ToA4K=0q96e&Gi<+X_SeX|VArFb<@qR$D^J~x%xMz-(e-R5;=?hOhMs~#4L z`C9{{x;KvZV4XK!g*t_SEq^26irfXCXgop@mv_}o&R}SLp|UCi^nMmJ>ZW$3Kgza8P za$R!WAWu489vAt9G2vW!_ zcp2&1(O8z;G+tgw$;-8D|AF34thBS)T<}hEfNeMyAb4ARV-cm?;BQt(J9+(#m(a(2 zF@4F3*R`5$c7k)nYmrFSE8(OoKJ}2Y%NL$N0cR67y)4hkl`F1)CC}hxjPnfME{AXHhYR9ZmwbK42?(U{?=8l?}xZ~MW_!CT( zzYNF%9eI<1(?8tWwI^3J^E}{)#BcX5Ys#kyZ7+^i(@OYxtQo0}8$+)n)x|c$ z9u~GGG}#_)4`Vi7w?5N3e-RJPzy0D$UoZPgZ#(*wX6P@e95$|~k9rJ$ zX#3K-8L!34pX2}k125IY;1itO3e5pmr7Tht*uM{3Q&|WnjLl8M-zv4!QfMF1?6TWv z?bbKac+C-Q-9$X<%ocA?^6D&U6S+~9wxtMbEcY2Vozh7vzg2K_@kuONA z+TyV!6^aHkX_*~Qysru^N%!VxU&&G1Vu3@Qj(!5&GPv-I)+htSI3pR657coLBEh#e zt3w49UvgPkNNb{FSoF$gbKih$t*j-gmMz_L%x-6{?F}}G1|`bJib!nHPWk=7FLM0QBz)D<*M&8aVnFeaeUR$@aAFSZ z@^=rMmoUk}okh`ACbwIy)~5Ds*8?oB@hw-pG-0*hDToBR#(*(T*%$IutJmukVYEX< z10jyygeBco^_rgOWp#d+Z>GprKdn`|vOw0=H9(CLlDz2J4S}gK(uHBI&q{ozTLk&a zqR~}PTrr2={>~zm5PI)Y| zsK_&#`f@?k-FFYUDiV|z6%T~~HHn$ttLHgE=lEG|d1V0txUF!6JsZwM3R=B{w4Y6> z@3VkPzzw6EP3W?b@_hgOhO?iofLxF;GJaTOfAYQlGs0*l$B)F5IKSl$tw?1mwWiP+ zs9Lj;b+eWq@JA$>x-!H2<|FYuDR1=HN=Of2f9963E9mnIjW%H>L##`#M-V7Jy6?B@ z9evmWY9ByZH`SL(3tZE%rpT*5k~VH$YHs{m){$GUfL>SIsF8<4A>n9xUq^G?*WqIf zN#5vOF6OY@MKnozhRVu;Qgn!Sn0xZfcBI*5gA$=_k;JsxNZa)?^Uc$)mtj=6giybk z`|R&Zx?GY=-+3>&%a`CZ7!%`AiqXuB|8a~V=@s^joaa)sNoF?VD^#mt#2g!jecI55 z@mgvHG@8<$IkO?{);Zo1FC5I~Tpv|36A_aWx8f6ttUp(?{dk#$ENYhId%9*Mk|3J= zQCNI}hR0fmzB`?^7l-96U)4_hXv?N~%8s1; zC3RT+B%h9C>B@A3v~p9pziq%iLi|!c891yUDc`z|I_n;Bpc_nvcy2Tmo^!crq6ZIE zj;>s;?V4qd8mHPuBX?0>4z0c`p0_7lf`@HmbUeGgy z3^OuMIs5`Bpr&5n!&k9pT*%1iA0VsCnZl-m0oV`SB${Rw^iYr@yu#yR(_cV~(YHrU z(O^LsmmVfC5(!C0ILn$wi!3t@* zBSbrb@f8WFF{?k<)$L{HE4JKYKj2lhdh5$7H;beU@@zuOjgG+`JA*tU@0;``hg89p zxKFVhmvxBHC$vXxCPqRGm8a)|X0ov^#1yUS(w!7Gmb1h;A zWImQV7HgdE&J8J69iz1ey0)&IMjc^7M$P6?bwcchv~NyciK`1s4b1~>@k3?y!`~n; zO|t83SHJ^vY;3lESj1$M4>o!mNZ=Ekn{CN!|B3TMen)4FKkZ)NLGjkywp@jFWgyrW z9?d;zDnAT`7eH$IbCT3Lq;w!mK52X23=hXAoso`777-ZChiLa2pnC0oMcYoO*+h#? zA1zZ7cxeOSUSq*0F>T3_O{l-xDb}UnIXyZ2iT5U>l+{@6Hw;h$6yaxIyQ?PUmdtgF zeH3PSpI@N^%S)nt+Cgns_Dj(6EqpAQ-_e60YL~j*@)QT^-u`7hT7WznH{rw+EWGxo z-{Ad1CsDiX*%;j5{iy7jJqEFE!ff&dufWQlHh95KG70#y!4y_tKb%?!0e{KEPO{~t z6|riN2)UEYAD0-i)?fTw;bO5tr_zVQ&yLmykDQ`^Q)N64XTDR;ShD9=1=Zx|j~JwL z#F}ORS0$-&(W{F0-C8!!KSsD}`tmn}j^=CxXDdG6cid53C#B8XY}N05i1Sam7P63Q zt6pg)*JqY1K1F2GIN8=+H{dYCHf0F*GYZ>@iB2pk*AL9QG=j1%5+5D<1=ezEIxdnY zY~KZixy9UqoCdlzT4CpX-u(h62J(e-|7&e=!h!8;a(tma8d}n~k&&c!yT@p7_N^Nw zZC(8M+5*tQIyqFD3vzXe9)1*`YJX`@a~!~fZ})iJ2c(QYFG%jlK*M}KRzAtkpj=|F z^X!Ao<~tx$`LoMn0(>hh@7{r@Ha^TAa^WcPhbxcMHS}>b-6c>ik)n`y z0TtovSf@8?W@7R~4PV~x&I?lfXD{Ky^3+e(DA`HwvjOu-GAE7%EH2G_XwqHMnUc5lz*<)Q8LI04Z4Q-8BLAvr$m!6clS z!;%Px036~3(Ie_*kN;-DEEQKC(Sck=!EISfQ>y7wP!<$fW_dQJ*+&GN#X6nU9*R<# z;)`B`SSKe|HPay;jX(&pG;yXLDYp}S){yTD0EplQrY6F!Rhj@_Us=aHGVu)A#0~Sq z+;m@F7$6Sk9R`EWDD-Ke4O-4G?h1~A$zX19Nb!R=OZZW3#Bp5L(=}G%WgkOTvVTwq ze%S1jiG-R^Mc>sNaE*n=SWVRoo6XcyWL)hRWFOaa^%l?6QA>cyT!O@^X|320UWr$x4x$HcgcPv}#AHImSh3;rTMPY@?Ze_5r{Gx80Shad zU$39zO=^6hs%>|QlPYBR*$1*ro-APdNp(VT+Qv)0ZqmZ~f_xIp^WDL`fbTTSNBmi{ z$r5J^-y^IZZs7(6bx>l?WCl@16gI34j`$-H7r}#cO*E(bst`azI*LW$$@LE1LiCSG z39lH<9g?BYGWg+AKu`8oX4LYx33Uf^8-9`%`jpKZpYLzof3C0cRb%}}8rmBSvPF&hp~gTZ;nOuzNDg?!3DGQKRG+<#gIMO_%wl-adM4RJu8e z_vbcwOi3Pgu61vm;5k+a^2@Xx^T4eR;x+b}(<8-su|-E2&te2*GyMo9ZZ6JIlv;s?oO)ZMJlR&Anm99sX~A4^i?G zK1(8+qX9FetaVq|KskCrSu5|{T*MwFo4UNBRZfBL$nyE5TrnbxP)a4110-%R8!Vz}uD0>UrN$rdkIG0p3WQ%a>*&E-`kOr?ZbaX6)#ROd2=Ds+#bo$) zlX%aQFX7Pf1M1y@XLU1p9tPcL4=z1hDCuN@x$hRwY;KYqAs1-5w_mC&Q-tyF$hR1p zxjA(#Pr?P_4zVx0Uhte(Um>YGFvbVQMBsmQBz>kC&ZI;OeURVUB_$`jzflOFZ1ekJ z^lxdm2Leht?=%&><0SeddKHv6ZdVf?`t=ep(-EqHht6^FMle^&^>U!V8T_?cryzhEvmXZPlD7=0y-a5k=}ZL52bN6O^myQJWewYD)dcx{ueA*sYp=DZBt0VF2zy4KQ_HBN;T)r?D=6<#9n z9#nq|iDtU97i04qvU^p=wojOd#jEkB+P2=)RD0Us5LX2H!zC?@n0~C|pVSmz!53=# zKV3&vFyR+ANt>aT!c+~pk3#v5UkI%q*_Er~KU zfJ4m!$-y)MnEUUfNAE99d0OH%nF?>#m|^e~8i~6_$k5P?p0;XN?j44D3@~jw{*^q6m_xAT6Y|T<}17qcVwYjw$gMNG#yi zccYf*Rt3t(*E2d=y1KH+*ax!=!N*;C`qDw9(8?7VLIq{zmD-h}_q1)jRdoq(ScZ#n z0Wz5}%q$#86^Yz8@Ov;G-}gwy&tP#%nHbIW$>sM7_ewqF2bQ)V!{zoa)#Cbf^f%!` zV3R0Ec*@uoI>8)@o{3wlHq zwp{FYYBT3zK+=VU+t@??OPbYqteKY>OU5x4Y1y^3+}XrNlWP* zZ^)%dWpuRlb5pc^Xac$jtYPrnv-hH6A1X{1Ya*(Wie;2 z6wv~N?vR%G%*^Mf4L4_4q#t_?S8MHbw5MvobTAZ}g3d8>z|03?s=~3GM!g>}FyO3k zxJ$I1al$CLQnKLx8-}`5cRkvxrPd1C<^9Q1sG6zzpt$@4GP(>Q5$qH%ItY$>I#taU zdY!(>Wki_XbB>R}pXpnp(TN&QQqa!R$JsuvALcZlS?8oTgO&N=nr6Qj$|{mE_rRpa z9g6o5fBsjq`R3ZZa!Zh^^+1|T5I@gIvEj(cgZB&aC+acqgEXqlp9r%)ENdG=JzLv( z=8QR6Y%1EhCdX&j2v3B25G>KT|JrdzlmG%`YzQPV$)hnJuV?4h=b-p|A=PXDtow4G zZ%-04Cw`1jUjIoXTj1e}B~o$^{+s8vN1E71?fZ#oHH{*#gEKbRT8qxwov2@7xb_}vSDA|0#y*Eba|3F0+E1$ z+mmIW-42a@FCcbdSuM4IUKPAs2F%AYmgf=&hM-Xu6%|lT-p&=q?+&HsJ~=|+K8%8@I>5PNRCBG` z1jo6G^sH=k{o@}F@BC(guQHO&cQ|r)cDaGJPNdqj6ovO8v3Hwfb?ImrA7DaG6huNIRC)nyLugwO8 zwr-9vzvokxGs zyMt?DDdSg@J5hhvJ@Y|;QMb9L+CTzRBlnzT)xx=GK0jQROGN9vKJqJBj=nli4u$@7 z7-1Po{vxm15b(Qa@*5w+MS}C?e+KcK9~J9;_y4Ar<+Aa*{`-+15quIEY;klg*f<1H zSAFSt^Vvorb*OEt?$=tm&&#jz>n5jvx;;28pVS7cTrm-oOyYaKu ztWzO#U8CVxbm5yvjp3e^Cn{tzBL%8!(^C!6@mp7u#$fsWzrqIdpWmVqbEt0+Nm)g3 z2l7d-NdzWJ@e2o6a<8LF&hSsmDQcyv+WA)b4@%}HUJD5wb(R(vOV+lyv%KJm$bm3PcFlPQ z0*0~1raU8>LtO_H7##Vwf0G?Yw!svb)O05(WS;9`Z8}Z?FnOIGvC()olC;{KMQp_7 z6?B`p*;mw?zjpsUZs~waBA~AR)TccWnJ_LgXL}!AQ*7l9+xf=QZI$`&+QN%%eKjk5 zmLgPwJN&yiEQn7qLY^m#@VX}!&ot6i2}KiMAcyD&hTB5Co%@{)4{vQIC7&S#aT~4Q zbhfqiMSf~S(#4~$lv4q5;e1V#@+H%VT2hU!2Q5*em8InUDuexf7iAZXxCqt>nPH4hFwD|#6P4*gJmyf7`i#u>UO zT(w(Y)eE8f{!~bK+Zi9Z0gwMgYP-GN!spFvnXr;5w#AB*Wp54JV#w8hvmUCU<8 z3BoYfQ&8Q4d-FCh#CyV63HP2XUT|&yGbG=0MXvu` zhj)pGdZv~0T8;)lDjnh8#(cmH9VRkV{W1%Hz8rCVU=a}G%(L0C2&8JW%#b~mk>5Z-Q>2uAgTf#E4Rk^{c$Ws;GedGcam3mKZ-9UMzdr#Jp>CH*HBI%+^5&3YV~H@ zzNvf*J|$1}khfR$0n$8P&?Wmo2x4yHgDCCVJ66;FRz$ zX0m&3!VH14%oZ?s-7~fDE7^hCKe>!J18$}q1cy37t3Nv>Jk(Ru+u_h|a^KLwKX)Xa z_gbO-z|-$lh&adtJo;lh=jAN3`i8F@5PkRL+AOeJ(95R`30eswksm4jyfb5Q6tIjq z2G27u?a>sL6uTVTC_lHzPa2+f7N7cK{Z>EzX71*?1F){aFax5Eko_cnBu27nm=$%6 zH}_Uu)y_*3tad@zGu&4dYHyHFryTt{3Y;hjyTe!O*;2p!2u~}=h2u_}{KkG#|9I5& zvQa zo1oVtb>*@}HAU#Y0_@i}%*`~mflzqjxxx@+K74H5wj>-qv&`N{O`U2t!aed&YqoTq zwy4hzGuAjfJfn~OeeB02k=h-Vy0hsH`eXcIS!I06uSeHZz1RY$|2#Vy$rf@VmGA%{ ze*IJ1MZDgtin=@4G;)j|gzpWSsZxKxaj@VYnV2_Hb0TYwXU(?=S+n-;X zj@b{7DfJnysEHk*@8yCY|5>EBukP_0K)>a@hI`2Svdu|y`s1tuj!F$uLVJep%Yxx` z+CyV!{Rwc4tM9@12%6!l)aJj~ozVo|H#_q&tT`OBZGdi6W1Hkb!VfNjgB}9m?#QDG zRB~CzU(Dr;--;LKc3a-8bL>tR>-)qb$9s!|#UsEAKQaikkAvhS2$yBUlMaLm`0usp z47v6+fvBghl&m3c**mVE^gK!>TW!TVDZW85DVowy`#^9VZlocX9zT*d?b@1M|0#-o z**o3RUaMD%ATkwRoX=Jq!*)Ctbj8r z8Cc)+t=uvJ1276ShJWJLK&N#pYR-ob!!`%rEbECb z;Lvk(i?)Cjt%ziQ-;_eEXNnCXuZI8SQue2;OPkNu+KMM0uQqeTP2-ex>j(!3LvqN% z!Xx2zG|aic&1Vo3sQR$HuBu594gQqzZhX9&bnNVA%8oc%_jce#IkPf#JSWH_w;bd2 z0(L)1Pn`hHSXCeJvA%(tNVy^9#9L+wzaNs+0BwoT@)TFB%7s%Daz9RlQA;`VHdIv4 z5>eZCgbOc-{eb$U0gLgyz~s@_bVPAUi&!wn)*(NH;SNu{LdV3G6O0oHRw&duOu!L- z|Bqa+CmLk$&;Y8V(olnGb_q_fJAxf=vz2x%pFKfqcWC$Oo|QSi=B>?0j4NxZt^cgS zkceQdx|MN)a6-Mf^-iyH_%pTXTJnWJw_8>K=9{3`Z`!P^GO-s0C@L07^iay8gGQwyJ`_O>DJNu%hAEMhV2LkN zU-prB92i@vGh(?r9y7SEJ)SXmw4^6xPNTA02SWVo9`B1O8G#laZ2{9R{Y~d9_fTa7 z`@M(4bpz(+ichQne+0w8%gmLhBcyhu8Ik=MSM73;y=a#6?e0nA1(f5B@m$@0Lqa}C zzn;9mB&8jBS#1)=J@eHOCkk0v6Hs&NwX*xqu=O2yVR^Kc(2mp6O7HAGGrs&n=Py4J z9jjuj!0Sb#`Mk``DCHCyd8sUG=ovnZ1|%hC>^`qLoS(;UkGnp1KUw6{{;&*X7g$sE z$guda{=Z%T_MS!r0;7bb@-AA^I+L%A=Qi#A0(CNU>jqN`+NY#XO|(>?QSFrwxAQu2 zOij$68lz#w%Moy0e5YMzQ8Zz+E|tM$PX#wbK{PunHO4^45QCEADOTm(5{3FLxbj(f zF;1+&!al<`)MM4)xXvtN;z2OX6|z{;`UpwO#_WLt%QP6bie?%4r$y2B`3*#ECfLW6 zPc+lgnLr3=3o2-CWK6C`<&m5+)DnH(8byR}$PH!e!PLmlj8g2%0+1kSdggdW8>yb! zeaR>~!R>3zR!9XAyPjV<){FVe&r~`^2 zlZfAKJS)FI1#86UeJg*<$gnZzdMjL+RXL}h5U{@9^;(ms-f8h8Td>smV zYuF=(;Yo;K3BfU>!jqetW^8Hns__nBfZ4UlRpfh^+9_wdgj?Tj)n zW5jPv_aE}@CEK}O7us&>)mwR+6__bI16{&*ioruE+%xwyHgrm7;3Q6Sx`S_V4E9%s z1iqq3ruIMGq~0ajjTuAv8TR}?vm4XEkyME`U+jrs(>q~!NB3gEjHcAdf*|7qcS2d#6qb7#iW|Mq%3fq4UbE^f~0XB_^2`;I8elJFlV zbWK)F%7vv4Z|lD3g7|0Ui`X1TQ&Kt+f(ait`tQVOPP-~7_RosAG4cgd-gfa@l?2*W z>D-Eq=Nf+HgBTwUcB|K8GRSR-f|j*kM*u401cd;_gG6Gb0Ur1AS=w1tta%2&UE`uT zYlZm2KN|%BTFn?3cafAo#2$Y%>dXmU;u>b1uq*qDxo!2zMTF@;u~Z;718d6W*VBHX zrG2lJ4L*H6u(7wm;aSsIu2o_z`Z76>4)Vs&u^KGq>>ehxQFb(JosV@nD8K`$6uHll z=)Oj>fwL{NS^`5QLT8`hv1vU5bcmAkLNH4(kE9o3QjOyMDve-UNP-TInrVST%S((% zxm#!>Qd%i@F{u*{?KFaQtW4>RN>CbS+kMG|@<647O25YjRz7qt};W)ojGeiI^*7jhm_(=*hnV?wD6eru9VL3y8lCA>yG zL;6^*#5bo4J%mXB`A>`}O9(0Qy}j+Cu|S*Rk(c8}?bXjxQ$AZVraPKmq z>#ga6IYEIWBF2hB3VFOEVK}GA1dOqwJsdg=ukbbzE^<*UMZ0uu9cj+Xbp_VU?rKE0 z6^r$D&J?I6Qop3x9~`J#uwcwLXA|bX4QxQ)oE{HncvBb)-KunCv(pui5D&;Yc2hl< zgyrYBIC)+6EKUr0A%@A(sS%$}7cwCUT~!k<9Z*rAu1mD&`F z6l~_l8HuVqDsx-S8%86Jix#h??kw|Idwz+0D%#v0YZC+;z(fZoeq;)LMHL>mb zzor@KqaAqz40+B+y&N_ViS9*T9KOOUw&{Y$#`TL3PhhfUV))eXpRwm2!r8U=V*tA| z@>J-Um+rHZr$#Ft<;LMR!Mq;oxv+L5D9GHG(@M}Vm=Bnn&uTk!%fCDc9U{w#?P;C? zZ_9supa{eR_SG{0>k#S}9)IRyrd(wcrZJWE0uP7&@ zGPi4g!p{E32C|I>rhj7JX-LIaXHr=>^W_H;W<~H~S)V!5;_eQQIi+F8it2ft`D9K3 z7{|UCnA7ws>_J>Fo0=zm50XUP%Y|TN#dGKfOqRF7+=wk5?YZga+}Sl4n70U%q_ZseT^ zN-9Eac3Y5a7`}nyu(wK)&4;#CQ_ZlE!`8&B(|%G!j$9XZ&)IYUs+wk=!UolI+;N#S zyf$ofy9x%;Io98W1Bw(+wTKe6x_FN{H4n|%-dU&7Dz0Q@p1w@ZnGsEv&$QM8)6$Ew zLXw1L#oh+_Is34{S-)XPqM@u45FM%C713ClIBha9x~mp`4S_LijSUKF|s2b z0=+LDVjX*-x`02dvhLab#95~>$NZkFCDECC{)n&VW(qN3x)2l2SagLE*KQ|kuo&+JsCuP?fz25h53(BwhU`ivC5lS_ zuHGwUW8>qU zGgeOUJEKpR#HUHkL48$9u)hjZlk@V$YFjElj51Vb?nCM3eHiDPU{t7TBY9J_Q?Ti$ogSMa~#F{iYM6Ofet+fvhE^3 z?Y;W}@c?+dgsL@Bet^{~6@vB6+D@XOwGDZ~7gQ10NM z!*)3@cwo{F#r2g$sR!(rEDOf$Kd%M3YZ{j(h*K=reuWUz(N3`^e0zYjZ2Y|c7?@4c zb+0XE%=Z|JSr3mu1zz_XPSnXjrNfRGCz(<(9sa-USCF?@pUL1BNurE@x)UTZ{~;*v zJj?YxOSw1N(+jB;{W@tQRC`l*S0k3HBF|29dsxtTW^hu2ZgQP_L|VMi=UoXw3t;<> z2;GeB2e^~pAUqtn&dn7?ETXGvWKK5ere>qvdLiW9;@n{lXN^(sX|HtdtbBgybpNN# z*LJ_TcWQ!aaV4n9m!obi$ITBgiN(4s3;djRoPGK~l)VK^CSkBGh`YPH4K9PbGcfqz z?(Pmh?hb>yySux)4DRsb?k>yS-TU^v+?%&~sZP2(>75yAy!0;&2 zXiKyeCEE7YUALJif2`NlkQdm82MhVi>Eg6#-j`|^AiF!r6rxgq#DM!g*qv4CDzpmM zMmfSUO!h(~3etWT7pZEVgj!ItRW+hhvZb}g)p0lCX2^16@Yk;Dh&v*0 zk3|(fKOg}TyBZKZc!>iDeEu<^FU--YMB_g&nHweFcg+PJVMq*z6#GgEyxx<76^@hY zFEOFg_bF-C{LMWcpCx&QIgbdp7tk#o&gUATPv{R8Akm@VL!Ui!BPZ1KT7&g2d_7(& zay|@SuBWpOK4NPa+-_9Ev9E<_5?rE&Alxo*vA63Q><{F+Jp!mH_4md17J&y_L1D+v11$er#xrtr>oSrfV=lVCk z?`=LcnFDKXibK`(d|>PL3{s(=u3vNLo>i18bK(JO3`lD=k?Pm>pu}jL@fST0A6N7} zFPnA@Eq0rl)%u{r88uzaoe$G*o_FVhxmzatFP9%369rywDRu__L(A7t$cOVc zm~1)iuukBStD?Rqe8Z+`btBVm(WV?&gh9KP3qesO5~`MBCo> zB7=Ev{Cv)%bpAR8A;0MD_2KyDh@aphTHX5xbMMoIwD$gxehuWLE4A+nNZ-99r+?jz zq~!^81EiOmEIDw?DSAL1Jvmz+U%n-W3G95>rFaz@DoX?lN#QJy+;*-Es7sV6&V6|-hlJ>&)Z>6O(T65r2pnj&IXF2rlry~`8cW_*!t4n{m zcdS|E26bQfnJoQ%PvzYP8)!|Ck->Gueen5v`Rhvs-trN9_;mVA!}v_=G$%OQ*HOld zSun@QiH6A|^9Ga5Cvv2z^c2G6|JL}<5IR4mc_%hIa*icip27bCB*M23ZY2$3uO-(| zv-QYi<;C-MuRL=OJ6L_$KP!Q+`FqPXtT&iMj<~qoGoAK;u#uZNb&p;FU}58nVqmcz zzK``B$KZ4{M)%ND={qB){0<~XP7|R-S^ULK}7vCW>W|1Nf|>nrAEfb5FItPki)`kt$?l zRQc?UsSfS(+4D>Slv9 z)|=4xcW$87>awhhqbDffj45I>?$tkI0Q)z_{ZX}^me2LYa*AH()90z)tD$LV)aK0BdS z&A42xqgTBHd+vMP(bLcw#;Ix#;eP7`Tw_NJ(F5<7a|cKHDZREw>N=}Cya$cd9S`jJ zg7$TLfr*rP9wOWx?2F^-a!(%$-FlHJ;f%LCb=SPPKs(YnCdWpq%xnUM96&DO=dRZ- zW1>YGwJXc?`~Jme&8kixpq+2#rbL1B;WY#sQ(Yop`WfI*U-gSbOv~3fq->HK@~ytC zORo8T+0TVGL(;{MivH&bYxCAWrzzzq7~@uGrv!=Np-5l4Lpj5yFDHBd)7YkZ^Nt8+ z7Q*#NuhVAq^7`KCMf%zbb*{{Dj)ClgD$5aMZGDM*$uDXPl(>R zY&q(E!`OH)!#UZQ|F?GSjO+dth@2ey&T=S;{IH3Z0}Di6xqV^zaR0gPsg#O*wij#q zjFM1Zy2x$+FK38HVOLF^em=F0?}%$gfc5CSHw7X_kbcsag~`JWQ@-Bx_MPAR&Eb%Z zYBBakg}`Wpt+%%F2vRV^cr_Ml$IR#vP)Xy!g=G=OWe6B&%?94rHWGgd7KoqX#+F~U zcwJZ|bS8_s3fu*FtWnLH*}mVggb`yLDR+9NFM;#B_wT+mzQqq?HecrkFHsL76p-eH z4gqX)8j7Z(cL=(xSW5Z#)>#GZKqrni1jV`C`+|I@vYsC?Jyhnh}yA`FfpP{Y*ZR zvQ?k#weh3}ufm)JWxH(;41U704)SeuVE`KWdN>4nqUY^jk2+(|^Zf13-oe4;4LQB1 z5S%j@`siSIA2}_ccb&pkyRD875HNau@HE`$rNLc}H zpFZDeF?fmsQ|Ea4H{%y$$p z{1Z(S_Ke1gU|I791#xIo*YVFjMvzjHOiQ}a*+M=&EmGqMr%NYX#WgG`QMFk7E9`}W z9EQ01nV-8295{tCE^Cb%zIALnEO%V(b~TdiZ-+CUruuZ?Kt9~JrBz8zU%d+tOYbKJ zyY{#08R?cSkHvzII^WW)l0{yOuZF*Ot=vRUHok=&cAu4IP^M7XJm70twY%JgnLT?1 zs7KxM+1m3OR|C|oy(3^R^7f4H@Y*xF{SRw0?iqXZY~cTA*3*sKYJUQ^Md8q>-2s4% zCD9pV^HochQLCoMz6RHh74{7~N{@LUpZ=K86I5Hu(c$6q1uQuxr};B!LK(^dCzcl3 z5aw3jtdD;PJ9jZ;Cgmx|QDxxH;via7Y_18&3`_7o>C_wzYQ)W`x$i<>6n-j!Q^b?M$JKGxxIrO1|e?Y(WpJ7f#>D zqlu?&fYFQI=ZJ6T#sFB%*TdH{^~9Xh3=%jMu_;c=dZCO{f|MPvsj-lsE(zkx2?MnfkH71t0ciDyUq=1^n ziji-Z`~)yDY;ylKZTDgSvi{6l#r!Q8q@GyP@(%ea&5LMuJ0l2AbnCQ2jO;l5cxrst z3CzIZB5n-}b&7Rjz+$l{?*AMd;s-g7Oq>m!OfWi6f$&FoXjF&2i*6Rda#YU|LS?dy z@J9ER;^#&pxL8IhL^!HAFPP#im5R0DLV5E&Z<|8`ypCd)Zar~NSUjOVE>g=g7Bel7 zL&YN2A`8@M1jxOuCd}lLQBP4BkE!}7#R~i)FAtH_{>#_AU|@02N1>rNSziYrEwk{I zd_5N&K-gb->?5#l5|(R!3tTy$MgSD!rrtfW$v&~Mag5xg6}f`VAY>-{x4$)UOdq{^ zu*hNEq|M-OX^KTnmwXfj{{y7Ir}_V%8Ivm%kw9yYW1L;Wj+<2Z4FZ~P?nG=-<5jLI zUV}1Q@6oJj8gA6kuCq`dCx$kB= znsf9pe5ZN48}_)7m+;?8=B9EU{v$(3W82w`J}Tpphw2ZGl$=dN_u}Of%71QBw6+oP&%Og2u9fVCwIEd4;TQQ_Q`gBK01$5m&h)V7ahCPR} z8M)^H*!dqfe9>nrsCtUIgu3wBqrn9s7N+%c^Yow=m10uUbcIWBctf5(Vn&=y`VgUv zQ%)b{Vv5{+99DH<51G{C4bgP%C@sCIAu1%BOsjM{>kIFO(@L@NEh2c(A(Ug|N77s8 zqh9|?_>6`HXXfIx?K1c#N3~1)2#z2@9J8yMR^Y*xVp+D6lss`-?h0R`x@-OW(kX$F za@)6fseH0Im1Xh&+Td*)_j@iVw@slO2iG#=AT4$*)wq97ygFzf-|_5BZMqD9dS>Ec zI1PKjRP?NSTCxF29Pga~$xvY3bg{R`FKh>;2N~bTvRVXinkPsWrF_x3% zZ!TZb$28KPrwZEyJ4G2*;j+!5G~8)6EVJ+~gkR390VW4E=-|0~x6M#1cv&LjABl6*^8gXVKJ3;p3My*u{Htm6iMwdMkoZ zJ2N_tn0q0e+ZgDdk}Cu0`Ad{W)+X< z9|P=|mKH*pI?7QTnBoE%M*1^}cs*Mgh7lzYt4+F|WJ3KryIrN4CSr3R|1Lm>94bep0#q{MG_07PkFzMUk)%dw^lDP6q+P7kiz;xVg*g>Xy*8Ss; zWMl))j-$RSmB_5kyix##0+{31E{>kq&iyZ!y0hYkA3$%(PD1eHMk=e<@fPcX$0OJo zWh;Zd6DfSZaWSt(8MIG;j>q3@z_2JzwTYQuiNFm&cck636}|Z3-xcjT0eE~5cVVs4 zx0bs^ltpRP8mlamQ=w0D5vN=noJ5-`1L}!7&$v|9hy%c;rGhhpz7bes9i*tqrn{~@ zUukcSdmG=*PK2uZ%1zvSuHf1Np^F5+LIB~e_n_N3 z-^%Ux;lIWwT4LnCQP;`>nSC6uJfx@vdQ zQ?(2JRm8wy#lQY2n{n8%WIUa@z?&sh|7l!i)aL@*VXCoDd(SJTtT7;%aF;J95?(s* zffR-Z>8a;?*v@9bi84LzV|bx=(M8Oz-1+i-UyfTrKH?8*H0#HHMwg@}MP=_J_Q#B$ z?UdpExnI-uhb4P(yAM9gpoIe;0n-@Isi2?trvt0|CqE;B6E9d|(TVBfKd$+04`pgr z;B!To1u&&dh3GA=$eygmOSebTHUr2oZ6u(AoFn875`#8VyYtL{n+9P4w5>cvNadud z3PR$^$}3ymJg|-W?iw~l&VL8_|1do&oPD6#GgC^c09z^inMcaCfR`=`dACd{dw!lkq%566iUJYFafj5pJv)$5vAN-7+BCK!f;-ZlhU>}$+ z%uB4E$ae(7rhTqLFIO(s`ArI@C-jhRFk}M`tUDxwezoA1zVQr)r@1tWAKWbPQfIzF zu}j;*ry4C3(_U8$c^!!*`jre%$Os(24T}^ad4ge4JZ#J0Oqn>|9?YPr-kHKfCMIMW zaR-NtteK)2;m}q>Vl?W5*rxB>*nqw=yLv~9JzGv;3 zz)uM?aVA5ii;Y4J-;;>R_;&9P2^d$P{Xu4>>?~Vo-Adfb*V7Ybm2F9F>`xVMo8#=W zIb>LFQ(e|6*VpE|cWDSu#u@Gxp~rIzUw{X50SYVT6F$;;`%2-w1`d{6D%G1+T4t3~ zgk9cO_-{4E@-VWs^O1}}tUpp={G!{gxlkn)WVhcX`P7ajivx`lBCS_s#WDn_U3&FR z*TA>#W);%t)pdARpN>qTNW~}Fsh{{`>6T*Z6mTjYw8s$-)~Y?4$UHP$q+d)R#*9Gb zkJI)?riaHTTK)pUHB;W6K~5BOtPP!Dmz{K{jltaYQ3GMU50ch**Kd#C4+VuG-RitB zuRcjGJXs{y`!%a|S_^NYO(f`hITyC#srD5$ACe#8-c7w!16-_$R5Dvs=zm*Apk{c| zHy6m+lIfiXAxMfDku?+!!GveYHq&7hg*n;#_XiW?Jo2?BIrU2#-&0+>h3V|oKY!w- z^<{eh=B0^;Zq7#r)v~BHDs}fny!u0$iraFnf9^M=qJWZ5 z>Q4|`Ja&`j4Vp%o4Y8-UuKp?-ug@wR>cE%pk&MKW5ava?QE{2{UOiXk8tZ&+aj`3uKVZi3?_F1)T$-V7~i}30S zh2$u>>w!qT)c59lSAddCg8tm-IjnS!7V5Dm>TTXI)t|l^9PwYu-^tQGVYa5Gi76YZJsS!)8L=S81w5(&!(-%p8G;;K5_T~ zP9SWpO12mr$s8#V&=F(Abr?xF#xwZ{B<~@<889WvxGtGMIU^(3-7|U<#*H!cQjq)j z$jBxg1goUR7Vi6slxz%qz8NuM^d%W*G^2eAw6zBb>^D-}%by}3a)_Z@Di}>7b}ke_ zNc-9JO)X>KL(p?wgx9EYNuu(GN`lC$u)xp@Vf%cI-t4hT`gAM_3_b{p9n|S4WR3k> z$7q=z*%{(GiFinTE7r9Dr*mJ)sOtEO9PEn=Ku5})mBG%q|ED})eNt(^Xsv5IlEnpo*dS7<}leaT2qjOeL2ct3!=Sf zBKbQUI$fjP?RD!22vxD&6OpLhh5OmPRD5E%<#3@Dnwn}&=*%(Odogd|13B+`M zJ8$3M(yDpTT5WVv7X@0B>@>K#ypsyP4cxO`t(fEMzrDZC%!6P+FhLZtBPj2cA_#bH z+lHCuDzPjKJpFi)oki`qDgn!ICB82a&9${C4obD)C~=skG-Bd|7u+1@J-b9{A{!5S zm+YPWF@Hpo1eoLJ)xn(2Dw_lL17m9Wfqo;)pI~bm8MF`}Nsm)+os)Xco94naN)X}3t_Cn8Jxlv-slyNS&xAi*9Inu*4}|Gz4J>@b-5FBv^Oh_IJFMJ;bP%3R z|JDYxbH_lBlk^r$3b}X|>NpQt=Q?T^zSfzX_FE|7Pwp;j#14&0Hs|D7uvWyeDeQ^1 zecurF6QiIy5uwh4AuMCP0w@L3bQHDL%JrMgt1Gcx3)gUeq)f{5kZ`H}Ti=LVvhRc4 z*T5~Y?`@6+pw06kVt?$PI2i$dySs%4@IftQ`=g4O@mq{SJef#gZ=LCXDuVovVhA7G zj`BJ@-_4Lmn>6?C0XIXWRdbP%2AYBr8xJt~x6ho)*&k*`V%9yuC%Qqb=%b5bNnU_4 z4!wi!Oeo$fw!?Ad`=8Wna_w&bs^3O+>5%USnAKW6G2Kue`J7>ojvGnFQjLIe*0LV$ zy&^JW#(XBywviBq)F7JWH);OdS}F_Edpk=vD}~ffXm)dF7~Rn4d__`E?G)1lj$Vp` z9JtW!Z;lHuzrp-n+aP%9W0fL{I%=?#p<+{xmmz?Yn1$?+QgWzLS^c^LzX$U$27DEgp=Zca~7gg`)*k21T1ep zN*Uh=km~4It|^23F<6dz6b3gLP-yP=+`i+paEulcUXMadsh3pRN|9i#DZoJzd`j}j z4ZNF;wm}?oqHz#uv>byzlwkOI;$EF`|NRb%$BzO%T{EKFlGk!eU%&tnMJY76@d2*! zmi)D7DXBP>KKnKp`=Q_w&gT!tJ&8PsO?$x9(fG`xskpd52IS8id!n#J7V}Br_?|zo zlrPB+!GN5zjhg2`oF=IdC&nN}vjLH&8dovXA07B|T0d^ZQ|KjQ_}r%P1GDe^Lv$Ta zj}j63A|nzmTE7;k5(q{!{j9!NJ~Y=yIW$CB?J9p%{LUl&eHd*N_tKCx%4^JZBohvd zY(vd)8I5#3R!F%K@6OD17DDgRH&aG_u0ZtQhI`4kL|k{?)E3*4DkxtZE66tGpa#(8 z&hrNbRC_}R+zBUU1xF-SoE|$~o-E7I!Q8-8bqq%O!V3BDaFs_?Q=gQk3E?j53)~SZ zMa}Fj725Gj-jf{RLMrq_TF1M;qK<&{)&>e{%5zfAKs&0L()i7rv`d(m_$}1l9GU%f zkwm?aIY*~BiDJtzue0AP@MPTxgpfUA6<6=(RlLU*KQaZ+$JxNpnVYrq$kn)i*&&bp zrS077fqFe!b(=hr58>S1BnXq^)JFdfrhiUHQsQyCg4ld(KSSL+$40GvV5Y(|%UwpC zQ!>cFi#Yh=QFI6MjG6=fQmVo>czuj`_2s(R&7AN`&>iRSlU3U1z~M7Wozs#Su0Ri%5jt(-g&feS!Xf4y2prL!8)-s8CzB$I_8Qh9x>SHQtO~~;IDI-olo#Yi3>0crPt-%w)S#eB%q8GgaxB-iE0S= zD9IAZ$lyD};&KVA5@&dtHv~+5N4N-xGW`InXJrcijkRA?y+KI1Kz4r(}Jz z?qC`M@TquHSSl-dvgPFk>G-raO#J9rZ@DWP4&;J2+)yH6Vq0aAU#|pm+Y#k)THo5r zIcBzV%fAa*;9)bI;&gK{R9oQ#1n=jfv|U}!q%cV)Yw9d`?Jc+-{jWnuG#MAhx$=Iq zGdb7OIWlOo8W#pIe!pHc&D5X(QbgevCexSCJ(ti)ZW2@aIr}b*hi2Dqm@>lR(pZP? zAhKaL0UC*yX0-0d{Sr)0>x|V1G-tmQC2Zg@o`|l{P*jL79DJTe?8h}R9w|7Dy@^^5 zyz!rs1!4{^Z|i0GAklB$KqzjPHsnItRWQ^|ywKKbx_4u_vX!8F4{@Rs{%RufqNI2N z;ABknF;C1$^WqC`u=%&RCDJm<;{3JhAePEqxb++L91H}9e$eMp=mM4QQ1-=t-x!ES z;Cl#w)q}YWI4HulW$1ap-`3cAyB;{u`?|?t>UqBg9<0r5Ev4}2y^TjsxO95^Z!_M= zB0XIRY7+7HtI9uhj4p`4WuDuX99Dep&|JVI3-*>y^q@f$V%=EoBzq_^frG|)Wx6Q@JLDgil z*jnJqSSkCg<+5EE_?{4NoHxaku3t9sH^dj%#=01hxPO+y(j-f@VW+n=*yhDf{}8}J z7MjtqQ0+!kXb#Tv}ZthD2OOSd*LY8HuJsja--C`G$u@58f3tuY(CcVQEME>4*9D>nP2tX zs=+SNvBPkEQl4GNPav%%ecR^28yG39E)<*j?!gSjc<%3yC)-QtS~moMB=qv ze&kjl;ADDv+=5N3>$Xu5*Uzzm`wN$JWMJ?{cPPlkM*)_eFhgeng!a*xK@Z~oO zJo;?j`y`0t7+=DPr2UUcLxbynQXb68`lcFy-&j#JCyP|E0z<#>{V${*Q9TOl6?Ee^ z7SZew8Zmss{-3d9ar87QjqUP0CilGvm&j~CVT0h@Jh#j&;;;b(6CwpN zDJx8dLBOMS01AJaAx7&OeJWLo1v#1`S#>YEwtsWB)PcS*HzxDBWkFhKIN2l@VE$=hmP@!4Y!*no0MBQe z)2+~Po^4QlQcDU^N!VF9H=yG4t28(QKaQ$lYyQYycWp0UEuZ9g{Q!h9*0M%l53FcrRN!W&Q>;rDH=nr)V_C>)1upP-3iEpC3g4Ys&WZ<(f8Zh#gj#A?QR}&%3N&gLQ z6$84;_?H%F}SBY zx61V(5;v`O^sqO*q$~=sr6UuG=~M#@7iO;{(U>{Ku&zXaU z+Zanf)_$qF+QbZ7D9j#lTZ0=vpfDnYUIfUIy3jE^nqJXy6t#y{9ph)Esu@Q~-}lFq zBKi?_%r|{wmT_2c4>VeV{P!krGzExp`KJhkoN2%7>hM`~fy+CSe7$f4 zmC{CS<&q_pP694LTVjeV{+zL4&Jf|=vjS(B^-_7sqGtIhA3p3aOU(Hi;)zqB;ORf3 z^_aU$L=)09_fuXu*IWjWMi)5}|36{Y%>Z=hU>uAlowphm^lcn8J0MeAe*_B> zZhq4ZmLqE8XhdR`i^-UZ&6k>(v&8F4$@}=egs)7nFv=7#LCu352tPF#L2ze%%> zz@O3`>^XGSL>C2Lz(an8sY`Ov7S=7GiUtak82L}4F6`Bcp!Ymx6xmouyt=c7Nnjrd ze`bRsKQO1$@aT)h;w%~`)Sds|pbXP*V8;Jy(oor+->{n92<&`7#-Q&@;ME@H!HE07 z;M;`W`+3TQ-sk;M>*}Kz@?%ecIC^L6z6jLjwO~vO=`~ptCq^p_3FAuZ%5EJNhP|Rc zQ@Y30fJ{~^a}4}`t2$84Xn(&58R9_|mT?q>alKzSD?m|H7oJTh1!4aTlJw&Gip=Na z@|bKpqR%d0sp$_XG{QTXx|TMmz&dT|4pePBn#(b|uMOw@*wJ3pJ!(GjW?RSmORR4_ zAZm!xuG`1U<0DD!o+CoOb|=VB+urf+HR-@=W?Q>jXBdT5K%4oMO0I=N>%SJ7bM&Cx zvnTG<7R~Q6*Gq;i6MTt=j!wZdyFI~W^^Or-q2~P8XMi5%-pwM$pQ~lFTgAntSsE2V zd$mPjI+~FUZXgOg{bv{g5kvVG*>$rkzbv~f_Nq_;2kG(_)=AEG@c$a|AW44{?~1it zu-3TlhxzyL6GiWJ$p`;6Hw=2qR58sY^zcKR1rZn>gK49yEy{M9BUd;Ze7_j|i?Y%@ zOM}>>0RcZ3o@Wq5(d{xXWQ?{|_f`mqSX!1YWKKPN_a8eR30}hO#yNVXX5* zQ(&(jA$VQt`XBBfDZ#amfc)H6zA8Mzg+1dL3+j54o^(wM=PZ#*I6_*7)Zd<>q--PS zX>#%N65oE<;$Jn&m>7BF)qt~yiFwgXC}t^!u0DP=Os4+1%y21&Jb5u)aa;pWkX&mVbv!5^f&3*|5t+51XMt^7N3SN-Y8_vnI$q~_1GzEVyESWGvmgXy<;bx{o- zskhB^8f^nJ2QjmPX-3Ee-NoVe+{lskYU?(N@%dB!$4Uw?beV(nvs$}pgs)=bh9Pg% z3qx6Cm~~hp-($z-oE=gyA4Yoat6N9Is?#_==UN7XUg`GSpQ5Y%aZ+Oijk7Zv9U?0W zM_p3Xc=L<2!1>mcb}-ddX*(P6pI|r7LXoVhrE?pE{)DKg9QqvvakYBYMnOxs28>b4 zXAF_U1{ba}les&9ss{HS!diC>l6zlnd~Jq>Uk z!M&u?k^Z>x*(eLS_u*vxq&}p3Ox#NzV zL{CIb7i!Z5YiFaxKgNoMCt~0ehAQ71vB0r^!8eW5g&E_L{X`nONY zHXO2s(TaeGWx!K%Jg!~2cgLx(Y2W;UKB4gU&M|eBDsp|*(eJexmt?w5L`f*S3c3uN z=_3_I0KSJHN^AaVmnNr{l)wos3v)U=RU4KrZt3YTkNoU6w{+}_qBW?{A*<~x3YVB} z3gNpkXO9!Lp`I*O>OB%cPV!eg{f4CPNv#T`c?BQa`_=h&usI3Jf# zAte6D(41Ytbwp|$ujU(W8mc;nE=KigXGz!@w&*Ecw*aMkQ4HR{j`l)0-ryE}0lJ6y zvHi_h!)3etf8mFWi-v%$9oFjR&dwF^Nko6!niRHZvL}PtwW>Qh@;% zPzi*1!>$aNZX_D%yf2u`U>bLi=p%V)2~DS?xkC7qwoU^b_9{RFD9f3xokyD?(j?kE zEc3paQ60BMX*a|jMiZPA9gUOB6{>nVN-cq~_ ze*J>QEfz;y>O#i@&L{O1)m1vnqJYnjbIb+>ToP4hR1Y`FJ{?&&J@;EOCK zM~>WPDd!|#zC}h`&b4H@*>a=gQ{7n=>|dIhgJ_{9!|kUvLr)G%O8oK$OiYxlMg~>w zKi9UG?NIwOZ>t9}Px_+!HQ14(@^!#}t%5g+M8p`CwHDiixhbg#t$XZ2>|o!E z%1ILG<1?PLFYsX+Mk{>es?k%6{3(u-raW}Nh4V0yz67n+p^?ckv~K;Q@Q>rvo0fkD zQoUM;9LhM@H1qUAdZ#hQ?bQ(k#)-h!jNgbKvEsTy&o=Tx4z?ziA}wa{qVyMgNh)`n z1*B+^b6lE*q3XWyHN<^%V-`vDyGGuxIV|`KGhUO0^?2mE>vYev`aooFtg2(1%Pdkf_A*#8r7jG=@qLNxDaC4qP%g=a*1Q9p(DJWh0t*F?<=B1 zX>FNhRNxc#9??xc?lVdw3f`B2kNRTL_9ukJEh&}a-wk~&ATu~(65_F{OUnRK^96Wx z{b7BY4KeVWQMxYM$GQoXNuqbhpp@*zVjw7WwK zaM{`j+(XwNC&R0>y_x9qtLNFmo>wdf3Q=rOIFE+Cr?rdCvUc;2T$3ILBVScDp0V%J zP=ssqOy&(;2JW(FVA(U|TPt>W24Sk#Ic8+^(G}S=L%GWIWg^4}g}+H@%xh?Ce?b+X zu=B27HHrfB7_Ro{q*&$XAA=N!fcqDK%2Sm(X~A6CeIis$1l9FvT60x(x(jmj{lR)8 zL|DraUP}R;z4R&mODMhJIt@Zm(Lkqu#aIE3>jXTNa7Pf}${pKGt4!Rn%Rpngr6L%~pd|Cec^T>D-8z<<@MZyf+(3dY_fgAV4DR{vJ>%eKzq)n8A-Uh7 z))3_WNH~y)$X{~VTgt+UZEwWWOq8+rx z0l&&A$4D-Y{&=*U#r;WNmsdX0_*ZS|QpMXzE?Gz0PA=3*n6|S59sK&3@$r4R-ugI@|2h@4@*i~5{TjZ#g=ae5`x^ zM?95ZWkP4YOi0V!(GZc3(d91KWL^6+_)- zZ4#%W4Q2NrAL9(ItP^Lu`pwQyAmbfmu}`?N9m3Dt2fbEmNYKiVp<)^fvxtP}W+d!x z0!N566JfgA^*}Rq0FjHynt}HyvJRgTl|;j1q^at##9agu!SR}`qGSBSBzy8y;%H|T zN;d2dy=mB>q;y9UsM+!53RF(D$_iAhgoBq593fiSL{A;cNY7q}iQ2779j-2Uv==%t za-}7yEZmh~LkuT>rQ+b0L*mU1hkI28(G|bmATq`x+EatDKjRglvP3Y6bpvDIAkoCo z{n|$e`ndsowZS}quXh-FRpigp$EsLPVThHl$ZvsS_0dB8w>r}MG{vuc=8M^um3&n` zSXJ8C02}2k*LIxVtb}_RZW)bn+!32Yr^a6@U-m6$w%`oBb!78D$>!)tnjr(mZ4$%Q z(|)p_@f*vmf(<>(N?_L5jK_M1_ck|@LdxO_F8T z4Y7vva?hP_K6|%V|!pLJLYU@K;+n5m#<|UHAQ!xIG z74%2%6+}E!=5Ds(+Vh0!Q?~MIkdn={L~rb6vw{DiasaamBl}}K(W>v*5V~15Y)Kb z?CII?diE>R5_o+E9(+7)>umvE)+f&Nye!%rU+MvIzLrz}O=LGq@qZNuWPXKQJi?#z zjYOkgd@jtwUM`Lp&?J`}zOk1I4fu>xV?L9hf9;-Yv(J3x6hC9=9NobRXK#d(FKMBty#8l9i}b~Mwcw+Nv_>sYIOw;os7=i6NA{n zyjbW&Zb)3p{|LYO3H$>0SS-<8S=+oxS2Gq5FnlVJeq80NQb-K;X(c?}kdSFY$k!X$ zJkPi45wa`_V_%aC9AW%4fpuc3dC(_3Ckit1t1L5GNVh_BX)VmeNzMmbi&kY5-Q5(K z!gR&_Q9Fft{UK!a6eCSq`O#)@E}k6pPc?L?91dvw(6~xodKn@J3o^X4GQI>A$VJG` zm!B%*M#u14BFzh)Pae>;{1EceBy>{5&i5R-WC1(xpHGuQ<$!d1DI^?GSK0rqZruDf z_3gRAy^7BDF$I*pm~PV)d@h33czGPl9m*OGul;YqCn}sm|LR{7*)0BDnFML{&O%JblcM{K(ib3)ioJOr!?zSq-Vvdpeeb;Te0Z|OAq=p`BmuD3f~L6{ zy4$18aA8@oj@iL8D&|Y@@c%@MurZwdfeKJ!eHbHL<($_D7=-iE*A+JL*7JolFkz;&K`EB0;YDt&m&@ zuP1L5U;1q*O6L zgVf^N60}8aI=KGGTGsjh-Q_nUVaTqB{Ch*1S{BdiV4Y^vDN>?fF|L_0kB8kKxeQHc z7Siv-RF2EQ?qh5T5vBNm%%!L&c20#;i@(|%WN{5jtetnuibBK3rqnv2AKeSJ7Vrp? zGrkzi_PxDnuHq;^TEvlpTVa~WnTyWaU1$RrV%+=G&UC}^Xo=B2pZ~QQ9-Erm@=(ER z88cWa5k_IB>?XvMN1N!tYKiS^B{+iC^k^S7(2$O! zvP|;w8pC0|#cuK6VC4Rzt8hNi`ycth&TH>ii{9JoE%Mjawnnv1SNnUy_FKvXwA)Q_ zIB`!f_Afr&`{Hoyo`4}t><22it=c(R{O!)M^w#`4R_N`@YaW(YfDmLM6|yIav%_!; z@AVX_=X&54N}u@m%xUb|kK;jX>ezeL5MV(mv2gWfX9|T)p2NEokLCiX^XVIuz|b-B zwn85#pTZ%GsdtC&wO~>=Dyns=YQM$+2Vk~9-VsPB=7nHJE7V8tcNt~hCGZ=I^+;P`oFvp}l_Zyh+rL+cC z|FqCHh1k&~Nw46KA~GT1_BKu3DYn(F>`8C`DElz`Q+Jx({wiFmfURjBCKL+2qX;p7 zGCr<^sx_yU#oE(PP~9UdTJ?rT7d*i8=sv>4yuTa~pEaxi9&!yt3bUq6Km1j&5MD&9 z3CgY;5*}@XLJARR*oPkPB3MMk#vq&i&uq-R{Ax~2C{lGL{6TgtIX{_K#r`iosw)L6+ZQ~5#U;EDR zJqD`V#LLirwQ|;CAx2ZXljuP%N<(ui=JacD*@+ot{rt3_=3)kcykaDx?PxPWgQo2HYmPF=Q^1VzVtlDiPSWvY#gYd#VGHVqoYDm(YAEt_7ImH}g@gRZo(!ZqP!{Wp6yja@8hkxDv6}GbkHJ;CW2kVn(1ho!F{vk9I-4H5e z1FCfXTNGk;w5Fz;H3t3Dplgr3=vdgn?XZiLn5M{ud5Q ze7bA(e8Cmw-(igx`Ygv3)e9EkARQ)>dakY@V78L((b$UB7IW~^(*GA-?--m(*sYDm z$;7s8+vdc!ZQGe(V%whBwrx94Jn<82zUbtuCbXVQ0ueC1tW6b?t zQlHm}vKOu!+};Ov_2ixjfNGiAaaB8#)L7~AzWv;mVIyal)hECBWjF-kFtO*miUnSIOs=4U;Bt>Yb_7#OPFdB?Su7 z>&4Y@jkE33xZ}KuLoq|~wq+9oP_w=)@M)T1xvj`Ia9IWeh$Fnj6cP&mfGkSU7syPx zFGA0tb^7N;AP2n&Z7-@Z{on&FZz|YT`}rN@c=&pZJ2>jBQ5{IDficZ3USvWmb-f{g zJyS7LCwW$n5Qrd$7a`$n;aDBy)0g_0gB!Z#jqRivK_cksLTH}q_^x2ortgT&r;9!u zHtKXqe#woBS4L_5AAd)U*uYO)zZ*_x-hgA;UBBB;$DZ13W}>}!vscT&TPdHV;e0_K zTOO!?UqgW7C)c@ic{I&By)=9*+?O(hy~X~)0KLPAo0IpDX#W6bWH-G$=R{D4AYcuO z&k)3NyB8=}d)gq=^dJ-#w_bRl&OWHlHg=pY-on#Narav|ym=+??8&-%&QTgyD9YQsH? z>J`l$)H zkMJ<)0;+|gBSLKbnbq6L*~6Vz9Cqn5!>)@lk% zt)K4wc_w1=w1~Ahus_$8;HW<#8B`z{1zY(W{^k0{xQp=Ya1kx&030*%)*~1 z+fO?;o=bEa(JaNbTsSAQC=4^<9ok(GmqQjmT%2)S5%WH79~UHJFheO}n@_6@Ccb5r zMZ(3M3-ye*7b_zF+@t$}$t!mCK|PIH0(fU%*LA>N3#L6~z9w?Tz2bOfs1KHe52)*B zJ+Vf%*RQxl#7wCSL`{0l`(=+f&dl{9Qo;HB*8Y}p`igSH7ux=?Sh021XoVsp7-ikF zZ$vkAZXK8JQ!ZZuRlkKjeFKXx9MvpHkko9W_j49xgwfLwDSv(QR;p_J($_ae`9_oA z`1k!{luoqOy4h^gnY_x70fQ^D^`GtFWNBNL5AHH6`hJk$R(0~Wl^;UZ+OCkXFAXeH zMNkT#XZwPrM2kD?mO%jj0U+ro_A|`}?QNsfyZA^TKx_CdmXT%5y3)&(#P@vlPihqG z!9s9B-oLavOU7BE4~XG8+FmrhjOuTta{!bVy6blfRH1UNMD!rQ4EAUU)T0?mbB5Rh znKP7+?UHg5DsgP!!%xe3&dKlL^h`ETF(RMh6OB9U(DkpXWP7UQqK8o%1dU{$$5dRW zM5~doDlbEmw&w6R-LjMy-aUiXzoublYnrdPb!de_H0BeuwNWuX#B06+bX>B?4ia2D z-w?jc((^xW6jcAUQG|>GM#i(h5$k>YSN5KMtzk#!NB+M(A;aCSZy$-|?{v<462h;* zD_bU}y50{|!jC=%0mdXRC%CcylyOAg$G)yrfR3gBwl~F)nqgkW29GDD%^)? za5M#>sWDifL?k!*fdpaSN4wXZGc^T8cvuHd7VieYevzv8 zj2Xe!Ywgc+%-J``d!>C)+-r0hfH>-Z7=*olErp!vd^yY)H0<>=?}(P53Vg!)XYGB^ zQKb`kKZ@sQ1qywY^A}_@SbOe&Iho{efOC5?lsD7a3(QOX&ZDNK&mY55v2TSI71ql& z)GXYrMJx%Kt#R*A$}AM$4XC5L?VOo{z{(qAi%Fi+AotrZH7~0IE`s*>_|IpUH0R;s zkuLz~B=|bbg`8pfO_bRwW_rDkitW7cVq)#P%5Z`*9f4V!g!==2fx;Cul42L{CrQwe z9JNT9>sbh5EP99dY9LBL!dEazN0e%c!A)s13|jjG`2OroP(AjY7%qkN=tx&AJ9(k(bbw*k%EII!=hNeJhO40k_4hg*Z!2rTJIw ztFX#(giiTzw(yHB(ba%NEb`H!V^+;0C_at3;-C}peuQG0bV!)H z|4EX?3)nZfqhJU@5SUcSz+p;(q7)(#eYeiVtrGQlS(|7*1*+vcqSRp$!TqFK~qLV|@EP;&uZOCD^{?(iTQ-jfC8xsraELJa_+}*8{|HKZWA5qnBR@*C#5Z$wJD5&DD7UyKqMODpXXRjg{ zMX>=-j#Hh#<3;An^Y`$6au8ZnG4aqf4&81>V~CcT`3nMK6Hrv9FsCV1P=98NTCqsX z2g|ZwUPeP;KCv$lpc5JLN!3U^Mbg&vOYk3+fhAvdR6e|_el)#QXPK@@SpY2m28LSa z8fA5_Dv*8fAgj_8gm_$Zs1E_Q18lUKtzCfVJwtJB+^J z@tZr_cRX~tla8O#Va_{aF&{`6wJp!OZ`0el?GT{tbS%0cJN=+kg0=?C@tPdO z32IwhTo%~V@^y$M3~58DEx}c|7;jU~|3m;G0++h0=TvEX$E(kxEjC=-b#{=O96Qwa z<-0&9Nn{338DEDtdziS3Oqdd!qQ+V7tm*2m`$1bXd2P$q7NgWrC+bw}Z;(I3;C)Sv zy%9A6oOb;VBr;cBYs{XO$@z~>ZY|6GOn%2YF7f@4aL4$UgSOsE&Gf*RJE?DTp#vhO zZ+n-WW5w6jFyH3}#Hs4b!E##zcOEx*{b2r zfO0e!z*vm2vG|fH2{b!bV+bsjkNfnSv(W+Yp3(y_uQ8=rIicm@(wXA#(WpQ-0$_J2 zVv1?c-_rZ>322Q2N7zms!utj|CSWptH+b^ zrWbM*p%|A2efv2eMa0BatFIFP$gX49`*>R;RU8h<|Bw9(zfm0SPrg5M>xI@1|JBFc zuqZI_6#{^R$X{_Ne{z>czLK*{8DtN{)e!O3HiK_D>9;Ze&b@*z^gs*RVx;|Gf#PANyNV@kt2aNN7Hai3LSu+v@-FJH?JAa%eyNv+l@W|gORC`kaArFfXlaz5zQpX zj;`DtE`Yu}2luh(S{)D_j;ZQh6&~eb%iI~LybSRv@|2_;5ZyEs)*?~4@uf&Q>n(Fe zxt-kwWZy?+ag!#OO2S&Mq)?d4sE~m_AQUv!@I+?79ISeD+7 zepC<+Sap-uIOC^mvG)Nk*Q?&^YLjJZDWqSv*@6D*xmz&8HkY2uPm+{~Y2!AE&$nvL z=Vjz<_u_3^!y@Ai^D|&}?y$Hf0sWPjcnltbgJwX;VF?z(boZCB@)bVh>oV^tURDm$ zYFw5ug3Om{fgDN@@~SA+)~YQxNoCDxtfydZL}`JjvGDc+dWM=wa)2xp`gIj8P5A}b zF19Jr@X=Rw#Q|!}e%)h@BK=2Z?VKXK8V3;!*d-pk))~c*^=ZsCLP>6QI_i`XqC>Sl z;kHk4xWFhY9-8!K@@^oG%L~3`4)sbPikbVB)cm_f1foZmmL=gb?=5b)3B95{)v{+B z$0>MvwQC#KdSs&fAsZJbZvN*tx+#SB+kKzIxyo1m(6lPBp#I;~uK!x0ve@6o`guEw zRX1?KP;k@z^>|G5@AIFH_uXpE@xM>aZ^}b*-^bm3wCCPfHl?7!ZosoZkNx4Jrh#@| z;5ART|H0t>?ZVwXHXI@0odR~yM>xzb^-8S5qB;3B<#`$2jaZSKz$a)#G-dNGm?3g?+AXgpJ&A*MnWzr}|zfbj^Ux&L?p3Ze_j;rA5eXI9pcg4qVkAHodh7|+9 zfX9G%L9O2R`{*eY2ku2eEbUuLs`mi25ieDbRPUFv?6?P%IMz|q<~oC}&h2+{%m}SK z!w3By7xNC+e-rm#xm{DPFO-LUUrYhbA3J+r2lw~UOlBU|e2%?3&i_GMZP*WQm)CNb z^ENU1O0SUkXhf-y_ZU=eGcPVg(Yms>uWmdA+HdIBJ+;3AUrSnl^(bTU`b$WEM-yN2 zH2+#F5I9U*KemEt{|)_SHhf{1@F8gYBqf56-FNV3(m-w{Jyg%(-Yfg*d_0I~z%Qfbl*Xu2bC=J0wi+yotj4G3ZV2 zxq`lml9*mZ_JbWnLN{?S`;SOU!qHO0vUd@R;~(%>C;MZeuil2F{T1lU9WDC1bL)&O zNQ2q_tn>87&eN-3kd2>@+?yEhb+1s$W$~q@5myBz?+e9>=q-77 z%&_^cc+dTo>>2P~f3IhAuZE9+kXyDLAqRtMA9cLa@h=ugk#N$C5PS<_{op7(jMAsPA2}o-FQVyr)GyQby>bsr>rrgebjPF z3NwWw#lpjkgW%Ss0Q&E+{_!&Vd4m#8a%lR=27W)mMGCUn9P{e;mL6!n+Z@7Tr5pp} zrBT@+liND9nHkdqDJ+c<+Ar3vUorIs8H-%en*TT-D|yp`@G7l;tsZ(!^Tr9A$==Rvqob;nA=2cu;b0?rl;7gA%v#2fFtvDZN(q zr-v|dtVeDnC3@_M;^JR!2%2M77WTQ1$BrEDX7`g2){VBE)UCs*nbwA#NTK^duJU%P4Hj?_LZq{PL`4~}?^p@TYvh;f zOqXe8!kGC2-XA1V|Jp%H)3D2%K{q%Zl?-){yHw@X+xFC(Kk4 z|K)J4>Gw`eK*MkgGX9m02AY@@u1z=^D&i8*J|SgX?OD-`S94liwFde~-$g0SSL{Gc5QdyNbjpTZN z8-boJ#}11+NbDqAB?DZ&=0PQ2Rv6rYPZ{oQC7+RpROnZ5RJRkq0V9%Ms*3Lm2M+e9 zfwzTHBGB_w0KIp=+WQPkUQX{_j=n$hcK;jq|JRg?-ydq$e?Z(_q7Nzzj!5w1U-q8A z>LW$>@xkg0-Z#nmsOC5qNl;6$(-$kyZ)-U8TMJ~MqE@0$XB^L57cpb_o+Ovt## zqA4|lf&4y^xv zXy?Bs___gr_dSDv=e9uC*O{9@Dc0fry3}*HmNE{!|6Hr{rJ%ehj=%k=>zNwB%@u=q zQq|>eN$*`5P96KgJ$pSO=!1_$Sp2hAcOI4Z)5b$eNu&}egZihpZqtXH4UBeK z#68LG`*;)xE=%_&))=blP|gk?stv4M<$fAL+K`2RCi`G!V%sIkJpY2y8U4l7FTh$> zcg>;}xTrY!E@J%N4^lB#x786#*deJ1yB?6S&f6^|N|XKD30!I~A8tuHN(z6l*h_Eo zn=4+#`RY&oR!nDHv$d2{KBZj}8o)nE$nD2gaT06>MncF8LPGG|t`#r%kOcLhhFTG| zw_8taDFUVMg9uX8y4ujHI}6>>YOnJ_%2RQ>0<1gbxjQSuNIsh6zRV}KaOM?2N0!9( z4@RG`ZR$z^wR7}jZ_vCI9`yzgShYsAn8s7xk2)^`7lHAUdLKvrDJ*9ZR^pcNfr17q zoJA!8m+$xpmrT}6e#o9TLWB9E<%0EK2wTIYgq1#M(EwzY(R_IYzb!Pm>^PA;CzNy> zh_TK=<&ke@0tjNXo|Ry*q)P+>eL~1IK=MLHyT~}gAAQ52CPCeE{RNxrjVrRIlOg`s zAMAx24>-2$ML97t$rh02$*s)#{Au48RP=Xe0}mN}Z%9(FCY4AA&FMlrpO?jDB~rHMw&!Y^7rw?Fh=nH7Du7MyT^Xf;^J*kd+JaCu zs3Ez0_z}FfA@D5)H7hdKs|xz4$EnyVNQv%+jD~rV}O-h^hO!x04)&pXbW) ze9m0Cle^4)^1?|q){6s;{nTAB8Fi?x^x|jgkA3gA@8`_NP2fuKtE1<-RTVYWs-EOG z6^8Aw+!8OOQa<uvr0esC@8@fm^}#IQz(Xq?Y1FuV#f9KKoG(}m4*(WNq5A$L@aHO%oxtfCM2S=}W&x6HenVF8g8nib|~Y3IR4ol{B1 zYe@81rFM%Q^-`i!M5*FPEDIt|5ZR6);D%2TJg7WibD&7A zaJ4}JLggn#?(J>ep~#?@nlXyQ9oeloOmI!j+QKwcf=ik<${W$z*Q#C2drSsNtE+R^GaA0F);!e9OBt-pMTI?t+ zZ1}PD?KOO?7})#q(es@CEc9m8;SU(SUyN>Rpgy3RS~GZ?yx)Grn<|w{Zw?CL^617s zM8U+neOu=WbhBi*QaV{AW0dUArj5JHE@>AGaQblaez`4#I`7*1yuOch^aGEkyk?S0 zZzm4r);s&Y@1m8{(I;`VO=dgby3Fs#k6qzzm=C~l50a1pqd-4tEcA2wxBr=#5K#-$ z87gz?854P0m8Rp_42B}1fL1T?;@ckCh-6rfX`A!GC8kaBTRgdQykpqg^D+CptM|2v z)Z69vcSRF7kn?|dj{onu_W`Fr>gmmnhZJ>&>g2WNb=5Qd4L64BuJml`e6ddc5O?e` z4SY~uGGJ#H1CF@o6c1T}?vWS3u3h^a$K;cnc@-IQ5eaMK2i=EfiK2`aJ^E@})ymrV zjums4G31dlf1>CJM=@%=q}w%-W%82zV8u@iahkbsZ)oO^fNeM&aoRn)_-ku3*T_V7 z*||natbRVys@;Fkk1eB_Mad^f0BX8gU0%8i(D~!cTH{nG#o0t z^kAIq3OXSSha!3-L1%$E;%)>4bkTbPMc(71QRG;puq^TADLA`dLg}kiz+#Q)Cx$^B zIK&T3r+)H{KIGoPWVJUkF7OTJgYueE{GFg6KdJ0r4pZ)%#)fK+Z=nQ($+;=XD*MWt zY1C3NyGZn}6h%BT@w5R9Ok33^dKwUJkqBRrA|ANELXN;CpJe7Ns@=$zyg=u z21OqVYV|HaP<_|p`-%<6r;?v=*mtJ;8`;G0HQ?-WTLDKj-xxn!ablJhV5N-q*DXwx zUd7ENM6C_8%2AJa=AgZn*FKMiXn>^V=3l)O^6lpdRj0A;C@dd~?&k>%@M&eZkl~=z z|D7xs-?t0%?5%kz)X%Rt^hp!O*Kg>#p8~3>G#<}=J$mtj3JR78Bu2xj-MsIZbgM$` z6pqjO#{K8b9ur+C(_x}FRq5A@u0n1F>8Mv)a2J&U3V`FCMSq#5 z>#DJR;8q4wNUTGtniWzL)sBC3Zi_=eiU0FfJB4vf-z(S4&cl@wTXZIsXUlE(upi61o&Av_|I&&NhQE#D`JC4h&2 zi!B$8#%h+18@aWHJ^vl&P?k6_N3++G!W2`G%c=PoFQ3Ah78Z2!$dkiulhxipocyR_ zB~Cv!M3RftUsfld-h@?=jMLjMyVI=Qc%mHw_Zm{a`gUO5)FF!)Hw^_L1K%=Wb>viz zg>2(2f+`6H_yGAY%6u=%@=_L!AbZ(?fgT9Otmg?)7zI(gK)j@RWoUtvXZS?o

        =&`xVq66}4tP(ZtFWQelFC!?gwjYCyQ%x5S@-svl8MyQeto)Z`2${-77 zg9eQqC1{BpEX7+2Wrbd>iRe<$oC2Zou{y(_6eqmsD`r)hh@(W2-vmT1HycgxA+KpFTd6V%6$#79Yzjhx!<4pzL9 zV3kQSc1_s)E|#!nJ*OnRAPQ1l?7+y3z2@7K=5?oQK!mFs1XVcyH5%E4BhAm5RcIhR*UMTvE)< zH759P;=GZht`=}d1iT;{1j>UkRs4gtPrt*Qa zy!`a6r5$LN2P-EEFTP-`2HCbSR#I#ImOoZ`oAUl+%bJ@Re9mq_yya#DF}>mCU?sh; z)9?6~?o{mG|6+E1@9ir@pLh4k`F%Yfhq<2LHvFGc$GPziOgH|1man(hxyP%q*;DT0 z1P8Kru)Dm@=V#KkMhegFS3!(2+y>t$OGETy{>;w-jLC}z0cotvu7fK zQImMvsTMgYpRN%WqJlyqZ;`QRVa&xdEG(OEbq$7NJGV~2%L!NdP0!t?i+Eroa~@Sc zx6g;wE9h=l;BYU4}@9Ef&>X>`9X zc}qfTB_wc{rn;jKeFJHjfxp1D4oy}R8^QA7kw&L0vN_?Ai#0wk58e^chM!e567#r$;5l`UFh(YxKuOeQLfjt5 z4hrE%Vhl9m!!)ym&H@=4d$vsZPf1}?gg=z}uV_M?9Hx|PjB!_(bF8r&OC+b&OXG@O zLR8x@`iF~XQik{I{c>cW92!<|ZB^k$lk7Dden~V(V*=O&J2M|pe_m|LMzv|PQXDOn zc||KPVi5xWK` zoR1cGlL@ndu%uoM$CU~ofAy-@OAYU5LIk~sbM9Y6>eot!JMF#NL`(`tArf5vcKs9aw?Pg|?`-F1?)t9m&} z(6dWhB5M@=s@BZHr3l$5bIt0e`Ar zOf!j9Jfol#ntM!6$T~UXXey8QL3CtHQoA^6be4{7Ub>YjWhv0)T$q4+Geqr%4IL53 zi;#e)AZE7m2d=kq0DoS9E{eOqyOy(GH7wsj=C`a%!ch;Rk}JbVzBp!QslTvZIXeo)pEX4ON0{>sg!qAcJW0DX#KdnYD>4(I=aQj zROb);w%Q&9wxwY?>i5fYeq{}Rd#g;j z(<`-qegMC7kGemE{v9Hv8Tz?dcD%qi=6Ly4OQ5F!M)Y>!=6j$G))PmwJ+R_x>Ej!O z0SiOWTKl(e_x|)w?FfC}NFu=0`XJ7|ASdp`iw8Ii_Qu%qw8@!!L9 zdj4)#`*siT;QmDrGy3)lKZ05@GnB1=p?&zS&&R*R8Mu0X(K0sm?_uxLKK5pSSk>wO zX8brpd94az=Ax_t4`0IF(W3+I8E%Aa2QKwnZxiLj4EEd*kA6$Xk2Tra*_ zig`bMTkmtT`j`)~3VipZMWjLQH%$Yr5!n;Ryi~>If=$S)d|Sec1+jAEO8zQS$hGHs z(2xHmVO4v>GBW0>4IH#M`-K6673hTk7#J0$&~e8R2bA!Z5=~cM^xQ-c1fyPtN4!UA!XUPH5nT;rs!`aoWRO43a!ITo!!#1{)g z{_{t)ejfgVI1KnAaV0Ntn8R3g9H9a`!I`ck<}V`FOFqRBXBJZkkFnsiABEj`(Zb_m zS5FXwykFV2zJ!XbnWBqBiiO29c`f_U2q6@BN#zSFF8CGY&^aqe+oX^Gnw|-b+6XjL zjbxbqLdq!e=p<3dwc?YX&T|i7+f9$HagH*}Gn7o z$u*N8&+1U*3<7OOmcuOFNUuHNGs$$yWn0sunak^b^BMX;F0fI)`>v>dwds4MS!KMd*H@X;_%L%MY(UNoty|I{K#mf;o|k^eFSg7}7M4oD9XyeC zufw@+Z?j(_Fdujc)4mCUAc9}X?(NltC5XNDDs5FJS_iH0M<7$3{9v&90AB6MIB9bGfX2L5 z^-Fo7>04n<;S+Zf_crV#>q}CneUt8ERbP@{bs~6UK|n(aByoS) zb?OVpNtJQlh7C$l{P9!4+M^@)Tz{3TkYVQay1k@BS&!N~=vck|I{ zhVyPtPY99QQE`8K!NhcmOm(0(?5jpjHJ9tf@$1@2lUArelYLpUM`65hEA5t|3BjwW zM<{(JoMHra)9|BZnY((BtQ7;Oam&i!#W1IZQTV#>;|YVRZ?WpGIE~18!1gXN(1hLMt+*&LSnf zvU10NR5RMUg>OH}Us0Ji)an|CA^t@&U7;dk|9y4r={!?GwssQ*x{}uRtx8}Pa)k{L zqGm&Rhw;i-7hKs1)ZVuy%O*&dLpIFi!4$zMWxVomDyb(0Dw(zSM}YW81iGKnjIg}r zIy^_wTKR@$;}@-`W<}3ZKEq8q3z<9qfMCQ41CqUl=!_^4Cs&HiYI$p~3CkN~AM@jk zrb)(1<^BC=P~Odl;DB(8J-c)PIsOF(9hFD*nArB#5@d;w0H^SZ9!vwK3Q-306D5O` zS;FXd|9>wKe!}q6!cksgVnJGsLHhxlarmTeZ|LcJb6nFkefN^cR*uH)UJg55J z^bvJ&GxeYdzH4PifFoYt=zQZ+nOE$=^nErSZJ}LUM;jBx1Bx-iy_z zMI;bZTdm{K=2O4qb1U(?XUk`Z;B=tVDpHEO+zTB+w!J4wo%6nvo=&g(>DSH|u1{ER zP=p_J)wb(qx)CFRkCpEa{%R;?M4Eex)I{`TKTthdfu`W0;3F8|p9Z zdpdfFWEe86VMW%O2f&X&7B#~&`=6En;|0LU$vd)6aM6@VdN5k-^JK!1mw9_ke*3zj zubxo-B_SClmi}S0{x)HKXHN4T`LuBOvdB7vq^5B+&a55oOj<|9)-e6g1U!Kf`A575 zE)=}qL$UruzI=T$g4m)N``vFITx>P!NTzWS(t0a9L5ZRYyuG|^>1R{Z2}_@YRjTvbSjsqC)G_;q6BcJvst-?MO>MKmKbA@~StV^E;tiW2VlbYDh{ z+B$y(QY+NLzHmJ!g^7D1$~Qre%!VfbAq+pW-00GTQ?6Fp&Kyl4BDRZcSGXRt=LZci zhUo9qsX!8rCKuN#hng?X#Vx?=@SNfZ5@noAK%|>PWwdj?|2%XWqtdEd{Po6HPjFW! zXK(M#SVDm;OBJh6R8yf`6KNOFg*c*|I8iWJ9wcw@yCBVf7D;QWz`Uz7<29Kz4y61j z`T0kj{jp6WIUC6~{dv!}M_&tVWl*<%u?rf%W-8UmO|1R9Z~6P^iUx*@#7}iXzF9UG z*PHv25(_U;H2f~IWv}l{3Sp|(Bc>c9hEIWa8eQ9B6RF{{sgV{X!(hkJWb5p!LJnfDD>9k6pbv+eIGnrhxX|$UvSq+0RQrtMotF+wrEzIiK}j z+&v%u_^l`2<ST%hU;- zP1`BbPVbFtTTItdeoy~+>kljZhm2WUi!GujI>9FTm7`)1U>1RAWcQrqpS2aY?bbg; z#&{#T{v}BM@D88QGr`OXZ{`Gd8xXnY(l1jtixnWl4{}5lX5evxL@)_a9?i`Iagzm> zXh1&BB-_iA_-K}MHvQ5HP5!&VLECq)P@pi-5PJnIWem85;&^pu3Cosb`NLY)-SAL&hVOZze*{I*>b9X#Mykb@M zg)zyUG8nFJlTxHs*3i*~GfA0pOp|A0{ahYL_OWXZ?eJ6>tn@1*-eC~IcLGq7EflfZ z*~?IZkA?_-`;ag^q%CXm8)tCkDZvr$^-ZxVCs_1R-430~{NNt&jL4b7Y4qNiApOQB z%9R-LIsjsW!-1!Vp&NwPOmq1GP}P1kFG8Ub<*9^qv_s>1<@&A*p~utyDb&3_82Q%e z-ahj9Ta|dv>*P!GCmkSKi*LEcX@q~=dvA(`ulYd?(#X)mgc{XVoc?cyWSQU*kL=i zV~&7{S3N@HX|-PO;J*=+gI!&x-=@I?=m-TTs`lJ=Me<1Hu7DO`T%I>UI1{W7%=db9 z!FE)Bi_mb0$B(k7N+pwuO96*Q6yDQ0H;hk*Z4M53u%4pH{zzfS$`jO8dbiEG@M4a& zRIU6SMOc{1C+Bw@ZAh(enbRpRK58f5Bq!y>DEKu1Efkl_i#nu(irH#t;lY*htcR1_o)l4n?Ou~qDV&!@d;$419mQ;+D zJq6Fy}X9|D=;&o+5G)_CR%sGc^24Y1>y364TO9)grKK_6*yT z%Pw3LnNNduFe032Zx|9?$IxSeT=JRjE6TZm3F+g=Y;z&U;kpklk_n4B{mII3iMu5* z6!SIBh8%N&M61FirQgDz`1cXY-Nrcgr8~~%l7h$_EX3IbmascBsT#ST2{Ain`?OWa zm3k-bSg}}&(|m_{aa~Qz4SyvZ{8&eC@rno`rQK-=TJgS;l?8$reBgusM@;>ie)6JS zR(AE$o20w6mZ4m_tb~HfV5wkcN^)TJbh6~uk2;XjCX>4t7(Rwy&OGSqF1|5;BI6(2 z{ZQIt4EMs{jGWmg9l%NlTXXHJm$tj{e<>|$-I4O{$R!esMa*%=%k`bgw*^-Q$1$&~ z{y-IB@$8o97lFe_e0FQo-F)i0_TamooBf>(R;yck_#MF)f)02DkZx?(SX6b~(HW=y z()KsDj^6@m%giqlA>PGT#xHQi0k{`Xf zEzBKy7&y=I_e^y_o=+$CiP#U!TzYnWUm%9gM@;P3pb0o6NP7gzyDW0Y_&Km%0l*=z zSzX?#6s{Tfd&FjHZKSOXi#pf@Yj_WQOGJB_auU@~?)+*0FIrb3a-vv%gndnJR@xxW{pon@g*N z*}|NPri8Lqt{hB{tpJKQlW8%wv#ui}aQha8 z?v@7)QX3LcVCS+0cb&loO}mm3Ep3JB;1U3mff6R{83UkXen*wyWD7G5J1dnnM%{wW zoEXPFh|CAk>@;!g1$imh0tKhl^i&wcyX&OBxsNW=)v)pXqgMF&M_K;rDUc=yDJs(Z z*3}P&2IJw490guXSqClJWmJ0cr=)j96Os+|O#XZI6fP_KPgL6r5@?%@TG}hm>4_UN z%y-2+E60u`Jo2qUjj2ZUI}qczlrUf5FbzM4TH)r49fWe$mg>iywoMC{e70Ax-? zpEzU4=~(@1cu{ee$|!Id>teIx{2yUeX*lFA^WFj`xb4LT@ih#o+!+5;Wd0u%^WO_j zCX)Ng`pg5!x53d!(I1O(JVdpe4qAq@JM}#|z9&yEf*yA5`DQ;+LiRS%NBn*jmyn_lqsQe%1T2z^}6YC}VXjd4gcyl70>{Yv|*td_+l+qpcK zhueWhqG-tWv*4)C>%9)ezKeQifaIm{KrYr{G%L$(e}p)B?~4K4$LD(H;rIZ!IUS~? zQUCzz5^+K3EBCLR&m2iIpCij#CQQ!|zuTUdT148x{QmPJ^p5H$qlhA4M>PS~P9P@oW})yp)0I;Z$jmqpnu zq(_-dFfEVEVnxw`HbF`*A4=mlP_W1^Fu}71ka^mNdN*Cic!cpj;Vc=I25$B4)~tzU zNINKgC7~ncrSM3K^1C!rm~M~8&q0&rR6{3Xnt|a_O(eSvbE=@je+@{uSYStRm%Z4b z7YDyc&7ajL<31H8aKfqgyC}^fd5J|e5&})AK+zAaa{$zi)=gG|CA1tNC*sJU+7YEi zgd7U0vU*bt>39~1`OEHZwnXD488*dNRJ#0MVuSdhAE>2-nAN~(f+hNtcKw#MRnD$y zKXs3%0xG54HROEFv6*Tq5^mt-)8iVMp1a#>#cW=(fA?&K^HD1${2QsZE;Vw`oJ!T%(o3Jr8lt-LWP- zGJLyrP)$9)lIG;q)#0rH+>~=PWQktx`EAfu(jPOn$A+Gk(RO1pyKMSl0_GmNK_*8x~szj}niH^tvOyKk3ZTrRJ}FNsqcNH9qj1W(pzzamKg_iB?ED zL=?V4G5K!vLfS*hL8tu$u+kLaJ&jiFnMR-u51Z_R;!uUa!!7k?;TOZAu@O~bI$koD zY)*}$V3N}FpHnFE(5&?)vtAOKC{Kn{$nS{HSgNBcteh_A>EYX&Fc;w17X=vCN7>&n zUJJq)QvpW0;DH5@m{%nB{b>R7)l*OH4!$(zxKr`cF2qDoFWv0|@a<>@YC9b%sci7z z1E)rG3Y*lK{uutID5v<2p^V@NH8tNV!bN%sgS(6dN4tTOlp(~tVnIg)cCB@6T@<%n z_D;Vm4Dc8@>%4(x4(6@m;ESWRIhQ&J~7n(D}|8@4O;-KREQHthAk=_$SW^fo~f!R#POJ zq{yfY4!+bCarQ54zsZ6YVWqNC%8K_5FCPq;6WMekB<(Gi^G!3^W*LW z1AV(&xP|5}ZYSvwd2S=mpuPw(f_az^3SBN9UCe z&->rUXM*03RG_tZZ*e|%dy!%>>g@I9D+!Mni}v?zPw_1#BLkRlO?&!HkKA3jEf8`C z10*)C<8m9Z(vw7&19GOm7paZ{dmB-q)A&*Fj0wcA{>SiYp_VHBtY z44oV(%-x=@u^YG4g?291x+%O-a=-&1M{*g$(J4qi@HpHNTVTeNLGeJH4YG>G+V`ERv)-a8E}b}e`PbcciCja zYwae@YTovve8rMAm!d0Xy%k0xXv8hPlZtcik*%OR%l*ijE9xWn%MYh>ZH^?X)`D$6 zj7~E&%pzR{tF)tB^u33F%}0d2%aI8N%dbO5iYd@FitBbs+>d{P&4%r~&Y`lbLP6Ov zbEjI)CPdWigyM0(qJQM*)i@V%A;*4e5SJ23Fb*W-^%!CyzatDAY{VR9{gd=cd4pmy zW-sS+VJ?|W%=cpNZt*u8yKZzr<#PT(3FmUx3RV>+nH~MsQ1g+|0H|#my3S*mJ3Yly z%Q^G!)+~Z=)nlXKXpsY%Z4zCw=bybC~sb<4}G-9%K z`S6U<v3VkKX=lf`IvtN0 zVgs&u%QRniOT-Z1*_WKxA!Au)&69(7BXjWci9aXReOEL}%NDw3l~GIE4w0d^>D72! z=Fc9h)ab_|{8#jZQ21-YQg)D<`ImK}@h$guaxSuvTRl%Uy+zAe_6|0$?|J!Re@?Nj z*|T=FVs>-IEGW=d8Z1PRRwqv0HsY29&cYm>vqkBn74)857Gf^cDQRY)SF)Pt zvIE0k%a701tfTG#setKQv4=6l^o@dudHpVIsRdTFtBjWj;#4-)d+S8&o7fd5X*cbV zEf23*2O1>su&FlsA~6CTQX2^REL~z)Y5VfeSI3|VDfiyZ{zAU@KKQhKR%F4}K4{_K zzt_G>^go9_QtQb~UJ^Ac&%1ZrL{s8pq9T9aj`wbtt{%5Yh~p6K=fxY)B%$I`lkr%I z`jM&dVmK!LV3&B`UvGk?IHjg+W@80^=dBrsDmimjBSud-B??DgPx>hsi0^1`+Kbu1 z%>*@Jg3$SwwMitPgb(h?ZjSc+BUQ7yH)K6HZmt%F)kg*HkR!~)exQZ|H81ZQn zMRrf+n8)#^5Ze4T%?`+uQ%P(>>W5Jy3KSlHQxF=E^;EEYt$VlPFsSwGF{Ha+oHpb! z88xg~!EmH5MdX3p<<@tGpaaN7PfLo&uxCNWbbp$;VLh`|4X_9`$;71pM>@ubpnmte z7YM|{hOz8emWQQ``aG$k1#%`VhkbOL>dox`Y8%PpV4|qE!CP7xRbrIeh(`{aBl849O z<$V@MbU0thu3w#q@{H-J+x$X89<3Df8@1wSX$IXiid1j+AH&=7K_?S!BPU|_BaVuS zK<~4k#9|bp?!^?{Qa?g;UiZ`!i%4d6JYKopH99Q&n^6Zmg7MB~rL!X9`_0~*a`uE_ zgN$ZHr*?!y^g|Dk*q{w>iI##roGZ@4V6xCby-u3?}7Tcix+g-jIC73}v>qZ}dO~A9(h? zo?^jy-Mus4jL#BtQOq45g!wR~LApIf@AGj#9>ce<>!UZP=Cc59lWKssJ#}ReXyL83 zNB0jp)0AQ%AW87on>#nj&Y!q}R{d1D)T7(eBc@Qt^{##6Ca*Bg2Yo1s<>gqz&^gaVZL+u@2Aj zuW);~H-BdTvl~|UBq$v>oR5^z5=Z#yv-aY%!^;>1F`HRg-dT)Ul|7{Mjn@xKVOb=* z;c+lsXM`-AduHr&PMkMnp7VZ|JUaGjb4eLzLCQ3$ylrwiJ&s#Xzjo4n#3C*4ijO|% z*dCqI{xNeuci+*yDtuB7dAY2%P;Fd^H-S{1rAn&iyQE!s;?(bS&jU45}rH^%1ZQ1h?^8P zvYP_R7ygj$HG&HwGUrQ30hA|u+hrX}Grms`G2j)R6mTEYm?u zmU?e~csQVFFUsAAhN0E@y+V~%=NZ#OE=J87`Cs+n|2u%w#dg1`F$sQQS$*WYybBTm z7=(opk!1OK`pnO1+sa1y>yXyC-DbO9zC=Oad!5YEg|F%8oFn{B*zr!5Dgd8a^!rNm z8W|90NQA4qW75sHT>rO@|`X zW!%j(jkTAHZGAC%fUqeE_*90M?B{jDa#%fSMoBD3At~Zjvl$JI)uE{InfY@;bM!<( z?0>XghlRz!!D9Tx0AN;W+ltaNkyMp(bwQo^PEl7?JSq7aOO_tsn>B;WX;ks zME?J|E&os8X%mYM`Kh8LovY-JwQ$dyqy3IL!p1c!Etnh z^)j~TG-^s_E-4D|po$#y{2-xz9p^km9Gt}P9Wkhan#tCCf0N(P(JRM!rA>zQ6eY1V z6oQF^^_t}{%`$pGBa1%#Ck>xVy+NXOGS0a1;KXu*;)KNvP1@e@o%O#5{E!%KsU6A{ zB%~FtOX7HeD`fPCfoD#fT^Cy%sc0NBo;f|xx!wCKl6MW4y`&Q6{Q@(Zo+ZeT52n`H zmxb`czE)m>No6Tk6&kY!@0$3&U&W&W$Y(pesv^P?!9-c;VxMemR46``Vu#Gw&wbmf z!SE#hHW<-8kk*ZTn6?@g&3JClNNJ^)^iu#3j*#LA6jhSO;5+6RCSpfe$Wv>yb(#E8A}Z1r!!yw*-h+cAhDE8m zQ7sveKyv!)Lze59b?qEkOY2tzozy4nJkv=1&vCef9|ykO9qk0z5tBuHcqBNY*_jeV zt2Zprr`H{atvc-Sta+?t+1m2QU@72de*FtK7gblI9(fzWSo;l0> zv~Er05D(b5)5AZ2)Z6Ag#w#Twu!PlUk`N6 zJB`BMl-+N?%|x_+dF+V)d{~tmT5YtFu*H`@772~X%6WX7%mMUUbcd!o5%{@j>p*%=V6R%y_Wpng@ov58$G* zTA_AhVPAqW0=UgZ<9>ZleotogVM2jkSd8ISAdXluS1Xz8S+&d3YesP3juQSi%qa;o zJ0+I@m`Ax9IhKy%BMzT6U1)imgmy^*R16WL*%Qo(D@LA}9fv`^^TUavQJYQJr2T`G zs(*?-%lwcAW*9p2uzbc~+~gRhxko3T3{PDCVeaI2ZSXL%T|xd_>VrD}f02Ryv%LNP zxcVi%vlLrej!gi3JH$kBIzAH`X;%X`*$%(H6WOkJpjT<0+iSNe>~=_J#U6sq6B0lH`>f9)pfl)VrizUqwh# zkfNim{3|GZ?Y@U!_1*mRdJZ^(zY1VDLtG;nvt2!eF8R^GVPT;Fs{@!+r!vrsI2T&6 zVLIfzqa#c({c_jWO(LzsA}gUI&K zhxQu!xUYYBk}-(hD@?u^Pc)3XvFmz{yQu7XG7++z8FW2;#7k-lSjZTeQ)vYW)s+0V zt|WRwziE}zlkgzL)5W~~XtSy{xDy@$iq<`M-=_E{r@!?lxpm;zpv~568+aKo>DZ|` zQTF}&J%;Hrl*`v4{8fd$<2H&5tP1)xZ8H>KdB=;w$A&h8lGO4AKOe#cWkF+{vqK~O zRU1Ocq{dNDJ|~W^7mq#71#N7r*)GW*<_%^Ll%@ec(PY@bw)Z0NG&M}$zzF!DxIAq& zB6@0XA%FDj&AN@d--3)>15xlEDab# zMq}T&4Siras6*urxyfm&QJ&va88|6A(yI^Ks)jm6N-(_N%&st&_E6)R3fK*s5Nt zdx*YMhT5TopXf7ENi-?9{ruitP!{D0R4)01YCn|j|W|sy{si66iwpgQ+WE2- zu2ezzk77X^30U(#NSObv?y}N3_p+r`kAv_HLMW-=u2C6mY_}%f%Z==ohkHuClVUM% z9#ajyvx&t*4cO2YJx64E+_?Jn*i07dUqv%=vUt-o4pSRO1NXO-@n3-IkN3Do0KYWz zTAoon(dIJIYCr9k=T5)T8IC|?&&Wm9M*B7H_M_1z2hi+#b%3GJeax}t@t*qVw@qr1 zU{seuGbcPo#tm1hmF%Ydc7zwh_jh^@#BYCNSHZ7k|y<<)X zmUuIibZh{U#PnbL-bD1!Ak48U=#AlNLZGn76~NLR_U_Ql1=R=F1%~?_KSacW(*+%q zqaa80{x^610jKAxVCd7r1S!7`q3QNC=zQyUG%Fod^*ir~T#&sfayHG<#)k8YHbbD( zMc!^c$I1BmA~nV7>35)B_GL^F`>+Tf2X&Cj###EsL>I`*vi)x4qb=ey+nIs?jQ)n! z`t=i@#$~|1UsoIGB_2cnkZo++@6fBGrTu`s)3N_nm9_tA=JsK3DExH&UI`D?_E-9U zVfpc=7@OH1>m7yGE^aZ#S3BDFZiG%hditQ6j5T&Mey!KiZR7xm~kIVtu$yqwz21 zb=1!}SMY!L;_9~*MD;fqe7VWz!->pD{+VZ+I_{B$ULW6Qdt${x+?n*#@2ti;JuwWE4~*48L1YDnfK!Oy>Wl7 z@8^~gQk9ad3KL@)2(AZ{DEnH)=?08X|JWjb1S;uXG2mW_WjI)Q1LN20C5E==K9z43 zhnPt5H*bgq%|2)uFl7p#G&0GwE*3ArI|MHGcdBj*zgGzS>>K@t$d+IilTH>A|I^|a z=>9(Zm+6*0(sJhw#m|`QC7PXDk$28xTtaak$S#c{bWA>Zj)Tzj$DDSDN+Kr`2Xb7myhtiy}RiYca|AGov}4EhgU(;UV@NDC^$Rryw}%k0jI#609rxy3zu&1Hy>Zqyc(<&jl{Qd7RbNlXpzDSmeOa}^+5`R7)JNW5!{hpBnl&QRK;B(>$3js@>KSr%&tpseRPpsBgGYgIbL5^Xe6*sUvgT%TxerCbs|o_1@Y#u>j0VtG{F5rA#FOD4$I=`E=&kj#{Pb{F4I_8o z{yf3_ef=zIy{=Xa!U(~=+24O?Oi^m)ih!B5a|!3?=4#M{p@|Un-b1P<+$upB&DdEew5=MHc+abeLBP z38wR%Z!n1%j~{nit-nUj+Rl_gP%crjIck{r6Se^l(%TI1z8zzDHkiDfv3dp3nqadT zc_;cqe~+`TvpNEb;aij>qiw*KKiE$AajQ3Y@gvYKf%T1MvJdI+uQCh}4-;&{P7e9+ zv751!F@zbEr4l&YQ^Drh635r2ySAg6-&p_eeTtqqh{&-gRLp^z0zpF-2*L;Ije-UZ zBIF-4Uvx!T%rR52`x=a`x~4Uw8*qJRW-YbH>j!^yJQJ_bkZCv4 zYd#2Wa>b!CE6fOF2e~&gyO0ZM!ho#}xx*pjBHo;&iQ{=txEs zK{zR*>KuW=A-)v6Xau_P)CHYRh*{zxNNEc4b?U3rkF6XQM1t?VPT6n2M_@545A>!M ziT+)!eRngdH5d!Pv<4jd1-Zfe+dkax)TyLW{X8_oNLestvra%8@iTcgTpSPa6nph> z6(21DM@2o4#Br;+?H%qn|C*hxd{vt}9q98j- z9SFAy%5)EWbd0*PYfyN-xnDnNF#>PlM0&BTXyz9!<|mtLIi}js>`#d9#SdWf$GUq(F+YWe zaeK_{@E_W}dnIKswbFxg>ApJm_>DAPR<+LK_(|&K%or08=0GTwv$-=Oofy0L;(aQG zH}Sk%`(Z(Y7_|r0wo7334D`8i#pB}l;4mt^9oMHxqP!u9g>mLg_0;DN_Zc^8gJOG8 zz6Au4i3V?-%73cjk})NkQcf{*)K?A4^!CTtS-mJjq9l+NWK!t8pnv*_FDs$pTgJKvVWKVbt(X_p4@}5s2Iroyif}|T)wpG>RVH6Tq z5RgZ&rLW-RdsxqD3YGQW)Lv8)+d$NGM`j`1%Czk9N!#cAfrt6APCKIQZr(rB&;2%J zpSet?*{h;LaDGA19x1i}Xp|ICv;b>^ywBH{7WOHZKBA$=D`k%*GoIR=|B7UO+@*`A zs0S7vt&YXGky}O0I{_l@*iJ=9q@FB~_91OGv9R;y8AI@U0Imr)wqQzRd(ny_q#@)z zmcUCeTmTfXur9%_%RBK)F}`nbdpFhP?tJU#)p2E;|G6M`oG^!LPP3!W_Vrb#|F_I^ zlR?y$a}wS|GN7$K?TH-Y$BN2a(LfM%s7kd8Xa)Bf*0^TN{}XZR(<(Q1%;Q=4Q^M!z z8Xhe!`;bob#0!SbK{f2Vd8_{owVqb}^R|WS%_L%9)kudMKeSLVr&NgmgV^-=@gu+z zk_C#q7Ca}WQX&85be!kzi>mvTULXwFshS_U++SdXx3Wk0aj5t2J^8>0O!PdnPd#!* zO9N8jqmBIt0Iu*Ga+e&X5eoh3%cqWI`4hR$@Z!Onfa<*5xXYv|f18x_uhi0r$5cY@ ze>(;H=FZ_7C1|uKg?*As1C3W+kqjRc?d&mcNx|MEw5yXk@vHK^P~>eL^yo)Q2 zT(L6B=bcCH!#+w=P&j(*;GmhZ_^Sk*2MPslK?_@KN%izRxVnLk{nmO43da>zMyTQr z7O*x@vdK7{{H(BY3Vn|ixKF)fV-ihrox&InnC#oEpwzHxy+F-c@!F$u`y)mHftilw zS7=2X&tB7fgrF>Vl5Sil?{(k=5y4nTTh+7~jXsg>d@amX8Tem>zW+QB%zYUSIMS^1 z`$^;imfUMMdKp3v*aP()jU${Pk-#{ zXTWswq!qSaYYs8o{dEcD00d6(jPhw4au~j7!{&eM`BM;32VsIYTB0FAViBVg9rq(X zD^1COj++tJgBGiK5;stS_YCZm-6?RxWA|?5gtf?C$2i;N0I^#LZB}a&d|28DXkEQt zGSuU(4p7I=|Ada4{HPOp{(18O00q^uF>OGc*25?T=1V$BL}&XvPcY9<;vebHysW2s z!>qEkjLyr8l9;m5Mb1vYGg^QPr11?z&(lRtIJ%yL;$OiEE^3Q_C8FmKb#LoBbVyy0 zYQ8OhM=5+(-59On~P94__cHLo}SG(!>Xxp@NooCSAvbcYZIT| zmI;lcfQohQ50}+IxxHa}Q!I&U8@8H>w?sawa-bJa zcwsp=T^Km?gGbJc)t#jH9vREmpJwK`+?*2p13cVJ3i1)vHcn)6`G$%ej&)SES|APE zbkCd#Z?1%iA@8^7d*;QY%Ps_2_`dKJnh!MZ0z!(YIDC4`tpi@D?I14)K9{wwo!-vEURnz+c zD`B5$j`O^U0QFMvUJxWItR&F-u3K2t8nkIZ-EbElQWzMbIwU?ti=2z`?K*v z7m+H3z1S4N-zyH4MfWUym(2Rybz+SodA2)e;Lb(k`1ki#_w167p?ly_dj${4PoEmF z7URSa_FXR?Uj8+o+cUW4~& z@GkDVFW16-d#VXc~82SLLpdP4IBNR+34yIu0 z^OX$UzoHEO(XuTeGil3Kx^)iIV+hIG{rf;Zs;xfL{R4}i;m`_ojJNOBtY_1l|J&SM z{)nEcyJ8oJohBZV{5Di|5vPyMs8&kJvoBAvV&=gpm!@ibae0623uF4x+nvo26*{Z9qW1cJ zeJ^*zBuMeF!kjpsoj!DATJ2rcG9jvY>qU?z7z;piS7OQ6wiT)R`R7u;HP zn_#m7yMz-fWp?=cwZI?TMw3$w43xKf(SQap6dtd_pX`Xuu|1R*yyMpYHuX9qJ_+4Z zT!-J<>}jg@WLiNzQQ<^>M4Zie zw~v+mM{PszI8T4UAxge8&oD00$YF{i$0dzyw_T!YnoVX;EpG`C0fT_2^i5rLari+7 zCZZ)H#JHYozQ6@Ns*FQema6^v)M>gmA^*_rE9!Df$ZM~9LDwrepA9CbN#ux+0MRzl z%ZuodsfQXJ`#^arO>aYAJTl0$&DVYjD+~zBvaxYO{Xrbz6lYrss`YhMPO~!gS>#v`fXOu z3z&B@#$ZH$bidbWh+hr)Fl`5^9?IR>zg>d;=Iz%lrjK_QJiwbi(v6i7lozAhC&jzNIetXPrC=tnmV@P8 zLO-gs{gbb4N!?w9?*P|T#qXk2wm>U|-|pb;cHpm-J|miaufvp`Asx5LDv~GPj`;iB z;(aH2wu%)1oy7*Oe^K3b9Xqc*_ggzxaddITIZ9iRqDweB_Iq8|m#pMbAbWPk*SnVJ z#B%4Ly%WlQN1~ORqZN_|@7*jxwN*#8Vx8L>-i+Lgd*q5G|rm6J_P?NT`MIh_G;<#5>_PgI9$_1z9%473b04yWVP?IAOU!^XbH& zeY*1QFEw;^wQPbp3FB|A6nnqrmdJWopB}a|`IHm-8yBoS;WQ@9Opz5we@XJ9AU+qJ zci%uCiIWb}DNMK!v0QDE+^!QRH^ctH;K8jyutXCH{(I@q`kr|y=H12Oj#d$A8_Eg_ zE!h|#1}(ATH)qxzXAaj=1kti!#`n9HBh(ob!5Jjp6?G=vXr^*o8$#UgwmfBf2QCIo zcuco373fMgVN@A-jkLoC6pJrG)O?xu7WKGoUw#LUr=DU)o_L`pr>5}!kW2Mok96lJ zw#urppsUp5(+_z&(?@+9yKlW^QLy=)&HXUdjrN^bu=(3w?K~Wwt*_Apv&vHSfH<+V zq+Swzln!|TPQjZcVrsVfWF+?43rUEn3p6mykNH*UuErT~HY2b{k z3btD_BW6k8m6MZd&_^bqTjup~rQd^=taUeGlW5nx4e2L`6K&0y>26QW8GakrHQXo-{wYhA;hihV1nfD%|oRK^_B21M_u76-_&nq zum#tf_k+!qKsBG!rbC`PkkkUSJ2DYLf|zS+GlGKq>%_OypdL-sr=SLx6Cl=0IvMP| zvvn%;lCP?*V`H#Ee7kKOCN?pG@GB_ByX&LBw`?uk4kG_gFM!jjJq7B(QYWBw1n98x zV@FrxOiKN6yUhHX+u_MZ{XgSYXTp!{RU=F5$`2np7Cx;up4$1bzveEx5)+4Qb#mx! z$+ezb|Jr}D_1R0QU_!lv+6=6TBAr?GG+{ki+;bDJz46s(GaF~s}*y{9|9hT0g;B-we| z*yhaG|Jz2H+T3XY(&ppM)ki2lrhps4+J$xa$M? zJV%Yut$g6JS?1ZmN79_Hm)0FM>?sduA?AEl%43aLyTtjB)5D}D!`?4whh`q8Enogj zCMo@&rO+?ibP~(f=$cLB z#A+@Vc(2<8t5tSuLuN)|89OBEG5*`u3FbW>#Z(-&N(;RG!g9f=5EY5K?O@&&#nX8) z#*nD_5ZTMYo7FSP`+TNqQW>`^JnP-bMn~0AZ*XWuk^O8m_T3Q);guwSS;Bm^1t~}# zAo_dpYd9}Q?_$HLi4Rg53Am%9{fPm}YL(Sk_;4Wm)M;>=zB2mf`p{%lSWy`GV}S5* zgnxg>5%y@8(pLB#p(@%&zJ`ij~RCS@Y$=P?qSuF9k z&SOS7*s8iGNTD77rZ3t8AH8<-1=dSnn8}qZNEr{9YL4LQ2rJ-m$*#sxUhh>ciFjB0 z-}@&IA1FFd<9MyXFWzY4V&PlhZTxfjLs{T6QNyu**OT4o%ep-eblUYe_2qu<`2k!X zjeLLgeBS|Ndxph7TR0qIZ9MQ*u>j9f1fXnmo1gER9(Podfe&?E`_i^qwZJQXrxHM3 zRo6k?u9A~Kxn~T*VAlrAAoF}9@EeFsUmy*u?%_+e6JoZ`tZ!dn4cE?fS zZdM?|QQPk6f}}I&fsMGS9*g6~L?G=HkxR`Uc(;D5*(n{SbxM~ledQszp_S2$u`}lc zZ>+V0QboDu_D5`--?$DQ6qP7%bUlDOa-C~1)i*fI+`NyQ0*h=7GH3pjf!%!&v0%hO zZ@};A|H2T{=*~!GkpzYVh^@iais~n@@0QssRIsphw|vEDVT3M@R9l+qTk;R}6iX?gbDYkMJxXQ{aexMlgXUY2`Eczva%q|cd2 z<=-fkTu&>E5YAcI^MyS}eby#mreGh#A*Uu3aA<)yKt+^`iPrSf|+lyn&#Eqz$R5_71#R(V99X-N^i z=7#6d#;4d@@ME!lu;`bnJ?g0;P6-i>!5vTTP%%wB78`nfz1C*(drhZ@y!8~YV9Y1G z3=2+WOLOs2nW`VX-#%DtC8G;5mBQ7)&5`k~#|#w}O*c)V1w6xz|5W~2WxYbFOtd`K zuMgFhRQO_+UX^NP*y^&m)Az$}&;lQC;q@zx`i@Z<=rUm-Z)|%P~p+X{J=fpXZ$3`TVCR1qB-2S*p(~9Tz9pZ z<2zW)mH$I60#G*()8@`b(Qz?Nt5*B%KGMAAVGRCN;R;w2-_%iloFX;6XR_&J^f`}Z zT(ZpYAQ-*zu?K_H3=k2J)c8Klq zQysDuwPKEy3D|6x31Y}?RUu0rp3?WD%dEWLCYw*gHxoqrdG|3E6VvAtiEc$4XqYk7 zmwHn7-{sI9o3T^)FB-NOym*ozHR>w#idT--N#K4fV;vdh#A}e6-OWbDaH{6Fj;uK& z!}wmgh?sU6vP-@}RBL?FvbT)}bfsBJ^D4okDO?p5SPiSY4`kMxGF;GR{OXw;&z9WyyPv2{coCor23O?0|1U`Ea~ zFZ*U)r(YBUcemRz*Ty9M=WC38dka4BhMiGHEq?IJTGv(eYQ0g*c6NTT=coI>PuMa7 z_Uvy*97fA|+Z6g<4}r}4tVNhqukOE}o|}CM%&zyiHjImyFTyZid?(n~Vi4Q3RNWn9 zRWd-}bn189EkPK#+^stKryF07vq5%LL^eaobUh`aXBt^?_rHT}|3fOSIW*$j9@CtQ_0RTHEwT;2~yt^brAf?Fk z>uawtc*kvEc{@ooexqqB>PbO2DzZV2GpZ+ebL%A=i8Pu-&MLi4#FO3B_ zdJx0{#}}APCl#4q?DX3RIM<5<7)MqB&s-yr2Q%BGKo@%=_4@suY_5x;YphS_^OU=e zM{jG;qm9$DFAMgyFFIgE0!ivM-DYcgxK20Z#8D=>1GI|+12l(0qlWaJr$AM4zl9D< z$fF2fP{v)q7rdC*c4!aOM+ZJ2d9Z5V4{=C-6`zPg@p5DwJkQN4rt0C36MNwGjWNK={1$_Q-{hgBQK+3|+L-cKUutIhZ8Jt{L=b0}5R+PNf0ZE)$SUR2C#*fCk+SR0g);fBR)y4liQ&Lo%p0hP#>r$fiuYu-z zKEFdjOO{s^N3>TM`Z^w@&Oq++34BS7A%nRx)VJejv7k>zC3rU510x;!i{JG`nnsvi zbCRn^VGTL7_UlWPxW1(98`roW45b11Sl|uTMiiu53TK1*#=G>chtFM(~Gz8&y^%Mg?3_KY#qYq;MCeRKJIy7Hy=B(7_Cn{n2M8 zCGR@+LANY7=U6htSO@R- z!e5@rI95oAM#97S(NL048m6!CyNzJxEZxErfEQb>DOT7N%}p9AFV&OsT~6j|+ENHNH;TlLhUUe*gKr{Kx>;%$c&+hJ>9_tlUU3dvbmr}{5xHZ= zy{MTM$~Hb8IbE*cf;aw>XNJ84Hi`(=Z8|ycav==}gwI6orH)L_XFSZT!=pxVrP%5C8o45#J|f`+<~% z^83PtMUnNY7_OBjdaA)*zD5BVtlV!F{*<_x#}fD1lHEREjxx}Zj$pX?>nOdqHPiFb zbhTggs5`{+0~AxFQeGV3Z!{{NMtb|?^NjbTD;_LCek>!A&LV{L{;XA^dpu_awizLD zQETM#OU7bZ0YAHDIgKFgjJIkwd;ew;?@p z=e<2DDeKWYCbN%!T#+;mw#C>A;Sr1SB=0q1+l5+H>XB#EFDr>EC28+kxMh{}%mMFFsE5q4d!cg<~uw^gI`H7uI`eS5UpO+u1MGfu)fwy+f+X&}q^(gy1qq)1%Xs-p1i!5gQ z-L2f&g=mY1vZXX%M5U&Xh}|#k-at1rpLWDfE1a8FJ^c_38-B8gl!Y!W*zC&FDY!K8 zXuN-o*63N&SXbN&lC|r#j({+JEE<1)K!09~yg7b8IviODye=D!dr=`h-{U=)tn~!( zKOa5AuP+);5fc{?flrmKZLh*wkaoab=Qz6~qa5r_{x3O@(2d)tixq zk9?H5D&hX`?F1Agiv%SOAarw#x68t#S44malZ9kg4+lc9Ix!qG5;@35?tas8!q?f+B?Ds_p7%v}8Gaq(4ysNw6p6Xzd5I6twpTp2%~u=8l4jIt1Q zQ6%L}JpPjDmnn#U2(umfwVmX@zuS(W_|D zum~s;VyyIm>5H-R>9!5Iq)?8N@Gx;*rm6VR>p2ziN_v2Ew7tW^CnR(+2vgLToyEdxs!JRH}j$ zLzO07dJ7<3dhbn&6zMIY_a1uhJ@ill2|@^bJm>w+xu5f%_pG&lB>A=1%ARXxu9>-J zDNe;$_g!kJ47Ua2j&4?=CAG`+vl4!^3CSsv|%`$-y}Mil53>9 zIbt~spYltpT=b$kPwTL+3-}aY&J=rsU5u6Th2;zQL|O!zCO`&>Iqw=@uknY`j<^HA zVmK9>RFs~Gygo*;ii3@bRylgSa!#TY*K!n02+f-H>DH$X^d>Sx-#d1!&N5sm004Qe zY1=Y|xHqx%%G1v&2PcM#KyJqOB!hg2qk|+0pNvkgA7FK zY~!sebdj`)0Xn%k`suV5jcar+CjX#hmc*t79L*SSe)Z#PQheO=+I)jvhZ8*CGvrx) zFCK5eYKNcw*K?X_r26koBl?MycOsGA;wA)^^)#nWDJd_ee9P(bF5=I%2wdX&(3K*Good#61 zWeeRJ^BhOqWdg!xfYh=dF<7P zA2SK|DN9Jr^SE-zEzI{>RjRvtvip{vOGN-De`>FXGB1sNLR5bu`dGjhHaxW>t?V>$ zRQc|13+6qo5QPoe$p&n0kYw9sOW6o)3Ss>TX6S8s{TzH!FVq`|h(Pmp3hM8)A9>@j5P%!I@H<62Jfdl zW-1EH-P)xnW*o9Mvy;KXRq4$w|3|f1fz` zA$bCq_3nt_d8+JW*Whva_PX(kWhWan(q+1DTbS`_M7}%_Iz4q@sJ)YKe2^OA)H!i2 z`@msCN$5zh>Q1Bar|452sHKQo^OVt_eQ)bAFdmTVQS0FFqal#7xyX~m^=4CBFWT11k&;7t}Yfu;F^rP z+lA8U{=P7yG3d$pcZ?|t%-4my%eE4^bTm6eB$uA}pI*RNaCk(=WZV7{4!PUc+L2HV ztpO0*_v7y-m5A&%(_B)f@+-Kgo@eQ7wP4VRhF7RncIpf-QYylw&pzwgzTW0lol04^ z%`CnRw_!>=uWz@+Mmx8z<=}F&*i6^czY0c>y?r))1E1U5OR+k>tlOKmYnw}tUB|0| z?AzZ+7ej0!93lZUykekgy|gya@Hz2nD_JE5(;Yi zbRBYg<)kzAG`UBEH+b><+PWgBRojRyRRs<+M6$rSR*{i#W&j2c>~0T(Z17W8Ue5w9 zUm%cgGWC9)Dz!-;Zk#qO9(R|shYY^e6Y$x|^yTmTO>%sF+@^C^Y?B?&z8$izg!M&7 zyEBd^X5Xws@7!EZ@*w^Z`{|X4@5Q&$8#o3i%9Y|S>2_j@`G*p8FJiNcSl+1y5oNc!uAzk%Y#RY*7*3 z`!rv6jsw^EA!EnuM@50g5+^w4^wl_6GlQgzquJ+XCKeiDXAAH1z^ITw<$QthuCXUB zj98^;W*Y_KNGel4`of>&Rh%WMPrs45*0$rTcAD6&zA|N?q{6?Ytx4&S!wgV=!^<^I zG*W;Ndy{nXxf0VoU??RPE(DirJbpm-4kB(9V-Z1XI8T@LO(Cn2tARqe$tJLek6;I` zb-lo5Mkm(K|JKEk+8k9xBR>!)g#Xr?yWqd|@?lj^Q=*K<^W<+t~-k%n9e;Y2cgK@&@@#KSpTO?GNe|=R;C~ zxkE%s7j|1T8WhQhoq-4yPPR`aXe}O{O*%$}?~&AowX|#mRBl$M-MlcWuqc8WK*8a= z#>EKS?~fbvPHijFRkAOGc1^!GjS9d}4VTLH74!Kh&*51Z$@b_)mm>_`E0l$qb%fae zcGb1}xZ-2LvthY6-TE@h3knB24|>;P{?@O6Hvcv(qZliaz48yDj;&CowE*p~)xI9| z`R0VXkdJv~yZ@4-`Gu&6x1UbSO^Ur(OJW5Eug3Srv;@0Cmk|7{@b>wi^N}@$^C(+Q zl2p+=Ee=Bj;Khj6VOH1p!6|n1FL(ItnQm#)1T@{d_yE^~stzPA{Sl1i-S&Em`5v@EXdwv1pL4L>}J zJV)jJhV^Q$1-)o(E5oLTm9<@TIP-jWaQ3`<&z5JQ97ur`6)ZjpU6GJHCP&0d1DWdlqK$JC)u7Hcu-Y>OF^x8(nIFvwWdlY(;0Zo+==9Vs`s>m0iZKGLc(j# zuu(_jx>Vz&c8Mhem)ad85B}$eux0@%zAHYas6CV0$z3W zyfTO(H#?$wa;HITjfb+)fvTc!PeXv8rClcxX3U2mT!{u9W&^<&3hol;U)b$S8_~0-g>;aqBANGby4As;!q@Ft$%35)4LGR zO>Sw+_ZdG$BtRY@h8RWDp}JxrLq` zNtGXOR#*q)eDkS^%S#wW9nbNi!KYaWvYb0-OF$=@4y zEzT6&Ra(rW>PyLwk$%WI7%+;nmZBauW9=W>{IJPN!kbN__XRz%vg+Udf>)+NRzaal zqEWN$KZUOamcjDEW$;AGC_nd!xcrZ-!^K~_Ez-gXd=6^Ycw^aP6Ii$h|Jz{n z1U9Ui_C@>M<5dYugrMg!()T_SLiVoTtT+n{{0fn&Q=EEsYg&H8igh>ZCBZn9RTkKM zlVwdjhyE@m^~dfbXnV3FKjA&z_$7Jx^2sCI^eTqzit!Jr?rcxPGkHDf-#wGfilGME z4=y#r&Dd-|a9@GOtL>DfT+G!z@ z==j7R*zzZ;f2HkQHjE!l9lZY|)K>QFsw1Ia$|o3oc~kH0%4GD7f8?2Wk?smu&f6x0 zWoYLr7u>FEEuy1o zCA^ZD$`zbT=SrQvIi;MT0D0kR=|k~b)|fm;lU-^sk}k^)qp?FG#Zxf8z;+Jl(*o-;u^sal0K7oRo*O%trT=!v8ncI;^ zFMi^*3ft7qXBT!GO)4k5Ki2>`!FrU~0Ln5Gio;_`jBsWJ zDzGq5r2Zc->>YCA|pFLGY}Yu{d z&jdk`0WP0p;oMprifN+%Lp1&0yvRP&_em9zz07+%_L${%$A?=|?kB(IW=!l5-xzPm zJHd9WJZCWOCL6+$Pg)R9qxV1iv^V9viz^e7N$bUb^6|P z3lsfYuj5BV%h>H7s0K!pa!J>pFCpMPiab2&PDmiNuq0~Y4CXO6y^i)`EV6g2|7(PS zXbetP{qzf`tUod0a1AwTBnT(7!#}=DM=U?$x_Qe-*tX>0PbBu23GrODRH)w)aMx$(iz$W|G#ydi3jdYWzjZ&*hc5$~7$u8vt=L=# z+TCntre^b0c%e!LquWpz7aVU?a!YCR!L7xy zWcUGhc`f-~~`eig0l8_JuxXwSAcz8d^$KpF9jim%*K#rlhrJRW}R z+6Qx^ckxc7Qj?QnDi^n4m*ZkL`<9EVmZQDYy{yYep8HzU#Ttb^P&=@T-SVx>rzzXb z?uY@*-=-TU!+^ljA`V@I^t-aArK zK+18fgHC7`#S3$;`TEqaIO5}BZRV+xZ}eGPkSTX$~9XG9%-a{2U`Gf*9l&4Ew-w*_M_?Hp zF2O3`UF+FkqrCk_k+0gddGV&IcCWfN@_o(hAQ$AiQl%t2K?wyMSL^RCEbWAV0t)J7 z4iOJYIMqkP%32+0ty)Dyb}RO(94sj;m2Yzy9?vMf9*%vbWv??06&S+WT^)iy6&bPuKUG0}1D{6KN(*o-wWVHv z>q%-=ln_v$o?xFTE2Za*HJSxOS9^IR8j z@uhchmTXId_|2(ES zc<-Uk+fP(pBIdhKi}aR+x2j4$*!t!?A+hss6=5B88kKGIeJ)uvv}ju`ta<-|RhJAiC#c3mA_1tE1t2%CI0rT?T2e6Y!RXwIq-HXraIu2`xi&C5G)qrDK%T&hWs<{iT!iHXt{Vg-U!4)kyqKc5}NJ z{aVoDt;)e}Z?*E6kfgH2;r+QEiHu`B&G(yj6HJ_YLUfOQvuS0>=(L$YuXVM*>ohtv z9a`BY3s4WmPDZC5pkyD65PzR?x49JeaPIN6{L~OsQwR$ml{7F{wQ?RI*KfR!Q*XS{ zVSxSeB!iQ2jFLgiW@TL~=UGMk{`&P;LCI4iGlG7tKX=98%}5cmxtZJVm8jyg4;8Aa zAp-rsEi#{5Fbed+XG`Mo>1DKR7hbeoFK+s~j$fqhKPoN`yZJM%L0Hjn<@}i#^d7fy z9M9Dj8AOd#^!l+WYiZg2i0ApJ=;cd&uJub~98s2bt)f_a-mfl z_*$6uY7 zm(rG8$t2mW%+QaYs!@F42-R>WcZ$~~|DB>8%Pa9QZa$*mBS zh7&pT;quJ}rys^0#%ui;o}r#nl*%vTDdtBF@q(VGFWC22#ykx>YnGaMy;b69%~p^r zo=5#56|C_{7YrAAG-DVqkWfi@tJ^BHgO1gzbB)P9OpmO{-;3dEDr?O?$!&~7l}W*z zP?~;qJBUcc1+ulHh(*E%?8*sHMTgd4>qRg_M$n2E3H-0dvvvGXqvyJm*~cPGgxP|X zX|~=D0nD+-RyvAcAJfMf;EZ9j*thvll$X$o3D&n)Gj*#C0ZACY z%$q~YsERVs5(fBc=Bdx3|0j|gUO37C2!u{EO8?K$T(=}+> z7LOrVhMaPTF>OdQaexD?PiSZqYG?yYTj7PERkAbJkdbupHJ$}LhIe&&8^;`^c#|mqj8^6+7mP6Wbk%cqI1cVjcF|C98!)3ZOv6 zuHS(XQ)Z||kA#53ZGBVqlkCwt(pwLfsULKr6-(P$UCDMaUc3C>^H+KF93oA_u~e=d z4>&|55Un`LgfM~SfF9lIO0JI`3sszR0gmzSl`M`pcxe{#!!OrL}g|36AXGLHgV5dG%AIvgf^`7}&C}oeE z=?WMm*12$sU$AN+PdC7G(3DYcTr(OT!XWb|gJ62bVE@`GRaKDuEs%U(RcgWDHSHEzpWqmnA;=7q)GXoSQ!XE<4$Hq#c2uehb z6QV+;Msn_{J{q&c_I96tKp`z>KNGkfS-O;n(@R)1D$^Kd$A-d^?Uq zhZ}@-#^&mMnXbC;VxeM}AdVo=N|f>b-kxtqZ@Q}lvVd~VS5D7IN~>r!S+Dcv^s(9a zO?JoMH8UE@yF%~u?cN88+r7dae%E5^loZkG`=^%2?RpCnP|n1sSz_&cw@2i#%JDdW z?DCJ2c6rjIn&e8McDX*AN>iSLdFqLl9%zi0rv>Olcovw8#Qi zFS%YwwJsmuB1If~-?O>11t-l28w%43H@aB9Jgj+7L7OQi=K^_$#-SbrT<=2%INSV{ z+2aZSiTa=W89!-vO2luA+!269m>5!RVe(geEe5(h#y;<+zAm-4?Eb?Fg3eR+)!+6x zJ!eI-Eec3grBs+X;fIb7lh)bQ^I+OvN0>vZpZA<8rtC}OXcar_7c&~(7^`pwCd z*e`KGz)qsPM7db=FHaQH%G$KP4yQ}Q6p10*?Z%hA68n*GSugp{uU=`;n=cDibAkLy z>Cy)w^Jch9y^#aDtrwgp__4kHw3As;;~_GV*=gsdoXQ(#!9C)!A&<8dOR|2=?j;Rz zFOm&d%@NquS|;kjKg#uBtr7X45QEwnVBlu^xekd}>VBWTP0?P&Rm`x+l*v`++;m9f zd)}Ow0yzn%pY#c(G0`-}=wK}EpXNQnXaQ?B3NqEDg}TqC0;mblj6uC(S*zPUC2d&x z;4X|SZrqxgJr0&^|K-u1Py@JX8ajv8XmwTL&X(RLiq?&-*Umh_JP~jB@a}s6wXv5LP_n%2X07flTYFfwf=v_%YI;#P);gXAxuL9f zD#F%bK5a%{K_VfJiOj3+w7y%quV%F36>U7@Y}sH$wu|0`5z&yz*?m(FZvA>5|7F)@ z-qe?)df4j32N59^)b@c`!sFA8Cc)7q(Uh!Gx^|uRMRE}%YzlY<2K&8M}0r1~KNE*W4($9N<2xB1vZw z!QIk%_d$XGJ)H{sZ)Jfp-&V<$A2kHBgV*)Mv30>`xTc4a#!OmvBx`@ad#k;22A9hE z%^heoJf#T8Dr7D<$Q?R(zok1VSJk)A%le<0?myu#4tc*yJ3XtFwRI-5yj`)g9SD?O zs$0`*#^|vX`^nHSo2oy)6C)w2{PgUJow)LrpJ>Km6_OvHCmy{&>v$L1*2mGhyxL7_ zVl*t^;FS*;zPbzHlxzRs-lr%2!#+4on5%Nr=$^V59N^dTum&L0G|llXWKeKsZ+36` zNp3@##!dCNV$ghtGgI#%<*RhT@)a?5n^|!;X|&DO^BntB>G6s{Wjr6 zk{&$eCgIR=zCbs$-Q9Cv>*d_^#Ea?um+St6zivV4pe@om3KzFJ*Loj69IZ`JJ>1^w zW?cdJ3f>PjpUVIQM>u)pO6Cz|(6E1CBBT;x!1ZeLrGnC?odMZC}$-QljPfMk$C78Ur%(nk>&Po1dK6H(hj&Sh^lQ?r)4t|Ku_X+^p41`)>&O zQAXw%RO7#`Tiz4nu-LFw^HiRuN76c7mHHqcYr4u6Q9L{$mfl(O&1m+=h$)|b(I%^G zahxe5Qt8e&QJ8gxe$qww5i-hex`M@!GOQyfm+Dy`p35zs3HanX=kqf^b7m&*Y39e1BDzG>sxK4}=#kgpa2vv)}c`gmgXho2%yqZpG2$ z#Lk#ze?oMJmLhqXRV~c=g6pw(`k~mE60dTd+bR!Z^YG6#J}hVP@o6@|l;)mPhvX{W zuaVAQOEDWo<}Wwvib~_o_|rbvq^tb2^{sc*6d@HKrSd4(JLAi$vc*;>=|zD1tz4{o z2f6MLC3ucEzGlwUTRiE^bJKYxs^`(C&8Y-Z@4%3&LR=ibWliJa4FQNEB4183C4_~MI|yZ9h?K^AloEwtCiD?bD@90aDk1c z3_>hA*cPtJx-NM1h?tPzUA1IA2dbJY7_1Nv#69~OJP#*{JRrDScWIxXT10*QS$4o% z8_X}H53p_Ceiia^Ust6+#Iuxh2&&b2B%XN{9U1R#%&{8m!=*_r<+WGE#~#8 z2}H;~BwNYCCU82|EVa4lL$@}D-i=ehZ>7YUPWY(w_N1g2VhM39F{AG+d3+TLQH~y9 zR)t&M7a!v0ycgoABqvR|F<8Kyosnp<|5j`O9C5Fv?d8o>+a7F7k(P7y+@mijP}b%u zA19PDRr(ejKur07&5eg%``qzOKoa0cdo_!Os?W~3gp>p7Ks^Jsn#t%Wo9#ig9PUygX9vGU-fUm+t0VHo)0QXr*9{J zI0RBULfV6$g-!D5m~ov|Kd6qmeh!~;WBZif`ev%?C*Hds|Kk_|AGa%3pZeSfFppBJ zuN0p-pZb9Vd%~$<7Sd-lP;3X8kNSxC0Vi~Mc6LXrr1FA@Ti}#z;RkoE?yE85+{Za` zMN2L6oiG6gdhaU&wjW z-ewK(em#pmA%9%*q5UIn4&;w4`}sXtz>~o`T)Yh zvJ8%9Mq45dbsPJUS`EtNCZ4aB62-~Rs*5?dWU8{-Ek{C)_uK8k7VDKKOR$QB&20de zl2$qL65@cZn-x{0F75x0NWWERMYaHRV&fH;i{n`fSm&~-)neMtb9Z3lPCNC}M5PnH z*ikZk-|yY+&z369N+?68)A=pq+Fxv{97k#8iK2Izr&}-oSY%4pIX5Kty|q;l^yw3s zf-#3@$N9Q%wlyN1R3#M5l{49+r7ks-Y68phV?GJ`hjJL+e7f9@_D!3px0$BB9JL2? zB)V0SH)wUVx88<`w7Tf9>fZ@R!pqzyI!&6plnh=_#oQzOuS4&Hw-KW1bwq;m6xB?1 z@NOou`UFg4*?+;*i|m@qdac4XmG-_)tB}&Yx+B(uJg)5M?&lp_LyQ!4 zV6U3ks=1fBq6^8!hzR2ImrBDU5%RS`9-tT}#Fx$YIr+Kta7cQ*ElbIwYn3Bww$rt) zan{^)s9VhZCJOJ;Lo-4LQb!lX2D`w0Z8uJzWCKop!J4h6*6LVdUo~JhF|IY2l?bAr zsR4%%+hJtATOG`iK^rI6pdzd+JZPcjii&P$jC9h(v6v!+@<@&zVqvMF+s_?O$5Dmi zIZU1hY=agCL+CJA5oLU>HXSczX+x(M1o3xK&&e{{vYqUx;iCnpinLjR z&jJ$Lm8}i!C0?>wXv^+!-ViKcfAfxJlc6Y+6ukgQ~ zV@$iT(!FEuwf-MKC)4l8YUIaHPNHx*)OCKGbt9mwM{%?IZkd`|T8*~hDrEfejis4e z7;2$AG-4dQ!=mph#~&#chAhbirAp>bCI4d5DAORwW9;> zCR;LyYM);$vOoT#%|IU4agIhS@E2*6mFU+4#1SkE>_(t~0SSpIbFVi$VX-r=#z22B zz9J7QCYK?E? z+!moF1{m6gzhXO{4c4pI4|aZ>TqsgsO422>+?iylh|jA zGYFzskX);xj;n*7E?@`PJM19NF2Ck|9$}$xWYFjDw-{6;=GyO%W`O0eh4M^V- zE0CGJ|97x|4#4qR8A`C&F&!iab)3~E)>~*Qbvy9$OdU;nekuCx_@7z;(FoaVJu8>e zr7Q(52EixVT+P)1dsQKz(zsaCj|+|j8$3?!SzAhMH9V;VQc3pWDr&8@&_2A4x&0nM zJ?a?0IfbyB#yms?eD3I=5+X9LQ{ZXNp+NwOtrR16f4vBN-x7nqOdIQMZnpc2D0+80 zyuHQ$ncOwkY>{j1U{3KqH$Y|nq)Yg`Zx{oKvlaJt@Sdb*VJj90ptC=qh<&KQ-xn<=`a-6M&w zaV-=4KlGjOm`ZdHD|G?aYTs$pId&u-jXVvm1MHJc-o;2{ldK{$8({3iGp@|&bd&@q z*+uw(nX0^WVG+qBaOpI)BDT_3nER~G1gU#<*d4zEPOive=qnfNM;wmw*# zet78N&D;CHUC)jJ6@NKq=F*IH$okDC?1MH2FRmJU`-0XHVS>9A>S+N@QM-%^$ze|9 zEOwy*LoI*yYOuT0-E^rKD#X`LA7^UX;g!lP{j72E`$yrtZ;9jKAWT10JO&E30lnMS zZK4VZerc9>^$|93y_*ttCWr5kXV9j0!0?QJGiuJK${|b0Ko-9$OLADZIJ#^9oA7wE zT_MH{k$(Tco_!VZv)%xlNAK3R=VaSWP>UKp6!La85X696g@`2t*znsjE!oIxYiA2x z^f0dXy01zZG{}|*PE%}%_=}x8NlUUB2)OVDY&^FA!JmI~jWO*fgfAIb4yE2A^%c2? zU0hu5lFH+-N`?oM0oUr(8L!98b7Vq7WdnP^HF(YbzQsFU(zCZ&Ga6eX1By=V4L(k? z*MCdHDr7?W5KmOIov#BnpWgbnCv6~|jm+nS`-?ql&6AleqMy`yb>80fv!Wc0?IQJd z#`qPP!PZQYHnEk+c^;k1^!Nvg97gA96i`v(h)B=KlEmt8MU7Q}+>F4=2^mN@@rx~L z2Hme~WXP7fI3dz-=sV9sO{8V}cg?~+NiiENu4Hl3IXhU5bDvBV#K{#PPuJDCxld%KsQJ7>6@Lc8lDH zEyqb|x82l@Xdvz=t+=PBi#nMbUB}=iJ=atG^329G+ROf?mDj7cJr!H2aE=x|M_dlo z>pmfEvc`oDBM!Bv3xGsQN}q-owU{`fY_{mzJ*v9BS>(wE+piEX<7I%QtW1fX4My=&opWjDMjy?O|6G9yFXOnoH16&T`K0{Fe?i#OMSWP%M zN=l-M*xOv8e`_AsI)7lOQjd+;WAW#vGB&^bTv$Hd(VcI7(g7EZXG_6+2YJbfLl$H! zWY2XZT7eE;N%oKK$`{ZpExW2j&;sLiY_#~1_YbPzJJVq$Vt_C#SX>FfKdR+WgJzD& zy?IPLv@D9M_GG1MckVNpP{QTs9mJTP_uhQ?d3Du~uaRIpVO%@Q;;;ZUc zk+^aKVXbz8=ghG(r!B}Q^3|nQ_+E+|BO#zJ2iMdW~wDWVf(YAtTB%B~+2OwfV z;}6Z{F5`S}wk2fq{`7NeI0O;hBxBFNYML{-a7G{Cnd-_66F?}iXs!O4M~y`-Mt~bz z_ee}ODUL#TS0}PeN?)0%<#$XNODvq0a>CxtR3SL`-t4Dm={Xej6;fR3889Kv11*OI z7ai-mB>#AnPgD)C}g$KSPbe7T-Qj_kjsZB|(t903He0#%CeB#(hT$ zpv?wCBHeUz#&&;>cU~o?5AWiR?7>j18a+qXLI#eur9PFBO6siVd^}Kn2K1?9_ebCT zE>5G2uJ~A({C=PFzC{GDv)jcxC#CS(_E7mgLiD=4RIF;2=!>VQJ#>_+cA;GIwZj{= zrCqv=kEEJEGNDVC+J4M^ckM&0b+jP&jZ_w78dRTSSxPF2W%agG|L;(Hk1*on{q?ij->CH$`>|59 zeU`xSZvc!nB5?GyU?yYq)R?fjiC4g8gJb_qNJ+)1%r`^5juo$z~yFx*`G z69CeMqU%KFOHcZVrbZ)Tgf}RiEH4cxwaO)hz(-zhcnYm`Dir9 zmxaNa^VAHNSE|&uYSKY+Ln5TYlGhI8uI&?YQ-Cm#*NmD{h-2z0tq}bnNW5v~#Bqpp z(t2+!O5N*~{hqpAza^b$uaxShcM_39LWNY#>R{J-3?h^xg|Wo`ipv(B1W2*}Dm^l( zLKigy;sMwNB6K}k!G?_Xf6-EE@s)9}7%LCnZ3mkAi*5QN`ubXSp5{BTPYTAgtxep4i8O%W{UM|rJoyzmVtThv4jb()B`S1%q%oYU^Lanj zN9Sq098IHun-+Su8Qm9L9_T_;!`w{)Xdol9IrB7lfaNSU*@hq~E#r>4{wT7q@^+-$ zNg9Cta41n?FT~qA_7>Sn?b&67vS|y3%c-P$FRT~+A#q+LtCCG<6qakq5q{_K|F**C zegSXSZZOAgq@*<#qiEH~-@ol19K^F{5`~>~Q>gW$W(|2bw9B2VTUuI1{O+55k0}}> zi|Q)=dUJj0c-KoXSX`JD#1aLuRi ztMt#?2bDwpGSTN3s7C6D_3&X{grUv@DK4#%Ka?DXrFzmW##pdpQg(%}7Gv+_dAgoX z6m|b!j>&1x4;;=tq!|C0&!Wm3#qn%}H;*eFyVN_~GmWC#aso}gg7!au{yZq?;@WOl zl~WFRd*W8vb$sJ&VKt3kx?5#4oyJ*HiR|K29EJ@7)oH$OxBnr>(ApRxN*HI@{tb}s z$na<0c%3_YytWi=ZxZp-MOEXuLKAPOSE69?kf#40es!vViT%t!#~;?zK+^gwAakoYa~>BlAiI?ah5Ha zT4h5(Y5-D&IMct){j@dT{nnbI@kz`vM2Ik*GbIDnbs*#?3IUhUwG_O$o%Db2{fcms zHFL<#wJ(fwb&DUN;59O#Wrs8;&~j6#1S_RC_n;LlN-Qpofn8t@=r!2kl?6Hw9fG4Jd*wj>s?LyjqfqQ(855Jl(8AX(-V z(uO;WA!N>AJZ1$>`IsN5?F4#qW#YtPA}n1~ntx9&D00Iuv~d!1?f}%PtFA^JGZVEJ zJ<^zZRtryOz|e*uQd?zR)AU)h$0;(kIafDiuarkNWRZ9Ne45CFL&Pr0bykIq9{qB{ z2wQd5`nxO(4)W5nL+C6F-VM~4EDmz5ZgH+o7~7zkS0V9N58~AZSr&sBn_AOHCjJJR zTeciF8SR+aO4_hNZcxGE70;EXG0+ zU+*)phUEx8F#BVD;1VMrP*wp28P@JcD|CeS@y(Tu+g3|F#QfGI+Z{~%B30?(9(i=9 zX;s?APBah$)4hMEY;e2G?{rn0{|frwQp^9iOdKAv8E{Hbt0}w+(asZ(+(@ z%$9AiP`nJOMjE%S0~8(Z7aj78_lZ}@nK{^*U#CCQq2{(5W~LU0Yq7k1Aa3?rPr{E- zODsgxumK+8xbRz(SMgz&`CdW{Yw4}=9Z;6ogUhl8Kn*?S7CKq_qnwfAl+p3N)QnEdM5y(p@jF&|w+4OdN`up`ORnaJ4-YJ?jwZF*rL2K) z4aN*;Cq*t)!VQYFL|wW{25t&VlBMeP+Ep;sJy|e8$u?mfEcL!(RN7wGUFCTD=z-c) z)Z7j3Xk&fXRspQ5^dL9X;qmK{T6>Zpc8V9nKsC3U2(QCPyEo!@?z1Zd>nPRl0qvbPKN%Na;!71ajVqEg% zlifOOtZBSDJoR^)2G)<(uxHEW+N(wQ@um-*sM6aTOE?zk`h=;SAYpF^3Z;JDAjS(g2|?{rI|1q!uLO4_3a^PoQ! zwk6j2hAj>!8#4xvqOpuo<&0}a9OJl^^dsbhVA)H9;_@M^Le03DSQ!lmo|V-f0wKy0 z5AabJAZ91ad;6Co=ga?&vHyZu6FhQ(g*YBe++w*RJ}WepHe4}Gb|PvEG7AuXR`|pi znLo|Pm;U2f*-325FB&wDYI^hDfQSQM22w|T<$N)4TVA|cYTvl1Z;=AGvUZ1Wh-6h& zeHFhfHC|jUiz5zX3vC=UgT6*bt-8vD`ldv0S#uu${|D+!=<0#_{i)D z??~_XgzyvbRR<%?Yo&E{0h?c>by=BhHcPz(5%Xp{_(1y2&BpE|okxo`p=+&@-gur; zTBC<({MhDVJ_+TeuM`&xCQ|DjJ@pp*sYV$l2+%~~v-exIqW|EM=ZZtX~Hsy&4cHsM7#!!-p5FY=Ds~j3wE{Mj&qCkYIJ`c-2q~@|jcR zs6~D+PSUWNI0YDs)wZR$)#}!xa|!xFtw_HA7eV+RkBR;d-U&D9G0SiR4k^jpTOT#G zXs7SrY-|#gcv>`Bl~dM`M-4lS^OeQ{a`)N7h-7k<5$F>SF(wS03@@KKjqJ!O)il;*mjUXc9VXW{{VVYRzCs&SpBXt zZ#I$teqwBFjsE43@qO10zud;gFO?tUEi4L4b*f~2&hr2Rv#n?$3$)Oz9&?2+_Q0&e zAODkv#%2an<)ko`f`Q6GXO1G#Oy^9?d?ni~8a#KoeWQt1ok_9$r&VTm|fbXcuKxHtVz~!0_n> z28OggX&)^G%J;uk#dsQfAXr4d=T>G7MD`N(>_A^W!fa&t+Nf9 zYO6(-;<>2hJY48cfP9T>&z*It_#RtK*vPxs5G;g--fg;AKF{H^e`%ACem$H#;4@*) zdA;iQ&(0m5iGYR1JD-TFq;;SA1I5bD&L%vyW5u0bB*!ZF-CXa-zj{)1*QQJtIayUK z`u)b3A?}Oern0iJa>{^t`qwPF?==j3>H~k;Y;WRm4D-Ka^N~V+uT{)`6ghup`VZ*% z->XIbetAgd3GNGf!#{uiM3Kt38ViYJ={@(CTTwQ8)ate8UQiXHb0lK3;CB`8fx zOH1|07Z_PtuNc*`$I=kyO^V!_8s&{w0Z#^> zIeB9ebxEO~VMY%^@tc3}X?MLrJG;*76=zW%qyA6x*57~Wf2&ENgsO?mX>8O;O-)^u z#i%U4XS&eZZ3c#9>kTBsurIl&bDo*xmp=d~L<^|MnUG zW`QISU3xHk{A0>rIn=*DlAh5%QqrGJtD^rW9%slzklov-xoTDSKhiowMbt;bc!h`k zS5E71o5uhZ3cqZ4fBToT|B=W2|NO)41SZzltKyT8Jd#%Tz8@GFom_2z4SKNlV_~ft z>y(S5HO7bt!u*B`c?O1&f*hmOKQ$Qx{|9RS3vlv(uh11h^EjZ;q`ZQF3?Gz&ujyB& zNGv`oQ=$DL`TK+NU)J1U`^Ru)ZwFJGhsMq*f0&k_mmXovulxM)k>vxVf?~Ecao|7j zg#Y&@|EG67Bt)4g0nvM7G&)LIgvOT!ikqp`$HVcy%E^`A&r1dG&d)7S=z^E{|8hq9 zPmlelEg=_w9OJydPC^#zDj4uXW@43#%l@d+hmyXDCMdT19{uyD!-Nqk5a;i@#s3`u z@=xm9H~lZ`1fIX~!%_lZePCpb8yR8v@PRo_ThAz0T_f?&pR(v%&qpJv*OT%3?;FXN z$R`wZUm|x(<~3}uNNuITl$2V+U}0kuGjWN#4?s=( zjI6uK<#MT?nPQXYZ*4VO|6!8fmRqAZ&#sh7E;fA1P8VJjW0L8gF?eExFrBJR+dDim zT`+20tAzLUua_Oj(FOn3G~aQ0o~1ZxwoO)XLSK!|Fnf%YK z29~vEyK+fMX?{ha_Q3qXqaNCF?`VIx?0pU)8G9wZ{3}}iEOySFwNiVs$T!K1&0d49`!HxCSV4fg{Cj*Mce&mX)4}mUoPIsPr(`YxP?oiV z_@3)f9r0sUT|I$(%T?1}fRx0j>q?Otmm1SHR( zMFo-C<1?$PR6d@#C6$#4QgL+H6QDfWa7vjk*fH$iFa&q)-}w*bbXxps9MshK&hlS% zon7zg71fkjT%a^4=AkR8q{Y)BvJ3-#n;b6DU9MU3g-1&CzuWmexU)o_(CM1QvXfJ> zRWHzyn^3Xbv(XdquZ85ZGiqokk^DNBPjH2d1|g?g@T#M5 z`~AUm{KWenvKltaH5Pe?ns9$-+YW;jSDS=!q>8D+Ic2dO39Fh)Q8O6F1a6PDbj*8s z5`sSk5_x-|UKz`Lkf|Qhfcu8WB2raj91b~oJS7g7Fwab33in^^Yy1uHPO^i(0tBv^ zE<;NgkUgGt#;A0Y#>TC$n?h@%Ei5f#aU*QDS`S`-Tk5&`L_MU@duqJOdlh1X4zbUP zeElcHW(aIU?8k!LIpr{a8e4`KY5(bPFzb{gM6nu6cA+-AK4`hh9Y{< zbGubEZP~DPBH6v)KO+~LKIP4h#2>FQJw=;o-NDyl%hCEKf1G5#Se{VmGC$+lQ_P`6 zL8tpT2Z+cIOlDFO(ksM1*Co51S1MDj z#Lj#B=*nIl2KjKk<3Bb{%&x)S?|_>5{MWzkSAxC0y>Pl-=(bi_vVQ^%n^fl`FWFzt z%v_^GPkOxCtg-@JxnMl}{}I~HzmM-^!&t}ic-ReS={+Hx?9^}rxS*n8VW%4( zEs~%CD(>diI18FzPMA*kX!*)EP{l){z}M!{PdLwX@(F5M^@NfN(H7Q?TcDbWb3ltJa^sWS%pfm|c78_ZRWF$z- zaE9{(bxa`xMFlM`<+90I)U%`q`9*G(g0&ubhpQ)LALTO{!KCzi9&C=U1>y(a-TtgL z0T-!g#4WX()E+A0nzaHFu#lw%`Cc_2=QN~jY%+k&UI@>NHZFc$qAwvtc}`=q4FC0R zcpHEo;F~d2Aw#m)x4b7dX`k%x)K@5%W_rFmK7%farAP5Z{*`@Vm$(hUd8T|~#Z^kS zu0m1r2ZLVmBQ}VDeq^_Ss-_5eHOQuM%Ryasuw*Ct#r0$-U>ZVbXh{9}?;!gIey_ay z#P0^uQ^ZFYO@{M0ckpKCIi3rmZn_6ai?VeksAfQt1LJIEo7jXYH6`?WwoN3he9T&k zpNqnvPg(qUxxjW55D=H)61%x2U1T+Xg2>g%Or&3ZbhPAHiSVxc zHOzc_@2A|1o>sx2MZ2o%JgIQ`AIaKQb@DrKEG}WnS`YJor&B&*8lHVjf2*ynJ?cd%HQ^n#50tBOk8Mag5l%B2aFOZ~kXlv`cQ{u6}Cgx}Hc!Qbii9uyYK;!^f~ zTJ3`?Z0VgqgI&^N;NsWX3PpCc3_3cwR2n!OZu>)UrGFb(O)w>iE=w13v`Z5pbzslY z4LDnUPFS6XPDfYz$L)uId=FQOHHGv0_9mt&njzv zJ6aqZ#U_-K6%;h+XuCQ8x>R0iSutDBPvH-3mxo?denw>CNC^$!_4<&3ZLcDaW@>Co z509Xa88@JoTXeSwFee@jZ=scg(XF#S?QY`8NCYq{4hE^;=APE&IVb8vd7gL$5buQlA; z-s;Gmfw9#72L*-a1gK8BrBR4MjX6q2Zg!2|j;H#d_1 zK_$P!_9Cj>=P78lggAfAD__R$kHdZH#|r&I18O4jLOA{8>Yz z=y0h)Pg_Sv*Y9LQy9h61Po=^iqfw4*VHBp<>V4Wb9A~z0$Ol_GPeD|n3>e(5nr8^t zoj3UTC5;K3{V}p2w|waNV&7|?BYTYfh|-v~oWqedP7qv+^>!fp0Cteni1lvSav;>7 zyrawCleckm9aBabH-yXCsCdM5h)1}`AqdEpuEM-MV`dgzK2<>L0C3@bn(ozbJd?y@ z<4K{iFz@*yZFT7__<&;-m!1-%r4nOnRb7FVIq4NphN;k#ubvP0%BT;cO;*ItJ|=2_WVG4)IrCLcpq*L+SKD-44>+H|UYtHH zFDbEfV+}#^`J5C>Z+@dC!Du4D=6c+A}45VEs zU+voC&Kse265FciO<}dNOQM|{;?4=G)}ghYW|Ew%^Yd3he?G3{Cnv={n(u#xg!a3G z$d`lFsB?vWgLqH9(09!b=bL?!Ie&oObODgXGobsE`{qJAFdP1U7pp}-#-J|bpvU1U zoSojR#gRYxxOV!A!=>&+Hf3z+{XkKsmtYAWh49kdb$KSZ5&f#N%Nf9p)&(Gf$jVCKr!GzzWm67{x0+_TP zK~p*2I%|QK_M`1d%Mha|He#6_eHMgmeDr^?q2z)l8nV=XQ@30d@l79UhK%+V&#qoC ze0n~aZCdKlc+?mdbJxyfXCn5#tGOSpa!|K-uYKDmG}8t%;&YwR=YtImbC}dj7?e+) zE^)pk98~*iB3FBOxb!|_Jk8YbQc!~!Y}>SHm{sbye02HnWEWs87~h-_xWMG6e#y-o z`v$21z40l^p~lcLV?#6a68i9++sxD@7KICn!uwB zDO3{idNImj)Wa&zlw5~(?fPUFl{40(LB(EiD?~rN2{-ALB0g*1ZEMrkj_2G zX=14e##3K6ETkZKK!>gGeT$_<*v-}q4lvhf0fSdGI=&7p0#>Dho8H~bQY-MYwj`yy z)Tr*84w~-m!D80<+1oXCR+Cpl2=$bYyH^HkRCSyk%|&cW>J%^pHkw+`c32a3WRiGQ zSX#Cv&gzf7MOvD6*>U4S9xet&hLUV=!>v`LcG%h;enyR?fo>bv5YbY0OA9oeZO8Z) z2Ztk2!U_T6%$5^>1@#e*?YE}ZtLym_ni+h}hhdLn3QXGZD&sQun`Vwj zUhAxq;|9^SN8wvG~P?e3+~LRX3{QHXfcc2uDfmfbv_7< zp0U#dWA9jjke{ZJy*Gzpp1v)J34ylA z?Ps^H=YBq76MpOGam%*3#~PjPwLp>LAL3goJbp_0rzMN8Y(_I0ACxM*fI5Vv;vMkb zhXjbh#Sc|VO7!*X6^+qcNy^KcP4}UKQS3o7`gHf$w$pNrQ8QLQiD~Yi`~#m!4ZNF< za{AA%&+1P~C!ce9vO28%Xol(P78rcuUG15H>ueWuk(u7(t0eTcAy<${7Z}LkOH@5# z#5~heSr|TjpaS_BJua}0)c1&6cRMPrwQOX;x=l#4JG%-3G;Nx|Hu~uECcS@3yBj1Q1crK)J6b3V0L-QGnqRBHA`Pu3-n5Qrt2u(N4QOQ!<6!c-s zQn{*g8=>@;vvdnfap~GZ!mYy)pe*Db#u=Q|@7=M-jsfT%*JBh|;UIDsM4^9oP318u zP%&{+cDstr5*y{WOP5kS8iq$3UWgdYU-P>|9_t#!c{KPWoOvKzjveIf6GN^G6?}R? z=k({jN1T(w8onoC2E=Vex{a<8ZPy-<8)%c;!|j!CGCv4RdR~&$p{ZW3xw(BPOe~^F zbKprEXdUFbd5r)wcg86kzzJ|Kn^84&9d@jChVmc~hHsRAwdxPIM19n_&E%GfTCY|q zEtG3f+fW?AC=TO`RZI(gMa_51v^caV2%%8;!NYBi#MlGVG+@St_9;(@y4O-RASESV zo=9?U+reAZu~nWa#Hm-_CELFjo&0^(E&8r4w|x5E?#ipwY}<_n+hwM#`z6WkNT6*! z69AlXlGJfy!>2>tfmg=%IqWq>f?`~sDZOT}ttCbtF5GR{N? zG7^3YO;=gV2Goz;U+*irZ*vmGHN>62dFR#}krm^2o5ZtI_G9?C^LjXH=RB*K-TX$u z&#g4wbs&Xr^a}&$AlOjQv1jfAJsm}Z+sI(*AWV{SXZY#`rab= zrMwWut(J_1QJLx>3ZJwboUVYTz9qyi5E5!Uz&wdk7Rx(siod zKJ+cdG=L4E!0A1@>}<5i$U;M>`cPl^Oh}< zy&TEGlA+IId!#!lIg5o!={I^Ko6IGh)@T% zZ0=L8bKPf~&%h;q9m<*7ZM+)Qqk(R_Ii!?29bfLR4GWK#;%4b0lhj>2Estl0l~X$q zp#?Si85sJdjK2=U=)syMO{|de?%Ur|TQ}*nipL6#_ua@f&&76*hh&rX5}!8^eW`#K zVMT@S*DI>zsl-Vw z)LXU~=y;`9g!g?ZC_d@FQ{(MuFr8im>I73@Fka`C-r3=-!f=R)uZdEb)0&viLFq%m z1SxTT+hX-Y>;yrx^`l%r-s_8v7pQ)5NbKrCPxyX$k|=%S^#TBUAJ-@66b^b&<0oKr zo7=}=@xMq-QBXT{_xXlT8_(fa0b?gnc`r(AY^S!saLQ_l>4ZtZg{+R9% z>~*D!G8z{p{&gjo=xp6*e7=Q$MlZ1BSr|Q~SJ``v=ubq|f4P~9i;5z97D6Z*S8>sy z1M!TQy~%KbOeEw*@=Hf1^Ud;oHjKnkPycSY0#%RQn+d&1e$y&;g5sj|z}|YQW6`hxC^Z<=<{IION@03 zkjr4!+3zi$d5RX#q4`DqB#m!=uMOd7W6Ts&$9hRz3sO>z69C(z#6%m4Gxu|8t#X5_ zEGgRS2?Mw^+gZI`F>HigA)>lAv?5?JhP< zmdX53U3XZk#*g#Vi=NyG>MTEc3jH(pa&?uep?51XcHe4 z3l)gWDQ~Lk^krqNfN$j=k_0))N}hiyX0=FMo@Fp~G$}7zJav88a+#?s)r(9QQqo9I zrg3^?^gyCTg0)-kEMQEt=d90$A_aOSqtf}cI*8(;ijkRi=w$pGyd%$vz+UlCj`xez;3%nZ#uxUPWQXpn z07zlXjoMU7r{BHBJm8H(Kw!u_`Mc}h%K)73c*L)l9GlQ(JLG>-!oTX)nuRbW3kjtN zS$eZS2-kAo})Hc=AkkZy!sPD znzBk-%uZNhPFj7u)w9sPw)=YI_}i`0st^x z)9n2H7$%aZJ;8TOH^3o_emxO&W2X>Uwz_#1^2O8`sksOj!rW8qluVSL`d7VKpI-aly za`UQo`;r#TV7Y&UQN<+}nDeR&>Sxfs^H7d-350D-;PO7!l{9RmZ`YSqXtU$P43yn^+6&xU@P3uC%PllorZ zMJC3T8RqpF7I|pzN$%+VJGcbn9ou<5tFOMW$1KFDgA?n3TJP}YT6E3eF~MlrXLBs? z9IMEC{{(05LHK4==R>*9J7$f}XQRCu{j1ow-9e7=FLu^_DmzR_EZJHOfgu;mInlL2 z`wINpnv^Dg#Y&Q3qqB)Tb>cf^Kjd@T9r~Ez?sG9MIV$Ut*yXL@o$c8wUowDE>$V42 z4>ZB0ThH67^vgB?IcbapVG)}CmS@Z4F#C=0r@I(WFW|Q->e`YKhO5>mxATjO2jtQlPXg4aKFatVlTCpFM)Ilj15n3GORdNS#;p3&Gv$%Y zsMh2L<*F3`SMk>7-S0p3S|AkykN-F!eC(~&?5*`1lq7tm<mPH-&Ip8qsAG>_ z)gBFs9xkJFB=;EbFPVA6e(j;qO>y^2$2s=;t=x9 z86ECUZh8TtJKL%f@nfy!zN8&Eg$R$REANu0EtI=|X{gkqA+$nl@A1VwvX7Qp%@$Ei z+AVtA*6Y+6?MRN}UtdxLYULyM-bB+{agR>ahnZbXoIBH|OO;>`0;VLu9&ErbqsDWh(@!;*GC`~Dgjv12UyFKTd@R6MkO)*%@aJ9HQXG3L zJ)*5g{;L`HOPt)mFt@cAn_Z&mT6M>Z$&8`}Yv(oIgC%OS@r8^UCxueMI%jw`E+NpZ zaVStmonK4Ub_)A8^!(d!wbQquhQe=1$NlF;wGy4~4^y>_7lnhgW|m-gEjFvvi@hXv z4eJ%EdQT3@N`ryE&`Twk)h^S_;MypAgV88U(|d_D8RuLDAD4o3*RdF1)R&jbpe%iu z`oLq>tV=}9EdA)yA{OUcPEtp^`u!R?Ji*o(Il+KFP^LB=*s?TZeBM*cp@rX7vrAbM z6Yu*&qU}=d<>gm7wSqQLjp^i48@k?S$d(677r~UG8>b?<*WPd!@TJ~NDRKO=iZelX zos@i=CL+MTf54_hOvnYe0%y$CgK1h!kuk6d-R$vYO3g&tnmKl!{R+oE{@=L(w3J)ev4(Yc~j}WEm2yDlgm73+T6r%yBI;rWnM?xhhVx_=j%4#P&dxeSWF5$)Y z>4&JP1f-kj9hBi%#IM=-U^1ZVM8St#;%gI11NX!Ev=K4(JC|wBd%9CD;!J96c(Tk- zYC45zw{|G)S--)9mQXliJCi~L76>s?_MFw2N!4aXzP zQjY|q4?df~Cm~K&b(>MD-A)JZ77b8D&K4Z-42$cfJ~yFzvw=kX%G9w(5p>#A@|9wU z>t;XmdrZSc;fedXYsss^7v(0Id_sqpaw@54(RxOWt3|EhbEL}aR^XWc@Nm?Q5V8y)DH9L4wSP(YCbJhE z`fxZX60eZy{d>04cWosXaH+V6IxwkI;oJIn#^}ZBU3A6$xi+JtffFcyurFtqt=hU* z{ff)g`69?ea)@YB1bFp^tm!qSOW&*JT_VSJHvdFxc~WVLf6;Oh&cill-C; zc7+%(NI1{$@$m9>$UC>J`N}Iwq~l$B3N#|CIco_7@iiAe!K<(cQ!jH^EFs(-kH?tr z_9HWA*v8+f~4pAH1EZOm3=t0`s`D?eV_|^Ub@^(TdCpERt2HP$Jk1M#UAqu zVM@OS03Fl^UhTQ2%jVRAfMRaH%qG5CY2v9uoc_r_>E!KjcyTv1DEz@Z>x#TFqQj)% zr&Wcg$$|#gbE`4tfOADhk5vubQ%gU)q}DI|#EZ~4c|M6sD?lP4eD!DL?1sdqN?2C3 zU(41*K`>smYNN0Y*O7%=dy6QAnS);MZ;Q>&lN;*dfcTmU;I39|Mi2)H-qHO51q3 z`$zqA`6(|aFMYBRKEK`uI;}d(^2loL#gCaHknv=u$1D$C?fSj3Inr6!?353;*R_b9 z+sB;-9WqES-&KwQ#cd#tdP_4DYGvAS|JENs^AA3Bu>;Or>;zgEpXS1INo3WDW$3** zCvIG2sl6D?3js74te>Q6d>#w#T)#1Ic12*U`cQG$v;HQ+95I$memY3bC`p;Ymx*_Q zr0pnls`L$i!a9Xd2gL?)PVz0}ZnhYAA2JLo##foNz+XebJ!s>fqQFU|i+e zdD;#b87|6z`L=zgOt&y3hE2yUvczY2-tOPxoJg#>Nw(e_7tjedB5xrgM7)lMx*Y#h zi1`2B?9!z6AHJz~ajDrzHo4%*f8Lne*K`^I%YY`1>zLmB-l_Q{!ZEi{=+tn*gUySx zLBT5gY+GG;Dl7ZsspH*d-p3dGDX$;NI4-M1*(_l>NV%+I4IKVrW__Iw-V$rCC)SS8 z<`b?E&|I2bJruT$kH5K$@}-(=Ju$w5A%BnRZ)c!1*sM`a3ZKWPyG(dUo#F#wZj3_l zypSkMpC}x9jIuHmT>H$fV-2B^X8_azz&f(G+E|oAI(PY5%!g~{H<2%Qtpl1mIwtl@ zW)cR0K!Jk1E-#3BlCqI18BW|$DnZQif*wq&l=;V!belY&lp zK(ohpN;we;l~pc@TfsP?MR-!k5b-xQ<*MGggqK@^s9G0~5(l}NW59HP4@F~w>hgSB znkm8#B^Hj=a*+yVxUpS>+9DoE42+ns#G8Rd!~UQ$5ts9%o#bF_A8vJ`?^Dgr7_=L1 zSVBK<;XG~nF4i;42mEu+Urd}c{8hq33oAG~Vr-QF($mV4P$ zb9fy6Lh-qHVA;|%gI7aEVqqv}u7}&mtMm6=cn%e8sS|47vIK;sod*vbepWdFzb)6p zKE0Vrpxu2G+)&fQ_u6u#g(|N`7YbRlT5FZH8HuG8Zl-72yyNb>Zhl=b>r^l*eU!qR zFe}NEo^%oNWU1tb@un1?GeHhQl5ALvS%eV>t3jNwKe*G%VxFJF=qVVr`arxvkckP3x z&8*ThmsO|-(HXJ9<(AmwbWDad*-x3`T%bQZ66c0lY|e@Spsm@4Q#53*NC!(qDBGh; zlah>LGGGi#)ELcofY+#}X!CxdAm5c0u={%H2JLGzSU-}?&ae1WiVM_nMA=^5Bd7MN>sdH{j|wMU_QPooJ#}|qXY%`Chtr8sgKc`aVb-12 zAZogC6`&i-fS;Lrjwd{B)WE6WV`SFbNkL?OnxOI@mdMFt-}8eH)ekrOtS+B>-qcVS zWX?TgH|pD!;Pv~PxZD)lR9KzQVbMD$RtcNn=oZEq`(0g0z{p#yk*{5BlglXw)>C8x5zBmIGebJ@v|6uYj=rPg6@u#WNt~~L;#+y^=(Hx#0ZBF_8^BSc8Aqf zYGo5t!i4+VYXbAxYW{A9=9aN6$_4i9iC0F~%WHTekN1w|i8H_yoEut5xDG6Kw~Nmh z9QplB>krz#4@D)9_t`A08!s-O=_9v%^kT zyCha`Zb$zvnmm;Y-loT`r89LeZTfKGdiQG9K?ZyPVodI|ckeaNK1L)VXJqoeSrxwT z@a1~v`Uh6Oozl4!qf7y}#r+rZ9I~nL4jo^2iC2COatYQk-;L_5Lo3GTrNHE^-j;db~VXPk2f+yRxw=O}U`YqB)^??5SM zOnZXntC&G}e;1Ac9$9kwB|n9o)R)I)Mg&9{y$sVaf&bgstdy~zqGaSIdbrRk=jQQ6 z?SxdZzZlRNS<;vD%ATcJBjfE$`|;Mp^x0L{4!_Jw!u`0-`y!1YgSk`YH}KW4; z-VQhC6K4>90rQ^WjmaqCjIyl;yTt>zXM5vUe(R-n4075Yf7e7Pd;@e5wk<`EnXcmJ z4gs0v$#cj*8v@^N^_yqDhwKUEJ{@|vX1yBqbit8(HfK<0oRMBO;mqiK#tx&#cdc(I zI;@;c`t*p|Iwz4*k1?%Hc66_KhD8!m3QWeBG6gKSeECos_ch0*Q_MR`Ee-8^W(9 z8v1{R>0eVdZ_kXbqA!_JFa>yZ_p^SL!(mxWqU(JzeEyPdjYV*??_KfjQjwjbJi%r9 zuMy4N(>l&c$H-T%FZzf1q3c1EE<({Opdz3P&)q3QvkWSSy*=93%Jbv?kT< zaec+Js9F7BZyYc1Rj@foA0rg4AI_FIVICH7zN&`6ir0-c-0BC|XS1Zc#c1{pS1Wj| zdIbg?p%b5)xM{L#t2^y+yPIE33^!G5=o)sz#;eJlsv+J>4`~R>MDvAj=_ph_)8`Na z_zkjMLqD+vWU!s-x2RpqLRow;shDLmech3cum}B=y3^dJ^U&}1nFT%|^&HoL>rh0q zYdwGEo^W?-{*KJ-qT%Z7iqEnk@57pNhK;;!fAAy(Sjn>OFQlM(%ZZ0N$-t|4wCxatFM=@*0q> zUa7sADR9X5K~0G;u1FR>sc5u(|CnaPaBoAvYGPHjmh;<$EMH3AOB~MRpmbj z{F8~P_d&CxMYi|3y4j^8LYF6EPyMQ-KbUSk)Lv28JHA?+J$9V9iI?Xy4|<7;6@X4> zl8ZH9Xx(dW-?uz)3F00=F}ELhMwX6A7e*5ljrkfg-f2S1ttH*rK<)Ta_t^5v_3B6T zMmu6$4!XZzakRgmQtYXKuZaE%MMCsnUIM`ADE!s3{jE-4ehmeKIY6!FykfWJ&Y=|U zMQwz*Kd&>WLM*z73@$RX+_+v;c_q+gL@0EkqS-S<&^O3)x>g&-D$@oe1^V0Ny=y26^ov2!|Mnac=v|rd z>lgMb-IpSn=U>Sri0@hm*Wasa)wW~|N_7m*1KPXq67N_X4~T8?Udl50LTt|4r_L;U zA**m9LyR<8Sqeow-&?^M^c-0+PPX5HqPg?&oRr>m*LCg|XoQrfFIypJXDg#RHKN=QL1H^?Yis%|7m==G&lD%%4 zyMwu)3ue=JPj0g_zkpBS=3||ojrrjor?2CBd%=3HIOx+TwJ!ANJ3K#b-LABn#Hk)@ zQS*hu?ddY<`RuEb;wkChSV(;r2~8d}$vweZq!c$?*4qE|S&1ejt;7s3SNW^)vkq)I ziC1qhl?-!Es)+b9ZyEfI+7AMKCUTJWnH?tOUw1q|$XCRF>bKaqdYg*wdnFb^*8N}+ z7g%4eJUjDKxJ(=BY8&hBjW!kxzPsPcD$9WnCzbxWa1eMVv#U%+Xb3W z2Yl;9HaH!(#h^!&VqU?65}57z57bLKB*Rl;=H= z_8P~dM$P8!smITg#8_Pwn4MU=>tU|cYnQe~^hK=0ypFv@OYn=c#k%`uT&vOX(vfp< zZ<*&uN}V9?H_;oui<7=s3N6GQz#mwpH0hZ>w;#SJDk`yyu6x@ABqc8DdmMKSQLRs4 zV%siDeI(^^Fb<+dbz?m?MJ8h(--sZ)uLM60zj@2)bKWWv{TLqJfDY`cmCzp*B@qBA z^0F~wBzreC4q!|PyRaUc7DAu0|hJG|v+m@AA2nh_?7JMDvb|$0<0St6P%54I!HuxJE~PRmG}b zXIr}u(%4F#{i5a((`*f}9##FZ_mX_EinX9CAjx-jZz!!YJv%}< z1p0R=$4&|&Z>Ew|w!4Wdj_GA2I=fuQtP+FZG~p=p@3x*~ouL9LUOE(ZAx5wIuna6W- ztB3b#$WYuc=g&jTja`aot%$J4wde;i@%A+g#vQ#2Gug>|VbbuPq@l(Tr72$h!Y6B~ zK6Kmef{E4K)CSf8FSniqeZSLNgIMb?zD8S^{7p-+`Iu+tMb@G%$QSFheNIQ%p3H_~?5<^jA96%+@jW~eI(Ru>m$pr{k!D(`(`JD$Oq@bGUD z`o;qa>D%)OVCgSY_6W;lgI?Brt_nv&Z0pPw&7f{OvVhsndYlcImASw;eZ#Wz5U`5M2EV#gy$gYDeCz z5?TLKS3gN!8{JM8Lmp7S7oZM#zHmi44!XvAy-=WUDVA2$Sd z6lDrHPo3<u%zN>a0)_PZxv`vj?_RtUO-dmGR;N;>L2imlh{52G^wseJZY(| zCcw8Dhc_zZD-Pr<=HyYOl}Ws3>GnR31~doItD3JjZe}7t|8~j`+AGfk#@5SAY3Q4^ ze*QR6()Is?x!qexZxVUz{4(hz(BpZ>X2E8w9z#b?(Ptbr{n)nxSM#H}Tr&CiN3|NA z&!vtz`(Bm5fQUi}YLW+K49tA3R51mkme2FV{wQjF<|CuRhK>rP>XFVm3nTeWBQUj{R)HU9ohtAiW|{wrE^`D-1W02 zKwB)=%fr5$N#p!boG-jsHJQ*f)K2GT85iPOTs)s%Eg+`dA7_Yxu{1Fu7RARvid01{ z^RJYj_M1VJlRJ1NF?|h`l>QdrXP4|$L3d?1o8klmx%E1xROp1hz5(x=nKf~r;+H+K zux-9(Qurkr)#CN`yJnSl1P*a8{cJ`n@1rcl`qP|@n^~5h zzl_Voszj`MzTPbN)}o2Oq`Aa5S%I4?JpCX%%M_RHvHk(P4L7r5=f!^Y<&|NV%xC;y zB0Y9o%sh4i&=0IOCw+I=AF<+9UAAK)kF);fLEkA?Rf`row06yN9%F$+l{ts)R|J+G z%*Ul=m%pm26N8Q}f*X@kdf%Hiown_-*RQs|pL}`njaBzs8-AMWh8;+-tGz+)nbCdB z-ABAdp@`h#6hdITl;7Rz{@Kg6WRy8Bba!}I#$lqVc0nQuNP6Jy-zwk?C z`t5$O)A>?{WMK&aCH^lDrL>>~9Zk%+d z*Dja*?ukyGq$Xq#CaUgaruA*pQ~E3c#g(-`(MuSqGj)%Bb=7bC9<$hp`-XefJq!#i@;z|yw+0&DY<(F0vt5pV2ySS*wBdu ze7)aY+9G{q5klC1*FTIQvqGOV4ElAN>$iR?gLqhIP`8u07?M!ExR`ybm#GIa|%k1TPicpT$7JHSa`SB5=O(rFVGGoS-<;^|gHbBAI8O z)RU*%79RDQ+R6Ua!!=n3hhx<~_^6f{;ivu4k%L;xr(m@4cy%K~ae6%I7uu_|%HOJ&RN+?QE`0IxWAX|5Ml{ud^&@n|VMuDx-X zh#nScJ-~p`?T000f86S3Pqk{6uVc5xdrf?f7Q*F=z8?;syRJ!K?WQR0O9mt>G~9(!si!36NNY``Jqn1k_G>~@n>we?EY ziA+*z1kd;U^=$u$1g0d=uW{3le|@mdj{8b*0|viKe)5T%@c$v~tfJxwv}PUL-Q6Js zcZc8_2oT)e-JRgB!7WIDB)H2kxLc550}L)f1|MXA%enG+|MT2$y?U+PyXvdj*i275 zK^B@8rPdaC01Q#M0XQv`7c?qWEqiH2X*I4BX>9D5JEA>U&nZ+}C*T?7@i$9l$I4Fs zM|k@FC#GiG#t|MFSspWe%d_iA=-?4&@WA0NY~p?zgsT}5f#xs-LoL+R6xU33+pCt6 zr*}5Gbf;&D?_($Hs0g2&(@I4p5NLY%Be)vu9((#z;(hI<3+(_-L}W)wXY$ZFh1p|- zvwr&w;Uz4QQ~D-3l@5Pm=|X;lS^*Qa&Abs2`U+F@Lq|IXKV5FX<)YAl2u=v)T1wAa z=0pgiad6SYQQ1GQw3J{w#Qo&y##E;vFH;7^oMZ<0JFKOOJI1>J*uax16ActX7k&pq z?B2ZdpUs#+%e`!W#dJT?rqPE?dNB!67^8>2@}4nK)7LZKSa7(fsRNno1Sm;Toy53U zlvOZrROe<8njl-YtL_ckqJ0{LqizG0$g&}O57p-bWA1o;wZyx;jSUz4EI2I%JaIk6eg>{%lNL` z@++ch%Qz~%bdJD=KumgtiPqL&zIZh}jPb-o@XWedMFu(ffxyelPS9xJbyDUFLIRFb zOy%L;!pF635r4d%o)KtwiozF^KsfmnTF8T|Fk|#WBByfLQn@4wQsH}2d(>?-?heA~ zm%zpvUlC!fWo0!HG)DR5qd6hE&^!mLQc(aMZL5ihRZ~!$!MWN4Yj(AwU6aGI0K zerbiHw64Py>P}F@bcS2@{bi}&EKiF505M}7M}wa)12+4+{`4U_wi$Dk3>uT&w$Hbo z3*Jyq_roz*KxC1y11}=J7lOLtFmpVEQ0Twx@H3XHgj@1S(I`hJ*A4&VmG|^_%!lWx zwt2;U?UCNfCpzD_V(}h+bVf(|@1@*jmh3ZxHHEb<2lGF4IUL=tqXz{N9ZZJCQLWfq zP@XoksRW0}5Y$EVy)XS_H9#6AeVb|CX8}(rU-~9I61AJPZGjNKS!k!NY6$6}(j&gTHXlM#g zpZTb`ILlfCt8bw93|obQYl_*eqfKF=PZe{_j>K69S)@TkyPGb_&udfh3A=Ys*k z5mP!wzWFyp7R2<{h#>tiMq1Z)D3X}p0`+eoSi-J)-+t6bj2rnNcL{2g%-0S_;1(v~oZ2EtzuHEvE z49xqHjDJ|at`YL{1IGi^@Wmu%#V^;y4g&g?VrBf*C*6CbI1_18M3La3TFoGrgwi@4 z=7hV4$mh6_6m+N>kyCf8Pn@s%oY>Q!pyu;=Q#c^e8#%U+m>D)w-DG;*gy7 zZ?gM#8H0?EyVE@bnyfnr!m@q7^Y8*K6`)LBku*BqjatsiiVbd<5sV7 z$*0b1rk}Pq!c~n+=I%ejR}lYtw)aDeUpnwZ25FfA`hCS#{0LmHpnntCxYuaSmqkTg zy>74KP^ko_)zW;Cf<$wFO|u_uS0eZ~kNeoV^Ms^V(1mx-gL=4#5Vez7E&NbY^us3< z9N$Z^ubRJ(lfKP3Y2*hd6b$ni*jB^|hnhid2Iqy7_D=8m<#M@Y zFj{)m3#LIO(u&|o(U6q)*h4l)1{>QFT0I!Son2H~i}i9>(vKP%k-6~8Oh`nvxc~SC zzXq+ZAiFX|sk!X26J#R9<*!)$Jo{${h zh<$n7l2l$_qmAyX^kXgzEH`12KK*+NiOskOIxGzlkiH+9^f@_~(CUWAbL!J}K3QO~ zdm$MspeBSim#nS%4s$EGcZ)sYb%5LrY z-u@C0@Mj%1h5Xv<4%*;{#M=1!x;@CFzC#%Lhb-H*OC^v+B9Y{f-B;d_d}EI0JB~|F zxZf5uE)d^+4E~bF`97C+E@<)`VMG-o=r4I7`t+NX0XfJ{#WEJNTyfD%;x3}ShlNB2 zPg|I~{}02dgNsNc!OGcOc1iDOvm2+vUg~teLBPrRr!KNc4MQp1nZcYHu`d&ep2?)q zWx2x?ZTYNt2yycf&QVn#vRKQJQPN!3QiCDcO6r}5v(SQma{|INzh|)DUP)LlnC;K2 zsTu7u_(r+D64kN34eVin!{w{Ql64~Y7_--H$+Y}6Gz~bhZioFJhs6S$x-Pz}q$^TS zdjtnUp_@|f?N6qK&o%LceV-$5mZ+R@B(FMzP|dE+#XSGY9|kB_6N9^K67kfWH(N9% z`D;xOrJELfgo2Gqy z1R{jGvR&gWec%3@tCKc7SIA|=;A$>4Y(SX^L=PH#bF}ax;%8APh21aA$%M8U3AA|3 z6;ap-^MYXq8U+`rK|FmvPv&jqMp7P;Q=$6;kgwk(Yt-XRC^gzN`H{s?HTLK7nGT!W z&W*I(7cB@s>dzfgr=6ShBi7@o%Cw<)0`em+^@W>5esq`Y>E;JAE=v&H9^rNYrx~HOX=IZpmI< z6}YJe)ca}$>&^NBC^gDnmDI%M1bxq?-Wx%w5$RsPe|eDCIPH0PxGK0hR<%|6DwS`n zXp?&TP+krQ?Ap*enjEv%4afb(-iE^v4`h@A8Ow^%cD)WRczyCjpMD}H89Oe2JH~nW z`N7+^fKA;m6%yar_M~=HJjtmDI^?4tcbZ(vgTl}D_81HQ*fx<4u&7HS`=h8}h2B=& z^*Z$EOkrGiu3we&dv*gh{!Wv1RQhcZn4P+|@9;uQ%*DWXQ(Jf}qg$0Tt7r{puYCn} z09B(ol$lcZN4t2F{fMxS=HOY6qGcnR!@O{4JUO7fS@2~2nvP#&8r6w)UNYhk^!xY;# zc`+mDLM{zU2`$25LL;od;?5kU0tNdNf}iuNd~&voznWl=^wINlOKf^%^u6l`XYMj$zI8Dz|!U7SswR(SZMoQ1-o z3|l5gK{!_J(;2*`25djeaE zu{Do)+=3yd-5}k3Yvw9d2*7h(39H7c8b2-Px*QTR3d+jMW2&Divib*f7z}h1BQXuS zC6Yt@s(tZ-AR~IrfHNlgwtIaqsO$L<9@Juc`zuboG@QV95FL~d&kg5lLlL?l*rLpk zjmnhEy(~C?P1>f}V&H|j_Lal}est8aF_`abrtz1<-tJu z``BcsrHSmK?h0yXxb2OPH{xo#j~;kYqNXxMB@h$Z2$$Jn>%t~k21L+Via^4csw7Ms zP?vnLK1R`@Pj+Aka2G_AqJ2GL4Tbi9&^EHX9;l*NHan1UT(dYusdhT@v2H&t>1_!MvPw; z7)hv?mc`1|+pXmrak`s9TU!;95n9&BSdHS=dBGlFKXc;wZu_S_BmO)Ff0dA)%eUEJ ze`aKBDnI?X!r#pfq?J6stR!;FEW($Hwf{$6Nlyummdfs@uBS% z%U+<7$OY)0D9z_{*j+pP8rj>_lX~9I#k4oU^xy0byAPR>S?lSA<*mNVj+O{Upk<^P zPu?h^Znrh=vW)o%Z8GA#+)8qx(RA3K3)W>~s(LQi0qqPRWERSEYF{=?A!!QeKn-4Vjy(eF`TrKJu zX>G{%Z*Ur09dJoCbb+HJJ5O8VZt3C5YPQaVC*B?qnL3EH+1-qHc8n{Y>nAsXrRQxr zXmB(ek&J^Fyed0+VHVWy5a?MX;U=H=TFP-G$G8WD7g=f*m!lEuYWLOl1_YPgKDP-T zlX{IrcWCHr|A0@n${_T&K7^>@^Fy?U1GXW51p2aq&P%7tf3;z2 zA_}|Y7{saY+U%LTp6gQZxdPmq?*1TzWkJGDPJDHW1Fk&sur>3jN&>_N*e^;Sz&J0{ zprAJ?ScS`<@aR`jm`C@~j&^(K(oH{Mk3mq#%WuyI#k$7dkl!NppU`cEKamUmS**pg zEG7Y)GDB)WmTMSDM02RjmTxj5qP0e=QCs;_Nr_w34LibU^59dpGEXrTE92uVn_J!? zxsjyhO=Gi0rlP6Id#CpHpuVcKB7$;?P45?PRxZ?}Ma#Ew65yB8x?wl)*(SMd*6z7p zS}sHJp!ZBZ>i1}(wy5ydP&Ll-jA*MWG}3<3a`bsl5)|{xPp>UHu=G>o5SZo#qA3I3 z;yGU8D6mFZLs=9U ze)x{B5^ij4_(AIV)-4&gz!KLfIDqOmQm<0$=qT?@>u6K~idCPt(`9KSjq>9E2oU`T zF7ofC?}PBhke=ZFR-WEz8>v+IiKG`lL+tmJ|nY83rvq? z{S1J?%l>ic7jj4yN8C!w3QJHEW}YE5>SzntMfM}oENVxpS#Sz!0rMeXCs{;;lg>o+ zMMDWLT@q!V38sO}s7#Jdj-L>*fqL!6`U&);J`7l3KwQy21lQ_7n!zaL*gvI1n8uG2 z7b%l{%ZwZ1I=}A9dwkNR-YN97pqWvXj%rJznsC02Cx`q~dBJ9bQ z&n+}b>tH2;U9k4ilWS}|XL}gI#`uAotPrfI(u~d|Mx-8qMXqs4 zzE2_*@GW$Jx{5v(MS+gIp-Z!2JmGpabx6=~tHvn|^uk6#Q4{r=QK;n>S`#3zA@yv6 z)Naqpi{e0WYpjE)gX$}TFFN}v&^{r!2ACtSOKe!{?D5#Lcy?! z3$ot5e-!aze1V3gWk<$VAe9x_T2oJbJo^bej>1#(C!zb(JlWQ4x4SPWXr4fC|68wK zFr7)a){rUa?j9A#*tP{NCWu_ryE-RZO05qIEnwA)o69fn1fplu=0P!bD``nxj=Iw3 zc%llqJw;Fklr=;|QK$l{>wf2mR*#h7(d(xI1i?yP_;l*jq90970V+$76*d&eIVAvLr*K4O*$w09c+}2!;@5iK>w14Q<=nLZXQV5iM9(u4tjMHs9 zU3Ehwa80jXDXRrF8Yz6a@$`!}nL&cP()BOghjgEO%yM4s2FvAFOS9<3VxJV<79f-b zM@?5JiVdVw9IbA)+Ncs2%q(GZM~cm^t>r`i3b>Tzg@-F!wZwWvvQ34r4G(eFuK=i4 z?&~gJY$PE|m9IBJ3aOQ~-N&;<;v;fwjSsN}pfQp;)2CZ3;Dsrng-OWLPv!~b4#37) z(#Ju`nyMkA^Ul+&a}%+B?PaqQ3Cc7^`KRm1*9^RJ1(3Do>|m>x?MJPp87fc@z|+$! zdWZsB!Ln7ZHszN~C8_mDnP>tI%&zvuFEl9*r^7*PvZ;noV?N6TIf1?sYXP#d zJ*VqH6J$(LL&kv||IU}{NWos@n^_u0E4ln;<|JN3zmyWe^Ua_y-r-w3I(EfU?3Gl> zd_iR!TJHg1uKQx~;P65|ha`?SIJb3<5s<9E)q0uESA|-BayBT?;xj90&=^n^P-(eg z78n$59HwsGOPZ8kU}l$n*7J2#L2T)KD&Ul-==d6iE`NHt4)|_%)2Hts&3UaygSZ~- zI3h*icb3)TulG43C%Vy)-DVpymuCmkpCsfA5r#YIfo^aG1Ux8G2?n0}J9mRYK+bKBY)z_MmUl9dS1ns8L$w_g4e+2pspy!gvg zTy62dOmaTg2r`f-!sxFz4CI?+Xcf~9{@sib#wWvw0crUNJ@%y>1z1 z2WxS2rB^63QRWg63PPn6 z+|WGi^Pn>DQ2y!RJAO37FWOhZ#~7OW-DRy~bLy|VtcUPcb}hER<; z(1PEG!7d@Yh+r&zbtm|6JM<;HF1;dDZQ8WmUdp9|x<5u}2aTWk7b<*$<@@-NuZ(p* zQ@gaM@sU<%!lEV;@P`=yg>;&*5~Zaqh)w#{`BW$|$ndYU`_&RxMz(B$&F5ERR?ZLK zrZ5$}zh0n$^>|c~ngu*~|kMg+^VM_W!Po7!zro~TWvUghT4y%o(EW(rZmFPXm3_TlYSkA5GuoPQ49KQ z(TYlyl5eb&>74uMZp0_Q>I6C_X zz4!!Wc5$X>nEBY<6h#XuUQyuhU%2DDt;be5LF~sG!z_zlg;XlG$!vC>W05icyYbQe zoyj_Gs(;{DPqUAbJ%P{wGdw&kj|D1$?>Tg=4*;+$zx7zSid8h?=G$MggJ34D-Z>Pr z7=89AX-q5fqzQXjp+OUKpB#i6MuR0sGX1bIUDF4N-~^u^v+U16f+r_;jlkX7Z<;6G4IB7Tkp5RordM9v z^7!?vc=R8)Yk(CgPsH-O_)Gp}2H|B0?7ZE2U73ZfYa>3#ks_}CD2i)UD0No6E$_LIUjx{aoQmzes zSGV$A;Ao#9l_R0UjwXHAe3lVKlGsQiiOBm_0{6vY3$|tUO6e|4v)SAvtN0aN$v>i| zp+xKrhkk&rzmi=YFkBN)U>&N9{R2+@yU=@t{B|2pleFP&ar?>m-DEpmJKJ@QSh%uZ zkj>NTr6=*~;&nw|w+lj74E>fY2F)8Y?YFc2Mx&6Yq^dk1@mB7^jqa$N!691$AwMzR zh18$jJxg1mxJqS*^l~Wb9h{Tq$}C<+vcWe6dHqFhR^LWk&`Pp_lsM6uqmmBNGs#!O z5$|@SS;=JNuzK4Ru*wj=S0{+M$-xr4qcvQiuoZ*E`@+V+whTjK)1)W+=9nhBxc58E z-^FLpAr}AfZ7e$ea)s@JnDgNF~T zGmsraj4oT)ZRA+te)vd2Ha4}-%RDAvT=?)|RZ(7*oK!|1Z}K6fy#>o3?G4IdHx7JM zuH=aNKm#fYnOkcgV|nympsK;9JoGAYk(!eXTY(KoXb-Qsx`d`5jCiG(eGzvx@9o17P~e_a6dql8fyMbEuVw(Lf4AL3}0ZtnE1ti|2|#fhig z$Xa9Z;3pcVlG#SVC;mITQ#av8se-RhTU^v3o8k=IycTwd1dZRAi2e^k(jx|fUiwQK zeb)b{FxU7H`at2Q#3V_3dM$Rk<>d_yC9;Kyd#ZJt#~#1F3EFRY@EN4W(6US6mW$+N z7eNKNErq`UKIfDKb5qRs6I9^z)UaPBxxqD~IiPlzEH+NzW#Ume!{%L+lpK~%#q_Ts z_u$PJNa*hGtNPIr9{Sd&P`~>2A`HskM)fLFIU#qehbHET0NGd^#js3k$q5*hm9o$y zrPL6ic_I0@aCYmCb>)8Zn#P+Zvfh0j9$TUoMYzcT?s#s7Tg}ChApPyT6bDyM)Hxtk z4BctA8{-OtvUqXrTtg~vPxeWqI#usMC1G<+iV`e-cd)?1|EhA1lEVQ>hE>(mER=(X zquf}7OEyQ&Ld7B=aqFXQ>~~@q;N=Bjq0uejx&TEUoaW@8uwymLlKZ}P0od!6X%9lw zyFH#i%KJomW^7Knwcko!k7mLn6_e0|b7&fxDReQ-&~tIQ_~ zZSsc`@d(C7>9YB$CqwRxN>)*)0OF0{!i7`R*Hm#@AgEoO#8dP9;bG&dNGuG|?fUjA zQVdAuezE9a=Wm0)GPl5Xe+DxA(>B&%k4V-{MsXp*k4=w8@M*A5#(6tRdFMyj_tZjT zL1Tq1%zn?jy-GV(bw}OBA5#c8abW9=%n%q_5Ut3Fk&s))Q|PNv_jqt>G0zDl8PELT zdO;!8@=Fqg;n38-F^N(FnKEDHVR|;~-+6Xn;l~vDzL{b}>8E%4n9B4nTX=0>rIe(j z3>3N(2CeTv-UkziOMMK~4oGK=*y$s9|Duxle`)#d2N`@}iQ`G{X&a-e7ilp`Sv>uA zx<@=dX^Tj5f!Cj&lxSCl;DNnHI4oMwMw6CfX2uHgrONPNcvPY9&@sRbV6tm2`W_;q zlo1z4m?X#30LBwpZ%`Dhg_ZDAk7w~@GOH2~@te{dazQTV_0mV>M=cdSjke$7gk>>w zN2%n=nI?B^dk2u!R@v;{XL8^Iv$ClxwH(2N78a)oMd3BeyXJ%B0&7Sl&iGRMW;S71 z*xAYWpGAGMmaM>*W)qN~()CPH#yggr_$@l-#v&vGjoVKwN#^ulP+Y}=1x<6*Iz9JQ z^2Ge=*x@WPK~GSK+g62EI;iP#H>Drt#NjRFbf)IDh&A*8CsPDkeFo~UoirN0>%;_J#<{v@*Zx4eszNRvwwc9P<3ABXyPBa`HR6eFr-EYOwrxHt^yCWTyZgpsakaJI)&o(cIE$IGub zGgQ?};`(h0YSx=%i%mKfw?@2|j`HqlXjh7OTyxbZ*Ufn6gCpMsa!4Znpya?SDitWZ zE$PIF9`eb!>h=B`K!;W?7;+JeflPQ8CXA6LMwG%$VDp5Vmsx^3FOjfg$!oU z!4w+9c4xahaqR|UJ-ew3b?CZT1*+*ZnLzYmsLMm3F~~!vi9EiO@z`~>$IQ0ejdf~< z+cbO>^VF%%3IFotaXq*bt~jjuBg}dz-j0NmXSv1*rF%W=PNnHcs27G*pwkDt1G%E< zA10_e|5Fn?42dgNtWB?WE63x`kngZ3#w0sJXI9$uU{F#k=KU-8v0(?>l*_KzGow)C z+BpDufMHo_kIo~@#dfU0;%cB-BdGg<_M_#Ze2%GWokT{2u~*Mt7f6<4Hq54uj?aTe zo|#2MMBqzPb(>FRC?$@u&zYj^!R*t(ZmRex8pVH1IOCwf(H_a@vm$F_C#D}iHYHuV zp*d0*xT-7OVb2SY=uD@&70Yu~F2pz{XVDi^l0t!vx_l8d>v|Z3ioqLo1#cf6Es#^0 zYhn;S+h;%}YW&lJF&6LQGrVI9;_k0e{;g(FHhgx{&yC{mxE*Zr1Bzn;o+_1KOr z4f2eb4{;@^>$z<>j9?zVi7Ii3%$PsZ0w!r4w6*_ z_3Mu7U8sC5*_&Ku;aFpFqXyOp*C$hTz;2U&{&tEXhdw3`cP#&q{$gm^v>)XL$OxnP`w03^-6YnXxoK@pKeqNAHF5Z8Uo zzL)zASgwsUA0THi(f=K5fBDu5!{7TiZIcPEH~kZVqwACCowQl+vsY;bqBDgMPhdX+ zr2aMV0uFL-BzfJbjsYT@NgsLo9>jIS>qorer;B-!%vUtc0;6YOhn>^>7h*KOJVqzxT>Ff-P%r3dUGa0N8J&NG6V) zOiC(74OYL~wP*X_ah>Yh$!B$De~q2Rxg_~YwEjEWc_k)j-Jfi;ef{^zh{@AbNcf?7 z$tGE1D|@3PXpPsW4YGUrc9Io`HG2#ATPm2&4({&FB2lpZnyI#ksJAyON7LEyOcfvW zCxFz8Z@ohx;k!vQUE5ikl?1RQj#aTUnKb|z@pfj|MpxtT4;)TfoDy7}RX zY%pY|!C^zBMAew5t9#a@^4-JRT7!9ibPIlk83{)>v(*D<0CuSDQu$}Q7X@MW3BTc^ z7=k6cUM5rrsa>D48_>LC|N9>X9ei-RvZQMDc(7`}q$l^$mvrp9Or@!jHs)Zys$Dux zuP}9WY)Z&p0VJYU@jd!QB4-0QUjzl{yy_(%Sg)cEFJj5~Hlugh+A*rk%bO=G7!(lQ z&f9zv6!kaV2{iV8FXL(Z5eUHRun1-ofYz6s%iim+v)_p?4b$IK*11PJL?$24_FR;O z`>lDS?};LNri!>clASxIa<+%9-d)N_3nHjrXoVp%hQS1^iZoevc2jc$Y_%%)7;Tgx zg<51LydRmflhaD0pD&VUNByiV3Z(5>pmfv&=p^l12^U7mCw&tey;h*Mcl|@LoE>AR z9?tpmO`fG*`g&hHRs-xP3hktBE8gJoy|7#UN>d3RcX4&*YdC9keHje7^U|)Vqc8ly%NlD4#E3vEP5bST&7{aqaTDPpGLNCF1DmXAMG>gV~fX(Pf=@Z%8;6BuDj5)S8Y_XJiC zNx4om#2*{{CO!`dXDlhcF?l}%dfBZjt0r{#m?=CkPKNGgS-*WkflFGh6?hr3LcYl+ zA*tnG7Ety{cSc4ecbW^m(^(oDF$vn&OYNbJ|BT+`qTjqMu^dEn7`Xg0@RuT5`@I)v zL&r`nI|y$$3UM82a<1OW(wa1|zfCtc(}7r7jRKvX7UbQs95G$qeD*g(-bFI~pns@R z>G&)ZG=rn3GyaxOXe!vZD(MgjSK2>AHMDndz+Rb$*Qs%0#M`*NHbX->SgIz*Ay#z{ zf3cBk+>(g!MVOI#`pE)6_R0vi@meLd;tY6r^IWMM|M3BCQ;12&w;*8;nK^qg8k^35 zt3V1%<0I$ifuhPrJiLsH3+vjpB@*~Kg^niB8G!S>Gxgv4IYVOPB_LcEm!VS2=%u`@ zMy?U0ZcoZ$e*Ef;W_>?>w<}}$(wqHhKDAgvCloqF`P0Q7UtuBe%?QU!9Fu$~x;0XJ z6>}RWk7Hg!yz!ZWX8a^TD9#ZjH`9lA8zS&a3r|nv%ojDKE_iJt6O%~jG)F&=bRi~O zoGIj%DGqb$q}!Cb7>Fo8M+^3^Odcjp-g%cY{(|n=D}W9mE#20?eZB)UPDOeg-ac$Q zu#A_KTqb`d>;DRsQ7~w*QU|gNTb;T?`0eOrmK{-tO`Y&-cX?_7BrmWq?g;i zYYeqE2mgNQ^u*RiQX$U*frYB4(EK!5h49l|U29v@bjwzqDBO|lo5361?H8MT z&r{7Z2Nct9T}2fyuuUm{3!C!sCpo1-lJPbk&!i#N!Xm6vj$s3SK{WIQ5y8Fd#aZe* zdDzz7Z1DYQZi$p=U}e|ygqM|TJG<3;jPqCj&3OPN1F_KUtKa=22)1}M(V zz=yA+OUS*4$)2DxD3~0LMNE~@wp_6|tv&w^toAo|m^(`~d^!}vek z6_l@Bc!k-gw;1#ND(@Msu6cbFH^-XV6@hYwO@*5 z?&n+tAvJCdJ$lZBT;40lH$#%oUhZ6gap(s@D1vLjr=fKP!D(hKzK>*f`A4%!O&jSO zaCM4El(j&X5x0`*BrTb9N%w(vkLy^+c^Y4J!;~ZrYI>^#WQue-1K;$$A2!M=mMR}T zj#rv~FYR2!I8kq_Ue&E@2t>?c*2ebB>4nht9l=Y;-%%ii}n| zI(n|H9r>rE%)-+zH%<@pBq+KHrMCV_-1gD=ur$o;1E6Dw>&^ry5JTi1&>maz`J4uEJbUQhPAl; zkHUjx0frL9$!Z3-ABI#O}^F*tmfAWq^wT z49}xKbPO@(gz<@-U1Ms-l^-LXa$_6o$=Gn!^7rPlqIezZ?HZTsZz z5iDy(iZdfa+8v%`da^Jeoh@%I3gghA=a#24SlLg4q`1f^45v16#-}3w3iuD)L9A

        _7tx|{oZm+l(Q)wbzu#rlUf_4ToRn&+KmTl!AU6@>wWSMbZVzW%Uq-dt4jZ2ytCgIeMpJ15t*VVCY9{ZsIxB;t}|D=F+V|ZeQaQFE?f54!1uVP)3*zL z(s~XxeXF3(;h9CQ^}K3s4R`9|`BFmPr?RbG-iwdh`9$_zpaBj(H>WvRil7Vr z+bK4E_u_awfb;?=QXs~>*%Y&bLzt^zW+oPsf>Y1bs|fbcA2t!0D$cp;zkM0XpRwEP zzaPL$^-R-~8_SE%BgMN*NM`e-o1_DDUln0a$o}LOZE>pV)_J7Hik9GLGfIN?!V@i# z;+5iM?;1ujy~5BDM*X+9ech98<}B%}b7$^r-<72tUvJRa>zDg3M;4fDk^ zWm)80Z$|49K8J69kPDjg00t@DkX{M5>HzlLuB!;~NNwg&Hu4jf(L&0^kb`-H4&AlU zo*VtJX#;KeP#Wq{a3H?ic*_=;e$9jKsZ3h|lkkaxo9iuudh{=;QFb53y4xwzrxaS* z>B3Aa9Y=)TEcu#MKiNWN7rk-<@}5{+umqx9h_LrfB8#UUT1_n*uyL|xafR$+6F3SP zQzrrVpR$m6tqyA3mDN|y2>DFDHkw6CttnL}Ts*>7R;$MMXz3pR18rM<459>)7O2+D z(l}dezjYmeTwU_k1KeLnuX%T{Mw9wSF6rW*TQIlec00V;%Pv=)zAiWS#0aMVgV!qF z&3P!2=3$E6lNc{;RlEf<2wDSRjo_duM*;wni{wY9_4-hv(2#Asb`jBKqJbvx4pdKpDF$_KpEA+fxR-z)97^b zWp}NS+KgG$$|9SAhB`Z9bTCO2+Sf~i1$qtL?FQ%2$bQ*QVZlI8+-u_sMtgplo4ppt z@wh+731gp~F`*5(;3clr{P_H*Tw|>M)!%I8YUMCn4EQPwArt)a;<|@(4zY(#fsfC@ zu%)ChGCIC*ml8Lgv5#p#Le}f+YHl?Kvijr(g3%0c$_^+$!dsL<+KoKti6AsNN49&35(t2 zbetp2#C_=fIEh)h2LW@;+J*~AUl-gi80v;0k!~gLiq`}1+7b0I=TEWi_4*P@uw^Yz zvVG;*t{6$MppAL?Tmoa?3krNYXf}v|Gto-Z-3a17e$S8{YuhV*$*_;-Ob^%1fuz5(nsgmjp2ult@{tz5^4miJb zb_P_QrSlO@9ErTHc3#_D{nVB{J703?cj?6HB#sHmEGYVZ0@!hNcnVxg{5 zVHN2xuv?`6ful;|_O_|KP1n~_G|p#mBWBkC9nrbCZL9yV1tj*=Ger&N@T#KXFE5^M z4Ppegs`Jj{Gf}N$iTc$!*?$|UWSIZ6;&_l;D2teejcqyH5X$Qe!#$Sxo>O60A$^Z@ z6&8}nFL)6sv7?$ApyR`FrI!5?l29Qmgf&M3UqspM^Pje&7vIw$!#~W1bHwkp#EcDC zDRco0I!}J&{Yrs>mCmaG&80fS4?Y5|8D^V`k9}WVw~rSp98UFD(Osds!Y1GpCm)hR zLeDkqwS%^Aa;v&&3|QrgN(XPJ_`Fa3#})oWx-Sug5YU?nbI`8mfd|jHdSOlRi2X`< z0jRywyPv|%-FH6Chth_gwJz_ScSEuRt`C%XBzevJx1&8The;+`s|qbsg0829_TyQK z)2fOCCs3IxHA*OCuNZ^Uv+M-9>>!zFnV>m@kG<#N80*6-mBk6#Jhu7 zKhi&;Kx|xG!Y1p;|6l3Rjtjp8Q6!fX5A)Ks&fi4~+MRAPyE0SY4}GtAiIA54`kzkR zn>8XUj1Mf7=dNhjUvwf77oF*)3BUF!4JZqjvsk>;4P_|62l5}H=9p=?Ni~E?J;vB# zrWi6x@G&sU$ZO=B>F>?H=ZwW(MwOSH$U>Z;aY|4&6TZxLBsfY- z_@!g-!8~dOg^w30zQq~31PXHRvg&aiC8cCyEQkE?Z!Hf(qoFi#GwgWjLc+-vh)Wp; z<`1-f4tb1UfQO#}5A-hrx$bXEg6^=RlU{vBqV4nrcF?~c0lfZ4 zpWS-cFy1`*_ja|N8r!V%Q{|nbKKq5EpvJ!)2mf&4M%xmdQO9IWf?PY5W86lr1)mrb zkk=)r?ywrg!`|e(znN#*vl0No2Q_WP?F=KFcA#&b{@+C*@|t-~2;lVMtdk+hIn*R? zly~WTBH*;~&M$fK5Of%NjTs)wjH4+)zwJ1ScP75p#NDf3>{2cfrcr5C@+JBLsLS1# z^Zn;f2?C}XmJ_^Bn^{@FL&VDc5PA~Gt#i*HmD{DXolA{a$?-#7_$&wEJ3d2WyJDk( ztnTu&JCP`w&U+6wg3?+sulmy?%C7%jOJ|kbHxR%@v1v=b>5Lg{cH9W*I@7Q%_U*f1}Hm%0mUpDsl}tK zQ8#;SX)slwgRgIjwTms)^nw~%!)HThpQqZ zej?PsWf=KFtJS7Mw%)Mee7!pcJ1VRpzFmvhmpn9kKUk@DYohVu<$rkk&ihGXEL2ET z7d*MPCCoJgK?U4h(5*HfQ#pt>=*}BLBdaozIXQ%n_o@)s5D-5=oFqIBg5FbAU*%Uc zM5K%cOkWuCAE?@wXtGU?hCk?UK9m{Cp1F z5VILC@M08VF^a*YV8J>X)MGbd{QEcd2jKNHYdxtY(C2)u>(dfvF4q$eQ;jj}{t%hV zFzMQax;a?XGHOplLI=4>ROhWuZrcPSy>9OOtq&#$#b|feUY%C>lD^Etl_k{P8pRCb zYBGU{Z7GWz)?p3z|MK={9Ts<~Hi_r|dn7emSPGq_AMey2~V^c*)GDPPT2ImB4T& zQ|H6RHlNLT^zx2_JgJ2{&MP!<2X$?uS>tWIx0+pDv{C?Y`AGyd?|Q(?l!r5(w=2r; zBPPa86!~eZ;QTfK=Q{u7pHI6LNKk{l-^(=gwsqsBZ$9r){#Wn09^wEUu2a}zo}}=4 zXSY{S&Fy!4&O-N@?8F_R6gJT&f?7zb{MNveMGI7bq}+bgat?;<3N$e|p9#JF`6~I3 zX#XvgJrOP)3AnA}eedqQPtI=boz~uKjUSUCHLBO>QeXA2 zYGlz(wfMN$vkvd|IT8-op$!lqD-r8-HZ_=*hgCPaGLVq&AHLkT^HT1|worABQ1MzT z`SP77;-2grjQ!0fw96Hf^s+v;ET8X_65YnG^z1>CmgDA~YuG;xH}Ls*?^X?+aP7O$ zO;6zPjuxO2&#?X=P(u#xrjjHKl3ow=E!f}Gi3BQSEQCJi?pTu!%=}tc_0!Nvdh2en zqhik1&T^Vw){*qOOjR`rWZ}V=c2tFL>-ds)NuDV>B6zSfyyqC-Ouc5#Tyv9%UFeJ5 z08}WmOC(k0`4MF2YF};c6E(pSxBOZP6%T_3eEeC=3LFk|i+z3=1FP;!P#E!I?8uW!ArkZVPL`fG?&wy~EFzj~X7Uh=yHU54&yfo4W=I5Y#h!q1+ zaH^o9vSB#5adkCDI?Z=iNM$=GQWyF_?-rUY9Y!it*Lah2?{lPC?D`jXaNhxSlpJCg z`rc>mipz@9iVfYRF;h<~t=94J`DX~0~MoSuRER7X)vT>^npD+xL6oJJOt# zm+a?}LGzMx2GHw^*tJ$m43T^niM)?@r{XdkcAL`mcP9fIKjr1lvqg^}RaLB9`&AQz zC_x+%*QZ+pdoz_XnhI}F&)t}EUj_&?B>&MXXt<$c-@So4`Usz(om2Qn zHuyb3^_iRRW5WF+*0@iDx9X323>twPaaa}u1ljg=v-kzeN`D@>Z-m>@xB!{zF`gQ2u@ZNgMDsCcfxe9@sYa|_E&I(Jl+SUm63hElo_+0ldbQCZ*oiW zK2@BC=HPf-^~YJQImyLBb@WJNKvDWf3l(jU*^Z!#hQI1(jOtheNx)<$u~xIDEcAtd zV?y)!XABHtf-bhiRm)Xo-Cb=x=UEJq;JsjFSxe^n-~yq8AMS4lmfQUdrhv~|x}50C z(S1-G|#-ENFI-y?ygFkh@zJN#Kt=d|+LPPTHZc9%VE80RVRgmV#NdFT>3A%haw zey9FkbHJRH8H4VV?FII6TH{~bJrZIhCG|gOy2aZRGT!+$u~ciV?z-`A9mv=<-+AZ2 zcDQT$w-iXy7qD08_do79nvGiYa2_uFd`hN1{vWI6K0W*IyN@8owkPcP%JGuu+h;;) zn$vtRBNHcd^a+Wude5I3JCeFrryTk@E)3qg%Lwe_!|H2kV(V4;6b9fQ+bY z#aE+C7O9nsqVCU7fI|xEhDQ-ZtUtb2i9p2AqvoR=Q23Tx5K_qAaXuh;hAGReO-8ZK z>hpc)yB(&p_g+HSH8&e&PUVj4N}^|HKlKGZ&&|mZ{U|Tb z_hP}oa{UHOlSbuna~9q4zWjah58k4;hZ1A+TTlO_h|3Do>j-gg zs_}u6hMR5T!%F%WuW?`RL2irsKN0`!^&mh6&MW-W0KnhBN*^p3pRgBEx;j)awN+KV z>q`uQNA=w`6$n}$y;|8b^fa=EJA*L{ z8}EAv-!h8l>G^%FpR*Mb+*toasla=;V!o!ocp<(P-_9qV@W)vE&*S00{NGh3*{ERY z>auc;@L*JGD(nY8Mri*HC&w@tu1qBcbbjhCOnzY&&a@DuK(yJPp~29+mq@xYL-Zfj zw1UQOoXhxqz@H-#c4<%%6uL$t+2~XsnP&z_KIue|kHl%7^u_V1YlPcPA&+=a5blcp zVCy0+sjhj;jl|grAw_G4ohT3s^4`i%e>Qu8vyk=f8^y!2QAY5Trlno(by?X^Z)?H8 zxvuBnK&1RFS7Ykw+kP_Hak8+1enw%|5cAjjJc97y__W~HCV86l^h0?g<>x1y7skp( z4FMCl@$d1CmpUBnfOV6%><;f+bJi>u4-aivnF&{|0Ca-Ir^bba9t+k@9Uj>fpmIy) zZp)V&t^aLy`7c`&xWNYv1l@d#_N6<}b*9$r8x=vjC=23^wKoch;dF7DsZyE{2qS?xXGYJUf7g>cmf^Wgq!O5Zef z8}I^WIj2nBrIgpyz%o% z)TI&gW1JY>-Z?}A=e*>@BUc0M63HM9KY#lG9~+UPSXDaO)$&sh0rk;yo zEqunJr0*o)Hz%qqlUeRI)Hj0qhNZ@&<3(0e98Xzn$Od&jk&lU+G&~eyK2S;yoenBtB6_|2*2oNdDL-7y-rcMhlV z0F_&wW2>~J7X=gg_NMnhn*^ZG55E^~H@uwNKWM;Fgm|RR-48CM`?=U9og1hE#kkf< z#)}6oQcJwQHZ}3CazVUim{WLDPu}sWVExk)asRAlEMP@+7-*yrFthblK7Pb@dQQC2 z3}5}ZJ3~lFAG7{XNV>p>Q36@kRNqk2vgB>&7B7KG+RPZ5?a&7jnr$?^EXex$*7|y~ z!hw}^IqcAaA-m`mp4koJjDxAupfA#!`B&^@_%9qfCC~K5Z0+o*DJeTrC&c{`ab@ib zH_1_LcXa|Vd1-bBn615RZAS{QTx4ajjab>(2)eX_b>Yp0ZNb5jA_QwgU$zHfFn2=# zDOmZdSNsbd$D85^N|+3IDLya=R9Guto+Beu^YF|?-GGm3^&bzqORSb!#LEP;pecDF zQKTjB{k9HJD}9mF@WfM>JMHjraKN6PEjf94jy(m?CuI&`X=zpmKKH9K1w}=$j7<0o z5?)R+i{(%`?e-Jq983|EE)m|96iV#4KYi=}lA{0UEgnIM0gVuKaHtMp5Lyv-b#1`F zW_sz1L*V~o42M-S;H@}n?aiBf0Vlb>R=dWL7&g7#R!ab@-KdXf+J>`6kS(kQw?7WHB?>o}2 zw}<`a@V$#@<52v>=16@pEUpuSme4|?;R zb$WLmZh?t$R81W$xTqv{s!kLUl$@*T-WnULj`#0aE&s0t!3XUH^jl;QCKeW-j~@<8 z)Uw=oEA@@qS&>RxUgaD?dHX_7K8pG`YYI*aDdcP#ZPKCVEchN-P!v$Z9U=I8^}0!w zcf9W;B}0KumfVZU%Q4d4H#IRd5ubD$6B9G|c7DWR>a(3$4T)n)njKGq#X|j{d&v2R zsr0l%B6MR`K~^7U{FvvwtAyw}**FF=lKeaG7yeOC`i*n$@6i$4dk^b&;@1!JDukao z4cj{|ghK6=W81mpfSRcHny%~zk{haFuryYW?5 zDWKT!m$2zOmu*%hk5M7#WT(E-o&wgo}$S-8qM5gp}cM*;Y|eF)4=*5AH21 zNBE5Oi--Cxg(eD^5@)gQUYRWCdSg*dr6vl!^}P2@>Z}xuw3^XxZRKBSGQ5mVz$xv; zuYZlrh!@^F5UQ*nHjf>e@L7D_po^AS-12$XfEeXT#VQT~B}c&OMmC0v>TxKLKXzb(u zeLo)=uZYxX#!_LOH$}3Zoz~z=I%{7Bq^JqOz+s)ApMxr3MugV*)dJu5R7PNXmsw&X z@6A>Z5Xoz5GR(}(Y@+97Is0OrBFE8;=!{_TqB&^(^VH6NX>$I%-nfDhtjdJJKpXnZ znCf=UfEH657EyNUDLMTq#DT%B?r}aT&Lq?hHPQIX+%+Ww2ZzZ*Ts#mMHj)|q9#pin z160)?K<2J)?sfGkq!S9t$^$hPb5!Ky?TBPW);`xZ6}y(6bd}*Mf*8F5K=PM~scDQ9 zW3vKCF5NulL?!PlnV(B#1iQenN!AHF&)L6u!plVL3=?b&CGQuZA6vp9eBY)m24%^P z&8i|KsG*UzH&-jiZna2PX*3d#r|B#Nk4p5ay1IIi+*0(p6(z1Yi6h}OFpUcbw0PVG zVyi-`$_GzRPW(6Y?U621)oXSghuu{*Wv5i|LWS7PA=={{tgI4ZVgcB|@&zmvVDWi; zu%F@EDrl5Vi?_@Cm+G6(?!WyTyt4oFia(H}S8D$lipzP>uJrdBj*X3NUf7*3O-Rsm z1#5boE2=iTR)?Spwfl#ow)Rs;IYh1!+*+}AN6DO?-}JuYu*-`8a%@##qVD@yARlh*AN^)?IE{99s+c7^ zTI@4!AF!prQB*k`v(gciLYK%G`OR4P-}nZ79!C~a+In0RogUxawn)X(9o96>9lvB$ z-QT12>5K{}7R>wtZSfdz5}zB;BKY_Pw?S}b{NpEKVI(Rleag?oJSloTz~_!CfIsS) zDTeTx%exZ$9_6(yAc>i!BFqb~`;vca(QVkJWrQUXo_~us2v))yR`(s*jz1FY^_t#y zGO`bCpqFGe&%hWcC@8k;y%?&kp3UGyNQJ>?@T>g%{3x@MdU4D84P4b0_j)j0TLD@9 zv!UWLZP**MJr%by7`LlTp@WOfw&=MviRMW^2getLWfm5nNYyo>R$v~F+c{ZSCQ=C_ z>}+lI_h+j=s;a*JCYu(Mmj^O2Gm8acIRqS*sRdO&Y<+!w-SO2XBLp`PK*Rt3Up5W8 z!w=DXB-qPuIXQ{?P*jq8^Ys%{l4M|L98lCNZ+~wjEKuTe(8j3*O96rWi>ZzJgt&eO~-)+Mc$@Z z`E^V-tD;HV4uy1|swCp+)eJF_1Y28LG=X04+mm0W?NG0bzqZ9; zj8@}v9Ylr1ssIth2>~Em-|#T|)+Y@O`kqKq4n+=B65dzuB1v%0ii?YxUC)e@*e#N0 zkefAYhNvFNq5jdwR zgpKI*dLrU-r4l4fO$(nEHQ6+7YNL_#IG|A8z?@YpeQs_pv)6-r-_TH8Q4yVxB9cO$ zpa?aBvVcA(s?3|Ro|>Kp6}InKeCAG$j_`^>H@-+k9bB0!cQ&%dz?iBq7{Ij~=5%6u z@+E&wd`mGUM8>6KDk?*8&4S_Muc_Cg)sus!68vxfp(p)e++3Mg+uPewf@In;#8F2~ zKxq6m1H%*bBuU=~*z+8?*q_U-s2Hb$)3%V8k5#wn!imYqV3epawzQ1T$)P$$l6hHn zLH5qpN5;79#Q8!(*V{`X`KSV!fM3NAEk@9qL?XiZ{(O3)3r~yHLs2nKmBVP5NVVQJ z7wCt*R8rb}iEQlbKn<(_Jw~--Ub!96zt%PW(F^nuV1@RROe}-Cm(Ugb2o*y{CItpZ zXJ=Co@VQoj5!>*Y6*L6n0z`sP!GK=^e%02}^%+k}TwI(Ml!29z5&Ko^FlE)0-cAuYeN)!GMhHqx9zhhJH-}r zZu_-%njYI+&NGM_dgqX8341|`o+K6{eSkW2GRQKLXlHJ090eTcKcCiO1P)?RNn+#T zCfmVM9{uRCQ2Iu@miU`<*8@6YY7rkj+ePb?4Yj0xIP&kl-xdft-x- zJ!rG!t*_2iPc>32@J*Jmj1sMm{@I6K8Df&59l(GO323jvIMYbn$?|0IOV1#uX zj1R4Fc$B3lAE-ZmOk~6wcqiqkWY~I2P~w-51v;XHE!#(cdaR*<>6UOU3wc&wUk_kC zU@sR~&%po?14rZ+6@59kD&bJX?T#R(UF#0VqC#Kp5&8J><53VQSsmWg!?TJS9X!&x z`SQ4cU6EMYBL45BZu>9I<}MODxKn8hjhE+v5kphjbP~!{dv<0I7%$?@khIS04Qg=^uS6`u}vctxH1t{HAszNm(-vCixYHj0mp= zFh|W`zSP1GPgg0;)f&T~W;_Xv5Ud{6;r*)?fcMhA!|adr1W(k8D_8(a5FKNo1;&Y5O!?t$sck|I7#m1~Mx< zJA5ovl)JY_3IF${esil>B=blI5eub+{bKq#5zC$_T=zgC&oy;xS>xIT$CP>N4ipeU z4p67MNJtnlk*xiP#i+^o>|)y1@Ae@EacISN5q)SRE`wB(thH5=pIg4vSMzD>{(^Vq zZ;lRqnZY@V(oq%RDTa{T)Jw|^JyyJVFQz$$5p2nJSZdc)lFXt}lFp-X@sm9rD=PxgPC3>>SYBBf6xaSX@B_3H3$f0S${qUS|LSH4DL&t za904}z9V7Mybo_zG8BCMM&FAf`q}N6a4dY0%$y#|g&vyZyBS#6-q9iwJM_(r(eqKb zG$qUZfSa{KfBL<4u4Q%Wh**$J46t%&JT1$^#37h6GBSo~G9Vw+ltd`EGANCy`0D-H z)!#M~F0@4a)$FAg#kUc52@Q|tDwAy3RisMhaRj2RAQf)Hi6DF)LMNvzg3;3Ll4mY| z^^VU?*_7xDri)tlF1g>n5eVfy&|jL~00pg9-1Kg+Fpr!FZ65hBfwkk}nI{5OQtK|7 zz*DF)o!wpCdE@yVwQE*xIL6Ei;G%+bC z81(jsDMFdf?3nHPMD^z9Zse;w{0cBaBI!07MdQ>>=yQxwlY8s^>+67OsAlJ*)}kV5 z05BWu>AlFX9v<~`U@wQcAUic%*}S`WFZ-LTB4t2Z-|R%Yeh5~z11PY>U7=~CJ2*F=SO@{f6R;U z?`RU0xSX7Gqxm)$d?!DX9c&*hIKbjsn1SC~@DUNxn4sqBp!N`Y*gsDU&ya#t{5qi& ztOW=9`(psqltRjo-}J0r=2P43C_KStvFF`(-{2stfUo&SXxH7()r5sKXONxhnk<+& zCUYD_qBTDk#@0+UJL2SH-<&6pjex~4O!f2n=fFUCJO}wy7L00Cm*}mD=I_ zyju+^|+Ye#E^tHbsK~v_s>Yf&}XEAS6v|_U?0OGwwkm z8}W937w&22U_t6Uf>^7o@HvigP1yhH{612CZF9R?3Cf<2MZ8DLG#j<8cL9gsZ@GEN z{vj8Fje9=}6^_k;msM3;ixB(FoDGhOHM5JdjkFIo|EKpG?1Ja;V1%fdbw8Ck`w_T? z<903}FlF3r76dj7K8Gvc^7Ti8n2nK!$|P&RG@AdW-){XD!+5G6bKeIQJYD+^Eid<5 zZhvD*<5cGadCPD&1WxY;8j8z)&mZ_mpb^uKUX9T~)$^pUq*sa#SNZ1idEoL?{hw3ijI+J5FujQKRx}E50{v0I? zn$UKej4^Oh31C<8ydswe0={UHk=SxL_y$%+ZMjLI5w>zn@ieBf`FT2tFM`lMT3rDu zTnKzn_d2mDDYReTMaB;fO3Pbh%Rj1Que=j4BD9|+RpAtHw=SWPO=aSXVPBomCIu7L z6pHg&eBk&kSLhj1XN=%vw4S(zlN^Wd9el3qN)bWD&gL%F+aC|JEaxZZq<29?d@iQ% z9hDfG)%l&L=}&I*EKWxCbs%iY<4H0!$6K!^y7?8_(hG zWO&%bZNHwp+;bq@tG6Njqg8@;NZ8moNS-jTRn~$|2@kl46H%;VV>4=XIzGj&Z(*?y1$!bUUH6KiH@5ZutY?Eo>#-)0?}N(2{5t`% zfz6?}JhqjU*$@}Yf~gin68mnl<8q=Mk!bRta7PC;!_kWH%9|3b{nDEm>Azy=3HNZ{yu2dXaDRn5L$F~ld)3#S=Vz^&6MPSzZJG1M;OU@T2B*+S ztx7DK=|~D;i0@#SeJmZ+QbWTCwH8^{#?N0YARFi=HN7Ym7R-?h{y*LNFkWb2@=y3P4^X1bO-$nW5YPtDNbjpvAIcS-z#*|r zZ>?Md+<(QA#%1t5@Nl`Fd{OnI3R5f51a)1zjOX%KRo4#GG~aGyY4Ks0juX`)K%b1c z9mI6m8R841Ol~IEviHR@wyxImE7Vy}y?9N_@B#;Uc&nQ>q2Ej3*uJ%X#B0wlCbtjC zIFhgR)1uv4HFHhTPle5V9yP|u)-v(M*_y9Q=>iS6vPm2sg=7U#^yu4B9W;d-TXOun zDN%1t%-+U=`-_fhk znPYHq+&AmDsv&F7)ri$f7QqB%8aa09gC%~N6*hf0lN&gkDw=5K@w?fpPUF@|)d@pV zpBrktOz)wo3xWA#S@4lcZxf4V(kYFR(FWo*K}3@v^Dd+>wm*765)g+P(rs4(HzhQ; zzm|~y>MHBALd|3`4r?P%ZN5haefD^a>;)n)F}Wvt(?1Yr^Hs{AdmZV->*1GMh3zj2 zu$&A^N#Dp&^!3Z$$BU}xu}sJHk)DF_Ln&CPwSI5EO0J)9v21)^x^DSt`q6hTbHbwR zI;+t#4tnywlE!mO)+NHKN!O%|S)>ufocUbDQR}3Ae8BKh3Q=&it%*S1Z;Q!j=Zh!z zXV$*8Q#8-_5BpvZ%2UnFGlTcL3H&r0Uqf$;JD>_31}9Iuxn}e+oW{<;STZpIaT>LI zwk}r%Mnfwn*Qfe@^Q!GCLzUq&Ao3q2GGqQYRL0BhvXg1?y9rvBG3wln4eRAwn#>nb z5MTYc)FSD|p)<}PRe4aq{CBOm$A|q15Y(oXz`f0qS)=uo{q?Dp=eG=0lD|+fB9-O~ z{HQDKSUhvIR*M+e3PB(~oRgU;cye+=#mBdB2X!zmP^jW}f2I9`pj*YS8sgVHs&g(> zTdn7|r}LX$5ELdpKQOv(&kz=A(H_^PH@sTT*{-i^A7u|(Yyv`H{PDiYW<*yLau5XZ zyDahDL+{L0?ZD_hvk>_KuoUBsimRewzS2tJ^-Zpk*@HIam%S~i-F z@yb*Ghzp3YtE|+|10g_^T%MNdmH`q;u#OL1bCDPHJELG?x`T0i@Z5WkwHmWhrXaL= z8>v=(Br3W(GnR>o^@Eg>O10Z_v&Gq0-*yRonW;dK8uy3PWd~zZ6AXnK#JQW2fRK&7 z({sj$Z6D7*%*0BRX%a>L?)Zq9$ocz{3AJH6bSagY> z{URnWE4{Mj#1wTXuyH;8mm~EG4P7aqD5$B$W~=uUgB~!d`q1)Ob-aoo=SpZ7xhA03 zQ)_>AL{r%vCf^#7Qtv8##9U65$_G4p~04}AE3tK;bq zX<@PPMNlPyCBsWXKUKov8o+4UXK0RcoGB}t@Mcz-w}0G8nm?>kglxnzuTEzkG=cGS znFl9ddHNrRitZ67@%}ipz35Exhp=>hAt%l`$Ki|Pi>^u1VZ%Bu<#)W@E9P@tb3Gj` z8N=4>9Yfc@KF9H~1tr#~G+5xsmrcCSr`a_9>7U#$gpxGRl zcMa$d0l?)EO~W*TnqzOt8Be$~1npz2FW=YIZx@NSa{r;wb~T#kyFV;oWuwjWr=b$N zAw|!h6f!TmHA6C*8=hIzlG-!+!<=q%H)b!M4z)ZEUy(dLfT2b6_>nOz-m1>bV9T7e z_#mqY4Y+y!y*aAB)gMa1jNyG}TQLtz`5fmV!1qUMZhr*_@jf;1_^4}=;Hk~cjf{(H zPmKwOZDsKHdb*sl^b{#d**J1hUSIo=c{b)U9?h*iy8O%A*&IiUZQLVy@7-MP0wzyty>4uZXGhh}$!RG?LQhZm zzH>mDIW+6(RAivjH5;`mDsgFi>)n(9p=Lh!hx|CEQ94q)*V?7uq{{~?>9(2CNSQB!z8y~i+nxyG@!476 zL*(^9s8ZKeAzY9`RM4v`bEfmTzLM@pI-grkdHDzCGXyY@cD%kDiMie7st;rjzpx8u z*v5A6>H)by)>f>a*O=S&OyTix%s1~!Z9_=rJUKn=EE@DqPFkKbP&!F#u5ZYYaTmDB z)$1*4EfQ&nA0#&Q4x|X$f4oe$?P+Rl;%W$+f9n#Rz~QrNeK^_NX148F7t>sX&5muj{KB(&zcDmsupZI(xv2?Bl*ZxkwbS73K+4wv zpu7j3iwjn;?9QV6LE>cs$Ge1R9uVWn2?#yyXY;rDw}*^Y5&yDc$M2o%U7L!#m0Wv5 zze{iUkn-M`U4L$UjQG%^+ozkvZqnqwYnKr{p8dnK?^!U$e1%&nYi$i2v5BQg>@-I! zW&W9W4)R>h!6Hp*OLG^|!_DP)gI`TtA6>SC%_r}(_VxEo0Dtg0MXh#VuOL>Y&C5y7 zsnrxU>(<(R(s#gjRY}Iv*a!Jtdb(6RyKNu~-F@;u98prm;-l}x~WRi8=c zN6GD!hyY7RSEW&Z>Mxv=>XEy0C5ur`DZVA2s-@POz|4>EF>j*mZO&KW0!18^@@69R zF$R7qEF@)0Hg(=q%cu<<|4?lPW4D8erHNQ(nS5U$5ewXGtQp>vZ)wGp8+?_f7#!|@ zQ%qK&8b6X@wt0kh_t5Hf0gff|E5t1|wH*{`b*12Z3}VMWIQ-c)9NCoJ=nK3pAZ}`V zUe9zIOt@yl_$duf?1w+KJ{JCwADov&CF>eG4h68&N!@z4!3b;^eaw?d0ZnT-rTwwZ zBTL4WU0i$_gfd0Jm7SL-4v zAwp96FJR_y9u-Rj4mcm;JJiZrApCbbD=7~5Ha#6%KDE@lpZA-UQCfeV_YkAC(%jR3 z(lTH2y7)m{|4_Gvy!D~f0Jwm$N?@vGHH=%QWM>>!N&|M}ZGe+Bx4fsA1_w_cm+i^Q0&63?kZlzezoh z@_X&`PS*@Tsfg+{9Pg>Y(HBCP?!+9<|=ShUbZjjmHlNJdc z0zAM4x5b2(^?(EtO9A2iCkfnMSrHn55&{(iEqpJfR>9ZfP^ag0xn$c_Sp(opO)0b;m zc$9nW(Z7)W`t;1y8pwVHU>e8dpuD~(rDS$Toz%3<1?V5S%`c%YNL)w%F zIj{$wU0#jZ%nr!>I*pz|{3Mfq3ch3#(8A|1>`?N_G+N)Is{s+DEsx(m3inz*cXv4Kjg7Q;+FHD?K1wq8hLHKAE;j-(oY|T3fJ8kUXq|M3H7T` zk(Z`1y&>||%$D{AGb~O!*z!rxag3wGKRFU};KS0KnAVug?P!HzxuM$=^z z-7?fJ^W1kH8izjT?!&$bAZGDZJ66)(U(5M*Xyk=Z~j>WT~kC=oLN_u{FRPKD(HcO}{+b!JD+d!7r(aAXdN zC*^C{IM%2=pB?-oyftTzJElO7TNncVOdOvB{9GG(w_k5)C76j;K2cMs~XUBQYo2ZbUPF4LB(&7OYd zv*q#+dmU)KgMC=6s-UhyWE%o9om;^C0YlZ zFNu#;c5j3=qmg2j^~DdKpV*pkj@WGx9F&Z<619tzNsT^U)h<@60D)DfOQ&G~^{&7n zAz@tU1nB#G_$uC4T)Svm@lNZB+g5294kibhwf44=P5M)uO*vjNDo zOwklm>;ddfMKBTnrcK|FJ)b&@_X`ehfHf z5n3=YF76+2CFEj+&47L%nb2d|Ftym$bajL zy|I-Pic-L?BfQoZ<|Qj=l=*d{S9|&fMQj2Tfp+87({HvuJAj9OPujR83t-}hSb{mP zs59*mwx3=K#btJmd^cfLti|zfyKvw}CZA&*8e+YP%CX+~ab2;Jw!iaDgWPa&$LYT3 zHN`LOF!^>}z{xn7JiLdPKRhhClP5Cycx0&;z4)A=cH7W&dt*jT$tUxE28xtbA;j5r zsA2iq;WD++F|D6vTe)_v>;MMK$s!pfNJhSXjHe`}=~&Zrxw-4hzBpeoq+VQZkQgFX@Pj5NUz65{QJ=BYi9jk1A)cfZa z)uk*>bg&pO6y~#z*$k~DN8OHwa|shs+Na`$M#uNyIq4c;!$MoV31V2%Iky z0zEqt);+EmXBiTn3VTbFG!R^qw2QE$5W9*}iguOppD8fM9ZDY?nGH$io^d;}7D(cI zMXG3C2Na5yTbym^2=%*&Ig!hdEAhLnVrLvugY> zKJjsAF>>A`h_~?qh0C)-33rfpi|YX8Z=u{POiq^?p+zqI#cn~p!<0{-a)s6|*A^H; z{gD_E*^{6`P_ArZqoc{OK+;S&)Up};PwcUTa6*pc`kfuquh2+XQCXNBogr95pZ3}{ z6->(-G7oi4B+k4afBpIu6B|qU#L}Qs)YR0RmxD^BW5E}JMlQ4$OwXkrHqVxvCq{a^ zyoDFv&iG|txP#As9sjIj?CuVL8#n74LtS!`nx6Vi8~<~E9TbX5;GB&w zQG78!r8d?UmrCelb~ine;jYAfxJYUAGPx>Sv?QqrUqI=|hS0si+%=%-=;kKVEAibV zv^(xd5;+>*g};(VK2sbvld^i06+ix0^2I%Z;u>!VORZ2X-*jhG+kIze&T?ww7PpLN zS?c?Om0XTRZmR`CwZ&+JgF4mcr>-N&A%tuFQhv9Yj6xpeHO2gT?-+#y^(Ze%xj@K9 zG8`1!*GG+39D0`-A$tAcs7|eJvMP<6#WKm6OvOv}R*)7JV?r}btYI6W?Cw{^u*_!t zR5N83GYR_8|tE;Q4!hD7~7XA3{bVLf^ugvISfu1Om z2&hC%A#ebf_N`g@x8~-BqDlenJyL<`^d+(8QQNDqPFO0a91|A?g`aH*Yb%yVa7b9& zI*-EC(*EfjcS7grtXBqDAmM40%eO9K?^6G7Jd-~NIDb#N`43vfIu5bVw$kYXMd>!8 zXl?Q(9&kTd!(>zI|4vo;S4D6uUE-}y`wDHnT*D)Jw<0U3wMcltR+mrY!zrNP>3o*7 zG%&~GNWdfDel~qFgSJS^rJ5vUCi9XfP&CxW;A@!qIK;N{qTa!(KV#mjwr&!S^;}SP znxj9%>ojAX*6SuSjDCMXFHUH>vf(gbdhv{t@z7387y;kkRcP)AXf(IdW>h-1T(x8pU#{s!Z9#SS= z>$5s(5{_<#Qhde4(lE)~>SDe+Qr;p>#ONlUH|W$2xW)A7QIl2|Es$BnvkV$db^3v= zk?6a5B3kC@@yRvj>x4&7g`>b@!gwu`qBlO_!Ar1_UN<8dgruHl+g73z1nX~PN+hKA zJxnUto(Wj~bS+NuewU$S=wPe|w27#)pg^2RkrJyl!g* zx1M8E(#{%=cS52fKVZA_OPBznolro?{#-5c8%e+!>ZE$Fy)aX0G=%2;R{=bx};Eos&TAOS6{^?eVZ#Fg;1-aY{Itv2u)o)9x- zS84P*Rw4jgfiM+l8Hg+`eh-o}1(Z5cMYVcDr$I|NkE(#gH6WCV`((K`#~!OVpk2q6 z*lC7Owoi+Pl-2-v_5v6F+t|}HW!3f^pFlOwkjTXPlTvvO+l_$nNgKK$#!u+9e2m|j z{t2gR%9}eq*$VP0L^B1DIc63-g8C$r)C^|&NsBh8Zl~NQ)09s3&H^GLn8lp}&RezubnSW6$ ztrvzllHb@4iLLm6#W=dNL&$2f%ERo{&6<>h1SjseSyZ%8HxsrmkntGg^|oU)0lDMx z^8DIrI`9J6+`azV`tT_qa(Z=(_E@^SR`acD$5&Y-AdK|>WZJO*#FsvGWPD&#!o?(H z+4=kiB@b=#xccysN&%ZUon0q&eM2815{-n9{9=Du3DFVFbAxb814g~4QQ%bBQ1um1 zIdQMn7p+9Bp#__3bnLa2<)Uec-{j{9gk*HTkx=T-xn!jr(Kk^+@ znX2;zLPoX0KE5915$V-uG)_o4UyySnGEaP@*~AT|)vf2v{hjap&99Q<2`saE;20Dk z5dTPSYO22i_YFjb)u#TB{mDzxlzA%5K?U=oim&m)VJTP5@es$If-ONWry9@J^PXo8 z!Qf%y&?`g9G4Y#?C0|VPIH6;xou|Wul9tCxi4SS1_4E%mf6)Y~g6rdkFZiN%CF?jS z#fu5{5YFXoN6ln_0xIUT@O34iy4-T=K`fRD1L;`|F}i&OZ1DK_$NJ4=v%zCz#wIc# zz7R{4wOathO}Aj3oXAVTlZr&e4b<^R9v|C1)L zmF0$bY_VFijw1pg>Q6D}xj(ZXtM{)8KDk(?c~yjH^!&LM36M2}$uwI@GcVC7bbf$% z$)KR)K;sh=1{ZrX;}FOzAWQb6GO))c2jp+z(tpz59IrB$my-HiK6pttqSk_ZA6z%kD8{>CD z_TMw#y-9sAGMIdF;HcQCXlSH>WOA^*U7F+aw(lEcE!; z7`cXqMoeO&vAymOkc0}~1-{uH_jZkKV+7y7L!Gu>DyCH|kT*)-b9Ni3K6DA^GFz7I z+a8d#HvP*RfYYg+?MFQ4(#X$>@qUYo?ECSu#vw(zJn zG`Q)($J#dsVnqatw`MoK_;Y&(ptb)8RzOKtR(>bQu}gY_JTLD412zVSn};VC*aZBf zrY3XZCu4jhrCVlOR5=N1Be3PTZr?#_hF6L>ziQ*>hYX1Sww|oe8}f!`?j(9Af#T7P zf6I2!UdPNAa8Q4_6QN~|@Xq~*sI6^sriYYh98&H zV*kS8LHR8ZAEf5v(*VMu^9DqJ>-vA+CH}SFFMI{FK~iC~{n1=&;z^tWo#*6+k$hZ7 z{L7c#BT)PZS44Gn88F5B#1*d7D?)eN!6Wfc9jy=*=s)B0^X4%iphiJp@i!70+?V%6f>26lmAoKiMVc%*BAD-D*>WE))p>Fy@l#fye#m-L^2NZtCzW^X6b+M4G*DltDrxXe(u z)z!?xgoS(XW(H9A2B=fJ#5JSJtaDdacf0STb?P<}`r_Dq(ca1F*CqCd;{AiB_ZF>r zL{7JVNVGlMHu7&yDC!ij==K&cr3kkD9&cwUDEEdYVUGFcla2BHCpx$=gGDoKz2fX0 z9l@HK>DLG3##)qxGQuA!JWHDn#B$z~feWMrKv}{tSy<7$SsAIRL?&idv4t=Qxw`%9 z5}OEot*txWK#~qP;U*>pYysv%E9A%o^8@`;ax+N!$Qik-s2GT`!4^Dsn#D4we%}b>h zl>6z1KRU}aJzxGd%c=|({-uHmv?<$YeQvRgpP(9>QT8RuB}jMHBbtpO|26`n?lVXK zx17Af{CCXb<3%%x=lQPD$%R>oh`ea*yYG!TYlGD9cenRg+qc^HiJ}Bk5r3ME3kiAp zc%D=-iJ!_B}4H;wN1CREH@9arYb_Z;+|106%`5t7gc5>)4e6{rNzZJ0dUv0J3qmvo1UCZ zQQDuv!`X);h&eP(&CJ-KsQOa<__XZWyd=oFVRz0nrN#vBQ}>D%*MnPf{D93JF2}vZ zpBa2}BNPWc3Nr6s(b0VYav`76g-`QGy>EFH1t7@H(Jce_*za7t4}ogxfu7?swn6vl zkW#PK!_=XxZ8wrcwjG*_#2&whV-Jy4MKv`u_4^C%Awe=SBi44RC?Kc5}Bmn}15S+jO zf#4D>SRlaQ4#C|mI1Cyfgy0a|f;%LGyUXD2Fu1!7&S~@|+$o)%X$5wQXu_{6L)f85h@^ z1&+@0=zASq?{kf>LN`Pu#H%ye;l-tgoJMwr118=}^zb3WXRfW2U&}rq{Cd#j1$4(D z_plkmSZJj(H z|FYW{oG$*=w>Vj!+|$b|$#M!&-*(naOGQPs3`Z99{1e-DUpYa;Q*N7CK3-2{Xg{+i z+J?pBWEKAMRrq^^z(o7ZzTVlHBhUzcyah|gx-3jHodxRrRPg1D(jK8pAT(c3MP6Ar z=sKKJs|LC_R(%7IHs;m8`=|eVB>P{6!*S@3Q396@{Y)F&Q5GrlGa4FX-dis)Xoin< zr*9L1MLvB47^d61BNW;wR)|K~M$Kqi4y;L(MVg(YQ$DA=RhUHr-wZt~BLj8L9oVk*{nH-SrpsDC^lM*M^DvH|hjA-@PqrHt3{6&d!~m5_Ia7yKy2 z!qztKyz>2tcBezS?$^MpP=7j*!$qh(nlR$^3=aO(;Tmf;i-(XGG5;y)NjWr}Y0 z1x2gL?fq1Og^tu}N0(?2uR@2FjHGRXjIwgxAr@AHmd=^S;AUZ8x=1D5B7}iIORk`So}6zb5xn>(gfy}nS)Ld6hz+N?8%p}%HOBNhFwW|ilG^8PmzF2 zFuEh>OTn@&+zGsfB{c+ry=lLlPrVL=aU-E61#{FDkhIwHZI52Zd(@lU`XIG}0kI-w6x;L)pM0E~U@nl!S0nd{-@?>&4`djZU12 zh8_sTtZvSBTmRxfG90uddhw&GhpPH&^Qg^!^-$P+vZ@v`{mkrZo2`x(6>-%8hlNeu zxnzwEj1td>h;H+hz?;1K^HqiXanSeJn-5!#xHMW#FGPRD7CfE>hypnC`Qy|`MD;1S zr@g7RpgJJQceShOs+eO(a~?<=URx<#png)r!zzRNN4RtsEjGlC)$ZeR^Khnkw!LmP ziJ(`Xa-dMf_k5*Xi}COFK!-iSHDa20tvrf%$~TdX*#6Apww*;XZt*e@n>0$~N_a#R z;OQ_lEk8ZEZU5$rT6ceUR<#;~nbe2a`L-ryv=$YBbD+7|IZ68qpL%;|&;lx>}&F z?@z~j;>p@v@wYt zGj{IYF?H@;54|>aTXJ+eNXCbH^jX0sctBDVgw(2tac};k5Vuaxb7VwMdCRx<5dR=1nGZr`J1pOH zW=BrFeg@%XxgHy}q0FEX_31iXh1`hZjVE%X(+YB_2{uRBk046G`X7#DnyDop zJ&r+VIkQB6y+7nL>+dhBM2GZv=z>Cw>z6%>-TKB_k0|D;>~Ql|QQvde=&G;PURfFR zOy-hK(dpv%SZYD6GiLew^WW3vu6VayjmMbNo{RGGS3RAK_V8k^o(;jPyI*}SL%G;s zytB~Ik+2^Gou-&SCLG!>si~qaj-9Wg8)H zx7?0lK4gJQdgZybz5QN=@M-W<$V2WL(P{zo}7E{Mm+Ync^TT=TasS*hQ{+UBVVi=ERSV9z=eKth z@=XZ7QL21B0j%;k970XpZqL6;AojnKd;XAEfNO8uYIlV9&^Cu7gl_Tm-2- z(ZEqgH=IFu0b5b>$xPO{n#Oyu6zD;PA@obf(sR<{Iyg3Y$8hz-X)rw_<# zw;cr6{K($d$20LC0IPFT%W$dQd{Q>1LJ`?9XINMdFRUN-Q-Oz0(ZwTJc`u2nY+c7@ z?kO9()5uD1qt)hrumHGKy^^xNUQq7ndVkUg|L~68;T$Y%lAByIY4mF!i;hqQ zD}H2ZAp?xtfWhsGddg!{0u$QLZ@Ji`VR8HQ+8GD%AR^_#{I@dnKO`If-9XCc(N|9E zW^=RfU(ZS~HCxGJ0_>b}7%de{?T!55;&X_9=+@_DFoywh>`y zZf+gjrK8T6=6XDb&P0~VNF`EG4^GVnnW z(!+T{f@amaLjb=syS`qFMm7-yuw)*RSEBRm7MmaAtu7?B`&(c(kT+cy?OQe6EN{Vy zQ^neSXjMLI(N-!d zdUodb1!+IC5rV-FsOZl!3B(EAlda?J*v#Yeb3>>B3?)HDfyT7LVE8Vjv^R^c zj9LmW)b1XQ=eZyJ5YOAi{nQWi3z=_1!g4&Cjn1J|nyxpZz>pMrVicPdnn%R#!$>$KX|%j*yzVOs&`viwkCvBu(AtQ3#T5-(+a+p=P6PfS8HEW4 z2|aID#$eOC^}Rfv?@(x>`cP&NTCRoVT6d5|OVYBXr3D9%L5Rne5_z1>wF z8c~TgQa(H93$D+|BE8}<5{Zq*WL>^KG}074N_fO`?*Sd1YSe|#(aN{AxTNiu67fQM z&f>ZhMRfv>&-wCna5mAqt>2Zz%FRKlNVuJ)k)cW1CFu%bX$6sOT?K24!-n?iw_QoK z2X(h53EZ{HmD`$EX%ORLts2KaK*Hr`Hje4Gc6@}(pEU6AX{cpsq~}r#HY`+)A+jK| zYYl$3cO+Nrr6N#*fk(C1zi=z-gGTUENa$c3O!QV;ORETm+JOHWXz3YCOEljB_zPeb z`&}l-FJ7g0VvBV_?O#W8<$53Dnt}q!b!K%62j)8Ib#q;TS}itCSc`|8lWo@Z{@7O8 z75`Sm$Kt0aU5Li6UC3#|hRpHcc@KS!`>==Zdvsj6QIzjrzam9H@~v8>dXq1F>j%$s z)JI;hK6G*MY*0;*h$N9oZFO6-L{h2s>LNOYU|P=ES>mPD{hlkXKtUZdY+WV8RMU1aWm@{u4ko|vW1{v(Az*! zVwY=Y27&a@-$nDk!2Pw;IcJXExm2#(x85~PZ+6P7eA`l!~w9D@Ezb zzcoF(ivNMb8(!hs{HBFMsq|TaTzMJ~6~DXoo2qNbPpN9X>mk!c88xPH(|wGS=N`vv zPREM{b?%;D{gAEBKg`T(tWEjuDQaIPG89QfeQjlsX&v4cmT_;|bb8k_82iWf{j^$@ z9M=9UB|DR*P1KxTryaT>v#OUSpY^uoS{PTh7o44~Y%@=qelRkplZnSQLnZ8eSY%dt z(DAXMoaAD~WL8m)3U6&)Ij&L$!07L})3k{#K{Tr63?>sE@nTQd?wGy?wefcN2kCdn z82*=ouK(2z6pL}d-2eCTEKxVZQIpH6wEI#LZhI|UPT!@zgwc_dWE$V~_dK7K-qFfV zbdRg)(A^`RfsaEE?h0vC#=1i%=P7*8eO5P&z=bp-@p{^r&3l-k0)lxJ5`KAt09kbX z>y0Sf@%}c@+qlz3+oc$_YdrvSu3|&)eV(s>I|?wd7Pmrcxn^XYLL-su|HV<4xs#oLvetZ9L|@>|*v5F42Haq2O!khAu>Szv$Bf6n>HG zo5bfhKQ&YpUup%cM83)+at!l(Ci|#mF#k%-+k=-=j}+rc4bfX&RaKLPV_gM>H-;68 z&(@D_twu%t4HF-op3mAQu}0zYa!gYwz55VCq-}DZCOlNP9qI_To>wv-AjiOi!N3K& zaMx02jq+tbcv&-&pO^CY?!iH>%BXTm5lbn*vGMT)&~p&(uWeCxv067vFH`Yc)VnH) zI)P^c7RJv&95FBB%$$B$t+11!V}@eVOjD+MY2I6hAG|M+YBrG*uX41sM@c1~_m$nU zIe5uf_hvo;ObO24HmE8Z&kCAHduO~dfEQl*aorDU-Safv9MG>Tlm2gPYB|JJ$sZ)C4n=B(oZf zy(9{peiK$Oj!DQiZv4*Jk2e~gw89&UxeZv6xHQX0&)eN7jy6_<+U#$dP3XGKCbKdW z!7y1)unSlN1H?~?P_GRkjG+|g@U@+cjm!4%2>AIkj1$H?;q4GccHiDTx$zy=Awwo(NmP5UX>WJG^-&IUH{x#V^`9Gb904=_-Lv|tkvuYv4 zq7jJ7PtND8T%uJkp~|3X(bgq67$>7SeL)d`5;;#8~>6XK@W`@^fQ*%*^tg%B=R= zOBPD(3VKM3;p6vsx-8K27u0=5_M25$`?xolBG7Tc;j;ex@=EtM;AV9ryr;_hG~%bl zrx2K752xzPJ>xNY+}`d;vxW6gz~Jr=*!on=lP4q*J|d40bPI>!PoDv4ye>#8#IKk% zjG`#m%Aul4B7P*iuJTQS){4r?AVBB9g-<(>%Kr`+c8nB5ehVr@Cq_gXHR(noWtEk& zh0t0P$%j|u4JfkeCqKX|T$%Yw&WT&apsMW><0#=+XPU){S-}i4L_G@HdEX;bQ}vCe zzMoyryD93Hf^kAMZa?BN4B6dnX$({F(0$gJo$af2y|NBDzZNgtep@ao6SX-E3L=w< z-&FlJ@5>~UI)s8$jP%P5w-ZiQj4~8EK_jlYvpUtNW-NEhiUD$l?Im(Y#wE-rjo5~rd{=vaR ztL9c%#}9TNTv`B6dBUQTs_Z@jiJ_ntlhBp zee|Xe*9MgyJ1gk>crV#*j-}l(bJK~8Qp1wN{UP&l>HSGwUw(X+t!^6eY46p>`M!$i z3yy{OwDiZ*=sisD`r_Q8X-`v<8b9$1!|6*a6`cl9Cw080wLS|vlzq5qSAs$g1PEi| zsHWX6Z(Xa;7n`hKuP9|=5SekKv6Hus&L7wVQN5=N-C;A&4EBD4Gp3E)@b>dH!_Gv= zezPzA^x=f2y(ltNlQZ6Pcj}M*WfV1=(+o!f%a;r=R4C(#z`D-10D@GEQmp#AQ1%`F zl*zt!XuFLlHIg-VSh+5#xR=-=U+51!noHrP9bV%CiE_&*Yqu!T17Pj1$ur0P!q=r3*&E0DU)AJ zP2=)~A|nz(=24UhbX!re(QllJ6CaJtFw_u!{`Q%B;dk%``2aR%48zcK$lBu7S?W${ z%-YF%Pm|zre393VwcBB@Zk(##R_;%g0oR}Tthif`PULtwMx8zR>( z;Q7d6wj3cN$1jZnUF`ZoG$D*JpB#9N9L*zXR?VK^$;>5i=co@<0<=v&otUptf7oga zD*q73H7Pt^u>wLk$n@LsF6>^F$)bq;F^~MB35bquO2{fMteYtokTrqwoth+MGNfw^ zYOZuk@Dop+m1rc0i3;HXHpLM*LrrmzhM6zVRcyZSXv+Gn?d>a-5!AElFMriV z;{6}aApiRbh$DN9VwAY3in;x1@f|SU4VT15|27e!d%5H-$RO8r0d=&9U|sOg(Nv>d z;RI~PbT2IvSSvmj$fZUxdz|gq*A}b1VyxFXGqcM>T}l*2pOA<26TS2*zxs*sJC)5Q zB;*}2b+E}`MAd0A!q#eG6HZ<{GF0_m8;?ewpGqy7hN2A(6HdFyx`pg{Y=>x(zrh+0 zHVX4c!Bp?MMCH)W_|!JFc6pKshk+iS4q3Wm?j8(_zMj*~qtG9~-gMFlFp-I)F^G37evia+!+QP2HeX;T zEpA@Ap=6~;(s;0?ZC#+FQTrM@ezcAK1w>g&v}yi?+o4vhz`2QfM3qX3zNa6afC8S_ zCLm3e|Hvo0^!&ghwkEXYQ~rWijyD{KF_6_>&vkooyqiH3d&hN7CU3str0vhs2Y{pb8)Z;)|A4;Np4*`Il3(YH(oYbZ|ft3byj;+S*#1 ze&YLoI*X2-=z|fl7yQgo&JmdBbDyF*+0drZy=~oCJDo05%=OK%Z8{0FniTbIn01lT zR7{i}ezbdgecl7VpT%B_K)qAl)I5~>@syfY1m2k%1)?MRS-4b9^m?9vVLmQmX~umQ zQMi`ob@e-c;IL=Vi$aF67}@~sVIb7hzzxxKL{uB1+-4*=4C^V^{~@}YO~=-yq3p{=wL`G z7|sD7n$r84s}TA|1~1l*d2)PQ!qBsHZZ7j;z~Ter`I|(7s}L-dx&pZoD<&N%bwD$bgsFDBI)}^3W8UVs%e_Ri>MOuu^Lu*q$|sM5}HO zRQ5zhpRs*OUeJxA&rksp0HcjP+%h;S$6-sinxH15AAOBh>4oR@NAkA=Jv}3!bR(D+ zR5?d3sR%i0OXgkp%a^f|kdHq=mQQebG-)}*?-bb<)S3CUud1FP>W^hq z7bJdc=jY?(#~a+e3aA_KJL5|pI9Yt|r`Jv^&B4W$#K7|5_u=6aSC64q&o|#%2gb39 zB_@Q^?4+IHHRN!`>%mbljrs>* zF(V@iY&LW1V6aqNa=li9xtC56X9tyYjfExjG6D^AJiwa_!K=t5m!RSpP*W7Ku zQ>Kn5mx_fLq6c?(dbZWKzx4&D0$Gtd>o{K57Zz4QQIKwrzB;zw zQm$8tv;TCToIY#tG)QBzWKW(~zwnf8vX|SGx!5$HG{V4aIRKAkVHPu`D|5PP;}wiN zGqN~x1(wDl=QvNE(hV}RYVqQnmV`u|eRhzAH}9KrxspP@gh+C5>HbkB^WMV0Oggw# zzgrT#?*fJR?iCQ1vg2EQOpDWT{zGQZ7gvOkcmJG_wROTJQYw<6YSw%*Nh9Y-cWqUS zi!;QZ-xUtdSa4a_adZ@gLc*^$&YssFOb{>0wr^CP;d?qbWG3hHP)|)shr}`eAYMk{fM6{xEfNMb13ZFV5rzq&y-%%v zcxkAN@04_PZ6%+{r0{Z1tbZ%QzH|5dR^-Y^o(9 zA^y?tyNmfym=^`0jiGs{@elMMm-gY85JA$ThDvEz-o|UQ=*L9Ez7b4LI_k`{8fnMMq3N{fB zte7nH)pNm;;s~zmJZKOD4I8Nr>(}ct$4d?a$rMS#mI@aJJI|rTmNT>08DwbF&oz2c znzmb;9==+|m-DG_eV`5fpnYLOvq|<;#6_NYMpdEx;&l(1aYAsDvzw*cB) zR!&9X_kI(KhV!~o4?6*

        4IVR;b0<3(?y|epWk)=i@G7kXJ_RW{eu87xw}Bm#Chq zwK<;Z^A(ZU4}}pY!FDkpj)pdqS%vLyVa9Mdxxay)_5#p9B}gL#%Uz4dP>Fx+ z-Lt&Aw@{>hcQY%s)+2a7UcW~M$X0~&5!wy`FZl#qFHNs47fQl0Xj$s|{wOV>BoM4^ zNczS0g9Mqyp~-riK;^ftBHncO-s(7s~u}_ z=*(v|?i??flfS40AT@cKEF9smHeAROT@UaO{lKRHe@r?W{(?K{f1v1xikXsWfo;Ts z%|Fm=6*On-)VC!(c!ON^G~oOXlARdqr|2|vx+C3h-Ql7C2*8O{83Sq+>| z0-vmeMIPvQe1;~s2UUjJgW%KE9Y+xJOB*(JTP_%{-uLoZZ*L{vPX}n4Rs1DE@N-Yg zou@=A>|iIQl)BUx`IQlro);`%keAY94vcUfQ;@Z~>MecG*z$W!9dIZ=SMOFv7yU$+ z?GN2EmXR;YR&$fKvwym_gEa-TH!7L;|D;-`F{SBsRhoyxdasp!6HfmNm9%8C2k9Yu zKqZ;6L;r>r~MJ1tgS;Cdh|DuwTBKiM? zO0t<~%-#KqN_tNP`4_`!uEF{v37#F2LhFXKk0(U_1h+?be{pe|$%! zfW$}$r%&mgM&+Z=vRbM-uBtnT$S-Z$RgRomZs*;%Tehr9qBvpHtm1Jnrdi6I`_trR zS!3md6p&PD#q?QFIo`*hBD-N$9C0}XK$eH8zV+mcu+iBWygNw&MHwM#osMq21BFyP zcCj{ezI;7PfsFan^1<8YU-a#l11^@`L+NcsD>EI0VZyLn2#cjPVW zv^gMMb5igmT$d&&IjyC6*S2^}{;sNV2#YmiUI+_6ps^yV<3lcF4dm9XkM}%TSHwFA ze!U_#;L=b%1=i>h?+8h0)PS54qBR6rwKXMPg*G@Nf1w?z>M_v|Gvb4(2>!HFyfS~K>F#clH$BWO1p$-bXtv*E;N>DHetNfes&%%Csn zy|snWSFf>&gM#bvn($=NUor1ud(?FA)KIZWso|bnnvFLG&}boUA>RFIrHK*^y6CEy z-tsuz7#Yo8lDLA4L5G4r90FE9pOf&Z);b-K)e(I4=+sbeI)kiHNY+xH)X)}N<^J04 zyYR>Gpc}Hwe4Oe?hjD5sNy`(QkWQXJdHbP!@Mmw??Vm2Ey|k+g zPwnf>b8GM2KP8hYrHy8~YF^cQGj~&lRa&)!;{?g_QNG*fzR}O`e(q;SAM%IG6Kb=S=@4tn*#e=7BH(^j}h!C zWmi?YTY2w(u|At{ZUPFlKFhXf0xFP=xl7zu&@C^`PgOp6IJ*2wJk^Keo4Qqi%>pIn z?NS%20X0l}D)df2eBPrOd8k1`KzpZB@SI!w{B}2wdFC3H4OuwvBFmk{uHrxY1VOlK zr#$?;_E>zcfO%%eLmTn1x6(}yD6P32*b$)lJO6S>WA;kRq-s*Sgr034oVR)*ZMVCVL3;(jEYki=-L>CwYR!>iv~{mszv8aFT&x7 zB*xm*pWowCwQA{+9>h6ExT~o(q*@!wFFaFWwFF}L`2;oay%W90FY{lyak~38_O#q} zwu7nm+pOZSub+ZJ#2CZ_v->SLw)S1bJ%BVFgq6I~?GW|hg;p>qf+>X$rYbI;%HEmE zQi-#hyi(s!%Gf7>;5-Bx6rawPeY*wT@TYjPK1DSb9lx@zzugQX2zG@RG_wAuUV4A}#ar#$2n? z-DTx)A*299tbzUA!bZx0hHu~o^dcV2LBu!AvaIw>WRfUjHO(gPi}Y=mPe9Hx2cylK zlcprPor#jj%01rhJ3&HY4~vSfeMPrr=Y$myUQE9(g=UInzf-k~8C>|U8 zX~#EK@x$H%{0VNPrK|@VmH(5kN>1Ky!emw|l3Pmt1oA~l(WE}JM;{r0S-ce_^!oLj zgkuWh+<8HCzb|1*fOh(k%!(H4`^PnWlbXE3^{#w(mFUaci{1*+H1;FrxoTzD)#2^v;!t zW1Fig8hF?&YKinYm|Ai1BSSo#LsR?-+DVcIIYK9&Ro2wFMa9J(uvGCs=Mv+@(()cd z;GXVy3fk^}_zX2`Y~z(O@#NQbKi{TBBW0W6*7;o1pI<#DaZbu1aXtgFon8cOs_=S5 z)~iib|9Oe8Qo4)V!Joqr5s#ney|ICr@YWE{E}-AqxYpM;ktpx8@AiFDyF9(Xp)NNfr_t+t14k7tv(Y)dRTSg+4Fo;GcNmFXk2 z6w-MW0{XTZg94KBuV;7-ehzzwArXu2_L(K>b(9)z1Ov`7R1d@oDg{w|rd%~{kuZ?Z z0SiGzyL-Pzwnx-Q`4|O7#66)3dgDg@7>4_X`I#85$gw0+6!pjd{ROuvAAMXyL23L* zt}zts@+MO_Mwsa%lOVHPt@9RTXfl^UX1*65_Ii7fTSx6j)Rye;#G)T1*ebu?9BNqZ zqNGuplmdQO=vt@enLSI@dwe(vKKip<4VBfH$rQdCxPT?seuX_PE7IdVGk5YCuF}rW zs>LdvafbE-WXc{wBiOi+$?WDe*ZYwkO^f6j4qXSpD&R){r3y?zrL4}YRhPfOEMa&DzaejGSR$h+-2V7+M+zP7*WV!OPp$`%0=5ZX7R zZ!MIi8GEZyz9=YN{H;0W)vDU}&4GDm!}9u;JQ_DFxT>tacMSovDvsJ)TKqcsy-!WG)*LuO`p2 z`ioqJdB`p_-=VvndfPB4cewj^QJuFKn2b0W&fGnL?eNZTuLHaa+=!OUbj8 z{^vlq@x6pV2LK+2`~&SEOKaUOG?QqvVa?NXAM5O4Ko}tKUz?`)L8^c z{aSv0I?>@$n)h3xVBv^)z5l+N4D@@kMs;tdPh~8P{O}fy_He!?LSA;Ic4yfEea-0C zZ!cY>07YnC@{gp7s0Ijj1V3Vz-t!9EzA+FpyY*6gatJ&p)Monlvj^_J9P(Lc>s`sW z0T!9t=Vi2#Y1=BTqHIH_;S?u_hZ01Oq>F@08U@vxkqN;7c4}RylDH@9*9RHA+;+8E zVz#&l(&wFtoJlt1^}8*l04kyEr@2>T+$8Nfe;2^34Tdv3AQMw*nQfW8%2wCJJ0YnL zkcs}NIC8=Rx8vjWWiF`)9@Pfy|G%9tm5*Ab!j4{D6sR}Od%)4LnP12Ui5Ontp1Gzo zFON#U*c@m!2t_{K*^3vRI*l&e`rv3Gwc0dUs}sJL8>c06yV6+j$k9G;c_=?ClR>Lo z{k=7lQ$dLpJDk5>TTp9Or9Zv8TAhdwhD*v<&c!?z_QPRAmKv(JL^=Ii->*ocqNiFj z$!9lqz#$i`kp9zg_eDNj_yc{)2I28jqFvRqkyDnz3W^4&+nYR?)8S>@jlw4+Ox znX55zq+l9GgHC5GkcvWo)q6LfAgiL0TwbQFAxg@tB+*6QL(G#`7eym4gNznMeJW8^x>)UYVsdgx5k$3#Dwk_}CrAMk&%lQJNAQE4@ zkq2he|H;?<+NKv>-=_FRlbPP1e-Zbi=M-Shn~WD2Pmm_h!e$zGp7;E$f3|gIN$xDT z=JEtNclqQ-cX7H=d$wS<62gVp(_A@moNFSTshZu=4JW$ZT8PJL(jVPv{P+n&`$S{1 z;y$2}NiguLrwZ`2wc~%a5e5(RA_-lT{XCE7REj89l~o{LcK5(c?&7`?zkw(-vQu^; zm&o4#Qn1@(4HVf>MzyHqrFMCM^wk1b1`vR6`57*FH>LiX&FFiw*VWcYleaf5dr85z z&;!?v+^9g#+HD%cj;B~^n>b`<#gQjHL=PKAKg03m)8Obl+GREdUZr&HO__C+n!)yJ zOnfAxu+IC?cEe-IzV28G<|MIYRyS%BBdLfu8LFfBdR%rWb$4%0q^q<}5aBfLs`04A z2b$9M5G#yhs5yu%TFpSL62)zr12-J@j+ILDYrPdwP}l#?Vs{b=cBz_`ZuNBW$-!8w zzgVHW(cUKlOGmMN{q< zpWVXcH!xq47X-c6K8VK$$X?jnI}VSU;OzOvfKng&`%qp8*IyO8SpX!ly0Ouvte2dW zM9e3?6$VJql&q0p{~s_LTW@}Qc;n0|2&8Gia7t7k$Q=vIY!(!nW4p+*3>fX&d( zEC-`g!e)r4kLoC0zwH|o=yE>;ZiIwXtOi%7TP8r7WaQH0&wcv$6UCY`CKiCgo5Ol$ zECiS>F4(HH)(i0q{fD{O62F{L4x?5pvNerIGgK;++UNhB(?R&Dx&4;!%k@PZ2IC4I z&0GY>m&g2fdLMb1fKH4NaC{_#?6O{7?Uc&kKABkWPcrRP@4AQ-CyNZiqwN9s*I9tT z%YMIRBhepY^DQ$o7e0N2d^!fvRM$UdFGTPn@l~qz{7Ow(YhOZE%>9}8??w9UMz%mX!Mcr;>EK8|G4_8 ztL2VhKsEUE4gvRO?jnN}IUX#`7l{xg(n#lF(#XALxDoyj{r^ABjsY&|**77;MEa3} zatL6+$$=I{IK%-H?n+eFf0aT`ALsxHap<18R?z<#O*I5aS3CAv1pe*c_5Vr`_-}6X z?W2h}!oZWzYW6ikJ9TdLA4oS41rQG$<|Cq5yqgr}@WuusQ&ZyU2Ltn&3d{c7p?Wum zt+D)Qu>XVCwat8O0>4E2kP$}6IL&+W5r6);X>z)Te=LRn&lH4*h5;e&55l+>`iNX0 zN)c%Q%u7Wm$?|+6dT(Wh`!+`|jR|N{s{wP-xjZ^LI@TS}>vK*FT#2yeR3I`@vIZ{J z7|rhQf80X+=SAuh zE*p-Gh`sr`D!>T6E7^9wb{r)8s}^X@%=Bj!An{5`y#FTq{QK_wCvPYmFgUukCJP|n zvYzlqpzD(-uKKhGF=|$}zc)zUB!LY5YMTi9Goy6N+ClQ4&*UG!H{$ShSI}>j)f)Pv z*iobE4cw?Nl|!4g9*7`5LZ2{X5}RKKy#Vw&InZ|CahKtIsvIZOMwB>Xhxpz0kDuum z{Ju{&0=n-J3%SR4Aw1AOR)wtU5ph(3n7dTsdvH0T{gB(>h3GN$ixvg;rGP4dz=K=TP5MnOC&*s`@ z3%I@KYT@mxu;{f18o#)(u(0%V*4*E>`*jDBfD!K6kO+3nN*Le3Mfyj;2{;;!%vET; zFM$fO`zJ7jkX`H?z*uXa@7Xq-skST#-d_&VoR2fU7CSgz>s?z8W{%w{ZPIZ+-CR;t z*}G}O7W|o;>Ml7^qW!K|vnqB}PEh;mY=`tTD!tp5j%@gIGWoiEkBjbeI5tdG;m>z#(0%#aA~rzKtk~iXthG z+K@dGtK=VQG#_DrKryDmjf>(h( zqA`izPf7W%j2EgU#gA|;xQYPo2?kJ!#@F?5J)ZlUlh8eIG);mL`bEZ3R+&jZTM&wb zve0kADDoGF_ot(BU8k;?dK>w)X;CeHXb>7H|KZ@*>K7NgWrK-v-yzeZHFf*7Qr|F% zX~G4r@&KpjrvulB1Li@&`+6MV_ zDtXPnZHo$-T{^Eb!u8P7={s-)iL7Kr0NxooC~zH*#zVIL+7Qb!B9I|*-(_dqp?k_O z`JabAS*guffL4}E;4bP{D+*D8WHPHoUNVQlZ=-{d>)CSS!nvFFUZm-(F(PAALKl}= z>#D0&XARF!YpBXh7Z)qxYYC>Qk!rf0Dyfito&-Vf#;x%L+r~?=bK>$e>11w&+^B6F z?5iE!`&w3jJ5?RM7`YSK^ScG!Xz z+JuaT#W79?EK3>DoBv8gjUpGg-eqrd=nNqg8<*jle<}6yk5lHhxU*_yLhHsc;Nv~p zOT$EvMwrMp!7ono#UHHL!s$nF!+W_JZQSaQ0o7|kDhvE8lBbA4DeyYUQ8W~-J=BxV z5ynEhix;9qDF9Qny}-m)?bDZ8iyBV|Au;|Z?e||BbPMstOy;JTv!vdTD6HZ{Sg0VM z4iWF;8MDCWyVP-lhjO1Q^rQ2~4##f}vMpy-kDHs|kv)5StKVC0v%~`@#GFS6%2vy4 z2_)bHd&XlvIwn}xcSl!fP@{2P;ht6jZN8p-Dg@URPWHv1OHQ|eY5xMdDa`&7vC5of zu5ZY*Go(MFX9{hbP4i^5^*WESnpdR*QjFM~+r6MJUGF=wyp)w~;sSL& zkTl#2K<9(>jh@lSYiL-|Q$ByqLP7KWDVCY~sMqFDx+0+3p;!3TBLc-#A(XdnnU{aE zbks#22UxIciG>mw$Ku$!?-W<{07%7bz`ZQO$EN@4s1#PQ zQD!Qq#EFc7fBvk;X@36x8h-!k`XrIdHnsk^=bhMdW}YhI0eBHGgp>OeQaEiyn#7D_g`;*?NERX z6|QxZIolF2^!cYS1s@beS-pK|3~R~?HaVG8Y_pNGst8X%*lwuOqZp516C~+zG*9X9 zz%pfcb9WF!H)@o~E;tKT7t*XY2-R{wh-UNLH~75LUF;mjm68=0e8)Bn;u2aPojxht zYnkiP^?aAc=YGd$>ZQ_`&hD~NR@y7La3SBQ+pw^CWwRw&1Iu?kip|8vgyF``UHf}% z?s8VXw~B3QIB$&PLb_R!TCAM4iFR3V6Nf^b8}K{;+MpPj@2wendDC`5;p+84Q=IPY zwwei30(ssy7Ux~{OQ7kdWNx~FPPN=fkO&1JgE;H&@2-ze((bhe_zpfKythsSvk3jV zhZ?IO6al~Q)vesLScgIWNx) zrc2Lor60y1fIWzm)jeP@&X~gM#D>pk5Y2~{=S=dT$ z%B-=CGRS3D@JYELo`+^<*ZQY6zFqi~aQowh`(uzWhh7-_eXt=`tP&QHfwMKkEPbgb zTboq{B993%*Y`v!r3e36|FMq^wSE7VxK!7CQqoC~txW9k4@o!E8HQS^tg1833#~@KNk*KzKRzqo_Tj0{!p50 zydT&&YIvWVkWmh(FbpmZm)I^dVKj^P5B-;AX~V>v2;38qGVL%Vj0OYKrhxK@z5s4V z;8L9i6qQ#uL{TUaDE2`64EX{4i7IadZcmkJ5DO4$K|#2ZS_W9TPv|VLm#Iz~m?1Ga zL6rk3_;h?C&|XbK`Re(-pMUu~6-wGL5J9sVM^W6}A)0!#<8iY6k5yxnmx?8`l{xN2dnKFS4E#3Q651aJdesGuWpp)gRw9*tA(`gne)>U>!Y z1cx+wP-Xpf0I*Zu$1vj(6zkH3>lA5kv+7(_`Tp(W&mZVkIj&pd{mYv5v> zk5vv(7y8-%d#>Ss`eq5E+)5*+-KXG%@!D*bxp1Sh6`V;*wK!T<7K-eioLOO}81eIQ z-P4Zbj^4E>3_0c5sy=Ye?-jg4##&h-V-*!ap|2f#gZ1kg_@8UtQ~I>3$NEGnh5ZV$ z!oJp%nCpzGtCqlDRt4f6p}Z&;blj9L18#Nl_RgcIAkzp}-ydi|OA`fzs@-GxN^A2j za86={%XG~u8|ZvZuDr?;LDNM5c%+%KfP2oqmyrgx{Lr4R^~NRfKbVIZg0Y4!y9Dos zcQu>58dlfV2nnyd07?}K_*H)*XIZYH;ilNh=(9S4n;Rr5WYR7a&%( z9cb|SWr0F(|KVcM&we?Gwg*q{gT8^i^)vvK?tK$TVsI)O&mzoJfA|qH?GVyKDB<&( z-@W`{gk--Kqt*l5W!43*j$0$28t<-lsy)TYJpUPKMa6d_Y z7^?e5plp9?MIjq2R4aY;LH!8rMVKSUhmbG7b`_!2Nh3=H*8gy{*&H4t6y15bKJtR@ zVq}$h^(IrSyX?S=vQ#?d4L@)BE9Ky!iL$H|EadCGSr=}6P=NvVY?T!a+UYhu_xw5v zj4CA^yi%X#SMIW#H{$2{cc94GXa9AOSaN#8-h8!w&wH@4PAX8fU&cT*b5~nGF($0o zDX9nPcGUp?v9d4saW|FB+W*DgTSsN}?fb%tAfVD9DlMg?bT`tabW3-4HBd zUKvDI+KWwIV{*;?p)B)nu+=QRM04J}efy(ALq;Y#O7_DCwBt<4MCLKw@HS6lOo;wu z4vPc`q0{AB>{>6wK$JgHUWC~!zlu|f^gh@>NN;34S1=KcSV(Thy`OC(4i=6?#__lC zSOC~`C_Wc$Lc`^!n%n7^m37XOq4K=rWXtK}0Uii|GG)SXCl`s~1tI(qLfkh80!~-I zze}DzITs(6hmYW}oNUO5c%M4&rVGjyE0dbAKWVR{QB4I4ZA@dRhuoZ)hfiSr*M~J-HaF%i(p7DYHVys%VcOn!h*^e>q$l{Ntd=acw%z)I8I)%i4R4GPw=0 zto3|*r49a$u(9UeXli|u&GwUp(PG^vr_O$CcIm`g5iz`aEUBXFYld7`8NHuD!M&(P z7ArrAVa-rwqbnZB8OP3v~zhs$BA=`>$W_A?~CX0j9G zVl`4)q6C(Lz7A}s{Sj!nX)&!I%M-5mC!1)?6l2k)=ahI7-cM+HsI%Meypc>`q`OUa zn15@KY^TsmGd=|BN*b{B0gEUu00tXzEt?(+5ok-Mf{uux@p`WoNBO$5M6XApq~#F` z=O<}J9P;6(_a6`iG+Dn?jTbgti6MhOB&Q`mY*<8idl+wu&o^D`~Vs_Fj78=OnSJQlu=~ZRAUgr=!pEM`%xGCq$wjtQm?8q+r(QW>zw6>YFGp-@A};4NZVb$d3W2Vfbp z0DQV{p9$QnaBX_&0(uY@EkBN6knw^+3ej}gWnySJ85UnLjfcDYGbO8_Lcpn9q~SzC z^0QZrzjQZ_0nWK|7(_bY&U?MOuQ0Q|096+Pe=Oq%IIIJ zh9ZdGeJVt+zO5^!U(&SbX~8ndHRI!NXC^PgAH$(ZIq;o5?_pTI8RCgfOm$?7sT!=d z6E{jqB-ZTLT$YQ;aZbEN^SMrVf-c=yN@<8Iir#szoAzwKHny1Vtcg#5;HVs@mo0+e zY**p+zGSKnh1@6fvwPb+*6PEaU*w}b zrNe1$a`hOy%?(eEh3#O#CmUIAl1Bm2uVUuaYca+!A}R+a0heVs+LAsh04M9EU;bE* z=X%h5)PZ9Ga+#M}KPUc%wlQ%#pTmB7&|4z&MYc*ILAyiL+Y0Q}f z0oQKy1CZhmn4_HYWh!2 z50dqzA+F&qF$CHt)GhAG3N;CQor!VVBkF(qZ-y}wdSPN1j@12_<-CKPs>@Q7seTxU z^8V7v+Ze47gn4k@o$0cf%2<%oWqjQkGe>bcVcB4nCu0^Xz(4@Icy0gg`yg=DmGiJ( z_ja8=6D6AT6)Uafcueew$ev{c5kUKxXf@0g$F&gEpAFrZH`AOPwC1#Rc##Q$AdM+OBU zt@{yjE#4N1*rH{nf@JWltknj{Q!a6_D#E1@BpE^PBElkmnHo|2KHd_xpzcUab~g>c zmP^d+!#UhTbxy}kZXyu~Vo`&Ad%jPT&$lDTwkuPQ|2F@QA^zb6*LR+vuot+${J|xQ zv!~JXIBWb>`G1A!_!iLwrZXZqI4M8WJZ}+-Q(5dkbR_RBA@s1FJ|eCs`A-Y}Upf4R z2?MB-_~j?Jf1`ME1R%`QtCzcPPoN#1(M4*YkDuCO@=89M>%05rtG{mo`nQw+&40am zNd^fS<}wujv2gvD{v%@p^HNg_1`B^jAWwX94F45lPWQD;^*dHMf-|sYXHF~R|B%|v zLp<>Pm*&p@%|uH`41LeOWI}{m50UE0*fx{83767KN``-t2;f|U{T2iM zC}Q7o-5j$IFQt|omSB~wlcsi86V3o55(UsqV?p+$uk+Id@KfVVyCx=-y?2lsO3QRq zkoi|dfsrQ0Ez=wZIO%8hS;QPR30%%uw%tW7z%~I`gc3oB)i|H;&fM3XM$Q=f;x^`Iv4_vW&T*pQKVGc5Na; z9;cAK>0hvaZb*lGXa3I(?fOQeKwhcOW9m4U&`-*X<9p}-T%G>vBPn!?)be11`9HsQ zYb!_xU5xsPrfKq@`*G16U4ecpeo;~V0vo&(TDJ`LXlEq@8v`7|w)DZy3GkUL<@?4W z|GCJ7#xWjrZ^q_y)qe)KUS-S{qWGmhsA3H5Ef1Y^Z6bOr7T%XuKI-yOT?cY)HC*)@ z4nUvG`)#cI#&=W;X#-*tWhi;I%twC)(_x6OhwkQD_asY<3>qwV=lb{G2KybL%?glbsw9Z=1b(Q7sMk;$T`IOdA7a} z7wB2l9VcC;5_(?$hKQiM+v}d<01Dl=QKqw1A3zU6?y%riX}dekBvr^&3^vbo+9~eT?T&gY zH1SU~S=?jp$Y_}&PS(=UR=EcSv3+~rHwfq{a zRywS~yXZ;(jKB2*YHE*a7jC8SJ#MVtzIl_A-MJ0Rp6a-a=mhYdXQkZr*S`>Tq{0D) zt9&+VGcXwgQeJ^c{?0*1ll;)h9t3#{h2c}GtA#OtsL^HUa zO&OGEw+9(d_!wyI&)3V^53D$yq~70ja{AQRZ7cM}OmqQaqSv9q<$RAGH2Ab%RR*$_ z_u(rsav6ZyVKK*Tk?%V^%@duU&%P!ntMA4JUuV?!1Hpwv1l)Ky>qFJSK>vB5rXpir zdw6e`KY?1_Sb^t~-ymqVAl^49BTUsh7x~a<%hNaJ|O+zlTtdsJri(y@|`DIoVH$$`*IcIZyQP7 zUGMi4X|?uV%~snWk<%t0=uMXy4Od!d7V7nX<*g?yay~VV6!a4$A`xF?^MfTJai~@W z3Lcl-jtvn{po{^K-taeDfCGtw-N5t!jamZP_QsNhc2(6nR^CVbmV>) z{=f$onuIOUQ*LNPV_+uwK|B3(&OJPA6UHh+B!t`N97Qf>|$ zFe7>k17EH(>QmKfHXs8{&8_8(tY(=*;lx-qIK6<E!ikBgjHjKB96x2kx(YBJLFu^ocP|n-siv8){fj_*gpv zM*Kc5=4b{^SYi?^Z3V}|I@C@-!Ex7qh{7;*Y{FD*53bn8F-)uly+LUIckm7xb)6L< z$B=VI)cWL4f(Se51-hZv}0i4!n2h0N`Ouv9X>61qVwG@?TU+IN5C=SSrg)O26KG%nJjV;3}B8Mi)pI5Iu&w1Ed; z@6bh+NF$LDU=aZAoumxwyrsuRvcnUKPdDd{_e>NA)n14R3eO&@x;5mJqmK@3|kX zcD+3&Ru7_YXn{3{!Bv@isMDu0_L%@b03f`Wx@${IU*K6+K}n{KBJx09-7!wbLQ5;X z%w$3;fze3YJ${kMcw3=1e60TW)u)JZA6*nR6j$Nw0U&|vE!V=edxSA59F`sL73XuC zraAcGYJDwso(HIGb>Dp+P@TvC?*00k7EUKGepli`M>0N!RV+brcTnBL!}f(Mq9$K3 z9R(SnGYV+%*)C52%ed&^GbgyAK+XTolT9@cMum9E<{iUUfYyeodB`!*b~2mJR6i9X zGdc)FMmyf@c9m$)30)f9*RKWdKkq)N4uTxCc%CBd$O^|GP}MRB(eq6dsQ1l` ze@4bLp5OcO1SO{-B4-I{Hz(lTrzX$1O(2c=)S=XR8(cMhbK}~qx;hjT6ePjl;tlsy z!tw;PU%fZPVVv49SytX8WF#Df>7Ri7hwOJNLbW?oH*`1@QeYy~2??NkAMqXivg*V$ zIC*_HI`^*9XoW0tvIwAmiF!rsn`u50nuXB zf#@!~<%&#)0ANrIpY>ivJ}B~OMMKF)TJb^QR=PUb)0wvqQ<85(E&a;tM(ml(NU2zW z>FRLk$}7N+(LgC8$e-jwkFUP-fBFohDrFvKmu(>O0PyfHELH<7^ZH|VjW65`n-f=@vacTpBIj~8@2nOi=bNP9-lTE#LG;YA4SBt@L(e4nOOU=z@6ckTT?;*eFQvN<=R22qc>$a8P z?i2dMdB@w($=j%2I3jb*=(hm)eG8GBI;zg+duAOuah~1C0oBmc7n<~VpEw3{46C2> zSfVsVqNNScG78i&SVG|vp8mP$0a=1D?V9&jiji$ztA0Saq!vC(=XmfblC#+M_ebI| zY|j}xD0po@Iu~x6zVKdMVCQuN&OwPa2O8f5;D+_CLVjB<%+WSn zv;^ef{kmNtxDOwZ;^>nb6N!4~wHk^=sqpLKa3u>6TgC+{9)N~OtlSc)oICNGPgwLa zz{)jFvRZ#B5mUrxrB;YQNcRw_OJ!Q2P{YhWXVqJbQG{R68_Qj~(tJ*(J@-^3PN~W= zosID^KHVu0dd7WiJ;zV%?KCKd&z|CO=M*XU zqj=%~3lYQ7pD2*xL+f$p{k~_eAmXOyvnS-=YMQxInooh87kPy!G`oKVm&IFujBsWR zsDM~r>V&tpsu4u63b*>aav40}%SaMA-<#{J?%(c%;e9n~4twGAZ+7zTzObOm)i_4i zzD635=D96f%n@A{q(IYSG9^Sxa^(J|v3T0BBJ?Z-&}5BFc<60ox@1`{`R~ww)X`h9Z(Ut&vKHBq&1*6 zIp8e#ffcVqO~|yiqOOkf*tN-FbuCsiCi4q>H-iy>W8NPfB|g`5TLZB&jMbsYV}TO5 z2()m*$G0LvI&itMIj9PwzJPKe%*Su%gn=48*#h39T?#O~x*_y>-PFA}d>g~+m_=u$skgl(FC|hqr{o%|fE)pi zuZvXb=wYr5;oFB6!31p9-)5aQlF1GqU89k2je&+oC)))GXUlO}9FF@~5}&*harNBQ zeHB6Zh4VFn*KPC*2387wMFSloJ2Qc@gI(#rK068N8cz6RJS1R}5k{Jxqv?6x_|EjAeJXvBqG zN&%F@&zQ8=PR~nKQI;FvkzVO$)0qQ)ExNR!v5KwDm+js038J5Xs=ZgXJo7@dz13X-B|^(~}?H`E1_Bq7ro{`QP9(-tgmy_$&dUy1#=k0~JFXBlNN+W%GGXXWmqec+)Sl~un zXqo!pzsZtq<$-5EsbxKD)rklbS3lhr2nFvUWCaj@LE4YCp|bj zgJeSOCZirFL&6ykdjRCbXBtu^M)C@R53IoqmiVFvcw*vN8i{|bfX0Q}d9MNOM{o6g!Sy&)l*EdMrJ!ajS7{B&v;p7+ zy{EH4tm0R&TM|+W;p56Ln)R)^qW0e({_x;zgv{ z1xM5PL)AThUF5cnnX#N%`m<`)@Adi}7cN=`DZIeB7mqfC?{IpDaY48vVDX%Uw+t+l zQarb|vUiW@odpateB1*PFuf8VxE%B#yd)XSqCaTDzjkTEB27ywpSY~qgPP*(i)c}9 zuRzeRlF?egfb^Rk>f{Dx&}5z{BUk8xCez2^eItmWAgFI&rJ4j?`KrAzc@{WM&azB^ z24JQB5vu^Y+iiAup(_~XlNN%umHRSzNDO-2@F&@L0SLly6m};0)8^)1 ztAb>Z^H_=fAaLJOh1iGV0BBet-O}#><4=UL)aHY}eP89r%vY!nS1q)^Z4@QDge3#F z6IWM`#7Ek+gKT`iS; z(@+8Tbo$&ldkDISgzA<(z#_g&+3Yex@gvhlKX1*!$2M&u5&9ScD_-p~O=N()4;#rJ zb4Fl9SrgJaW^ls6tBfhAdCx44sZ#*Qs}4ex(CeAy2}-r#ipzMvzZQWj{x06L0N}v9 zCVf361Qyh5w5bC0A}ls1@g*2vjb(nP1bi=zCRygff13UJ>C=0_{$s>JpP|IkDG&&K zIMBZVLip<%-v{Qne1RAZi6+%Wir3>-uPC^@*;jm74|(_=h(0yk+d_BzeMFw>sy!d~ zr83_{pganKPiyxZOkfU}_T(lacXuhC0h&5x5{m#5QjZe;dePiEeRZ~L;;-p?=m(fd z%VS_^kd9RIGI)f}eFreK7cUE&^xFDfcfl;Q5;j`x0uB|uh%aMgOi>f>4T?{Z$L;Av z;-f%0Y3|E!P@8@6afAS&jE3qBBck%bLqtqN$4fTkvi-*Uc@l{@jBR1C^OhYMw0Co^ z2H``&O9hNYM8wfYFd7RcoG9Uoi~w(rQsc|jSvpj2V}Kh-lDNVlL(2y#7ftYft^T<- zn}K)6O8vxa_gPMU@UwPO2Yd+|KA6y=^qUeF9ws`R#D&j+E z4Sr2p>0pqd$;lcf6QZsBA`WAW#@BE=m48b^Q=!l+;uGqI~)N0*M8Kg4FiZE&sdtHeK!}UMhYM`o%uY|;JIxjKk*iNz6(nf;(3s) zh&OHG$%9T^1dmkmA`j{0BJ0~m4GV@#q92!3Y+?6^*?`47HTGC_s+-F^zVO;-)xuQC zMyK<;oc`OLnd3873Z7Z#Thpt)+H+yMJ%fdm%FYj$OXJ%HBNp@ZJh?VJ*JpJA*hHz+ z;7N2p-n;#fd_7gUv1=vgUUhmkb&}|?AGS3+(7x-u@-OcT^ZLOYw8VHNFtb-w}%u47zWTzu^d$6k1TKGl@Pp!;y~ zw@d&$KP@pHqtLs9Fyw(_tQTs{cizLeyL~9_E#F3&_DMKYuSvpp! zb1a^tH|q3i#jv{QtUh>J*L2*whl zjCaV^0gVEm$d-Sj7KN~^^8ng(-RvgtWb+Cv#FVT-36)XfF6YtuyX;#ZN!&_XIv^KM zSI-j8I`P9KJ~6QKV6IcjxcK!Uet2FiCT|+3K&a>o4s9xvO zG4rdGZ=-IN07dLq@&eAn=@emi8~bt_U*|jhS+ucr$Dy)78~}fVg;z>@4S$hV;$NH2FHC<|dw!S%yY<|X z4yQ>gnMKZ*nl0Hxb<}2gz^tQi;B8kY*raZ|meec6$T-b>*&1hy*7_rV`>QG*yZ4{K zj9?Aw+wROTZWTqEK^jC7k|Luq>&wN<@86sf&*&{j(T1zua1*kpqdy7vg!hWoaPA@r z*#%5BeqOVzqlt6IgH=K#MGdE{B)f6tl!teG*G2xusC-yNgcwn6UUp`{smY#S$%QUe z79?0-kH9Vk!$jg4gbb*FLV$B9>kp);{~Si5s2E*mlNX4EsU%{1hG^gekHS2b1LMbF zN(W}5s8}+ZO(*v2nzH2n?Qhh7{TcPT;`=n1#&_EK!C4dr*$YXk9g!Jbgw(4QnL`3d z=c3LIZ z&mByz@H$j^7#}i;rsoOCjOlkpiA|X;5--PLb#wljghE(IiG^7XEI&(<78(_7N`$QdoeLF zda69<-qCoL}FYunPkGR;Vf~z!uqoavzZFgEOEcb&!(k= z&UT1Y-3T zP!vYF0aON&B_;I7!ewNPB$0=z7(o{+n35Qz2cH>SJ!wt<@fiMv|Hu#^*lvw>!4?TG zyU%4tOmA^FyQPb3MCfntRC+8JI+Yv3*= zjVV>V*mM`sBNtJh07@m(w+mz*u2)!Z=V~PTxwWexf$hp!MzqOV_vh5;Ghhfl!{g|k z?c%|EeOqJuPUp1oD~65ID66zP)4Gh&W?j`w5T>HxC>~RwOgo3GZh*($`>WRD)4dz5 zB#4Ywwr&U7=)lZJW(U%pI9m(q&s2aywhw7&|9yHu-#p(thHfCM=dXF zm%E4`b__M^I3f(UB%K?u& zVgdhWUqN6Asa&AJs}zs9T8G$lfzM=71B_lF0}ps3V8oowfGjRNFoYy92c2}50NI=d zcWP>C{jqL~ZzAfzKc<4eR0_IFz{=dh@C^qhaC~_E)iv&vdJXI7cIz}n^?893@koOz z34z;bsG7%mF&SF3>^rzfk>R*T*YY&YdUshWE$y?6EV9dV`H|O`JBe`mH_fpNZRlj# zy*D)L_vT*+OqgTD^0NKBVMFfOj|L|)MAHjDCw5mPe0#D(U6{jYUFdO@CE;pPva>>> zcSB1mk*`rdJsSqRNz8QL8U~a6z{fRCLQBY|HCtt64MFQVz~@^6z+3s5AlQ(qxmH3LbeG!#^RfMtQ6d(6>mL9|5JdQaZ@9}3TjK@!@pqovE->R9W=N-U zlcDMM#?g6iGyw*H91_igBY_)q`QbjYJs4I#nA4;ODONV?y-$PKh}hko(R6Z9&SA35DAEbF zP`OkH&=!d?k1E395N3W|`TTn`14#Zk&>^)11#BXrSmU-pMjOX|9r1p{b%CKgBF~gu zuY+YSD=vN7_mIsA^~ZMmBqFbQ1zxuT`%A9W>#M1vbccYoiKh)L&*AO&sU)A|&Ntl8 zol{DbBf{27rB<@8qveYAs#J|8(b`kU0#S|GLIG*^`PGos`8wHK?KGQuHmPXDO~>of z!cfDNI^05Po^H0Ho6|xM>YOiwIYR};#2VPaTL>ZuyjbwC_nF;By69!USV1gnl9VHXu9dd-&WC z!h`~2Z~t?SL@R#1rZ@`@4-cy}%xQEJu<#f@K};KdG!4XmeM4nNvTVPFFIkBoSz6XI_(U)B?|`j)9uO{^hGz;9aOMsE|N$RRzE;Og!@N^f)sk| zB-(Y?Jl;$k(~Z(92_@(G-FLDfm<>3o<>ml)F5T6JS{Rww0_A-w(jXh+T+x0qwyt@q-e(c z=;Yhm64UQeJJr{hENi_2{-Ti`PDjy^b%!7&qT7F%diYIVIxc;YL%B)rx(F8sUppkY zVSHPNwi(vu2Nr@hbfhZ~iz31eO8hN+uMD7@-5?`cJnEs11lXfH*92BpthOG_(12v%c!4$!!=Z&!f-Eee2<2;R~4ujVQ4 zf#9cy;Qm6maBUKIo|nh{=3>%m@Bt!@2tJ=>SzpV%Ph~F(4s)+u;-C{rYT9MJ7x$d$ zDD4^eJ0$YlM@283uC$=N1d*u@B3t~YaRAjuNFnYjb2?t{s$6iV1iIjG2r$(B36`#x zfN_lP#Eqx~*dZyvvFQiM+%)!poKv45CEZbB>E#&!wO=}IzM#_<+=&koV>mDYu{+)* zO!*VBF_1X|j^y^=G)H({i9N7L;sGGg%B*lk8xqSbAqcwDpH*QeqoAnl?1g;Gny!`a z>{Djm%*bh0ZBI=|mUz+RPgNReAC#o)x7_0Td#2h)G;VSaw(9kdbW;&Gr)7`znzC_bbPWO$QL``J>_|&=I4pF%8 z1H|B8uk5jOaj|6DkWTlRGs4(cs1`X_0&rIR8EA5H5a^$Ld6Tx|&*jexL!?U@4p*`- z?f`#(?$F}ErmimUmUlhAJ9B`avSqVHwQxS>vOQkE#MXGdJ6$`_r(QN1Oh0cuD{($J z(qlF`<6_!H;V@*>Sz)HN(XXU{{v zHxPtHnbd{~{#tBji}oYKfDm}pAiW9zE-JTUPVFT?V^52!TxYMKCt4eNQZ{ z0}>KaK|{m*+u9MJM+!b}@rT85e!L~~7=g=XyijxB{q8vR+K7pXiF>3EScmtauoQ=J zWrItDsJ2&EJF$cO1Nev)a;6QYv#!T|8at%56hZRdh=E0ba9_D*ZzX`mNM4eEErh`P z00!0b0W9HzhyUV#dB4Dt1WW=c-jIOsQ&Ot%{rfxo@5Cz3m~H67lH6_7G`eas`j4ZP zBRgws!Z=#g6;YA$-Hl4IF_IW{f@(_%B`#F8)Z+2D4=YCIKxooztjDDb`9ptthMZZ; zf!6nYe)QtF?E1d7>-T&1wNGLEi>Ne@BT`w)-_4g7dD$-Kq|X=Z6sj~fo4rAxkb69K zZjYT}pL9LHzej;Ucvg#DxpR>5EL0MgZFKB8b2cThFIFI>5c1YWb_o7bO=CnBug;Ox z9is3h6}rnA%f<0|%3()KQUd>apz!UH*6sG(=Xuv4mrp~bdky5Nb{^_iNvaLzK8dW_ z0rC5Cb~-wlwO~!X=}-%Fgdz{VcNF$DPdif4HGzz<8?{^Gt1$Ny;?y5nK+vOMoBpt; zJ1w+1R5J93J(FRE7pPa56Z15^6q6K4V!~gvbb}eNQ@a9jTlUt6;3jRV&Qf9*FxG=$ zcd4;^bXVKneqbdwW&u3O_r3viwlamXYGoKqtXtjPhFU9n>}b=n$DQwp5oENXe(z7(x;o!mlcF4@=-xV*4NjbGxB240 zbGLInhZWoKlQ3p;_c@hIe=zCIx0ck{r#O453q|dzQZKoB>$gXB=Fl*NYQyT*FcUxK zV;49#R~m#6>~5#S74wJf&AGa`^W_wMYCmqE{@}YVazJ?Ppv?PX}Ol4{6|9nQ;TL zJLX?STimI+#y<@jHCEx$bnNY5H!Nsr=l)}-8YZF57 zQME-h+OolPTP>qF_GxNya#pxjMrqy0HpG8*2KuMx#;XZD?kglw7qc7O8&F^JJv4gk zu}3XWAR-zVZO}okCUwIKf?8vyRc}h zzNe^eU!QDj@>c|>%$Ypp_t!9Qtw`QO3FG|TStef@_K0kWPd%2NYFZv; z_4T3S-hwQpL!Gk?(3&{_BfNZRXa_onp}_G(!xCW5hXR>-w3sW&H*%BnV&Vh_Cf^auvugY_gT)xT>PE%>3oFxqJQry&upMCp z`+&dR1DZsIhZa+6A-JQB;XkyZu8-jF=iQb*vs~t*u?*bi;mB|D*l%65kXeb6BI_GD zZsQo#n5&yS!C9%T;krJnHTUb=SrL9_wQ%29Td%~g?H8#pVMYG@%l^Fe_n8KlLd}`- z?Pks1aZy=5PAxqhzRgeCh^J;V<(<2;r30sL1DO0zT;!GLY+7E>#ueG2e*g?RrSwdA-nPQFKZ+@hh>-lT{W6z(M|9|o+~bq@L^?PBFmm?nL%*lk zHK3NN0bRgm+54gOwd7j+tGmHQcADB9dRmgNp07`S6ay5f`g^MTv_W-|X0oD(Z3?|} zKr!n)=rGN*x^rzC-Wq zE|Nd4+}$kQ-;Yjh#s62U5b#~gD8QuNoqX>xE==l>c=67aSMxk&M01YUS&|PnJp@BQ zqpLT~EK%n%iY<1MV_6?Z$Y1Y8vnu^#Cy_?2i(270j%$=g~zq3g$hn!Ylfx?N)L!3-FZ%< zvUzp#w$9$qg+^tsW}C(VqT%jdyMiRIq!QB?iA*NrRUCU&t%)EuLDf|#AP0fpr(4CU z84kM&dNMXYPEoZ9O_5^`=!9{tx1$4#X_5;VLKRE=mkj9?=A-Wqy(Ul}A|jv6hV$~j z=g$QqzZSsr{(73X^D&l2eXBD{nQV{C{Fvec3lo!5x^J5y9-es2HfgKibCq7d|2dQY z%Oz-<074R-NkU?+;Sbg7yEMxs^2+;mw}aWp*}{F7UeO1K_1*!?9(R@&bmDD${4t1n zKCHT%yp`$U)cpKD(yklW<}O6CzPB`I3wS5L))9i38SEV-n(6QCCAdPVOrkFYi`n-qD~S=ajff&x;ip~d-TdiZ zB0=qBC|EQ~t6Z8H_Gq8RvL6>aUDJ?Ti5O6Id!~huYrSO958+7$eEz_TbPPn|`Ll}3 zYS6J(gSf)W(0lSEOYea)!Vj%z!njKfCt0*kR?X5LSF+exw7zE})9B2uKqqtVt}DG9 z3gFITbCB64)d+hJ^*HX;zW70^I4L-ZuaaS(caMHjrjDUfUN&#MwdXkpZMy|p7_$U0 z1`O<0O!bgs#V9!z1YT^ ztnG=y)cuJ%KqB{txvev#9+tOJ)M!kNmG4iN_ap=4B&9qR_2vg=ViTz(LR~h(CR@g{ zch2|cJ5wV(*klrMizjtez%4un)yFO}HgY7E6vABzFJC7$f;{I8$4uN}x$ei_fnr}f zQ2zQ%{{Y5}ENx-6@n(O(I@aS}Q3LaEQMPAxMmk});c)2boX5@4xl}w!0&?BXZrDru zCbvEH4d6>Y|*%CF}|mTRwgm`}sMwzCY=Ti4s)9x%krT+SG;1wCrm~X45(FEjK)!b+Bj{;X2#N z%}~m4F$=x^+{iH^+IFb&HU@9Gi82F2UD3?Uth6Wc-4cjww3)tuX#6_XGbnyF8K|z> zj|~N2LdS!c=|T4D1X#oytu-%Nu)!Ct_Cd{h+UR?=$HixlgQ=G!-Gdz)^Yth}@(m!g z?fJ%Ajy9kfS%>Nh7cXI}#pn)T7uhJ4h9WxHqnynf5AgLXi>^Cfh)Ns+y;xN+P0cTZ zgmAtn;!@=(q9@179xkotLi@hb~_|-7xM4k6&iD zBv6k}B(I@(2lgL{p^^XfCu7l$ck!T@c=lBDMr0=%d2^&k{oJodCB&_iFk$i|Di0$w zo+bL*QEYl~rI&O?skQ5}u@_diAJ07b&)@=4GuFW4JNJX(yYmOX@g6B9vM_uFR9#$4 zpX;&DbMxbkbsKg1ZuYNv?ln-E+oFRvaQAHmdwluV12lyS?(?TcW<`Z1tT^oVPbc(? zZ(C;uY-`W<9J;eVsG^z&44C{(^0>Q{5>|>jCA=B42_2i5sD&EAy{)`Ldr3*jyIFcp zUz4$dygVC#1$?n5PZ3u-1Xhm)0uVudfRmsnz#mYQvk$@np4N&POD8aPna$TtA-#B) z_U)2cR6F3!XCT6>*yI3}`&@T4W&Jz;U5$eVfLVzFR z_ig5RcAGevMjQ|l@c_xs_r_JAJ;~O%0)pr*Ti^FEKMWDCLI3F4BgU%lhHkN0l<|zc zTOxBqP2tdgYBT3mv!L+TPTIfz6+M8_BOXjpN-MX5%Xo$)aLs}(sN|WI59Y*Cu9`7+ zyrJP*VTbQN*5RJM7)~*qJ0_X73dMq|1#}h!PDMsNb|sHtlD$0X*`fHDJ&-D3EgnN< z1%PEoI#a!IBgr=(lGM`uedWZqB1% zuhICW`Kyljf*zdt@aE|}Sps+GY7W=gH;N0Tdt*{6^6x(Zb=w{Yda`wxvy0sZVf_%g zF$Gp)i=jhaY3#p}?RzCZkq?)Z010w$G8qsx5DAZOsB&a}L4*ced`&DjTZ-P;$K?QtHK= zvN>fBfin_ z##AGn-9zQ>X~qR+eY>}3-Av@rN!2&xQ=-RaItt`dzcP8CpWqk!GLN{<#EmW0)XhLc z=Mois37`cpy{J<`_f%viJMdN%hnaF7-b*hlHq|H@kb-{SpmP2U3p#yzuedDw&z%fY z#TY0g43rfgIZ9VVtj~1hOI3Wl`wHF3TG+Sh_CI%W9DSLRbt!?1kcJ`Wm5!H5STdMvOps#Z0xZg)Ej)-(mr@s}C%+P?bZn#4C@_T>FkmZNYY;%6 zp9pw9Z1GJ7IhZ^ym$NcLkoY|L+|6t^`~g2q3B;u9W(bGj?*W^p6rYlFQJ@JVg}sY0oaz7hMKx7X zbCbcel`_Tg*BjH;ry#kfbaeA57FL7a2R5vcO`G>SH*DYd6 z6RKJ`O8c4Z6*_()$}B>nb!^A@HI6ectCe_7nWFQ5eyHvaN^^TzS=r#daI4^Eds|=o zOf!zk8a#7)S|m4r=)R)Bea+!(q$fKT{yc9`n|$ZIX4gm=MCyFLxi@d$G9-mF?{U7k zVm@&9n0%>Cp5>l2{)@vDS=KWdUJ~jD8UQoUtm3?@K&>UVcP8o~xm-+0Wc3 zMBfc&fEUE-+~WSsVh`*|X+4b%4B)-2FS*pu^EfEJ>f76e6;VNy6ai_Z1SC{K zItA&HX48T+(k)$5l7ggy^rmwIN{JvP-O|13u5T{>$8*nn&-;yg^t<1C&mH3(jKN-O z@44ohbFR5&{C>~#{LCt9SHKNN&EQ%qjZO^?RjU>KVIW7%wP;suP$1@tl)OErJGmtV zU1lEOyt7>=+W}l4r5(4A068XAOb)DSGO1K>)GN+F)loc)I#FX%q3g)CgDO;DN21_) zC#1h;GmIN+27QziKm4#vEwB76tN^-QS<`bFwxDMqp+D%#5eh?LDcV&qP~tXc+5Ov~ zfW4}70;WZ3N%dcU@cM50uKiG1;B40~;ueq_W(ol3=3vko1ub$yHu8e)4V`&KhsL3b zI+IFV*Q;YDKagNg-QwI7WVolv6z&HKtWCCJQK4U?Htrxbr%eRz(7r-b!wwRx-q}*e z0q5JBD%H=y`4823o<|_Zg_Sb<6;OkGc-HqfPzFTn-(a9cqKs7>sKM{59Ko>@;9RqF zF+Le;W40c|a=(7jQGaBZ1yq8t(B=MfE5%!Ed`I6UKbd1Q82I0`KHv1Js44I}b!Au} z;c0ZAKj!2zN_FyRytChzQ)W3G_yu|0vvQD~)M>c(u=1Vda{QDBk`E)2=A&gL9 zM248N&3!+X$GskvX!3rku^iEQ=X?9g^%=Qc?8+&B;xQ1MW4vZ!mzg|z&kE*oIEMrp z*l9Jus5K6>!|xL3c|@KT)F59$c1(k>qo%4YJ0XC5bh^1!v3j7EX(Mp989olgCYB&r)VbMaTf}AyXI)QM|CzE;L3dAg_s=ly zWqQY9qqwTeSFYW*7z1GrKvWr|?T9!J(6dj;&<9?%W}Ca%uLT!q3vFheR_HZe1M4&s zmYg5`=EKF!>v4k~yZr7)(RN-y=fMs@^lc4V-dwl=q9ml$9iX5YlW=}MTmPFx(-8H) zo*Y(3?mUZgzS_ghHwvJM%hZ^zKw#^{ZTP~3hf+FG>w4_I<5IUYOc3|&)5q65x{Cc6 zw9(6ruuIu1JKpaiDB&zG(%cUt)I`W7GJh<+9=zX^Axa%A$62AT>~gyqUj0LiEsLJ^ z5Pk<1+zwM}Hfl(e+zvYOQH_>3dV=_IC@MaMPxICT6K==fqu?YK^f9H8F-gwuHcWwP zX<D`ClF={)PM zq9bU=T~>Ao+)r^&KOTWwZQBl*k4?8=k}lq1@|?h+4HGa=Ust{9={AeLKRrNN;HuYn z8gb@69-CBi8h^$FtL?PU%@<--pjPAyh1I$o${=#`O++?<;P-fec1>QcSS>KPvzT)o zEq>5^ll>vzp=>Wbg!vV~{O;8Qt~voXaK9|?tgHeZoif+0Z*=28lVF{b%IwU_W1DzC zgT?)u@wbQ#Au%&ZN#Hy=VsQpi4X^J6wxBA=sB4F-%nRUmmO$eJ31AggA*2 zFpNCncqK2uX||=dKbX;VST~ay=D3i8U0*aI_fswayW3WZ*yeb5MHLZnJ8-k>!dJ+*4ECi8V_%u4`ZXty2Gn|d`N#uq5zmWh zAMw){`J%o7tn1CLJ8M3W$x?^qWA{RFKAVmM7!>VN#KgP4L!xc#*9RS+wR?Q{PB4;N z=eQ2jOwd@_<~?-%ER^PZ(?m9TQau;On#LlBdkM|5E18cE`@VUj%=+G3Yam$fbCB^> zoGo%EnMr%tUs;qwC^H6U+zlC89BI&4lO$j(Nz~XRT$lWcv-_!XmE5O=p8M0i&Z(GC zZp6=+P{H!yF`bRJrxc^+NERofdl42K`viz$oK}v+V+`0Znqgwc=~cKnYH`Q>nYStj z%J2(Y&o7L`UgjlL^}lsF<~m$aRYjjXa$4V0HXGjhrS>J<2sT%_00P1vFb<|O^oVM) zd5LBp_g&jxo0)JMlV*vJ=-5xPPhaURVeWkFPAVbj$__|C)B7SX&_%i^Ew0605~>d) zdtgy!=0I(@2zI*ye85>ZPA72q?9;99ko@&=P5m*CBhde^hLCReZJQeWFvc6ifPK_` zr9NTpL+NP@Kuy(DJOXpsCms92cVN|1DZ1}9?upCRX>!o|#{jbJ#+Tu?v z-pS-@dH`Xsm_CQiy$lU6H%a{PB|cBh%ihOO9y!s!Mr~ z@nHWIkAMEmlm}iJ({m~_qNyC@F6u%$oPxI>+_Yai;QUglYHyu%4DM*nqQe{HMCm(^ zxu&xoXR~JH$4^6L3gjAit9im+ zd#D`)@TDU#&)!EKmYSHFz1^n<+@Nn5cj}J%;UhaQz*;yVauJ@5MZ(p6PFPX=3=%9i zPOaPe9vZG5O?Z5cCr4notF={lKZJtHngF_sZR$bXvcMELrEOsnl>kcRe>~-nMDl5qZ<pTSUNU3=5O7PC@*;})9D_MG)nAx43asae{EA(9ahEEEKXa9 zMzt8Z2bRzI`0fkOLWRhiuRcnMT5weP_K;f}=eCea5-OV;WrH)VZ(xl{qH+1myt1Z_ zQ;FZ2WHZsx&B;oz(JJ!wkPKpck5|x9LV9$Q$Zw7Jlx~=rrodYEZPKg#0Dh6DdNpJG zQbnqgT2t>8&0`H@7atkkE^nWr%MDeWzOi6fHaT#Z)&(|Qmbq(td5qANu5L!^#21+{ z0fSgYbY;VnxvkNJq;6wiHmCsWjZNsvSzx5-xcKU8etQiZO6C03U{53kZ0jv-8P(%( zRk=PX7WrKi;lIoIZ_u8MA3&to3=+zw5s6^NH*D|m%%}r8yNwB@hC07k z20%I5Z-l8X#{e(+z+jI6WO(KQqI^o8GPMsJI=TSW&`hQRC=c%^PM)+tjywK)zSkhR z7Z#FUT4Qt`$Qg{kpxNl*>jEgB9t9kv;e>1r7<|{T$W|v#k&ed@eHjU&bJ^;gOcRWQ zNI%mSr@-KB4;g_VhA6?O*5`XSC)0wMA9L=E*d?*ySsyeJsD=5L8Afo5pn|5SA*+5 z-p7yp;l3y$%;|r`)ax6at5IRpekUcNX+B5Jq0DlqP)|08KVL~ld{Qm{r!L`d0!o41 ze_i4z>l2W_UDc6OlEc-Dks&cjdZ!>d3%R)|1d z5Wl1c+~mkBhzsY$_&)j^ZZ6dM*RJN1MwE!9m`M}CKBuY?tI+*-)Q5@ppB8evt z{9QrdsBtXM0}+aX%H>Q&UT^G9#_U~!-t&d=;q9aTbI%7_)!`Iu=b}} z`5GY`-sC7At+X}d(Sleqi9k+yw9G6n|nHE8{Q!ipabPad<1}o=W+`Bu3soe{&I6oo2=uqT z65W{vToe3!fdkq=UO+ZGYG+!bEyC0(E%5RmJV+NxR{oQaxyZgGMV^u$kg{8wV z-qV{lDNds#oF8>+*9Scs!jl~nj=NT@>}CAS@fcm0Q2~hlzvKCX`Idu zQ%)^c$nP!ZHjP&&<*EQYs{$^1z8yV$Cf-361>Q|U|wMR`=gu_nET`+wWo&1 zD`oYcxXiu*#r#7d)IvUr%+Q)027>3PF7(^A-KM0`QS6DIr+@GRcyQer@P_+u(Izr% zrPXy;jNJYcciI*mtG=$lehT@CYlUqWe+s@Z5mhz8-uZ6M%0Rbuy5LNUv{A}eg^(OZ} zdaDI#P$U>ZwB?*$oI5nwfw6^hT{JXwg}7nrDNV%Oc_uow#Vd>IG0zct9Nako?CTqJ zPr6cf0flzThu`U=iGo8AP$WMnl>%(J@-F5yEV^-C+T`wl7Ow^Z+WW8gceCZ3?b{(B z&Uso66JD{At&vXMcX(26=5GV%!8j*RgyOE>g!L@>!HVdQ%A@N$OEDbZ)nc%_&$<*v zQ4&;x)f$*{m1{UAO;6=3!c3fjDB5_sSjhWgF}JO#6zMSubNwJ|clXmTO!xJ4hLAu> z%}J6NI3{o5bf4`5`uhkUa4uQ``U(}jGlul(*po*NW66ybV(93C-R zT$v5p0{u?INP!j+C9uyd#4rH2r#%$5p4?Wy)D->WPs2Bs$))u4jr-8H(;=Bks$ca-xhJsBW^SSh8 z?-*c&&WYhg(aBlvHJ)dTWHs>`#YJ#Qe?!OQSuK>TWXcT(t_fdN#vWlchxLgyz$9C6 z*IORF#D3lWp&jkyX{TfDgW;P}ea2i*LF4^L zr}e*vUjMl(^%F#Cu!l4Qh}lh*pAoUa>OWS#LKCD2dyRXI7Z}uq9PL09-C-$&&qKqF!d!V6LR5(37$O^zrwtwZmt+w;)l2m+&Jvv zJ?!BQ`Cwa%5XJca1o3ck#|32*-7$*nP6N{FXA!Lzp)Zv(gTmcr?^%L4qIIX-Z8AS^S+{eJ9aDf=Ddwdp)3LoctIpgji4dR%F2=HJkZpeDIv5Bd;+pzk}{QWe04xxc)!5~3dj;>uM+G>P4%-ml*>gWXK(4$HVsD1gc1 z_gm29kyn8qIgf|K+BMJ8VKfZNzvYo7i8A7D}oiDuOa4KR59+P9 z$86?9tQ8)oE|7Jm1~TD7fV_Qsz_!P@4^&X+OC(#vP_c0p=}UYE>VfJie+i@AIYJC28|X>gjR6at@3Y$1j6mJlGc-g4Cg04~U{wR(xoeuQC}FYD^o<8-?(gJGe>KbRbcr^R&m7N9 zl?rdLlT>0kk#CUveDc{g)mGs8Dqr4U(OpU4(4*F1o$@wqCxo1k(8d4?EXm>x)Kf_8sEsD41k7oskdSr zOgxiE`mBHQ|8)Os`+DJ0msjU0N#JN>%BiOCp^9>?ZUb|F(+!kL&vOqJ6G9;2>(8K`$jnFgRK+4f$u}{zCIF!bm+62X+@48bg(Q{5U?`~fI<8+OKe03=rTM> zqaj9h5AOU?V~)su_85vk`iaHcco}n~q|N;^^mm;4NZ|U&`C2OC4tVU8ei8V!hxW`p zB48d_0X)n^es>oI>@>D<5?me-=Bv>-p^$&L`|hy(3usyB6zPYGzpSL75~N+@aA?oH z4%Qep(hGV_+@JoahjO5dL>UJ#4UzFJ`yA6wUAjI&z)RqSxk0k{rt9+B0z6Z3*Bjjj zM4JgBmgb_=^DTbrE5EBNU*CkqP~JI`BSV;$cbhg=zJAp#KR7?C);f%Q_K#50YqYxc zsTQugSy)JQ-zy}gjxootp}&10V>e9tc~b^3_!M$hH{Al`B&?4jaBq4Y_!az8g$xql zH*pwfomdZWpO%)(ni-1dv?wRmo4RZUUj6-*RJS_1iB2+U^|jF%@eUTCpSa-xy#TKl z1Q$Fp7uoatf4l^99y6HpZa)%S6f#Nor;dnqrecWi)(E0_D`_$+iZ>8f>hJLM9$6(xAvE)?kg zRptWtF9c>S5~x1gbvXm7L{%V~a3ylQ=6E!1A_TF#R- z{53E#oO_w~LqOE|6%f$@B4kW5TBx%G^mm3Iv^ITqZ#ym>Nxl-h^I4!Y_orMx<0WcE z6B83_FceychK8Q`e1-KP4wrxj#lj;0yik-ilGA1tY{7nK1hJq=m1((+W=D%Mf)QUz zF7LWe9XnKEl@et=4RpmHz!E&%)Lm}?4@5*|9oM1#Ks<0Wj@G%?5Rg$9<#SMjWv~OZ zb%dAc_paohrsKMq^jf&W%*F+#DL2K8rxYyUSewur*eaPil3W3L>*7dR?m0GaRekDB z+m_6h-MO62qU?UOV}mOdKk{%Tq|@zBI!OXvw}0Em)7K-clYsF^unH&-OIdLE{sNf4 zwgvph;5zk9yB&PB{GHSfap>0UmG?qB6@j4i%r#7s3n-Q!uFKl4Mxw-16r$4&`yaKq zj!DI7?6{hNArGSs)ya*c_%Dh@A1YYJX9czfY`|^vqxB)iZ#DK`55`MYjABVOYxhb! zuJq1wfBPCBkQ$Rh0EN@CXRK-IGJ6{J0JBg5gc?)C1WzHOKcwez?)4%`JY*iwfvV|S z2_Kt8q`;jaTp$$JU=-{GQ_+Bb<4No_v0(Bna>EOAtv;RvougB?H(1 zkU*%zCRmAxyi{GsLOa|8aR`|z0nBAv9sjW>(Eo$>qpH0+QiO>E%NnJJAl7X@a`P+s z{@?>wu+Oja{PFRb?BE7S2ek*_(Fmm>%%G^9vU(`9x>wCaI9m4&OD*GNG= zzheW){p}_$mU($L_@a9#)ecBzVH>L^E|o38yssN^bo+atlS0ukSb#W-u8__48BhqQ z&6)zq$DPhkC z)g1YgfGC(k*Avjp0sOx#YTfoyCaKQFzy^LEOMQ?7Ur33$d56pyuGN1_s ztTODztL<&UV}#amJA1GJbctCJlsnoL(@p@kxP-R9*LB7LJ}KvB%B!~f9_E0Zjb!mW z3?blZjh$!s(Ab?O;;v~%%?jEVo$@gRy(!_8c)S6IWoK8=i_-~o;;jV}#YB1nirFL( zsUj#5QL^0MM&DX!rVup0+>OcN!!u}&E4J7H`wX25w`UZo=C>J^2?#nO z1BLYc=&fovf*2sgCiPH+RS-3GU$;HusLw;bEDJ4ahX`w7_cr>pK}He+9dyyYPv7t0 zKBPxp@QEpLf;;hNAg4hyMcaElB4KLl$Ux!E%uR*&cL#Zk`t9j$1Bz8mYCE5&4|X`8 z9AhzC_qfJ_6+vqLzL)1ul^&oL@q9-g`^NA0_Mf}Lg2bn5-R!v*VklRGu18-MCO#-5 zI%_7-*&#lpVU~A555g}UhP|UQ7eNd#HhMQ*ZF`J85+{@Y+#j{wF!lRYC`59X1{)X@ z>TNuMtAYP!{`1T$?X9}rkXVgVO{|dco}oCgRR5<+{FIZIjYXnl#WXw&)nvO;l@vCw zQ3>0q)69A(F9(>v3~gaoJ;f!+S_fjYyJbyivFgI7xO^rB1v(43eDtn+}Nr{_2pa zSr&qrE1Fjr%R=b+YCezR0vUi;kL{NmIJ`*oFN50Upv%OW(mF1{`jyP<4p7#nfw}jl zrNB?u;IXIx;DV0$+5c9sJh{}B-hwGHZnfkB>^_`d;VuRxFL!0KFuEwohOqjF_g-4ELGb!A zI|!_gIXE{i3t{kY+1QJ^K|g^aTtXDHc@Y4bLhC@316D?;(e_(+hYJEh&2Bkd0wf=B z2+zouh6oFBFN%0eegJfS%vaaqn2YKa$83dv1mprnP@)H!Q0Wrk-}jlI($y(!uBYX> z^}-m5OSpmm_&d}v17s-~c`_H7>BF^bFEVTQe4BKU+1pUwqtTU;+Lfq+`yBPd$8 z!p|Uffip00Uz8wVWy=zxIY@;tu5erA^xd_9m1{IyvZx$<>S&RyS}%GNjGx;?RCWb7 zZGXM_-9^-_4bf$KEqDs1wCxXp2a#x)Y9ioq=0*03)B6RrfWV=9Rp{ z{MB8?Z9i00+GJKXACB`x&wdDfxJ~m}9#Kq384z3`Rg|S;Yflf00du|U=4;f;%Rp4A zjU%bL@mjTG2BRdQ5^5h?}i?7&|w#bi#rZ}18w>(xI?72%$9H%SH zZztiFwu@_^Ha4Gf)W4rt`=YNSMP%dk^{$|D0lFq;vmV!iv1W6sczVuZ%)(EJk^%1T z3b!SFaVNU0)X>(8gD+r z+ngriK#dlm3)$sh)T!U@Mv+=LugtH5=)$|hG*BcJM?f}ly&PQ7zbX--dlTj~ zb#)(vTjw^4=(e2+yccHOR!*4+S+NHnTn-MB?}HD~q!uz^=FEwUkw7w(M+9Nq9#t=OHgzuAUp<13S0N(dN@b)US zX+8j;|Js$~W(5KG-KabGG?-L4$=51NAb7hC4(X0Lz|Z$=#-D?8iy6}A0RQi(OrlT^ z@c%sA@E;2REg!R&GRp$c@pK(<<$Ay;$T%sVr-ShM<;?3g09}tbjWHDf=W*5iaA%O- z`S6=5Cpb4QQ$iks^SSa#6<3H)kiXYf)(HUqS`MRT7a0s%x(-5wgF#r;0K@=zHEfkj z3UVw5T!(6?0+s^mYoG$gfD3T~&XeNm71uxo;;Na~ouLw1)#ndasO4E&cx1Fd9E6M$ zy2B#S012u~XVCRaT3&;MbD)Se9R0eBe5w#|yvEKW(aq1%}T z7pXwat6HeW+wYP0K@C2^+dTUKL%}mV!x;@Q9y0Pftztn7cqA9AV}kSHylBsIaDK>F z+My2`*fOzfE5BGRk2z&-PyGf+uvRhx;_im@uT`j#VL(m5J1}b544PmqwyowN)MkTH z4rU<1@PpYBDsa9qlW&&`&hzv8GG`>Cp*o;XzT^jW=$%)2#RO8QKJ@3(0V!;3w-$Rd zB`w~@>ExDW>ojwm=hg$wEUS-$@dNP^Lfh0#^5rNNNF5+NQo(M}a#JV3fkwK!YQA*> zBF4%K5iiqx?j8d4y;*3bY_$#|SnRPq%cCsvLB%eAr{fXxWyAJ@FK(vy z>Wg12CP+J_9&Tkni7gUJJTa2ezl<(w=m~Jz{ItUyuBPqv^O9;*JwCxFi+B4ztr9|e z`A2%*qF37vC=xY{5f6Ntfz8>?{BDU;>C?gd89?LR_Vxo?mE*GBOfZMvqo&6>77MxK zJPMRfH)bG}2Vu0s-m)B>VO~3JT(!mO*q>+7spd=cwe zlO4k^E#|&u72JWC2^rfz6^(1({cBCunD}Q<=z}NM@cX!%znK5!5;`M1Ddr-qEOgnIgn5XYkc`!$RuIQsH z(!gJBHBxbF5Ae`!fq!vNosjybe5AE7*v>wi2p*1U)dw3d%fqcXB($d@2MF7DIHhr` zl`~BAUlPD3Ide}3Xz}g|2LW$+8wTh1xPjcE zT}5)YlrNVt5iCy3v!^6ZRU2;xZTX834>O<4opt7zmAE6V=(!|~5>+5OZd2sd4<+)!zlftcK;T^d8N@;jc0UujJqUAEAF>?M;JiYS&>N0)qXl%8FG@w~uLQom9jC9L6?-PFGr!}ntQ`c-kEZ&!@L#J+(Z1x{ko?g5>L%>L zyN|n{8AD~;*__G@-ws@XKjwb$6>JrrX<#9KES8c0BJqD|;-bf}2gVhvJ(*LydpI=B z8E9ZY+Ol`5-TdMHDRj5m62B}eczy`+@yU)O$>lZlzB6ugN^VmD-LKkw$rrA`)O^(7 zlr_Ju!-2Z%tpW4V$2__Eh3-hwk`J}{J8Fa8uQ^UuLIOoEDOx88D+6XjGu0Pg(?fVH zi$t*a%W^Pwqth~U&@E&AALMEMuZUt~Taqcx)_r@oV;)xU+1@5Nww0ti0L&Ra^Qoub z^m(pE&YKwU+uPf8dq51o@Ik-hsC_yRKky3g^@jr2cZw!6K0nxX71TrM4t0IAUFY!* zie}NfX>?Eb-QB#-a_;(JXk8=_o}pe2)*%+p&q^A=y67yqmk%&GKXnz1nLrCcE!53q zu%?(XeqINy)KvN3&XWNqXkxg-m^%0!Ss94w05y(SIAt86YGyyH@OJu! zyT9#LAZ6!^MI{Ty)h;&Njul=fzp+Hu5P^1Xfr%Tnzg#!U7?+RDvFd`$?k42FwAc4X zFV1#HqR~DS%pJ&fp_~bmY&P=_%Buf(wunGhZw2(jB7QXm`a27wnT~1y->} zottsW5@#P}3xKW8Hubrl=TIkOSk^do%Cpm+UFRgaL#*RQ2bhiM8ttL52Ey4+>&1o+> z!FymKdkgwb#T}7Y`;k_9HjH0RVy{6=uX49?9xy$vi?%55qtrBGsCc5?;!h?0q3hPfo_AsvxGQr>Lb&Ukp2uQ0#zlY8D#*jr{WF; z5(&TO)`W`q5SOA+^r^0Nz+b>FI~0`i>-8GK`GEfloU_`41=`xcZ@My3TZ1R)6CYl2nBJ`kiC9dbvyGNM9PSojuD`dzh#qhOL34CEtEhEksW_UPxlBG+f3b*2l;(3OenNvBWbldaI_iXg`jwTgVCq67<~SSl;l zMLHn(C?O%itppcME zSks>42M`$mlId1YxiaFTBa^ZGNLu0&WtunYO5CkIEhzyCFs2;f3?r_z(Xttr zA{5(#voon*L~MKs9>L{T<3PjXHPJFNH8XS14=}X@w;$3d6G{0qYzufWBNfK3`v6j+ z2OuRo$mw70F`RN`?l804gE2{xHH}~#GzYK52}MsMV2h6@u$%FQ_Iwbp0kR4QOt{M+ zRF&!@Nx*8@UI1_)N6m8c3umtYIlF1J&L{KRxawK0apNX+K7To4|8vCJ|LeEWey{fy zip1ee^lT`9;r6obLZih*HY(m!F1?-zaO=4b<~+|G1Mnp6$ul6Hy95a`n3|f70l9@n zn!0>~RG@@YSNm$N?ZpbDz$``x-Y%T$036J!Em zTbB4h2E_&zB|XhMk5yNwBLc(N_dgT;$+MWFPIY&6SQHQI&-A~te|h~1w4Qasv_mck z+6j0*splzeR*5TT%9%}I?e#fX9(yRLMzW{d=L{wv`x+q7RQ0Hnt1-!GI_OMZ(_O{9 zpf)>CV7alSU+#AyOHemT9O6>J_w3sL60ah8qVeisIY0>7J(}XvO zOif|6AEz1vY5>^27MXA5p8Iti#0mh^qX?=aYfF=Ro#Hk)xBg_}9gz_fcwrv!CR^s# zbtD+`q1FJ%xv{Rxc&-Ony9@{0In}8*yq{qRan^lNatF}xX}csd-rIa8g>`jx?*xSb zYIaTOIgO-(|@w7k|&#y9#^+}&E>9?4H#SN&`(l@1q(Qz!cF-Mhik`T5Sr`|FP2{b*)m2TpoiZu5ep z{Con5^c#sEI0=6(kbdXY_1eNIB!4uJ%r~m`Y`n@-;r(Fvpqw1quetH)jp`HY)Ng~N zr=LJqb+KM%HHz@X21qZlO;ONU2;_%&L$f6|AlaJzonE;b5dP_~&g1mx@C_blv0b27 z&l0$r6Hn1dHdJg-m)|A#XP83^s*NqiMEc>lL0UH^@4psL%6wi|LXR~=i`t2+OSwPQ z;z7vVTEQTK29X(u0v6deVLdVLASlYEB~U!6GXtp73k@s?rqH=se%lb7s z{CYVeA4IGypXL4Ca`@gV~E@N8^tWm&U)NSKen5Nzn@p#Db# zo_kX( zsQzS*1sOz_ypgqs9A5#f#5^jF#6-g`+O~pbJ@-GN(UekmmlV{jsA$eOSWM3B@Aw^` zn(u|>6Kf3?lsP1*op<1$F|JN2Z5|)wh_VZ51+l2FUP9;>Q9Cp+;>i5-p+6$w?jB92 znJM?r`g?tLYs)QRgvnfRk}D7xG^CFpc_U)zOC9Pyfg=`$ zsY-J*rXAy%->wJu6(}l(gFkD~CcA|0-p)&8K>(S(X8F2x%|6oB-DTI@CZ?tw(U;Cr zAaZMMx>O8W z-7=pVMQ>G4fJGR@U!AnldDAxu*AZ}RyZ@;YOz zW!uQU%&lk3YwP-NPGW*LF0ZAe3#Q&fd+)NUfIM^F)?QEM8=tor)rOPVd&t4Wo4nl#*mLTtH43yG>mIWw zb5EvVp((*wr!WZfLhlk$T)Tcf19*XgC?LuDug1XE&MYEYk-3zWpC1Fs+p{f_$g@jo zY9`t_I7s?2sIm>rzl%UI%X|^{S!+9#1LJ>$n~b>hJI8`tUINFBgRKDq$1E<%a0Sfr za!K2EoOi?WbVeB&Q&B@AD8H)0BbE9gcho5PN7UiNnj(c49r4VbCvA~UXorZU``~3u z4AA|;g3T^?yJv8aF67RGxBG|%z5-V;1pb(qKo-k>e(ljtc9{+JMzN$I?^IVJk7EIz zk}lK0o>Y!ieYnN%$CmvopsJT4ij&4p=(_W#v4duKRoDlYg7wc+Dj??ekkIB7K z$?nTH7WVxE0+KGXD%m?)luXdUN>d%F_kSME2i#K>zqO!Na22Uf}L&imP{x zTIIKvciGYVN~+EGqksIK&yn?vc?h4Sv#A7)tXM~-Y*A~b7;IRco82GrpC8l4s0JlZ zvM}C{Tt3pc&%zkh-yYi9M^sKcgeZaM7)y_=rqNdC%Ws`@hyh0tzuU_i7{n34{z>K4ohO$*GII_ zSA1jwHVaP=-z;`#CkKq}$G~s=ZN|!zPHrzAab8^4;Zk+?;yTr{#(|(M3wM=( z{75X<=&r0fx29=0(cI`!-rmAo4JpXmilK>}Xj2Sic@J)fGK(LM?i{Jg?d24k#do`( zpiAncM*+i$Y z{%kAw;=0*)hqb|5ME!A-Sx?Vgwc{ZT*g~7bLUC}zc5$Y&1SplMC#-H1x-L^#D+)&k z+=hQkl1>n|86QF5oPif;95f=L;J%4yA}57z6IOpTWGo6YAg=kk`r_$fIe%`6CL8C6 zbhoFwb1kk13>SCac>Zegq7n8Zso{jsb+XCtCUfai6xzbnJ2UM+dytLdrmD- zafrja%;*2gO`S#6;3Bs+&mr!M+zQ#Z^vJ`zHote+u_%~nru4rXXfyJJ8bqrFyHw?( zK}11p6!Ri|4M+hc};&(4D9l;3RzzU`{D;D^(L z#^y!Yd}{0Y>vJw_F#So%9Q&a51A?U5kq0-*51Go(q6wraVM8pp&{J z^AI-=4=Fr7o$7wSoi@Eg6tdy?s|TxJhYzW3(H*y;@VvrZLhP&Lk|Ds!p-&hUrT_TJbRQIPH$>A8RUD zxLCV_uix9>+2N9McCO+9mTftWUb3N^mN79gLECSl?sR7vYz6OQf_~S058LYT{$HOv zOU3m$3~g7Zp9Rw7FfdM!&vJ>6S|#>AW%VN0#by<}Z`yDbjY!`5(Lf7(OZpI(q#v5~cMZQ9oSizIl<&%^SQM%8soQ)! z+MU@P&7Pq>8qqIuNk0uZ+y>`*Gjwg1;CBU&M~9o>{N4Oq4Ny+yo;)koo(%tLWy~X> zGXuO?+jDftY7bry9wc`anH3NkUD^FwolG7+Nw(rrl>nqtlXC69)`US{tXIz@ffRfb zyRX=xEEY^piwX?D7X$XM_`0AkM&!nJArDz+*PxRCS$z_V=Wqdl4kfK2+`^$k9quK* zbO%r+=^45lCECgGvCjN$&lEi5yf37nL(t;F8;3XXC+w&TEDbiH$%31mreV z_CNtPRlc2?fC7xU5{?Fg1g_?}bCwV|38_LhDG7bymKz44lXeeOzjxe#vfuaO@OP>JU)9NLp#St>^I$D# zlMD&qOWba=O?wyTp;Y6E;GRc;--@8~Z$b0Xs^AVvd{LuYAj2r){_Jzhx9jlK%HZzk>YIt}gR^o1)2nb%@QerLdsDvJLG?E8_&Q9C*vZ1ra@C zI=?=Lw-dI!(F3VdUw^?$Mj|cgyalhJMZ2A{KGO3=r#U)0(z+RFl!IS*iQN3??94+b zFOYm!l%VOgcl^)EAE`2SB-v-!akZZU+xO&_D}(B2;Z9B8LJ-q9ft(4)|23Z@lRCrS z-)B7%4GdYZEp`@v+7h90c@ z44!UyNl@ts2ldrlxr+!63CYOI`+i@LrS4$5PY=(*VpHwftw4!n=Xs(h)<0iIM@LI2 zDMblp2RkXq*%ckoZt=Cvli|ea(3+kf@cWF+;)~LZJ%vq~d%LtU21-_jA{vHKcOz7> zW2}jt{Yuc6Dd7|hQyg12jPd$JU_#0b7PI)Bv{?ZN?=0WZR>t=-@>tGS70@dpRk;#V z$+m8!<67Q>TXP8U{qM^75CO#4NcpWx7XZ(I=ZCz=h-@#&uJCzYz3!BjdAWO(o%n2`0-qbsi&uB3IKcAQZR>r;=h zsD99GX8$kfHgi|;0KB^W%+do({0=^T)ha>j>&trLVE5Y2p`fYBGxa!P%hwD>T0bn<&Y2r%0wYH-o7eYJoY1Jzt`w&QU6|t#|UA6>UVU@H*uz? z58qSoL=w#62hrt6A$~-N-fd;XmD8Ye&Y%o>9HB~`Tq?UIDT4cw0xrS(GHEu(pSq6~ zG)`J%iAY5AW$z#mBbV+i{r&qmhF=6j2So|cXuz66TMOHog1A+gKCt}^i|F9>urmED z{<<~=%T};B#e@m+zv$D`)98_HdM7p|b8^?Wc~T-G5!h0m19Ft5Yi)=|o3Hj|QY%dV z7z6A3)%t9C?6{=3L{pnc)jb~HV@6jM!e@UULF;u84DIc+-!nptzMWKUTDsl*@Tuk7 zCL3z!{d=epvdzJh9GZ1z2fo%JTpNiRnkM;PUSDtZ$U@KC!)v!I6p_&($(-!R1`S4AP>jLg=L&C4f`=Xbu z5^6W*g`WAD^$nD-+`r8sLiyMB@pu1wpSyIFuK8hz?T=e*JbBa2e_h_1% z71dIW=N@zM;B&qSxPf)6#v0=W#z);9#Cw4k>B#2&cY#t@9x&0z_kAbuvbleI>&67p zEdF7O8!Eeo2@=NHa0kekdg58i;=;p&7ap7Pw)kLAdSYZ zwPAbDjH0qKz3mGQ$#=rzUoR1&RR<9wnhK7Pl9~C&2{?i1&C;+`-V-47{6pc+^ z20r|FTnno^sU`pR#=rXgiv;>WM+_1^GL(bQLuO7+Ts?ah2YLZ3=915z1)b?Kz17b$ zeJ(B3Bg)ao<^LO|BZ=3)66-!hbKCw@@oY4xQ%OIFs7F8OTVN#rvtPf{hFvO_>gbug zf~_Dd9W;r4P#e+Sa1*cUW42jFFlof*WsW|Nz3cU)cTk$}GT-=pM#=taZLt;>hPkw~ zWFw4@C-dfJr9-kM*|n8@vzb)Y7;02Gs`4=c$MzeM9}Q({pnfDc>%xtk_Nm zf@R>+>gw&j)6-MMob1+|oScsc#F$ZHp)_7OrrDns*c`=?@5J}!&6|>+lHC(~_Cyu9eQZ*jeJQCRN$X?Yn?$wn)m zRqqHj(8tUf&D>b2ZU-U{(NZ6)i-m)4gp5^pnU7OejJr=(4kRr{4KnG_=I+)hgq5X4 z=m>0dN268cm5RbV`eTshMv=)nZXOGk&gQ-I=ph~ZlW^k)o?9z5ujXAF{RkwK416@L z7V2I&?+h=zD(4`ex)}B(XkSlW7w_|(#5fqI*czF=Y=F@B54vrgJ&k6U$l4%!i{t8a zpgAfo2U+@cLqEYiv_LY7KtW;$w0qLGz1U^wy~;C4MYNTbsX;(*S!%CUToX-ybS(k` z0=kw&oq@milixdFeTQ1@;$kG<^$qN6!w%n!?o{7BJjSY1%^V!~INo-ctJ-!;RhwDo z3@NkK7n}d=l-zZJ{9C%S?d(j-aXQKKv@c5<%zW!iRSu_q%qNXUsK{)pc&GgpodQ0;JKl6A!=zi9a)DypY?qPKmFS`K^4Nsad^2VSj zj>@M!%@#DnfI@Yxg}T zj$96Z3Y?VSJ!R5ll{-7)^Q4N$n4ELrkdrm|;yX^aoR+3{{_4j_E3(kx@CWtzwlU|o zV83mnm1Os4dv4l0d%H8=hAge7BGw|3=iX@6?F^E~R6R1TwEY-*Yd2_#PHd3$fsc>K zfT7Gqkt4)Wko(>R^|q59>JL4Um3*fYXtdH4dg*92*M!VO-eA)PqusmpMMPXY08dcO zA1$}%x(zBSrqiL>hgNO}+YU*!9 zg}k!G(p|k;_?VnwNoJDon?fmSRrivb)%D!tJnr)|q+`+x=%&wI-gbA>%~v}_sm7`A3Z_t7r3H>_Ge;&F$epxdXOT8=eK=esy(+eCWV zKmE+BA8boP>4!`%CweC;%#g@juXt|yqP(|fJdaag!XKHmDJL%~TSxB? zK4ctJG>bCw9a|QWjd-z?&XZ|HlEy6_yGxR~-D+}O+~Vs{9L%KeEp&M9Yl>W zdmcu|tP>booX|ZO0qe^cLMSoM3N@(XXtvsJ@yfsDov%&Cl8`IxSvl?sH$g zAHI4JIdD~@?L08+eWBu=7^!)Dl^xLyiQdbpU*POP@ItSsr0A-}_`b=4 zqr1Ccb5j4d8I9?xr9BEZsJ->wVTL-QyEi}pltd)Ntau-!{-{%c2wp^}J7}aPM9-Xu#d>h2k-Q&ITHH>f9o3jVi zEfVX^rB`JiGVJ>KS+C85BG~g#ifenh!n;n#VUTyW-kVYAftcpDk}WuGd3gp;i%ZTX z8gK$p-)cva#wI<#1oIm?ngj?Z+J;rvRvWMAm{iZ{mdmYSY#b6yrv2X7$awfpbbeM+ z{)4OS?mgJkK5*RIRsk!OK2d;9vD4S^V5a=LX2j%jxGQaa(jC>&(NuSnIHRUtmL=afr=AcirM$4R=&CjwL+N2l--A4ujAWSp51@4#-Th(4# zvMIX+#Bg9hS@g2r%rJCBXDmBbG{C3)HQh8(D@Gq6IW(n*P?Xl!*;#r2P)a%JL`1?O zzRpGUmga!Zs@4SUSTvS`da@X;GT?v(I%GVO7xcF$xTf{C)xzT9R&YMc0+7B3 zNLeKFm?~zz*|CHlNJxGL)P@)avXviMwm2WZM4=|nO~M-|M&mAO8wuS z*|{gV3QXc2P;VQB7w~hQtNhD%nrvH``nRGtKl=q&e}QiItj_%OfpqCy{&2`Q9d~Uh zTiVH|6mVcWcN(MFeQz7paEgNm-h>jJy^Rr2i>!|C8#KHxHcDteu&V1k_zo|N6_3MtH>|j3v~=)!K|lMdeNqnW zYbyCrt!prcJ>mkFH3Ys##;JMvIX@5&eTSx8g$T0*W&4us+W&679YozMT%vTtm^i(; z?tg;tDZJwTq~I(c(|hPt>em`2n*Zsl%$t1K9gZn@ z6W+QJ>rDrm5I9nEYk786fk?zGEP1XN6^Ibdgc&KhkTFZ{_8gH(;#w=-#sti^U$yY@3W7m{ecEM2u+fmlQ1 zmVl7_yJ5b~qlzX9DaGFvJ17r#&nw~tQC@$bp)l%p1(YHDj(dcJ@oeQ@6fT`Mk(KK+ z{9)gDIbfMH8%CZ9(u(5I-}N_uCqPvM>dRVnd_9UR2a8kt^RSt5YjZyE*SVJPH{G~$ zeLe1aSyWLZpZrmchcflsX=NyJyW_A``2(oKyQWmLihYgET)DFsol%SCxg$qNdW5!f zZ8 zu%rT*)Kle{3FK=ce#>SR#OEr(9>P{B%rktET4W8#@{A z;R@)5XC=o_)=bXXVnMpy(UkX>V%pg1DE>B+l% zU*2S#wi*C&O6j}GSv-!8SgePN{o7X@K=5frr@r%peHOzq;B2Xfit5)ReR^u_^$jS@ z4rsWMySux#Rwy(ETuT1Ovv-MeU91AaSa602hlN#7EwSW;nSDwzsl6(joFWJh7V7Gh zpjJy6^VMzYk+1*mC^3V_5-rtf?lEz`zKycB`x)eLaRLQa0;iyLv$4;zt4Y(`0^{{h z#W6&XM1yxYYQz=0G&}HhT=WzZRDVPSa|qtj*f<7lcF$m@rbg=p^EtSD372A(*ZiPm zcr|6WjVWPxLxP+GWdtd8qbII29tTh%6E0v?Eo!zmK!r=avj83Xr9NyVa z8K(GoHi;|Lb@9NkMkLXwwY99CT6sJn4WHeoOdZ0}RhC`+AgXD?;eC@ZlS}uNEZ-0k z`y5k5!+-wJsep3$#L#eE0$zHbOt41VYD2{Wh2+Fnnt2zA0)h3zS4YQ3?dUbVJ0dLj z=hG~N>JN!n@Lnnb&*McXIgAhwulipd(W>22pa+!sIQmw`l}WBCX{d=|DXXp!m2O0gO;5gvC|zVqxjPXg(6M%lKm2B=v@VOaaOWi^ zv9+VwQ;L(sU0=48MUIj{JpJDW^%LJ?=+PQE(`RvQU085lx z8T;o}gVTNdcJeAc1^o{Glb*@7*w^mzM+B(?b=5%JN0aIO`)Zl@FCap&+)&}$EhZtz zd)IrJidaCip<{z*jVjfv7w6P*@k;*v^B-D1vlqP43)x&WD%n?tPE)2b_Z#?ltkojI zxxaISn4{mp!=vbEKSkAf9g8^AbBpypQMl{N-RZk&c5N)FIdos-VL~4}m-)KsN<&?p zMfB6m%!=yji86}~#f^YZkk55&XJmiJxRyu-4`hx{ryBbz1AjyDWX%_k_`>^MM(-`? z;ie)LmEf5v2d74ZDcf$`Og(23&;5_**~oKjz|K`qw4p%3HKsl^-*TmCabED;N5~n| zN6=-n@NO5sBOcOviuuCGF7aWR3)a>G>m+Maq84L@+u>#+P`ikKktfAwH)nXS-f=>E zTJx3aDH6Nht?zIzzTUHNG^x9+-W*o?bvy(WVZ=>(;97bxn@B+-M&N+BhYacbo+{8u{pW_p@`S)b1& z$S;_3LdbsAF+Dw5+-R-9+Pi9zsr&(tl^DAR{voF2svk!lRXF)n0f1GY+eY5h) z#aTk52BV;v+$XtV`50zd`;C?U^dER(+fk_vQ&9IYB7HhS-r88Qzq>zj7_fnA@_LuE8AicIpeqcRLN!v&HCW&|-qOE(1$_$S6p4~}lGn3dM51ue z?&t`2XkR}s7~ zFjb{c89Yg`1SZ(jEpZA?FX+lPdllj>sh3-9>;A%X>sLK!vlbsi0r7arG2h!Z-C;N~ z4J@*Zl(QqkBnbV1(z~6o-!xH27td4WJFjeEoHyrO`2OWsTI}wZgWVr3q+aZH5g$al z-aWm%ZBOUd+?tUmWOqBgB)b=%Db=9d%1NRiycFmgMjK6s-K8UMWff$^UGAj6nG<_! z#;Cig$BDu5sR?}4-UmsZR}9W5FAO~?f{jEGby7i}Pl*z*mLFkFP4f&o{Kxs6Q% zr<{@F-L;*$l~o*&Ep4dX^S1wk{>aFPJ&^6v%);C}Ml1+p5WrWKiH(zlp9U%4ZzySM z?o~?y{3ePXz)Y|LS%e_I2HE-fABr!K(en8#rTD zF-Op=3_`5mgv5mL6awA52^Ag>rZ@Atkm1hNOdBUm!$9FxHvJnWv!GyvB&I{Sapvqc zF;CG(A78P1iwngL-R_t1j@fc!hEMT`K$D9JyPQPN4EbO9)%iec&rX>Vj8;$_l0Jj4MRy~wY*PTd8GL7uT^$7WZ!*ix*UbFgR^qMeiD(q zF>vAB8%?G+6S=U=QXGijt?GpP#ZsiMltXmhCagb0p3n~t!B1?Rtw9QF`YxjbnhK~i zoGRJiDdcd_MM=x1Iwn6A4R6b42JB$5x?@W+8)S31;;krnS)ngC9Jn53nDXb3GPpww zJ;Zb*wtG@7CQRjHiS4pRsQLQog~UK6Oj!6i-;94HymzZ?umMF1H$3H2+)_A^r-;~C z?1={5J%k$QOejQmf))8rIhg%c`fUE@B^k|jh0X5>vwMv@ftuWFg=f(7NHld5=F;GU#QWvXG5q3 z&s}-Uw$L<7kA;TDH>}Lzzni6lsE;3h?dZhE)X{Rjn+)>w>+LIBM1X{pjV1s2sN~Lw zp?5;O)Yg@RqR6#Jg!&U$oWjq>%V@cAWXLBG^{`|N=)d3y8hHL<%R(rZ`~8hjlXMmN zK!h0h{#ddaoao-ApsQIpjEk(!^jmw9yMF~q_z&~)s zmXj71n`~qrQL6C?Qc3A5brTbAs+`A5RtZv<8Y}$;^_F<8ta!#bC_|Dl=A_VntVfvx z@xmWbj3b2eQBWvOs%5b&MSed~g73k^;?Dfw!wrYzi6tbw`|S`LO90n`_8pF3=G9^% zGB(l|6#Cym%4%wHShAf#BP><^Ar!V&?JQ$98_9or9RgOVRa~DGFV`R)yRIf>H6?I3 zo=IM{{pn8?gj&Zt@gNVVnUF$tnl-)|y(SglAXa8}>%%+UklnX}0d7KXmZ7` z>piGGkn-Kf;R1HZvB;i8a5U&8sK8i!YwVim0;>|_qEGF*rU-}}z?B~Qm7Oem~?}+lwde{0hUe|r|Ioa(dZe(;;%paQ@;APGR=u{sA zxKAj!I85XRh&^cWsK8WMOOc53LUfM1bS;dwGVtLiH!g^ipZ{>ipX7em=x+x0{CB#$ zPt^r-wd*wn-@&tziIre=F1IzZJYL`+XIC}_Aput3XcLzzbH$VMs290e^dAW z@2(1$A*`gYpF!S@AdUe@+R9p5`{i;y2J0v~IS~tp*q;~CIdOHgt*p%c3p4$HSR$B3 z5JP3}o@60b%L?-wBKaa80QvLvQPvu)(x(R~u|HPtg%RS^gI$gu;efsauF1PU;6{F( z{XE$t-I2h8Scdn9pGeMN(*8qf^co%fArY)b#it%yosnq&K@31u*9VWR!ujlg1m7Rl z1M|Vq;t>cz*Je@&99sYoQtn||BmdZoXEbi)cmVi<-7M+Y z^&<;d#Z_LZWlK0ni`gv2A3u~8v-MeygT!7MFFe?W@EkH1C=A1~Z= zO4=^{=b=2}mLQKf$FL{WAl;wGjy2nc{6R~+a$Y1<@%;+wHF2D4^q9+eBs^Zf^d5P< z;W{BE(9vU0Diq~|!At;&LI%JhUHUcxnP({acnuL70)t{(o_js}PZpLX$xG_%fc3Dp8H zlF{0ajL<)K!Wx)am;LxQMb6Jn!X8^yxHK~UJDKzf?(QYQ*fDmBwtp#h=4QIUt;0ph%?10f^2YjO@RIo?crW zWRyN~7S-#Lmj?i%pwcgQQ3vn>;!w=<9bmt^PvOV%BZqNkdbR=VvyBWpKjwdJzc*=V z2PleBC$IKCAUo^Mu)>lf05v!*0r12MKnKhoL^%pPUT+4#E5?8W>Iad|B##GH9Q*kI zbi=I`_|yJ$F@0;K+YcNlJ=k=6L^Ve1G8zvaQ`V+sRGdB{3i<%#F$;9D=z2r?cvI&` zT$8r|qL9?5pxOa6NPqia=mmfp-FTkrV0TzEjOP*AQ?6 z-s$UQhrkVNlzoSe12@nFVXnt}L^50=1z(~86tyvHuA zKaxRdfhI=!?;6-1UzBxQkNybICk*W-Y3=c$HW;940PIndkpzl)eCiH8wh91wNptP% z34a7La5e;%!hlzQJrHvAh``_wy>I3ME^&b!YxKAui!<`B0=Pnf8+F4L&>;<1vC6}; z@jnq0al#$?nIIt=bZY7p^!tDMDK{g9`>VPqW~#ZI(M_wAfknd!ErNb#$PLA7Q{>cK z=<4ayr!V$cv7(AZ7|sLox(61zULim24amd7TnC7L!i}Mgl$W>(EEE-A>;Hvl{1pkk zJ=tvfO}zIsZNTiAB(6C?7b@=tOkQju)zRv>X%_(fX7<8_qT(&@p6CClj#DFBv%$!o z-1mdQ?@r$85VokI8KC^!kYNGm!&r;@#I37ggzlpz>@O10 zbIskv41~jGN@Ll!*@uQlwXx?EUjJh~=-iXaEbtbF-OnmW0{;+?lY#oK+;s<@;7Pnt zG+=iQj2xLV?63%BeQqrDk2e3U+w?!TEsF>j%yF1CjI$Oc_)lHtOu>Nlp&oyFW@h^V zLxq18`FS-}<_CgTucFJ#8E4CZC`^C^m<=pOuvJtLM-4-F>QPf==ehk}+1TmdI^q2E z|KFkcKVZxkysjvOija-+ZXH<8?G1$ObWAwQ&OuS!1zqr7zN8*~mQA8+n~epdIaf4M z)T#YTGzKW|@ThP1R{fxxN)X)1H!s}qqT*sgU_h4|xdmiTOei<(8p9BtEH5uJBK8>h zh75+IwqxV_6BlC78lzGx^F*uD#_U?0g>J_#$mkV`XIBi;B`bVka?N}3NLYOqENa_~ zlcu^&Zq2^Qz54z?@#F%8im61E3Oh;5?9sq9j8+#Ionuh0{)XqT9akQ{Cq*A7pO}lHDlNM{Yi)o?v!o{PNJ=S53NtPJAXV5Pvgo zyU{#<#AMIgYd*H(IWglU8cEEvUeA41=uX`172o-;Y_$d>XL_M0{X-H^$a-peX5c5% zdChHV)Q;y|ONFNV*RRcuRih_^hWKKs-e~!FjojGIa*lEIi9$@rc0rzz4B$$y1-6If zS7TnhX*U>{n0sbe9v@&B3hY6?z7!3fN5|zyTeVspY)hceWiryz_Gj)+_R7?`O9bDv zPZv#7{_hI^f5r;`{{@lGAzd2`KhJL=$a-rqw(Gdg~B{kz>}|B zKQd~CX_Jjpkk1MHy{n4?lIx6f(TFf|+e9}}(3yhu6V$^^@Qh+Ix_t=}>J^XvK?nrc zfF~Ab>G+(F;!R`{jPFvTEHRni~hOR$5l8CK@dcc#(xm{|!Ck+(?BG zwZ2_$`2n<+n>lbNNm(jFN8!C5w>nDIx89d(8z*m^T%BzyNa2shU0*9yIQPXkW?H?QBoxfK>p7B`3H$!SGrf*i8a_3Yq+%Gz#kh=_@6qY@X-=CjJAA1qz;osSmY@o@@KBlY4{f12h2v+>3pH<%=LdX3Z@L_wkai>{ob zf->(L#|LQ*f%0FV^g`}#kHGl?WgxwRQQ{ag@Zr6;2k2bP{OwR{kSo5sTO@jezzq&$ zA}67Sg58H*C7UaR+n@&M(UJsK>nEUv`w4ARL*NbM$cqnxjacz&o9!2At2DUG5C(KV z>WSDz7kKmR|917i^}C9k-qF}Wl8CW>uKoDwFYwNcP|pcW#}sh)O8)xvo&k3nKY@XC zj`RMk_{0k4_l5WyG0zh%auR{IYV#dZSMZIMvZj)teWm?o`1wG#)02e~mWC|Dz+c5> zKY(cAMmrI&-z+cP_4T9Jr)B|f8w0rLj@!rTARH0z?s#DSFqYK@1`oLC937a)z|N(o zwkvZh683z(M}^@2Pk214>S~d}uRjRokdTm617&B;Z7gIKrsitiqGf{>GhszBiETMi4`wC{B2J^+>1mHc<#Aiu|Xvyg}VN(;j1g0>SM() zV(tZs5edG$dNPGp`*A2Z}8^jbB1YH_LyJ;^}Ty zKf8hqRYfv3L6b-(vVuxVhK7w%e9WuZ=C^HnXq5{glgn)1-)scl60oxWPH>@YU#=K2 zl!M2Sd*Y7eURzr$4saDF$L*fgW)N$0p0AQXjR5MlX6K-<;ri0-?lLAOc~jHVgQ+|Y z#;5DOtP+^!Vy)l0cLw6W@lNh6>$6!ehLB7lw=`bF%T& zant4+3e7j1_w;BWUT9D<9o2igwY3!kNr;Hji6kH;oEnPWLlVrwsp~8Cxh9Kjk zb?4oz@fV(29{TI#>>kKBVMakU5@g<@FlfH^miX~EfZW+%I~3{fE!)T?Vr0iBVzk3* z6MO#>iIqxj+QhzV=#3QdlA(<*mpt)C8|EmD&7#d*tFEqYwNbzPJg~4>uC!{h6%sp9 zhHBx7%i37}cyUj^*DrxCDAt`ElBK<%kQ#l&=frJ?#Hv)PQ6>74QH!d^bmWD{OF4f7 zFMD01d-!|#&SpfSA0Tw%Whhl zaNIb_gDaWUhm75IACwW>{hnl^rb;~$;xv$)-^AeX>KZXz0RrnZj9Nl&c zYp`70PUJC1YY)dxf%e}Yv}2EpVz&3wv9k@PvW?m%Nnt^adyk<3odqrDiO-zD(L9b~ z)t}|daN{s6oN}Of)lNRCjw`(?l=6_a=k4!bQ^ut&a>*RbEaqPH_$hz<{hB6aG@*~D zJKDTYeLsF=*vEXCmRjHA=;G+m4 zQ(wKmMmKM{bV>0zl4y`j5IpLrZ`N8l-9O07s;4%=Ws)KnghN42PDwF=)*k@@6kZ7= z@bi@MO#0=TueS#-_9B#(^wwU^Y#iP45Kr7MQ8NT-=W5m{9WK{MTDBrsaTE-XHTTwQVE$z1GrdE!YF?!tk{uxM{!r>_2Q;pS;heqNK_ z^T%1lC+_bjk5_SbW`Kb4@XVYtMASL6Ek9d1^5e4szy5}S*eG!H<)r$M#Yg>j2Rmgk z(w>-0KCXz|k-i*WkFf=YBeII+pJEQUbQtk7+IUOwaA1zlgXOeT4Qlq>K?%I~UV#Rm zBm-p8Z1p%GqEiWTW~tW--swAS1QSK7UFL&tf~% zYkt03KazB*5W3~jP;e-?K4r8FQWC6;Y7p#D!mw^ui;owi2zY*fHn76mbQ>5od_hpd zQ8V-nSJ;?4dEA^{Ik3@=ty_GGuTSuA&l(^icqL?`Q)7sT01B^M24a*fHaBi4{^-ip zfymP9{z#d$P{fye6yQ$+xVoB3jE|v1d5&r(ae_!48cyJ4y0RclsSMKWzARmS%@rn> zp}R%Fn+71_KHdK&y+8f?Y{#|M&B@|QVr2m5hgrYR*=;#uw^#*z+dbs87oGQju|+b5 zRFz?dW(FS*Z%9c%$LnI(PLn@J1XJLk>yv;j*x_VR#LEs;0TUvNwH}E#+=}Nrj??$p zI#*U#v7(-#Vy1@2k|pN-D(PeiqLxc0`82Xn$EYnH=T%SsmfPhdGxfLS3xwMw!2Ifj zyhW7HHE=jzW72hZW51nbHnhEy9t%_pZo=QDpS8r~Ilsq@Sy=T`zy2(iA1U_vMX0O042C|1aM{=D zcW|-tGkEjc71)0>7Vh9l9WzhnDX7en&F6@hI<6vZDlmz)^vu*8O>37e*SD)`T@7~( znS07UiO~*1L%%Tah&K`LC|S7}Co%!TsCvTn1+IfV&UC%$D_XaQ{25Bu(5X97k_h%y zQ|;s0L3KkUpvmjL-r*`$k)FykrtxF3R!nUzjNz9f^1e-xr-cST@ih={M&BGyUD{zD z^oCjC@`b}oS36oUxDWRBx3@Pbek~6yYaVg0L(anmTj^*otW3ksQ zN*ag}A^f+$mnUkD@vDp7Ql`|O4OKb45u9RTGadEOdf)5@&HHRS7ovP}L;8HFjV4LM z=ul&Q^dgA>l~U+|wOib)(O&Iu579(KTSc~g#W%O1s>a`xSuFCWW@n_!(BPjU2O5ut z6P(>9=+N+SEcV1E6MX8%OBnnlP^zo;k(TZ91aOPRv45@)D&vC;Y$ymZc-|u3VC!=? zyBG7U5|T4vo46I=B zQ)Y0(U&}DChl(Ry`QYp*BpoMj%VX2gXEF!sd@$}fj{7xzZP_sJj zjZ8ulJ?)syJSCLf53vWAgcd`z$`TGJe$8q&N~~GyQpL`}G3dIJw&RcXn5;jE@Pohn zc!qN+S9)8-F^+NQHy6MxsYOdicd3>on)k`LK51lrur9Y+m?q>UQwY)x!wHQ6;* z#a$8aU^?=rdul8%z*V{8Y~;I*vKhmtJrU5W;Yw6$Rdyfun4jj#TG|wTwEnw7uA)~? zwS(ztkio30k9fp~ahEbPL&ch5dD*2)040CL;Jkd?^P-n_^Y%{SK@{wZ{Z_qi;`zXy9y~UjboikFKoYGWh zr%dnLo(nYv6WQ^uWrWHJ0s(=FKq0C94p$d;YY3&w-Ir;3&RU? z)J?dVp9u}ri_Nvp>5W?*wBw6vCQ^9IwpPtOKU;8mIcxZGR z;cV-8nd*^kY86AmvBThTm#LA0j}-0z@AS&VO9D9HaH#LIXF!Gc80c}!EXnV3fEP@1 z+im{DZiMKM)E`L_yS;5X-{eq`>Hu!4zACNRv@F~CmHrw}El$4jcUDkK4u(>cvyGUo zYH`r2OrlfOWVmoLy5(nV?xPNWOSL*E)r zv5tcwlSXUm3b1ApybEb-Z(5|w%wo=#&+7o+b1A=88E;tLLsdn1lU9%7{(#FBc^~`xD zXpw;wCR+)5v=5M+fHPUqP%GJZ%3n+(puN|pR?*>Ds22V`{GeFYwgRMn2&7X4!!8Kk}0XJB~|kg z53>Z-^iLzR&y=-XNmih7ITdxT{j4(^Qh&HoIV;Gxu5E=>2r@ieghUOQ;Onh=P<+e? zIC;6^>rJUUu7@6aT``r~(c9szh@4w4cn`D)_}yRZGRJ^}M7Sv!}mnRB9_*Pa&@)ztmc7dh^h4w5PG8^Lks5JG#XDMNgo)~UK$*Q74 z{ny}ezuRuw$WG^B+lS0&kmsR=D8`MVCU^mF2-ho@O0q*3S{jC3&(()6cl6#d@w>O- zcx&_#K0v!62-Gc?Eht-Iw{1bkT0a0WnA-ci-I?zJcAe?Cgm{k(stLxgqa6^Bv&xo+ zFXJ=BRx9RK^0#>1f_VFsgDALtXR>z8)5fqJOhdwBfBeoH|Ccw|b%RK~d%SJM-nQa! z|CO}+T)VlcD|UUQLMrC3@z zPwYX^N?@E(+xj8z4zLQnvGH!9*Kg-PJMPuk=<`Y}747OVjw#Up+mZ?uJU4OJI>yt3 zHH{LB;*vB^VNCX85QsiO&$ivN@tShh+VabU*y5XHj%@KE>Cim!8VMce>8AuUVvRx_ z=Zvn0F+p3c4x@2s0=Ua1>+t-&OBf5yyq#os>x#RxYRoMDer;N&BcEl7N9!AZepy1+ z^YlcRC`S&!1ae*TU4avlCW$sLXFJ53-Q1RMJqPTw+Gom7XsfEAi$_P_r+2Tr{Q{X+2Sq+DeXx0>Sp`#M8s1z}0YdpPhsL;D?R;(FS zm8=_m{~^4(+TN_2_mw`E4&BiaZRqZXS@A|ezPDEnJSGq z!EKwr7s_k-{Vb31a3PvFvM;)KQ|NTOUH(^VEt;6Hj2`zq_tCNnPiqpAmz$V&+sRya z1|66f7enn40dfKp?a)fg#k)k+ z8FpSDX$>HgquLTf5XMk?n|ofCUHmVtI@N8?X{j#TD4-tX_v~sv)}2kgq$Vf@feTDi z)8n)7N41#&%Vi;xf#|Gbg)A?ppo_W<^^O=4v-Ec|>?zL#xn7!m5lC-bewys>4P;?L z-2E!`chb1rP*oas2YN7$)k%@tATF(`3p@!EYv7i(y6o~pR>M-Fg+h*E!86^}h3#6L zsSO_^nRLkk;nj_tu%Ds;6~h{HUu2eYq}cZ64gPS=m;lXV@(`M@ohqkxCphyj@8C1G z`zwa0L70LM1Q35H=KV&;?&OR&xkUm~jLfJe5%)^e>`Xu0jxrwKj{`#s;>Pr8MH(|E z&0X+OuIa$rL{59=HgV|T$#rwh%ushp`j6wg3$tpI1I{E(Z3eYEM=Ab0ZtM=cIXh2r zB*M2Y@Vw=A*RxS$84A!M&ku})8GIW)0>(^-C4vG^^mTM79kxdupkHRo)6RBZM-2!H z)JD)OkEL)a%;>sg(d+-QQEiI9bkP#ho3o+0G!UGr=NM7=65(mldu4ZU%4zm<#R;k< zbWn7DxZs)3?&Pt4zO#9gJ`>?KLjRpG!#jejzl|w}V=heK}* zl0@DA_G65wA2E-e?3J~vWb!s+?7rGg^L_eQJR;-9T={yk ziTl#U?AFhLKh!y-kG}UR&((-+O8U_2dWXO02>zhKAA$eQ`MH`|d=mXaQO z1@Jq+OX-`ok2)0gokY=*aBxCXM*kVx@~>|EM48Llo$?}%d{2!;{B?%^$yuC@r-U_h zB#pHYxuT?mHt%v*NuZTi0S2xRq^3(?iWOrB+REXAl@T8t#hj067Xo-N(=@-L_z67EBX!GLh`cVMc@e4TshIWPyXAMEWB~|FxN-RIZ<@*Dl_nXC zqC!+?1wbnSYSY$ULAn!sK45l3XYF47-Qo$em0yttq?E%#3idMyryw$HrEkgjCRRv$ zaUTUlf+dLinFz#$^L_73bZJ~+YNUuAP^gO|HBcE!jdoFDz4oi=>}*U_)M=!gDv2*Q+j*5*WTpu??PxFVITIX zp`acO@{bDBg|2pyr>OXRmHV$anpwn>U3)G|$mZ7id&6#SNf)3`$cjvspj3_`ZPqq? zw2PbqZ^d+xO>T-^m34Kq+{+{bP-yRze9&IxJ$sfqRUi6gNG318S@`8I!teDYK_>kU zm@?hrH`YLCwlxZBR53Srt}4gg_CfyU6w`^Pi`=>(H&^y01CQ9pQXUEE;vMP!Q;~P7 zv_=?MLU$1|!JsD+Tvj0J?MDI|Ro>EIRWlo+p36z?M+z&eF$qZq&p~TbJ5$+4pJ? z)NGT>NN?{b6N}tcIpe!@pZG&x zVk^rnb>E8!Jog9|!qPdSLafltZx<^E@Y-`fy}fGqW}6`C4q$ zZU_ns;-r%b<>^1GX7#O~Linm_a zwJ)ChA(TriN1(|5iJHKa2K1+!iNfL(;dsY>vjQbUdHW`*G{GcmBK!Jq~Bxki{$03 z-J$ecZ7#RtvRY7m11prKlptYfb90Ilc;8~ER&#r}ftg!toUysp5MTYl{Cjb6Sgn2)>yWxL9!xYFVmK`lG*- zc19Q;E5opopdYd-oHA%ly1j=O~dKGv7F*oOWtOWohj3n z0t_cq3^^g2o1C#f!OJFPys6Em-KOR%PHBfKK`~q}k75%*Pz_So8#NxACDgN;b84xL zsXpaWjPwn;>#7A!qo{Y{*PoIKkCd&X4WIxYAkzjVXi)Dxn+6B zpQNezJ*^DGsN|!T7An`aclGOs2)$l}tkdw!q2K@Z)%lIZ3>EWC=*eewDm znZs&(vjmbK+NFxFCcGNWiGWx&;&-ZOZtU`?O11U(5hUG|tRJDxjCPAo%;oZlg|KHB zKh{8QcsabS`bEVuZ$oJ{Mc?Rh491c&@D1*kOAPIK2FffZi-(+r?sq&VEa*`;*_J4X zj5VL^_#RL!Ju<$d`_c_Y;=K7}P<^aIBO@WQVcQi!*H%Uinj@9M`8_MWBPrBQTI=$B zmP$dDHZ8xny5Fmg(X-o4O37XNnB_2mP}=}J?YpU){o=WkwKmfYkNHHAu21nybUB1U zbU-4p!@tCTxdK;oF1nD?WE(m`DCC5S&~CJ}D_lHWB6JyRvBHJ1;~nFKB}V-P;}XbDuU71<*5h47%=Ds32PAOBoc3%Q0yi5Aoh`WJv-rnayQHevcxEYcd{SR7 ziOXwyre?eUMkjv(ZvyS>>yq_~7hmo};Y^=Jh7kA0YIh>FKaC`}(q&i0!53;KFvjLN z)fZW+ylG$UoRMmHEmJceir48n%bC1Go!SV8bcXM`xFKTSh|(6p=rtd^ydswKO@5;$ zI)y?U|110=E~kU&;g#dNPh)2gjc4|%h)FA$J46jG!4rAE9h7k%3G*Rb>E3Q&K6~(N zOOqHU<*^KzQ0A_(uNaMpXcpwYQ^!}~XQt6-m1U6|YKa+xgxRb=6vX5-?~vo$UyVW?YrC$v2~K_V-wo37$eT#SSBH&#SIhOieVpBCV zl(X4A{kdQ?nV~+KX_p_KlUnBc>U~;nX)2rIht7}l_c%fvhdz^#Y$^2BiA6lh=u%v> zJ+?o~`MR@Q@%vKX4fACRpIk`hv>I_1d7El>OiO$yjz0CE=O#$?uBtOphD z*C3TZ_z-^bPYvq7%jF?)||+$aEIN{f>}FNxsbOXP4Ww55Q8a>;SNFvuf^nZ z(YU%~N&M=_J!Pzz9=Uh!))M{GONYmZr>imd=8~tY8tQD)9 zY8B*Gz6xfYoBe2&B(@DDFAF*ju_G~%4eJ=nS7m2C8Gj)I3<2`45Sjsr$x@@7P}IQ@ ztEwC4dG>F+D4{NexJ&~*T&D{TJC(HNlbITt1!BQn^3cPr9#XTsW~`%m46ZULW8SLfzz8o+KRH5n#^Nto{aVkN9A>&$A}){5a4m{yRuysptglW zwX>5^M%xdso;bBJ_KBH_DWDVm$m}x~-B(f_;6ePZCc?+_iK}PzQ!=@WY^Dw&YHKMs z$F2T}Vs52DofIXPcZHZ1*V0mX2wenCi42#`&$*gEd2bJ_2IID z?3g0C^vH;=TISgwoN29(9T{)Yvj@da&d{_vs#e8)-39a`Ziptplk!DAf8xtVn$J(}B-*=(vcG z)12mVmL(;pGjzndkX&ga`T{+Nb-Nwnb?JT?63Ukbcx~32P!+jS9(qJhqSd(keWB|c zFC0>gc(a&Xr4pgR;n<-eedJ!IHa7z+k=LDAA`6X-&UA92h{$71G6y@VHJR>Rmn5G8 zdU>a8uT!dpcp(-z^y(JAC}H8kyVT}pPz;uyK>4&;iJ-@5`uEp2?{Cz2x^I7wO$%?L z(uZbmz_D<|PqI8)?XXIFnU>owLf2TIlP>}103}OqDZz`)++H;tKznzlmy7 zwz!dv-MRrSU9o$wwOstY*rMH951JJAlzT@2=hJ4nQ7RvapkoGkw{0QAM|4_-Q|Wgb?%M`m$TAA$-%oak0w)xi!|VY~Yw{EI0i5p{Ftj z^t9TM>#RN&@2q9K)H1?#pjb;hg5l#Aff1-^nhrBsPLaDUDo(||-i2@WW1P#zQO;Ds zLyoG%KHW~a2o4%GNK&?K=I#2KEK0PUbJX$i01;9ee*#yiS|%#W@GP(SYgFT-)vS9{ z2|16I)Z7g`*-8`ALK&ZGC{w>Vb!&NZmVXKT^OYQuCPIW zSxm7)I}J0VE7_#sM>8@WetUv#OkhK8t%RJ4SR^mMr$|A)la|8AkQ=T=dcAb=yroRy z$I}@;%r7nxnKpB1zb4mr3{n4y7Yz&e^1Ot@zG^{w`#lDaw z;~p6pS$pWff)JZc&Na8ax^gcgHes?OHoG|^6L+B8Ncof{`+nf#!jT1YYzYxkia{k`Yx$Z1`6T-6hYUdbMh3BLtpKgvZ|TJZt5wYwCzbJ1u){l3ZN zhtVh`v`)egf1V8`9>Mh9Q0+XX1~!7#=18jK51K<7>_LUa{@5O(twt_n;}|R6Q*Su0 z&ztHPqB#5JnSKe+sZoBH?$)8WJaROT(ay;xb0Fb-FL$y{fs7L#ctaP<;J#)_Qr60c zSW`k*BD)|%WVLpCNe=Hb7Zp1MOS`9)VgC@2%*Z&55mJ}f)JHZSM(Ym@D74SYl87gg zKie8@KP`#QejD=Xkb_>1<2gk5JTrhaBG&UtJvevR{edJ|~y{$d7mC+dmQ`99v! zbw8x=a`DTO;&@e9u40Yk$<|B;dCAroG~qtt6|VD5eGESY60ez~=_855es)oRd5vrN zZi_N!EH`4N#-x3j~s7WPp4^bA#+uOY07x(ql+|p1IgcSZ1R$mRmgawmg4)l8tXqk z8-Wx`8WGP3uaES2jgIVNp8OwpW!)xmC;ge<5o9(e7+VuAnhsfn#a=Sk#o{iHcsX?v zuwt{7nq;8J;jN9NR2Q&n;#5JeRrr|)64cs}x6{JdUOLb5?7EX1GgGll#}BSuK4vhs zN38kT$9)Uk{PA9SgBbJDVYzLX zTz``rGQ3+a-*eXX(-nJjLNYG3Ge@KYR@bF~3w?>GOzMLp@ju;)o)fy-ND(O}bD_w2 zew+V0p%^|5d@jw4*J7A|9aZsHM)H63FUw~n!|5u8+4!2RFV7Op{+3R&JkOLt3OOG6 z{J*&bd-KR?rOC?T1Sc2!2K(RtPkYYIJ%I-h`Kx{IoAaD@*5Lu%Cz84DkLfyKwApVX zAvjN#7mAv(wcq_c9pLg_Ms7#OCPa}hYmtaHd=F1`Nag>}QT(a3`PU4K(7=IVzozN^ zd(!?X%jnKtpdv`@Ny_4$Ind&C2Pyt@U1*E?B z=lbJDvJ7x8s0Ex$jH`WqE=G4lxyc)I{toM9(!t*( z?XH(I%7-b-uwGv8?#Tbui!zdP8?2YT5D(>}1EUoQyn4DK1qfH&3Mv-*?Pa!FJtQF_ zn!ZkL%4*>BV4YC`BVj-H_^x13U7}?zn4bsB(B42;`}WLOKEV!PT;c+h73L;nOE(~mEC^9_VQFu^lZcNWWgS+7l)wz zyuXH%(E6qHu9wA`8Q;5JY$$&9*@9l4aD|%s-A!n-0_jOM71w4l)2OQ51emHIEs731 zSZ};-bDG_-+fX-jAyu2dN2-9crCGCL#w3 z$kMVzW5V$4r<175?&y@>4v=HfjumZ>tn4(LbLGZ-MVG#~9prKOjc_Hp&8Zbs)$o&b z^8aB|EVvZT$BRXJmWETX3$iaEeN(qRgnM|oCIQvf4BCv1v?vY#do8{Sel%x-cDakz zaB4i7ex@4r$O-MK;nbqQ*@4DTi@H6x0a}(pyG9V&Iz8?b>8qi3&>WjJ#|g`u`Z~v` z&l0<7u|2HpxDG#iUjKBA2H#UZ;n9KbDtJZXTpuXYD^@ow3_<-(deSqdqNw`%McSKf z+pVJLf`Zu=^@|H%qQL^3AkM&H@sl#2)}zjo-Icz;cHEkEGI3*dTBqWxwgU}NT_aEY zs22R)=LDm`2{ezrdm*q6x=VP=?Yup?Kd#YW{cV)FD2hw>vaC!8R4_20&a?vKMbxUu zx8AbdGE?0iwWH>UJQP6=@ypD+!XkgqyZb1k3y|(>~ zV;s~tlP8nx29wlccc3!?Ms!(%T3ZfA_{$+PP7pT7>;}K`=s=Gw-Bu;w9NeHy?XsO5 z&_Y2?>laE`3tw`_W_>}8vWk~mVz7(O#kd`npiDnCA)uvzU6XoktH}uH;!J^5eh7Ba zqXveXu-gm?!F~oR{KVeffq)7&V@pr}7KGe9IvWB9o>RLZ zTnV`fmejubfc93;uuQ0{$1*KbF+meZ$ck7ZDyFm9!%+ zE>5DT)4XL1G7xNOnAV;p9q^$BRoPTTVzh@*eazpw+6+@XSijm$&8(EAH;#!WSoFds z$asc_AMi;AyNX$sVCVcs0U9%A(@|OEZnl_WqSP%~T+dsE zgBJ)3&hYL{tL>N2pbT5K`YFT;}11gyVeQ|;v_8?_n&59+8KY};B=(LJLoZU@*}*nJK=YzjrRNCDe45`bJmFyOLx42 z$ zO{7|FIUtG_;#*ea=TWMl<|Joay`C;&VWw7~R3_HW0CJ>~O0;|kfYDC58Q{;9nYCPOEv1-iQs`vDS(<*zYn8nvB>ak9LTDCd!ea=DC6DWO#;>NXsqczTnq% zvHN}{P9l!)qb?c>Y1P}+VyR92M1mewf~D3^Z(Mi#&%@eT1|v4AU--lvjakSLT6Vf5ejeL@GR4M zw9V@dM>vEwA3YG)8k<$GOa7GOcn%fs3vJu*$D0)8M~=k8brvn(nI+2P+wbi<9!znf zusaI~N=+^nlYGO*b785UW5xZmMns!hmE^j{IvfoVFJJ5PX$yNoXLTOC6@t6H<&P)r z$S4!Hj=xaP)d$Q~s}@4dh%D(IhSJA7+f;||P)Bx4;l8Vyh@Kq1ENO_a(Q!#xLJu8d z5dV$iRC=^ME!j7(U?-TyaWYC)tlKNp%DZ$l@180nC-vo!bg$_NwFo#qXL;J9Z^U<; zKa5Q32O^%Mbnubsek%q$=35}*KZUxe?bIGhwx3T?BK|?Blx3{jq3&v^GFzwjdCP@U08| z3?{XFip3<6Uw@$wJZ-^_w#|Zud^BO8Y#?{KJc$quBki2~<<5VIeTQrDll6;Si*Mf8 zxccI{JjTwvQHJx;S_4CYm&9U{*=_ZzzpFSiN-BdZrBW_Qs8M7z z#bqP}h9fn~5?^T;=lN2hSiR_aoN}x0H|`YM$)rHwUxN&}nK5ifi_BZpCey9DYsLNK zO;8c4JOcmvX>V~%h{J4x&3SuF9(tk&Oxm(C)krH?_rtA`31xR9I?W24rpqpe^DK4GXik4|!J#)jZjD63femj~7{ zg=kD=;P`P$rn)ds!KzhGASoH&b(iQgIy!q0pv)&u{R!zYsUmz+>2RBQh?psjQJ7c^ zPjbt&mcdb9U~--PQ#cv%{kkP6!0FKUv5{3R~XMA_&hDN1Jth$yxTM3tm4qG zH^&7ookkTiq?uiZ3x3r4w_sUl==sU|X_H`mF}LJ*==UcWk9VGp(3`p#jOCA1pU&7M zNJP=_l1VgTgz^Lj??Z2I6#5P^?hIER7Pvzj$vP4V53gp5KgT9aNu?nllgMObwcM_L z?xOT!ZF6P&^6M{d5QX@S83woM`&WGSVk~0;{Un_5=AjxL-Isf|hfGw*L+xhz|^7R(|p$w@pQN%o@ zGGCcIKh@V*+|IRzlck~x0a5fif#tWS4Y#VmW?zai$RCKH9xYHS0A~QD9keV;t&zWM z_CkpS$scsjr>iWM1KD?i!73^dZ@2Qs$N(5`2YbyZn=MFhufbgzsm5Y541Pf*w1(hU zvs=#|F5>3#gz2wYwSkw2GSz8*^QUv{_K+vB($eMaW8$|gjA8g+$(UHy-%QMg(oGaP zMb=Xq4#`y8=)M=u*7W*O#j3>g1f9g++~0ZBhNAQ#Ar@z1&=O$k=Z)pYOL}nXLI@ppi+2gY9BH73nShyvEJ9bMs#hFg!?R z@%8R+Z&yG^og%4J5#(rJQ9~#{#4v<3HSyV9ACIM_rV5lB&t#)fOJg+8QNz98_W$zD{~fvdFMZ~zd;V4z64&B-f1y?DGRDqV~tb`F#5`lON1yuKT{fpU4b-mn~cDu4gTWL_}Yg#pj0L*Kk#G zu~!q#-|%%xQnAwB{S_}WNgCUFik`M-sV+cxt+$ItSj!*bPb4W6Kx9-@uzwidizppt z5T|#nG@4?HD>Ma8fv424%E)LwZMlJhRdGNSE}La$?eVBGTUClw0+)FYZF@)fyH88N z8VFZ_*a=Qnm{9Y3KBe9GdL7R>l5iVEtI@Pn+41}LC=!}T|JiQtt$u8wpY@<9S?BdB zlp5gfV`Eo>cTn&153WdP0}^llB;B%`drYG%+*ugZ1I;?~?u^QkOSt zq=q}wpRkLYc^Tk7(Q1NMjm?cjP;QNfpAR9Msj}?+aCMXT0kJYm+2kZ+`DB@aj%T%6 zrD;-XM#d&>D6RDQye~z5uwsdJ=afm^dj(aih@~Z2vKt_YuHsQ|0nE`fz*zp)g3s{D zjgXpJ>HuWfJ^49NY_=!_=a-S-tORj7ma94%6klEp;+7X>8Bx*iDf%mibS6P#22ln4 zza0Pn(o=Yc*<-6C#4wvUd(XTuS@n|qvNhLCoI*M_;MTfE-G?HyC>g|*h?FS#*jVt!=%vB*!q{2acnm)(bf|*g zK&eJLF>qvM9%61u#BnJE-Cj?)@JG;=x;9`V`Qvgb!OTFY^QDn4t|+{&Fs@zd4v|aU z?ad{f@idFxAnOVUvi2KHN0yt$b<}gRiNmK(2w-^7s^J^R~(NiI39WUxB;zZq75+^WaR%FA^&$R;B= zk1r6Jf_GN0wMe7A%L3?HHpdDg#i^OWCBJq~hjgw2+)2#2(;z zn=Tha30*K=4`K7OTMPGGl`5Hd$AeDkG(=*~#EWL|pi;GCTlkMhP)RI%W0}-`q^dtt zXI&2el$w~x1MLIrilt0TGYU5)*bXDXy%Zo5#NS`2zuXC9GMeltYRApVk-*nmDDI|u za$dT)7ka{zz_8ZHo^hdN>!0?wrGk#6YTZqzdg990BwT%M( z`zSp6!l3d25xGPj_uGb>Ee^dfHC5F{VsT6T2tCd=O$l`$m9lW)7&`m9_->YMiqEx0Ik-tInrSYCJ zHsguG7?bN`)G;-eI{d(8iXYvvCiU;yacopX9yr|Ze5xywU%0q6oE7%d;x{Xu(IkW2 z-Y>*7;Fi%@tVr38lHFNd}JeVResTmY?q=6Ls08R@i~BSf{Md^AN5VLukwpDrJop z1P8-;gp1=%GVw^N2w=sEYD8EL*4iDKKG@6#2wAbyrFCatUq$L~es1fpNe-twuoH5O za)BA(>*oiS4Q5J$CR?Q<_3xTGI-3HIi1-sCB1ov~jzT&1ThK!DPe^w%3JaxYolaHX zfg|t0SxI&IqG7wIl%ed>PVh*m0H?(0`Nf2Fw^Fz=gCLph;XLJ^tkkflnCCuGKLb7g zo<@Zk`A2x}kUY6V?U3ZmP5)9^y|~r9)g}6_VAQ1?k0%A52>!O}2gUpRas29V*|aVC z{eEPMP2)ae`2);O+S=)JWW`R$BMQY|e!&B>^9adgxe-=YazO~oi-{P~7)J zv561<)ENDbFw*lVIxSyHNbP6&e3f@#Jtuy7*Pxp{apPmO<3|bkf1Ne*H;3~deL#K> zuc)Xvn4?g@znN~!47)bdVAL<)ecXXYdi>un^^ZUAAVks3|MsN+;|Bh{BH}x@VRr^& z&%g6p|I<6Scb}k8eNo=dbi*q&H9e7 z&DktDL57cW-~keIa&i*Wy9)(ib_!ys5}VW=|1g}XmNPY~xV}6U2ND3SCJ!Vf6&V>q zDemi17zP^}7x#X#Eg;MXjSK|(E*-jUw#Jjj9KjPhnEnBa^?3M`R!~ieocP0ASs4hn*_2jhn>V^VNjzC)Bn0-X%s; zV~Ug*dfA7 z_Oo`YovET>OaAn~gMkpqU;;4Bmr-2K+%+{dJ)(7Is>`&QZTIGASgA$kq)GMwq}2hS z_alpJ08-I8oEZK(Z8o-jb+S1o#b&jk>1V(RsW6Un1gkQg;W*9uM2U_ByR9=PSbPU- zY)k;wZHZY-)!XB}|DUVt5&SQy*PL$d9xQ_7j}_Po! z8h0LGsNh$&^-&bmCRedcw8HIxxbS*bH&qQK6|%GtUl*|Jv;aPsRHmn=chJv|f^_D- zZ%|N2nw6DRY_TeN-p+lKbo|qqK<|MMl_9a|TeR_VqgY3PJ`Cn5GxHWBpc3s}zoViG ztln;FYI>_^^gzUw#~dx*ZojmrM`C@ts)SOdQkv{Tso?}&yw-8@V*I2$^?d)kKV7`< zAyuM@i03(D)zv)IK^BD1^e~;V8tY^nQ$ZWsPC{+YSFPdWW-)XG=;~$}uvIIUR#&^x zq&Qy0Kx=FY<`T_;!)o~rK9o@Ud=5Nl!=0#^!LCcb0I@M(ce%ZUKJa-V`OIGAC6Cpk zGa3_L;SogQ2Z^o4Po_kE@Nn23UTOq!rc}B5k{2W6a&I{&oH^L#N$6+Gd zt67c6T@*5-(n(j{HwZZb2hfl=T#OVf^)f@lvp!{PEQ`eO@T((@E+BT|&5dP9;i)Pj zcvVk;_l4ATgF18an;44jS^ivx-Qh}gQxEIvPogtc@IovXHX}cIDma#}YSkKfbA8!v zghrb@2ofgIFF-!w`R3Am#2a1@`y+V?uwfEM5ln+GCQfxaR^kNBuNv#=Y$o*2?a!5X z>00;iUvzZxUy7$FDX%tpirhoo4e>T@e#YFPc5@IJMWC&z`N&x!meJq`2UwOaf^V`i z;Ee5Ks z47PRF`jeDA1Y7|&t_l_!9H#(c*U#1%l%Er=LO#2>59-34=T2mo%PA-VIyr!YN;wY3 zfd28pKD%5}<1YgS;-J@Dh4cV8cT*)67GUZ)dAS|ZP2HekYN9(wquujbb-Ve!&pg<3 z`zb#L-0!6NtbyqWwVpD9Ux6*jT$x5Id-6_0jmW3)vm%zfSGFabSV-8u2*J8#fWUq| z!`Meg><1#oq99KbF&P)apwo-V@5W%?wxJ3r3mLp9^g^x2+AN@b__X+<$?AS`_?rbdx>Bdri99`s>3zFZ(yQ z)0vg0)&TJ^&jf=}Wk8z(DG7e>vICz+?nD|(5ceZYki^kZnh|JC1=N>9r ze=xBoCOI^5p0yY(PpVmI09T+hUlP%qD$o1)WHW@O$o^RW+FkRJ<0`Z9bS7GOqW3Oq zy;`Qw;jF`MrzlxmYEC!4;{6D_U>dhw9P-2Qi^Ba~ms@43+C9EFO*hsSUk@KviwL6L5H-Q z&-a`hl-L^Oxt?D_bHL#XgVfotKfb?=zFgnb?)F7C3fwY)XtCux&AB0#Uj1g@9X63` zZw34DvGQ0!<-%hp7Q42iH(==s>Nwk9Tpm?62@vD(X7DF}ZhL8edvgujD&VI?V!YdT z0FYE#6~uM%R`Zn)0t(kzVjz-NblhY-rvrk4B+EQPhMw>na_!plmDp$ z2rO)^#dmX$x|hxIWw*iv%4LZmB17|RL~hSrryCa43d8UDITO39590QgTCX{{L!N*4 zTwP0xgk*yg~ngoW6J@v}4hP z`ad*m6G7A!?B`k_0C$l=Kqh%_rV%%8dHCzK){^V&V3AyXdX@blld4uST(Xvk6|t*( zl{02G*|gP|>cu@ea())Z+F#coFHqzYs!E=VqjfYHz1i9-uDu|!M{3UJY5B#4;F{xz zUG*_QYB;2Iwr6{L_8a>quobNlxhcXb4^92;=P_C zy<+Jwa(=$~JC2>d8}S(?al`et$uUYOUA5(U@~Sim!U*d)%usX9MiD{n>gaehLzuts zga?QKlIE3b$$orLq(hEJ?}VQQa-MvC|I1=%oT2k`Cd6F_3p14ACuaOtVH~UQ_@+v5 zc&feOW;0Vh%uJ=&W0}Y@iEeOV++bI_Ao~}i?Vr6bB5&bpSuX~J@zAle1%Pov_7I@i zQk=)KeAlC+w!FrY!-EV~g<$~*JYSACMh@n^@HQ%PnGHsJUUY#?(Q@Qr?e`hUjz$|e z6UX-05%6^D)-h2~h~HeTa&PVf2N-Aj4S^*Ypo*}}ak$(#zQ2KC+fx%76Rq=_wY<2Z zuQGG*vBSc(SjLsSWaO4x;{%mQn`Q;zS|hHmHkOhKMK|G1d>RhAD6EPR9BWS|4b0?B z&VZ3c0Fu#VOY%g6$c3bRVUMRL3lFDe$8$I$*-)BiUgcjGBNQMZFbm}?61mW7c1}Jj zvH9GpiOXdyEKM$VSh`d~{@82I6JpcM7mcS}#Q|^Vg}C{F!Td6Yj}ReVPDBQnG!@!p zOgxB45}BwkOz1nG3qdObTaMq-JemvUj8V2ilI3gsbq!wo%@+Jv zvCYxEGW9Tz4#QcXPg~K`K56 zaRw9lB%32~u$39=i00cm9>|;0qNj<<2zz;z$*DE&p zJ07Eb)P2k1@rcE#0N|n&YQV<-V)G_i;G;sbE%HM2H*N024SnX0W1zYXB{lj(@^K>p z&%F^6(_psZd82Dmvjwo%jF@x<4U3*Ih7pB+xSBiga&HrnTpP`c)tCdP6~b^SCw#n4 zKI`t@-U#s4ZjvLi+w463Psp*%qo6FtE&M>lWFyR58U%gjKb&<{^ zp{Axzp8@$#*O`BD?={{J4GSa633*ns$t zE+?@SK2j4!Ra36ZT9VgN`IK=O43{L+5-6s#x8?>rC~GqGh52^bSXWL#y}s1?{$QH8 z7O;3eniKm9Fr`Gs#o@5F8lbXhKAOAqK|qjo<>eoFNK8rfxsa#aa00cuk3{^(8mnxm z&*~+XQj{wkYT0wl7j=SBj~fF6Br8jOLCgUo$p+S%1* zj!z;Nz?4`5b`pmkX8ny(Sgd7-<0wZC(p;h<5FM6~+)^JnC z0s20ev4O5@J|afHK1{d`50m0jEKsbm&Qr0S|NgD{Cb(4tgDpiUV6gL{$TYBU-A`(O zP5i5l4M!p#wn8AUPnP8@*72RKXC!pF+#KR@-nr?3U4=e41JHTc=2AV`G60e(#64l( z6z~GVFny@B2MY0rIecc!P!?xk4{vO|QTlS-bX|Wo=r>qlqNe&0-k%y^%Q%;%dP9~A z4~9X*37e_U!@iggePCYiduBmGLISTkZNtm!mLCttdS~YX%!@*Vn6C*TUeOjAf8t3W zj%*O?f;W+61o~Pcj@9r-w=XO?gMg{ zT9?}!8Clt-*GR}>ghdO$*L_7SIY(m&cEJ>5IuF2CD>mMg?CkM&=69mI8WKKu1j8Cw z={u3r+lf(0L84&5p?T^f=1JpchL48?2VgFS>?Mzz`9yKs7eScbwDkd>{&x4sCMS9jB(7prQO9BNIv+pXF1A>zrs1Ji%JixyD z44p`leVd`Pr^hm8lx~_rDS^w$lH{q=$HONlyOoQ`PHJyH&{=*%v?a_!c!u;G0Lt+< zS>*vO}f@dnI3+AKER22p^TeBVnYg+OMY_lq6hBxNrrhrOV?P2>IKlM|qN?i*!}4 z#28re`G%B`x$y_w3ylkYN(=U-IGXR5>^qfk7;!_n_gwFCLV81d^&x$kAX&txscHm^)LV6AGs8XaL;)TnmRXiSjID$-JNY*!FsTEa4W>U+sRUJ}Yyh-6IV-!Ju?4(*O_>eu`+L)@+=Jm<5oI0-{P zLqNFt-O4qe4PYp0`yB1eu;()-J$P}ymJzSdRG5&ywMX9<2SBw3eVHWMZXo<$-4Tx=hR-$2&g|9Bxw#J}?gz+;GOlbb2#<{lZT zV(ycxR7SpIB}?p9{XB}zDmxcar*v_$t&BmRZ!k18bWE_^p@~FUxt<<-GD6_RYg5)8d-N0>v6h+^D+V2+{-dz%>{i zF#`dA>{rQl@-1RN9w~><`N1~k&xk0vlp!N;QMV=|?MNlgngq4}neq0w#c?+Of(KO~ zLo&{Brc(50qjG*luJWS6`v}oSYPbDGphJN=Q}o6%pVpNAzOb3Gik!BAIz78+G>tO} zeF&b~P`)`p-x!lK)b5EQ04Fhs?ki%EWm4^rD5$LyX9|#HkC0MjFlHUgRkw8)04>F* zIiFCN{zP1sqb>hVlL3?)7Zsp)vW@@tx|1%LdPY43wGVZNlxm2K z?bQ@a+QT{}MA&wxO+lN7_NK#rVRqo{tb-|g5SQt3*x=?3K~e{ zS`q9!$qd)w1eY{Ac ziLV9v&g%TKBliQN%N8-E3`TP~w40&w;IpEYGhNzs3tg4YdMsx@LaH_ZQlSH%=E zRxahBGPS!10)(2UJ2PfpPo0S0*_L&6iM@OOeuO-h*<=)vuH*ekyf|b={0;S6oQ0KnUE$bq>bWgbSv69<8 z>YbEDiA((u{bjBn_m0mD1RXV*B&skSP8hC;2S1wMI#K%O_8<^^j4AUl2ErsGySDx= zK=5I>vY7*PH1+ih-bXOq57BX`lMzgab6s;@vRKq^e9;*i3v@S>4MkTlg~{hlR8E*E zCi%M60H&I0ui^S=5BekP3R0_qiCPNc5|2UqD3i`c+Y_L|AZj&~TLZ~SL0(+q7_3I(^;ww?(AhwbeFiJQ5PS|W3RJ-*EUHH8 za>6t!x(!8JU`%-8+=_=VA&%nB%oR+UlpbkV1++zy*4QC8puwP@1qBAM9@X|=H-I5x z**Tqp;+07)Bf;wMXy7jrK(u8DIJAoFb~2!Yu+@pFFwnpWB;rgFd`H`*G^#a}6wgAv{2A{4+TX%AOlX8<;-zm-gLK#wTD&1WcKmr$*kcc~9r*fgen{RGy+ z>&>zXbx>pb{ev3VZ9v>?ZD0fiu9Zc49>cEbwaLCRBk1BL!e^uucG1U}Q`KPFiWG>2 zn?VJ#_L>?DP+^8Kj2$MB3d0gCWd`3<7&nB~!FLTgW>eo$Swhnoi%`4u#k{7>7}qG7 zPoJ!~f#suy^jwnbT@Jh3HrA*r{xrHyo678koU*m=6MAn%GlG%|u9#0Mo=A3rE`&?yy)EK=5Qt^+ zY6nG(Pozg}?V3Pehynu|HIkj(fKNOSHIhP54-S&iIE5ht61Buj%YtO~U>S?H747Ku zlRUz<6Qth{4UWW!TVp-&)m|VWpr&RU0K&rmGYw-))JkuE0lY~_Man9!%as|7j>mEQ zWfLH0C&NW#*Bes?tfX*c@GOWrznkRx@JwY={QuJ^nR`x8f{HVl2Jdv^H+ zfPfcIT|9(TB2S>F0kWb6_UBLTGrRHhOMLV2!4*Z-Ef0(qw=}sFP+7q&im^q*aSwAs zLtN?T_K~jiuWhnxsU|G=?9sH^N%2!Sm*T)z@U3I~f3u(2KHGi(xs1V4A}=?sS)|~f z#qfyf$6%XH?+;d;&VMy4-yM(&WXsJ^;jsQ3g^fYMWE|lIxs@)a8|1e@j{t|G{3cvk z*6g1DjXv1(}?WQ6#UW z2Zv;q$5!JhtGXUy#;Yd$RwE<|T#Mdw2=ae7F$Pe8a2V;W9t0Dv>2^YhguA|DK;D8d zi`n-BK*#I?e7R+S3EFU=JpNHJYoGHJn??FJ20?caVeth-ISMD#ss(T^<(V z1%V|CVnC~#%FN8{w+4r&HW_N`=ycPzV-u0Z+a}j16n1()8Gp^FAAWTZ*$@r_(Lz1) zYLc-`A7D}|RYkH_vEYc@Xb!vLpUxNS=3VbHSSJ01EA@s*^`g*zsK)_@mBEv;1Q8NP!yn`f%0-G`g@;NhMdgLXvC>8L-jpPqy9+ z!N=>_-W>1DC`(z||?b!$TNjq)#ID|Y)W@|2glsa+iNk9Gzpshzl>zP`ax}L~J%iEY@F66`&{M#DNRs_SLn)@$717kc z2e!R``c}6QOoNcuXBZ)x(+j}|U`8NOGZzKSOPx0Feqa4fYO37m7;7*jw@7y&`7Qf% z6^HFIbMR+-Qh+ef@63k?M4!5Ho^V8#96vrv#Z!horu?j%Mcj!jNRE>u#p*{_EC z_R3-%+Q2qXX3iDADVHNJ3Iep6ZT@d0qP!7bTZ!OH!h?>&04^s9BzWmzBzv{L4pS;C zS-SYXe*GGrTMkIE;Smv?Ai?GWT}X8FyEt~6A24qu)dvJR+RE~|!exM#ENo|t$_#E5 zI0FQg9Z^71I7B;tU#JY}s8iS2j5o0I=gmN7U*%kEZ8A4pMPEp5vLY`Ze8}M zo1)}@uaC|&`%QM_OsJXf-2f~ldbrZd-@UJWb5y$F`%Df|w#+l8>yd49{e%IFV?c#+ z3W&^!?=;-r^k3K_vizJayA2tvE%ZuF*I8p8WX}sYt#l!iYfX|OvwB{aEOQd^qcgXa z!s=U-SVTu5z);qwtG|bxH)>`cxO(b%=|S_A3cUF3Z6dVDL(~DWOtIX#B%jGG8$+$& zvw^HtuAjV#G!j~!W?r_0n#K^z0XkNNr+Iu?K#D$h@DniKGWCsh0>cZ zk(^h1&1{N*?ouC|#P78+bq+}Tc{!{gh)2O@_iG*3>y-o>R$)v&inB+}!h_}u`c-#>)rg7{$^3nK_wd!U!hN3VsKYQKunVXzE-sxal?fpewm&c*2M6^B$<&S^ZY zS%;4sM)OhGfj5s|r6ZI#sB(kiE8&522Sup&DWjd;q0di}0ujR5v8Cl+GV>p`gg&-v zVUf%U9f}9O#0yRzAhV8yI-URD6`t_yp`eq8Fss1Fv03>(Mn=2^t5Wv;gAsK2J)sNh z?aA-!WniTbPjp4X4#uYW!V?uZ^uTgU^AQ;i^&5zzzxyIf;v;s+)n!0=TGnbZ+o|5n z4+9~|+i~9sXSE;<)hm^%>^K}dIr(g$kbYgb zo`81Mlr)44UjLg&?}~G`jzsIAKuV``S}SM7FHSJnnIA+!#q8i29)m*Nvq8apL z!l}=$w@Ug-FG1MAtG=SY?)qd3Ch+~X`~F7NLSLku$GjE1xtR%q+~=KAnrD0S7p6?1 zd~B9$iPte@ETzxv08MQfVA}%=AYdsW6oi{cVav0(9I3WJ9Dzf(n#|M<2ItnQt_3opZ_<4^{KUlN!_;w;q2T;Gr>>ux0?-CXi`^`hZ?1uG8) z3nVwo=30A!kv+FHUG?eG8$IEIqVe)F(8W;BP{dM1N@`5!Ok={I5l>ZzY}6N_X9}Ho z%M4!SoK6q;W(BQCvM^5w$?{F49&kezmBJB7V15k3SUeT*gid887gAxqnEIo@eDK{y zHXAVse9!liZc+hB67ZN5gD_yu7%u-{{{Qce{ECaeLjki0^^u zeslcefNg~DwxP(6pFDZMU1kI#gJThxg}7$(G++32wOyjQ=+a@dNlP9!^WW1eh@Z4L;! z`K0iThHZ`65K3|=$LP(i$|PFXS|gVKKiGTgu&TbbYgiG5Ez$zg4T{o;bZ(@(TS`Er zrMo1hJEf6sq$Q-gySuyNo7?l8bDr}(-*wLW{I2iMSN>SISbMF#=2~;k`yTfgV>&Ic zPu3SvWB~o)hTwUE9d>8(lALjL(klmc)uF~b4x?NQDw@%UM#g`sO{<1o`ooG_ zf3EaxjetP)7Veg~eS zDU#3Np`0}W9-~z=gnEPKS$7P5h}>_TMc$i5)GJ)Z-6Uh3`(83JRY;}zeBp0cx}gX6 z2<4Io@YJqqzcGeC8vtscbX4wT&acD-bnk6~0J&&$uD*86^2*1C*ySXQ>uMuiYS>e7 zv{;AQc#(3EZ6wGWv1*?sS8JhRP$miP?9eMVwAH<8hP+cB5M5IR2SjZ7-aexUAnAld zRx~`o{m=_5)x>Dp#x=ZG3<10d^@E*QR?~Q%NN!L=We2A}ZM zYOcTFLu1`P-uIS*qA0C8kRrhrbvm$vzdOTax5_9tomT1>x&!qu8r}s2h`c?@=b4|f z)Xe-iqG5pUSNgFR?>2}F6a!C~pLXKqQ2DGwl4G(+JO_P|70&rfV?U`Y@jGQQO+onCKU-HlX!w^pbedrXn9%o^X;oGuo40z2k zFn@>x_Vh{H3KDni``D{gz_B;T)%WM;=IjKH-#CHk%|lpAScBM?w9s zd(3nU^3;W+Vpx#?Xe7YC2B(`S=7KG(8F$NA$)Q}Sf=Mx)m`n1g1KjGLp{JuIeBVp@qL1Y z3o{W9WiNg4gN1`ob%a=K55*^_l53Ot!XdWZu*G|9|7ThCfLRsXp9-i{Y!dw&2}Hip zmVVXd^9}Exk0scDCUwTwTFWowHgEGY2b`iSi!<%}D`nibR*^UT_ctLyAXs%hD@)m2 zfl#n7FucVJr+~40@jN(9$+?@vXqAv|D${0q|!ZJOWrK6!4f(VO9 zeG!Xin0KS_kpjBq``WvcVd-uCKo~_$KM;^Oka7=xxn_#-u$TnVThD?dAD8uWtW+`I zTd?{O5ZgRe=;Rmlf!q`*${o2_rIyH!6WwEvukIt}Kkip3LeSCl3aXgvt)i`JFWGtg zc7JVHk|=Us#dhXq+RBNbTTABHjAwR*|MHtbdvD|aJ?Q^7!M}S8Dh?e0f!uc{1;`s~ z!udrO7+xy)P9I{LGb0Rq*H%)ZV*BFzwH3Z@lAw2N(39fUYI&7PT23Vu=b7+T*>Y)n zn4^DDHK)T?TS}MMTPf4Tv|O?L2%EQ^2vm2Y33>Bdvnqt}x1*EyDfP$h zAxj;VcS0|bNGV9680>+GO;A0Ci6`w9->kLP%Trpe9K3GN3hGUYS~&7sIM)3hy+Dv) zVaF@(U?+z}G9M{tL*H_z5B8L^h>g8+W!40Xci3#tj~3{xB{xLaeEEuyokCu9e@!?W zVqE1q&Xcq|{YumvQ!hcxJK!W#S%o66YA>1vYZeZYhFH$;R;;&p)yrW8zjc+wh3!Bw zao6767dCd-dvZrF2CpmKNvPIMLixnw1DrrmU>i!924yp!_p=NX+5{wTe7|sy9IPL4 zlciSObaA=xm>ab`)P9s`nGb@0`?-I>p|nqkvAiqD`R1VJD0G@N!(}vBqYxz(>n)pn%GcsS+!K zojhevyW+7py(=4a{an^0Q_`)|r?C_P)D!^K&@f z(ttBKD%4R00*v|Eo!!BAXQX&u3q$ixKU@+6jyA@5l!SKcqLwc{m?NtQ|0NetnR`SS zJ@>TVNKJzp0+UP}fz(XN2tS$OcG57#*mwUa{^OrZ&4XSQ7YlLy4H3;tOoqFKrs`tD z9Twc-{zLAFsM5|{wKE&OkvZSh<-{-d-y!J_el1wtl6`=15y@>p_V@(nxdIil5e7Qd zp=A1s(fdlC!V`VYku+%vsQX54>r>wS32J;h;sFDDuV180Z(2EA*Gf}tG$%_6@@+d> zU!lW$AeBZE z@VaWiRuj=}Qyud9};MqRnXn-^i*x{Q*^t{Ax^o-7O^c!E*CLhso5tD+HG;Nv$f> z!Q`E)uD=$|RO@}MeZaG=DJ|mc5Ji-OUA5Nj+ksH|{wzA#zO?qT<9u6Oc8BmJWs*U$ z{J}KUa>cnuYtGjp&!Eq_rz(a}4sU0+ngs_or0FlpPJ36yc1&a*B<4~$na+4 zUKejijzAi@A!Ukly*jW$xva6|c7SO}utk0~@laA`Dz#$p`Q$)EQk;+cV>g~o__o}` zk;sgUMS=cQf&HzH!tm^JDHU~GLe1NlT zU2O3^-TvkAsMP7)>{h{vO%b5m$5#!EK+#tX5bQ7aXx@C0O;9-GBzJ25W?*h$usM|Z zP;i+pE$37F@87?#h`e2CYUUMef^vzZo1lu2Bm2L~ph3pC*w(&R+k>2-iE-VY3{SCN z12TU>lqx(a7}9m+8T5gG>7QPk#DWiTlMI3!{dkVNvRy1t6EM#F%1W zVv#z9WNj~#=>I&v@gHgw=j?p_X2{^Z`+$-^N+^@{@oL_06C0xDXV5PU#_LTA?5T+h zwdJDat@t_HgM}5wX;qekvW^-%&o->YVm)sA#D1Y$$(^{nWd9Hmnq+f+BOV|om`aa*96V$?RUQU7vD2v5onAs_ zW`)l8x93WiK%fXe_&Q4>PEJSvDNEZ$8$W({Gvt;N*B_JN z@$epM`2I8p6|IdQg8CI^vmBGfI$qc^xJ2qzW}}`jp$?xkd>V#(Hsa<2R3b8YDQT|Y_U(es3LtD2BH8`X|6+Wpx-m`;FppLhVd?~U{cZ;ZPy=FuayfUf#HNQ+h{J& zLqcgoU*s3-pyU)ro#HG9iXE=Tqq$Lh3kNCpH^L#vgZzL?RxZz+#?JS_W8=kpi(-f4 zk8#{im1cn^-I@{}Pe;f<2`MQ2UPsaOwp?!OM1D8(Jt>-WRr6`M}uC7KrL))Oc(S{)ZaK45ylZY*VuRC3t`d+07hGm^=Jk0L-(^2BveK@LDUpu73l=0$O0Cfi-hJ@WdE!f*+=?oHQ7jhitH-+49xNDq}vzv^nh= zp!7sg*^ATJt#(-#qPVJ`nEZ(xmGxv@tE-Cbc(G6 z9U-sA^!;MpYE~Q%ibUJlwpr9@wuG!~7|Ewca-Tls0-}x{-P-y7y!QU}vW2!R1%i_= z8rp@Jg}zp~QCJ+7MI3Ypq|)0B1H>4u$ZXi^=8#ihu~I;J#CP%n>QS5xs@R*ZFl98Y zdS!Vo82z(_Fo@l5N>)}^H@OIE&}|+GU_=ber-y(wRrnN2VB*{1lskQ)=od`-errZA z;+B6>dH^XU*=s*iU}iHrKr}En_WRvas;wo}RLTDZ?fSp#-em&eZTIJB?d5KPnCM4U zg;4+zN421d!+z?#6AQVNkd*zl2a~X+lb748!B$2r+B6j*U3ZaGWBs3sglX`|sG2;A zrN>XpUyyN-X+TKu)K95~>rKTSmObz(-ja(81zGGqG97U1^v4Vz$p66(H77N(zX&j< zGx&&L6QX6^FljTX#j4}Iu$s*AI<>9V?AX_S`P+3-%t<~0&U9Ar27QFW%D13IF3LJY z3}`f>Twn3&TmHn*@bIN!XJ~ve@9E5~J4{KlCq#Gcm$lT-wnl>Zy0HFC?Y66{YY3%x zqlFs}z6;DgIw;3Zfy+t-Y6e112euzRf6j-M1fz@LuiGvshb=d**H3x3b1^^N0y*o3 z5z}5}dJ`yOmdhA`On}a1sSc(JhMDJx>7QR` zBkG^YS^_IosyzStzUKmU9x zkw%lZ7awFr7ZTbfd26&t<;P&^a%w)MI9^%esP>b3x>>-Jl5tG2RaTR=So=_XL*#d?Y;NpNGK^Aa!Z2XJND+(5I)AOe`FusTV&g|y$wB5f1tOo|B6+|>s{$PG4x zB(3E;zn6YzIAtjqpGBplDzhLu;n^mmpJb45{d&a2#9$>RjsOYT*oE=X=Mon_{@?y$ z5d1er`*$5Qm1?WZSn3`(@E|bI(FYl*`c%XDXfZctYpY;DZXgw49Z->yl2&{UTVF)i z)CF{U4l#)$t$MC^x#XG8B}T$9`I-OaODssFvi#i(;D1G&2M2$rL;JbliKGu4LpdDZ z3kV2kGWfHG@_CV30O8V~wZGtFYdDOdEiZuDj)IbMR1uT5_GN6b41?fbjT!#duLpiw z>H)DnGe0m$8G-XCE@l7%6BF8?ozERtRw0O1thAL>e@T;~#Mk`5)ng z3u2Jnm%>H<3+FY;fp-MNQkm>NhX{A7P;G@b%-99ts|j{ujvs?>a>dfgn+>`K8klVK z-5{Sva^y0i?@BepIV+>G!WN@Ak`WYnJ%Cf)B_N3#^d+(nWr$+NfhvGRGM6geCEL0$ zDlxFfs_6hjHN~q}KN3@=u4fzF8fSnK`3P3@7%DUDx4OMlf8Yd~h+0-w_Kv987IZRX z?_Zvek@SI%&1yADSq#KrF!p^g0s9iuHK?d6f9BmcXEm$?aL2F1VfYRcFt*eJ~ z-3OnUtDfobxP*OW?JU{%Qpq#tN5V(VF}z|P7ZPFdT_i4 zDuXlQgZQ^5FvSH1KE8UPslgTP%a@_RLQ%xb%&hwEhW27D!Cb#1loY1R*(d!BFo^*^ z#Ei_$PEfeb06Cc2n}<5^@JeVb6WYLIFmz{U$6eOr0o=K=+rB9}I{Hw9i<79RDEfp( z3?{k6$ZDD3^uP40|4m=YP+$+bJ1wBkxM+n)ri(&j6YZu*JX)@C0>?$Pbi%NuxbB)H zF0YXrG2NCW2zooBy*6<@LPYa5Y2SE+twBNjeKINfE<>^iWDrhlWp>icD%BH{`4 zHdDhWAsn&ufd|lvy{7{>r>TO4MKLgZ;|A27q7GEv8xl~1RX!<9uPf-5x?50|I+hV8i}BT_o1yQ2zojKN^{UWtRic5yDsA zf^;?<0B~EC_5oaE$_qXnm@v~EnC@_CX-NX-2++*BZ!V8l0b2rQGgl2#w@jcCQ{sjh z0i7oBfxwS|+fe~bujM&U%h+vqVzChfUSJav?vBIT?ajP`(aZozr4tPJ@MN^m$v8I4 zG&*72J$72P@=y@FiH2S|1(d|ls%PzUv!R?<0w)`!RvloJGqO9_4#e`b57i>5B+EY_ zpTC>A<`OzO>|Xd}rf_DQ8jqlJ{+FL3g^Vhk`Way2WC{)6sot z?kpb+ld65Jx?qFV4GuQnKDA1zu^*+qPNhUSVtUWZpfPf*X zx`}vr-z5M?i%CgMUcOyD+YKh_|AW(`&xU_b+8He*sfNuClB{E`+XTq6-3ze z3#tJU39&}Bhrcs`*N_5{!wULtDqZPA)&v_y&j}-Z8S>Lqy>xG>Oi4T?*-tJ zkh#xz#xYE!ZtVuvxA}^1HgKLaFd#Dv!?~=0%g&}Bx8EBN9;rk&9YVb;Mi-djaaB8` z-%F3{ICRDDv}D@fQ*LgYt&NhVYuHX2OyR2G5Qo8SOnwX^O@J7Xtz!3cz_aJ`1O0!$z-G3>1d4p3rq>!of`Tq>PxDm>$r`t~R#;GB<+$Qp;)gZS_*X>lIknL+OJV z-1cf#0*h=%H(*spw>se=$lM0ZF7GH{LqD|S7t&@AbAKcN+W0x__VUmFv}GfNFH#0X z5KIv1^T&v!FiMEf)8sV4Sd^XSCy}IG-sp~TtaFv`pXp4!2#c9)$JRxektP+$%k%g2 zuW|fn^fv?SKentR@^HdK!J=KknpP(hmXp>Cp(`ASRbNp@F9t$Tw=dj-QD<#Pace&y z?J$w9f0}011M3^uQFV0lN@Za=;9}gFcK-9%ZH}UhXnzcxX^HnI`{YUCQa)c#&22yb zCpW)4bU%L@Op%-1csDllxSK`0h=ND5XPur{W3KJdwE1-r5;CD~VXqQTIx7{aKM=SA zhv9-0Ei-2bi67s{*8q$(4%qZsW4FIoB5H8`Hi@4^N4mPYdMf(?O27Rq(3)TQQ2*+` z`&b$L1)Wf{gaV=24@l=l0IBsc9MOa?B8EswNeKoH4t4A>@S4*HRNy1P_wNQ?7b{aH zMNz=NY#f&ui4$`T#F>fczsy_qAmdIz-i;kxJ+An1e&(9SIzL;_BE|DN@}0s@yV2j! zCa5OY>vI3UD@5Gkw@5vbu2DMFwR^&~EB8mnaPp|lBNJa*vS2zJv8GPWV08s^Jhjl9 zT7C8sw!jozpPIGH-?xgv<5vaKlw#bB`fZ7q7+C0ZI7#gMS;54+`ON<@;UI>mLXnE@ z$1WI>B^moXO&;RLAWxUTASV?W-IXv;7ru)SvPDEDAgKSL>P${Xk0m#4^ctV|I1)zHv!y+WC&Csz|NABWU*52POg10G3yfl3 znC7Yh<3c+f>C!OSU2;K&L?CfyLj1zH+Nw?OK+`CbnWy zJiYjh=v-%a61WqYNjHm2ud?E&IRqBKSTPbUk;oYakcQ|DDHFdn z#+`n|fdYoR#L$n8t~nlN=3xwT_}17@8{VG&pWM6X{+aH5Cq=ivtC!Zl3mCQHVipfJ zG}tZXXilg1Z)yn|^z42RC zH*?O%<-@D{`!2MU7ldk=QUw?kG+Yv_J5%&cTUFW_W~P|Hx}7RKIx78~+3NW5yi>xw zj}7Vkr=$n1@W4KKTo#K2o6mFNA)L<#$}CIiTD$$|Q~WWf=kgQN9J}MLJ0LTq1A6dU zx`2RyaFCoDKlC;BdTRua31dVDCZX{H4<6aTS0upzv=4$sLNLgz8ra)Q;v4~P^A^v* zIEbYRyNMk)NSly0flN3CCht|ceO*rK44lCc5j~`mIE)$L_w0bT=CI4s-Gi`E5HrKZ z(wb+olq4i3lckyImfZe%7O0@APfy|0`tsio8XzA!|I`BmLh%P>}(0vPyh|gN{wpKj&Hvato{*CA92T%(Yav zRStdr0*sB}?2yxy)9`Q%e}DfU1IfULQOwb?ruFw_@Ymf8?Pn9fzoA|!v|kxDva4JE z4xaVOa^ ze%u{Pm$aI1omesbR~9Q{40nN1WN^&(N=`?o%*uK-;W017J6hu3B)M;ezXMmSx9?sE z|E&dI3NOSNCJ*XDpguoAy(LqYyp8r1fb(fID-BvwhqC*^l^UDT|HUrLdM*qz@LWgfz-(OkUFd&C?$^O5|9=rP7?R zw?-j>&m9}9_)r>w&7uM?d_Kfa08+M zBrusJ!h`K^L`(#$y1)$c`A-sR;txo;ClJ-Q9iQF-Aj0JLd-LUZjpJcGS^GsC_^5Jy*pWk z?YleCjAET@W3~CH9%Y$Gv<=%Q)owX8H$9Qn_c`fIGwN)v?L3$F~s|rR!y9u-H-ZcGdlgWoCQ%KpO z?W_fvvZ0Q6K37I=3nIC7*Qf75yrr<5Q^ z<4-eLTQ3e~AbONsZzPIFiDTZxob=>xy=XH`X+x1lwj?B!x9ycZV}w0tK2vl)_}tG} zs%bK}lFjqohb>PO6JE{nwAkn6v3g0_?wEd-H>?~r4Xk%F*K^D(JC`MN_|uRD!H2K6 zhNolawrIBKWmf+*Bz_L#?Pfb{-_2$%4QMLUt)5DnWj5|H*uKQzCxz2S?B-RcQvg2eaarzkl)*ia)|$Sjhv9Jm*=cmRW)11zvr_595)q`w^s*y&ZCcO zKeh0{z7%=U5qw8CF6I##_$4vQUR@Ae?AuaZ#osQrUwMc7km6^u&>G$PIDdh zu6R^>-G==#|Hh}UpYdgX?zW1Rw$B&T8NMQVziNyGgY?*dQ510&Ks=*(Cql>%RWoQ( zgnLSwDzMhtc?zB8b`lDRx!}fHd9t`ssp+p>e?2)VBfp;5b0{;fbhX6|{dmT>>u_`w zG~U;dObynrl=!9k!$orPSVKFReF}H-7))8o5VqG9MX#Lhs>&OVkdWR+hGS-85EAV@ z8|WO%M&5aiDU5RJ@cE-{FxUBBd#Ty6Qi`cbS`+*7dr@CjgR}=+w6&G+m^jJo{B&%3 ziQYb6e@fI!SM@O+mZu&qmnt5038&PKD2_|ntK{5ld(=`g^7I+_DbdD@XJ@ctWC#RC zC$f>g9=|8M4k55HmRILIGZ{`mcB|XO+Z?E@;5sQOPHm^Y)X@1;N1hV z?k%qIvxeQv`Jr`s!`Hu^OgPD%lIysv%a}{o0Y9G$(?aQ!w)`2_c#L7N?fWw>kP8{Y z^@;78bS1A}9rXGWUL}vwmu+b+cfbyO$rb$u9@zUU+4l)e-wD znPBP#PAYAGK;fvG*6ZioNK=c)Q}3x%d-4OCZR@miDfR_xKro2*BmO{N-ayzrU{{6LaR%=z zsv7?pr(T00n$&9E-n{y6vP62{!!hpH(2UZ}8gF#tT*q3ibRo=AdX#5L8LcnRwXCaO z<&N#TCv#JfR;pGrqGV_N$iXo{-xU)V?;agr^`zUK>f*e2hCZP@58dcM^e={ZiHUcw z>1!iZFygos@@mYtT%SgB7XHj&l~{>|O$K0*i7pvQs^iJF&n8x%&Gjb1{nZo7W7@P~ zmlgOk-r}~Hg>dipmyAxffx8)HkB(^A1$QHLl@nYEJ0zHqW;h$xZcHwZk6ysqt#m*4 z!~oU=VksVMW8gy`8_Z}f6R>t0v{Srd0PUuD^>n2K*8F_IvT+Td`PJiia+hD!a-TWd z1g&OBgVS)ZS8_~Gfe+l_awvRyZVTVWt?V3IVhd7$3N7%s55?|gltOCBw z=|~o97p$!-bOK!@z!6j1pP0>IUqv#3p|a%nXOn3n<_7R(=SIfIVBf65!1wwmID^Bv z?b~|u&y3UYM2%^Ourpv)6#Y1=(GPU#v#s56a7vi!zz44l>*oWOEZFDer{mu+gBy_y z?k)M}Wc$4a5gsSmnZv>cc|p4I_m;2q@@IIbtpH}M9RW}7;%)B~DVMvRY8q28YI4J@ zao`gx)~^0_Tex-AEPvX&{_eBnTo{%C&-zs;=GO7pLoA2yJymzg5C}?Gbnh~}G%bGs zB5DMwOZaLx@%r{{ylYv%`EcLt5R`qOr7~z|r>nRADdvmF8Tqznd;3Ez4T8e@MUG9K zyt0{!y}Yy@h{&9iZ_VxH$^2djQD%#)Q>&z5x*hfC0>RTn_p9d%tJd!E8gY-}%;Xgmo`?3AHvvPRis0TWl8iT<9uXmqPd{mj6eH13 zJgVIi1JBpc6SyAXJ~S+-Zur-2UQGkczk8XyA=i^x*T6e7voSe<&7E4B_vj`sJUPtR z9Nbv_P}1`g*H7!){#astj*uBF+1m#mIT&%ruddWK7W-T_o1_ zyBd~8-6>TjD?aVlRxPBXd#k9tQ7)`a4?oXZ9~2Xv8(lH7TaO^Jn||Q^z381m*dJ*) zfA?#vOkNJZ`s&8|gaDA^x_iKab(=M(HFL96=4a}JxjjA+ZR$(#iS6dtbYaT8$vSTx zHqOUENxIXKmxV$F09@q#jn`p{ZkHpk#GHr3)6&UoRD(HUj-!jB>DPLyrY3g#dg()n zV+tcT*ArirbU}!hqPY=JIs^CJ()!0Ma3nAhnI%5Wu!;2Hz7zYk`QzQ3{CZ9qi@dDB z(-F51rPf_z$WyvO+jLyYLMZ;@zMiL;_b$M1euvCIz%R7Lc=M>)iC7$}5<6pa`b80& z?y-;1(U5P-rlsY8*E`Mh?k3yOHc6&s-)bg@9uZt_Blp}}MWy>v)vqUene82Y-Q(7Y zW%|{LPHk+s=~Jz3(Cre&Z1PWa=0HfeZg{j2#^gFd!o?&x?(6flLsMB3)TxTx&N7J_ z`5?I^dqbo5**n|!CyRpmOU5k}q;yK+IKOmevrNJA*D0F~Jqaa**TntF>3!Rq;UhG% z=MEB@2+Xdr<^@>RK`!c!X(KoHGC22j4hdYxW7lU?M>8$wn>@09*5hg=tR@aS1N>Hd z-X%2zW!?+AYd0w))mn=~!i{^gD{vKSQ{|si*S*+V8h{PKOD*2&^54O{+ph=KM<#Y$ zB^6gW+BN#{IK`wul)I#-*R^N;DT#n9JhyKgHM~?0Cq7dAC)MG-@C?qjZmx+f2muu3 zv>g^3JSu$YOFwOKzAR>{yKo8Kw|TGCfIF!k8k6*OpX>h{c!`KHe}9I(VvxPaDgA$V z@Yk679(kg$T$3$M_8`<+iM0C|QrW}G)T8G8PapTr<|lSCqzWjUULF6V^EG0@H8}U~ zq+pefwtRkc7{@xn1*v2u)zxjYd~`NK+2nos;Yq?)xaP|0eZcC~Q3{q?IF185`9l8N z@xO1CdyjJc`-Oaj45WQ+Q&gSHUN{_i)K;Wd)fZM{(4OqhDc&8;beCGsKhzw}bWy+T zHhrhM^kBH5dW*bTT=-JXpK9*r#zga`|9UUdjBqNB$}zAcSy5_z-{rQz`D`|%CO-u) zU2l4fLp!Zuz^jb?NX516>A8Fq*^6+}H-9pU9CeU0-Y(7o5 zaS(TEa%?iykuEj=(wa30#jp$7nQy0g7l$pj@W8Tt`x7@sg+$~Y;dBB`FU~p}KYO1W z!?AkrBkML7!`ZBYQk`wv*|R}Tb0w4FK%2zQaxtSqC=K^&|Gldy3X$Y%Lr#@x%!@g@ zmMF0YhpBHgs;9J8U!n>%WPe##95%Qa@Sxj%;=K2BNtf33vOUjyv!zeIIXthAyPJbL zi+;k_S^7mSohoi*zoD2yz+~)*K=Wh-iSkY39y#Pz@hN!#- zkE~S%l%Dr^XlTR)1a1%j?<`e&;<3R~zVWxU9o_fL{imzEugmtT8*U8SV80g98|HTa zy)34MEmUz|8=VG@4`6u}Di2bkLha%`M{qQ$d~*BUsx)0o?l7=iNaOi@Sqt9yx;X2^ zrjdz!-=nXZUm=TrsU+PFB8o9h(ofBg-f7WR@f@MnyUp7uSNl;OP!?RGA-DIIDX@4t zbSrl{V77t111P6c)$*qFaZIvGH+B4+*Dc2L6l{8Za?-2Bu``06QKn#3AQ9bm(WW-{ zq+n&Flu#58N1 zZY;}*IO|(-8AphSinx4xNceA)vA9n$v{y2c`6KmuoDLV!+flUq82N<=h^bnPn9}%k%QLMQXO^VF?B+}MmpX?`?Aj2j9`+{ouD;&kX3UANECND$n+2^z2@2(p zskdK;u77Fjs=(;jb{=he{+m|IU$-l*{6jJTHE49j{DUJsUGg!Z@cjBnP;SN_boa#` z+o+v0)Iq%!)s*yxC)>>QGmOP&0)m2>Sq)xG=j?rBIRB$g_4j(!f7&Vr#}uU>IPpum zP$Q^Y5N(<-ZRaQEn&;FV)Z)3C$Tt4mn4geBXOBWcfkb(2sxs+y_Gdqh`v+EaA&K^D z-F={#sj)183jQ#|N@FMmE1ty|0~R!0G}TmMy0X0^j%^u<&^`31r=yrK5NP%B^;Nzg zEyywjH`59ef}>lE#c%)XwkCHQDP_E?p@YVnh}A(@X(F*6-S~m@ebLL^DL0u0^>PJ} z0!3E(LzK$EQ|cZzucsgG=aFZ(3mHX;gLKI{+c)w|m2fWVN5T;lTTY`~ZXXwQ2^mU- z24*Lw5)P4$yeLdVo@k!~0n^PQalc56t?8rf^WvP zS$endZIZ{Zx_XdIr7|PX7e8-5wMmE^cmfw)=}*hTIRWn>41#&ClaoNt>f6;yd`0ND zzM8x?{%r%4+G1L+{Okz~8WLYHaWlyhV->zbDg4CX82j#L zUGmD!XXTXne_4P4@aPiNT2j8gSH6<#aK6f*tn~DEBaacpGybKeKlKx~j(P&wHwUHE z-Q@I`KfLn(o*_s_J!#j5-zse%y(#=(r?Z zKV2>2tXzNhiG!%-HR!jp=kfmGNip<4Hrq4(Yu-(eFaA=hWoVicHeCZXiK`Vw?m7$H z<$VQ77X+UY5dPe+hu7U0`b7VaV#VLfivNCVItJ@OE{1=4&G9#<~JFJIDxDX-t=*YVdm zqx{N#$THCHV4C5@0Kdd+TJQ?9C+&CL0gFmR=sQn{6TZCmton8Ao-O~PntEq~=8EE7 zeyFko)tp#IH-6HQ&5B~Oe-*HAe4p)1=n!SNQ~(Sf2VZF`D?3D0ohU#E>T&W_(g_b_ zIr!L5mb(Qhda^~hPwy(bU9*#-4>Q~-xNeDp@7cz4_=mam^X!%eXbtZ1vOWSYNgW3iJJOI|#m4A}JR}pcJTY(r@bO#pjAV(lj_( zxQi~RzPx0zz9ZXxvtM+Z43Ak!YNI6V$);+=+qk!TmGkn!*T+A(uE!8c71sLvi^=FxD=7$J=>Vn{Ce^VQ!AELaZfHJifJTQUQW#f&*Xa`vd>X6vmAo5!e%ndyeHFETryiBWjJ($ns>LE ze?o5<8Nv=j3pn5|V3#V{2Yp zuF|!5`HM^3-R-RIP4>LAbiv^A6&f^)(S#Fi+(DT#Qmx)HB9I;QD>8f1<~A_Zu11)< zDZu6L(wP=}o$7|Ga(--Ntt#)vbvepytlJqUZ0tXDA^MYsBOR3vA0$!J&j;<$c63X% z*d^CFGnZD8&~qZs17x(fW6rZ~hsAmQ|M1{6GOaV#im;*%I*?!U-~(c2VD`}aEjyZ< zF`;!M4&j9DuhUn%6urmo$L-hb`|CeZ;St8`h#RW!N8&#;4Q<+diQT;U1)=eSzG?aQA(3>u(`vh}lMUiXDEV+vhX#%H z1)b)z73xnF+4R_MoWxOQ>?`ztWZ%1ST_ez9zbt`7hP*y>M;HGdlDX{~o!6g0CP~%} zC0~PFX1V=zUw_r)E4nErvqTqLoJ7~{Fk5anKV{n4)j5iCo7J0I&Juy#ai;Pyi!z#l z(6hJLwccgQcuLQN;Aq$2tWNW@`(?q*L7*aX$rG|r5?xUtNbm*KF0Zq~mCe4c?d=>{ zc$*T|uKrG_$B=|j9Rnnd*pE^wQ+^zqOgnZ1CwogsNC7fR7Vz6-yc>!Y)|_lXxDcDy zmqcb5j7R0>dPZ52BA>n8Jy*r+;35?@(2@}zF28imr?LLi4uorOI29G}&#j;6C|bn? zhdW;*E4AY3AyoY%5BoR2c#wW@?QL%Pwz%SlFl70!e4TH$nB%%y-U$}m4yQx14ZQH_K(=6QM+)AwC)I^& z@q3ISF!^;Dp!VCQ2GCh-P8x3cJ<&-`r88Z;F}>=MNqckxX?Lxo5d&aAsm?S?9-b_Q zMC1c5OSiQ;p_;`t7v}9Acsg^vgsx^l3x5llIx!*;{xX+NGtPQ95)94Vn>@hLOp_G}YJ@@kE`e zYIF3}E74u+H;~RHuSv>EZx3oa^t2?apjeki{k5$7uy>WZ9^tp z`4M37Zyw=4{-j9pfvDKfHDRT4$4=Uc1VKYh0|E9^hq86;@;!hUlg5UPTteX~KI%V; z$e=ulNb#^X;sU@rWSUWYX&@DLL}a_3w_K&PYM)PzEDw?}QDIZ#z3Woqi<8%tgN_~WKxG+3KCFUoC4%bJ-t2TG18_ly8V690wH%l%t z(f^G)Au$>&CQ`-MJNMXX&btH<5_pHxVpCllRc(@)j8J8Nr;e~#;yBuW+SmGs6Pxi$ z_#)x{>Zh62{@WOFxo+&e-h$hqA#KWeNpC&HT#2j0WzSQ;B7msj6vI@tqk z1T^yN9jdtqZu8=MYP^cqdvVKF#x`+Ov?EV<$AqZza;T4$^M}Hu;-T+17As$+wh2nt ze?MN&+cwwZEbnh5usX=;R^-hqIU0`=&N+JeE?(Jmg+t}J$o0D~DZk?IAhL*s9Q&W+GRfX*ShTT0kdOzZy4`MWE8q~;lan|^I4T?e4(j{*7MrV`8yIx(2Fd10lzPv-luMdD-bn?5{Gd! zT&!v77;-Bl@Aqh@L4-5fNN=X7DrLq6JxjR-9dqC6jt!@nRcke9mudt?@7#NsJ|7Vo z`z#^bjB`Ie4w9PF3wyzPMfPmK@Og?aKb7FCpr|T8vegNxta+ zk#q}92JV8p>n=fokJHfbA45)sz<1XB%9!6-KcbASW&RGG0G*b{SBYO-=<}FfsLoq$8y8snEq*i$x$55&;T>7&2ydSMyFAete(Zd7=wnJ9Y6+EepPb!u3X`*NOTO zJoNa5Dz3D(@jQ!=Oz1@keAkh}7mxFXWKCO@Nw23}M`rr~s#dBAkViQO6agk_e+mgP zW$C>0aaZf0YwTkI_=ipuh=}57zkjh+Ex&+r*^5^QdJ5j>KMu4ZGXF4`si}@*X0hgW zzCy4|_IR6w9@l(*=$3)uLZ|a-%u+xrhEcig@W;-+-mcq5FmvD^%DeIgRPV(J62ppaqRSWxOwRJ;^A05CGri+Jy|dJa2_P5fivc)QR^ zwR+9ae$`m;GsJKn6w(Y0)HO*H06yJk7L#a;w$yS60Co&v6$aYn*nQV(l>0fu(rdA=Q~-o72H-xd|qsF9b zK0e+zY#TwI5QO51$p1!IA+dl5F&pjw!`@p*#r14kqrn1%-~kfcNw7|EXxs@df#AU{ zxH}2K0yOUK4#9)FySux)H2OBbbI(0F_ug~9``-8O8+#AN?oD;|Zm3nY)~Yq1qlqyoHGu1S52Ps`dRO*9xPqyq5r@~si~2Qs?^RR|J~ssvdos}?GOQ% z8shGY7bqQxn6g`)gqHBICU4@jhNx!eZUrKP&>NuwCxhh>xGf;#kWgG?E}#>3cQsZ* z32JJl6{6M*HqjM3R_(-r#3N=;j8;jj-T73nb8dnXkj>*BbVP7(4| zWg}TZ-rBlmwKAcqo7vL+t^e*y^0M3GV*e5R8C#Dc2~aDuaKOG{h{A?LHQsP_;mFt; z@3Bz#QAzm6{QXtV_$;T|q1^iirJ^uS+Hm;MwxI_xwyz6^qkf#*v1(Hw&vPHFipT)D z#G;bsB*kg$+`T(s$0b52&*TQ*`SilkejSxr`_`cvEBp?+1S;6e)P1%k#WZ)ab|$Wd#kKG_)vWSi#^6Wz&?H1V5sFp#Tv~s{ax0|S zboci6k3#_j0Wu28n6oQ^rW~B*Yh?xe`Z}m1#%=`yz2SKZNAWY-gq7{UZ?|PUkPoa^n)~2l}W`_%YC6wFpUgvRucd& zncV95iI(DU^VtO0ZvxkW)NgG$t-s&@ey1n;@%K$4a+i~(x!=VB0|Rz^L8%Cz4hhY<)hwObbqp;BH`MMaE7p9r}ub?Iq_$7qHvX8_IneGXbyS5e-Gmgi<0)MrR zame)5pWqLd*WInu_Ena1w$sqD-H}^WiMcHM78r=9By*v6U4S1hGY1o@PuhINrR*XJ zKf$64^IOFSX&$Iohqt)9!j1t%&FB(`Q#wONp$Fb{4a++wx8(Wr%D+s+VqOs(FBlufe%4pr?a z&K!rjd1qjQ$T9A&hbXa+ccE_E6|r+67oHLa*}i^eBkw4lHbZkzJVIsJd1vUwu5D|s z!2L!T*usX*%X^Z;@$x7R$c;EUt#2fSxH34`V4pO~YAr&4Pld;TF^_KlFK@f7PLvr) zUKujp>UBY$iu&s!5nQ?!fIPc1jg%HS-oizyi(Hb++r*m>Rh2i=lZqdAKghXISB9ea zUQITQt=4I`4SofbRT%-%?@>V38{jyp-UUd~4S?F!*~j;soHMlSU99H^K)q0={odp( z`Y85PZ6^&N8RhW+HF{FZ^&sN169>q-(@3sy(}-XBExjl`7|HN^2yPCz|Lh7dYZslL zTzpHxCQg)v-oAuJ-Cv5Ltz&fG3MIR|-x$*dh3)H!QLS}r$&$d?%?NBTXFm8#0^Z5# z)SPAHq9#~ndQ!zlwXLNQzbyHWc@O{}(837&9Kr7r#?Jg5m;QkzDDWB6Agx&Mhzp!tThnQT8?F-2)@Xl<`XB4= zzko@2O?> z4?E&FQUw%b&mu2+5GH03?D7i309YV3V+>+qElUmny}pA)?oa;B7OnINyqsegg=iOcKfns6`5YBLGiiyLnVFT6qlMyNu|XXGj%H;beIXJ2 z2?O_B900;vSRUaGrsf(P6#tzIz&HdiaW@R$*atwVYHnfC(bVtWy;A@{jeDfr{F(rC z^!xz;SL$D&)P(|gA4U#FKTL?ekQN9;|M~?g^ z0MMFL)c|-ZHLG84P@92gXRW^}#2}G?nW{RZg#g?Y5`gM8kIhV#dBXl&wd_$#tWd$ zgsp0&Y1C$L?rV-A@z}j5+TVHr-;(RxN^I%YjBfjk&tL2d`wu+vFPn{MzqP5A$q{Xu z-NW|0_DF~K_?O(wR)W6=sCf;N{R8IkG#t~goq&28d@k6*lz%ere;TxZ!oO2tVf|s3 zdnCsE$(M!EX&wOF&R#d1)wEazvOfcEYeq@^cx{Q&TYBv2WN`?{Gp2&JVH;O{~}yMHS4Z$(9V_u|D1c)=I`=yFYf zkh{4ofVsK2{zVjqy6m-|$@6uo#x|#_2$*kOh~Ij9!L7o+_j(P>CWQ1Xtqb4)VIlEH zCS`2-jp5i_1;CVzON9aQ5M1IfhsNlba9R$B7%X1Qn?5xeMDSP`r2N-j9%O>eAN-ME zv|KOuNA8=Wvm|3oVZ_|r>Z?%gpCHC;g50Hm0O$bh1&7MA@6AYt*xuP2eEfV7T#hDS z7oW_=3j+b!_WRpT0+K|Pa@^SplZ>rrm?(pAH*N80iX2I;2YbnT-+&{{rJX7GV=sIF z&fQMQr0xsqd>jz?-xsU@lS%xu`5(u4RU=`GzK4;2MtHIE8{O|3K>ixHz$PA&xp*Nx zLxWn?`;GC;KIyuOz2zr14^m_y)Fb=V{9CUxXk-Kng9>)!H7OduwlOn6%_t!*K72qL z?KRejDUeDG`wgH+*sc1Z;1_L779{(|y+$I{iGne=(H2I-*J!V}VMEFG~Q z;hs!jI27RRI{P(%1p5W=2dewc`3M_%Ej(5)04*pK!Hz|5#}xNPslw1}R<;sR_m^!h z1>pKah?fHW&jx>?w!TQj_Gc&U=l_9>Bu85OOdELN@AV577ODOTybM^t*oFURm=AF9 zWU&PBn6J;aM>1+b*ktfq@N4AGYu*p?AvMeM-zkK#{cFFim0G5NHhbN<`fQ1gxt85i zT@K+kkLntor;Z5_uvuRww*8r;{XaU1e>PB(dN!CZ-dTgC&hdfbCw$^O<^{|ME@?Es z66`vr0Sx)G{k9om$W3P+@!*|Rqu;YKX-Q+*;HT>wyxMMPAT zLB0L)!Z4jMm4xGp0+=zRuTV;1JHBrFiV){D{Jd*$AvlT%^D)CqrlklpZ`ZtFdI$r@b z0u<>+fG@#hB;Dsp_s4~sFyzFVd(#&l9M+#0=4S=F1&<7iLOG3yiP-tA8_t0Y6#&gy zVzR=zdog3p3SPsmJpVzojkpEB`ohw!zlJ{&oiIdy65i=G%+EMbbubGBkZz-gFNQ1j z<}ZOO&pr>%_FV#C0y@itkpJC;^5^98x9e10*yKdomAB|=&j=S*I6@);$e14*(WpG? z@)vZ0@7CYNl6DYfE-=ti(G0Q)-BSsX(XKCTf{X~E()!2?at#7jU$7FPBWQ#79K`7_ zDTP~_dB6JdH*;)*O+q-y;+%DsruExj`=@)=W5UMfVw{|usM&cr^CRiP!~Md>Bzr<2 zGH`fp!@u-JBg*e8Yx*|z#wd}DfbDCjHzNA3^AkgJAa#&jdp~y98&@6l^smd@9qsL( z1z${~QDeMMXxS-2|R-M zmoNa$-o}dZ4y_Uj{&Ro^3=npwc_Qi{ z#y%k9=5MurO`z^i`rdIG1svv!PEuT*n*!)2S)kzhf`u_S7K8k34ao!e+rRU+z;vZ1 zX-dIVJ^f9;Bfn>N3({QH>$RhK0*(RGX09@9rSnkMmvl8*hCe1*AUi`UuB%qz0Kcpv z|M;=5@z~^5X7X;@!-S7;U1Ac#e=Byi8Qhy*alfW&pZWGx`X8>&fBHOsUhpElHga)g z=GdW_Njg}O3vuTdX~P^NW_<=Z!T3Om)e2BQRCs#;J^_Q6`xv|MtJmn}!%F}`B7*#z z<=>X+qNM5V0AGupC!iEOigpJC01@-^8Vs+z{Ndc2OGyM_kNr= z-ZX2x=Q~HRM!Et14MkPRXYXy_uVpZFPFKsihmEK>o^KVHgn$9!;ED5OLG!Yq5WbPLutfvittS z{cX{i-r%?5WrDwgasEo|Uys3gmo4+pQ@;R4j-uf2+Qohht$c*0^=SF?a}H%Z1F3Z3_nvCj1(t1s8FLu0leeq<0GM~n-0hh zeF7hsXx1r{c-shzd;M-DG^)Z-Z4LnJLK#4R&k1>XZDU~|e+le~BfA#E|+z&vBQNnYpcpIRGn9KuXO|`TSfD z9=jV42gd|Amwgor2@zmyE6VuD?*xn4n*XW5&eND(zZ+wKu#13k8(RbLU#Wn}W!U^A z8dyX-u>7aLIk!GpSTrQDzvi-E&7U#+`K9zyO5)h7i>HX3LlH|N z6t6_I&_C4?|B5!HlLwTK*8e1lV!?pbbD@-|R<=gfuS%r;k6a4NOIUD-e)oJN52{{S zBGtdmu{X~6#!Fr><0Hb%Q~yRC z)%{W14ueTSPEKyO4yo10OPn^5T~G&cgEV658J#ubZ~0UC=&t8T5U?M@b-{nciQhhA zHha1pf7heJxm23|n`7s71+$3gL2w0gXKwW8uHJufnRDyl0qQJe$KVVD%4P3o9+Jj@ zwowu`@@pem3(qKk0s8mdgRGG;m(W>l>f7&6eY!0m;{ zE^3aAlO2ohw^S6&l7Kks#Z4!EhkYh)jn-D}@I&@wQzKTt@`TRIOaK6Hf;*-(TP>MC zNmE70X`=)&&=*%$t^$ZEO~4-n;@qRo82L^|=<1*w=9R3_cKSH@19iFmR zlW$OKrTwOTaQ|8VfsL!?VLJMcNB=LwD|HhISb&>0pRb8i%AvydTk_9G-{S(gA+Nq5 zAZ!GVDFOE;bfq@2=S{VlUs^#@U;mtf0dk~H&KmL@*{jpe;O`fnr@+fzI%1v#VG zH0wWHb{@UxLd^Z6eoba%WMrlO;&%X~ypq87g%z5On-Kux13>C)I@T)KRtSRcizGb6 ztviTucg#l7VSd2DeFZRS0}NpkAFnpd?)azH8s!vR1V7MY>m$@Y?rx)-b(l0wP#M~q z`nkFm!cktG*4Bp{PqqY;VSS~CLZRVdVbnT0X#ih`3feRiIi$RBGc8f&EE3Mv!{eLH9lfpoL`Xef z+=Th^`PVtWFUqaJ44BUznuSrrF!u zZYe4=InW4z?2&7_q62xA_%BgPdt45>DPVRDPY#cxGH`*Kv=S^CYpeA9;3Tp7sU=;%(=OY;!{Xu>-M}6z3Z=Qm)ynJJO z2U`Rnd;M0-W`ndisM*uTjmm9Mtenj}f|7w@VAYG$Rd2OGdoqIm6LMz3#p`rov=Qm_ z-gZpWG+k*UK$R6Be4%8fXfr@6oEiT0{{Gc1VAy?m^`DWyS!rzd=#5y~7ast=U4Xy; zcq{7k54=Wt5KmlJqibu_&+a$Bu+^uHinWCMniX%zPIG(U1$wQi7~j3%A{&Tr7q=6R ztS!jBg?)H;yK4ul*P%e;S(PnK6t6VHC7=5qa|6$+d8 zJnEM@TjElfjqqS-O1<{Uc_@>g(H9g!KGOoWUez0w8G8;z-}CLaK$0yyM;I@;)0$+e z$HQ8u5nw=wg6=trSM4@Q2>(v>vi>E|l;T21_eqvU#kO}0GA&?ZQNC%D{#&j!vW>G- zgb7k2vyXIMKdlYDxPF`gV{?G>X&+M-uMX{K8Zyfr9Rx3b@Cypc&4?ffw37RKadB{Y z8uDgja6H(Lhuo+)b4eb#J`UBC9PQm|sZ12O zlw2W}tk9yWCTaOs_)o(c>KdWjPtdMfqcA51Rf`6i|;`iRd!migQPI&dBo-PHeg#YEA)vRJc3d)bRrR72T{2ne>2l*Ze7|c-X`+*hWdh{d zA0cHz1HPyU+wH}8d4>1(y&!|)ni(Cxl*7YekB;yymAZWbEF`aI|Ketn22=!wLp3F~{hz7B2CTYPS&RAAKc~!LM(A z#+~G%GO@I@%wRQ}8m(=pthkk9Fz6vzQgm)%5VPCf4fmNYdmphxJv4}I^GJ{0JqksI zVx6oUuL!ZY&mYvk<%+n>D5vmpZ5ml05}`nrNdD;Aj{ ziwPEfNyHXJgu(Iv`P#88_947U2 zk#`c>Xq2=i@r;z%C_%1)9vzXTdFl?%Czi6@pfcvNRx#B}&Pi65dCunV)1@WZzG&ui z*~Lw#i-`B{DOjY(we4A7%5UtEYIoU6el%{6e5WKQ_x|mr5C-y41dXi1R)92%i7*!` z9b=|X`RTUhQKJx@iqgnNN-Y_GII&3I$xy#SzvCy%tc8&TwP++g2c|P zA`Dp_8iGOSSX;{Q{AF&R-c`$c5Kny2A?Y*Ne{<#_!Q2!4aERw8zF~Mt*eu`y*UH`e zbU0hlY9l`1Rfb2yh7%!n5qJjA|F?7bB^fCStsX;uq(eYsXiuP^SqO3V0V_Cptx`$?ug5!SV)oeyc?_|a zs_#9{k9oOzWiSSWe&&u@#lH91_H#VNy~L)0V0T3>Z(|+w#>8Ll{X)+CB7=S z&d;^O-Q1Mdv_NcdccUwEZ;Ho7OA?%ts`J8ya3`F`HsQ^UxBNUYnmcT;J4zu=v(1*x z7}9b!xsIJd#lAOP;n}hY=B;oCo8O$ZvHU0*T76H3$x9g*cxDhJqsl#`&>5Vi^Xb#> z^tPVv<&=Ao4WCnjP1|i-6o}8Auae}!i;>6kRn)6&c{5kqPq^bF0c~cSyS+4#-hS#} zX(ENoIg0@Q(u1~OJF7887G5*dtf-1HS6AO*F+M0Nz8Y5|MS-0htysS}i*qGdi#K34 z;N;(oAK+I;&taT-8HdtkH$>8Yk#wP-;SHkxMqB3c0=7r&n>A!Z_v_-?J>_MqI))Md z7>ZUOF++X2Ps2dpTuSo?H^^e@-!vAeFFqTp`C5ReEqqXqQGGdWjjy02uICKn_`FE~ z3}W~Dd3yFP&Nk`N4d-AB31w*t{M?%`WqT(TnXOV1LMS@3x}S&@pzw*0NEu z>3)&jWN^Iaet-0GClR5*dX>exEbZGYSn4)6y(5(v% zPorXSySBpTF@2Q;2tiaBoEZX}91%C&u>pkUWPeW_RNT!^UM>$;Ae$7TUKJ!|}GqnHH0(y(S~!)*2z}q$YL{rN^K!$jlJj zF&Q1LjME^>;SVQNcqY$5t?PJhEiNg6V!hhUX+kv<$wZ%^7E(F9=f^%$Red?KpN75N zE3q{ymYtYU%*@o-P%fmoq@Y+>k|Q&(U#~&ob9-|0e74b*WT71m+h)K9KL2d$*bTny2oxg zkTOwVS5XzMW;Qi)J~E@^o*L(IvCS5*!5Wkeq06cS^JN;P+!1L$)_5xK8>CRh%hS8s z*O8nF2kjf?Bv+ije5lUwQ!a8#ioc@I$wQdSFz9(XbpFe;%PNo?i7s6s4H^=XHoEpXiL(XEJ|#&vU^ z2NBY0V@q(qoxANyc6o|>;`uIH(rq4lG(Am{jCtug_3UA$di4&syrxzsc*oB4ES(~` z5m0+i7+eb@IePun=w#OxJSb6ZF;=4<=W%X3x--7%XF>DkuSQAh*9)7OV|fFX;Peg7 zok?@95MqM$stB2!DpGT-nZMe2S9L@lJ++C%6rOqN#~I`1K%Wcvu=0p4m4*n5h3vD> zTnm?DHu~0ulr<*owyHm9NhE4EvXnHGghhN12piG@X(c61W;SAmWgu*&4r_*Lwd-#9 zT_}}j<>k3Scouj#>x#%?F4I-E>_uADkXf#4)VV^xCj5)Ba>G8qUR6O{M~^Ey?bIA? zO@Y!f|kmXeGdl+B?mP9xb2-)zxJ($BaNfrr_fxW#7a z6#JAT!}G#ZTBjdOSA1GSK%S7v@`tmnfpn!s73gXH6{lLrV)T~hBQ!@0Cq|?^XRHgC zG4<%-%F<*Y+PuPJ4sBz7MZYB4o7<-Gn-~eYHTT=qGxN>DIHgal$@!hK%bwn~J8ebk zCLpm;45OdV9niuvhpqrNul&No%+j?^d1q(NfjDMA8>bOBY3X1!3=$iMkJj8N`X^VO zJlA+sQ;Bm0?4IHTRVoEFM0*@P&dGg{H#7BC+Ptf&;~iT@W@ZIHIVc9D%HC>+C)QyF zP}9*xFj2ig@N9=>d{3n!a z&#>v!)*>Id%I6m|I&Sll*AyGCbQb#5ZLDK4wqEdZR7AKUosDbxA)8DE?jP(&x_CPK zUHdZ!Pm^`sPvm%tQK`}xcdoCTkGg_Qpz5x95lJe837}6j z@B>3aUQ&(%?vb{I>YLy=zLd@o5|S#_Iir}aK6Pfy8jFa=^$2t+15^@EtUB$Ex;4I9|mV*>nSNmr6N1e{N8=DTGw zL;mVV_}qzT@5z)3h)eGOdYfxhlDOy7#|LcNF;D(wr3B6%7f;W)8RG%w{L2Cl^x@^7 zERX?7T`KOcI|J4NF-dk@m8j3_p11Noy?=Qk<(ZSS9<0`))5Xz(3O0)*4YXEz%Uu~k z+ve#DR~Y;^V^;N0iOMtw9I|^9!e*E)gkqGZ)zm6q3-Np&=XQbm4fYTRgLa5?$QGgn z17+C!IDzKm9G9$c$W&>zOgVj^O}}}G4fcWME`)K?buv`Ae;3 z1LzCrp*{uv4}9>H^*hv%SDrkiiS|Tc`EV}hHCKwJ zgN6h=@YLkQ$fCDjZdel9`oYqgXmD!XQGKv-{UyHpZxgsmn+AHO!M;Agov#;<$MaQ= zj#5w-t(~>7H1b1M9q$cMYa7HPgzIE6Ph^@+#kKq zupObYG_u_4n1}&sN@@Q-G|iuBO2La{2i9hOUaQRL%Y8oKy32zco_chwH+nNTF~grH z%OOk6kMnz$!|4cT#=F)cpKe+@Stg zjSzcX17|A$2rx$)-EWPz29sFKF2Ba}>OCJ=ueWic+SuHZM+Bp>9z$QbHzu6@Dr#Wh zu5P->n!6?>7WH&KG?>-U6aoQ2*v%C8=mTdm8{w*HN(la&yGwWHm!tg<30-Yq>*{7O0YumwfL`y z=eJ=!tOa#Z=Hgrac&o;tF)dO1sS~3TmJ{ab)%jDy2w=l8`*J=}l+K~lQL+xxCW?)Y zA$94fB`XWxaW;btKexjA_{YnzQXDg4ZV`l_WL& z>glo-M0_#}{c0gG9;aiz-5-f92WZZ-!{Uh&at-foZnn9TmpY&<74Q9C*eK@xCXFd8 zV>W4>w#nzU^V0IX3^@cQC-7m!9Xt#ZmV0xh+roAm9$xMb;MA_-0#CzAoi_TQ`w7 z9MNvTSOp&?HDjo{&rqobs)E6Q<6|inas&?L$Z5lH%^(`Z4O~Tht#M}1L>v^c!vb>2i zIEDq8!7iE(a2iDGNt}!V9zcPEqKBQT<=(uho18shkwIr8@xOtOK&J#ji3B{`sdJWa zhS7LqNp7y*um2`qcJbP4S#Cr#HWJ?hW9_MNmTX{Kj_L`OoCT}=lwGU%Kt4!+OUY~T zVHP*3i=lh#TQ-m3j1g;chl#q~p(;N=oRn+74gao2;6&B-{6(`DIQ}wr!wZ0omza+@ z_rpl+ewo#aj>ue84z3c}sv?S*|LgTvQ9gU1!>hgb{5U{|&R+e<1waSf^Y5Dx#)!+g zn+<)A%%4X{x3*Vw(Id7iR7auUc1N6Z#lr zq3)B1*TI5vd4ihr2b+OLIJ?2~@@>z?NAnxMx+Y0&=+)7v?9l^PlII|I)i;vk(q>~G z7gxR`S6j0L7i?E$L*G^Q?-W-4Z9g)NlU)c;hwoq!9SND3Id@?_xtw+CI9|QN#Q_op z2wB#Yk-$dAusCF!{J;iMQ8w1%;ee&q;8IE3=RDCOgIBZPti)C?7|b^qxVGVD9iQTg zPJ%piKnTI5C=*kTeCLPEX)&@@(#;%_(~WC{3>Dwq-`4LcU~@1wRlK*c;W!nRiMD|a zyF}x~+i;;6e1-LiJUB!CeYbQ<6oaE0;$2rA0-1I2hbE|9 z_9k-jDlJf?-|!^%2KMDLXZZ{@M2ts;eWWpS92v29ee3B+AiXP~HxufN_r=Ni^aj4H%AHlfI>yx?S?udxsmqkjgY4^(UTQ(>Ii!#{!1*dF{K!6kr#| z?iL#fm$3%bYu>v#fMLnG)c3Liy=!e;FKExD+cs@<(G3Bn0{kqo20q}Hid~))Ff2~_ zngGaC2lCDy!R){rJbFS@Aix8i^q#mTnuMrcs)wjJ18;C8B2n@LERQgfx7wzXfy)uh zxb5-OfpJ6WI`Blq1)gQIPfuKSKDRRhn0m2x+1_8T5Bw*ep2+T&-yC?tjc;XQdw?Zt zOrhIZ0ACm}P}94IT1OYSY$*uw(o%Xiv_eIOh}aL8i1@cCy*ba5C{&LF8Jg05nQ;i!hKlKEd`9$<<~;B=Dwdl z-HDuL%1cdQKy8($&KoOCsujrSebM zAM0)brHUiz&bB5yH7H8XpPe~Dri1Ibm~oK+ab6CJm+nv4LVO_gcvY-Pi`525A(#LfNVK(W0oXLT6%~=S&JVp#0h^@BlC2ZF zZtTvIlqk$Sj3%@ItWgU zGw1mDbpO&8m$QIdH;nN4Pd)#A@9m&0cKJGr4L|bzUq0h)GFUwO??(piYMn6dFrggJ<4v0qq^-BYTBQLev%?c0-By8>Aarrz?7N;I-Ft0#Z1w`3S^ ztKlFJ$8xVX`*3m7mv9xhh59Iao4=IfP0}cM21*p|5D^jHryrS!=maEGb0g3N*+1YV zQ>=+bj`Rl%R9Ij1vFJ~K#s@pR5nZYTM{CmN~&WkAGa(_XRs*N^Rch?DDp7)1B zoqBG=3PzR@NoH>{k5bj1=I*r>TrhZCK=JH_3CEE-8%c;DC(U*J!K&=V8At(DEH*bk zUjZTucuZY9T6GuDVl>7_OdgEA z+tgJ-(Q?o)+-vEJ57cCEnh7f{Mg*BLI#ezjh;`Ny|1TRm)F&qQ1Qe2{^aQxk)m2D; zex&+Aj_u^*w9QH01p3hzmfNacI@?Ah{|pA>Zzl&8(zfT^#+9CC6-)h9wb2g6p2F&V z(oFs1$CzppG~w_h3?a%M^l2{EQv%wJE>{Udk_BQri``ds=T*~L2dJ~p>7cV{CU77+ z!7%$}oF0lvT&E85S2Ji@Vcfdr-&E)Y!w&wqeMnP+s|8PouDbDD`A|BOFiHPgKBWo! zk#^?c@k-l1MvLX`rbya=Sjh17Dy$lp5f>2&UpydQ=OkYaFDOZ-TEQTLR>t9S;=DEL zJCLxGgwB@B9@R&1ve78NhglPzZXR~OI21-gDWN(`;1pKk@GCBDIw4@t^0nv&?eP{-L?b8r+6jvQ~( z#v)_o$v~sbY$Kc>B$svu5p-$F*)7maNqQ#knW@#NVR$Tf(u+wkQD2ldBXQJpMSQSO z?ziqn!f8V}z_&#h&tZZU{06Mdsp_BM7gM^KBWyGxanpAfEzT6KU-%VF zRg<5KzNZwp44n-f!qgkL_u6Ym{-~KUz2ko+C(?*P6F?40CX*nfTCZ&p&{~g445er6 z90iu_bak4>RjX1*>jvRi<8#)#j!gJo3!;y*SHHV(ZJ$#0(d^vkR%tyuIl09=EVYv>w^T zbkTA1n=h#5Y8S9ce6HNV^q`eJCtP{67oURjGC@lfk%m%ldgR5X<4S0fd~xwc&U-S9 zp$T-khW#vny$o;fDRr3R>q}bU%MvdDawDNx&}8!`CM_ zNH+UEkXvhUHx~aiz1lv4(A*>fQB{D~`^C_dmb(kVknMSxe?KcpUesDfbqig1#Nw!1 zvn00lU`t<|tR0<`2)6a&bC415NYOHmbh|S_eIiu2`nw7X=9c-f%_jE33#}31#Oi<7 zSncHJA$G$;?~tvx8#T>M`oSpMm-`rM%s6kAZT2@Sq&(K-y))0R}4 zVF=Id;W>dQ9dPBXXtfaA4JE?o77(``da^?1Rj6%b3pjf|vQYkqVgJp%k%GMDokT(D zksymx2PbQeWk-jxk|WR1Wak|mk2Xhiob|1dkyPSX zgq3Ob4KoeYm)X4q2kZZ6BJ>YdH+9HkwAg1gNP7t@1HV3SdK1wacxfPD3m`i^rUvo3 z?2c2p#9pAFOyCXMlN2h-NMTb;t+St=!8%!6Z1W(xHjUAK5*RvoWgWR1k~xg0{(%Ar za#No_q|;yaIg?8eQnsfFrW@&7D3bWWuh zYV9&Qd>Biflxh53DughVbINE}z9vSiz1tZXoGL4&E||h`>xTbHqd1X9cZS}0{*Xw3- z;kryVYKdsex{gP&XnPD06Dwr$-_oV2M$j7f?c(LxtCumkZnKoc59rlUI#X; zcej@xlFqLwSbKHk_J{iWvr9ikn2gSpzb*d)&q{cdS&=5fax>>R_G_kmqUPR^vj zKw_CYxahW*PaZJ^eZWly?}KB`tC9sKlF@QDh_-4Rm($#9}O)Qkpta| zsM-G6)VHxUE{t_|?}+{L^mOu^Oa9q@3Az{hI+EB;8!Ar)uP!LLksDo(&=EdWzSg-J zsta8eE)e%?e|@8vX;`iM5G1Dyqg5q1Eg8F;>TfEZ)H1Bg8^SrB1b^Iy4$#rih%pG` zIwI6)M~L*?D_ADY_lba*h`W8y`ySf|l|%RUCtqOSEMP%pAt5g4Od_ z83H>)h@>axsz=Zt&!#F8@UCT+5el+|By&mqmMW6NMBmiEjfq)1U0oX{H}+7Ql#QAG z#QQZ@|NLr7c{s-Mn#FuyQ#i3DjQ*7Kr$~i+e))+Q?!!lg+g22X4fDHG+*?DBx*KE< z@0$l~R3+Ctc-G^~WOqcT6$W`#)i+Hnjeds@J)rFdRdZ2QWpX&o3d z0WC%Y+gE`ujba|Q7hJVYBb*gQh9PA-tFglggA>mmy!aF0*W**u1&`gLp(P}Y5|mz@ zzR&Y5kvNI;Pr3VbyQt%i?CmSZt(cTb$WglqH_x>7dn)3|IW1MMX)SV_g z@GPs($gdBTDu453(Nt(>p!khtt>F!~o-iA`Y{2K!l$-aFW4DiS00u;DoK;| zIE`R&zH{pB>ref8sz6KIodN4{=I(AwSJE!E#s2-Qja3<|Nb;O9j@kPGeUD3Pi613; z0het<6!I)AEZLBgdR_v@DGapr&Sd|Kyqx&Ph5?J|xOi`OZ}#_eL42?d?7;>?zAGAG zHd))1yrLu>QK4meQ~fpm{U%6uxJ;5yR9npfHLJAPP|JyUuaPO~YU7j&WoN}mJJa%U z%5q$+A444!%iibH&})1L1EUUWGq~Gv%H!q%Q0!-M?h8}$>5GS3Ev#CRPQ8q~Iu%jk zlz?%aOVCvA>rGsnkFZ?7g5vqv-2g)(O=5cB+hZ{5wxjN40kS4 zaL*+1q~x5TKk%4lu%YxJq!zq$ot;+wUh7l}p6eZ!Y3BN6!ZsvWZp+=}O^;nupUsab7O-;zbd5&$T)hk8vcIZJI|+NNvVkk9$u>bGG_Ek`*M42fTlTcx+a;+ z6P0voD7E5`_J&YiWIrSft5kiE6Z+C1hd;BGPpo`==J?ZVRZ;r6wMy^}NBq|3cC=&PM3d8I zI@O`n_31TdnREGHOV2^BY|0GF1|l7eX!ZLupDVp$aByz9j?0YnCSbLcmG<|V`;vn{ zp*X3^mzKc&?-~bgQVp#qDlh?27m+UBq$ej)Sa%h3l#0{h=^bhe#mKSp()?tTENNG| zRU9Z5@#%P44>>MM;7*4c?<6ffNmB7AZeVvZw9ntIVM)MYGm-V`o{2e>6HYMfBmhYp znuTWsK2Q1BY}e6zAZa5Tzxw*;Q$99G=NtP|(&o2d%!{YAQs2rq`!OI3^j?G*;VF$2 zqU&~4Y(7$R^kVguF_4;Bd$l$9-aK&79Xm0V6vzT4rcVFxd&)!o;!lAG@=yjT?OhC_ zbLnTl5un_|K%VKgP&6O{M0bkGV?#k#^A+#adO?V(q(l~)N1F?F6I26t68BVn1f7Ie z*zw`^iX&Y3c@mEv^~JH^if=^MyYk$%W8Ih_btMM|`A6B!K(|H@QXYOAc$()7P9&TeVE93d4K<1Cz3ShyCn!itzGe3# zGIK7qr2z|e&s|B{*gCD)(%m0VHEpo}m>LVc)3}*V_Zc6syxOp3oz0MN8O_O%v9|dCv;JO(KqS>rl?D#T(ETg=gk`$5!%t z+V!_T46+Q|JaBWnv4F~$jerR1vCwcV(>3!rZ6?tHW-9s$hK|o?XP)ktwH~$rPsl}y zQa40Vd8@>EUbyjVUkFm~^D3dL4GPHBX;|4bsdni`SE`hjRC4E_43lU$FMFo6Sge1R zN++dm_2j#no6VuPNLMb7Rxx}rgk>{vwU78&4(G!^PCwXPL{iy7+Ywmue+$kO9bj*l zdAiI+(p{8R86+B}zP>mOWR;nnur~00=f-pJC8u&Qt&JmHOtM>5nvnWO$uA=W6GDm9 zBzyZ(3PSDr$OhB;{?bJ~yuL+Y=fHv4!}$uC-7j-&ha9a_OK66)cS7_ATA3d_IngQO zL)~Ka{jneCBEym;Iz&3`!b`eV-@mF@$i8!VVAtQvwpUW){q7s`x(hR=Y8dgT@#BI) z2g~`c>;ZA9XU;TyopiWn`$kvGe*`OkN$b5f{lT#n7-Y;s- z%Wxoty3g|er%?Y)q0$NS$8K-Uof3F+^NIbF2d#L^^*;29dj~E{cj0tn1B zd9iFT&{2$Azu*0N3fQv3tD9y17PFrbqkr{YvON4!38F@3S#!u?v_%DeSM| zz_d-MELf>NS$Za1t9JJ;Fg?o>7lg&*u*&hN>6Q^k%Z4oL)InCgZlkTN#z;Cl=BO@4 zhJ{6ey6@epPf5D=CFNv{se@(e_#v9Mnv>@zre@yG+}a1*0moTIFj zs?`f2x4ETf>%#YQ;HLDy2<0DecX+nD37s1_`Jn=4%x{@1co^v(VeBG9PgLBn-FU*Jl6YC%qC$3NGY$q-9F* zP0l95UgW)FIZ422^hr2nZ*%A=a-^o5D32zg!1pci+LreqNiy6|AxmxZ>SSyz9P#wf zb=;SqATC%i=&f4*e{V+>||Sj&-L2x~i+ zaV2m+zSnxnN|7jGYzCx}(XeNRQIQr< zX#v3ilrNhSA>a^MLRfm`z zV*!m%LrX>3bn*~_H-QjA-trU+(|NPYH$&!@DHL92^B5*L7mmwkv1J_pxa7q z$N53Jui*RB!*|pN4jWoE%;XEf39)*Yq)TSkKeNi0_HNacmP_Aha{_u7xwBi7{y=e@Mdu|5z?YJjES?Dqz zNYl9WiShjRg2U~i_np(O8nbz3&MuJkh{pnaMz*EB0R)_gu~r#>R+2-5Ya>mPEo5+M zU-z#8BW|U0$G7j?QB!I#=3@D`@2@s{$E8uO!cLFvM&p7FWWbU;VqTXe zN%!vLp@-8)G;=_2Q`K5{2`^U+T~2?LD3&B=tfu?)UU*=Jnj)S7zLT1wfbK4%%J`Cd zPVVI5rFr+Rqd8`46-7IpW&X0M=*Y2YoL(}!T~^u$JVLxZ8!sHy1Pm^-Y1`c^O;yp5 z7U=M`I{W}Ti8hC*+}>(4UQ3nP+xd8-QM^Wxv^(fYCEVy-Vj6|26KlW z(p%m$8aZ7j0=(Y~z{>gm&-@$>J7K|@t22&ts}7Mn#zWc1&PO9)V+N}S57_>({hoMK zqA=U9F}o4T@8XjeZ!4!kYG;FqJ@;BUlY6#|Fm`wV3rg5x>ku=m%hYv5a+OZgW$Nke z!+#3g^pe50D_k+Q{d}jieY(_zqx|_zVBXi(t*3EiEV^SyZh|Ab*{8%&{4qu&gbkT$ zWVD>KXIW((?o=50q9m{we$-&9jFeK6TEUxsrYUnHyNzOps-$eK94M?au8mngjsP*`7@c`SjuB zP3`KYzuIH&H&)TRDv{B#&ZQF(B)>yt#k@UpJE4p>w4f|JI`0G$F-6GS{XQ~|YAN?+ovB)cTQMEQi6{y~{#G)ZqaJ?1+WGb{wobNNm?U}*3Tnw>s{d-L^KrnT}2$< zrRQ!S?(b6BjSBU}n#E%97}~>mA@4sN+_`z&Do~WUY)H6W{Fe5S?~(26*qG@ny-fj2 z4f#n$mBI#bM{Uv+uUfF3HQYHCl)smZ`_5Tp7d%}UWevJeIjsXL&Eh)gI$|OuBPDpy zzHS&FY~XoQ#=OjBG4*3ixPprSsdU=jA#=cX)Y5aIlY)b5Y;;roPS6!k9SV5zh>>Ti z=uqqtzt8GyW@k&W(@2xXE98>_$Dp|Gwh-!2TjAM>d$yA#aK2p6h;fe@=4&DlY#7|; zrhks@FqejD;G~(62|4P&N7pw0dUu!t94w5L1~e!L(+_A(uNK|6P$3|$UKzf_cZC%5!@X)7bk47)A1&}-p-mYsa4=j|PY z?DB+o+{*N}A#E`2_$N_`4#re5_fLucHGc-=KcI;h=PB6@pJ3h{mig zuJoRK+eK?Nusj$&(T%cu5uRh=&vOp>-!nw$i37y>#KZQzfl%1HY}Hw;yYOmTXU_K zr_&Ilt8(3ZD65@Cw62|MaD;6E-7q@{r3pqmmrd=u|LC@!^=s~Q5pYS$-s))+{wQj7 z=#t;_QC<0i(g8Ki3&}oyy&W9O(lPWS!!zaY2|juV!H;v5W)DqiJrT%jt()~KlB+!@ zRxf?>ofpyhhX-BkoPXzDsk!Y<9fUnzA5xDD6^4#O7RwF?cO*o9_Mv7;PTXU!y`}xB z&@<7`^$|30>)vo&VZiydD8y?%o#Dv%NTuw6|`}=kOw!=fEpIgk? zkYiOXA2&<_y&8h!=j^`IcS#oEW~d;kKkJc;f&+womT=6 zetynz(p^+nJE;iC2yHrX zei1DC5B%PJJb0!n=wyHVS2#btuig?;2~iWv-oIb@R~uaSytZxabxrg)t!9;JLn+3& zIYU+B2R@V}i+>VDn`qLP>x=Z|V#L19+(DAedjuZL{PO$Kq;|je_WFe%TB7xJfaJCWZ+w zh&mMn1K32{)Dr6a%*}JSLElaalA@9wf|#B}Mx?J%&Q{mvfqjH{C`tHp4T8xMXTs7I zj|vTyq->3Rh@Tb|U{Oc$^XHnI3eS;2RSqX|w=>g)E@PuUj$ge(^t07}HCXf?xUoxh z9dVK4o?aCPd$VXDonyuR*{LhSIEuWy-5X&9%^FGWFE0eriG>b{!)$ixEVq@W%(Z?v5-gnQQy9#mbyqT(1i_ zIazslcnm(@7g}3ed+OMIgJX^A(glc%(8Yh-0_2zSK9%sAS+6Ufd|OzU@9s>J%wna< zS|j^^*v?CLy&0r@E`7mOCc@su$pW$S>&G)R+Y_tY8|ZIsYTD1l1KZk|@L9ApT{aA5 zWDvC?RXnfjo+Nb$5B4>FRk%<&s=T~%Ru_6_^kYp6L29+=BO zw7`+7)la#Y$C7QRGp z7cPCpwO?HIpF!Tgp-trL|As{J|8(yEyxvP4yMUjwNPJUsPB^i##h~TmM`dCE-CYRC zTv1a1NE9EVqB5I}=|tEUM|*EVc(}Qh&CG83>s&o9S@nL@1@Vs93OVzau_MTyK=lub zq&H;w_Ul7IEc>pMa{8j2oIu4m;mp;Ww{9hU{(R>N?-5hWGu8A# z$LabDb9WgarZPc>Lk7$KCHR%{f~XddLgKGV;4IL!G;vNB6~*7@6+s3=V=_zpW1`jg zV4ZmXjnw|HQ+)IKZ+}$^3uW=b)V$&*l zZ`>A5u8La8Lnu0p+T!KtA>s-O3y*g8ZmG|TYyzI*l5Z`?5{jV+E!< zYk+r(>L+dbbGHBXKwKPfqU-cui2tP5fN~MX)Ck37FVU?-y`EZ*kOQSl#Wx6+;ui1h zUwx9Eo{7nT($vw@_s#Edoxv+N=B@b+uM~>NNx+{ zwZDP&71C#5?A`k@UrpvNc-LX<{$(9s9=g za+|}>^nsfC#6wRPOXiJRE)_7E+wV5*GSbt1(c9f44*Sj`I<{+fq6J;cLi240JV*~% zVl-K~L;~6MS>6ZCE2>&1ZH1^$q*fI-ni}`9Rzy0=9okGVxE>;lxl`zat*RXEr53~m zwX+{?-CplpM#42HyD|z$E06`uYG0uap$|!kD)&FVV-1N9Q;6rcrVw&}89_9LUoM+a zULHm3GD}i1MTabX`LcY}fh5rNQvb`^sK7Dt6Pwd4_qQ2Ns^dk6k>?37|DEO6+j(VdFz( zI!$^z`hj-!#3ufE=z;jfgC{YIi%k!h<-WP^h@ISr6AfhQy9H4v=b<_ni#!%Y`%DHB zlO5K{I823@0MDzS>LT_fDQm~L3UTj z@KYZ*(i(jIX$V`<pB=O27Cf_w=sF`%#kUVqT3@Xg^wUV(6yQ@P|0QWiN zXbr9;o#wm%b5gtPpC0G>j@I+omU+E=A&$|uez3%n3N?u*ri|R1@DyXytB&1WpHS-S z>lcS!`$D)prZh5sHerVPXfw!{47fRySdF#UzWBDb5MRu>~I8VL(R5ufTyAcjZ%39@?Vz(lQR(QTp~cYsaQ-3xNbqB0jPMhfTSS>IeEzYq5Kzk z3XyjunzZu`-oE?HfMT+1*sIM)fscv0WS{*E)fPSSbVwX}ts@>avpguL+~~XKuZ! z2j7ke))p5N5GSbh?Tuj1*vG0lh;Q|b>X-eK-`;;cSdwE+XfgOjLO?p!Y24*e{C4?H zzt&Pt>39;e+^0@}X{Dy-_fo2X*V6ZU7~O3QD6l9D1~WsfSMBKzS3}|5N7DfuS*(|@ zYdO5r{?n%Pw?qHy0?+gGU*CvPGvNNFX4EixH!5FEh$C@4h!kHJ#kQS7i0xfRL zEUtQ8{ln9fj_rY^o_(zVhLxwT>v`;$@F+GCe#js*t@J{N;hXfFpjNh;(R8BQMXA(k zyDaqWco;nb1x76eC>3$lV0e4LmQ_F;_T?>_h#g(kc>7_z)S9m91bxJ9(jJS(b~B$2 zF~1li<|!(&QBT$!GNl@S_|a~h7>@up-xedIny#1%=tw892|fVzEV5+hU#hB-Rc$uk z-fpw@2&>+2;OM5T{()QU3D8qjU0hu&vM3whceu}UscC3r8e()D57dfYPl{~VqBkC` zvI_5`N24;5T_p^Ezu13`_&?~vq7uCh#ond+cHP+{4sr5Fu>e^B*E0DOvLM0o-W&${ zfXfI+1=5`};z0YxLnsOZYp^8de$he&WgfJ`_|pFRa2vAAa>h&jX8 zs1ZK4TX@a9f6R5sAX?PwG75b_eyjQQ&c0m_-$ z$bokBbvm_eu>_|Ii5;l$D1LL_O?tas z69DB^pyLbWEwEV1GsY7t{He3SQsW z0~uo7Pd=5am#2L&&#U^BTd{oW39|}=uImzWRz}8or>2$`)gWT0F-J;&ske&L84N*0 zh@-LfMH#U}5*_GHUy;p}q$XgsxAXuwaF)5L=}p=D{^j-ySx7uO_YYQ;8xIawO~kUL zyD&22fR2-nGu5eF&JR1k?|AaOpN+k=PGTXWrNa>oR#h%L<>^X9bo^v!>uY;;<)^k7ytOc=3z z+Pb6Eo<$nq2lT(V99782$jKX ztt~kOj53DbmFV1uidBWrAo-y8_Om3-WVEBc6xb4ZVZi4-|4NAL(9b z;R<_yG!*gaCd}@Ib~lyFG`{*B9(Y$#e)zU;-h@Ok%kmSbgrX-bqCH-bvOPMBT6ERo z9r3%syI8h&URqhDSp{7K**T=Eq5My^UFO1p*rh+fti3Lsd#PeR+Wf27mEM5?RTC2y z4QZDT<(sv5be#YM+H`ZaNgw*S3<#&aWkErN&F$?^Ef?ZFMQH#KmSWr`f%%8Cm$pWu zfFfWyUa3*+wBgQi=MIzq{XeYp>9?`At}X6~Mi;bgE;*dcv2dM2H<&m7^Jx7AjLH9P zPzNE|5D%*(!6sWXt~nXZWMY7rF!RPwmm?eVzLnG2JAwzxx_Ca8vn5impIYHROlA6w zJc;~kjj<1nhpw4!nqeY?9!FUCWTo(|*L{i%o zjhJK7-K$OPv`)Y0EarjkZJ|ZZrF{brBzn&S)dV-Jn_nFa1rMZsmVKyez!PafdIOBk zRRG};`M$NlaecPW41`k)x3x!O;<2|fCbhs#M7qgB1eie_Tby(Scp9{^H>^WJQhfp6 zP4r$rc&jJDhAd`KH)OZ0KZ2}%w5*~$<}HfyX4A=-Y1K{=BgH&Wta~OR31s0PhaS^_ zBF>*sebYM8;D&K#9ImgRnRv-ewWi^rjSKUR+TFuD8}bN3jd+DSdWzrIBLw|GXEgx|o* zOI`jx2~EvyY?)SqAMgBGlg>IzPx_T(>E0ueb~uxFp86hN&FvdWeuR_c-i-6-oEz?6 z?!v0PZc{&cCNI+Ox}cXjPEaJ(BsrPNeZ02p;$og8QCF!$=9Q?}MGEMlKq7!`%v)q6 zEhqTv)aSp;`(p&)O zFV;AfJKv7~`BTxsgNKhV`)zQ+na8vcO@U8o`?GhaEIT@>aE@6%z+ehMIHzrLO3%u= z75d}d!#|Y65S&$yG;j1X#|CUp6nt+ijM|UXzI_tGW*WVCV zOZrM`wL9RXKCRXefaoZ_%+_rER~!iM2ob7miXR0@26}j>pb?~VJkQnwKJOAZ(i7u& z>(}{&xc|ek4vblQgnz6R=eQX(zjuV&({8eVa{&Kz1poKXwu3ot&Zv&rdcu5=fE63` z(2&Ymdeg5MS2zE>bjfRVrr>8(e0 zj!_>Hu>YZ1DXL>bIBGigE=EN~ef(^qY#0A}L14|~nsd1cvj~7AswDZ*Pqp=b_Nmp8 z_l$!-tXQ$h^#+R@Jw#t5?C8Y>-8Bt;50@9Xx|4G-uTqjS5AO&*>~Yr@r=M$X=`BS4 zXJNB4j?lW;@Nns+rKPi$q1_yiC1P7(?d-?L!mD}wO0Y4k^_n#{VER5FUdLaL874UD$A07nLPku zO2==bDu4>!Dq2nToUyal6d+9TN}bJtyoeZLQGRi0>h$Tn6)ZW6pb1KyJ|ZXR2Z!@e z&s4bQ-W8aI*#%9SSt3d7;^N}%WIB{zE&}a(Sn7GicR2Z)NL%CJa3v3;h=S0mz5;}L z`So>ReM!>PHow_vGzZ*kPs&Uq#<~b_#3wIZ|FM`H+|3v)oV5E4odZ3Xi!eRdoFj=h ziHGt|t$gs`M(s_c12sljTJ!D-vKjc&w__%beL#g3qk)Ee(WpJ*r#_K~ZEoy^7Ch{W zf|y>uDv@d7bBqSOcP*xMG*HJl-f##=QdgtqFuqM&(8We-D#M}EPD?D8h9NPd45LP@ zoR0EpsUqLzC>Uj1#-3o&KSo(9SpDkhD2LNod!7zy<87f3Tg)k@q!x?^6%4!^P&f22 z??3LQk_$Q=*Mr;kB6R)j2I+D!!zJnx-$mJZ+o*Y?(^8mDTA(qVy~PJ3)pXMUjsLfv4PG}C092C-(6^b0 z@n?4Or%P7u0WlKOIUN1h;qs^5(+b3|Xvd660a^J!C6TU0 zI%nta>R)@!`J4Z>CQ2qDx7r&*mzzB18}wL9W+4i1^3uc$TeC=B%WKdXs)+=Ez<&sA zGV+Bc9ckpZpVl)m2E2>7qajHOV;5{-+yga!w(H51GL*ZzHb<@g;T?5yDji{11OUM{ zKE$A^5&?|g_7!j!r|v!*|55_ViVl}r>(!fp8c)@_QuosrL%$STbw}QN(Yv!>JfIuk z9Q8IPfAQ@9fi3%W_!;UO=T<_zb$*#RaGPElAZx=e^^LESr!ngS>bg&8Gno(((5bh)sevH#fhGmyWvzj62T| zL<`v85J7GCsA+4ubcxwWN(oD^EG zOpdLu&o>7}E}N$eK>ea3ho#4^sGR}X+`w*Lqvp%q1AWMmQdI>70_ZFwok|E}oG04F z(Q>%Zgh-Y;FvxFEi3H}+!{1?$kzj;bAzt+$* zo$>XTa8`c)Cm%d>KGq)xLYt9V%7;{jSKF<$-+fha_~39zFE06{Y{%@HSS7c1@YhT^ zaf(Uf6qAg%)$<0U0`~J6u+Y+&k<=&IPcuu4)G?k*(mZW{HHI$s+_LG5q*Svx>v{*x z>WkxU>#3mXmVko+tz`Uc)EoNjnL~oH~#UVofvsNDS%#y5`5^H)|Z5hLzt*$3kZX1?^@Z zVmvrzF~TkdS&el64e;;B{GgObT$WFr)o=HB_XLOwBCcwse}3<9xM0qn7_gw& z^F*!cRPa*9Dyk&z}1iucnvgojW8f z#vO4A0TgUW@yD|)%L*Iada;bZ`821SZ|5<&*u(GeRfXP5gcnO$?PR+4zDRo~8 z2`aQ zv(?kudR$?$+%qd^mc5`RCPnTU1uIeo15z@cQ&NXW}GizZCN-Ovb!A>RWUbbT2|5?K-q+r-|;oUlP-HlyY zDgfq)0)m&_;VcdoPL@`J+uqumlde-@&6^+^q3GtKmR9BnZ3E!d4ad(?{_+M=?EmQE zt*s6`Tz%FvlHONbOISg%(80jug@rOiCCauT5zSH{fTgfFr zUJ9DRShOP8byk6l>NMa34V5|Ly-ac5$y&LyPMT835aXxC5AB4RM)(4UZdpvPBALp~ zQRc6uOGAYwyjSWX8fZ|tWVV*BduzzU-op29{`)|j{wiLK84Y9}{noG1h!oFmeYGV4 zB{bD{YCyih7QH(SV%7)(6l!s7mw4cSpujtw=B5pY~TEXCrAaJ1>shJ4l zENZEzvaZy}_^3wL$N*o=9&;SfsTK-4Pv41+^OgQBC_@W3@$*=(n~i5iU+Hg{>nS0M zS5ZM(jaLrgdPw)F2K{w!`xtCCn^@Ev??*BJwl<6?=$|LG);I+JdD90)@c;oL>V5t( z>7v|QSjcgk)%?a`z$5fQMHO57ffaPkS)wu;CLaQ-r|TX7(#6~p__UCt_8o!8ygNSI z+1^Ey&)^bwv`X#>tpTY;N4b8Zk#7B)YRv7t%5FA?I9|(We5=k};se=QqUvWS0A(wS0aQ(Y_7*O|(tuueGB!P}`wt1X#YA82=TdpPRoY%Y)?A?GA(e=0 zkx&)jg*l*(IeQ*%3sBN{K|~iEM2uPNEcfje=RwM-L06%Pk{FW=4snKow<1hXqcMm^0sd&e<{a`vPnDaK z>X|;k=NGV3w@16IxB-zUP7V^xnsr)jWbe(-+mb2nA|!hx96){6^Y2IoX2icpz+>cauc5V6z&O-wq9oAKVxS)ec{%Wn(%u3K8@Nr2kJb?rn4m{hG!Xtu zKm=4%E_|)xl@p)au0`q5SAc_w-+%PA2z9vPaD2QVW=*N)16hKUG!T+tc5DrNnu7#3@F8tB0NMQC82^%~dW$)v~+LMCk;U zOa}|;Z=35suE0KaVwB!=HmW^R?9a=^rSaW2ie?nVL>*UpYuBo$=unwLC7Gs{Vn+)t z_RajJ0@#!~4k5_V@*YBJ{z?PY337R)#L|A^ zSa&g|ug|#l6)vwq{dp<@JHvLhbfx&U+!44_Ua|GWcpnt3;9?*O4*Ak~EVdWhKe$57 zt^XBAtH97ddjjE!a6}ICnCRQLpNXaS5`S`$+GRFmZOI#99{rFxfOg+4n?@JEIg%~lg|zyK1)wc7{>Bv47iTY% zvuB%kq0*J3{RjU!WkUbqpZBB7fK-v{kJad$s^0w~5fHZnQkEz$R-YenSm|dIW(Gu$?V&hg;_SIgUqHNG z*<{9#Jsk-HTW^E5+JuEzYdH$AY`D{U zNgg1PkU9dsK@AhwT=msz+%ekHS7)$|C_34Rax{wzOyXS9S{ZqA-H`105Tqs*kJ-nO zjWpXTTb}>r&EX6+gk<3xf_L$MZb=M3&rtT>MUITb3fNl!9fuc`uPyyiE}7n31ZW&K zZqZB|E~WN!KzGRb;T1P`7Q5=wl;W*G4npQ_Cg1=Q!wl{^XZn;=DKU zsa+Qn)95hUpp)3!%-N^Nd?4t#zfWbE_UpfYta2B2&MjAnJmEi$B1Sa%53Azee|YJ2 zMo6CfOrYGaJFap3s2@cPZ3T=MmGI;g!jMCy6QWyD9naR+bXNE8)gcE}qzWD9n%#@s zf>D!kGM^y>wD9@ZFpJqK=$Nun^)4TLrD+H<`vF}7U0_$=)f4qhqvFzeB>E=(k!7AP)EaE<%BaciXhOk;3xWe0GEj-!A0iVd=rjvBy(=-g?p zQ#GpH(W&S?M@an=Cg}Liv~T}b+upEwUa@olg~rh?a>cRCZO;n65a+hKlpYV+vj?#Z zBS2DF^1xf>X}_#Cf}*UzYbM?=x;P4g?{@)X9sxd?`5-Qnc5acgUsDh#iozT94@4%u zqUYOT<}IJtxJ0xn9F|C*lDFn*7B|PaF5eUa`nlzg$y(eIWxv0lQ7`f03t#H)7grgy zQvRH*mkii3rIw|A>((W6>sH^o9p?9~#yxB{_u_taG9N-D7R4_HJBc-xIcN=NHP~$`#Iaus<_9BBHi&yggu9K)!DI#fi_d z_$*#;fsJOVOF+)iq?A^rU5=J;_S4`F9gCCgu!$i#Ppzl>Nfc^X&;9dXG!8peZ_%s_ z<|ku9MZW-Z!{BF)!t3jHbv^{U3t}fjK**sQx{)~z!qFuXR=5yOZb5Ak-{njh-V(JI8! z2RpCCZtjs59Aeqt0jv>W2W~Ty6U?c1dm^u851OQ54{Qs2td%cV0NE%t5*zwIux9$s zRcsu2?jyOH-*!vT)qCF+W9|+sUKMM8K*(QK_galMrf_iA7y@H8F&nEu%S@k*vc}S@ z-i4N~yoOY~99w=KlWIP0uR0VmWGjh9A!>^Eu5H9@Y$>#Fy&`!x;EKSHyAvtnwwoFH zytez|LK_*3qe0jgbDR%%__X1QG|L=c@&+WrDUY|)#dvTPDnWFVRm26{v+schkz0Le zHUdm_t7FAhI;FQ|E$XntHTgf|*1mmpE7AU;Z17m56 zu6EI#z&^o9MOGC{H{8~%UauD(n;*OIj3VN1%ixG2u`hZ(`|{j-WJwOkLPJ~g)DunvRa!^A9|6;UZ5}niTsqYw=~q(4&$u-Mj#?Q^1z!A z;bvBX@4PsgSOxPu-j^R4#YL`L4;j-T$6tuRAti~vI|c1gXMBjv#R^iRXl`7V&$kMC^}UeYJtx97$;6|sN;(&#M7Aaz%~>yAZ_$gX{n>d zMEh{5n}h1Je1oKq^WXbB^l$B-6cfxEe1d zeyAf3pOk*bsF7B97jbpAmwH&-P#|3f3G{s%%XL5ud-h95?E+vnUoSw0P1A<}BSZ2b z4g#yTyXDew>xK{XzrDXYf0nFQSAqbe2LPG24JvnxQManx_S%C&;$4oAr3zb7+@_B` z!i7#|=uTb&%T{R%JG>P(007c=2K1~EAY5-XGd+%Thc5gP^n}i2yl1#vN^IEW1@P@c zki`S@cM8xedMC@(j=HtffHT?#z#BoqA|B~x67fkg?}h+MIQ?Cbo^5xPO$n7cU!u}> zn2={TC;G=`3kQ5sP$Xj9eM^DT=HBy~GeQTmVaS7pcs>z(H9oUm*3y6=S1n+=0nEQy zQDjGrk~Ixx!95RZX3N7h7R!?tI%Qd4A7LY3^y}n1uw zt#{np+|QO{-*-QJ?v~T$Vjqqihj-A%!w0Rfiww2c2p8w7T%cS@EmFvS{LrIy6oz? ztTmAbGCF!nzpg}ELszt{a)GkEQP(R}4HU;T>#+5KJiRJGa);&Krk%uOCC%f{I=l{a zZyyV+>FuRYz7OE29>mRZSRWt51gXNM2h0a(kE^<@=z$1OjUTxOhAGHAHilS>35(w(rbm}PsN zM?OxbG26b=XRo|tU1@7mdR=6zKTmHxE;FlVz37{oo>|`WyE_}(JxV6NPY$Mh>DK0x z1pg;;*vBqjbH5nzs+I01bI-8D!o8t=(jzt)fgb1>>lm=EYC)nCMy`puCyYo;D|K|- z!+p%EV>iuo)Nf>>mEO8`sbV)sCf=zLQOVuW=hU=%Z9^=tth3q{ojC+$ELlJP-e>B2 zQ71VC#_TSJC%25&F0%_1isCo;AQVI;SVL31?}7YAWU=sO}i6J&FM5d(Ij zp8Jf&<9Je|ns_WndM%fE?Zow{B8RTdjNY745Rzs!WytXm<#SBJsH@?{?RTD4ZNBf& zgtr#&wYv9(?;yMSs*mQjkh94$6tH?P7|Ka(CJZmA28>kk< zae&t6Je_MEd+>>JT*R=gWWav9BFs$ec#3H3mBCJ`wYn!@<=UNZUSSuhzJU~WzM2c; znrO|XVJRYeQ(dLws9AJ;YE`*|NnR;EqY)5tf}B9N^_>74dojq|>K%vf>69*(b-I(k z`2qa5!x%B6x>f|y2COC)K+mzlBQM^Ot-aEa@^~Bp8UHYaG1%lG&=n}4O*?s$Mf*~R ztL4Ik=Uby*U?Q`|_BZh#ACI>r;G(QvD_`+B96X&ea^j4JO=S@2kA^KJoAi!dJfcs@LNbVj#PyA>|tDN&X@3dw*g}@bX#V5U7LJovcJn zo?%AL+pI3?_aoGagv=g#s;AN1fUFI_;M3c3f$zjuzdS+VFFdoHKeo1}JBGLqux>Sa zw_bmOyqlO(^R`7%pgo9|w+6j28m1FJ=8)}fTHK>flOva59-OdMYyC3hxr)sG-Ockw!^8>NXk@`6n&;&yeBrX}5`^IQ-tuB*QkN?i5)8=wVonR_QSC$Xln!+P&jw7BC~( z1m2qGz$DOeQ%UgV4$52@H=4Ccc|!06m|`m4j%_}MQ8?UgnvOp?h_?jmBUd+|Vn^@; zpfVcbLZz&CC1g9|{;*8Dwf(Y8cdqw+eT&a1q^2C@xyE{43XAw+eJ7WkDNqcos6}ok zg+lx{ut;2Y4|J@6X*$<@WcT@xxCx^hSsZ|S{=Ghzan5_X`fKsEwKoF4R*zavjTm&T zNd7~e6@0~?vQS9;{Z;p};^sT&`U;c~a&@__YXlRA4OIer-1el{brHIP!tyRt_#@u`1V;W-P(H+Eaaa=k6#kcoOc_qMFGiX(P zU|fpd0K^wFzA=ZeBNZuJB33WSfKOXtkk6fxvnt6C=G4pW**=MaL=sC-i*BffXyS{4 zLasl@Kz{EYsHA8;k^343q^q?n=)||Z7bExSPG&sIX!xxVC`eCmXmuib;siAT%wPIb z%(Eoo30~r5Zm(a_vV&~0*rylMA~}uTVLY{Iup3E_%jDiz_W*ys#a$nc0HH%2mg(W` zwXu<%OcSOHKl#FcnRIV6N?_U<){~h3(+sUv?uAYCzzAZqIFuSz+;J!2B-l6J(P}oa{#QE2^S^*UjXyotaP}_(uDYj`-{0SmUXF0(E>sgIf6k?2hxTZhcu#1QrfhJbd5YeW(vqjuNxETQS@&p>EKl?WGqHdLHE> zhl|N+FnZt}FchoaX&f35MJU0PV1j+%0ivbmZ`z9!p1~inCP=v;FDKd~Ykq(rfC_Pc z;K1vHW*>>6dc>AOW4D3#D-!auGnf2rDB@&5&vOjdW#2k(0yu19tP{=Ep5`8@Kd+bL zs511Wb$GeO^1>ut*5EVxpmyES3#d6PKIxHQy!#*sP> z)Ax3Fk78E+2hhfH1C=IjTyt)_NPEjPT7j?ZQM^sVhSd!tcz0e(WO@*y3{CviBXYkW zs!+M6EWSs2kt?}do_BP2f?8-{LnPPbWeA#tI$BkQ9%M|s2)aVeTb%4m&@7@f*XNx5SO?g*zH{t1MXid%8NTW_xh|8Q^a2*&^vh$AWMAn zSb@K~+q(xG5h2KVknC!I0Q6XPEed0x$}GD9R`66yYXt&d9LS4@dm@82QaPYaD2uU* zzOg+JT=M+&If4Rw_OhBa;6sM*PX~;>S~sB3^W77t^;Qb=nn;vD$cW}m-bRhz-oG{K zVgS$!f*v4zO&<$*;F0^KrJUjZAEiTJnfzDx%03N~!|jPmn+oVm|Ag@?`rVOcM=E40 zf~{0eQLrDmmH=Z$w{)NvU!8Zq`v&rHaX7zf1ZpsW76BUT;~0c{vE@)c*X=@^1^@uR z`lEI2GTG|MF@i;#zM;+2nO|$2E4mSwD$3D~m)6z;#%#9}Mx{TK$y{phzb!r;qE1DiB{oeE1e7eP$x(6+P3WfSTMG|69rxM$-uK+`-7&u54;QOzRn@FjtLCgZpZS#0 z!l#7b>a2l$k20b~$%T(qHNRB3i2E5`UdL6webjWL|H-zMAIt0R?zgAjFl_6)&gJj; zlc5~15)i1I1(tF_JaN{@p`N#}2ytX&USaRio?%&{@!oQV4IbG~9OQc;w?`Ns!W6FW zo^LLyrUjAE>xNn(}hfJd*exAe-V6Fu~X zTN_K_<|``l&Lo>R@np)76Qu{Bc1&RSZ^611Ux8PIijgi6%?A97^Y-G9M-RlQ`HZg? z%<{b=O;K zct|XS%w`V|8|p=hn$I{?F*es1tb98DMvl6`(rsSIEOctLPB5*Qh0QL}`@(^>c@w|& z>0$g`^y65ruB(z)+#ca6y30bvO}`BD$zFAyyPxZPFZopm#a=d1ts`h%3LA?lp zlvC6a#Nuovx{v%7C)cg-

        9dPu99mxi<_!Y}eu&kyb^@pl%TC+W4$SKu)ki3=y~z zol6!gsSqHj?+Y@y8Q)nBqOsQkLg)`ACVTo{GFd8j@Z0D>As<18JLLS}+aqh(Z_wnZ320ppsguwUa$g+@ilygI*U@cuy;%SCWI6bitjo;d|24Q7;vYyBrk|LOurceC=nn|)LzYmmAg{j`h0{iedfuPSR zo1q%%(5$vxGS7LmA#H0db7jtrsr+M5oGaLJ`~ww%NMPS$_>_u?EV6cwg=zO-qHJW4 z@5HF|CxW-5QpIWlPr~8z#npjxGh4ZRwiJY5CczxO*(B!8qFhiu%y27RX0+yIR=_k$ zbIjV1AmMSbBcghhR`jthLcm=#RjIG5tci_DP`SqpDyAT*+_Sb*OtII|u%{N(j*Soq zC>F7J0vfDdg=dOb8`gA$nr@{dM{3sWw@-BV@$(nNTIx@3RJR3*66xeMY7Pq$eN1MD zkZaK-WVU%9x{==T>wb2-FZ{7PhQ@>Kz^EzNM>_DXf+jV-phf*wRkwvv+BOm~Wg)7_47e)QzoUI2|^`Lh2b zCzse6J`;glj|IqI27GGpMW&WN1PGPGDIebfx!6qb!L6Lt?q*~sa8?^Z02@iLBa~A< zUExDP`vfS19Ha-kaS8xuy$Xl|p1lXafxYrhDf;Or;hd`HuvMjHod}E>md}wNKfYO{ znL}Wca(XWfd|=~BW36TG{R_d~+)&Je@pPi^V5Wjg_Q?EGiTyH4WIb1|Hq(&bnsQXS zU2f>24FE^zK~iUAxnvY#d}k5_OrbQ*N5CZD z>DW*seuie0KxVK_2s8=cLB&4qH9NO3IenW&0;AL126~MG<(BI$L9?w&?&5si&ZK0(8k*=-L$yYIOLBd|)QjCTwBt`fy@2|& zD)@CyU}v@!!^74uS~L`)mz(N7kd$?enPL1M7u!>HAMH#*Gnul%o$Byr;4}%Sh2jYY z(E`*;txfZV+43`nBHyE|8XhcL8*YF}pIWY-zf-^Fs2q-Vr&zj7of<3jocQ?hwUaxy z7ST2n&}We4<1Ade1&u{jR@olCDaFOgtTI{j>!Nj4T?AUKwJ>O>)A#`<J*tWLbHtK-6{?iXY% z{uJyj)JNQ1=;k?cNMF1Z?tDA*F~AqOtT917cewRCgoAEdyi)-FAz+{SYO_b4^ ze^a(M9z>U?_OJFqpr`D+A8W`FzRkyo^P=C^Vf}|&^E+2GJZe=UFJI{Qy-~n7G2!=q z;nLu184voex|$y$NwgyPg(z2?hPCdTMwo2GQLbRhDJ7r%ozyGa+_NW6`8s13xi9{b zBjl#y>pYQFL`U|vxSUHY*>Zdxe@%WOsd*1%>-Ky#p$dN+;D_J++b~G zU7}hM$EMK|l zvpF8A)Sr&z+r9&D!xUS|7?e31X)*5CxNZCTwpje7VDO%Rl#CYrb}67xm)*JAV7exb zhFX2CZ5>d}Mbh)?z@y*>qoe(%&Svq3;pRyYNNiuwMMIpAhTL%#4PiJ6P*N9IEXKBh)irxCZKZ$_#ey~Uq^V4W``ShxZ}nWE&3 zrfKW^aj^E}gC&XMfU4HC^oH|hv&i;jeKg?&Xd7OK;WkmeOff+VrrgD&r+hanv!ip` zo2%KPExvEOf~4HYs?(pD7zrK&Q}`HkVj zVDSBbykls504ywLq6P;EEt-R^(Vqjg1TN$XN&Bo&tfWkp4wr5KsjFPM=R$|wD&0)v zZVyI-hf)_3rQlGJv6I;wdPLo=+zp=k-pes65&R43UrPz#nPqyVwzJ@dC0HNimcU3& zhAG{nh1!|BI2}9=+QHouQi0yWpw!0LIGmCv6_+w$6jVJtJ8#GCxFlI=A{*8>)@JVdO-hTw6KbEU5ctv!O&DD3cF1t z)Jyw%6B(nzML%W9oYcc9jmR(hw`J)2!QI~!9mkB=O=E|(2G8g0M~TJa?Ninu(EplX zluYTd5ZoLv!xh-iXfsLJr4vZUmBf*@!8nt0()gN@+y1xv^JW_U z1$|Ic;(m((3`HXDcsnKlGkZF&vG}oqLwbtVYg;KrmvlgD(l+SX_@J$f^WJ4@r!lYd zF(aXSLg0aL)?1ZadK9wG9skESO+w&GN?YsS!)69Yx9q4I>q(MlW+E}_{l`!e0S|1P z=#wvKIL7WJizwP4fPcnbe(%3bcTJy)t-^uaK^bCZ_FX(09Q`e7 zqrCmGGFL9BfaFrmc(zx#;4H~D2sSZjOIh#2*0H>x?;BXD4o*n_E~WSNrUBLe;40v% zURta}6fXiT^d#&}^E--qasJxd+n7p$J0yBjX0R;(I&YjhL|^cH;!#dRvix+4IisGw zqQK2?UHR2H@%Q%XpG?|J?S#~Og%(OO&h91gWu;9EUGE(i^s=(E?N=t-Gv4HzwAGB! zcO)7cvP7S~(Wo#M1#i`M7>hD&#|W|N;X0NwEsw*!;W5fY3Cwi#=g=YgG>vj<6rSDs zf>ZTWJBlYC?nlk?4gj}OiIuC)N}DcIZxB_}p&Gl+bzWuJ_=Bs?=U|)7ln~s{hRCGZ zKEWKivLL>Ry7idx{d13SpyEU27rAGTYx%=N6o+jvlqJ_gN9ZqT6fvVJ`P5RJZhWQV ztIc|^pvk4DcG2Hb#uW-9ne`>WMy2h{xn(Ad5Nxy+-N{(n5sVP#U9)wKy4E^1u zkDf4ql4WI?q{eI~;Xy35e=;hVCc-#%>Y-l;hVDyZ(s+mNUfOO7_t&3z^v`cIqnzTm zbTG>|Mw*xW*T15w|8$dSCZ+iXUNs{*sd?fh{TCY}a&4)6iFmx4JC-nnxU;!ZUU=lL^ z1=^T{oR4_1hLvWRC05Th8&H*fftDkbdk?Z>5bUZCmH>XecK{HI!}AmjfpBvn0ERMb zyK@%M_MGvQ4WKIm82`TTE4mKdkLJYy^s^TLHJeJO7h1u-F;}fQ@qHCw2k8M>F0)%J z&4qjjw2v0~N|tu^2M8&w3?texNjX`460!Du6@TzD;}q>vZ=UGs!Gu+DKab`YuK6}I zfAg9D^xOXrHy1+Nb27H2o0_k!JRpW+Z^?{=KA|h9;Ay|rH2NQ|o;Mfzqb#C&tPZ}o zG$@oL7d!$~!#CdO0(MB#_1tY|YlQSzp>f>n9b@CMhG-^GC!HNamV8i&fxCAd(jw)f z-Y5bs?Falf@o)T3@$3c3^ zu2iTD$D^R#G-tP6*}1FO555~SJvEpT#ihx0QE3iM{-Xi&S!Ls zH&4|xhq20YB_uriE0oZ2KW6}segdHJcEXTiE~(y^jE} z0LKLk!+JLiQ~DGkwcoe00;C>~3uc3Xv02A8+OI-?N6Bp$LFyY>k}9*KzFA?W7-(2B z-8DiX^{o*YEu;)8h_^!&&p@_E-za^r2e_d>iyJeAl=avt4)b!Tjvl0Z{{R>`g?^7~ z1S(($G4<$YPjA1Ed&}-wziJ1_f zhw`xDS?*9nIZOU?SWs_3X-?l9REte;bbC2?)9m?{nLCwa)C8ZZ1tpStgzcRnY1>!6 zur-4lE5L4%g62Zb=7u$o2_I5f;@Jx2ib3@F7f3kUhQyW#sOyOZN_QbENlDzH?+$dM zPgqF}5>83rv4A0DdsXY+YZ8HMx~AOLRTf}3rA;LR0A_(dRG&8k+N88o@ngTDPzwgsv=;~s*KiW-l4 zS%VwA&fIjx*@Lx!3l}JdV+@*_NGv!=&HSZ_XS&BGOb)F2$T)*&o2Co1AgIuM4d>)5 zZ|{tmzUcpTSnH)ag6Yqf?x!$z!GTIlus#bIvA*Gn=rx*|M`=nY49!H{?*}*Eopp%1 zlV_9N>pnu2ru?-)q3)tian0Ie1{a5!_A>-$!KqWz(RxFG-zbBtXc##7b0OFh5$ z_R)}c5@2=C+c*{?N*ucNx0e|SSPvrB8)bQo5b9Y*#3bGhczy5)>vxAVGh;SgfDq+X zktGc}0d%p2pWm@_H;b71FwP$dq$N3KYagX3p|8NdFj1H9s$u9*{1w|~K~H&o24rU- zwLaOp6Q0M_Hp>v+^?s7WhDn5utXyl4kvS4y{&v3f%$QS(Mimvxj%-S2WxJ9mRu!wBd<8|4!JlJznhf(Jf`&|BX^IdDHsawm{*1(V?8PnPKQVrpTz32NRc_+rs_D(?0!ejLIJKY;=}T41m-K_g z>81ru8`77rx`!lPG~N2|S0~q)7$KsD#V-@$q74axRJTK$BJ7ggajO|+b;^zVmE9(S zVBKZJgR{Aci=Q_+6!RK;9lGMc^sA9AC82&wxkf#4(z3|CL+tinib8G-p zgG*W~+?ukM6xEP%88YZD`zloKSzuTOU|w@jp14w+RJT$(9HqAg+|t;x)fE0>&le!| zhdySq*RtFkWHs0ayj)=tO4Y~V07gB^0o4*jt7E(coSPkJhq>vRHflP`@yWI{6^AY` zD|!KG%zXfJ$dle$tm;gXqal0?Mm~gc0FJQ9^g&Ska)8!>GB0er=s?{o#CmsTnGn$-%UvHM|?5d)MtamE_4Ne5PDAO^WUV`vh zrv=CzN;k)&=V3zBCoWYe%WOV$1z=gF=9?XXr-Zo)x`^MwvkGlNMzYj!oDv|m5tw_N zxF-vyV#UI_W`4{muG*j(9%%j) zmC4^_6h_`*9aj){(A8Hnyct@H)2c)Nm}Ygkqj-NXL#1+1>YX1UF&~mOZK_1TJZa}M zGpv!fHHQQI$b&&GHT;8>3GXg^3j$tJk`=gZLunBE?;CJ zTUf+n)3mpAeW=jdl4M*cjl&<0j^`qsZX54Nu`EuYK%@&WJgmc-4@~2SgX@m9koAcO zoA+HEv=W#H$&&r&*JrzF#k+wi+PKO)2XZU2u&If}Y0?Rk!T{SQaSo=wMZi$lM*hfc z^_yIQVJ&qD;E?WbVnC{v^3xA30ryMK5R%?I}&7{b#FHW zaZtuVyqr&ftr9l{yU*DrxAz=e&pBnPcRask^WGpn?CX7i7Dt`{d1|U-WIY0M%@N>4 zgNF;>t7u?$&U4=v>-D!=0Tx%kXd=L&<%K+t_B*Q*nTB}SAo>0DY_hXBYG z(_=JHR96&ax0V48_<>bLt^S^TkbQM*TA^8i+&m*VEgmT$`L2!zwq>9ntn&neUOPmqE@RVUYZm94#YPWf_1x2S zCG|Mp*QY_rQnSEm=YH&;h5NM=w(IgTOX=BvOH5Q1CW|CbGN)yz?fqn*Fds%qu1SZ+ z<~}8K3&RJ~iCo3r;blx0*-~t4w2o0f{Va}G{^>y)htWy#Ndc_BzD*KHbx>Bf)A#gshr>$6hvQVz(;DGe>l|xB41GzQLkIcbGE&7TCCZhW#?I!O7aMH(69(WJP zotp*d5<5c~a0J8rR+Hp>9>iYHz~*<`J)_iHw0#2bY$&d<2t4qaQIXV;0t$S7AfL*& zRY|n}ApkgdyQ1xK0sZO#f@$qG$n(m)ce=0i$`u+Ymkr@EmBM%Hs$(jG6=YhCSg1=X zT~DzJKQx$X)Ew7+|FAxT<7$cW=lrSulEN8{=F9&ObMSA7)T?{VS-+(jiHfcO0CfHY zBPP<85dzSIbdcFPokt7_Y-_jg4W@$+4#ZKS8glj|*U>F{9a|{7$4HkH$sKW;PkN<6 z&_eFuT#qWJaGpMS=VWvz?w{xTKDA2)Xi#)5h})y%f!n6o)onT>tuKeZhwEC2A_gqQ zYk(cTZcYXYw)P+#`^QQ~L23=J?CHbmU8SytuFn9`q2l)4kzfOau8cWh@g#l60-)AF z48b*}$9`Mg{`yMu4V34)YAOKV4ZkLkQ@B}7f1d5%!oOggTURN6I0NiI=X!Xr$M!m` zD@XCPZ|lbJzHHZtpaTAnhCZ#ek@0r}!i%?PZ5g5+UUP=5&GsA3z`7pyI?QuxD%};N zG+uuOQerwmjwN;PherX?FBq0&z&gceWdJZ_xW|RS1x5gh#uOwcS$r?d5KY!Ul1yIP zbL2tyho=iXp}cySF7g}99$QNmQu)OoYo!0`gh^X!@z8-e%2)BLM;4K+(<&v#|3b;k zBHt3Wzp5Y~)Q9ssj&eI)Em2Lk3>1I(<(Dl!agZ*~O}{891mG^hOrAqell9zjT2zj4 zcR*reNj;K?PeJ!SAUmyYA7S#&Q{V!*|EoVa@P7Jdy2D;F_DmxE!|mO11{ujOr7);i z@y#!@vuySIVO!zx#BUY=Zm3;iR>-r^npjFqTT!;(1VFqr4Rv`NT-49?UzWiMfY6}9V1DFZyqooI- z7ud(aE`sg5>Bci;=F3dN$%F4{$YrHAhMulL;6af3E0MV8NIbhz)I(6*A#E3aGM0b8 zxS*gDD0>spKC7qMdZj%(Ae7TDArA+X(nR@EHNlrmkgs%Az3r_rP8hJG6Tm`hX*=Fv zy`F;*aao(4^7{^^r`E+5u&hF9Q$H{wEH*nBkpwjGZ0RP1#7Xu9rULJyL%W(>=vEN1 z%U1$~VADl<46eQ~dSy67vpW<2+Ry664dDXo^kq|j!v%htDU1EX@&m z=92xiW(lBuo_oO&cWKNLfGKzIJOHP`BlZbwNJ{z{pHZ{uydPjpox|#=Dex+ ztR$~u0E(j%ASj>E@*=fQ`@HViNR~Z9F2iX&0*-(vqw*IU_Mv?O05v&Z0WjYj*emF{ zuG}heIU^mX6` zSuVBs_oKalue)?>xxT=l>Hwps{nrcOca)Tr3J}Pfl3m}^u0HA+yLsE*MaI{CybvC1 zIYC&H9Gcv`e)X@%ch?4zP3R$iOHy#lA3XUR`@zw4O0V1J4n`woy7bKEdJA${B4f|E z*v&sQ2WC<ngMkjb5dfQsfsJ~-JLaHe9c7c>qIr>&W2(d8B5=!G)aZR+;hDVcAF?2mY zcJ9gdFR!|nLLz0{(Iplje$-h;{IuQ&$h+?X1s?0ZG3=L#F;0B#gfG3H4HThFVPFKM+k5aGI6LQ|~9OUv+05~CHIUrR6P8OJr zbDifp(Uowc8Bg)1iHcm`#~f`x!w?5iWH6jh7+l!9??4wwBht0f+#uwf&MlJ79lzgV ztL%l)Nc}!P+0JZhp!oM6-roK4XIe7pz~NE5xU8MfLW?>%0Q8&dlknKNXG|9FKQ>9! zy9>H0l)~qMJuMG~X>}fvZN@o|N47fZRkG%ndFCxu_^9*o}Mr2knRyIe|VR_8{9wi z`DbDY$$}~lBv@1YAJ?E+AglC9CAj+x)a=lw`v-Tq0Ct)KxPBuULpG1C+(!MSpwe>t zdmRG@X#bU0?u91<36JyJaij*L4Za|}M99y&_@{fC{=nV|U6#M}tCmSfp?FBfF7syd zZm~sD>Br%xVGfRcG(QB2H}!HS&=i$Vz}oyhU#Q@iyrO@f)c*6K=hg*-Lh0cZ!MZyt zs&iy*H;?2c9a!7`elMM7ULsMJa!%&cv4aB#w^$dMhr}yv6C~pIS(X)cv+5Up=z*nP z`jvL%FJ3=*=Uxm@iWQZISF!Z&6i6s0&pXjWGUltZ{p_{AxBQ^gK_}`(X5*91d)LDy z{t1i6Y1Kq1-DZ-i3eW-kXxl67?9l@Xc_FSNGCyu@2@f&0q_j`9HPbgq=jlK<_C3hfmxdNlfr6N$VywPNHww+>m z0BGqB)gE~AV+6oi0_*RNqDPA94hj=Qd!{*d0B>r*GcE-^Y143FR&eLmu)Xhcb-@bu zCU21T>1wdGHV2wt1i9q|CD4eZzXb*?@a#TuC#>avdV0{PUf4m?BR1Z#W_ewi;_6}+ z$boo*p+*xwvtWanwY<|nh;8eg;jVvS3kw0ZFc>}zKl5{F+i$?avJ0iGW9qbZ`wg%ep}V4$U%@rJirm-}CJ7 z$=5ha1kbnO()9sb)C6$%n`3hjskRr$zXC8*MMs8iIfuN-yb&N8$Y}4xnIi}{mtW35nYZEmbc@}Tb<759|^3K((@g=`Uh-ZGa>7} zp)uX~Qf1bAS#;~7H2t`<2ff2#sH_t`!!7u!vb0L61yp6w-va%tOX+&~a)Oi5Rxh_O zu=Uzx5ISH3@XJm2i|?5K4rBOhKQfh3QI%~LJ*|s@bmP$u3^+L`o{Q&=N;?llMdP~L z1E)c3)n2$U8VVCfJ8I(?KMAe7ZEb)K{$C1B`Z1- z4J)kn9CYRxw$y>`Ia;Q?T%~FgAV?5LU+B^a9dprMCYl{QMqXhz+x3lH!Fb@><-Kfx zP11gWYVOiEu!&udVsvGrEc?aF1GPHcQIFG_#pTr#-9PUOHg%4>)QtCt7pYx9)x2x} zJ~18~dU+>OTs$!Wt`bh`lqoB8q!`Ay6W#Xod%fdMla^YVK5`5y&PS1WMe@ zH=ACD9?6(^1&aeW#<8N|fJ z1t1MM{eiw(=x_CLt^X?^Qf+h=6neLl7R98Ua;Gx0O#>7Vj~VMsWbn_rBh4vOUYMoJUYJY3K#VkRgM8^12=IbDtc)qIsn^qG6NPejrT1E&^iXP-haVT#o?F4)jfKqf0 z9NJ|Quq_lsGMo#1un(Kv43JR^bqR3ja{NdN*>)qX0Hjvb2kq$T(zphH~Y*YuM2<!mZKa%G%(`7c`>4m9STj{pyyMBKwIgK& zCKtj}@uHl>(zl<>C&Zq8hAqmUuQTz4Q_GD|=)Jfueq^z3_?FZso>!b{d-cSbUvM~G zI6fv+!Q*#sX+P@v+n57RV^-(mhC*+JwCzDL2Ysf+9DiYRYACeom6JF8teWz^g;0$M z$G4=%t(qj(3BOLvRynQdlTHuk$V$0?3~D1TpW;QE&VPqpG-K7_oM5!pti%Y3Hp;DJ zhWNnIaI&8x4+7miOsvZoWK8!aZ|Ao0f1ok?#=UY<{&sxITbaSlW+Wv;%h?TxSj>|G zR|w1uD5wU3|G+kO)ZthQ^?t~Lfr2%}bR?8#`<@TxvF%ovphtzzr+rE$pbeB2NcJr% z1r%?5DC9vSZ%&zwp?!?cF9B~r+X#}}dNMBWw7wUe&U2KA&S#Vv9cSV;-TOkOGvRZV5b2un)xAun<$wx@k+~%YA-PV|C+)IowY~x+gWsoU zRM<<6E{6yholVOOUZcF}?XthKwPvNFc7q=}nCYA@oA(HbKGQqb zVHPKEqiXdPIMXI&`2BD_N>{^dH1_!EHG{A`+IlMnM3%4`R~RzewmS4Bu4D=Y2H zLLAPSG&?SR*|tO9N&T!iHW<-}oG9I*Nji{H&bV4tK0&vxSCJ*gF-XbJuhw@AH4@{- zgTY+4mc#hlE@v+;AFpOv;%@p{SXr+?=lJ;_6kOKZ#b+Ov#c@$n zYzq0ewt=q}m>cL~@->}{sLSpH-`+Zrvl}xWoI9VuawsIvwen-L%#8P`ysE1aA{Kp< zb@?-149jM2xTFfQ4z63WC6_o4$?heOss%X?MiA+rA-+0>GN+}9Dk_*v1WXMg7gxm9 zl{WVj6Vyz*exj?ImA5ymDPS}?0pdHhUKEtdk$_5|gofP7cpLvx!g=|jXqiL3s(Q;) zhm^%Dw3J9ys~Ztpy253B-?stHSTRD7Zs;^sD1`4pq)Ig2MYVwh)Zyu1@$nOdqduoN z)e$(noFlpRq)X)2rV@MwMLs;?nZwaRY9eB@X~eVKB)Ge zou@yw<6t?hiu4kSCl`uNZ{9Z+k+DrZGHB}`UY+H{lmGdrh@Za$1Z`~lqd#zw0A}&Z z$^+>){~MS^tg(TPEeCJjGT0w)aFL>|qRo&|Sb%8iznUi>&8Syh&g0}kZeg0ogk z&rdAq@WXT%C;GxAyzH`_J$5XMnVPcl zRp&;2|MqVawvU&-dOHM;^%@&smL>4M%g97mKmyz6?W&(s208Q@4=2dvt#~cST{(tt zLD>*}h}=%Hx33&6EA7b)BuS<9pV+eJ#tLV)T}9@1jL5qyuh~z_t+c5bX6aIGb%-dr zx)*4+x^rc)!Gb|h>k*;zPFdeU&&lol4UNHuB#)sr9HrGS!^>m!2qHLvT6fP=Z_4)a z@!8<0kKo8wi=*HqatBGl$$|WPzVXrCte9vrv5<91>n}HONXH}nPp4N;>J5JHPf=i; zn5@;X@{y4<8!%17UiUhcxsEE)v%Jv%(IHsXe_2h|cbpc#f$c4q87AVLts30fKpK2G zhkf%6B-^QV!Vqgu{8nOl_*?Z8LdQB%L&l=0NO2k%PQB`T85i{aV2Ax_F#l|(?fy(8 z@XT`)9Z{)zw5iUy+dT7HU$d+J643WYlwW2RY$G3IKcN)15^!87fdRgmjG>7*)VqO) z5++tA#u&Rop>&C0@R{SP7ykx|Z>G%eE(>oxi||+t7|nk^h&4Ot0}fs-s@}rC9CbX? z(nsHrP`xhiK_U$H3+SFlk>M6NIt_~O{kE$$jlN>J-aqZK->VowvfR|A5%RoIK^weGa0(P$E;4JvCXAKAZI2X## z+`DodAZk=!MVACMORc=5UZWu`(xiG)k<%Hc9b%DtdE!<6FE47oQ6J%mb9&3-0fMZK zhvsY&JrB>(o#AjF=#a(}+Pf~V&r2vrUak(zn1PNl7iA1Ls!h}z)A)u-&0?m|HoIpm?(+UXJdk!LF&--9nzSu zO|a9L%lX*h(DNbpg5f!Gtta(vUoFP{^yWZTHyOK4TGj8U(iG@h&N}e6cLbA;W+pL= zW;O7~z>&Au?}I?~qwb+Y#A_%A;g+i;fX_#t_5|+D;v4Ha7*xU@9NSvfo|oV#ZZv|f zeXun}0Rg^a{tM){(=Ex(-+@SL<7j$P&y`+RD&hrICc3Qy6cE9WU6Yyc9tcZRh=7G+4$1GvP~M?$j{MF2(R zM*zxfZj@V(TzKnACEf%8T#$~aX@zO?9KAluy?6~aon<*#cDE2P3$->j9+Wh8q$JmV z2k2&;4+A3k;yStYw>HIGMORR-$S$;_=GAT+npjA{6a44D4aPH%x;;$BL)#U)t+zv` zaM?Dcal-^z)Uk;`!no7c;^_MGiCe9<71CXsf06MYbwid^>iav+-aTYr$=qy|Mc$I{ z`e8j~&yjDzy6{O1!={NChGH|dQhqFm?*okGH)x+xmw&(9abbW@^-2kYu^$<4B@6(7 zK1jaVoUxZ0d48@h=OE>IRVz<2>H|kkeP`(6IV$T#OX(c}oO)DujIlYfEMP~IxOkxH1J~??=iVZE{_4eNsBZpTz2f~JPp4EIT^|as;8fm2`GyV?_ZZ7lxgw1 zl8a47Z4m-i)YvFZzs)2gxEL5dFIg85UIav??EJ+6Klwf_z-L5KO^}k zrvmJ&Enj{0~t%RKiLthFrRD+=TqLti>(+78sEm z!rz@g6UN(!WhN%^T19NTv7P@A2nyo@fuMRfL^029;e-eK^Y-XdS>uvE=YC*bTNqsM zrlFfmNT7&!ishcMAHfabhBm(rvW2cOw+t@)BkBciM1sW)&6MVl&0nJ~hcvT2^}pZE z7j5z8$U$6af|0fu-2D1Z{rdU-RjlFH*oK=9`G!P=$_!7l`#*_M{QBJQf)_2`{;jV= z+v*d)MpyrO)`DP|CKM=jH;7=^6|6;lf93rbVKyp#|H2oAn-ExW($3itaqxK%(W>s*y0j{Vxn zxBJ0_yHOg`*Fb6>i1oY+aH*w(TJ|NG6JhPAbdKNRZFzq5^qEt?96ogDsla{N%1>g{ z%7>^ANV3L#y0-j)aI7}o@HBE;am3U6h2c}SqZPzt5kohBG8})FCgQ+e zYDLAWtm}chFS>$`>Wde}U{gbbm=1Fh&4z6Sc5fN=qWyh$H-*8< zkippsuNQt_sT$j^?~Y>)*Lw^mCT-pF^%~6|D@K=7e~C9BNi6?^{>t80Cl|XUkbydE z|Lck~bG?EsY|%1vm9)rIjjgq$o3Q_G|GimIzZoneSRmiKHX2YteC#%AUpf2Z{o$> zS$kia;!E@uY@6*!@$Z(yKd)l{J_L#dP)!6}qQtK?O_Og~CX5%Vsu1hH(EfNe38yOt z=g6t~e*V^X-}KI}?3$kYXle14s=t26@8kAw_`JZanl9`9gXedPcugH0s`zY&QPzC1 z+iS(_isSK@1oBZVzCZNC(c?q3>{lh6Wton|b{5qq4 zI`)b&5cvd04m;)VKyvqW$(SQfgiAT^E=68`0Tp%rD+k%PV1j~zd16*6X13b^a|-|J!>~1Wp+C)FrK?$Ge@|zvmycOwZ$*IP4o93=N>N#1~6Xi8`X(IyY1Z1BoBiR9xe^Z-)_6G z6@8V+q1ZA~;a(BH5Bl^$|7S*LJV`Q-oFCy92pQXPz9YNx{)hHDvw=9Ba|-peze1W? zDQ0CB`f5G}$LiVpbIn%OY zseZDys*cCDHRyv3PnvKz`X*0d!|iA^1Iu8YN#oQBF1)ryvO%4RvYXGP53^If|K#%zA*eOD-X02=CL@jl`_=)m0OvIm1%fDH(jn8tFAkplK zv(NjpFK!EQ3xL4GW{k1jZF4HINEY7Z=5|b$GY7JTr6@^4bd9`jsm!Ie!Yit zHz#v8GZ;Xv*#Ecse!`8;Od{)&U9$Mi3S8b9c0!?__$Ug&dvj2x9u!0Z<#Ye%_cqW z5Lb}&GB0nIwPzBq@9pI4*5Hmm1?kU#uZ zstYs9G`xjV?@Z+M((N@J9Vy&xTKW_=X`~ceEJze%d>pTwQqG@wXTbDUZ70#1RGMve z66${Tp0lDeG3a2paI#3NJD{Cnc+S+Z9x`w1p(Sa0t{;&9n0ghdxvNacti$t@{&$P` zz1hxU`WxP9gN^cLYI2qLfj3_T5P=9ip%2gA4p^L^5vlEc-9LoOH4Ckm^|dD9_uvW>nML zhMU}W%Ca#dJ&?F9>`aRYo*&iXO$f9rcfn2GOkpsQ3-4}9p84kP3di3CHLRYDe$;}S zM1Jg_(!R~xnp#iCco&;QuvSCs^XA{`b$>Q|cG|_R+$1mio=8c5HxpYhtK>K}i}-7{ zsICtthSr3awsJIc{6QVMo1#8^yxH3#(|VR?%d{GKI_)=~QdC8BNZ}Gw?Ga8Lv?E%U z$?%~R;c0?X2h$Y2lSv?c`@HL;@+`iM{c9{@lOmRVljAP7^UtKQ`?2=YXFOCCdhNFi zMyG&)T~3I(H#%V1vFH^;v-Vpu70w|+?+cdDJ*b&)#GDZtCOOkr4qal11uy_etn-6W zAWhA@O1>VDCSzGRkOxR(r$22Eo>qx13TK^p$o^Z9f`saggaM>KD1&4VOsy!WOTvuAd-~>m8-vUjk8-HQHNYsF7M5^dEa}%Q z4=r+7yGi=XX(41#s9Nj=%K@evyb|Eg2j1afI&-61BDpsgKiJjTI)y5|JBGO!yUeWj zh}LXBze1W+c;$>ZcFwxcW1X+i+F)R=zkJX<2F61g$c`!9eC`%J>NvT;7%g|}qdGQ) zVDdpYIMeJ?*1!>z%ehiA{%p0u+N^;qZSN#cQ*RQ*T?x*12xH_746FS@iXVCvmhno9blUDweAy3Mg4 zS5}p&m0qq8a>}~wR##^vSm=Wb-S_lfLd)Jl^EP(Jn-2F! zjJBs>4&nNC27RmWTg8#PIjZiEg zcu5PV!?SHv9P9&xE&3-EtOf3bH+>?M=hc|9{lg)|XsfV?Oq~23c~FA(P<+|OrUjw1 zaeh`%*)c#NV7_EsdT1;9yz{>d#fmDG`_|T9`$# zTPI^}+7z2>Skn8!`HgE2Ey@A5<{#cE-QBs8xL~^_25aV88Tn7&t{=Sn^Qlkutz6B+ ze_M>g89@1YissI-Z9aF!x5cx@EIc@?86Mn7h^(vp$-3~fx_hz;-@jMY6Bs$>!8!6J zL$q_#<$J~F=k=T^D?qg{m*MOKXDUA5H*h-Q--UJRmU;T|FRu_Ti0#RMzUaXXjd@t< z1aTgm8P^tD<{mBSwwf+!GaG@pF4GIUILselNn`$Ay8E>iqO4{lsi;5Y$*XSmJhRM+|FmXvWlLO{zHxyX!@NR0-+Ivpxgk%oR8D_@2UV)9g~0Z?7Ws6+@Eo zi=PlmtIjG8)qlaLXH90ERb0O4Py75{BM557$o84e^J7N#k7(O^4AXNQEsO%h8)9BX z9ew&v)fAtz!wB^~V}q{3V5!+eJCVY1nRH-P`9u4@KYQPxqqvFMl~)wREoT)EZ=ZRZ zi%gp-?Puq{P#roCsg?ViU!FmBKv)s`E3opL6I^$xckaUVW`MgJ`HuorTx2 zL)dm(Hmz~|!ZDmUQ<=3*4_5wvE%r;9qOClOt*3BAlO^=z)=Hn?n(k;^@x%*@nXpEj z%EfP#3uA1p?DDiM+CcYx^O6`i4b;8$Mq(9YJWP7Bn1=w}$N6OD5~MjGqw~V)p_A z)VTag2{IlYlJ7qb)bfF_K({-f^f~^ArxU?wSFCpNK?=UWTloSQUKU5`*ZSb+%di}6 z(3GzI;qeY&s12dj^c8?k2j+4-7~N|#a>9K1wlgClFrcYvH>FX~RQc4l z<_s8Ijj#W+g*-w?}2?ha^W=_mBy)Fa%mYJW#4D2PAM;1KcpyF)l zqzLHG8%^xukoJFQStkq`3%1ptJAuTCFX_y{l+gHof;|;_$uBy_Siu1C85X`s0hNge zlypJn(~Snc2art@&}IJM7H?|-D5eKqvSXxS#2rvu)#phU6-(Xf4b1XQLB!LA`h2}M z94$?Cn|KO!xr4K_b9PS4K*(q!daI~C1DpKrMr|kf1r{6*)alanJ)x=Lj_Voa2T)}< z-mvN^h2YH=p_|e%r8$@lwIaTowA@XjTC3?Lm08N^V!`llN%N+yr7kwciSsX#BWT7tN73!`=RjiLwH;SB?- zO)XA}z#(%DniGXz=|75w2nw;%mNfS4%n5Uw>e(Y>hXZRrTl_Ef-aD+xY-=C3V8H?^ zDosG83IYPsOHdS4K)Of^Akv%k5=cZuL@S6Q5(c@X5y$rLw`#uwubHs|eEp7x)h~Bq{2A>0haI8U&65CDWkGSa zf45-%+3J5!mqsRXspVNv!*8Oc-&6g;+e>}`JdLQ(^m+5s_VjmT{!Izrh5}t`FJ;jF zl}tbAVK*6@3IM7@Ha;p-eaGkjYSU()82WsTOG@ZZ;LpFUmd`AQ9vIvMw-sCb04@Ji z%YUmNuRB1OW|h^yK*xVoBN5j~rl66OtBQZnWPfZ)Xubt>nYPjO{I6>8yIMjxK*zr6 zp^^M&ZUXvk3AM=|7{s4qiu@A@^*610wUGDO*KsGv%l|_=Xh&)&UP`!1Lmv8 zpaeb@-UF5275-P-TACX4v#G1WG=DYY_bzcsg*57u!@ckQZ8_c^1{!sYyK&@iPoNPT zq|V-6cZKh7%hBuurk+A&mi<38^GXd^S9-gx(fQJ9>hvh%ICn-TEK=7*m|J+ zF3ApI@PdpA*fDsnT=03Zlj0NKl22&c8+qNZERv1kgJsJSuv0_@2FKfuhlzr%JY{7z zFfqir>ILjrCDQGM{EUEU;SE^(t4KzO+^rX0V|rnYBqW zk2Gd$l4Q2l2#lqc-J^pH1y!Ie?64=*iPPM>VW*rc`Hf*DgG}S0gJhYcN_ic-`GjP$ zd3jG=dB>`h%etTq614m57=YSyrZzySx2tco^Ii-Lfw|66p$49-Vq6#76;B(AmEH@H=Y`O8oAT8wnmn7L%e#K^a6=qcB6jO%Mm8Yl5o7V(9q1Nr0js$vuv@__Lh=+i~^t|4*DL7lVnOcQi0RTXQbCM2g z&W%VOHQoE5!0PMM@EmZ&$I?FWPX0hAPefhQAGb~N6xR2#^GJ5qif08fMmErq>6^j^I&=U@^D z!DE5z2f62&ovBEg>A%J#^$b85i@}BcBnZPMt3nQ776CyoOngCUZTBr1H9%>bjoDlP zScw&~^mGK8*kVY~iUX-z?o*luYri{+JTw0sq?XgUE*c3m;a2G?3%&)3vDngL{}2Y( zz(FG(7@(aF~268+*Q(i%;?WK&uK4wr`<2fPV{Rj?5 zCe$#{5=BqDuO9)*b2(n5cm#Z32qYtcF+2`Os6fMk8~iS;1B?W6Jv|}<2*(FgO9wy? zyf#Yl9sqiTxJJuE!j68rp~7qSlGA&E*)OiWaHm)78= z$*p3z8@eyB=Wwxw-=V{coDbTeLmKkxcOPncC9Lm3YR7-s^INCqUC2Fh^ZTGV*L?Q5 zo)WR(UHr((dGT|~XBF6gtVp*0I`=)Ju8^*Guq6WTY~Xa$Cb|W(I1_nS@@IR`uW((q z7Rw0`Vn-|E8DnK%?X8T*H$_!OW|xT@?re!{ME9XnE}A2M0vnwGp^JA68GjvC{hk%Q zwX`+H4w(iw-oGEBsvV#_9VIVVwtb2nc%J+oR{I8tX=rQ|(vLPvEG-*XWA%^>u@@;r zv&M4r-SlN!d{%V)n}y}~%lJLK_j|?uR94Gv*AB@LyJDv2xD<@Wg4 zPGW?TrDpd-AD?~b*)>_+D^6niXb|maS*e(G2|;9JWC~PdM5TD-^M7YMGDOf+W4K(=H@pGZ)4Zq`t2dHMhfr!INngbMLb|=?UReM(>=ZYB;nFz+2FrGz!J(oum&th zAxR1+!Du^A_?8N_NgsNjQtV{6lgo)uwVovQO%)jpg`JW+Q0+!L)kQNe?PSVyeq~Ln ztxCsx2S7Dp(%=?T0{`hsgpKt{;>7YJIGjldl%vwCcXH@WTAkSWa0sB0w2%aF31%0P zC8g=wC{N!JiITpk0mbGtEl5KBIz+3j-_25VBwDsxt`58cL>=G&^1rP`n4JRVKR@Pq z@>kGt}gnuvl&lm^QIZ%S1D=o*Ke~-TWjxdD)Grbo6rsD5| zbbcf<>$Tz|C%yi*9C`pMjF(ru_s3+_pJo3EmiT;)1TCG1?tk`I8nTDn3dAGO+vWTN z$oZ)ez)2a6P~{kkKi{wt68q9oTQk0sRFhgilywYf=Gv|&hJU-8MnFl3&Vr@fp9*pN zoBH{`I{ZT||EGulK|L&9qRL0`@U!gEu4xiUuTO&JUySuT7@Xq-BXyi{`s;$De>1e@fzIej3b!mrLE-e~I$` z*Qx*lc>;YT-#0w=w`cSBT5t0*Gx@`|(u(=n=Q$3O@Wl_7J3!$7+wf!Ke<^Sn0ASHs zP6S6FiH?4>@&=y`z#3KCdb|efp1aRPYKwTlXdsq^>+9i=O3+Un|CTz~O?6Xb-By6tt=9ec| z9B=o>Mn^ks6&eB@ce-x}kj#2_bkFn-7dz&!60QF;bnU-W3Y_Csh+td^->6uVfqr^o zfM2h3TH^;C-Yqq(<42nN?}MdiNB4$1;gUTnp3Kt(vlI?ffPQf!X_}q_JgZtw5t0JX zDTGO}Bni69YQyG0Nt%0FY+V7mNxN}OxFQ)w{fE%Ln6rKX^kWRMpqSJAv*v8KgGDFT?X_?`qaNX?`qxSblJE?>$C zmx|+lv${5$j8j~HuM3dHNPbNPE6|qJ6*n>fCrs#ipy53d!93!w9tI$p^Zd?{cS*IS z%JMG(NTOcF-1#S4`6$czH7{DoG&uc0u0O2A^E}%&e zuyG?>2GDKf+|82rF8Gb5cF|i)lAo8CmwOO3;yVCj4bB}Oh1dux1GMh3(Mz|y#2Ax5 z)+H^jZ4`!ug^4wGUDPE}yEVIy{W+2@#eYw-wuw{jJOs(>2>^x6c3UDKXT;ynIIVL1 z!9&5jE>1gfpj}YC zGF%LQ2C8wjl5dAY`&;DC-y>iC3rqArpHPq+Y71Y9?AIAs4y#Ra0Cxx#P{J3zLml)e zZ~KS0f5nx4T-dd=lvS*s-g6^pY!O}fOZctI(0Ln(4`o`aD@|3jvrX9MD&s|G6T!OuZi z)A6Vg0%y@<+5A!x5871&{9HQpRXu1_WBvqPp*3Z1=m&%{};avnG?L5f?Bt|OAi1_wr+ncVp_ZcgF_$Z?Y+_T$NkC=npODO zZf%YI#uOocCb$^PVEj@T5<53U75#q(v;SWh%zj#vPk}WVqwNR>NT_>*$QEeNQ9wFP z0xMEVXP~_TSU+DCr0IeMD{uYzz1!gLNzuqLl4n^6Sc$*_`M&-Xl@4frK0eh{U>;Qr zHj0QKEs$(?!eM~aT=cx3EesUaTQPSJ36?i%zM`ijyB^QIJil{b^(7?(X1_sWuu6i( znSv@|Rm0sSyT^PC>gXPNq9XT)|WpdZEdkCJG? z2e3(n6g#xwkAY?RB+hNw_J{NxCh7kb^Z&kX_(Y95DJJ|%D8^ey3z_Hg%HP62Q4gCxp9peVrxEa6DZ=#~V1I&c5 zKPW#ctN>L}|A9gLnT7-|$$F^%eQb#iNb}B)mGjRd%D<}ha}uG~sDk~MI5$5F`#bXd zpuBg-0TxZC8UI@`8h-V$-~Ri5YS>XZP=mWsy`shUuI+V!YGZ<7&`B-b>+kQ6sR?G@Tzd~pkVs*at>%GQG51w7XhJ$Lkdh@_ITlTYbiY(Q z6R>)yI9t|}>AN3oEE&?j5dtne&2Euge<_Eiu0Qnsqkk}z*pv-C7NjGkkKFpjq{DIe zjF?A-=f-GWevs$7ZNDcahKqOVK}D&kqq+HoAQ55VJm(kj7sG^vSQ778kn2AcL!<(HzHn#Q3|hY4r3)of1*e`R>RzW-&OyW`xC#9!;tfzw!WTNa3QF% zVg~aDt^4wa8pUT7(DL}I8^o#sKt_r(w6U>?r%+JVTqz1cXZ*^YF&SDSAYLEA^rnVF znGxdlg`1nFz{PW_93v=PlJCAZ;fHDB`!|36OyMcX=sM=}_B%h>K$VPwLF%PvW(96p zDQwY~70-Sv%BgBPM3vF$pT$VOdk7H`5FhP(u4Bg~pv7JU)vA?hF|Q0V4j?+R4=%-G z+Up1^OW~R(nZsHxTkF;~ZC{FuW>E+Fyg~S}(yh6{LU|t7$3b~ z>1*-J!c)b)I2<%MLW)+gZc=)^2a!qU%UZSl>;==#Ao3dCw_JX#dwqQFMaA;+%oV>= zgXtHG4x5Da%ZDo!P7b<+i{l20`s~*)C~?WB%;J0I5Cp5r8Lwv-tEzlD77kOG_;Qir zEl6!pBLqDR=l+cSz<>-yPpUZh;^udYsY1x->dZkJPcR(v^7E%a>(-ldMr;35Vgu>3 z;tNA2;S@yy0+fZXD@ScEi0{rYbnCP(MN~?<*;RQC=I+Z|@Pg?rp!Q-8vj-I<9u_JH zIqYxK*ibnB+6~+6XN}pY?aWb%UW}D+TC6#q=Ynwl#4j$rgv~?r>cLxl_G%UUs^$?U zUYey_9hm3^kIBoBeHP$)HNL}h-C5P169Tcc4yWGzd_mM5Fs#a=e_4kL% z2l@nZDlnM9p77CMVBQi$8!(G&XyVIAbAL%eTz&C3% z_`-ARv5uW4Q>+#09aw{pD+j zKgJ(HbfQo=>6riX6!2c(0C+cU#ga9Ffmg-(>6Pcp3%__FkSYbbGZ=RlkYwLF@2)*m zXCI7pWfVU%V!xfw(EH3b&`NdSC@kG+GRjRhBoR~bH3Z|0AhgI@Ru@cVgzL^RIxJnc zVZ{aXQDP7^+m%UD;*Iu)3S!q@v5%usxk{c(b(jsm5FfXH#+q6r+PS+Kw^;X&^@XlS#Mjt1PZ-mgt0dCNApN@)@#Prq6)Y+KZePs~Iox9D` zD8?iMnGlW=yA+%@{Cx=hmYDy1_L=1{Ue zzq5v1ri%DVh*?Ca)i?4K`5YCn8J(C5IiFd|FBGloEI{2*G%l|>Y6W$)S-H0^TmU(2 zx0M>X(2&pE9YHMWuTFNqNO9&}vUWMm&%49VtA}-A^EsGF1Yt6X=(l*}nDp7#pNj^! zZLnUH9%r>Y_WZmbwFcd{MK-A9m*(H+CB9HFXg#&or|SI4z|FWD*l?z8W+xOk-xzh% z;}=jwuQ{sYnZgz(K_Ot5GL>QEhL9xc+uHEJyk}-?N7jAm7%7_EBuir?gh>O0Zr`2E zz0L$Gzg(N{p~k*~3y}MH#jhA1*HBy++5D>PEb?V@FI9K*oYgv_dvFxXRGTguBpkpi zD)@6nqYp*FFa?+@dfU0nY-ONaPjU~!O02%V(o<9KAGfu$x1y^O1kWhq5?5YYWtTcf zY=3O)F?kzHPh2Z43OKxisfI7IO+r4zg)>ww1~GT{AmOv(7#G4KVhl|nLOt8CMRFK1 zaahP?6t10`*f=j`8xF&dhZnw{Q;dagvzIO!V+o)vbf` zLkTq#iivdTn;uvzBfeg6s|rcCp-K!h?F-K0FNL1X*34Tk9Xgcp4yaP2IC=`Sr7`O>kL)Ngs^K z^%7IaHUz)TTQk@^i-fFFGdbwjLk|;QNKVE&bbd5m$Mk!?ZX4{|3jJa^gFZb|lfF=Z zK*H)42q;`Qal_b+0hOM&T?X53#V^%TOASh{kq0>e?&fBWJ~0prZ|-+n@JzbXOd5M_ zyh9MyFA$T-Or?mfE{BrTHQx>Vq-=fE*5W&S2rFLH&#Jv?v$PE#=Ql@o9~DmgK0be0 zzyIYI=!amU4nWfV(y!FcUlPvSGCzUpE9i#n*J5pl5TLd41Cj<(c}7u^*1dPIUGhB6 z5bPT!=g8BiS6}rO7!|?B3MTXGn4IEp;PRSI56m;UdFP@gi0}erqNPZFR^JZekQve2 z*RViThHs37!|{S;`DlrW%$$55>6wu{!dg?|N~4roK&o?71H}OfI&w>xMEs%okaR zjqYFxa%d70fR!*sGesf=%q&vE(Lk0 zS<2<%TCq&n_=NEGES$kKitSuqDe*PBNIq+?z}E0WS{~txQW4f;gPF9xsYqTYZIvQ! zd3BVZAecRd5MMC())dkU-Pey)@^q|FfLncGdbQ{vu-Wo#v^soQh6)~}&wGFe|K}py zy}xO&)-T_t&X@Dc(KMCItFp4PcG3YC?NUG=i>v=aj}M9#2`(wkB1Wb+L2wr*A(ds2 z)8S#a>~2$3pfEEj%Sx#mro6Bv?Y_iu<2-EKUa&mR37f~dON>Ni^;4Ei!NxP&x0G0$ zeOWzhnB*8Eg?aMBC9ztVsijeVb&J@|G4_Ha$}?fjd@=ZZu73ZR&DB~tBbdIcAq1&!o^5CtADBkF9nn6417gz!C8NEBCijD z_ldPjvK^eEV3g8!+a)ssu}6z`@AkhgTpBlt@RB;U7hw%4p%1T^z{)hDoQ_KC$QVWxEglIJaoyk$wAoI*L-XkQZmL$oO+!o1|PRx zsG)2x-g-|>J+l~lcLZ|%8sjn@)T4~KkGNT=S;QSFG>)9dN{zZ>!7QsB)dNpd6XEq21~bbP&3o=MV!a9|$ZaWvGxsRfWc7}eKq=#tnkTrk;| z9Y@2Q{|dekR{?C(mdYwKVN_6Tfy6MG7s;W$J=yL_l;!rc-hcDb2M5aaaqS+mY43AR zw}Hdf8wL7lDX6Q);fjD6*ez^9=|=`Y6d(1`%#rR(MkP7M;!*~d+Vr=?u^8f}>E;)x z^No=vDLeUrQp2VkOshZ7gHl2kWVo^0t*Xb695M}|HCVJ;*h@J94&xi)s4Ys%18kW= zmpD95JdPbiIr+odlu$wtg-%%M=<1OnLUdKw{yB=&5|ki#;S zYH8M&a%=~O36-UrE}QEMh;@NX@5@E~SgGy8IYyC^W35cd2Rnu-@9KJ18e?v1>Sg3k z*7`H)iRdnUMr~u(kREP?5A^a$QeIzpQ7q!pWkwp(2=4NC&|TkwG^Q#p;<@J9=d)`j zSu#(vHV1{f^>3xb^6#@12L@R<7I_Max>@zhg|%=SvW`2;l4Bo1j| z^LO1Q(T;8!nspp|4oXCkt)dq{PNq#d#Uim9+LcOA*PxV=tIBI%)Dn8yb-V0UCwC%T za;sgp27x$1v%gXKw>_h0CrR6MN6Me}gxp5Fj{c8EMznF>6n5BBVsEA-%3{&P=DL3K z-rSkt9u%=+zgr)?+GR!N6hZ&)*pg}NMmDUU5@oe^G$CpKcGBHBF^41=0Xyd?JXcV) z-N*$0yuCIESIIr8P4qijx}}D6ppMB)xde6Li`?E-M4ZBUMt!`yLO;>}K7c;j641q& z@(ROi?d{CXxre=EeEXxZ19{G#*liektK8YfV<4+PpsC;-uEO`I$-%6^1B{ojQeeBq z1-2BmwEF?B;x&DuhM3+&=vj)rXg9ZUZ(XTVU;6^Xlf_u+;OLYZV#xzhap~Nb469sB z@~Lo4$ny4MBruug7LK$8ktjf`p(h1^o8@WKY8O)cr6rB*H(J1=+P8KC4hTba_P9_xpTY)m|y!*?JK}o`(Z^efD|e7 zJx(nR@X8cJ*@e=9xz%XYu>=afJiAd|MT#8y2?W$+2j*6dzFa$!*Q1b4?>5M7J?fN0 z3SXsH$s`mA3jbu+1!8{B>JRlVY$CwE7!m1;A5FJ6jRMDj$J@NgFOf{Gfw!(M-~1_* z6>>bc*G4{?O$-HmlcuB@Y+nGHlL)?f7<>uh_&HDr$n1PF*NFxQnMcvb{}9-L>mEc~ zqk$Nvn_WpaL>h=? zvRU(<6oo5u&mKQuWZqjRD@BUJ8BERpLK!I3!2M!)$!K*J@s`v?_16&gmBGT&Je&e#`lEnl|%Hjz>6K-fj)csS? z^DU`I-MD#p(mnMjC@&ftWNCc=+Y(HCPH8q&D2wl9boOvM=w?vBKH`}XBw z3aj;;z9w{1h;N*9I}%IK90U*T&C&+~E zL)fv9!==o)L^aC$u{|Yih>bI6*&X z$ucWo82jeBYKae4j9q_N{mJJY=F#Dcr8 zJNx9>w^#uCi8AU$lbb}DayFu2eQlJdaE{RYV3a70?OL8DlKX2Zb~$Hrp_E4gdnV6w zHq4_nsARI7$!=l04dNoM)H_UA;UyMFh6}gEepH)Ww*3^YE9DE{5dK1(gAmy<$BP>6 zbcAi~7hDIKjBObu$71jsT>Vr`4h7=YxLl6{;sEtr$ zfj(hAZxU^b%Y)=O8+<`WEog3TM=ntsA7J)Stj=Uo$KeS}l!K`9k|kj{*8)ySJ>Rg2 zs=tJC&Pkupg9g)dUt|y^VQ^?=d1*|PGQH$1Ed9d8@bK_HKQ-ITRnhHp;iN4?bIDuMETgXQ^ z_J{NvQ|m=+o2+)^ZFP2JOxgtn^DnQb*%;f)KYP*x@IYV5J8N4(bW-3%rB9~W~IJfYHFgTTBxt)Xj3h}6G zaFkM9<$a|NRn1cPCkA5gHiDR@>6%V(Z~mn+-)w4+y3)okqks zLeg%X*{cpN18zw$T<;)eB1_+X6me%t$87^$M#Oc{4{pfjIa&54os@rW*aI$H9k;zU zki&(cdg}YNl95c6yxzFD!C4hOMt)JCx?b zkS@zvTkqF4h|uFJaF*C=;^@jEACkbf#LZ8-*u zr!TA8UgV7^ZmC35;dr$_%wV0qMmBmVhNx3R8}ywp$cZ~}a7!L3;O2J+Y)xS(Sdjw} zLOMd$P?$_H(z0nZy`DJQyONHupQbu@FQx>cM(ohkoxmsYY*a&F-G}>Q;dnJnI*h5N z3TJy@Eq3vkdks6|#^&M7pj7y@L(FS*5~b=Y^IF1&Qu;0y$*?(qmKyV~&SrP@1g-5Qb03(@LAt(%HPq>=YPZx; zJjHjjONCanvg1Ze@ew$bsqTUYBhj_d3D%btV?W=Mbal+zi`biMoP~3FT@5gGN2Nxn z{w!f-Vqg=4!xmCYY!~KCW)&B6GN@G#%u#WI5Zw77D(CekJflk|ZBju4xM{6gAAS=$ zpTKAbCEOWlf^T+8uN@%)u4?CBY+H@iv{Ja>%F=9D#iw%ZXJ$>T*SZI}v$_!?`dUl+ zgDHeNT(U!xqSu2ya-sCoRLO&ePvw4iQR*gp zeXKv4EPni!P-_9&*)&~Yq_*BW9qZh|y4kdfXFq@#7k4QTUl^P`EwtL_qzR4UU9n3q zaLlu!{kUek<=GZFpx#piSf{}7`?$-Wr?94E_^2&MLlWKMnl55{4Fm4sbv_euBT=DG z<={n=(j(@B-nhQtxp0YwCf>1FemkZ0!%>a(@VI8zjG z(6fLon_#23>_%*%C-~A5h7q4K&cUd9StLC44p1`I6It)I&U{JPWcae((N~KEx3m5b z7IuO#Q)SuqUa^sQ=Nu7++on|YENze>uFuSwW+l32b;prGc!DIbAH13n;|p2BIZU-u zD)(Sgo=f|J9uSze7a@zDea6&9kkWAhAK_k{-G~0k<{+bPTRB|CWa(7QO1tFdCqxK7 zpvm(+^d%Ouov5=yv#j&#e%aC-titv_lZt195l@|OV^>Ch$qeftdz-5B|K=7&~#UU;g?tPh@-r(~MM z%(Zc<-rZX0UFa|3T_L9829h97+<8*U=e-HWYfa-}O^C0OL~|uQ0Jcxb#Vp_<%ZmrR zOWG8iiJoigwvz`^w&|U>yVPPIgkIFKq|PK>!fkNzxG-(bDhYm+5h4)hq7Qh4c5GH7 zx?#s}bg@|7w>_y|;dNNsg{U!W)8Et6*=f;nCnYz%v!utOQf&51z_TO9bpzxAEHB7v z2EGzEqw5M#1qIlNffv%RCdV9B(gk9$u*RZBx0n^>3IC*6i=KkK;yUA@5U8TZQr>2E zRi-53bFQY0btuQ^X?(w>T~|S0m$O%^;Sb7O0Y#=rmvjM1XmhP!1@`B zm#XN4qoV^zmmqos^=$iEn3ra4Mxo!5p_<61Iz->)-eIdh7!KbMLtoQawka`HI(JJx zjQM)8r|HwA$<@n5bTaS$;yaI8bN3|=3j@e zBlbZ<+$HxnKI01wUp^El{U9U9^8#|{AQ`nz?>`^(8sQF6zRP0HZ#yC-bf9zofULT@ zdJ%2cTiwpd1RAT1ovd=AaeFDIXe6V%y%mGHjB& zpQbiupZ5&OqzUI=#MY+}y(26PTBnY`{Zb;({B~rt;PB!yjOmR8=f{tIz8~Hx7BCX9 zNBR(TYg0UoXRY4OZgPve#N}}ieV<8~k7T@+n{>RWQ^Xiq`8gheWEA?S6{ev+G=XER zinYOCPw;U4R2+YTseY3#7Lipm>vp*|`SsC8KJ{~(Ij7_^5yNRN8Kv1L+t`#&Hl5{@ zop|Jl%iz%|HaloUPvcVFIltjZxZ13CP^;$!_wy4Ku5V%(lRwqJ&ob|&STf+FZc93I zxKY(~Z;3+1H95cGo5dF_%}S*`&5``}-w4=^iuLB!oNEzpUb4%HRtKY}tFz zZQL);&y?Q!WJaja-6w6k-iBsMPFbm^4;}la>pb*&-%s8_+Fx;&Svz^O-o^ z9^xqx%kfhpTvh5&IX2{@M|RCL)GOpd?N3JpWda@;5@Q@w3$nU` zOQ}l{m;hPA;lqhR*hWNYfWMO1{-i)lF_mZH8R4gDO>0FS%zb5#t$1>jezAr*D8i-L zwsiY6m`Tg!m^>eYARuq@(RwZnfl^y$x*kiFUBzw!aIoVUna>*(5|!ARO2{W{&Gv8Y zLIq|~E~I8PekpXCy<|UjW7K%$r94krIVI$|j%`WDn4t6AU5WKBBN_<2nEIs=^{-dFOnRUZej8=?NTz?etC3%FTr6ro z6=6&jsyM6TCTKij8??MEmo&{c-to$>RI;{?Df)f&D@`>v!a4^p!to8`;a8e%ueb+S zihLQdk@=Y)>B0#FC5*_cmi_67BAdNDMe|A`hWNWI>{SW*+4VHXyF?ntnTSi-4s9j3 zy?s^?ZjrFwbP3i&OL#>_;r$nGrqd1;j}vR_gZM_bgZd7g@nC<~CrlhSe9k09rq?F^ zdY+e>M@T-h)WNN{TxsLE<;rw-j(|vlS{w~sz1DJ?Kmpn*2JI$HL-#HwH4)cJHq z)NGec0sg83hSm7ghDX_n;?>3jvgy5WyVsiC`mQT_i!MEO)lbWAv2@zhev#!1Ts&P9 z3!!&0#n@cb%1XbfZflR9?59*L)|oilAEoH>xZ zH>Eb^0u=)GDjXuF7<2*oUI9NZdKbzd<|y41!$av_Oxc6icDT7|d7Uq0(_zu4w6nf6 z(LP1DtRrt(6>9C)Z-HxFcjD+l$4J7SzvSzs_vUWPaWW%_*RA3)B2lBg>vOZ?MN!ui? zS%%VU{|W!o++X%l>pl!olA=YH62u6rNf6pm|I4raV(p_`NBn?mkgp0q<<$MlFHeXZ zA=}_-xV_ZeEY@DvMRxR&E9AJteZFHHp-yK@4Ptfab(;0q(&;2k9F_M|c}1zhN)VeN zDU$1xWM2xoM?D5zm$ckOVuNbA@;j4@Uuixdd*q)sFYmTb?reTn59-^46ysuw$g*n> zMl7sY-;%w0ctUy4EopKNFXq>~0*?1^)S2K{qZstvH z`T<;4Ee(gGmhhMCMy?g(FhvuWjYO%WaPjUOfnYZm+Rm`L~wMeigp<=UrzLzstx73B12AR@aZ`k3OfpJxwpE1WAv2< zI#e2VPFZJ?KVk@W`BY6B^?jIrLLTPR;-z-Mr<%fc_lJ7JufRl^LuJT0cKK<)YH>435qd2~SB@Woi z^If+6xy-j@k9UQprp9aN?6wPQ=``NwK*6bbDVr|uR9f{!w>i!tCRpIfvVE%=9AG(3 zHMHf+BdXqrJ-7;k_}eDwrZgSA*|h|YvtveFXZffa+LOQd%HSIMRnd}n@abuwWhoWPM%!$SYN_j`B$p; znmE|EHDt8WaEjWpT$edM?Xt95JicWECf!B^&TU*6Pn=j0Oraj9ahLFFLJmlGOoqAZGxJ3=F zgnpc^SM zfQ*d|&j1`}T}&k4@~7WN*4s9`5q!J!WIt;&l>Dv{`K;k1XsIj1qI)7=+r!=4&87MX zKEh2)WYSyv3qMtr^k)y-+x=9#6I!2=#`uqKH_k8SQ4>a`D!P;B3=SXA5*e~jexydx z#P3uEQ956k_RGxhW3HVddcvfm6h58c-1fd4;A*{ob#*o-aP`$SiR}UEPXy6caTccR zW7UkXi#(-xd$0j$6koVpMOn?@61Bu~rHPVRF7UE(vq=2gx4R}|U_9r~p9hY9vuJuF ze}J;k@t!0E>RhqzVUP7V(ZWwp6h!M9!NpxL70D_Ii{s(?AIl#5B-T0Kd{}jSP5_CV z1c4_61q~4JrWnaf_coMA`4aUGrC`#VEhMx=y6M=F%ddu5c-W&I zUv|exd5XOZ(UYa6hPs~1wd&r(BW%_6&=$2>RgvWTG&}op*5IHWXIPu`hz~VX8Z04) z4j;CwJf%4VW}YjzZ&R2wyz#-~J&Z0J9zr8-y^TI$W|l1H>PmL+-o57;*9N6Z_{JZP z^4ZKy$yS{x?vz00IlJHD4Eq-uKeO*%yEIG{!1#};{*Q&%zWO#T^kdXB9c#TimnM;< zou}+(V`r@1{&1Pzica?`=Hu^kakVHbBWge>r=p@5SoIgQZGpquI_hnHc0)2gbjh4s0y3S=(KhFU3wuBeBJRyQ#!DKlI z%Fd<`VIb`Efvkshx7d@wz`$$n?sQKm86Gi87M>Fn?BM1qxv?T9{)+Kkzt8Nme^Jfb zP%v>^LWTGW+i(*T*x4N3a~4Z%Kw6L$b~{lQs)v za&Kj>>OLUv;SlP5mK66mD|sSNPEJldf!;exR@_mBJlkOp8tUmpMJ_3sciHc)_;($A zA0mTldn_(3Nv4UM()nTj^!1l^bv#nIO6!sT3~e9!eGergeb%(xUWGqRl8n{-_&+qe zD8nMns==AEf9Ap$I$>qQ&|1IYxWNlW_OW>$srD%v&#ZanL+cXXoiX#|;2k$!ptjCv zUtcS?)b}vSgr;3ZdP?18_N%SEHOlvJfCYpm_+&RKYt@^3v<|i1DWNZvrnC2?b;V;o z=H?etr_T)^Po`En5J$o6AJ$h2f7)a($^Pq2!Z#W5FAgS`RZxBqTGRdZ2+Zye4w4^P z=qA@wJJBzYyH6}4dFc^->K$lp3im77Y(4X$R_Afm5p@bh(K(KbUuL5B`7Q=r^;iAJ z4wC8oZj>$mUE^`-FhM~TQ00 zSG@>k!Ba#~@Kh9EAy^MIG)C-hF3os7zGVngFq?NiV+9{fTGxw=btcMnYjP=)X3qrt|)z!t;c0M+3|;=WR^!(n8;>mph>IV{>v^KZ*Z{v zS$qL?&}&I94Nr78!8BhjZ04717UF7!-i$p_c-Ey za(c>@WUI%1SaSW%jb4bugo3X7bRt_?DMH_K?G%^-A4b{~l7ofiJ)cQUZSB=tx1Qac zSdgGO_hJ-;FfIFJSgrskZP{#4nD}ig>I&8F&iJr&e0!d1({gv?)PK^c;+f95Sr}wnTONa&!l= zZA_{qt<7FeibgCv=4Z>8_6E>6FAN0e6*<2ipJ<4@V)U^DhP^k4@~ldJHf?t4%4pu3 zHx})koe3XvcgqXkiJu(d7D<~t!Gb;G|D@*HO0sB|voTp4;s=HPYU!GP2{zE#brvdd zKXl&3?X#b++@fH!f1w&)d!^S4dcd8j8TWAD0E&q9Qg(Z9`K^!#$>hpw!WSMs0XETxu#fDsbv4N8a5#A392yABH9;FSO$P8IK<~q^Pd0jx+|d zc zWV%_2YR9Gcgedm$bwuRZa)-gQ$f?9BzHG`UeXd}XIZjR0TXVNGak<6JpeNhBO1k{@ zfullV&U0qYU{m8(MYXpSMwz4vx2(C6c#oc9vfwW59=+CMUg!AvPu%tn=QFCJ*?Xu{ z6D)0SyK~$nIE{5^qnC5sucW<*3vCNA=DMGz#o;ByEKPYFoGdHAX9mlGaKP|ZBp3N z*5!16HLLmqRfUpNbqBAV|AVSfrDVx9Uv^hZo4g8Fk!u%jmpSikamlMux=|~=K_Ovx z7?l}HC?*7ccG9q|o3&|>qAHiAq(LrxkVxCzE5B{qpUZH)k`=6C!VQu0ZOJi9Jt6ub zXVDR_BRhCl_w)+xHMLW`r64VfjM=R>d7v#Y&w9}7Wh+0k@c3oyVdm>Y#H%t_8%lia z*(<8!G@BT$dGe6%XxtJUAuc(UWK&9bDsIy!B9O3I|5~8I8H?$+ zYrV-H=P=obaWJLhoQE%eWxrcspZIk)!YGi>F3MQU*a0)?E8!k&CwFPmY>I?`N_tSv$R-lF@3! z$Jf^zFKQ_I0XdiCn0a^n^6{jc#+#4sMcXIfb%w28Ce zT7W17VY92iA?d?xL)oapy^H?Su(g@-Fj&_o!>OK}6u&I% zULmWV?5`ZQ*jY3su>T6;92^`n?o}RQcG1?Ri+EC|8Qle^smhptV(oAJ+&ZATn?f## zv4Mka!|3b5n6)d$D=G=HuZ2z|dmS~-Snf(pSuMxuj~@y|z=p2VZb)jVs2GA^TJ*wi zEMLxNXJ@zf`I@nmxfUOIpzq`)$j{H;oFGT(p!C)>2F$*6qlcg=5+GPYilp#aS=s6o z`uIx-9g$Y*M!Cs$^=s>*-V9;(h8@f-tKz)UgoD~pU5jtiW%Izn=Di{RvIL@-!P#;! zqgn9BwbASB!3W0%IPV;IdGQDj>zwomJa&YvdG{{$9l2SV zc~8H{T$s5wQ1i5A?=2zq@WU5ryeY%GeS;&jI@JT^i^t2Yb<%Yr| zVN9B?Zp!`YEz=SKvO+v6N+)HP#i)Yo(I-nMj*`o{xfNs&UwwU3bkB$Qe1~N3&e=G& z^znb3Aa{}H4{q0UUF2rFdMxy$zqX2Ynhi(Q`pfOEFiGkH+)9R!3s>N@@Yv zf~-#ww$P;`4Z?$$_a9cjk#wFIf8GB{W%$lApOCl85xZmr7hKMbdWiFT=q z-a$gGUo9^buiSQE6q>~?l!Cjh7a#Ery**b}w1ArJaAjd;-b-5JTie}tK`L1pMDmZ}BNDU?3-7&PZvz=jl>pIWl_?*X;$gm1*!##ihUR|7T$r$Vy(EHq+oQy0=nWF(! z`*ZE;AZr=lt~JRqaGGq>p2_9@Y+;NL@-Ei@&Wvnv@AUTvBiFuF4iZln$R>7LQ!T#1%AplSUefR|kacDh^x0>}R7kU7nx&NiT$vCp^_Gabfm)-C(( zRfz-cfF(@b&QrkOfF+>zwQ-x`4MYin%a;U5ByeuSyc5*eN%g=zODOv6Rvp372w&lv zZ-{+LFFv36TE*X@;=I{m$0B4mKQ9lDiY(^Ot@?gxcyH+2iR}s>ftWwSq|_Q1`*P#| z-o;kXq<|955BGO5C(!q4Z^@S!Pgf7Q47K2(oKNBWEdS7o~2r{2JxQsgg<$)V*BVGbYY!mXl|y zA2a5C!%TKaDN{g~WUc}XTQfmxBb5$LjX!cRK>F&tf}{n?sK6&Z?jEz3+x)|%I^T`k zUBPO<24lg`Oe+2THSjJY6F$722D+nkIQ^f3=DCcI8v0HKd(DMlgAbMVfh}rjLzAx2 zr+yvAsl$x2uSU`x^#<)qA~9|CqB_)8+WGc_mz>SGzyrYDRP1CM1fklyZ$I2V-AGh(*sxj2dAuvqaED+= zVm`hTA`ew9)PC!Elr&2YX(xRnbVz{CL|8pX) zO?QvacW08@fpRq8oXREMqA(^pGHaD%4~x#r&yW6!+Oos7q#;ic@)QL`flEOZExx9HqjR*c6k}^%Azzb^rNye z@9m}=#>BNmvXD@e6VTKqtS83d5->s|%uN%2r(lvPk9V?9N3$PycQ!&mwILG|ns)Qm z_QWe$6JU=Zi^I>KMl|RO^4!;Vq&lJ@SL4&eA-N`Q{WIJxJxK4wk#(@pGYrJ(ORBEKI*b=Qum>~V ztU>|>0+;O++ZbzSACqL&U@hn!qZJe+R)bt5MPsw{PSyv$XqC7fj|G!zawSNp z9;#q>yEq^df~vkxrd2@~XYZ!_9Vd2YMSCNh*k# z%J&>kz;Vg$RZRA_gzFz|v6F5BohCQ-UKpua(jSz8BB12i((CChxC(i=N0K?BpHE2& z1BZt@V1kJ_4Pir^Z3`p)3RUFA0_cBTRt*TiW&7LfyCHl>Y!Sj=Fm;s~)b z%oI)|j(aTcVNnW*=1hBShr0y)B_b-|W~_+>qCe9va^3cbl+cP5T>MO64eJsa7#w`2 zD-IY&3@nILLvguiu*IvcqPLlrmXlV<{0`J;H;$Hb&EYKJNgw1$w&=9S_Z8PQKCr2; zdPA10lnl-k8pKcsv{cHwY}`mE7%#Z@(*2COjlCF07ul$Y{|b0~$qD~3X}JMnGW z`PX1md0if9wxzN);IzCqmgyyM&h zzx%q)nqFMde(*yo4aKKqjX7|Sr)>d=kUa>$OWyOn>9XIO3qa-TxpeHeROe`vD3OyN z1j6D$P%WL!8mfsNRKMp$8uOkrG_{G@?90k1d%-d!{KWnS>9) z6)3zGuc=3wB++P%UOU@%8=E>Rl3JDxOGhy2^!3T+kFu0`nXhQt5Z;rMa$f&(2)bO|_I|v!U~)S(b^B%CB`G1H&8yzJsAo^CEEcj;t&%EP3Kpjn$*oo} z8?;LmRaFIoD$~=`cUY8A`3!SSpCnt=pS%AQJ+mDUIjgfE2|SoNx!3X@Fi{$#;M`s}c zmwFxLdT7b_vgCK%f6(nEcv(Ik(V8nbT>9-t2SDUTVam_Nu>I;RkjD&RZN5oAxcrH0 zOR{6XWkf4r{ghNZ)ZAa>MRzvs?mVmBUggY@aV}{seLok-^gB3sK&8{R+<(tX;m5;^ zlk87;WCRvsruB2s7B2D6_Jxq&+h2>(*#G5f&ZRubvA`T*9|_BiU_2r{3EsG&YI5>uT??ZRN2u+w+`BX zFj{GP7L+{Qd$F+P$0DX#0j$}Z0y9?3$!_+!r?iA?>1u$mrP2RQvjt1Q-$)tZ;g+dv z1f6lG^m2Cb3R6%};5u^h!MOu=Tb1{B4E?w$xLzNO?_^JOthyozSz#JMi(99MO-BOT zqh~k_Ie>T|QpL^NRb|I=b|x=3wMTw6`Q;a|G$U}A0yiyVDg5tFdgFqSKvNfzA1e-4 z4SLQZs5uZH&`UyW@Hrky5l=~OEhZfV%H&Ml*j=c#dCPDbTY0jWw)#s;jUPl{hr*}- zl^D~i9BJ<-cDYXVIKyNhvKL%grd!p^Rk6fDlIq&&X4zs=u3u}Q=WpI88S?I-7^aN! zk}S)<{ct^j_kx!l>)myxm}g~ETTtK6<^Z;qlNWRb<(sHvMw_4dE|`|nYfhu9f8=5U zGj&Wqqvfo13N$!4*x8>ViD%{8-DHC>rYwA+{~n;#xl9BLXUqVW$j`e>D}OHv1&Enm&kneqHYE zP8n)x$c*wBKXGDY4`OXe?s__$vTrpImCDi8w&a7;lgzK68lKqkA-zRAZ~*bMrt7K1 z_$b~@G0c!gj_7N#jF&WDFXsNiR{Ll2TFJmA+WVAfkn^hh(Y%r;*-GTIJgiZpij0#8(^fum_PD=AccO(1QcDlG1e78D*Vg+#libVxDAD!NU*A(!ZJW0|)!EcTLKJ08S?i*0Qx}dfcXxL! z6Ori-$15Fj4U4_bEM*!2ITl=8;#MMc9a}>M$z2WAC;JnwbF%UzYLy zdbyBa*19@6GuD}M_@tzy4yqj+GF|%;cdIyZHWQYEmAgL!B|u(lxomLgynR#k?m?{q zR00dj&KNS5+XGhNqHLqKuJ3F=q5|VONi<9ve^IgF>M%a5>C09oSZ$ZEY97y*CzHY4 z0u1sc%f!M|G`J{Av_Nk(nbj1^cLFbFXHbgSr0A7P_Oj2?v(1ZlRI!jtl4~=ksjw;o z5#gD8*wKdZ71d$E;3m%{Ml~fiTA3GjB(L0>D_-%aQBb~giiweju)wb(n)jsxB?g2TRAeMGxkPQq9Vpwal#fQ|6KPS%BsS)wn&n@~NGk@5IcQ9nkr zV4rrId_AY8Lq(A$r9$@}--_rOhcaqDV~HCy&TWkF5od8x%3nZ9g&Ju+bt^!zeC;MH z_i6V3)C5`?+BNws%|LDLdbjapY*T&9w^x|GU2abF_q}l;^x1%ZcX+Th;b#;xe^%9- z@UXFUAJG90sXQ7hyhwFKn7ica3alyeN{KR44W_!>RX%gMMs+C)*RXa&$Y1KNpLxwO8YRoU#Ao zCd!KhOd$s)CKUhNu>PMHl~&Mc+hhFP_N%ngC}!Zw^Ct+YLIsT%Bb+nQZ}lqUUsrL= z=^h?@QK$W!KxGB9LOUNdn6EHHzSn-2lsW3}xH$tQF3}0vUiKp1&f4A3E+g#%!Z+}ur`glfS+b>_CH=ulRw6^wkun?#o&R}G4OLfU zahzl*xjFiwkb>mJV)$c@8y9eAms=trt4K$uwa)f}lPBny7tMCz+~%WALEFUF-X;+P~fNm*_L@ zVJj)6?y;etP8Q#BC{>(3jK5yC!b(1MppnBb#t-=@l7ahXP`%>o&g^&AQ4%4%BAl!* zhTjcviAl}inXjflG+b(5W6Q=qfm6N|o1DE~y1Ytpr*=eUZ_b~)Yz=n+(4*CoOnvN8 z>*z{)>~?MRp1r>dw0^0s%{$f1a5(HJc$7=G83Pl*HTElgu3IEgF!VTZPARgExG~uW zw*R7Cye(~)bGCocNfq%?{|`pK{3+~uTkpZHlvU7~0?1Ya#JoQaWtlV@G2dHs*JCO) zTCRZ^W>YVTLo^)bi>Lj|1$5{Rt=^n1h_CwawnY`L4j0V>t*?3cV>4RBH``rKZc$zxqwzgj;iOuM%tU<>1u5rN&z9AL+!m zMsjv`FqLa{v%~y5_*R{sl+;t}UvGqO%vKVv+*F@QS$ytYYU-*)my~dm0281Gwn7*P3l8~!(_(g zdvc?)+5M$0rKKerw#9m^*hQ!K-94Rh4rQ^JUuLVfcJ9rcYnltU`+JA>P0;z5j%&M_ zobi4sTw%2KQcM{pUY)Sz=!0-fd-s;*XZ2SrM6zt+PyGv0(le2*?$A zy*c2YJdNhKF{=mkvXefE2aVeW&5=unU8AqW0f0U`Z^yd`;HoxoZ_B;_|8oZCCC}}2 zcJL_xPyRYbj3F^v(7Caadv=q*^nwCV{Vl4FU{~H?y4LF>;tJ?*rFHww-J%?~oXocK z(bMnfs+_U_11l|`o)r=h>dlAkdp<7Tu`N`0^T6f*;Nz0*dw0_Jw{0JGRc_soQ+w4+ zWaPO?m?M`t3T;cqNatuimi7U9`Cj$pzW$SF!KL=U@a-+{Zp$8V+jYoy3ChO-H9u3# zC(Mix!~c<^p%dXj0rMqcfV5qt)9g`UBJDZDId}|cX6biKtSEbd+foe(kv+EcfzYM& zo%BDEtflP$;OUG!s9V3kS{6KEo__biz+!4(1Nawy3uw0IJy5!HT`|l3n|g1Y$JRCc zJ1!-zQ5&6ezi$;fU$B-O1tOSg?|n6<`dDEi>Wvx%?RF!f8Q?OV0>7tzS_SbPP#;D;YAT^CxdAA?gXfYeB|kC52;Zti|9K>Ueu_G1Ay*%ePAarsZ`K^~ z`!m(^1j+me8q(u`@O#KuUSytPXHg9mbh-y)_Ci;Fs=tzZ@$!ngN(-%f;0fF0M{F_2 zrlsogUT?Vno^P|DH$45mO&avm;}D$G-hrFjAqyDTl>&~^jZ7d+JPXFrl)Uvbjab~;1XdAdZ`Y~noeoI6H$^={y5B=UFt0~~Ep zLmX+zy~Sw|Q*?Bj?d^o{9joZv`zZ~}yF4lrptRZ1V9;o8QSS%GRtstR@exDFq+RE#B~MQ5V9Z4>_X;~Dv&M{=(!1e%!jsq@Ir-HE zE!E>ps`RtIOrE3P+9b+E1z(somlZp+uWXhmZg|Vqo)R0OIA2v5s zSsZ3{npDs>meC9u`g*D?H7dfFbChB`!;gv>P9Jk=C&lc}TR*z7e< zs|#JwuC~FIDJbUx4?R&P8kOmZ0pdeU2sBM?E9w-&r{B@C8(3x$6Nu=teFJg-eiZY)z7xSet88)(O3@zc9t0@6>|~t?owzC(p>?PT^~IWTcSVS*?I5%tb6u$&aT;b z!`RYIPQTSrYrygT_M#952!`Z$nb_-gK> zlGIFC55Livcyw8eRqbBG(&KXfEtg1mwdirld~Ln@qGTz9*0+y;=EKLByL);Evj{-N zbGi*)^*BlNoT+WXeZ1MXB^R`Nk~U=&9v9(Ue5{I62LQ>_*CUR8K|r5Q*5k31@9AjN z>eHa{sYnWi@cKJB!jG@E>~Ht&&0{rgMb)$DzHATYywtTFDrBT%>3Re#zD^VzF=N>L zOy4PB)$~;_1N8iYm<&h#%Cj?aN&&mHw|`s*kPU5>vky0R`5lyq=-w0{$F$4|!0JKl z-oQ5)Js}Pe1PH8={xg8(1+UX>DVv2GJ)EXq1MmK6iPbty!3-@Fu>8lqtu`bs!bo}B zx4~BZMMWI`0r1Z@Pb{L-NKz3_hgPp0ODAVG0dG^#Hg6)T z@2Y8e6-d+QYPnjnO_6xKK{#(`yJrA~4{kIS^B#SwzUi9L=kYgNlrl2thxy~^d*R!X z`H{eh&t&;8rzE%>#lruc1u#GGmq7k=Ns^uv8ekvgs;bM;dTr{$X_h_d5q0#2FZY|2 z();%*-0dp~l`ftDpbB2c=J8$)A#T4C00;j+)rxkE>mx#RF{Q$Z`{HaOvS)el?%(ZN0x+#n} zb<+&2Pb5;qA*-r0`956yj$VnW6soU;HVO^*+1kIUM-FU9PjJ?ePN(X_p%XhnFQ$0- zMPjH#!TF(>a*Cvcb~Y;-j)NSmWpTb1GqiH}^qUq!j(-%35h6kzVfy zE&1LmdA}-f*7%Y)@iLlOh=3Ah9t*`vd=utKnn%);PAq&zf%ZkXzt3%#=W~L|C!3~+ z`cp4YpI$NsLKehCa>EvSjl#AN^ zwF?LOODSzlwog6n`Hf#m=9Mqa^e*)`2nmf1mIPGxc`*TBzx!C}6<70u{QZe)viF8f zAEiC4q2DZ)B-*#dCwbL>wR#d3klJ<*-wZifqW>=Xq7VC&w-?8b7HtkAl`joFIY&~y zw%eE@Sc#1LN>4)*W24o({GeOQ!GU+?UbMEPYbh&vC;df6sqtl{m`3sUPDS}Ex$SSb zCG$1p!tM?;ENU(dD+m3HV+shOU%APuMc5iC zpDj7Bkp5Dq4@IXoWn=BVa7|t_3H+3JI-?e)Dz*HJQt0cIwF;F7Un89>Uue#G76U`b z*8TX0hxe4;hHg#tC-#*3B9q>SN3&IbVeBu@UlNhfzhNoUVosRX9(Dm)iNg`D2#S>x%vvMz;|-V22%HTIiTeFq636fu96&phgd zVN`xIOoDS_*~(Vpt$()v+R7fotexMB;GZzx0+P!1a3_FsSOmJfs4MW3Ex63nVeYTN_lI3avy#(6QTfU*Zi)V(t-W2m-B=!uW^g4!v%cV!* zrU(-6A68aeVydt|aUL75l1zINo|EJVpmN&;S@4jEhcwsG4n-+ro$e69Q?tFu5B+v2 z_K8tKafnN0VdslNZCqygG$(66KakRbDo2)T&~#6$0tl3Zy3|zDzKomR;c^Br6m-60w|0H|ftG-H z?B$n>7wy~6TX2p&WgRi@H1Ob&Cz$7Ml5gC>&&P(ko%<-PUd`^V27lGRjY}tIOcS-#jk%!InOWcyf#5htJz`XF+7?EqWx$N&+WsLNYUBbUSi;0U zAPLqI7f0(;c*H=#!Xx6)w?4!X82vlZ3aD+FBA$RB=)9F~1<25pjA*AtB_*O@_2c`X zO)fQYEgRIKRysH%pulPb9r^GD=Q{TSGbw=p8>U6YH)!gE%qrpzPL7ttBH z#)wp7@L;*22hMuJ(!k$IGFpNo-K5m3`jhoOGTIk|KmK2HMb8+4jv%0FBJIDNFYIUJ zBr6EgnGS?6IVwxMR0v2TZ;4jvi750;orU81dEQ3cY(Ck8(*a=`D+(&vREc!KK2E#@ zc7NaC6NVPy&u{n4E$`OcYKHMGK|^ALrVT^Wj-6Cg{!`3>q{gR7KQvJLKtp+GQGYT% zWr^SD+}#CMRnRlaC+QA#TX~JKtR6W05HBYNC}0>*3mWoP83XGrCLmL7~rv@3~hZR z+RWOTvnm+I?Y9jcMAjMkK5zW2)I&z)A5){NcYGtL%w>7}I;Tjk0E8{+!WFNCN&ciD z&%L5wzUQ@9pD{T$6@15)Z=xQ%PL*Y2yn0I?LDTU|0M(%|oEHp=93x zy}tag1%GFx8#H&U#JfTPCYG}0`1QX3iT5ga81XT5y-IHF4v*1PdUZSxromtNDjumxzZFE$<-Lkf_nDdBJX|LC9|=EM^tuo{=yEz9{$*$Aiw*mUaAbey1&=qBJmb%M0;YCNVpO8n zEmD1R@40Q#o+~v{xy4+qeJGjc@p|Izzin4Tj2UkQo71*y@)x-LAY+zkn7bAYi3J4X}t~W2|-Eq9R4pWH|(B{k7%vrw7Ez%gKt3Jo$u1L`6tk$ zgo`RJ$S@Z8OthIc`SqvZtJw#UOO#Tbo5gR^wXhV9feeH(*$#aa{3jDHO6*x{hcOn$ zfxwlnqXrDI%?Ys_QwV@g5}+Q@@?Ebu7cy$WiBaaCR z85;-UxiP$WO{kbrqPcV_qn+!&3F3g2xsDAwZ|(#{FN~tlJzA}927{-++t2%q&IoL> zwzl2FkLDlN1l)&fWxN#f17iL!2=%^u=#q!4Hgp+YJKCxQ7)*~JMDL{^rJiAq(OuwS|22r>Fd?bxX_O0OYpdwa?6G_VT21#QT?4S*yj&g7+kU9{EJ`Npcem#nm=6dee|D#a^X>iUWPHqDDQ(PFSJb2LNj#udZGfY3dr*s>eX&?= zuw!=AD}vwb*8aQPH^w;5rX5q~bX2H@2-@K1;o`Br_~)G~NnA$2ByX=tg2(osuu)eDgwqm3zx=9g7gChkMFJgTBE%hI=BK_T{&Rn*7t~8rsd7o%$#43eMhLQSWDw7bJLs*=}ES~M`YH6ldicl|Y!f}q^aPjsfe{!VvO`S7ae zmu~7EXtiNdXcg$}y8yTv_OuTmm%VxO`E+NSe~Q(rG!4I^KlmFp;(=X(%xd0w+6k5$ z3kvf^ticxCB(Uh1n%MJ&Qve|Or{|HSPb&emb`O}G8mQ)FMLBzIwPk;H(VMUd(xMXZ zcT`R>8>&=xJi)#YPi7Tb3rqZ#JP)r9 zGc02SuMjM6yrcRaz60F&vY6F1cIWns7TmF}C&_C+Pa#+@b`HW2eBx#(Sa3K~aU7Kb zdbOR=Hj%X#>yYg3^tLD-#BOYz6)_J!n-vP+uyN|xjz1GVWdF%X*84RTWJ_W_sUw5l zbkJ}v=D=Wh0;8KhSCHwFpAz0nGvwRJ?gWo|C{CCY53Tujf)JGlejGN%UCX6wuf4;FhanxEY+mbzHL+@ocTWAws^=eDTkqV#qD!*HOU~<%^76-V3OPxcH zYE)=zh5CA%ZSr)jrWiyJ_N0~Qzv%AcmcO<2GLq#N!GCZe?W@%7Pvu2t9O)IrxLl~w zxLu%brfX^AX<{bLx<^bwaV9)Fq^!I_Z=#0I71E_X{Ye@qP7MgcX}iW(CSva{#-qh! zRT@v`iR;lFw%_JV)lRy^%tyoN9&|V2Zko1q*9ReD7TTKIr7C#U!M)1j&qQhg2L>Q+rL+>R4qY@g*%c7?}*scxTF27 zNJ_IFGyH@0y9|$qL5qx__{?20vxSP=+?zCd!(2L)$08}FfT4R>nr-L

        !vO^BgmR>8)}7^iR`}eJar%!Q^K1dH9iRG6ittCN$ck%rq>ZY|+rKGOFA!+)6u2DZ1ik9g9g<%qbtFZTquX zt56*0TPY|++~l^Ue8<=!q+c%xi#Y~lJU(+Y3fRfdO+7E3Eq{^j$xres6}{p}vbrD6 zq(ou@J(wEc+?&*$p;3|oxOQh!^c%e90;phLms-4+!oO_Wb}8JIy7)a`0S0dDT~igI zLKiBPLGn;79ywa!rGi)Q89_JN>X@nSlHyf?o(>wGS-iq%;9?;}4zEhK$ZuQ9ENah= zz~>As%QaaqoVCB?)6lduoh(KitzuSLykC`+R^D{ldRx#46ju`@l*f7jk%m*(L8oGX zUfoLuf;4lhE5>ebU}g!=jZz*gI8FoA^9##V1Gn^a()36x?Jwrpr}H6wS*{|+?O){f znFQM?giz|N44{Q}2;cVtj+GJsusg%DEXT)I#E3hpiID6%u;=j%#41rU3aFeo4(UbL z{#0-W`)IBu1rubU)* zWcVU;rBK`AXZkuW5y%(G3Z80a-do&Wo~w|w!9}}yl`h-RD`~^J1x}4kMx)Dw$GH*F z_&MPpJxVL~13w_!_RXkKUp~P7#8Ry69oK-V*GG56YLps0Jl@xP?P50S<7U!C_miLi z_XBvgrt|qq>$S%Ti%+#Rp$I*r@nC;@Gk=;&^IiU$0G2aDl%^mAhpT*X>~$bK@UOgZ zI|Vr1ATK+h?hM-s+`eyYxL%5>tG3JhP`>LqGRCw4OwjVHT&omRpnOHI=O zJQfVDq+Awr3c{A6$9>pjks(2?JuvsBzT4=`xRj(X*Wb+Bpi10w;`x$Y@j4hubq!}O zg9m#)pWBWuo#~F(h3BZ|3DI_dn33@sJ@-k5I=g{h({z5_vY^> z40(#>dq|MH_KL4Y4r+esBfq&5k=c1KCD--s=c$Yo5O>(*thOEsms`WAHvC?P!H6SR zxWD~FkdMOhq$m9JeI@2-uc8>sfy-EpR4J`SdZNC*=LvZR>y`1QTkQ|8^oYu@QesL@ zaxz|N#U=6c*<7!JA{t+uEU7d0S+vx?w@gi3r;ay?Ye>W+!;3BsCVBNf{HeklQhc*D z%qz*#ZAggs$sw_e$~|1vRjF#*cGH65L|oaju=U#^nQX_8*81+_Qcg}mN;+!=6Sw{Z zXEIstakinsP4Z9bjJqmiU%5jz`c~8qr#42QI&SGq?RG;SLo(KW?!@Cq#N@rkBc)_N zU?lS86(K`NDn=+ysM5saQbmYECMvv|NObHzeu5E;L>5KVCS}??l`$OyC;+NwQ?1#A zbD{=SI&8#q0$!lo9qcZx;v-LYF)FL`hA56IQoN5m+HlQ=Iq9upaK56tyUq3mkB1>U zV(9L-tvcIwHe1lBeMhGLe-eMAR}+$_Yu@@TBr?Yaj@sJ~3U5_A-UO-1Y6dFbRMe`% z_%}0Q%Mo8sRXbPMg7yyRJrbji47Eosg!C&b_4m>PvLKte0l||Boo61oKEOh!Qk;Z< zUXN}>MJHwhNuh&VusUE?weADfDCPZh+rw`rX7Tee8HZRRzRvO^z0qp;p0-Z4QWX2< zRyt!{ONIGEEoPIszHNAyD`=a0nzFUhe;OOIK66{{42c!J^47bePpzvDgXRnpk{@*S z3{`)ynXmc1S^S+%N>-oo83p^%tHR%WvzNB#C))3R; z%jj?G_sMWu>sL~=OiO!%n@v*|sCa>xyJsuTUIn>pyo`}6zHtE-Rh$V(Pl|H?I2VOi z2dsR%(RSio9}OSYt`%;B=0?N~5pl2Kc^qOV*3H+ucXDBk-;~E(SWq30*t!ZOH*Q(P$(sTdue0l>ob}ywqed)&!Eb8J;tYelit6(K z_K45J%gb%ji3;Qri^|=_2pNL2vNo2w3BqXS!h&cu9KOHVK^cH^^JluCY!{pls zhGnsqy!P1t>NoJPOuNaZ4zpN@<(giI4_O3a(s;0TcfXQ;mlH4z>%s~qRYgZEEk=_o z$9}Z`oiw=eGc@DlG8X}#jK7=&=)1_9v+W?tLTe8XV8WK{=>2*325GSe!sn>v%1|Fj z%E>)>HapH$K|h^)fLw7|;&q~mHs0C%Gw;~O54V1}LHMur5F4Q)l5K9*T`~;2c6N7x zJL#f&yp}I#UjU?O9l!yd^#c%;#VaxdbpH~F;jz|%D$=TgXA^LaEcg=2`~2^LLqt>C z?g~yc|Bi9hUN6`;G;04h*9R<<4b~_P~UKGB74YLrhk__38|*X+{< zQB?@Bk*qz(L*FMZL~NZF+gTwtT51B7f&k~2dSdswPjYhhyz%qz9O!jSkiDArOkEqU z#!L~7WW=yX9l!U>Q>aUH9T7GUw6KS8=mQB#VXH54027vXH!9^|7>-Z=wtDt*mi=e` z3GS-h&|a+_|BcX<=MPSz?)zT7fReM1xogtlnBSmWHQ&Cyx_N#B^^HgkMR68>J;<+^cGiM=0-KQd6X+HlI8qs#D zmskgh&7K!DLH5!sM0}SobFf(}V3LDDzTNW$M+O#yn)-3ln zqIBCXksG~y2#;_XDP4FEJ;F!edtV)-b{tA?Y?-h7m)YZmV5RaXnw#_Sc;QGsQq$t5 zk73axKjEch1jGIBP()(LZz!}XlWo8H0pwx*D#Ne-8a)O%CB+Sni?ttcy}@}yH9KPP zzjH3gm7e*O0te5oo~l~W2(Ww61zw9r%e!WW`NVO^6sw5 zpBd`485K6-wm5?YWhNmW1x{cUCsRt09;k^KzlZia?+lc7v+1Vehku~A zp&yQ?cho{JK4em4MUXhl;kGMlxA|vPTf{-T-ik{=)$QZmwuB%YjU=oW_iSrKCYBNc zTLlx|d_Q-L)fj-oNp{`^$a!GaLa@Pn{UlG+$Kit)m~aa%O0pThU5$Xy=Wq}~q6Ns` z-(pfZpv}dWqors+$!2HlYbZ*K+*nf-*6x~x*UXrSTt$wYQZwkM1~npish~d&p%V%y z3nL_aC(Tf|E#n^^{-;Dc%v3v_O(poQ5lee@NswgmGH|&zjP^x{6hD3RGw{wo#S$Y z@~dEzR~|xpw^TsXDiJ%9h!}oPd$)gAHKMXdK7b{wnu72UD8G}Od=53dy!$*`?@Nv$ z2DWCSwvRgKt|i1iPmN5FbXKgeu_8|^Fnu!bWnv<(6seCSja@=9uO7kV)1-*LnZ5iI zYvfbHRH)qAlV{E6KdY4GGpu8`P`Su=;@9GJZNH2Kg>X4etHf}qai}mg!6u|VJ)g5| z^w|bGgEyqV@t{PD3)K(Yi+%V2%vXN78?I~E`(wOuxgmA%1c*uX5};&Y`J1%(=j+E; zoPT8ASaKKR;=ICy5Hzj)5?^;#$uS|B`bpJDR|p0%{3Ne)onGLva&H}Q+>gs2ZufWD z-Wx`M1!s^rsdqmZ%|@$tx0v3P^K1~)G?PjzePflHQ-@6UBS_{H?zRRU-!5&a_0+a_ z>fwH@K{IG%eEkNr+r^wmQX2k~?DWOZhM!@?(*pit9AFV6C&g3?mu!RKCONQ4UN+Jz zs2;>PK=gUhL~n%lu8cRfR^028MBNrVFn5;chXV(<>244=P$HI|9|}rgpS45!VTEf3 zsK}S`kAG~#Z!D?7<_rg*si5j3r-oMR<6p0a7OFbQnasBQ##x0 zr}e#~2c~;nIcDL1v!m|Th}*b)GuXnAcE=^GhgJ=>c8K-nDdGr5L#tz$nq{+^y4>KP z(-3=Ied5><%3h{tMUGV^iTYSt;1#(Q7*UxXP{rn;2AEpeDf6}WPT2v5f-{CpI7nG` z!D)^Avi~Ha{x#thfU6!9A<1Mz{+}z<(=t@CWHaIRdiNu7+5RUTCj`BNY;T=s>Kv&W z-Be{3r=v8&6~0-WcjR5@rU_bc00$9SE-2%~k>;(@(2fbWBo3ofhN14B3m(qMbd8jp zk>9SYAz zZ2d_bZ;Jyf4&t(1z+@f|i|V@SgB%QVZY}_VtpJsKgS}BP;v&Fr#@1o0;-@`Y2o;;; zk+5oQoihl=B!~MgaC=g9LXcL4&&me}jBypL_0od$)GmYwhtPgt_LLOGeckRlTZuCt&WT zOK7;Le}lgf)m4{Eq)>LRl}_g3Vf#LM?sbJNjx0;$vE;ULVGYmQv2R!nNMfI@Z)|@X z99b8l8o&jIXML(A`bp-W{Z=ZtOT_{H*6|<&%`K`g>J^?}`49RE1FMg;O>?^}%k8!_Ga-0SXJa9vAG^a!gJV z=Pg1JbU6`IwI<@1ODXJ}X<;K-`#F@CA=9xrn zbsXjWFXH?Bc>Iv!Y%S%3F+oE~tmz9re0PJOY@5TU_qhg$7cSp3 ze~DWuJu#lO4e4qIAWn8H$NN|fshv0vGb7wJr}n){?@wE*F&<%h1;v7Xg5gWGq>1m7 zYtn%m!TsD$YtSi30%6^SBjv)~XA#YBqUW`xB*zyJ#Sb`)T7GaLWbyD?vV=^Ba`PZy z@zh-L$jzGAoAI1iE{)`E*}7ef1M*n1arIlb|IW|dbOaFUJ&9kiTm+rzj9ZU~+7G-B1TN{5*^w^rfynFcjUIu`6sqVsKBqrh9HB)s&&+K_cIkLx2IE%*KmBLQYe;Xnj&;j-ZuYPE8&1eAu~*j&)Ze7k!( z(1y`d?mfp>gfk;Wc7w~h{wWv=Nez!lJCE$%L+|tyiqP_?tbE}6u@jLxSRzIzPm*C$ zijpd~+pDALpsK00Wm)@(9xE|m=xB+F`PluT?Z)Y9;&w!HrtwWATb4h@eqpASk3k7N z_u}uy;hOCnMNSaILC*ih`Ry8S(Y!momIaSbYHR(wOyPt~h zzP||jxR_K$e;Z;r8@3x77Y>KbTpD90sNS+J{QN~9$#z?{9(MEc0{?N_6}+TMO{z?a zNlF@>GTv*0bleZNp&Tj)E=DALw`=o859Zh((#YXQ68qSwNvdQyW`$zWv?YSA-rVNk z+bKhY_3o>9NE)(RR6Rhr-6J(_6&GS-i5|X8v64VsS-EFx}DK2`LeU2q+@`^Lb z%5BEH7`A43Wgkzl(n^yh;^>=#*&Z%l2T%oNB%{PA3nK88&+0onacaC%iR^B6&P&#A zsaEoBdP+PSsb+U_Z($H*sE^PN3M(-gTJy9fD|m+dNse&; zpoC3#$BC>b?(<5%y*Q^a?_eXJ`_~OV#UUG3L^tg^_u@IVhhF-z`i5097oe{d|4{Pg zNY`anZEPY2&ap`L*d3jUFLtnBC1-P={?VcO^ZXy=tI`8B!9+cM>^(BsiYLR@f;pYHhi9HDyWv4{1qpw zW<@r!JNohOGgo4^OZc9jc^>C!VyCq`YsKYE-a~Nt_fQaBzVzR-Mr)U+efLutKKKB;UoV$3G0=h@+9z(7M3s%)+{;S{x}E-#9FFtjepWDv>P? z6(Pmx?X*cl;Z6$%M+DDx@CV?D^<-F*wg(|(a{O;&p16@x}r}H zuS5FkOQ=Wa4I?e0&5?Drf@V%&++f5}*tMpehr?=Kcyh$M`*D$RaOkBzab&Sd#c1S) zYg3bxIOIVXhpv9Br>Ud!6RzXj2xt<_iY?nzDgUVOqe|3C4=VM(>&-2Pnh?dl%8*2% zUk((pUT%Sj4F{OzC7!+^Bod5Crq-+Pgw%{+yw!T$^jMn`!SeXRcI&hL6!yChYoT8p znYc4>)FkuI_ndOm5j2$2LI;232=Q!~FXrOYHRv~*!wAsIwq)|GPwh!uL!aDC9uS*A#d{r-9BO5rZp?rNdK zn!QY?&cFF$M=pi!L8>HvObNOhQMtj>UXr&m(!RH*@xrGxDTFi-We9jl;J}1?scg(AHb=4yk5g2I>s^t+~xS*w%Y2 zL%_sB$;E)pp|+NyoRrQk7Yy5}|LnMMTTS-86o}-~-EM4mBX-^%O{;Z2{z>el7r3!l zXK`-XnLc1&&zG-V@9wR1t&lzdhDA8bG#erh%e0!9fNpSlH20LI)&o8UuPq>-Q7(|h zD^@9q&%+%)dJ`mSRj^TAKF5h0&B)Dd+0(WL2JDLTdjj`7dAk(b@lAe{>om7>v^8h& z+tak%7gaPK7A%3g(yE&fF&u?YiCoz&z?WlMU zVT(9k?mY;^9{%`nIWs4hE-k42l@b3AB9drRV&D`J)oK7mCR?dMc3MC*If63y_x9*% z`8C6Uh}XSC(rbwO97pcGITz@0bOpy`62k9+Q(vI&^e>0czs0%Ktk5Q0-3-P5HnjDm7>rtoVH<{8F^z@=a`I+#7cr54nm z1ZFHW9q=jJdUqMYrFtXIom;>Y9%r}9zdS$T$mN2WpCx%iKFU8T&_%*~O2jTr!$Gz| zR+%K9hm4fGFyx1D6QB5qL;&_l-4tElW=Sx*1RNu4(FBHYp{k;hsOmti*Yu_s!9!Q+ zZCMI?fdzeYbp7GH;M!geC9(1gv|)1%Sx$JrPM@fPk9`c1oKbpCHpqfFxzjncWF(St zjIXYwP@yGXL*QCVP)rYB1i#NhRMg=siWD4vRMp``CY@8dD-FfZT;7~%#~VG`qEP0> z9hrDX3WeKKKY$)>Vqbn@_$xA^T%d|=WG}IDp)*YO(RN=b?y;UR$M=%pR754FYeYaDeRgLczlridZv-e)?&%-N|wc9RP;*P;EB{udNHy+^ zeyrd!lrpx-@tskTM_y}nhwP!o^p5ZALdPJ)y|=-e`}sO*;+CcHyj@G*4o&yYzT?}c z@(%*TxDyUyXOeLru4b?P!YQ_tZLd2>A3_TZK?^mh{cVZWL=%JItx%v@l=@Y`!PkND z`khu%aOP}nKkc1j5PLPSy=$>R{=P(Dduq)Wm(bU|Z#SZFZ)KVqommp_E=SY26F!5X z>;mHsAY0)OKup0EdG4UTRHxtb3Wvw#JsqHTmF=@J%9yPI1OYf)4wQ77^`*gOfb9}; z1@w;9-?1RsdH|r>>|nmiVK*uF2^srB^9{t>_xypXxID#dR$QX#9MZ0w6e=vC zp*TERr@Fer|2lA|L>rF@qiyq|7XT96n_~>KK4qVY^@>p8#{lce3(?z5B5xzWyS@31ESXNG& zEgHm^-M*@p1-Af!J*T`O@a4DQparv8g^faGP2u4^J9b*t<3SEsE`CQ>;w5l`J8=(z zM;%z5AVh1!WUxBchBtQMz|-4fwNcfd?<%BB9*nBbD?V@$@aEa|UoViwWLZtPegJ2d zKCgHlcq(|uM-gvyqu_={`)I>`WL^k#eDpQuFx^3-tc0y! zd+2sjLeR5~xp%0Qq30p6efvGx z9@pk=`-mm`&<+&L!9b-vSBaYS-h5G*-DW*!-8vNc0IbA8q4s;^`cJrv-(t}ijN8Xf zr+8@&qQasIvgUNu1_B|KI1HSvjgTxqaqH`LJ($lF&m{76S-tcK?fD){XC&B}0J}Ob z2)W>Mty(7sUXGJ<@1r8~`$e$D)7gafGhNfn_un+CIGS!(k8PCUh)#*_8toYDJoEix<3sa{MOR@RzzL@LFJ0&490QnrjQMc}rk2^2?v zH=-2V&4=llQ6M9kvsy`p{P z+mb=Mr`;@P@qnusOVQ-F1O7tqP(0peNz zkZu5J(ltKWQSdwLAbUJLTw9I;VL7oDr$g%6^m*f7o_BN` znYQ;}?mlTJtEzI+ZvYjDH?7{q0+Bjmj07Zwi@fFeV_Ty~$I))WX8V zEc(fxE7oVl0ER=r8Qtf5#6g%*M1!YGwTb9slrAvDQvN^dfj~ zrlg0^LX)t((^#px+;^(dEJKICrXu#Gj{xC|ZH9xeh0wPU1WLCCE7(ucfH{x8jy%i#Wmk_uIoGDC#tVV#3idH zvIt(KCq}B0qZSHo88G{%gj+Am4LBOB>Je3A%_UX^b+7*4UFNEgP-7&wA z;hSZW!=;9(1|mzV=|U8%mFBn)!od^Mj(gKoo6%v8;+t?HsW13I4p4s# z^EM?eu9vyVVhd11Zo_Ig?$74sNhM%blaP@GwD_D<*{li8D%BXv>}6(u?h^ANx6fc2 zdYs;kw4A~`n0n;tTdoqnW;_I6T3fB%6lPb+pEBf9mtL~#+&`Q6A_{QIE!}K;TD$z0 z>u2xlO7Uf1UmfMyK8YztEK(^m*7F$Qj#Y`rbh<+J!+N@?WqK9%yVgl1&`ba6z8p-+ zJ?(A}*yei}!MpU~W0Og%6bJNtcWkpCzJk3N7LrWx#WCV#(?k-kN4ro<#i;J6gRA1P zX#)Pc@MC+u5*6RF-Zg91(Uj(Df2{HevL-$^zo?D3T|+1+b0C+p_=2kmyiY`n;k8cr zsjVeOD=vy{8?8%IUw@U#iJi#z%j(rF9D;t;2(?55Kib!jeK~*aCPwas+c29KRgmpKc3IZx8Lk>!oS7Ous9+gD*>SW11W9AdQu7f@Hh8p03Uzl} zf&_1Qvc{kam5K^4*_I4q&);QF3Vb%hO|h-AMOS;llMSWkA)wdQR59L+aRC?j#wks? zo|=T031(jz=dHV;p>3MVbdCUNgp$xF4D;D)KRZiHiLyl}#r}_!Tg4XIg~YJL`kI*x z_5K^P-g%9`|8T$D_uMam`7l_^XXTA=Si_^0_MkZl`V$1|5uHH2 z>3k*8(BWboO&g$gcG!wjQ;bbseF2RXEh=Cmpd99U{+rPUA{QoCr9_ocU4J-{5m&~S z#$8cS=U-d^GZ{~J9ZxyMp;`}s31SjdBpq1Adn*|Vy8&U0Xhqu<4mb7l`wl+@#04(c z51DA2Z=yMoIiWUTr$;jQGurQtxHT&EAhZGXK)wVQkhS?Q;&Dw4vsn`gP=SQ$sd z#&XmLIiU2EX!@!;iM)DkC6n(d)ZbH)Pz&1Rl{|tx|wf zd{0;*P&i_n4Xx^7-dj)1Jv-7uT+lhg@NTM_fu{lSRS; zk`n}!*TQzmB|2yM_1M(Q47VSSW_OWKlytnpD><7dj3Eoxyi#oao_b%SqXi~HX%!k| zts>br7*ZAY$foKKxn1f@pkNRyn>fmOWH=CGzE02oY5XWzuGwGV)Y1(l0=G;b7+W)9 z9CB$p^NXhIhgiGq(Wnc(0IJ?6U`SMh2=f=ECaAE zUT{p%xKDyQ0=aO}Wa%#JaLs_0YrY6eBoIu=Cz6QO0wBjR1MuPeLX1!P& zqQ^k2(>V%MPeb9b!F*)y5PeHH36J*|?^@S$+h=?Z%h|}|phT;{#2E)1d zN&;@2+jN}J4X`=6e1e$g0^HJ(vJlm;$}c4dWeJ&HrDGu{LH?o~wu;z60x!u)^cCjT z_amd>05aEpX-y*{3b}VoAHsK}1LkNX?pKJorVSedF(eLCGVBvTUQ+l8D66{M|MGeo zfrdvW2lS$R^*;!_cvd>@_5I?cr|8j~OWJ)(nGfx@UEai62S=IIKOjU z=%-@XK;BAMo**`_&mYLGFSV*dfUS53OI?X`SK*axl3mD3(h zoNa88wl2;$+olg+0*(!SlAtY(bA$J3$7QofWANoC4LBPz+Unm+Naw_@-!t{Y z>X75~CcLazXJm5!zxjWnOTb!yXC|t##I56^!(ywuE=t^O&nq3mmrAHDJWDvfYI-N3 zCGzRTY9F%gvewe6941?qe|*_n%6aFt+09r8C(XgX1LH{{45fWWN9&KaRL!*4CI2Dtbq!7MEdPEfs7n(nd1)2F-CRot**8x}ZZ7y-l= z`jFrKWYf5+B!*qejm+@4VDz&=LbM#oml(d6?tYX7DBoX2rI2A@jTrUTZ-0T8C*mTBGyU+K`%?3O> zV&7*sLD%yKbfiw38^&JA-9Bzaq|*zmXstjbg3(bOLV53KpB;j!0=WVp5W-D(95Qmb z5eNH~ALK*tgife)T#C-6U?osd6wnivy-Ja(iT;b@;*ErWyZP2 zQPQ>+6H69;cr)!>VMm=!Fsk;)Cp92gpw42h-s^gDn`tb%>L}uzd^Dje+D6A2P`nXC z`)mf|ZqHjS)t_1e&81o}$g1}duSyWu{os4Z#w$0w&lj8b7!n_OJn-RTt#BAjZYB2@ z(GOg@_zn`*t=BEbs%G{dq)zN2zJ11MWkEgK@=b8(*aeA^Sa+M&i5(Kfiqy%ZL}S8h zoujo}_m?C(^?xQ8yI*WBUE^gQn~XJd@XS$PihJ;|{0~cSE|z15&-;eHl>^HNIEL!p zl{XMk4_CJdQ(-&e? zwjmq^uQ#1Kf6gu4!L_^~zBpi%{c5%_M#7M0XC;eAlWi(#8Dy?G}G`E zB-KuOtaxL?cI}}K#^fBs#FDQhVCXbz->2+=k-&oIgyrkEZ-G}ok1%IFVUIfEqk}LqDKp5&swZ}V;f@~a{X=eLr50-^-uqCatY2Rv zRuc@^5^h6qA`Q4^9%R5c_`~hfbewA}KdlBC{(Q|zu(pKxd?lPs*8v=pt|1&OlRDo7 zX2a6`mkbtKsWa)3F8XQF7tJ@!b8ZficM58^<4BQLgxJ%?Dq%Si7stOcKq}lfngd|p zTHP_iq1cqPw2`4muUfuCmoOvVQAU_7y>5RvOQ>>%#7hhXVgcIV$jILkC;(381}gBu z$Vr2?9zYMbw>pL0`g6mS0)ex2i><3o`2S0nn5~zi9C9F zyCXSYG>70=e&Lf?W&MkfJY&Z*v9v#YAZx!4-(G!x+Kt5)Qh^$X&Ap|$m}~6q>#OFC zLz7{!|G< znMA4w7dDyHwnR_e)=-^BGgz`dv6K-(T|Nieh|15{>I?OUnl{#}!!}w|fX7}u8Hi64 zQBNBsXo~^CFsIqH{VF_=bPdI14DZw7@WwRQZ_By?Bpp_v26<(0%Kr{ms|MwVu|RJhQlWmV;E)OtL0#X2(eGX3AwAWyHK<_!Z#MYMJy~~k!NE}G%(njd$)cb!W&QBaI4rWalRQ_Ceb!c}vin27W)ZP!8dSa^nBlyk~@HpM8R`^)@}bU}?9 zL9r9nV3KFePudpr-#ua`Txm0R@^w-QqZcWc#tV7x3D~%%c1wQ-6>Epu<^L*WAEFPq zshmiXHM!(dK2(flei+@;hFfa9BgB&(a+ncagoY3l0NWt=l^IS{c?=rCF;lM5j2A3? z@DUyIr_|em*4vJbq&w8D*94wl&>hVC9R2fx7NY-OPpc!IUi08b#Z{<0h+0Od+r@3jnfQ_HR_MJ+cfIxAjFKy+q$`xnoFfOB76Mf ziOZaxsh75@$5MA%KmM`Ha>JYI5$&{{?a#Wp^V`x1z`#5}tq6P6fvdz>JfGo~|TSX?VHYtPQ$Y;JEp z6Yxr8fW8qDvvhcAp8Qpsm%BEn?{ZK6C2Njix|@$Lbhn7xZ`)hveW&CqJ(PzQBkrwY zth=wzZbk{2L_K`#=loM_sopYQFhNI*|H~ah+tcj3i=zTv`LaNJtlw*s|dY%;Je>S`maNoxv;BlkQDZtf8MU`YjM}O6Jzaf z&UYB}M>>G1nyPPWjkX(!9JYYYV(RJfnm;r&^b=DLf!Dp@GZUD$$K{MaC5p`-abG2( z0R$W4HXsYzC_5BnPftwm{l^Bds!jsJ)TG8|V$5nwk!Tk{L}mt7ANLT#Z*Bfrw{rGn z+8Ey*E%$Br!n0PN(M@o@_W-<2xX9#f^hOZ$vh(3$@8;{$cf>r2E?s6W0MPZng#M6g zGM3JBR5Qkx^XHFC^GWw>D&aPhbY>Gok3VZcxIV%|VxK>&y_sIZ+A1k;4kd&k4dy;- z^n*hHalFxz-u3;>xhuI9N6@Dv z!y0PTgJ1S5p(!MRVJm)Gr)sF?kj^D7-6cRpB3E*RA#)raPPs%8Hf^Q^$!e)xSY}X7 zJuN_1QAh}q2vyF`jtMBvEc?7wo!l6+ZEf;eyWjo{c>^&)80`Q`OdF}N*&=4SAO)&g z1R_H6y`dO4I4|t9ZOx8~BOFLq*otJ+s6#H65fT&&n-Pf+cIJKYZ&%-O*-T>=>0i!j zPgfda-0Gd_4kE2WBOFWyCeId)dYI7aic7J7&Y7jEEAk4$)JjN6kkcJWtk`QPITTmc z{LyjRT5}LX{isvt^Sfecc&KOW@Q2}>Xy*1rwuEXsyWRYAcZDww=tIfv4hS-u%^EY? z3PRE^o3rIi%vBp+HLM|(XMWo*%iJBpfKa4!u$b^>sV5J(afWSqa+!roiO2-r!Sc_F;bHyAjrV_q+ z<+u*1rIjy<%t|3sqCkfI9x23vwTTXcTA%=Rl$;3IYX?3yoC6lcZ@6m zy{a6VoA%)$hI^2K9`eO)PYkjlgt)r^ZX&4Bb8q?0pA3*hA!o~ZkH5%L-WaG}ocQmr2LtrxreL&`@i(c0FUS&h2j7v2B76)oOpfkh*fT7DRH;fhZ(O7PnG$hGot<>L0( zN2J_fPPSO<&R-^9y-polun%*w>hWpl2#Upegq*rS%&3GCtC7UjVEtISdEA$9+ZE#! z(%`nvdUVE``dxzMe16OLSSZih2S^2!w-%_x zVuVmaUc*645A-qyUVzH-xg#EzEyKy<-7#|&dVkb^-{b!)Ui+_Kgl|z`;k!j7%aR=g zGw@?$69wd2FYyn#V~e{TeitVpSu&gorU%P2h*Og(=O*C473^Wa773b>MhDZcuf?Q$ z$ptf&QRbUn(dy(0rWJ8m47pD}6)VjhU0e@$P;ygf!lLChJBl>@EkXSofBx&_HpYZ{ zqu(P~XGudR2VoF!zE2Rd+~(ui;ELwHWCndN9=O=V+}tT7GMz~TAEJbnp+y7)NMDI$ z3*1E$2{+=^aP<&j04xjN>g`;i0?90txCU)c7cw-W68#<{GpnbKs((#Iy!BOBcz7-t z(?0#EO@NO-%B-?K_;4r3S!Leh2pZQh>gBFq5<$nj*F*BODFvEu6iaa0i&d)ELAWB> zok(!9X&S!(`I1y{C4^Sp2I;Mzz!`vp&)j^%y-hI-=TNxE=Oz#bJP+&UcFeYFcY|Lp zUffE2CZU2u^zFg6*P`^j{_&04Ekb>49F?7wjK|#YQp?+&IrWQ! z6RFrI0m}U;gG%K50SKBNRcZd^>{J$sE%W$UnM5o6= zjF-`Po^5Y>w1;pp7wT14_{m=DT(j0xu+eyLy4pxeyLK2QE?c+56CDjrDRWK!`q4wTXOwh^y<&~pip zX>2-~*T082fbUmPQW9Q2)Da=EEjm^ z5L6N9`057f`4s{fVj{O>;W&tG1|FA9_o6ZaT+^AWvv zeT9iUB~-Zt1VWkv=eJ zMpPC18RW^T8eF=Wr8p3zaW6usyS*7~CK!B_Tx1(S^5=7&6F#uRqSEB=+IQ&NkL_uz zF+i8S7+vHM?rUyn^1As(JJIZD(LPH`LGkT|IY*=uQwHaS!ZD~PNMk}Uj{Krxrs*$- zgnn6)3x~QWR>EhDH)~=hSQ~VPvNm00<`EhWn-hO&KI!YInRpPbzr)(k6^~W%t6QbA zR4yey78y;(L*=oESZ0&vQ)hh}4An^Rr_*taZTpK*^170VWUCg_rx+IT7}*5S@}f)r z&NMrcTvP+0lZ!YMHCvpsrx(ptqyJ)eD(Sno5i-FM;B;{V^60x~LktB8I&L9=SW!3_ z_a)PJpp%^V7Glx>$d@YqY1wz3C^(;56x9}BeN0|T8txRq|t27=nIUQ;qySCFuAnR zk+=IA^YnE(cLmOR@7^G?;Od1qp=ev_?b%e6*->fIbd8)Ymx~^M#NCcCSFujykt(xq zZ;AZ(=g|D$8O6Upm}v+*U8vAw0l~%P|G`rr7M3*aTnPE;L$N6dgzt;!q%>g+75_jj zR-dI&sGuU9y1`Tf>>|4_6B6+8CHcWvT6dZJeR{bx<$a8mW%r1zm4T!A-jSFu#otKm4G2=vB5e6hQyLt zaeqMww5iU7hrhu`5|0lKhNVxb>2f1&g-!zv6g0fNX?X5>3F$Je(CcmZd#0dq2}iPP zh?Ot0EH45pb*@;oY|k|Qe{?$tV2gK#<7_rkx4B)egLcZrk76M<2fCOE8#y$U3xuTi zJl32mPWlAN9QG(O>WyDPd@j4&UvpS8!_ySsrlqy!Ppn5M8W=RO`uUIp2Rd6M6JLSi zQ_i40_v0o8GE-wW(Liqq8XIR}d!^>PP*{YGA2`f4)fiMHsfy;xRpP{g{^9fRY)x-3 zk0W_$C)4-|NkBxGCGQ^s8eO>Yn(ekEBj@E?>Mt8K<+jX3U0oBSt4+J@e?9{xe=|7e z6-O4=Geb9!s!_7A)Jm8Y-$J8Vsb$H z!TIrX_62Zxj2H@xf4|KOyeC9P_YY}*O(44w;G?o1|qAs-1n3}@eZv@lBtCfpikILme1kvwM4RScSM0FnF_LfWeRHTA)*vVy#k|NAi z^3J&$6eI81IK`PG?LF)a1; zK{R8Z>|+>y^ZFN!dVTIg-Y?<%D>qY_f>6mI-921sNid(OMiDk1OP66}WK?dyr?Lx* zXSM$=4LXktiLF1jSh!Hj4ULTQiOQ>kxdw6HLd^zxb|hSm=+7MwPR;9~G>I&~a>S8% z!|i3#=WYOr%m5{U?7i3IB@)X2-=P3T&TZ- zL=5eJ@bx@z?@KfnZv;3s2FSCsbJMG@7%V2c{L>BgFwK{tQiYy}$(BEw>6T2FqW5 z{RivwM)B?`@|L+NS_hN6)>X)(ai~RsU`BTJgAEfrfD=ozD0` zCFBv-YB0WV(dVq>TE}YEjRGa&BQZ3b{bz@gT=;E>ovwVN|x$iE+125y1kj~U+6awyS;GVIGyjOT4c~}#Y9^N27lx^d)|KgspbzG z{XUvWIW{D*P{OGKgt<&4k$0ip99g5kPrv3eNTZ7j6VM`kY_P{ zfZTsAbOP!arW4ts7biVPnqsBz9VOKNgRjv+`})3zSQj>xfKAK%(w8N*AFo_tjBxil zukVK==i>KT*Vj$F(gA_!)goqxOxf)7D22+LA+zN=qQ5+NeQvJ^1kSgI^D{b9B%ZF< zhx~1dOxy<9d(Pb8Ug;DgAsK2tV<7jq{ELe)vI)+}M6U)($l z!vGwI)fv@CYqgvo7?v2lMk$HEd^*fyC>YD3+v~yNGY%+mZ+yjCG9KsAA`gYJ*IG(8 z9DX%9r!*Z@i`#4lL?X3HG}JW%ycfcfrr+1hgMg&a?Q-v)s2mi5d-wVe410o*3P9T- zK&3?9Tq%PPwSA~2F9Mfy(({mh7B&pAvH&zzVbUp*{d0G*$tNBMUHa{PX+`^>Bn1v0 z5mj0)Fln^8)w!q1_2}Gc3)$Y}Hqn@k`S|G&y;zXA)lO3rx_`gpP(wq^W{gVO}7LJ2Nc?01Vh?hbL&pJUnAx$y}Hc9YQOK5)siSm7n#^1!BE$y z2nYx~`Ey%*R8>Nso6wQe{lKE0oipj!zgp8IxBtqq(Eb~`#-C$M9Wg_Ak?_PiyEfii z=!*`wrML?K2%A~&DYT4osi1Oxh5mvbEr!tHFXnNIcF5=8pFq>6tjE*~!kU{lHnrwI ze*2qXxB*rH7l+MqfH%YSH+J*=*-%*cV!hQntDn_L&!I}LjM}qV3nHRINgzoONtqz^|xL1u4y!sxo(^Gx0h<^Lj=i>5ouutDO*_xfX+{V=eIA4sh_*Um%i$CHSdD zHmo=cq{@fhU;Z2j@LL27Ry$oV1Q%{jHRAZL{+^FFCK`3-adS*sWi_?`)hZV&1O49q z_kzh%s>9%KoZuPo{*YmzLEBUabNu_PH1U-mNCdoM9glou$SEQYE+GONw^R<>mHVx@ zbUl9qUrJ5b14YF1r^5!$hZcK08cmCBehUlbVhM(24*$t06Z_3q$OP-uA_^`aDIeNR zF(TB^_EYDI@`%MmPTXh42-?*}9XQ0cNYJS&gj}V1k}2jg$CNvuiU|}gm0d$a!z-^} z3a%eX-ByhbA6QBThZuXXr#i>CA;H6i-k&5B%jD)86@I`zR}ajQ9eA}1F3`ob} z{)bIRo*0?OKLoAbmFT4NVXm9ZVP^ovd}18484LQ;Wet3VL@g zK#k_r++O6B9?*t{2j{|u(4s(Vic0^@JXePW^&S^T0tQgEQ)UWOsp`xg7iDn8@Fc$Q zo4~P_s;kV*Q8Rb?V-ABEuQ&8$!u{dcJ%(`pX~*MPP!agN$suBi`j!A}zwa6uWci{6 z#kkhAonABMW_)!nM$ac1Sg5{!a?WOCYygeezN9^~bD6t{Lb{FQ0QE8yKIL`}Iuv-D&%8H?uNwm0-V% zh}szjDzS=eQ)feaMixo-uIFH_jb=7_s&e5u>T@#ACU@#xITl1M{Hl7>E%@nEwt-`o z(FG$MYyb`(=5oyT`|nKD(`Q>lW|O%eF1lYcj2C2hnq#l9Pp-RHW9$m;3wxC?Hf!7c z`<&}Jdc*;h_Q5p+GZu?eyT_zUMNDXDA0^mSWd-#!`)WBAj@XlsDxt10I<<%QrOVj2 zOwXl3^ep4@n18?q8tC`jytw&fO+lS-jxt@A`dll{yDx+!oN{Y4So5)m<|g_(Mt*Nq z7!Ma%VSOx?6m@^OXovj~m0_w<|UC9qA`$^unTwk6T;%E;^$8-MK^L|R=uGCj-62WGwgNiQ4nN2e-iLfz>khzm zgG&#IM9&CM{_7-Q}rhOOHxl?m`#g*>XnUW>iXGkzct>{dy3>uyNK;xPNd1-NJ4uB_PU-*FhWdck0ivlE^$?W(W z3_ISo)n>&GF$`{Xp`7so5VsjU+F^X=l?hOk%lUGta9Rm(-)=dDc-1j5I!sT&iSkx9hH?C~rpRk*uZ(-Qod_zCvP$d6k0E|Rw>PN{`LrJe-7!vy z6$4OV^dSvHT7F^6^)tz714&$|f|g(Sa$_Zxr;a76*?4zKyH!!-)isD0xID?SPj~uU zp90)#PFf)aJQi2T&6g%-KTt6obM=KGiMkl$M2-Np035%6EDXx0`#-18 z?c?LmRqM5NP_VOwEP^81jHw*+Uahj2qi;SNq%i}nZCX)}0CwJFOyhR`?KZ&UdC!4B zz?TY#4H6*}CURI3{)Y>+eOldi9^U(t9_dB_{|GSQT*GtoKXRzQE0THyyZTc@{A*{k zIjZPHDy4{MB1h3HGrb;&C53-R5=?L)MJv=YYcSf<)65zNZsTR3>6>?m@7g{t zXhBtJ{D<%o8xn#-`nz&)c6`L1QX)KS5t|A())4y)?l_C_fsC8Zmr zySuvul$K6u5TqMHx}+Nf=}ze`3F+?cZn$55XYcpDXWw(~A3l#R7Hh8MnsdxCJ~ajh zzgEcElK#uJQWmpPb8g3bsK8e$@q=2ZAfj2;CLog`8XcGZUtL)bNmNRPt==@=kF`US zPi>yMy*-!a106r&e#92_p(h0%A&McSGIxlI#dXT_fHVAU!|FaREkdB|B>LJ;o^SK+ z@yC6OEunpj{%_XR7S~>d$_3dDCH8h}?^($@tm~TYh#c37C7dg}qS6VeCD8bm9(R=n z`UdhMz0xE`kXr+Clx75d(WT*j#e{~xG_*#L%-PlworYy^S=`4{mr*ix8U z`um7C0@Zg1yBwt}9L(u#nuZ`z8)gj#eePwS-yMLk&A|%EYT#C-)DI)%i=QXW2M{g{ zk7%O4^hV@=p!V-!AiYdgQ4C{>w&(Oav-+lD5dP;{``?kU%mb2@ImdpK{jm}SxyH@p zEdFy^g7}kD=vCR%&PwMf(PkT_5}gBH4(LR_d9f4P6qn7-%`vdB?9r||RQkV;;LC;v z8AWpTF#z^mEQz)XeeD5{aB`TvS`p<38pdyKbr!OYYSzYUheEWKFmM>%6btH%A7K!4 z|G%)N`F)F6zz$Y0v+qQ`Ge=`~6reuSB~5@z5Jh zT>Q?R4!cq~j{ADSQIr12LMjYL#Hc4M3+PuJ#6#z8eutMfUulV6z@kzEJ%%LcG34#q zG9RGOQLoa9i|Ow^cc>FYlL-o@PnGE@Wre`$0(VgSGmy$wFkak)S*n4k@%NWqGPZga z(KD(4IOVBBAk2?9MXlaJVjBAOL&d;iBfG@M{4dD&f1kVKKEgnOC1*KkUUsEY4my&} z&coA(KY?yJpr85}a}%W?9#tAFqHej^d_TVG|HbJjgfk80Uu_B#iMocc z+q18KV9$L<&Q}6nM*jr1rmhkwQ)>a@fw<`z@{{Z4 zj}IkU9Hp?NQ1JUc4put!B|0@R)3NwrLN7(j@CIxz69rzGEYK??d+#`a1l_-YQxmhd zx9@?YLHG}jIiCtDz18u&l0-Qj7g1x z|Ll+c-w-ey{Y#aCalRB!`EM7IFbNu*s`2+xRD1)&z>qt;6La2fiG+MA!CS>>R7I6K z03H>EVEMkqCCbZwuYWhHx+@Ned;TH3Bu<@qP$<5UT_J1Zv&?}=Oj4`@CK(y<#*6oo zDkjt*?+`DP5XQb^R;S!UbArl6Ib1vna}Zye0EG?+9!vDgWoY{fpQ9UnhU+cepqN11RF;YDYBTpz~NI2l(6Ux zST4H*NSIXVAgy! z(gulyIiGN88*3kyH0bf(h54p}%D!EU5pxPNXiu z5rA$rp(VZJS}+lJfn~Gs{ztTW>WFeJ!MyPcJ|v6nYbTN3!`AKne385qLB#?AK|n#gGPC;S0%2?FL?CzgTJ8go0@K9s=()7{E^Dmy{<9z+bX^J-8hC?S#x=y~vDWpOqVcIv4yu$9cv; zG9Zq$mj4tBLT;3G5b*(9$aa8QX6u?HF#ziR9@u|A!Qjek`AVm51z<_=y1w_N&fN&I5KZB{424Ek#Q2 ziD%itY2`hfn^^OnjC`u_#kb>a`qhke2vnR=+t3ij)9o`ScK6NKd|7KzA%@D}R&AI~ zmV{KHC*e0!eD~>oO+$*Mi9c7JN~^(yN-ET4rMc`t9EqK5PyE-J4dA^QnoFhMmLCJ? z)HU^ih6s|I_C+Cc0m|1nxEt(()ux8|i7#NZuKOX!-&|mi=z9$SQqx{cpm22uS3s|n zeH3?31fg7!dRZRuKSq+vBqCGT-I&i+(*S5Q!lvm|G9)~Fvh#NR`GpCq=p}k-s3u#y za8RVM7UZ(tAPbU6zRWi!29MxN@N_;&Vz)q-s*#reB7`2Y2to6&$`eNegPMkrtH>t% zV;y1TiCSYEXb9k^1;iEnj403t?D`I-%k;7=jmt~@>3*;1hge<$-G}-w{39v5GE_9Q zcI4lEP8~IZfN_$HAdmszedFBmZLRhEFJKRP0U28N(O+@Gh>D4UyQN>`@?_EUFVCO6 zKh;M*yjyVz2@O|edz#OV-~DRAN#!Xr!Ud;~PJ!RTnar0vr(uRUS*7b?g|z&&S5k`a zF#lezbk?oqkCJsphc?03E8E|PwH-e`7knI4dr{4v^I%R#Cb5~J2cz31x4g`Y#;5C% zLY1+CsU;%j<+65dMBH|ni%ELdkhkqW7MMAbpd%(>i9Mop!M=^p)1`!y#hS6-AA_H^ zr5%L3grjam_8>Id(gIpEsC1~(D3msi080T7sP2*YsL*`~D~YZSs&p5>k1M>3fOude zS0PK6dD*N*DcXj%pxJT$xlFhDCJEc~WC0(jHb#ouh;fYEA-JMAd%|$n<==V&4dII_ zfY&-z%nZWc4fA|7rkCAbsKWJjEt0Kjci6 zXsHAmO1QEA;16PZvxHkB(>5L^Qcz+8q}mce13| zy>nL4gzdtGYa_msMY1Tq^HI)3HBza6Q7_xHp1iI1Gw`#tPBKEn1i3TrDotXnH!NHG z-~C0@douj0BCq@oQ9M_p#tGoMa|CvKMUB0sjZwN!rU=*2G*AUb>&A^n<y%&hxLAu4R(1VjR2aQF?bz8!Ye`7ONS~ToYyv#Y}$C#xc?7Q0OpZ# zu#;T0+-NwJM`y}2HYNs6nF>&|BVw%&XL8O^tZCBBa=V!7ItC%}mH$=A+AM;Fe>E<@ zw`pxMt*7G6|HO9hiAYP{A&NQ1#%n%J5K%_LuSKC#_6$k{t3t9*EOu~AL;yT@bqDDr z%PJ8h86=Ahi}N_#fDI?)-I6kX8A7ENGcc)aBK zfu{hSLk+Df=0g`NKVqMwiSj|}4*BQU0VD)1qtfy6rX^WJgNGdB!B*D zY8afCT|M;JpMeV8Tz784-!X_O!tpNPl6*0NZ$8TIOTH70LXYCKnh{QT(-5Xss?|Su z^xzvFOnU?N-0%ocxzJwwqX_DQ2?*(K7R@;L#n&_}aIN!sJnxN=HuUj})w_X=jV;z} zsC6sZ(j1_H@v(1L>Knj~6TCa1Ej)233e zqI3TrNIQ}NxZ;GL8XPEUtmmf+wWE2hy`#VRAyn^YR0-y*K7v)j@Y|mM3!3xN-^EG5 zD7wPG8g+a0gKzM%K)F=Ae2Gw~7~CVDEI8b%{{&N3`5n79hAA>@r$ zw8tD!{a`GP2EF>lW#s4Mi$}%8*kpb)i4cFfP%=ZvgH6QjHW)76q;}r{5XKitdtZew z#X`bq3(prK7z%*6=F2;Q@d5>{^o>BYwjfLHD1A=TD6A8M1x=`mHGp**2jQ7{ercw1 zVA%p)-WKryXu}`uTMWBHH0a|_2%yZ;06(V!)PsmMtK>qdVkW=;n6cRc zy2Zd$%MdD5QOhGaFz>%^O`O|VIvyrPq;6p;*2|^YpgfBf2(*$6UMh4jZ5V*DYDgzD8G0mOub@9 zmXbqYS{K9>7v>gSz01QeO=|(E0=uAxBZ-0^)atmzL3RozGvVm82Of=sV~PqJ5;vRK z%D^-!&)tP>c$;AQ)l!U1DuJe$hD25lo!O!*Wmt%4gpJ21P%KU0g^jB3Kd3FZv-@eJY z6Ipm4Y0rQAIBD088`*|sAzcpbP)o%luJ64eQqv|JQ4U`4H={WWu)Pu^BqLpEP@;+& z{j-511B-^Vl8QnmxS>Vybz?30RR?~yyuPa!As zf}ecg0!chHD3mtWJSPFz&4ZWy9TV=EgnbC4nJ|k9O5LZ#}vJRThEuE9*ogXk*%3 zlfelXhP}qcd?jMtbY3S~;%VT}((jw?Y)tS4@+Hn0w}{R28zX^y~%-Q26ZjI)kjj#`o7l30T>^B3y1o z1*b;vd4NN>{?!Y_VQbs#c`yHo(~SM=HxY`>6YakNqZ6Rz-;7kcOZ+wj%mbg7ns~fX z?Y4h5*EyR%-q`t`$K66g-@~NpfY_&(u579B#DzeRQ%yMnHiB4I0P7v}um;S@DLrV) za$XnfHcNU|mnrT}vi+!1=kM#AYxnn>PzP{pH^^)r=8J z3X^8dyvM#}dyLwL9|5W>!ZXNxx96}i+3_L>dLKVF?{CbTd4!tBU)j!&4OR@z_Py^Z zp}NY6xpW`J%4P^%`k&m>uo9u^bszn~LU zoupHQWA#zcOhaK2Ux26U{H_h{eatZ`ceHoRndsRs9mR-7C4Lbe+Frh;(I{q2j^lUM zD({kq)|0-Rw24r@rJ$sI>p*>#Mv))%?s4HzQTIf)dFAo9btO^L1Jl`1>5^WJ^;|F> z<@DCqV`z6L1{k$oEQOt)ut(WwBdw)-moEL*-0^RNMBkr7)gEsBNtsoC261ESjvtER zOLmf!N9^7~?O20m+7rCl1>$8bWI|qXkV`?!q}}}7$#W9Hca-T14O@wHWPX~@-BA7} zV%jcGQV?vcq8#&I@o}v3Y7s*gg&HoZ?^&JORMe_8hR1-j^Qx5v?b)sAetgM9wh7{I zN3IRO1;}2tn zJZ0*YYUJPV(q`fGg}TJiXRt4Rqj;=C+`{z|OY?H)*^R(dzBz(Uqd3sU2?}_`!BF#o z2p~qk^4{re#=cVZ;A^jYL%=l}=!rSV?Y;996?7Uk+3M|G8pKfZdD2jYevW`@Xhjjr zI}^H~e!=k9hyOjyg#-=;?FD4hUp!TjY1MGh;oRp?T>VUmsyOhSF$%tRV|!k3dgWE! z_VqmzoQvS#0YZ2wshPgVp3`L41ZJ@_czzWQrja7e5SwG;=Jf z9R?NErfM`joe#Rh{Goa0OiyXQW0Jh%2jMjVDBmZ4sMaYazJZ62ps;PeRLhDqZj5Ad z@R0WL>J5lAPJH!-c%A59O=f5NPXL)b7<8UOr!B{Ytc)Z3@?WAI*zFk%4E23@mnj{= zS^<_h6sCUoj#qSYBJ+ceZTWAC<(&nr8ftNrOgtQvV^;ths;?Et{uMy$hZW<2w1J5| zWeXQBsQ6z^u}>tLMy&yl2>v zaDlM;)voCIlufQT=d;v{PcKK$Y%DnR9y263*ld!B0e?It#5`J?`BZ8oKAf9%EiuE4 zTIv|1+J0O2EPy$SP^Kmv5sQ8$shT6}38a~1m9;)4!=u}M<8wJ7;p;S*S_ZRYr78u1 z$|^+Aww8|L>CiQRWia|e?CzStvW}Zsj6*yAKsNkze-;cLG94YqKO6@E*I=8+nTtHP z&-TY5h$ZR8`4Pa*-CgeY8kM%(eZB*UM?0Xx<%9gos+_}InOKb}u<}RY#SgIvxcDaI zbbiD{&(*hxno5GV??zVMRK8Aqzde-HIZ{d83hu4)@ri<-jdJrkHAY)b;`Q~%E%)3i zSm}S1d#w7}utxUn4nEa>!DY~H89KTss{66AMBb*@zUP7j-=B}Mr{TArf7q-U-y!hn z$K=o~EK1R%TaiP3vB)7`HFih9wH-E5fo^+(>hUP9vHTZ^^23Ha)nBw6wAupK=g!LW z2)C6^_-~^rLfxt@yN}O4t0|~7?3oiEQ!9byVIPtxunv!p8%!a~I-!meK!_{*qO_BG z=e8P%?V^d&UJGS`tT-Xf-OFV;CC@c~4oHcFL8j)580~E?Gly0BaC0Q!AF9MHC3aa3 zwnTu#uaEGpN0B;kKWYea@(Wv0^iveq?P!>p{YtE~ne82!F7TqG2k|$8g}RGZr8vf- zIzsj(zJgKMA~tQeviq-jP%Qvs8;{0>#iTowD=OvC3(^j)dsW(HJ4u^We)>_D6dw7) z60PWoR0)WEKr5Nor3qw1hCC3eS2Wang$4=Vn?^a883vaD?wG6hybJfFqTfIMy-o}M zFxKE`M)`Ubr?X<}_gCAN~_>K!tB@7{XXN4F^j%! zAXjYmu}zE_Vp4OM2qNG+?Nkm98dP&}rS4!_1m#8_lpA?Ier^BpDlSDD>}xAqJs$BC zkg|eI-+6bPIfJlyXieRQyE*-eZq|3x#hG!$#mg&yYCyA_SEq?bqZR4NZ~;5ew7zR_ z7AOG6Ky-!Dix10tl(qM^Fl_XE=83nR6q*>3SvB#gFKZs^$9kuUMN1g+1jwa)CWR1H z<#9rK>4+^|1SNiH_S;pJdq0!PDrt+rW3JOQ=zc0JBukP;e*romi1AlH_@Ug;(9ryJ zevD-x{TE-lMS_Znt88py%YRHyshqjmNyFAa7;75_unVuAgVJ;+;(K$l!+{VBwIX2=}3pDsuKjVZ8KYx{Fb=kfMw&MJS`Q#W^DVXI!y=Cp-T+ZQkB zCd3$$yj0!SCD$Nw+Dw#e$;?NhAAPIb7(Wrtm(DVJql<=q^OF!{8|U zF$rw6)bLe;(4=_ZR|Ie(((R6HePjS!G!4>p{dVOXiba@^P-d#Eevfd4Jrq!OE%11> z5#R<-fQKb}OEu~Kxe1z)R`fFx47*LAZ$Xhx&iCuRJw%^9Z(1(#vn!T_YXbS7?z$ea z*^{1+U0mro^@--P!J%1h9G0U~i|z>h_HlHBf%c5ZC>UQqy*5Bb3$`1U+#t0wlW+O^ zTisSLW1S$6@OkX@8s4yHFyjl_Oj-9rk!cac9t+zD6Qe>e$P90+@#7KYEx`k0rdaTU zf51K_8D=}KJK)!Jws(p7h5T+HMSYntf&+q0Ve;+8**Z9219;w{3Z6W;EjmrJplzP4 zc6z*dl?63zlv`h)jmBrcusRpq*Rgd8VJ(i+&4rY^v0>aoJUNY3`sD^XUk8;eN*~(_k_D>r%U|VMwCL=Qbknhh7N1JX z^lFc1wVrn4$>&hKC}i-2`r57_TwlXS%X~4`szTv#K;fdwE`}hvR^sVwL z5cYqB$ri=*QzzvP`2?rd6vCmy`=3J!C>|^1|B$MSE;yY^RF1gB*;Y(tiYmEo-+x<; zbK;#|n1`qn^O8-%ik|0`6A@eSjG*HXiCh8+hjJZqPHy2xcqWAPi6BEgZqgK&B<^@l zWH6d&lW3eEEAfrU%S7NY6=96`M4;G@x0SUc0MXp%mZ?VQxZ=vl&Pd+}r<3o3CdOMV% zrKI`mdsCZqW-Va`>$zI7r3ZuDu#BqrN6pn@@f|S`HoseeP z<2+n)vn>R=8nD`hJ@UvT2kpeL5#~ntf*$omikZ7rAp5fLk*!7y;*R>5PXw1B&R$vy z$F$7gfy5R^A$X8f6Ies5J-`kuvVm3H%PnDaQxv)A4weMZtt7M0?qklJz~b8O2@-ui zA`nqZnqa@T=ZRpON_R-&>GG}|g?n{4*DS|r zGeZr$(XngYp}W40xeuwWVr`^$7v%5%YNW3^Y@ph~al;TmA^V0&W~%+HbWl%lt~Ap# z{{vg5R*>DFgln)|s9uwe^+$0Q2+l7ABMk6U7jb=$ra|v zTmq)wLCUd9`c-oT$u_7}iK!?!nM{ThW*iHKSbR(QqHvFlq~lJX-Z^_PKCSZS%O_=D z7yHkKigCB+F&SNLYmB%}H?0P+EJU>cy)i9`h`{Jf`0Fq1KUAjx?Xj61%J}z6stEru z1Pj>)EXZbGB-5DbJ?}A^`@V(w=18bqk738H7yWIIz6sP%77GfPZJb!ts6pw^ zMlg^SF%zIqsA+4j|IXY6h=)=aU-mInel!p6PWOvEz$Ag0yABqAAY9%FJKQV{qg z3U_aNfG(IEL4M}zSO#Z$OWPI2692?UE;-ZMA zaMc!C?eK{b>7JCiX>6pVBBMC3$q}wWC{7ToyxsfPjp4$v;-R29N}UuK)$gjpv5i~j`uTp6g4rC)ip#uiI>77 z3a{YJ@bip>FmCA3*C_I!vDeAJ(Bht^b~@OO$B+s0xU3e)KnaNs!5owuH&sY$>#DeK ztdHk=xv>BJCG>rOk;SB;mq6H>ri=HRS)@^`*XQ0NWsCfibW?33Cyik#Xe5v=o%OKF zt)X$Q8kHfWm}|B*%6B#K<0359uWN>$Z2sVJ{FG19Kb*n+5N?&AfZy5m=lTy33f`rEVkP-U-fE)Ax56$H=2l4vH(`G12tsfG7e4lbx@{d0qk7v#^ry(G2-tl4U>ozFB8*680JSwi|vN zIl1$EJ|ZL+jz?P57ZwRbmG<0QH>c~JvX;g9gd>M+jI!<|d)s}a5Kv1Em{3_7ZEFJO zSMW==%tRAbdPJ7V8a)JC8cXN96K9GHN*#wkv~(F4{(r7PAF-7aGW`iA6M@-3Inqas z;VGNHm5nxQMq1(wTAvtALh-9oCHcNYh;8}oMezVWYouz^WG~)d4p~-LRZ2c6GO0?s z<2NUu>RDa(Q_#XfrO=pmL9n-EJgNMh<5O3LdybLo&~ix$30!xwwkodL(6HE0no zXWv3EP}6*NL*siV-Xp^qAc&|EtLI3D8~>T(I0FT`tN?0 zE*h@YnngmW`vsZZ$_k{X6mp`i|FM6lzbOo>Sm`Mn-fNU(d%QPsGW3{IOq8W2|L3~; zulr{ZEWnt;uOhh%zGS}&S?rMqX|Q{iE>Jsgi-UkNE_+`u5mK|v=+O77bHj4*8!m^|B3YpO zzLdLu3^3%o|B$IwFVh`(2)&e~=gSsvSMDKgUincT*TDAOJ z0TjXsp0sZ*kcjv-uFY*4ck@n`RC}^)r?$6#b7mvc=sb6%xx_o991rEOrJPP_f7(A@ z(AQb-=?-EdDbuWyWNbPS#bq~tkK=xI(F(o}yXOcM?0}X7K?*cwWdCw;pi=vy^j0X~ z6;P*SBHdPKu*onii}pYvt)qHg0pBx?==Tb<9wD}&I-MT3?#;@P3vkc+RTEat>MKQy zir5M~T56DDSF*TNH%Bum)>FkvN8PoS(~7+$J+Ny&*Q!baKV86w6=1f6Il`N;&6Kq% zzBIHI?@_o)d)&bEs4(Cpa-WSLfFkjkgp<=?F|aWVbUE2ZGPpe(<&h~yNVD>4TEOhf|$2IC1Nf)aV6_Nr$#GY&8NJ12~-a$yS`nK19vCpD)G6iG#rA)6>R@ z#ZbMbT{gOwBJ~~52+ZXJzl0Llj&L>8>hj`W_{*oYpGg1c-iCi9 zsGb&CNT5>|k1t!MM^rCU-@;-?lO(SeV+?kZ4Q-xtSJK~Y#&Nj5~+LHlcD--8eczdy_sKop|Nv2bopz9C1vMsdfGSZuH`2xq9MC?vKV zm;4H1z`x)Q#J`T&a*&dek{6<~pzvjs+jIpdp`w-ynH%7K`r$7r-7zFOo@%|ViZ>Aa z{ke~bocVNqg2!!kNW;nbaH3~~&&og0v#L{~SU{6*P4IRjw(&`bkvApYOiskBB4Cy~Y13^#P!tKL1Y{S|f!zn+b*<;Bl|@3> zhPlZlFs-zkU2}uqu0ZBp80${sGngS;e(l}I4>^9UblgPJOgPgD0!k0B>= z6Ak4LyU`#r5E#vtKs>B-k-ED&EOJk{h(_HHQxbaouq~#MWa8z=LHavFSRc8a?TW|0 zr9>hW3myv6w(0cS5q3`uQ^+SE4K2WOqfX&?8=|!%q^cbhsFiqj4Ez92NW%ScZo9yA zHgRgR)a2TDWvC;GsCPCoxU3_+is~=L~&Wa_vkp3 zs1LVY%w$j6#C|!$l0Fir*j879XIUo~+vWVgWuULx$11VHH(eYm4dr?^H<3g<2V?p5 z*g&np)Ss|3@=e^A--|vQqy|5nXWlpckW{gO@$y*3Mp`=eKhIN8;yKL=uN!h%@6{&8 z7t-S49BSlLP^%vs2*Zk>bqZCheN$y)I^CV(UCo*k=z884cK=_mC3zct7WPsHrEg8* zy#IM$Y=uJ_XWw5Q(>PO9O8w_~dHJa>c{#O7I`z>lM^j9j zLBAxlj&2leX1iJa`3Cm{f&{wA4c__@jTr9SdU3*#&ZFB;+U0S-ur#j7|$LG=Cuv_t+YOzP6u9NPIDQ%OM+?U*s z9o42o&u+dUZja>4)4MuQ5KjF~uwKM9q%2m+6PK6oVAf{0nt7ixR&AkbF`DW74E9>v2Pj8`4oq`9QAACx;D^%2JzC5e zAfk<6EjjE~ItT`Su^YRIhuVeDsUnZ;?IHszu_Thwu$2txT0{a+8~eH0v)1Obbr@F5mqSU--zM7iLSb0bfrOrLna#L82skuNFtOh-E8W3rlOO%i zl887|fSj-~G0ctJMkTxkJl_c=%5rSa7RHr)lMI7ic2;{bOWToedK6WX2VdiNJH|di64Hw7fDLgFP02t zPS&tM#KSR&^6zI4zA4dl-NYn3_wPu{5L+>q@VVvMx93Zc@-aMJ>o%aowf+4)K^aDj z)Ff+_8_Taf<@Sc!=sVa3z9p3;GDLd7-_e+)teDH+Y~prY<@WT0Ny&yrA7&S=d?c37 zskqtcr#0N_b@Qde?)9cpWgpzCHm%w(pM|d$umxJ2JUO$cug>U>hTae2?7yYsvWkw8 zG@s0{ElnMJb!*M@^kr)Kn5=w-A^^R3^A$a+XxJ%W>Ea{QIc-)&0|V<(JJ7>4A0(NB zIy7L#sJn268ZmqY*b`yVI&d}ggy$b$a0F!{mla6YgNoh@qE+}FnGVuKBi#IE(I7n3 zRTTSzlms02+Xx(6Wm*UpMzIasQ@IkGg22vzz8Mr%`h7hd0|Uhxq{bnm(c$5yzL$nn zg$a138g;ESTGKxiejrV%QJhNL-BooFI^bI?shJ*e&q%Lqy3M~_(#AeYI%Zj}_8SYM z)3FX)fmx<4rLfi7Pe_(?Ps+)T>)OYgV5dQPobffu6VsO94kjIKtIwQFPdna;tuf5})^+e=>E1phUdlAU zb$_k3Zsfm8^e)4=`|$~a+ojEdzq;{3Pt%%Mi|uzE?l zcnpKXE4l`@m_>;L5jIpAVwv#?dE=TM#jC6l9qJBeXnrG|+iT{a&4*&_wuPdwP=ES- z+kmm-+YDpu~=5naal>I6N;XKD1~a|gR5AO z*)zQ+g|}h`RSDiy42skPrYS0;UbeaX9hu=l!r$?!(Ftu}nBK#+?MH6-PYXiRr_;WKNulB=!o2o|enPE)@(`Xy1 z#;;|Ra2Z%6a#C1xF!sbqzS$?n`bIWytI72{^SC7PT9ACNS7&&vA`}8I2Q6M0n)UJb zWc6@rIDbzhL~Elc0vzSt8YJogR?>IVR?iGCk}tyQA#kJrAzg;P4i&kMAmHeCPYBSw-! zu8-?e&Ip-<8UVrU`P$3FeMpYvu0i_IPcrx%<=k;=WIz(J6A7||1X;J0D1+VyK5~;KMiA;S?z3Q=?t^CRQ#~>WFW57Q_ zLnwlXO{*3DDm)Qe!|;tmBf&$sa%XzY$^drD zIdR!{pVMpIQ#U^2){N_l?$KDcnk-JJ8Y>{}K|2g#8r)tP`nScWKla&QtS3@-i0 zX4gW&>nK&bGsh?BmfTC8OQ#yGs}pxH9o7W%b#8*ZAhmpoW`y_^d}>#UdDT#uXWk$an8>W37e-@wIGuRHNuF1kl6@De{vr051; zj#AC8iDvq86l%73)|aF7#&EK&&opXqu?>b$+1h$GU7v15*hp?9p}D&3uQ!hbH;u;zfrF37s!Qfwf`ey7gWqQY zZ#R!3GE6ackd@iwOOMDcDScZH8mxj&yr>sJ$U9apB5rE;KUpVPVv=mtvz^Pf>5<}w z(CM|CbKY&{CW~ODk5o++k(qpu`#f=pH93`hwBX}%!f=Vw4_KRem7EwV>J7XrWk_(o0F{HIh7J?x!D5@Fij_2kS`C9ZTCYZwb;Xy1^v*G49$J~3ox_bk?~IV zPlZuTK8RpYBGH-ate1l%3!;G`G=@}vj5$%hW!G)On$Iji_l3)99L&1VG2=J;bxz)s zfCq+*^dtjKW#|W82CJMk$6UhxM5zh;GezRpd}G!;vitO2KAI{|liV}^2e!gzgaJM* zA)KZ$kMP$nOh&@FPfG}CQFULDF5^v3&+jCDFSocydOV!tjDIDLsY;oQwS7v?#iB;o z94YcNiN!nm9r0~B8mrcPjLgKxR}-fPQRw{DI(LT?v#$mvF3y`V7mM%qzJusSpz~r@ zAfrbWuh`(TS>PtLd;(MOiLXG=9UN~QwX$dxA-j2$mR5Pt@dXBuIjLv)MUzYIwR^w6 zWv^q%Xg2hhtY4x|~ookn{sHM9_Zwg5N2wLIs?A zsdn8kyu1cPn!7v+Gr(W1^J^H}p|#ve6W3IX5dH>lp**5LA}zlSlMJhXGp%8f&)4{( z{keJuqlaMm^P>bE?YT#_N9RTle-i5$XOm$!!l8Brj(-j3{MQdfY6{!iK&lxzj9A=S zA{8}QEB4u_#5$w=e_;K+Y@{7TJ_#UCa%PcQbt>sfQbme0|5FvUqTZ z_UAf`51cfLXp;zvC*GtDs=&q-oscS6`ggvTq3j zjYQ^9hS0KG;G)J^xRg0#s(qV+S{O}592(*hBy1G&xGZ70y8i_om^gJq0f%2V&bM` zq6Vp>(ndcL=tft-BiR4XKR6BAxSM9iFvUFWWTx3ZW2LUl0-IQ&Af9PDiv{sp|7h3s z+kfM6Yc&a@9EcYEmcrX>PwM-9jY15I_3CK02nvHI+<7XMN53vYafR7@h6%60hi9QC zY;5TbH|4o5ea<$Ho_Q|70M<$pt_4*diqEd6DA-Oz>I7a&>G~h4=F>y22G4uvKLgs> z)rZDY_n5ZL1=!e^r=QV7xrpxxyHgn9fNQs*Az{V^zW&3G6_ zxs__rnu*Uu{);QMlDS6ED5iHS}9gP(H z`2QgSAS9rzi($Z0DqIL_IXL0AVyCt5RG-zDKZ}|_*Uq%*d{s$}A+wtcvzOMtnp6FE4RL-~Y1G3N=8eRryuN(p`$-QHPyVq2CpTbfW?stXYS#0hf z$px5nn?-ttwSKj)Z!;oG%~x9oT|62F@Y{Q0XDK;-`9cEGc?2TYH-Uv!MUr-jW=Sj^ z_r5%DV{$HxQYBz>YbYu9z`e%2{99WG^rH|GYczGdM*@R(o)P7xm_B5l5l(FXGV5q& z7Dkp>nc9c7HaJvkWWP)}>oyh1cfgsJrd9C^?A&=^U&}XMHh7QM^RaJ`UglXs8~423 zw1164W#r=P(kZ^=hn_FCytYr~?LniAcwNG>xEc#>m9St1?-2GbwpHu5Ze$qhTWkF( z=M7YDHB@2MN3aY#Zg+kVE&%HzoE)+Tmj|5($l#1_k-9^^lL>a^TITS?z!v8n5aUKz zg{!V7%M5V-a0l5k2KwH@%z$tuuUsmofp0tHqgRbCr-pBeJ{HB_N!{n1`#!4-LtEi3 zcC%OqnD39(dsSQ4FedWJ;zPm7#M5iC(g!5e>gdo0wMB=w0d^r4zT#fne-t0vllIZw z6xHz^ zSmfyuz8RKUtzy{p*i|KK(S!7@3X@!K$K6;hM@eZXo!|z6E^^roYA}`hcnlAcLaXBmsb-ac(9b|rUp7pHQZUhPS zml(gnq6bi8TEH|BK&zL(4HGRF{?VzaJvz^k&+)7hJ~w z-SZp52eghoex7Zyj69h8t#r2ihrAcN51XZh3u0?f`WPbYBQu+(8^}JGSl~TnP@Mt{ zhOPf)ohU|i!syKqCY@`N`lH2B)4AemWdNm}_hLJi>MWdkIV7}daRLi{jUBy(d z@wqPme8oaOZ$7MbvMUuMfrH$F02phOsX~f0e9kSw8Nwi1I#H#k3BT*fld1SKrc%;U zy@rX13%p42ORx^^xNXBGRs&eB4Sj#_axY`68GYpFYB!R?m$2aVl*H=TFMI2HMz2t5 zKIulqj0WFCK9q4yxJA7K7Kcn#tb>rf*mME+!Wt-g_8A^l``1V~nNU6po$ohmVtj}% z2ANuS+WGvxFl+UQirlJjC3dQnXi>buV;{9b4RZlID<)}S@X&Bm?9t*$T7GKWA=A^@ zpG2$}z7vH&_e*kp_I-@b4t(rKv_xf|)`XNszG3Jw5BfY?`16Ii91#9gs>7pzXlkzC zO*>g4smkh^kT7b9!tr^cZ=V4K&#Aq(+?VlQ!TdnL`^B6jXCK7PrO~G=9P0$NjfJ!U zEwdBSW=hpEwr39@Yij!8xJd$DRUw7(Xp|c0MhFLFSUvmwM8FBV*-Dy@)l1>D&IQ?1 zv|-)XO%rg;!vw#kHR2zOQ-B`I|)jkOlzwX>%wN_!b^-N8#@N$g2$;e%WK zw!g#_sNxRkz@2Z@{*SjuwOg}ZH(k78Lm2O;IeoSLK*y8d{s?$~B0DR*DkuCEpEmdt z$zj5h*zcl9KO0*tzMrHu-5buuvh}%wEETj~|pT-qOZl3S<$xz6# z=nXh??XKsrm`-WTnjNjGRXa9Lu=}7{l>VJ%mX=d<$#o8k;oVSi;qgF41;X)A6Y!^r^jT zikgf6{P2FMpFTPDZ)bp^W6QT?n6QU41QRmRT^6_s9W=#=7e>bEu( zXZ_m5KKjtH?tJ9J5|JbSe*W_46TXl80p)1gTSD$s$7pt1emH1BL59V;^YLo_=ee-q6NbGo_NbwkhEi#HlizJCmJYzQqwUh&l!E%$0x?;*bZ~&L$wU(?BoJ0coY9<1}jb(P(lQXA^m2TYa7Dl!{Xp z`Tm8$)Lp+`LYG+`kV1e->`#KwvrQ$q+_Ho|=T^=xXY}=eE=)XSAv7)y?$yZmxtuv# z2GdaR2T4D}l^Vn^2A^Z!QXearNMm{2=`r+his6HkwOc(Mx@J7(NW&pK&>HXu zsu)=K2oY%s=80U`IsdocxFf48zbT!TnQAQNJ?sALRdG3#ct@u1u$o6|$oz3EMKrl# zKjO??G?3MBbzqjoZUtj!;YMl4bEC7|beDaH|H?eE!Z{I12C54=NqFZKg*A{a>;E!ZqxY5J4;mNs<(&mRaJGC?-w!1jVAxZg%jFo2j7`5`+m9`;; zauf9HlX!WBntI(CpE{P~qkfjG&M}#j{sHHu%YK$zLnD{6>h7k)+CW04zo9yC_s{V_ z)$F%zXu`wC^jVR{!d|fiCI+M9ICHOC=kdC$e?E+7a2DG5s08?vUY&|YatjfBHy?HK zszd*P#`$=VH7Ga|N$2xu1GeEyOYLCu!$y}E*Dmc@i?}pO0=}q3Qb}7sshUj;>q-m7 zzg{AkQ);bVilV`I2XonN24TaHqTmqMf}t}Tp&xR>bKHRmV~1S{;I6H-PgtC{#Lw$9 z+`;SixYV&R*{VquKbdB&uwv-Dc}b&k;$yyfky_ORjNfD9Kq}o&Bj+(;li1ue(2A1vaMxOyt2xH}CjH1kFU25|O zXowFEgIe}I%w;8R0DI|=65)1UA$qM3VDj7mFKy{5rk0LH(AeMtd`OdOfg~JOu1^oh z99pRlX63gB)BriAcL;yD@4zKta?Fooz)hCtvBuXQ=}!MAbV?jrL?&A>%39SRU86(& z!7h8c-k5&3`)8NL3lBFVj5yvLsYHx}e)Jb%2>m7w$?x>VDs^x-|M8h*l7D?>Z3bh0 zHVUQH)5v%{i9mgTDaBK+G?8z13gDx9^9C|d3Z?K(Fn?O!qxb794QXKYe}V>8Sbm)B z^m%@}{gQWR(2;XynQ0aE5au5nV2gan*ZoHyjl*jS^R_}hy9hY0-SkjS*>5pkYWMlm zqwWt0${OT9!S`K=at1s#p`hU>Q00w*&wT~A7IX@Q`~n%ZdnRV_SWik8wfPg;)XuS; zb7x>$dp~%>V2(Q-5C4Y)scbEl?jjE#H~Q6^-@ziqpN6~AF$v;HviH671eW;2@`YGARs2}XTHn2kquiNF$DLxh3J3~Jol*HtC{@3K!U|UUNhm*GjjlKxols@BA;Do_^IFbFO zuKvQETd5lV8;%p->GvEfrGoktjYpCDF#2{#pxe?iol%Zvs-A-$bOc$$}OAST{thrS{+_Hl1>wvU|dWu34}8uLcfI;X~bDPpjU5 z%^jA0El9>7QR{PhvX%zJ-XR*7E|@kz=wSeXFBvG|2fI+v{8JzYf0&J(@D-mVq_bYc z>^f7v(R4hA)5aHqsIjzM0gMr28J@76!z4IE1B;w+;R8?|uRFfd&7UKQ;7{*K0#)AID+Ij$b1rGp77f~ac{O!r5@k>WoOt?hZiNW z1#H}GFZ)7VD$aDW__`ZKo-P~_sXF`RM4&Y5*iW$s&L8C>GW_{vNKy?)E2M*&MdgTK@P~1pqgC|5HZBsF38Ho}W?JMj%Mw_Z8JF(SoMBSI9?4U);|pRcHs~ z07c814U7>~fXE*U?q&Y>O68%FSG(sHlEC^c!5)zHm3`i`Jg!+PdAQ?CYKwpD;fRjth>}{ltV*P~T z*_kd$r`M>JOZ*%3R8D4@E4{|V-3pNd2@vV0ow5)yD({&bixE#H!l|1;g4Nk~Cre-c zX7si<=YOY>FWr`|!1vMmJ%vECzCQ(;T;}puZ*RU47AWZvTr3kwx&ZmTo*1SbMxIn6 z3w~-<|M0(zzTxO_cT?*o)hcprwC`rY&*UDIQ1O+hdjqn+mSxeC&3+L-;c+umTuMq&oQc&Khs&@dA^7A#h2QMH_`tbZ z!{cB!U}ZCMk7bu^+t(_f|7dhAdXnVv^DcYeA_!?etUEnA#P6i&-ZY4wtk07aG&e7C zq$~>#@izJsy*Ea(dUdTOCX?{%crJZRDk+I4&BIGa=YtpDjz_f{QDwXAfD_-{k?`j} zUlu|*-^@Xer)p2^iv#d~U0#9d)s)Xmu{}h2^i0Z&MUPvyZ! zmn(?Z`~gw$WfL_GF`M+NV5GEcwqht-;APVd84-y&Mg=ZY>~+6#p7s(?-A_QzE4LU_ z^AM9;O+2Xin26D7aFu|_;nMqw3R3C?vC}g{>EZ3d$KbBXZ|Oj;%m-8R%-RbZ_#QQ zVx~Hy!N|XZY9GresSG8ebt&JGhb4Zm=|4LndsZ<4Do{wlr7OiOPShF39K!2%5d$*! zJ)fvjvrkbLo@SRpVhX<_K=A1SL`m`p-V5kVJsiR^^Ac%~T!w%*Rv181Mk$qOY3i_h zUz5Dpm^iTnHu@CDIaAwlX^#BQ3<)l!9WAZbU!TLCMZT8A9RXJ{2H>Mq%1H;;H!ai$ zUpO?V`AfnNQm&UfsR!3gK18@0)`C!hHWs}#1Xzr=*PtRPU#+4Rkb5fA0J|&>Jlgrs zAUFnSIxY8L4x*~$2ui@DF!3gRvF`;Giw%&{mFp)3%)rl*B-z5y4L?ko5w3>^*xOjd zOr?AU-EUZ6s~rmpd(6>IFvI;nk>&9X4U<`ClYMP@es~LR#qFQPkvXL@P2fqua_K_z zOc7cl$n6Xc)^;1#zm#(yh5}UMS<0B7V>4-KEQVf1m&obnL#vXM7*)h>0|sUg1gz<` zgd~aXS`jJXS`Va~}#`SV25Z&P~7ozD@Ix`OZ$1xQKVKye=cC@H974*SaY3U$5 z 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�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

        uQL?+VQR$K|rt5yqK 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 diff --git a/nifi-site/src/images/niFi-logo-horizontal-scaled.png b/nifi-site/src/images/niFi-logo-horizontal-scaled.png deleted file mode 100644 index ebe723e1c6ff8762d54def5821237137bbcc029f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4462 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 A7XSbN diff --git a/nifi-site/src/images/niFi-logo-horizontal.png b/nifi-site/src/images/niFi-logo-horizontal.png deleted file mode 100644 index d43a263dece8800ea81aa5ab11ccb21a721ba9f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13161 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 V9a<*OyaoSyDaxwJ)Js`}{U5)6*W3UA diff --git a/nifi-site/src/images/nifiDrop.svg b/nifi-site/src/images/nifiDrop.svg deleted file mode 100644 index 7026f84c8f..0000000000 --- a/nifi-site/src/images/nifiDrop.svg +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/nifi-site/src/includes/disclaimer.hbs b/nifi-site/src/includes/disclaimer.hbs deleted file mode 100644 index 788b2115d9..0000000000 --- a/nifi-site/src/includes/disclaimer.hbs +++ /dev/null @@ -1,13 +0,0 @@ -

        - -
        diff --git a/nifi-site/src/includes/footer.hbs b/nifi-site/src/includes/footer.hbs deleted file mode 100644 index cc9405adc3..0000000000 --- a/nifi-site/src/includes/footer.hbs +++ /dev/null @@ -1,6 +0,0 @@ - {{> disclaimer }} - - - - - \ No newline at end of file diff --git a/nifi-site/src/includes/header.hbs b/nifi-site/src/includes/header.hbs deleted file mode 100644 index 49f320d081..0000000000 --- a/nifi-site/src/includes/header.hbs +++ /dev/null @@ -1,22 +0,0 @@ - - - - {{title}} - - - - - - - - - - - {{> topbar}} \ No newline at end of file diff --git a/nifi-site/src/includes/topbar.hbs b/nifi-site/src/includes/topbar.hbs deleted file mode 100644 index f1125fbf3e..0000000000 --- a/nifi-site/src/includes/topbar.hbs +++ /dev/null @@ -1,72 +0,0 @@ - diff --git a/nifi-site/src/js/app.js b/nifi-site/src/js/app.js deleted file mode 100644 index 6ec8c4eaac..0000000000 --- a/nifi-site/src/js/app.js +++ /dev/null @@ -1,17 +0,0 @@ -// Foundation JavaScript -// Documentation can be found at: http://foundation.zurb.com/docs -$(document).foundation('topbar', { - mobile_show_parent_link: false, - is_hover: false -}).foundation('reveal', { - animation: 'none' -}); - -// load fonts -$(document).ready(function() { - WebFont.load({ - google: { - families: ['Oswald:400,700,300'] - } - }); -}); \ No newline at end of file diff --git a/nifi-site/src/layouts/html.hbs b/nifi-site/src/layouts/html.hbs deleted file mode 100644 index 6361bbb92d..0000000000 --- a/nifi-site/src/layouts/html.hbs +++ /dev/null @@ -1,3 +0,0 @@ -{{> header }} -{{> body }} -{{> footer }} diff --git a/nifi-site/src/layouts/markdown.hbs b/nifi-site/src/layouts/markdown.hbs deleted file mode 100644 index a68c5a80d4..0000000000 --- a/nifi-site/src/layouts/markdown.hbs +++ /dev/null @@ -1,12 +0,0 @@ -{{> header }} - -
        -
        -
        - {{#markdown}} - {{> body }} - {{/markdown}} -
        -
        - -{{> footer}} \ No newline at end of file diff --git a/nifi-site/src/pages/html/developer-guide.hbs b/nifi-site/src/pages/html/developer-guide.hbs deleted file mode 100644 index 6a2e1c15b5..0000000000 --- a/nifi-site/src/pages/html/developer-guide.hbs +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Apache NiFi Developer Guide ---- - -
        - -
        \ No newline at end of file diff --git a/nifi-site/src/pages/html/docs.hbs b/nifi-site/src/pages/html/docs.hbs deleted file mode 100644 index 3dd95aa461..0000000000 --- a/nifi-site/src/pages/html/docs.hbs +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Apache NiFi Documentation ---- - -
        - -
        \ No newline at end of file diff --git a/nifi-site/src/pages/html/download.hbs b/nifi-site/src/pages/html/download.hbs deleted file mode 100644 index 83c07bb865..0000000000 --- a/nifi-site/src/pages/html/download.hbs +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Apache NiFi Downloads ---- - -
        -
        -
        -

        - - Apache nifi Downloads - -

        -
        -
        -
        -
        -

        To verify the downloads please follow these procedures - using these KEYS

        -

        If a download is not found please allow up to 24 hours for the mirrors to sync.

        -
        -
        -
        -
        -

        Releases

        - -
        -
        diff --git a/nifi-site/src/pages/html/faq.hbs b/nifi-site/src/pages/html/faq.hbs deleted file mode 100644 index eaf0d1b152..0000000000 --- a/nifi-site/src/pages/html/faq.hbs +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Apache NiFi FAQs ---- - -
        -
        -
        -

        - - Apache nifi FAQs - -

        -
        -
        -
        -
        -
          -
        • -

          How do you pronounce NiFi?

          -

          "nye fye" (nī fī) is the preferred pronunciation.

          -
        • -
        • -

          Where can I find documentation on how to understand and configure NiFi?

          -
            -
          • Documentation is available under the NiFi Docs link within the Documentation dropdown.
          • -
          • A Developer Guide is also available under the Development dropdown.
          • -
          • View the Apache NiFi Wiki for additional information related to the project as well as how to contribute.
          • -
          • For more information on presently outstanding documentation work please click here.
          • -
          -
        • -
        -
        -
        diff --git a/nifi-site/src/pages/html/index.hbs b/nifi-site/src/pages/html/index.hbs deleted file mode 100644 index 966bfad242..0000000000 --- a/nifi-site/src/pages/html/index.hbs +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Apache NiFi ---- - -
        -
        -
        -
        -
        -

        - - Apache nifi - -

        -
        -
        -
        -
        -

        - is an easy to use, powerful, and reliable system to process and distribute data. -

        -
        -
        -
        -
        - - NiFi flow - -
        -
        -
        -
        -
        -
        -

        Features

        -
        -
        -
        -
        -
        -

        - Apache nifi supports - powerful and scalable directed graphs of data routing, transformation, and system mediation logic. Some - of the high-level capabilities and objectives of Apache NiFi include: -

        -
          -
        • Web-based user interface -
          • Seamless experience between design, control, feedback, and monitoring
          -
        • -
        • Highly configurable -
            -
          • Loss tolerant vs guaranteed delivery
          • -
          • Low latency vs high throughput
          • -
          • Dynamic prioritization
          • -
          • Flow can be modified at runtime
          • -
          • Back pressure
          • -
          -
        • -
        • Data Provenance -
          • Track dataflow from beginning to end
          -
        • -
        • Designed for extension -
            -
          • Build your own processors and more
          • -
          • Enables rapid development and effective testing
          • -
          -
        • -
        • Secure -
            -
          • SSL, SSH, HTTPS, encrypted content, etc...
          • -
          • Pluggable role-based authentication/authorization
          • -
          -
        • -
        -
        -
        - diff --git a/nifi-site/src/pages/html/mailing_lists.hbs b/nifi-site/src/pages/html/mailing_lists.hbs deleted file mode 100644 index 2f8eebf481..0000000000 --- a/nifi-site/src/pages/html/mailing_lists.hbs +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Apache NiFi Mailing Lists ---- - -
        -
        -
        -

        - - Apache nifi Mailing Lists - -

        -
        -
        -
        -
        -

        - These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link. -

        -
        -
        -
        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        NameSubscribeUnsubscribePostArchive
        Users Mailing ListSubscribeUnsubscribePostmail-archives.apache.org
        Developers Mailing ListSubscribeUnsubscribePostmail-archives.apache.org
        Commits Mailing ListSubscribeUnsubscribePostmail-archives.apache.org
        -
        -
        -
        -
        -
        -

        - - Mailing List Archives - -

        -
        -
        -
        -
        -

        - Some other popular archive sources which are not part of the official Apache archives. -

        - -
        -
        diff --git a/nifi-site/src/pages/html/people.hbs b/nifi-site/src/pages/html/people.hbs deleted file mode 100644 index 90d7f2933c..0000000000 --- a/nifi-site/src/pages/html/people.hbs +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Apache NiFi Team ---- - -
        -
        -
        -

        - - Apache nifi Team - -

        -
        -
        -
        -

        A successful project requires many people to play many roles. Some members write code, provide project mentorship, or author documentation. Others are valuable as testers, submitting patches and suggestions.

        -
        -
        -
        -
        -
        -

        - - PMC Members - -

        -
        -
        -
        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        IdNameAffiliation
        aldrinAldrin Piri
        devriesbBrandon DeVries
        jcareyJason Carey
        markap14Mark Payne
        joewittJoe Witt
        jbarnabeeJenn Barnabee
        mcgilmanMatt Gilman
        taftsterAdam Taft
        tkurcTony Kurc
        danbressDan Bress
        bbendeBryan Bende
        bimarguliesBenson Margulies
        -
        -
        -
        -

        The team is comprised of Project Management Committee Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

        The Apache NiFi project greatly appreciates the help of our mentors while in the Apache Incubator. Our mentors included Benson Margulies, Drew Farris, Andrew Purtell, Arvind Prabhakar, Billie Rinaldi, Sergio Fernandez, and Brock Noland. -

        -
        -
        diff --git a/nifi-site/src/pages/html/screencasts.hbs b/nifi-site/src/pages/html/screencasts.hbs deleted file mode 100644 index fcd78f9a5e..0000000000 --- a/nifi-site/src/pages/html/screencasts.hbs +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Apache NiFi Screencasts ---- - -
        -
        -
        -

        Screencasts

        -
        -
        -
        -
        -
        - NiFi Toolbar Overview -
        -

        NiFi Toolbar Overview

        -
        - -
        - × -
        -
        - Build a Simple Flow - Part 1 -
        -

        Build a Simple Flow - Part 1

        -
        - -
        - × -
        -
        - Build a Simple Flow - Part 2 -
        -

        Build a Simple Flow - Part 2

        -
        - -
        - × -
        -
        - Creating Process Groups -
        -

        Creating Process Groups

        -
        - -
        - × -
        -
        - Creating Templates -
        -

        Creating Templates

        -
        - -
        - × -
        -
        - Summary Overview -
        -

        Summary Overview

        -
        - -
        - × -
        -
        - Provenance Overview -
        -

        Summary Page Overview

        -
        - -
        - × -
        -
        - Managing Templates -
        -

        Managing Templates

        -
        - -
        - × -
        -
        -
        -
        \ No newline at end of file diff --git a/nifi-site/src/pages/markdown/licensing-guide.md b/nifi-site/src/pages/markdown/licensing-guide.md deleted file mode 100644 index 9c928b1354..0000000000 --- a/nifi-site/src/pages/markdown/licensing-guide.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: Apache NiFi Licensing Guide ---- - -# Apache NiFi Release Guidelines - -This document provides guidance to contributors of Apache NiFi to help properly account for licensing, notice, and legal requirements. - -#### Disclaimer: - -This document is not written by lawyers. The guidance in this document is meant to compliment Apache Software Foundation guides and policies. If anything in this document is inconsistent with those then it is a defect in this document. - -## Background Material - -- [ASLv2](http://apache.org/licenses/LICENSE-2.0) -- [ASF License Apply](http://www.apache.org/dev/apply-license.html) -- [ASF Licensing How-To](http://www.apache.org/dev/licensing-howto.html) -- [ASF Legal Resolved](http://www.apache.org/legal/resolved.html) -- [ASF Release Policy](http://www.apache.org/dev/release.html) - -## How to consistently apply licensing/legal notice information for Apache NiFi - -### Apply the source header to each source file - -Every source file for works submitted directly to the ASF must follow: http://apache.org/legal/src-headers.html#headers - -Question: Every source file? What about test files and so on? -Answer: There are a few exceptions. Test files can be argued to have no degree of creativity. We also need our test materials at times to be exactly as they will be found in the wild. We should ensure test files have the license when possible but not to the point that it requires altering the test itself. - http://apache.org/legal/src-headers.html#faq-exceptions - -Question: Do items which are generated from source during the build process require the header? -Answer: Taken directly from http://incubator.apache.org/guides/releasemanagement.html#notes-license-headers it reads: - "Copyright may not subsist in a document which is generated by an transformation from an original. In which case, the license header may be unnecessary. License headers should always be present in the original. Where it is reasonable to do so, the templates should also add the license header to the generated documents." - -### Apply the proper NOTICE / LICENSE Information - -For every addition or removal of a 3rd party work as a dependency or as pulled into our source directly we must ensure full -accounting of the correct LICENSE and NOTICE information. - -Our source release must only account for the LICENSE/NOTICE of items that are actually in the source release itself. -Binary dependencies which are pulled in during the generation of a binary convenience package should not have their -LICENSE/NOTICE data in the source release. But, they must be accounted for in the binary package. - -The LICENSE and NOTICE files found at the root of the Apache NiFi (nifi) component is considered 'The' LICENSE/NOTICE -covering the source release of 'nifi' and all subcomponents. - -The LICENSE and NOTICE files found within the 'nifi-assembly' is considered 'The' LICENSE/NOTICE pair covering the binary -convenience package of 'nifi' (tar.gz, ZIP, etc..) - -The Release Manager (RM) of a given release is responsible for checking all subcomponents for the presence of specific -LICENSE/NOTICE to gather all source dependency clauses as needed and place them into the overall LICENSE/NOTICE for the -source release. If generating a binary convenience package the RM will gather up a listing of all binary dependencies -as called out on subcomponents (including the assembly itself), which can contain binary dependencies, and promote -their specific NOTICE/LICENSE text to the binary package LICENSE/NOTICE associated with the assembly. The binary package -LICENSE/NOTICE then should be a combination of source license data and binary license data. - -A binary artifact is any artifact which is created as the result of "compiling" or processing a source artifact. - -For every subcomponent of nifi some binary artifact is produced because we make these things available as Maven artifacts. You must consider whether that artifact stands on its own as built from source or whether that artifact is comprised of materials built from source combined with other binary artifacts pulled in as dependencies. - -In the case of subcomponents which produce binary artifacts which stand on their own (as would be typical in most Jar -files) then you must only account for any 3rd party works source dependencies. If you have any 3rd party works source -dependencies then you should create or edit the LICENSE and/or NOTICE local to that subcomponent AND modify the -NOTICE and/or LICENSE of the top level nifi source. - -In the case of subcomponents which produce binary artifacts which themselves can bunde 3rd party works (as would be -typical in a NAR, WAR, tar.gz, zip bundle) then you must ensure that the subcomponent binary artifact itself includes -a full and complete LICENSE and/or NOTICE as needed to cover those 3rd party works. For every modification to the -subcomponent LICENSE/NOTICE for a given 3rd party work the overall Apache NiFi source and binary LICENSE/NOTICE pairs -need to be updated and/or verified as well. - -To provide a subcomponent local LICENSE/NOTICE ensure there is a 'src/main/resources/META-INF/NOTICE' and -'src/main/resources/META-INF/LICENSE' as needed. During the build process Maven will place them in the customary -locations for the binary artifact. This way for every binary artifact produced from Apache NiFi there will be a -local and accurate LICENSE/NOTICE for that artifact. - -### How to go about working with the LICENSE/NOTICE modifications - -If the dependency is a source dependency (ie you copied in javascript, css, java source files from a website) then you - must ensure it is from [Category-A](http://www.apache.org/legal/resolved.html#category-a) licenses. - -If the dependency is a binary dependency (ie maven pulled in a jar file) then you must ensure it is either from -[Category-A](http://www.apache.org/legal/resolved.html#category-a) or -[Category-B](http://www.apache.org/legal/resolved.html#category-b). - -The key guides for how to apply the LICENSE/NOTICE is found in the following: - - - [Source Headers](http://apache.org/legal/src-headers.html#3party) - - [Third Party Notices](http://apache.org/legal/resolved.html#required-third-party-notices.) - - [How to modify the NOTICE](http://www.apache.org/dev/licensing-howto.html#mod-notice) - -Specific guidance for handling LICENSE/NOTICE application for typical MIT/BSD licenses is -described [here](http://www.apache.org/dev/licensing-howto.html#permissive-deps). For understanding what to put in the -LICENSE file look at the license of the 3rd party work. BSD licenses for instance have this statement "Redistributions -in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution." In the event you cannot find the actual -Copyright statement for a dependency then place a link to the license text they claim and indicate no copyright marks -found and provide a link to the project website. - -Specific guidance for handling Apache Licensed dependencies is describe [here](http://www.apache.org/dev/licensing-howto.html#alv2-dep). -"If the dependency supplies a NOTICE file, its contents must be analyzed and the relevant portions bubbled up into the top-level NOTICE file." - -Specific guidance for handling other ASF projects is found [here](http://www.apache.org/dev/licensing-howto.html#bundle-asf-product). -"It is not necessary to duplicate the line "This product includes software developed at the Apache Software -Foundation...", though the ASF copyright line and any other portions of NOTICE must be considered for propagation." - -Specific guidance for handling LICENSE/NOTICE information for category-B licensed works is [here](http://apache.org/legal/resolved.html#category-b). -Place an entry in the notice indicating the work is included in binary distribution. Provide a link to the -homepage of the work. Indicate it's license. Group like licensed items together. "By attaching a prominent label to -the distribution and requiring an explicit action by the user to get the reciprocally-licensed source, users are less -likely to be unaware of restrictions significantly different from those of the Apache License. Please include the URL -to the product's homepage in the prominent label." You should not modify the LICENSE file to include the LICENSE -information of the 3rd party work in this case. That is explained nicely in http://opensource.org/faq#copyleft as -stated "Copyleft provisions apply only to actual derivatives, that is, cases where an existing copylefted work was -modified. Merely distributing a copyleft work alongside a non-copyleft work does not cause the latter to fall under -the copyleft terms." - -Specific guidance for handling works in the public domain is [here](http://apache.org/legal/resolved.html#can-works-placed-in-the-public-domain-be-included-in-apache-products) - diff --git a/nifi-site/src/pages/markdown/quickstart.md b/nifi-site/src/pages/markdown/quickstart.md deleted file mode 100644 index 310f528a69..0000000000 --- a/nifi-site/src/pages/markdown/quickstart.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -title: Apache NiFi Development Quickstart ---- - -# Apache NiFi Development Quickstart - -## Source Code - -Apache NiFi source code is version controlled using [Git][git] version control ([browse][gitbrowse]|[checkout][gitrepo]). -The code is also mirrored to [Github][githubrepo] - -## Issue Tracking - -Track issues on the "NIFI" Project on the Apache Jira ([browse][jira]). - -## Building - -#### Configure your git client - -We recommend running the following git config commands in order to ensure -that git checks out the repository in a consistent manner. These changes -are particularly important if running on Windows, as the git client has -trouble with long filenames otherwise. Additionally, in Windows, the -default behavior of the git client, when installed, is to set the -`core.autocrlf` configuration option to `true`, which can cause some of -the unit tests to fail. - -``` -git config --global core.longpaths true -git config --global core.autocrlf false -``` - -#### Checking out from Git - -To check out the code: - -``` -git clone http://git-wip-us.apache.org/repos/asf/nifi.git -``` -
        -Then checkout the 'develop' branch - -``` -cd nifi/ -git checkout develop -``` -
        - -### Linux Operating System Configuration - -_NOTE_: If you are building on Linux, consider these best practices. Typical Linux defaults are not necessarily well tuned for the needs of an IO intensive application like NiFi. -For all of these areas, your distribution's requirements may vary. Use these sections as advice, but consult your distribution-specific documentation for how best to achieve these recommendations. - - -#### Maximum File Handles - -NiFi will at any one time potentially have a very large number of file handles open. Increase the limits by -editing '/etc/security/limits.conf' to add something like - - * hard nofile 50000 - * soft nofile 50000 - -#### Maximum Forked Processes - -NiFi may be configured to generate a significant number of threads. To increase the allowable number edit '/etc/security/limits.conf' - * hard nproc 10000 - * soft nproc 10000 - -And your distribution may require an edit to /etc/security/limits.d/90-nproc.conf by adding - * soft nproc 10000 - -#### Increase the number of TCP socket ports available -This is particularly important if your flow will be setting up and tearing down a large number of sockets in small period of time. - - sudo sysctl -w net.ipv4.ip_local_port_range="10000 65000" - -#### Set how long sockets stay in a TIMED_WAIT state when closed -You don't want your sockets to sit and linger too long given that you want to be able to quickly setup and teardown new sockets. It is a good idea to read more about -it but to adjust do something like - - sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait="1" - - -#### Tell Linux you never want NiFi to swap -Swapping is fantastic for some applications. It isn't good for something like -NiFi that always wants to be running. To tell Linux you'd like swapping off you -can edit '/etc/sysctl.conf' to add the following line - - vm.swappiness = 0 - -#### Disable partition atime -For the partitions handling the various NiFi repos turn off things like 'atime'. -Doing so can cause a surprising bump in throughput. Edit the '/etc/fstab' file -and for the partition(s) of interest add the 'noatime' option. - -#### Additional guidance -Additional information on system administration and settings can be located in our [Administrator's Guide][adminguide]. - -### Build steps - -1. You need a recent Java 7 (or newer) JDK. -2. You need Apache [Maven 3.X][maven]. We've successfully used 3.2.3 and as far back as 3.0.5 -3. Ensure your MAVEN_OPTS provides sufficient memory. Some build steps are fairly memory intensive - - These settings have worked well `MAVEN_OPTS="-Xms1024m -Xmx3076m -XX:MaxPermSize=256m"` -4. Build the nifi parent. In the root dir of the source tree cd to `nifi-parent`. - Run `mvn clean install` -5. Build the nifi nar maven plugin. In the root dir of the source tree cd to `nifi-nar-maven-plugin`. - Run `mvn clean install` -6. Build the entire code base. In the root dir of the source tree cd to `nifi` and run `mvn -T C2.0 clean install` - You can tweak the maven build settings as you like but the previous command will execute with 2 threads per core. - -Now you should have a fully functioning build off the latest code in the develop branch. - -## Running the application - -#### ** WARNING ** - -Without any configuration, the application will run on port 8080 and does not require any credentials to modify -the flow. This means of running Apache NiFi should be used only for development/testing and in an environment where only -connections from trusted computers and users can connect to port 8080. Using iptables to allow only localhost connections -to 8080 is a good start, but on systems with multiple (potentially untrusted) users, also not a sufficient protection. - -#### Decompress and launch - -Running the above build will create a tar.gz (and zip) file in `nifi/nifi-assembly/target`. This tar.gz should -contain the full application. Decompressing the tar.gz should make a directory for you containing several other -directories. `conf` contains application configuration, `bin` contains scripts -for launching the application. On linux and OSX, NiFi can be run using `bin/nifi.sh ` where -`` is one of: - -+ start: starts NiFi in the background -+ stop: stops NiFi that is running in the background -+ status: provides the current status of NiFi -+ run: runs NiFi in the foreground and waits to receive a Ctrl-C, which then shuts down NiFi. -+ install: (available in Linux only, not OSX): installs NiFi as a service that can then be controlled -via `service nifi start`, `service nifi stop`, `service nifi status`. - - -For Windows users, there exist several scripts in the `bin` directory that are analogous to those above: -`start-nifi.bat`, `stop-nifi.bat`, `nifi-status.bat`, and `run-nifi.bat`. - -The configuration that is to be used when launching NiFi, such as Java heap size, the user -to run as, which Java command to use, etc. are configurable via the `conf/bootstrap.conf` file. - -The entire concept of how the application will integrate to a given OS and run as an -enduring service is something we're working hard on and would appreciate ideas for. The user experience needs to -be excellent. - -With the default settings you can point a web browser at `http://localhost:8080/nifi/` - -Logging is configured by default to log to `./logs/nifi-app.log`. The following log message should indicate the web ui -is ready for use: - - 2014-12-09 00:42:03,540 INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs: - -[adminguide]: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html -[maven]: http://maven.apache.org/ -[jira]: https://issues.apache.org/jira/browse/NIFI -[git]: http://git-scm.com/ -[gitbrowse]: https://git-wip-us.apache.org/repos/asf?p=nifi.git;a=summary -[gitrepo]: http://git-wip-us.apache.org/repos/asf/nifi.git -[githubrepo]: https://github.com/apache/nifi - diff --git a/nifi-site/src/pages/markdown/release-guide.md b/nifi-site/src/pages/markdown/release-guide.md deleted file mode 100644 index ed46c0d781..0000000000 --- a/nifi-site/src/pages/markdown/release-guide.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -title: Apache NiFi Release Guidelines ---- - -# Apache NiFi Release Guidelines - -The purpose of this document is to capture and describe the steps involved in producing -an official release of Apache NiFi. It is written specifically to someone acting in the -capacity of a [Release Manager][release-manager] (RM). - -## Background Material - - - These documents are necessary for all committers to be familiar with - - [Apache License V2.0][apache-license] - - [Apache Legal License/Resolved][apache-legal-resolve] - - [Apache How-to Apply License][apache-license-apply] - - - These documents are necessary for someone acting as the RM - - [Apache Encryption Software / ECCN Info][apache-encryption] - - [Apache Release Policy][apache-release-policy] - - [Apache Release Guide][apache-release-guide] - - - These documents are helpful for general environmental setup to perform releases - - [Apache PGP Info][apache-pgp] - - [Apache Release Signing][apache-release-signing] - - [Apache Guide to publish Maven Artifacts][apache-guide-publish-maven] - -## The objective - -Our aim is to produce an official Apache release. -The following is a list of the sorts of things that will be validated and are the basics to check -when evaluating a release for a vote. - -## What to validate and how to Validate a release - - - Are LICENSE and NOTICE file present in the source root and complete? - - Specifically look in the *-sources.zip artifact and ensure these items are present at the root of the archive. - - Evaluate the sources and dependencies. Does the overall LICENSE and NOTICE appear correct? Do all licenses fit within the ASF approved licenses? - - Here is an example path to a sources artifact: - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip` - - Is there a README available that explains how to build the application and to execute it? - - Look in the *-sources.zip artifact root for the readme. - - Are the signatures and hashes correct for the source release? - - Validate the hashes of the sources artifact do in fact match: - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip.md5` - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip.sha1` - - Validate the signature of the source artifact. Here is an example path: - - `https://repository.apache.org/service/local/repositories/orgapachenifi-1011/content/org/apache/nifi/nifi/0.0.1/nifi-0.0.1-source-release.zip.asc` - - Need a quick reminder on how to [verify a signature](http://www.apache.org/dev/release-signing.html#verifying-signature)? - - Do all sources have necessary headers? - - Unzip the sources file into a directory and execute `mvn install -Pcontrib-check` - - Are there no unexpected binary files in the release? - - The only thing we'd expect would be potentially test resources files. - - Does the app (if appropriate) execute and function as expected? - -## The flow of a release (an outline) - - The community is contributing to a series of JIRA tickets assigned to the next release - - The number of tickets open/remaining for that next release approaches zero - - A member of the community suggests a release and initiates a discussion - - Someone volunteers to be an RM for the release (can be a committer but apache guides indicate preference is a PMC member) - - A release candidate is put together and a vote sent to the team. - - If the NiFi community rejects the vote the issues noted are resolved and another RC is generated - - If the NiFi community accepts the vote then the release is 'releasable' and can be placed into the appropriate 'dist' location, maven artifacts released from staging. - -## The mechanics of the release - -### Prepare your environment - -Follow the steps outlined in the [Quickstart Guide][quickstart-guide] - -``` -At this point you're on the latest 'develop' branch and are able to build the entire application -``` -
        -Create a JIRA ticket for the release tasks and use that ticket number for the commit messages. For example we'll consider NIFI-270 as our ticket. Also -have in mind the release version you are planning for. For example we'll consider '0.0.1'. - -Create the next version in JIRA if necessary so develop work can continue towards that release. - -Create new branch off develop named after the JIRA ticket or just use the develop branch itself. Here we'll use a branch off of develop with -`git checkout -b NIFI-270-RC1` - -Change directory into that of the project you wish to release. For example `cd nifi` - -Verify that Maven has sufficient heap space to perform the build tasks. Some plugins and parts of the build -consumes a surprisingly large amount of space. These settings have been shown to -work `MAVEN_OPTS="-Xms1024m -Xmx3076m -XX:MaxPermSize=256m"` - -Ensure your settings.xml has been updated as shown below. There are other ways to ensure your PGP key is available for signing as well - -``` - ... - - signed_release - - forked-path - YOUR GPG KEY ID HERE - YOUR GPG PASSPHRASE HERE - - - ... - - - repository.apache.org - YOUR USER NAME HERE - YOUR MAVEN ENCRYPTED PASSWORD HERE - - - ... -``` - -Ensure the the full application build and tests all work by executing -`mvn -T 2.5C clean install` for a parallel build. Once that completes you can -startup and test the application by `cd nifi-assembly/target` then run `bin/nifi.sh start` in the nifi build. -The application should be up and running in a few seconds at `http://localhost:8080/nifi` - -Evaluate and ensure the appropriate license headers are present on all source files. Ensure LICENSE and NOTICE files are complete and accurate. -Developers should always be keeping these up to date as they go along adding source and modifying dependencies to keep this burden manageable. -This command `mvn install -Pcontrib-check` should be run as well to help validate. If that doesn't complete cleanly it must be addressed. - -Now its time to have maven prepare the release so execute `mvn release:prepare -Psigned_release -DscmCommentPrefix="NIFI-270-RC1 " -Darguments="-DskipTests"`. -Maven will ask: - -`What is the release version for "Apache NiFi"? (org.apache.nifi:nifi) 0.0.1: :` - -Just hit enter to accept the default. - -Maven will then ask: - -`What is SCM release tag or label for "Apache NiFi"? (org.apache.nifi:nifi) nifi-0.0.1: : ` - -Enter `nifi-0.0.1-RC1` or whatever the appropriate release candidate (RC) number is. -Maven will then ask: - -`What is the new development version for "Apache NiFi"? (org.apache.nifi:nifi) 0.0.2-SNAPSHOT: :` - -Just hit enter to accept the default. - -Now that preparation went perfectly it is time to perform the release and deploy artifacts to staging. To do that execute - -`mvn release:perform -Psigned_release -DscmCommentPrefix="NIFI-270-RC1 " -Darguments="-DskipTests"` - -That will complete successfully and this means the artifacts have been released to the Apache Nexus staging repository. You will see something like - -` [INFO] * Closing staging repository with ID "orgapachenifi-1011".` - -So if you browse to `https://repository.apache.org/#stagingRepositories` login with your Apache committer credentials and you should see `orgapachenifi-1011`. If you click on that you can inspect the various staged artifacts. - -Validate that all the various aspects of the staged artifacts appear correct - - - Download the sources. Do they compile cleanly? If the result is a build does it execute? - - Validate the hashes match. - - Validate that the sources contain no unexpected binaries. - - Validate the signature for the build and hashes. - - Validate the LICENSE/NOTICE/Headers. - - Validate that the README is present and provides sufficient information to build and if necessary execute. - -If all looks good then push the branch to origin `git push origin NIFI-270` - -If it is intended that convenience binaries will be provided for this release then the community has requested that -a copy it be made available for reviewing of the release candidate. The convenience binary, its hashes, and signature - should be placed here: - - https://dist.apache.org/repos/dist/dev/nifi - -If anything isn't correct about the staged artifacts you can drop the staged repo from repository.apache.org and delete the -local tag in git. If you also delete the local branch and clear your local maven repository under org/apache/nifi then it is -as if the release never happened. Before doing that though try to figure out what went wrong. So as described here you see -that you can pretty easily test the release process until you get it right. The `mvn versions:set ` and `mvn versions:commit ` -commands can come in handy to help do this so you can set versions to something clearly release test related. - -Now it's time to initiate a vote within the NiFi community. Send the vote request to `dev@nifi.apache.org` -with a subject of `[VOTE] Release Apache NiFi 0.0.1`. The following template can be used: - -``` -Hello -I am pleased to be calling this vote for the source release of Apache NiFi -nifi-0.0.1. - -The source zip, including signatures, digests, etc. can be found at: -https://repository.apache.org/content/repositories/orgapachenifi-1011 - -The Git tag is nifi-0.0.1-RC1 -The Git commit ID is 72abf18c2e045e9ef404050e2bffc9cef67d2558 -https://git-wip-us.apache.org/repos/asf?p=nifi.git;a=commit;h=72abf18c2e045e9ef404050e2bffc9cef67d2558 - -Checksums of nifi-0.0.1-source-release.zip: -MD5: 5a580756a17b0573efa3070c70585698 -SHA1: a79ff8fd0d2f81523b675e4c69a7656160ff1214 - -Release artifacts are signed with the following key: -https://people.apache.org/keys/committer/joewitt.asc - -KEYS file available here: -https://dist.apache.org/repos/dist/release/nifi/KEYS - -8 issues were closed/resolved for this release: -https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12329307 - -The vote will be open for 72 hours. -Please download the release candidate and evaluate the necessary items including checking hashes, signatures, build from source, and test. The please vote: - -[ ] +1 Release this package as nifi-0.0.1 -[ ] +0 no opinion -[ ] -1 Do not release this package because because... -``` -
        -A release vote is majority rule. So wait 72 hours and see if there are at least 3 binding (PMC members) +1 votes and no more negative votes than positive. -If the vote passes then send a vote result email. Send the email to `dev@nifi.apache.org` -with a subject of `[RESULT][VOTE] Release Apache NiFi 0.0.1`. Use a template such as: - -``` -Hello - -The release passes with - -X +1 (binding) votes -Y -1 (binding) votes - -Thanks to all who helped make this release possible. - -Here is the PMC vote thread: [INSERT URL OF PMC Vote Thread] -``` -
        -Now all the voting is done and the release is good to go. - -Here are the steps of the release once the release is approved: - -1. Upload source-release artifacts to dist. If the release version is 0.0.1 then upload them (zip, asc, md5, sha1) to -`https://dist.apache.org/repos/dist/release/nifi/0.0.1` - -2. To produce binary convenience release build the application from the raw source in staging. For each binary convenience artifact: - - Generate ascii armored detached signature by running `gpg -a -b nifi-0.0.1-bin.tar.gz` - - Generate md5 hash summary by running `md5sum nifi-0.0.1-bin.tar.gz | awk '{ printf substr($0,0,32)}' > nifi-0.0.1-bin.tar.gz.md5` - - Generate sha1 hash summary by running `sha1sum nifi-0.0.1-bin.tar.gz | awk '{ printf substr($0,0,40)}' > nifi-0.0.1-bin.tar.gz.sha1` - - Upload the bin, asc, sha1, md5 for each binary convenience build to the same location as the source release - -3. In repository.apache.org go to the staging repository and select `release` and follow instructions on the site. - -4. Merge the release branch into master - -5. Merge the release branch into develop - -6. Update the NiFi website to point to the new download(s) - -7. Update the NiFi Web Page to indicate NEWS of the release as appropriate - -8. In Jira mark the release version as 'Released' and 'Archived' through 'version' management in the 'administration' console. - -9. Wait 24 hours then send release announcement. - - See [here][release-announce] for an understanding of why you need to wait 24 hours - - Then create an announcement like the one shown below addressed to 'announce@apache.org, dev@nifi..apache.org' with a reply-to of 'dev@nifi.apache.org'. - - The email has to be sent from an apache.org email address and should be by the release manager of the build. - -``` -SUBJECT: [ANNOUNCE] Apache NiFi 0.0.2 release -BODY: -Hello - -The Apache NiFi team would like to announce the release of Apache NiFi 0.0.2. - -Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. Apache NiFi was made for dataflow. It supports highly configurable directed graphs of data routing, transformation, and system mediation logic. - -More details on Apache NiFi can be found here: -http://nifi.apache.org/ - -The release artifacts can be downloaded from here: -http://nifi.apache.org/download.html - -Maven artifacts have been made available here: -https://repository.apache.org/content/repositories/releases/org/apache/nifi/ - -Release notes available here: -https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316020&version=12329373 - -Thank you -The Apache NiFi team - -``` - -[quickstart-guide]: http://nifi.apache.org/quickstart.html -[release-manager]: http://www.apache.org/dev/release-publishing.html#release_manager -[release-announce]: http://www.apache.org/dev/release.html#release-announcements -[apache-license]: http://apache.org/licenses/LICENSE-2.0 -[apache-license-apply]: http://www.apache.org/dev/apply-license.html -[apache-legal-resolve]: http://www.apache.org/legal/resolved.html -[apache-encryption]: http://www.apache.org/licenses/exports/ -[apache-release-policy]: http://www.apache.org/dev/release.html -[apache-release-guide]: http://www.apache.org/dev/release-publishing -[apache-pgp]: http://www.apache.org/dev/openpgp.html -[apache-release-signing]: http://www.apache.org/dev/release-signing.html -[apache-guide-publish-maven]: http://www.apache.org/dev/publishing-maven-artifacts.html diff --git a/nifi-site/src/scss/_settings.scss b/nifi-site/src/scss/_settings.scss deleted file mode 100644 index e66a214fc9..0000000000 --- a/nifi-site/src/scss/_settings.scss +++ /dev/null @@ -1,1465 +0,0 @@ -// Foundation by ZURB -// foundation.zurb.com -// Licensed under MIT Open Source - -// - -// Table of Contents -// Foundation Settings -// -// a. Base -// b. Grid -// c. Global -// d. Media Query Ranges -// e. Typography -// 01. Accordion -// 02. Alert Boxes -// 03. Block Grid -// 04. Breadcrumbs -// 05. Buttons -// 06. Button Groups -// 07. Clearing -// 08. Dropdown -// 09. Dropdown Buttons -// 10. Flex Video -// 11. Forms -// 12. Icon Bar -// 13. Inline Lists -// 14. Joyride -// 15. Keystrokes -// 16. Labels -// 17. Magellan -// 18. Off-canvas -// 19. Orbit -// 20. Pagination -// 21. Panels -// 22. Pricing Tables -// 23. Progress Bar -// 24. Range Slider -// 25. Reveal -// 26. Side Nav -// 27. Split Buttons -// 28. Sub Nav -// 29. Switch -// 30. Tables -// 31. Tabs -// 32. Thumbnails -// 33. Tooltips -// 34. Top Bar -// 36. Visibility Classes - -// a. Base -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// This is the default html and body font-size for the base rem value. -// $rem-base: 16px; - -// Allows the use of rem-calc() or lower-bound() in your settings -@import "foundation/functions"; - -// The default font-size is set to 100% of the browser style sheet (usually 16px) -// for compatibility with browser-based text zoom or user-set defaults. - -// Since the typical default browser font-size is 16px, that makes the calculation for grid size. -// If you want your base font-size to be different and not have it affect the grid breakpoints, -// set $rem-base to $base-font-size and make sure $base-font-size is a px value. -// $base-font-size: 100%; - -// The $base-font-size is 100% while $base-line-height is 150% -// $base-line-height: 150%; - -// We use this to control whether or not CSS classes come through in the gem files. -$include-html-classes: true; -// $include-print-styles: true; -$include-html-global-classes: $include-html-classes; - -// b. Grid -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-grid-classes: $include-html-classes; -// $include-xl-html-grid-classes: false; - -// $row-width: rem-calc(1000); -// $total-columns: 12; -// $column-gutter: rem-calc(30); - -// c. Global -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// We use these to define default font stacks -// $font-family-sans-serif: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; -// $font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif; -// $font-family-monospace: Consolas, "Liberation Mono", Courier, monospace; - -// We use these to define default font weights -// $font-weight-normal: normal !default; -$font-weight-bold: bold !default; - -// $white : #FFFFFF; -// $ghost : #FAFAFA; -// $snow : #F9F9F9; -// $vapor : #F6F6F6; -// $white-smoke : #F5F5F5; -// $silver : #EFEFEF; -// $smoke : #EEEEEE; -// $gainsboro : #DDDDDD; -// $iron : #CCCCCC; -// $base : #AAAAAA; -// $aluminum : #999999; -// $jumbo : #888888; -// $monsoon : #777777; -// $steel : #666666; -// $charcoal : #555555; -// $tuatara : #444444; -// $oil : #333333; -// $jet : #222222; -// $black : #000000; - -// We use these as default colors throughout -// $primary-color: #008CBA; -// $secondary-color: #e7e7e7; -// $alert-color: #f04124; -// $success-color: #43AC6A; -// $warning-color: #f08a24; -// $info-color: #a0d3e8; - -// We use these to control various global styles -// $body-bg: $white; -// $body-font-color: $jet; -// $body-font-family: $font-family-sans-serif; -// $body-font-weight: $font-weight-normal; -// $body-font-style: normal; - -// We use this to control font-smoothing -// $font-smoothing: antialiased; - -// We use these to control text direction settings -// $text-direction: ltr; -// $opposite-direction: right; -// $default-float: left; -// $last-child-float: $opposite-direction; - -// We use these to make sure border radius matches unless we want it different. -// $global-radius: 3px; -// $global-rounded: 1000px; - -// We use these to control inset shadow shiny edges and depressions. -// $shiny-edge-size: 0 1px 0; -// $shiny-edge-color: rgba($white, .5); -// $shiny-edge-active-color: rgba($black, .2); - -// d. Media Query Ranges -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $small-range: (0em, 40em); -// $medium-range: (40.063em, 64em); -// $large-range: (64.063em, 90em); -// $xlarge-range: (90.063em, 120em); -// $xxlarge-range: (120.063em, 99999999em); - -// $screen: "only screen"; - -// $landscape: "#{$screen} and (orientation: landscape)"; -// $portrait: "#{$screen} and (orientation: portrait)"; - -// $small-up: $screen; -// $small-only: "#{$screen} and (max-width: #{upper-bound($small-range)})"; - -// $medium-up: "#{$screen} and (min-width:#{lower-bound($medium-range)})"; -// $medium-only: "#{$screen} and (min-width:#{lower-bound($medium-range)}) and (max-width:#{upper-bound($medium-range)})"; - -// $large-up: "#{$screen} and (min-width:#{lower-bound($large-range)})"; -// $large-only: "#{$screen} and (min-width:#{lower-bound($large-range)}) and (max-width:#{upper-bound($large-range)})"; - -// $xlarge-up: "#{$screen} and (min-width:#{lower-bound($xlarge-range)})"; -// $xlarge-only: "#{$screen} and (min-width:#{lower-bound($xlarge-range)}) and (max-width:#{upper-bound($xlarge-range)})"; - -// $xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})"; -// $xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})"; - -// Legacy -// $small: $medium-up; -// $medium: $medium-up; -// $large: $large-up; - -// We use this as cursors values for enabling the option of having custom cursors in the whole site's stylesheet -// $cursor-crosshair-value: crosshair; -// $cursor-default-value: default; -// $cursor-pointer-value: pointer; -// $cursor-help-value: help; -// $cursor-text-value: text; - -// e. Typography -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-type-classes: $include-html-classes; - -// We use these to control header font styles -// $header-font-family: $body-font-family; -$header-font-family: 'Oswald', sans-serif; -// $header-font-weight: $font-weight-normal; -// $header-font-style: normal; -// $header-font-color: $jet; -// $header-line-height: 1.4; -// $header-top-margin: .2rem; -// $header-bottom-margin: .5rem; -// $header-text-rendering: optimizeLegibility; - -// We use these to control header font sizes -// $h1-font-size: rem-calc(44); -// $h2-font-size: rem-calc(37); -// $h3-font-size: rem-calc(27); -// $h4-font-size: rem-calc(23); -// $h5-font-size: rem-calc(18); -// $h6-font-size: 1rem; - -// We use these to control header size reduction on small screens -// $h1-font-reduction: rem-calc(10) !default; -// $h2-font-reduction: rem-calc(10) !default; -// $h3-font-reduction: rem-calc(5) !default; -// $h4-font-reduction: rem-calc(5) !default; -// $h5-font-reduction: 0 !default; -// $h6-font-reduction: 0 !default; - -// These control how subheaders are styled. -// $subheader-line-height: 1.4; -// $subheader-font-color: scale-color($header-font-color, $lightness: 35%); -// $subheader-font-weight: $font-weight-normal; -// $subheader-top-margin: .2rem; -// $subheader-bottom-margin: .5rem; - -// A general styling -// $small-font-size: 60%; -// $small-font-color: scale-color($header-font-color, $lightness: 35%); - -// We use these to style paragraphs -// $paragraph-font-family: inherit; -// $paragraph-font-weight: $font-weight-normal; -// $paragraph-font-size: 1rem; -// $paragraph-line-height: 1.6; -// $paragraph-margin-bottom: rem-calc(20); -// $paragraph-aside-font-size: rem-calc(14); -// $paragraph-aside-line-height: 1.35; -// $paragraph-aside-font-style: italic; -// $paragraph-text-rendering: optimizeLegibility; - -// We use these to style tags -// $code-color: $oil; -// $code-font-family: $font-family-monospace; -// $code-font-weight: $font-weight-normal; -// $code-background-color: scale-color($secondary-color, $lightness: 70%); -// $code-border-size: 1px; -// $code-border-style: solid; -// $code-border-color: scale-color($code-background-color, $lightness: -10%); -// $code-padding: rem-calc(2) rem-calc(5) rem-calc(1); -/*$code-color: scale-color($alert-color, $lightness: -27%);*/ -$code-color: #333; -$code-font-family: Consolas, Liberation Mono, Courier, monospace; -$code-font-weight: bold; -$code-border-size: 0px; -$code-font-weight: normal; - -// We use these to style anchors -// $anchor-text-decoration: none; -// $anchor-text-decoration-hover: none; -// $anchor-font-color: $primary-color; -$anchor-font-color: #396877; -// $anchor-font-color-hover: scale-color($primary-color, $lightness: -14%); -$anchor-font-color-hover: #264c58; - -// We use these to style the
        element -// $hr-border-width: 1px; -// $hr-border-style: solid; -// $hr-border-color: $gainsboro; -// $hr-margin: rem-calc(20); - -// We use these to style lists -// $list-font-family: $paragraph-font-family; -// $list-font-size: $paragraph-font-size; -// $list-line-height: $paragraph-line-height; -// $list-margin-bottom: $paragraph-margin-bottom; -// $list-style-position: outside; -// $list-side-margin: 1.1rem; -$list-side-margin: 2.0rem; -// $list-ordered-side-margin: 1.4rem; -// $list-side-margin-no-bullet: 0; -// $list-nested-margin: rem-calc(20); -// $definition-list-header-weight: $font-weight-bold; -// $definition-list-header-margin-bottom: .3rem; -// $definition-list-margin-bottom: rem-calc(12); - -// We use these to style blockquotes -// $blockquote-font-color: scale-color($header-font-color, $lightness: 35%); -// $blockquote-padding: rem-calc(9 20 0 19); -// $blockquote-border: 1px solid $gainsboro; -// $blockquote-cite-font-size: rem-calc(13); -// $blockquote-cite-font-color: scale-color($header-font-color, $lightness: 23%); -// $blockquote-cite-link-color: $blockquote-cite-font-color; - -// Acronym styles -// $acronym-underline: 1px dotted $gainsboro; - -// We use these to control padding and margin -// $microformat-padding: rem-calc(10 12); -// $microformat-margin: rem-calc(0 0 20 0); - -// We use these to control the border styles -// $microformat-border-width: 1px; -// $microformat-border-style: solid; -// $microformat-border-color: $gainsboro; - -// We use these to control full name font styles -// $microformat-fullname-font-weight: $font-weight-bold; -// $microformat-fullname-font-size: rem-calc(15); - -// We use this to control the summary font styles -// $microformat-summary-font-weight: $font-weight-bold; - -// We use this to control abbr padding -// $microformat-abbr-padding: rem-calc(0 1); - -// We use this to control abbr font styles -// $microformat-abbr-font-weight: $font-weight-bold; -// $microformat-abbr-font-decoration: none; - -// 01. Accordion -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-accordion-classes: $include-html-classes; - -// $accordion-navigation-padding: rem-calc(16); -// $accordion-navigation-bg-color: $silver; -// $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%); -// $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%); -// $accordion-navigation-font-color: $jet; -// $accordion-navigation-font-size: rem-calc(16); -// $accordion-navigation-font-family: $body-font-family; - -// $accordion-content-padding: ($column-gutter/2); -// $accordion-content-active-bg-color: $white; - -// 02. Alert Boxes -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-alert-classes: $include-html-classes; - -// We use this to control alert padding. -// $alert-padding-top: rem-calc(14); -// $alert-padding-default-float: $alert-padding-top; -// $alert-padding-opposite-direction: $alert-padding-top + rem-calc(10); -// $alert-padding-bottom: $alert-padding-top; - -// We use these to control text style. -// $alert-font-weight: $font-weight-normal; -// $alert-font-size: rem-calc(13); -// $alert-font-color: $white; -// $alert-font-color-alt: scale-color($secondary-color, $lightness: -66%); - -// We use this for close hover effect. -// $alert-function-factor: -14%; - -// We use these to control border styles. -// $alert-border-style: solid; -// $alert-border-width: 1px; -// $alert-border-color: scale-color($primary-color, $lightness: $alert-function-factor); -// $alert-bottom-margin: rem-calc(20); - -// We use these to style the close buttons -// $alert-close-color: $oil; -// $alert-close-top: 50%; -// $alert-close-position: rem-calc(4); -// $alert-close-font-size: rem-calc(22); -// $alert-close-opacity: 0.3; -// $alert-close-opacity-hover: 0.5; -// $alert-close-padding: 9px 6px 4px; - -// We use this to control border radius -// $alert-radius: $global-radius; - -// We use this to control transition effects -// $alert-transition-speed: 300ms; -// $alert-transition-ease: ease-out; - -// 03. Block Grid -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-block-grid-classes: $include-html-classes; -// $include-xl-html-block-grid-classes: false; - -// We use this to control the maximum number of block grid elements per row -// $block-grid-elements: 12; -// $block-grid-default-spacing: rem-calc(20); -// $align-block-grid-to-grid: false; - -// Enables media queries for block-grid classes. Set to false if writing semantic HTML. -// $block-grid-media-queries: true; - -// 04. Breadcrumbs -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-nav-classes: $include-html-classes; - -// We use this to set the background color for the breadcrumb container. -// $crumb-bg: scale-color($secondary-color, $lightness: 55%); - -// We use these to set the padding around the breadcrumbs. -// $crumb-padding: rem-calc(9 14 9); -// $crumb-side-padding: rem-calc(12); - -// We use these to control border styles. -// $crumb-function-factor: -10%; -// $crumb-border-size: 1px; -// $crumb-border-style: solid; -// $crumb-border-color: scale-color($crumb-bg, $lightness: $crumb-function-factor); -// $crumb-radius: $global-radius; - -// We use these to set various text styles for breadcrumbs. -// $crumb-font-size: rem-calc(11); -// $crumb-font-color: $primary-color; -// $crumb-font-color-current: $oil; -// $crumb-font-color-unavailable: $aluminum; -// $crumb-font-transform: uppercase; -// $crumb-link-decor: underline; - -// We use these to control the slash between breadcrumbs -// $crumb-slash-color: $base; -// $crumb-slash: "/"; - -// 05. Buttons -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-button-classes: $include-html-classes; - -// We use these to build padding for buttons. -// $button-tny: rem-calc(10); -// $button-sml: rem-calc(14); -// $button-med: rem-calc(16); -// $button-lrg: rem-calc(18); - -// We use this to control the display property. -// $button-display: inline-block; -// $button-margin-bottom: rem-calc(20); - -// We use these to control button text styles. -// $button-font-family: $body-font-family; -// $button-font-color: $white; -// $button-font-color-alt: $oil; -// $button-font-tny: rem-calc(11); -// $button-font-sml: rem-calc(13); -// $button-font-med: rem-calc(16); -// $button-font-lrg: rem-calc(20); -// $button-font-weight: $font-weight-normal; -// $button-font-align: center; - -// We use these to control various hover effects. -// $button-function-factor: -20%; - -// We use these to control button border and hover styles. -// $button-border-width: 0px; -// $button-border-style: solid; -// $button-bg-color: $primary-color; -// $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor); -// $button-border-color: $button-bg-hover; -// $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor); -// $secondary-button-border-color: $secondary-button-bg-hover; -// $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor); -// $success-button-border-color: $success-button-bg-hover; -// $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor); -// $alert-button-border-color: $alert-button-bg-hover; - -// We use this to set the default radius used throughout the core. -// $button-radius: $global-radius; -// $button-round: $global-rounded; - -// We use this to set default opacity and cursor for disabled buttons. -// $button-disabled-opacity: 0.7; -// $button-disabled-cursor: $cursor-default-value; - -// 06. Button Groups -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-button-classes: $include-html-classes; - -// Sets the margin for the right side by default, and the left margin if right-to-left direction is used -// $button-bar-margin-opposite: rem-calc(10); -// $button-group-border-width: 1px; - -// 07. Clearing -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-clearing-classes: $include-html-classes; - -// We use these to set the background colors for parts of Clearing. -// $clearing-bg: $oil; -// $clearing-caption-bg: $clearing-bg; -// $clearing-carousel-bg: rgba(51,51,51,0.8); -// $clearing-img-bg: $clearing-bg; - -// We use these to style the close button -// $clearing-close-color: $iron; -// $clearing-close-size: 30px; - -// We use these to style the arrows -// $clearing-arrow-size: 12px; -// $clearing-arrow-color: $clearing-close-color; - -// We use these to style captions -// $clearing-caption-font-color: $iron; -// $clearing-caption-font-size: 0.875em; -// $clearing-caption-padding: 10px 30px 20px; - -// We use these to make the image and carousel height and style -// $clearing-active-img-height: 85%; -// $clearing-carousel-height: 120px; -// $clearing-carousel-thumb-width: 120px; -// $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255); - -// 08. Dropdown -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-dropdown-classes: $include-html-classes; - -// We use these to controls height and width styles. -// $f-dropdown-max-width: 200px; -// $f-dropdown-height: auto; -// $f-dropdown-max-height: none; - -// Used for bottom position -// $f-dropdown-margin-top: 2px; - -// Used for right position -// $f-dropdown-margin-left: $f-dropdown-margin-top; - -// Used for left position -// $f-dropdown-margin-right: $f-dropdown-margin-top; - -// Used for top position -// $f-dropdown-margin-bottom: $f-dropdown-margin-top; - -// We use this to control the background color -// $f-dropdown-bg: $white; - -// We use this to set the border styles for dropdowns. -// $f-dropdown-border-style: solid; -// $f-dropdown-border-width: 1px; -// $f-dropdown-border-color: scale-color($white, $lightness: -20%); - -// We use these to style the triangle pip. -// $f-dropdown-triangle-size: 6px; -// $f-dropdown-triangle-color: $white; -// $f-dropdown-triangle-side-offset: 10px; - -// We use these to control styles for the list elements. -// $f-dropdown-list-style: none; -// $f-dropdown-font-color: $charcoal; -// $f-dropdown-font-size: rem-calc(14); -// $f-dropdown-list-padding: rem-calc(5, 10); -// $f-dropdown-line-height: rem-calc(18); -// $f-dropdown-list-hover-bg: $smoke; -// $dropdown-mobile-default-float: 0; - -// We use this to control the styles for when the dropdown has custom content. -// $f-dropdown-content-padding: rem-calc(20); - -// Default radius for dropdown. -// $f-dropdown-radius: $global-radius; - - -// 09. Dropdown Buttons -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-button-classes: $include-html-classes; - -// We use these to set the color of the pip in dropdown buttons -// $dropdown-button-pip-color: $white; -// $dropdown-button-pip-color-alt: $oil; - -// $button-pip-tny: rem-calc(6); -// $button-pip-sml: rem-calc(7); -// $button-pip-med: rem-calc(9); -// $button-pip-lrg: rem-calc(11); - -// We use these to style tiny dropdown buttons -// $dropdown-button-padding-tny: $button-pip-tny * 7; -// $dropdown-button-pip-size-tny: $button-pip-tny; -// $dropdown-button-pip-opposite-tny: $button-pip-tny * 3; -// $dropdown-button-pip-top-tny: (-$button-pip-tny / 2) + rem-calc(1); - -// We use these to style small dropdown buttons -// $dropdown-button-padding-sml: $button-pip-sml * 7; -// $dropdown-button-pip-size-sml: $button-pip-sml; -// $dropdown-button-pip-opposite-sml: $button-pip-sml * 3; -// $dropdown-button-pip-top-sml: (-$button-pip-sml / 2) + rem-calc(1); - -// We use these to style medium dropdown buttons -// $dropdown-button-padding-med: $button-pip-med * 6 + rem-calc(3); -// $dropdown-button-pip-size-med: $button-pip-med - rem-calc(3); -// $dropdown-button-pip-opposite-med: $button-pip-med * 2.5; -// $dropdown-button-pip-top-med: (-$button-pip-med / 2) + rem-calc(2); - -// We use these to style large dropdown buttons -// $dropdown-button-padding-lrg: $button-pip-lrg * 5 + rem-calc(3); -// $dropdown-button-pip-size-lrg: $button-pip-lrg - rem-calc(6); -// $dropdown-button-pip-opposite-lrg: $button-pip-lrg * 2.5; -// $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3); - -// 10. Flex Video -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-media-classes: $include-html-classes; - -// We use these to control video container padding and margins -// $flex-video-padding-top: rem-calc(25); -// $flex-video-padding-bottom: 67.5%; -// $flex-video-margin-bottom: rem-calc(16); - -// We use this to control widescreen bottom padding -// $flex-video-widescreen-padding-bottom: 56.34%; - -// 11. Forms -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-form-classes: $include-html-classes; - -// We use this to set the base for lots of form spacing and positioning styles -// $form-spacing: rem-calc(16); - -// We use these to style the labels in different ways -// $form-label-pointer: pointer; -// $form-label-font-size: rem-calc(14); -// $form-label-font-weight: $font-weight-normal; -// $form-label-line-height: 1.5; -// $form-label-font-color: scale-color($black, $lightness: 30%); -// $form-label-small-transform: capitalize; -// $form-label-bottom-margin: 0; -// $input-font-family: inherit; -// $input-font-color: rgba(0,0,0,0.75); -// $input-font-size: rem-calc(14); -// $input-bg-color: $white; -// $input-focus-bg-color: scale-color($white, $lightness: -2%); -// $input-border-color: scale-color($white, $lightness: -20%); -// $input-focus-border-color: scale-color($white, $lightness: -40%); -// $input-border-style: solid; -// $input-border-width: 1px; -// $input-border-radius: $global-radius; -// $input-disabled-bg: $gainsboro; -// $input-disabled-cursor: $cursor-default-value; -// $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1); - -// We use these to style the fieldset border and spacing. -// $fieldset-border-style: solid; -// $fieldset-border-width: 1px; -// $fieldset-border-color: $gainsboro; -// $fieldset-padding: rem-calc(20); -// $fieldset-margin: rem-calc(18 0); - -// We use these to style the legends when you use them -// $legend-bg: $white; -// $legend-font-weight: $font-weight-bold; -// $legend-padding: rem-calc(0 3); - -// We use these to style the prefix and postfix input elements -// $input-prefix-bg: scale-color($white, $lightness: -5%); -// $input-prefix-border-color: scale-color($white, $lightness: -20%); -// $input-prefix-border-size: 1px; -// $input-prefix-border-type: solid; -// $input-prefix-overflow: hidden; -// $input-prefix-font-color: $oil; -// $input-prefix-font-color-alt: $white; - -// We use this setting to turn on/off HTML5 number spinners (the up/down arrows) -// $input-number-spinners: true; - -// We use these to style the error states for inputs and labels -// $input-error-message-padding: rem-calc(6 9 9); -// $input-error-message-top: -1px; -// $input-error-message-font-size: rem-calc(12); -// $input-error-message-font-weight: $font-weight-normal; -// $input-error-message-font-style: italic; -// $input-error-message-font-color: $white; -// $input-error-message-bg-color: $alert-color; -// $input-error-message-font-color-alt: $oil; - -// We use this to style the glowing effect of inputs when focused -// $input-include-glowing-effect: true; -// $glowing-effect-fade-time: 0.45s; -// $glowing-effect-color: $input-focus-border-color; - -// Select variables -// $select-bg-color: $ghost; -// $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%); - -// 12. Icon Bar -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// We use these to style the icon-bar and items -// $include-html-icon-bar-classes: $include-html-classes; -// $icon-bar-bg: $oil; -// $icon-bar-font-color: $white; -// $icon-bar-font-color-hover: $icon-bar-font-color; -// $icon-bar-font-size: 1rem; -// $icon-bar-hover-color: $primary-color; -// $icon-bar-icon-color: $white; -// $icon-bar-icon-color-hover: $icon-bar-icon-color; -// $icon-bar-icon-size: 1.875rem; -// $icon-bar-image-width: 1.875rem; -// $icon-bar-image-height: 1.875rem; -// $icon-bar-active-color: $primary-color; -// $icon-bar-item-padding: 1.25rem; - -// 13. Inline Lists -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-inline-list-classes: $include-html-classes; - -// We use this to control the margins and padding of the inline list. -// $inline-list-top-margin: 0; -// $inline-list-opposite-margin: 0; -// $inline-list-bottom-margin: rem-calc(17); -// $inline-list-default-float-margin: rem-calc(-22); -// $inline-list-default-float-list-margin: rem-calc(22); - -// $inline-list-padding: 0; - -// We use this to control the overflow of the inline list. -// $inline-list-overflow: hidden; - -// We use this to control the list items -// $inline-list-display: block; - -// We use this to control any elements within list items -// $inline-list-children-display: block; - -// 14. Joyride -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-joyride-classes: $include-html-classes; - -// Controlling default Joyride styles -// $joyride-tip-bg: $oil; -// $joyride-tip-default-width: 300px; -// $joyride-tip-padding: rem-calc(18 20 24); -// $joyride-tip-border: solid 1px $charcoal; -// $joyride-tip-radius: 4px; -// $joyride-tip-position-offset: 22px; - -// Here, we're setting the tip font styles -// $joyride-tip-font-color: $white; -// $joyride-tip-font-size: rem-calc(14); -// $joyride-tip-header-weight: $font-weight-bold; - -// This changes the nub size -// $joyride-tip-nub-size: 10px; - -// This adjusts the styles for the timer when its enabled -// $joyride-tip-timer-width: 50px; -// $joyride-tip-timer-height: 3px; -// $joyride-tip-timer-color: $steel; - -// This changes up the styles for the close button -// $joyride-tip-close-color: $monsoon; -// $joyride-tip-close-size: 24px; -// $joyride-tip-close-weight: $font-weight-normal; - -// When Joyride is filling the screen, we use this style for the bg -// $joyride-screenfill: rgba(0,0,0,0.5); - -// 15. Keystrokes -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-keystroke-classes: $include-html-classes; - -// We use these to control text styles. -// $keystroke-font: "Consolas", "Menlo", "Courier", monospace; -// $keystroke-font-size: inherit; -// $keystroke-font-color: $jet; -// $keystroke-font-color-alt: $white; -// $keystroke-function-factor: -7%; - -// We use this to control keystroke padding. -// $keystroke-padding: rem-calc(2 4 0); - -// We use these to control background and border styles. -// $keystroke-bg: scale-color($white, $lightness: $keystroke-function-factor); -// $keystroke-border-style: solid; -// $keystroke-border-width: 1px; -// $keystroke-border-color: scale-color($keystroke-bg, $lightness: $keystroke-function-factor); -// $keystroke-radius: $global-radius; - -// 16. Labels -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-label-classes: $include-html-classes; - -// We use these to style the labels -// $label-padding: rem-calc(4 8 4); -// $label-radius: $global-radius; - -// We use these to style the label text -// $label-font-sizing: rem-calc(11); -// $label-font-weight: $font-weight-normal; -// $label-font-color: $oil; -// $label-font-color-alt: $white; -// $label-font-family: $body-font-family; - -// 17. Magellan -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-magellan-classes: $include-html-classes; - -// $magellan-bg: $white; -// $magellan-padding: 0 !important; - -// 18. Off-canvas -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-off-canvas-classes: $include-html-classes; - -// $tabbar-bg: $oil; -// $tabbar-height: rem-calc(45); -// $tabbar-icon-width: $tabbar-height; -// $tabbar-line-height: $tabbar-height; -// $tabbar-color: $white; -// $tabbar-middle-padding: 0 rem-calc(10); - -// Off Canvas Divider Styles -// $tabbar-right-section-border: solid 1px scale-color($tabbar-bg, $lightness: 13%); -// $tabbar-left-section-border: solid 1px scale-color($tabbar-bg, $lightness: -50%); - -// Off Canvas Tab Bar Headers -// $tabbar-header-color: $white; -// $tabbar-header-weight: $font-weight-bold; -// $tabbar-header-line-height: $tabbar-height; -// $tabbar-header-margin: 0; - -// Off Canvas Menu Variables -// $off-canvas-width: rem-calc(250); -// $off-canvas-bg: $oil; -// $off-canvas-bg-hover: scale-color($tabbar-bg, $lightness: -30%); - -// Off Canvas Menu List Variables -// $off-canvas-label-padding: 0.3rem rem-calc(15); -// $off-canvas-label-color: $aluminum; -// $off-canvas-label-text-transform: uppercase; -// $off-canvas-label-font-size: rem-calc(12); -// $off-canvas-label-font-weight: $font-weight-bold; -// $off-canvas-label-bg: $tuatara; -// $off-canvas-label-border-top: 1px solid scale-color($tuatara, $lightness: 14%); -// $off-canvas-label-border-bottom: none; -// $off-canvas-label-margin:0; -// $off-canvas-link-padding: rem-calc(10, 15); -// $off-canvas-link-color: rgba($white, 0.7); -// $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%); -// $off-canvas-back-bg: $tuatara; -// $off-canvas-back-border-top: $off-canvas-label-border-top; -// $off-canvas-back-border-bottom: $off-canvas-label-border-bottom; -// $off-canvas-back-hover-bg: scale-color($off-canvas-back-bg, $lightness: -30%); -// $off-canvas-back-hover-border-top: 1px solid scale-color($off-canvas-label-bg, $lightness: 14%); -// $off-canvas-back-hover-border-bottom: none; - -// Off Canvas Menu Icon Variables -// $tabbar-menu-icon-color: $white; -// $tabbar-menu-icon-hover: scale-color($tabbar-menu-icon-color, $lightness: -30%); - -// $tabbar-menu-icon-text-indent: rem-calc(35); -// $tabbar-menu-icon-width: $tabbar-height; -// $tabbar-menu-icon-height: $tabbar-height; -// $tabbar-menu-icon-padding: 0; - -// $tabbar-hamburger-icon-width: rem-calc(16); -// $tabbar-hamburger-icon-left: false; -// $tabbar-hamburger-icon-top: false; -// $tabbar-hamburger-icon-thickness: 1px; -// $tabbar-hamburger-icon-gap: 6px; - -// Off Canvas Back-Link Overlay -// $off-canvas-overlay-transition: background 300ms ease; -// $off-canvas-overlay-cursor: pointer; -// $off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, 0.5), 4px 0 4px rgba($black, 0.5); -// $off-canvas-overlay-background: rgba($white, 0.2); -// $off-canvas-overlay-background-hover: rgba($white, 0.05); - -// Transition Variables -// $menu-slide: "transform 500ms ease"; - -// 19. Orbit -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-orbit-classes: $include-html-classes; - -// We use these to control the caption styles -// $orbit-container-bg: none; -// $orbit-caption-bg: rgba(51,51,51, 0.8); -// $orbit-caption-font-color: $white; -// $orbit-caption-font-size: rem-calc(14); -// $orbit-caption-position: "bottom"; // Supported values: "bottom", "under" -// $orbit-caption-padding: rem-calc(10 14); -// $orbit-caption-height: auto; - -// We use these to control the left/right nav styles -// $orbit-nav-bg: transparent; -// $orbit-nav-bg-hover: rgba(0,0,0,0.3); -// $orbit-nav-arrow-color: $white; -// $orbit-nav-arrow-color-hover: $white; - -// We use these to control the timer styles -// $orbit-timer-bg: rgba(255,255,255,0.3); -// $orbit-timer-show-progress-bar: true; - -// We use these to control the bullet nav styles -// $orbit-bullet-nav-color: $iron; -// $orbit-bullet-nav-color-active: $aluminum; -// $orbit-bullet-radius: rem-calc(9); - -// We use these to controls the style of slide numbers -// $orbit-slide-number-bg: rgba(0,0,0,0); -// $orbit-slide-number-font-color: $white; -// $orbit-slide-number-padding: rem-calc(5); - -// Hide controls on small -// $orbit-nav-hide-for-small: true; -// $orbit-bullet-hide-for-small: true; -// $orbit-timer-hide-for-small: true; - -// Graceful Loading Wrapper and preloader -// $wrapper-class: "slideshow-wrapper"; -// $preloader-class: "preloader"; - -// 20. Pagination -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-pagination-classes: $include-html-classes; - -// We use these to control the pagination container -// $pagination-height: rem-calc(24); -// $pagination-margin: rem-calc(-5); - -// We use these to set the list-item properties -// $pagination-li-float: $default-float; -// $pagination-li-height: rem-calc(24); -// $pagination-li-font-color: $jet; -// $pagination-li-font-size: rem-calc(14); -// $pagination-li-margin: rem-calc(5); - -// We use these for the pagination anchor links -// $pagination-link-pad: rem-calc(1 10 1); -// $pagination-link-font-color: $aluminum; -// $pagination-link-active-bg: scale-color($white, $lightness: -10%); - -// We use these for disabled anchor links -// $pagination-link-unavailable-cursor: default; -// $pagination-link-unavailable-font-color: $aluminum; -// $pagination-link-unavailable-bg-active: transparent; - -// We use these for currently selected anchor links -// $pagination-link-current-background: $primary-color; -// $pagination-link-current-font-color: $white; -// $pagination-link-current-font-weight: $font-weight-bold; -// $pagination-link-current-cursor: default; -// $pagination-link-current-active-bg: $primary-color; - -// 21. Panels -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-panel-classes: $include-html-classes; - -// We use these to control the background and border styles -// $panel-bg: scale-color($white, $lightness: -5%); -// $panel-border-style: solid; -// $panel-border-size: 1px; - -// We use this % to control how much we darken things on hover -// $panel-function-factor: -11%; -// $panel-border-color: scale-color($panel-bg, $lightness: $panel-function-factor); - -// We use these to set default inner padding and bottom margin -// $panel-margin-bottom: rem-calc(20); -// $panel-padding: rem-calc(20); - -// We use these to set default font colors -// $panel-font-color: $oil; -// $panel-font-color-alt: $white; - -// $panel-header-adjust: true; -// $callout-panel-link-color: $primary-color; - -// 22. Pricing Tables -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-pricing-classes: $include-html-classes; - -// We use this to control the border color -// $price-table-border: solid 1px $gainsboro; - -// We use this to control the bottom margin of the pricing table -// $price-table-margin-bottom: rem-calc(20); - -// We use these to control the title styles -// $price-title-bg: $oil; -// $price-title-padding: rem-calc(15 20); -// $price-title-align: center; -// $price-title-color: $smoke; -// $price-title-weight: $font-weight-normal; -// $price-title-size: rem-calc(16); -// $price-title-font-family: $body-font-family; - -// We use these to control the price styles -// $price-money-bg: $vapor; -// $price-money-padding: rem-calc(15 20); -// $price-money-align: center; -// $price-money-color: $oil; -// $price-money-weight: $font-weight-normal; -// $price-money-size: rem-calc(32); -// $price-money-font-family: $body-font-family; - -// We use these to control the description styles -// $price-bg: $white; -// $price-desc-color: $monsoon; -// $price-desc-padding: rem-calc(15); -// $price-desc-align: center; -// $price-desc-font-size: rem-calc(12); -// $price-desc-weight: $font-weight-normal; -// $price-desc-line-height: 1.4; -// $price-desc-bottom-border: dotted 1px $gainsboro; - -// We use these to control the list item styles -// $price-item-color: $oil; -// $price-item-padding: rem-calc(15); -// $price-item-align: center; -// $price-item-font-size: rem-calc(14); -// $price-item-weight: $font-weight-normal; -// $price-item-bottom-border: dotted 1px $gainsboro; - -// We use these to control the CTA area styles -// $price-cta-bg: $white; -// $price-cta-align: center; -// $price-cta-padding: rem-calc(20 20 0); - -// 23. Progress Bar -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-media-classes: $include-html-classes; - -// We use this to set the progress bar height -// $progress-bar-height: rem-calc(25); -// $progress-bar-color: $vapor ; - -// We use these to control the border styles -// $progress-bar-border-color: scale-color($white, $lightness: 20%); -// $progress-bar-border-size: 1px; -// $progress-bar-border-style: solid; -// $progress-bar-border-radius: $global-radius; - -// We use these to control the margin & padding -// $progress-bar-pad: rem-calc(2); -// $progress-bar-margin-bottom: rem-calc(10); - -// We use these to set the meter colors -// $progress-meter-color: $primary-color; -// $progress-meter-secondary-color: $secondary-color; -// $progress-meter-success-color: $success-color; -// $progress-meter-alert-color: $alert-color; - -// 24. Range Slider -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-range-slider-classes: $include-html-classes; - -// These variables define the slider bar styles -// $range-slider-bar-width: 100%; -// $range-slider-bar-height: rem-calc(16); - -// $range-slider-bar-border-width: 1px; -// $range-slider-bar-border-style: solid; -// $range-slider-bar-border-color: $gainsboro; -// $range-slider-radius: $global-radius; -// $range-slider-round: $global-rounded; -// $range-slider-bar-bg-color: $ghost; - -// Vertical bar styles -// $range-slider-vertical-bar-width: rem-calc(16); -// $range-slider-vertical-bar-height: rem-calc(200); - -// These variables define the slider handle styles -// $range-slider-handle-width: rem-calc(32); -// $range-slider-handle-height: rem-calc(22); -// $range-slider-handle-position-top: rem-calc(-5); -// $range-slider-handle-bg-color: $primary-color; -// $range-slider-handle-border-width: 1px; -// $range-slider-handle-border-style: solid; -// $range-slider-handle-border-color: none; -// $range-slider-handle-radius: $global-radius; -// $range-slider-handle-round: $global-rounded; -// $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%); -// $range-slider-handle-cursor: pointer; - -// 25. Reveal -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-reveal-classes: $include-html-classes; - -// We use these to control the style of the reveal overlay. -// $reveal-overlay-bg: rgba($black, .45); -// $reveal-overlay-bg-old: $black; - -// We use these to control the style of the modal itself. -// $reveal-modal-bg: $white; -// $reveal-position-top: rem-calc(100); -// $reveal-default-width: 80%; -// $reveal-max-width: $row-width; -// $reveal-modal-padding: rem-calc(20); -// $reveal-box-shadow: 0 0 10px rgba($black,.4); - -// We use these to style the reveal close button -// $reveal-close-font-size: rem-calc(40); -// $reveal-close-top: rem-calc(8); -// $reveal-close-side: rem-calc(11); -// $reveal-close-color: $base; -// $reveal-close-weight: $font-weight-bold; - -// We use this to set the default radius used throughout the core. -// $reveal-radius: $global-radius; -// $reveal-round: $global-rounded; - -// We use these to control the modal border -// $reveal-border-style: solid; -// $reveal-border-width: 1px; -// $reveal-border-color: $steel; - -// $reveal-modal-class: "reveal-modal"; -// $close-reveal-modal-class: "close-reveal-modal"; - -// 26. Side Nav -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-nav-classes: $include-html-classes; - -// We use this to control padding. -// $side-nav-padding: rem-calc(14 0); - -// We use these to control list styles. -// $side-nav-list-type: none; -// $side-nav-list-position: inside; -// $side-nav-list-margin: rem-calc(0 0 7 0); - -// We use these to control link styles. -// $side-nav-link-color: $primary-color; -// $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%); -// $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%); -// $side-nav-link-bg-hover: hsla(0, 0, 0, 0.025); -// $side-nav-link-margin: 0; -// $side-nav-link-padding: rem-calc(7 14); -// $side-nav-font-size: rem-calc(14); -// $side-nav-font-weight: $font-weight-normal; -// $side-nav-font-weight-active: $side-nav-font-weight; -// $side-nav-font-family: $body-font-family; -// $side-nav-font-family-active: $side-nav-font-family; - -// We use these to control heading styles. -// $side-nav-heading-color: $side-nav-link-color; -// $side-nav-heading-font-size: $side-nav-font-size; -// $side-nav-heading-font-weight: bold; -// $side-nav-heading-text-transform: uppercase; - -// We use these to control border styles -// $side-nav-divider-size: 1px; -// $side-nav-divider-style: solid; -// $side-nav-divider-color: scale-color($white, $lightness: 10%); - -// 27. Split Buttons -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-button-classes: $include-html-classes; - -// We use these to control different shared styles for Split Buttons -// $split-button-function-factor: 10%; -// $split-button-pip-color: $white; -// $split-button-pip-color-alt: $oil; -// $split-button-active-bg-tint: rgba(0,0,0,0.1); - -// We use these to control tiny split buttons -// $split-button-padding-tny: $button-pip-tny * 10; -// $split-button-span-width-tny: $button-pip-tny * 6; -// $split-button-pip-size-tny: $button-pip-tny; -// $split-button-pip-top-tny: $button-pip-tny * 2; -// $split-button-pip-default-float-tny: rem-calc(-6); - -// We use these to control small split buttons -// $split-button-padding-sml: $button-pip-sml * 10; -// $split-button-span-width-sml: $button-pip-sml * 6; -// $split-button-pip-size-sml: $button-pip-sml; -// $split-button-pip-top-sml: $button-pip-sml * 1.5; -// $split-button-pip-default-float-sml: rem-calc(-6); - -// We use these to control medium split buttons -// $split-button-padding-med: $button-pip-med * 9; -// $split-button-span-width-med: $button-pip-med * 5.5; -// $split-button-pip-size-med: $button-pip-med - rem-calc(3); -// $split-button-pip-top-med: $button-pip-med * 1.5; -// $split-button-pip-default-float-med: rem-calc(-6); - -// We use these to control large split buttons -// $split-button-padding-lrg: $button-pip-lrg * 8; -// $split-button-span-width-lrg: $button-pip-lrg * 5; -// $split-button-pip-size-lrg: $button-pip-lrg - rem-calc(6); -// $split-button-pip-top-lrg: $button-pip-lrg + rem-calc(5); -// $split-button-pip-default-float-lrg: rem-calc(-6); - -// 28. Sub Nav -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-nav-classes: $include-html-classes; - -// We use these to control margin and padding -// $sub-nav-list-margin: rem-calc(-4 0 18); -// $sub-nav-list-padding-top: rem-calc(4); - -// We use this to control the definition -// $sub-nav-font-family: $body-font-family; -// $sub-nav-font-size: rem-calc(14); -// $sub-nav-font-color: $aluminum; -// $sub-nav-font-weight: $font-weight-normal; -// $sub-nav-text-decoration: none; -// $sub-nav-padding: rem-calc(3 16); -// $sub-nav-border-radius: 3px; -// $sub-nav-font-color-hover: scale-color($sub-nav-font-color, $lightness: -25%); - -// We use these to control the active item styles -// $sub-nav-active-font-weight: $font-weight-normal; -// $sub-nav-active-bg: $primary-color; -// $sub-nav-active-bg-hover: scale-color($sub-nav-active-bg, $lightness: -14%); -// $sub-nav-active-color: $white; -// $sub-nav-active-padding: $sub-nav-padding; -// $sub-nav-active-cursor: default; - -// $sub-nav-item-divider: ""; -// $sub-nav-item-divider-margin: rem-calc(12); - -// 29. Switch -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-form-classes: $include-html-classes; - -// Controlling border styles and background colors for the switch container -// $switch-border-color: scale-color($white, $lightness: -20%); -// $switch-border-style: solid; -// $switch-border-width: 1px; -// $switch-bg: $white; - -// We use these to control the switch heights for our default classes -// $switch-height-tny: rem-calc(22); -// $switch-height-sml: rem-calc(28); -// $switch-height-med: rem-calc(36); -// $switch-height-lrg: rem-calc(44); -// $switch-bottom-margin: rem-calc(20); - -// We use these to control default font sizes for our classes. -// $switch-font-size-tny: 11px; -// $switch-font-size-sml: 12px; -// $switch-font-size-med: 14px; -// $switch-font-size-lrg: 17px; -// $switch-label-side-padding: 6px; - -// We use these to style the switch-paddle -// $switch-paddle-bg: $white; -// $switch-paddle-fade-to-color: scale-color($switch-paddle-bg, $lightness: -10%); -// $switch-paddle-border-color: scale-color($switch-paddle-bg, $lightness: -35%); -// $switch-paddle-border-width: 1px; -// $switch-paddle-border-style: solid; -// $switch-paddle-transition-speed: .1s; -// $switch-paddle-transition-ease: ease-out; -// $switch-positive-color: scale-color($success-color, $lightness: 94%); -// $switch-negative-color: $white-smoke; - -// Outline Style for tabbing through switches -// $switch-label-outline: 1px dotted $jumbo; - -// 30. Tables -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-table-classes: $include-html-classes; - -// These control the background color for the table and even rows -// $table-bg: $white; -// $table-even-row-bg: $snow; - -// These control the table cell border style -// $table-border-style: solid; -// $table-border-size: 1px; -// $table-border-color: $gainsboro; - -// These control the table head styles -// $table-head-bg: $white-smoke ; -// $table-head-font-size: rem-calc(14); -// $table-head-font-color: $jet; -// $table-head-font-weight: $font-weight-bold; -// $table-head-padding: rem-calc(8 10 10); - -// These control the row padding and font styles -// $table-row-padding: rem-calc(9 10); -// $table-row-font-size: rem-calc(14); -// $table-row-font-color: $jet; -// $table-line-height: rem-calc(18); - -// These are for controlling the layout, display and margin of tables -// $table-layout: auto; -// $table-display: table-cell; -// $table-margin-bottom: rem-calc(20); - -// 31. Tabs -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-tabs-classes: $include-html-classes; - -// $tabs-navigation-padding: rem-calc(16); -// $tabs-navigation-bg-color: $silver ; -// $tabs-navigation-active-bg-color: $white; -// $tabs-navigation-hover-bg-color: scale-color($tabs-navigation-bg-color, $lightness: -6%); -// $tabs-navigation-font-color: $jet; -// $tabs-navigation-active-font-color: $tabs-navigation-font-color; -// $tabs-navigation-font-size: rem-calc(16); -// $tabs-navigation-font-family: $body-font-family; - -// $tabs-content-margin-bottom: rem-calc(24); -// $tabs-content-padding: ($column-gutter/2); - -// $tabs-vertical-navigation-margin-bottom: 1.25rem; - -// 32. Thumbnails -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-media-classes: $include-html-classes; - -// We use these to control border styles -// $thumb-border-style: solid; -// $thumb-border-width: 4px; -// $thumb-border-color: $white; -// $thumb-box-shadow: 0 0 0 1px rgba($black,.2); -// $thumb-box-shadow-hover: 0 0 6px 1px rgba($primary-color,0.5); - -// Radius and transition speed for thumbs -// $thumb-radius: $global-radius; -// $thumb-transition-speed: 200ms; - -// 33. Tooltips -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-tooltip-classes: $include-html-classes; - -// $has-tip-border-bottom: dotted 1px $iron; -// $has-tip-font-weight: $font-weight-bold; -// $has-tip-font-color: $oil; -// $has-tip-border-bottom-hover: dotted 1px scale-color($primary-color, $lightness: -55%); -// $has-tip-font-color-hover: $primary-color; -// $has-tip-cursor-type: help; - -// $tooltip-padding: rem-calc(12); -// $tooltip-bg: $oil; -// $tooltip-font-size: rem-calc(14); -// $tooltip-font-weight: $font-weight-normal; -// $tooltip-font-color: $white; -// $tooltip-line-height: 1.3; -// $tooltip-close-font-size: rem-calc(10); -// $tooltip-close-font-weight: $font-weight-normal; -// $tooltip-close-font-color: $monsoon; -// $tooltip-font-size-sml: rem-calc(14); -// $tooltip-radius: $global-radius; -// $tooltip-rounded: $global-rounded; -// $tooltip-pip-size: 5px; -// $tooltip-max-width: 300px; - -// 34. Top Bar -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-top-bar-classes: $include-html-classes; - -// Background color for the top bar -// $topbar-bg-color: $oil; -$topbar-bg-color: #7299ac; -// $topbar-bg: $topbar-bg-color; - -// Height and margin -// $topbar-height: rem-calc(45); -// $topbar-margin-bottom: 0; - -// Controlling the styles for the title in the top bar -// $topbar-title-weight: $font-weight-normal; -// $topbar-title-font-size: rem-calc(17); - -// Style the top bar dropdown elements -// $topbar-dropdown-bg: $oil; -$topbar-dropdown-bg: $topbar-bg-color; -// $topbar-dropdown-link-color: $white; -$topbar-dropdown-link-color-hover: #eee; -// $topbar-dropdown-link-bg: $oil; -$topbar-dropdown-link-bg: $topbar-bg-color; -// $topbar-dropdown-link-bg-hover: $oil; -$topbar-dropdown-link-bg-hover: $topbar-bg-color; -// $topbar-dropdown-link-weight: $font-weight-normal; -// $topbar-dropdown-toggle-size: 5px; -// $topbar-dropdown-toggle-color: $white; -// $topbar-dropdown-toggle-alpha: 0.4; - -// Set the link colors and styles for top-level nav -// $topbar-link-color: $white; -// $topbar-link-color-hover: $white; -// $topbar-link-color-active: $white; -// $topbar-link-color-active-hover: $white; -// $topbar-link-weight: $font-weight-normal; -// $topbar-link-font-size: rem-calc(13); -$topbar-link-weight: bold; -// $topbar-link-hover-lightness: -10%; // Darken by 10% -// $topbar-link-bg: $topbar-bg; -// $topbar-link-bg-color-hover: $charcoal; -$topbar-link-bg-color-hover: scale-color($topbar-bg-color, $lightness: -14%); -// $topbar-link-bg-hover: $oil; -$topbar-link-bg-hover: scale-color($topbar-bg-color, $lightness: -14%); -// $topbar-link-bg-active: $primary-color; -$topbar-link-bg-active: $topbar-bg-color; -// $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%); -$topbar-link-bg-active-hover: scale-color($topbar-bg-color, $lightness: -14%); -// $topbar-link-font-family: $body-font-family; -// $topbar-link-text-transform: none; -// $topbar-link-padding: ($topbar-height / 3); -// $topbar-back-link-size: $h5-font-size; -// $topbar-link-dropdown-padding: 20px; - -// $topbar-button-font-size: 0.75rem; -// $topbar-button-top: 7px; - -// $topbar-dropdown-label-color: $monsoon; -// $topbar-dropdown-label-text-transform: uppercase; -$topbar-dropdown-label-font-weight: $font-weight-bold; -// $topbar-dropdown-label-font-size: rem-calc(10); -// $topbar-dropdown-label-bg: $oil; - -// Top menu icon styles -// $topbar-menu-link-transform: uppercase; -// $topbar-menu-link-font-size: rem-calc(13); -$topbar-menu-link-weight: $font-weight-bold; -// $topbar-menu-link-color: $white; -// $topbar-menu-icon-color: $white; -// $topbar-menu-link-color-toggled: $jumbo; -// $topbar-menu-icon-color-toggled: $jumbo; - -// Transitions and breakpoint styles -// $topbar-transition-speed: 300ms; -// Using rem-calc for the below breakpoint causes issues with top bar -// $topbar-breakpoint: #{lower-bound($medium-range)}; // Change to 9999px for always mobile layout -// $topbar-media-query: $medium-up; - -// Divider Styles -// $topbar-divider-border-bottom: solid 1px scale-color($topbar-bg-color, $lightness: 13%); -// $topbar-divider-border-top: solid 1px scale-color($topbar-bg-color, $lightness: -50%); - -// Sticky Class -// $topbar-sticky-class: ".sticky"; -// $topbar-arrows: true; //Set false to remove the triangle icon from the menu item - -// 36. Visibility Classes -// - - - - - - - - - - - - - - - - - - - - - - - - - - -// $include-html-visibility-classes: $include-html-classes; -// $include-table-visibility-classes: true; -// $include-legacy-visibility-classes: true; -// $include-accessibility-classes: true; diff --git a/nifi-site/src/scss/app.scss b/nifi-site/src/scss/app.scss deleted file mode 100644 index 70de9e7b59..0000000000 --- a/nifi-site/src/scss/app.scss +++ /dev/null @@ -1,209 +0,0 @@ -@import "settings"; -@import "foundation/components/type"; -@import "foundation/components/grid"; -@import "foundation/components/top-bar"; -@import "foundation/components/tables"; -@import "foundation/components/global"; -@import "foundation/components/flex-video"; -@import "foundation/components/reveal"; - -// @import "foundation"; -// Or selectively include components -// @import -// "foundation/components/accordion", -// "foundation/components/alert-boxes", -// "foundation/components/block-grid", -// "foundation/components/breadcrumbs", -// "foundation/components/button-groups", -// "foundation/components/buttons", -// "foundation/components/clearing", -// "foundation/components/dropdown", -// "foundation/components/dropdown-buttons", -// "foundation/components/flex-video", -// "foundation/components/forms", -// "foundation/components/grid", -// "foundation/components/inline-lists", -// "foundation/components/joyride", -// "foundation/components/keystrokes", -// "foundation/components/labels", -// "foundation/components/magellan", -// "foundation/components/orbit", -// "foundation/components/pagination", -// "foundation/components/panels", -// "foundation/components/pricing-tables", -// "foundation/components/progress-bars", -// "foundation/components/reveal", -// "foundation/components/side-nav", -// "foundation/components/split-buttons", -// "foundation/components/sub-nav", -// "foundation/components/switches", -// "foundation/components/tables", -// "foundation/components/tabs", -// "foundation/components/thumbs", -// "foundation/components/tooltips", -// "foundation/components/top-bar", -// "foundation/components/type", -// "foundation/components/offcanvas", -// "foundation/components/visibility"; - -html, html a { - -webkit-font-smoothing: antialiased; - text-shadow: 1px 1px 1px rgba(0,0,0,0.004); -} - -.wf-loading h1, .wf-loading p { - visibility:hidden; -} - -pre code { - display: block; - overflow: auto; - padding: 10px; - font-weight: normal; - border-width: 1px; -} - -div.large-space { - height: 3em; -} - -div.medium-space { - height: 2em; -} - -div.small-space { - height: 1em; -} - -#logo-top-bar { - max-width: 27px; - max-height: 40px; - margin-top: -2px; -} - -#logo-top-bar:hover { - -webkit-filter: brightness(1.03); - filter: brightness(1.03); -} - -#nifi-landing { - font-size: 4.5em; -} - -.nifi-txt { - font-family: 'Oswald', sans-serif; - font-weight: 500; -} - -span.nifi-txt { - font-size: larger; -} - -.ni { - color: #7A96A4; -} - -.fi { - color: #0F3541; -} - -.right-text { - text-align: right; -} - -p.description { - font-size: 1.25em; - font-weight: 200; - color: #333; -} - -#flow { - -moz-box-shadow: 0 0 25px #0F3541; - -webkit-box-shadow: 0 0 25px #0F3541; - box-shadow: 0px 0px 25px #0F3541; -} - -div.features { - background-color: #D9E4E8; -} - -#features-content ul { - padding-left: 10px; -} - -i.external-link { - margin-right: 5px; -} - -/* - Tables -*/ - -table { - background-color: #fefefe; - border: 1px solid #ccc; - border-left: 6px solid #ccc; - color: #555; - display: block; - margin-bottom: 12px; - padding: 5px 8px; -} - -tr td { - font-size: 14px; - vertical-align:top; - text-align:left; - padding: 4px; - border-width: 0; -} - -tr th { - font-size: 16px; - vertical-align:top; - text-align:left; - padding: 4px; - border-width: 0; - white-space: nowrap; -} - -table tr:nth-of-type(even) { - background-color: transparent !important; -} - -/* - Iframe -*/ - -div.external-guide { - position: absolute; - left: 0; - bottom: 0; - right: 0; - top: rem-calc(45); - z-index: 1; - background-color: #fff; -} - -div.external-guide iframe { - width: 100%; - height: 100%; - border-width: 0; - display: block; -} - -/* - Footer -*/ - -div.footer { - margin-top: 2em; - text-align: center; -} - -div.footer p { - font-size: .7em; -} - -div.clear { - clear: both; -} \ No newline at end of file diff --git a/nifi/README.md b/nifi/README.md deleted file mode 100644 index a680f7899b..0000000000 --- a/nifi/README.md +++ /dev/null @@ -1,159 +0,0 @@ - -# Apache NiFi - -Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data. - -## Table of Contents - -- [Features](#features) -- [Requirements](#requirements) -- [Getting Started](#getting-started) -- [Getting Help](#getting-help) -- [License](#license) -- [Export Control] (#export-control) - -## Features - -Apache NiFi was made for dataflow. It supports highly configurable directed graphs of data routing, transformation, and system mediation logic. Some of its key features include: - -- Web-based user interface - - Seamless experience for design, control, and monitoring -- Highly configurable - - Loss tolerant vs guaranteed delivery - - Low latency vs high throughput - - Dynamic prioritization - - Flows can be modified at runtime - - Back pressure -- Data Provenance - - Track dataflow from beginning to end -- Designed for extension - - Build your own processors and more - - Enables rapid development and effective testing -- Secure - - SSL, SSH, HTTPS, encrypted content, etc... - - Pluggable role-based authentication/authorization - -## Requirements -* JDK 1.7 or higher -* Apache Maven 3.0.5 or higher - -## Getting Started - -To build: -- Execute `mvn clean install` or for parallel build execute `mvn -T 2.0C clean install`. On a - modest development laptop that is a couple of years old, the latter build takes a bit under ten - minutes. After a large amount of output you should eventually see a success message. - - laptop:nifi fhampton$ mvn -T 2.0C clean install - [INFO] Scanning for projects... - [INFO] Inspecting build with total of 115 modules... - ...tens of thousands of lines elided... - [INFO] ------------------------------------------------------------------------ - [INFO] BUILD SUCCESS - [INFO] ------------------------------------------------------------------------ - [INFO] Total time: 09:24 min (Wall Clock) - [INFO] Finished at: 2015-04-30T00:30:36-05:00 - [INFO] Final Memory: 173M/1359M - [INFO] ------------------------------------------------------------------------ - -To deploy: -- Change directory to 'nifi-assembly'. In the target directory, there should be a build of nifi. - - laptop:nifi fhampton$ cd nifi-assembly - laptop:nifi-assembly fhampton$ ls -lhd target/nifi* - drwxr-xr-x 3 fhampton staff 102B Apr 30 00:29 target/nifi-0.1.0-SNAPSHOT-bin - -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-SNAPSHOT-bin.tar.gz - -rw-r--r-- 1 fhampton staff 144M Apr 30 00:30 target/nifi-0.1.0-SNAPSHOT-bin.zip - -- For testing ongoing development you could use the already unpacked build present in the directory - named "nifi-*version*-bin", where *version* is the current project version. To deploy in another - location make use of either the tarball or zipfile and unpack them wherever you like. The - distribution will be within a common parent directory named for the version. - - laptop:nifi-assembly fhampton$ mkdir ~/example-nifi-deploy - laptop:nifi-assembly fhampton$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy - laptop:nifi-assembly fhampton$ ls -lh ~/example-nifi-deploy/ - total 0 - drwxr-xr-x 10 fhampton staff 340B Apr 30 01:06 nifi-0.1.0-SNAPSHOT - -To run NiFi: -- Change directory to the location where you installed NiFi and run it. - - laptop:~ fhampton$ cd ~/example-nifi-deploy/nifi-* - laptop:nifi-0.1.0-SNAPSHOT fhampton$ ./bin/nifi.sh start - -- Direct your browser to http://localhost:8080/nifi/ and you should see a screen like this screenshot: - ![image of a NiFi dataflow canvas](nifi-docs/src/main/asciidoc/images/nifi_first_launch_screenshot.png?raw=true) - -- For help building your first data flow see the [NiFi User Guide](http://nifi.apache.org/docs/nifi-docs/user-guide.html) - -- If you are testing ongoing development, you will likely want to stop your instance. - - laptop:~ fhampton$ cd ~/example-nifi-deploy/nifi-* - laptop:nifi-0.1.0-SNAPSHOT fhampton$ ./bin/nifi.sh stop - -## Getting Help -If you have questions, you can reach out to our mailing list: dev@nifi.apache.org -([archive](http://mail-archives.apache.org/mod_mbox/nifi-dev)). -We're also often available in IRC: #nifi on -[irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). - -## License - -Except as otherwise noted this software is licensed under the -[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -## Export Control - -This distribution includes cryptographic software. The country in which you -currently reside may have restrictions on the import, possession, use, and/or -re-export to another country, of encryption software. BEFORE using any -encryption software, please check your country's laws, regulations and -policies concerning the import, possession, or use, and re-export of encryption -software, to see if this is permitted. See for more -information. - -The U.S. Government Department of Commerce, Bureau of Industry and Security -(BIS), has classified this software as Export Commodity Control Number (ECCN) -5D002.C.1, which includes information security software using or performing -cryptographic functions with asymmetric algorithms. The form and manner of this -Apache Software Foundation distribution makes it eligible for export under the -License Exception ENC Technology Software Unrestricted (TSU) exception (see the -BIS Export Administration Regulations, Section 740.13) for both object code and -source code. - -The following provides more details on the included cryptographic software: - -Apache NiFi uses BouncyCastle, Jasypt, JCraft Inc., and the built-in -java cryptography libraries for SSL, SSH, and the protection -of sensitive configuration parameters. See -http://bouncycastle.org/about.html -http://www.jasypt.org/faq.html -http://jcraft.com/c-info.html -http://www.oracle.com/us/products/export/export-regulations-345813.html -for more details on each of these libraries cryptography features. diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiLogo.png b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/images/bgNifiLogo.png deleted file mode 100755 index d92c484bdde783dbfc61a8f6aabe4570b750b9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4232 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 4.0.0 - org.apache.nifi - nifi-parent - 1.0.1-SNAPSHOT + org.apache + apache + 17 + org.apache.nifi nifi 0.3.0-SNAPSHOT pom @@ -36,7 +37,60 @@ nifi-maven-archetypes nifi-external + http://nifi.apache.org + + Apache NiFi Project + http://nifi.apache.org/ + + + + Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0 + + + + + Dev + dev-subscribe@nifi.apache.org + dev-unsubscribe@nifi.apache.org + dev@nifi.apache.org + http://mail-archives.apache.org/mod_mbox/nifi-dev + + + Users + users-subscribe@nifi.apache.org + users-unsubscribe@nifi.apache.org + users@nifi.apache.org + http://mail-archives.apache.org/mod_mbox/nifi-users + + + Commits + commits-subscribe@nifi.apache.org + commits-unsubscribe@nifi.apache.org + commits@nifi.apache.org + http://mail-archives.apache.org/mod_mbox/nifi-commits + + + + ${maven.min-version} + + + scm:git:git://git.apache.org/nifi.git + scm:git:https://git-wip-us.apache.org/repos/asf/nifi.git + https://git-wip-us.apache.org/repos/asf?p=nifi.git + HEAD + + + JIRA + https://issues.apache.org/jira/browse/NIFI + + 1.7 + 1.7 + 3.0.5 + UTF-8 + UTF-8 + 2014 1.7.12 9.2.11.v20150529 4.10.4 @@ -44,7 +98,6 @@ 3.2.7.RELEASE 1.19 2.6.0 - 2014 @@ -902,9 +955,101 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + true + true + true + true + + + + org.apache.maven.plugins + maven-war-plugin + 2.5 + + + org.apache.maven.plugins + maven-dependency-plugin + 2.9 + + + org.apache.maven.plugins + maven-resources-plugin + 2.7 + + + org.apache.maven.plugins + maven-surefire-plugin + 2.18 + + true + -Xmx1G + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.5.2 + + gnu + + + + org.codehaus.mojo + jaxb2-maven-plugin + 1.6 + + + org.apache.maven.plugins + maven-source-plugin + 2.4 + + + org.apache.maven.plugins + maven-site-plugin + 3.4 + + + org.codehaus.mojo + exec-maven-plugin + 1.3.2 + + + org.apache.maven.plugins + maven-jar-plugin + 2.5 + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.10.1 + + false + true + private + UTF-8 + true + 1.7 + -J-Xmx512m + + org.apache.maven.plugins maven-release-plugin + 2.5.1 + + true + apache-release + true + deploy + @{project.artifactId}-@{project.version} + false + true + default @@ -912,20 +1057,228 @@ perform - nifi/pom.xml + pom.xml - + + org.codehaus.mojo + rpm-maven-plugin + 2.1.1 + + + org.antlr + antlr3-maven-plugin + 3.5.2 + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.15 + + + com.puppycrawl.tools + checkstyle + 6.5 + + + + org.apache.nifi nifi-nar-maven-plugin - 1.0.2-SNAPSHOT + 1.0.1-incubating true + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.5 + true + + repository.apache.org + https://repository.apache.org/ + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-maven + + enforce + + + + + + org.apache.maven.plugins:maven-surefire-plugin + org.apache.maven.plugins:maven-failsafe-plugin + org.apache.maven.plugins:maven-surefire-report-plugin + + + + ${maven.min-version} + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + warning + true + + + + org.apache.rat + apache-rat-plugin + + + nb-configuration.xml + nbactions.xml + DEPENDENCIES + + + + + + org.apache.maven.doxia + doxia-core + 1.6 + + + xerces + xercesImpl + + + + + + + + + contrib-check + + + + org.apache.rat + apache-rat-plugin + + + + check + + verify + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + + check-style + + check + + + + + + + +